diff --git a/.github/workflows/pick-to-staging.yml b/.github/workflows/pick-to-staging.yml index 7191ed4d14..9d179b343c 100644 --- a/.github/workflows/pick-to-staging.yml +++ b/.github/workflows/pick-to-staging.yml @@ -53,7 +53,7 @@ jobs: private_key: ${{ secrets.AUTOMATION_APP_PRIVATE_KEY }} - name: Create or update PR - uses: peter-evans/create-pull-request@v6 + uses: peter-evans/create-pull-request@v7 with: token: ${{ steps.generate-token.outputs.token }} branch: apply/commit-${{ github.sha }} diff --git a/Dockerfile b/Dockerfile index b083e57a38..44b487076f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:20.16 as build +FROM node:20.17 as build ENV NODE_VERSION=20.14.0 WORKDIR /app diff --git a/Dockerfile.dev b/Dockerfile.dev index 050f35f071..4d1552d07b 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -1,4 +1,4 @@ -FROM node:20.16-alpine +FROM node:20.17-alpine ENV NODE_VERSION=20.14.0 RUN apk add --no-cache git diff --git a/Makefile b/Makefile index b7e1d92dab..7fbbe1c919 100644 --- a/Makefile +++ b/Makefile @@ -24,7 +24,7 @@ run-tests: | build-dev docker run -t openslides-client-dev npm run test-silently docker run -t openslides-client-dev npm run build-debug -run-karma-tests: +run-karma-tests: | build-dev docker run -t openslides-client-dev /bin/sh -c "apk add chromium && npm run test-silently -- --browsers=ChromiumHeadlessNoSandbox" run-check-linting: diff --git a/client/.eslintrc.js b/client/.eslintrc.js index 3e503c1488..1faf63ebd2 100644 --- a/client/.eslintrc.js +++ b/client/.eslintrc.js @@ -102,9 +102,7 @@ module.exports = { '@angular-eslint/template/attributes-order': ['error', { alphabetical: true }], - '@angular-eslint/template/prefer-control-flow': ['error'], - // Should be switched to error - '@angular-eslint/template/elements-content': ['warn'] + '@angular-eslint/template/prefer-control-flow': ['error'] } }, { diff --git a/client/angular.json b/client/angular.json index 988f07369b..fffd083955 100644 --- a/client/angular.json +++ b/client/angular.json @@ -39,6 +39,11 @@ "glob": "**/*", "input": "node_modules/cm-chessboard/assets/", "output": "/chess/" + }, + { + "glob": "**/*", + "input": "node_modules/pdfjs-dist/legacy/build/", + "output": "/pdfjs/" } ], "styles": ["src/styles.scss"], diff --git a/client/ngsw-config.json b/client/ngsw-config.json index 1405481722..35506cb1c7 100644 --- a/client/ngsw-config.json +++ b/client/ngsw-config.json @@ -1,7 +1,6 @@ { "$schema": "./node_modules/@angular/service-worker/config/schema.json", "index": "/index.html", - "version": 2, "assetGroups": [ { "name": "app", diff --git a/client/package-lock.json b/client/package-lock.json index d28ccd462f..d050c22757 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -9,44 +9,44 @@ "version": "4.1.x-dev", "license": "MIT", "dependencies": { - "@angular/animations": "^18.1.4", - "@angular/cdk": "^18.1.4", - "@angular/common": "^18.1.4", - "@angular/compiler": "^18.1.4", - "@angular/core": "^18.1.4", - "@angular/forms": "^18.1.4", - "@angular/material": "^18.1.4", - "@angular/material-date-fns-adapter": "^18.1.4", - "@angular/platform-browser": "^18.1.4", - "@angular/platform-browser-dynamic": "^18.1.4", - "@angular/router": "^18.1.4", - "@angular/service-worker": "^18.1.4", + "@angular/animations": "^18.2.3", + "@angular/cdk": "^18.2.3", + "@angular/common": "^18.2.3", + "@angular/compiler": "^18.2.3", + "@angular/core": "^18.2.3", + "@angular/forms": "^18.2.3", + "@angular/material": "^18.2.3", + "@angular/material-date-fns-adapter": "^18.2.3", + "@angular/platform-browser": "^18.2.3", + "@angular/platform-browser-dynamic": "^18.2.3", + "@angular/router": "^18.2.3", + "@angular/service-worker": "^18.2.3", "@material/typography": "^14.0.0", "@ngx-pwa/local-storage": "^18.0.0", "@ngx-translate/core": "^15.0.0", "@ngx-translate/http-loader": "^8.0.0", - "@tiptap/core": "^2.5.9", - "@tiptap/extension-color": "^2.5.9", - "@tiptap/extension-highlight": "^2.5.9", - "@tiptap/extension-image": "^2.5.9", - "@tiptap/extension-link": "^2.5.9", - "@tiptap/extension-subscript": "^2.5.9", - "@tiptap/extension-superscript": "^2.5.9", - "@tiptap/extension-table": "^2.5.9", - "@tiptap/extension-table-cell": "^2.5.9", - "@tiptap/extension-table-header": "^2.5.9", - "@tiptap/extension-table-row": "^2.5.9", - "@tiptap/extension-text-align": "^2.5.9", + "@tiptap/core": "^2.6.6", + "@tiptap/extension-color": "^2.6.6", + "@tiptap/extension-highlight": "^2.6.6", + "@tiptap/extension-image": "^2.6.6", + "@tiptap/extension-link": "^2.6.6", + "@tiptap/extension-subscript": "^2.6.6", + "@tiptap/extension-superscript": "^2.6.6", + "@tiptap/extension-table": "^2.6.6", + "@tiptap/extension-table-cell": "^2.6.6", + "@tiptap/extension-table-header": "^2.6.6", + "@tiptap/extension-table-row": "^2.6.6", + "@tiptap/extension-text-align": "^2.6.6", "@tiptap/extension-text-style": "^2.5.4", - "@tiptap/extension-underline": "^2.5.9", + "@tiptap/extension-underline": "^2.6.6", "@tiptap/pm": "^2.5.4", - "@tiptap/starter-kit": "^2.5.9", + "@tiptap/starter-kit": "^2.6.6", "@tsparticles/angular": "^3.0.0", "@tsparticles/engine": "^3.5.0", "@tsparticles/plugin-emitters": "^3.5.0", "@tsparticles/shape-text": "^3.5.0", "@tsparticles/slim": "^3.5.0", - "chart.js": "^4.4.3", + "chart.js": "^4.4.4", "cm-chess": "^3.5.1", "cm-chessboard": "^8.7.4", "date-fns": "^3.6.0", @@ -56,34 +56,35 @@ "jszip": "^3.10.1", "material-design-icons-iconfont": "^6.7.0", "ng2-charts": "^6.0.1", - "ng2-pdf-viewer": "^10.2.2", + "ng2-pdf-viewer": "^10.3.0", "ngx-date-fns": "^11.0.0", "ngx-device-detector": "^8.0.0", "ngx-file-drop": "^16.0.0", "ngx-material-timepicker": "^13.1.1", "ngx-papaparse": "^8.0.0", - "pdfmake": "^0.2.11", + "pdfjs-dist": "^4.5.136", + "pdfmake": "^0.2.12", "pofile": "^1.1.4", "qrcode": "^1.5.4", "rxjs": "^7.8.1", "tinycolor2": "1.6.0", - "video.js": "^8.17.2", + "video.js": "^8.17.3", "zone.js": "^0.14.10" }, "devDependencies": { - "@angular-devkit/build-angular": "^18.1.4", - "@angular-eslint/builder": "^18.2.0", - "@angular-eslint/eslint-plugin": "^18.2.0", - "@angular-eslint/eslint-plugin-template": "^18.2.0", - "@angular-eslint/schematics": "^18.2.0", - "@angular-eslint/template-parser": "^18.2.0", - "@angular/cli": "^18.1.4", - "@angular/compiler-cli": "^18.1.4", + "@angular-devkit/build-angular": "^18.2.3", + "@angular-eslint/builder": "^18.3.0", + "@angular-eslint/eslint-plugin": "^18.3.0", + "@angular-eslint/eslint-plugin-template": "^18.3.0", + "@angular-eslint/schematics": "^18.3.0", + "@angular-eslint/template-parser": "^18.3.0", + "@angular/cli": "^18.2.3", + "@angular/compiler-cli": "^18.2.3", "@colsen1991/ngx-translate-extract-marker": "^2.0.8", "@types/file-saver": "^2.0.7", "@types/jasmine": "~5.1.4", "@types/js-yaml": "^4.0.9", - "@types/node": "^20.14.15", + "@types/node": "^20.16.5", "@types/pdfmake": "^0.2.9", "@types/qrcode": "^1.5.5", "@types/tinycolor2": "^1.4.6", @@ -95,9 +96,9 @@ "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-simple-import-sort": "^12.1.1", - "eslint-plugin-unused-imports": "^3.2.0", - "fetch-mock": "^11.1.0", - "jasmine-core": "~5.2.0", + "eslint-plugin-unused-imports": "^4.1.3", + "fetch-mock": "^11.1.3", + "jasmine-core": "~5.3.0", "js-yaml": "^4.1.0", "karma": "~6.4.4", "karma-chrome-launcher": "~3.2.0", @@ -127,12 +128,12 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1801.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1801.4.tgz", - "integrity": "sha512-Ch1ZwRh1N/vcCKHm4ErLcgZly3tlwdLUDGBaAIlhE3YFGq543Swv6a5IcDw0veD6iGFceJAmbrp+z5hmzI8p5A==", + "version": "0.1802.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.3.tgz", + "integrity": "sha512-WQ2AmkUKy1bqrDlNfozW8+VT2Tv/Fdmu4GIXps3ytZANyAKiIvTzmmql2cRCXXraa9FNMjLWNvz+qolDxWVdYQ==", "dev": true, "dependencies": { - "@angular-devkit/core": "18.1.4", + "@angular-devkit/core": "18.2.3", "rxjs": "7.8.1" }, "engines": { @@ -142,47 +143,47 @@ } }, "node_modules/@angular-devkit/build-angular": { - "version": "18.1.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-18.1.4.tgz", - "integrity": "sha512-CCoPT2fFw1DD3j9eSP3GKbp9KfvxQQfY6kV2aec0pqL/c6byz4/ku+rsV4lwE0N/dcaglwhttq4Xf+u+pkEpiw==", + "version": "18.2.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-18.2.3.tgz", + "integrity": "sha512-uUQba0SIskKORHcPayt7LpqPRKD//48EW92SgGHEArn2KklM+FSYBOA9OtrJeZ/UAcoJpdLDtvyY4+S7oFzomg==", "dev": true, "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1801.4", - "@angular-devkit/build-webpack": "0.1801.4", - "@angular-devkit/core": "18.1.4", - "@angular/build": "18.1.4", - "@babel/core": "7.24.7", - "@babel/generator": "7.24.7", + "@angular-devkit/architect": "0.1802.3", + "@angular-devkit/build-webpack": "0.1802.3", + "@angular-devkit/core": "18.2.3", + "@angular/build": "18.2.3", + "@babel/core": "7.25.2", + "@babel/generator": "7.25.0", "@babel/helper-annotate-as-pure": "7.24.7", "@babel/helper-split-export-declaration": "7.24.7", - "@babel/plugin-transform-async-generator-functions": "7.24.7", + "@babel/plugin-transform-async-generator-functions": "7.25.0", "@babel/plugin-transform-async-to-generator": "7.24.7", "@babel/plugin-transform-runtime": "7.24.7", - "@babel/preset-env": "7.24.7", - "@babel/runtime": "7.24.7", - "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "18.1.4", + "@babel/preset-env": "7.25.3", + "@babel/runtime": "7.25.0", + "@discoveryjs/json-ext": "0.6.1", + "@ngtools/webpack": "18.2.3", "@vitejs/plugin-basic-ssl": "1.1.0", "ansi-colors": "4.1.3", - "autoprefixer": "10.4.19", + "autoprefixer": "10.4.20", "babel-loader": "9.1.3", "browserslist": "^4.21.5", "copy-webpack-plugin": "12.0.2", "critters": "0.0.24", "css-loader": "7.1.2", - "esbuild-wasm": "0.21.5", + "esbuild-wasm": "0.23.0", "fast-glob": "3.3.2", "http-proxy-middleware": "3.0.0", "https-proxy-agent": "7.0.5", - "istanbul-lib-instrument": "6.0.2", + "istanbul-lib-instrument": "6.0.3", "jsonc-parser": "3.3.1", "karma-source-map-support": "1.4.0", "less": "4.2.0", "less-loader": "12.2.0", "license-webpack-plugin": "4.0.2", "loader-utils": "3.3.1", - "magic-string": "0.30.10", + "magic-string": "0.30.11", "mini-css-extract-plugin": "2.9.0", "mrmime": "2.0.0", "open": "10.1.0", @@ -190,25 +191,24 @@ "parse5-html-rewriting-stream": "7.0.0", "picomatch": "4.0.2", "piscina": "4.6.1", - "postcss": "8.4.38", + "postcss": "8.4.41", "postcss-loader": "8.1.1", "resolve-url-loader": "5.0.0", "rxjs": "7.8.1", "sass": "1.77.6", - "sass-loader": "14.2.1", - "semver": "7.6.2", + "sass-loader": "16.0.0", + "semver": "7.6.3", "source-map-loader": "5.0.0", "source-map-support": "0.5.21", - "terser": "5.29.2", + "terser": "5.31.6", "tree-kill": "1.2.2", "tslib": "2.6.3", - "undici": "6.19.2", - "vite": "5.3.2", + "vite": "5.4.0", "watchpack": "2.4.1", - "webpack": "5.92.1", - "webpack-dev-middleware": "7.2.1", + "webpack": "5.94.0", + "webpack-dev-middleware": "7.4.2", "webpack-dev-server": "5.0.4", - "webpack-merge": "5.10.0", + "webpack-merge": "6.0.1", "webpack-subresource-integrity": "5.1.0" }, "engines": { @@ -217,7 +217,7 @@ "yarn": ">= 1.13.0" }, "optionalDependencies": { - "esbuild": "0.21.5" + "esbuild": "0.23.0" }, "peerDependencies": { "@angular/compiler-cli": "^18.0.0", @@ -270,37 +270,10 @@ } } }, - "node_modules/@angular-devkit/build-angular/node_modules/define-lazy-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", - "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/is-wsl": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", - "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", - "dev": true, - "dependencies": { - "is-inside-container": "^1.0.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@angular-devkit/build-angular/node_modules/istanbul-lib-instrument": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", - "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, "dependencies": { "@babel/core": "^7.23.9", @@ -313,24 +286,6 @@ "node": ">=10" } }, - "node_modules/@angular-devkit/build-angular/node_modules/open": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", - "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", - "dev": true, - "dependencies": { - "default-browser": "^5.2.1", - "define-lazy-prop": "^3.0.0", - "is-inside-container": "^1.0.0", - "is-wsl": "^3.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@angular-devkit/build-angular/node_modules/picomatch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", @@ -343,13 +298,30 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/@angular-devkit/build-angular/node_modules/sass": { + "version": "1.77.6", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.6.tgz", + "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1801.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1801.4.tgz", - "integrity": "sha512-Srhs/PcnuUaMiO9FLQLi1QiGZqtnG5NTpkufjJuWxolSLGNRmb/h/ZeCYgRnxeH/4jd8GCD31RD78qy+pviiLQ==", + "version": "0.1802.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1802.3.tgz", + "integrity": "sha512-/Nixv9uAg6v/OPoZa0PB0zi+iezzBkgLrnrJnestny5B536l9WRtsw97RjeQDu+x2BClQsxNe8NL2A7EvjVD6w==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1801.4", + "@angular-devkit/architect": "0.1802.3", "rxjs": "7.8.1" }, "engines": { @@ -363,12 +335,12 @@ } }, "node_modules/@angular-devkit/core": { - "version": "18.1.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.1.4.tgz", - "integrity": "sha512-lKBsvbqW2QFL8terzNuSDSmKBo8//QNRO4qU5mVJ1fFf4xBJanXKoiAMuADhx+/owVIptnYT59IZ8jUAna+Srg==", + "version": "18.2.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.3.tgz", + "integrity": "sha512-vbFs+ofNK9OWeMIcFarFjegXVklhtSdLTEFKZ9trDVr8alTJdjI9AiYa6OOUTDAyq0hqYxV26xlCisWAPe7s5w==", "dev": true, "dependencies": { - "ajv": "8.16.0", + "ajv": "8.17.1", "ajv-formats": "3.0.1", "jsonc-parser": "3.3.1", "picomatch": "4.0.2", @@ -419,14 +391,14 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "18.1.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.1.4.tgz", - "integrity": "sha512-0ekArCeYqJngCKWZ9I+RtNObP/33zGkzWdJOmCB6nj9/ZevALZ6F4RDkHp0TqDYhOt+A2muI29ZK/cILmKA+sA==", + "version": "18.2.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.2.3.tgz", + "integrity": "sha512-N3tRAzBW2yWQhebvc1Ha18XTMSXOQTfr8HNjx7Fasx0Fg1tNyGR612MJNZw6je/PqyItKeUHOhztvFMfCQjRyg==", "dev": true, "dependencies": { - "@angular-devkit/core": "18.1.4", + "@angular-devkit/core": "18.2.3", "jsonc-parser": "3.3.1", - "magic-string": "0.30.10", + "magic-string": "0.30.11", "ora": "5.4.1", "rxjs": "7.8.1" }, @@ -437,33 +409,29 @@ } }, "node_modules/@angular-eslint/builder": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-18.2.0.tgz", - "integrity": "sha512-2NsrYqvVVha2XUUXm1T0XshW0d1TzYU6rXNCTut1t8qS/uinbxNiszKzJN1TuUsXFwpZfITRnEY3cjaqJDlsdA==", + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-18.3.0.tgz", + "integrity": "sha512-httEQyqyBw3+0CRtAa7muFxHrauRfkEfk/jmrh5fn2Eiu+I53hAqFPgrwVi1V6AP/kj2zbAiWhd5xM3pMJdoRQ==", "dev": true, - "dependencies": { - "@nx/devkit": "^19.0.6", - "nx": "^19.0.6" - }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": "*" } }, "node_modules/@angular-eslint/bundled-angular-compiler": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-18.2.0.tgz", - "integrity": "sha512-p/YvlvDJscSAbNOOAbT/BRdscEfWpQunUK+KuWM6/PXL07tTVae5dmp8B8A5am7Cxvp+ZVLVLZG4LFYB1TX1cw==", + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-18.3.0.tgz", + "integrity": "sha512-v/59FxUKnMzymVce99gV43huxoqXWMb85aKvzlNvLN+ScDu6ZE4YMiTQNpfapVL2lkxhs0uwB3jH17EYd5TcsA==", "dev": true }, "node_modules/@angular-eslint/eslint-plugin": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-18.2.0.tgz", - "integrity": "sha512-vJ7pstQPqCqkvMrEsjjocvHdPBl/frs0+fqkckog2Sq0QisBEjUPkbImvId6dw7JzxSDSvttdAklakF97CE4VA==", + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-18.3.0.tgz", + "integrity": "sha512-Vl7gfPMXxvtHTjYdlzR161aj5xrqW6T57wd8ToQ7Gqzm0qHGfY6kE4SQobUa2LCYckTNSlv+zXe48C4ah/dSjw==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.2.0", - "@angular-eslint/utils": "18.2.0" + "@angular-eslint/bundled-angular-compiler": "18.3.0", + "@angular-eslint/utils": "18.3.0" }, "peerDependencies": { "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", @@ -472,13 +440,13 @@ } }, "node_modules/@angular-eslint/eslint-plugin-template": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-18.2.0.tgz", - "integrity": "sha512-YHh+AUY9ubLAdmIRXH8vSpv+8EQkGjdX3B9xdj/grnrVzgzu+5W86F/spGp2tEny9l85R3JZNqjaMpW/vwibfw==", + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-18.3.0.tgz", + "integrity": "sha512-ddR/qwYbUeq9IpyVKrPbfZyRBTy6V8uc5I0JcBKttQ4CZ4joXhqsVgWFsI+JAMi8E66uNj1VC7NuKCOjDINv2Q==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.2.0", - "@angular-eslint/utils": "18.2.0", + "@angular-eslint/bundled-angular-compiler": "18.3.0", + "@angular-eslint/utils": "18.3.0", "aria-query": "5.3.0", "axobject-query": "4.1.0" }, @@ -488,17 +456,43 @@ "typescript": "*" } }, + "node_modules/@angular-eslint/eslint-plugin-template/node_modules/@angular-eslint/utils": { + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-18.3.0.tgz", + "integrity": "sha512-sCrkHkpxBJZLuCikdboZoawCfc2UgbJv+T14tu2uQCv+Vwzeadnu04vkeY2vTkA8GeBdBij/G9/N/nvwmwVw3g==", + "dev": true, + "dependencies": { + "@angular-eslint/bundled-angular-compiler": "18.3.0" + }, + "peerDependencies": { + "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "*" + } + }, + "node_modules/@angular-eslint/eslint-plugin/node_modules/@angular-eslint/utils": { + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-18.3.0.tgz", + "integrity": "sha512-sCrkHkpxBJZLuCikdboZoawCfc2UgbJv+T14tu2uQCv+Vwzeadnu04vkeY2vTkA8GeBdBij/G9/N/nvwmwVw3g==", + "dev": true, + "dependencies": { + "@angular-eslint/bundled-angular-compiler": "18.3.0" + }, + "peerDependencies": { + "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "*" + } + }, "node_modules/@angular-eslint/schematics": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-18.2.0.tgz", - "integrity": "sha512-6niXUrwyAmhuFcsRx88cOOVrko0EmsUGjLZ4yso3op/I9ZgI4SfuLCtl9gzJIR4TLBYc4zAuC/TE/rsLP+WCtw==", + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-18.3.0.tgz", + "integrity": "sha512-rQ4DEWwf3f5n096GAK6JvXD0SRzRJ52WRaIyKg8MMkk6qvUDfZI8seOkcbjDtZoIe6Ds7DfqSfJgNVte75qvPQ==", "dev": true, "dependencies": { - "@angular-eslint/eslint-plugin": "18.2.0", - "@angular-eslint/eslint-plugin-template": "18.2.0", - "@nx/devkit": "^19.0.6", - "ignore": "5.3.1", - "nx": "^19.0.6", + "@angular-eslint/eslint-plugin": "18.3.0", + "@angular-eslint/eslint-plugin-template": "18.3.0", + "ignore": "5.3.2", "semver": "7.6.3", "strip-json-comments": "3.1.1" }, @@ -507,25 +501,13 @@ "@angular-devkit/schematics": ">= 18.0.0 < 19.0.0" } }, - "node_modules/@angular-eslint/schematics/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@angular-eslint/template-parser": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-18.2.0.tgz", - "integrity": "sha512-1jKH2fL8ir1ajcgu/N0xIWVtlpJQmbJBRRe1+WbBoomykcu1KnLwCSue/LuUDQOf3CTmMHxQE0f+58VpafYoyA==", + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-18.3.0.tgz", + "integrity": "sha512-1mUquqcnugI4qsoxcYZKZ6WMi6RPelDcJZg2YqGyuaIuhWmi3ZqJZLErSSpjP60+TbYZu7wM8Kchqa1bwJtEaQ==", "dev": true, "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.2.0", + "@angular-eslint/bundled-angular-compiler": "18.3.0", "eslint-scope": "^8.0.2" }, "peerDependencies": { @@ -549,24 +531,10 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/@angular-eslint/utils": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-18.2.0.tgz", - "integrity": "sha512-g+b0L4RCZaKYPz4bGRRifo7g5guVJi2kUWymlDYmCkq3NhZng1HQQbNpVF1n5o034zT5lnaC5HENwaKIZ1Y37Q==", - "dev": true, - "dependencies": { - "@angular-eslint/bundled-angular-compiler": "18.2.0" - }, - "peerDependencies": { - "@typescript-eslint/utils": "^7.11.0 || ^8.0.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": "*" - } - }, "node_modules/@angular/animations": { - "version": "18.1.4", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-18.1.4.tgz", - "integrity": "sha512-m0yusB7BI3wrotx9F9rf7YUD5bvhF+lT2fLNF1QCzCU819rtLnDoj0b4/z+D0i5qe7gQjtAJ42e/Hv7eGuq0VQ==", + "version": "18.2.3", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-18.2.3.tgz", + "integrity": "sha512-rIATopHr83lYR0X05buHeHssq9CGw0I0YPIQcpUTGnlqIpJcQVCf7jCFn4KGZrE9V55hFY3MD4S28njlwCToQQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -574,41 +542,39 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "18.1.4" + "@angular/core": "18.2.3" } }, "node_modules/@angular/build": { - "version": "18.1.4", - "resolved": "https://registry.npmjs.org/@angular/build/-/build-18.1.4.tgz", - "integrity": "sha512-jkqccHpGhxUOe0zIHpA1nPdeuPUxnBK7Wvazc2rA+ccI30BPrROkEDbrHP8yD8JeviUCFwwLE+hM+rRg+NneVw==", + "version": "18.2.3", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-18.2.3.tgz", + "integrity": "sha512-USrD2Zvcb1te2dnqhH7JZ5XeJDg/t7fjUHR4f93vvMrnrncwCjLoHbHpz01HCHfcIVRgsYUdAmAi1iG7vpak7w==", "dev": true, "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1801.4", - "@babel/core": "7.24.7", + "@angular-devkit/architect": "0.1802.3", + "@babel/core": "7.25.2", "@babel/helper-annotate-as-pure": "7.24.7", "@babel/helper-split-export-declaration": "7.24.7", "@babel/plugin-syntax-import-attributes": "7.24.7", - "@inquirer/confirm": "3.1.11", + "@inquirer/confirm": "3.1.22", "@vitejs/plugin-basic-ssl": "1.1.0", - "ansi-colors": "4.1.3", "browserslist": "^4.23.0", "critters": "0.0.24", - "esbuild": "0.21.5", + "esbuild": "0.23.0", "fast-glob": "3.3.2", "https-proxy-agent": "7.0.5", - "lmdb": "3.0.12", - "magic-string": "0.30.10", + "listr2": "8.2.4", + "lmdb": "3.0.13", + "magic-string": "0.30.11", "mrmime": "2.0.0", - "ora": "5.4.1", "parse5-html-rewriting-stream": "7.0.0", "picomatch": "4.0.2", "piscina": "4.6.1", - "rollup": "4.18.0", + "rollup": "4.20.0", "sass": "1.77.6", - "semver": "7.6.2", - "undici": "6.19.2", - "vite": "5.3.2", + "semver": "7.6.3", + "vite": "5.4.0", "watchpack": "2.4.1" }, "engines": { @@ -659,10 +625,27 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/@angular/build/node_modules/sass": { + "version": "1.77.6", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.6.tgz", + "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@angular/cdk": { - "version": "18.1.4", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-18.1.4.tgz", - "integrity": "sha512-xFOg2wT2iLyJXqgeNRK1uF4Lxn0B1wzBjaEQoOwFm1EHOdu5D4mNOTwfuB3DkH4KWM+mI3Qtxd7vOhOXNwB3Dg==", + "version": "18.2.3", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-18.2.3.tgz", + "integrity": "sha512-lUcpYTxPZuntJ1FK7V2ugapCGMIhT6TUDjIGgXfS9AxGSSKgwr8HNs6Ze9pcjYC44UhP40sYAZuiaFwmE60A2A==", "dependencies": { "tslib": "^2.3.0" }, @@ -676,26 +659,26 @@ } }, "node_modules/@angular/cli": { - "version": "18.1.4", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-18.1.4.tgz", - "integrity": "sha512-ppX4iilA6k+sKD6iRMRYnt2bH9Jpik+hJlndRBCjWo2EmEUQ04CBRKYONh8BLbnmwBxPG+/osUpcFrbkPCjQUw==", + "version": "18.2.3", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-18.2.3.tgz", + "integrity": "sha512-40258vuliH6+p8QSByZe5EcIXSj0iR3PNF6yuusClR/ByToHOnmuPw7WC+AYr0ooozmqlim/EjQe4/037OUB3w==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1801.4", - "@angular-devkit/core": "18.1.4", - "@angular-devkit/schematics": "18.1.4", - "@inquirer/prompts": "5.0.7", - "@listr2/prompt-adapter-inquirer": "2.0.13", - "@schematics/angular": "18.1.4", + "@angular-devkit/architect": "0.1802.3", + "@angular-devkit/core": "18.2.3", + "@angular-devkit/schematics": "18.2.3", + "@inquirer/prompts": "5.3.8", + "@listr2/prompt-adapter-inquirer": "2.0.15", + "@schematics/angular": "18.2.3", "@yarnpkg/lockfile": "1.1.0", "ini": "4.1.3", "jsonc-parser": "3.3.1", - "listr2": "8.2.3", - "npm-package-arg": "11.0.2", - "npm-pick-manifest": "9.0.1", + "listr2": "8.2.4", + "npm-package-arg": "11.0.3", + "npm-pick-manifest": "9.1.0", "pacote": "18.0.6", "resolve": "1.22.8", - "semver": "7.6.2", + "semver": "7.6.3", "symbol-observable": "4.0.0", "yargs": "17.7.2" }, @@ -709,9 +692,9 @@ } }, "node_modules/@angular/common": { - "version": "18.1.4", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-18.1.4.tgz", - "integrity": "sha512-No4lCrL80WlAGg0DAyuPW+jsfA6EIQ06CFrRgt3R6YFrKbIuU0NKUt+D8IB7UNgTLNYXmurxapNf8jef8rq1wg==", + "version": "18.2.3", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-18.2.3.tgz", + "integrity": "sha512-NFL4yXXImSCH7i1xnHykUjHa9vl9827fGiwSV2mnf7LjSUsyDzFD8/54dNuYN9OY8AUD+PnK0YdNro6cczVyIA==", "dependencies": { "tslib": "^2.3.0" }, @@ -719,14 +702,14 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "18.1.4", + "@angular/core": "18.2.3", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "18.1.4", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-18.1.4.tgz", - "integrity": "sha512-Xdvm9trEmrWZaxCk3a7bt5kN/jdXBPukVsibFpu5lKl9ZL7j2sn4JUd7j/dVNRUIVsPahQMATAOgl8xdUJzh4Q==", + "version": "18.2.3", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-18.2.3.tgz", + "integrity": "sha512-Il3ljs0j1GaYoqYFdShjUP1ryck5xTOaA8uQuRgqwU0FOwEDfugSAM3Qf7nJx/sgxTM0Lm/Nrdv2u6i1gZWeuQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -734,7 +717,7 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "18.1.4" + "@angular/core": "18.2.3" }, "peerDependenciesMeta": { "@angular/core": { @@ -743,12 +726,12 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "18.1.4", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-18.1.4.tgz", - "integrity": "sha512-wOOLzxPLsDYsD+f6Bqr31ol8K7I4cm4k5uuaQl+wkLBpX9AD1rMi/7CPJrXAWBdgOW67uPzAdLBsK+axKfg91w==", + "version": "18.2.3", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-18.2.3.tgz", + "integrity": "sha512-BcmqYKnkcJTkGjuPztClZNQve7tdI290J5F3iZBx6c7/vaw8EU8EGZtpWYZpgiVn5S6jhcKyc1dLF9ggO9vftg==", "dev": true, "dependencies": { - "@babel/core": "7.24.9", + "@babel/core": "7.25.2", "@jridgewell/sourcemap-codec": "^1.4.14", "chokidar": "^3.0.0", "convert-source-map": "^1.5.1", @@ -766,74 +749,14 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/compiler": "18.1.4", + "@angular/compiler": "18.2.3", "typescript": ">=5.4 <5.6" } }, - "node_modules/@angular/compiler-cli/node_modules/@babel/core": { - "version": "7.24.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.9.tgz", - "integrity": "sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.9", - "@babel/helper-compilation-targets": "^7.24.8", - "@babel/helper-module-transforms": "^7.24.9", - "@babel/helpers": "^7.24.8", - "@babel/parser": "^7.24.8", - "@babel/template": "^7.24.7", - "@babel/traverse": "^7.24.8", - "@babel/types": "^7.24.9", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@angular/compiler-cli/node_modules/@babel/generator": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", - "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.25.0", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@angular/core": { - "version": "18.1.4", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-18.1.4.tgz", - "integrity": "sha512-+N3oWYFubT3GdCkBfD/CmH4DGjr/fGFQZChWbph2ZuPpK7JYNgfyvXS4SjLtdL4WTjjBevBTgR70GyLH/5EbKA==", + "version": "18.2.3", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-18.2.3.tgz", + "integrity": "sha512-VGhMJxj7d0rYpqVfQrcGRB7EE/BCziotft/I/YPl6bOMPSAvMukG7DXQuJdYpNrr62ks78mlzHlZX/cdmB9Prw==", "dependencies": { "tslib": "^2.3.0" }, @@ -842,13 +765,13 @@ }, "peerDependencies": { "rxjs": "^6.5.3 || ^7.4.0", - "zone.js": "~0.14.0" + "zone.js": "~0.14.10" } }, "node_modules/@angular/forms": { - "version": "18.1.4", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-18.1.4.tgz", - "integrity": "sha512-PYaQ7/2toAwgJWIznVWgJAd3l8mjAreilGOVIMbBIaotL/EHRQjhlikitJEFDGXeVUarY/rm3IlLWBYnLyliyg==", + "version": "18.2.3", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-18.2.3.tgz", + "integrity": "sha512-+OBaAH0e8hue9eyLnbgpxg1/X9fps6bwXECfJ0nL5BDPU5itZ428YJbEnj5bTx0hEbqfTRiV4LgexdI+D9eOpw==", "dependencies": { "tslib": "^2.3.0" }, @@ -856,22 +779,22 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "18.1.4", - "@angular/core": "18.1.4", - "@angular/platform-browser": "18.1.4", + "@angular/common": "18.2.3", + "@angular/core": "18.2.3", + "@angular/platform-browser": "18.2.3", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/material": { - "version": "18.1.4", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-18.1.4.tgz", - "integrity": "sha512-xmKIVOKZA8yFXrw4PsBvShFSYFQCnuVNGGuJlc8S8xvURh/f9P6hAo1Ua9pSBkOKz2W2dHE+726zOqL+o4kNxg==", + "version": "18.2.3", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-18.2.3.tgz", + "integrity": "sha512-JFfvXaMHMhskncaxxus4sDvie9VYdMkfYgfinkLXpZlPFyn1IzjDw0c1BcrcsuD7UxQVZ/v5tucCgq1FQfGRpA==", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { "@angular/animations": "^18.0.0 || ^19.0.0", - "@angular/cdk": "18.1.4", + "@angular/cdk": "18.2.3", "@angular/common": "^18.0.0 || ^19.0.0", "@angular/core": "^18.0.0 || ^19.0.0", "@angular/forms": "^18.0.0 || ^19.0.0", @@ -880,22 +803,22 @@ } }, "node_modules/@angular/material-date-fns-adapter": { - "version": "18.1.4", - "resolved": "https://registry.npmjs.org/@angular/material-date-fns-adapter/-/material-date-fns-adapter-18.1.4.tgz", - "integrity": "sha512-LCsi5W2nMwLerYBowrVgBaNF+IT9tHsSB67lQOAG9VvX0xPYEgiiNFCXNMuR02UHB7Y6s39TfDUb0Z9p/UWRXA==", + "version": "18.2.3", + "resolved": "https://registry.npmjs.org/@angular/material-date-fns-adapter/-/material-date-fns-adapter-18.2.3.tgz", + "integrity": "sha512-tIBorpTAUZ0wnjjdWt7YL2blLoClMVkyWfvIcve6Tgll0ddndhdMvrNms19+Z5YinrDVIgGdjIP4W0KscnNmtQ==", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { "@angular/core": "^18.0.0 || ^19.0.0", - "@angular/material": "18.1.4", + "@angular/material": "18.2.3", "date-fns": ">2.20.0 <4.0" } }, "node_modules/@angular/platform-browser": { - "version": "18.1.4", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-18.1.4.tgz", - "integrity": "sha512-zGx33St0JVYT8EZOaf0s8Twr0RgfU2cqEAc9Wwx9HVJ0pF5y4VnftK3pewwiHWDHkPfiJy0jBKbtrkVUSbgZfg==", + "version": "18.2.3", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-18.2.3.tgz", + "integrity": "sha512-M2ob4zN7tAcL2mx7U6KnZNqNFPFl9MlPBE0FrjQjIzAjU0wSYPIJXmaPu9aMUp9niyo+He5iX98I+URi2Yc99g==", "dependencies": { "tslib": "^2.3.0" }, @@ -903,9 +826,9 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/animations": "18.1.4", - "@angular/common": "18.1.4", - "@angular/core": "18.1.4" + "@angular/animations": "18.2.3", + "@angular/common": "18.2.3", + "@angular/core": "18.2.3" }, "peerDependenciesMeta": { "@angular/animations": { @@ -914,9 +837,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "18.1.4", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.1.4.tgz", - "integrity": "sha512-ZQQcKXGIriOzILTZxIbmDpGnwuiwfJ0xh2EmmnfC0zh/NB+li6whgplOLEciaHgsUKtDn7kNZFn2vKrx+B/cDQ==", + "version": "18.2.3", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.2.3.tgz", + "integrity": "sha512-nWi9ZxN4KpbJkttIckFO1PCoW0+gb/18xFO+JWyLBAtcbsudj/Mv0P/fdOaSfQdLkPhZfORr3ZcfiTkhmuGyEg==", "dependencies": { "tslib": "^2.3.0" }, @@ -924,16 +847,16 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "18.1.4", - "@angular/compiler": "18.1.4", - "@angular/core": "18.1.4", - "@angular/platform-browser": "18.1.4" + "@angular/common": "18.2.3", + "@angular/compiler": "18.2.3", + "@angular/core": "18.2.3", + "@angular/platform-browser": "18.2.3" } }, "node_modules/@angular/router": { - "version": "18.1.4", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-18.1.4.tgz", - "integrity": "sha512-982+bnO3uGFYjRFcQDoKmnWvUcZUvFxEpX/I2Yu+WmPJrY7fPJ693mBaWgwVFa0xIBNfjvJjNXdikGBz5UrMsw==", + "version": "18.2.3", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-18.2.3.tgz", + "integrity": "sha512-fvD9eSDIiIbeYoUokoWkXzu7/ZaxlzKPUHFqX1JuKuH5ciQDeT/d7lp4mj31Bxammhohzi3+z12THJYsCkj/iQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -941,16 +864,16 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "18.1.4", - "@angular/core": "18.1.4", - "@angular/platform-browser": "18.1.4", + "@angular/common": "18.2.3", + "@angular/core": "18.2.3", + "@angular/platform-browser": "18.2.3", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/service-worker": { - "version": "18.1.4", - "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-18.1.4.tgz", - "integrity": "sha512-7knx0I82ud6IWu2NOEtmtikApm/Ix8YEbXk2/J8YiN7ozGSTjTK5X8cpvFUzfG4MbARH6sxVAPffNJduzW4ZAw==", + "version": "18.2.3", + "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-18.2.3.tgz", + "integrity": "sha512-KplaBYhhwsM3gPeOImfDGhAknN+BIcZJkHl8YRnhoUEFHsTZ8LTV02C4LWQL3YTu3pK+uj/lPMKi1CA37cXQ8g==", "dependencies": { "tslib": "^2.3.0" }, @@ -961,8 +884,8 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "18.1.4", - "@angular/core": "18.1.4" + "@angular/common": "18.2.3", + "@angular/core": "18.2.3" } }, "node_modules/@babel/code-frame": { @@ -979,30 +902,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.0.tgz", - "integrity": "sha512-P4fwKI2mjEb3ZU5cnMJzvRsRKGBUcs8jvxIoRmr6ufAY9Xk2Bz7JubRTTivkw55c7WQJfTECeqYVa+HZ0FzREg==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz", + "integrity": "sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", - "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helpers": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/template": "^7.24.7", - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -1033,12 +956,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", - "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", + "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", "dev": true, "dependencies": { - "@babel/types": "^7.24.7", + "@babel/types": "^7.25.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -1073,12 +996,12 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.8.tgz", - "integrity": "sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", + "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.24.8", + "@babel/compat-data": "^7.25.2", "@babel/helper-validator-option": "^7.24.8", "browserslist": "^4.23.1", "lru-cache": "^5.1.1", @@ -1098,19 +1021,17 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz", - "integrity": "sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz", + "integrity": "sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.8", "@babel/helper-optimise-call-expression": "^7.24.7", - "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-replace-supers": "^7.25.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/traverse": "^7.25.0", "semver": "^6.3.1" }, "engines": { @@ -1130,9 +1051,9 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz", - "integrity": "sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz", + "integrity": "sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", @@ -1171,51 +1092,14 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", - "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", - "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", - "dev": true, - "dependencies": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", - "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz", - "integrity": "sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", + "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", "dev": true, "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1235,15 +1119,15 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.0.tgz", - "integrity": "sha512-bIkOa2ZJYn7FHnepzr5iX9Kmz8FjIz4UKzJ9zhX3dnYuVW0xul9RuR3skBfoLu+FPTQw90EHW9rJsSZhyLQ3fQ==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", + "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", "dev": true, "dependencies": { "@babel/helper-module-imports": "^7.24.7", "@babel/helper-simple-access": "^7.24.7", "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.0" + "@babel/traverse": "^7.25.2" }, "engines": { "node": ">=6.9.0" @@ -1265,23 +1149,23 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", - "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz", - "integrity": "sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz", + "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-wrap-function": "^7.24.7" + "@babel/helper-wrap-function": "^7.25.0", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -1291,14 +1175,14 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz", - "integrity": "sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", + "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-member-expression-to-functions": "^7.24.7", - "@babel/helper-optimise-call-expression": "^7.24.7" + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -1373,15 +1257,14 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz", - "integrity": "sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz", + "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.24.7", - "@babel/template": "^7.24.7", - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -1416,10 +1299,13 @@ } }, "node_modules/@babel/parser": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.0.tgz", - "integrity": "sha512-CzdIU9jdP0dg7HdyB+bHvDJGagUv+qtzZt5rYCWwW6tITNqV9odjp6Qu41gkG0ca5UfdDUWrKkiAnHHdGRnOrA==", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", + "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", "dev": true, + "dependencies": { + "@babel/types": "^7.25.2" + }, "bin": { "parser": "bin/babel-parser.js" }, @@ -1428,13 +1314,28 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.7.tgz", - "integrity": "sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz", + "integrity": "sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz", + "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1444,12 +1345,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.7.tgz", - "integrity": "sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz", + "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1476,13 +1377,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.7.tgz", - "integrity": "sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz", + "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -1754,15 +1655,15 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz", - "integrity": "sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz", + "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-remap-async-to-generator": "^7.24.7", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-remap-async-to-generator": "^7.25.0", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -1804,12 +1705,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz", - "integrity": "sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz", + "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1852,18 +1753,16 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.7.tgz", - "integrity": "sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz", + "integrity": "sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-replace-supers": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/traverse": "^7.25.0", "globals": "^11.1.0" }, "engines": { @@ -1890,12 +1789,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz", - "integrity": "sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", + "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1935,6 +1834,22 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz", + "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-transform-dynamic-import": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", @@ -2000,14 +1915,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz", - "integrity": "sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==", + "version": "7.25.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz", + "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.1" }, "engines": { "node": ">=6.9.0" @@ -2033,12 +1948,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz", - "integrity": "sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz", + "integrity": "sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -2095,13 +2010,13 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz", - "integrity": "sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", + "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", "@babel/helper-simple-access": "^7.24.7" }, "engines": { @@ -2112,15 +2027,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz", - "integrity": "sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz", + "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==", "dev": true, "dependencies": { - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7" + "@babel/helper-module-transforms": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -2259,12 +2174,12 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.7.tgz", - "integrity": "sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", + "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.8", "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, @@ -2461,12 +2376,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.7.tgz", - "integrity": "sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", + "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -2539,19 +2454,20 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.7.tgz", - "integrity": "sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ==", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.3.tgz", + "integrity": "sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.7", + "@babel/compat-data": "^7.25.2", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", @@ -2572,29 +2488,30 @@ "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.24.7", - "@babel/plugin-transform-async-generator-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.0", "@babel/plugin-transform-async-to-generator": "^7.24.7", "@babel/plugin-transform-block-scoped-functions": "^7.24.7", - "@babel/plugin-transform-block-scoping": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.25.0", "@babel/plugin-transform-class-properties": "^7.24.7", "@babel/plugin-transform-class-static-block": "^7.24.7", - "@babel/plugin-transform-classes": "^7.24.7", + "@babel/plugin-transform-classes": "^7.25.0", "@babel/plugin-transform-computed-properties": "^7.24.7", - "@babel/plugin-transform-destructuring": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", "@babel/plugin-transform-dotall-regex": "^7.24.7", "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", "@babel/plugin-transform-dynamic-import": "^7.24.7", "@babel/plugin-transform-exponentiation-operator": "^7.24.7", "@babel/plugin-transform-export-namespace-from": "^7.24.7", "@babel/plugin-transform-for-of": "^7.24.7", - "@babel/plugin-transform-function-name": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.25.1", "@babel/plugin-transform-json-strings": "^7.24.7", - "@babel/plugin-transform-literals": "^7.24.7", + "@babel/plugin-transform-literals": "^7.25.2", "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", "@babel/plugin-transform-member-expression-literals": "^7.24.7", "@babel/plugin-transform-modules-amd": "^7.24.7", - "@babel/plugin-transform-modules-commonjs": "^7.24.7", - "@babel/plugin-transform-modules-systemjs": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-modules-systemjs": "^7.25.0", "@babel/plugin-transform-modules-umd": "^7.24.7", "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", "@babel/plugin-transform-new-target": "^7.24.7", @@ -2603,7 +2520,7 @@ "@babel/plugin-transform-object-rest-spread": "^7.24.7", "@babel/plugin-transform-object-super": "^7.24.7", "@babel/plugin-transform-optional-catch-binding": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", "@babel/plugin-transform-parameters": "^7.24.7", "@babel/plugin-transform-private-methods": "^7.24.7", "@babel/plugin-transform-private-property-in-object": "^7.24.7", @@ -2614,7 +2531,7 @@ "@babel/plugin-transform-spread": "^7.24.7", "@babel/plugin-transform-sticky-regex": "^7.24.7", "@babel/plugin-transform-template-literals": "^7.24.7", - "@babel/plugin-transform-typeof-symbol": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.8", "@babel/plugin-transform-unicode-escapes": "^7.24.7", "@babel/plugin-transform-unicode-property-regex": "^7.24.7", "@babel/plugin-transform-unicode-regex": "^7.24.7", @@ -2623,7 +2540,7 @@ "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.10.4", "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.31.0", + "core-js-compat": "^3.37.1", "semver": "^6.3.1" }, "engines": { @@ -2663,9 +2580,9 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", - "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -2693,16 +2610,16 @@ } }, "node_modules/@babel/traverse": { - "version": "7.25.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.1.tgz", - "integrity": "sha512-LrHHoWq08ZpmmFqBAzN+hUdWwy5zt7FGa/hVwMcOqW6OVtwqaoD5utfuGYU87JYxdZgLUvktAsn37j/sYR9siA==", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz", + "integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==", "dev": true, "dependencies": { "@babel/code-frame": "^7.24.7", "@babel/generator": "^7.25.0", - "@babel/parser": "^7.25.0", + "@babel/parser": "^7.25.3", "@babel/template": "^7.25.0", - "@babel/types": "^7.25.0", + "@babel/types": "^7.25.2", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2710,25 +2627,10 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", - "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.25.0", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/types": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.0.tgz", - "integrity": "sha512-LcnxQSsd9aXOIgmmSpvZ/1yo46ra2ESYyqLcryaBZOghxy5qqOBjvCWP5JfkI8yl9rlxRgdLTTMCQQRcN2hdCg==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", + "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.24.8", @@ -2788,18 +2690,18 @@ } }, "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.1.tgz", + "integrity": "sha512-boghen8F0Q8D+0/Q1/1r6DUEieUJ8w2a1gIknExMSHBsJFOr2+0KUfHiVYBvucPwl3+RU5PFBK833FjFCh3BhA==", "dev": true, "engines": { - "node": ">=10.0.0" + "node": ">=14.17.0" } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz", + "integrity": "sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==", "cpu": [ "ppc64" ], @@ -2809,13 +2711,13 @@ "aix" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.0.tgz", + "integrity": "sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==", "cpu": [ "arm" ], @@ -2825,13 +2727,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz", + "integrity": "sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==", "cpu": [ "arm64" ], @@ -2841,13 +2743,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.0.tgz", + "integrity": "sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==", "cpu": [ "x64" ], @@ -2857,13 +2759,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz", + "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", "cpu": [ "arm64" ], @@ -2873,13 +2775,13 @@ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz", + "integrity": "sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==", "cpu": [ "x64" ], @@ -2889,13 +2791,13 @@ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz", + "integrity": "sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==", "cpu": [ "arm64" ], @@ -2905,13 +2807,13 @@ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz", + "integrity": "sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==", "cpu": [ "x64" ], @@ -2921,13 +2823,13 @@ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz", + "integrity": "sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==", "cpu": [ "arm" ], @@ -2937,13 +2839,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz", + "integrity": "sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==", "cpu": [ "arm64" ], @@ -2953,13 +2855,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz", + "integrity": "sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==", "cpu": [ "ia32" ], @@ -2969,13 +2871,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz", + "integrity": "sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==", "cpu": [ "loong64" ], @@ -2985,13 +2887,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz", + "integrity": "sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==", "cpu": [ "mips64el" ], @@ -3001,13 +2903,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz", + "integrity": "sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==", "cpu": [ "ppc64" ], @@ -3017,13 +2919,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz", + "integrity": "sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==", "cpu": [ "riscv64" ], @@ -3033,13 +2935,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz", + "integrity": "sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==", "cpu": [ "s390x" ], @@ -3049,13 +2951,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz", + "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==", "cpu": [ "x64" ], @@ -3065,13 +2967,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz", + "integrity": "sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==", "cpu": [ "x64" ], @@ -3081,13 +2983,29 @@ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz", + "integrity": "sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz", + "integrity": "sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==", "cpu": [ "x64" ], @@ -3097,13 +3015,13 @@ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz", + "integrity": "sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==", "cpu": [ "x64" ], @@ -3113,13 +3031,13 @@ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz", + "integrity": "sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==", "cpu": [ "arm64" ], @@ -3129,13 +3047,13 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz", + "integrity": "sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==", "cpu": [ "ia32" ], @@ -3145,13 +3063,13 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz", + "integrity": "sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==", "cpu": [ "x64" ], @@ -3161,7 +3079,7 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@eslint-community/eslint-utils": { @@ -3386,14 +3304,14 @@ "dev": true }, "node_modules/@inquirer/checkbox": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-2.3.10.tgz", - "integrity": "sha512-CTc864M2/523rKc9AglIzAcUCuPXDZENgc5S2KZFVRbnMzpXcYTsUWmbqSeL0XLvtlvEtNevkkVbfVhJpruOyQ==", + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-2.4.7.tgz", + "integrity": "sha512-5YwCySyV1UEgqzz34gNsC38eKxRBtlRDpJLlKcRtTjlYA/yDKuc1rfw+hjw+2WJxbAZtaDPsRl5Zk7J14SBoBw==", "dev": true, "dependencies": { - "@inquirer/core": "^9.0.2", - "@inquirer/figures": "^1.0.3", - "@inquirer/type": "^1.4.0", + "@inquirer/core": "^9.0.10", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.2", "ansi-escapes": "^4.3.2", "yoctocolors-cjs": "^2.1.2" }, @@ -3401,16 +3319,29 @@ "node": ">=18" } }, - "node_modules/@inquirer/checkbox/node_modules/@inquirer/core": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.2.tgz", - "integrity": "sha512-nguvH3TZar3ACwbytZrraRTzGqyxJfYJwv+ZwqZNatAosdWQMP1GV8zvmkNlBe2JeZSaw0WYBHZk52pDpWC9qA==", + "node_modules/@inquirer/confirm": { + "version": "3.1.22", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-3.1.22.tgz", + "integrity": "sha512-gsAKIOWBm2Q87CDfs9fEo7wJT3fwWIJfnDGMn9Qy74gBnNFOACDNfhUzovubbJjWnKLGBln7/NcSmZwj5DuEXg==", + "dev": true, + "dependencies": { + "@inquirer/core": "^9.0.10", + "@inquirer/type": "^1.5.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/core": { + "version": "9.0.10", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.10.tgz", + "integrity": "sha512-TdESOKSVwf6+YWDz8GhS6nKscwzkIyakEzCLJ5Vh6O3Co2ClhCJ0A4MG909MUWfaWdpJm7DE45ii51/2Kat9tA==", "dev": true, "dependencies": { - "@inquirer/figures": "^1.0.3", - "@inquirer/type": "^1.4.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.2", "@types/mute-stream": "^0.0.4", - "@types/node": "^20.14.9", + "@types/node": "^22.1.0", "@types/wrap-ansi": "^3.0.0", "ansi-escapes": "^4.3.2", "cli-spinners": "^2.9.2", @@ -3425,7 +3356,16 @@ "node": ">=18" } }, - "node_modules/@inquirer/checkbox/node_modules/ansi-styles": { + "node_modules/@inquirer/core/node_modules/@types/node": { + "version": "22.4.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.4.1.tgz", + "integrity": "sha512-1tbpb9325+gPnKK0dMm+/LMriX0vKxf6RnB0SZUqfyVkQ4fMgUSySqhxE/y8Jvs4NyF1yHzTfG9KlnkIODxPKg==", + "dev": true, + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@inquirer/core/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -3440,19 +3380,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@inquirer/checkbox/node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@inquirer/checkbox/node_modules/color-convert": { + "node_modules/@inquirer/core/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -3464,19 +3392,19 @@ "node": ">=7.0.0" } }, - "node_modules/@inquirer/checkbox/node_modules/color-name": { + "node_modules/@inquirer/core/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/@inquirer/checkbox/node_modules/emoji-regex": { + "node_modules/@inquirer/core/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "node_modules/@inquirer/checkbox/node_modules/signal-exit": { + "node_modules/@inquirer/core/node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", @@ -3488,7 +3416,7 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@inquirer/checkbox/node_modules/string-width": { + "node_modules/@inquirer/core/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", @@ -3502,7 +3430,7 @@ "node": ">=8" } }, - "node_modules/@inquirer/checkbox/node_modules/wrap-ansi": { + "node_modules/@inquirer/core/node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", @@ -3516,1156 +3444,1050 @@ "node": ">=8" } }, - "node_modules/@inquirer/confirm": { - "version": "3.1.11", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-3.1.11.tgz", - "integrity": "sha512-3wWw10VPxQP279FO4bzWsf8YjIAq7NdwATJ4xS2h1uwsXZu/RmtOVV95rZ7yllS1h/dzu+uLewjMAzNDEj8h2w==", + "node_modules/@inquirer/editor": { + "version": "2.1.22", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-2.1.22.tgz", + "integrity": "sha512-K1QwTu7GCK+nKOVRBp5HY9jt3DXOfPGPr6WRDrPImkcJRelG9UTx2cAtK1liXmibRrzJlTWOwqgWT3k2XnS62w==", "dev": true, "dependencies": { - "@inquirer/core": "^8.2.4", - "@inquirer/type": "^1.3.3" + "@inquirer/core": "^9.0.10", + "@inquirer/type": "^1.5.2", + "external-editor": "^3.1.0" }, "engines": { "node": ">=18" } }, - "node_modules/@inquirer/core": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-8.2.4.tgz", - "integrity": "sha512-7vsXSfxtrrbwMTirfaKwPcjqJy7pzeuF/bP62yo1NQrRJ5HjmMlrhZml/Ljm9ODc1RnbhJlTeSnCkjtFddKjwA==", + "node_modules/@inquirer/expand": { + "version": "2.1.22", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-2.1.22.tgz", + "integrity": "sha512-wTZOBkzH+ItPuZ3ZPa9lynBsdMp6kQ9zbjVPYEtSBG7UulGjg2kQiAnUjgyG4SlntpTce5bOmXAPvE4sguXjpA==", "dev": true, "dependencies": { - "@inquirer/figures": "^1.0.3", - "@inquirer/type": "^1.3.3", - "@types/mute-stream": "^0.0.4", - "@types/node": "^20.14.9", - "@types/wrap-ansi": "^3.0.0", - "ansi-escapes": "^4.3.2", - "cli-spinners": "^2.9.2", - "cli-width": "^4.1.0", - "mute-stream": "^1.0.0", - "picocolors": "^1.0.1", - "signal-exit": "^4.1.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.2.0" + "@inquirer/core": "^9.0.10", + "@inquirer/type": "^1.5.2", + "yoctocolors-cjs": "^2.1.2" }, "engines": { "node": ">=18" } }, - "node_modules/@inquirer/core/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@inquirer/figures": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.5.tgz", + "integrity": "sha512-79hP/VWdZ2UVc9bFGJnoQ/lQMpL74mGgzSYX1xUqCVk7/v73vJCMw1VuyWN1jGkZ9B3z7THAbySqGbCNefcjfA==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=18" } }, - "node_modules/@inquirer/core/node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "node_modules/@inquirer/input": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-2.2.9.tgz", + "integrity": "sha512-7Z6N+uzkWM7+xsE+3rJdhdG/+mQgejOVqspoW+w0AbSZnL6nq5tGMEVASaYVWbkoSzecABWwmludO2evU3d31g==", "dev": true, - "engines": { - "node": ">=6" + "dependencies": { + "@inquirer/core": "^9.0.10", + "@inquirer/type": "^1.5.2" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=18" } }, - "node_modules/@inquirer/core/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/@inquirer/number": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-1.0.10.tgz", + "integrity": "sha512-kWTxRF8zHjQOn2TJs+XttLioBih6bdc5CcosXIzZsrTY383PXI35DuhIllZKu7CdXFi2rz2BWPN9l0dPsvrQOA==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "@inquirer/core": "^9.0.10", + "@inquirer/type": "^1.5.2" }, "engines": { - "node": ">=7.0.0" + "node": ">=18" } }, - "node_modules/@inquirer/core/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@inquirer/core/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/@inquirer/core/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "node_modules/@inquirer/password": { + "version": "2.1.22", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-2.1.22.tgz", + "integrity": "sha512-5Fxt1L9vh3rAKqjYwqsjU4DZsEvY/2Gll+QkqR4yEpy6wvzLxdSgFhUcxfDAOtO4BEoTreWoznC0phagwLU5Kw==", "dev": true, - "engines": { - "node": ">=14" + "dependencies": { + "@inquirer/core": "^9.0.10", + "@inquirer/type": "^1.5.2", + "ansi-escapes": "^4.3.2" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": ">=18" } }, - "node_modules/@inquirer/core/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/@inquirer/prompts": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-5.3.8.tgz", + "integrity": "sha512-b2BudQY/Si4Y2a0PdZZL6BeJtl8llgeZa7U2j47aaJSCeAl1e4UI7y8a9bSkO3o/ZbZrgT5muy/34JbsjfIWxA==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "@inquirer/checkbox": "^2.4.7", + "@inquirer/confirm": "^3.1.22", + "@inquirer/editor": "^2.1.22", + "@inquirer/expand": "^2.1.22", + "@inquirer/input": "^2.2.9", + "@inquirer/number": "^1.0.10", + "@inquirer/password": "^2.1.22", + "@inquirer/rawlist": "^2.2.4", + "@inquirer/search": "^1.0.7", + "@inquirer/select": "^2.4.7" }, "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/@inquirer/core/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "node_modules/@inquirer/rawlist": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-2.2.4.tgz", + "integrity": "sha512-pb6w9pWrm7EfnYDgQObOurh2d2YH07+eDo3xQBsNAM2GRhliz6wFXGi1thKQ4bN6B0xDd6C3tBsjdr3obsCl3Q==", "dev": true, "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "@inquirer/core": "^9.0.10", + "@inquirer/type": "^1.5.2", + "yoctocolors-cjs": "^2.1.2" }, "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/@inquirer/editor": { - "version": "2.1.14", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-2.1.14.tgz", - "integrity": "sha512-6nWpoJyVAKwAcv67bkbBmmi3f32xua79fP7TRmNUoR4K+B1GiOBsHO1YdvET/jvC+nTlBZL7puKAKyM7G+Lkzw==", + "node_modules/@inquirer/search": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-1.0.7.tgz", + "integrity": "sha512-p1wpV+3gd1eST/o5N3yQpYEdFNCzSP0Klrl+5bfD3cTTz8BGG6nf4Z07aBW0xjlKIj1Rp0y3x/X4cZYi6TfcLw==", "dev": true, "dependencies": { - "@inquirer/core": "^9.0.2", - "@inquirer/type": "^1.4.0", - "external-editor": "^3.1.0" + "@inquirer/core": "^9.0.10", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.2", + "yoctocolors-cjs": "^2.1.2" }, "engines": { "node": ">=18" } }, - "node_modules/@inquirer/editor/node_modules/@inquirer/core": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.2.tgz", - "integrity": "sha512-nguvH3TZar3ACwbytZrraRTzGqyxJfYJwv+ZwqZNatAosdWQMP1GV8zvmkNlBe2JeZSaw0WYBHZk52pDpWC9qA==", + "node_modules/@inquirer/select": { + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-2.4.7.tgz", + "integrity": "sha512-JH7XqPEkBpNWp3gPCqWqY8ECbyMoFcCZANlL6pV9hf59qK6dGmkOlx1ydyhY+KZ0c5X74+W6Mtp+nm2QX0/MAQ==", "dev": true, "dependencies": { - "@inquirer/figures": "^1.0.3", - "@inquirer/type": "^1.4.0", - "@types/mute-stream": "^0.0.4", - "@types/node": "^20.14.9", - "@types/wrap-ansi": "^3.0.0", + "@inquirer/core": "^9.0.10", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.2", "ansi-escapes": "^4.3.2", - "cli-spinners": "^2.9.2", - "cli-width": "^4.1.0", - "mute-stream": "^1.0.0", - "signal-exit": "^4.1.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.2.0", "yoctocolors-cjs": "^2.1.2" }, "engines": { "node": ">=18" } }, - "node_modules/@inquirer/editor/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@inquirer/type": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.2.tgz", + "integrity": "sha512-w9qFkumYDCNyDZmNQjf/n6qQuvQ4dMC3BJesY4oF+yr0CxR5vxujflAVeIcS6U336uzi9GM0kAfZlLrZ9UTkpA==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "mute-stream": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "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" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "engines": { + "node": ">=12" } }, - "node_modules/@inquirer/editor/node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, "engines": { - "node": ">=6" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@inquirer/editor/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=7.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@inquirer/editor/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@inquirer/editor/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/@inquirer/editor/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=8" } }, - "node_modules/@inquirer/editor/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { - "node": ">=8" + "node": ">=6.0.0" } }, - "node_modules/@inquirer/editor/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, "engines": { - "node": ">=8" + "node": ">=6.0.0" } }, - "node_modules/@inquirer/expand": { - "version": "2.1.14", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-2.1.14.tgz", - "integrity": "sha512-JcxsLajwPykF2kq6biIUdoOzTQ3LXqb8XMVrWkCprG/pFeU1SsxcSSFbF1T5jJGvvlTVcsE+JdGjbQ8ZRZ82RA==", + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, - "dependencies": { - "@inquirer/core": "^9.0.2", - "@inquirer/type": "^1.4.0", - "yoctocolors-cjs": "^2.1.2" - }, "engines": { - "node": ">=18" + "node": ">=6.0.0" } }, - "node_modules/@inquirer/expand/node_modules/@inquirer/core": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.2.tgz", - "integrity": "sha512-nguvH3TZar3ACwbytZrraRTzGqyxJfYJwv+ZwqZNatAosdWQMP1GV8zvmkNlBe2JeZSaw0WYBHZk52pDpWC9qA==", + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", "dev": true, "dependencies": { - "@inquirer/figures": "^1.0.3", - "@inquirer/type": "^1.4.0", - "@types/mute-stream": "^0.0.4", - "@types/node": "^20.14.9", - "@types/wrap-ansi": "^3.0.0", - "ansi-escapes": "^4.3.2", - "cli-spinners": "^2.9.2", - "cli-width": "^4.1.0", - "mute-stream": "^1.0.0", - "signal-exit": "^4.1.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.2.0", - "yoctocolors-cjs": "^2.1.2" - }, - "engines": { - "node": ">=18" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" } }, - "node_modules/@inquirer/expand/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@inquirer/expand/node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "node_modules/@jsonjoy.com/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", "dev": true, "engines": { - "node": ">=6" + "node": ">=10.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@inquirer/expand/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/@jsonjoy.com/json-pack": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.0.tgz", + "integrity": "sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "@jsonjoy.com/base64": "^1.1.1", + "@jsonjoy.com/util": "^1.1.2", + "hyperdyperid": "^1.2.0", + "thingies": "^1.20.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@inquirer/expand/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@inquirer/expand/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/@inquirer/expand/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "node_modules/@jsonjoy.com/util": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.3.0.tgz", + "integrity": "sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw==", "dev": true, "engines": { - "node": ">=14" + "node": ">=10.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@inquirer/expand/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/@kurkle/color": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz", + "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==" + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "dev": true + }, + "node_modules/@listr2/prompt-adapter-inquirer": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-2.0.15.tgz", + "integrity": "sha512-MZrGem/Ujjd4cPTLYDfCZK2iKKeiO/8OX13S6jqxldLs0Prf2aGqVlJ77nMBqMv7fzqgXEgjrNHLXcKR8l9lOg==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "@inquirer/type": "^1.5.1" }, "engines": { - "node": ">=8" + "node": ">=18.0.0" + }, + "peerDependencies": { + "@inquirer/prompts": ">= 3 < 6" } }, - "node_modules/@inquirer/expand/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "node_modules/@lmdb/lmdb-darwin-arm64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.0.13.tgz", + "integrity": "sha512-uiKPB0Fv6WEEOZjruu9a6wnW/8jrjzlZbxXscMB8kuCJ1k6kHpcBnuvaAWcqhbI7rqX5GKziwWEdD+wi2gNLfA==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@inquirer/figures": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.3.tgz", - "integrity": "sha512-ErXXzENMH5pJt5/ssXV0DfWUZqly8nGzf0UcBV9xTnP+KyffE2mqyxIMBrZ8ijQck2nU0TQm40EQB53YreyWHw==", + "node_modules/@lmdb/lmdb-darwin-x64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.0.13.tgz", + "integrity": "sha512-bEVIIfK5mSQoG1R19qA+fJOvCB+0wVGGnXHT3smchBVahYBdlPn2OsZZKzlHWfb1E+PhLBmYfqB5zQXFP7hJig==", + "cpu": [ + "x64" + ], "dev": true, - "engines": { - "node": ">=18" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@inquirer/input": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-2.2.1.tgz", - "integrity": "sha512-Yl1G6h7qWydzrJwqN777geeJVaAFL5Ly83aZlw4xHf8Z/BoTMfKRheyuMaQwOG7LQ4e5nQP7PxXdEg4SzQ+OKw==", + "node_modules/@lmdb/lmdb-linux-arm": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.0.13.tgz", + "integrity": "sha512-Yml1KlMzOnXj/tnW7yX8U78iAzTk39aILYvCPbqeewAq1kSzl+w59k/fiVkTBfvDi/oW/5YRxL+Fq+Y1Fr1r2Q==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-linux-arm64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.0.13.tgz", + "integrity": "sha512-afbVrsMgZ9dUTNUchFpj5VkmJRxvht/u335jUJ7o23YTbNbnpmXif3VKQGCtnjSh+CZaqm6N3CPG8KO3zwyZ1Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-linux-x64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.0.13.tgz", + "integrity": "sha512-vOtxu0xC0SLdQ2WRXg8Qgd8T32ak4SPqk5zjItRszrJk2BdeXqfGxBJbP7o4aOvSPSmSSv46Lr1EP4HXU8v7Kg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-win32-x64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.0.13.tgz", + "integrity": "sha512-UCrMJQY/gJnOl3XgbWRZZUvGGBuKy6i0YNSptgMzHBjs+QYDYR1Mt/RLTOPy4fzzves65O1EDmlL//OzEqoLlA==", + "cpu": [ + "x64" + ], "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", + "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", + "optional": true, "dependencies": { - "@inquirer/core": "^9.0.2", - "@inquirer/type": "^1.4.0" + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" }, - "engines": { - "node": ">=18" + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" } }, - "node_modules/@inquirer/input/node_modules/@inquirer/core": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.2.tgz", - "integrity": "sha512-nguvH3TZar3ACwbytZrraRTzGqyxJfYJwv+ZwqZNatAosdWQMP1GV8zvmkNlBe2JeZSaw0WYBHZk52pDpWC9qA==", - "dev": true, + "node_modules/@mapbox/node-pre-gyp/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "optional": true, "dependencies": { - "@inquirer/figures": "^1.0.3", - "@inquirer/type": "^1.4.0", - "@types/mute-stream": "^0.0.4", - "@types/node": "^20.14.9", - "@types/wrap-ansi": "^3.0.0", - "ansi-escapes": "^4.3.2", - "cli-spinners": "^2.9.2", - "cli-width": "^4.1.0", - "mute-stream": "^1.0.0", - "signal-exit": "^4.1.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.2.0", - "yoctocolors-cjs": "^2.1.2" + "debug": "4" }, "engines": { - "node": ">=18" + "node": ">= 6.0.0" } }, - "node_modules/@inquirer/input/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, + "node_modules/@mapbox/node-pre-gyp/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "optional": true, "dependencies": { - "color-convert": "^2.0.1" + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">= 6" } }, - "node_modules/@inquirer/input/node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "dev": true, + "node_modules/@mapbox/node-pre-gyp/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "optional": true, + "dependencies": { + "semver": "^6.0.0" + }, "engines": { - "node": ">=6" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@inquirer/input/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, + "node_modules/@mapbox/node-pre-gyp/node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "optional": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "optional": true, "dependencies": { - "color-name": "~1.1.4" + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" }, "engines": { - "node": ">=7.0.0" + "node": ">=6" } }, - "node_modules/@inquirer/input/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@inquirer/input/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "node_modules/@material/feature-targeting": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-14.0.0.tgz", + "integrity": "sha512-a5WGgHEq5lJeeNL5yevtgoZjBjXWy6+klfVWQEh8oyix/rMJygGgO7gEc52uv8fB8uAIoYEB3iBMOv8jRq8FeA==", + "dependencies": { + "tslib": "^2.1.0" + } }, - "node_modules/@inquirer/input/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node_modules/@material/theme": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@material/theme/-/theme-14.0.0.tgz", + "integrity": "sha512-6/SENWNIFuXzeHMPHrYwbsXKgkvCtWuzzQ3cUu4UEt3KcQ5YpViazIM6h8ByYKZP8A9d8QpkJ0WGX5btGDcVoA==", + "dependencies": { + "@material/feature-targeting": "^14.0.0", + "tslib": "^2.1.0" } }, - "node_modules/@inquirer/input/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, + "node_modules/@material/typography": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@material/typography/-/typography-14.0.0.tgz", + "integrity": "sha512-/QtHBYiTR+TPMryM/CT386B2WlAQf/Ae32V324Z7P40gHLKY/YBXx7FDutAWZFeOerq/two4Nd2aAHBcMM2wMw==", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" + "@material/feature-targeting": "^14.0.0", + "@material/theme": "^14.0.0", + "tslib": "^2.1.0" } }, - "node_modules/@inquirer/input/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz", + "integrity": "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@inquirer/password": { - "version": "2.1.14", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-2.1.14.tgz", - "integrity": "sha512-sPzOkXLhWJQ96K6nPZFnF8XB8tsDrcCRobd1d3EDz81F+4hp8BbdmsnsQcqZ7oYDIOVM/mWJyIUtJ35TrssJxQ==", + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz", + "integrity": "sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@inquirer/core": "^9.0.2", - "@inquirer/type": "^1.4.0", - "ansi-escapes": "^4.3.2" - }, - "engines": { - "node": ">=18" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@inquirer/password/node_modules/@inquirer/core": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.2.tgz", - "integrity": "sha512-nguvH3TZar3ACwbytZrraRTzGqyxJfYJwv+ZwqZNatAosdWQMP1GV8zvmkNlBe2JeZSaw0WYBHZk52pDpWC9qA==", + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz", + "integrity": "sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "@inquirer/figures": "^1.0.3", - "@inquirer/type": "^1.4.0", - "@types/mute-stream": "^0.0.4", - "@types/node": "^20.14.9", - "@types/wrap-ansi": "^3.0.0", - "ansi-escapes": "^4.3.2", - "cli-spinners": "^2.9.2", - "cli-width": "^4.1.0", - "mute-stream": "^1.0.0", - "signal-exit": "^4.1.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.2.0", - "yoctocolors-cjs": "^2.1.2" - }, - "engines": { - "node": ">=18" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@inquirer/password/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz", + "integrity": "sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@inquirer/password/node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz", + "integrity": "sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz", + "integrity": "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@ngtools/webpack": { + "version": "18.2.3", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-18.2.3.tgz", + "integrity": "sha512-DDuBHcu23qckt43SexBJaPEIeMc/HKaFOidILZM9D4gU4C9VroMActdR218dvQ802QfL0S46t5Ykz8ENprIfjA==", "dev": true, "engines": { - "node": ">=6" + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@angular/compiler-cli": "^18.0.0", + "typescript": ">=5.4 <5.6", + "webpack": "^5.54.0" } }, - "node_modules/@inquirer/password/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, + "node_modules/@ngx-pwa/local-storage": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@ngx-pwa/local-storage/-/local-storage-18.0.0.tgz", + "integrity": "sha512-Lmcd0uHayDoO1I5UbwsoVKSlx7aEF86k2amb8dbdF5z0SRKhRN5p7sIXQy6DjC0mkLFBpjYOOzq6kQrqX1kW7Q==", "dependencies": { - "color-name": "~1.1.4" + "tslib": "^2.5.0" }, - "engines": { - "node": ">=7.0.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/cyrilletuzi" + }, + "peerDependencies": { + "@angular/common": "^18.0.0", + "@angular/core": "^18.0.0", + "rxjs": "^7.6.0" } }, - "node_modules/@inquirer/password/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "node_modules/@ngx-translate/core": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-15.0.0.tgz", + "integrity": "sha512-Am5uiuR0bOOxyoercDnAA3rJVizo4RRqJHo8N3RqJ+XfzVP/I845yEnMADykOHvM6HkVm4SZSnJBOiz0Anx5BA==", + "engines": { + "node": "^16.13.0 || >=18.10.0" + }, + "peerDependencies": { + "@angular/common": ">=16.0.0", + "@angular/core": ">=16.0.0", + "rxjs": "^6.5.5 || ^7.4.0" + } }, - "node_modules/@inquirer/password/node_modules/emoji-regex": { + "node_modules/@ngx-translate/http-loader": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/@inquirer/password/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, + "resolved": "https://registry.npmjs.org/@ngx-translate/http-loader/-/http-loader-8.0.0.tgz", + "integrity": "sha512-SFMsdUcmHF5OdZkL1CHEoSAwbP5EbAOPTLLboOCRRoOg21P4GJx+51jxGdJeGve6LSKLf4Pay7BkTwmE6vxYlg==", "engines": { - "node": ">=14" + "node": "^16.13.0 || >=18.10.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "@angular/common": ">=16.0.0", + "@angular/core": ">=16.0.0", + "@ngx-translate/core": ">=15.0.0", + "rxjs": "^6.5.5 || ^7.4.0" } }, - "node_modules/@inquirer/password/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">=8" + "node": ">= 8" } }, - "node_modules/@inquirer/password/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, "engines": { - "node": ">=8" + "node": ">= 8" } }, - "node_modules/@inquirer/prompts": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-5.0.7.tgz", - "integrity": "sha512-GFcigCxJTKCH3aECzMIu4FhgLJWnFvMXzpI4CCSoELWFtkOOU2P+goYA61+OKpGrB8fPE7q6n8zAXBSlZRrHjQ==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "dependencies": { - "@inquirer/checkbox": "^2.3.7", - "@inquirer/confirm": "^3.1.11", - "@inquirer/editor": "^2.1.11", - "@inquirer/expand": "^2.1.11", - "@inquirer/input": "^2.1.11", - "@inquirer/password": "^2.1.11", - "@inquirer/rawlist": "^2.1.11", - "@inquirer/select": "^2.3.7" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, "engines": { - "node": ">=18" + "node": ">= 8" } }, - "node_modules/@inquirer/rawlist": { - "version": "2.1.14", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-2.1.14.tgz", - "integrity": "sha512-pLpEzhKNQ/ugFAFfgCNaXljB+dcCwmXwR1jOxAbVeFIdB3l02E5gjI+h1rb136tq0T8JO6P5KFR1oTeld/wdrA==", + "node_modules/@npmcli/agent": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", + "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", "dev": true, "dependencies": { - "@inquirer/core": "^9.0.2", - "@inquirer/type": "^1.4.0", - "yoctocolors-cjs": "^2.1.2" - }, + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, "engines": { - "node": ">=18" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@inquirer/rawlist/node_modules/@inquirer/core": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.2.tgz", - "integrity": "sha512-nguvH3TZar3ACwbytZrraRTzGqyxJfYJwv+ZwqZNatAosdWQMP1GV8zvmkNlBe2JeZSaw0WYBHZk52pDpWC9qA==", + "node_modules/@npmcli/agent/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, + "node_modules/@npmcli/fs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", "dev": true, "dependencies": { - "@inquirer/figures": "^1.0.3", - "@inquirer/type": "^1.4.0", - "@types/mute-stream": "^0.0.4", - "@types/node": "^20.14.9", - "@types/wrap-ansi": "^3.0.0", - "ansi-escapes": "^4.3.2", - "cli-spinners": "^2.9.2", - "cli-width": "^4.1.0", - "mute-stream": "^1.0.0", - "signal-exit": "^4.1.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.2.0", - "yoctocolors-cjs": "^2.1.2" + "semver": "^7.3.5" }, "engines": { - "node": ">=18" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@inquirer/rawlist/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@npmcli/git": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.8.tgz", + "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" + "@npmcli/promise-spawn": "^7.0.0", + "ini": "^4.1.3", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", + "proc-log": "^4.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^4.0.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@inquirer/rawlist/node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "dev": true, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@inquirer/rawlist/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/@npmcli/git/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, "engines": { - "node": ">=7.0.0" + "node": ">=16" } }, - "node_modules/@inquirer/rawlist/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@inquirer/rawlist/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true }, - "node_modules/@inquirer/rawlist/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "node_modules/@npmcli/git/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, - "engines": { - "node": ">=14" + "dependencies": { + "isexe": "^3.1.1" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" } }, - "node_modules/@inquirer/rawlist/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/@npmcli/installed-package-contents": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", + "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "bin": { + "installed-package-contents": "bin/index.js" }, "engines": { - "node": ">=8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@inquirer/rawlist/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "node_modules/@npmcli/node-gyp": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", + "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, "engines": { - "node": ">=8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@inquirer/select": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-2.3.10.tgz", - "integrity": "sha512-rr7iR0Zj1YFfgM8IUGimPD9Yukd+n/U63CnYT9kdum6DbRXtMxR45rrreP+EA9ixCnShr+W4xj7suRxC1+8t9g==", + "node_modules/@npmcli/package-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.0.tgz", + "integrity": "sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==", "dev": true, "dependencies": { - "@inquirer/core": "^9.0.2", - "@inquirer/figures": "^1.0.3", - "@inquirer/type": "^1.4.0", - "ansi-escapes": "^4.3.2", - "yoctocolors-cjs": "^2.1.2" + "@npmcli/git": "^5.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^7.0.0", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "proc-log": "^4.0.0", + "semver": "^7.5.3" }, "engines": { - "node": ">=18" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@inquirer/select/node_modules/@inquirer/core": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.2.tgz", - "integrity": "sha512-nguvH3TZar3ACwbytZrraRTzGqyxJfYJwv+ZwqZNatAosdWQMP1GV8zvmkNlBe2JeZSaw0WYBHZk52pDpWC9qA==", + "node_modules/@npmcli/package-json/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { - "@inquirer/figures": "^1.0.3", - "@inquirer/type": "^1.4.0", - "@types/mute-stream": "^0.0.4", - "@types/node": "^20.14.9", - "@types/wrap-ansi": "^3.0.0", - "ansi-escapes": "^4.3.2", - "cli-spinners": "^2.9.2", - "cli-width": "^4.1.0", - "mute-stream": "^1.0.0", - "signal-exit": "^4.1.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^6.2.0", - "yoctocolors-cjs": "^2.1.2" - }, - "engines": { - "node": ">=18" + "balanced-match": "^1.0.0" } }, - "node_modules/@inquirer/select/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@npmcli/package-json/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "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" }, - "engines": { - "node": ">=8" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@inquirer/select/node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "node_modules/@npmcli/package-json/node_modules/json-parse-even-better-errors": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", + "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", "dev": true, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@inquirer/select/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/@npmcli/package-json/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@inquirer/select/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@inquirer/select/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/@inquirer/select/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@inquirer/select/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/@npmcli/promise-spawn": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", + "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "which": "^4.0.0" }, "engines": { - "node": ">=8" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@inquirer/select/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "node_modules/@npmcli/promise-spawn/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, "engines": { - "node": ">=8" + "node": ">=16" } }, - "node_modules/@inquirer/type": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.4.0.tgz", - "integrity": "sha512-AjOqykVyjdJQvtfkNDGUyMYGF8xN50VUxftCQWsOyIo4DFRLr6VQhW0VItGI1JIyQGCGgIpKa7hMMwNhZb4OIw==", + "node_modules/@npmcli/promise-spawn/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, "dependencies": { - "mute-stream": "^1.0.0" + "isexe": "^3.1.1" }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "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" + "bin": { + "node-which": "bin/which.js" }, "engines": { - "node": ">=12" + "node": "^16.13.0 || >=18.0.0" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "node_modules/@npmcli/redact": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-2.0.1.tgz", + "integrity": "sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==", "dev": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/@npmcli/run-script": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-8.1.0.tgz", + "integrity": "sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==", "dev": true, "dependencies": { - "ansi-regex": "^6.0.1" + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "node-gyp": "^10.0.0", + "proc-log": "^4.0.0", + "which": "^4.0.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "node_modules/@npmcli/run-script/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "dev": true, "engines": { - "node": ">=8" + "node": ">=16" } }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "node_modules/@npmcli/run-script/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, "dependencies": { - "@sinclair/typebox": "^0.27.8" + "isexe": "^3.1.1" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" + "bin": { + "node-which": "bin/which.js" }, "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" + "node": "^16.13.0 || >=18.0.0" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "node_modules/@phenomnomnominal/tsquery": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-6.1.3.tgz", + "integrity": "sha512-CEqpJ872StsxRmwv9ePCZ4BCisrJSlREUC5XxIRYxhvODt4aQoJFFmjTgaP6meyKiiXxxN/VWPZ58j4yHXRkmw==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@jsonjoy.com/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", - "dev": true, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" + "@types/esquery": "^1.5.0", + "esquery": "^1.5.0" }, "peerDependencies": { - "tslib": "2" + "typescript": "^3 || ^4 || ^5" } }, - "node_modules/@jsonjoy.com/json-pack": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.0.tgz", - "integrity": "sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==", + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, - "dependencies": { - "@jsonjoy.com/base64": "^1.1.1", - "@jsonjoy.com/util": "^1.1.2", - "hyperdyperid": "^1.2.0", - "thingies": "^1.20.0" - }, + "optional": true, "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "node": ">=14" } }, - "node_modules/@jsonjoy.com/util": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.3.0.tgz", - "integrity": "sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw==", + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", "dev": true, "engines": { - "node": ">=10.0" + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "url": "https://opencollective.com/unts" } }, - "node_modules/@kurkle/color": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz", - "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==" + "node_modules/@remirror/core-constants": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-2.0.2.tgz", + "integrity": "sha512-dyHY+sMF0ihPus3O27ODd4+agdHMEmuRdyiZJ2CCWjPV5UFmn17ZbElvk6WOGVE4rdCJKZQCrPV2BcikOMLUGQ==" }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", - "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", - "dev": true + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.20.0.tgz", + "integrity": "sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] }, - "node_modules/@listr2/prompt-adapter-inquirer": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-2.0.13.tgz", - "integrity": "sha512-nAl6teTt7EWSjttNavAnv3uFR3w3vPP3OTYmHyPNHzKhAj2NoBDHmbS3MGpvvO8KXXPASnHjEGrrKrdKTMKPnQ==", + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.20.0.tgz", + "integrity": "sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "@inquirer/type": "^1.3.3" - }, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@inquirer/prompts": ">= 3 < 6" - } + "optional": true, + "os": [ + "android" + ] }, - "node_modules/@lmdb/lmdb-darwin-arm64": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.0.12.tgz", - "integrity": "sha512-vgTwzNUD3Hy4aqtGhX2+nV/usI0mwy3hDRuTjs8VcK0BLiMVEpNQXgzwlWEgPmA8AAPloUgyOs2nK5clJF5oIg==", + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.20.0.tgz", + "integrity": "sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==", "cpu": [ "arm64" ], @@ -4675,10 +4497,10 @@ "darwin" ] }, - "node_modules/@lmdb/lmdb-darwin-x64": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.0.12.tgz", - "integrity": "sha512-qOt0hAhj2ZLY6aEWu85rzt5zcyCAQITMhCMEPNlo1tuYekpVAdkQNiwXxEkCjBYvwTskvXuwXOOUpjuSc+aJnA==", + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.20.0.tgz", + "integrity": "sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==", "cpu": [ "x64" ], @@ -4688,10 +4510,10 @@ "darwin" ] }, - "node_modules/@lmdb/lmdb-linux-arm": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.0.12.tgz", - "integrity": "sha512-Ggd/UXpE+alMncbELCXA3OKpDj9bDBR3qVO7WRTxstloDglRAHfZmUJgTkeaNKjFO1JHqS7AKy0jba9XebZB1w==", + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.20.0.tgz", + "integrity": "sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==", "cpu": [ "arm" ], @@ -4701,12 +4523,12 @@ "linux" ] }, - "node_modules/@lmdb/lmdb-linux-arm64": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.0.12.tgz", - "integrity": "sha512-Qy4cFXFe9h1wAWMsojex8x1ifvw2kqiZv686YiRTdQEzAfc3vJASHFcD/QejHUCx7YHMYdnUoCS45rG2AiGDTQ==", + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.20.0.tgz", + "integrity": "sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==", "cpu": [ - "arm64" + "arm" ], "dev": true, "optional": true, @@ -4714,12 +4536,12 @@ "linux" ] }, - "node_modules/@lmdb/lmdb-linux-x64": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.0.12.tgz", - "integrity": "sha512-c+noT9IofktxktFllKHFmci8ka2SYGSLN17pj/KSl1hg7mmfAiGp4xxFxEwMLTb+SX95vP1DFiR++1I3WLVxvA==", + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.20.0.tgz", + "integrity": "sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==", "cpu": [ - "x64" + "arm64" ], "dev": true, "optional": true, @@ -4727,162 +4549,77 @@ "linux" ] }, - "node_modules/@lmdb/lmdb-win32-x64": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.0.12.tgz", - "integrity": "sha512-CO3MFV8gUx16NU/CyyuumAKblESwvoGVA2XhQKZ976OTOxaTbb8F8D3f0iiZ4MYqsN74jIrFuCmXpPnpjbhfOQ==", + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.20.0.tgz", + "integrity": "sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==", "cpu": [ - "x64" + "arm64" ], "dev": true, "optional": true, "os": [ - "win32" + "linux" ] }, - "node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", - "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", - "optional": true, - "dependencies": { - "detect-libc": "^2.0.0", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.7", - "nopt": "^5.0.0", - "npmlog": "^5.0.1", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.11" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "optional": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "optional": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "optional": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.20.0.tgz", + "integrity": "sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==", + "cpu": [ + "ppc64" + ], + "dev": true, "optional": true, - "bin": { - "semver": "bin/semver.js" - } + "os": [ + "linux" + ] }, - "node_modules/@mapbox/node-pre-gyp/node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.20.0.tgz", + "integrity": "sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==", + "cpu": [ + "riscv64" + ], + "dev": true, "optional": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@material/feature-targeting": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-14.0.0.tgz", - "integrity": "sha512-a5WGgHEq5lJeeNL5yevtgoZjBjXWy6+klfVWQEh8oyix/rMJygGgO7gEc52uv8fB8uAIoYEB3iBMOv8jRq8FeA==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/@material/theme": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-14.0.0.tgz", - "integrity": "sha512-6/SENWNIFuXzeHMPHrYwbsXKgkvCtWuzzQ3cUu4UEt3KcQ5YpViazIM6h8ByYKZP8A9d8QpkJ0WGX5btGDcVoA==", - "dependencies": { - "@material/feature-targeting": "^14.0.0", - "tslib": "^2.1.0" - } - }, - "node_modules/@material/typography": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-14.0.0.tgz", - "integrity": "sha512-/QtHBYiTR+TPMryM/CT386B2WlAQf/Ae32V324Z7P40gHLKY/YBXx7FDutAWZFeOerq/two4Nd2aAHBcMM2wMw==", - "dependencies": { - "@material/feature-targeting": "^14.0.0", - "@material/theme": "^14.0.0", - "tslib": "^2.1.0" - } + "os": [ + "linux" + ] }, - "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz", - "integrity": "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==", + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.20.0.tgz", + "integrity": "sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==", "cpu": [ - "arm64" + "s390x" ], "dev": true, "optional": true, "os": [ - "darwin" + "linux" ] }, - "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz", - "integrity": "sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==", + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.20.0.tgz", + "integrity": "sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==", "cpu": [ "x64" ], "dev": true, "optional": true, "os": [ - "darwin" + "linux" ] }, - "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz", - "integrity": "sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==", + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.20.0.tgz", + "integrity": "sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==", "cpu": [ - "arm" + "x64" ], "dev": true, "optional": true, @@ -4890,36 +4627,36 @@ "linux" ] }, - "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz", - "integrity": "sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==", + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.20.0.tgz", + "integrity": "sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==", "cpu": [ "arm64" ], "dev": true, "optional": true, "os": [ - "linux" + "win32" ] }, - "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz", - "integrity": "sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==", + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.20.0.tgz", + "integrity": "sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==", "cpu": [ - "x64" + "ia32" ], "dev": true, "optional": true, "os": [ - "linux" + "win32" ] }, - "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz", - "integrity": "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==", + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.20.0.tgz", + "integrity": "sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==", "cpu": [ "x64" ], @@ -4929,410 +4666,582 @@ "win32" ] }, - "node_modules/@ngtools/webpack": { - "version": "18.1.4", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-18.1.4.tgz", - "integrity": "sha512-suoeZjd+7qd3ivzbNGGSzHtY/WMxTKU6ZD1gIIya0Un8Ve1eVxfq6Si6ReKqhygO8zN3paJMATn8sMmAV7qVrw==", + "node_modules/@schematics/angular": { + "version": "18.2.3", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-18.2.3.tgz", + "integrity": "sha512-whSON70z9HYb4WboVXmPFE/RLKJJQLWNzNcUyi8OSDZkQbJnYgPp0///n738m26Y/XeJDv11q1gESy+Zl2AdUw==", "dev": true, + "dependencies": { + "@angular-devkit/core": "18.2.3", + "@angular-devkit/schematics": "18.2.3", + "jsonc-parser": "3.3.1" + }, "engines": { "node": "^18.19.1 || ^20.11.1 || >=22.0.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "@angular/compiler-cli": "^18.0.0", - "typescript": ">=5.4 <5.6", - "webpack": "^5.54.0" } }, - "node_modules/@ngx-pwa/local-storage": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/@ngx-pwa/local-storage/-/local-storage-18.0.0.tgz", - "integrity": "sha512-Lmcd0uHayDoO1I5UbwsoVKSlx7aEF86k2amb8dbdF5z0SRKhRN5p7sIXQy6DjC0mkLFBpjYOOzq6kQrqX1kW7Q==", + "node_modules/@sigstore/bundle": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz", + "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==", + "dev": true, "dependencies": { - "tslib": "^2.5.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/cyrilletuzi" + "@sigstore/protobuf-specs": "^0.3.2" }, - "peerDependencies": { - "@angular/common": "^18.0.0", - "@angular/core": "^18.0.0", - "rxjs": "^7.6.0" + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@ngx-translate/core": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-15.0.0.tgz", - "integrity": "sha512-Am5uiuR0bOOxyoercDnAA3rJVizo4RRqJHo8N3RqJ+XfzVP/I845yEnMADykOHvM6HkVm4SZSnJBOiz0Anx5BA==", + "node_modules/@sigstore/core": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz", + "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==", + "dev": true, "engines": { - "node": "^16.13.0 || >=18.10.0" - }, - "peerDependencies": { - "@angular/common": ">=16.0.0", - "@angular/core": ">=16.0.0", - "rxjs": "^6.5.5 || ^7.4.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@ngx-translate/http-loader": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@ngx-translate/http-loader/-/http-loader-8.0.0.tgz", - "integrity": "sha512-SFMsdUcmHF5OdZkL1CHEoSAwbP5EbAOPTLLboOCRRoOg21P4GJx+51jxGdJeGve6LSKLf4Pay7BkTwmE6vxYlg==", + "node_modules/@sigstore/protobuf-specs": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz", + "integrity": "sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==", + "dev": true, "engines": { - "node": "^16.13.0 || >=18.10.0" - }, - "peerDependencies": { - "@angular/common": ">=16.0.0", - "@angular/core": ">=16.0.0", - "@ngx-translate/core": ">=15.0.0", - "rxjs": "^6.5.5 || ^7.4.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/@sigstore/sign": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.2.tgz", + "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==", "dev": true, "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "make-fetch-happen": "^13.0.1", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1" }, "engines": { - "node": ">= 8" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@sigstore/tuf": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz", + "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==", "dev": true, + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.2", + "tuf-js": "^2.2.1" + }, "engines": { - "node": ">= 8" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/@sigstore/verify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.1.tgz", + "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==", "dev": true, "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.1.0", + "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { - "node": ">= 8" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@npmcli/agent": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", - "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", + "node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", "dev": true, - "dependencies": { - "agent-base": "^7.1.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.1", - "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.3" - }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@npmcli/agent/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "node_modules/@socket.io/component-emitter": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", "dev": true }, - "node_modules/@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", - "dev": true, - "dependencies": { - "semver": "^7.3.5" + "node_modules/@tiptap/core": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.6.6.tgz", + "integrity": "sha512-VO5qTsjt6rwworkuo0s5AqYMfDA0ZwiTiH6FHKFSu2G/6sS7HKcc/LjPq+5Legzps4QYdBDl3W28wGsGuS1GdQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "peerDependencies": { + "@tiptap/pm": "^2.6.6" } }, - "node_modules/@npmcli/git": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.8.tgz", - "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==", - "dev": true, - "dependencies": { - "@npmcli/promise-spawn": "^7.0.0", - "ini": "^4.1.3", - "lru-cache": "^10.0.1", - "npm-pick-manifest": "^9.0.0", - "proc-log": "^4.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^4.0.0" + "node_modules/@tiptap/extension-blockquote": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.6.6.tgz", + "integrity": "sha512-hAdsNlMfzzxld154hJqPqtWqO5i4/7HoDfuxmyqBxdMJ+e2UMaIGBGwoLRXG0V9UoRwJusjqlpyD7pIorxNlgA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" }, - "engines": { - "node": "^16.14.0 || >=18.0.0" + "peerDependencies": { + "@tiptap/core": "^2.6.6" } }, - "node_modules/@npmcli/git/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "engines": { - "node": ">=16" + "node_modules/@tiptap/extension-bold": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.6.6.tgz", + "integrity": "sha512-CD6gBhdQtCoqYSmx8oAV8gvKtVOGZSyyvuNYo7by9eZ56DqLYnd7kbUj0RH7o9Ymf/iJTOUJ6XcvrsWwo4lubg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.6" } }, - "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true - }, - "node_modules/@npmcli/git/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dev": true, - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" + "node_modules/@tiptap/extension-bullet-list": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.6.6.tgz", + "integrity": "sha512-WEKxbVSYuvmX2wkHWP8HXk5nzA7stYwtdaubwWH/R17kGI3IGScJuMQ9sEN82uzJU8bfgL9yCbH2bY8Fj/Q4Ow==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" }, - "engines": { - "node": "^16.13.0 || >=18.0.0" + "peerDependencies": { + "@tiptap/core": "^2.6.6" } }, - "node_modules/@npmcli/installed-package-contents": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", - "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", - "dev": true, - "dependencies": { - "npm-bundled": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "bin": { - "installed-package-contents": "bin/index.js" + "node_modules/@tiptap/extension-code": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.6.6.tgz", + "integrity": "sha512-JrEFKsZiLvfvOFhOnnrpA0TzCuJjDeysfbMeuKUZNV4+DhYOL28d39H1++rEtJAX0LcbBU60oC5/PrlU9SpvRQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "peerDependencies": { + "@tiptap/core": "^2.6.6" } }, - "node_modules/@npmcli/node-gyp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", - "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node_modules/@tiptap/extension-code-block": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.6.6.tgz", + "integrity": "sha512-1YLp/zHMHSkE2xzht8nPR6T4sQJJ3ket798czxWuQEbetFv/l0U/mpiPpYSLObj6oTAoqYZ0kWXZj5eQSpPB8Q==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.6", + "@tiptap/pm": "^2.6.6" } }, - "node_modules/@npmcli/package-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.0.tgz", - "integrity": "sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==", - "dev": true, - "dependencies": { - "@npmcli/git": "^5.0.0", - "glob": "^10.2.2", - "hosted-git-info": "^7.0.0", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^6.0.0", - "proc-log": "^4.0.0", - "semver": "^7.5.3" + "node_modules/@tiptap/extension-color": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-color/-/extension-color-2.6.6.tgz", + "integrity": "sha512-aq2XnbWMak1yJxH2EoVKpCjFONRkZcX9D72LvvgOgtDQ62wG3/axZ75bT1B/NNfqlEp7U78Fpqib7jq/uCLYTg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" }, - "engines": { - "node": "^16.14.0 || >=18.0.0" + "peerDependencies": { + "@tiptap/core": "^2.6.6", + "@tiptap/extension-text-style": "^2.6.6" } }, - "node_modules/@npmcli/package-json/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" + "node_modules/@tiptap/extension-document": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.6.6.tgz", + "integrity": "sha512-6qlH5VWzLHHRVeeciRC6C4ZHpMsAGPNG16EF53z0GeMSaaFD/zU3B239QlmqXmLsAl8bpf8Bn93N0t2ABUvScw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.6" } }, - "node_modules/@npmcli/package-json/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "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" - }, + "node_modules/@tiptap/extension-dropcursor": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.6.6.tgz", + "integrity": "sha512-O6CeKriA9uyHsg7Ui4z5ZjEWXQxrIL+1zDekffW0wenGC3G4LUsCzAiFS4LSrR9a3u7tnwqGApW10rdkmCGF4w==", "funding": { - "url": "https://github.com/sponsors/isaacs" + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.6", + "@tiptap/pm": "^2.6.6" } }, - "node_modules/@npmcli/package-json/node_modules/json-parse-even-better-errors": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", - "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node_modules/@tiptap/extension-gapcursor": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.6.6.tgz", + "integrity": "sha512-O2lQ2t0X0Vsbn3yLWxFFHrXY6C2N9Y6ZF/M7LWzpcDTUZeWuhoNkFE/1yOM0h6ZX1DO2A9hNIrKpi5Ny8yx+QA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.6", + "@tiptap/pm": "^2.6.6" } }, - "node_modules/@npmcli/package-json/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, + "node_modules/@tiptap/extension-hard-break": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.6.6.tgz", + "integrity": "sha512-bsUuyYBrMDEiudx1dOQSr9MzKv13m0xHWrOK+DYxuIDYJb5g+c9un5cK7Js+et/HEYYSPOoH/iTW6h+4I5YeUg==", "funding": { - "url": "https://github.com/sponsors/isaacs" + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.6" } }, - "node_modules/@npmcli/promise-spawn": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", - "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", - "dev": true, - "dependencies": { - "which": "^4.0.0" + "node_modules/@tiptap/extension-heading": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.6.6.tgz", + "integrity": "sha512-bgx9vptVFi5yFkIw1OI53J7+xJ71Or3SOe/Q8eSpZv53DlaKpL/TzKw8Z54t1PrI2rJ6H9vrLtkvixJvBZH1Ug==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" }, - "engines": { - "node": "^16.14.0 || >=18.0.0" + "peerDependencies": { + "@tiptap/core": "^2.6.6" } }, - "node_modules/@npmcli/promise-spawn/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "engines": { - "node": ">=16" + "node_modules/@tiptap/extension-highlight": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-highlight/-/extension-highlight-2.6.6.tgz", + "integrity": "sha512-Z02AYWm1AJAfhmfT4fGCI3YitijF4uNu+eiuq7OxhCiVf9IYaq8xlH2YMxa09QvMUo70ovklxk97+vQUUHeqfQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.6" } }, - "node_modules/@npmcli/promise-spawn/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dev": true, - "dependencies": { - "isexe": "^3.1.1" + "node_modules/@tiptap/extension-history": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.6.6.tgz", + "integrity": "sha512-tPTzAmPGqMX5Bd5H8lzRpmsaMvB9DvI5Dy2za/VQuFtxgXmDiFVgHRkRXIuluSkPTuANu84XBOQ0cBijqY8x4w==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" }, - "bin": { - "node-which": "bin/which.js" + "peerDependencies": { + "@tiptap/core": "^2.6.6", + "@tiptap/pm": "^2.6.6" + } + }, + "node_modules/@tiptap/extension-horizontal-rule": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.6.6.tgz", + "integrity": "sha512-cFEfv7euDpuLSe8exY8buwxkreKBAZY9Hn3EetKhPcLQo+ut5Y24chZTxFyf9b+Y0wz3UhOhLTZSz7fTobLqBA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" }, - "engines": { - "node": "^16.13.0 || >=18.0.0" + "peerDependencies": { + "@tiptap/core": "^2.6.6", + "@tiptap/pm": "^2.6.6" } }, - "node_modules/@npmcli/redact": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-2.0.1.tgz", - "integrity": "sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==", - "dev": true, - "engines": { - "node": "^16.14.0 || >=18.0.0" + "node_modules/@tiptap/extension-image": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-2.6.6.tgz", + "integrity": "sha512-dwJKvoqsr72B4tcTH8hXhfBJzUMs/jXUEE9MnfzYnSXf+CYALLjF8r/IkGYbxce62GP/bMDoj8BgpF8saeHtqA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.6" } }, - "node_modules/@npmcli/run-script": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-8.1.0.tgz", - "integrity": "sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==", - "dev": true, + "node_modules/@tiptap/extension-italic": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.6.6.tgz", + "integrity": "sha512-t7ZPsXqa8nJZZ/6D0rQyZ/KsvzLaSihC6hBTjUQ77CeDGV9PhDWjIcBW4OrvwraJDBd12ETBeQ2CkULJOgH+lQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.6" + } + }, + "node_modules/@tiptap/extension-link": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-2.6.6.tgz", + "integrity": "sha512-NJSR5Yf/dI3do0+Mr6e6nkbxRQcqbL7NOPxo5Xw8VaKs2Oe8PX+c7hyqN3GZgn6uEbZdbVi1xjAniUokouwpFg==", "dependencies": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^5.0.0", - "@npmcli/promise-spawn": "^7.0.0", - "node-gyp": "^10.0.0", - "proc-log": "^4.0.0", - "which": "^4.0.0" + "linkifyjs": "^4.1.0" }, - "engines": { - "node": "^16.14.0 || >=18.0.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.6", + "@tiptap/pm": "^2.6.6" } }, - "node_modules/@npmcli/run-script/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "engines": { - "node": ">=16" + "node_modules/@tiptap/extension-list-item": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.6.6.tgz", + "integrity": "sha512-k+oEzZu2cgVKqPqOP1HzASOKLpTEV9m7mRVPAbuaaX8mSyvIgD6f+JUx9PvgYv//D918wk98LMoRBFX53tDJ4w==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.6" } }, - "node_modules/@npmcli/run-script/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dev": true, - "dependencies": { - "isexe": "^3.1.1" + "node_modules/@tiptap/extension-ordered-list": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.6.6.tgz", + "integrity": "sha512-AJwyfLXIi7iUGnK5twJbwdVVpQyh7fU6OK75h1AwDztzsOcoPcxtffDlZvUOd4ZtwuyhkzYqVkeI0f+abTWZTw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" }, - "bin": { - "node-which": "bin/which.js" + "peerDependencies": { + "@tiptap/core": "^2.6.6" + } + }, + "node_modules/@tiptap/extension-paragraph": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.6.6.tgz", + "integrity": "sha512-fD/onCr16UQWx+/xEmuFC2MccZZ7J5u4YaENh8LMnAnBXf78iwU7CAcmuc9rfAEO3qiLoYGXgLKiHlh2ZfD4wA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" }, - "engines": { - "node": "^16.13.0 || >=18.0.0" + "peerDependencies": { + "@tiptap/core": "^2.6.6" } }, - "node_modules/@nrwl/devkit": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-19.3.0.tgz", - "integrity": "sha512-WRcph/7U37HkTLIRzQ2oburZVfEFkPHJUn7vmo46gCq+N2cAKy3qwONO0RbthhjFIsG94YPXqFWFlV6k4nXpxA==", - "dev": true, - "dependencies": { - "@nx/devkit": "19.3.0" + "node_modules/@tiptap/extension-strike": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.6.6.tgz", + "integrity": "sha512-Ze8KhGk+wzSJSJRl5fbhTI6AvPu2LmcHYeO3pMEH8u4gV5WTXfmKJVStEIAzkoqvwEQVWzXvy8nDgsFQHiojPg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.6" } }, - "node_modules/@nrwl/tao": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-19.3.0.tgz", - "integrity": "sha512-MyGYeHbh9O4Tv9xmz3Du+/leY5sKUHaPy4ancfNyShHgYi21hemX0/YYjzzoYHi44D8GzSc1XG2rAuwba7Kilw==", - "dev": true, + "node_modules/@tiptap/extension-subscript": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-subscript/-/extension-subscript-2.6.6.tgz", + "integrity": "sha512-EiVnVN89siMdYNNVcyPe5kuQhiSlDMKpnO3aRNYKf6EcHdUiRJH+Np8E8ojQc5M/gOq4qWqeUZXk/107AYayQA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.6" + } + }, + "node_modules/@tiptap/extension-superscript": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-superscript/-/extension-superscript-2.6.6.tgz", + "integrity": "sha512-e8RqTRIUnXJNSVfKJV6C2nPGtVRPqYSa9k3m4TN6jsFrNJ+NvOjp8sMUcLM4UzwLloQaKn/UcDHidNQaRc7dTA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.6" + } + }, + "node_modules/@tiptap/extension-table": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-2.6.6.tgz", + "integrity": "sha512-Ay/IClmB9R8MjnLobGnA9tI0+7ev4GUwvNf/JA2razI8CeaMCJ7CcAzG6pnIp4d7I6ELWYmAt3vwxoRlsAZcEw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.6", + "@tiptap/pm": "^2.6.6" + } + }, + "node_modules/@tiptap/extension-table-cell": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table-cell/-/extension-table-cell-2.6.6.tgz", + "integrity": "sha512-XakU9qnlYAf/ux4q7zgiJs2pvkjOl9mVzQw5j55aQHYLiw0gXomEgUbrkn7jhA7N6WP9PlngS3quwIDfyoqLvw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.6" + } + }, + "node_modules/@tiptap/extension-table-header": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table-header/-/extension-table-header-2.6.6.tgz", + "integrity": "sha512-BX2cVTrOZzIQAAWrNjD2Dzk/RpCJWUqgdW2bh27x0nJwKfMWfqLPoplTTuCZ+J9yK7rlNj3jEhKewe/yR1Tudw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.6" + } + }, + "node_modules/@tiptap/extension-table-row": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-table-row/-/extension-table-row-2.6.6.tgz", + "integrity": "sha512-VN8MwrEbq2hs/BE3cizbasFMLfh0F9I9MF7cmU8V1j1Zju0ONUIEXOscO4TNFfCB8lf5tTwIp1sr+fxYUUprhg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.6" + } + }, + "node_modules/@tiptap/extension-text": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.6.6.tgz", + "integrity": "sha512-e84uILnRzNzcwK1DVQNpXVmBG1Cq3BJipTOIDl1LHifOok7MBjhI/X+/NR0bd3N2t6gmDTWi63+4GuJ5EeDmsg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.6" + } + }, + "node_modules/@tiptap/extension-text-align": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text-align/-/extension-text-align-2.6.6.tgz", + "integrity": "sha512-WdyxULEEHfI3hRDHAFOUoeP84h9myabadfjtZrub7/zO2PKKPAZLBN2vWat5PowH8E8GYX8vqKr9vaX+slfh5g==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.6" + } + }, + "node_modules/@tiptap/extension-text-style": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text-style/-/extension-text-style-2.6.6.tgz", + "integrity": "sha512-8fO8m0/QI+rFKgZLP28GG2Nz0zhYsYd76O2Y+HsDTmMypJl/cdiNcVOWWffAwXAfMN43BNX7b1VI1XwGAMgYlg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.6" + } + }, + "node_modules/@tiptap/extension-underline": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-2.6.6.tgz", + "integrity": "sha512-3A4HqsDM/AFb2VaeWACpGexjgI257kz0yU4jNV8uyydDR2KhqeinuEnoSoOmx9T3pL006TWfPg4vaQYPO3qvrQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.6.6" + } + }, + "node_modules/@tiptap/pm": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.6.6.tgz", + "integrity": "sha512-56FGLPn3fwwUlIbLs+BO21bYfyqP9fKyZQbQyY0zWwA/AG2kOwoXaRn7FOVbjP6CylyWpFJnpRRmgn694QKHEg==", "dependencies": { - "nx": "19.3.0", - "tslib": "^2.3.0" + "prosemirror-changeset": "^2.2.1", + "prosemirror-collab": "^1.3.1", + "prosemirror-commands": "^1.5.2", + "prosemirror-dropcursor": "^1.8.1", + "prosemirror-gapcursor": "^1.3.2", + "prosemirror-history": "^1.4.1", + "prosemirror-inputrules": "^1.4.0", + "prosemirror-keymap": "^1.2.2", + "prosemirror-markdown": "^1.13.0", + "prosemirror-menu": "^1.2.4", + "prosemirror-model": "^1.22.2", + "prosemirror-schema-basic": "^1.2.3", + "prosemirror-schema-list": "^1.4.1", + "prosemirror-state": "^1.4.3", + "prosemirror-tables": "^1.4.0", + "prosemirror-trailing-node": "^2.0.9", + "prosemirror-transform": "^1.9.0", + "prosemirror-view": "^1.33.9" }, - "bin": { - "tao": "index.js" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + } + }, + "node_modules/@tiptap/starter-kit": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.6.6.tgz", + "integrity": "sha512-zb9xIg3WjG9AsJoyWrfqx5SL9WH7/HTdkB79jFpWtOF/Kaigo7fHFmhs2FsXtJMJlcdMTO2xeRuCYHt5ozXlhg==", + "dependencies": { + "@tiptap/core": "^2.6.6", + "@tiptap/extension-blockquote": "^2.6.6", + "@tiptap/extension-bold": "^2.6.6", + "@tiptap/extension-bullet-list": "^2.6.6", + "@tiptap/extension-code": "^2.6.6", + "@tiptap/extension-code-block": "^2.6.6", + "@tiptap/extension-document": "^2.6.6", + "@tiptap/extension-dropcursor": "^2.6.6", + "@tiptap/extension-gapcursor": "^2.6.6", + "@tiptap/extension-hard-break": "^2.6.6", + "@tiptap/extension-heading": "^2.6.6", + "@tiptap/extension-history": "^2.6.6", + "@tiptap/extension-horizontal-rule": "^2.6.6", + "@tiptap/extension-italic": "^2.6.6", + "@tiptap/extension-list-item": "^2.6.6", + "@tiptap/extension-ordered-list": "^2.6.6", + "@tiptap/extension-paragraph": "^2.6.6", + "@tiptap/extension-strike": "^2.6.6", + "@tiptap/extension-text": "^2.6.6", + "@tiptap/pm": "^2.6.6" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" } }, - "node_modules/@nx/devkit": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-19.3.0.tgz", - "integrity": "sha512-Natya5nzvHH0qTOIL1w/EZtwMgDx87Dgz0LgeY7te2fULaNFcj5fVrP+mUKEJZR+NccO7GPumT2RPhuEl9rPnQ==", + "node_modules/@ts-morph/common": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.24.0.tgz", + "integrity": "sha512-c1xMmNHWpNselmpIqursHeOHHBTIsJLbB+NuovbTTRCNiTLEr/U9dbJ8qy0jd/O2x5pc3seWuOUN5R2IoOTp8A==", "dev": true, "dependencies": { - "@nrwl/devkit": "19.3.0", - "ejs": "^3.1.7", - "enquirer": "~2.3.6", - "ignore": "^5.0.4", - "minimatch": "9.0.3", - "semver": "^7.5.3", - "tmp": "~0.2.1", - "tslib": "^2.3.0", - "yargs-parser": "21.1.1" - }, - "peerDependencies": { - "nx": ">= 17 <= 20" + "fast-glob": "^3.3.2", + "minimatch": "^9.0.4", + "mkdirp": "^3.0.1", + "path-browserify": "^1.0.1" } }, - "node_modules/@nx/devkit/node_modules/brace-expansion": { + "node_modules/@ts-morph/common/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", @@ -5341,10 +5250,10 @@ "balanced-match": "^1.0.0" } }, - "node_modules/@nx/devkit/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "node_modules/@ts-morph/common/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -5356,1022 +5265,10 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@nx/nx-darwin-arm64": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-19.3.0.tgz", - "integrity": "sha512-TMTxjrN7Y/UsKFjmz0YfhVItLTGWqvud8cmQchw5NEjdNakfjXk0mREufO5/5PwoiRIsen6MbThoTprLpjOUiQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-darwin-x64": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-19.3.0.tgz", - "integrity": "sha512-GH2L6ftnzdIs7JEdv7ZPCdbpAdB5sW6NijK07riYZSONzq5fEruD1yDWDkyZbYBb8RTxsparUWJnq8q1qxEPHQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-freebsd-x64": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-19.3.0.tgz", - "integrity": "sha512-1ow7Xku1yyjHviCKsWiuHCAnTd3fD+5O5c+e4DXHVthT8wnadKSotvBIWf38DMbMthl7na82e72OzxcdSbrVqQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-arm-gnueabihf": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-19.3.0.tgz", - "integrity": "sha512-mYQMIUvNr2gww8vbg766uk/C1RxoC1fwioeP87bmV5NRUKSzJ8WEJVxAsqc9RGhAOUaNXOgEuKYrMcVhKyIKJQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-arm64-gnu": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-19.3.0.tgz", - "integrity": "sha512-rHL3eQ0RHkeAXnhHHu/NIyouN/ykiXvgyNU3TuCd50+2MZcAbjB+Xq3mwL0MwiP+BQuptiE+snTuxFUJp4ZH6A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-arm64-musl": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-19.3.0.tgz", - "integrity": "sha512-im0+OgOD6ShpTkI9ZRz7BjzxhQ/Lk3xjYmmCu+PFGmaybEnkNNDFwsgS0iEVKMdWZ/EQoQvJrqOYsX125iIBuQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-x64-gnu": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-19.3.0.tgz", - "integrity": "sha512-k8q/d6WBSXOeUpBq6Mw69yMKL4n9LaX3o4LBNwBkVCEZ8p6s0njwKefLtjwnKlai0g/k5f0NcilU2zTwP/Ex8g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-linux-x64-musl": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-19.3.0.tgz", - "integrity": "sha512-sahEV99glBlpGKG1TIQ5PkJ0QvpHp69wWsBFK2DKtCETxOtsWqwvIjemxTCXRirTqeHiP7BiR6VWsf2YqqqBdw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-win32-arm64-msvc": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-19.3.0.tgz", - "integrity": "sha512-w03gFwLijStmhUji70QJHYo/U16ovybNczxGO7+5TT330X8/y+ihw9FCGHiIcujAjTAE88h0DKGn05WlNqRmfg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nx/nx-win32-x64-msvc": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-19.3.0.tgz", - "integrity": "sha512-M7e2zXGfTjH8NLiwqKLdWC9VlfMSQDYlI4/SM4OSpPqhUTfPlRPa+wNKNTG7perKfDXxE9ei8yjocujknXJk/A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@phenomnomnominal/tsquery": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-6.1.3.tgz", - "integrity": "sha512-CEqpJ872StsxRmwv9ePCZ4BCisrJSlREUC5XxIRYxhvODt4aQoJFFmjTgaP6meyKiiXxxN/VWPZ58j4yHXRkmw==", - "dev": true, - "dependencies": { - "@types/esquery": "^1.5.0", - "esquery": "^1.5.0" - }, - "peerDependencies": { - "typescript": "^3 || ^4 || ^5" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@pkgr/core": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", - "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, - "node_modules/@remirror/core-constants": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-2.0.2.tgz", - "integrity": "sha512-dyHY+sMF0ihPus3O27ODd4+agdHMEmuRdyiZJ2CCWjPV5UFmn17ZbElvk6WOGVE4rdCJKZQCrPV2BcikOMLUGQ==" - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", - "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", - "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", - "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", - "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", - "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", - "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", - "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", - "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", - "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", - "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", - "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", - "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", - "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", - "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", - "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", - "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@schematics/angular": { - "version": "18.1.4", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-18.1.4.tgz", - "integrity": "sha512-M3edVYKiAGWAAKs7XDLpz1OKUy4STVMT+46Y44ydYz06hI8m/dJfS8ZHTvXPl7JhkrIrSDEMed+WidZtGPIxMg==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "18.1.4", - "@angular-devkit/schematics": "18.1.4", - "jsonc-parser": "3.3.1" - }, - "engines": { - "node": "^18.19.1 || ^20.11.1 || >=22.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@sigstore/bundle": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz", - "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==", - "dev": true, - "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/core": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz", - "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==", - "dev": true, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/protobuf-specs": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz", - "integrity": "sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==", - "dev": true, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/sign": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.2.tgz", - "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==", - "dev": true, - "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "make-fetch-happen": "^13.0.1", - "proc-log": "^4.2.0", - "promise-retry": "^2.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/tuf": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz", - "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==", - "dev": true, - "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2", - "tuf-js": "^2.2.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sigstore/verify": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.1.tgz", - "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==", - "dev": true, - "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.1.0", - "@sigstore/protobuf-specs": "^0.3.2" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true - }, - "node_modules/@sindresorhus/merge-streams": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", - "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@socket.io/component-emitter": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", - "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", - "dev": true - }, - "node_modules/@tiptap/core": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.5.9.tgz", - "integrity": "sha512-PPUR+0tbr+wX2G8RG4FEps4qhbnAPEeXK1FUtirLXSRh8vm+TDgafu3sms7wBc4fAyw9zTO/KNNZ90GBe04guA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/pm": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-blockquote": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.5.9.tgz", - "integrity": "sha512-LhGyigmd/v1OjYPeoVK8UvFHbH6ffh175ZuNvseZY4PsBd7kZhrSUiuMG8xYdNX8FxamsxAzr2YpsYnOzu3W7A==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-bold": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.5.9.tgz", - "integrity": "sha512-XUJdzFb31t0+bwiRquJf0btBpqOB3axQNHTKM9XADuL4S+Z6OBPj0I5rYINeElw/Q7muvdWrHWHh/ovNJA1/5A==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-bullet-list": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.5.9.tgz", - "integrity": "sha512-hJTv1x4omFgaID4LMRT5tOZb/VKmi8Kc6jsf4JNq4Grxd2sANmr9qpmKtBZvviK+XD5PpTXHvL+1c8C1SQtuHQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-code": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.5.9.tgz", - "integrity": "sha512-Q1PL3DUXiEe5eYUwOug1haRjSaB0doAKwx7KFVI+kSGbDwCV6BdkKAeYf3us/O2pMP9D0im8RWX4dbSnatgwBA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-code-block": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.5.9.tgz", - "integrity": "sha512-+MUwp0VFFv2aFiZ/qN6q10vfIc6VhLoFFpfuETX10eIRks0Xuj2nGiqCDj7ca0/M44bRg2VvW8+tg/ZEHFNl9g==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9", - "@tiptap/pm": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-color": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-color/-/extension-color-2.5.9.tgz", - "integrity": "sha512-VUGCT9iqD/Ni9arLIxkCbykAElRMFyew7uk2kbbNvttzdwzmZkbslEgCiaEZQTqKr8w4wjuQL14YOtXc6iwEww==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9", - "@tiptap/extension-text-style": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-document": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.5.9.tgz", - "integrity": "sha512-VdNZYDyCzC3W430UdeRXR9IZzPeODSbi5Xz/JEdV93THVp8AC9CrZR7/qjqdBTgbTB54VP8Yr6bKfCoIAF0BeQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-dropcursor": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.5.9.tgz", - "integrity": "sha512-nEOb37UryG6bsU9JAs/HojE6Jg43LupNTAMISbnuB1CPAeAqNsFMwORd9eEPkyEwnQT7MkhsMOSJM44GoPGIFA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9", - "@tiptap/pm": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-gapcursor": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.5.9.tgz", - "integrity": "sha512-yW7V2ebezsa7mWEDWCg4A1ZGsmSV5bEHKse9wzHCDkb7TutSVhLZxGo72U6hNN9PnAksv+FJQk03NuZNYvNyRQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9", - "@tiptap/pm": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-hard-break": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.5.9.tgz", - "integrity": "sha512-8hQ63SgZRG4BqHOeSfeaowG2eMr2beced018pOGbpHbE3XSYoISkMVuFz4Z8UEVR3W9dTbKo4wxNufSTducocQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-heading": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.5.9.tgz", - "integrity": "sha512-HHowAlGUbFn1qvmY02ydM7qiPPMTGhAJn2A46enDRjNHW5UoqeMfkMpTEYaioOexyguRFSfDT3gpK68IHkQORQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-highlight": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-highlight/-/extension-highlight-2.5.9.tgz", - "integrity": "sha512-tRaSIIbCI7aBlvlmgUgBI5lVBqnMy49lc++UVAx1Pjey1j2KW031vUyvZfEwf6wk8Y7W3kVSkN0mW9IYCcOAOQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-history": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.5.9.tgz", - "integrity": "sha512-hGPtJgoZSwnVVqi/xipC2ET/9X2G2UI/Y+M3IYV1ZlM0tCYsv4spNi3uXlZqnXRwYcBXLk5u6e/dmsy5QFbL8g==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9", - "@tiptap/pm": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-horizontal-rule": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.5.9.tgz", - "integrity": "sha512-/ES5NdxCndBmZAgIXSpCJH8YzENcpxR0S8w34coSWyv+iW0Sq7rW/mksQw8ZIVsj8a7ntpoY5OoRFpSlqcvyGw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9", - "@tiptap/pm": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-image": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-2.5.9.tgz", - "integrity": "sha512-v4WZISCvbriac6HE6v7kYYY7KX+v9rJaIZC3gbYGtqnBWfaAwZiVVu8Z03xSrqYhoc+KHuI+oQ4VubcvZ/i7OQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-italic": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.5.9.tgz", - "integrity": "sha512-Bw+P139L4cy+B56zpUiRjP8BZSaAUl3JFMnr/FO+FG55QhCxFMXIc6XrC3vslNy5ef3B3zv4gCttS3ee8ByMiw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-link": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-2.5.9.tgz", - "integrity": "sha512-7v9yRsX7NuiY8DPslIsPIlFqcD8aGBMLqfEGXltJDvuG6kykdr+khEZeWcJ8ihHIL4yWR3/MAgeT2W72Z/nxiQ==", - "dependencies": { - "linkifyjs": "^4.1.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9", - "@tiptap/pm": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-list-item": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.5.9.tgz", - "integrity": "sha512-d9Eo+vBz74SMxP0r25aqiErV256C+lGz+VWMjOoqJa6xWLM1keYy12JtGQWJi8UDVZrDskJKCHq81A0uLt27WA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-ordered-list": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.5.9.tgz", - "integrity": "sha512-9MsWpvVvzILuEOd/GdroF7RI7uDuE1M6at9rzsaVGvCPVHZBvu1XR3MSVK5OdiJbbJuPGttlzEFLaN/rQdCGFg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-paragraph": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.5.9.tgz", - "integrity": "sha512-HDXGiHTJ/V85dbDMjcFj4XfqyTQZqry6V21ucMzgBZYX60X3gIn7VpQTQnnRjvULSgtfOASSJP6BELc5TyiK0w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-strike": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.5.9.tgz", - "integrity": "sha512-QezkOZpczpl09S8lp5JL7sRkwREoPY16Y/lTvBcFKm3TZbVzYZZ/KwS0zpwK9HXTfXr8os4L9AGjQf0tHonX+w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-subscript": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-subscript/-/extension-subscript-2.5.9.tgz", - "integrity": "sha512-SY1VCf/zlsBLowZaayXGl7dkIGPMNieCO0P1luFBjsiEXCRff0WYVpxi24wzgMeWE6q28SXmd3eD5BsGBudx9g==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-superscript": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-superscript/-/extension-superscript-2.5.9.tgz", - "integrity": "sha512-ggpVx/oJk6tBDq7mNxrJNXhitHVqkJVbeOKaac5FACCoA3ZzHgZ75JooxZqn5wRoCaqShmbljLb8ZqefdX/PRg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-table": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-table/-/extension-table-2.5.9.tgz", - "integrity": "sha512-kLZdYBO0Ug4sNjzyDfa3W29qL4HdRK/IaMxcmcEbyKSt42qiMJlIelbGzVENzxe9AbcNTeiWje70Nhk4dbb8Ag==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9", - "@tiptap/pm": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-table-cell": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-table-cell/-/extension-table-cell-2.5.9.tgz", - "integrity": "sha512-83zg+d8iY7FLZDC2qJVvHFEIwqB9e/zGPyfRMglYH7YxHeJSycG2K969DQhwkSq+z0PhHEO2XHDcD9aFnXRQNQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-table-header": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-table-header/-/extension-table-header-2.5.9.tgz", - "integrity": "sha512-+FKfxpEO8RnsHUhcWFeSpsI3ZRaDtgcX2c4kBBXZGJBMWHxw71VK9gkRM+JtxCl70hNyZR13qpOw1RmByf2kdw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-table-row": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-table-row/-/extension-table-row-2.5.9.tgz", - "integrity": "sha512-VPmkzraT9m7g2/88qsTF9EQdFvkcwhvOD+WWZTflN92LMsRHddJt3peJ/fpuf0QKnwwn5qIB3fXWja4VcZe3wQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-text": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.5.9.tgz", - "integrity": "sha512-W0pfiQUPsMkwaV5Y/wKW4cFsyXAIkyOFt7uN5u6LrZ/iW9KZ/IsDODPJDikWp0aeQnXzT9NNQULTpCjbHzzS6g==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-text-align": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text-align/-/extension-text-align-2.5.9.tgz", - "integrity": "sha512-WYp9v7NEWddTt2Avbk3k/3g/fkL0hh4HEG97ubCPAj2aZzlZ85AEcRN8o4wLXJvZNj43nKQtZeel84INS5uzOg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-text-style": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text-style/-/extension-text-style-2.5.9.tgz", - "integrity": "sha512-1pNnl/a5EdY7g3IeFomm0B6eiTvAFOBeJGswoYxogzHmkWbLFhXFdgZ6qz7+k985w4qscsG1GpvtOW3IrJ9J6g==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9" - } - }, - "node_modules/@tiptap/extension-underline": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-2.5.9.tgz", - "integrity": "sha512-1gFBLzzphwJHsPLwUl9xosErEmtG2c2Sa2ajyS4uRjfl9X7+Li2O2WelZLHZGgTHWliE6ptA3m1MyXppHoitbg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.5.9" - } - }, - "node_modules/@tiptap/pm": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.5.9.tgz", - "integrity": "sha512-YSUaEQVtvZnGzGjif2Tl2o9utE+6tR2Djhz0EqFUcAUEVhOMk7UYUO+r/aPfcCRraIoKKuDQzyCpjKmJicjCUA==", - "dependencies": { - "prosemirror-changeset": "^2.2.1", - "prosemirror-collab": "^1.3.1", - "prosemirror-commands": "^1.5.2", - "prosemirror-dropcursor": "^1.8.1", - "prosemirror-gapcursor": "^1.3.2", - "prosemirror-history": "^1.4.1", - "prosemirror-inputrules": "^1.4.0", - "prosemirror-keymap": "^1.2.2", - "prosemirror-markdown": "^1.13.0", - "prosemirror-menu": "^1.2.4", - "prosemirror-model": "^1.22.2", - "prosemirror-schema-basic": "^1.2.3", - "prosemirror-schema-list": "^1.4.1", - "prosemirror-state": "^1.4.3", - "prosemirror-tables": "^1.4.0", - "prosemirror-trailing-node": "^2.0.9", - "prosemirror-transform": "^1.9.0", - "prosemirror-view": "^1.33.9" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - } - }, - "node_modules/@tiptap/starter-kit": { - "version": "2.5.9", - "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.5.9.tgz", - "integrity": "sha512-nZ4V+vRayomjxUsajFMHv1iJ5SiSaEA65LAXze/CzyZXGMXfL2OLzY7wJoaVJ4BgwINuO0dOSAtpNDN6jI+6mQ==", - "dependencies": { - "@tiptap/core": "^2.5.9", - "@tiptap/extension-blockquote": "^2.5.9", - "@tiptap/extension-bold": "^2.5.9", - "@tiptap/extension-bullet-list": "^2.5.9", - "@tiptap/extension-code": "^2.5.9", - "@tiptap/extension-code-block": "^2.5.9", - "@tiptap/extension-document": "^2.5.9", - "@tiptap/extension-dropcursor": "^2.5.9", - "@tiptap/extension-gapcursor": "^2.5.9", - "@tiptap/extension-hard-break": "^2.5.9", - "@tiptap/extension-heading": "^2.5.9", - "@tiptap/extension-history": "^2.5.9", - "@tiptap/extension-horizontal-rule": "^2.5.9", - "@tiptap/extension-italic": "^2.5.9", - "@tiptap/extension-list-item": "^2.5.9", - "@tiptap/extension-ordered-list": "^2.5.9", - "@tiptap/extension-paragraph": "^2.5.9", - "@tiptap/extension-strike": "^2.5.9", - "@tiptap/extension-text": "^2.5.9" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - } - }, - "node_modules/@ts-morph/common": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.24.0.tgz", - "integrity": "sha512-c1xMmNHWpNselmpIqursHeOHHBTIsJLbB+NuovbTTRCNiTLEr/U9dbJ8qy0jd/O2x5pc3seWuOUN5R2IoOTp8A==", - "dev": true, - "dependencies": { - "fast-glob": "^3.3.2", - "minimatch": "^9.0.4", - "mkdirp": "^3.0.1", - "path-browserify": "^1.0.1" - } - }, - "node_modules/@ts-morph/common/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@ts-morph/common/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@ts-morph/common/node_modules/mkdirp": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", - "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "node_modules/@ts-morph/common/node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", "dev": true, "bin": { "mkdirp": "dist/cjs/src/bin.js" @@ -6904,21 +5801,13 @@ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "dev": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, "node_modules/@types/esquery": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/@types/esquery/-/esquery-1.5.4.tgz", @@ -6964,6 +5853,12 @@ "integrity": "sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==", "dev": true }, + "node_modules/@types/glob-to-regexp": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@types/glob-to-regexp/-/glob-to-regexp-0.4.4.tgz", + "integrity": "sha512-nDKoaKJYbnn1MZxUY0cA1bPmmgZbg0cTq7Rh13d0KWYNOiKbqoR+2d89SnRPszGh7ROzSwZ/GOjZ4jPbmmZ6Eg==", + "dev": true + }, "node_modules/@types/http-errors": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", @@ -7019,12 +5914,12 @@ } }, "node_modules/@types/node": { - "version": "20.14.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.15.tgz", - "integrity": "sha512-Fz1xDMCF/B00/tYSVMlmK7hVeLh7jE5f3B7X1/hmV0MJBwE27KlS7EvD/Yp+z1lm8mVhwV5w+n8jOZG8AfTlKw==", + "version": "20.16.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.5.tgz", + "integrity": "sha512-VwYCweNo3ERajwy0IUlqqcyZ8/A7Zwa9ZP3MnENWcB11AejO+tLy3pu850goUW2FC/IJMdZUfKpX/yxL1gymCA==", "dev": true, "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.19.2" } }, "node_modules/@types/node-forge": { @@ -7683,64 +6578,11 @@ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true - }, - "node_modules/@yarnpkg/parsers": { - "version": "3.0.0-rc.46", - "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.46.tgz", - "integrity": "sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q==", - "dev": true, - "dependencies": { - "js-yaml": "^3.10.0", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=14.15.0" - } - }, - "node_modules/@yarnpkg/parsers/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@yarnpkg/parsers/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@yarnpkg/parsers/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/@zkochan/js-yaml": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.7.tgz", - "integrity": "sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true }, "node_modules/abbrev": { "version": "1.1.1", @@ -7869,15 +6711,15 @@ } }, "node_modules/ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -8124,16 +6966,10 @@ "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, "node_modules/autoprefixer": { - "version": "10.4.19", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", - "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", "dev": true, "funding": [ { @@ -8150,11 +6986,11 @@ } ], "dependencies": { - "browserslist": "^4.23.0", - "caniuse-lite": "^1.0.30001599", + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", + "picocolors": "^1.0.1", "postcss-value-parser": "^4.2.0" }, "bin": { @@ -8337,9 +7173,9 @@ "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==" }, "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dev": true, "dependencies": { "bytes": "3.1.2", @@ -8350,7 +7186,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -8433,9 +7269,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", - "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", "dev": true, "funding": [ { @@ -8452,10 +7288,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001629", - "electron-to-chromium": "^1.4.796", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.16" + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" }, "bin": { "browserslist": "cli.js" @@ -8650,9 +7486,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001632", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001632.tgz", - "integrity": "sha512-udx3o7yHJfUxMLkGohMlVHCvFvWmirKh9JAH/d7WOLPetlH+LTL5cocMZ0t7oZx/mdlOWXti97xLZWc8uURRHg==", + "version": "1.0.30001651", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz", + "integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==", "dev": true, "funding": [ { @@ -8716,9 +7552,9 @@ "dev": true }, "node_modules/chart.js": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.3.tgz", - "integrity": "sha512-qK1gkGSRYcJzqrrzdR6a+I0vQ4/R+SoODXyAjscQ/4mzuNzySaMCd+hyVxitSY1+L2fjPD1Gbn+ibNqRmwQeLw==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.4.tgz", + "integrity": "sha512-emICKGBABnxhMjUjlYRR12PmOXhJ2eJjEHL2/dZlWjxRAZT1D8xplLFq5M0tMQK8ja+wBS/tuVEJB5C6r7VxJA==", "dependencies": { "@kurkle/color": "^0.3.0" }, @@ -8795,9 +7631,9 @@ } }, "node_modules/cli-spinners": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true, "engines": { "node": ">=6" @@ -9042,18 +7878,6 @@ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -9756,12 +8580,15 @@ } }, "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", "dev": true, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/define-properties": { @@ -9780,15 +8607,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", @@ -9868,15 +8686,6 @@ "node": ">=0.3.1" } }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/dijkstrajs": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", @@ -9990,33 +8799,6 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/dotenv": { - "version": "16.3.2", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.2.tgz", - "integrity": "sha512-HTlk5nmhkm8F6JcdXvHIzaorzCoziNQT9mGxLPVXW8wJF1TiGSL60ZGB4gHWabHOaMmWmhvk2/lPHfnBiT78AQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/motdotla/dotenv?sponsor=1" - } - }, - "node_modules/dotenv-expand": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz", - "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, "node_modules/duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", @@ -10064,25 +8846,10 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true }, - "node_modules/ejs": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", - "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", - "dev": true, - "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/electron-to-chromium": { - "version": "1.4.799", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.799.tgz", - "integrity": "sha512-3D3DwWkRTzrdEpntY0hMLYwj7SeBk1138CkPE8sBDSj3WzrzOiG2rHm3luw8jucpf+WiyLBCZyU9lMHyQI9M9Q==", + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.12.tgz", + "integrity": "sha512-tIhPkdlEoCL1Y+PToq3zRNehUaKp3wBX/sr7aclAWdIWjvqAe/Im/H0SiCM4c1Q8BLPHCdoJTol+ZblflydehA==", "dev": true }, "node_modules/emoji-regex": { @@ -10178,9 +8945,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz", - "integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -10190,18 +8957,6 @@ "node": ">=10.13.0" } }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/ent": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", @@ -10228,6 +8983,18 @@ "node": ">=6" } }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/err-code": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", @@ -10282,53 +9049,54 @@ "dev": true }, "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.0.tgz", + "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", "dev": true, "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" + "@esbuild/aix-ppc64": "0.23.0", + "@esbuild/android-arm": "0.23.0", + "@esbuild/android-arm64": "0.23.0", + "@esbuild/android-x64": "0.23.0", + "@esbuild/darwin-arm64": "0.23.0", + "@esbuild/darwin-x64": "0.23.0", + "@esbuild/freebsd-arm64": "0.23.0", + "@esbuild/freebsd-x64": "0.23.0", + "@esbuild/linux-arm": "0.23.0", + "@esbuild/linux-arm64": "0.23.0", + "@esbuild/linux-ia32": "0.23.0", + "@esbuild/linux-loong64": "0.23.0", + "@esbuild/linux-mips64el": "0.23.0", + "@esbuild/linux-ppc64": "0.23.0", + "@esbuild/linux-riscv64": "0.23.0", + "@esbuild/linux-s390x": "0.23.0", + "@esbuild/linux-x64": "0.23.0", + "@esbuild/netbsd-x64": "0.23.0", + "@esbuild/openbsd-arm64": "0.23.0", + "@esbuild/openbsd-x64": "0.23.0", + "@esbuild/sunos-x64": "0.23.0", + "@esbuild/win32-arm64": "0.23.0", + "@esbuild/win32-ia32": "0.23.0", + "@esbuild/win32-x64": "0.23.0" } }, "node_modules/esbuild-wasm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.21.5.tgz", - "integrity": "sha512-L/FlOPMMFtw+6qPAbuPvJXdrOYOp9yx/PEwSrIZW0qghY4vgV003evdYDwqQ/9ENMQI0B6RMod9xT4FHtto6OQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.23.0.tgz", + "integrity": "sha512-6jP8UmWy6R6TUUV8bMuC3ZyZ6lZKI56x0tkxyCIqWwRRJ/DgeQKneh/Oid5EoGoPFLrGNkz47ZEtWAYuiY/u9g==", "dev": true, "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/escalade": { @@ -10462,19 +9230,13 @@ } }, "node_modules/eslint-plugin-unused-imports": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-3.2.0.tgz", - "integrity": "sha512-6uXyn6xdINEpxE1MtDjxQsyXB37lfyO2yKGVVgtD7WEWQGORSOZjgrD6hBhvGv4/SO+TOlS+UnC6JppRqbuwGQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-4.1.3.tgz", + "integrity": "sha512-lqrNZIZjFMUr7P06eoKtQLwyVRibvG7N+LtfKtObYGizAAGrcqLkc3tDx+iAik2z7q0j/XI3ihjupIqxhFabFA==", "dev": true, - "dependencies": { - "eslint-rule-composer": "^0.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, "peerDependencies": { - "@typescript-eslint/eslint-plugin": "6 - 7", - "eslint": "8" + "@typescript-eslint/eslint-plugin": "^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0", + "eslint": "^9.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "@typescript-eslint/eslint-plugin": { @@ -10482,15 +9244,6 @@ } } }, - "node_modules/eslint-rule-composer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", - "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/eslint-scope": { "version": "7.2.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", @@ -10740,19 +9493,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/esquery": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", @@ -10868,37 +9608,37 @@ "dev": true }, "node_modules/express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", + "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", "dev": true, "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -10927,14 +9667,23 @@ "ms": "2.0.0" } }, + "node_modules/express/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/express/node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dev": true, "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -11056,6 +9805,12 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true + }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", @@ -11078,13 +9833,14 @@ } }, "node_modules/fetch-mock": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fetch-mock/-/fetch-mock-11.1.0.tgz", - "integrity": "sha512-Ng8pIwjVymfQgLGj0Sv1xpsmHc6PvzJyHFxb2yF8TfiiKg03dZDFAI9ST7dOb+GwCcFwE11O/rXht5UHgO94dw==", + "version": "11.1.3", + "resolved": "https://registry.npmjs.org/fetch-mock/-/fetch-mock-11.1.3.tgz", + "integrity": "sha512-ATh0dWgnVrUHiiXuvQm1Ry+ThWfSv1QQgqJTCtybrNxyUrFiSOaDKsNG29eyysp1SHeNP6Q+dH50+8VifN51Ig==", "dev": true, "dependencies": { + "@types/glob-to-regexp": "^0.4.4", "dequal": "^2.0.3", - "globrex": "^0.1.2", + "glob-to-regexp": "^0.4.1", "is-subset": "^0.1.1", "regexparam": "^3.0.0" }, @@ -11097,21 +9853,6 @@ } } }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -11129,36 +9870,6 @@ "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "dev": true, - "dependencies": { - "minimatch": "^5.0.1" - } - }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -11321,20 +10032,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -11366,62 +10063,11 @@ "node": ">= 0.6" } }, - "node_modules/front-matter": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz", - "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==", - "dev": true, - "dependencies": { - "js-yaml": "^3.13.1" - } - }, - "node_modules/front-matter/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/front-matter/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/front-matter/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, - "node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, "node_modules/fs-minipass": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", @@ -11701,12 +10347,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globrex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", - "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", - "dev": true - }, "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", @@ -12094,9 +10734,9 @@ ] }, "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, "engines": { "node": ">= 4" @@ -12157,9 +10797,9 @@ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" }, "node_modules/immutable": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.6.tgz", - "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", "dev": true }, "node_modules/import-fresh": { @@ -12319,15 +10959,15 @@ } }, "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", "dev": true, "bin": { "is-docker": "cli.js" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -12379,22 +11019,7 @@ "is-inside-container": "cli.js" }, "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-inside-container/node_modules/is-docker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -12521,15 +11146,18 @@ "dev": true }, "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", "dev": true, "dependencies": { - "is-docker": "^2.0.0" + "is-inside-container": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/isarray": { @@ -12684,194 +11312,12 @@ "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/jake": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.1.tgz", - "integrity": "sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==", - "dev": true, - "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jake/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jake/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jake/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jake/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jake/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jake/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jasmine-core": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.2.0.tgz", - "integrity": "sha512-tSAtdrvWybZkQmmaIoDgnvHG8ORUNw5kEVlO5CvrXj02Jjr9TZrmjFq7FUiOUzJiOP2wLGYT6PgrQgQF4R1xiw==", - "dev": true - }, - "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-diff/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.3.0.tgz", + "integrity": "sha512-zsOmeBKESky4toybvWEikRiZ0jHoBEu79wNArLfMdSnlLMZx3Xcp6CSm2sUcYyoJC+Uyj8LBJap/MUbVSfJ27g==", "dev": true }, - "node_modules/jest-diff/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", @@ -13019,18 +11465,6 @@ "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", "dev": true }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, "node_modules/jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", @@ -13270,9 +11704,9 @@ } }, "node_modules/launch-editor": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.8.1.tgz", - "integrity": "sha512-elBx2l/tp9z99X5H/qev8uyDywVh0VXAwEbjk8kJhnc5grOFkGh7aW6q55me9xnYbss261XtnUrysZ+XvGbhQA==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.9.1.tgz", + "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==", "dev": true, "dependencies": { "picocolors": "^1.0.0", @@ -13550,15 +11984,6 @@ "immediate": "~3.0.5" } }, - "node_modules/lines-and-columns": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz", - "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, "node_modules/linkify-it": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", @@ -13578,15 +12003,15 @@ "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==" }, "node_modules/listr2": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.3.tgz", - "integrity": "sha512-Lllokma2mtoniUOS94CcOErHWAug5iu7HOmDrvWgpw8jyQH2fomgB+7lZS4HWZxytUuQwkGOwe49FvwVaA85Xw==", + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.4.tgz", + "integrity": "sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==", "dev": true, "dependencies": { "cli-truncate": "^4.0.0", "colorette": "^2.0.20", "eventemitter3": "^5.0.1", - "log-update": "^6.0.0", + "log-update": "^6.1.0", "rfdc": "^1.4.1", "wrap-ansi": "^9.0.0" }, @@ -13680,9 +12105,9 @@ } }, "node_modules/lmdb": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.0.12.tgz", - "integrity": "sha512-JnoEulTgveoC64vlYJ9sufGLuNkk6TcxSYpKxSC9aM42I61jIv3pQH0fgb6qW7HV0+FNqA3g1WCQQYfhfawGoQ==", + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.0.13.tgz", + "integrity": "sha512-UGe+BbaSUQtAMZobTb4nHvFMrmvuAQKSeaqAX2meTEQjfsbpl5sxdHD8T72OnwD4GU9uwNhYXIVe4QGs8N9Zyw==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -13696,12 +12121,12 @@ "download-lmdb-prebuilds": "bin/download-prebuilds.js" }, "optionalDependencies": { - "@lmdb/lmdb-darwin-arm64": "3.0.12", - "@lmdb/lmdb-darwin-x64": "3.0.12", - "@lmdb/lmdb-linux-arm": "3.0.12", - "@lmdb/lmdb-linux-arm64": "3.0.12", - "@lmdb/lmdb-linux-x64": "3.0.12", - "@lmdb/lmdb-win32-x64": "3.0.12" + "@lmdb/lmdb-darwin-arm64": "3.0.13", + "@lmdb/lmdb-darwin-x64": "3.0.13", + "@lmdb/lmdb-linux-arm": "3.0.13", + "@lmdb/lmdb-linux-arm64": "3.0.13", + "@lmdb/lmdb-linux-x64": "3.0.13", + "@lmdb/lmdb-win32-x64": "3.0.13" } }, "node_modules/loader-runner": { @@ -13908,14 +12333,14 @@ } }, "node_modules/log-update": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.0.0.tgz", - "integrity": "sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", "dev": true, "dependencies": { - "ansi-escapes": "^6.2.0", - "cli-cursor": "^4.0.0", - "slice-ansi": "^7.0.0", + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", "strip-ansi": "^7.1.0", "wrap-ansi": "^9.0.0" }, @@ -13927,12 +12352,15 @@ } }, "node_modules/log-update/node_modules/ansi-escapes": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz", - "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", "dev": true, + "dependencies": { + "environment": "^1.0.0" + }, "engines": { - "node": ">=14.16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -13963,15 +12391,15 @@ } }, "node_modules/log-update/node_modules/cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", "dev": true, "dependencies": { - "restore-cursor": "^4.0.0" + "restore-cursor": "^5.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -13998,22 +12426,49 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/log-update/node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/log-update/node_modules/restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", "dev": true, "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/log-update/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/log-update/node_modules/slice-ansi": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", @@ -14138,12 +12593,12 @@ } }, "node_modules/magic-string": { - "version": "0.30.10", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", - "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "version": "0.30.11", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", "dev": true, "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" + "@jridgewell/sourcemap-codec": "^1.5.0" } }, "node_modules/make-dir": { @@ -14245,10 +12700,13 @@ } }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/merge-stream": { "version": "2.0.0", @@ -14329,6 +12787,18 @@ "node": ">=6" } }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/mimic-response": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", @@ -14750,11 +13220,11 @@ } }, "node_modules/ng2-pdf-viewer": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/ng2-pdf-viewer/-/ng2-pdf-viewer-10.2.2.tgz", - "integrity": "sha512-GaKAvF0nXAiR9U4LFWuT54MM9nzp0ie8GGscp34W+lFsSOXdlwS0iFx5UPuVlODRm3YEUKx6xcK5oaJeBq0SAw==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/ng2-pdf-viewer/-/ng2-pdf-viewer-10.3.0.tgz", + "integrity": "sha512-zU51lVcsmCy1Nytw94r2ABHfdBKlJWc+Zllk7Fct3pT3b7Q8UbMiZ8IbA4d5iXoe2/iznsS2YXGzMn0/vPHcXA==", "dependencies": { - "pdfjs-dist": "^3.11.174", + "pdfjs-dist": "^4.5.136", "tslib": "^2.3.0" } }, @@ -14860,28 +13330,12 @@ "node": "4.x || >=6.0.0" }, "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "optional": true - }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "optional": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, "node_modules/node-forge": { @@ -14918,9 +13372,9 @@ } }, "node_modules/node-gyp-build": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz", - "integrity": "sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==", + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.2.tgz", + "integrity": "sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==", "dev": true, "optional": true, "bin": { @@ -15035,16 +13489,10 @@ "node": "^16.13.0 || >=18.0.0" } }, - "node_modules/node-machine-id": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/node-machine-id/-/node-machine-id-1.1.12.tgz", - "integrity": "sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==", - "dev": true - }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "dev": true }, "node_modules/nopt": { @@ -15169,9 +13617,9 @@ } }, "node_modules/npm-package-arg": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.2.tgz", - "integrity": "sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==", + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.3.tgz", + "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", "dev": true, "dependencies": { "hosted-git-info": "^7.0.0", @@ -15196,9 +13644,9 @@ } }, "node_modules/npm-pick-manifest": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.1.tgz", - "integrity": "sha512-Udm1f0l2nXb3wxDpKjfohwgdFUSV50UVwzEIpDXVsbDMXVIEF81a/i0UhuQbhrPMMmdiq3+YMFLFIRVLs3hxQw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz", + "integrity": "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==", "dev": true, "dependencies": { "npm-install-checks": "^6.0.0", @@ -15266,261 +13714,6 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/nx": { - "version": "19.3.0", - "resolved": "https://registry.npmjs.org/nx/-/nx-19.3.0.tgz", - "integrity": "sha512-WILWiROUkZWwuPJ12tP24Z0NULPEhxFN9i55/fECuVXYaFtkg6FvEne9C4d4bRqhZPcbrz6WhHnzE3NhdjH7XQ==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@nrwl/tao": "19.3.0", - "@yarnpkg/lockfile": "^1.1.0", - "@yarnpkg/parsers": "3.0.0-rc.46", - "@zkochan/js-yaml": "0.0.7", - "axios": "^1.6.0", - "chalk": "^4.1.0", - "cli-cursor": "3.1.0", - "cli-spinners": "2.6.1", - "cliui": "^8.0.1", - "dotenv": "~16.3.1", - "dotenv-expand": "~10.0.0", - "enquirer": "~2.3.6", - "figures": "3.2.0", - "flat": "^5.0.2", - "front-matter": "^4.0.2", - "fs-extra": "^11.1.0", - "ignore": "^5.0.4", - "jest-diff": "^29.4.1", - "jsonc-parser": "3.2.0", - "lines-and-columns": "~2.0.3", - "minimatch": "9.0.3", - "node-machine-id": "1.1.12", - "npm-run-path": "^4.0.1", - "open": "^8.4.0", - "ora": "5.3.0", - "semver": "^7.5.3", - "string-width": "^4.2.3", - "strong-log-transformer": "^2.1.0", - "tar-stream": "~2.2.0", - "tmp": "~0.2.1", - "tsconfig-paths": "^4.1.2", - "tslib": "^2.3.0", - "yargs": "^17.6.2", - "yargs-parser": "21.1.1" - }, - "bin": { - "nx": "bin/nx.js", - "nx-cloud": "bin/nx-cloud.js" - }, - "optionalDependencies": { - "@nx/nx-darwin-arm64": "19.3.0", - "@nx/nx-darwin-x64": "19.3.0", - "@nx/nx-freebsd-x64": "19.3.0", - "@nx/nx-linux-arm-gnueabihf": "19.3.0", - "@nx/nx-linux-arm64-gnu": "19.3.0", - "@nx/nx-linux-arm64-musl": "19.3.0", - "@nx/nx-linux-x64-gnu": "19.3.0", - "@nx/nx-linux-x64-musl": "19.3.0", - "@nx/nx-win32-arm64-msvc": "19.3.0", - "@nx/nx-win32-x64-msvc": "19.3.0" - }, - "peerDependencies": { - "@swc-node/register": "^1.8.0", - "@swc/core": "^1.3.85" - }, - "peerDependenciesMeta": { - "@swc-node/register": { - "optional": true - }, - "@swc/core": { - "optional": true - } - } - }, - "node_modules/nx/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/nx/node_modules/axios": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", - "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/nx/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/nx/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/nx/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/nx/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/nx/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/nx/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/nx/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/nx/node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, - "node_modules/nx/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/nx/node_modules/ora": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.3.0.tgz", - "integrity": "sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==", - "dev": true, - "dependencies": { - "bl": "^4.0.3", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "log-symbols": "^4.0.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/nx/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nx/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nx/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -15531,10 +13724,13 @@ } }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", "dev": true, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -15613,17 +13809,18 @@ } }, "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", + "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", "dev": true, "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -16032,9 +14229,9 @@ "dev": true }, "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", "dev": true }, "node_modules/path-type": { @@ -16046,31 +14243,31 @@ "node": ">=8" } }, - "node_modules/path2d-polyfill": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path2d-polyfill/-/path2d-polyfill-2.0.1.tgz", - "integrity": "sha512-ad/3bsalbbWhmBo0D6FZ4RNMwsLsPpL6gnvhuSaU5Vm7b06Kr5ubSltQQ0T7YKsiJQO+g22zJ4dJKNTXIyOXtA==", + "node_modules/path2d": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/path2d/-/path2d-0.2.1.tgz", + "integrity": "sha512-Fl2z/BHvkTNvkuBzYTpTuirHZg6wW9z8+4SND/3mDTEcYbbNKWAy21dz9D3ePNNwrrK8pqZO5vLPZ1hLF6T7XA==", "optional": true, "engines": { - "node": ">=8" + "node": ">=6" } }, "node_modules/pdfjs-dist": { - "version": "3.11.174", - "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-3.11.174.tgz", - "integrity": "sha512-TdTZPf1trZ8/UFu5Cx/GXB7GZM30LT+wWUNfsi6Bq8ePLnb+woNKtDymI2mxZYBpMbonNFqKmiz684DIfnd8dA==", + "version": "4.5.136", + "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-4.5.136.tgz", + "integrity": "sha512-V1BALcAN/FmxBEShLxoP73PlQZAZtzlaNfRbRhJrKvXzjLC5VaIlBAQUJuWP8iaYUmIdmdLHmt3E2TBglxOm3w==", "engines": { "node": ">=18" }, "optionalDependencies": { "canvas": "^2.11.2", - "path2d-polyfill": "^2.0.1" + "path2d": "^0.2.1" } }, "node_modules/pdfmake": { - "version": "0.2.11", - "resolved": "https://registry.npmjs.org/pdfmake/-/pdfmake-0.2.11.tgz", - "integrity": "sha512-Ig9LBhIYWW8t0/MiXQPYOQdMgwjg+f3JS2iWA7q94Ftc4wSDO5VZP+a1+QN7uz3FbA7+vB4EEYfg3xU0wRPk8w==", + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/pdfmake/-/pdfmake-0.2.12.tgz", + "integrity": "sha512-TFsqaG6KVtk+TWermmJNNwom3wmB/xiz07prM74KBhdM+7pz3Uwq2b0uoqhhQRn6cYUTpL8lXZY6xF011o1YcQ==", "dependencies": { "@foliojs-fork/linebreak": "^1.1.1", "@foliojs-fork/pdfkit": "^0.14.0", @@ -16245,9 +14442,9 @@ "integrity": "sha512-r6Q21sKsY1AjTVVjOuU02VYKVNQGJNQHjTIvs4dEbeuuYfxgYk/DGD2mqqq4RDaVkwdSq0VEtmQUOPe/wH8X3g==" }, "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.4.41", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", "dev": true, "funding": [ { @@ -16265,7 +14462,7 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", + "picocolors": "^1.0.1", "source-map-js": "^1.2.0" }, "engines": { @@ -16423,32 +14620,6 @@ "node": ">=6.0.0" } }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/proc-log": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", @@ -16699,12 +14870,6 @@ "node": ">= 0.10" } }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", @@ -16872,12 +15037,12 @@ } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dev": true, "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -16951,12 +15116,6 @@ "node": ">=0.10.0" } }, - "node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true - }, "node_modules/read-installed": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/read-installed/-/read-installed-3.1.5.tgz", @@ -17347,9 +15506,9 @@ } }, "node_modules/rollup": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", - "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.20.0.tgz", + "integrity": "sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -17362,22 +15521,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.18.0", - "@rollup/rollup-android-arm64": "4.18.0", - "@rollup/rollup-darwin-arm64": "4.18.0", - "@rollup/rollup-darwin-x64": "4.18.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", - "@rollup/rollup-linux-arm-musleabihf": "4.18.0", - "@rollup/rollup-linux-arm64-gnu": "4.18.0", - "@rollup/rollup-linux-arm64-musl": "4.18.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", - "@rollup/rollup-linux-riscv64-gnu": "4.18.0", - "@rollup/rollup-linux-s390x-gnu": "4.18.0", - "@rollup/rollup-linux-x64-gnu": "4.18.0", - "@rollup/rollup-linux-x64-musl": "4.18.0", - "@rollup/rollup-win32-arm64-msvc": "4.18.0", - "@rollup/rollup-win32-ia32-msvc": "4.18.0", - "@rollup/rollup-win32-x64-msvc": "4.18.0", + "@rollup/rollup-android-arm-eabi": "4.20.0", + "@rollup/rollup-android-arm64": "4.20.0", + "@rollup/rollup-darwin-arm64": "4.20.0", + "@rollup/rollup-darwin-x64": "4.20.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.20.0", + "@rollup/rollup-linux-arm-musleabihf": "4.20.0", + "@rollup/rollup-linux-arm64-gnu": "4.20.0", + "@rollup/rollup-linux-arm64-musl": "4.20.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.20.0", + "@rollup/rollup-linux-riscv64-gnu": "4.20.0", + "@rollup/rollup-linux-s390x-gnu": "4.20.0", + "@rollup/rollup-linux-x64-gnu": "4.20.0", + "@rollup/rollup-linux-x64-musl": "4.20.0", + "@rollup/rollup-win32-arm64-msvc": "4.20.0", + "@rollup/rollup-win32-ia32-msvc": "4.20.0", + "@rollup/rollup-win32-x64-msvc": "4.20.0", "fsevents": "~2.3.2" } }, @@ -17470,10 +15629,12 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sass": { - "version": "1.77.6", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.6.tgz", - "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.8.tgz", + "integrity": "sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -17487,9 +15648,9 @@ } }, "node_modules/sass-loader": { - "version": "14.2.1", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-14.2.1.tgz", - "integrity": "sha512-G0VcnMYU18a4N7VoNDegg2OuMjYtxnqzQWARVWCIVSZwJeiL9kg8QMsuIZOplsJgTzZLF6jGxI3AClj8I9nRdQ==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.0.tgz", + "integrity": "sha512-n13Z+3rU9A177dk4888czcVFiC8CL9dii4qpXWUg3YIIgZEvi9TCFKjOQcbK0kJM7DJu9VucrZFddvNfYCPwtw==", "dev": true, "dependencies": { "neo-async": "^2.6.2" @@ -17581,9 +15742,9 @@ } }, "node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "devOptional": true, "bin": { "semver": "bin/semver.js" @@ -17593,9 +15754,9 @@ } }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dev": true, "dependencies": { "debug": "2.6.9", @@ -17737,20 +15898,29 @@ "dev": true }, "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dev": true, "dependencies": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" }, "engines": { "node": ">= 0.8.0" } }, + "node_modules/serve-static/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -18395,25 +16565,8 @@ "engines": { "node": ">=8" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strong-log-transformer": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz", - "integrity": "sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==", - "dev": true, - "dependencies": { - "duplexer": "^0.1.1", - "minimist": "^1.2.0", - "through": "^2.3.4" - }, - "bin": { - "sl-log-transformer": "bin/sl-log-transformer.js" - }, - "engines": { - "node": ">=4" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/supports-color": { @@ -18558,9 +16711,9 @@ "devOptional": true }, "node_modules/terser": { - "version": "5.29.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.29.2.tgz", - "integrity": "sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==", + "version": "5.31.6", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.6.tgz", + "integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -18609,785 +16762,1159 @@ } } }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "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" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/thingies": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", + "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", + "dev": true, + "engines": { + "node": ">=10.18" + }, + "peerDependencies": { + "tslib": "^2" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==" + }, + "node_modules/tinycolor2": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", + "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==" + }, + "node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "engines": { + "node": ">=14.14" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "optional": true + }, + "node_modules/traverse": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", + "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==", + "engines": { + "node": "*" + } + }, + "node_modules/tree-dump": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", + "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", + "dev": true, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/treeify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", + "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-dedent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", + "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", + "dev": true, + "engines": { + "node": ">=6.10" + } + }, + "node_modules/ts-morph": { + "version": "23.0.0", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-23.0.0.tgz", + "integrity": "sha512-FcvFx7a9E8TUe6T3ShihXJLiJOiqyafzFKUO4aqIHDUCIvADdGNShcbc2W5PMr3LerXRv7mafvFZ9lRENxJmug==", + "dev": true, + "dependencies": { + "@ts-morph/common": "~0.24.0", + "code-block-writer": "^13.0.1" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/tsconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", + "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==", + "dev": true, + "dependencies": { + "@types/strip-bom": "^3.0.0", + "@types/strip-json-comments": "0.0.30", + "strip-bom": "^3.0.0", + "strip-json-comments": "^2.0.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", "dev": true, "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" + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": ">=6" } }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "node_modules/tsconfig/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "node_modules/tuf-js": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz", + "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" + "@tufjs/models": "2.0.1", + "debug": "^4.3.4", + "make-fetch-happen": "^13.0.1" }, "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/terser-webpack-plugin/node_modules/terser": { - "version": "5.31.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.1.tgz", - "integrity": "sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==", + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" + "prelude-ls": "^1.2.1" }, "engines": { - "node": ">=10" + "node": ">= 0.8.0" } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/thingies": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", - "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, - "engines": { - "node": ">=10.18" + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" }, - "peerDependencies": { - "tslib": "^2" + "engines": { + "node": ">= 0.6" } }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "node_modules/typed-assert": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", + "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", "dev": true }, - "node_modules/tiny-inflate": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", - "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==" - }, - "node_modules/tinycolor2": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", - "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==" + "node_modules/typescript": { + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } }, - "node_modules/tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "node_modules/ua-parser-js": { + "version": "0.7.38", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.38.tgz", + "integrity": "sha512-fYmIy7fKTSFAhG3fuPlubeGaMoAd6r0rSnfEsO5nEY55i26KSLt9EH7PLQiiqPUhNqYIJvSkTy1oArIcXAbPbA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], "engines": { - "node": ">=14.14" + "node": "*" } }, - "node_modules/to-fast-properties": { + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==" + }, + "node_modules/undici-types": { + "version": "6.19.6", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.6.tgz", + "integrity": "sha512-e/vggGopEfTKSvj4ihnOLTsqhrKRN3LeO6qSN/GxohhuRv8qH9bNQ4B8W7e/vFL+0XTnmHPB4/kegunZGA4Org==", + "dev": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", "dev": true, "engines": { "node": ">=4" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, "dependencies": { - "is-number": "^7.0.0" + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" }, "engines": { - "node": ">=8.0" + "node": ">=4" } }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true, "engines": { - "node": ">=0.6" + "node": ">=4" } }, - "node_modules/traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==", - "engines": { - "node": "*" + "node_modules/unicode-properties": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.4.1.tgz", + "integrity": "sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==", + "dependencies": { + "base64-js": "^1.3.0", + "unicode-trie": "^2.0.0" } }, - "node_modules/tree-dump": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", - "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "node": ">=4" } }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "bin": { - "tree-kill": "cli.js" + "node_modules/unicode-trie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz", + "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==", + "dependencies": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + }, + "node_modules/unicode-trie/node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==" + }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/treeify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", - "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==", + "node_modules/unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", "dev": true, + "dependencies": { + "unique-slug": "^4.0.0" + }, "engines": { - "node": ">=0.6" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/ts-api-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "node_modules/unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", "dev": true, - "engines": { - "node": ">=16" + "dependencies": { + "imurmurhash": "^0.1.4" }, - "peerDependencies": { - "typescript": ">=4.2.0" + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/ts-dedent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", - "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, "engines": { - "node": ">=6.10" + "node": ">= 0.8" } }, - "node_modules/ts-morph": { - "version": "23.0.0", - "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-23.0.0.tgz", - "integrity": "sha512-FcvFx7a9E8TUe6T3ShihXJLiJOiqyafzFKUO4aqIHDUCIvADdGNShcbc2W5PMr3LerXRv7mafvFZ9lRENxJmug==", - "dev": true, + "node_modules/unzipper": { + "version": "0.10.14", + "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.14.tgz", + "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==", "dependencies": { - "@ts-morph/common": "~0.24.0", - "code-block-writer": "^13.0.1" + "big-integer": "^1.6.17", + "binary": "~0.3.0", + "bluebird": "~3.4.1", + "buffer-indexof-polyfill": "~1.0.0", + "duplexer2": "~0.1.4", + "fstream": "^1.0.12", + "graceful-fs": "^4.2.2", + "listenercount": "~1.0.1", + "readable-stream": "~2.3.6", + "setimmediate": "~1.0.4" } }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "node_modules/unzipper/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "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" + } + }, + "node_modules/unzipper/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/unzipper/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" + "escalade": "^3.1.2", + "picocolors": "^1.0.1" }, "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" + "update-browserslist-db": "cli.js" }, "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } + "browserslist": ">= 4.21.0" } }, - "node_modules/ts-node/node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-toolkit": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/url-toolkit/-/url-toolkit-2.2.5.tgz", + "integrity": "sha512-mtN6xk+Nac+oyJ/PrI7tzfmomRVNFIWKUbG8jdYFt52hxbiReFAXIjYskvu64/dvuW71IcB7lV8l0HvZMac6Jg==" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/util-extend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", + "integrity": "sha512-mLs5zAK+ctllYBj+iAQvlDCwoxU/WDOUaJkcFudeiAX6OajC6BKXJUa9a+tbtkC11dz2Ufb7h0lyvIOVn4LADA==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true, "engines": { - "node": ">=0.4.0" + "node": ">= 0.4.0" } }, - "node_modules/tsconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", - "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==", + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "dependencies": { - "@types/strip-bom": "^3.0.0", - "@types/strip-json-comments": "0.0.30", - "strip-bom": "^3.0.0", - "strip-json-comments": "^2.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, - "node_modules/tsconfig-paths": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", - "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "node_modules/validate-npm-package-name": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", "dev": true, - "dependencies": { - "json5": "^2.2.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, "engines": { - "node": ">=6" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/tsconfig/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8" } }, - "node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + "node_modules/video.js": { + "version": "8.17.3", + "resolved": "https://registry.npmjs.org/video.js/-/video.js-8.17.3.tgz", + "integrity": "sha512-zhhmE0LNxJRA603/48oYzF7GYdT+rQRscvcsouYxFE71aKhalHLBP6S9/XjixnyjcrYgwIx8OQo6eSjcbbAW0Q==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@videojs/http-streaming": "3.13.2", + "@videojs/vhs-utils": "^4.0.0", + "@videojs/xhr": "2.7.0", + "aes-decrypter": "^4.0.1", + "global": "4.4.0", + "m3u8-parser": "^7.1.0", + "mpd-parser": "^1.2.2", + "mux.js": "^7.0.1", + "safe-json-parse": "4.0.0", + "videojs-contrib-quality-levels": "4.1.0", + "videojs-font": "4.2.0", + "videojs-vtt.js": "0.15.5" + } }, - "node_modules/tuf-js": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz", - "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==", - "dev": true, + "node_modules/videojs-contrib-quality-levels": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/videojs-contrib-quality-levels/-/videojs-contrib-quality-levels-4.1.0.tgz", + "integrity": "sha512-TfrXJJg1Bv4t6TOCMEVMwF/CoS8iENYsWNKip8zfhB5kTcegiFYezEA0eHAJPU64ZC8NQbxQgOwAsYU8VXbOWA==", "dependencies": { - "@tufjs/models": "2.0.1", - "debug": "^4.3.4", - "make-fetch-happen": "^13.0.1" + "global": "^4.4.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=16", + "npm": ">=8" + }, + "peerDependencies": { + "video.js": "^8" } }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, + "node_modules/videojs-font": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/videojs-font/-/videojs-font-4.2.0.tgz", + "integrity": "sha512-YPq+wiKoGy2/M7ccjmlvwi58z2xsykkkfNMyIg4xb7EZQQNwB71hcSsB3o75CqQV7/y5lXkXhI/rsGAS7jfEmQ==" + }, + "node_modules/videojs-vtt.js": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/videojs-vtt.js/-/videojs-vtt.js-0.15.5.tgz", + "integrity": "sha512-yZbBxvA7QMYn15Lr/ZfhhLPrNpI/RmCSCqgIff57GC2gIrV5YfyzLfLyZMj0NnZSAz8syB4N0nHXpZg9MyrMOQ==", "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" + "global": "^4.3.1" } }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "node_modules/vite": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.0.tgz", + "integrity": "sha512-5xokfMX0PIiwCMCMb9ZJcMyh5wbBun0zUzKib+L65vAZ8GY9ePZMXxFrHbr/Kyll2+LSCY7xtERPpxkBDKngwg==", "dev": true, "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "esbuild": "^0.21.3", + "postcss": "^8.4.40", + "rollup": "^4.13.0" }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typed-assert": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", - "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", - "dev": true - }, - "node_modules/typescript": { - "version": "5.5.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", - "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", - "dev": true, "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "vite": "bin/vite.js" }, "engines": { - "node": ">=14.17" - } - }, - "node_modules/ua-parser-js": { - "version": "0.7.38", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.38.tgz", - "integrity": "sha512-fYmIy7fKTSFAhG3fuPlubeGaMoAd6r0rSnfEsO5nEY55i26KSLt9EH7PLQiiqPUhNqYIJvSkTy1oArIcXAbPbA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" + "less": { + "optional": true }, - { - "type": "github", - "url": "https://github.com/sponsors/faisalman" + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true } - ], - "engines": { - "node": "*" - } - }, - "node_modules/uc.micro": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", - "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==" - }, - "node_modules/undici": { - "version": "6.19.2", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.19.2.tgz", - "integrity": "sha512-JfjKqIauur3Q6biAtHJ564e3bWa8VvT+7cSiOJHFbX4Erv6CLGDpg8z+Fmg/1OI/47RA+GI2QZaF48SSaLvyBA==", - "dev": true, - "engines": { - "node": ">=18.17" } }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "node_modules/vite/node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], "dev": true, + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], "dev": true, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-properties": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.4.1.tgz", - "integrity": "sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==", - "dependencies": { - "base64-js": "^1.3.0", - "unicode-trie": "^2.0.0" + "node": ">=12" } }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], "dev": true, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-trie": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz", - "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==", - "dependencies": { - "pako": "^0.2.5", - "tiny-inflate": "^1.0.0" + "node": ">=12" } }, - "node_modules/unicode-trie/node_modules/pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==" - }, - "node_modules/unicorn-magic": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", - "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], "dev": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "node_modules/unique-filename": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "unique-slug": "^4.0.0" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=12" } }, - "node_modules/unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=12" } }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], "dev": true, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">= 10.0.0" + "node": ">=12" } }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 0.8" + "node": ">=12" } }, - "node_modules/unzipper": { - "version": "0.10.14", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.14.tgz", - "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==", - "dependencies": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "^1.0.12", - "graceful-fs": "^4.2.2", - "listenercount": "~1.0.1", - "readable-stream": "~2.3.6", - "setimmediate": "~1.0.4" + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/unzipper/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "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" + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/unzipper/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/unzipper/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/update-browserslist-db": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", - "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } + "optional": true, + "os": [ + "linux" ], - "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" + "engines": { + "node": ">=12" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], "dev": true, - "dependencies": { - "punycode": "^2.1.0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/url-toolkit": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/url-toolkit/-/url-toolkit-2.2.5.tgz", - "integrity": "sha512-mtN6xk+Nac+oyJ/PrI7tzfmomRVNFIWKUbG8jdYFt52hxbiReFAXIjYskvu64/dvuW71IcB7lV8l0HvZMac6Jg==" - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/util-extend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", - "integrity": "sha512-mLs5zAK+ctllYBj+iAQvlDCwoxU/WDOUaJkcFudeiAX6OajC6BKXJUa9a+tbtkC11dz2Ufb7h0lyvIOVn4LADA==", - "dev": true - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 0.4.0" + "node": ">=12" } }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/validate-npm-package-name": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", - "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], "dev": true, + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=12" } }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], "dev": true, + "optional": true, + "os": [ + "sunos" + ], "engines": { - "node": ">= 0.8" + "node": ">=12" } }, - "node_modules/video.js": { - "version": "8.17.2", - "resolved": "https://registry.npmjs.org/video.js/-/video.js-8.17.2.tgz", - "integrity": "sha512-oa4BGAr5H965OBcn83qM9xMMtjtSCRh0zMLnyouD9itQJ994FY/NlYo+XSPujk4NpsBGHSUF/+rGy0Wu5Mrzqg==", - "dependencies": { - "@babel/runtime": "^7.12.5", - "@videojs/http-streaming": "3.13.2", - "@videojs/vhs-utils": "^4.0.0", - "@videojs/xhr": "2.7.0", - "aes-decrypter": "^4.0.1", - "global": "4.4.0", - "m3u8-parser": "^7.1.0", - "mpd-parser": "^1.2.2", - "mux.js": "^7.0.1", - "safe-json-parse": "4.0.0", - "videojs-contrib-quality-levels": "4.1.0", - "videojs-font": "4.2.0", - "videojs-vtt.js": "0.15.5" + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, - "node_modules/videojs-contrib-quality-levels": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/videojs-contrib-quality-levels/-/videojs-contrib-quality-levels-4.1.0.tgz", - "integrity": "sha512-TfrXJJg1Bv4t6TOCMEVMwF/CoS8iENYsWNKip8zfhB5kTcegiFYezEA0eHAJPU64ZC8NQbxQgOwAsYU8VXbOWA==", - "dependencies": { - "global": "^4.4.0" - }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=16", - "npm": ">=8" - }, - "peerDependencies": { - "video.js": "^8" + "node": ">=12" } }, - "node_modules/videojs-font": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/videojs-font/-/videojs-font-4.2.0.tgz", - "integrity": "sha512-YPq+wiKoGy2/M7ccjmlvwi58z2xsykkkfNMyIg4xb7EZQQNwB71hcSsB3o75CqQV7/y5lXkXhI/rsGAS7jfEmQ==" - }, - "node_modules/videojs-vtt.js": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/videojs-vtt.js/-/videojs-vtt.js-0.15.5.tgz", - "integrity": "sha512-yZbBxvA7QMYn15Lr/ZfhhLPrNpI/RmCSCqgIff57GC2gIrV5YfyzLfLyZMj0NnZSAz8syB4N0nHXpZg9MyrMOQ==", - "dependencies": { - "global": "^4.3.1" + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, - "node_modules/vite": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.2.tgz", - "integrity": "sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==", + "node_modules/vite/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, - "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.38", - "rollup": "^4.13.0" - }, + "hasInstallScript": true, "bin": { - "vite": "bin/vite.js" + "esbuild": "bin/esbuild" }, "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" + "node": ">=12" }, "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, "node_modules/void-elements": { @@ -19448,12 +17975,11 @@ "optional": true }, "node_modules/webpack": { - "version": "5.92.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.92.1.tgz", - "integrity": "sha512-JECQ7IwJb+7fgUFBlrJzbyu3GEuNBcdqr1LD7IbSzwkSmIevTm8PF+wej3Oxuz/JFBUZ6O1o43zsPkwm1C4TmA==", + "version": "5.94.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", + "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", "dev": true, "dependencies": { - "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.5", "@webassemblyjs/ast": "^1.12.1", "@webassemblyjs/wasm-edit": "^1.12.1", @@ -19462,7 +17988,7 @@ "acorn-import-attributes": "^1.9.5", "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.0", + "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -19495,9 +18021,9 @@ } }, "node_modules/webpack-dev-middleware": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.2.1.tgz", - "integrity": "sha512-hRLz+jPQXo999Nx9fXVdKlg/aehsw1ajA9skAneGmT03xwmyuhvF93p6HUKKbWhXdcERtGTzUCtIQr+2IQegrA==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.2.tgz", + "integrity": "sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==", "dev": true, "dependencies": { "colorette": "^2.0.10", @@ -19591,18 +18117,6 @@ "balanced-match": "^1.0.0" } }, - "node_modules/webpack-dev-server/node_modules/define-lazy-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", - "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/webpack-dev-server/node_modules/glob": { "version": "10.4.5", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", @@ -19647,21 +18161,6 @@ } } }, - "node_modules/webpack-dev-server/node_modules/is-wsl": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", - "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", - "dev": true, - "dependencies": { - "is-inside-container": "^1.0.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/webpack-dev-server/node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", @@ -19677,24 +18176,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/webpack-dev-server/node_modules/open": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", - "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", - "dev": true, - "dependencies": { - "default-browser": "^5.2.1", - "define-lazy-prop": "^3.0.0", - "is-inside-container": "^1.0.0", - "is-wsl": "^3.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/webpack-dev-server/node_modules/rimraf": { "version": "5.0.10", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", @@ -19711,17 +18192,17 @@ } }, "node_modules/webpack-merge": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", "dev": true, "dependencies": { "clone-deep": "^4.0.1", "flat": "^5.0.2", - "wildcard": "^2.0.0" + "wildcard": "^2.0.1" }, "engines": { - "node": ">=10.0.0" + "node": ">=18.0.0" } }, "node_modules/webpack-sources": { @@ -19848,6 +18329,16 @@ "node": ">=0.8.0" } }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "optional": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", diff --git a/client/package.json b/client/package.json index d3871de6c2..e547f833b8 100644 --- a/client/package.json +++ b/client/package.json @@ -36,44 +36,44 @@ "get-available-languages": "npm run ts -- cli/get-available-languages.ts" }, "dependencies": { - "@angular/animations": "^18.1.4", - "@angular/cdk": "^18.1.4", - "@angular/common": "^18.1.4", - "@angular/compiler": "^18.1.4", - "@angular/core": "^18.1.4", - "@angular/forms": "^18.1.4", - "@angular/material": "^18.1.4", - "@angular/material-date-fns-adapter": "^18.1.4", - "@angular/platform-browser": "^18.1.4", - "@angular/platform-browser-dynamic": "^18.1.4", - "@angular/router": "^18.1.4", - "@angular/service-worker": "^18.1.4", + "@angular/animations": "^18.2.3", + "@angular/cdk": "^18.2.3", + "@angular/common": "^18.2.3", + "@angular/compiler": "^18.2.3", + "@angular/core": "^18.2.3", + "@angular/forms": "^18.2.3", + "@angular/material": "^18.2.3", + "@angular/material-date-fns-adapter": "^18.2.3", + "@angular/platform-browser": "^18.2.3", + "@angular/platform-browser-dynamic": "^18.2.3", + "@angular/router": "^18.2.3", + "@angular/service-worker": "^18.2.3", "@material/typography": "^14.0.0", "@ngx-pwa/local-storage": "^18.0.0", "@ngx-translate/core": "^15.0.0", "@ngx-translate/http-loader": "^8.0.0", - "@tiptap/core": "^2.5.9", - "@tiptap/extension-color": "^2.5.9", - "@tiptap/extension-highlight": "^2.5.9", - "@tiptap/extension-image": "^2.5.9", - "@tiptap/extension-link": "^2.5.9", - "@tiptap/extension-subscript": "^2.5.9", - "@tiptap/extension-superscript": "^2.5.9", - "@tiptap/extension-table": "^2.5.9", - "@tiptap/extension-table-cell": "^2.5.9", - "@tiptap/extension-table-header": "^2.5.9", - "@tiptap/extension-table-row": "^2.5.9", - "@tiptap/extension-text-align": "^2.5.9", + "@tiptap/core": "^2.6.6", + "@tiptap/extension-color": "^2.6.6", + "@tiptap/extension-highlight": "^2.6.6", + "@tiptap/extension-image": "^2.6.6", + "@tiptap/extension-link": "^2.6.6", + "@tiptap/extension-subscript": "^2.6.6", + "@tiptap/extension-superscript": "^2.6.6", + "@tiptap/extension-table": "^2.6.6", + "@tiptap/extension-table-cell": "^2.6.6", + "@tiptap/extension-table-header": "^2.6.6", + "@tiptap/extension-table-row": "^2.6.6", + "@tiptap/extension-text-align": "^2.6.6", "@tiptap/extension-text-style": "^2.5.4", - "@tiptap/extension-underline": "^2.5.9", + "@tiptap/extension-underline": "^2.6.6", "@tiptap/pm": "^2.5.4", - "@tiptap/starter-kit": "^2.5.9", + "@tiptap/starter-kit": "^2.6.6", "@tsparticles/angular": "^3.0.0", "@tsparticles/engine": "^3.5.0", "@tsparticles/plugin-emitters": "^3.5.0", "@tsparticles/shape-text": "^3.5.0", "@tsparticles/slim": "^3.5.0", - "chart.js": "^4.4.3", + "chart.js": "^4.4.4", "cm-chess": "^3.5.1", "cm-chessboard": "^8.7.4", "date-fns": "^3.6.0", @@ -83,34 +83,35 @@ "jszip": "^3.10.1", "material-design-icons-iconfont": "^6.7.0", "ng2-charts": "^6.0.1", - "ng2-pdf-viewer": "^10.2.2", + "ng2-pdf-viewer": "^10.3.0", "ngx-date-fns": "^11.0.0", "ngx-device-detector": "^8.0.0", "ngx-file-drop": "^16.0.0", "ngx-material-timepicker": "^13.1.1", "ngx-papaparse": "^8.0.0", - "pdfmake": "^0.2.11", + "pdfjs-dist": "^4.5.136", + "pdfmake": "^0.2.12", "pofile": "^1.1.4", "qrcode": "^1.5.4", "rxjs": "^7.8.1", "tinycolor2": "1.6.0", - "video.js": "^8.17.2", + "video.js": "^8.17.3", "zone.js": "^0.14.10" }, "devDependencies": { - "@angular-devkit/build-angular": "^18.1.4", - "@angular-eslint/builder": "^18.2.0", - "@angular-eslint/eslint-plugin": "^18.2.0", - "@angular-eslint/eslint-plugin-template": "^18.2.0", - "@angular-eslint/schematics": "^18.2.0", - "@angular-eslint/template-parser": "^18.2.0", - "@angular/cli": "^18.1.4", - "@angular/compiler-cli": "^18.1.4", + "@angular-devkit/build-angular": "^18.2.3", + "@angular-eslint/builder": "^18.3.0", + "@angular-eslint/eslint-plugin": "^18.3.0", + "@angular-eslint/eslint-plugin-template": "^18.3.0", + "@angular-eslint/schematics": "^18.3.0", + "@angular-eslint/template-parser": "^18.3.0", + "@angular/cli": "^18.2.3", + "@angular/compiler-cli": "^18.2.3", "@colsen1991/ngx-translate-extract-marker": "^2.0.8", "@types/file-saver": "^2.0.7", "@types/jasmine": "~5.1.4", "@types/js-yaml": "^4.0.9", - "@types/node": "^20.14.15", + "@types/node": "^20.16.5", "@types/pdfmake": "^0.2.9", "@types/qrcode": "^1.5.5", "@types/tinycolor2": "^1.4.6", @@ -122,9 +123,9 @@ "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-simple-import-sort": "^12.1.1", - "eslint-plugin-unused-imports": "^3.2.0", - "fetch-mock": "^11.1.0", - "jasmine-core": "~5.2.0", + "eslint-plugin-unused-imports": "^4.1.3", + "fetch-mock": "^11.1.3", + "jasmine-core": "~5.3.0", "js-yaml": "^4.1.0", "karma": "~6.4.4", "karma-chrome-launcher": "~3.2.0", diff --git a/client/src/app/domain/interfaces/has-attachment-ids.ts b/client/src/app/domain/interfaces/has-attachment-ids.ts index 28d44c2522..240dc999bd 100644 --- a/client/src/app/domain/interfaces/has-attachment-ids.ts +++ b/client/src/app/domain/interfaces/has-attachment-ids.ts @@ -1,5 +1,5 @@ import { Id } from '../definitions/key-types'; -export interface HasAttachmentIds { - attachment_ids: Id[]; // (mediafile/attachment_ids)[]; +export interface HasAttachmentMeetingMediafileIds { + attachment_meeting_mediafile_ids: Id[]; // (meeting_mediafile/attachment_meeting_mediafile_ids)[]; } diff --git a/client/src/app/domain/models/assignments/assignment.ts b/client/src/app/domain/models/assignments/assignment.ts index 242f4c15a6..2252e0401e 100644 --- a/client/src/app/domain/models/assignments/assignment.ts +++ b/client/src/app/domain/models/assignments/assignment.ts @@ -1,7 +1,7 @@ import { Id } from '../../definitions/key-types'; import { HasSequentialNumber } from '../../interfaces'; import { HasAgendaItemId } from '../../interfaces/has-agenda-item-id'; -import { HasAttachmentIds } from '../../interfaces/has-attachment-ids'; +import { HasAttachmentMeetingMediafileIds } from '../../interfaces/has-attachment-ids'; import { HasListOfSpeakersId } from '../../interfaces/has-list-of-speakers-id'; import { HasMeetingId } from '../../interfaces/has-meeting-id'; import { HasPollIds } from '../../interfaces/has-poll-ids'; @@ -44,7 +44,7 @@ export class Assignment extends BaseModel { `agenda_item_id`, `list_of_speakers_id`, `tag_ids`, - `attachment_ids`, + `attachment_meeting_mediafile_ids`, `projection_ids`, `meeting_id` ]; @@ -52,7 +52,7 @@ export class Assignment extends BaseModel { export interface Assignment extends HasMeetingId, HasProjectionIds, - HasAttachmentIds, + HasAttachmentMeetingMediafileIds, HasTagIds, HasAgendaItemId, HasListOfSpeakersId, diff --git a/client/src/app/domain/models/mediafiles/mediafile.constants.ts b/client/src/app/domain/models/mediafiles/mediafile.constants.ts index 0c77784703..37d24523f3 100644 --- a/client/src/app/domain/models/mediafiles/mediafile.constants.ts +++ b/client/src/app/domain/models/mediafiles/mediafile.constants.ts @@ -36,6 +36,8 @@ export const FontDefaults: { [place in FontPlace]: string } = { }; export const FONT_PLACES = Object.keys(FontDisplayNames) as FontPlace[]; +export type MediafileUsageType = `logo` | `font`; + export type ViewMediafileMeetingUsageKey = | `used_as_logo_${LogoPlace}_in_meeting` | `used_as_font_${FontPlace}_in_meeting`; diff --git a/client/src/app/domain/models/mediafiles/mediafile.ts b/client/src/app/domain/models/mediafiles/mediafile.ts index c66ca529a3..f28d30f927 100644 --- a/client/src/app/domain/models/mediafiles/mediafile.ts +++ b/client/src/app/domain/models/mediafiles/mediafile.ts @@ -1,10 +1,8 @@ -import { Fqid, Id } from '../../definitions/key-types'; -import { HasListOfSpeakersId } from '../../interfaces/has-list-of-speakers-id'; +import { ORGANIZATION_ID } from 'src/app/site/pages/organization/services/organization.service'; + +import { Id } from '../../definitions/key-types'; import { HasOwnerId } from '../../interfaces/has-owner-id'; -import { HasProjectionIds } from '../../interfaces/has-projectable-ids'; -import { HasProperties } from '../../interfaces/has-properties'; import { BaseModel } from '../base/base-model'; -import { FONT_PLACES, FontPlace, LOGO_PLACES, LogoPlace, MediafileMeetingUsageIdKey } from './mediafile.constants'; interface PdfInformation { pages?: number; @@ -21,80 +19,24 @@ export class Mediafile extends BaseModel { public title!: string; public is_directory!: boolean; + public published_to_meetings_in_organization_id!: Id; + public meeting_mediafile_ids!: Id[]; public filesize!: string; public filename!: string; public mimetype!: string; public pdf_information!: PdfInformation; public create_timestamp!: string; - public has_inherited_access_groups!: boolean; public token: string; - public access_group_ids!: Id[]; // (group/mediafile_access_group_ids)[]; - public inherited_access_group_ids!: Id[]; // (group/mediafile_inherited_access_group_ids)[]; // Note: calculated public parent_id!: Id; // mediafile/child_ids; public child_ids!: Id[]; // (mediafile/parent_id)[]; - public attachment_ids!: Fqid[]; // (*/attachment_ids)[]; public constructor(input?: any) { super(Mediafile.COLLECTION, input); } - /** - * Check if the image is used at the given place. If place is empty, checks - * if the image is used in any place and returns the first meeting id found. - * - * @param place The places the image can be used - * @returns the meeting id or `null` if the image is not used. - */ - public used_as_logo_in_meeting_id(place?: LogoPlace): Id | null { - return this.used_in_meeting(`logo`, place); - } - - /** - * Check if the font is used at the given place. If place is empty, checks - * if the font is used in any place and returns the first meeting id found. - * - * @param place The text parts the font can be used - * @returns the meeting id or `null` if the font is not used. - */ - public used_as_font_in_meeting_id(place?: FontPlace): Id | null { - return this.used_in_meeting(`font`, place); - } - - private used_in_meeting(type: string, place?: LogoPlace | FontPlace): Id | null { - if (!place) { - const list = this.getPlaces(); - for (let i = 0; i < list?.length; i++) { - const meetingId = this.getSpecificUsedInMeetingId(type, list[i]); - if (meetingId) { - return meetingId; - } - } - return null; - } - - if (this.getPlaces().indexOf(place) === -1) { - return null; - } - - return this.getSpecificUsedInMeetingId(type, place) || null; - } - - public getFontPlaces(): FontPlace[] { - return FONT_PLACES.filter(place => !!this.getSpecificUsedInMeetingId(`font`, place)); - } - - public getLogoPlaces(): LogoPlace[] { - return LOGO_PLACES.filter(place => !!this.getSpecificUsedInMeetingId(`logo`, place)); - } - - public getPlaces(): (LogoPlace | FontPlace)[] { - return [...this.getFontPlaces(), ...this.getLogoPlaces()]; - } - - private getSpecificUsedInMeetingId(type: string, place: LogoPlace | FontPlace): Id { - const path = `used_as_${type}_${place}_in_meeting_id` as keyof Mediafile; - return this[path] as Id; + public get isPublishedOrganizationWide(): boolean { + return this.published_to_meetings_in_organization_id === ORGANIZATION_ID; } /** @@ -116,34 +58,11 @@ export class Mediafile extends BaseModel { `pdf_information`, `create_timestamp`, `token`, - `inherited_access_group_ids`, - `access_group_ids`, + `published_to_meetings_in_organization_id`, `parent_id`, `child_ids`, - `list_of_speakers_id`, - `projection_ids`, - `attachment_ids`, `owner_id`, - `used_as_logo_projector_main_in_meeting_id`, - `used_as_logo_projector_header_in_meeting_id`, - `used_as_logo_web_header_in_meeting_id`, - `used_as_logo_pdf_header_l_in_meeting_id`, - `used_as_logo_pdf_header_r_in_meeting_id`, - `used_as_logo_pdf_footer_l_in_meeting_id`, - `used_as_logo_pdf_footer_r_in_meeting_id`, - `used_as_logo_pdf_ballot_paper_in_meeting_id`, - `used_as_font_regular_in_meeting_id`, - `used_as_font_italic_in_meeting_id`, - `used_as_font_bold_in_meeting_id`, - `used_as_font_bold_italic_in_meeting_id`, - `used_as_font_monospace_in_meeting_id`, - `used_as_font_chyron_speaker_name_in_meeting_id`, - `used_as_font_projector_h1_in_meeting_id`, - `used_as_font_projector_h2_in_meeting_id` + `meeting_mediafile_ids` ]; } -export interface Mediafile - extends HasOwnerId, - HasProjectionIds, - HasListOfSpeakersId, - HasProperties {} +export interface Mediafile extends HasOwnerId {} diff --git a/client/src/app/domain/models/meeting-mediafile/meeting-mediafile.ts b/client/src/app/domain/models/meeting-mediafile/meeting-mediafile.ts new file mode 100644 index 0000000000..a1a84ed8a4 --- /dev/null +++ b/client/src/app/domain/models/meeting-mediafile/meeting-mediafile.ts @@ -0,0 +1,123 @@ +import { Fqid, Id } from '../../definitions/key-types'; +import { HasMeetingId } from '../../interfaces'; +import { HasListOfSpeakersId } from '../../interfaces/has-list-of-speakers-id'; +import { HasProjectionIds } from '../../interfaces/has-projectable-ids'; +import { HasProperties } from '../../interfaces/has-properties'; +import { BaseModel } from '../base/base-model'; +import { + FONT_PLACES, + FontPlace, + LOGO_PLACES, + LogoPlace, + MediafileMeetingUsageIdKey, + MediafileUsageType +} from '../mediafiles/mediafile.constants'; + +/** + * Representation of MeetingMediaFile + * @ignore + */ +export class MeetingMediafile extends BaseModel { + public static COLLECTION = `meeting_mediafile`; + + public mediafile_id: Id; + public is_public: boolean; + public inherited_access_group_ids!: Id[]; // (group/meeting_mediafile_inherited_access_group_ids)[]; // Note: calculated + public access_group_ids!: Id[]; // (group/meeting_mediafile_access_group_ids)[]; + public attachment_ids!: Fqid[]; // (*/attachment_meeting_mediafile_ids)[]; + + public constructor(input?: any) { + super(MeetingMediafile.COLLECTION, input); + } + + /** + * Check if the image is used at the given place. If place is empty, checks + * if the image is used in any place and returns the first meeting id found. + * + * @param place The places the image can be used + * @returns the meeting id or `null` if the image is not used. + */ + public used_as_logo_in_meeting_id(place?: LogoPlace): Id | null { + return this.used_in_meeting(`logo`, place); + } + + /** + * Check if the font is used at the given place. If place is empty, checks + * if the font is used in any place and returns the first meeting id found. + * + * @param place The text parts the font can be used + * @returns the meeting id or `null` if the font is not used. + */ + public used_as_font_in_meeting_id(place?: FontPlace): Id | null { + return this.used_in_meeting(`font`, place); + } + + private used_in_meeting(type: MediafileUsageType, place?: LogoPlace | FontPlace): Id | null { + if (!place) { + const list = this.getPlaces(); + for (let i = 0; i < list?.length; i++) { + const meetingId = this.getSpecificUsedInMeetingId(type, list[i]); + if (meetingId) { + return meetingId; + } + } + return null; + } + + if (this.getPlaces().indexOf(place) === -1) { + return null; + } + + return this.getSpecificUsedInMeetingId(type, place) || null; + } + + public getFontPlaces(): FontPlace[] { + return FONT_PLACES.filter(place => !!this.getSpecificUsedInMeetingId(`font`, place)); + } + + public getLogoPlaces(): LogoPlace[] { + return LOGO_PLACES.filter(place => !!this.getSpecificUsedInMeetingId(`logo`, place)); + } + + public getPlaces(): (LogoPlace | FontPlace)[] { + return [...this.getFontPlaces(), ...this.getLogoPlaces()]; + } + + private getSpecificUsedInMeetingId(type: MediafileUsageType, place: LogoPlace | FontPlace): Id { + const path = `used_as_${type}_${place}_in_meeting_id` as keyof MeetingMediafile; + return this[path] as Id; + } + + public static readonly REQUESTABLE_FIELDS: (keyof MeetingMediafile)[] = [ + `id`, + `mediafile_id`, + `meeting_id`, + `is_public`, + `inherited_access_group_ids`, + `access_group_ids`, + `list_of_speakers_id`, + `projection_ids`, + `attachment_ids`, + `used_as_logo_projector_main_in_meeting_id`, + `used_as_logo_projector_header_in_meeting_id`, + `used_as_logo_web_header_in_meeting_id`, + `used_as_logo_pdf_header_l_in_meeting_id`, + `used_as_logo_pdf_header_r_in_meeting_id`, + `used_as_logo_pdf_footer_l_in_meeting_id`, + `used_as_logo_pdf_footer_r_in_meeting_id`, + `used_as_logo_pdf_ballot_paper_in_meeting_id`, + `used_as_font_regular_in_meeting_id`, + `used_as_font_italic_in_meeting_id`, + `used_as_font_bold_in_meeting_id`, + `used_as_font_bold_italic_in_meeting_id`, + `used_as_font_monospace_in_meeting_id`, + `used_as_font_chyron_speaker_name_in_meeting_id`, + `used_as_font_projector_h1_in_meeting_id`, + `used_as_font_projector_h2_in_meeting_id` + ]; +} +export interface MeetingMediafile + extends HasProjectionIds, + HasListOfSpeakersId, + HasMeetingId, + HasProperties {} diff --git a/client/src/app/domain/models/meetings/meeting.ts b/client/src/app/domain/models/meetings/meeting.ts index 76fbd3aab0..3734056266 100644 --- a/client/src/app/domain/models/meetings/meeting.ts +++ b/client/src/app/domain/models/meetings/meeting.ts @@ -222,6 +222,7 @@ export class Meeting extends BaseModel { public group_ids!: Id[]; // (group/meeting_id)[]; public personal_note_ids!: Id[]; // (personal_note/meeting_id)[]; public mediafile_ids!: Id[]; // (mediafile/meeting_id)[]; + public meeting_mediafile_ids!: Id[]; // (mediafile/meeting_id)[]; public motion_ids!: Id[]; // (motion/meeting_id)[]; public motion_comment_section_ids!: Id[]; // (motion_comment_section/meeting_id)[]; public motion_comment_ids!: Id[]; // (motion_comment/meeting_id)[]; @@ -294,9 +295,9 @@ export class Meeting extends BaseModel { `location`, `start_time`, `end_time`, + `locked_from_inside`, `imported_at`, `language`, - `locked_from_inside`, `jitsi_domain`, `jitsi_room_name`, `jitsi_room_password`, @@ -449,6 +450,7 @@ export class Meeting extends BaseModel { `speaker_ids`, `topic_ids`, `group_ids`, + `meeting_mediafile_ids`, `mediafile_ids`, `motion_ids`, `forwarded_motion_ids`, diff --git a/client/src/app/domain/models/motions/motion.ts b/client/src/app/domain/models/motions/motion.ts index a41f6bde73..3cb4a6401b 100644 --- a/client/src/app/domain/models/motions/motion.ts +++ b/client/src/app/domain/models/motions/motion.ts @@ -1,6 +1,6 @@ import { Fqid, Id } from '../../definitions/key-types'; import { HasAgendaItemId } from '../../interfaces/has-agenda-item-id'; -import { HasAttachmentIds } from '../../interfaces/has-attachment-ids'; +import { HasAttachmentMeetingMediafileIds } from '../../interfaces/has-attachment-ids'; import { HasListOfSpeakersId } from '../../interfaces/has-list-of-speakers-id'; import { HasMeetingId } from '../../interfaces/has-meeting-id'; import { HasPersonalNoteIds } from '../../interfaces/has-personal-note-ids'; @@ -148,7 +148,7 @@ export class Motion extends BaseModel implements MotionFormattingReprese `agenda_item_id`, `list_of_speakers_id`, `tag_ids`, - `attachment_ids`, + `attachment_meeting_mediafile_ids`, `projection_ids`, `personal_note_ids`, `meeting_id` @@ -159,7 +159,7 @@ export interface Motion HasAgendaItemId, HasListOfSpeakersId, HasTagIds, - HasAttachmentIds, + HasAttachmentMeetingMediafileIds, HasPersonalNoteIds, HasProjectionIds, HasReferencedMotionInExtensionIds, diff --git a/client/src/app/domain/models/organizations/organization.ts b/client/src/app/domain/models/organizations/organization.ts index 25151d8c97..cfb2d96df3 100644 --- a/client/src/app/domain/models/organizations/organization.ts +++ b/client/src/app/domain/models/organizations/organization.ts @@ -52,6 +52,7 @@ export class Organization extends BaseModel { public archived_meeting_ids!: Id[]; // (meeting/is_archived_in_organization_id)[]; public template_meeting_ids!: Id[]; // (meeting/template_for_organization_id)[]; public mediafile_ids!: Id[]; + public published_mediafile_ids!: Id[]; public constructor(input?: any) { super(Organization.COLLECTION, input); @@ -86,6 +87,7 @@ export class Organization extends BaseModel { `theme_id`, `theme_ids`, `mediafile_ids`, + `published_mediafile_ids`, `user_ids`, `users_email_sender`, `users_email_replyto`, diff --git a/client/src/app/domain/models/topics/topic.ts b/client/src/app/domain/models/topics/topic.ts index 73a45ef047..77ecc34c43 100644 --- a/client/src/app/domain/models/topics/topic.ts +++ b/client/src/app/domain/models/topics/topic.ts @@ -2,7 +2,7 @@ import { HasPollIds } from 'src/app/domain/interfaces/has-poll-ids'; import { HasSequentialNumber } from '../../interfaces'; import { HasAgendaItemId } from '../../interfaces/has-agenda-item-id'; -import { HasAttachmentIds } from '../../interfaces/has-attachment-ids'; +import { HasAttachmentMeetingMediafileIds } from '../../interfaces/has-attachment-ids'; import { HasListOfSpeakersId } from '../../interfaces/has-list-of-speakers-id'; import { HasMeetingId } from '../../interfaces/has-meeting-id'; import { BaseModel } from '../base/base-model'; @@ -26,7 +26,7 @@ export class Topic extends BaseModel { `title`, `text`, `sequential_number`, - `attachment_ids`, + `attachment_meeting_mediafile_ids`, `agenda_item_id`, `list_of_speakers_id`, `meeting_id` @@ -36,6 +36,6 @@ export interface Topic extends HasMeetingId, HasAgendaItemId, HasListOfSpeakersId, - HasAttachmentIds, + HasAttachmentMeetingMediafileIds, HasSequentialNumber, HasPollIds {} diff --git a/client/src/app/domain/models/users/group.ts b/client/src/app/domain/models/users/group.ts index fd4f4bc153..1843ba71c5 100644 --- a/client/src/app/domain/models/users/group.ts +++ b/client/src/app/domain/models/users/group.ts @@ -18,8 +18,8 @@ export class Group extends BaseModel { public meeting_user_ids!: Id[]; // (meeting_user/group_ids)[]; public default_group_for_meeting_id!: Id; // meeting/default_group_id; public admin_group_for_meeting_id!: Id; // meeting/admin_group_id; - public mediafile_access_group_ids!: Id[]; // (mediafile/access_group_ids)[]; - public mediafile_inherited_access_group_ids!: Id[]; // (mediafile/inherited_access_group_ids)[]; + public meeting_mediafile_access_group_ids!: Id[]; // (mediafile/access_group_ids)[]; + public meeting_mediafile_inherited_access_group_ids!: Id[]; // (mediafile/inherited_access_group_ids)[]; public read_comment_section_ids!: Id[]; // (motion_comment_section/read_group_ids)[]; public write_comment_section_ids!: Id[]; // (motion_comment_section/write_group_ids)[]; public read_chat_group_ids!: Id[]; // (chat_group/read_group_ids)[]; @@ -51,8 +51,8 @@ export class Group extends BaseModel { `meeting_user_ids`, `default_group_for_meeting_id`, `admin_group_for_meeting_id`, - `mediafile_access_group_ids`, - `mediafile_inherited_access_group_ids`, + `meeting_mediafile_access_group_ids`, + `meeting_mediafile_inherited_access_group_ids`, `read_comment_section_ids`, `write_comment_section_ids`, `read_chat_group_ids`, diff --git a/client/src/app/domain/models/users/user.ts b/client/src/app/domain/models/users/user.ts index efde0d5100..daa58839be 100644 --- a/client/src/app/domain/models/users/user.ts +++ b/client/src/app/domain/models/users/user.ts @@ -64,8 +64,8 @@ export class User extends BaseDecimalModel { public static readonly REQUESTABLE_FIELDS: (keyof User)[] = [ `id`, `username`, - `saml_id`, `member_number`, + `saml_id`, `pronoun`, `title`, `first_name`, diff --git a/client/src/app/gateways/export/pdf-document.service/pdf-document.service.ts b/client/src/app/gateways/export/pdf-document.service/pdf-document.service.ts index b3b37acf5c..92b1a06c18 100644 --- a/client/src/app/gateways/export/pdf-document.service/pdf-document.service.ts +++ b/client/src/app/gateways/export/pdf-document.service/pdf-document.service.ts @@ -774,10 +774,9 @@ export class PdfDocumentService { progressBarRef.onAction().subscribe(() => { this.cancelPdfCreation(); }); + this.progressService.message = this.translate.instant(`Creating PDF file ...`); + this.progressService.progressMode = `determinate`; }); - - this.progressService.message = this.translate.instant(`Creating PDF file ...`); - this.progressService.progressMode = `determinate`; } /** diff --git a/client/src/app/gateways/meeting-media-adapter.service.spec.ts b/client/src/app/gateways/meeting-media-adapter.service.spec.ts index 4aea0a22c8..63ffec3e14 100644 --- a/client/src/app/gateways/meeting-media-adapter.service.spec.ts +++ b/client/src/app/gateways/meeting-media-adapter.service.spec.ts @@ -33,34 +33,34 @@ describe(`MeetingMediaAdapterService`, () => { let service: MeetingMediaAdapterService; let actionService: MockActionService; - const mediafile = { meeting_id: 2, id: 42 } as ViewMediafile; + const mediafile = { id: 42, meeting_id: 2 } as ViewMediafile; const testCases = [ { functionName: `setLogo`, place: LOGO_PLACES[0], - restPayload: mediafile, + restPayload: [2, mediafile], expectedAction: MeetingAction.SET_LOGO, expectedData: { id: 2, mediafile_id: 42 } }, { functionName: `unsetLogo`, place: LOGO_PLACES[1 % LOGO_PLACES.length], - restPayload: 1, + restPayload: [1], expectedAction: MeetingAction.UNSET_LOGO, expectedData: { id: 1 } }, { functionName: `setFont`, place: FONT_PLACES[2 % FONT_PLACES.length], - restPayload: mediafile, + restPayload: [2, mediafile], expectedAction: MeetingAction.SET_FONT, expectedData: { id: 2, mediafile_id: 42 } }, { functionName: `unsetFont`, place: FONT_PLACES[3 % FONT_PLACES.length], - restPayload: 123, + restPayload: [123], expectedAction: MeetingAction.UNSET_FONT, expectedData: { id: 123 } } @@ -77,7 +77,7 @@ describe(`MeetingMediaAdapterService`, () => { for (const test of testCases) { it(`test ${test.functionName} function`, async () => { - await expectAsync(service[test.functionName](test.place, test.restPayload)).toBeResolved(); + await expectAsync(service[test.functionName](test.place, ...test.restPayload)).toBeResolved(); expect(actionService.lastActions.length).toBe(1); expect(actionService.lastActions[0].requests).toEqual([ { action: test.expectedAction, data: [{ ...test.expectedData, place: test.place }] } diff --git a/client/src/app/gateways/meeting-media-adapter.service.ts b/client/src/app/gateways/meeting-media-adapter.service.ts index 05ebf08422..4e36f5b91f 100644 --- a/client/src/app/gateways/meeting-media-adapter.service.ts +++ b/client/src/app/gateways/meeting-media-adapter.service.ts @@ -4,10 +4,10 @@ import { Id } from '../domain/definitions/key-types'; import { ViewMediafile } from '../site/pages/meetings/pages/mediafiles'; import { ActionService } from './actions'; -type MediaAdapterActionParameters = ( - | { action: `set`; mediafile: ViewMediafile } - | { action: `unset`; meetingId: Id } -) & { type: `logo` | `font`; place: string }; +type MediaAdapterActionParameters = ({ action: `set`; mediafile: ViewMediafile } | { action: `unset` }) & { + type: `logo` | `font`; + place: string; +}; @Injectable({ providedIn: `root` @@ -15,31 +15,31 @@ type MediaAdapterActionParameters = ( export class MeetingMediaAdapterService { public constructor(private actionService: ActionService) {} - public setLogo(place: string, mediafile: ViewMediafile): Promise { - return this.performAction({ action: `set`, type: `logo`, place, mediafile }); + public setLogo(place: string, meetingId: Id, mediafile: ViewMediafile): Promise { + return this.performAction(meetingId, { action: `set`, type: `logo`, place, mediafile }); } public unsetLogo(place: string, meetingId: Id): Promise { - return this.performAction({ action: `unset`, type: `logo`, place, meetingId }); + return this.performAction(meetingId, { action: `unset`, type: `logo`, place }); } - public setFont(place: string, mediafile: ViewMediafile): Promise { - return this.performAction({ action: `set`, type: `font`, place, mediafile }); + public setFont(place: string, meetingId: Id, mediafile: ViewMediafile): Promise { + return this.performAction(meetingId, { action: `set`, type: `font`, place, mediafile }); } public unsetFont(place: string, meetingId: Id): Promise { - return this.performAction({ action: `unset`, type: `font`, place, meetingId }); + return this.performAction(meetingId, { action: `unset`, type: `font`, place }); } - private async performAction(param: MediaAdapterActionParameters): Promise { + private async performAction(meetingId: Id, param: MediaAdapterActionParameters): Promise { const data: any[] = [ { ...(param.action === `set` ? { - id: param.mediafile.meeting_id, + id: meetingId, mediafile_id: param.mediafile.id } - : { id: param.meetingId }), + : { id: meetingId }), place: param.place } ]; diff --git a/client/src/app/gateways/presenter/search-users-presenter.service.spec.ts b/client/src/app/gateways/presenter/search-users-presenter.service.spec.ts index 3b70487a66..126697e309 100644 --- a/client/src/app/gateways/presenter/search-users-presenter.service.spec.ts +++ b/client/src/app/gateways/presenter/search-users-presenter.service.spec.ts @@ -11,9 +11,27 @@ describe(`SearchUsersPresenterService`, () => { let presenter: MockPresenterService; const testUsers = [ - { id: 2, username: `johnDoe`, email: `john.doe@email.en`, first_name: `John`, last_name: `Doe` }, - { id: 3, username: `jd`, email: `joanna.doe@email.en`, first_name: `Joanna`, last_name: `Doe` }, - { id: 4, username: `johnsSecondAccount`, email: `john.doe@email.en`, first_name: `John`, last_name: `Doe` }, + { + id: 2, + username: `johnDoe`, + email: `john.doe@email.en`, + first_name: `John`, + last_name: `Doe` + }, + { + id: 3, + username: `jd`, + email: `joanna.doe@email.en`, + first_name: `Joanna`, + last_name: `Doe` + }, + { + id: 4, + username: `johnsSecondAccount`, + email: `john.doe@email.en`, + first_name: `John`, + last_name: `Doe` + }, { id: 5, username: `rando`, first_name: `Rando`, last_name: `Mized` } ]; @@ -37,7 +55,10 @@ describe(`SearchUsersPresenterService`, () => { !search || typeof search !== `object` || Object.keys(search).some( - key => ![`username`, `saml_id`, `first_name`, `last_name`, `email`].includes(key) + key => + ![`username`, `saml_id`, `first_name`, `last_name`, `email`, `member_number`].includes( + key + ) ) ) ) { diff --git a/client/src/app/gateways/presenter/search-users-presenter.service.ts b/client/src/app/gateways/presenter/search-users-presenter.service.ts index 56210c17a1..0cf86bfccd 100644 --- a/client/src/app/gateways/presenter/search-users-presenter.service.ts +++ b/client/src/app/gateways/presenter/search-users-presenter.service.ts @@ -71,6 +71,7 @@ export class SearchUsersPresenterService { permissionScope, permissionRelatedId, searchCriteria: users.map(entry => ({ + member_number: entry.member_number, username: entry.username, first_name: entry.first_name, last_name: entry.last_name, diff --git a/client/src/app/gateways/repositories/assignments/assignment-repository.service/assignment-repository.service.ts b/client/src/app/gateways/repositories/assignments/assignment-repository.service/assignment-repository.service.ts index 803d669a9e..ad888a057f 100644 --- a/client/src/app/gateways/repositories/assignments/assignment-repository.service/assignment-repository.service.ts +++ b/client/src/app/gateways/repositories/assignments/assignment-repository.service/assignment-repository.service.ts @@ -1,4 +1,5 @@ import { Injectable } from '@angular/core'; +import { Id } from 'src/app/domain/definitions/key-types'; import { Identifiable } from 'src/app/domain/interfaces'; import { AgendaItemRepositoryService } from 'src/app/gateways/repositories/agenda'; import { ViewAssignment } from 'src/app/site/pages/meetings/pages/assignments'; @@ -62,9 +63,9 @@ export class AssignmentRepositoryService extends BaseAgendaItemAndListOfSpeakers public getVerboseName = (plural = false): string => this.translate.instant(plural ? `Elections` : `Election`); - private getPartialPayload(model: Partial): any { + private getPartialPayload(model: Partial & { attachment_mediafile_ids?: Id[] }): any { return { - attachment_ids: model.attachment_ids === null ? [] : model.attachment_ids, + attachment_mediafile_ids: model.attachment_mediafile_ids === null ? [] : model.attachment_mediafile_ids, default_poll_description: model.default_poll_description, description: model.description, number_poll_candidates: model.number_poll_candidates, diff --git a/client/src/app/gateways/repositories/base-repository.ts b/client/src/app/gateways/repositories/base-repository.ts index 818478c76d..8caaaa9bc4 100644 --- a/client/src/app/gateways/repositories/base-repository.ts +++ b/client/src/app/gateways/repositories/base-repository.ts @@ -721,6 +721,10 @@ export abstract class BaseRepository { + obj.viewModelUpdateTimestamp = Date.now(); + return Reflect.set(obj, ...args); } }); this._createViewModelPipes.forEach(fn => fn(viewModel)); diff --git a/client/src/app/gateways/repositories/mediafiles/mediafile-repository.service.ts b/client/src/app/gateways/repositories/mediafiles/mediafile-repository.service.ts index 06d9c05ecd..a37fe6b258 100644 --- a/client/src/app/gateways/repositories/mediafiles/mediafile-repository.service.ts +++ b/client/src/app/gateways/repositories/mediafiles/mediafile-repository.service.ts @@ -1,13 +1,16 @@ import { Injectable } from '@angular/core'; +import { Id } from 'src/app/domain/definitions/key-types'; import { Identifiable } from 'src/app/domain/interfaces'; import { Mediafile } from 'src/app/domain/models/mediafiles/mediafile'; -import { ViewMediafile } from 'src/app/site/pages/meetings/pages/mediafiles'; +import { ViewMediafile, ViewMeetingMediafile } from 'src/app/site/pages/meetings/pages/mediafiles'; +import { ActiveMeetingService } from 'src/app/site/pages/meetings/services/active-meeting.service'; +import { ViewMeeting } from 'src/app/site/pages/meetings/view-models/view-meeting'; import { ORGANIZATION_ID } from 'src/app/site/pages/organization/services/organization.service'; import { Fieldsets } from 'src/app/site/services/model-request-builder'; -import { ActiveMeetingIdService } from '../../../site/pages/meetings/services/active-meeting-id.service'; import { TypedFieldset } from '../../../site/services/model-request-builder/model-request-builder.service'; import { BaseRepository } from '../base-repository'; +import { MeetingMediafileRepositoryService } from '../meeting-mediafile/meeting-mediafile-repository.service'; import { ProjectionRepositoryService } from '../projections/projection-repository.service'; import { RepositoryServiceCollectorService } from '../repository-service-collector.service'; import { MediafileAction } from './mediafile.action'; @@ -17,13 +20,14 @@ import { MediafileAction } from './mediafile.action'; }) export class MediafileRepositoryService extends BaseRepository { private get activeMeetingId(): number { - return this.activeMeetingIdService.meetingId!; + return this.activeMeetingService.meetingId!; } public constructor( repositoryServiceCollector: RepositoryServiceCollectorService, - private activeMeetingIdService: ActiveMeetingIdService, - private projectionRepo: ProjectionRepositoryService + private activeMeetingService: ActiveMeetingService, + private projectionRepo: ProjectionRepositoryService, + private meetingMediaRepo: MeetingMediafileRepositoryService ) { super(repositoryServiceCollector, Mediafile); @@ -43,7 +47,9 @@ export class MediafileRepositoryService extends BaseRepository = baseListFields.concat([`token`]); return { @@ -63,6 +69,14 @@ export class MediafileRepositoryService extends BaseRepository { + const payload = { + id: mediafile.id, + publish: publish + }; + return this.sendActionToBackend(MediafileAction.PUBLISH, payload); + } + public async uploadFile(partialMediafile: any): Promise { const variables: { [key: string]: any } = this.activeMeetingId ? { access_group_ids: partialMediafile.access_group_ids } @@ -78,9 +92,11 @@ export class MediafileRepositoryService extends BaseRepository): Promise { + public async createDirectory( + partialMediafile: Partial & { access_group_ids: Id[] } + ): Promise { const variables: { [key: string]: any } = this.activeMeetingId - ? { access_group_ids: partialMediafile.access_group_ids || [] } + ? { access_group_ids: partialMediafile.access_group_ids } : {}; const payload = { owner_id: this.getOwnerId(), @@ -99,6 +115,7 @@ export class MediafileRepositoryService extends BaseRepository this.activeMeetingIdService.meetingId; + viewModel.getEnsuredActiveMeetingId = (): number => this.activeMeetingId; + viewModel.getEnsuredActiveMeeting = (): ViewMeeting => this.activeMeetingService.meeting; viewModel.getProjectedContentObjects = (): string[] => this.projectionRepo.getViewModelList().map(p => p.content_object_id); + viewModel.getMeetingMediafile = (): ViewMeetingMediafile => this.getMeetingMediafile(model); return viewModel; } } diff --git a/client/src/app/gateways/repositories/mediafiles/mediafile.action.ts b/client/src/app/gateways/repositories/mediafiles/mediafile.action.ts index 0b8ef0ebd6..32f6399532 100644 --- a/client/src/app/gateways/repositories/mediafiles/mediafile.action.ts +++ b/client/src/app/gateways/repositories/mediafiles/mediafile.action.ts @@ -4,4 +4,5 @@ export class MediafileAction { public static readonly UPDATE = `mediafile.update`; public static readonly MOVE = `mediafile.move`; public static readonly DELETE = `mediafile.delete`; + public static readonly PUBLISH = `mediafile.publish`; } diff --git a/client/src/app/gateways/repositories/meeting-mediafile/meeting-mediafile-repository.service.spec.ts b/client/src/app/gateways/repositories/meeting-mediafile/meeting-mediafile-repository.service.spec.ts new file mode 100644 index 0000000000..ed3f6d85b7 --- /dev/null +++ b/client/src/app/gateways/repositories/meeting-mediafile/meeting-mediafile-repository.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { MeetingMediafileRepositoryService } from './meeting-mediafile-repository.service'; + +xdescribe(`MediafileRepositoryService`, () => { + let service: MeetingMediafileRepositoryService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(MeetingMediafileRepositoryService); + }); + + it(`should be created`, () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/client/src/app/gateways/repositories/meeting-mediafile/meeting-mediafile-repository.service.ts b/client/src/app/gateways/repositories/meeting-mediafile/meeting-mediafile-repository.service.ts new file mode 100644 index 0000000000..5e775270f6 --- /dev/null +++ b/client/src/app/gateways/repositories/meeting-mediafile/meeting-mediafile-repository.service.ts @@ -0,0 +1,73 @@ +import { Injectable } from '@angular/core'; +import { Id } from 'src/app/domain/definitions/key-types'; +import { MeetingMediafile } from 'src/app/domain/models/meeting-mediafile/meeting-mediafile'; +import { ViewMeetingMediafile } from 'src/app/site/pages/meetings/pages/mediafiles/view-models/view-meeting-mediafile'; + +import { ActiveMeetingIdService } from '../../../site/pages/meetings/services/active-meeting-id.service'; +import { BaseRepository } from '../base-repository'; +import { ProjectionRepositoryService } from '../projections/projection-repository.service'; +import { RepositoryServiceCollectorService } from '../repository-service-collector.service'; + +@Injectable({ + providedIn: `root` +}) +export class MeetingMediafileRepositoryService extends BaseRepository { + private mediafileMap: Map> = new Map(); + + public constructor( + repositoryServiceCollector: RepositoryServiceCollectorService, + private activeMeetingIdService: ActiveMeetingIdService, + private projectionRepo: ProjectionRepositoryService + ) { + super(repositoryServiceCollector, MeetingMediafile); + + this.viewModelSortFn = (a: ViewMeetingMediafile, b: ViewMeetingMediafile): number => + this.languageCollator.compare(a.mediafile?.title, b.mediafile?.title); + } + + public getTitle = (viewMeetingMediafile: ViewMeetingMediafile): string => viewMeetingMediafile.mediafile?.title; + + public getVerboseName = (plural = false): string => this.translate.instant(plural ? `Files` : `File`); + + public getIdByMediafile(meetingId: Id, mediafileId: Id): Id | null { + return this.mediafileMap.has(meetingId) ? this.mediafileMap.get(meetingId).get(mediafileId) : null; + } + + public override deleteModels(ids: Id[]): void { + for (const id of ids) { + const viewModel = this.viewModelStore[id]; + if (viewModel.mediafile_id && viewModel.meeting_id) { + try { + this.mediafileMap.get(viewModel.meeting_id).set(viewModel.meeting_id, id); + } catch (e) {} + } + } + super.deleteModels(ids); + } + + protected override onCreateViewModel(meetingMediafile: ViewMeetingMediafile): void { + if (meetingMediafile.mediafile_id && meetingMediafile.meeting_id) { + if (!this.mediafileMap.has(meetingMediafile.meeting_id)) { + this.mediafileMap.set(meetingMediafile.meeting_id, new Map()); + } + + this.mediafileMap.get(meetingMediafile.meeting_id).set(meetingMediafile.mediafile_id, meetingMediafile.id); + } + } + + protected override clearViewModelStore(): void { + this.mediafileMap = new Map(); + super.clearViewModelStore(); + } + + /** + * Adds the a meeting id function to the view mediafile. + */ + protected override createViewModel(model: MeetingMediafile): ViewMeetingMediafile { + const viewModel = super.createViewModel(model); + viewModel.getEnsuredActiveMeetingId = (): number => this.activeMeetingIdService.meetingId; + viewModel.getProjectedContentObjects = (): string[] => + this.projectionRepo.getViewModelList().map(p => p.content_object_id); + return viewModel; + } +} diff --git a/client/src/app/gateways/repositories/motions/motion-repository.service/motion-repository.service.ts b/client/src/app/gateways/repositories/motions/motion-repository.service/motion-repository.service.ts index 80919d8b28..1e6e5b1581 100644 --- a/client/src/app/gateways/repositories/motions/motion-repository.service/motion-repository.service.ts +++ b/client/src/app/gateways/repositories/motions/motion-repository.service/motion-repository.service.ts @@ -201,7 +201,9 @@ export class MotionRepositoryService extends BaseAgendaItemAndListOfSpeakersCont return this.sendBulkActionToBackend(MotionAction.FOLLOW_RECOMMENDATION, payload); } - public createTextBased(partialMotion: Partial): Action { + public createTextBased( + partialMotion: Partial + ): Action { const payload = { meeting_id: this.activeMeetingIdService.meetingId, lead_motion_id: partialMotion.lead_motion_id, @@ -211,7 +213,7 @@ export class MotionRepositoryService extends BaseAgendaItemAndListOfSpeakersCont submitter_ids: partialMotion.submitter_ids, workflow_id: partialMotion.workflow_id, category_id: partialMotion.category_id, - attachment_ids: partialMotion.attachment_ids, + attachment_mediafile_ids: partialMotion.attachment_mediafile_ids, reason: partialMotion.reason, number: partialMotion.number, state_extension: partialMotion.state_extension, @@ -222,7 +224,9 @@ export class MotionRepositoryService extends BaseAgendaItemAndListOfSpeakersCont return this.createAction(AmendmentAction.CREATE_TEXTBASED_AMENDMENT, payload); } - public createParagraphBased(partialMotion: Partial): Action { + public createParagraphBased( + partialMotion: Partial + ): Action { const payload = { meeting_id: this.activeMeetingIdService.meetingId, lead_motion_id: partialMotion.lead_motion_id, @@ -231,7 +235,8 @@ export class MotionRepositoryService extends BaseAgendaItemAndListOfSpeakersCont submitter_ids: partialMotion.submitter_ids === null ? [] : partialMotion.submitter_ids, workflow_id: partialMotion.workflow_id, category_id: partialMotion.category_id, - attachment_ids: partialMotion.attachment_ids === null ? [] : partialMotion.attachment_ids, + attachment_mediafile_ids: + partialMotion.attachment_mediafile_ids === null ? [] : partialMotion.attachment_mediafile_ids, reason: partialMotion.reason, number: partialMotion.number, state_extension: partialMotion.state_extension, @@ -325,7 +330,8 @@ export class MotionRepositoryService extends BaseAgendaItemAndListOfSpeakersCont submitter_ids: partialMotion.submitter_ids, workflow_id: partialMotion.workflow_id, category_id: partialMotion.category_id, - attachment_ids: partialMotion.attachment_ids === null ? [] : partialMotion.attachment_ids, + attachment_mediafile_ids: + partialMotion.attachment_mediafile_ids === null ? [] : partialMotion.attachment_mediafile_ids, reason: partialMotion.reason, number: partialMotion.number, block_id: partialMotion.block_id, @@ -352,7 +358,8 @@ export class MotionRepositoryService extends BaseAgendaItemAndListOfSpeakersCont supporter_meeting_user_ids: update[`supporter_meeting_user_ids`] === null ? [] : update[`supporter_meeting_user_ids`], tag_ids: update[`tag_ids`] === null ? [] : update[`tag_ids`], - attachment_ids: update[`attachment_ids`] === null ? [] : update[`attachment_ids`] + attachment_mediafile_ids: + update[`attachment_mediafile_ids`] === null ? [] : update[`attachment_mediafile_ids`] }; } diff --git a/client/src/app/gateways/repositories/topics/topic-repository.service.ts b/client/src/app/gateways/repositories/topics/topic-repository.service.ts index 6fd41ce8e5..4c223a3694 100644 --- a/client/src/app/gateways/repositories/topics/topic-repository.service.ts +++ b/client/src/app/gateways/repositories/topics/topic-repository.service.ts @@ -1,4 +1,5 @@ import { Injectable } from '@angular/core'; +import { Id } from 'src/app/domain/definitions/key-types'; import { Identifiable } from 'src/app/domain/interfaces'; import { Topic } from 'src/app/domain/models/topics/topic'; import { ViewAgendaItem, ViewTopic } from 'src/app/site/pages/meetings/pages/agenda'; @@ -27,12 +28,12 @@ export class TopicRepositoryService extends BaseAgendaItemAndListOfSpeakersConte return this.sendBulkActionToBackend(TopicAction.CREATE, payload); } - public update(update: Partial, viewModel: ViewTopic): Promise { + public update(update: Partial & { attachment_mediafile_ids?: Id[] }, viewModel: ViewTopic): Promise { const payload: any = { id: viewModel.id, text: update.text, title: update.title, - attachment_ids: update.attachment_ids || [] + attachment_mediafile_ids: update.attachment_mediafile_ids || [] }; return this.sendActionToBackend(TopicAction.UPDATE, payload); } @@ -92,7 +93,7 @@ export class TopicRepositoryService extends BaseAgendaItemAndListOfSpeakersConte meeting_id: this.activeMeetingId, title: partialTopic.title, text: partialTopic.text, - attachment_ids: partialTopic.attachment_ids, + attachment_mediafile_ids: partialTopic.attachment_mediafile_ids, ...createAgendaItem(partialTopic) }; } diff --git a/client/src/app/gateways/repositories/users/user-repository.service.ts b/client/src/app/gateways/repositories/users/user-repository.service.ts index a27bcd93c1..2ebf4111ac 100644 --- a/client/src/app/gateways/repositories/users/user-repository.service.ts +++ b/client/src/app/gateways/repositories/users/user-repository.service.ts @@ -5,6 +5,7 @@ import { BaseRepository } from 'src/app/gateways/repositories/base-repository'; import { UserAction } from 'src/app/gateways/repositories/users/user-action'; import { ViewStructureLevel } from 'src/app/site/pages/meetings/pages/participants/pages/structure-levels/view-models'; import { ActiveMeetingIdService } from 'src/app/site/pages/meetings/services/active-meeting-id.service'; +import { MeetingSettingsService } from 'src/app/site/pages/meetings/services/meeting-settings.service'; import { ViewMeetingUser } from 'src/app/site/pages/meetings/view-models/view-meeting-user'; import { BackendImportRawPreview } from 'src/app/ui/modules/import-list/definitions/backend-import-preview'; @@ -83,6 +84,7 @@ export class UserRepositoryService extends BaseRepository { public constructor( repositoryServiceCollector: RepositoryServiceCollectorService, private activeMeetingIdService: ActiveMeetingIdService, + private meetingSettingsService: MeetingSettingsService, private meetingUserRepo: MeetingUserRepositoryService ) { super(repositoryServiceCollector, User); @@ -144,7 +146,7 @@ export class UserRepositoryService extends BaseRepository { const data = usersToCreate.map(user => { const meetingUsers = user.meeting_users as Partial[]; return { - user: this.sanitizePayload(this.getBaseUserPayload(user)), + user: this.sanitizePayload(this.getBaseUserPayload(user), true), ...(meetingUsers && meetingUsers.length ? { first_meeting_user: this.sanitizePayload( @@ -358,6 +360,8 @@ export class UserRepositoryService extends BaseRepository { ); viewModel.getLevelAndNumber = (): string => this.getLevelAndNumber(viewModel); viewModel.getEnsuredActiveMeetingId = (): Id => this.activeMeetingIdService.meetingId; + viewModel.getDelegationSettingEnabled = (): boolean => + this.meetingSettingsService.instant(`users_enable_vote_delegations`); return viewModel; } @@ -512,9 +516,9 @@ export class UserRepositoryService extends BaseRepository { return this.createAction(UserAction.MERGE_TOGETHER, payload); } - private sanitizePayload(payload: any): any { + private sanitizePayload(payload: any, create: boolean = false): any { const temp = { ...payload }; - for (const key of Object.keys(temp).filter(field => !this.isFieldAllowedToBeEmpty(field))) { + for (const key of Object.keys(temp).filter(field => !this.isFieldAllowedToBeEmpty(field, create))) { if (typeof temp[key] === `string` && !temp[key].trim().length) { payload[key] = undefined; } else if (Array.isArray(temp[key])) { @@ -529,7 +533,7 @@ export class UserRepositoryService extends BaseRepository { return { ...payload }; } - private isFieldAllowedToBeEmpty(field: string): boolean { + private isFieldAllowedToBeEmpty(field: string, create?: boolean): boolean { const fields: string[] = [ `title`, `email`, @@ -538,9 +542,12 @@ export class UserRepositoryService extends BaseRepository { `comment`, `about_me`, `number`, - `structure_level`, - `member_number` + `structure_level` ]; + if (!create) { + fields.push(`member_number`); + } + return fields.includes(field); } diff --git a/client/src/app/infrastructure/definitions/relations/relations.ts b/client/src/app/infrastructure/definitions/relations/relations.ts index ed1e487918..60e706a88e 100644 --- a/client/src/app/infrastructure/definitions/relations/relations.ts +++ b/client/src/app/infrastructure/definitions/relations/relations.ts @@ -11,6 +11,7 @@ import { import { PROJECTIONDEFAULTS } from 'src/app/domain/models/projector/projection-default'; import { ViewProjectorMeetingUsageKey } from 'src/app/domain/models/projector/projector.constants'; import { ViewPointOfOrderCategory } from 'src/app/site/pages/meetings/pages/agenda/modules/list-of-speakers/view-models/view-point-of-order-category'; +import { ViewMeetingMediafile } from 'src/app/site/pages/meetings/pages/mediafiles/view-models/view-meeting-mediafile'; import { ViewMotionEditor } from 'src/app/site/pages/meetings/pages/motions/modules/editors'; import { ViewMotionWorkingGroupSpeaker } from 'src/app/site/pages/meetings/pages/motions/modules/working-group-speakers'; import { @@ -33,7 +34,7 @@ import { } from '../../../site/pages/meetings/pages/agenda'; import { ViewAssignment, ViewAssignmentCandidate } from '../../../site/pages/meetings/pages/assignments'; import { ViewChatGroup, ViewChatMessage } from '../../../site/pages/meetings/pages/chat'; -import { HasAttachment, ViewMediafile } from '../../../site/pages/meetings/pages/mediafiles'; +import { HasAttachmentMeetingMediafiles, ViewMediafile } from '../../../site/pages/meetings/pages/mediafiles'; import { HasReferencedMotionsInExtension, HasTags, @@ -78,7 +79,7 @@ import { const PROJECTABLE_VIEW_MODELS: ViewModelConstructor[] = [ ViewMotion, - ViewMediafile, + ViewMeetingMediafile, ViewListOfSpeakers, ViewMotionBlock, ViewAssignment, @@ -452,6 +453,25 @@ export const RELATIONS: Relation[] = [ MField: `meeting`, isExclusiveList: true }), + ...makeM2O({ + OViewModel: ViewMeeting, + MViewModel: ViewMeetingMediafile, + OField: `meeting_mediafiles`, + MField: `meeting`, + isFullList: true + }), + ...makeM2O({ + OViewModel: ViewOrganization, + MViewModel: ViewMediafile, + OField: `published_mediafiles`, + MField: `published_to_meetings_in_organization` + }), + ...makeM2O({ + OViewModel: ViewMediafile, + MViewModel: ViewMeetingMediafile, + OField: `meeting_mediafiles`, + MField: `mediafile` + }), ...makeM2O({ OViewModel: ViewMeeting, MViewModel: ViewMotion, @@ -641,7 +661,7 @@ export const RELATIONS: Relation[] = [ }), ...makeManyDynamicallyNamedO2O({ AViewModel: ViewMeeting, - BViewModel: ViewMediafile, + BViewModel: ViewMeetingMediafile, config: [ ...LOGO_PLACES.map(place => ({ AField: `logo_${place}` as ViewMeetingMediafileUsageKey, @@ -970,30 +990,31 @@ export const RELATIONS: Relation[] = [ order: `weight` }), // ########## Mediafile + ...makeM2O({ + MViewModel: ViewMediafile, + OViewModel: ViewMediafile, + MField: `parent`, + OField: `children`, + OIdField: `child_ids` + }), + // ########## Meeting Mediafile ...makeM2M({ - AViewModel: ViewMediafile, + AViewModel: ViewMeetingMediafile, BViewModel: ViewGroup, AField: `access_groups`, - BField: `mediafile_access_groups` + BField: `meeting_mediafile_access_groups` }), ...makeM2M({ - AViewModel: ViewMediafile, + AViewModel: ViewMeetingMediafile, BViewModel: ViewGroup, AField: `inherited_access_groups`, - BField: `mediafile_inherited_access_groups` + BField: `meeting_mediafile_inherited_access_groups` }), - ...makeGenericM2M({ - viewModel: ViewMediafile, + ...makeGenericM2M({ + viewModel: ViewMeetingMediafile, possibleViewModels: [ViewTopic, ViewMotion, ViewAssignment], viewModelField: `attachment_ids`, - possibleViewModelsField: `attachments` - }), - ...makeM2O({ - MViewModel: ViewMediafile, - OViewModel: ViewMediafile, - MField: `parent`, - OField: `children`, - OIdField: `child_ids` + possibleViewModelsField: `attachment_meeting_mediafiles` }), // ########## Chat ...makeM2O({ diff --git a/client/src/app/infrastructure/utils/subscription-map.ts b/client/src/app/infrastructure/utils/subscription-map.ts index d896436cc1..c53b9bb507 100644 --- a/client/src/app/infrastructure/utils/subscription-map.ts +++ b/client/src/app/infrastructure/utils/subscription-map.ts @@ -31,6 +31,10 @@ export class SubscriptionMap { this._subscriptions = {}; } + public size(): number { + return Object.keys(this._subscriptions).length; + } + private nextRandomId(): string { const id = Math.floor(Math.random() * (900000 - 1) + 100000); return id.toString(); diff --git a/client/src/app/openslides-main-module/services/app-load.service.ts b/client/src/app/openslides-main-module/services/app-load.service.ts index a4ee678f2b..36af52d6b5 100644 --- a/client/src/app/openslides-main-module/services/app-load.service.ts +++ b/client/src/app/openslides-main-module/services/app-load.service.ts @@ -11,6 +11,7 @@ import { ChatAppConfig } from 'src/app/site/pages/meetings/pages/chat/chat.confi import { HistoryAppConfig } from 'src/app/site/pages/meetings/pages/history/history.config'; import { HomeAppConfig } from 'src/app/site/pages/meetings/pages/home/home.config'; import { MediafileAppConfig } from 'src/app/site/pages/meetings/pages/mediafiles/mediafiles.config'; +import { MeetingMediafileAppConfig } from 'src/app/site/pages/meetings/pages/mediafiles/meeting-mediafiles.config'; import { MeetingSettingsAppConfig } from 'src/app/site/pages/meetings/pages/meeting-settings/meeting-settings.config'; import { MotionsAppConfig } from 'src/app/site/pages/meetings/pages/motions'; import { PollsAppConfig } from 'src/app/site/pages/meetings/pages/polls/polls.config'; @@ -48,6 +49,7 @@ const appConfigs: AppConfig[] = [ ParticipantsAppConfig, PollsAppConfig, MediafileAppConfig, + MeetingMediafileAppConfig, ProjectorAppConfig, AutopilotAppConfig, MeetingSettingsAppConfig, diff --git a/client/src/app/openslides-main-module/services/shared-worker.service.ts b/client/src/app/openslides-main-module/services/shared-worker.service.ts index 5e4eee218a..94c828f719 100644 --- a/client/src/app/openslides-main-module/services/shared-worker.service.ts +++ b/client/src/app/openslides-main-module/services/shared-worker.service.ts @@ -107,7 +107,7 @@ export class SharedWorkerService { try { const worker = new SharedWorker(new URL(`../../worker/default-shared-worker.worker`, import.meta.url), { type: `module`, - name: `openslides-shared-worker` + name: `openslides-shared-worker-module` }); this.conn = worker.port; diff --git a/client/src/app/site/base/base-import.service/base-backend-import.service.ts b/client/src/app/site/base/base-import.service/base-backend-import.service.ts index 470d9bfa5f..4a3d832367 100644 --- a/client/src/app/site/base/base-import.service/base-backend-import.service.ts +++ b/client/src/app/site/base/base-import.service/base-backend-import.service.ts @@ -176,7 +176,7 @@ export abstract class BaseBackendImportService implements BackendImportService { header: true, skipEmptyLines: `greedy`, quoteChar: this.textSeparator, - transform: value => (!value ? undefined : value) + transform: value => (!value.trim() ? undefined : value.trim()) }; if (this.columnSeparator) { papaConfig.delimiter = this.columnSeparator; diff --git a/client/src/app/site/base/base-sort.service/base-sort-list.service.ts b/client/src/app/site/base/base-sort.service/base-sort-list.service.ts index 60655a4798..8bd58d28ef 100644 --- a/client/src/app/site/base/base-sort.service/base-sort-list.service.ts +++ b/client/src/app/site/base/base-sort.service/base-sort-list.service.ts @@ -71,7 +71,10 @@ export abstract class BaseSortListService if (!defaultDef || !current) { return false; } - return defaultDef.sortAscending !== current.sortAscending || defaultDef.sortProperty !== current.sortProperty; + return ( + defaultDef.sortAscending !== current.sortAscending || + !this.isSameProperty(defaultDef.sortProperty, current.sortProperty) + ); } /** diff --git a/client/src/app/site/base/base-view-model.ts b/client/src/app/site/base/base-view-model.ts index 34ec957402..28fa4b26ee 100644 --- a/client/src/app/site/base/base-view-model.ts +++ b/client/src/app/site/base/base-view-model.ts @@ -23,6 +23,8 @@ export interface ViewModelConstructor { * Base class for view models. */ export abstract class BaseViewModel implements DetailNavigable { + public viewModelUpdateTimestamp = Date.now(); + public get fqid(): Fqid { return this.getModel().fqid; } @@ -67,6 +69,7 @@ export abstract class BaseViewModel implements Detail export interface BaseViewModel extends Displayable, Identifiable, HasCollection { getTitle: () => string; getListTitle: () => string; + getDelegationSettingEnabled: () => boolean; /** * Returns the verbose name. diff --git a/client/src/app/site/modules/global-headbar/components/global-headbar/global-headbar.component.scss b/client/src/app/site/modules/global-headbar/components/global-headbar/global-headbar.component.scss index 7f01975836..88912048f0 100644 --- a/client/src/app/site/modules/global-headbar/components/global-headbar/global-headbar.component.scss +++ b/client/src/app/site/modules/global-headbar/components/global-headbar/global-headbar.component.scss @@ -44,3 +44,26 @@ margin-top: -3px; transform: scale(0.75); } + +@keyframes train { + 0% { + right: 0; + } + 99% { + right: 100%; + } + 100% { + right: 100%; + display: none; + } +} + +.global-headbar.train:after { + content: '🚂 🚃 🚃 🚃'; + position: absolute; + overflow: hidden; + animation-name: train; + animation-duration: 15s; + animation-fill-mode: forwards; + animation-iteration-count: 1; +} diff --git a/client/src/app/site/modules/site-wrapper/services/voting-banner.service.ts b/client/src/app/site/modules/site-wrapper/services/voting-banner.service.ts index ad25111bb1..8bc9c060ab 100644 --- a/client/src/app/site/modules/site-wrapper/services/voting-banner.service.ts +++ b/client/src/app/site/modules/site-wrapper/services/voting-banner.service.ts @@ -52,7 +52,10 @@ export class VotingBannerService { }) ), this.meetingSettingsService.get(`users_enable_vote_delegations`).pipe(distinctUntilChanged()), - this.meetingSettingsService.get(`users_forbid_delegator_to_vote`).pipe(distinctUntilChanged()) + this.meetingSettingsService.get(`users_forbid_delegator_to_vote`).pipe(distinctUntilChanged()), + this.operator.userObservable.pipe( + distinctUntilChanged((p, c) => p?.isPresentInMeeting() === c?.isPresentInMeeting()) + ) ]).subscribe(([_, polls]) => this.updateVotablePollSubscription(polls)); } diff --git a/client/src/app/site/modules/user-components/components/user-detail-view/user-detail-view.component.ts b/client/src/app/site/modules/user-components/components/user-detail-view/user-detail-view.component.ts index 24a4bdfbd9..5062731ff4 100644 --- a/client/src/app/site/modules/user-components/components/user-detail-view/user-detail-view.component.ts +++ b/client/src/app/site/modules/user-components/components/user-detail-view/user-detail-view.component.ts @@ -183,11 +183,7 @@ export class UserDetailViewComponent extends BaseUiComponent implements OnInit, } } - public onKeyDown(event: KeyboardEvent): void { - if (event.key === `Enter` && event.shiftKey) { - this.submitEvent.emit(); - } - } + public onKeyDown(_event: KeyboardEvent): void {} public markAsPristine(): void { this._initialState = this.personalInfoForm.value; @@ -239,8 +235,8 @@ export class UserDetailViewComponent extends BaseUiComponent implements OnInit, Object.keys(this.personalInfoForm.controls).forEach(ctrl => { personalInfoPatch[ctrl] = this.getFormValuePatch(ctrl as keyof ViewUser); }); - const isActiveExists = typeof this.user?.is_active === `boolean`; - const isPersonExists = typeof this.user?.is_physical_person === `boolean`; + const isActiveExists = typeof this.user?.is_active === `boolean` || this.user?.id; + const isPersonExists = typeof this.user?.is_physical_person === `boolean` || this.user?.id; this.personalInfoForm.patchValue( { ...personalInfoPatch, diff --git a/client/src/app/site/modules/user-components/components/user-password-form/user-password-form.component.ts b/client/src/app/site/modules/user-components/components/user-password-form/user-password-form.component.ts index ba44e35626..4d2fd4a803 100644 --- a/client/src/app/site/modules/user-components/components/user-password-form/user-password-form.component.ts +++ b/client/src/app/site/modules/user-components/components/user-password-form/user-password-form.component.ts @@ -87,15 +87,9 @@ export class UserPasswordFormComponent implements OnInit, OnDestroy { } /** - * clicking Shift and Enter will save automatically - * * @param event has the code */ - public onKeyDown(event: KeyboardEvent): void { - if (event.key === `Enter` && event.shiftKey) { - this.save.emit(); - } - } + public onKeyDown(_event: KeyboardEvent): void {} /** * Takes generated password and puts it into admin PW field diff --git a/client/src/app/site/pages/meetings/modules/meetings-component-collector/detail-view/components/detail-view/detail-view.component.ts b/client/src/app/site/pages/meetings/modules/meetings-component-collector/detail-view/components/detail-view/detail-view.component.ts index 080633d160..6a36959d8a 100644 --- a/client/src/app/site/pages/meetings/modules/meetings-component-collector/detail-view/components/detail-view/detail-view.component.ts +++ b/client/src/app/site/pages/meetings/modules/meetings-component-collector/detail-view/components/detail-view/detail-view.component.ts @@ -7,10 +7,11 @@ import { OnInit, Output } from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; +import { ActivatedRoute, Router } from '@angular/router'; import { marker as _ } from '@colsen1991/ngx-translate-extract-marker'; import { Subscription } from 'rxjs'; import { Collection, Id } from 'src/app/domain/definitions/key-types'; +import { ActiveMeetingService } from 'src/app/site/pages/meetings/services/active-meeting.service'; import { ActiveMeetingIdService } from 'src/app/site/pages/meetings/services/active-meeting-id.service'; import { SequentialNumberMappingService } from 'src/app/site/pages/meetings/services/sequential-number-mapping.service'; @@ -44,29 +45,38 @@ export class DetailViewComponent implements OnInit { private _shouldShowContent = false; private _loading = true; private _id!: Id; + private _sequential_number!: number; private _subscriptionMap: { [name: string]: Subscription } = {}; public constructor( private sequentialNumberMappingService: SequentialNumberMappingService, + private activeMeetingService: ActiveMeetingService, private activeMeetingIdService: ActiveMeetingIdService, private route: ActivatedRoute, + private router: Router, private cd: ChangeDetectorRef ) {} public ngOnInit(): void { - this.activeMeetingIdService.meetingIdObservable.subscribe(() => this.onMeetingChanged()); + this.activeMeetingService.meetingIdObservable.subscribe(id => this.onMeetingChanged(id)); } - private onMeetingChanged(): void { - const subscription = this.route.params.subscribe(params => { - this.parseSequentialNumber(params); + private onMeetingChanged(meetingId: Id): void { + this.deleteSubscription(ROUTE_SUBSCRIPTION_NAME); + this.activeMeetingService.ensureActiveMeetingIsAvailable().then(() => { + const subscription = this.route.params.subscribe(params => { + if (this.activeMeetingIdService.parseUrlMeetingId(this.router.url) === meetingId) { + this.parseSequentialNumber(params); + } + }); + this.updateSubscription(ROUTE_SUBSCRIPTION_NAME, subscription); }); - this.updateSubscription(ROUTE_SUBSCRIPTION_NAME, subscription); } private parseSequentialNumber(params: { id?: string }): void { const sequentialNumber = +(params.id ?? 0); + this._sequential_number = sequentialNumber; if (!sequentialNumber && params.id === undefined) { // it must be another subroute, like creating a new one this._shouldShowContent = true; @@ -76,12 +86,12 @@ export class DetailViewComponent implements OnInit { const config = { collection: this.collection, sequentialNumber, - meetingId: this.activeMeetingIdService.meetingId! + meetingId: this.activeMeetingService.meetingId! }; this.sequentialNumberMappingService.getIdBySequentialNumber(config).then(id => { this._loading = false; - if (id !== undefined) { + if (id !== undefined && this._sequential_number === sequentialNumber) { if (id) { if (this._id !== id) { this._id = id; @@ -109,4 +119,11 @@ export class DetailViewComponent implements OnInit { } this._subscriptionMap[subscriptionName] = subscription; } + + private deleteSubscription(subscriptionName: string): void { + if (this._subscriptionMap[subscriptionName]) { + this._subscriptionMap[subscriptionName].unsubscribe(); + this._subscriptionMap[subscriptionName] = null; + } + } } diff --git a/client/src/app/site/pages/meetings/modules/poll/base/base-poll.component.ts b/client/src/app/site/pages/meetings/modules/poll/base/base-poll.component.ts index a9efe6b7eb..6e194ceda4 100644 --- a/client/src/app/site/pages/meetings/modules/poll/base/base-poll.component.ts +++ b/client/src/app/site/pages/meetings/modules/poll/base/base-poll.component.ts @@ -21,6 +21,11 @@ export abstract class BasePollComponent exten return this._poll; } + protected set poll(poll: ViewPoll) { + this._poll = poll; + this.onAfterUpdatePoll(poll); + } + public pollStateActions = { [PollState.Created]: { icon: `play_arrow`, @@ -110,8 +115,7 @@ export abstract class BasePollComponent exten this.subscriptions.push( this.repo.getViewModelObservable(this._id).subscribe(poll => { if (poll) { - this._poll = poll; - this.onAfterUpdatePoll(poll); + this.poll = poll; } }) ); diff --git a/client/src/app/site/pages/meetings/modules/poll/components/base-poll-form/base-poll-form.component.ts b/client/src/app/site/pages/meetings/modules/poll/components/base-poll-form/base-poll-form.component.ts index b5386ce5b3..20211a5dac 100644 --- a/client/src/app/site/pages/meetings/modules/poll/components/base-poll-form/base-poll-form.component.ts +++ b/client/src/app/site/pages/meetings/modules/poll/components/base-poll-form/base-poll-form.component.ts @@ -7,7 +7,7 @@ import { ValidatorFn, Validators } from '@angular/forms'; -import { combineLatest, map, Observable, startWith } from 'rxjs'; +import { combineLatest, distinctUntilChanged, map, Observable, startWith } from 'rxjs'; import { FormPollMethod, PollBackendDurationChoices, @@ -216,7 +216,10 @@ export abstract class BasePollFormComponent extends BaseComponent implements OnI this.pollTypeControl.valueChanges.pipe(startWith(``)) ]).subscribe(([contentFormCh]) => { this.updateFormControls(contentFormCh); - }) + }), + this.pollMethodControl.valueChanges + .pipe(distinctUntilChanged()) + .subscribe(method => this.updatePollMethod(method)) ); // TODO: Fetch groups for repo search selection @@ -234,6 +237,14 @@ export abstract class BasePollFormComponent extends BaseComponent implements OnI this.setWarning(); } + private updatePollMethod(method: PollMethod): void { + if (method === `Y` || method === `N`) { + this.contentForm.addControl(`votes_amount`, this.getVotesAmountControl()); + } else { + this.contentForm.removeControl(`votes_amount`); + } + } + /** * Generic recursive helper function to patch the form * will transitive move poll.min_votes_amount and poll.max_votes_amount into @@ -444,19 +455,7 @@ export abstract class BasePollFormComponent extends BaseComponent implements OnI type: [``, Validators.required], pollmethod: [``, Validators.required], onehundred_percent_base: [``, Validators.required], - votes_amount: this.fb.group( - { - max_votes_amount: [1, [Validators.required, Validators.min(1)]], - min_votes_amount: [1, [Validators.required, Validators.min(1)]], - max_votes_per_option: [1, [Validators.required, Validators.min(1)]] - }, - { - validators: [ - isNumberRange(`min_votes_amount`, `max_votes_amount`), - this.enoughPollOptionsAvailable(`min_votes_amount`, `max_votes_per_option`) - ] - } - ), + votes_amount: this.getVotesAmountControl(), entitled_group_ids: [], backend: [], global_yes: [false], @@ -465,6 +464,22 @@ export abstract class BasePollFormComponent extends BaseComponent implements OnI }); } + private getVotesAmountControl(): UntypedFormGroup { + return this.fb.group( + { + max_votes_amount: [1, [Validators.required, Validators.min(1)]], + min_votes_amount: [1, [Validators.required, Validators.min(1)]], + max_votes_per_option: [1, [Validators.required, Validators.min(1)]] + }, + { + validators: [ + isNumberRange(`min_votes_amount`, `max_votes_amount`), + this.enoughPollOptionsAvailable(`min_votes_amount`, `max_votes_per_option`) + ] + } + ); + } + private enableGlobalVoteControls(): void { const suppressEvent = { emitEvent: false diff --git a/client/src/app/site/pages/meetings/modules/poll/components/base-poll-vote/base-poll-vote.component.html b/client/src/app/site/pages/meetings/modules/poll/components/base-poll-vote/base-poll-vote.component.html index 355baa5f5e..63989a9b33 100644 --- a/client/src/app/site/pages/meetings/modules/poll/components/base-poll-vote/base-poll-vote.component.html +++ b/client/src/app/site/pages/meetings/modules/poll/components/base-poll-vote/base-poll-vote.component.html @@ -3,7 +3,7 @@ @if (isUserPresent && (voteDelegationEnabled | async)) { - @for (delegation of delegations; track delegation) { + @for (delegation of delegations; track delegation.id) {
} @for ( action of voteActions.length ? voteActions : voteOptions; - track action; + track action.vote; let i = $index ) { @if (!poll.isTopicPoll) { @@ -101,7 +101,7 @@

} @if (poll.isMethodN && poll.hasGlobalOptionEnabled && poll.global_yes) { @if (!settings.hideGlobalOptions) { - @for (option of globalVoteActions; track option) { + @for (option of globalVoteActions; track option.vote) { @if (option.vote === 'Y') {
@@ -148,7 +148,7 @@

} } - @for (option of poll.options; track option; let i = $index) { + @for (option of poll.options; track option.id; let i = $index) {
@if (!poll.max_votes_per_option || poll.max_votes_per_option <= 1) { @for ( action of voteActions.length ? voteActions : voteOptions; - track action; + track action.vote; let i = $index ) {
@@ -241,7 +241,7 @@

@for ( action of voteActions.length ? voteActions : voteOptions; - track action; + track action.vote; let i = $index ) {
@@ -309,7 +309,7 @@

@if (!settings.hideGlobalOptions) { - @for (option of globalVoteActions; track option) { + @for (option of globalVoteActions; track option.vote) { @if (!poll.isMethodN || option.vote !== 'Y') {
diff --git a/client/src/app/site/pages/meetings/modules/poll/components/base-poll-vote/base-poll-vote.component.ts b/client/src/app/site/pages/meetings/modules/poll/components/base-poll-vote/base-poll-vote.component.ts index 399d44da9a..d42b7e2afb 100644 --- a/client/src/app/site/pages/meetings/modules/poll/components/base-poll-vote/base-poll-vote.component.ts +++ b/client/src/app/site/pages/meetings/modules/poll/components/base-poll-vote/base-poll-vote.component.ts @@ -1,7 +1,7 @@ import { ChangeDetectorRef, Directive, inject, Input, OnInit } from '@angular/core'; import { UntypedFormControl, Validators } from '@angular/forms'; import { marker as _ } from '@colsen1991/ngx-translate-extract-marker'; -import { BehaviorSubject, combineLatest, debounceTime, distinctUntilChanged, Observable } from 'rxjs'; +import { BehaviorSubject, combineLatest, debounceTime, distinctUntilChanged, Observable, Subscription } from 'rxjs'; import { Id } from 'src/app/domain/definitions/key-types'; import { GlobalVote, @@ -147,6 +147,8 @@ export abstract class BasePollVoteComponent e protected cd = inject(ChangeDetectorRef); private pollRepo = inject(PollControllerService); private operator = inject(OperatorService); + private votedSubscription: Subscription; + private votedSubscriptionPollId: Id; public constructor(private meetingSettingsService: MeetingSettingsService) { super(); @@ -160,21 +162,28 @@ export abstract class BasePollVoteComponent e this.user = user; this.delegations = user.vote_delegations_from(); this.voteRequestData[this.user.id] = { value: {} } as VotingData; - this.alreadyVoted[this.user.id] = this.poll.hasVoted; - if (this.delegations) { - this.setupDelegations(); + if (this.poll.hasVoted !== undefined) { + this.alreadyVoted[this.user.id] = this.poll.hasVoted; } - - for (const key of Object.keys(this._canVoteForSubjectMap)) { - this._canVoteForSubjectMap[+key].next(this.canVote(this._delegationsMap[+key])); + if (this.delegations && this.poll.user_has_voted_for_delegations !== undefined) { + this.setupDelegations(this.poll.user_has_voted_for_delegations); } + this.setupHasVotedSubscription(); this._isReady = true; this.cd.markForCheck(); } }), this.translate.onLangChange.subscribe(() => { this.updatePollOptionTitleWidth(); + }), + combineLatest([ + this.meetingSettingsService.get(`users_enable_vote_delegations`).pipe(distinctUntilChanged()), + this.meetingSettingsService.get(`users_forbid_delegator_to_vote`).pipe(distinctUntilChanged()) + ]).subscribe(_ => { + for (const key of Object.keys(this._canVoteForSubjectMap)) { + this._canVoteForSubjectMap[+key].next(this.canVote(this._delegationsMap[+key])); + } }) ); } @@ -430,19 +439,30 @@ export abstract class BasePollVoteComponent e } } - protected updatePoll(): void { - this.setupHasVotedSubscription(); + private updatePoll(): void { + if (this._isReady) { + this.setupHasVotedSubscription(); + } this.defineVoteOptions(); this.cd.markForCheck(); } private setupHasVotedSubscription(): void { - this.subscriptions.push( - this.voteRepo.subscribeVoted(this.poll).subscribe(() => { + if (!this.votedSubscription || this.votedSubscription.closed || this.votedSubscriptionPollId !== this.poll.id) { + if (this.votedSubscription) { + this.votedSubscription.unsubscribe(); + } + + this.votedSubscription = this.voteRepo.subscribeVoted(this.poll).subscribe(votedFor => { + if (votedFor[this.poll.id] === undefined) { + return; + } + + const votes = votedFor[this.poll.id] || []; if (this.user) { - this.alreadyVoted[this.user.id] = this.poll.hasVoted; + this.alreadyVoted[this.user.id] = votes.includes(this.user.id); if (this.delegations) { - this.setupDelegations(); + this.setupDelegations(votes); } } @@ -451,24 +471,16 @@ export abstract class BasePollVoteComponent e } this.cd.markForCheck(); - }) - ); - this.subscriptions.push( - combineLatest([ - this.meetingSettingsService.get(`users_enable_vote_delegations`).pipe(distinctUntilChanged()), - this.meetingSettingsService.get(`users_forbid_delegator_to_vote`).pipe(distinctUntilChanged()) - ]).subscribe(_ => { - for (const key of Object.keys(this._canVoteForSubjectMap)) { - this._canVoteForSubjectMap[+key].next(this.canVote(this._delegationsMap[+key])); - } - }) - ); + }); + this.votedSubscriptionPollId = this.poll.id; + this.subscriptions.push(this.votedSubscription); + } } - private setupDelegations(): void { + private setupDelegations(votedFor: Id[]): void { for (const delegation of this.delegations) { this._delegationsMap[delegation.id] = delegation; - this.alreadyVoted[delegation.id] = this.poll.hasVotedForDelegations(delegation.id); + this.alreadyVoted[delegation.id] = votedFor.includes(delegation.id); if (!this.voteRequestData[delegation.id]) { this.voteRequestData[delegation.id] = { value: {} } as VotingData; this.deliveringVote[delegation.id] = false; diff --git a/client/src/app/site/pages/meetings/modules/poll/components/poll-filtered-votes-chart/poll-filtered-votes-chart.component.html b/client/src/app/site/pages/meetings/modules/poll/components/poll-filtered-votes-chart/poll-filtered-votes-chart.component.html new file mode 100644 index 0000000000..96e9e20962 --- /dev/null +++ b/client/src/app/site/pages/meetings/modules/poll/components/poll-filtered-votes-chart/poll-filtered-votes-chart.component.html @@ -0,0 +1,45 @@ + +@if (filtersEnabled && totalAmount > 0) { +
+

{{ 'Filtered single votes' | translate }}

+
+ @for (cat of voteAmounts; track cat.value) { + @if (cat.amount > 0 && !cat.hiddenInBase) { +
+ } + } +
+
+
{{ 'Valid votes' | translate }}: {{ validAmount }}
+
+ @for (cat of voteAmounts; track cat.value) { + +
+ {{ cat.name | translate }}: {{ cat.weightedAmount }} + @if (cat.amount > 0 && !cat.hiddenInBase) { + ({{ ((cat.weightedAmount / totalAmountWeighted) * 100).toFixed(2) }}%) + } +
+ } +
+
+ @if (usesVoteWeight) { +
+
+ {{ 'Ballots cast' | translate }}: {{ totalAmount }} ( +
+ @for (cat of voteAmounts; track cat.value) { + {{ cat.name | translate }}: {{ cat.amount }} + · + } +
+ ) +
+
+ } +
+} diff --git a/client/src/app/site/pages/meetings/modules/poll/components/poll-filtered-votes-chart/poll-filtered-votes-chart.component.scss b/client/src/app/site/pages/meetings/modules/poll/components/poll-filtered-votes-chart/poll-filtered-votes-chart.component.scss new file mode 100644 index 0000000000..2b14d1f84e --- /dev/null +++ b/client/src/app/site/pages/meetings/modules/poll/components/poll-filtered-votes-chart/poll-filtered-votes-chart.component.scss @@ -0,0 +1,80 @@ +.vote-chart-bar { + display: flex; + align-items: center; + height: 70px; + .segment { + position: relative; + text-align: center; + height: 50px; + border: 1px solid white; + transition: 0.3s; + .below { + position: absolute; + width: 100%; + top: 58px; + } + } + .segment:hover { + border-color: transparent; + border-right-width: 0; + border-left-width: 0; + } +} + +.results { + display: grid; + grid-gap: 10px !important; + margin: 0; + grid-template-areas: 'votes options'; + grid-template-columns: auto auto; + @media (max-width: 700px) { + grid-template-areas: 'votes votes' 'options options'; + grid-template-columns: max-content; + } + .categories { + display: inline-block; + span:last-of-type { + display: none; + } + .seperator { + padding: 0 4px; + } + } +} + +.grid-all-votes-area { + grid-area: votes; +} + +.grid-options-area { + grid-area: options; + display: flex; + justify-content: end; +} + +.box { + height: 15px; + width: 15px; + display: inline-block; +} + +.margin-top-bottom { + margin-top: 50px; + margin-bottom: 10px; +} + +.margin-bottom-10 { + margin-bottom: 10px; +} + +.one-option { + margin-right: 20px; +} + +.one-option:last-of-type { + margin-right: 0; +} + +.no-space { + white-space: pre; +} diff --git a/client/src/app/site/pages/meetings/modules/poll/components/poll-filtered-votes-chart/poll-filtered-votes-chart.component.ts b/client/src/app/site/pages/meetings/modules/poll/components/poll-filtered-votes-chart/poll-filtered-votes-chart.component.ts new file mode 100644 index 0000000000..9a0611552e --- /dev/null +++ b/client/src/app/site/pages/meetings/modules/poll/components/poll-filtered-votes-chart/poll-filtered-votes-chart.component.ts @@ -0,0 +1,75 @@ +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, Input, OnInit } from '@angular/core'; +import { PollPercentBase, VoteValue, VoteValueVerbose } from 'src/app/domain/models/poll'; +import { ThemeService } from 'src/app/site/services/theme.service'; +import { BaseUiComponent } from 'src/app/ui/base/base-ui-component'; + +import { ViewPoll, ViewVote } from '../../../../pages/polls'; +import { MeetingSettingsService } from '../../../../services/meeting-settings.service'; +import { VotesFilterService } from '../../services/votes-filter.service'; + +interface VoteAmount { + value: VoteValue; + name: string; + amount: number; + hiddenInBase: boolean; + weightedAmount: number; + backgroundColor: string; +} + +@Component({ + selector: `os-poll-filted-votes-chart`, + templateUrl: `./poll-filtered-votes-chart.component.html`, + styleUrls: [`./poll-filtered-votes-chart.component.scss`], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class PollFilteredVotesChartComponent extends BaseUiComponent implements OnInit { + @Input() + public poll: ViewPoll; + + public usesVoteWeight = false; + public validAmount = 0; + public totalAmount = 0; + public totalAmountWeighted = 0; + public voteAmounts: VoteAmount[] = []; + + public get filtersEnabled(): boolean { + return this.filterService.filterStack.length > 0; + } + + private meetingSettings: MeetingSettingsService = inject(MeetingSettingsService); + private themeService: ThemeService = inject(ThemeService); + private filterService: VotesFilterService = inject(VotesFilterService); + private cd: ChangeDetectorRef = inject(ChangeDetectorRef); + + public ngOnInit(): void { + this.subscriptions.push(this.filterService.outputObservable.subscribe(votes => this.onVotesUpdated(votes))); + } + + private onVotesUpdated(votes: ViewVote[]): void { + this.voteAmounts = []; + const voteValues: VoteValue[] = this.poll.isMethodYN ? [`Y`, `N`] : [`Y`, `N`, `A`]; + const baseVoteValues: VoteValue[] = + this.poll.onehundred_percent_base === PollPercentBase.YN ? [`Y`, `N`] : [`Y`, `N`, `A`]; + const countedVotes = votes.filter(v => baseVoteValues.indexOf(v.value) !== -1); + for (const i in voteValues) { + const voteValue = voteValues[i]; + this.voteAmounts.push({ + value: voteValue, + name: VoteValueVerbose[voteValue], + hiddenInBase: baseVoteValues.indexOf(voteValue) === -1, + amount: votes.reduce((acc, curr) => acc + +(curr.value === voteValue), 0), + weightedAmount: votes.reduce((acc, curr) => acc + (curr.value === voteValue ? +curr.weight : 0), 0), + backgroundColor: this.themeService.getPollColor(VoteValueVerbose[voteValue].toLowerCase()) + }); + } + + this.totalAmount = votes.length; + this.totalAmountWeighted = countedVotes.reduce((acc, curr) => acc + +curr.weight, 0); + this.validAmount = votes.reduce((acc, curr) => acc + +curr.weight, 0); + + this.usesVoteWeight = + this.meetingSettings.instant(`users_enable_vote_weight`) || this.totalAmount !== this.validAmount; + + this.cd.markForCheck(); + } +} diff --git a/client/src/app/site/pages/meetings/modules/poll/components/votes-table/votes-table.component.html b/client/src/app/site/pages/meetings/modules/poll/components/votes-table/votes-table.component.html index 1cef7d208c..b4417f4825 100644 --- a/client/src/app/site/pages/meetings/modules/poll/components/votes-table/votes-table.component.html +++ b/client/src/app/site/pages/meetings/modules/poll/components/votes-table/votes-table.component.html @@ -1,7 +1,12 @@
@if (isViewingThis) {
- +
{{ 'Participant' | translate }}
diff --git a/client/src/app/site/pages/meetings/modules/poll/components/votes-table/votes-table.component.ts b/client/src/app/site/pages/meetings/modules/poll/components/votes-table/votes-table.component.ts index 5d266008df..9cb6ed94a5 100644 --- a/client/src/app/site/pages/meetings/modules/poll/components/votes-table/votes-table.component.ts +++ b/client/src/app/site/pages/meetings/modules/poll/components/votes-table/votes-table.component.ts @@ -5,6 +5,7 @@ import { PollContentObject } from 'src/app/domain/models/poll'; import { BasePollDetailComponent, BaseVoteData } from '../../base/base-poll-detail.component'; import { PollService } from '../../services/poll.service'; +import { VotesFilterService } from '../../services/votes-filter.service'; @Component({ selector: `os-votes-table`, @@ -51,6 +52,8 @@ export class VotesTableComponent { private _votesDataObservable!: Observable; + public constructor(public filter: VotesFilterService) {} + public getVoteIcon(voteValue: string): string { return this.parent.voteOptionStyle[voteValue]?.icon; } diff --git a/client/src/app/site/pages/meetings/modules/poll/poll.module.ts b/client/src/app/site/pages/meetings/modules/poll/poll.module.ts index dbb56e05d8..2d2d7ba970 100644 --- a/client/src/app/site/pages/meetings/modules/poll/poll.module.ts +++ b/client/src/app/site/pages/meetings/modules/poll/poll.module.ts @@ -2,6 +2,7 @@ import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { MatCheckboxModule } from '@angular/material/checkbox'; +import { MatDividerModule } from '@angular/material/divider'; import { MatFormFieldModule } from '@angular/material/form-field'; import { MatIconModule } from '@angular/material/icon'; import { MatInputModule } from '@angular/material/input'; @@ -21,6 +22,7 @@ import { ChartComponent } from './components/chart/chart.component'; import { CheckInputComponent } from './components/check-input/check-input.component'; import { EntitledUsersTableComponent } from './components/entitled-users-table/entitled-users-table.component'; import { PollCannotVoteMessageComponent } from './components/poll-cannot-vote-message/poll-cannot-vote-message.component'; +import { PollFilteredVotesChartComponent } from './components/poll-filtered-votes-chart/poll-filtered-votes-chart.component'; import { PollProgressComponent } from './components/poll-progress/poll-progress.component'; import { SingleOptionChartTableComponent } from './components/single-option-chart-table/single-option-chart-table.component'; import { VotesTableComponent } from './components/votes-table/votes-table.component'; @@ -32,6 +34,7 @@ const MODULES = [PollServiceModule, VotingPrivacyDialogModule]; const PIPES = [PollKeyVerbosePipe, PollPercentBasePipe, PollParseNumberPipe]; const COMPONENTS = [ PollProgressComponent, + PollFilteredVotesChartComponent, ChartComponent, CheckInputComponent, EntitledUsersTableComponent, @@ -51,6 +54,7 @@ const COMPONENTS = [ MatInputModule, MatIconModule, MatCheckboxModule, + MatDividerModule, MatRadioModule, ReactiveFormsModule, MatTooltipModule, diff --git a/client/src/app/site/pages/meetings/modules/poll/services/votes-filter.service.ts b/client/src/app/site/pages/meetings/modules/poll/services/votes-filter.service.ts new file mode 100644 index 0000000000..d19a148ec9 --- /dev/null +++ b/client/src/app/site/pages/meetings/modules/poll/services/votes-filter.service.ts @@ -0,0 +1,48 @@ +import { Injectable } from '@angular/core'; +import { BaseFilterListService, OsFilter } from 'src/app/site/base/base-filter.service'; +import { ActiveFiltersService } from 'src/app/site/services/active-filters.service'; + +import { GroupControllerService } from '../../../pages/participants'; +import { StructureLevelControllerService } from '../../../pages/participants/pages/structure-levels/services/structure-level-controller.service'; +import { ViewVote } from '../../../pages/polls'; +import { PollServiceModule } from '../services/poll-service.module'; + +@Injectable({ + providedIn: PollServiceModule +}) +export class VotesFilterService extends BaseFilterListService { + protected storageKey = `VotesEntry`; + + private groupFilterOptions: OsFilter = { + property: `groupIds`, + label: `Groups`, + options: [] + }; + + private structureLevelFilterOptions: OsFilter = { + property: `structureLevelIds`, + label: `Structure level`, + options: [] + }; + + public constructor( + store: ActiveFiltersService, + groupRepo: GroupControllerService, + structureRepo: StructureLevelControllerService + ) { + super(store); + + this.updateFilterForRepo({ + repo: groupRepo, + filter: this.groupFilterOptions + }); + this.updateFilterForRepo({ + repo: structureRepo, + filter: this.structureLevelFilterOptions + }); + } + + protected getFilterDefinitions(): OsFilter[] { + return [].concat(this.groupFilterOptions, this.structureLevelFilterOptions); + } +} diff --git a/client/src/app/site/pages/meetings/modules/projector/modules/countdown-time/countdown-time.component.html b/client/src/app/site/pages/meetings/modules/projector/modules/countdown-time/countdown-time.component.html index aef009ca68..0a30a594ce 100644 --- a/client/src/app/site/pages/meetings/modules/projector/modules/countdown-time/countdown-time.component.html +++ b/client/src/app/site/pages/meetings/modules/projector/modules/countdown-time/countdown-time.component.html @@ -3,7 +3,7 @@ class="countdown-time-wrapper" [ngClass]="{ 'negative-time': seconds <= 0 && (countdown.default_time !== 0 || seconds < 0), - 'warning-time': seconds <= warningTime && seconds > 0, + 'warning-time': countdown.default_time !== 0 && seconds <= warningTime && seconds > 0, 'stretch-to-fill-parent': fullscreen }" > @@ -28,7 +28,7 @@ id="countdown" [ngClass]="{ 'negative-time': seconds <= 0 && (countdown.default_time !== 0 || seconds < 0), - 'warning-time': seconds <= warningTime && seconds > 0 + 'warning-time': countdown.default_time !== 0 && seconds <= warningTime && seconds > 0 }" > {{ time }} diff --git a/client/src/app/site/pages/meetings/modules/projector/modules/slides/components/assignment-slide/components/assignment-slide/assignment-slide.component.html b/client/src/app/site/pages/meetings/modules/projector/modules/slides/components/assignment-slide/components/assignment-slide/assignment-slide.component.html index dccd02ad31..ed22f41f44 100644 --- a/client/src/app/site/pages/meetings/modules/projector/modules/slides/components/assignment-slide/components/assignment-slide/assignment-slide.component.html +++ b/client/src/app/site/pages/meetings/modules/projector/modules/slides/components/assignment-slide/components/assignment-slide/assignment-slide.component.html @@ -5,7 +5,7 @@

{{ data.data.title }}

{{ 'Election' | translate }}

@if (data.data.description) { -
+
}

{{ 'Candidates' | translate }}

@if (data.data.candidates && data.data.candidates.length) { diff --git a/client/src/app/site/pages/meetings/modules/projector/modules/slides/components/assignment-slide/components/assignment-slide/assignment-slide.component.scss b/client/src/app/site/pages/meetings/modules/projector/modules/slides/components/assignment-slide/components/assignment-slide/assignment-slide.component.scss index e69de29bb2..7f6e150e3d 100644 --- a/client/src/app/site/pages/meetings/modules/projector/modules/slides/components/assignment-slide/components/assignment-slide/assignment-slide.component.scss +++ b/client/src/app/site/pages/meetings/modules/projector/modules/slides/components/assignment-slide/components/assignment-slide/assignment-slide.component.scss @@ -0,0 +1,5 @@ +@import 'src/assets/styles/mixins/detail-view-appearance.scss'; + +.detail-view-text ::ng-deep { + @include detail-view-appearance; +} diff --git a/client/src/app/site/pages/meetings/modules/projector/modules/slides/components/mediafile-slide/components/mediafile-slide.component.ts b/client/src/app/site/pages/meetings/modules/projector/modules/slides/components/mediafile-slide/components/mediafile-slide.component.ts index 53476950e0..7c5330855a 100644 --- a/client/src/app/site/pages/meetings/modules/projector/modules/slides/components/mediafile-slide/components/mediafile-slide.component.ts +++ b/client/src/app/site/pages/meetings/modules/projector/modules/slides/components/mediafile-slide/components/mediafile-slide.component.ts @@ -2,7 +2,6 @@ import { Component } from '@angular/core'; import { IMAGE_MIMETYPES, PDF_MIMETYPES } from 'src/app/site/pages/meetings/pages/mediafiles'; import { BaseSlideComponent } from '../../../base/base-slide-component'; -import { SlideMediafileService } from '../../../services/slide-mediafile.service'; import { MediafileSlideData } from '../mediafile-slide-data'; @Component({ @@ -12,13 +11,7 @@ import { MediafileSlideData } from '../mediafile-slide-data'; }) export class MediafileSlideComponent extends BaseSlideComponent { public get url(): string { - if (this.projector && this.projector.id) { - const url = this.slideMediafileService.getMediafileSync(this.projector.id, this.data.data.id); - - return url?.data || ``; - } - - return ``; + return `/system/media/get/${this.data.data.id}`; } public get scroll(): number { @@ -45,8 +38,8 @@ export class MediafileSlideComponent extends BaseSlideComponent
@if (showText) { -
+
@if (isParagraphBasedAmendment() || formattedMotionTextPlain) { @@ -106,7 +106,10 @@

} @if (formattedMotionTextPlain) { -
+
}
} @@ -146,20 +149,28 @@

{{ paragraph.diffLineFrom }} - {{ paragraph.diffLineTo }}:

} -
+
} } @if (data.data.reason) { -
+

{{ 'Reason' | translate }}

-
+
}
-
+ + + + @if (data.data.reason) { +
+

{{ 'Reason' | translate }}

+
+
+ } }

} diff --git a/client/src/app/site/pages/meetings/modules/projector/modules/slides/components/motions/modules/motion-slide/components/motion-slide/motion-slide.component.scss b/client/src/app/site/pages/meetings/modules/projector/modules/slides/components/motions/modules/motion-slide/components/motion-slide/motion-slide.component.scss index 6794356a84..03c3bdc6df 100644 --- a/client/src/app/site/pages/meetings/modules/projector/modules/slides/components/motions/modules/motion-slide/components/motion-slide/motion-slide.component.scss +++ b/client/src/app/site/pages/meetings/modules/projector/modules/slides/components/motions/modules/motion-slide/components/motion-slide/motion-slide.component.scss @@ -1,9 +1,18 @@ @import 'src/app/site/pages/meetings/pages/motions/styles/motion-common-styles'; +@import 'src/assets/styles/mixins/detail-view-appearance.scss'; .paragraph-context { opacity: 0.5; } +.motion-text, +.motion-text-diff, +.reason-text { + .detail-view-text { + @include detail-view-appearance; + } +} + #sidebox { width: 260px; right: 0; diff --git a/client/src/app/site/pages/meetings/modules/projector/modules/slides/components/topic-slide/components/topic-slide/topic-slide.component.html b/client/src/app/site/pages/meetings/modules/projector/modules/slides/components/topic-slide/components/topic-slide/topic-slide.component.html index 3f06ddcebe..fcd717dc22 100644 --- a/client/src/app/site/pages/meetings/modules/projector/modules/slides/components/topic-slide/components/topic-slide/topic-slide.component.html +++ b/client/src/app/site/pages/meetings/modules/projector/modules/slides/components/topic-slide/components/topic-slide/topic-slide.component.html @@ -6,6 +6,6 @@

} {{ data.data.title }}

-
+

} diff --git a/client/src/app/site/pages/meetings/modules/projector/modules/slides/components/topic-slide/components/topic-slide/topic-slide.component.scss b/client/src/app/site/pages/meetings/modules/projector/modules/slides/components/topic-slide/components/topic-slide/topic-slide.component.scss index e69de29bb2..7f6e150e3d 100644 --- a/client/src/app/site/pages/meetings/modules/projector/modules/slides/components/topic-slide/components/topic-slide/topic-slide.component.scss +++ b/client/src/app/site/pages/meetings/modules/projector/modules/slides/components/topic-slide/components/topic-slide/topic-slide.component.scss @@ -0,0 +1,5 @@ +@import 'src/assets/styles/mixins/detail-view-appearance.scss'; + +.detail-view-text ::ng-deep { + @include detail-view-appearance; +} diff --git a/client/src/app/site/pages/meetings/modules/projector/modules/slides/definitions/slides.ts b/client/src/app/site/pages/meetings/modules/projector/modules/slides/definitions/slides.ts index f5c383d5e3..89f487daaf 100644 --- a/client/src/app/site/pages/meetings/modules/projector/modules/slides/definitions/slides.ts +++ b/client/src/app/site/pages/meetings/modules/projector/modules/slides/definitions/slides.ts @@ -92,7 +92,7 @@ export const Slides: SlideManifest[] = [ scrollable: true }, { - path: `mediafile`, + path: `meeting_mediafile`, loadChildren: () => import(`../components/mediafile-slide/mediafile-slide.module`).then(m => m.MediafileSlideModule), verboseName: _(`File`), diff --git a/client/src/app/site/pages/meetings/modules/projector/modules/slides/services/slide-mediafile.service.ts b/client/src/app/site/pages/meetings/modules/projector/modules/slides/services/slide-mediafile.service.ts deleted file mode 100644 index 93fc494620..0000000000 --- a/client/src/app/site/pages/meetings/modules/projector/modules/slides/services/slide-mediafile.service.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { Injectable } from '@angular/core'; -import { Id } from 'src/app/domain/definitions/key-types'; -import { HttpService } from 'src/app/gateways/http.service'; - -import { SlidesModule } from '../slides.module'; - -type MediafileCacheEntry = { - id: Id; - data: string; -}; - -@Injectable({ providedIn: SlidesModule }) -export class SlideMediafileService { - private cache: { [projectorId: Id]: MediafileCacheEntry | null } = {}; - - public constructor(private http: HttpService) {} - - public async getMediafile(projectorId: Id, id: Id): Promise { - this.cache[projectorId] = { data: null, id }; // Prevent duplicate request of file - - try { - const file = await this.http.get(`/system/media/get/${id}`, {}, { responseType: `blob` }); - // TODO: When mediafile service supports single page retrieval - // we might want to cache multiple pages of a file to prevent - // rerequesting pages when navigating back. - // For now the objects will just be deleted when a new one is - // available. - this.cache[projectorId] = { data: URL.createObjectURL(file), id }; - } catch (e) { - console.error(e); - delete this.cache[projectorId]; - } - - return null; - } - - public getMediafileSync(projectorId: Id, id: Id): MediafileCacheEntry | null { - if (!this.cache[projectorId] || this.cache[projectorId].id !== id) { - this.getMediafile(projectorId, id); - return null; - } - - return this.cache[projectorId]; - } -} diff --git a/client/src/app/site/pages/meetings/pages/agenda/agenda.subscription.ts b/client/src/app/site/pages/meetings/pages/agenda/agenda.subscription.ts index d6e7914935..7d4a786e81 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/agenda.subscription.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/agenda.subscription.ts @@ -96,7 +96,10 @@ export const getTopicDetailSubscriptionConfig: SubscriptionConfigGenerator = (.. ids, fieldset: FULL_FIELDSET, follow: [ - `attachment_ids`, + { + idField: `attachment_meeting_mediafile_ids`, + follow: [{ idField: `mediafile_id`, fieldset: FULL_FIELDSET }] + }, { idField: `poll_ids`, ...pollModelRequest diff --git a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/pages/topic-detail/components/topic-detail/topic-detail.component.html b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/pages/topic-detail/components/topic-detail/topic-detail.component.html index 62235900d4..db56e514a1 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/pages/topic-detail/components/topic-detail/topic-detail.component.html +++ b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/pages/topic-detail/components/topic-detail/topic-detail.component.html @@ -80,7 +80,7 @@

:

- @for (file of topic.attachments; track file) { + @for (file of topic.attachment_meeting_mediafiles; track file) { {{ file.getTitle() }} @@ -109,7 +109,7 @@

{{ 'Text' | translate }}

- + @if (newTopic) {
diff --git a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/pages/topic-detail/components/topic-detail/topic-detail.component.ts b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/pages/topic-detail/components/topic-detail/topic-detail.component.ts index 486474e070..191bdb36aa 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/pages/topic-detail/components/topic-detail/topic-detail.component.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/pages/topic-detail/components/topic-detail/topic-detail.component.ts @@ -184,7 +184,7 @@ export class TopicDetailComponent extends BaseMeetingComponent implements OnInit const controlsConfig = { agenda_type: [], agenda_parent_id: [], - attachment_ids: [[]], + attachment_mediafile_ids: [[]], text: [``], title: [``, Validators.required] }; @@ -207,6 +207,11 @@ export class TopicDetailComponent extends BaseMeetingComponent implements OnInit topicPatch[ctrl] = topic[ctrl as keyof Topic]; } }); + if (this.topicForm.controls[`attachment_mediafile_ids`]) { + topicPatch[`attachment_mediafile_ids`] = this.topic.attachment_meeting_mediafiles?.map( + file => file.mediafile_id + ); + } this.topicForm!.patchValue(topicPatch); } @@ -322,10 +327,6 @@ export class TopicDetailComponent extends BaseMeetingComponent implements OnInit * @param event has the code */ public onKeyDown(event: KeyboardEvent): void { - if (event.key === `Enter` && event.shiftKey) { - this.saveTopic(); - } - if (event.key === `Escape`) { this.setEditMode(false); } diff --git a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/view-models/view-topic.ts b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/view-models/view-topic.ts index eb4dca64c7..a494dd5e48 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/modules/topics/view-models/view-topic.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/modules/topics/view-models/view-topic.ts @@ -6,7 +6,7 @@ import { HasAgendaItem, HasListOfSpeakers } from 'src/app/site/pages/meetings/pa import { BaseProjectableViewModel } from 'src/app/site/pages/meetings/view-models/base-projectable-model'; import { HasMeeting } from 'src/app/site/pages/meetings/view-models/has-meeting'; -import { HasAttachment } from '../../../../mediafiles/view-models/has-attachment'; +import { HasAttachmentMeetingMediafiles } from '../../../../mediafiles/view-models/has-attachment'; import { HasPolls, VotingTextContext } from '../../../../polls'; export class ViewTopic extends BaseProjectableViewModel { @@ -37,7 +37,7 @@ export class ViewTopic extends BaseProjectableViewModel { } public hasAttachments(): boolean { - return this.attachments && this.attachments.length > 0; + return this.attachment_meeting_mediafiles && this.attachment_meeting_mediafiles.length > 0; } public override getProjectorTitle(_projection: Projection): ProjectorTitle { @@ -46,7 +46,7 @@ export class ViewTopic extends BaseProjectableViewModel { } export interface ViewTopic extends Topic, - HasAttachment, + HasAttachmentMeetingMediafiles, HasAgendaItem, HasListOfSpeakers, HasMeeting, diff --git a/client/src/app/site/pages/meetings/pages/agenda/pages/agenda-item-list/components/agenda-item-info-dialog/agenda-item-info-dialog.component.ts b/client/src/app/site/pages/meetings/pages/agenda/pages/agenda-item-list/components/agenda-item-info-dialog/agenda-item-info-dialog.component.ts index 9209c99fa2..b11134ea6f 100644 --- a/client/src/app/site/pages/meetings/pages/agenda/pages/agenda-item-list/components/agenda-item-info-dialog/agenda-item-info-dialog.component.ts +++ b/client/src/app/site/pages/meetings/pages/agenda/pages/agenda-item-list/components/agenda-item-info-dialog/agenda-item-info-dialog.component.ts @@ -87,13 +87,7 @@ export class AgendaItemInfoDialogComponent implements OnInit { } /** - * clicking Shift and Enter will save the form - * * @param event the key that was clicked */ - public onKeyDown(event: KeyboardEvent): void { - if (event.key === `Enter` && event.shiftKey) { - this.saveItemInfo(); - } - } + public onKeyDown(_event: KeyboardEvent): void {} } diff --git a/client/src/app/site/pages/meetings/pages/assignments/assignments.subscription.ts b/client/src/app/site/pages/meetings/pages/assignments/assignments.subscription.ts index ba69e5432f..f65649c8e7 100644 --- a/client/src/app/site/pages/meetings/pages/assignments/assignments.subscription.ts +++ b/client/src/app/site/pages/meetings/pages/assignments/assignments.subscription.ts @@ -1,4 +1,5 @@ import { Id } from 'src/app/domain/definitions/key-types'; +import { FULL_FIELDSET } from 'src/app/domain/fieldsets/misc'; import { MeetingUserFieldsets } from 'src/app/domain/fieldsets/user'; import { SubscriptionConfigGenerator } from 'src/app/domain/interfaces/subscription-config'; import { ViewMeeting } from 'src/app/site/pages/meetings/view-models/view-meeting'; @@ -17,6 +18,11 @@ export const getAssignmentSubscriptionConfig: SubscriptionConfigGenerator = (id: { idField: `assignment_ids`, follow: [ + { + idField: `attachment_meeting_mediafile_ids`, + fieldset: FULL_FIELDSET, + follow: [{ idField: `mediafile_id`, fieldset: FULL_FIELDSET }] + }, { idField: `poll_ids`, ...pollModelRequest }, { idField: `list_of_speakers_id`, ...listOfSpeakersSpeakerCountSubscription } ] diff --git a/client/src/app/site/pages/meetings/pages/assignments/modules/assignment-poll/components/assignment-poll-meta-info/assignment-poll-meta-info.component.html b/client/src/app/site/pages/meetings/pages/assignments/modules/assignment-poll/components/assignment-poll-meta-info/assignment-poll-meta-info.component.html index ea63806b09..e067df389a 100644 --- a/client/src/app/site/pages/meetings/pages/assignments/modules/assignment-poll/components/assignment-poll-meta-info/assignment-poll-meta-info.component.html +++ b/client/src/app/site/pages/meetings/pages/assignments/modules/assignment-poll/components/assignment-poll-meta-info/assignment-poll-meta-info.component.html @@ -8,14 +8,14 @@ {{ poll.options.length ? poll.options.length + ' ' : '' }}{{ 'Candidates' | translate }}: @if (enumerateCandidates) {
    - @for (option of poll.options; track option) { + @for (option of poll.options; track option.id) {
  1. {{ getOptionTitle(option) | translate }}
  2. }
} @if (!enumerateCandidates) {
    - @for (option of poll.options; track option) { + @for (option of poll.options; track option.id) {
  • {{ getOptionTitle(option) | translate }}
  • }
@@ -28,14 +28,14 @@ {{ 'Candidates' | translate }}): @if (enumerateCandidates) {
    - @for (title of poll.options[0]?.contentTitlesAsSortedArray; track title) { + @for (title of poll.options[0]?.contentTitlesAsSortedArray; track $index) {
  1. {{ title.title }}{{ title.subtitle ? ' (' + title.subtitle + ')' : '' }}
  2. }
} @if (!enumerateCandidates) {
    - @for (title of poll.options[0]?.contentTitlesAsSortedArray; track title) { + @for (title of poll.options[0]?.contentTitlesAsSortedArray; track $index) {
  • {{ title.title }}{{ title.subtitle ? ' (' + title.subtitle + ')' : '' }}
  • }
diff --git a/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-detail/components/assignment-detail/assignment-detail.component.html b/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-detail/components/assignment-detail/assignment-detail.component.html index 0acf743b6d..88ff70eb6c 100644 --- a/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-detail/components/assignment-detail/assignment-detail.component.html +++ b/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-detail/components/assignment-detail/assignment-detail.component.html @@ -143,11 +143,11 @@

{{ 'Phase' | translate }}

- @if (assignment.attachments?.length) { + @if (assignment.attachment_meeting_mediafiles?.length) {

{{ 'Election documents' | translate }}

- @for (file of assignment.attachments; track file) { + @for (file of assignment.attachment_meeting_mediafiles; track file) { {{ file.getTitle() }} @@ -273,7 +273,7 @@

{{ 'Description' | translate }}:

} diff --git a/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-detail/components/assignment-detail/assignment-detail.component.ts b/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-detail/components/assignment-detail/assignment-detail.component.ts index e3a9e00043..dda6004960 100644 --- a/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-detail/components/assignment-detail/assignment-detail.component.ts +++ b/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-detail/components/assignment-detail/assignment-detail.component.ts @@ -163,7 +163,7 @@ export class AssignmentDetailComponent extends BaseMeetingComponent implements O this.assignmentForm = formBuilder.group({ phase: null, tag_ids: [[]], - attachment_ids: [[]], + attachment_mediafile_ids: [[]], title: [``, Validators.required], description: [``], default_poll_description: [``], @@ -273,15 +273,11 @@ export class AssignmentDetailComponent extends BaseMeetingComponent implements O } /** - * clicking Shift and Enter will save automatically * Hitting escape while in the edit form should cancel editing * * @param event has the code */ public onKeyDown(event: KeyboardEvent): void { - if (event.key === `Enter` && event.shiftKey) { - this.saveAssignment(); - } if (event.key === `Escape`) { this.setEditMode(false); } @@ -297,6 +293,11 @@ export class AssignmentDetailComponent extends BaseMeetingComponent implements O Object.keys(this.assignmentForm.controls).forEach(control => { contentPatch[control] = assignment[control as keyof ViewAssignment]; }); + if (this.assignmentForm.controls[`attachment_mediafile_ids`]) { + contentPatch[`attachment_mediafile_ids`] = assignment.attachment_meeting_mediafiles?.map( + file => file.mediafile_id + ); + } this.assignmentForm.patchValue(contentPatch); } diff --git a/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-polls/components/assignment-poll-detail/assignment-poll-detail.component.ts b/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-polls/components/assignment-poll-detail/assignment-poll-detail.component.ts index 7bf629f45f..a77b41f416 100644 --- a/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-polls/components/assignment-poll-detail/assignment-poll-detail.component.ts +++ b/client/src/app/site/pages/meetings/pages/assignments/pages/assignment-polls/components/assignment-poll-detail/assignment-poll-detail.component.ts @@ -66,6 +66,8 @@ export class AssignmentPollDetailComponent if (!votes[token]) { votes[token] = { user: vote.user, + groupIds: vote.user?.group_ids(), + structureLevelIds: vote.user?.structure_level_ids(), votes: [] }; } diff --git a/client/src/app/site/pages/meetings/pages/assignments/view-models/view-assignment.ts b/client/src/app/site/pages/meetings/pages/assignments/view-models/view-assignment.ts index e0ee3a37e9..a49f03c1c4 100644 --- a/client/src/app/site/pages/meetings/pages/assignments/view-models/view-assignment.ts +++ b/client/src/app/site/pages/meetings/pages/assignments/view-models/view-assignment.ts @@ -9,7 +9,7 @@ import { ViewUser } from 'src/app/site/pages/meetings/view-models/view-user'; import { HasMeeting } from '../../../view-models/has-meeting'; import { HasListOfSpeakers } from '../../agenda/modules/list-of-speakers'; import { HasAgendaItem } from '../../agenda/view-models/has-agenda-item'; -import { HasAttachment } from '../../mediafiles/view-models/has-attachment'; +import { HasAttachmentMeetingMediafiles } from '../../mediafiles/view-models/has-attachment'; import { HasTags } from '../../motions/modules/tags/view-models/has-tags'; import { HasPolls, VotingTextContext } from '../../polls/view-models/has-polls'; import { ViewPoll } from '../../polls/view-models/view-poll'; @@ -77,7 +77,7 @@ export interface ViewAssignment extends Assignment, ViewModelRelations, HasMeeting, - HasAttachment, + HasAttachmentMeetingMediafiles, HasTags, HasAgendaItem, HasListOfSpeakers, diff --git a/client/src/app/site/pages/meetings/pages/autopilot/autopilot.subscription.ts b/client/src/app/site/pages/meetings/pages/autopilot/autopilot.subscription.ts index 985b33fb6e..f6a8f3b827 100644 --- a/client/src/app/site/pages/meetings/pages/autopilot/autopilot.subscription.ts +++ b/client/src/app/site/pages/meetings/pages/autopilot/autopilot.subscription.ts @@ -25,7 +25,7 @@ export const getAutopilotSubscriptionConfig: SubscriptionConfigGenerator = (id: follow: [ { idField: `content_object_id`, - fieldset: [`number`, `title`, `owner_id`, ...MEETING_ROUTING_FIELDS] + fieldset: [`number`, `title`, `mediafile_id`, ...MEETING_ROUTING_FIELDS] } ] } @@ -45,6 +45,10 @@ export const getAutopilotContentSubscriptionConfig = (id: Id): SubscriptionConfi idField: `content_object_id`, fieldset: [`title`, `owner_id`, ...MEETING_ROUTING_FIELDS], follow: [ + { + idField: `mediafile_id`, + fieldset: [`title`, `mimetype`, `owner_id`] + }, { idField: `poll_ids`, ...pollModelRequest diff --git a/client/src/app/site/pages/meetings/pages/chat/pages/chat-group-list/components/chat-group-detail-message/chat-group-detail-message.component.html b/client/src/app/site/pages/meetings/pages/chat/pages/chat-group-list/components/chat-group-detail-message/chat-group-detail-message.component.html index c3df863924..72c4656896 100644 --- a/client/src/app/site/pages/meetings/pages/chat/pages/chat-group-list/components/chat-group-detail-message/chat-group-detail-message.component.html +++ b/client/src/app/site/pages/meetings/pages/chat/pages/chat-group-list/components/chat-group-detail-message/chat-group-detail-message.component.html @@ -16,7 +16,7 @@
{{ date | localizedDate }}
@if (isOwnMessage || canBeDeleted) { @if (isMobile) { - + } @if (!isMobile) {
-
-
- @if (group.write_groups.length) { - - - {{ group.getTitle() }} - - - } -
-
- @if (getReadonlyGroups(group).length) { - - - {{ group.getTitle() }} - - - } -
-
- @if (canManage) { + @if (canManage) { +
+
+ @if (group.write_groups.length) { + + + {{ group.getTitle() }} + + + } +
+
+ @if (getReadonlyGroups(group).length) { + + + {{ group.getTitle() }} + + + } +
+
- } -
+
+ } @if ({ writePermissions: hasWritePermissionsObservable | async }; as has) { {{ 'Files' | translate }}

- + @if (!isPublishedDirectory) { + + } @@ -42,6 +44,7 @@

{{ 'Files' | translate }}

[fileMenuTemplate]="fileMenuTemplate" [hiddenInMobile]="['edit']" [isMultiSelect]="isMultiSelect" + [isOrgaLevelAndRootLevel]="false" [shouldShowFileMenuFn]="shouldShowFileMenuFn" [sourceFiles]="directoryObservable" (beforeEditing)="onEditFile($event.file)" @@ -129,8 +132,7 @@

{{ 'Files' | translate }}

{{ 'Download folder' | translate }}
- } - @if (isMultiSelect) { + } @else {
- -
- } - - - @if (motion) { - - } - - - - - - - - - - -
- @if (motion && !motion.agenda_item_id) { - - } - @if (motion && motion.agenda_item_id) { - - } -
- -
- -
- -
- -
- @if (perms.isAllowed('update', motion) || perms.isAllowed('manage')) { - - } - - @if (perms.isAllowed('update', motion)) { - - } - - @if (perms.isAllowed('manage')) { - - } -
- - @if (motion) { -
- - @if (!editMotion) { -
- -
- } - @if (editMotion) { -
- - - - - -
- } - @if (!editMotion) { - @if (vp.isMobile) { -
- - @if (!newMotion) { -
- -
- } - - - - - - - - - - @if (!operator.isAnonymous) { - - } -
- } @else { - @if (motion || newMotion) { -
-
- - @if (!newMotion) { -
- -
- } - - @if (!operator.isAnonymous) { - - } -
-
- - - - - - -
-
- } - } - } -
- } - } - - - -
- -
-
- - - @if (!newMotion && !editMotion) { - - } - - diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-detail-view/motion-detail-view.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-detail-view/motion-detail-view.component.ts deleted file mode 100644 index 441e0a28c0..0000000000 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-detail-view/motion-detail-view.component.ts +++ /dev/null @@ -1,600 +0,0 @@ -import { - ChangeDetectionStrategy, - ChangeDetectorRef, - Component, - HostListener, - OnDestroy, - OnInit, - ViewEncapsulation -} from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; -import { TranslateService } from '@ngx-translate/core'; -import { BehaviorSubject, Observable, of } from 'rxjs'; -import { Id } from 'src/app/domain/definitions/key-types'; -import { HasSequentialNumber } from 'src/app/domain/interfaces'; -import { Motion } from 'src/app/domain/models/motions/motion'; -import { LineNumberingMode, PERSONAL_NOTE_ID } from 'src/app/domain/models/motions/motions.constants'; -import { Deferred } from 'src/app/infrastructure/utils/promises'; -import { BaseMeetingComponent } from 'src/app/site/pages/meetings/base/base-meeting.component'; -import { ViewMotion } from 'src/app/site/pages/meetings/pages/motions'; -import { OperatorService } from 'src/app/site/services/operator.service'; -import { ViewPortService } from 'src/app/site/services/view-port.service'; -import { PromptService } from 'src/app/ui/modules/prompt-dialog'; - -import { AgendaItemControllerService } from '../../../../../agenda/services/agenda-item-controller.service/agenda-item-controller.service'; -import { MotionForwardDialogService } from '../../../../components/motion-forward-dialog/services/motion-forward-dialog.service'; -import { AmendmentControllerService } from '../../../../services/common/amendment-controller.service/amendment-controller.service'; -import { MotionControllerService } from '../../../../services/common/motion-controller.service/motion-controller.service'; -import { MotionPermissionService } from '../../../../services/common/motion-permission.service/motion-permission.service'; -import { MotionPdfExportService } from '../../../../services/export/motion-pdf-export.service/motion-pdf-export.service'; -import { AmendmentListFilterService } from '../../../../services/list/amendment-list-filter.service/amendment-list-filter.service'; -import { AmendmentListSortService } from '../../../../services/list/amendment-list-sort.service/amendment-list-sort.service'; -import { MotionListFilterService } from '../../../../services/list/motion-list-filter.service/motion-list-filter.service'; -import { MotionListSortService } from '../../../../services/list/motion-list-sort.service/motion-list-sort.service'; -import { MotionDetailViewService } from '../../services/motion-detail-view.service'; -import { MotionDetailViewOriginUrlService } from '../../services/motion-detail-view-originurl.service'; - -@Component({ - selector: `os-motion-detail-view`, - templateUrl: `./motion-detail-view.component.html`, - styleUrls: [`./motion-detail-view.component.scss`], - changeDetection: ChangeDetectionStrategy.OnPush, - encapsulation: ViewEncapsulation.None -}) -export class MotionDetailViewComponent extends BaseMeetingComponent implements OnInit, OnDestroy { - public readonly collection = ViewMotion.COLLECTION; - - /** - * Determine if the motion is edited - */ - public editMotion = false; - - /** - * Determine if the motion is a new (unsent) amendment to another motion - */ - public amendmentEdit = false; - - /** - * Determine if the motion is new - */ - public newMotion = false; - - /** - * Sets the motions, e.g. via an autoupdate. Reload important things here: - * - Reload the recommendation. Not changed with autoupdates, but if the motion is loaded this needs to run. - */ - public set motion(motion: ViewMotion) { - this._motion = motion; - if (motion) { - this.init(); - } - } - - public get motion(): ViewMotion { - return this._motion; - } - - public temporaryMotion: any = {}; - - public canSave = false; - - /** - * preload the next motion for direct navigation - */ - public set nextMotion(motion: ViewMotion | null) { - this._nextMotion = motion; - this.cd.markForCheck(); - } - - public get nextMotion(): ViewMotion | null { - return this._nextMotion; - } - - /** - * preload the previous motion for direct navigation - */ - public set previousMotion(motion: ViewMotion | null) { - this._previousMotion = motion; - this.cd.markForCheck(); - } - - public get previousMotion(): ViewMotion | null { - return this._previousMotion; - } - - public get showNavigateButtons(): boolean { - return !!this.previousMotion || !!this.nextMotion; - } - - public hasLoaded = new BehaviorSubject(false); - - private _nextMotion: ViewMotion | null = null; - - private _previousMotion: ViewMotion | null = null; - - /** - * Subject for (other) motions - */ - private _motionObserver: Observable = of([]); - - /** - * List of presorted motions. Filles by sort service - * and filter service. - * To navigate back and forth - */ - private _sortedMotions: ViewMotion[] = []; - - /** - * The observable for the list of motions. Set in OnInit - */ - private _sortedMotionsObservable: Observable = of([]); - - private _motion: ViewMotion | null = null; - private _motionId: Id | null = null; - private _parentId: Id | null = null; - - private _hasModelSubscriptionInitiated = false; - - private _forwardingAvailable = false; - - private _amendmentsInMainList = false; - - private _navigatedFromAmendmentList = false; - - public constructor( - protected override translate: TranslateService, - public vp: ViewPortService, - public operator: OperatorService, - public perms: MotionPermissionService, - private route: ActivatedRoute, - public repo: MotionControllerService, - private viewService: MotionDetailViewService, - private promptService: PromptService, - private itemRepo: AgendaItemControllerService, - private motionSortService: MotionListSortService, - private motionFilterService: MotionListFilterService, - private motionForwardingService: MotionForwardDialogService, - private amendmentRepo: AmendmentControllerService, - private amendmentSortService: AmendmentListSortService, - private amendmentFilterService: AmendmentListFilterService, - private cd: ChangeDetectorRef, - private pdfExport: MotionPdfExportService, - private originUrlService: MotionDetailViewOriginUrlService - ) { - super(); - - this.motionForwardingService.forwardingMeetingsAvailable().then(forwardingAvailable => { - this._forwardingAvailable = forwardingAvailable; - }); - - this.meetingSettingsService - .get(`motions_amendments_in_main_list`) - .subscribe(enabled => (this._amendmentsInMainList = enabled)); - } - - /** - * Init. - * Sets all required subjects and fills in the required information - */ - public ngOnInit(): void { - this.subscriptions.push( - this.activeMeetingIdService.meetingIdObservable.subscribe(() => { - this.hasLoaded.next(false); - }) - ); - } - - /** - * Called during view destruction. - * Sends a notification to user editors of the motion was edited - */ - public override ngOnDestroy(): void { - super.ngOnDestroy(); - this.destroy(); - this.amendmentSortService.exitSortService(); - this.motionSortService.exitSortService(); - } - - public getSaveAction(): () => Promise { - return () => this.saveMotion(); - } - - /** - * Sets @var this._navigatedFromAmendmentList on navigation from either of both lists. - * Does nothing on navigation between two motions. - */ - private isNavigatedFromAmendments(): void { - const previousUrl = this.originUrlService.getPreviousUrl(); - if (!!previousUrl) { - if (previousUrl.endsWith(`amendments`)) { - this._navigatedFromAmendmentList = true; - } else if (previousUrl.endsWith(`motions`)) { - this._navigatedFromAmendmentList = false; - } - } - } - - public goToHistory(): void { - this.router.navigate([this.activeMeetingId!, `history`], { queryParams: { fqid: this.motion.fqid } }); - } - - /** - * In the ui are no distinct buttons for update or create. This is decided here. - */ - public async saveMotion(event?: any): Promise { - const update = event || this.temporaryMotion; - if (this.newMotion) { - await this.createMotion(update); - } else { - await this.updateMotion(update, this.motion); - this.leaveEditMotion(); - } - } - - /** - * Trigger to delete the motion. - */ - public async deleteMotionButton(): Promise { - let title = this.translate.instant(`Are you sure you want to delete this motion? `); - let content = this.motion.getTitle(); - if (this.motion.amendments.length) { - title = this.translate.instant( - `Warning: Amendments exist for this motion. Are you sure you want to delete this motion regardless?` - ); - content = - `` + - this.translate.instant(`Motion`) + - ` ` + - this.motion.getTitle() + - `` + - `
` + - this.translate.instant(`Deleting this motion will also delete the amendments.`) + - `
` + - this.translate.instant(`List of amendments: `) + - `
` + - this.motion.amendments - .map(amendment => (amendment.number ? amendment.number : amendment.title)) - .join(`, `); - } - if (await this.promptService.open(title, content)) { - await this.repo.delete(this.motion); - this.router.navigate([this.activeMeetingId, `motions`]); - } - } - - /** - * Goes to the amendment creation wizard. Executed via click. - */ - public createAmendment(): void { - const amendmentTextMode = this.meetingSettingsService.instant(`motions_amendments_text_mode`); - if (amendmentTextMode === `paragraph`) { - this.router.navigate([`create-amendment`], { relativeTo: this.route }); - } else { - this.router.navigate([this.activeMeetingId, `motions`, `new-amendment`], { - relativeTo: this.route.snapshot.params[`relativeTo`], - queryParams: { parent: this.motion.id || null } - }); - } - } - - public async forwardMotionToMeetings(): Promise { - await this.motionForwardingService.forwardMotionsToMeetings(this.motion); - } - - public get showForwardButton(): boolean { - return !!this.motion.state?.allow_motion_forwarding && this._forwardingAvailable; - } - - public enterEditMotion(): void { - this.editMotion = true; - this.showMotionEditConflictWarningIfNecessary(); - } - - public leaveEditMotion(): void { - if (this.newMotion) { - this.router.navigate([this.activeMeetingId, `motions`]); - } else { - this.editMotion = false; - } - } - - /** - * Navigates the user to the given ViewMotion - * - * @param motion target - */ - public navigateToMotion(motion: ViewMotion | null): void { - if (motion) { - this.router.navigate([this.activeMeetingId, `motions`, motion.sequential_number]); - // update the current motion - this.motion = motion; - this.setSurroundingMotions(); - } - } - - /** - * Sets the previous and next motion. Sorts by the current sorting as used - * in the {@link MotionSortListService} or {@link AmendmentSortListService}, - * respectively - */ - public setSurroundingMotions(): void { - const indexOfCurrent = this._sortedMotions.findIndex(motion => motion === this.motion); - if (indexOfCurrent > 0) { - this.previousMotion = this.findNextSuitableMotion(indexOfCurrent, -1); - } else { - this.previousMotion = null; - } - if (indexOfCurrent > -1 && indexOfCurrent < this._sortedMotions.length - 1) { - this.nextMotion = this.findNextSuitableMotion(indexOfCurrent, 1); - } else { - this.nextMotion = null; - } - } - - /** - * Finds the next suitable motion. - * If @var this._amendmentsInMainList as well as @var this._navigatedFromAmendmentList collide - * iterates over the next or previous motions to find the first with lead motion. - * @param indexOfCurrent The index from the active motion. - * @param step Stepwidth to iterate eiter over the previous or next motions. - */ - private findNextSuitableMotion(indexOfCurrent: number, step: number): ViewMotion { - if (!this._amendmentsInMainList || !this._navigatedFromAmendmentList) { - return this._sortedMotions[indexOfCurrent + step]; - } - - for (let i = indexOfCurrent + step; 0 <= i && i <= this._sortedMotions.length - 1; i += step) { - if (!!this._sortedMotions[i].hasLeadMotion) { - return this._sortedMotions[i]; - } - } - return null; - } - - /** - * Click handler for the pdf button - */ - public onDownloadPdf(): void { - this.pdfExport.exportSingleMotion(this.motion, { - lnMode: - this.viewService.currentLineNumberingMode === LineNumberingMode.Inside - ? LineNumberingMode.Outside - : this.viewService.currentLineNumberingMode, - crMode: this.viewService.currentChangeRecommendationMode, - // export all comment fields as well as personal note - comments: this.motion.usedCommentSectionIds.concat([PERSONAL_NOTE_ID]) - }); - } - - /** - * Handler for upload errors - * - * @param error the error message passed by the upload component - */ - public showUploadError(error: string): void { - this.raiseError(error); - } - - /** - * Function to prevent automatically closing the window/tab, - * if the user is editing a motion. - * - * @param event The event object from 'onUnbeforeUnload'. - */ - @HostListener(`window:beforeunload`, [`$event`]) - public stopClosing(event: Event): void { - if (this.editMotion) { - event.returnValue = false; - } - } - - public addToAgenda(): void { - this.itemRepo.addToAgenda({}, this.motion).resolve().catch(this.raiseError); - } - - public removeFromAgenda(): void { - this.itemRepo.removeFromAgenda(this.motion.agenda_item_id!).catch(this.raiseError); - } - - public onIdFound(id: Id | null): void { - if (this._motionId !== id) { - this.onRouteChanged(); - } - this._motionId = id; - if (id) { - this.loadMotionById(); - } else { - this.initNewMotion(); - } - this.hasLoaded.next(true); - } - - private registerSubjects(): void { - this._motionObserver = this.repo.getViewModelListObservable(); - // since updates are usually not commig at the same time, every change to - // any subject has to mark the view for chekcing - this.subscriptions.push( - this._motionObserver.subscribe(() => { - this.cd.markForCheck(); - }) - ); - } - - private initNewMotion(): void { - // new motion - super.setTitle(`New motion`); - this.newMotion = true; - this.editMotion = true; - this.motion = {} as any; - if (this.route.snapshot.queryParams[`parent`]) { - this.initializeAmendment(); - } - } - - private loadMotionById(motionId: Id | null = this._motionId): void { - if (this._hasModelSubscriptionInitiated || !motionId) { - return; // already fired! - } - this._hasModelSubscriptionInitiated = true; - - this.subscriptions.push( - this.repo.getViewModelObservable(motionId).subscribe(motion => { - if (motion) { - const title = motion.getTitle(); - super.setTitle(title); - this.motion = motion; - this.cd.markForCheck(); - } - }) - ); - } - - /** - * Using Shift, Alt + the arrow keys will navigate between the motions - * - * @param event has the key code - */ - @HostListener(`document:keydown`, [`$event`]) - public onKeyNavigation(event: KeyboardEvent): void { - if (event.key === `ArrowLeft` && event.altKey && event.shiftKey) { - this.navigateToMotion(this.previousMotion); - } - if (event.key === `ArrowRight` && event.altKey && event.shiftKey) { - this.navigateToMotion(this.nextMotion); - } - } - - /** - * Creates a motion. Calls the "patchValues" function in the MotionObject - */ - public async createMotion(newMotionValues: Partial): Promise { - try { - let response: HasSequentialNumber; - if (this._parentId) { - response = await this.amendmentRepo.createTextBased({ - ...newMotionValues, - lead_motion_id: this._parentId - }); - } else { - response = (await this.repo.create(newMotionValues))[0]; - } - await this.navigateAfterCreation(response); - } catch (e) { - this.raiseError(e); - } - } - - private async updateMotion(newMotionValues: any, motion: ViewMotion): Promise { - await this.repo.update(newMotionValues, motion).resolve(); - } - - private async ensureParentIsAvailable(parentId: Id): Promise { - if (!this.repo.getViewModel(parentId)) { - const loaded = new Deferred(); - this.subscriptions.push( - this.repo.getViewModelObservable(parentId).subscribe(parent => { - if (parent && !loaded.wasResolved) { - loaded.resolve(); - } - }) - ); - return loaded; - } - } - - private async initializeAmendment(): Promise { - const motion: any = {}; - this._parentId = +this.route.snapshot.queryParams[`parent`] || null; - this.amendmentEdit = true; - await this.ensureParentIsAvailable(this._parentId!); - const parentMotion = this.repo.getViewModel(this._parentId!); - motion.lead_motion_id = this._parentId; - if (parentMotion) { - const defaultTitle = `${this.translate.instant(`Amendment to`)} ${parentMotion.numberOrTitle}`; - motion.title = defaultTitle; - motion.category_id = parentMotion.category_id; - const amendmentTextMode = this.meetingSettingsService.instant(`motions_amendments_text_mode`); - if (amendmentTextMode === `fulltext`) { - motion.text = parentMotion.text; - } - this.motion = motion; - } - } - - /** - * Lifecycle routine for motions to initialize. - */ - private init(): void { - this.cd.reattach(); - - this.isNavigatedFromAmendments(); - this.registerSubjects(); - - // use the filter and the search service to get the current sorting - if (this.motion && this.motion.lead_motion_id && !this._amendmentsInMainList) { - // only use the amendments for this motion - this.amendmentSortService.initSorting(); - this.amendmentFilterService.initFilters( - this.amendmentRepo.getSortedViewModelListObservableFor( - { id: this.motion.lead_motion_id }, - this.amendmentSortService.repositorySortingKey - ) - ); - this._sortedMotionsObservable = this.amendmentFilterService.outputObservable; - } else { - this.motionSortService.initSorting(); - this.motionFilterService.initFilters( - this.repo.getSortedViewModelListObservable(this.motionSortService.repositorySortingKey) - ); - this._sortedMotionsObservable = this.motionFilterService.outputObservable; - } - - if (this._sortedMotionsObservable) { - this.subscriptions.push( - this._sortedMotionsObservable.subscribe(motions => { - if (motions) { - this._sortedMotions = motions; - this.setSurroundingMotions(); - } - }) - ); - } - - this.subscriptions.push( - /** - * Check for changes of the viewport subject changes - */ - this.vp.isMobileSubject.subscribe(() => { - this.cd.markForCheck(); - }) - ); - } - - private showMotionEditConflictWarningIfNecessary(): void { - if (this.motion.amendments?.filter(amend => amend.isParagraphBasedAmendment()).length > 0) { - const msg = this.translate.instant( - `Warning: Amendments exist for this motion. Editing this text will likely impact them negatively. Particularily, amendments might become unusable if the paragraph they affect is deleted.` - ); - this.raiseWarning(msg); - } - } - - /** - * Lifecycle routine for motions to get destroyed. - */ - private destroy(): void { - this._hasModelSubscriptionInitiated = false; - this.cleanSubscriptions(); - this.viewService.reset(); - this.cd.detach(); - } - - private onRouteChanged(): void { - this.destroy(); - this.init(); - } - - private async navigateAfterCreation(motion: HasSequentialNumber): Promise { - this.router.navigate([this.activeMeetingId, `motions`, motion!.sequential_number]); - } -} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-detail/motion-detail.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-detail/motion-detail.component.ts index b12c22b455..6059c5fb77 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-detail/motion-detail.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-detail/motion-detail.component.ts @@ -29,14 +29,17 @@ export class MotionDetailComponent extends BaseModelRequestHandlerComponent { } protected override onShouldCreateModelRequests(params: any, meetingId: Id): void { - if (params[`id`] && meetingId) { - this.loadMotionDetail(meetingId, +params[`id`]); + const id = params[`id`] || params[`parent`]; + if (id && meetingId) { + this.loadMotionDetail(meetingId, +id); } } protected override onParamsChanged(params: any, oldParams: any): void { - if (params[`id`] !== oldParams[`id`] || params[`meetingId`] !== oldParams[`meetingId`]) { - this.loadMotionDetail(+params[`meetingId`], +params[`id`]); + const oldId = oldParams[`id`] || oldParams[`parent`]; + const newId = params[`id`] || params[`parent`]; + if (newId !== oldId || params[`meetingId`] !== oldParams[`meetingId`]) { + this.loadMotionDetail(+params[`meetingId`], +newId); } } diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-manage-polls/motion-manage-polls.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-manage-polls/motion-manage-polls.component.ts deleted file mode 100644 index d6a95d9c0c..0000000000 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-manage-polls/motion-manage-polls.component.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { Component, Input } from '@angular/core'; -import { Id } from 'src/app/domain/definitions/key-types'; -import { PollControllerService } from 'src/app/site/pages/meetings/modules/poll/services/poll-controller.service'; -import { ViewMotion } from 'src/app/site/pages/meetings/pages/motions'; - -import { MotionPollDialogService } from '../../../../modules/motion-poll/services/motion-poll-dialog.service'; - -@Component({ - selector: `os-motion-manage-polls`, - templateUrl: `./motion-manage-polls.component.html`, - styleUrls: [`./motion-manage-polls.component.scss`] -}) -export class MotionManagePollsComponent { - @Input() - public motion!: ViewMotion; - - @Input() - public hideAdd: boolean; - - public constructor( - private pollDialog: MotionPollDialogService, - private pollController: PollControllerService - ) {} - - public onEditPoll(id: Id): void { - const viewPoll = this.pollController.getViewModel(id)!; - this.pollDialog.open(viewPoll); - } -} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-manage-title/motion-manage-title.component.scss b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-manage-title/motion-manage-title.component.scss deleted file mode 100644 index 791e9b5b7f..0000000000 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-manage-title/motion-manage-title.component.scss +++ /dev/null @@ -1,45 +0,0 @@ -.title-line { - display: flex; - - .motion-title { - position: relative; - z-index: 1; - - // Grab the left padding of the parent element to catch hover-events for the :before element - margin-left: -20px; - padding-left: 20px; - - .change-title { - position: relative; - width: 0; - height: 0; - } - - .change-title:before { - position: absolute; - top: 18px; - left: -17px; - display: none; - cursor: pointer; - content: ''; - width: 16px; - height: 16px; - background: url('data:image/svg+xml;utf8,'); - background-size: 16px 16px; - } - - &:hover .change-title:before { - display: block; - } - - .title-change-indicator { - background-color: #0333ff; - position: absolute; - width: 4px; - height: 32px; - left: 10px; - top: 5px; - cursor: pointer; - } - } -} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-paragraphbased-amendment/motion-paragraphbased-amendment.component.html b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-paragraphbased-amendment/motion-paragraphbased-amendment.component.html deleted file mode 100644 index e032367467..0000000000 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-paragraphbased-amendment/motion-paragraphbased-amendment.component.html +++ /dev/null @@ -1,126 +0,0 @@ -@if (!editMotion) { -
- - @if (amendmentLines) { -
- @if (amendmentLines.length === 0) { -
- @if (motion.lead_motion) { - {{ 'No changes at the text.' | translate }} - } - @if (!motion.lead_motion) { - {{ 'The parent motion is not available.' | translate }} - } -
- } - @if (amendmentErrorMessage) { -
- -
- } - @if (motion.lead_motion && changeRecoMode !== ChangeRecoMode.Diff && !isFinalEdit) { - @for (paragraph of getAmendmentParagraphs(); track $index) { -
- @if (!showAmendmentContext) { -

- {{ getAmendmentParagraphLinesTitle(paragraph) }} -

- } - @if ( - lineNumberingMode === LineNumberingMode.Outside && - (changeRecoMode === ChangeRecoMode.Original || - changeRecoMode === ChangeRecoMode.Changed) - ) { - - } - @if ( - lineNumberingMode !== LineNumberingMode.Outside || - !( - changeRecoMode !== ChangeRecoMode.Original && - changeRecoMode !== ChangeRecoMode.Changed - ) - ) { -
- } - -
- } - } - @if (changeRecoMode === ChangeRecoMode.Diff) { - - } -
- } - @if (!amendmentLines) { -
- - {{ 'There is an error with this amendment. Please edit it manually.' | translate }} - -
- } -
- - @if (changeRecoMode === ChangeRecoMode.Original || changeRecoMode === ChangeRecoMode.Changed) { -
- @if (motion && motion.isParagraphBasedAmendment() && motion.lead_motion) { - - {{ 'Show entire motion text' | translate }} - - } -
- } -} - - -@if (editMotion) { -
- @for (paragraph of selectedParagraphs; track paragraph) { -
-

- @if (paragraph.lineFrom >= paragraph.lineTo - 1) { - {{ 'Line' | translate }} {{ paragraph.lineFrom }} - } - @if (paragraph.lineFrom < paragraph.lineTo - 1) { - - {{ 'Line' | translate }} {{ paragraph.lineFrom }} - {{ paragraph.lineTo - 1 }} - - } -

- - @if (isControlInvalid(paragraph.paragraphNo)) { -
- {{ 'This field is required.' | translate }} -
- } -
- } - @for (paragraph of brokenParagraphs; track paragraph) { -
- - {{ 'This paragraph does not exist in the main motion anymore:' | translate }} - -
-
- } -
-} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-paragraphbased-amendment/motion-paragraphbased-amendment.component.scss b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-paragraphbased-amendment/motion-paragraphbased-amendment.component.scss deleted file mode 100644 index c1aac0d443..0000000000 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-paragraphbased-amendment/motion-paragraphbased-amendment.component.scss +++ /dev/null @@ -1,4 +0,0 @@ -.alert-inconsistency { - color: red; - font-style: italic; -} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-paragraphbased-amendment/motion-paragraphbased-amendment.component.spec.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-paragraphbased-amendment/motion-paragraphbased-amendment.component.spec.ts deleted file mode 100644 index f66c6cb4ae..0000000000 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-paragraphbased-amendment/motion-paragraphbased-amendment.component.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { MotionParagraphbasedAmendmentComponent } from './motion-paragraphbased-amendment.component'; - -xdescribe(`MotionParagraphbasedAmendmentComponent`, () => { - let component: MotionParagraphbasedAmendmentComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [MotionParagraphbasedAmendmentComponent] - }).compileComponents(); - }); - - beforeEach(() => { - fixture = TestBed.createComponent(MotionParagraphbasedAmendmentComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it(`should create`, () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-paragraphbased-amendment/motion-paragraphbased-amendment.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-paragraphbased-amendment/motion-paragraphbased-amendment.component.ts deleted file mode 100644 index e7f6a7b826..0000000000 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-paragraphbased-amendment/motion-paragraphbased-amendment.component.ts +++ /dev/null @@ -1,168 +0,0 @@ -import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core'; -import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; -import { TranslateService } from '@ngx-translate/core'; -import { UnsafeHtml } from 'src/app/domain/definitions/key-types'; -import { ChangeRecoMode, LineNumberingMode } from 'src/app/domain/models/motions/motions.constants'; -import { LineRange } from 'src/app/site/pages/meetings/pages/motions/definitions'; -import { ViewUnifiedChange } from 'src/app/site/pages/meetings/pages/motions/modules/change-recommendations/view-models/view-unified-change'; - -import { DiffLinesInParagraph } from '../../../../definitions/index'; -import { ParagraphToChoose } from '../../../../services/common/motion-line-numbering.service/motion-line-numbering.service'; -import { BaseMotionDetailChildComponent } from '../../base/base-motion-detail-child.component'; - -interface ParagraphBasedAmendmentContent { - amendment_paragraphs: { [paragraph_number: number]: any }; - selected_paragraphs: ParagraphToChoose[]; - broken_paragraphs: string[]; -} - -@Component({ - selector: `os-motion-paragraphbased-amendment`, - templateUrl: `./motion-paragraphbased-amendment.component.html`, - styleUrls: [`./motion-paragraphbased-amendment.component.scss`], - changeDetection: ChangeDetectionStrategy.OnPush -}) -export class MotionParagraphbasedAmendmentComponent extends BaseMotionDetailChildComponent { - public readonly LineNumberingMode = LineNumberingMode; - public readonly ChangeRecoMode = ChangeRecoMode; - - @Input() - public changesForDiffMode: ViewUnifiedChange[] = []; - - @Input() - public highlightedLine!: number; - - @Input() - public isFinalEdit = false; - - @Output() - public createChangeRecommendation = new EventEmitter(); - - @Output() - public formChanged = new EventEmitter(); - - @Output() - public validStateChanged = new EventEmitter(); - - public showAmendmentContext = false; - - public selectedParagraphs: ParagraphToChoose[] = []; - - public brokenParagraphs: string[] = []; - - public contentForm: UntypedFormGroup | null = null; - - public amendmentErrorMessage: string | null = null; - - public get amendmentLines(): DiffLinesInParagraph[] | null { - return this.motion?.changedAmendmentLines; - } - - public constructor( - protected override translate: TranslateService, - private fb: UntypedFormBuilder, - private cd: ChangeDetectorRef - ) { - super(); - } - - /** - * This returns the plain HTML of a changed area in an amendment, including its context, - * for the purpose of piping it into . - * This component works with plain HTML, hence we are composing plain HTML here, too. - * - * @param {DiffLinesInParagraph} paragraph - * @returns {string} - * - * TODO: Seems to be directly duplicated in the slide - */ - public getAmendmentDiffTextWithContext(paragraph: DiffLinesInParagraph): UnsafeHtml { - return ( - `
${paragraph.textPre}
` + - `
${paragraph.text}
` + - `
${paragraph.textPost}
` - ); - } - - /** - * If `this.motion` is an amendment, this returns the list of all changed paragraphs. - * - * @returns {DiffLinesInParagraph[]} - */ - public getAmendmentParagraphs(): DiffLinesInParagraph[] { - try { - this.amendmentErrorMessage = null; - return this.motion?.getAmendmentParagraphLines(ChangeRecoMode.Changed, this.showAmendmentContext) || []; - } catch (e: any) { - this.amendmentErrorMessage = e.toString(); - return []; - } - } - - public getAmendmentParagraphLinesTitle(paragraph: DiffLinesInParagraph): string { - return this.motion?.getParagraphTitleByParagraph(paragraph) || ``; - } - - public isControlInvalid(paragraphNumber: number): boolean { - const control = this.contentForm!.get(paragraphNumber.toString())!; - return control.invalid && (control.dirty || control.touched); - } - - protected override onEnterEditMode(): void { - if (this.contentForm) { - this.contentForm = null; - } - const contentPatch = this.createForm(); - this.contentForm = this.fb.group(contentPatch.amendment_paragraphs); - this.selectedParagraphs = contentPatch.selected_paragraphs; - this.brokenParagraphs = contentPatch.broken_paragraphs; - this.propagateChanges(); - } - - private createForm(): ParagraphBasedAmendmentContent { - const contentPatch: ParagraphBasedAmendmentContent = { - selected_paragraphs: [], - amendment_paragraphs: {}, - broken_paragraphs: [] - }; - const leadMotion = this.motion.lead_motion; - // Hint: lineLength is sometimes not loaded yet when this form is initialized; - // This doesn't hurt as long as patchForm is called when editing mode is started, i.e., later. - if (leadMotion && this.lineLength) { - const paragraphsToChoose = this.motionLineNumbering.getParagraphsToChoose(leadMotion, this.lineLength); - - paragraphsToChoose.forEach((paragraph: ParagraphToChoose, paragraphNo: number): void => { - const amendmentParagraph = this.motion.amendment_paragraph_text(paragraphNo); - if (amendmentParagraph) { - contentPatch.selected_paragraphs.push(paragraph); - contentPatch.amendment_paragraphs[paragraphNo] = [amendmentParagraph, Validators.required]; - } - }); - // If the motion has been shortened after the amendment has been created, we will show the paragraphs - // of the amendment as read-only - for ( - let paragraphNo = paragraphsToChoose.length; - paragraphNo < this.motion.amendment_paragraph_numbers.length; - paragraphNo++ - ) { - if (this.motion.amendment_paragraph_text(paragraphNo) !== null) { - contentPatch.broken_paragraphs.push(this.motion.amendment_paragraph_text(paragraphNo)!); - } - } - } - return contentPatch; - } - - private propagateChanges(): void { - this.updateSubscription( - `contentForm`, - this.contentForm!.valueChanges.subscribe(value => { - if (value) { - this.formChanged.emit({ amendment_paragraphs: value }); - this.validStateChanged.emit(this.contentForm!.valid); - this.cd.markForCheck(); - } - }) - ); - } -} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/paragraph-based-amendment/paragraph-based-amendment.component.html b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/paragraph-based-amendment/paragraph-based-amendment.component.html deleted file mode 100644 index 7dcd9a2a56..0000000000 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/paragraph-based-amendment/paragraph-based-amendment.component.html +++ /dev/null @@ -1,148 +0,0 @@ -@if (!editMotion) { -
- - @if (amendmentLines) { -
- @if (amendmentLines.length === 0) { -
- @if (motion.lead_motion) { - {{ 'No changes at the text.' | translate }} - } - @if (!motion.lead_motion) { - {{ 'The parent motion is not available.' | translate }} - } -
- } - @if (amendmentErrorMessage) { -
- -
- } - @if (motion.lead_motion && !isFinalEdit) { - @if (changeRecoMode === ChangeRecoMode.Diff) { - - } - @for (paragraph of getAmendmentParagraphs(); track $index) { - - @if (changeRecoMode === ChangeRecoMode.Diff) { - - } - } - } - @if (changeRecoMode === ChangeRecoMode.Diff && (!motion.lead_motion || isFinalEdit)) { - - } -
- } - @if (!amendmentLines) { -
- - {{ 'There is an error with this amendment. Please edit it manually.' | translate }} - -
- } -
- - @if (changeRecoMode === ChangeRecoMode.Original || changeRecoMode === ChangeRecoMode.Changed) { -
- @if (motion && motion.isParagraphBasedAmendment() && motion.lead_motion) { - - {{ 'Show entire motion text' | translate }} - - } -
- } -} - - -@if (editMotion && contentForm) { -
- @for (paragraph of selectedParagraphs; track paragraph) { -
-

- @if (paragraph.lineFrom >= paragraph.lineTo - 1) { - {{ 'Line' | translate }} {{ paragraph.lineFrom }} - } - @if (paragraph.lineFrom < paragraph.lineTo - 1) { - - {{ 'Line' | translate }} {{ paragraph.lineFrom }} - {{ paragraph.lineTo - 1 }} - - } -

- - @if (isControlInvalid(paragraph.paragraphNo)) { -
- {{ 'This field is required.' | translate }} -
- } -
- } - @for (paragraph of brokenParagraphs; track paragraph) { -
- - {{ 'This paragraph does not exist in the main motion anymore:' | translate }} - -
-
- } -
-} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/motion-detail-routing.module.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/motion-detail-routing.module.ts index 82df86e0c8..d7a45cd08c 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/motion-detail-routing.module.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/motion-detail-routing.module.ts @@ -2,9 +2,7 @@ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; import { Permission } from 'src/app/domain/definitions/permission'; -import { AmendmentCreateWizardComponent } from './components/amendment-create-wizard/amendment-create-wizard.component'; import { MotionDetailComponent } from './components/motion-detail/motion-detail.component'; -import { MotionDetailViewComponent } from './components/motion-detail-view/motion-detail-view.component'; const routes: Routes = [ { @@ -12,38 +10,13 @@ const routes: Routes = [ component: MotionDetailComponent, children: [ { - path: `new`, - component: MotionDetailViewComponent, + path: ``, + loadChildren: () => import(`./pages/motion-form/motion-form.module`).then(m => m.MotionFormModule), data: { meetingPermissions: [Permission.motionCanCreate] } }, - { - path: `edit`, - data: { meetingPermissions: [Permission.motionCanManage] }, - children: [ - { - path: `:id`, - component: MotionDetailViewComponent - } - ] - }, - { - path: `new-amendment`, - component: MotionDetailViewComponent, - data: { meetingPermissions: [Permission.motionCanCreateAmendments] } - }, { path: `:id`, - children: [ - { - path: ``, - pathMatch: `full`, - component: MotionDetailViewComponent - }, - { - path: `create-amendment`, - component: AmendmentCreateWizardComponent - } - ] + loadChildren: () => import(`./pages/motion-view/motion-view.module`).then(m => m.MotionViewModule) } ] } diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/motion-detail.module.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/motion-detail.module.ts index d458eee21a..251eaa2718 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/motion-detail.module.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/motion-detail.module.ts @@ -13,9 +13,8 @@ import { MatInputModule } from '@angular/material/input'; import { MatListModule } from '@angular/material/list'; import { MatMenuModule } from '@angular/material/menu'; import { MatProgressBarModule } from '@angular/material/progress-bar'; -import { MatRadioModule } from '@angular/material/radio'; +import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { MatSelectModule } from '@angular/material/select'; -import { MatStepperModule } from '@angular/material/stepper'; import { MatTooltipModule } from '@angular/material/tooltip'; import { RouterModule } from '@angular/router'; import { NgxMaterialTimepickerModule } from 'ngx-material-timepicker'; @@ -43,38 +42,35 @@ import { MotionForwardDialogModule } from '../../components/motion-forward-dialo import { MotionPollModule } from '../../modules/motion-poll'; import { MotionsExportModule } from '../../services/export/motions-export.module'; import { MotionsListServiceModule } from '../../services/list/motions-list-service.module'; -import { AmendmentCreateWizardComponent } from './components/amendment-create-wizard/amendment-create-wizard.component'; -import { MotionAddPollButtonComponent } from './components/motion-add-poll-button/motion-add-poll-button.component'; -import { MotionCommentComponent } from './components/motion-comment/motion-comment.component'; -import { MotionCommentsComponent } from './components/motion-comments/motion-comments.component'; -import { MotionContentComponent } from './components/motion-content/motion-content.component'; import { MotionDetailComponent } from './components/motion-detail/motion-detail.component'; -import { MotionDetailDiffComponent } from './components/motion-detail-diff/motion-detail-diff.component'; -import { MotionDetailDiffSummaryComponent } from './components/motion-detail-diff-summary/motion-detail-diff-summary.component'; -import { MotionDetailOriginalChangeRecommendationsComponent } from './components/motion-detail-original-change-recommendations/motion-detail-original-change-recommendations.component'; -import { MotionDetailViewComponent } from './components/motion-detail-view/motion-detail-view.component'; -import { MotionExtensionFieldComponent } from './components/motion-extension-field/motion-extension-field.component'; -import { MotionFinalVersionComponent } from './components/motion-final-version/motion-final-version.component'; -import { MotionHighlightFormComponent } from './components/motion-highlight-form/motion-highlight-form.component'; -import { MotionManageMotionMeetingUsersComponent } from './components/motion-manage-motion-meeting-users/motion-manage-motion-meeting-users.component'; -import { MotionManagePollsComponent } from './components/motion-manage-polls/motion-manage-polls.component'; -import { MotionManageTimestampComponent } from './components/motion-manage-timestamp/motion-manage-timestamp.component'; -import { MotionManageTitleComponent } from './components/motion-manage-title/motion-manage-title.component'; -import { MotionMetaDataComponent } from './components/motion-meta-data/motion-meta-data.component'; -import { MotionParagraphbasedAmendmentComponent } from './components/motion-paragraphbased-amendment/motion-paragraphbased-amendment.component'; -import { MotionPersonalNoteComponent } from './components/motion-personal-note/motion-personal-note.component'; -import { ParagraphBasedAmendmentComponent } from './components/paragraph-based-amendment/paragraph-based-amendment.component'; import { MotionDetailDirectivesModule } from './modules/directives/motion-detail-directives.module'; import { MotionChangeRecommendationDialogModule } from './modules/motion-change-recommendation-dialog/motion-change-recommendation-dialog.module'; import { MotionDetailRoutingModule } from './motion-detail-routing.module'; +import { MotionAddPollButtonComponent } from './pages/motion-view/components/motion-add-poll-button/motion-add-poll-button.component'; +import { MotionCommentComponent } from './pages/motion-view/components/motion-comment/motion-comment.component'; +import { MotionCommentsComponent } from './pages/motion-view/components/motion-comments/motion-comments.component'; +import { MotionContentComponent } from './pages/motion-view/components/motion-content/motion-content.component'; +import { MotionDetailDiffComponent } from './pages/motion-view/components/motion-detail-diff/motion-detail-diff.component'; +import { MotionDetailDiffSummaryComponent } from './pages/motion-view/components/motion-detail-diff-summary/motion-detail-diff-summary.component'; +import { MotionDetailOriginalChangeRecommendationsComponent } from './pages/motion-view/components/motion-detail-original-change-recommendations/motion-detail-original-change-recommendations.component'; +import { MotionExtensionFieldComponent } from './pages/motion-view/components/motion-extension-field/motion-extension-field.component'; +import { MotionFinalVersionComponent } from './pages/motion-view/components/motion-final-version/motion-final-version.component'; +import { MotionHighlightFormComponent } from './pages/motion-view/components/motion-highlight-form/motion-highlight-form.component'; +import { MotionManageMotionMeetingUsersComponent } from './pages/motion-view/components/motion-manage-motion-meeting-users/motion-manage-motion-meeting-users.component'; +import { MotionManagePollsComponent } from './pages/motion-view/components/motion-manage-polls/motion-manage-polls.component'; +import { MotionManageTimestampComponent } from './pages/motion-view/components/motion-manage-timestamp/motion-manage-timestamp.component'; +import { MotionManageTitleComponent } from './pages/motion-view/components/motion-manage-title/motion-manage-title.component'; +import { MotionMetaDataComponent } from './pages/motion-view/components/motion-meta-data/motion-meta-data.component'; +import { MotionPersonalNoteComponent } from './pages/motion-view/components/motion-personal-note/motion-personal-note.component'; +import { MotionViewComponent } from './pages/motion-view/components/motion-view/motion-view.component'; +import { ParagraphBasedAmendmentComponent } from './pages/motion-view/components/paragraph-based-amendment/paragraph-based-amendment.component'; import { MotionDetailServiceModule } from './services/motion-detail-service.module'; @NgModule({ declarations: [ MotionAddPollButtonComponent, MotionDetailComponent, - MotionDetailViewComponent, - AmendmentCreateWizardComponent, + MotionViewComponent, MotionContentComponent, MotionMetaDataComponent, MotionManageTitleComponent, @@ -82,7 +78,6 @@ import { MotionDetailServiceModule } from './services/motion-detail-service.modu MotionHighlightFormComponent, MotionExtensionFieldComponent, MotionManageMotionMeetingUsersComponent, - MotionParagraphbasedAmendmentComponent, MotionDetailDiffComponent, MotionDetailDiffSummaryComponent, MotionDetailOriginalChangeRecommendationsComponent, @@ -142,10 +137,7 @@ import { MotionDetailServiceModule } from './services/motion-detail-service.modu ScrollingModule, ChipSelectModule, MatBadgeModule, - - // Amendment create wizard - MatStepperModule, - MatRadioModule + MatProgressSpinnerModule ] }) export class MotionDetailModule {} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/amendment-create-wizard/amendment-create-wizard.component.html b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/amendment-create-wizard/amendment-create-wizard.component.html similarity index 98% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/amendment-create-wizard/amendment-create-wizard.component.html rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/amendment-create-wizard/amendment-create-wizard.component.html index 7b44c3124a..1e3495d74f 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/amendment-create-wizard/amendment-create-wizard.component.html +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/amendment-create-wizard/amendment-create-wizard.component.html @@ -100,8 +100,7 @@

@if (paragraph.lineFrom >= paragraph.lineTo) { {{ 'Line' | translate }} {{ paragraph.lineFrom }}: - } - @if (paragraph.lineFrom < paragraph.lineTo) { + } @else { {{ 'Line' | translate }} {{ paragraph.lineFrom }} - {{ paragraph.lineTo }}: diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/amendment-create-wizard/amendment-create-wizard.component.scss b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/amendment-create-wizard/amendment-create-wizard.component.scss similarity index 100% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/amendment-create-wizard/amendment-create-wizard.component.scss rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/amendment-create-wizard/amendment-create-wizard.component.scss diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/amendment-create-wizard/amendment-create-wizard.component.spec.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/amendment-create-wizard/amendment-create-wizard.component.spec.ts similarity index 100% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/amendment-create-wizard/amendment-create-wizard.component.spec.ts rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/amendment-create-wizard/amendment-create-wizard.component.spec.ts diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/amendment-create-wizard/amendment-create-wizard.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/amendment-create-wizard/amendment-create-wizard.component.ts similarity index 96% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/amendment-create-wizard/amendment-create-wizard.component.ts rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/amendment-create-wizard/amendment-create-wizard.component.ts index b1e2db4d92..7d14f84fff 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/amendment-create-wizard/amendment-create-wizard.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/amendment-create-wizard/amendment-create-wizard.component.ts @@ -10,13 +10,13 @@ import { ViewMotion } from 'src/app/site/pages/meetings/pages/motions'; import { OperatorService } from 'src/app/site/services/operator.service'; import { PromptService } from 'src/app/ui/modules/prompt-dialog'; -import { AmendmentParagraphs } from '../../../../../../../../../domain/models/motions/motion'; -import { AmendmentControllerService } from '../../../../services/common/amendment-controller.service'; -import { MotionControllerService } from '../../../../services/common/motion-controller.service/motion-controller.service'; +import { AmendmentParagraphs } from '../../../../../../../../../../../domain/models/motions/motion'; +import { AmendmentControllerService } from '../../../../../../services/common/amendment-controller.service'; +import { MotionControllerService } from '../../../../../../services/common/motion-controller.service/motion-controller.service'; import { MotionLineNumberingService, ParagraphToChoose -} from '../../../../services/common/motion-line-numbering.service/motion-line-numbering.service'; +} from '../../../../../../services/common/motion-line-numbering.service/motion-line-numbering.service'; @Component({ selector: `os-amendment-create-wizard`, diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.html b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.html new file mode 100644 index 0000000000..810de57fc4 --- /dev/null +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.html @@ -0,0 +1,218 @@ + + @if (hasLoaded | async) { + + +
+ @if (motion && !newMotion && !vp.isMobile) { +

{{ 'Motion' | translate }}

+ } @else if (newMotion && !amendmentEdit) { +

{{ 'New motion' | translate }}

+ } @else if (amendmentEdit) { +

{{ 'New amendment' | translate }}

+ } +
+
+ @if (motion) { +
+
+ + +
+ + @if (newMotion) { +
+ @if (canChangeMetadata) { + + {{ 'Submitters' | translate }} + + + add + {{ 'Create user' | translate }} + + + + } +
+ } + +
+ + @if (!newMotion && canChangeMetadata) { +
+ + {{ 'Number' | translate }} + + {{ 'already exists' | translate }} + +
+ } + + +
+ + {{ 'Title' | translate }} + + {{ 'The title is required' | translate }} + +
+
+ + + @if (!isParagraphBasedAmendment) { + @if (preamble) { +

+ {{ preamble }} +

+ } + + @if ( + contentForm.get('text')?.invalid && + (contentForm.get('text')?.dirty || contentForm.get('text')?.touched) + ) { +
+ {{ 'This field is required.' | translate }} +
+ } + } @else { + + } + + +
+

+ {{ 'Reason' | translate }} +   + @if (reasonRequired) { + * + } +

+ + + @if ( + reasonRequired && + contentForm.get('reason')?.invalid && + (contentForm.get('reason')?.dirty || contentForm.get('reason')?.touched) + ) { +
+ {{ 'This field is required.' | translate }} +
+ } +
+ +
+ + @if (newMotion && hasCategories) { +
+ + {{ 'Category' | translate }} + + +
+ } + + +
+
+ +
+
+ + @if (canChangeMetadata) { + @if (newMotion) { +
+ +
+ } + + + @if (minSupporters) { +
+ + {{ 'Supporters' | translate }} + + + add + {{ 'Create user' | translate }} + + + +
+ } + + +
+ + {{ 'Workflow' | translate }} + + +
+ } +
+
+
+
+
+
+ } + } +
diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.scss b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.scss new file mode 100644 index 0000000000..c93979e311 --- /dev/null +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.scss @@ -0,0 +1,23 @@ +span { + margin: 0; +} + +.extra-data { + margin-top: 18px; +} + +.motion-content { + .form-id-title { + display: flex; + + .form-number { + flex: 0 0 95px; + max-width: 95px; + margin-right: 1em; + } + + .form-title { + flex: 1 1 auto; + } + } +} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.spec.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.spec.ts new file mode 100644 index 0000000000..8c2d79b66e --- /dev/null +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.spec.ts @@ -0,0 +1,24 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { MotionFormComponent } from './motion-form.component'; + +xdescribe(`MotionDetailFormComponent`, () => { + let component: MotionFormComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [MotionFormComponent] + }).compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(MotionFormComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it(`should create`, () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.ts new file mode 100644 index 0000000000..0ef424e721 --- /dev/null +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/motion-form/motion-form.component.ts @@ -0,0 +1,590 @@ +import { + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + HostListener, + OnInit, + ViewEncapsulation +} from '@angular/core'; +import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; +import { ActivatedRoute } from '@angular/router'; +import { TranslateService } from '@ngx-translate/core'; +import { + auditTime, + BehaviorSubject, + distinctUntilChanged, + filter, + firstValueFrom, + map, + skip, + startWith, + Subscription, + tap +} from 'rxjs'; +import { Id, UnsafeHtml } from 'src/app/domain/definitions/key-types'; +import { HasSequentialNumber } from 'src/app/domain/interfaces'; +import { Mediafile } from 'src/app/domain/models/mediafiles/mediafile'; +import { Motion } from 'src/app/domain/models/motions/motion'; +import { RawUser } from 'src/app/gateways/repositories/users'; +import { deepCopy } from 'src/app/infrastructure/utils/transform-functions'; +import { isUniqueAmong } from 'src/app/infrastructure/utils/validators/is-unique-among'; +import { BaseMeetingComponent } from 'src/app/site/pages/meetings/base/base-meeting.component'; +import { ViewMotion } from 'src/app/site/pages/meetings/pages/motions'; +import { ParticipantControllerService } from 'src/app/site/pages/meetings/pages/participants/services/common/participant-controller.service'; +import { ViewPortService } from 'src/app/site/services/view-port.service'; +import { PromptService } from 'src/app/ui/modules/prompt-dialog'; + +import { ParticipantListSortService } from '../../../../../../../participants/pages/participant-list/services/participant-list-sort/participant-list-sort.service'; +import { getParticipantMinimalSubscriptionConfig } from '../../../../../../../participants/participants.subscription'; +import { MotionCategoryControllerService } from '../../../../../../modules/categories/services'; +import { MotionWorkflowControllerService } from '../../../../../../modules/workflows/services'; +import { MOTION_DETAIL_SUBSCRIPTION } from '../../../../../../motions.subscription'; +import { AmendmentControllerService } from '../../../../../../services/common/amendment-controller.service/amendment-controller.service'; +import { MotionControllerService } from '../../../../../../services/common/motion-controller.service/motion-controller.service'; +import { MotionPermissionService } from '../../../../../../services/common/motion-permission.service/motion-permission.service'; + +/** + * fields that are required for the motion form but are not part of any motion payload + */ +interface MotionFormFields { + // from update payload + modified_final_version: string; + // apparently from no payload + parent_id: string; + + // For agenda creations + agenda_parent_id: Id; + + // Motion + workflow_id: Id; +} + +type MotionFormControlsConfig = { [key in keyof MotionFormFields]?: any } & { [key in keyof Motion]?: any } & { + supporter_ids?: any; + attachment_mediafile_ids?: any; +}; + +@Component({ + selector: `os-motion-form`, + templateUrl: `./motion-form.component.html`, + styleUrls: [`./motion-form.component.scss`], + changeDetection: ChangeDetectionStrategy.OnPush, + encapsulation: ViewEncapsulation.None +}) +export class MotionFormComponent extends BaseMeetingComponent implements OnInit { + public readonly collection = ViewMotion.COLLECTION; + + /** + * Determine if the motion is a new (unsent) amendment to another motion + */ + public amendmentEdit = false; + + /** + * Determine if the motion is new + */ + public newMotion = false; + + /** + * Sets the motions, e.g. via an autoupdate. Reload important things here: + * - Reload the recommendation. Not changed with autoupdates, but if the motion is loaded this needs to run. + */ + public set motion(motion: ViewMotion) { + this._motion = motion; + } + + public get motion(): ViewMotion { + return this._motion; + } + + public get canChangeMetadata(): boolean { + return this.perms.isAllowed(`change_metadata`, this.motion); + } + + public get isParagraphBasedAmendment(): boolean { + return this.isExisting && this.motion.isParagraphBasedAmendment(); + } + + public get isExisting(): boolean { + return this.motion instanceof ViewMotion; + } + + public get hasCategories(): boolean { + return this.categoryRepo.getViewModelList().length > 0; + } + + /** + * Constant to identify the notification-message. + */ + public NOTIFICATION_EDIT_MOTION = `notifyEditMotion`; + + public contentForm!: UntypedFormGroup; + + public set canSaveParagraphBasedAmendment(can: boolean) { + this._canSaveParagraphBasedAmendment = can; + this.propagateChanges(); + } + + public set paragraphBasedAmendmentContent(content: { + amendment_paragraphs: { [paragraph_number: number]: UnsafeHtml }; + }) { + this._paragraphBasedAmendmentContent = content; + this.propagateChanges(); + } + + public participantSubscriptionConfig = getParticipantMinimalSubscriptionConfig(this.activeMeetingId); + + public preamble = ``; + public reasonRequired = false; + public minSupporters = 0; + + public temporaryMotion: any = {}; + + public canSave = false; + + public hasLoaded = new BehaviorSubject(false); + + private titleFieldUpdateSubscription: Subscription; + + private _canSaveParagraphBasedAmendment = true; + private _paragraphBasedAmendmentContent: any = {}; + private _motionContent: any = {}; + private _initialState: any = {}; + + private _editSubscriptions: Subscription[] = []; + + private _motionNumbersSubject = new BehaviorSubject([]); + + private _motion: ViewMotion | null = null; + private _motionId: Id | null = null; + private _parentId: Id | null = null; + + public constructor( + protected override translate: TranslateService, + public vp: ViewPortService, + public participantRepo: ParticipantControllerService, + public participantSortService: ParticipantListSortService, + public categoryRepo: MotionCategoryControllerService, + public workflowRepo: MotionWorkflowControllerService, + private fb: UntypedFormBuilder, + private route: ActivatedRoute, + private motionController: MotionControllerService, + private amendmentRepo: AmendmentControllerService, + private perms: MotionPermissionService, + private prompt: PromptService, + private cd: ChangeDetectorRef + ) { + super(); + + this.subscriptions.push( + this.meetingSettingsService.get(`motions_preamble`).subscribe(value => (this.preamble = value)), + this.meetingSettingsService + .get(`motions_reason_required`) + .subscribe(value => (this.reasonRequired = value)), + this.meetingSettingsService + .get(`motions_supporters_min_amount`) + .subscribe(value => (this.minSupporters = value)) + ); + } + + /** + * Init. + * Sets all required subjects and fills in the required information + */ + public ngOnInit(): void { + this.subscriptions.push( + this.activeMeetingIdService.meetingIdObservable.subscribe(() => { + this.hasLoaded.next(false); + }), + this.vp.isMobileSubject.subscribe(() => { + this.cd.markForCheck(); + }) + ); + } + + /** + * In the ui are no distinct buttons for update or create. This is decided here. + */ + public saveMotion(event?: any): () => Promise { + return async () => { + const update = event || this.temporaryMotion; + if (this.newMotion) { + await this.createMotion(update); + } else { + await this.updateMotion(update, this.motion); + this.leaveEditMotion(); + } + }; + } + + public leaveEditMotion(motion: HasSequentialNumber | null = this.motion): void { + if (motion?.sequential_number) { + this.router.navigate([this.activeMeetingId, `motions`, motion.sequential_number]); + } else { + this.router.navigate([this.activeMeetingId, `motions`]); + } + } + + /** + * Function to prevent automatically closing the window/tab, + * if the user is editing a motion. + * + * @param event The event object from 'onUnbeforeUnload'. + */ + @HostListener(`window:beforeunload`, [`$event`]) + public stopClosing(event: Event): void { + if (Object.keys(this._motionContent).length) { + event.returnValue = false; + } + } + + public async onIdFound(id: Id | null): Promise { + this._motionId = id; + if (id) { + await this.loadMotionById(); + } else { + await this.initNewMotion(); + } + + this.patchForm(); + this.initContentFormSubscription(); + this.propagateChanges(); + this.attachMotionNumbersSubject(); + + this.hasLoaded.next(true); + } + + /** + * Click handler for attachments + * + * @param attachment the selected file + */ + public onClickAttachment(attachment: Mediafile): void { + window.open(attachment.url); + } + + /** + * Handler for upload errors + * + * @param error the error message passed by the upload component + */ + public showUploadError(error: any): void { + this.raiseError(error); + } + + public async createNewSubmitter(username: string): Promise { + const newUserObj = await this.createNewUser(username); + this.addNewUserToFormCtrl(newUserObj, `submitter_ids`); + } + + public async createNewSupporter(username: string): Promise { + const newUserObj = await this.createNewUser(username); + this.addNewUserToFormCtrl(newUserObj, `supporters_id`); + } + + /** + * Creates a motion. Calls the "patchValues" function in the MotionObject + */ + public async createMotion(newMotionValues: Partial): Promise { + try { + let response: HasSequentialNumber; + if (this._parentId) { + response = await this.amendmentRepo.createTextBased({ + ...newMotionValues, + lead_motion_id: this._parentId + }); + } else { + response = (await this.motionController.create(newMotionValues))[0]; + } + this.leaveEditMotion(response); + } catch (e) { + this.raiseError(e); + } + } + + /** + * Async load the values of the motion in the Form. + */ + protected patchForm(): void { + if (!this.contentForm) { + this.contentForm = this.createForm(); + } + + const contentPatch: { [key: string]: any } = {}; + Object.keys(this.contentForm.controls).forEach(ctrl => { + if (this.isExisting || this.motion[ctrl]) { + contentPatch[ctrl] = this.motion[ctrl]; + } + }); + + if (this.contentForm.controls[`attachment_mediafile_ids`]) { + contentPatch[`attachment_mediafile_ids`] = this.motion.attachment_meeting_mediafiles?.map( + file => file.mediafile_id + ); + } + + if (this.isParagraphBasedAmendment) { + this.contentForm.get(`text`)?.clearValidators(); // manually adjust validators + } + + if (this.isExisting) { + this._initialState = deepCopy(contentPatch); + } + this.contentForm.patchValue(contentPatch); + + if (this.amendmentEdit && !this.titleFieldUpdateSubscription) { + const parentId = Number(this.route.snapshot.queryParams[`parent`]); + if (parentId && !Number.isNaN(parentId)) { + this.titleFieldUpdateSubscription = this.motionController + .getViewModelObservable(parentId) + .pipe( + map(parent => { + return { number: parent?.number, text: parent?.text }; + }), + distinctUntilChanged((p, c) => p.text === c.text), + skip(1) + ) + .subscribe(value => { + this.prompt + .open( + this.translate.instant(`Parent motion text changed`), + this.translate.instant( + `Do you want to update the amendment text? Your changes will be lost.` + ) + ) + .then(choice => { + if (choice) { + this.contentForm.patchValue({ text: value.text }); + } + }); + }); + this.subscriptions.push(this.titleFieldUpdateSubscription); + } + } + } + + private async initNewMotion(): Promise { + // new motion + super.setTitle(`New motion`); + this.newMotion = true; + if (this.route.snapshot.queryParams[`parent`]) { + await this.initializeAmendment(); + } else { + this.motion = {} as any; + } + + this.cd.markForCheck(); + } + + private async loadMotionById(motionId: Id | null = this._motionId): Promise { + await this.modelRequestService.waitSubscriptionReady(MOTION_DETAIL_SUBSCRIPTION); + const motion = await firstValueFrom(this.motionController.getViewModelObservable(motionId)); + if (motion) { + const title = motion.getTitle(); + super.setTitle(title); + this.motion = motion; + + this.newMotion = false; + this.showMotionEditConflictWarningIfNecessary(); + } + + this.cd.markForCheck(); + + this.subscriptions.push( + this.motionController + .getViewModelObservable(motionId) + .pipe( + tap(motion => { + if (this.contentForm) { + for (const ctrl of Object.keys(this.contentForm.controls)) { + if (this.contentForm.get(ctrl).pristine) { + this.contentForm.get(ctrl).setValue(motion[ctrl]); + } + } + } + }), + distinctUntilChanged((_, c) => { + for (const ctrl of Object.keys(this.contentForm.controls)) { + if (JSON.stringify(c[ctrl]) !== JSON.stringify(this.contentForm.get(ctrl).value)) { + return false; + } + } + + return true; + }), + auditTime(2000), + skip(1) + ) + .subscribe(motion => { + if (motion) { + const title = motion.getTitle(); + super.setTitle(title); + this.motion = motion; + this.prompt + .open( + this.translate.instant(`Motion changed`), + this.translate.instant(`Discard changes and update form?`) + ) + .then(choice => { + if (choice) { + this.patchForm(); + } + }); + } + }) + ); + } + + private async updateMotion(newMotionValues: any, motion: ViewMotion): Promise { + try { + await this.motionController.update(newMotionValues, motion).resolve(); + } catch (e) { + this.raiseError(e); + } + } + + private async ensureParentIsAvailable(parentId: Id): Promise { + let motion: ViewMotion = this.motionController.getViewModel(parentId); + if (!motion || motion.text === undefined) { + motion = await firstValueFrom( + this.motionController + .getViewModelObservable(parentId) + .pipe( + filter( + motion => + !!motion?.id && + (motion.text !== undefined || + this.meetingSettingsService.instant(`motions_amendments_text_mode`) !== `fulltext`) + ) + ) + ); + } + + return motion; + } + + private async initializeAmendment(): Promise { + const motion: any = {}; + this._parentId = +this.route.snapshot.queryParams[`parent`] || null; + this.amendmentEdit = true; + const parentMotion = await this.ensureParentIsAvailable(this._parentId!); + motion.lead_motion_id = this._parentId; + if (parentMotion) { + const defaultTitle = `${this.translate.instant(`Amendment to`)} ${parentMotion.numberOrTitle}`; + motion.title = defaultTitle; + motion.category_id = parentMotion.category_id; + motion.workflow_id = +this.meetingSettingsService.instant(`motions_default_amendment_workflow_id`); + const amendmentTextMode = this.meetingSettingsService.instant(`motions_amendments_text_mode`); + if (amendmentTextMode === `fulltext`) { + motion.text = parentMotion.text; + } + this.motion = motion; + } else { + this.motion = {} as any; + } + } + + private initContentFormSubscription(): void { + for (const subscription of this._editSubscriptions) { + subscription.unsubscribe(); + } + this._editSubscriptions = []; + for (const controlName of Object.keys(this.contentForm.controls)) { + const subscription = this.contentForm + .get(controlName)! + .valueChanges.pipe(startWith(this.contentForm.get(controlName).getRawValue())) + .subscribe(value => { + if (JSON.stringify(value) !== JSON.stringify(this._initialState[controlName])) { + this._motionContent[controlName] = value; + } else { + delete this._motionContent[controlName]; + } + this.propagateChanges(); + }); + this._editSubscriptions.push(subscription); + this.subscriptions.push(subscription); + } + } + + private attachMotionNumbersSubject(): void { + this.subscriptions.push( + this.motionController + .getViewModelListObservable() + .pipe( + map(motions => + motions + .filter( + motion => + motion.number !== this.motion?.number && + (!motion.id || motion.id !== this.motion?.id) + ) + .map(motion => motion.number) + ) + ) + .subscribe(this._motionNumbersSubject) + ); + } + + private showMotionEditConflictWarningIfNecessary(): void { + if (this.motion.amendments?.filter(amend => amend.isParagraphBasedAmendment()).length > 0) { + const msg = this.translate.instant( + `Warning: Amendments exist for this motion. Editing this text will likely impact them negatively. Particularily, amendments might become unusable if the paragraph they affect is deleted.` + ); + this.raiseWarning(msg); + } + } + + private propagateChanges(): void { + this.canSave = this.contentForm.valid && this._canSaveParagraphBasedAmendment; + this.temporaryMotion = { ...this._motionContent, ...this._paragraphBasedAmendmentContent }; + } + + private addNewUserToFormCtrl(newUserObj: RawUser, controlName: string): void { + const control = this.contentForm.get(controlName)!; + let currentSubmitters: number[] = control.value; + if (currentSubmitters?.length) { + currentSubmitters.push(newUserObj.id); + } else { + currentSubmitters = [newUserObj.id]; + } + control.setValue(currentSubmitters); + } + + private createNewUser(username: string): Promise { + return this.participantRepo.createFromString(username); + } + + /** + * Creates the forms for the Motion and the MotionVersion + */ + private createForm(): UntypedFormGroup { + const motionFormControls: MotionFormControlsConfig = { + title: [``, Validators.required], + text: [``, this.isParagraphBasedAmendment ? null : Validators.required], + reason: [``, this.meetingSettingsService.instant(`motions_reason_required`) ? Validators.required : null], + category_id: [], + attachment_mediafile_ids: [[]], + agenda_parent_id: [], + submitter_ids: [[]], + supporter_ids: [[]], + workflow_id: [ + +this.meetingSettingsService.instant( + this.amendmentEdit ? `motions_default_amendment_workflow_id` : `motions_default_workflow_id` + ) + ], + tag_ids: [[]], + block_id: [], + parent_id: [], + modified_final_version: [``], + ...(this.canChangeMetadata && { + number: [ + ``, + isUniqueAmong(this._motionNumbersSubject, (a, b) => a === b, [``, null, undefined]) + ], + agenda_create: [``], + agenda_type: [``] + }) + }; + + return this.fb.group(motionFormControls); + } +} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/paragraph-based-amendment-editor/paragraph-based-amendment-editor.component.html b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/paragraph-based-amendment-editor/paragraph-based-amendment-editor.component.html new file mode 100644 index 0000000000..7a54375382 --- /dev/null +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/paragraph-based-amendment-editor/paragraph-based-amendment-editor.component.html @@ -0,0 +1,31 @@ +@if (contentForm) { +
+ @for (paragraph of selectedParagraphs; track paragraph.paragraphNo) { +
+

+ @if (paragraph.lineFrom >= paragraph.lineTo - 1) { + {{ 'Line' | translate }} {{ paragraph.lineFrom }} + } @else { + + {{ 'Line' | translate }} {{ paragraph.lineFrom }} - {{ paragraph.lineTo - 1 }} + + } +

+ + @if (isControlInvalid(paragraph.paragraphNo)) { +
+ {{ 'This field is required.' | translate }} +
+ } +
+ } + @for (paragraph of brokenParagraphs; track paragraph) { +
+ + {{ 'This paragraph does not exist in the main motion anymore:' | translate }} + +
+
+ } +
+} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/paragraph-based-amendment/paragraph-based-amendment.component.scss b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/paragraph-based-amendment-editor/paragraph-based-amendment-editor.component.scss similarity index 100% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/paragraph-based-amendment/paragraph-based-amendment.component.scss rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/paragraph-based-amendment-editor/paragraph-based-amendment-editor.component.scss diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/paragraph-based-amendment-editor/paragraph-based-amendment-editor.component.spec.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/paragraph-based-amendment-editor/paragraph-based-amendment-editor.component.spec.ts new file mode 100644 index 0000000000..7e43e0715a --- /dev/null +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/paragraph-based-amendment-editor/paragraph-based-amendment-editor.component.spec.ts @@ -0,0 +1,24 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ParagraphBasedAmendmentEditorComponent } from './paragraph-based-amendment-editor.component'; + +xdescribe(`ParagraphBasedAmendmentEditorComponent`, () => { + let component: ParagraphBasedAmendmentEditorComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ParagraphBasedAmendmentEditorComponent] + }).compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(ParagraphBasedAmendmentEditorComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it(`should create`, () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/paragraph-based-amendment/paragraph-based-amendment.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/paragraph-based-amendment-editor/paragraph-based-amendment-editor.component.ts similarity index 50% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/paragraph-based-amendment/paragraph-based-amendment.component.ts rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/paragraph-based-amendment-editor/paragraph-based-amendment-editor.component.ts index 779e099156..fee6fc18be 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/paragraph-based-amendment/paragraph-based-amendment.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/components/paragraph-based-amendment-editor/paragraph-based-amendment-editor.component.ts @@ -1,23 +1,9 @@ -import { - ChangeDetectionStrategy, - ChangeDetectorRef, - Component, - ElementRef, - EventEmitter, - Input, - Output -} from '@angular/core'; +import { ChangeDetectionStrategy, Component, EventEmitter, Output } from '@angular/core'; import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; import { TranslateService } from '@ngx-translate/core'; -import { UnsafeHtml } from 'src/app/domain/definitions/key-types'; -import { ChangeRecoMode, LineNumberingMode } from 'src/app/domain/models/motions/motions.constants'; -import { LineRange } from 'src/app/site/pages/meetings/pages/motions/definitions'; -import { ViewUnifiedChange } from 'src/app/site/pages/meetings/pages/motions/modules/change-recommendations/view-models/view-unified-change'; -import { DiffLinesInParagraph } from '../../../../definitions/index'; -import { ParagraphToChoose } from '../../../../services/common/motion-line-numbering.service/motion-line-numbering.service'; -import { ViewMotion } from '../../../../view-models'; -import { BaseMotionDetailChildComponent } from '../../base/base-motion-detail-child.component'; +import { ParagraphToChoose } from '../../../../../../services/common/motion-line-numbering.service/motion-line-numbering.service'; +import { BaseMotionDetailChildComponent } from '../../../../base/base-motion-detail-child.component'; interface ParagraphBasedAmendmentContent { amendment_paragraphs: { [paragraph_number: number]: any }; @@ -28,103 +14,32 @@ interface ParagraphBasedAmendmentContent { const CONTENT_FORM_SUBSCRIPTION_NAME = `contentForm`; @Component({ - selector: `os-paragraph-based-amendment`, - templateUrl: `./paragraph-based-amendment.component.html`, - styleUrls: [`./paragraph-based-amendment.component.scss`], + selector: `os-paragraph-based-amendment-editor`, + templateUrl: `./paragraph-based-amendment-editor.component.html`, + styleUrls: [`./paragraph-based-amendment-editor.component.scss`], changeDetection: ChangeDetectionStrategy.OnPush }) -export class ParagraphBasedAmendmentComponent extends BaseMotionDetailChildComponent { - public readonly LineNumberingMode = LineNumberingMode; - public readonly ChangeRecoMode = ChangeRecoMode; - - @Input() - public changesForDiffMode: ViewUnifiedChange[] = []; - - @Input() - public highlightedLine!: number; - - @Input() - public isFinalEdit = false; - - @Output() - public createChangeRecommendation = new EventEmitter(); - +export class ParagraphBasedAmendmentEditorComponent extends BaseMotionDetailChildComponent { @Output() public formChanged = new EventEmitter(); @Output() public validStateChanged = new EventEmitter(); - public showAmendmentContext = false; - public selectedParagraphs: ParagraphToChoose[] = []; public brokenParagraphs: string[] = []; public contentForm: UntypedFormGroup | null = null; - public amendmentErrorMessage: string | null = null; - - public get amendmentLines(): DiffLinesInParagraph[] | null { - return this.motion?.changedAmendmentLines; - } - - public get nativeElement(): any { - return this.el.nativeElement; - } - public constructor( protected override translate: TranslateService, - private fb: UntypedFormBuilder, - private cd: ChangeDetectorRef, - private el: ElementRef + private fb: UntypedFormBuilder ) { super(); } - /** - * This returns the plain HTML of a changed area in an amendment, including its context, - * for the purpose of piping it into . - * This component works with plain HTML, hence we are composing plain HTML here, too. - * - * @param {DiffLinesInParagraph} paragraph - * @returns {string} - * - * TODO: Seems to be directly duplicated in the slide - */ - public getAmendmentDiffTextWithContext(paragraph: DiffLinesInParagraph): UnsafeHtml { - return ( - `
${paragraph.textPre}
` + - `
${paragraph.text}
` + - `
${paragraph.textPost}
` - ); - } - - /** - * If `this.motion` is an amendment, this returns the list of all changed paragraphs. - * - * @returns {DiffLinesInParagraph[]} - */ - public getAmendmentParagraphs(): DiffLinesInParagraph[] { - try { - this.amendmentErrorMessage = null; - return this.motion?.getAmendmentParagraphLines(this.changeRecoMode, this.showAmendmentContext) || []; - } catch (e: any) { - this.amendmentErrorMessage = e.toString(); - return []; - } - } - - public getAmendmentParagraphLinesTitle(paragraph: DiffLinesInParagraph): string { - return this.motion?.getParagraphTitleByParagraph(paragraph) || ``; - } - - public isControlInvalid(paragraphNumber: number): boolean { - const control = this.contentForm!.get(paragraphNumber.toString())!; - return control.invalid && (control.dirty || control.touched); - } - - protected override onEnterEditMode(): void { + protected override onAfterSetMotion(): void { if (this.contentForm) { this.contentForm = null; } @@ -135,10 +50,9 @@ export class ParagraphBasedAmendmentComponent extends BaseMotionDetailChildCompo this.propagateChanges(); } - protected override onAfterSetMotion(previous: ViewMotion): void { - if (!previous) { - this.onEnterEditMode(); - } + public isControlInvalid(paragraphNumber: number): boolean { + const control = this.contentForm!.get(paragraphNumber.toString())!; + return control.invalid && (control.dirty || control.touched); } private createForm(): ParagraphBasedAmendmentContent { diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/motion-form-routing.module.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/motion-form-routing.module.ts new file mode 100644 index 0000000000..69b7c26d6c --- /dev/null +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/motion-form-routing.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; + +import { AmendmentCreateWizardComponent } from './components/amendment-create-wizard/amendment-create-wizard.component'; +import { MotionFormComponent } from './components/motion-form/motion-form.component'; + +const routes: Routes = [ + { path: `:id/create-amendment`, component: AmendmentCreateWizardComponent }, + { path: `:id/edit`, component: MotionFormComponent }, + { path: `new`, component: MotionFormComponent } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class MotionFormRoutingModule {} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/motion-form.module.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/motion-form.module.ts new file mode 100644 index 0000000000..95074ce244 --- /dev/null +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-form/motion-form.module.ts @@ -0,0 +1,57 @@ +import { ScrollingModule } from '@angular/cdk/scrolling'; +import { CommonModule } from '@angular/common'; +import { NgModule } from '@angular/core'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { MatCardModule } from '@angular/material/card'; +import { MatCheckboxModule } from '@angular/material/checkbox'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatIconModule } from '@angular/material/icon'; +import { MatInputModule } from '@angular/material/input'; +import { MatRadioModule } from '@angular/material/radio'; +import { MatStepperModule } from '@angular/material/stepper'; +import { OpenSlidesTranslationModule } from 'src/app/site/modules/translations'; +import { AgendaContentObjectFormModule } from 'src/app/site/pages/meetings/modules/meetings-component-collector/agenda-content-object-form/agenda-content-object-form.module'; +import { AttachmentControlModule } from 'src/app/site/pages/meetings/modules/meetings-component-collector/attachment-control'; +import { DetailViewModule } from 'src/app/site/pages/meetings/modules/meetings-component-collector/detail-view/detail-view.module'; +import { DirectivesModule } from 'src/app/ui/directives'; +import { EditorModule } from 'src/app/ui/modules/editor'; +import { HeadBarModule } from 'src/app/ui/modules/head-bar'; +import { SearchSelectorModule } from 'src/app/ui/modules/search-selector'; +import { PipesModule } from 'src/app/ui/pipes'; + +import { MotionDetailDirectivesModule } from '../../modules/directives/motion-detail-directives.module'; +import { AmendmentCreateWizardComponent } from './components/amendment-create-wizard/amendment-create-wizard.component'; +import { MotionFormComponent } from './components/motion-form/motion-form.component'; +import { ParagraphBasedAmendmentEditorComponent } from './components/paragraph-based-amendment-editor/paragraph-based-amendment-editor.component'; +import { MotionFormRoutingModule } from './motion-form-routing.module'; + +@NgModule({ + declarations: [MotionFormComponent, ParagraphBasedAmendmentEditorComponent, AmendmentCreateWizardComponent], + imports: [ + CommonModule, + MotionFormRoutingModule, + DirectivesModule, + PipesModule, + MotionDetailDirectivesModule, + AgendaContentObjectFormModule, + HeadBarModule, + DetailViewModule, + AttachmentControlModule, + EditorModule, + SearchSelectorModule, + MatCardModule, + MatFormFieldModule, + MatIconModule, + MatInputModule, + FormsModule, + ReactiveFormsModule, + OpenSlidesTranslationModule.forChild(), + + // Amendment create wizard + ScrollingModule, + MatStepperModule, + MatRadioModule, + MatCheckboxModule + ] +}) +export class MotionFormModule {} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/base/base-motion-detail-action-card.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/base/base-motion-detail-action-card.component.ts similarity index 99% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/base/base-motion-detail-action-card.component.ts rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/base/base-motion-detail-action-card.component.ts index cb453c7f25..ab2fc8fbfe 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/base/base-motion-detail-action-card.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/base/base-motion-detail-action-card.component.ts @@ -35,6 +35,7 @@ export abstract class BaseMotionDetailActionCardComponent extends BaseComponent protected override translate = inject(TranslateService); protected cd = inject(ChangeDetectorRef); protected fb = inject(FormBuilder); + public constructor() { super(); this.formGroup = this.fb.group({ text: `` }); diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-add-poll-button/motion-add-poll-button.component.html b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-add-poll-button/motion-add-poll-button.component.html similarity index 94% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-add-poll-button/motion-add-poll-button.component.html rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-add-poll-button/motion-add-poll-button.component.html index 6e8756fdd6..4588f38ce1 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-add-poll-button/motion-add-poll-button.component.html +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-add-poll-button/motion-add-poll-button.component.html @@ -1,6 +1,6 @@
- } - @if (!isEditing && hasComment()) { - - } @if (isEditing) { - } - @if (isEditing) { + + } @else { + @if (canBeEdited || hasSubmitterEditRights) { + + } + @if (hasComment()) { + + } } diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-comment/motion-comment.component.scss b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-comment/motion-comment.component.scss similarity index 100% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-comment/motion-comment.component.scss rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-comment/motion-comment.component.scss diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-comment/motion-comment.component.spec.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-comment/motion-comment.component.spec.ts similarity index 100% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-comment/motion-comment.component.spec.ts rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-comment/motion-comment.component.spec.ts diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-comment/motion-comment.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-comment/motion-comment.component.ts similarity index 92% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-comment/motion-comment.component.ts rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-comment/motion-comment.component.ts index a8308af8c6..ca27237ed1 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-comment/motion-comment.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-comment/motion-comment.component.ts @@ -5,8 +5,8 @@ import { MotionComment } from 'src/app/domain/models/motions/motion-comment'; import { ViewMotionComment, ViewMotionCommentSection } from 'src/app/site/pages/meetings/pages/motions'; import { OperatorService } from 'src/app/site/services/operator.service'; -import { MotionCommentControllerService } from '../../../../modules/comments/services/motion-comment-controller.service'; -import { MotionPdfExportService } from '../../../../services/export/motion-pdf-export.service/motion-pdf-export.service'; +import { MotionCommentControllerService } from '../../../../../../modules/comments/services/motion-comment-controller.service'; +import { MotionPdfExportService } from '../../../../../../services/export/motion-pdf-export.service/motion-pdf-export.service'; import { BaseMotionDetailActionCardComponent } from '../../base/base-motion-detail-action-card.component'; @Component({ diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-comments/motion-comments.component.html b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-comments/motion-comments.component.html new file mode 100644 index 0000000000..6967e050b0 --- /dev/null +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-comments/motion-comments.component.html @@ -0,0 +1,11 @@ +@for (section of sections$ | async; track section.id; let index = $index) { + @if (canReadSection(section)) { + + } +} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-comments/motion-comments.component.scss b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-comments/motion-comments.component.scss similarity index 100% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-comments/motion-comments.component.scss rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-comments/motion-comments.component.scss diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-comments/motion-comments.component.spec.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-comments/motion-comments.component.spec.ts similarity index 100% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-comments/motion-comments.component.spec.ts rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-comments/motion-comments.component.spec.ts diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-comments/motion-comments.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-comments/motion-comments.component.ts similarity index 60% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-comments/motion-comments.component.ts rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-comments/motion-comments.component.ts index 91284b4601..e90059c9b3 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-comments/motion-comments.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-comments/motion-comments.component.ts @@ -1,9 +1,10 @@ -import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit } from '@angular/core'; +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; +import { Observable } from 'rxjs'; import { ViewMotion, ViewMotionComment, ViewMotionCommentSection } from 'src/app/site/pages/meetings/pages/motions'; import { OperatorService } from 'src/app/site/services/operator.service'; import { BaseUiComponent } from 'src/app/ui/base/base-ui-component'; -import { MotionCommentSectionControllerService } from '../../../../modules/comments/services/motion-comment-section-controller.service'; +import { MotionCommentSectionControllerService } from '../../../../../../modules/comments/services/motion-comment-section-controller.service'; @Component({ selector: `os-motion-comments`, @@ -11,11 +12,11 @@ import { MotionCommentSectionControllerService } from '../../../../modules/comme styleUrls: [`./motion-comments.component.scss`], changeDetection: ChangeDetectionStrategy.OnPush }) -export class MotionCommentsComponent extends BaseUiComponent implements OnInit { +export class MotionCommentsComponent extends BaseUiComponent { /** * An array of all sections the operator can see. */ - public sections: ViewMotionCommentSection[] = []; + public sections$: Observable = this.commentSectionRepo.getViewModelListObservable(); /** * The motion, which these comments belong to. @@ -25,39 +26,16 @@ export class MotionCommentsComponent extends BaseUiComponent implements OnInit { public constructor( private commentSectionRepo: MotionCommentSectionControllerService, - private operator: OperatorService, - private cd: ChangeDetectorRef + private operator: OperatorService ) { super(); } - public ngOnInit(): void { - this.subscriptions.push( - this.commentSectionRepo.getViewModelListObservable().subscribe(sections => { - if (sections && sections.length) { - this.sections = sections; - this.filterSections(); - this.cd.detectChanges(); - } - }) - ); - } - public getCommentForSection(section: ViewMotionCommentSection): ViewMotionComment { return this.motion.getCommentForSection(section)!; } - /** - * sets the `sections` member with sections, if the operator has reading permissions. - */ - private filterSections(): void { - if (this.sections?.length) { - this.sections = this.sections.filter(section => this.canReadSection(section)); - this.cd.markForCheck(); - } - } - - private canReadSection(section: ViewMotionCommentSection): boolean { + public canReadSection(section: ViewMotionCommentSection): boolean { return ( this.operator.isInGroupIds(...(section.read_group_ids || []), ...(section.write_group_ids || [])) || (section.submitter_can_write && diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-content/motion-content.component.html b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-content/motion-content.component.html new file mode 100644 index 0000000000..39c4a0bc59 --- /dev/null +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-content/motion-content.component.html @@ -0,0 +1,85 @@ + +@if (!isParagraphBasedAmendment) { + @if (changeRecoMode !== ChangeRecoMode.Diff) { + + @if (showPreamble) { + + {{ preamble$ | async }} + + } + + + } @else { + + } +} @else { + + +} + +
+ + @if (motion.reason) { +
+

{{ 'Reason' | translate }}

+ +
+ } + +
+ + @if (hasAttachments) { +
+
+

+ {{ 'Attachments' | translate }} + attach_file +

+ + @for (file of motion.attachment_meeting_mediafiles$ | async; track file.id) { + + {{ file.title }} + + } + +
+
+ } +
+
diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-content/motion-content.component.scss b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-content/motion-content.component.scss similarity index 100% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-content/motion-content.component.scss rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-content/motion-content.component.scss diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-content/motion-content.component.spec.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-content/motion-content.component.spec.ts similarity index 100% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-content/motion-content.component.spec.ts rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-content/motion-content.component.spec.ts diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-content/motion-content.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-content/motion-content.component.ts new file mode 100644 index 0000000000..6de7981e1d --- /dev/null +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-content/motion-content.component.ts @@ -0,0 +1,167 @@ +import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core'; +import { TranslateService } from '@ngx-translate/core'; +import { BehaviorSubject, combineLatest, map, Observable } from 'rxjs'; +import { ChangeRecoMode, LineNumberingMode } from 'src/app/domain/models/motions/motions.constants'; +import { LineRange } from 'src/app/site/pages/meetings/pages/motions/definitions'; +import { ViewUnifiedChange } from 'src/app/site/pages/meetings/pages/motions/modules/change-recommendations/view-models/view-unified-change'; + +import { MotionPermissionService } from '../../../../../../services/common/motion-permission.service/motion-permission.service'; +import { BaseMotionDetailChildComponent } from '../../../../base/base-motion-detail-child.component'; +import { MotionContentChangeRecommendationDialogComponentData } from '../../../../modules/motion-change-recommendation-dialog/components/motion-content-change-recommendation-dialog/motion-content-change-recommendation-dialog.component'; +import { MotionChangeRecommendationDialogService } from '../../../../modules/motion-change-recommendation-dialog/services/motion-change-recommendation-dialog.service'; + +@Component({ + selector: `os-motion-content`, + templateUrl: `./motion-content.component.html`, + styleUrls: [`./motion-content.component.scss`], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class MotionContentComponent extends BaseMotionDetailChildComponent { + public readonly ChangeRecoMode = ChangeRecoMode; + public readonly LineNumberingMode = LineNumberingMode; + + @Input() + public changeRecoMode: ChangeRecoMode; + + @Input() + public lineNumberingMode: LineNumberingMode; + + private unifiedChanges$: Observable & { value: ViewUnifiedChange[] }; + + @Input() + public set unifiedChanges( + value: ViewUnifiedChange[] | (Observable & { value: ViewUnifiedChange[] }) + ) { + if (value !== this.unifiedChanges$) { + if (value instanceof Observable) { + this.unifiedChanges$ = value; + } else { + this.unifiedChanges$ = new BehaviorSubject(value); + } + + this.updateObservables(); + } + } + + public get unifiedChanges(): ViewUnifiedChange[] | Observable { + return this.unifiedChanges$.value; + } + + @Output() + public updateCrMode = new EventEmitter(); + + public scrollToChange: ViewUnifiedChange | null = null; + + public changesForDiffMode$: Observable = null; + public formattedTextPlain$: Observable = null; + + public preamble$ = this.meetingSettingsService.get(`motions_preamble`); + + public get showPreamble(): boolean { + return this.motion.showPreamble; + } + + public get canChangeMetadata(): boolean { + return this.perms.isAllowed(`change_metadata`, this.motion); + } + + public get isParagraphBasedAmendment(): boolean { + return this.motion.isParagraphBasedAmendment(); + } + + public get hasAttachments(): boolean { + return this.motion.hasAttachments(); + } + + /** + * Indicates the currently highlighted line, if any. + */ + public highlightedLine!: number; + + public constructor( + protected override translate: TranslateService, + private dialog: MotionChangeRecommendationDialogService, + private perms: MotionPermissionService + ) { + super(); + } + + /** + * In the original version, a line number range has been selected in order to create a new change recommendation + * + * @param lineRange + */ + public createChangeRecommendation(lineRange: LineRange): void { + const data: MotionContentChangeRecommendationDialogComponentData = { + editChangeRecommendation: false, + newChangeRecommendation: true, + lineRange, + changeRecommendation: null, + firstLine: this.motion.firstLine + }; + if (this.motion.isParagraphBasedAmendment()) { + try { + const lineNumberedParagraphs = this.motionLineNumbering // + .getAllAmendmentParagraphsWithOriginalLineNumbers(this.motion, this.lineLength, false); + data.changeRecommendation = this.changeRecoRepo.createAmendmentChangeRecommendationTemplate( + this.motion, + lineNumberedParagraphs, + lineRange + ); + } catch (e) { + console.error(e); + return; + } + } else { + data.changeRecommendation = this.changeRecoRepo.createMotionChangeRecommendationTemplate( + this.motion, + lineRange, + this.lineLength + ); + } + this.dialog.openContentChangeRecommendationDialog(data); + } + + /** + * In the original version, a change-recommendation-annotation has been clicked + * -> Go to the diff view and scroll to the change recommendation + */ + public gotoChangeRecommendation(changeRecommendation: ViewUnifiedChange): void { + this.scrollToChange = changeRecommendation; + this.updateCrMode.emit(ChangeRecoMode.Diff); + } + + private updateObservables(): void { + this.formattedTextPlain$ = combineLatest([ + this.meetingSettingsService.get(`motions_line_length`), + this.unifiedChanges$ + ]).pipe( + map(([lineLength, changes]) => { + if (lineLength) { + return this.motionFormatService.formatMotion({ + targetMotion: this.motion, + crMode: this.changeRecoMode, + changes: this.changeRecoMode === ChangeRecoMode.Original ? [] : changes, + lineLength: this.lineLength, + highlightedLine: this.highlightedLine, + firstLine: this.motion.firstLine + }); + } + + return this.motion.text; + }) + ); + + this.changesForDiffMode$ = combineLatest([this.showAllAmendments$, this.unifiedChanges$]).pipe( + map(([_, changes]) => + changes.filter(change => { + if (this.showAllAmendments) { + return true; + } else { + return change.showInDiffView(); + } + }) + ) + ); + } +} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-detail-diff-summary/motion-detail-diff-summary.component.html b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-detail-diff-summary/motion-detail-diff-summary.component.html similarity index 85% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-detail-diff-summary/motion-detail-diff-summary.component.html rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-detail-diff-summary/motion-detail-diff-summary.component.html index 2e09d305e5..13bd7387a9 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-detail-diff-summary/motion-detail-diff-summary.component.html +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-detail-diff-summary/motion-detail-diff-summary.component.html @@ -16,15 +16,13 @@ @if (!change.isTitleChange()) { {{ 'Line' | translate }} {{ formatLineRange(change) }} - } - @if (change.isTitleChange()) { + } @else { {{ 'Title' | translate }} } - @if (isChangeRecommendation(change)) { -  ({{ 'Change recommendation' | translate }}) - } @if (isAmendment(change)) {  ({{ 'Amendment' | translate }} {{ change.getIdentifier() }}) + } @else { +  ({{ 'Change recommendation' | translate }}) } @if (isChangeRecommendation(change)) { @@ -39,8 +37,7 @@ @if (change.isRejected() && !isAmendment(change)) { – {{ 'Rejected' | translate }} - } - @if ((change.isAccepted() || isAmendment(change)) && change.stateName) { + } @else if (change.stateName) { – {{ change.stateName }} } @@ -59,8 +56,5 @@ - @if (changes.length === 0) { -
{{ 'No change recommendations yet' | translate }}
- }
} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-detail-diff-summary/motion-detail-diff-summary.component.scss b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-detail-diff-summary/motion-detail-diff-summary.component.scss similarity index 100% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-detail-diff-summary/motion-detail-diff-summary.component.scss rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-detail-diff-summary/motion-detail-diff-summary.component.scss diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-detail-diff-summary/motion-detail-diff-summary.component.spec.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-detail-diff-summary/motion-detail-diff-summary.component.spec.ts similarity index 100% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-detail-diff-summary/motion-detail-diff-summary.component.spec.ts rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-detail-diff-summary/motion-detail-diff-summary.component.spec.ts diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-detail-diff-summary/motion-detail-diff-summary.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-detail-diff-summary/motion-detail-diff-summary.component.ts similarity index 84% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-detail-diff-summary/motion-detail-diff-summary.component.ts rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-detail-diff-summary/motion-detail-diff-summary.component.ts index cf0cbebd41..064fa1e5d9 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-detail-diff-summary/motion-detail-diff-summary.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-detail-diff-summary/motion-detail-diff-summary.component.ts @@ -1,11 +1,11 @@ -import { AfterViewInit, Component, Input, ViewEncapsulation } from '@angular/core'; +import { AfterViewInit, ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core'; import { BaseMeetingComponent } from 'src/app/site/pages/meetings/base/base-meeting.component'; import { ViewUnifiedChange } from 'src/app/site/pages/meetings/pages/motions/modules/change-recommendations/view-models/view-unified-change'; -import { getRecommendationTypeName } from '../../../../definitions/recommendation-type-names'; -import { ViewUnifiedChangeType } from '../../../../modules/change-recommendations/definitions/index'; -import { ViewMotion } from '../../../../view-models'; -import { ViewMotionAmendedParagraph } from '../../../../view-models/view-motion-amended-paragraph'; +import { getRecommendationTypeName } from '../../../../../../definitions/recommendation-type-names'; +import { ViewUnifiedChangeType } from '../../../../../../modules/change-recommendations/definitions/index'; +import { ViewMotion } from '../../../../../../view-models'; +import { ViewMotionAmendedParagraph } from '../../../../../../view-models/view-motion-amended-paragraph'; /** * This component displays a summary of the given change requests. @@ -24,7 +24,8 @@ import { ViewMotionAmendedParagraph } from '../../../../view-models/view-motion- selector: `os-motion-detail-diff-summary`, templateUrl: `./motion-detail-diff-summary.component.html`, styleUrls: [`./motion-detail-diff-summary.component.scss`], - encapsulation: ViewEncapsulation.None + encapsulation: ViewEncapsulation.None, + changeDetection: ChangeDetectionStrategy.OnPush }) export class MotionDetailDiffSummaryComponent extends BaseMeetingComponent implements AfterViewInit { /** diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-detail-diff/motion-detail-diff.component.html b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-detail-diff/motion-detail-diff.component.html similarity index 96% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-detail-diff/motion-detail-diff.component.html rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-detail-diff/motion-detail-diff.component.html index a983e215d6..3bccea0e15 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-detail-diff/motion-detail-diff.component.html +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-detail-diff/motion-detail-diff.component.html @@ -47,7 +47,7 @@ } - @for (change of getAllTextChangingObjects(); track change; let i = $index) { + @for (change of allTextChangingObjects; track change.getChangeId(); let i = $index) {
- @if (hasCollissions(change, getAllTextChangingObjects())) { + @if (hasCollissions(change, allTextChangingObjects)) {
warning @@ -157,7 +157,7 @@ @if (change.amendment.state.next_states.length > 0) { } - @for (state of change.amendment.state.next_states; track state) { + @for (state of change.amendment.state.next_states; track state.id) { @@ -42,7 +39,7 @@ @if (!isMobile) {   {{ 'Line numbering' | translate }} - @if (lnMode === LineNumberingMode.None) { + @if (lineNumberingMode === LineNumberingMode.None) {  ( {{ 'none' | translate }} @@ -56,7 +53,7 @@ rate_review @if (!isMobile) {   - {{ verboseChangeRecoMode[crMode] | translate }} + {{ verboseChangeRecoMode[changeRecoMode] | translate }} } } @@ -85,9 +82,8 @@ > edit - } - - @if (isEditingFinalVersion) { + } @else { + - } - - @if (isEditingFinalVersion) { + + - } - - @if (!isEditingFinalVersion) { + + - } - @if (hasChangingObjects) { - } - @if (!isParagraphBasedAmendment && hasChangingObjects) { - + @if (!isParagraphBasedAmendment) { + + } } @if (motion && motion.modified_final_version && !motion.isParagraphBasedAmendment()) { - } - @if (isEditMode && perms.isAllowed('change_metadata')) { - + @if (perms.isAllowed('change_metadata')) { + @if (isEditMode) { + + } @else { + + } }

@if (!isEditMode || !perms.isAllowed('change_metadata')) {
- @for (model of intermediateModels; track model) { + @for (model of intermediateModels$ | async; track model.id) { {{ model.user?.getTitle() }} @@ -25,8 +26,7 @@

}

-} -@if (isEditMode && perms.isAllowed('change_metadata')) { +} @else {
@@ -62,20 +62,20 @@

- } - @if (useAdditionalInput && loadSecondSelectorValues) { -
- - {{ secondSelectorLabel }} - - -
+ @if (loadSecondSelectorValues) { +
+ + {{ secondSelectorLabel }} + + +
+ } }

- } - @if (isEditMode && perms.isAllowed('change_metadata')) { - + @if (perms.isAllowed('change_metadata')) { + @if (isEditMode) { + + } @else { + + } } @@ -16,8 +17,7 @@

{{ motion[field] | localizedDate }}
-} -@if (isEditMode && perms.isAllowed('change_metadata')) { +} @else {
diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-manage-timestamp/motion-manage-timestamp.component.scss b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-timestamp/motion-manage-timestamp.component.scss similarity index 100% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-manage-timestamp/motion-manage-timestamp.component.scss rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-timestamp/motion-manage-timestamp.component.scss diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-manage-timestamp/motion-manage-timestamp.component.spec.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-timestamp/motion-manage-timestamp.component.spec.ts similarity index 100% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-manage-timestamp/motion-manage-timestamp.component.spec.ts rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-timestamp/motion-manage-timestamp.component.spec.ts diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-manage-timestamp/motion-manage-timestamp.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-timestamp/motion-manage-timestamp.component.ts similarity index 77% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-manage-timestamp/motion-manage-timestamp.component.ts rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-timestamp/motion-manage-timestamp.component.ts index 228a82150c..bbc7c9d0a9 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-manage-timestamp/motion-manage-timestamp.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-timestamp/motion-manage-timestamp.component.ts @@ -4,9 +4,9 @@ import { fromUnixTime, getHours, getMinutes, isDate } from 'date-fns'; import { KeyOfType } from 'src/app/infrastructure/utils/keyof-type'; import { BaseUiComponent } from 'src/app/ui/base/base-ui-component'; -import { MotionControllerService } from '../../../../services/common/motion-controller.service'; -import { MotionPermissionService } from '../../../../services/common/motion-permission.service'; -import { ViewMotion } from '../../../../view-models'; +import { MotionControllerService } from '../../../../../../services/common/motion-controller.service'; +import { MotionPermissionService } from '../../../../../../services/common/motion-permission.service'; +import { ViewMotion } from '../../../../../../view-models'; @Component({ selector: `os-motion-manage-timestamp`, @@ -59,16 +59,18 @@ export class MotionManageTimestampComponent extends BaseUiComponent { time: [``] }); - this.form.get(`date`).valueChanges.subscribe(currDate => { - if (isDate(currDate) !== !!this.form.get(`time`).value) { - this.form.get(`time`).setValue(isDate(currDate) ? `00:00` : ``); - } - }); - this.form.get(`time`).valueChanges.subscribe(currTime => { - if (!!currTime !== isDate(this.form.get(`date`).value)) { - this.form.get(`date`).setValue(!!currTime ? new Date() : null); - } - }); + this.subscriptions.push( + this.form.get(`date`).valueChanges.subscribe(currDate => { + if (isDate(currDate) !== !!this.form.get(`time`).value) { + this.form.get(`time`).setValue(isDate(currDate) ? `00:00` : ``); + } + }), + this.form.get(`time`).valueChanges.subscribe(currTime => { + if (!!currTime !== isDate(this.form.get(`date`).value)) { + this.form.get(`date`).setValue(!!currTime ? new Date() : null); + } + }) + ); } public async onSave(): Promise { diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-manage-title/motion-manage-title.component.html b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-title/motion-manage-title.component.html similarity index 77% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-manage-title/motion-manage-title.component.html rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-title/motion-manage-title.component.html index 103dea9fa4..ee6d55df7e 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-manage-title/motion-manage-title.component.html +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-title/motion-manage-title.component.html @@ -7,8 +7,8 @@ } } + @let isFavorite = isFavorite$ | async; + @let showSequentialNumber = showSequentialNumber$ | async; @if (showSequentialNumber) { {{ 'Sequential number' | translate }}  {{ motion.sequential_number }} } - @if (showSequentialNumber && parent) { - ·  - } - @if (parent) { + @if (motion.lead_motion$ | async; as parent) { + @if (showSequentialNumber) { + ·  + } {{ 'Amendment to' | translate }} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-title/motion-manage-title.component.scss b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-title/motion-manage-title.component.scss new file mode 100644 index 0000000000..9d6b5f31ed --- /dev/null +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-title/motion-manage-title.component.scss @@ -0,0 +1,41 @@ +.motion-title { + position: relative; + z-index: 1; + + // Grab the left padding of the parent element to catch hover-events for the :before element + margin-left: -20px; + padding-left: 20px; + + .change-title { + position: relative; + width: 0; + height: 0; + } + + .change-title:before { + position: absolute; + top: 18px; + left: -17px; + display: none; + cursor: pointer; + content: ''; + width: 16px; + height: 16px; + background: url('data:image/svg+xml;utf8,'); + background-size: 16px 16px; + } + + &:hover .change-title:before { + display: block; + } + + .title-change-indicator { + background-color: #0333ff; + position: absolute; + width: 4px; + height: 32px; + left: 10px; + top: 5px; + cursor: pointer; + } +} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-manage-title/motion-manage-title.component.spec.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-title/motion-manage-title.component.spec.ts similarity index 100% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-manage-title/motion-manage-title.component.spec.ts rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-title/motion-manage-title.component.spec.ts diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-manage-title/motion-manage-title.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-title/motion-manage-title.component.ts similarity index 51% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-manage-title/motion-manage-title.component.ts rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-title/motion-manage-title.component.ts index 3a750da10f..ab5cbe55cb 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-manage-title/motion-manage-title.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-manage-title/motion-manage-title.component.ts @@ -1,36 +1,51 @@ -import { Component, ViewChild } from '@angular/core'; +import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core'; import { TranslateService } from '@ngx-translate/core'; -import { distinctUntilChanged, Subscription } from 'rxjs'; +import { map, Observable, Subscription } from 'rxjs'; import { ChangeRecoMode } from 'src/app/domain/models/motions/motions.constants'; -import { PersonalNote } from 'src/app/domain/models/motions/personal-note'; import { ProjectableTitleComponent } from 'src/app/site/pages/meetings/modules/meetings-component-collector/detail-view/components/projectable-title/projectable-title.component'; -import { ViewMotion, ViewMotionChangeRecommendation } from 'src/app/site/pages/meetings/pages/motions'; +import { ViewMotionChangeRecommendation } from 'src/app/site/pages/meetings/pages/motions'; -import { PersonalNoteControllerService } from '../../../../modules/personal-notes/services/personal-note-controller.service/personal-note-controller.service'; -import { BaseMotionDetailChildComponent } from '../../base/base-motion-detail-child.component'; -import { MotionChangeRecommendationDialogService } from '../../modules/motion-change-recommendation-dialog/services/motion-change-recommendation-dialog.service'; +import { PersonalNoteControllerService } from '../../../../../../modules/personal-notes/services/personal-note-controller.service/personal-note-controller.service'; +import { BaseMotionDetailChildComponent } from '../../../../base/base-motion-detail-child.component'; +import { MotionChangeRecommendationDialogService } from '../../../../modules/motion-change-recommendation-dialog/services/motion-change-recommendation-dialog.service'; @Component({ selector: `os-motion-manage-title`, templateUrl: `./motion-manage-title.component.html`, - styleUrls: [`./motion-manage-title.component.scss`] + styleUrls: [`./motion-manage-title.component.scss`], + changeDetection: ChangeDetectionStrategy.OnPush }) export class MotionManageTitleComponent extends BaseMotionDetailChildComponent { @ViewChild(ProjectableTitleComponent) protected readonly titleComponent: ProjectableTitleComponent | undefined; - public titleChangeRecommendation: ViewMotionChangeRecommendation | null = null; + @Input() + public set changeRecoMode(value: ChangeRecoMode) { + this._changeRecoMode = value; + if (this.titleComponent) { + this.titleComponent.update(); + } + } - public override get parent(): ViewMotion | null { - return this.motion.lead_motion!; + public get changeRecoMode(): ChangeRecoMode { + return this._changeRecoMode; } + @Output() + public updateCrMode = new EventEmitter(); + + private _changeRecoMode: ChangeRecoMode; + + public titleChangeRecommendation: ViewMotionChangeRecommendation | null = null; + public getTitleFn = (): string => this.getTitleWithChanges(); - private get personalNote(): PersonalNote | null { - return this.motion.getPersonalNote(); + public get isFavorite$(): Observable { + return this.motion.personal_notes$.pipe(map(notes => (notes?.length ? notes[0]?.star : false))); } + public showSequentialNumber$ = this.meetingSettingsService.get(`motions_show_sequential_number`); + public constructor( protected override translate: TranslateService, private personalNoteRepo: PersonalNoteControllerService, @@ -58,34 +73,34 @@ export class MotionManageTitleComponent extends BaseMotionDetailChildComponent { } public getTitleWithChanges(): string { - return this.changeRecoRepo.getTitleWithChanges( + const title = this.changeRecoRepo.getTitleWithChanges( this.motion.title, this.titleChangeRecommendation!, this.changeRecoMode ); + + if ([`I like trains`, `Ich mag Züge`].indexOf(title) !== -1 && document.querySelector(`.global-headbar`)) { + try { + document.querySelector(`.global-headbar`).classList.add(`train`); + } catch (e) {} + } + + return title; } - /** - * Toggles the favorite status - */ - public toggleFavorite(): void { - this.personalNoteRepo.setPersonalNote({ star: !this.isFavorite() }, this.motion); + public setFavorite(value: boolean): void { + this.personalNoteRepo.setPersonalNote({ star: value }, this.motion); } - public isFavorite(): boolean { - return this.personalNote?.star || false; + public emitDiffModeSwitch(): void { + this.updateCrMode.emit(ChangeRecoMode.Diff); } protected override getSubscriptions(): Subscription[] { return [ this.changeRecoRepo .getTitleChangeRecoOfMotionObservable(this.motion?.id) - ?.subscribe(changeReco => (this.titleChangeRecommendation = changeReco)), - this.viewService.changeRecommendationModeSubject.pipe(distinctUntilChanged()).subscribe(() => { - if (this.titleComponent) { - this.titleComponent.update(); - } - }) + ?.subscribe(changeReco => (this.titleChangeRecommendation = changeReco)) ]; } } diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-meta-data/motion-meta-data.component.html b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-meta-data/motion-meta-data.component.html similarity index 67% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-meta-data/motion-meta-data.component.html rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-meta-data/motion-meta-data.component.html index a72f32fa76..b0c092c37a 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-meta-data/motion-meta-data.component.html +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-meta-data/motion-meta-data.component.html @@ -19,37 +19,37 @@ } -@if (minSupporters) { +@if (minSupporters$ | async) {
@if (perms.isAllowed('support', motion) || motion.hasSupporters()) {

{{ 'Supporters' | translate }}

- } - - @if (perms.isAllowed('support', motion)) { - - } - - @if (perms.isAllowed('unsupport', motion)) { - + + @if (perms.isAllowed('support', motion)) { + + } + + @if (perms.isAllowed('unsupport', motion)) { + + } } @if (motion.hasSupporters()) { - } - @if (showSupporters) { -

- - {{ supporter.full_name }} - -

+ @if (showSupporters) { +

+ + {{ supporter.full_name }} + +

+ } }
} @@ -73,34 +73,32 @@

{{ 'Supporters' | translate }}

-@if (motion?.state) { +@if (motion.state$ | async; as motionState) {
- @if (motion.state) { - - @if (perms.isAllowed('change_state', motion)) { - @for (state of motion.state.next_states; track state) { - - } -
- @if (motion.state.previous_states.length > 0) { - + + @if (perms.isAllowed('change_state', motion)) { + @for (state of motionState.next_states; track state.id) { + + } +
+ @if (motionState.previous_states.length > 0) { + + @for (state of motionState.previous_states; track state.id) { } - @if (perms.isAllowed('change_metadata', motion)) { - - } - @if (perms.isAllowed('change_metadata', motion)) { - - } -
- } - @if (!perms.isAllowed('change_state', motion) && !!motion.state.submitter_withdraw_state) { - - } -
- } + } + @if (perms.isAllowed('change_metadata', motion)) { + + + } +
+ } @else if (!!motionState.submitter_withdraw_state) { + + } +
@if (showForwardButton) { @@ -140,11 +135,11 @@

{{ 'Supporters' | translate }}

} -@if (motion?.derived_motions?.length) { +@if (motion?.derived_motion_ids?.length) {

{{ 'Motion forwarded to' | translate }}

- @for (derived of motion.derived_motions; track derived; let last = $last) { + @for (derived of motion.derived_motions$ | async; track derived.id; let last = $last) {
({{ derived.forwarded | localizedDate }}) @@ -154,6 +149,7 @@

{{ 'Motion forwarded to' | translate }}

} +@let showReferringMotions = showReferringMotions$ | async; @if (isRecommendationEnabled) {
@@ -170,7 +166,7 @@

{{ 'Motion forwarded to' | translate }}

(succeeded)="setRecommendationExtension($event)" > - @for (recommendation of getPossibleRecommendations(); track recommendation) { + @for (recommendation of getPossibleRecommendations(); track recommendation.id) {
- } - @if (!motion.category) { + } @else { - } - } -
+
+ } } - -@if (tags.length) { -
- @if (perms.isAllowed('change_metadata', motion) || motion.hasTags()) { +@if (tags$ | async; as tags) { + @if (tags.length && (perms.isAllowed('change_metadata', motion) || motion.hasTags())) { +

{{ 'Tags' | translate }}

- } - @if (perms.isAllowed('change_metadata', motion) || motion.hasTags()) { - @for (tag of tags; track tag) { + @for (tag of tags; track tag.id) { } - @for (tag of motion.tags; track tag) { + @for (tag of motion.tags$ | async; track tag.id) { {{ tag }} } {{ '–' }} - } -
+
+ } } -@if (motionBlocks.length) { -
- @if (perms.isAllowed('change_metadata', motion) || motion.block) { +@if (motionBlocks$ | async; as motionBlocks) { + @if (motionBlocks.length && (perms.isAllowed('change_metadata', motion) || motion.block)) { +

{{ 'Motion block' | translate }}

- } - @if (perms.isAllowed('change_metadata', motion) || motion.block) { - @for (block of motionBlocks; track block) { + @for (block of motionBlocks; track block.id) {
+
+ } } @@ -346,34 +333,35 @@

{{ 'Creation date' | translate }}

} -@if (getOriginMotions().length) { -
-

{{ 'Origin' | translate }}

-
- @for (origin of getOriginMotions(); track origin; let last = $last) { -
- -
-
- @if (!last) { - north - } -
- } +@if (originMotions$ | async; as originMotions) { + @if (originMotions.length) { +
+

{{ 'Origin' | translate }}

+
+ @for (origin of originMotions; track origin.id; let last = $last) { +
+ +
+
+ @if (!last) { + north + } +
+ } +
-
+ } } -@if (amendments && amendments.length > 0) { +@if ((amendments$ | async).length; as amendmentAmount) {

{{ 'Amendments' | translate }}

- {{ amendments.length }} - @if (amendments.length === 1) { + {{ amendmentAmount }} + @if (amendmentAmount === 1) { {{ 'Amendment' | translate }} - } - @if (amendments.length > 1) { + } @else { {{ 'Amendments' | translate }} } @@ -397,8 +385,7 @@

{{ 'Amendments' | translate }}

{{ getMeetingName(motion) }} - } - @if (!canAccess(motion)) { + } @else { {{ getMeetingName(motion) }} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-meta-data/motion-meta-data.component.scss b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-meta-data/motion-meta-data.component.scss similarity index 100% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-meta-data/motion-meta-data.component.scss rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-meta-data/motion-meta-data.component.scss diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-meta-data/motion-meta-data.component.spec.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-meta-data/motion-meta-data.component.spec.ts similarity index 100% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-meta-data/motion-meta-data.component.spec.ts rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-meta-data/motion-meta-data.component.spec.ts diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-meta-data/motion-meta-data.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-meta-data/motion-meta-data.component.ts similarity index 79% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-meta-data/motion-meta-data.component.ts rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-meta-data/motion-meta-data.component.ts index 38ca714a17..e05c5f207c 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-meta-data/motion-meta-data.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-meta-data/motion-meta-data.component.ts @@ -1,6 +1,6 @@ -import { Component, OnDestroy, OnInit } from '@angular/core'; +import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit } from '@angular/core'; import { TranslateService } from '@ngx-translate/core'; -import { BehaviorSubject, distinctUntilChanged, map, Observable, Subscription } from 'rxjs'; +import { BehaviorSubject, map, Observable, Subscription } from 'rxjs'; import { Permission } from 'src/app/domain/definitions/permission'; import { Selectable } from 'src/app/domain/interfaces'; import { Settings } from 'src/app/domain/models/meetings/meeting'; @@ -14,32 +14,37 @@ import { ViewMeeting } from 'src/app/site/pages/meetings/view-models/view-meetin import { ViewUser } from 'src/app/site/pages/meetings/view-models/view-user'; import { OperatorService } from 'src/app/site/services/operator.service'; -import { ParticipantListSortService } from '../../../../../participants/pages/participant-list/services/participant-list-sort/participant-list-sort.service'; -import { MotionForwardDialogService } from '../../../../components/motion-forward-dialog/services/motion-forward-dialog.service'; -import { MotionEditorControllerService } from '../../../../modules/editors/services'; -import { MotionSubmitterControllerService } from '../../../../modules/submitters/services'; -import { MotionWorkingGroupSpeakerControllerService } from '../../../../modules/working-group-speakers/services'; -import { MotionPermissionService } from '../../../../services/common/motion-permission.service/motion-permission.service'; -import { BaseMotionDetailChildComponent } from '../../base/base-motion-detail-child.component'; +import { ParticipantListSortService } from '../../../../../../../participants/pages/participant-list/services/participant-list-sort/participant-list-sort.service'; +import { MotionForwardDialogService } from '../../../../../../components/motion-forward-dialog/services/motion-forward-dialog.service'; +import { MotionEditorControllerService } from '../../../../../../modules/editors/services'; +import { MotionSubmitterControllerService } from '../../../../../../modules/submitters/services'; +import { MotionWorkingGroupSpeakerControllerService } from '../../../../../../modules/working-group-speakers/services'; +import { MotionPermissionService } from '../../../../../../services/common/motion-permission.service/motion-permission.service'; +import { BaseMotionDetailChildComponent } from '../../../../base/base-motion-detail-child.component'; import { SearchListDefinition } from '../motion-extension-field/motion-extension-field.component'; @Component({ selector: `os-motion-meta-data`, templateUrl: `./motion-meta-data.component.html`, - styleUrls: [`./motion-meta-data.component.scss`] + styleUrls: [`./motion-meta-data.component.scss`], + changeDetection: ChangeDetectionStrategy.OnPush }) export class MotionMetaDataComponent extends BaseMotionDetailChildComponent implements OnInit, OnDestroy { - public motionBlocks: MotionBlock[] = []; + public categories$: Observable = this.categoryRepo.getViewModelListObservable(); + public tags$: Observable = this.tagRepo.getViewModelListObservable(); + public motionBlocks$: Observable = this.blockRepo.getViewModelListObservable(); - public categories: ViewMotionCategory[] = []; - - public tags: ViewTag[] = []; + @Input() + public changeRecoMode: ChangeRecoMode; /** * Determine if the name of supporters are visible */ public showSupporters = false; + public minSupporters$ = this.meetingSettingsService.get(`motions_supporters_min_amount`); + public showReferringMotions$ = this.meetingSettingsService.get(`motions_show_referring_motions`); + /** * @returns the current recommendation label (with extension) */ @@ -63,7 +68,7 @@ export class MotionMetaDataComponent extends BaseMotionDetailChildComponent impl } public get isDifferedChangeRecoMode(): boolean { - return this.viewService.currentChangeRecommendationMode === ChangeRecoMode.Diff; + return this.changeRecoMode === ChangeRecoMode.Diff; } /** @@ -86,10 +91,26 @@ export class MotionMetaDataComponent extends BaseMotionDetailChildComponent impl public motionTransformFn = (value: ViewMotion): string => `[${value.fqid}]`; - /** - * All amendments to this motion - */ - public override amendments: ViewMotion[] = []; + public get referencingMotions$(): Observable { + return this.motion?.referenced_in_motion_recommendation_extensions$.pipe( + map(motions => motions.naturalSort(this.translate.currentLang, [`number`, `title`])) + ); + } + + public get referencedMotions$(): Observable { + return this.motion?.recommendation_extension_references$.pipe( + map(motions => (motions as ViewMotion[]).naturalSort(this.translate.currentLang, [`number`, `title`])) + ); + } + + public get originMotions$(): Observable { + if (this.motion.origin_id) { + return this.motion.all_origins$.pipe(map(origins => origins?.reverse())); + } else if (this.motion.origin_meeting_id) { + return this.motion.origin_meeting$.pipe(map(origin => [origin])); + } + return null; + } public override set showAllAmendments(is: boolean) { this.viewService.showAllAmendmentsStateSubject.next(is); @@ -104,20 +125,8 @@ export class MotionMetaDataComponent extends BaseMotionDetailChildComponent impl ); } - public get referencingMotions(): ViewMotion[] { - return this._referencingMotions; - } - - public get referencedMotions(): ViewMotion[] { - return this._referencedMotions; - } - public loadForwardingCommittees: () => Promise; - private _referencingMotions: ViewMotion[]; - - private _referencedMotions: ViewMotion[]; - private _forwardingAvailable = false; public get supportersObservable(): Observable { @@ -148,6 +157,7 @@ export class MotionMetaDataComponent extends BaseMotionDetailChildComponent impl if (operator.hasPerms(Permission.motionCanManageMetadata)) { this.motionForwardingService.forwardingMeetingsAvailable().then(forwardingAvailable => { this._forwardingAvailable = forwardingAvailable; + this.cd.markForCheck(); this.loadForwardingCommittees = async (): Promise => { return (await this.checkPresenter()) as Selectable[]; }; @@ -170,6 +180,15 @@ export class MotionMetaDataComponent extends BaseMotionDetailChildComponent impl super.ngOnDestroy(); } + protected override onAfterInit(): void { + this.setupRecommender(); + } + + protected override onAfterSetMotion(previous: ViewMotion, current: ViewMotion): void { + super.onAfterSetMotion(previous, current); + this.updateSupportersSubject(); + } + /** * Sets the state * @@ -297,15 +316,6 @@ export class MotionMetaDataComponent extends BaseMotionDetailChildComponent impl return allStates.filter(state => state.recommendation_label).sort((a, b) => a.weight - b.weight); } - public getOriginMotions(): (ViewMotion | ViewMeeting)[] { - const copy = this.motion.origin_id - ? [...(this.motion.all_origins || [])] - : this.motion.origin_meeting - ? [this.motion.origin_meeting] - : []; - return copy.reverse(); - } - public getMeetingName(origin: ViewMotion | ViewMeeting): string { if (this.isViewMotion(origin)) { const motion = origin as ViewMotion; @@ -330,11 +340,6 @@ export class MotionMetaDataComponent extends BaseMotionDetailChildComponent impl return origin?.canAccess(); } - protected override onAfterSetMotion(previous: ViewMotion, current: ViewMotion): void { - super.onAfterSetMotion(previous, current); - this.updateSupportersSubject(); - } - private async updateSupportersSubject(): Promise { this._supportersSubject.next(await this.participantSort.sort(this.motion.supporters)); } @@ -343,32 +348,6 @@ export class MotionMetaDataComponent extends BaseMotionDetailChildComponent impl return toTest.COLLECTION === Motion.COLLECTION; } - protected override getSubscriptions(): Subscription[] { - return [ - this.amendmentRepo.getViewModelListObservableFor(this.motion).subscribe(value => (this.amendments = value)), - this.tagRepo.getViewModelListObservable().subscribe(value => (this.tags = value)), - this.categoryRepo.getViewModelListObservable().subscribe(value => (this.categories = value)), - this.blockRepo.getViewModelListObservable().subscribe(value => (this.motionBlocks = value)), - this.repo - .getViewModelObservable(this.motion.id) - .pipe( - map(motion => [ - motion?.referenced_in_motion_recommendation_extensions, - motion?.recommendation_extension_references as ViewMotion[] - ]), - distinctUntilChanged((p, c) => [...Array(2).keys()].every(i => p[i].equals(c[i]))), - map(arr => - arr.map(motions => (motions || []).naturalSort(this.translate.currentLang, [`number`, `title`])) - ) - ) - .subscribe(value => ([this._referencingMotions, this._referencedMotions] = value)) - ]; - } - - protected override onAfterInit(): void { - this.setupRecommender(); - } - /** * Observes the repository for changes in the motion recommender */ diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-personal-note/motion-personal-note.component.html b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-personal-note/motion-personal-note.component.html similarity index 77% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-personal-note/motion-personal-note.component.html rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-personal-note/motion-personal-note.component.html index 7ed0e3f127..aa15c14735 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-personal-note/motion-personal-note.component.html +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-personal-note/motion-personal-note.component.html @@ -6,29 +6,26 @@ - @if (!isEditing) { - - } - @if (!isEditing && (personalNoteObservable | async)) { - - } @if (isEditing) { - } - @if (isEditing) { + } @else { + + @if (personalNoteObservable | async) { + + } } @@ -37,14 +34,12 @@ @if (!isEditing) { @if ((personalNoteObservable | async)?.note; as note) {
- } - @if ((hasPersonalNoteObservable | async) === false) { + } @else {
{{ 'No personal note' | translate }}
} - } - @if (isEditing) { + } @else { diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-personal-note/motion-personal-note.component.scss b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-personal-note/motion-personal-note.component.scss similarity index 100% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-personal-note/motion-personal-note.component.scss rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-personal-note/motion-personal-note.component.scss diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-personal-note/motion-personal-note.component.spec.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-personal-note/motion-personal-note.component.spec.ts similarity index 100% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-personal-note/motion-personal-note.component.spec.ts rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-personal-note/motion-personal-note.component.spec.ts diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-personal-note/motion-personal-note.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-personal-note/motion-personal-note.component.ts similarity index 89% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-personal-note/motion-personal-note.component.ts rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-personal-note/motion-personal-note.component.ts index ebdc007c88..00389e4db0 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-personal-note/motion-personal-note.component.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-personal-note/motion-personal-note.component.ts @@ -4,8 +4,8 @@ import { BehaviorSubject, map, Observable } from 'rxjs'; import { PersonalNote } from 'src/app/domain/models/motions/personal-note'; import { ViewPersonalNote } from 'src/app/site/pages/meetings/pages/motions'; -import { PersonalNoteControllerService } from '../../../../modules/personal-notes/services/personal-note-controller.service/personal-note-controller.service'; -import { MotionPdfExportService } from '../../../../services/export/motion-pdf-export.service/motion-pdf-export.service'; +import { PersonalNoteControllerService } from '../../../../../../modules/personal-notes/services/personal-note-controller.service/personal-note-controller.service'; +import { MotionPdfExportService } from '../../../../../../services/export/motion-pdf-export.service/motion-pdf-export.service'; import { BaseMotionDetailActionCardComponent } from '../../base/base-motion-detail-action-card.component'; const SUBSCRIPTION_NAME = `personal_note_subscription`; diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-view/motion-view.component.html b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-view/motion-view.component.html new file mode 100644 index 0000000000..17c53385cd --- /dev/null +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-view/motion-view.component.html @@ -0,0 +1,222 @@ + + @let hasLoaded = hasLoaded$ | async; + @let isMobile = vp.isMobileSubject | async; + + + @if (motion && hasLoaded) { +
+

+ @if (!isMobile) { + {{ 'Motion' | translate }} + +   + } + {{ motion.number }} +

+
+ } + + @if (showNavigateButtons) { +
+ + +
+ } + + @if (motion) { + + + + } + + @if (hasLoaded) { + + + + + + + + +
+ @if (motion) { + @if (!motion.agenda_item_id) { + + } @else { + + } + } +
+ +
+ +
+ +
+ +
+ @if (perms.isAllowed('update', motion) || perms.isAllowed('manage')) { + + + @if (perms.isAllowed('update', motion)) { + + } + + @if (perms.isAllowed('manage')) { + + } + } + } +
+
+ @if (hasLoaded && motion) { +
+ +
+ +
+ @if (isMobile) { +
+ + + + + + + + + + + + @if (!operator.isAnonymous) { + + } +
+ } @else { +
+
+ + + + @if (!operator.isAnonymous) { + + } +
+
+ + + + + + +
+
+ } +
+ } @else { +
+
+ +
+
+ } +
+ + +
+ +
+
+ + + + + + diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-detail-view/motion-detail-view.component.scss b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-view/motion-view.component.scss similarity index 94% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-detail-view/motion-detail-view.component.scss rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-view/motion-view.component.scss index cbc7763a71..7d5abc6322 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-detail-view/motion-detail-view.component.scss +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-view/motion-view.component.scss @@ -166,3 +166,13 @@ button.motion-detail-nav-button { } } } + +.spinner-container { + min-height: calc(100vh - 100px); + + .spinner-inner-container { + display: flex; + flex-direction: column; + align-items: center; + } +} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-detail-view/motion-detail-view.component.spec.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-view/motion-view.component.spec.ts similarity index 58% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-detail-view/motion-detail-view.component.spec.ts rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-view/motion-view.component.spec.ts index f17af1baaf..3677fc62fe 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/motion-detail-view/motion-detail-view.component.spec.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-view/motion-view.component.spec.ts @@ -1,19 +1,19 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { MotionDetailViewComponent } from './motion-detail-view.component'; +import { MotionViewComponent } from './motion-view.component'; xdescribe(`MotionDetailViewComponent`, () => { - let component: MotionDetailViewComponent; - let fixture: ComponentFixture; + let component: MotionViewComponent; + let fixture: ComponentFixture; beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [MotionDetailViewComponent] + declarations: [MotionViewComponent] }).compileComponents(); }); beforeEach(() => { - fixture = TestBed.createComponent(MotionDetailViewComponent); + fixture = TestBed.createComponent(MotionViewComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-view/motion-view.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-view/motion-view.component.ts new file mode 100644 index 0000000000..af6e6174ae --- /dev/null +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/motion-view/motion-view.component.ts @@ -0,0 +1,489 @@ +import { + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + HostListener, + OnDestroy, + OnInit, + ViewEncapsulation +} from '@angular/core'; +import { ActivatedRoute, RoutesRecognized } from '@angular/router'; +import { TranslateService } from '@ngx-translate/core'; +import { + auditTime, + BehaviorSubject, + combineLatest, + distinctUntilChanged, + filter, + firstValueFrom, + Observable +} from 'rxjs'; +import { Id } from 'src/app/domain/definitions/key-types'; +import { ChangeRecoMode, LineNumberingMode, PERSONAL_NOTE_ID } from 'src/app/domain/models/motions/motions.constants'; +import { BaseMeetingComponent } from 'src/app/site/pages/meetings/base/base-meeting.component'; +import { + ViewMotion, + ViewMotionChangeRecommendation, + ViewUnifiedChange +} from 'src/app/site/pages/meetings/pages/motions'; +import { OperatorService } from 'src/app/site/services/operator.service'; +import { ViewPortService } from 'src/app/site/services/view-port.service'; +import { PromptService } from 'src/app/ui/modules/prompt-dialog'; + +import { AgendaItemControllerService } from '../../../../../../../agenda/services/agenda-item-controller.service/agenda-item-controller.service'; +import { MotionForwardDialogService } from '../../../../../../components/motion-forward-dialog/services/motion-forward-dialog.service'; +import { MotionChangeRecommendationControllerService } from '../../../../../../modules/change-recommendations/services'; +import { MOTION_DETAIL_SUBSCRIPTION } from '../../../../../../motions.subscription'; +import { AmendmentControllerService } from '../../../../../../services/common/amendment-controller.service/amendment-controller.service'; +import { MotionControllerService } from '../../../../../../services/common/motion-controller.service/motion-controller.service'; +import { MotionLineNumberingService } from '../../../../../../services/common/motion-line-numbering.service'; +import { MotionPermissionService } from '../../../../../../services/common/motion-permission.service/motion-permission.service'; +import { MotionPdfExportService } from '../../../../../../services/export/motion-pdf-export.service/motion-pdf-export.service'; +import { AmendmentListFilterService } from '../../../../../../services/list/amendment-list-filter.service/amendment-list-filter.service'; +import { AmendmentListSortService } from '../../../../../../services/list/amendment-list-sort.service/amendment-list-sort.service'; +import { MotionListFilterService } from '../../../../../../services/list/motion-list-filter.service/motion-list-filter.service'; +import { MotionListSortService } from '../../../../../../services/list/motion-list-sort.service/motion-list-sort.service'; +import { MotionDetailViewOriginUrlService } from '../../../../services/motion-detail-view-originurl.service'; + +@Component({ + selector: `os-motion-view`, + templateUrl: `./motion-view.component.html`, + styleUrls: [`./motion-view.component.scss`], + changeDetection: ChangeDetectionStrategy.OnPush, + encapsulation: ViewEncapsulation.None +}) +export class MotionViewComponent extends BaseMeetingComponent implements OnInit, OnDestroy { + public readonly collection = ViewMotion.COLLECTION; + + /** + * Sets the motions, e.g. via an autoupdate. Reload important things here: + * - Reload the recommendation. Not changed with autoupdates, but if the motion is loaded this needs to run. + */ + public set motion(motion: ViewMotion) { + this._motion = motion; + } + + public get motion(): ViewMotion { + return this._motion; + } + + public hasChangeRecommendations: boolean = false; + public unifiedChanges$: BehaviorSubject = new BehaviorSubject([]); + + private get unifiedChanges(): ViewUnifiedChange[] { + return this.unifiedChanges$.value; + } + + /** + * preloaded next motion for direct navigation + */ + public nextMotion: ViewMotion | null = null; + public previousMotion: ViewMotion | null = null; + + public get showNavigateButtons(): boolean { + return !!this.previousMotion || !!this.nextMotion; + } + + private _changeRecoMode: ChangeRecoMode = ChangeRecoMode.Original; + public get changeRecoMode(): ChangeRecoMode { + return this._changeRecoMode; + } + + public set changeRecoMode(value: ChangeRecoMode) { + this._changeRecoMode = value; + this.cd.markForCheck(); + } + + private _lineNumberingMode: LineNumberingMode = LineNumberingMode.None; + public get lineNumberingMode(): LineNumberingMode { + return this._lineNumberingMode; + } + + public set lineNumberingMode(value: LineNumberingMode) { + this._lineNumberingMode = value; + this.cd.markForCheck(); + } + + public hasLoaded$ = new BehaviorSubject(false); + + /** + * List of presorted motions. Filles by sort service + * and filter service. + * To navigate back and forth + */ + private _sortedMotions: ViewMotion[] = []; + + /** + * The observable for the list of motions. Set in OnInit + */ + private _sortedMotionsObservable: Observable = null; + + private _motion: ViewMotion | null = null; + + private _amendmentsInMainList = false; + + private _navigatedFromAmendmentList = false; + + public constructor( + protected override translate: TranslateService, + public vp: ViewPortService, + public operator: OperatorService, + public perms: MotionPermissionService, + private route: ActivatedRoute, + public repo: MotionControllerService, + private promptService: PromptService, + private itemRepo: AgendaItemControllerService, + private motionSortService: MotionListSortService, + private motionFilterService: MotionListFilterService, + private motionForwardingService: MotionForwardDialogService, + private motionLineNumbering: MotionLineNumberingService, + private amendmentRepo: AmendmentControllerService, + private amendmentSortService: AmendmentListSortService, + private amendmentFilterService: AmendmentListFilterService, + private changeRecoRepo: MotionChangeRecommendationControllerService, + private cd: ChangeDetectorRef, + private pdfExport: MotionPdfExportService, + private originUrlService: MotionDetailViewOriginUrlService + ) { + super(); + + this.subscriptions.push( + this.router.events + .pipe( + filter((event): boolean => event instanceof RoutesRecognized), + distinctUntilChanged((p: RoutesRecognized, c: RoutesRecognized) => p?.url === c?.url) + ) + .subscribe(() => this.onMotionChange()) + ); + } + + /** + * Init. + * Sets all required subjects and fills in the required information + */ + public ngOnInit(): void { + this.isNavigatedFromAmendments(); + + this.subscriptions.push( + this.meetingSettingsService + .get(`motions_amendments_in_main_list`) + .subscribe(enabled => (this._amendmentsInMainList = enabled)), + this.meetingSettingsService + .get(`motions_default_line_numbering`) + .subscribe(val => (this.lineNumberingMode = val)), + this.meetingSettingsService + .get(`motions_recommendation_text_mode`) + .subscribe(val => (this.changeRecoMode = val)) + ); + } + + /** + * Called during view destruction. + * Sends a notification to user editors of the motion was edited + */ + public override ngOnDestroy(): void { + super.ngOnDestroy(); + this.amendmentSortService.exitSortService(); + this.motionSortService.exitSortService(); + } + + public onMotionChange(): void { + if (this.hasLoaded$.value) { + this.hasLoaded$.next(false); + } + + this.unifiedChanges$.next([]); + this.subscriptions.delete(`motion`); + this.subscriptions.delete(`sorted-changes`); + } + + public async onMotionIdFound(id: Id | null): Promise { + if (id) { + const lastMeetingId = this.motion?.meeting_id; + const motionSubscription = this.repo.getViewModelObservable(id).pipe(filter(m => !!m)); + this.subscriptions.updateSubscription( + `motion`, + motionSubscription.subscribe(motion => this.onMotionUpdated(motion)) + ); + + const motion = await firstValueFrom(motionSubscription); + if (lastMeetingId !== motion.meeting_id) { + this.isNavigatedFromAmendments(); + this._sortedMotionsObservable = null; + this.subscriptions.delete(`sorted-motions`); + } + await this.modelRequestService.waitSubscriptionReady(MOTION_DETAIL_SUBSCRIPTION); + if (motion.id !== id) { + return; + } + this.onMotionLoaded(); + } + + this.hasLoaded$.next(true); + } + + public onMotionLoaded(): void { + if (!this._sortedMotionsObservable) { + this.updateSortedMotionsObservable(); + } + this.nextMotionLoaded(); + } + + public onMotionUpdated(motion: ViewMotion): void { + const title = motion.getTitle(); + super.setTitle(title); + this.motion = motion; + this.cd.markForCheck(); + } + + /** + * Using Shift, Alt + the arrow keys will navigate between the motions + * + * @param event has the key code + */ + @HostListener(`document:keydown`, [`$event`]) + public onKeyNavigation(event: KeyboardEvent): void { + if (event.key === `ArrowLeft` && event.altKey && event.shiftKey) { + this.navigateToMotion(this.previousMotion); + } + if (event.key === `ArrowRight` && event.altKey && event.shiftKey) { + this.navigateToMotion(this.nextMotion); + } + } + + public goToHistory(): void { + this.router.navigate([this.activeMeetingId!, `history`], { queryParams: { fqid: this.motion.fqid } }); + } + + /** + * Trigger to delete the motion. + */ + public async deleteMotionButton(): Promise { + let title = this.translate.instant(`Are you sure you want to delete this motion? `); + let content = this.motion.getTitle(); + if (this.motion.amendments.length) { + title = this.translate.instant( + `Warning: Amendments exist for this motion. Are you sure you want to delete this motion regardless?` + ); + content = + `${this.translate.instant(`Motion`)} ${this.motion.getTitle()}
` + + `${this.translate.instant(`Deleting this motion will also delete the amendments.`)}
` + + `${this.translate.instant(`List of amendments: `)}
` + + this.motion.amendments + .map(amendment => (amendment.number ? amendment.number : amendment.title)) + .join(`, `); + } + if (await this.promptService.open(title, content)) { + await this.repo.delete(this.motion); + this.router.navigate([this.activeMeetingId, `motions`]); + } + } + + /** + * Goes to the amendment creation wizard. Executed via click. + */ + public createAmendment(): void { + const amendmentTextMode = this.meetingSettingsService.instant(`motions_amendments_text_mode`); + if (amendmentTextMode === `paragraph`) { + this.router.navigate([`create-amendment`], { relativeTo: this.route }); + } else { + this.router.navigate([this.activeMeetingId, `motions`, `new`], { + relativeTo: this.route.snapshot.params[`relativeTo`], + queryParams: { parent: this.motion.id || null } + }); + } + } + + /** + * Navigates the user to the given ViewMotion + * + * @param motion target + */ + public navigateToMotion(motion: ViewMotion | null): void { + if (motion) { + this.router.navigate([this.activeMeetingId, `motions`, motion.sequential_number]); + this.setSurroundingMotions(); + } + } + + public async forwardMotionToMeetings(): Promise { + await this.motionForwardingService.forwardMotionsToMeetings(this.motion); + } + + /** + * Click handler for the pdf button + */ + public downloadPdf(): void { + this.pdfExport.exportSingleMotion(this.motion, { + lnMode: + this.lineNumberingMode === LineNumberingMode.Inside + ? LineNumberingMode.Outside + : this.lineNumberingMode, + crMode: this.changeRecoMode, + // export all comment fields as well as personal note + comments: this.motion.usedCommentSectionIds.concat([PERSONAL_NOTE_ID]) + }); + } + + public addToAgenda(): void { + this.itemRepo.addToAgenda({}, this.motion).resolve().catch(this.raiseError); + } + + public removeFromAgenda(): void { + this.itemRepo.removeFromAgenda(this.motion.agenda_item_id!).catch(this.raiseError); + } + + private nextMotionLoaded(): void { + this.changeRecoMode = + this.meetingSettingsService.instant(`motions_recommendation_text_mode`) || ChangeRecoMode.Original; + + let previousAmendments: ViewMotion[] = null; + this.subscriptions.updateSubscription( + `sorted-changes`, + combineLatest([ + this.meetingSettingsService.get(`motions_line_length`), + this.changeRecoRepo.getChangeRecosOfMotionObservable(this.motion.id).pipe(filter(value => !!value)), + this.amendmentRepo.getViewModelListObservableFor(this.motion).pipe(filter(value => !!value)) + ]) + .pipe(auditTime(1)) // Needed to replicate behaviour of base-repository list updates + .subscribe(([lineLength, changeRecos, amendments]) => { + if (previousAmendments !== amendments) { + this.motionLineNumbering.resetAmendmentChangeRecoListeners(amendments); + previousAmendments = amendments; + } + this.hasChangeRecommendations = !!changeRecos?.length; + this.unifiedChanges$.next( + this.motionLineNumbering.recalcUnifiedChanges( + lineLength, + changeRecos as ViewMotionChangeRecommendation[], + amendments + ) + ); + this.changeRecoMode = this.determineCrMode(this.changeRecoMode); + this.cd.markForCheck(); + }) + ); + } + + private updateSortedMotionsObservable(): void { + // use the filter and the search service to get the current sorting + if (this.motion && this.motion.lead_motion_id && !this._amendmentsInMainList) { + // only use the amendments for this motion + this.amendmentSortService.initSorting(); + this.amendmentFilterService.initFilters( + this.amendmentRepo.getSortedViewModelListObservableFor( + { id: this.motion.lead_motion_id }, + this.amendmentSortService.repositorySortingKey + ) + ); + this._sortedMotionsObservable = this.amendmentFilterService.outputObservable; + } else { + this.motionSortService.initSorting(); + this.motionFilterService.initFilters( + this.repo.getSortedViewModelListObservable(this.motionSortService.repositorySortingKey) + ); + this._sortedMotionsObservable = this.motionFilterService.outputObservable; + } + + if (this._sortedMotionsObservable) { + this.subscriptions.updateSubscription( + `sorted-motions`, + this._sortedMotionsObservable.subscribe(motions => { + if (motions) { + this._sortedMotions = motions; + this.setSurroundingMotions(); + } + }) + ); + } + } + + /** + * Sets the previous and next motion. Sorts by the current sorting as used + * in the {@link MotionSortListService} or {@link AmendmentSortListService}, + * respectively + */ + private setSurroundingMotions(): void { + const indexOfCurrent = this._sortedMotions.findIndex(motion => motion === this.motion); + if (indexOfCurrent > 0) { + this.previousMotion = this.findNextSuitableMotion(indexOfCurrent, -1); + } else { + this.previousMotion = null; + } + if (indexOfCurrent > -1 && indexOfCurrent < this._sortedMotions.length - 1) { + this.nextMotion = this.findNextSuitableMotion(indexOfCurrent, 1); + } else { + this.nextMotion = null; + } + this.cd.markForCheck(); + } + + /** + * Sets @var this._navigatedFromAmendmentList on navigation from either of both lists. + * Does nothing on navigation between two motions. + */ + private isNavigatedFromAmendments(): void { + const previousUrl = this.originUrlService.getPreviousUrl(); + if (!!previousUrl) { + if (previousUrl.endsWith(`amendments`)) { + this._navigatedFromAmendmentList = true; + } else if (previousUrl.endsWith(`motions`)) { + this._navigatedFromAmendmentList = false; + } + } + } + + /** + * Finds the next suitable motion. + * If @var this._amendmentsInMainList as well as @var this._navigatedFromAmendmentList collide + * iterates over the next or previous motions to find the first with lead motion. + * @param indexOfCurrent The index from the active motion. + * @param step Stepwidth to iterate eiter over the previous or next motions. + */ + private findNextSuitableMotion(indexOfCurrent: number, step: number): ViewMotion { + if (!this._amendmentsInMainList || !this._navigatedFromAmendmentList) { + return this._sortedMotions[indexOfCurrent + step]; + } + + for (let i = indexOfCurrent + step; 0 <= i && i <= this._sortedMotions.length - 1; i += step) { + if (!!this._sortedMotions[i].hasLeadMotion) { + return this._sortedMotions[i]; + } + } + return null; + } + + /** + * Tries to determine the realistic CR-Mode from a given CR mode + */ + private determineCrMode(mode: ChangeRecoMode): ChangeRecoMode { + if (mode === ChangeRecoMode.Final) { + if (this.motion?.modified_final_version) { + return ChangeRecoMode.ModifiedFinal; + /** + * Because without change recos you cannot escape the final version anymore + */ + } else if (!this.unifiedChanges.some(change => change.showInFinalView())) { + return ChangeRecoMode.Original; + } + } else if (mode === ChangeRecoMode.Changed && !this.hasChangeRecommendations) { + /** + * Because without change recos you cannot escape the changed version view + * You will not be able to automatically change to the Changed view after creating + * a change reco. The autoupdate has to come "after" this routine + */ + return ChangeRecoMode.Original; + } else if ( + mode === ChangeRecoMode.Diff && + !this.hasChangeRecommendations && + this.motion?.isParagraphBasedAmendment() + ) { + /** + * The Diff view for paragraph-based amendments is only relevant for change recommendations; + * the regular amendment changes are shown in the "original" view. + */ + return ChangeRecoMode.Original; + } + return mode; + } +} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/paragraph-based-amendment/paragraph-based-amendment.component.html b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/paragraph-based-amendment/paragraph-based-amendment.component.html new file mode 100644 index 0000000000..50018f9875 --- /dev/null +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/paragraph-based-amendment/paragraph-based-amendment.component.html @@ -0,0 +1,104 @@ +
+ + @if (amendmentLines) { +
+ @if (amendmentLines.length === 0) { +
+ @if (motion.lead_motion) { + {{ 'No changes at the text.' | translate }} + } @else { + {{ 'The parent motion is not available.' | translate }} + } +
+ } + @if (amendmentErrorMessage) { +
+ +
+ } + @if (motion.lead_motion && !isFinalEdit) { + @if (changeRecoMode === ChangeRecoMode.Diff) { + + } + @for (paragraph of getAmendmentParagraphs(); track $index) { + + @if (changeRecoMode === ChangeRecoMode.Diff) { + + } + } + } @else if (changeRecoMode === ChangeRecoMode.Diff) { + + } +
+ } @else { +
+ + {{ 'There is an error with this amendment. Please edit it manually.' | translate }} + +
+ } +
+ +@if (changeRecoMode === ChangeRecoMode.Original || changeRecoMode === ChangeRecoMode.Changed) { +
+ @if (motion && motion.isParagraphBasedAmendment() && motion.lead_motion) { + + {{ 'Show entire motion text' | translate }} + + } +
+} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/paragraph-based-amendment/paragraph-based-amendment.component.scss b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/paragraph-based-amendment/paragraph-based-amendment.component.scss new file mode 100644 index 0000000000..218d7e307a --- /dev/null +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/paragraph-based-amendment/paragraph-based-amendment.component.scss @@ -0,0 +1,8 @@ +.alert-inconsistency { + color: red; + font-style: italic; +} + +.motion-text > os-motion-detail-diff { + margin-left: -40px; +} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/paragraph-based-amendment/paragraph-based-amendment.component.spec.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/paragraph-based-amendment/paragraph-based-amendment.component.spec.ts similarity index 100% rename from client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/components/paragraph-based-amendment/paragraph-based-amendment.component.spec.ts rename to client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/paragraph-based-amendment/paragraph-based-amendment.component.spec.ts diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/paragraph-based-amendment/paragraph-based-amendment.component.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/paragraph-based-amendment/paragraph-based-amendment.component.ts new file mode 100644 index 0000000000..3f4d12e074 --- /dev/null +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/components/paragraph-based-amendment/paragraph-based-amendment.component.ts @@ -0,0 +1,108 @@ +import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output } from '@angular/core'; +import { TranslateService } from '@ngx-translate/core'; +import { UnsafeHtml } from 'src/app/domain/definitions/key-types'; +import { ChangeRecoMode, LineNumberingMode } from 'src/app/domain/models/motions/motions.constants'; +import { LineRange } from 'src/app/site/pages/meetings/pages/motions/definitions'; +import { ViewUnifiedChange } from 'src/app/site/pages/meetings/pages/motions/modules/change-recommendations/view-models/view-unified-change'; + +import { DiffLinesInParagraph } from '../../../../../../definitions/index'; +import { BaseMotionDetailChildComponent } from '../../../../base/base-motion-detail-child.component'; + +@Component({ + selector: `os-paragraph-based-amendment`, + templateUrl: `./paragraph-based-amendment.component.html`, + styleUrls: [`./paragraph-based-amendment.component.scss`], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class ParagraphBasedAmendmentComponent extends BaseMotionDetailChildComponent { + public readonly LineNumberingMode = LineNumberingMode; + public readonly ChangeRecoMode = ChangeRecoMode; + + @Input() + public changesForDiffMode: ViewUnifiedChange[] = []; + + @Input() + public highlightedLine!: number; + + @Input() + public isFinalEdit = false; + + @Input() + public lineNumberingMode: LineNumberingMode; + + private _changeRecoMode: ChangeRecoMode; + + @Input() + public set changeRecoMode(value: ChangeRecoMode) { + this._changeRecoMode = value; + this.showAmendmentContext = false; + } + + public get changeRecoMode(): ChangeRecoMode { + return this._changeRecoMode; + } + + @Output() + public createChangeRecommendation = new EventEmitter(); + + @Output() + public gotoChangeRecommendation = new EventEmitter(); + + public scrollToChange: ViewUnifiedChange | null = null; + + public showAmendmentContext = false; + + public amendmentErrorMessage: string | null = null; + + public get amendmentLines(): DiffLinesInParagraph[] | null { + return this.motion?.changedAmendmentLines; + } + + public get nativeElement(): any { + return this.el.nativeElement; + } + + public constructor( + protected override translate: TranslateService, + private el: ElementRef + ) { + super(); + } + + /** + * This returns the plain HTML of a changed area in an amendment, including its context, + * for the purpose of piping it into . + * This component works with plain HTML, hence we are composing plain HTML here, too. + * + * @param {DiffLinesInParagraph} paragraph + * @returns {string} + * + * TODO: Seems to be directly duplicated in the slide + */ + public getAmendmentDiffTextWithContext(paragraph: DiffLinesInParagraph): UnsafeHtml { + return ( + `
${paragraph.textPre}
` + + `
${paragraph.text}
` + + `
${paragraph.textPost}
` + ); + } + + /** + * If `this.motion` is an amendment, this returns the list of all changed paragraphs. + * + * @returns {DiffLinesInParagraph[]} + */ + public getAmendmentParagraphs(): DiffLinesInParagraph[] { + try { + this.amendmentErrorMessage = null; + return this.motion?.getAmendmentParagraphLines(this.changeRecoMode, this.showAmendmentContext) || []; + } catch (e: any) { + this.amendmentErrorMessage = e.toString(); + return []; + } + } + + public getAmendmentParagraphLinesTitle(paragraph: DiffLinesInParagraph): string { + return this.motion?.getParagraphTitleByParagraph(paragraph) || ``; + } +} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/motion-view-routing.module.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/motion-view-routing.module.ts new file mode 100644 index 0000000000..59e0d1cd2c --- /dev/null +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/motion-view-routing.module.ts @@ -0,0 +1,12 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; + +import { MotionViewComponent } from './components/motion-view/motion-view.component'; + +const routes: Routes = [{ path: ``, component: MotionViewComponent, pathMatch: `full` }]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class MotionViewRoutingModule {} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/motion-view.module.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/motion-view.module.ts new file mode 100644 index 0000000000..71292d4e2d --- /dev/null +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/pages/motion-view/motion-view.module.ts @@ -0,0 +1,11 @@ +import { CommonModule } from '@angular/common'; +import { NgModule } from '@angular/core'; +import { OpenSlidesTranslationModule } from 'src/app/site/modules/translations'; + +import { MotionViewRoutingModule } from './motion-view-routing.module'; + +@NgModule({ + declarations: [], + imports: [CommonModule, MotionViewRoutingModule, OpenSlidesTranslationModule.forChild()] +}) +export class MotionViewModule {} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/services/motion-detail-service-collector.service/motion-detail-service-collector.service.spec.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/services/motion-detail-service-collector.service/motion-detail-service-collector.service.spec.ts deleted file mode 100644 index e2d8b15024..0000000000 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/services/motion-detail-service-collector.service/motion-detail-service-collector.service.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { MotionDetailServiceCollectorService } from './motion-detail-service-collector.service'; - -xdescribe(`MotionDetailServiceCollectorService`, () => { - let service: MotionDetailServiceCollectorService; - - beforeEach(() => { - TestBed.configureTestingModule({}); - service = TestBed.inject(MotionDetailServiceCollectorService); - }); - - it(`should be created`, () => { - expect(service).toBeTruthy(); - }); -}); diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/services/motion-detail-service-collector.service/motion-detail-service-collector.service.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/services/motion-detail-service-collector.service/motion-detail-service-collector.service.ts deleted file mode 100644 index e0e083d247..0000000000 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/services/motion-detail-service-collector.service/motion-detail-service-collector.service.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { Injectable } from '@angular/core'; -import { ParticipantControllerService } from 'src/app/site/pages/meetings/pages/participants/services/common/participant-controller.service/participant-controller.service'; - -import { MotionCategoryControllerService } from '../../../../modules/categories/services/motion-category-controller.service/motion-category-controller.service'; -import { MotionChangeRecommendationControllerService } from '../../../../modules/change-recommendations/services/motion-change-recommendation-controller.service/motion-change-recommendation-controller.service'; -import { MotionBlockControllerService } from '../../../../modules/motion-blocks/services/motion-block-controller.service/motion-block-controller.service'; -import { TagControllerService } from '../../../../modules/tags/services/tag-controller.service/tag-controller.service'; -import { MotionWorkflowControllerService } from '../../../../modules/workflows/services/motion-workflow-controller.service/motion-workflow-controller.service'; -import { AmendmentControllerService } from '../../../../services/common/amendment-controller.service'; -import { MotionControllerService } from '../../../../services/common/motion-controller.service/motion-controller.service'; -import { MotionFormatService } from '../../../../services/common/motion-format.service/motion-format.service'; -import { MotionLineNumberingService } from '../../../../services/common/motion-line-numbering.service/motion-line-numbering.service'; -import { MotionDetailServiceModule } from '../motion-detail-service.module'; -import { MotionDetailViewService } from '../motion-detail-view.service'; - -@Injectable({ - providedIn: MotionDetailServiceModule -}) -export class MotionDetailServiceCollectorService { - public constructor( - public changeRecoRepo: MotionChangeRecommendationControllerService, - public participantRepo: ParticipantControllerService, - public motionRepo: MotionControllerService, - public amendmentRepo: AmendmentControllerService, - public workflowRepo: MotionWorkflowControllerService, - public categoryRepo: MotionCategoryControllerService, - public blockRepo: MotionBlockControllerService, - public tagRepo: TagControllerService, - public motionLineNumbering: MotionLineNumberingService, - public motionViewService: MotionDetailViewService, - public motionFormatService: MotionFormatService - ) {} -} diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/services/motion-detail-view.service/motion-detail-view.service.ts b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/services/motion-detail-view.service/motion-detail-view.service.ts index 280d0803f3..abadbb4c56 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/services/motion-detail-view.service/motion-detail-view.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-detail/services/motion-detail-view.service/motion-detail-view.service.ts @@ -1,6 +1,5 @@ import { Injectable } from '@angular/core'; import { BehaviorSubject, Subject } from 'rxjs'; -import { ChangeRecoMode, LineNumberingMode } from 'src/app/domain/models/motions/motions.constants'; import { MotionDetailServiceModule } from '../motion-detail-service.module'; @@ -14,20 +13,10 @@ export enum ModifiedFinalVersionAction { providedIn: MotionDetailServiceModule }) export class MotionDetailViewService { - public get currentLineNumberingMode(): LineNumberingMode { - return this.lineNumberingModeSubject.value; - } - - public get currentChangeRecommendationMode(): ChangeRecoMode { - return this.changeRecommendationModeSubject.value; - } - public get currentShowAllAmendmentsState(): boolean { return this.showAllAmendmentsStateSubject.value; } - public readonly lineNumberingModeSubject = new BehaviorSubject(LineNumberingMode.None); - public readonly changeRecommendationModeSubject = new BehaviorSubject(ChangeRecoMode.Original); public readonly showAllAmendmentsStateSubject = new BehaviorSubject(false); public readonly modifiedFinalVersionActionSubject = new Subject(); @@ -36,7 +25,5 @@ export class MotionDetailViewService { */ public reset(): void { this.showAllAmendmentsStateSubject.next(false); - this.changeRecommendationModeSubject.next(ChangeRecoMode.Original); - this.lineNumberingModeSubject.next(LineNumberingMode.None); } } diff --git a/client/src/app/site/pages/meetings/pages/motions/pages/motion-polls/components/motion-poll-detail/motion-poll-detail.component.html b/client/src/app/site/pages/meetings/pages/motions/pages/motion-polls/components/motion-poll-detail/motion-poll-detail.component.html index 0209253dfc..d5561a1d0f 100644 --- a/client/src/app/site/pages/meetings/pages/motions/pages/motion-polls/components/motion-poll-detail/motion-poll-detail.component.html +++ b/client/src/app/site/pages/meetings/pages/motions/pages/motion-polls/components/motion-poll-detail/motion-poll-detail.component.html @@ -35,8 +35,13 @@

{{ poll.title | translate }}

+ @if (showResults && poll.stateHasVotes && poll.isEVoting) { + @if (poll.type === 'named') { + + } +
diff --git a/client/src/app/site/pages/meetings/pages/motions/services/common/amendment-controller.service/amendment-controller.service.ts b/client/src/app/site/pages/meetings/pages/motions/services/common/amendment-controller.service/amendment-controller.service.ts index af67de8d84..2491e5cf78 100644 --- a/client/src/app/site/pages/meetings/pages/motions/services/common/amendment-controller.service/amendment-controller.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/services/common/amendment-controller.service/amendment-controller.service.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { map, Observable } from 'rxjs'; +import { distinctUntilChanged, map, Observable } from 'rxjs'; import { Id } from 'src/app/domain/definitions/key-types'; import { Identifiable } from 'src/app/domain/interfaces'; import { Motion } from 'src/app/domain/models/motions/motion'; @@ -42,7 +42,13 @@ export class AmendmentControllerService { public getViewModelListObservableFor(motion: Identifiable): Observable { return this.getViewModelListObservable().pipe( - map(_motions => _motions.filter(_motion => _motion.lead_motion_id === motion.id)) + map(_motions => _motions.filter(_motion => _motion.lead_motion_id === motion.id)), + distinctUntilChanged( + (prev, curr) => + prev?.length === curr?.length && + Math.max(...prev.map(e => e.viewModelUpdateTimestamp)) === + Math.max(...curr.map(e => e.viewModelUpdateTimestamp)) + ) ); } diff --git a/client/src/app/site/pages/meetings/pages/motions/services/export/motion-csv-export.service/motion-csv-export.service.ts b/client/src/app/site/pages/meetings/pages/motions/services/export/motion-csv-export.service/motion-csv-export.service.ts index 8a767df277..7c3173bb84 100644 --- a/client/src/app/site/pages/meetings/pages/motions/services/export/motion-csv-export.service/motion-csv-export.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/services/export/motion-csv-export.service/motion-csv-export.service.ts @@ -102,7 +102,12 @@ export class MotionCsvExportService { const properties = sortMotionPropertyList([`number`, `title`].concat(contentToExport)); const exportProperties: (CsvColumnDefinitionProperty | CsvColumnDefinitionMap)[] = properties.map(option => { - if (option === `recommendation`) { + if (option === `submitters`) { + return { + label: `submitters`, + map: motion => motion.mapSubmittersWithAdditional(s => s.full_name).join(`, `) + }; + } else if (option === `recommendation`) { return { label: `recommendation`, map: motion => this.motionService.getExtendedRecommendationLabel(motion) diff --git a/client/src/app/site/pages/meetings/pages/motions/services/export/motion-pdf.service/motion-pdf.service.ts b/client/src/app/site/pages/meetings/pages/motions/services/export/motion-pdf.service/motion-pdf.service.ts index 91c4b0a3dd..7c95c52843 100644 --- a/client/src/app/site/pages/meetings/pages/motions/services/export/motion-pdf.service/motion-pdf.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/services/export/motion-pdf.service/motion-pdf.service.ts @@ -171,7 +171,7 @@ export class MotionPdfService { exportInfo && exportInfo.pdfOptions && exportInfo.pdfOptions.includes(MOTION_PDF_OPTIONS.Attachments) && - motion.attachments.length > 0 + motion.attachment_meeting_mediafiles.length > 0 ) { motionPdfContent.push(this.createAttachments(motion)); } @@ -735,8 +735,8 @@ export class MotionPdfService { margin: [0, 10, 0, 10] }); - for (const key of Object.keys(motion.attachments)) { - const attachment = motion.attachments[key]; + for (const key of Object.keys(motion.attachment_meeting_mediafiles)) { + const attachment = motion.attachment_meeting_mediafiles[key]; const fileUrl = attachment.getDetailStateUrl(); if (this.pdfImagesService.isImageUsableForPdf(attachment.mimetype)) { this.pdfImagesService.addImageUrl(fileUrl); diff --git a/client/src/app/site/pages/meetings/pages/motions/services/export/motion-xlsx-export.service/motion-xlsx-export.service.ts b/client/src/app/site/pages/meetings/pages/motions/services/export/motion-xlsx-export.service/motion-xlsx-export.service.ts index 465c3d0279..ce89c9579f 100644 --- a/client/src/app/site/pages/meetings/pages/motions/services/export/motion-xlsx-export.service/motion-xlsx-export.service.ts +++ b/client/src/app/site/pages/meetings/pages/motions/services/export/motion-xlsx-export.service/motion-xlsx-export.service.ts @@ -158,6 +158,9 @@ export class MotionXlsxExportService { data.push( ...properties.map(property => { const motionProp = motion[property as keyof ViewMotion]; + if (property === `submitters`) { + return motion.mapSubmittersWithAdditional(s => s.full_name).join(`, `); + } if (property === `speakers`) { return motion.list_of_speakers && motion.list_of_speakers.waitingSpeakerAmount > 0 ? motion.list_of_speakers.waitingSpeakerAmount diff --git a/client/src/app/site/pages/meetings/pages/motions/styles/motion-common-styles.scss b/client/src/app/site/pages/meetings/pages/motions/styles/motion-common-styles.scss index 5b29e64e27..895d31e39f 100644 --- a/client/src/app/site/pages/meetings/pages/motions/styles/motion-common-styles.scss +++ b/client/src/app/site/pages/meetings/pages/motions/styles/motion-common-styles.scss @@ -1,7 +1,9 @@ +@import 'src/assets/styles/mixins/detail-view-appearance.scss'; + .motion-text { ins, .insert { - color: green; + color: green !important; text-decoration: underline; a { color: green; @@ -10,7 +12,7 @@ del, .delete { - color: red; + color: red !important; text-decoration: line-through; a { color: red; @@ -131,4 +133,6 @@ &.amendment-context .paragraphcontext { opacity: 1; } + + @include detail-view-appearance; } diff --git a/client/src/app/site/pages/meetings/pages/motions/view-models/view-motion.ts b/client/src/app/site/pages/meetings/pages/motions/view-models/view-motion.ts index 9674d4ec0a..1bb761bd2e 100644 --- a/client/src/app/site/pages/meetings/pages/motions/view-models/view-motion.ts +++ b/client/src/app/site/pages/meetings/pages/motions/view-models/view-motion.ts @@ -19,7 +19,7 @@ import { ViewMeetingUser } from '../../../view-models/view-meeting-user'; import { ViewUser } from '../../../view-models/view-user'; import { HasListOfSpeakers } from '../../agenda/modules/list-of-speakers'; import { HasAgendaItem } from '../../agenda/view-models/has-agenda-item'; -import { HasAttachment } from '../../mediafiles/view-models/has-attachment'; +import { HasAttachmentMeetingMediafiles } from '../../mediafiles/view-models/has-attachment'; import { HasPolls, VotingTextContext } from '../../polls'; import { DiffLinesInParagraph } from '../definitions'; import { ViewMotionChangeRecommendation, ViewMotionWorkflow } from '../modules'; @@ -35,10 +35,11 @@ import { ViewMotionSubmitter } from '../modules/submitters'; import { HasTags } from '../modules/tags/view-models/has-tags'; import { ViewMotionWorkingGroupSpeaker } from '../modules/working-group-speakers'; -export interface HasReferencedMotionsInExtension extends HasReferencedMotionInExtensionIds { - referenced_in_motion_state_extensions: ViewMotion[]; - referenced_in_motion_recommendation_extensions: ViewMotion[]; -} +export type HasReferencedMotionsInExtension = HasReferencedMotionInExtensionIds & + ViewModelRelations<{ + referenced_in_motion_state_extensions: ViewMotion[]; + referenced_in_motion_recommendation_extensions: ViewMotion[]; + }>; export enum ForwardingStatus { none = `none`, @@ -317,7 +318,7 @@ export class ViewMotion extends BaseProjectableViewModel { } public hasAttachments(): boolean { - return this.attachment_ids?.length > 0; + return this.attachment_meeting_mediafile_ids?.length > 0; } public hasTags(): boolean { @@ -406,7 +407,7 @@ export interface ViewMotion extends Motion, ViewModelRelations, HasMeeting, - HasAttachment, + HasAttachmentMeetingMediafiles, HasPersonalNote, HasTags, HasAgendaItem, diff --git a/client/src/app/site/pages/meetings/pages/participants/modules/groups/view-models/view-group.ts b/client/src/app/site/pages/meetings/pages/participants/modules/groups/view-models/view-group.ts index 8842018ca1..bd21a3d0ca 100644 --- a/client/src/app/site/pages/meetings/pages/participants/modules/groups/view-models/view-group.ts +++ b/client/src/app/site/pages/meetings/pages/participants/modules/groups/view-models/view-group.ts @@ -27,8 +27,8 @@ export class ViewGroup extends BaseHasMeetingUsersViewModel { interface IGroupRelations { default_group_for_meeting: ViewMeeting; admin_group_for_meeting: ViewMeeting; - mediafile_access_groups: ViewMediafile[]; - mediafile_inherited_access_groups: ViewMediafile[]; + meeting_mediafile_access_groups: ViewMediafile[]; + meeting_mediafile_inherited_access_groups: ViewMediafile[]; read_comment_sections: ViewMotionCommentSection[]; write_comment_sections: ViewMotionCommentSection[]; read_chat_groups: ViewChatGroup[]; diff --git a/client/src/app/site/pages/meetings/pages/participants/pages/participant-detail/components/participant-detail-view/participant-detail-view.component.ts b/client/src/app/site/pages/meetings/pages/participants/pages/participant-detail/components/participant-detail-view/participant-detail-view.component.ts index be13c4051d..a961f6f871 100644 --- a/client/src/app/site/pages/meetings/pages/participants/pages/participant-detail/components/participant-detail-view/participant-detail-view.component.ts +++ b/client/src/app/site/pages/meetings/pages/participants/pages/participant-detail/components/participant-detail-view/participant-detail-view.component.ts @@ -255,11 +255,7 @@ export class ParticipantDetailViewComponent extends BaseMeetingComponent { * * @param event has the code */ - public onKeyDown(event: KeyboardEvent): void { - if (event.key === `Enter` && event.shiftKey) { - this.saveUser(); - } - } + public onKeyDown(_event: KeyboardEvent): void {} public getSaveAction(): () => Promise { return () => this.saveUser(); diff --git a/client/src/app/site/pages/meetings/pages/participants/pages/participant-detail/pages/participant-detail-manage/components/participant-create-wizard/participant-create-wizard.component.html b/client/src/app/site/pages/meetings/pages/participants/pages/participant-detail/pages/participant-detail-manage/components/participant-create-wizard/participant-create-wizard.component.html index dcd75187b4..6431f187d8 100644 --- a/client/src/app/site/pages/meetings/pages/participants/pages/participant-detail/pages/participant-detail-manage/components/participant-create-wizard/participant-create-wizard.component.html +++ b/client/src/app/site/pages/meetings/pages/participants/pages/participant-detail/pages/participant-detail-manage/components/participant-create-wizard/participant-create-wizard.component.html @@ -57,12 +57,26 @@

{{ 'Personal information' | translate }}

- - - {{ 'Email' | translate }} - - {{ 'Please enter a valid email address!' | translate }} - +
+ + + {{ 'Email' | translate }} + + {{ 'Please enter a valid email address!' | translate }} + + + + + {{ 'Membership number' | translate }} + + +
{{ 'Username' | translate }} diff --git a/client/src/app/site/pages/meetings/pages/participants/pages/participant-detail/pages/participant-detail-manage/components/participant-create-wizard/participant-create-wizard.component.ts b/client/src/app/site/pages/meetings/pages/participants/pages/participant-detail/pages/participant-detail-manage/components/participant-create-wizard/participant-create-wizard.component.ts index c96f25cb1a..af42444849 100644 --- a/client/src/app/site/pages/meetings/pages/participants/pages/participant-detail/pages/participant-detail-manage/components/participant-create-wizard/participant-create-wizard.component.ts +++ b/client/src/app/site/pages/meetings/pages/participants/pages/participant-detail/pages/participant-detail-manage/components/participant-create-wizard/participant-create-wizard.component.ts @@ -173,6 +173,7 @@ export class ParticipantCreateWizardComponent extends BaseMeetingComponent imple username: [``], first_name: [``], last_name: [``], + member_number: [``], email: [``, createEmailValidator()] }, { diff --git a/client/src/app/site/pages/meetings/pages/participants/pages/participant-list/components/participant-list/participant-list.component.html b/client/src/app/site/pages/meetings/pages/participants/pages/participant-list/components/participant-list/participant-list.component.html index 35cd6bbfe0..502a32db89 100644 --- a/client/src/app/site/pages/meetings/pages/participants/pages/participant-list/components/participant-list/participant-list.component.html +++ b/client/src/app/site/pages/meetings/pages/participants/pages/participant-list/components/participant-list/participant-list.component.html @@ -43,7 +43,7 @@

{{ 'Participants' | translate }}

@if (!isMultiSelect) { - + }
diff --git a/client/src/app/site/pages/meetings/pages/participants/pages/participant-list/components/participant-list/participant-list.component.ts b/client/src/app/site/pages/meetings/pages/participants/pages/participant-list/components/participant-list/participant-list.component.ts index 2c21579e4b..1ce9a0679e 100644 --- a/client/src/app/site/pages/meetings/pages/participants/pages/participant-list/components/participant-list/participant-list.component.ts +++ b/client/src/app/site/pages/meetings/pages/participants/pages/participant-list/components/participant-list/participant-list.component.ts @@ -511,4 +511,8 @@ export class ParticipantListComponent extends BaseMeetingListViewComponent { public static COLLECTION = Vote.COLLECTION; protected _collection = Vote.COLLECTION; @@ -11,6 +14,14 @@ export class ViewVote extends BaseViewModel { public get vote(): Vote { return this._model; } + + public get structureLevelIds(): Id[] { + return this.user.structure_level_ids(); + } + + public get groupIds(): Id[] { + return this.user.group_ids(); + } } interface IViewVoteRelations { diff --git a/client/src/app/site/pages/meetings/pages/projectors/projectors.subscription.ts b/client/src/app/site/pages/meetings/pages/projectors/projectors.subscription.ts index 4205a5bb88..b7a3917aed 100644 --- a/client/src/app/site/pages/meetings/pages/projectors/projectors.subscription.ts +++ b/client/src/app/site/pages/meetings/pages/projectors/projectors.subscription.ts @@ -13,7 +13,6 @@ export const projectionContentObjectFieldset = [ `title`, `meeting_id`, `sequential_number`, - `owner_id`, `agenda_item_id` ]; @@ -32,15 +31,33 @@ export const getProjectorListSubscriptionConfig: SubscriptionConfigGenerator = ( { idField: `current_projection_ids`, fieldset: FULL_FIELDSET, - follow: [{ idField: `content_object_id`, fieldset: projectionContentObjectFieldset }] + follow: [ + { + idField: `content_object_id`, + fieldset: projectionContentObjectFieldset, + follow: [{ idField: `mediafile_id`, fieldset: [`owner_id`, `title`] }] + } + ] }, { idField: `preview_projection_ids`, - follow: [{ idField: `content_object_id`, fieldset: projectionContentObjectFieldset }] + follow: [ + { + idField: `content_object_id`, + fieldset: projectionContentObjectFieldset, + follow: [{ idField: `mediafile_id`, fieldset: [`owner_id`, `title`] }] + } + ] }, { idField: `history_projection_ids`, - follow: [{ idField: `content_object_id`, fieldset: projectionContentObjectFieldset }] + follow: [ + { + idField: `content_object_id`, + fieldset: projectionContentObjectFieldset, + follow: [{ idField: `mediafile_id`, fieldset: [`owner_id`, `title`] }] + } + ] } ] }, @@ -75,7 +92,13 @@ export const getProjectorSubscriptionConfig: SubscriptionConfigGenerator = (id: { idField: `current_projection_ids`, fieldset: FULL_FIELDSET, - follow: [{ idField: `content_object_id`, fieldset: projectionContentObjectFieldset }] + follow: [ + { + idField: `content_object_id`, + fieldset: projectionContentObjectFieldset, + follow: [{ idField: `mediafile_id`, fieldset: [`owner_id`, `title`] }] + } + ] } ] }, diff --git a/client/src/app/site/pages/meetings/services/active-meeting-id.service.ts b/client/src/app/site/pages/meetings/services/active-meeting-id.service.ts index 954c150c6e..1cb6ef7b71 100644 --- a/client/src/app/site/pages/meetings/services/active-meeting-id.service.ts +++ b/client/src/app/site/pages/meetings/services/active-meeting-id.service.ts @@ -54,15 +54,22 @@ export class ActiveMeetingIdService { distinctUntilChanged() ) .subscribe(event => { - const parts = (event as RoutesRecognized).url.split(`/`); - let meetingId = null; - if (parts.length >= 2) { - meetingId = parts[1]; - } - this.setMeetingId(meetingId); + this.setMeetingId(this.parseUrlMeetingId((event as RoutesRecognized).url)); }); } + /** + * Returns the meeting id from the current route + */ + public parseUrlMeetingId(url: string): Id | null { + const parts = url.split(`/`); + if (parts.length >= 2) { + return +parts[1]; + } + + return null; + } + private setMeetingId(nextMeetingId: number | null | undefined): void { nextMeetingId = Number(nextMeetingId) || null; diff --git a/client/src/app/site/pages/meetings/services/active-meeting.service.ts b/client/src/app/site/pages/meetings/services/active-meeting.service.ts index 60fd39c76b..285185475f 100644 --- a/client/src/app/site/pages/meetings/services/active-meeting.service.ts +++ b/client/src/app/site/pages/meetings/services/active-meeting.service.ts @@ -62,9 +62,6 @@ export class ActiveMeetingService { this.lifecycle.openslidesBooted.subscribe(); } - /** - * Only used in the `OperatorService` - */ public async ensureActiveMeetingIsAvailable(): Promise { if (!!this.meetingId) { return await firstValueFrom( diff --git a/client/src/app/site/pages/meetings/services/active-meeting.subscription.ts b/client/src/app/site/pages/meetings/services/active-meeting.subscription.ts index cb4e60f6b1..50e8aee979 100644 --- a/client/src/app/site/pages/meetings/services/active-meeting.subscription.ts +++ b/client/src/app/site/pages/meetings/services/active-meeting.subscription.ts @@ -28,10 +28,13 @@ export function getActiveMeetingSubscriptionConfig(id: Id, settingsKeys: string[ `welcome_title`, `welcome_text`, `enable_anonymous`, - ...MEETING_MEDIAFILE_USAGE_ID_KEYS, ...settingsKeys ], follow: [ + ...MEETING_MEDIAFILE_USAGE_ID_KEYS.map(idField => ({ + idField, + fieldset: [`mediafile_id`] + })), { idField: `chat_group_ids` /*, fieldset: [`chat_message_ids`]*/ }, { idField: `chat_message_ids`, diff --git a/client/src/app/site/pages/meetings/services/media-manage.service.ts b/client/src/app/site/pages/meetings/services/media-manage.service.ts index 1ad36c7535..86114f23c9 100644 --- a/client/src/app/site/pages/meetings/services/media-manage.service.ts +++ b/client/src/app/site/pages/meetings/services/media-manage.service.ts @@ -12,8 +12,9 @@ import { } from 'src/app/domain/models/mediafiles/mediafile.constants'; import { MeetingMediaAdapterService } from 'src/app/gateways/meeting-media-adapter.service'; import { MediafileRepositoryService } from 'src/app/gateways/repositories/mediafiles/mediafile-repository.service'; +import { MeetingMediafileRepositoryService } from 'src/app/gateways/repositories/meeting-mediafile/meeting-mediafile-repository.service'; -import { ViewMediafile } from '../pages/mediafiles'; +import { ViewMediafile, ViewMeetingMediafile } from '../pages/mediafiles'; import { ActiveMeetingService } from './active-meeting.service'; @Injectable({ @@ -30,7 +31,8 @@ export class MediaManageService { public constructor( private activeMeetingService: ActiveMeetingService, private mediaAdapter: MeetingMediaAdapterService, - private mediaRepo: MediafileRepositoryService + private mediaRepo: MediafileRepositoryService, + private meetingMediaRepo: MeetingMediafileRepositoryService ) { merge(this.activeMeetingService.meetingObservable, this.mediaRepo.getViewModelListUnsafeObservable()).subscribe( _ => { @@ -52,8 +54,9 @@ export class MediaManageService { } public getLogoUrl(place: LogoPlace): string | null { + const meetingMediafileId = this.activeMeetingService.meeting?.logo_id(place); // Note: we are not fetching the mediafile view model at any place except when filtering for the defaults. - const mediafileId = this.activeMeetingService.meeting?.logo_id(place); + const mediafileId = this.meetingMediaRepo.getViewModelUnsafe(meetingMediafileId)?.mediafile_id; if (mediafileId && this.activeMeetingService.meeting?.getSpecifiedLogoPlaces().indexOf(place) !== -1) { return this.getUrlForId(mediafileId); } @@ -73,8 +76,9 @@ export class MediaManageService { } public getFontUrl(place: FontPlace): string { + const meetingMediafileId = this.activeMeetingService.meeting?.font_id(place); // Note: we are not fetching the mediafile view model at any place. - const mediafileId = this.activeMeetingService.meeting?.font_id(place); + const mediafileId = this.meetingMediaRepo.getViewModelUnsafe(meetingMediafileId)?.mediafile_id; if (mediafileId && this.activeMeetingService.meeting?.getSpecifiedFontPlaces().indexOf(place) !== -1) { return this.getUrlForId(mediafileId); } else { @@ -82,7 +86,7 @@ export class MediaManageService { } } - public getPlacesDisplayNames(mediafile: ViewMediafile): string[] { + public getPlacesDisplayNames(mediafile: ViewMeetingMediafile): string[] { let uses: string[] = []; uses = uses.concat(mediafile.getLogoPlaces().map(place => (LogoDisplayNames)[place])); uses = uses.concat(mediafile.getFontPlaces().map(place => (FontDisplayNames)[place])); @@ -90,7 +94,7 @@ export class MediaManageService { } public async setLogo(place: LogoPlace, mediafile: ViewMediafile): Promise { - await this.mediaAdapter.setLogo(place, mediafile); + await this.mediaAdapter.setLogo(place, this.activeMeetingService.meetingId, mediafile); } public async unsetLogo(place: LogoPlace): Promise { @@ -98,7 +102,7 @@ export class MediaManageService { } public async setFont(place: FontPlace, mediafile: ViewMediafile): Promise { - await this.mediaAdapter.setFont(place, mediafile); + await this.mediaAdapter.setFont(place, this.activeMeetingService.meetingId, mediafile); } public async unsetFont(place: FontPlace): Promise { diff --git a/client/src/app/site/pages/meetings/view-models/view-meeting.ts b/client/src/app/site/pages/meetings/view-models/view-meeting.ts index 546e079f6e..89dbb7dfa9 100644 --- a/client/src/app/site/pages/meetings/view-models/view-meeting.ts +++ b/client/src/app/site/pages/meetings/view-models/view-meeting.ts @@ -18,7 +18,7 @@ import { ViewAgendaItem, ViewListOfSpeakers, ViewSpeaker, ViewTopic } from '../p import { ViewPointOfOrderCategory } from '../pages/agenda/modules/list-of-speakers/view-models/view-point-of-order-category'; import { ViewAssignment, ViewAssignmentCandidate } from '../pages/assignments'; import { ViewChatGroup, ViewChatMessage } from '../pages/chat'; -import { ViewMediafile } from '../pages/mediafiles'; +import { ViewMediafile, ViewMeetingMediafile } from '../pages/mediafiles'; import { ViewMotion, ViewMotionBlock, @@ -157,6 +157,7 @@ interface IMeetingRelations { groups: ViewGroup[]; personal_notes: ViewPersonalNote[]; mediafiles: ViewMediafile[]; + meeting_mediafiles: ViewMeetingMediafile[]; motions: ViewMotion[]; motion_comment_sections: ViewMotionCommentSection[]; motion_comments: ViewMotionComment[]; diff --git a/client/src/app/site/pages/meetings/view-models/view-user.ts b/client/src/app/site/pages/meetings/view-models/view-user.ts index 3f420ddbce..b53f6ad386 100644 --- a/client/src/app/site/pages/meetings/view-models/view-user.ts +++ b/client/src/app/site/pages/meetings/view-models/view-user.ts @@ -266,10 +266,10 @@ export class ViewUser extends BaseViewModel /* implements Searchable */ { public get isVoteCountable(): boolean { const delegate = this.vote_delegated_to(this.getEnsuredActiveMeetingId()); - if (!delegate) { - return this.isPresentInMeeting(); + if (this.getDelegationSettingEnabled() && delegate) { + return delegate.isPresentInMeeting(); } - return delegate.isPresentInMeeting(); + return this.isPresentInMeeting(); } // ### block end. diff --git a/client/src/app/site/pages/organization/pages/accounts/pages/account-list/components/account-list/account-list.component.html b/client/src/app/site/pages/organization/pages/accounts/pages/account-list/components/account-list/account-list.component.html index 710ac7856e..5d4cda3ea6 100644 --- a/client/src/app/site/pages/organization/pages/accounts/pages/account-list/components/account-list/account-list.component.html +++ b/client/src/app/site/pages/organization/pages/accounts/pages/account-list/components/account-list/account-list.component.html @@ -42,7 +42,7 @@

@if (!isMultiSelect) { - + }
diff --git a/client/src/app/site/pages/organization/pages/accounts/pages/account-list/components/account-list/account-list.component.ts b/client/src/app/site/pages/organization/pages/accounts/pages/account-list/components/account-list/account-list.component.ts index ccb0473714..72553dc781 100644 --- a/client/src/app/site/pages/organization/pages/accounts/pages/account-list/components/account-list/account-list.component.ts +++ b/client/src/app/site/pages/organization/pages/accounts/pages/account-list/components/account-list/account-list.component.ts @@ -85,6 +85,10 @@ export class AccountListComponent extends BaseListViewComponent { ); } + public ariaLabel(user: ViewUser): string { + return this.translate.instant(`Navigate to account page from `) + user.short_name; + } + public createNewMember(): void { this.router.navigate([`create`], { relativeTo: this.route }); } diff --git a/client/src/app/site/pages/organization/pages/committees/pages/committee-list/components/committee-list/committee-list.component.html b/client/src/app/site/pages/organization/pages/committees/pages/committee-list/components/committee-list/committee-list.component.html index 65adf3a9f3..3d32ff7341 100644 --- a/client/src/app/site/pages/organization/pages/committees/pages/committee-list/components/committee-list/committee-list.component.html +++ b/client/src/app/site/pages/organization/pages/committees/pages/committee-list/components/committee-list/committee-list.component.html @@ -36,7 +36,7 @@

{{ 'Committees' | translate }}

>
@if (!isMultiSelect && committee.canAccess()) { - + }
diff --git a/client/src/app/site/pages/organization/pages/committees/pages/committee-list/components/committee-list/committee-list.component.ts b/client/src/app/site/pages/organization/pages/committees/pages/committee-list/components/committee-list/committee-list.component.ts index d837d9b3ad..bdc18065a4 100644 --- a/client/src/app/site/pages/organization/pages/committees/pages/committee-list/components/committee-list/committee-list.component.ts +++ b/client/src/app/site/pages/organization/pages/committees/pages/committee-list/components/committee-list/committee-list.component.ts @@ -186,4 +186,8 @@ export class CommitteeListComponent extends BaseListViewComponent ...committees.map(committee => this.committeeController.update({ organization_tag_ids: [] }, committee)) ).resolve(); } + + public ariaLabel(committee: ViewCommittee): string { + return this.translate.instant(`Navigate to committee detail view from `) + committee.name; + } } diff --git a/client/src/app/site/pages/organization/pages/mediafiles/mediafiles.subscription.ts b/client/src/app/site/pages/organization/pages/mediafiles/mediafiles.subscription.ts index dca8bc2819..de31d2e591 100644 --- a/client/src/app/site/pages/organization/pages/mediafiles/mediafiles.subscription.ts +++ b/client/src/app/site/pages/organization/pages/mediafiles/mediafiles.subscription.ts @@ -10,6 +10,18 @@ export const getOrganizationMediafileListSubscriptionConfig: SubscriptionConfigG modelRequest: { viewModelCtor: ViewOrganization, ids: [ORGANIZATION_ID], - follow: [{ idField: `mediafile_ids`, fieldset: `organizationDetail` }] + follow: [ + { + idField: `mediafile_ids`, + fieldset: `organizationDetail`, + follow: [ + { + idField: `meeting_mediafile_ids`, + fieldset: [`mediafile_id`], + follow: [{ idField: `meeting_id`, fieldset: [`name`] }] + } + ] + } + ] } }); diff --git a/client/src/app/site/pages/organization/pages/mediafiles/modules/organization-mediafile-list/components/organization-mediafile-list/organization-mediafile-list.component.html b/client/src/app/site/pages/organization/pages/mediafiles/modules/organization-mediafile-list/components/organization-mediafile-list/organization-mediafile-list.component.html index babd5401c7..e1147def13 100644 --- a/client/src/app/site/pages/organization/pages/mediafiles/modules/organization-mediafile-list/components/organization-mediafile-list/organization-mediafile-list.component.html +++ b/client/src/app/site/pages/organization/pages/mediafiles/modules/organization-mediafile-list/components/organization-mediafile-list/organization-mediafile-list.component.html @@ -41,6 +41,7 @@

{{ 'Files' | translate }}

[fileMenuTemplate]="fileMenuTemplate" [isInMeeting]="false" [isMultiSelect]="isMultiSelect" + [isOrgaLevelAndRootLevel]="isOrgaLevelAndRootLevel" [isUsedAsFontFn]="isUsedAsFontFn" [isUsedAsLogoFn]="isUsedAsLogoFn" [shouldShowFileMenuFn]="shouldShowFileMenuFn" diff --git a/client/src/app/site/pages/organization/pages/mediafiles/modules/organization-mediafile-list/components/organization-mediafile-list/organization-mediafile-list.component.ts b/client/src/app/site/pages/organization/pages/mediafiles/modules/organization-mediafile-list/components/organization-mediafile-list/organization-mediafile-list.component.ts index 01bb91e8f2..e38617ff4a 100644 --- a/client/src/app/site/pages/organization/pages/mediafiles/modules/organization-mediafile-list/components/organization-mediafile-list/organization-mediafile-list.component.ts +++ b/client/src/app/site/pages/organization/pages/mediafiles/modules/organization-mediafile-list/components/organization-mediafile-list/organization-mediafile-list.component.ts @@ -69,6 +69,10 @@ export class OrganizationMediafileListComponent return this.canEdit; } + public get isOrgaLevelAndRootLevel(): boolean { + return this.directoryChain.length == 0; + } + /** * The form to edit Files */ diff --git a/client/src/app/site/pages/organization/pages/orga-meetings/pages/meeting-list/components/meeting-list/meeting-list.component.html b/client/src/app/site/pages/organization/pages/orga-meetings/pages/meeting-list/components/meeting-list/meeting-list.component.html index c67126a934..6d3f7cc03c 100644 --- a/client/src/app/site/pages/organization/pages/orga-meetings/pages/meeting-list/components/meeting-list/meeting-list.component.html +++ b/client/src/app/site/pages/organization/pages/orga-meetings/pages/meeting-list/components/meeting-list/meeting-list.component.html @@ -38,7 +38,11 @@

{{ 'Meetings' | translate }}

[class.no-access]="isMultiSelect || !meeting.canAccess() || !meeting.canBeEnteredBy(operator.user)" > @if (!isMultiSelect && meeting.canAccess() && meeting.canBeEnteredBy(operator.user)) { - + }
@@ -99,6 +103,7 @@

{{ 'Meetings' | translate }}

@if (!this.isMultiSelect && meeting.committee?.canAccess()) { } @@ -128,7 +133,11 @@

{{ 'Meetings' | translate }}

[class.no-access]="isMultiSelect || !meeting.canAccess() || !meeting.canBeEnteredBy(operator.user)" > @if (!isMultiSelect && meeting.canAccess() && meeting.canBeEnteredBy(operator.user)) { - + }
@if (meeting.userAmount) { diff --git a/client/src/app/site/pages/organization/pages/orga-meetings/pages/meeting-list/components/meeting-list/meeting-list.component.ts b/client/src/app/site/pages/organization/pages/orga-meetings/pages/meeting-list/components/meeting-list/meeting-list.component.ts index f3bcb207c6..eadb8e21c8 100644 --- a/client/src/app/site/pages/organization/pages/orga-meetings/pages/meeting-list/components/meeting-list/meeting-list.component.ts +++ b/client/src/app/site/pages/organization/pages/orga-meetings/pages/meeting-list/components/meeting-list/meeting-list.component.ts @@ -76,4 +76,11 @@ export class MeetingListComponent extends BaseListViewComponent { await this.meetingController.delete(...toDelete); } } + + public ariaLabel(meeting: ViewMeeting, isCommittee?: boolean): string { + if (isCommittee) { + return this.translate.instant(`Navigate to committee detail view from `) + meeting.committeeName; + } + return this.translate.instant(`Navigate to meeting `) + meeting.name; + } } diff --git a/client/src/app/site/pages/organization/view-models/view-organization.ts b/client/src/app/site/pages/organization/view-models/view-organization.ts index 1b6fc3399e..b8e782af08 100644 --- a/client/src/app/site/pages/organization/view-models/view-organization.ts +++ b/client/src/app/site/pages/organization/view-models/view-organization.ts @@ -27,5 +27,6 @@ interface IOrganizationRelations { theme: ViewTheme; themes: ViewTheme[]; users: ViewUser[]; + published_mediafiles: ViewMediafile[]; } export interface ViewOrganization extends Organization, ViewModelRelations {} diff --git a/client/src/app/site/services/autoupdate/autoupdate-communication.service.ts b/client/src/app/site/services/autoupdate/autoupdate-communication.service.ts index b9cca68d73..8d00f2e86f 100644 --- a/client/src/app/site/services/autoupdate/autoupdate-communication.service.ts +++ b/client/src/app/site/services/autoupdate/autoupdate-communication.service.ts @@ -14,6 +14,7 @@ import { AutoupdateCloseStream, AutoupdateOpenStream, AutoupdateReceiveData, + AutoupdateReceiveDataContent, AutoupdateReceiveError, AutoupdateReconnectInactive, AutoupdateSetConnectionStatus, @@ -34,7 +35,7 @@ import { SUBSCRIPTION_SUFFIX } from '../model-request.service'; providedIn: `root` }) export class AutoupdateCommunicationService { - private autoupdateDataObservable: Observable; + private autoupdateDataObservable: Observable; private openResolvers = new Map) => void>(); private endpointName: string; private autoupdateEndpointStatus: 'healthy' | 'unhealthy' = `healthy`; @@ -187,7 +188,7 @@ export class AutoupdateCommunicationService { /** * @returns Observable containing messages from autoupdate */ - public listen(): Observable { + public listen(): Observable { return this.autoupdateDataObservable; } @@ -220,8 +221,10 @@ export class AutoupdateCommunicationService { private handleReceiveData(data: AutoupdateReceiveData, dataSubscription: Subscriber): void { dataSubscription.next(data.content); - if (data.content?.description) { - this.subscriptionsWithData.add(data.content.description.replace(SUBSCRIPTION_SUFFIX, ``)); + if (data.content?.streamIdDescriptions) { + for (const id of Object.keys(data.content.streamIdDescriptions)) { + this.subscriptionsWithData.add(data.content.streamIdDescriptions[id].replace(SUBSCRIPTION_SUFFIX, ``)); + } } if (this.tryReconnectOpen) { this.matSnackBar.dismiss(); diff --git a/client/src/app/site/services/autoupdate/autoupdate.service.ts b/client/src/app/site/services/autoupdate/autoupdate.service.ts index 4a81637eff..039170da04 100644 --- a/client/src/app/site/services/autoupdate/autoupdate.service.ts +++ b/client/src/app/site/services/autoupdate/autoupdate.service.ts @@ -44,8 +44,7 @@ interface AutoupdateSubscriptionMap { interface AutoupdateIncomingMessage { autoupdateData: AutoupdateModelData; - id: Id; - description?: string; + idDescriptionMap: { [id: Id]: string }; } class AutoupdateEndpoint extends EndpointConfiguration { @@ -90,7 +89,10 @@ export class AutoupdateService { this.communication.setEndpoint(AUTOUPDATE_DEFAULT_ENDPOINT); this.communication.listen().subscribe(data => { - this.handleAutoupdate({ autoupdateData: data.data, id: data.streamId, description: data.description }); + this.handleAutoupdate({ + autoupdateData: data.data, + idDescriptionMap: data.streamIdDescriptions + }); }); this.communication.listenShouldReconnect().subscribe(() => { this.pauseUntilVisible(); @@ -246,13 +248,19 @@ export class AutoupdateService { }; } - private async handleAutoupdate({ autoupdateData, id, description }: AutoupdateIncomingMessage): Promise { - if (!this._activeRequestObjects || !this._activeRequestObjects[id]) { + private async handleAutoupdate({ autoupdateData, idDescriptionMap }: AutoupdateIncomingMessage): Promise { + const requestIds = Object.keys(idDescriptionMap).map(id => +id); + if (!this._activeRequestObjects || !requestIds.some(id => this._activeRequestObjects[id])) { return; } const modelData = autoupdateFormatToModelData(autoupdateData); - console.debug(`[autoupdate] from stream:`, description, id, [modelData, autoupdateData]); + console.debug( + `[autoupdate] from streams:`, + requestIds.map(id => `${id} - ${idDescriptionMap[id]}`).join(`, `), + [modelData, autoupdateData] + ); + const fullListUpdateCollections: { [collection: string]: Ids; } = {}; @@ -260,26 +268,35 @@ export class AutoupdateService { [collection: string]: { ids: Ids; parentCollection: Collection; parentField: string; parentId: Id }; } = {}; - const { modelRequest } = this._activeRequestObjects[id]; - if (modelRequest) { - for (const key of Object.keys(autoupdateData)) { - const data = key.split(`/`); - const collectionRelation = `${data[COLLECTION_INDEX]}/${data[FIELD_INDEX]}`; - if (modelRequest.getFullListUpdateCollectionRelations().includes(collectionRelation)) { - fullListUpdateCollections[modelRequest.getForeignCollectionByRelation(collectionRelation)] = - autoupdateData[key]; - } else if (modelRequest.getExclusiveListUpdateCollectionRelations().includes(collectionRelation)) { - exclusiveListUpdateCollections[modelRequest.getForeignCollectionByRelation(collectionRelation)] = { - ids: autoupdateData[key], - parentCollection: data[COLLECTION_INDEX], - parentField: data[FIELD_INDEX], - parentId: +data[ID_INDEX] - }; + for (const id of requestIds) { + const { modelRequest } = this._activeRequestObjects[id]; + if (modelRequest) { + for (const key of Object.keys(autoupdateData)) { + const data = key.split(`/`); + const collectionRelation = `${data[COLLECTION_INDEX]}/${data[FIELD_INDEX]}`; + if (modelRequest.getFullListUpdateCollectionRelations().includes(collectionRelation)) { + fullListUpdateCollections[modelRequest.getForeignCollectionByRelation(collectionRelation)] = + autoupdateData[key]; + } else if (modelRequest.getExclusiveListUpdateCollectionRelations().includes(collectionRelation)) { + exclusiveListUpdateCollections[ + modelRequest.getForeignCollectionByRelation(collectionRelation) + ] = { + ids: autoupdateData[key], + parentCollection: data[COLLECTION_INDEX], + parentField: data[FIELD_INDEX], + parentId: +data[ID_INDEX] + }; + } } } } - await this.prepareCollectionUpdates(modelData, fullListUpdateCollections, exclusiveListUpdateCollections, id); + await this.prepareCollectionUpdates( + modelData, + fullListUpdateCollections, + exclusiveListUpdateCollections, + requestIds + ); } private async prepareCollectionUpdates( @@ -290,7 +307,7 @@ export class AutoupdateService { exclusiveListUpdateCollections: { [collection: string]: { ids: Ids; parentCollection: Collection; parentField: string; parentId: Id }; }, - requestId: number + requestIds: number[] ): Promise { const unlock = await this._mutex.lock(); @@ -302,11 +319,13 @@ export class AutoupdateService { deletedModels: {} }) .then(deletedModels => { - this.communication.cleanupCollections(requestId, deletedModels); + for (const requestId of requestIds) { + this.communication.cleanupCollections(requestId, deletedModels); - if (this._resolveDataReceived[requestId]) { - this._resolveDataReceived[requestId](modelData); - delete this._resolveDataReceived[requestId]; + if (this._resolveDataReceived[requestId]) { + this._resolveDataReceived[requestId](modelData); + delete this._resolveDataReceived[requestId]; + } } }); diff --git a/client/src/app/site/services/openslides-router.service.ts b/client/src/app/site/services/openslides-router.service.ts index ed096766ec..0edb80c623 100644 --- a/client/src/app/site/services/openslides-router.service.ts +++ b/client/src/app/site/services/openslides-router.service.ts @@ -208,6 +208,9 @@ export class OpenSlidesRouterService { } private _toParamMap(currentRoute: ActivatedRouteSnapshot, paramMap: { [paramName: string]: any }): void { + for (const [key, value] of Object.entries(currentRoute.queryParams ?? {})) { + paramMap[key] = value; + } for (const [key, value] of Object.entries(currentRoute.params ?? {})) { paramMap[key] = value; } diff --git a/client/src/app/ui/base/base-form-field-control.ts b/client/src/app/ui/base/base-form-field-control.ts index 2ba1bd1cc3..055e44e697 100644 --- a/client/src/app/ui/base/base-form-field-control.ts +++ b/client/src/app/ui/base/base-form-field-control.ts @@ -35,7 +35,7 @@ export abstract class BaseFormFieldControlComponent @HostBinding() public id = `base-form-control-${BaseFormFieldControlComponent.nextId++}`; @HostBinding(`class.floating`) public get shouldLabelFloat(): boolean { - return (this.focused || !this.empty) && !this.disabled; + return (this.focused && !this.disabled) || !this.empty; } @HostBinding(`attr.aria-describedby`) public describedBy = ``; @@ -96,7 +96,9 @@ export abstract class BaseFormFieldControlComponent public stateChanges = new Subject(); - public errorState = false; + public get errorState(): boolean { + return false; + } public focused = false; diff --git a/client/src/app/ui/modules/editor/components/editor/editor.component.ts b/client/src/app/ui/modules/editor/components/editor/editor.component.ts index ffc81ea839..ab64af22e2 100644 --- a/client/src/app/ui/modules/editor/components/editor/editor.component.ts +++ b/client/src/app/ui/modules/editor/components/editor/editor.component.ts @@ -24,10 +24,10 @@ import HardBreak from '@tiptap/extension-hard-break'; import Heading from '@tiptap/extension-heading'; import { Level as HeadingLevel } from '@tiptap/extension-heading'; import History from '@tiptap/extension-history'; -import Image from '@tiptap/extension-image'; import Italic from '@tiptap/extension-italic'; import Link from '@tiptap/extension-link'; import ListItem from '@tiptap/extension-list-item'; +import OrderedList from '@tiptap/extension-ordered-list'; import Paragraph from '@tiptap/extension-paragraph'; import Strike from '@tiptap/extension-strike'; import Subscript from '@tiptap/extension-subscript'; @@ -59,7 +59,6 @@ import { Highlight } from './extensions/highlight'; import IFrame from './extensions/iframe'; import { ImageResize } from './extensions/image-resize'; import { MSOfficePaste } from './extensions/office'; -import { OrderedList } from './extensions/ordered-list'; const DEFAULT_COLOR_PALETE = [ `#BFEDD2`, @@ -172,9 +171,6 @@ export class EditorComponent extends BaseFormControlComponent implements BulletList, HardBreak, Heading, - Image.configure({ - inline: true - }), ImageResize.configure({ inline: true }), @@ -209,6 +205,7 @@ export class EditorComponent extends BaseFormControlComponent implements types: [`heading`, `paragraph`] }), Extension.create({ + name: `angular-component-ext`, onCreate: () => { this.editorReady = true; this.cd.detectChanges(); @@ -244,7 +241,14 @@ export class EditorComponent extends BaseFormControlComponent implements public override ngOnDestroy(): void { super.ngOnDestroy(); - this.editor.destroy(); + this.editor?.destroy(); + } + + public override writeValue(value: string): void { + super.writeValue(value); + if (this.editor) { + this.editor.commands.setContent(value); + } } public updateColorSets(): void { diff --git a/client/src/app/ui/modules/editor/components/editor/extensions/clear-textcolor.ts b/client/src/app/ui/modules/editor/components/editor/extensions/clear-textcolor.ts index d3232f0602..a9bfb564c6 100644 --- a/client/src/app/ui/modules/editor/components/editor/extensions/clear-textcolor.ts +++ b/client/src/app/ui/modules/editor/components/editor/extensions/clear-textcolor.ts @@ -3,6 +3,7 @@ import { Plugin } from '@tiptap/pm/state'; import tinycolor from 'tinycolor2'; export const ClearTextcolorPaste = Extension.create({ + name: `clear-textcolor-paste`, addProseMirrorPlugins() { return [ClearTextcolorPastePlugin]; } diff --git a/client/src/app/ui/modules/editor/components/editor/extensions/office.ts b/client/src/app/ui/modules/editor/components/editor/extensions/office.ts index 084d637bbd..ca1e5c068d 100644 --- a/client/src/app/ui/modules/editor/components/editor/extensions/office.ts +++ b/client/src/app/ui/modules/editor/components/editor/extensions/office.ts @@ -5,6 +5,7 @@ import { unwrapNode } from 'src/app/infrastructure/utils/dom-helpers'; export const MSOfficePaste = Extension.create({ priority: 99999, + name: `ms-office-paste`, addProseMirrorPlugins() { return [OfficePastePlugin]; diff --git a/client/src/app/ui/modules/editor/components/editor/extensions/ordered-list.ts b/client/src/app/ui/modules/editor/components/editor/extensions/ordered-list.ts deleted file mode 100644 index eb63f500a2..0000000000 --- a/client/src/app/ui/modules/editor/components/editor/extensions/ordered-list.ts +++ /dev/null @@ -1,15 +0,0 @@ -import OriginalOrderedList from '@tiptap/extension-ordered-list'; - -export const OrderedList = OriginalOrderedList.extend({ - addAttributes() { - return { - ...this.parent(), - type: { - default: null, - parseHTML: (element): string => { - return element.getAttribute(`type`); - } - } - }; - } -}); diff --git a/client/src/app/ui/modules/file-list/components/file-list/file-list.component.html b/client/src/app/ui/modules/file-list/components/file-list/file-list.component.html index 4ce0af3401..a017cfbb0e 100644 --- a/client/src/app/ui/modules/file-list/components/file-list/file-list.component.html +++ b/client/src/app/ui/modules/file-list/components/file-list/file-list.component.html @@ -67,12 +67,18 @@ class="fill clickable" > @if (!mediafile.is_directory && !isMultiSelect) { - + } @if (mediafile.is_directory && !isMultiSelect) { @@ -83,12 +89,18 @@
@if (!mediafile.is_directory && !isMultiSelect) { - + } @if (mediafile.is_directory && !isMultiSelect) { @@ -115,7 +127,7 @@ > @if (isInMeeting) { - + {{ $any(group).getTitle() }} @@ -133,13 +145,22 @@
-
+
@if (mediafile.isFont() && isUsedAsFontFn(mediafile)) { text_fields } @if (mediafile.isImage() && isUsedAsLogoFn(mediafile)) { insert_photo } + @if (mediafile.published_to_meetings_in_organization_id === 1) { + + public + + }
@@ -169,14 +190,30 @@ edit {{ 'Edit' | translate }} - - + @if (fileCanBeModified(mediafile)) { + @if (fileCanBeMoved(mediafile)) { + + } + + } + @if (isOrgaLevelAndRootLevel) { + + }
} @@ -228,6 +265,19 @@

noneTitle="{{ 'Base folder' | translate }}" > + + @if (movingFromPublicFolder && !movingToPublicFolder) { +

+ You are moving a file from a public folder into an not published folder. The file will not be accessible + in meetings afterwards. +

+ } + @if (movingToPublicFolder && !movingFromPublicFolder) { +

+ You are moving an Unpublished file to a public folder. The file will not be accessible in all meetings + afterwards. +

+ } - + +

} diff --git a/client/src/app/ui/modules/prompt-dialog/components/prompt-dialog/prompt-dialog.component.ts b/client/src/app/ui/modules/prompt-dialog/components/prompt-dialog/prompt-dialog.component.ts index 9538e1d08e..026972cc9a 100644 --- a/client/src/app/ui/modules/prompt-dialog/components/prompt-dialog/prompt-dialog.component.ts +++ b/client/src/app/ui/modules/prompt-dialog/components/prompt-dialog/prompt-dialog.component.ts @@ -4,6 +4,8 @@ import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; interface PromptDialogData { title: string; content: string; + confirm?: string; + decline?: string; } @Component({ diff --git a/client/src/app/ui/modules/prompt-dialog/services/prompt.service.ts b/client/src/app/ui/modules/prompt-dialog/services/prompt.service.ts index 6426f9b0cf..c4c278c399 100644 --- a/client/src/app/ui/modules/prompt-dialog/services/prompt.service.ts +++ b/client/src/app/ui/modules/prompt-dialog/services/prompt.service.ts @@ -22,10 +22,10 @@ export class PromptService { * @param title The title to display in the dialog * @param content The content in the dialog */ - public async open(title: string, content = ``): Promise { + public async open(title: string, content = ``, confirm?: string, decline?: string): Promise { this.dialogRef = this.dialog.open(PromptDialogComponent, { width: `290px`, - data: { title, content } + data: { title, content, confirm, decline } }); return firstValueFrom(this.dialogRef.afterClosed()); } diff --git a/client/src/app/ui/modules/search-selector/components/base-search-selector/base-search-selector.component.html b/client/src/app/ui/modules/search-selector/components/base-search-selector/base-search-selector.component.html index f66aeebccb..74314db966 100644 --- a/client/src/app/ui/modules/search-selector/components/base-search-selector/base-search-selector.component.html +++ b/client/src/app/ui/modules/search-selector/components/base-search-selector/base-search-selector.component.html @@ -4,6 +4,7 @@ [formControl]="contentForm" [multiple]="multiple" [panelClass]="{ 'os-search-selector-wider': wider, 'os-search-selector-panel': true }" + [required]="required" (openedChange)="onOpenChanged($event)" > diff --git a/client/src/app/ui/modules/search-selector/components/base-search-selector/base-search-selector.component.ts b/client/src/app/ui/modules/search-selector/components/base-search-selector/base-search-selector.component.ts index 85e0c5ce7b..47225e81d1 100644 --- a/client/src/app/ui/modules/search-selector/components/base-search-selector/base-search-selector.component.ts +++ b/client/src/app/ui/modules/search-selector/components/base-search-selector/base-search-selector.component.ts @@ -5,6 +5,7 @@ import { ElementRef, EventEmitter, Input, + OnDestroy, Output, TemplateRef, ViewChild @@ -14,7 +15,7 @@ import { UntypedFormControl } from '@angular/forms'; import { MatOption, MatOptionSelectionChange } from '@angular/material/core'; import { MatSelect } from '@angular/material/select'; import { marker as _ } from '@colsen1991/ngx-translate-extract-marker'; -import { BehaviorSubject, debounceTime, distinctUntilChanged, Observable } from 'rxjs'; +import { BehaviorSubject, debounceTime, distinctUntilChanged, Observable, Subscription } from 'rxjs'; import { Id } from 'src/app/domain/definitions/key-types'; import { Selectable } from 'src/app/domain/interfaces/selectable'; @@ -24,12 +25,30 @@ import { SearchSelectorNotFoundTemplateDirective } from '../../directives/search import { ParentErrorStateMatcher } from '../../validators'; @Directive() -export abstract class BaseSearchSelectorComponent extends BaseFormFieldControlComponent implements OnInit { +export abstract class BaseSearchSelectorComponent + extends BaseFormFieldControlComponent + implements OnInit, OnDestroy +{ @ViewChild(CdkVirtualScrollViewport, { static: true }) public cdkVirtualScrollViewPort!: CdkVirtualScrollViewport; + private _matSelect!: MatSelect; + private _matSelectStateSubscription!: Subscription; @ViewChild(`matSelect`) - public matSelect!: MatSelect; + public set matSelect(value: MatSelect) { + this._matSelect = value; + if (this._matSelectStateSubscription) { + this._matSelectStateSubscription.unsubscribe(); + } + + value.stateChanges.subscribe(() => { + this.stateChanges.next(); + }); + } + + public get matSelect(): MatSelect { + return this._matSelect; + } @ViewChild(`searchSelectorInput`) public inputDiv!: ElementRef; @@ -188,6 +207,10 @@ export abstract class BaseSearchSelectorComponent extends BaseFormFieldControlCo : this._snapshotValue === null || this._snapshotValue === undefined; } + public override get errorState(): boolean { + return !!this.matSelect && this.matSelect.errorState; + } + public get selectedItems(): Selectable[] { if (this.multiple && this.selectableItems?.length && this.contentForm.value) { return this.selectableItems.filter(item => this.contentForm.value.includes(item.id)); @@ -257,6 +280,14 @@ export abstract class BaseSearchSelectorComponent extends BaseFormFieldControlCo document.body.appendChild(sheet); } + public override ngOnDestroy(): void { + if (this._matSelectStateSubscription) { + this._matSelectStateSubscription.unsubscribe(); + } + + super.ngOnDestroy(); + } + public onChipRemove(itemId: Id): void { this.addOrRemoveId(itemId); diff --git a/client/src/app/ui/modules/sidenav/modules/easter-egg/modules/chess-dialog/components/chess-dialog/chess-dialog.component.html b/client/src/app/ui/modules/sidenav/modules/easter-egg/modules/chess-dialog/components/chess-dialog/chess-dialog.component.html index 15357cc862..2bf99692e1 100644 --- a/client/src/app/ui/modules/sidenav/modules/easter-egg/modules/chess-dialog/components/chess-dialog/chess-dialog.component.html +++ b/client/src/app/ui/modules/sidenav/modules/easter-egg/modules/chess-dialog/components/chess-dialog/chess-dialog.component.html @@ -5,7 +5,7 @@

- + @if (opponentName) {
{{ 'Playing against' | translate }} {{ opponentName }}
} diff --git a/client/src/app/ui/modules/sidenav/modules/easter-egg/modules/chess-dialog/components/chess-dialog/chess-dialog.component.scss b/client/src/app/ui/modules/sidenav/modules/easter-egg/modules/chess-dialog/components/chess-dialog/chess-dialog.component.scss index 974faf333c..53062b71d3 100644 --- a/client/src/app/ui/modules/sidenav/modules/easter-egg/modules/chess-dialog/components/chess-dialog/chess-dialog.component.scss +++ b/client/src/app/ui/modules/sidenav/modules/easter-egg/modules/chess-dialog/components/chess-dialog/chess-dialog.component.scss @@ -25,3 +25,7 @@ .padding-bottom-0 { padding-bottom: 0px; } + +.scrollable { + overflow: auto; +} diff --git a/client/src/app/worker/autoupdate/autoupdate-stream.ts b/client/src/app/worker/autoupdate/autoupdate-stream.ts index 139f874173..7764600c0b 100644 --- a/client/src/app/worker/autoupdate/autoupdate-stream.ts +++ b/client/src/app/worker/autoupdate/autoupdate-stream.ts @@ -3,7 +3,7 @@ import * as fzstd from 'fzstd'; import { HttpStream } from '../http/http-stream'; import { ErrorDescription, ErrorType } from '../http/stream-utils'; import { AutoupdateSubscription } from './autoupdate-subscription'; -import { AutoupdateSetEndpointParams } from './interfaces-autoupdate'; +import { AutoupdateReceiveData, AutoupdateSetEndpointParams } from './interfaces-autoupdate'; export class AutoupdateStream extends HttpStream { private activeSubscriptions: AutoupdateSubscription[] = null; @@ -179,10 +179,31 @@ export class AutoupdateStream extends HttpStream { } private sendToSubscriptions(data: any): void { + const portMap = new Map>(); for (const subscription of this.subscriptions) { - // TODO: It might be possible to only send data to - // the subscriptions that actually need it - subscription.updateData(data); + for (const port of subscription.ports) { + if (portMap.has(port)) { + portMap.get(port).add(subscription); + } else { + portMap.set(port, new Set([subscription])); + } + } + } + + for (const port of portMap.keys()) { + const streamIdDescriptions = {}; + for (const sub of portMap.get(port).values()) { + streamIdDescriptions[sub.id] = sub.description; + } + + port.postMessage({ + sender: `autoupdate`, + action: `receive-data`, + content: { + streamIdDescriptions, + data: data + } + } as AutoupdateReceiveData); } } diff --git a/client/src/app/worker/autoupdate/autoupdate-subscription.ts b/client/src/app/worker/autoupdate/autoupdate-subscription.ts index 18bfe8729c..40120518b4 100644 --- a/client/src/app/worker/autoupdate/autoupdate-subscription.ts +++ b/client/src/app/worker/autoupdate/autoupdate-subscription.ts @@ -56,9 +56,8 @@ export class AutoupdateSubscription { sender: `autoupdate`, action: `receive-data`, content: { - streamId: this.id, - data: data, - description: this.description + streamIdDescriptions: { [this.id]: this.description }, + data: data } } as AutoupdateReceiveData); } @@ -75,9 +74,8 @@ export class AutoupdateSubscription { sender: `autoupdate`, action: `receive-error`, content: { - streamId: this.id, - data: data, - description: this.description + streamIdDescriptions: { [this.id]: this.description }, + data: data } } as AutoupdateReceiveError); } @@ -127,9 +125,8 @@ export class AutoupdateSubscription { sender: `autoupdate`, action: `receive-data`, content: { - streamId: this.id, - data: this.stream.currentData, - description: this.description + streamIdDescriptions: { [this.id]: this.description }, + data: this.stream.currentData } } as AutoupdateReceiveData); } diff --git a/client/src/app/worker/autoupdate/interfaces-autoupdate.ts b/client/src/app/worker/autoupdate/interfaces-autoupdate.ts index 13d5270ee8..0f93b3d3cd 100644 --- a/client/src/app/worker/autoupdate/interfaces-autoupdate.ts +++ b/client/src/app/worker/autoupdate/interfaces-autoupdate.ts @@ -88,9 +88,8 @@ export interface AutoupdateSetStreamId extends AutoupdateWorkerResponse { } export interface AutoupdateReceiveDataContent { - streamId: Id; + streamIdDescriptions: { [id: Id]: string }; data: any; - description: string; } export interface AutoupdateReceiveData extends AutoupdateWorkerResponse { diff --git a/client/src/assets/i18n/cs.po b/client/src/assets/i18n/cs.po index 60ad76b063..ce6d2015f1 100644 --- a/client/src/assets/i18n/cs.po +++ b/client/src/assets/i18n/cs.po @@ -67,15 +67,15 @@ msgstr "Je požadováno heslo" msgid "A server error occured. Please contact your system administrator." msgstr "Došlo k chybě serveru. Spojte se, prosím, se správcem systému." +msgid "A time is required and must be in min:secs format." +msgstr "Je vyžadován čas, který musí být ve formátu min:s." + msgid "A title is required" msgstr "Je požadován název" msgid "A topic needs a title" msgstr "Námět potřebuje název" -msgid "A total time is required and must be greater than 0." -msgstr "Je vyžadován celkový čas, který musí být větší než 0." - msgid "" "A user with the username '%username%' and the first name '%first_name%' was " "created." @@ -101,6 +101,12 @@ msgstr "Přístupová data (PDF)" msgid "Access groups" msgstr "Přístupové skupiny" +msgid "" +"Access only possible for participants of this meeting. All other accounts " +"(including organization and committee admins) may not open the closed " +"meeting. It is locked from the inside." +msgstr "" + msgid "Access-data" msgstr "Přístupová data" @@ -108,7 +114,7 @@ msgid "Account" msgstr "Účet" msgid "Account admin" -msgstr "Správa účtu" +msgstr "" msgid "Account successfully assigned" msgstr "Účet byl úspěšně přiřazen" @@ -134,17 +140,17 @@ msgstr "Zapnout" msgid "Activate amendments" msgstr "Zapnout pozměňovací návrhy" +msgid "Activate closed meeting" +msgstr "" + msgid "Activate design" msgstr "Zapnout vnější úpravu" -msgid "Activate statute amendments" -msgstr "Zapnout pozměňovací návrhy předpisu" - msgid "Activate the selection field 'motion editor'" -msgstr "" +msgstr "Zapnout výběrové pole editor návrhů" -msgid "Activate the selection field 'spokesman'" -msgstr "" +msgid "Activate the selection field 'spokesperson'" +msgstr "Zapnout výběrové pole mluvčí" msgid "Activate vote delegations" msgstr "Zapnout zplnomocnění hlasů" @@ -215,7 +221,7 @@ msgid "Add option" msgstr "Přidat možnost" msgid "Add timer" -msgstr "" +msgstr "Přidat časovač" msgid "Add to agenda" msgstr "Přidat do pořadu jednání" @@ -226,6 +232,9 @@ msgstr "Přidat k setkáním" msgid "Add to queue" msgstr "Přidat do řady" +msgid "Add up" +msgstr "Přidat nahoru" + msgid "Add yourself to the current list of speakers to join the conference" msgstr "Přidejte se do nynějšího seznamu řečníků pro připojení se k jednání" @@ -235,6 +244,9 @@ msgstr "Přidat/Odstranit skupiny..." msgid "Add/remove structure levels ..." msgstr "Přidat/Odstranit úrovně rozčlenění..." +msgid "Add/subtract" +msgstr "Přidat/Odebrat" + msgid "" "Additional columns after the required ones may be present and will not " "affect the import." @@ -243,7 +255,7 @@ msgstr "" "ovlivněno." msgid "Administration roles" -msgstr "Správcovská funkce" +msgstr "Správcovské funkce" msgid "Administration roles (at organization level)" msgstr "Správcovské funkce (na úrovni organizace)" @@ -273,8 +285,11 @@ msgstr "Body pořadu jednání se zpracovávají. Počkejte, prosím..." msgid "Agenda visibility" msgstr "Viditelnost pořadu jednání" -msgid "Alignment" -msgstr "Zarovnání" +msgid "Align" +msgstr "" + +msgid "All" +msgstr "Vše" msgid "All casted ballots" msgstr "Všechny odevzdané hlasovací lístky" @@ -292,7 +307,7 @@ msgid "All other fields are optional and may be empty." msgstr "Všechna ostatní pole jsou nepovinná a mohou zůstat prázdná." msgid "All present entitled users" -msgstr "" +msgstr "Všichni přítomní oprávnění uživatelé" msgid "All structure levels" msgstr "Všechny úrovně rozčlenění" @@ -319,7 +334,7 @@ msgid "Allow forwarding of motions" msgstr "Umožnit předávání návrhů" msgid "Allow one participant multiple times on the same list" -msgstr "" +msgstr "Povolit jednomu účastníkovi opakované zařazení do stejného seznamu" msgid "" "Allow only current speakers and list of speakers managers to enter the live " @@ -408,6 +423,9 @@ msgstr "Adresa (URL) částice obrázku potlesku" msgid "Applause visualization" msgstr "Znázornění potlesku" +msgid "Application update in progress." +msgstr "Probíhá aktualizace aplikace." + msgid "Apply" msgstr "Použít" @@ -433,6 +451,10 @@ msgstr "" msgid "Are you sure you want to activate this meeting?" msgstr "Opravdu chcete spustit toto setkání?" +msgid "" +"Are you sure you want to add the following time onto every structure level?" +msgstr "Opravdu chcete na každou úroveň struktury přidat následující čas?" + msgid "Are you sure you want to anonymize all votes? This cannot be undone." msgstr "" "Opravdu mají být přečíslovány všechny hlasy zbaveny osobních údajů? Toto " @@ -534,11 +556,8 @@ msgstr "Opravdu má být smazán tento promítací přístroj?" msgid "Are you sure you want to delete this state?" msgstr "Opravdu chcete smazat tento stav?" -msgid "Are you sure you want to delete this statute paragraph?" -msgstr "Opravdu má být smazán tento odstavec předpisu?" - msgid "Are you sure you want to delete this structure level?" -msgstr "" +msgstr "Opravdu chcete smazat tuto úroveň struktury?" msgid "Are you sure you want to delete this tag?" msgstr "Opravdu má být smazáno toto klíčové slovo?" @@ -562,6 +581,8 @@ msgid "" "Are you sure you want to end this contribution which still has interposed " "question(s)?" msgstr "" +"Opravdu chcete ukončit tento příspěvek, který stále obsahuje položenou " +"otázku(y)?" msgid "" "Are you sure you want to generate new passwords for all selected " @@ -569,7 +590,7 @@ msgid "" msgstr "Opravdu mají být vytvořena nová hesla všem vybraným účastníkům?" msgid "Are you sure you want to irrevocably remove your point of order?" -msgstr "" +msgstr "Opravdu chcete neodvolatelně odstranit svoji procedurální připomínku?" msgid "Are you sure you want to number all agenda items?" msgstr "Opravdu mají být číslovány všechny body pořadu jednání?" @@ -583,7 +604,7 @@ msgid "Are you sure you want to remove all selected items from the agenda?" msgstr "Opravdu mají být odstraněny všechny vybrané body z pořadu jednání?" msgid "Are you sure you want to remove these participants?" -msgstr "" +msgstr "Opravdu chcete smazat tyto účastníky?" msgid "Are you sure you want to remove this entry from the agenda?" msgstr "Opravdu mají být odstraněna tato položka z pořadu jednání?" @@ -592,7 +613,7 @@ msgid "Are you sure you want to remove this motion from motion block?" msgstr "Opravdu má být odstraněn tento návrh z návrhového bloku?" msgid "Are you sure you want to remove this participant?" -msgstr "" +msgstr "Opravdu chcete smazat tohoto účastníka?" msgid "" "Are you sure you want to remove this speaker from the list of speakers?" @@ -605,22 +626,33 @@ msgid "Are you sure you want to renumber all motions of this category?" msgstr "Opravdu mají být přečíslovány všechny návrhy v této skupině?" msgid "Are you sure you want to reset all options to default settings?" -msgstr "" +msgstr "Opravdu chcete obnovit výchozí nastavení všech voleb?" msgid "" "Are you sure you want to reset all options to default settings? All changes " "of this settings group will be lost!" msgstr "" +"Opravdu chcete obnovit výchozí nastavení všech voleb? Všechna nastavení této" +" skupiny nastavení budou ztracena!" msgid "Are you sure you want to reset all passwords to the default ones?" msgstr "Opravdu mají být obnovena všechna hesla na výchozí?" +msgid "" +"Are you sure you want to reset the time to the last set value? It will be " +"reset to:" +msgstr "" +"Určitě chcete obnovit čas na poslední nastavenou hodnotu? Vrátí se na:" + msgid "Are you sure you want to reset this vote?" msgstr "Opravdu chcete obnovit toto hlasování?" msgid "Are you sure you want to send an invitation email to the user?" msgstr "Opravdu má být uživateli poslán elektronický dopis s pozváním?" +msgid "Are you sure you want to send an invitation email?" +msgstr "Opravdu chcete poslat elektronický dopis s pozvánkou?" + msgid "Are you sure you want to send emails to all selected participants?" msgstr "" "Opravdu mají být poslány elektronické dopisy všem vybraným účastníkům?" @@ -665,6 +697,9 @@ msgstr "" "zobrazení podrobností účtu." msgid "Attention: First enter the wifi data in [Settings > General]" +msgstr "Pozor: Nejprve zadejte údaje o wifi v nabídce [Nastavení → Obecné]." + +msgid "Attention: Not selected accounts will be merged and then deleted." msgstr "" msgid "Attention: This action cannot be undone!" @@ -682,6 +717,9 @@ msgstr "Automaticky otevřít webovou kameru pro nové řečníky jednání" msgid "Autopilot" msgstr "Samočinné řízení" +msgid "Autopilot widgets" +msgstr "" + msgid "Autoupdate unhealthy" msgstr "Automatická aktualizace nezdravá" @@ -742,6 +780,9 @@ msgstr "Hlasování aktualizováno" msgid "Ballots" msgstr "Hlasování" +msgid "Ballots cast" +msgstr "" + msgid "Base folder" msgstr "Základní složka" @@ -751,18 +792,21 @@ msgstr "Začít projev" msgid "Blank between prefix and number, e.g. 'A 001'." msgstr "Prázdné mezi předlohou a číslem, např. 'A 001'." -msgid "Blocks" -msgstr "Bloky" +msgid "Blockquote" +msgstr "" msgid "Bold" msgstr "Tučné" -msgid "CSV export options" -msgstr "Volby pro vyvedení do CSV" +msgid "Bullet list" +msgstr "" msgid "CSV import" msgstr "Zavedení CSV" +msgid "CSV options" +msgstr "" + msgid "Calendar" msgstr "Kalendář" @@ -944,6 +988,9 @@ msgstr "Smí spravovat vedení rozhovoru" msgid "Can manage the projector" msgstr "Smí spravovat promítací přístroj" +msgid "Can modify existing participants, but cannot create or delete them." +msgstr "" + msgid "Can nominate another participant" msgstr "Může navrhnout jiného účastníka" @@ -966,7 +1013,7 @@ msgid "Can put oneself on the list of speakers" msgstr "Smí se sám umístit na seznamu řečníků" msgid "Can receive motions" -msgstr "Smí přijímat návrhy" +msgstr "" msgid "Can receive motions from committee" msgstr "Smí přijímat návrhy od výboru" @@ -986,6 +1033,9 @@ msgstr "" msgid "Can see elections" msgstr "Smí vidět volby" +msgid "Can see email, username and SSO identification of all participants." +msgstr "" + msgid "Can see files" msgstr "" @@ -1019,6 +1069,9 @@ msgstr "" msgid "Can see participants" msgstr "Smí vidět účastníky" +msgid "Can see sensitive data" +msgstr "" + msgid "Can see the Agenda menu item and all public topics in the agenda." msgstr "" "Může zobrazit položku nabídky Pořad jednání a všechny veřejné náměty v " @@ -1121,6 +1174,9 @@ msgstr "" "[Nastavení] → [Návrhy] a také pro příslušný stav v nabídce → [Pracovní " "postup]." +msgid "Can update participants" +msgstr "" + msgid "" "Can upload, modify and delete files, administrate folders and change access " "restrictions." @@ -1153,13 +1209,10 @@ msgid "Cannot do that in demo mode!" msgstr "Nelze udělat v ukázkovém režimu!" msgid "Cannot forward motions" -msgstr "Nesmí postoupit návrhy" - -msgid "Cannot navigate to the selected history element." -msgstr "Nelze přejít na vybraný prvek historie." +msgstr "" msgid "Cannot receive motions" -msgstr "Nesmí přijímat návrhy" +msgstr "" msgid "Categories" msgstr "Skupiny" @@ -1242,26 +1295,34 @@ msgstr "Volba" msgid "Choose 0 to disable Intervention." msgstr "" -msgid "Choose 0 to disable the supporting system." -msgstr "Zadejte 0 pro vypnutí podpůrného systému." - msgid "" -"Choose a number greater than 0 to activate speaking times widget for " -"structure level countdowns." +"Choose 0 to disable speaking times widget for structure level countdowns." msgstr "" +msgid "Choose 0 to disable the supporting system." +msgstr "Zadejte 0 pro vypnutí podpůrného systému." + msgid "Chyron" -msgstr "Dolní třetina" +msgstr "" -msgid "Chyron background color" -msgstr "Barva pozadí v dolní třetině" +msgid "Chyron agenda item, background color" +msgstr "" -msgid "Chyron font color" -msgstr "Barva písma v dolní třetině" +msgid "Chyron agenda item, font color" +msgstr "" msgid "Chyron speaker name" msgstr "Jméno řečníka v dolní třetině" +msgid "Chyron speaker, background color" +msgstr "" + +msgid "Chyron speaker, font color" +msgstr "" + +msgid "Classic" +msgstr "" + msgid "Clear" msgstr "Smazat" @@ -1274,6 +1335,9 @@ msgstr "Vyprázdnit seznam řečníků" msgid "Clear current projection" msgstr "" +msgid "Clear formatting" +msgstr "" + msgid "Clear list" msgstr "Vyprázdnit seznam" @@ -1298,11 +1362,11 @@ msgstr "" msgid "Close list of speakers" msgstr "Zavřít seznam řečníků" -msgid "Closed items" -msgstr "Vyřízené body" +msgid "Closed" +msgstr "" -msgid "Code" -msgstr "Kód" +msgid "Closed items" +msgstr "" msgid "Collapse all" msgstr "Sbalit vše" @@ -1463,6 +1527,9 @@ msgstr "Vytvoření" msgid "Creation date" msgstr "Doba vytvoření" +msgid "Current agenda item" +msgstr "" + msgid "Current date" msgstr "Nynější datum" @@ -1481,6 +1548,9 @@ msgstr "" msgid "Current speaker chyron" msgstr "Nynější řečník v dolní třetině" +msgid "Current window" +msgstr "" + msgid "Currently no livestream available." msgstr "V současné době není dostupný žádný přímý přenos." @@ -1496,6 +1566,9 @@ msgstr "Uživatelsky stanovený počet hlasovacích lístků" msgid "Custom translations" msgstr "Vlastní překlady" +msgid "Customize autopilot" +msgstr "" + msgid "Dark mode" msgstr "Tmavý režim" @@ -1514,11 +1587,8 @@ msgstr "Rozhodnutí" msgid "Default" msgstr "Výchozí" -msgid "Default 100 % base of a voting result" -msgstr "Výchozí 100% základ výsledku hlasování" - -msgid "Default 100 % base of an election result" -msgstr "Výchozí 100% základ výsledku voleb" +msgid "Default 100 % base" +msgstr "" msgid "Default election method" msgstr "Výchozí způsob volby" @@ -1535,7 +1605,9 @@ msgstr "Výchozí skupiny s hlasovacím právem" msgid "Default line numbering" msgstr "Výchozí číslování řádků" -msgid "Default speaking time for structure levels in seconds" +msgid "" +"Default speaking time contingent for parliamentary groups (structure levels)" +" in seconds" msgstr "" msgid "" @@ -1583,7 +1655,7 @@ msgstr "Určuje čas, ve kterém se sečtou hodnoty potlesku." msgid "" "Defines the wording of the recommendation that belongs to this state.\n" -"Example: State = Accepted / Recommendation = Acceptance. \n" +"Example: State = Accepted / Recommendation = Acceptance.\n" "\n" "To activate the recommendation system, a recommender (for example, a motion committee) must be defined under > [Settings] > [Motions] > [Name of recommender].\n" "Example recommender: motion committee\n" @@ -1591,20 +1663,12 @@ msgid "" "Additional information:\n" "In combination with motion blocks, the recommendation of multiple motions can be followed simultaneously." msgstr "" -"Stanovuje znění doporučení, které patří k tomuto stavu.\n" -"Příklad: Příklad: Stav = Přijato / Doporučení = Přijetí. \n" -"\n" -"Pro zapnutí systému doporučení musí být v nabídce [Nastavení] → [Návrhy] → [Jméno doporučujícího] stanoven doporučující (například návrhový výbor).\n" -"Příklad doporučujícího subjektu: Výbor pro návrhy\n" -"\n" -"Doplňující informace:\n" -"V kombinaci s návrhovými bloky lze sledovat doporučení více návrhů současně." msgid "Defines which states can be selected next in the workflow." msgstr "Určuje, které stavy lze v pracovním postupu vybrat jako další." msgid "Delegation of vote" -msgstr "Přenesení hlasování" +msgstr "" msgid "Delete" msgstr "Smazat" @@ -1621,9 +1685,7 @@ msgstr "Smazat promítací přístroj" msgid "Deleted user" msgstr "Smazaný uživatel" -msgid "" -"Deleting this motion will likely impact it's amendments negatively and they " -"could become unusable." +msgid "Deleting this motion will also delete the amendments." msgstr "" msgid "Deletion" @@ -1645,11 +1707,14 @@ msgid "Designates whether this user is in the room." msgstr "Určuje, zda je tento uživatel v místnosti." msgid "Didn't get an email" -msgstr "Nedostal elektronický dopis" +msgstr "" msgid "Diff version" msgstr "Znázornění změn" +msgid "Disable connection closing on inactivity" +msgstr "" + msgid "Disabled (no percents)" msgstr "Vypnuto (žádná procenta)" @@ -1662,15 +1727,15 @@ msgstr "Typ zobrazení" msgid "Distribute overhang time" msgstr "" -msgid "Div" -msgstr "Roz" - msgid "Divergent:" msgstr "Rozdílný" msgid "Do not forget to save your changes!" msgstr "Nezapoměňte uložit své změny!" +msgid "Do not show recommendations publicly" +msgstr "" + msgid "Do you accept?" msgstr "" @@ -1708,6 +1773,9 @@ msgstr "Stáhnout soubor s příkladem CSV" msgid "Download folder" msgstr "Stáhnout složku" +msgid "Download the file" +msgstr "" + msgid "Drop files into this area OR click here to select files" msgstr "Upusťte soubory na tuto oblast NEBO klepněte sem a vyberte soubory" @@ -1718,7 +1786,7 @@ msgid "Duplicate from" msgstr "Zdvojit z" msgid "Duplicates" -msgstr "Zdvojení" +msgstr "" msgid "Duration" msgstr "Doba trvání" @@ -1747,6 +1815,9 @@ msgstr "" msgid "Edit" msgstr "Upravit" +msgid "Edit HTML content" +msgstr "" + msgid "Edit account" msgstr "" @@ -1786,9 +1857,6 @@ msgstr "" msgid "Edit state" msgstr "" -msgid "Edit statute paragraph" -msgstr "Upravit odstavec předpisu" - msgid "Edit tag" msgstr "Upravit klíčové slovo" @@ -1801,9 +1869,6 @@ msgstr "Upravit pro zadání hlasů." msgid "Edit topic" msgstr "Upravit námět" -msgid "Edit total time" -msgstr "" - msgid "Edit workflow" msgstr "" @@ -1819,6 +1884,9 @@ msgstr "Volební dokumenty" msgid "Elections" msgstr "Volby" +msgid "Elections (PDF settings)" +msgstr "" + msgid "Element" msgstr "" @@ -1826,7 +1894,7 @@ msgid "Email" msgstr "E-mail" msgid "Email address" -msgstr "Adresa elektronické pošty" +msgstr "" msgid "Email body" msgstr "Tělo elektronického dopisu" @@ -1906,19 +1974,13 @@ msgstr "" "vytvoření návrhu." msgid "" -"Enables the forwarding of motions to other meetings within the OpenSlides instance in the selected state. \n" +"Enables the forwarding of motions to other meetings within the OpenSlides instance in the selected state.\n" "\n" "Prerequisites:\n" -"1. forwarding hierarchy must be set at the organizational level in the committee. \n" +"1. forwarding hierarchy must be set at the organizational level in the committee.\n" "2. target meeting must be created.\n" "3. user must have group permission for forwarding." msgstr "" -"Povoluje předávání návrhů na další setkání v rámci instance OpenSlides ve vybraném stavu. \n" -"\n" -"Předpoklady:\n" -"1. posloupnost předávání musí být nastavena na organizační úrovni ve výboru. \n" -"2. musí být vytvořeno cílové setkání.\n" -"3. uživatel musí mít skupinové oprávnění pro přeposílání." msgid "" "Enables the support function for motions in the selected state. The support " @@ -2018,14 +2080,10 @@ msgstr "" "řečníků)" msgid "" -"Existing accounts can be reused by entering email (with given name and " -"surname) OR by entering the username in the csv file." +"Existing accounts can be reused or updated by using:
  • Membership " +"number (recommended)
  • Username
  • Email address AND first name AND " +"last name" msgstr "" -"Stávající účty lze znovu použít zadáním adresy elektronické pošty (se jménem" -" a příjmením) NEBO zadáním uživatelského jména v souboru csv." - -msgid "Exit" -msgstr "Ukončit" msgid "Exit conference room" msgstr "Opustit jednací místnost" @@ -2066,6 +2124,9 @@ msgstr "Rozšíření" msgid "External ID" msgstr "Vnější ID" +msgid "Fallback" +msgstr "" + msgid "Favorites" msgstr "Oblíbené" @@ -2084,6 +2145,9 @@ msgstr "Soubory" msgid "Filter" msgstr "Filtr" +msgid "Filtered single votes" +msgstr "" + msgid "Final version" msgstr "Konečná verze" @@ -2123,6 +2187,13 @@ msgstr "Obyčejné písmo" msgid "Font size in pt" msgstr "Velikost písma v bodech (pt)" +msgid "" +"For activation:
    \n" +" 1. Assign group permission (define the group that can support motions)
    \n" +" 2. Adjust workflow (define state in which motions can be supported)
    \n" +" 3. Enter minimum number (see next field)" +msgstr "" + msgid "" "For large instances this may block the server to the point of unusability" msgstr "" @@ -2135,6 +2206,9 @@ msgstr "Barva popředí" msgid "Forgot Password?" msgstr "Zapomněl jste heslo?" +msgid "Formalities" +msgstr "" + msgid "Format" msgstr "Formát" @@ -2145,7 +2219,7 @@ msgid "Forward" msgstr "Postoupit" msgid "Forward motions" -msgstr "Postoupit návrhy" +msgstr "" msgid "Forward motions to" msgstr "Návrhy postoupit" @@ -2214,7 +2288,7 @@ msgid "Go to line" msgstr "Jít na řádek" msgid "Got an email" -msgstr "Dostal elektronický dopis" +msgstr "" msgid "Group" msgstr "Skupina" @@ -2249,32 +2323,50 @@ msgstr "Host" msgid "Has SSO identification" msgstr "Má poznávací znamení SSO" +msgid "Has a membership number" +msgstr "" + msgid "Has amendments" msgstr "Má pozměňovací návrhy" msgid "Has an email address" -msgstr "Má adresu elektronické pošty" +msgstr "" msgid "Has changed vote weight" -msgstr "Váha hlasu změněna" +msgstr "" + +msgid "Has email" +msgstr "" msgid "Has forwardings" msgstr "Má postoupení" +msgid "Has identical motions" +msgstr "" + msgid "Has logged in" -msgstr "Přihlásil se" +msgstr "" msgid "Has no SSO identification" msgstr "Nemá poznávací znamení SSO" msgid "Has no email address" -msgstr "Nemá adresu elektronické pošty" +msgstr "" + +msgid "Has no identical motions" +msgstr "" + +msgid "Has no membership number" +msgstr "" msgid "Has no speakers" msgstr "Nemá žádné řečníky" msgid "Has not logged in yet" -msgstr "Ještě se nepřihlásil" +msgstr "" + +msgid "Has not spoken" +msgstr "" msgid "Has not voted" msgstr "" @@ -2285,8 +2377,11 @@ msgstr "Má poznámky" msgid "Has speakers" msgstr "Má řečníky" +msgid "Has spoken" +msgstr "" + msgid "Has unchanged vote weight" -msgstr "Váha hlasu nezměněna" +msgstr "" msgid "Has voted" msgstr "Hlasoval" @@ -2294,32 +2389,17 @@ msgstr "Hlasoval" msgid "Header" msgstr "Záhlaví" -msgid "Header 1" -msgstr "Záhlaví 1" - -msgid "Header 2" -msgstr "Záhlaví 2" - -msgid "Header 3" -msgstr "Záhlaví 3" - -msgid "Header 4" -msgstr "Záhlaví 4" - -msgid "Header 5" -msgstr "Záhlaví 5" - -msgid "Header 6" -msgstr "Záhlaví 6" - msgid "Header background color" msgstr "Barva pozadí záhlaví" msgid "Header font color" msgstr "Barva písma záhlaví" -msgid "Headers" -msgstr "Záhlaví" +msgid "Heading" +msgstr "" + +msgid "Headings" +msgstr "" msgid "Headline color" msgstr "Barva titulku" @@ -2333,12 +2413,18 @@ msgstr "Nápomocný text k přístupovým údajům a pozdravné PDF" msgid "Hidden item" msgstr "Skrytý bod" +msgid "Hide" +msgstr "" + msgid "Hide main menu" msgstr "" msgid "Hide more text" msgstr "Skrýt více textu" +msgid "Hide note on number of multiple contributions" +msgstr "" + msgid "Hide password" msgstr "Skrýt heslo" @@ -2365,6 +2451,9 @@ msgid "" " To receive replies you have to enter a reply address in the next field. Please test the email dispatch in case of changes!" msgstr "" +msgid "Identical motions" +msgstr "" + msgid "Identical with" msgstr "" @@ -2384,6 +2473,9 @@ msgstr "" msgid "If the value is set to 0 the time counts up as stopwatch." msgstr "" +msgid "Image description" +msgstr "" + msgid "Import" msgstr "Zavést" @@ -2405,9 +2497,6 @@ msgstr "Zavést návrhy" msgid "Import participants" msgstr "Zavést účastníky" -msgid "Import statute" -msgstr "Zavést předpis" - msgid "Import successful" msgstr "" @@ -2456,6 +2545,15 @@ msgstr "Vložit za" msgid "Insert topics here" msgstr "Vložit náměty zde" +msgid "Insert/Edit Link" +msgstr "" + +msgid "Insert/edit image" +msgstr "" + +msgid "Insert/edit link" +msgstr "" + msgid "Insertion" msgstr "Vložení" @@ -2490,7 +2588,7 @@ msgid "Invite to conference room" msgstr "Pozvat do jednací místnosti" msgid "Is a committee" -msgstr "Je výbor" +msgstr "" msgid "Is a natural person" msgstr "Je skutečná osoba" @@ -2528,16 +2626,16 @@ msgid "Is candidate" msgstr "Je uchazečem" msgid "Is committee admin" -msgstr "Je správce výboru" +msgstr "" msgid "Is favorite" msgstr "Je oblíbené" msgid "Is in active meetings" -msgstr "Je v činných setkáních" +msgstr "" msgid "Is in archived meetings" -msgstr "Je v archivovaných setkáních" +msgstr "" msgid "Is manager" msgstr "Je správce" @@ -2549,13 +2647,13 @@ msgid "Is no natural person" msgstr "Není žádná skutečná osoba" msgid "Is not a committee" -msgstr "Není výbor" +msgstr "" msgid "Is not a template" msgstr "Není předloha" msgid "Is not active" -msgstr "Není činný" +msgstr "" msgid "Is not archived" msgstr "Není archivován" @@ -2564,10 +2662,10 @@ msgid "Is not favorite" msgstr "Není oblíbené" msgid "Is not in active meetings" -msgstr "Není v činných setkáních" +msgstr "" msgid "Is not in archived meetings" -msgstr "Není v archivovaných setkáních" +msgstr "" msgid "Is not present" msgstr "Není přítomen" @@ -2617,6 +2715,9 @@ msgstr "Název místnosti Jitsi" msgid "Jitsi room password" msgstr "Heslo k místnosti Jitsi" +msgid "Justify" +msgstr "" + msgid "Keep each item in a single line." msgstr "Držet každý bod na jednom řádku." @@ -2695,6 +2796,9 @@ msgstr "Seznam účastníků (PDF)" msgid "List of speakers" msgstr "Seznam řečníků" +msgid "List of speakers as overlay" +msgstr "" + msgid "List of speakers is initially closed" msgstr "Seznam řečníků je zpočátku uzavřen" @@ -2713,6 +2817,9 @@ msgstr "Přímý přenos" msgid "Livestream URL" msgstr "Adresa (URL) přímého přenosu" +msgid "Livestream poster image" +msgstr "" + msgid "Livestream poster image url" msgstr "Adresa (URL) obrázku plakátu přímého přenosu" @@ -2776,6 +2883,9 @@ msgstr "Datum setkání" msgid "Meeting information" msgstr "Údaje o setkání" +msgid "Meeting is closed" +msgstr "" + msgid "Meeting not found" msgstr "Setkání nenalezeno" @@ -2798,9 +2908,21 @@ msgstr "Název setkání" msgid "Meetings" msgstr "Setkání" +msgid "Meetings affected:" +msgstr "" + msgid "Meetings selected" msgstr "Vybraná setkání" +msgid "Membership number" +msgstr "" + +msgid "Merge" +msgstr "" + +msgid "Merge accounts" +msgstr "" + msgid "Message" msgstr "Oznámení" @@ -2834,6 +2956,9 @@ msgstr "Nejmenší počet číslic v označovači návrhu" msgid "Moderation note" msgstr "" +msgid "Modern" +msgstr "" + msgid "Modify design" msgstr "Změnit vnější úpravu" @@ -2906,6 +3031,9 @@ msgstr "Hlasování o návrzích" msgid "Motions" msgstr "Návrhy" +msgid "Motions (PDF settings)" +msgstr "" + msgid "Motions are in process. Please wait ..." msgstr "Návrhy se zpracovávají. Počkejte, prosím..." @@ -2951,15 +3079,30 @@ msgstr "Název" msgid "Name of recommender" msgstr "Jméno doporučujícího" -msgid "Name of recommender for statute amendments" -msgstr "Jméno doporučujícího pro pozměňovací návrhy předpisu " - msgid "Name of the new category" msgstr "Název nové skupiny" msgid "Natural person" msgstr "Skutečná osoba" +msgid "Navigate to account page from " +msgstr "" + +msgid "Navigate to committee detail view from " +msgstr "" + +msgid "Navigate to meeting " +msgstr "" + +msgid "Navigate to motion" +msgstr "" + +msgid "Navigate to participant page from " +msgstr "" + +msgid "Navigate to the folder" +msgstr "" + msgid "Negative votes are not allowed." msgstr "Záporné hlasy nejsou povoleny." @@ -3035,9 +3178,6 @@ msgstr "" msgid "New state" msgstr "Nový stav" -msgid "New statute paragraph" -msgstr "Nový odstavec předpisu" - msgid "New tag" msgstr "Nové klíčové slovo" @@ -3047,6 +3187,9 @@ msgstr "Nový námět" msgid "New vote" msgstr "Nové hlasování" +msgid "New window" +msgstr "" + msgid "New workflow" msgstr "Nový pracovní postup" @@ -3060,14 +3203,11 @@ msgid "No" msgstr "Ne" msgid "No admin role" -msgstr "Žádná úloha správce" +msgstr "" msgid "No category" msgstr "Žádná skupina" -msgid "No category set" -msgstr "Nestanovena žádná skupina" - msgid "No change recommendations yet" msgstr "Dosud žádná doporučení změn" @@ -3081,13 +3221,13 @@ msgid "No comment" msgstr "Bez poznámky" msgid "No committee admin" -msgstr "Žádný správce výboru" +msgstr "" msgid "No data" msgstr "Žádná data" msgid "No delegation of vote" -msgstr "Žádné přenesení hlasování" +msgstr "" msgid "No emails were send." msgstr "Nebyly odeslány žádné elektronický dopisy." @@ -3116,12 +3256,6 @@ msgstr "Nejsou dostupná žádná setkání" msgid "No meetings have been selected." msgstr "Nebylo vybráno žádné setkání." -msgid "No motion block set" -msgstr "Nestanoven žádný návrhový blok" - -msgid "No motion editors" -msgstr "" - msgid "No one has voted for this poll" msgstr "V tomto hlasování nikdo nehlasoval" @@ -3134,27 +3268,15 @@ msgstr "Ne pro uchazeče" msgid "No personal note" msgstr "Bez osobní poznámky" -msgid "No recommendation" -msgstr "Žádné doporučení" - msgid "No results found" msgstr "" msgid "No results yet." msgstr "Zatím žádné výsledky." -msgid "No spokesperson" -msgstr "" - -msgid "No statute paragraphs" -msgstr "Žádné odstavce předpisu" - msgid "No structure level" msgstr "" -msgid "No tags" -msgstr "Žádná klíčová slova" - msgid "No verbose name is defined" msgstr "Není stanoven žádný podrobný název" @@ -3170,6 +3292,9 @@ msgstr "Žádné" msgid "None of the selected motions can be forwarded." msgstr "" +msgid "Normal (http/2)" +msgstr "" + msgid "Not found" msgstr "Nenalezeno" @@ -3239,12 +3364,18 @@ msgstr "Počet dalších na promítacím přístroji zobrazených řečníků" msgid "Number set" msgstr "Číslo stanoveno" +msgid "Numbered list" +msgstr "" + msgid "Numbered per category" msgstr "Číslovat na základě skupin" msgid "Numbering" msgstr "Číslování" +msgid "Numbering and sorting" +msgstr "" + msgid "Numbering prefix for agenda items" msgstr "Předpona pro číslování bodů pořadu jednání" @@ -3254,21 +3385,36 @@ msgstr "Číselný systém pro body pořadu jednání" msgid "OK" msgstr "Ok" +msgid "OR" +msgstr "" + +msgid "Off" +msgstr "" + msgid "Offline mode" msgstr "Režim bez připojení k internetu" msgid "Ok" msgstr "OK" +msgid "Old account of" +msgstr "" + msgid "Old password" msgstr "Staré heslo" +msgid "On" +msgstr "" + msgid "One email was send sucessfully." msgstr "Byl úspěšně odeslán jeden elektronický dopis." msgid "Only for internal notes." msgstr "Jen pro vnitřní poznámky." +msgid "Only groups and participant number are switched." +msgstr "" + msgid "Only main agenda items" msgstr "Pouze hlavní body pořadu jednání" @@ -3291,7 +3437,10 @@ msgid "Open a meeting to play chess" msgstr "" msgid "Open items" -msgstr "Otevřené body" +msgstr "" + +msgid "Open link in ..." +msgstr "" msgid "Open list of speakers" msgstr "Otevřít seznam řečníků" @@ -3314,6 +3463,14 @@ msgstr "Přístupová data k OpenSlides" msgid "OpenSlides help (FAQ)" msgstr "Nápověda k OpenSlides (FAQ)" +msgid "" +"OpenSlides offers various speaking list customizations for use in " +"parliament. These include the configuration of speaking time quotas for " +"parliamentary groups (e.g. fractions, coalitions) as well as extended types " +"of speeches such as short interventions and (parliamentary) interposed " +"questions." +msgstr "" + msgid "OpenSlides recommends" msgstr "OpenSlides doporučuje" @@ -3330,7 +3487,7 @@ msgid "Organization Management Level changed" msgstr "Úroveň řízení organizace změněna" msgid "Organization admin" -msgstr "Správce organizace" +msgstr "" msgid "Organization language" msgstr "Jazyk organizace" @@ -3359,21 +3516,12 @@ msgstr "" msgid "Outside" msgstr "Vně" -msgid "Overlay" -msgstr "Pokryv" - msgid "PDF" msgstr "PDF" msgid "PDF ballot paper logo" msgstr "Emblém na hlasovacích lístcích v PDF" -msgid "PDF export" -msgstr "Vyvedení do PDF" - -msgid "PDF export options" -msgstr "Volby pro vyvedení do PDF" - msgid "PDF footer logo (left)" msgstr "Emblém v zápatí PDF (nalevo)" @@ -3425,6 +3573,9 @@ msgstr "Souběžné nahrání" msgid "Parent agenda item" msgstr "Nadřazený bod pořadu jednání" +msgid "Parliament options" +msgstr "" + msgid "Participant" msgstr "Účastník" @@ -3470,6 +3621,9 @@ msgstr "Účastník odstraněn z více skupin na více setkáních" msgid "Participants" msgstr "Účastníci" +msgid "Participants (PDF settings)" +msgstr "" + msgid "" "Participants and administrators are copied completely and cannot be edited " "here." @@ -3550,6 +3704,9 @@ msgstr "Zadejte, prosím, své nové heslo" msgid "Please join the conference room now!" msgstr "Připojte se nyní do jednací místnosti!" +msgid "Please select a primary account." +msgstr "" + msgid "Please select a vote weight greater than or equal to 0.000001" msgstr "" @@ -3582,9 +3739,6 @@ msgstr "" msgid "Possible points of order" msgstr "Možné body pořadu jednání" -msgid "Pre" -msgstr "Pre" - msgid "Preamble text for PDF document (all elections)" msgstr "Text úvodu dokumentu PDF (všechny volby)" @@ -3618,6 +3772,9 @@ msgstr "Předchozí průsvitky" msgid "Primary color" msgstr "Základní barva" +msgid "Principals" +msgstr "" + msgid "Privacy Policy" msgstr "Politika pro soukromí" @@ -3654,9 +3811,6 @@ msgstr "Promítání" msgid "Projector" msgstr "Promítačka" -msgid "Projector and countdown" -msgstr "Promítačka a odpočítávání" - msgid "Projector h1" msgstr "Promítačka h1" @@ -3675,6 +3829,9 @@ msgstr "Promítačky" msgid "Pronoun" msgstr "Zájmeno" +msgid "Proxy holders" +msgstr "" + msgid "Public" msgstr "Veřejný" @@ -3684,6 +3841,9 @@ msgstr "Veřejný bod" msgid "Public template" msgstr "Veřejná předloha" +msgid "Public template required for creating new meeting" +msgstr "" + msgid "Publish" msgstr "Zveřejnit" @@ -3715,7 +3875,7 @@ msgid "Receipt of contributions" msgstr "" msgid "Receive motions" -msgstr "Přijímat návrhy" +msgstr "" msgid "Receive motions from" msgstr "Přijímat návrhy od" @@ -3743,6 +3903,9 @@ msgstr "Obnoveno výchozí doporučení" msgid "Recommendation set to {}" msgstr "Doporučení nastaveno na {}" +msgid "Redo" +msgstr "" + msgid "Reenter to conference room" msgstr "Vstoupit znovu do jednací místnosti" @@ -3798,12 +3961,18 @@ msgstr "Odstranit z pořadu jednání" msgid "Remove from motion block" msgstr "Odstranit z návrhového bloku" +msgid "Remove link" +msgstr "" + msgid "Remove me" msgstr "Odstranit mě" msgid "Remove option" msgstr "Odstranit možnost" +msgid "Remove point of order" +msgstr "" + msgid "Reopen" msgstr "Otevřít znovu" @@ -3856,6 +4025,9 @@ msgstr "Vynulovat doporučení" msgid "Reset state" msgstr "Vynulovat stav" +msgid "Reset timer" +msgstr "Vynulovat časovač" + msgid "Reset to default settings" msgstr "" @@ -3865,6 +4037,20 @@ msgstr "Rozlišení a velikost" msgid "Restart livestream" msgstr "Spustit přímý přenos znovu" +msgid "" +"Restrict delegation principals from adding themselves to the list of " +"speakers" +msgstr "" + +msgid "Restrict delegation principals from creating motions/amendments" +msgstr "" + +msgid "Restrict delegation principals from supporting motions" +msgstr "" + +msgid "Restrict delegation principals from voting" +msgstr "" + msgid "Restrictions" msgstr "Omezení" @@ -3890,7 +4076,7 @@ msgid "Rows with warnings" msgstr "" msgid "SSO" -msgstr "SSO" +msgstr "" msgid "SSO Identification" msgstr "Poznávací znamení SSO" @@ -3899,10 +4085,10 @@ msgid "SSO identification" msgstr "" msgid "Same email" -msgstr "Stejný e-mail" +msgstr "" -msgid "Same first/last name" -msgstr "Stejné jméno/příjmení" +msgid "Same given and surname" +msgstr "" msgid "Save" msgstr "Uložit" @@ -3949,9 +4135,6 @@ msgstr "Vybrat" msgid "Select all" msgstr "Vybrat vše" -msgid "Select exactly two participants to swap mandates" -msgstr "" - msgid "Select file" msgstr "Vybrat soubor" @@ -4084,6 +4267,9 @@ msgstr "Nastavit tuto promítačku jako srovnávací pro nynější seznam řeč msgid "Settings" msgstr "Nastavení" +msgid "Short form for amendments" +msgstr "" + msgid "Show all" msgstr "Ukázat vše" @@ -4169,9 +4355,6 @@ msgstr "Ukázat rozšiřující pole doporučení" msgid "Show recommendation on projector" msgstr "Ukázat doporučení na promítačce" -msgid "Show recommendations not public" -msgstr "" - msgid "Show referring motions" msgstr "Ukázat odkazující návrhy" @@ -4197,6 +4380,9 @@ msgstr "Ukázat tento text na přihlašovací stránce" msgid "Show title" msgstr "Ukázat název" +msgid "Show topic navigation in detail view" +msgstr "" + msgid "" "Shows a button with help icon to connect to an extra Jitsi conference room " "for technical audio/video tests." @@ -4224,9 +4410,6 @@ msgstr "Nastavení jednotného přihlášení" msgid "Single votes" msgstr "Jednotlivé hlasy" -msgid "Slide" -msgstr "Průsvitka" - msgid "Some csv values could not be read correctly." msgstr "Některé hodnoty csv se nepodařilo správně načíst." @@ -4264,15 +4447,27 @@ msgstr "Řadit návrhy podle" msgid "Sort workflow" msgstr "Řadit pracovní postup" +msgid "Source" +msgstr "" + +msgid "Source code" +msgstr "" + msgid "Speaker" msgstr "Řečník" msgid "Speakers" msgstr "Řečníci" +msgid "Speaking time – current contribution" +msgstr "" + msgid "Speaking times" msgstr "" +msgid "Speaking times – overview structure levels" +msgstr "" + msgid "Speech start time" msgstr "" @@ -4280,10 +4475,10 @@ msgid "Speech type" msgstr "" msgid "Spokesperson" -msgstr "" +msgstr "Mluvčí" msgid "Spokespersons" -msgstr "" +msgstr "Mluvčí" msgid "Stalemate! It's a draw!" msgstr "" @@ -4315,20 +4510,8 @@ msgstr "Stav nastaven na {}" msgid "Statistics" msgstr "Statistika" -msgid "Statute" -msgstr "Předpis" - -msgid "Statute amendment" -msgstr "Pozměňovací návrh předpisu" - -msgid "Statute amendment for" -msgstr "Pozměňovací návrh předpisu pro" - -msgid "Statute paragraph" -msgstr "Odstavec předpisu" - -msgid "Statute paragraphs" -msgstr "Odstavce předpisu" +msgid "Status" +msgstr "" msgid "Stop" msgstr "Zastavit" @@ -4384,6 +4567,9 @@ msgstr "Předkladatelé změněni" msgid "Subscript" msgstr "Dolní index" +msgid "Subtract" +msgstr "" + msgid "Suitable accounts found" msgstr "Nalezeny vhodné účty" @@ -4403,7 +4589,7 @@ msgid "Summary of changes:" msgstr "Přehled změn:" msgid "Superadmin" -msgstr "Správce nad správci" +msgstr "" msgid "Superadmin actions" msgstr "Činnosti správce nad správci" @@ -4426,7 +4612,7 @@ msgstr "Podporovatelé změněni" msgid "Surname" msgstr "Příjmení" -msgid "Swap mandates ..." +msgid "Swap mandates" msgstr "" msgid "Switch" @@ -4444,6 +4630,9 @@ msgstr "Klíčová slova" msgid "Text" msgstr "Text" +msgid "Text color" +msgstr "" + msgid "Text for this option couldn't load." msgstr "Text této možnosti se nepodařilo nahrát." @@ -4453,6 +4642,9 @@ msgstr "Zavedení textu" msgid "Text separator" msgstr "Oddělovač textu" +msgid "Text to display" +msgstr "" + msgid "The account is deactivated." msgstr "Účet je vypnut." @@ -4508,15 +4700,10 @@ msgstr "Odkaz je poškozen. Spojte se, prosím, se správcem systému." msgid "The list of speakers is closed." msgstr "Seznam řečníků je uzavřen." -msgid "The list of speakers is open." -msgstr "Seznam řečníků je otevřen." - msgid "" "The maximum number of characters per line. Relevant when line numbering is " -"enabled. Min: 40" +"enabled. Min: 40. Note: Check PDF export and font." msgstr "" -"Největší počet znaků na řádek. Má význam, když je zapnuto číslování řádků. " -"Nejméně: 40" msgid "The number has to be greater than 0." msgstr "Číslo musí být větší než 0." @@ -4602,6 +4789,9 @@ msgstr "Tyto účty budou smazány:" msgid "These participants will be removed:" msgstr "" +msgid "These settings are only applied locally on this browser." +msgstr "" + msgid "This account has relations to meetings or committees" msgstr "Tento účet má vztahy se setkáními nebo výbory" @@ -4759,10 +4949,10 @@ msgid "Time and traffic light" msgstr "" msgid "Timer" -msgstr "" +msgstr "Časovač" msgid "Timers" -msgstr "" +msgstr "Časovač" msgid "Timestamp" msgstr "Časové razítko" @@ -4839,9 +5029,15 @@ msgstr "Řešení potíží" msgid "Try reconnect" msgstr "Zkuste se znovu připojit" +msgid "URL" +msgstr "" + msgid "Underline" msgstr "Podtržení" +msgid "Undo" +msgstr "" + msgid "Undone" msgstr "Nevyřízeno" @@ -4851,6 +5047,9 @@ msgstr "Jedineční řečníci" msgid "Unknown participant" msgstr "Neznámý účastník" +msgid "Unknown user" +msgstr "" + msgid "Unsaved changes will not be applied." msgstr "Neuložené změny se nepoužijí." @@ -4891,6 +5090,9 @@ msgstr "" "Používá se pro zvací elektronické dopisy a QRCode v PDF s přístupovými " "údaji." +msgid "User" +msgstr "" + msgid "User not found." msgstr "Uživatel nenalezen." @@ -4921,6 +5123,9 @@ msgstr "" msgid "Valid votes" msgstr "Platné hlasy" +msgid "View" +msgstr "" + msgid "Virtual applause" msgstr "Zdánlivý potlesk" @@ -4933,6 +5138,9 @@ msgstr "" msgid "Vote" msgstr "Hlasování" +msgid "Vote delegation" +msgstr "" + msgid "Vote submitted" msgstr "" @@ -4945,8 +5153,8 @@ msgstr "Hlasováno" msgid "Votes" msgstr "Hlasy" -msgid "Voting and ballot papers" -msgstr "Hlasování a hlasovací lístky" +msgid "Voting" +msgstr "Hlasování" msgid "Voting anonymized" msgstr "Hlasování anonymizováno" @@ -5036,11 +5244,6 @@ msgstr "" msgid "Warn color" msgstr "Výstražná barva" -msgid "" -"Warning: Amendments exist for at least one of the selected motions. Are you " -"sure you want to delete these motions regardless?" -msgstr "" - msgid "" "Warning: Amendments exist for this motion. Are you sure you want to delete " "this motion regardless?" @@ -5055,6 +5258,15 @@ msgstr "" "pravděpodobně záporně ovlivní. Zejména by se pozměňovací návrhy mohly stát " "nepoužitelnými, pokud by byl vypuštěn odstavec, kterého se týkají." +msgid "" +"Warning: At least one of the selected motions has amendments, these will be " +"deleted as well. Do you want to delete anyway?" +msgstr "" + +msgid "" +"Warning: Data loss is possible because accounts are in the same meeting." +msgstr "" + msgid "Warning: This projector will be set to visible" msgstr "Varování: Tato promítačka bude nastavena na viditelnou" @@ -5082,13 +5294,6 @@ msgstr "" msgid "Wifi name" msgstr "" -msgid "" -"Will be displayed as label before selected recommendation in statute " -"amendments." -msgstr "" -"Bude zobrazeno jako popis před vybraným doporučením v pozměňovacích návrzích" -" předpisu." - msgid "" "Will be displayed as label before selected recommendation. Use an empty " "value to disable the recommendation system." @@ -5108,9 +5313,6 @@ msgstr "Průběh práce na nových pozměňovacích návrzích" msgid "Workflow of new motions" msgstr "Postup práce na nových návrzích" -msgid "Workflow of new statute amendments" -msgstr "Průběh práce na nových pozměňovacích návrzích předpisu" - msgid "Workflows" msgstr "Pracovní postupy" @@ -5153,10 +5355,6 @@ msgstr "Nemáte tu být..." msgid "You are using an incompatible client version." msgstr "" -msgid "" -"You are using the history mode of OpenSlides. Changes will not be saved." -msgstr "Používáte minulostní režim OpenSlides. Změny nebudou uloženy." - msgid "You can change this option only in the forwarding section." msgstr "Tuto možnost můžete změnit jen v poli pro postoupení." @@ -5197,16 +5395,6 @@ msgstr "" "pracovní postup pro nové návrhy. Nastavte, prosím, v nastavení jiný pracovní" " postup jako výchozí a zkuste pracovní postup znovu odstranit." -msgid "" -"You cannot delete the workflow as long as it is selected as default workflow" -" for new statute amendments in the settings. Please set another workflow as " -"default in the settings and try to delete the workflow again." -msgstr "" -"Pracovní postup nelze odstranit, pokud je v nastavení vybrán jako výchozí " -"pracovní postup pro nové pozměňovací návrhy předpisu. Nastavte, prosím, v " -"nastavení jiný pracovní postup jako výchozí a zkuste pracovní postup znovu " -"odstranit." - msgid "You cannot delete yourself." msgstr "Nemůžete smazat sami sebe." @@ -5538,6 +5726,9 @@ msgstr "Odstranit skupinu(y)" msgid "represented by" msgstr "představováno" +msgid "represented by old account of" +msgstr "" + msgid "reset" msgstr "obnovit výchozí" @@ -5577,6 +5768,9 @@ msgstr "verze" msgid "votes per candidate" msgstr "hlasů na uchazeče" +msgid "votes per option" +msgstr "" + msgid "will be created" msgstr "bude vytvořen" @@ -5669,9 +5863,6 @@ msgstr "Čas na mluvení" msgid "Staff" msgstr "Zaměstnanci" -msgid "Voting" -msgstr "Hlasování" - msgid "" "You are receiving this email because you have requested a new password for your OpenSlides account.\n" "\n" diff --git a/client/src/assets/i18n/de.po b/client/src/assets/i18n/de.po index f1599aba8d..1563647fcd 100644 --- a/client/src/assets/i18n/de.po +++ b/client/src/assets/i18n/de.po @@ -815,6 +815,9 @@ msgstr "Wahlgang aktualisiert" msgid "Ballots" msgstr "Wahlgänge" +msgid "Ballots cast" +msgstr "Abgegebene Stimmzettel" + msgid "Base folder" msgstr "Basisverzeichnis" @@ -1833,6 +1836,9 @@ msgstr "CSV-Beispiel-Datei herunterladen" msgid "Download folder" msgstr "Verzeichnis herunterladen" +msgid "Download the file" +msgstr "Datei herunterladen" + msgid "Drop files into this area OR click here to select files" msgstr "" "Dateien auf diesen Bereich ziehen ODER hier klicken um Dateien auszuwählen" @@ -2221,6 +2227,9 @@ msgstr "Dateien" msgid "Filter" msgstr "Filter" +msgid "Filtered single votes" +msgstr "Gefilterte Einzelstimmen" + msgid "Final version" msgstr "Beschlussfassung" @@ -3169,6 +3178,24 @@ msgstr "Name des neuen Sachgebiets" msgid "Natural person" msgstr "natürliche Person" +msgid "Navigate to account page from " +msgstr "Navigation zur Accountseite von" + +msgid "Navigate to committee detail view from " +msgstr "Navigation zur Gremien-Detailansicht von" + +msgid "Navigate to meeting " +msgstr "Navigation zur Veranstaltung" + +msgid "Navigate to motion" +msgstr "Navigation zum Antrag" + +msgid "Navigate to participant page from " +msgstr "Navigation zur Teilnehmenden-Seite von" + +msgid "Navigate to the folder" +msgstr "Navigation zum Verzeichnis" + msgid "Negative votes are not allowed." msgstr "Negative Stimmen sind nicht zulässig." diff --git a/client/src/assets/i18n/es.po b/client/src/assets/i18n/es.po index d97a547d81..a8d175a30e 100644 --- a/client/src/assets/i18n/es.po +++ b/client/src/assets/i18n/es.po @@ -73,15 +73,15 @@ msgstr "" "Se ha producido un error en el servidor. Por favor, póngase en contacto con " "su administrador del sistema." +msgid "A time is required and must be in min:secs format." +msgstr "" + msgid "A title is required" msgstr "Se requiere un título" msgid "A topic needs a title" msgstr "" -msgid "A total time is required and must be greater than 0." -msgstr "" - msgid "" "A user with the username '%username%' and the first name '%first_name%' was " "created." @@ -105,6 +105,12 @@ msgstr "Datos de acceso (PDF)" msgid "Access groups" msgstr "Acceso a grupos" +msgid "" +"Access only possible for participants of this meeting. All other accounts " +"(including organization and committee admins) may not open the closed " +"meeting. It is locked from the inside." +msgstr "" + msgid "Access-data" msgstr "Datos de acceso" @@ -112,7 +118,7 @@ msgid "Account" msgstr "" msgid "Account admin" -msgstr "Administrador de la cuenta" +msgstr "" msgid "Account successfully assigned" msgstr "Cuenta asignada con éxito" @@ -138,16 +144,16 @@ msgstr "Activar" msgid "Activate amendments" msgstr "Activar las modificaciones" -msgid "Activate design" +msgid "Activate closed meeting" msgstr "" -msgid "Activate statute amendments" -msgstr "Activar las modificaciones de los estatutos" +msgid "Activate design" +msgstr "" msgid "Activate the selection field 'motion editor'" msgstr "" -msgid "Activate the selection field 'spokesman'" +msgid "Activate the selection field 'spokesperson'" msgstr "" msgid "Activate vote delegations" @@ -221,6 +227,9 @@ msgstr "Añadir a las reuniones" msgid "Add to queue" msgstr "Añadir a la cola" +msgid "Add up" +msgstr "" + msgid "Add yourself to the current list of speakers to join the conference" msgstr "" "Añádase a la lista actual de oradores para participar en la conferencia" @@ -231,6 +240,9 @@ msgstr "Añadir/ elimiar grupos ..." msgid "Add/remove structure levels ..." msgstr "" +msgid "Add/subtract" +msgstr "" + msgid "" "Additional columns after the required ones may be present and will not " "affect the import." @@ -239,7 +251,7 @@ msgstr "" "afectarán a la importación." msgid "Administration roles" -msgstr "Roles de administración" +msgstr "" msgid "Administration roles (at organization level)" msgstr "Roles de administración (a nivel de la organización)" @@ -269,7 +281,10 @@ msgstr "Los puntos del orden del día están en proceso. Por favor, espere..." msgid "Agenda visibility" msgstr "Visibilidad de la agenda" -msgid "Alignment" +msgid "Align" +msgstr "" + +msgid "All" msgstr "" msgid "All casted ballots" @@ -405,6 +420,9 @@ msgstr "URL de la imagen de las partículas de aplauso " msgid "Applause visualization" msgstr "Visualización de aplausos" +msgid "Application update in progress." +msgstr "" + msgid "Apply" msgstr "Aplicar" @@ -428,6 +446,10 @@ msgstr "" msgid "Are you sure you want to activate this meeting?" msgstr "¿Está seguro de que quiere activar este reunión?" +msgid "" +"Are you sure you want to add the following time onto every structure level?" +msgstr "" + msgid "Are you sure you want to anonymize all votes? This cannot be undone." msgstr "" "¿Está seguro de que quiere anonimizar todos los votos? Esto no se puede " @@ -529,9 +551,6 @@ msgstr "¿Está seguro de eliminar este proyector?" msgid "Are you sure you want to delete this state?" msgstr "" -msgid "Are you sure you want to delete this statute paragraph?" -msgstr "¿Está seguro de eliminar este párrafo del estatuto?" - msgid "Are you sure you want to delete this structure level?" msgstr "" @@ -618,6 +637,11 @@ msgstr "" "¿Está seguro de que quiere restablecer todas las contraseñas a las " "predeterminadas?" +msgid "" +"Are you sure you want to reset the time to the last set value? It will be " +"reset to:" +msgstr "" + msgid "Are you sure you want to reset this vote?" msgstr "¿Está seguro de que quiere reiniciar esta votación?" @@ -626,6 +650,9 @@ msgstr "" "¿Está seguro de que quiere enviar una invitación por un correo electrónico " "de invitación al usuario?" +msgid "Are you sure you want to send an invitation email?" +msgstr "" + msgid "Are you sure you want to send emails to all selected participants?" msgstr "" "¿Está seguro de que quiere enviar correos electrónicos a todos los " @@ -673,6 +700,9 @@ msgstr "" msgid "Attention: First enter the wifi data in [Settings > General]" msgstr "" +msgid "Attention: Not selected accounts will be merged and then deleted." +msgstr "" + msgid "Attention: This action cannot be undone!" msgstr "Atención: Esta acción no se puede deshacer." @@ -691,6 +721,9 @@ msgstr "" msgid "Autopilot" msgstr "Piloto automático" +msgid "Autopilot widgets" +msgstr "" + msgid "Autoupdate unhealthy" msgstr "" @@ -751,6 +784,9 @@ msgstr "Votación actualizada" msgid "Ballots" msgstr "Votaciones" +msgid "Ballots cast" +msgstr "" + msgid "Base folder" msgstr "Directorio básico" @@ -760,18 +796,21 @@ msgstr "Empezar el discurso" msgid "Blank between prefix and number, e.g. 'A 001'." msgstr "Espacio en blanco entre el prefijo y el número, por ejemplo, \"A 001\"." -msgid "Blocks" +msgid "Blockquote" msgstr "" msgid "Bold" msgstr "" -msgid "CSV export options" -msgstr "Opciones de exportación a CSV" +msgid "Bullet list" +msgstr "" msgid "CSV import" msgstr "Importación de CSV" +msgid "CSV options" +msgstr "" + msgid "Calendar" msgstr "Calendario" @@ -926,6 +965,9 @@ msgstr "Puede gestionar el chat" msgid "Can manage the projector" msgstr "Puede manejar el proyector" +msgid "Can modify existing participants, but cannot create or delete them." +msgstr "" + msgid "Can nominate another participant" msgstr "Puede designar a otro participante" @@ -945,7 +987,7 @@ msgid "Can put oneself on the list of speakers" msgstr "Puede ponerse en la lista de oradores" msgid "Can receive motions" -msgstr "Puede recibir mociones" +msgstr "" msgid "Can receive motions from committee" msgstr "Puede recibir mociones de la comisión" @@ -965,6 +1007,9 @@ msgstr "" msgid "Can see elections" msgstr "Puede ver las elecciones " +msgid "Can see email, username and SSO identification of all participants." +msgstr "" + msgid "Can see files" msgstr "" @@ -996,6 +1041,9 @@ msgstr "" msgid "Can see participants" msgstr "Puede ver a los participantes" +msgid "Can see sensitive data" +msgstr "" + msgid "Can see the Agenda menu item and all public topics in the agenda." msgstr "" @@ -1071,6 +1119,9 @@ msgid "" "[Motions] as well as for the corresponding state in > [Workflow]." msgstr "" +msgid "Can update participants" +msgstr "" + msgid "" "Can upload, modify and delete files, administrate folders and change access " "restrictions." @@ -1101,13 +1152,10 @@ msgid "Cannot do that in demo mode!" msgstr "¡No se puede hacer eso en el modo demo!" msgid "Cannot forward motions" -msgstr "No puede adelantar mociones" - -msgid "Cannot navigate to the selected history element." -msgstr "No se puede navegar hasta el elemento del historial seleccionado." +msgstr "" msgid "Cannot receive motions" -msgstr "No puede recibir mociones" +msgstr "" msgid "Categories" msgstr "Categorías" @@ -1192,26 +1240,34 @@ msgstr "Elección" msgid "Choose 0 to disable Intervention." msgstr "" -msgid "Choose 0 to disable the supporting system." -msgstr "Seleccione 0 para desactivar el sistema de apoyo." - msgid "" -"Choose a number greater than 0 to activate speaking times widget for " -"structure level countdowns." +"Choose 0 to disable speaking times widget for structure level countdowns." msgstr "" +msgid "Choose 0 to disable the supporting system." +msgstr "Seleccione 0 para desactivar el sistema de apoyo." + msgid "Chyron" -msgstr "Chyron" +msgstr "" -msgid "Chyron background color" -msgstr "Color de fondo de Chyron" +msgid "Chyron agenda item, background color" +msgstr "" -msgid "Chyron font color" -msgstr "Color de la fuente de Chyron" +msgid "Chyron agenda item, font color" +msgstr "" msgid "Chyron speaker name" msgstr "" +msgid "Chyron speaker, background color" +msgstr "" + +msgid "Chyron speaker, font color" +msgstr "" + +msgid "Classic" +msgstr "" + msgid "Clear" msgstr "Borrar" @@ -1224,6 +1280,9 @@ msgstr "Borrar toda la lista de oradores" msgid "Clear current projection" msgstr "" +msgid "Clear formatting" +msgstr "" + msgid "Clear list" msgstr "Borrar la lista" @@ -1248,10 +1307,10 @@ msgstr "" msgid "Close list of speakers" msgstr "Cerrar lista de oradores" -msgid "Closed items" -msgstr "Asuntos cerrados" +msgid "Closed" +msgstr "" -msgid "Code" +msgid "Closed items" msgstr "" msgid "Collapse all" @@ -1414,6 +1473,9 @@ msgstr "Creación" msgid "Creation date" msgstr "Fecha de creación" +msgid "Current agenda item" +msgstr "" + msgid "Current date" msgstr "Fecha actual" @@ -1432,6 +1494,9 @@ msgstr "" msgid "Current speaker chyron" msgstr "" +msgid "Current window" +msgstr "" + msgid "Currently no livestream available." msgstr "Actualmente no hay transmisión en vivo disponible." @@ -1447,6 +1512,9 @@ msgstr "Cantidad de papeletas personalizadas" msgid "Custom translations" msgstr "Traducciones personalizadas" +msgid "Customize autopilot" +msgstr "" + msgid "Dark mode" msgstr "Modo oscuro" @@ -1466,11 +1534,8 @@ msgstr "Decisión" msgid "Default" msgstr "Predeterminado" -msgid "Default 100 % base of a voting result" -msgstr "Base por defecto del 100 % del resultado de una votación" - -msgid "Default 100 % base of an election result" -msgstr "Base por defecto del 100 % de un resultado electoral" +msgid "Default 100 % base" +msgstr "" msgid "Default election method" msgstr "Método de elección predeterminado" @@ -1487,7 +1552,9 @@ msgstr "Grupos por defecto con derecho a voto" msgid "Default line numbering" msgstr "Numeración de líneas predeterminada" -msgid "Default speaking time for structure levels in seconds" +msgid "" +"Default speaking time contingent for parliamentary groups (structure levels)" +" in seconds" msgstr "" msgid "" @@ -1533,7 +1600,7 @@ msgstr "Define el tiempo en el que se suman los montos de los aplausos." msgid "" "Defines the wording of the recommendation that belongs to this state.\n" -"Example: State = Accepted / Recommendation = Acceptance. \n" +"Example: State = Accepted / Recommendation = Acceptance.\n" "\n" "To activate the recommendation system, a recommender (for example, a motion committee) must be defined under > [Settings] > [Motions] > [Name of recommender].\n" "Example recommender: motion committee\n" @@ -1546,7 +1613,7 @@ msgid "Defines which states can be selected next in the workflow." msgstr "" msgid "Delegation of vote" -msgstr "Delegación de voto" +msgstr "" msgid "Delete" msgstr "Eliminar" @@ -1563,9 +1630,7 @@ msgstr "Borrar proyector" msgid "Deleted user" msgstr "Usuario eliminado" -msgid "" -"Deleting this motion will likely impact it's amendments negatively and they " -"could become unusable." +msgid "Deleting this motion will also delete the amendments." msgstr "" msgid "Deletion" @@ -1587,11 +1652,14 @@ msgid "Designates whether this user is in the room." msgstr "Indica si el usuario está en la sala." msgid "Didn't get an email" -msgstr "No recibió un correo electrónico" +msgstr "" msgid "Diff version" msgstr "Versión de diferencia" +msgid "Disable connection closing on inactivity" +msgstr "" + msgid "Disabled (no percents)" msgstr "Desactivado (sin porcentajes)" @@ -1604,15 +1672,15 @@ msgstr "Tipo de pantalla" msgid "Distribute overhang time" msgstr "" -msgid "Div" -msgstr "" - msgid "Divergent:" msgstr "Divergente:" msgid "Do not forget to save your changes!" msgstr "¡No olvide guardar sus cambios!" +msgid "Do not show recommendations publicly" +msgstr "" + msgid "Do you accept?" msgstr "" @@ -1653,6 +1721,9 @@ msgstr "Descargar archivo CSV de ejemplo" msgid "Download folder" msgstr "Carpeta de descarga" +msgid "Download the file" +msgstr "" + msgid "Drop files into this area OR click here to select files" msgstr "" "Suelte los archivos en esta área O haga clic aquí para seleccionar los " @@ -1695,6 +1766,9 @@ msgstr "" msgid "Edit" msgstr "Editar" +msgid "Edit HTML content" +msgstr "" + msgid "Edit account" msgstr "" @@ -1734,9 +1808,6 @@ msgstr "" msgid "Edit state" msgstr "" -msgid "Edit statute paragraph" -msgstr "Editar el párrafo del estatuto" - msgid "Edit tag" msgstr "Editar etiqueta" @@ -1749,9 +1820,6 @@ msgstr "Editar para introducir los votos." msgid "Edit topic" msgstr "Editar tema" -msgid "Edit total time" -msgstr "" - msgid "Edit workflow" msgstr "" @@ -1767,6 +1835,9 @@ msgstr "Documentos electorales" msgid "Elections" msgstr "Elecciones" +msgid "Elections (PDF settings)" +msgstr "" + msgid "Element" msgstr "" @@ -1774,7 +1845,7 @@ msgid "Email" msgstr "Correo electrónico" msgid "Email address" -msgstr "Correo electrónico" +msgstr "" msgid "Email body" msgstr "Texto del correo electrónico" @@ -1850,10 +1921,10 @@ msgid "" msgstr "" msgid "" -"Enables the forwarding of motions to other meetings within the OpenSlides instance in the selected state. \n" +"Enables the forwarding of motions to other meetings within the OpenSlides instance in the selected state.\n" "\n" "Prerequisites:\n" -"1. forwarding hierarchy must be set at the organizational level in the committee. \n" +"1. forwarding hierarchy must be set at the organizational level in the committee.\n" "2. target meeting must be created.\n" "3. user must have group permission for forwarding." msgstr "" @@ -1950,15 +2021,10 @@ msgstr "" "los gestores para la lista de oradores solamente)" msgid "" -"Existing accounts can be reused by entering email (with given name and " -"surname) OR by entering the username in the csv file." +"Existing accounts can be reused or updated by using:
    • Membership " +"number (recommended)
    • Username
    • Email address AND first name AND " +"last name" msgstr "" -"Las cuentas existentes pueden reutilizarse introduciendo el correo " -"electrónico (con nombre y apellidos) O introduciendo el nombre de usuario en" -" el archivo csv." - -msgid "Exit" -msgstr "Salir" msgid "Exit conference room" msgstr "Salir sala de conferencias" @@ -1999,6 +2065,9 @@ msgstr "Extensión" msgid "External ID" msgstr "" +msgid "Fallback" +msgstr "" + msgid "Favorites" msgstr "Favoritos" @@ -2017,6 +2086,9 @@ msgstr "Archivos" msgid "Filter" msgstr "Filtrar" +msgid "Filtered single votes" +msgstr "" + msgid "Final version" msgstr "Versión final" @@ -2056,6 +2128,13 @@ msgstr "" msgid "Font size in pt" msgstr "Tamaño de letra en pt" +msgid "" +"For activation:
      \n" +" 1. Assign group permission (define the group that can support motions)
      \n" +" 2. Adjust workflow (define state in which motions can be supported)
      \n" +" 3. Enter minimum number (see next field)" +msgstr "" + msgid "" "For large instances this may block the server to the point of unusability" msgstr "" @@ -2068,6 +2147,9 @@ msgstr "Color de primer plano" msgid "Forgot Password?" msgstr "¿Ha olvidado su contraseña?" +msgid "Formalities" +msgstr "" + msgid "Format" msgstr "Formato" @@ -2078,7 +2160,7 @@ msgid "Forward" msgstr "Adelantar" msgid "Forward motions" -msgstr "Adelantar las mociones" +msgstr "" msgid "Forward motions to" msgstr "Adelantar las mociones a" @@ -2147,7 +2229,7 @@ msgid "Go to line" msgstr "Ir a la línea" msgid "Got an email" -msgstr "Ha recibido un correo electrónico" +msgstr "" msgid "Group" msgstr "" @@ -2183,18 +2265,27 @@ msgstr "Invitado" msgid "Has SSO identification" msgstr "" +msgid "Has a membership number" +msgstr "" + msgid "Has amendments" msgstr "Tiene enmiendas" msgid "Has an email address" -msgstr "Tiene un correo electrónico" +msgstr "" msgid "Has changed vote weight" -msgstr "Ha cambiado el peso del voto" +msgstr "" + +msgid "Has email" +msgstr "" msgid "Has forwardings" msgstr "Tiene reenvíos" +msgid "Has identical motions" +msgstr "" + msgid "Has logged in" msgstr "" @@ -2202,7 +2293,13 @@ msgid "Has no SSO identification" msgstr "" msgid "Has no email address" -msgstr "No tiene un correo electrónico" +msgstr "" + +msgid "Has no identical motions" +msgstr "" + +msgid "Has no membership number" +msgstr "" msgid "Has no speakers" msgstr "No hay solicitudes de palabra" @@ -2210,6 +2307,9 @@ msgstr "No hay solicitudes de palabra" msgid "Has not logged in yet" msgstr "" +msgid "Has not spoken" +msgstr "" + msgid "Has not voted" msgstr "" @@ -2219,8 +2319,11 @@ msgstr "Tiene notas" msgid "Has speakers" msgstr "Hay solicitudes de palabra" +msgid "Has spoken" +msgstr "" + msgid "Has unchanged vote weight" -msgstr "No ha cambiado el peso de los votos" +msgstr "" msgid "Has voted" msgstr "" @@ -2228,31 +2331,16 @@ msgstr "" msgid "Header" msgstr "Cabecera" -msgid "Header 1" -msgstr "" - -msgid "Header 2" -msgstr "" - -msgid "Header 3" -msgstr "" - -msgid "Header 4" -msgstr "" - -msgid "Header 5" -msgstr "" - -msgid "Header 6" -msgstr "" - msgid "Header background color" msgstr "Color de fondo de la cabecera" msgid "Header font color" msgstr "Color de la fuente de la cabecera" -msgid "Headers" +msgid "Heading" +msgstr "" + +msgid "Headings" msgstr "" msgid "Headline color" @@ -2267,12 +2355,18 @@ msgstr "Texto de ayuda para acceder a datos y PDF de bienvenida" msgid "Hidden item" msgstr "Elemento oculto" +msgid "Hide" +msgstr "" + msgid "Hide main menu" msgstr "" msgid "Hide more text" msgstr "Ocultar más texto" +msgid "Hide note on number of multiple contributions" +msgstr "" + msgid "Hide password" msgstr "Ocultar contraseña" @@ -2299,6 +2393,9 @@ msgid "" " To receive replies you have to enter a reply address in the next field. Please test the email dispatch in case of changes!" msgstr "" +msgid "Identical motions" +msgstr "" + msgid "Identical with" msgstr "" @@ -2318,6 +2415,9 @@ msgstr "" msgid "If the value is set to 0 the time counts up as stopwatch." msgstr "" +msgid "Image description" +msgstr "" + msgid "Import" msgstr "Importar" @@ -2339,9 +2439,6 @@ msgstr "Importar mociones" msgid "Import participants" msgstr "Importar participantes" -msgid "Import statute" -msgstr "Importar estatuto" - msgid "Import successful" msgstr "" @@ -2390,6 +2487,15 @@ msgstr "Insertar detrás" msgid "Insert topics here" msgstr "Inserte los temas aquí" +msgid "Insert/Edit Link" +msgstr "" + +msgid "Insert/edit image" +msgstr "" + +msgid "Insert/edit link" +msgstr "" + msgid "Insertion" msgstr "Inserción" @@ -2424,7 +2530,7 @@ msgid "Invite to conference room" msgstr "Invitar a la sala de conferencias" msgid "Is a committee" -msgstr "Es un comité" +msgstr "" msgid "Is a natural person" msgstr "Es una persona física" @@ -2458,7 +2564,7 @@ msgid "Is candidate" msgstr "Es candidato" msgid "Is committee admin" -msgstr "Es la administración del comité" +msgstr "" msgid "Is favorite" msgstr "Está favorito" @@ -2479,13 +2585,13 @@ msgid "Is no natural person" msgstr "No es una persona física" msgid "Is not a committee" -msgstr "No es un comité" +msgstr "" msgid "Is not a template" msgstr "" msgid "Is not active" -msgstr "No está activo" +msgstr "" msgid "Is not archived" msgstr "" @@ -2547,6 +2653,9 @@ msgstr "Nombre de la sala Jitsi" msgid "Jitsi room password" msgstr "Contraseña de la sala Jitsi" +msgid "Justify" +msgstr "" + msgid "Keep each item in a single line." msgstr "Mantenga cada elemento en una sola línea." @@ -2625,6 +2734,9 @@ msgstr "Lista de participantes (PDF)" msgid "List of speakers" msgstr "Lista de oradores" +msgid "List of speakers as overlay" +msgstr "" + msgid "List of speakers is initially closed" msgstr "La lista de oradores está inicialmente cerrada" @@ -2643,6 +2755,9 @@ msgstr "Livestream" msgid "Livestream URL" msgstr "URL de la transmisión en vivo" +msgid "Livestream poster image" +msgstr "" + msgid "Livestream poster image url" msgstr "Url de la imagen del poster de la transmisión en vivo" @@ -2706,6 +2821,9 @@ msgstr "" msgid "Meeting information" msgstr "Información de la reunión" +msgid "Meeting is closed" +msgstr "" + msgid "Meeting not found" msgstr "Reunión no encontrada" @@ -2728,9 +2846,21 @@ msgstr "" msgid "Meetings" msgstr "Reuniones" +msgid "Meetings affected:" +msgstr "" + msgid "Meetings selected" msgstr "Reuniones seleccionadas" +msgid "Membership number" +msgstr "" + +msgid "Merge" +msgstr "" + +msgid "Merge accounts" +msgstr "" + msgid "Message" msgstr "Mensaje" @@ -2764,6 +2894,9 @@ msgstr "" msgid "Moderation note" msgstr "" +msgid "Modern" +msgstr "" + msgid "Modify design" msgstr "" @@ -2836,6 +2969,9 @@ msgstr "Votos de moción" msgid "Motions" msgstr "Mociones" +msgid "Motions (PDF settings)" +msgstr "" + msgid "Motions are in process. Please wait ..." msgstr "Las mociones están en proceso. Por favor, espere..." @@ -2881,15 +3017,30 @@ msgstr "Nombre" msgid "Name of recommender" msgstr "Nombre del recomendador" -msgid "Name of recommender for statute amendments" -msgstr "Nombre del recomendador de las modificaciones del estatuto" - msgid "Name of the new category" msgstr "Nombre de la nueva categoría" msgid "Natural person" msgstr "Persona natural" +msgid "Navigate to account page from " +msgstr "" + +msgid "Navigate to committee detail view from " +msgstr "" + +msgid "Navigate to meeting " +msgstr "" + +msgid "Navigate to motion" +msgstr "" + +msgid "Navigate to participant page from " +msgstr "" + +msgid "Navigate to the folder" +msgstr "" + msgid "Negative votes are not allowed." msgstr "Los votos negativos no están permitidos." @@ -2965,9 +3116,6 @@ msgstr "" msgid "New state" msgstr "Nuevo estado" -msgid "New statute paragraph" -msgstr "Nuevo párrafo del estatuto" - msgid "New tag" msgstr "Nueva etiqueta" @@ -2977,6 +3125,9 @@ msgstr "Tema nuevo" msgid "New vote" msgstr "Nueva votación" +msgid "New window" +msgstr "" + msgid "New workflow" msgstr "Nuevo flujo de trabajo" @@ -2990,14 +3141,11 @@ msgid "No" msgstr "No" msgid "No admin role" -msgstr "Sin función de administrador" +msgstr "" msgid "No category" msgstr "Sin categoría" -msgid "No category set" -msgstr "Ninguna categoría puesta" - msgid "No change recommendations yet" msgstr "Aún no hay recomendaciones de cambio" @@ -3011,13 +3159,13 @@ msgid "No comment" msgstr "Sin comentarios" msgid "No committee admin" -msgstr "No es administrador del comité" +msgstr "" msgid "No data" msgstr "Sin datos" msgid "No delegation of vote" -msgstr "Sin delegación de voto" +msgstr "" msgid "No emails were send." msgstr "" @@ -3046,12 +3194,6 @@ msgstr "No hay reuniones disponibles" msgid "No meetings have been selected." msgstr "No se ha seleccionado ninguna reunión." -msgid "No motion block set" -msgstr "Ningún bloque de moción puesto" - -msgid "No motion editors" -msgstr "" - msgid "No one has voted for this poll" msgstr "Nadie ha votado en esta encuesta" @@ -3064,27 +3206,15 @@ msgstr "No por candidato" msgid "No personal note" msgstr "Ninguna nota personal" -msgid "No recommendation" -msgstr "Ninguna recomendación" - msgid "No results found" msgstr "" msgid "No results yet." msgstr "Todavía no hay resultados." -msgid "No spokesperson" -msgstr "" - -msgid "No statute paragraphs" -msgstr "Ningún párrafo del estatuto" - msgid "No structure level" msgstr "" -msgid "No tags" -msgstr "Sin etiquetas" - msgid "No verbose name is defined" msgstr "No se ha definido ningún nombre verbose" @@ -3100,6 +3230,9 @@ msgstr "Ninguno" msgid "None of the selected motions can be forwarded." msgstr "" +msgid "Normal (http/2)" +msgstr "" + msgid "Not found" msgstr "No se ha encontrado" @@ -3173,12 +3306,18 @@ msgstr "Número de los siguientes oradores que se mostrarán en el proyector" msgid "Number set" msgstr "El número fue establecido" +msgid "Numbered list" +msgstr "" + msgid "Numbered per category" msgstr "Numerado por categoría." msgid "Numbering" msgstr "Numeración" +msgid "Numbering and sorting" +msgstr "" + msgid "Numbering prefix for agenda items" msgstr "Prefijo para la numeración de los puntos del orden del día" @@ -3188,21 +3327,36 @@ msgstr "Sistema numérico para los puntos del orden del día" msgid "OK" msgstr "OK" +msgid "OR" +msgstr "" + +msgid "Off" +msgstr "" + msgid "Offline mode" msgstr "Modo sin conexión" msgid "Ok" msgstr "Ok" +msgid "Old account of" +msgstr "" + msgid "Old password" msgstr "Contraseña antigua" +msgid "On" +msgstr "" + msgid "One email was send sucessfully." msgstr "" msgid "Only for internal notes." msgstr "Sólo para notas internas." +msgid "Only groups and participant number are switched." +msgstr "" + msgid "Only main agenda items" msgstr "Sólo los puntos principales" @@ -3226,7 +3380,10 @@ msgid "Open a meeting to play chess" msgstr "" msgid "Open items" -msgstr "Asuntos abiertos" +msgstr "" + +msgid "Open link in ..." +msgstr "" msgid "Open list of speakers" msgstr "Abrir la lista de oradores" @@ -3249,6 +3406,14 @@ msgstr "Datos de accesso de OpenSlides" msgid "OpenSlides help (FAQ)" msgstr "Ayuda de OpenSlides (PREGUNTAS MÁS FRECUENTES)" +msgid "" +"OpenSlides offers various speaking list customizations for use in " +"parliament. These include the configuration of speaking time quotas for " +"parliamentary groups (e.g. fractions, coalitions) as well as extended types " +"of speeches such as short interventions and (parliamentary) interposed " +"questions." +msgstr "" + msgid "OpenSlides recommends" msgstr "OpenSlides recomienda" @@ -3265,7 +3430,7 @@ msgid "Organization Management Level changed" msgstr "Organización Nivel de gestión modificado" msgid "Organization admin" -msgstr "Administración de la organización" +msgstr "" msgid "Organization language" msgstr "" @@ -3294,21 +3459,12 @@ msgstr "" msgid "Outside" msgstr "Fuera" -msgid "Overlay" -msgstr "Superposición" - msgid "PDF" msgstr "PDF" msgid "PDF ballot paper logo" msgstr "logo de la papeleta de votación en PDF" -msgid "PDF export" -msgstr "Exportación de PDF" - -msgid "PDF export options" -msgstr "Opciones de exportación a PDF" - msgid "PDF footer logo (left)" msgstr "PDF de logo a pie de página (izquierda)" @@ -3360,6 +3516,9 @@ msgstr "Carga paralela" msgid "Parent agenda item" msgstr "Artículo superior de la agenda" +msgid "Parliament options" +msgstr "" + msgid "Participant" msgstr "Participante" @@ -3405,6 +3564,9 @@ msgstr "" msgid "Participants" msgstr "Participantes" +msgid "Participants (PDF settings)" +msgstr "" + msgid "" "Participants and administrators are copied completely and cannot be edited " "here." @@ -3487,6 +3649,9 @@ msgstr "Por favor, introduzca su nueva contraseña" msgid "Please join the conference room now!" msgstr "¡Por favor, únase a la sala de conferencias ahora!" +msgid "Please select a primary account." +msgstr "" + msgid "Please select a vote weight greater than or equal to 0.000001" msgstr "" @@ -3520,9 +3685,6 @@ msgstr "" msgid "Possible points of order" msgstr "" -msgid "Pre" -msgstr "" - msgid "Preamble text for PDF document (all elections)" msgstr "Texto inicial para el documento PDF (todas las elecciones)" @@ -3556,6 +3718,9 @@ msgstr "Diapositivas anteriores" msgid "Primary color" msgstr "" +msgid "Principals" +msgstr "" + msgid "Privacy Policy" msgstr "Política de privacidad" @@ -3592,9 +3757,6 @@ msgstr "" msgid "Projector" msgstr "Proyector" -msgid "Projector and countdown" -msgstr "Proyector y cuenta regresiva" - msgid "Projector h1" msgstr "" @@ -3613,6 +3775,9 @@ msgstr "Proyectores" msgid "Pronoun" msgstr "Pronombre" +msgid "Proxy holders" +msgstr "" + msgid "Public" msgstr "Público" @@ -3622,6 +3787,9 @@ msgstr "artículo público" msgid "Public template" msgstr "Plantilla pública" +msgid "Public template required for creating new meeting" +msgstr "" + msgid "Publish" msgstr "Publicar" @@ -3653,7 +3821,7 @@ msgid "Receipt of contributions" msgstr "" msgid "Receive motions" -msgstr "Recibir mociones" +msgstr "" msgid "Receive motions from" msgstr "Recibir mociones de" @@ -3681,6 +3849,9 @@ msgstr "Reajustar recomendación" msgid "Recommendation set to {}" msgstr "Recomendación establecido en {}" +msgid "Redo" +msgstr "" + msgid "Reenter to conference room" msgstr "Entrar de nuevo en la sala de conferencias" @@ -3736,12 +3907,18 @@ msgstr "Eliminar del orden del día" msgid "Remove from motion block" msgstr "Eliminar del bloque de mociones" +msgid "Remove link" +msgstr "" + msgid "Remove me" msgstr "Quitarme" msgid "Remove option" msgstr "Eliminar la opción" +msgid "Remove point of order" +msgstr "" + msgid "Reopen" msgstr "Reabrir" @@ -3794,6 +3971,9 @@ msgstr "Restablecer recomendación" msgid "Reset state" msgstr "Restablecer el estado" +msgid "Reset timer" +msgstr "" + msgid "Reset to default settings" msgstr "" @@ -3803,6 +3983,20 @@ msgstr "Resolución y tamaño" msgid "Restart livestream" msgstr "Reiniciar la transmisión en vivo" +msgid "" +"Restrict delegation principals from adding themselves to the list of " +"speakers" +msgstr "" + +msgid "Restrict delegation principals from creating motions/amendments" +msgstr "" + +msgid "Restrict delegation principals from supporting motions" +msgstr "" + +msgid "Restrict delegation principals from voting" +msgstr "" + msgid "Restrictions" msgstr "Restricciones" @@ -3839,7 +4033,7 @@ msgstr "" msgid "Same email" msgstr "" -msgid "Same first/last name" +msgid "Same given and surname" msgstr "" msgid "Save" @@ -3887,9 +4081,6 @@ msgstr "Seleccione" msgid "Select all" msgstr "Seleccione todo" -msgid "Select exactly two participants to swap mandates" -msgstr "" - msgid "Select file" msgstr "Seleccione un archivo" @@ -4026,6 +4217,9 @@ msgstr "" msgid "Settings" msgstr "Configuración" +msgid "Short form for amendments" +msgstr "" + msgid "Show all" msgstr "Mostrar todo" @@ -4114,9 +4308,6 @@ msgstr "Mostrar el campo de extensión de la recomendación" msgid "Show recommendation on projector" msgstr "Mostrar la recomendación en el proyector" -msgid "Show recommendations not public" -msgstr "" - msgid "Show referring motions" msgstr "Mostrar las mociones de referencia" @@ -4143,6 +4334,9 @@ msgstr "Mostrar este texto en la página de inicio de sesión." msgid "Show title" msgstr "Mostrar título" +msgid "Show topic navigation in detail view" +msgstr "" + msgid "" "Shows a button with help icon to connect to an extra Jitsi conference room " "for technical audio/video tests." @@ -4170,9 +4364,6 @@ msgstr "" msgid "Single votes" msgstr "Votos individuales" -msgid "Slide" -msgstr "Diapositiva" - msgid "Some csv values could not be read correctly." msgstr "" @@ -4208,15 +4399,27 @@ msgstr "Ordenar las mociones por" msgid "Sort workflow" msgstr "Ordenar el flujo de trabajo" +msgid "Source" +msgstr "" + +msgid "Source code" +msgstr "" + msgid "Speaker" msgstr "" msgid "Speakers" msgstr "Oradores" +msgid "Speaking time – current contribution" +msgstr "" + msgid "Speaking times" msgstr "" +msgid "Speaking times – overview structure levels" +msgstr "" + msgid "Speech start time" msgstr "" @@ -4259,20 +4462,8 @@ msgstr "Estado establecido en {}" msgid "Statistics" msgstr "Estadísticas" -msgid "Statute" -msgstr "Estatuto" - -msgid "Statute amendment" -msgstr "Modificación del estatuto" - -msgid "Statute amendment for" -msgstr "Modificación del estatuto para" - -msgid "Statute paragraph" -msgstr "Párrafo del estatuto" - -msgid "Statute paragraphs" -msgstr "Párrafos del estatuto " +msgid "Status" +msgstr "" msgid "Stop" msgstr "Parar" @@ -4328,6 +4519,9 @@ msgstr "Solicitantes cambiados" msgid "Subscript" msgstr "" +msgid "Subtract" +msgstr "" + msgid "Suitable accounts found" msgstr "Cuentas adecuadas encontradas" @@ -4347,7 +4541,7 @@ msgid "Summary of changes:" msgstr "Resumen de cambios: " msgid "Superadmin" -msgstr "Superadmininistrador" +msgstr "" msgid "Superadmin actions" msgstr "Acciones del superadministrador" @@ -4370,7 +4564,7 @@ msgstr "Seguidores cambiados" msgid "Surname" msgstr "Apellido" -msgid "Swap mandates ..." +msgid "Swap mandates" msgstr "" msgid "Switch" @@ -4388,6 +4582,9 @@ msgstr "Etiquetas" msgid "Text" msgstr "Texto" +msgid "Text color" +msgstr "" + msgid "Text for this option couldn't load." msgstr "El texto de esta opción no se ha podido cargar." @@ -4397,6 +4594,9 @@ msgstr "Importación de textos" msgid "Text separator" msgstr "Separador de texto" +msgid "Text to display" +msgstr "" + msgid "The account is deactivated." msgstr "La cuenta está desactivada." @@ -4456,15 +4656,10 @@ msgstr "" msgid "The list of speakers is closed." msgstr "La lista de oradores está cerrado." -msgid "The list of speakers is open." -msgstr "La lista de oradores está abierta." - msgid "" "The maximum number of characters per line. Relevant when line numbering is " -"enabled. Min: 40" +"enabled. Min: 40. Note: Check PDF export and font." msgstr "" -"El número máximo de caracteres por línea. Relevante cuando la numeración de " -"líneas está activada. Mínimo: 40" msgid "The number has to be greater than 0." msgstr "El número tiene que ser mayor que 0." @@ -4541,6 +4736,9 @@ msgstr "Estas cuentas serán eliminadas:" msgid "These participants will be removed:" msgstr "" +msgid "These settings are only applied locally on this browser." +msgstr "" + msgid "This account has relations to meetings or committees" msgstr "Esta cuenta tiene relación con reuniones o comités" @@ -4790,9 +4988,15 @@ msgstr "Solución de problemas" msgid "Try reconnect" msgstr "Intenta reconectar" +msgid "URL" +msgstr "" + msgid "Underline" msgstr "" +msgid "Undo" +msgstr "" + msgid "Undone" msgstr "Deshecho" @@ -4802,6 +5006,9 @@ msgstr "Oradores únicos" msgid "Unknown participant" msgstr "" +msgid "Unknown user" +msgstr "" + msgid "Unsaved changes will not be applied." msgstr "Los cambios no guardados no se aplicarán." @@ -4840,6 +5047,9 @@ msgstr "" "Se utiliza para los correos electrónicos de invitación y el QRCode en el PDF" " de los datos de acceso." +msgid "User" +msgstr "" + msgid "User not found." msgstr "Usuario no encontrado." @@ -4868,6 +5078,9 @@ msgstr "" msgid "Valid votes" msgstr "Votos válidos" +msgid "View" +msgstr "" + msgid "Virtual applause" msgstr "Aplauso virtual" @@ -4880,6 +5093,9 @@ msgstr "" msgid "Vote" msgstr "Votar" +msgid "Vote delegation" +msgstr "" + msgid "Vote submitted" msgstr "" @@ -4892,8 +5108,8 @@ msgstr "Votado" msgid "Votes" msgstr "Votos" -msgid "Voting and ballot papers" -msgstr "Votación y papeletas de votación" +msgid "Voting" +msgstr "Votación" msgid "Voting anonymized" msgstr "Votación anónima" @@ -4983,11 +5199,6 @@ msgstr "" msgid "Warn color" msgstr "" -msgid "" -"Warning: Amendments exist for at least one of the selected motions. Are you " -"sure you want to delete these motions regardless?" -msgstr "" - msgid "" "Warning: Amendments exist for this motion. Are you sure you want to delete " "this motion regardless?" @@ -5002,6 +5213,15 @@ msgstr "" " tener un impacto negativo sobre ellas. En particular, las enmiendas podrían" " quedar inutilizadas si se elimina el párrafo al que afectan." +msgid "" +"Warning: At least one of the selected motions has amendments, these will be " +"deleted as well. Do you want to delete anyway?" +msgstr "" + +msgid "" +"Warning: Data loss is possible because accounts are in the same meeting." +msgstr "" + msgid "Warning: This projector will be set to visible" msgstr "" @@ -5029,13 +5249,6 @@ msgstr "" msgid "Wifi name" msgstr "" -msgid "" -"Will be displayed as label before selected recommendation in statute " -"amendments." -msgstr "" -"Se mostrará como etiqueta antes de la recomendación seleccionada en las " -"modificaciones de los estatutos." - msgid "" "Will be displayed as label before selected recommendation. Use an empty " "value to disable the recommendation system." @@ -5055,9 +5268,6 @@ msgstr "Flujo de trabajo de las nuevas enmiendas" msgid "Workflow of new motions" msgstr "Flujo de trabajo para mociones nuevas" -msgid "Workflow of new statute amendments" -msgstr "Flujo de trabajo de las modificaciones de los nuevos estatutos" - msgid "Workflows" msgstr "Flujos de trabajo" @@ -5100,11 +5310,6 @@ msgstr "No se supone que estés aquí..." msgid "You are using an incompatible client version." msgstr "" -msgid "" -"You are using the history mode of OpenSlides. Changes will not be saved." -msgstr "" -"Está utilizando el modo historia de OpenSlides. Los cambios no se guardarán." - msgid "You can change this option only in the forwarding section." msgstr "Esta opción sólo se puede cambiar en la sección de reenvío." @@ -5143,12 +5348,6 @@ msgid "" "the settings and try to delete the workflow again." msgstr "" -msgid "" -"You cannot delete the workflow as long as it is selected as default workflow" -" for new statute amendments in the settings. Please set another workflow as " -"default in the settings and try to delete the workflow again." -msgstr "" - msgid "You cannot delete yourself." msgstr "" @@ -5481,6 +5680,9 @@ msgstr "eliminar grupo(s)" msgid "represented by" msgstr "representado por" +msgid "represented by old account of" +msgstr "" + msgid "reset" msgstr "restablecer" @@ -5520,6 +5722,9 @@ msgstr "versión" msgid "votes per candidate" msgstr "votos por candidato" +msgid "votes per option" +msgstr "" + msgid "will be created" msgstr "se creará" @@ -5611,9 +5816,6 @@ msgstr "Tiempo de palabra" msgid "Staff" msgstr "Personal" -msgid "Voting" -msgstr "Votación" - msgid "" "You are receiving this email because you have requested a new password for your OpenSlides account.\n" "\n" diff --git a/client/src/assets/i18n/fr.po b/client/src/assets/i18n/fr.po index 7314611c4b..4a833f5d80 100644 --- a/client/src/assets/i18n/fr.po +++ b/client/src/assets/i18n/fr.po @@ -71,15 +71,15 @@ msgstr "" "Une erreur de serveur s'est produite. Veuillez contacter votre " "administrateur système." +msgid "A time is required and must be in min:secs format." +msgstr "" + msgid "A title is required" msgstr "Un titre est requis" msgid "A topic needs a title" msgstr "Un thème a besoin d'un titre" -msgid "A total time is required and must be greater than 0." -msgstr "Un temps total est requis et doit être supérieur à 0." - msgid "" "A user with the username '%username%' and the first name '%first_name%' was " "created." @@ -105,6 +105,12 @@ msgstr "Données d'accès (PDF)" msgid "Access groups" msgstr "Groupes d'accès" +msgid "" +"Access only possible for participants of this meeting. All other accounts " +"(including organization and committee admins) may not open the closed " +"meeting. It is locked from the inside." +msgstr "" + msgid "Access-data" msgstr "Données d'accès" @@ -112,7 +118,7 @@ msgid "Account" msgstr "Compte" msgid "Account admin" -msgstr "Administrateur de compte" +msgstr "" msgid "Account successfully assigned" msgstr "Compte attribué avec succès" @@ -138,16 +144,16 @@ msgstr "Activer" msgid "Activate amendments" msgstr "Activer les amendements" +msgid "Activate closed meeting" +msgstr "" + msgid "Activate design" msgstr "Activer le design" -msgid "Activate statute amendments" -msgstr "Activer les amendements au statut" - msgid "Activate the selection field 'motion editor'" msgstr "" -msgid "Activate the selection field 'spokesman'" +msgid "Activate the selection field 'spokesperson'" msgstr "" msgid "Activate vote delegations" @@ -233,6 +239,9 @@ msgstr "Ajouter aux réunions" msgid "Add to queue" msgstr "Ajouter à la file d'attente" +msgid "Add up" +msgstr "" + msgid "Add yourself to the current list of speakers to join the conference" msgstr "" "Ajoutez vous à la liste actuelle des orateurs pour rejoindre la conférence" @@ -243,6 +252,9 @@ msgstr "Ajouter/supprimer des groupes ...." msgid "Add/remove structure levels ..." msgstr "Ajouter/supprimer des niveaux de structure ..." +msgid "Add/subtract" +msgstr "" + msgid "" "Additional columns after the required ones may be present and will not " "affect the import." @@ -251,7 +263,7 @@ msgstr "" " n'affecteront pas l'importation." msgid "Administration roles" -msgstr "Rôles administratifs" +msgstr "" msgid "Administration roles (at organization level)" msgstr "Rôles d'administration (au niveau de l'organisation)" @@ -287,8 +299,11 @@ msgstr "" msgid "Agenda visibility" msgstr "Visibilité de l'ordre du jour" -msgid "Alignment" -msgstr "Alignement" +msgid "Align" +msgstr "" + +msgid "All" +msgstr "" msgid "All casted ballots" msgstr "Tous les bulletins de vote déposés" @@ -427,6 +442,9 @@ msgstr "URL de l'image de la particule d'applaudissement" msgid "Applause visualization" msgstr "Visualisation d'applaudissements" +msgid "Application update in progress." +msgstr "" + msgid "Apply" msgstr "Appliquer" @@ -440,7 +458,7 @@ msgid "Archived" msgstr "Archivé" msgid "Archived meetings" -msgstr "Réunions archivées" +msgstr "" msgid "" "Are you sure you want to activate this color set? This will change the " @@ -452,6 +470,10 @@ msgstr "" msgid "Are you sure you want to activate this meeting?" msgstr "Êtes-vous sûr de vouloir activer cette réunion ?" +msgid "" +"Are you sure you want to add the following time onto every structure level?" +msgstr "" + msgid "Are you sure you want to anonymize all votes? This cannot be undone." msgstr "" "Êtes-vous sûr de vouloir rendre tous les votes anonymes ? Il n'est pas " @@ -565,9 +587,6 @@ msgstr "Êtes-vous sûr de vouloir supprimer ce projecteur ?" msgid "Are you sure you want to delete this state?" msgstr "Êtes-vous sûr de vouloir supprimer cet état ?" -msgid "Are you sure you want to delete this statute paragraph?" -msgstr "Êtes-vous sûr de vouloir supprimer ce paragraphe sur les statuts ?" - msgid "Are you sure you want to delete this structure level?" msgstr "Êtes-vous sûr de vouloir supprimer ce niveau de structure ?" @@ -665,6 +684,11 @@ msgstr "" msgid "Are you sure you want to reset all passwords to the default ones?" msgstr "Êtes-vous sûr de vouloir rétablir tous les mots de passe par défaut ?" +msgid "" +"Are you sure you want to reset the time to the last set value? It will be " +"reset to:" +msgstr "" + msgid "Are you sure you want to reset this vote?" msgstr "Êtes-vous sûr de vouloir réinitialiser ce vote ?" @@ -672,6 +696,9 @@ msgid "Are you sure you want to send an invitation email to the user?" msgstr "" "Êtes-vous sûr de vouloir envoyer un courriel d'invitation à l'utilisateur ?" +msgid "Are you sure you want to send an invitation email?" +msgstr "" + msgid "Are you sure you want to send emails to all selected participants?" msgstr "" "Êtes-vous sûr de vouloir envoyer un courriel d'invitation à l'utilisateur ?" @@ -720,6 +747,9 @@ msgstr "" "Attention : Entrez d'abord les données du réseau sans fil dans [Réglages > " "Général]" +msgid "Attention: Not selected accounts will be merged and then deleted." +msgstr "" + msgid "Attention: This action cannot be undone!" msgstr "Attention : Cette action ne peut être annulée !" @@ -736,6 +766,9 @@ msgstr "" msgid "Autopilot" msgstr "Pilote automatique" +msgid "Autopilot widgets" +msgstr "" + msgid "Autoupdate unhealthy" msgstr "Mise à jour automatique malsaine" @@ -796,6 +829,9 @@ msgstr "Mise à jour du bulletin de vote" msgid "Ballots" msgstr "Bulletins de vote" +msgid "Ballots cast" +msgstr "" + msgid "Base folder" msgstr "Dossier de base" @@ -805,18 +841,21 @@ msgstr "Commencer discours" msgid "Blank between prefix and number, e.g. 'A 001'." msgstr "Espace blanc entre le préfixe et le numéro, par exemple \"A 001\"." -msgid "Blocks" -msgstr "Blocs" +msgid "Blockquote" +msgstr "" msgid "Bold" msgstr "En gras" -msgid "CSV export options" -msgstr "Options d'export CSV" +msgid "Bullet list" +msgstr "" msgid "CSV import" msgstr "Import CSV" +msgid "CSV options" +msgstr "" + msgid "Calendar" msgstr "Calendrier" @@ -1004,6 +1043,9 @@ msgstr "Peut gérer le chat" msgid "Can manage the projector" msgstr "Peut gérer le projecteur" +msgid "Can modify existing participants, but cannot create or delete them." +msgstr "" + msgid "Can nominate another participant" msgstr "Peut nonimer un autre participant" @@ -1026,7 +1068,7 @@ msgid "Can put oneself on the list of speakers" msgstr "Peut se mettre soi-même sur la liste des orateurs" msgid "Can receive motions" -msgstr "Peut recevoir des motions" +msgstr "" msgid "Can receive motions from committee" msgstr "Peut recevoir des motions de commissions" @@ -1047,6 +1089,9 @@ msgstr "" msgid "Can see elections" msgstr "Peut voir les élections" +msgid "Can see email, username and SSO identification of all participants." +msgstr "" + msgid "Can see files" msgstr "Peut voir les fichiers" @@ -1080,6 +1125,9 @@ msgstr "" msgid "Can see participants" msgstr "Peut voir les participants" +msgid "Can see sensitive data" +msgstr "" + msgid "Can see the Agenda menu item and all public topics in the agenda." msgstr "" "Peut voir l'élément de menu Agenda et tous les sujets publics dans l'agenda." @@ -1181,6 +1229,9 @@ msgstr "" "[Réglages] > [Motions] ainsi que pour l'état correspondant dans > [Flux de " "travail]." +msgid "Can update participants" +msgstr "" + msgid "" "Can upload, modify and delete files, administrate folders and change access " "restrictions." @@ -1213,13 +1264,10 @@ msgid "Cannot do that in demo mode!" msgstr "Impossible de le faire en version démo !" msgid "Cannot forward motions" -msgstr "Ne peut pas transmettre les motions" - -msgid "Cannot navigate to the selected history element." -msgstr "Impossible de naviguer vers l'élément historique sélectionné." +msgstr "" msgid "Cannot receive motions" -msgstr "Ne peut pas recevoir des motions" +msgstr "" msgid "Categories" msgstr "Catégories" @@ -1304,28 +1352,34 @@ msgstr "Choix" msgid "Choose 0 to disable Intervention." msgstr "Choisissez 0 pour désactiver l'intervention." -msgid "Choose 0 to disable the supporting system." -msgstr "Choisissez 0 pour desactiver le système de soutien." - msgid "" -"Choose a number greater than 0 to activate speaking times widget for " -"structure level countdowns." +"Choose 0 to disable speaking times widget for structure level countdowns." msgstr "" -"Choisissez un nombre supérieur à 0 pour activer le widget des temps de " -"parole pour les décomptes de niveau de structure." + +msgid "Choose 0 to disable the supporting system." +msgstr "Choisissez 0 pour desactiver le système de soutien." msgid "Chyron" -msgstr "Chyron" +msgstr "" -msgid "Chyron background color" -msgstr "Couleur de fond de Chyron" +msgid "Chyron agenda item, background color" +msgstr "" -msgid "Chyron font color" -msgstr "Couleur de la police Chyron" +msgid "Chyron agenda item, font color" +msgstr "" msgid "Chyron speaker name" msgstr "Nom du haut-parleur Chyron" +msgid "Chyron speaker, background color" +msgstr "" + +msgid "Chyron speaker, font color" +msgstr "" + +msgid "Classic" +msgstr "" + msgid "Clear" msgstr "Effacer" @@ -1338,6 +1392,9 @@ msgstr "Effacer toute les listes d'orateurs." msgid "Clear current projection" msgstr "Effacer la projection actuelle" +msgid "Clear formatting" +msgstr "" + msgid "Clear list" msgstr "Effacer la liste" @@ -1362,11 +1419,11 @@ msgstr "Fermer le mode édition" msgid "Close list of speakers" msgstr "Fermer la liste des orateurs" -msgid "Closed items" -msgstr "Elements terminés" +msgid "Closed" +msgstr "" -msgid "Code" -msgstr "Code" +msgid "Closed items" +msgstr "" msgid "Collapse all" msgstr "Réduire tout" @@ -1528,6 +1585,9 @@ msgstr "Création" msgid "Creation date" msgstr "Date de création" +msgid "Current agenda item" +msgstr "" + msgid "Current date" msgstr "Date du jour" @@ -1546,6 +1606,9 @@ msgstr "L'orateur actuel" msgid "Current speaker chyron" msgstr "Chyron de l'orateur actuel" +msgid "Current window" +msgstr "" + msgid "Currently no livestream available." msgstr "Actuellement, aucune émission en direct n'est disponible." @@ -1561,6 +1624,9 @@ msgstr "Nombre personnalisé de bulletins de vote" msgid "Custom translations" msgstr " Traductions personnalisées" +msgid "Customize autopilot" +msgstr "" + msgid "Dark mode" msgstr "Mode foncé" @@ -1579,11 +1645,8 @@ msgstr "Décision" msgid "Default" msgstr "Par défaut" -msgid "Default 100 % base of a voting result" -msgstr "Base par défaut de 100 % d'un résultat de vote" - -msgid "Default 100 % base of an election result" -msgstr "Base 100 % par défaut d'un résultat d'élection" +msgid "Default 100 % base" +msgstr "" msgid "Default election method" msgstr "Méthode d'élection par défaut" @@ -1600,8 +1663,10 @@ msgstr "Groupes par défaut avec droit de vote" msgid "Default line numbering" msgstr "Numérotation par ligne par défaut" -msgid "Default speaking time for structure levels in seconds" -msgstr "Temps de parole par défaut pour les niveaux de structure en secondes" +msgid "" +"Default speaking time contingent for parliamentary groups (structure levels)" +" in seconds" +msgstr "" msgid "" "Default text version for change recommendations and projection of motions" @@ -1654,7 +1719,7 @@ msgstr "" msgid "" "Defines the wording of the recommendation that belongs to this state.\n" -"Example: State = Accepted / Recommendation = Acceptance. \n" +"Example: State = Accepted / Recommendation = Acceptance.\n" "\n" "To activate the recommendation system, a recommender (for example, a motion committee) must be defined under > [Settings] > [Motions] > [Name of recommender].\n" "Example recommender: motion committee\n" @@ -1662,14 +1727,6 @@ msgid "" "Additional information:\n" "In combination with motion blocks, the recommendation of multiple motions can be followed simultaneously." msgstr "" -"Définit le libellé de la recommandation qui appartient à cet état.\n" -"Exemple : Etat = Accepté / Recommandation = Acceptation. \n" -"\n" -"Pour activer le système de recommandation, un recommandeur (par exemple, une commission des motions) doit être défini sous > [Réglages] > [Motions] > [Nom du recommandeur].\n" -"Exemple de recommandation : commission des motions\n" -"\n" -"Informations complémentaires :\n" -"En combinaison avec les blocs de mouvement, la recommandation de plusieurs mouvements peut être suivie simultanément." msgid "Defines which states can be selected next in the workflow." msgstr "" @@ -1677,7 +1734,7 @@ msgstr "" "travail." msgid "Delegation of vote" -msgstr "Délégation de vote" +msgstr "" msgid "Delete" msgstr "Supprimer" @@ -1694,12 +1751,8 @@ msgstr "Supprimer le projecteur" msgid "Deleted user" msgstr "Utilisateur supprimé" -msgid "" -"Deleting this motion will likely impact it's amendments negatively and they " -"could become unusable." +msgid "Deleting this motion will also delete the amendments." msgstr "" -"Supprimer cette motion aura probablement un impact négatif sur ses " -"amendements et ils pourraient devenir inutilisables." msgid "Deletion" msgstr "Suppression" @@ -1720,11 +1773,14 @@ msgid "Designates whether this user is in the room." msgstr "Indique si cet utilisateur est dans la salle." msgid "Didn't get an email" -msgstr "Je n'ai pas reçu de courriel." +msgstr "" msgid "Diff version" msgstr "Version Diff" +msgid "Disable connection closing on inactivity" +msgstr "" + msgid "Disabled (no percents)" msgstr "Désactivé (pas de pourcentages)" @@ -1739,15 +1795,15 @@ msgstr "Type d'écran" msgid "Distribute overhang time" msgstr "Distribuer le temps de surplomb" -msgid "Div" -msgstr "Div" - msgid "Divergent:" msgstr "Divergente :" msgid "Do not forget to save your changes!" msgstr "N'oubliez pas d'enregistrer vos modifications !" +msgid "Do not show recommendations publicly" +msgstr "" + msgid "Do you accept?" msgstr "Acceptez-vous ?" @@ -1787,6 +1843,9 @@ msgstr "Télécharger fichier CSV d'exemple " msgid "Download folder" msgstr "Télécharger le dossier" +msgid "Download the file" +msgstr "" + msgid "Drop files into this area OR click here to select files" msgstr "" "Déposez les fichiers dans cette zone OU cliquez ici pour sélectionner les " @@ -1799,7 +1858,7 @@ msgid "Duplicate from" msgstr "Duplication de" msgid "Duplicates" -msgstr "Duplications" +msgstr "" msgid "Duration" msgstr "Durée" @@ -1829,6 +1888,9 @@ msgstr "" msgid "Edit" msgstr "Modifier" +msgid "Edit HTML content" +msgstr "" + msgid "Edit account" msgstr "Modifier le compte" @@ -1868,9 +1930,6 @@ msgstr "Éditer la file d'attente" msgid "Edit state" msgstr "Modifier le status" -msgid "Edit statute paragraph" -msgstr "Modifier le paragraphe sur les statuts" - msgid "Edit tag" msgstr "Modifier une balise" @@ -1883,9 +1942,6 @@ msgstr "Modifier pour saisir les votes." msgid "Edit topic" msgstr "Modifier le sujet" -msgid "Edit total time" -msgstr "Modifier le temps total" - msgid "Edit workflow" msgstr "Modifier le flux de travail" @@ -1901,6 +1957,9 @@ msgstr "Documents relatifs aux élections" msgid "Elections" msgstr "Elections" +msgid "Elections (PDF settings)" +msgstr "" + msgid "Element" msgstr "Élément" @@ -1908,7 +1967,7 @@ msgid "Email" msgstr "Courriel" msgid "Email address" -msgstr "Adresse courriel" +msgstr "" msgid "Email body" msgstr "Corps du courriel" @@ -1990,19 +2049,13 @@ msgstr "" "dans l'état sélectionné après la création du mouvement." msgid "" -"Enables the forwarding of motions to other meetings within the OpenSlides instance in the selected state. \n" +"Enables the forwarding of motions to other meetings within the OpenSlides instance in the selected state.\n" "\n" "Prerequisites:\n" -"1. forwarding hierarchy must be set at the organizational level in the committee. \n" +"1. forwarding hierarchy must be set at the organizational level in the committee.\n" "2. target meeting must be created.\n" "3. user must have group permission for forwarding." msgstr "" -"Permet de transmettre les motions à d'autres réunions au sein de l'instance OpenSlides dans l'état sélectionné. \n" -"\n" -"Conditions préalables :\n" -"1. la hiérarchie de transmission doit être définie au niveau organisationnel dans la commission. \n" -"2. la réunion cible doit être créée\n" -"3. l'utilisateur doit disposer d'une autorisation de groupe pour la transmission." msgid "" "Enables the support function for motions in the selected state. The support " @@ -2103,15 +2156,10 @@ msgstr "" "gestionnaires pour la liste des orateurs seulement)" msgid "" -"Existing accounts can be reused by entering email (with given name and " -"surname) OR by entering the username in the csv file." +"Existing accounts can be reused or updated by using:
      • Membership " +"number (recommended)
      • Username
      • Email address AND first name AND " +"last name" msgstr "" -"Les comptes existants peuvent être réutilisés en saisissant l'adresse " -"électronique (avec le prénom et le nom) OU en saisissant le nom " -"d'utilisateur dans le fichier csv." - -msgid "Exit" -msgstr "Sortir" msgid "Exit conference room" msgstr "Sortir de la salle de conférence" @@ -2152,6 +2200,9 @@ msgstr "Extension" msgid "External ID" msgstr "ID externe" +msgid "Fallback" +msgstr "" + msgid "Favorites" msgstr "Favoris" @@ -2170,6 +2221,9 @@ msgstr "Fichiers" msgid "Filter" msgstr "Filtre" +msgid "Filtered single votes" +msgstr "" + msgid "Final version" msgstr "Version finale" @@ -2209,6 +2263,13 @@ msgstr "Police régulière" msgid "Font size in pt" msgstr "Taille de la police en pt" +msgid "" +"For activation:
        \n" +" 1. Assign group permission (define the group that can support motions)
        \n" +" 2. Adjust workflow (define state in which motions can be supported)
        \n" +" 3. Enter minimum number (see next field)" +msgstr "" + msgid "" "For large instances this may block the server to the point of unusability" msgstr "" @@ -2221,6 +2282,9 @@ msgstr "Couleur d'avant-plan" msgid "Forgot Password?" msgstr "Mot de passe oublié ?" +msgid "Formalities" +msgstr "" + msgid "Format" msgstr "Format" @@ -2231,7 +2295,7 @@ msgid "Forward" msgstr "transmettre" msgid "Forward motions" -msgstr "Transmettre des motions " +msgstr "" msgid "Forward motions to" msgstr "Transmettre les motions à" @@ -2300,7 +2364,7 @@ msgid "Go to line" msgstr "Aller à la ligne" msgid "Got an email" -msgstr "J'ai reçu un courriel" +msgstr "" msgid "Group" msgstr "Groupe" @@ -2336,32 +2400,50 @@ msgstr "Invité" msgid "Has SSO identification" msgstr "A l'identification SSO" +msgid "Has a membership number" +msgstr "" + msgid "Has amendments" msgstr "A des amendements" msgid "Has an email address" -msgstr "dispose d'une adresse courriel" +msgstr "" msgid "Has changed vote weight" -msgstr "A modifié le poids du vote" +msgstr "" + +msgid "Has email" +msgstr "" msgid "Has forwardings" msgstr "A des transmissions" +msgid "Has identical motions" +msgstr "" + msgid "Has logged in" -msgstr "S'est connecté(e)" +msgstr "" msgid "Has no SSO identification" msgstr "N'a pas d'identification SSO" msgid "Has no email address" -msgstr "N'a pas d'adresse courriel" +msgstr "" + +msgid "Has no identical motions" +msgstr "" + +msgid "Has no membership number" +msgstr "" msgid "Has no speakers" msgstr "N'a pas d'odrateurs" msgid "Has not logged in yet" -msgstr "Ne s'est pas encore connecté" +msgstr "" + +msgid "Has not spoken" +msgstr "" msgid "Has not voted" msgstr "" @@ -2372,8 +2454,11 @@ msgstr "A des notes" msgid "Has speakers" msgstr "A des oraterus" +msgid "Has spoken" +msgstr "" + msgid "Has unchanged vote weight" -msgstr "Poids des voix inchangé" +msgstr "" msgid "Has voted" msgstr "A voté" @@ -2381,32 +2466,17 @@ msgstr "A voté" msgid "Header" msgstr "En-tête" -msgid "Header 1" -msgstr "En-tête 1" - -msgid "Header 2" -msgstr "En-tête 2" - -msgid "Header 3" -msgstr "En-tête 3" - -msgid "Header 4" -msgstr "En-tête 4" - -msgid "Header 5" -msgstr "En-tête 5" - -msgid "Header 6" -msgstr "En-tête 6" - msgid "Header background color" msgstr "Couleur d'arrière-plan de l'en-tête" msgid "Header font color" msgstr "Couleur de la police de l'en-tête" -msgid "Headers" -msgstr "En-têtes" +msgid "Heading" +msgstr "" + +msgid "Headings" +msgstr "" msgid "Headline color" msgstr "Couleur du titre" @@ -2420,12 +2490,18 @@ msgstr "Le texte d'aide pour les données d'accès et PDF de bienvenue" msgid "Hidden item" msgstr "élément masqué" +msgid "Hide" +msgstr "" + msgid "Hide main menu" msgstr "Masquer le menu principal" msgid "Hide more text" msgstr "Cacher plus de texte" +msgid "Hide note on number of multiple contributions" +msgstr "" + msgid "Hide password" msgstr "Cacher le mot de passe" @@ -2454,6 +2530,9 @@ msgstr "" "IMPORTANT : L'adresse de l'expéditeur (noreply@openslides.com) est définie dans les paramètres du serveur OpenSlides et ne peut pas être modifiée ici.\n" "Pour recevoir des réponses, vous devez saisir une adresse de réponse dans le champ suivant. Veuillez tester l'envoi du courriel en cas de changement !" +msgid "Identical motions" +msgstr "" + msgid "Identical with" msgstr "" @@ -2473,6 +2552,9 @@ msgstr "" msgid "If the value is set to 0 the time counts up as stopwatch." msgstr "" +msgid "Image description" +msgstr "" + msgid "Import" msgstr "Import" @@ -2494,9 +2576,6 @@ msgstr "Importer des motions" msgid "Import participants" msgstr "Importer des participants" -msgid "Import statute" -msgstr "Importer les statuts" - msgid "Import successful" msgstr "Import réussi" @@ -2546,6 +2625,15 @@ msgstr "Insérer derrière" msgid "Insert topics here" msgstr "Insérer les sujets ici" +msgid "Insert/Edit Link" +msgstr "" + +msgid "Insert/edit image" +msgstr "" + +msgid "Insert/edit link" +msgstr "" + msgid "Insertion" msgstr "Insertion" @@ -2580,7 +2668,7 @@ msgid "Invite to conference room" msgstr "Inviter à la salle de conférence" msgid "Is a committee" -msgstr "Est un Comité" +msgstr "" msgid "Is a natural person" msgstr "Est une personne physique" @@ -2618,16 +2706,16 @@ msgid "Is candidate" msgstr "Est candidat" msgid "Is committee admin" -msgstr "L'administration de la commission" +msgstr "" msgid "Is favorite" msgstr "Est le favori" msgid "Is in active meetings" -msgstr "Participe à des réunions actives" +msgstr "" msgid "Is in archived meetings" -msgstr "Est dans les réunions archivées" +msgstr "" msgid "Is manager" msgstr "Est gestionnaire" @@ -2639,13 +2727,13 @@ msgid "Is no natural person" msgstr "N'est pas une personne naturelle" msgid "Is not a committee" -msgstr "N'est pas un Comité" +msgstr "" msgid "Is not a template" msgstr "N'est pas un modèle" msgid "Is not active" -msgstr "N'est pas actif" +msgstr "" msgid "Is not archived" msgstr "N'est pas archivé" @@ -2654,10 +2742,10 @@ msgid "Is not favorite" msgstr "N'est pas favori" msgid "Is not in active meetings" -msgstr "Ne participe pas à des réunions actives" +msgstr "" msgid "Is not in archived meetings" -msgstr "N'est pas dans les réunions archivées" +msgstr "" msgid "Is not present" msgstr "N'est pas présent" @@ -2707,6 +2795,9 @@ msgstr "Nom de la chambre Jitsi" msgid "Jitsi room password" msgstr "Mot de passe de la chambre Jitsi" +msgid "Justify" +msgstr "" + msgid "Keep each item in a single line." msgstr "Chaque élément doit figurer sur une seule ligne." @@ -2785,6 +2876,9 @@ msgstr "La liste des participants (PDF)" msgid "List of speakers" msgstr "Liste des orateurs" +msgid "List of speakers as overlay" +msgstr "" + msgid "List of speakers is initially closed" msgstr "La liste des orateurs est initialement close" @@ -2803,6 +2897,9 @@ msgstr "Flux vidéo en direct" msgid "Livestream URL" msgstr "URL de la diffusion en direct" +msgid "Livestream poster image" +msgstr "" + msgid "Livestream poster image url" msgstr "Url de l'image de l'affiche de la diffusion en direct" @@ -2866,6 +2963,9 @@ msgstr "Date de réunion" msgid "Meeting information" msgstr "Information sur la réunion" +msgid "Meeting is closed" +msgstr "" + msgid "Meeting not found" msgstr "Réunion introuvable" @@ -2888,9 +2988,21 @@ msgstr "Titre de la réunion" msgid "Meetings" msgstr "Réunions" +msgid "Meetings affected:" +msgstr "" + msgid "Meetings selected" msgstr "Réunions selectionnées" +msgid "Membership number" +msgstr "" + +msgid "Merge" +msgstr "" + +msgid "Merge accounts" +msgstr "" + msgid "Message" msgstr "Message" @@ -2926,6 +3038,9 @@ msgstr "Nombre minimum de chiffres pour l'identificateur de mouvement" msgid "Moderation note" msgstr "Note de modération" +msgid "Modern" +msgstr "" + msgid "Modify design" msgstr "Modifier le design" @@ -2998,6 +3113,9 @@ msgstr "Votes de la motion" msgid "Motions" msgstr "Motions" +msgid "Motions (PDF settings)" +msgstr "" + msgid "Motions are in process. Please wait ..." msgstr "Votes de la motion" @@ -3044,15 +3162,30 @@ msgstr "Nom" msgid "Name of recommender" msgstr "Nom du conseiller" -msgid "Name of recommender for statute amendments" -msgstr "Nom de la personne qui recommande la modification du statut" - msgid "Name of the new category" msgstr "Nom de la nouvelle catégorie" msgid "Natural person" msgstr "Personne physique" +msgid "Navigate to account page from " +msgstr "" + +msgid "Navigate to committee detail view from " +msgstr "" + +msgid "Navigate to meeting " +msgstr "" + +msgid "Navigate to motion" +msgstr "" + +msgid "Navigate to participant page from " +msgstr "" + +msgid "Navigate to the folder" +msgstr "" + msgid "Negative votes are not allowed." msgstr "Negative votes are not allowed." @@ -3128,9 +3261,6 @@ msgstr "Nouveau projecteur" msgid "New state" msgstr "Nouveau status" -msgid "New statute paragraph" -msgstr "Nouveau paragraphe du statut" - msgid "New tag" msgstr "Nouvelle balise" @@ -3140,6 +3270,9 @@ msgstr "Nouveau sujet" msgid "New vote" msgstr "Nouveau vote" +msgid "New window" +msgstr "" + msgid "New workflow" msgstr "Nouveau flux de travail" @@ -3153,14 +3286,11 @@ msgid "No" msgstr "Non" msgid "No admin role" -msgstr "Pas de rôle d'administrateur" +msgstr "" msgid "No category" msgstr "Aucune catégorie" -msgid "No category set" -msgstr "Aucune catégorie a été defini" - msgid "No change recommendations yet" msgstr "Aucun changement de recommandation jusqu'à présent" @@ -3174,13 +3304,13 @@ msgid "No comment" msgstr "Aucun commentaire" msgid "No committee admin" -msgstr "Pas d'administration de commission" +msgstr "" msgid "No data" msgstr "Pas de données" msgid "No delegation of vote" -msgstr "Pas de délégation de vote" +msgstr "" msgid "No emails were send." msgstr "Aucun courriel n'a été envoyé." @@ -3209,12 +3339,6 @@ msgstr "Aucune réunion disponible." msgid "No meetings have been selected." msgstr "Pas de réunions a été selectionnées" -msgid "No motion block set" -msgstr "Pas de block de motions a été défini" - -msgid "No motion editors" -msgstr "" - msgid "No one has voted for this poll" msgstr "Personne n'a voté pour ce sondage" @@ -3227,27 +3351,15 @@ msgstr "Non par candidat" msgid "No personal note" msgstr "Pas de notes personnelles" -msgid "No recommendation" -msgstr "Aucune recommandation" - msgid "No results found" msgstr "Aucun résultat trouvé" msgid "No results yet." msgstr "Aucun résultat pour l'instant." -msgid "No spokesperson" -msgstr "" - -msgid "No statute paragraphs" -msgstr "Aucun paragraphe du statut" - msgid "No structure level" msgstr "" -msgid "No tags" -msgstr "Pas de balises" - msgid "No verbose name is defined" msgstr "Aucun nom verbeux n'est défini" @@ -3263,6 +3375,9 @@ msgstr "Aucun" msgid "None of the selected motions can be forwarded." msgstr "Aucun des mouvements sélectionnés ne peut être transmis." +msgid "Normal (http/2)" +msgstr "" + msgid "Not found" msgstr "Introuvable" @@ -3336,12 +3451,18 @@ msgstr "Numéro des prochains intervenants à afficher sur le projecteur" msgid "Number set" msgstr "Jeu de numéros" +msgid "Numbered list" +msgstr "" + msgid "Numbered per category" msgstr "Numérotée par catégorie" msgid "Numbering" msgstr "Numérotage" +msgid "Numbering and sorting" +msgstr "" + msgid "Numbering prefix for agenda items" msgstr "Numérotation préfixe pour points de l'ordre du jour" @@ -3351,21 +3472,36 @@ msgstr "système de numération de points de l'ordre du jour" msgid "OK" msgstr "OK" +msgid "OR" +msgstr "" + +msgid "Off" +msgstr "" + msgid "Offline mode" msgstr "Mode hors ligne" msgid "Ok" msgstr "Ok" +msgid "Old account of" +msgstr "" + msgid "Old password" msgstr "Ancien mot de passe" +msgid "On" +msgstr "" + msgid "One email was send sucessfully." msgstr "Un courriel a été envoyé avec succès." msgid "Only for internal notes." msgstr "Seulement pour des notes internes." +msgid "Only groups and participant number are switched." +msgstr "" + msgid "Only main agenda items" msgstr "Seulement les points principaux de l'ordre du jour" @@ -3390,7 +3526,10 @@ msgid "Open a meeting to play chess" msgstr "Ouvrez une réunion pour jouer aux échecs" msgid "Open items" -msgstr "Eléments ouverts" +msgstr "" + +msgid "Open link in ..." +msgstr "" msgid "Open list of speakers" msgstr "Ouvrir la liste des orateurs" @@ -3413,6 +3552,14 @@ msgstr " Données d'accès OpenSlides" msgid "OpenSlides help (FAQ)" msgstr "Aide OpenSlides (FAQ)" +msgid "" +"OpenSlides offers various speaking list customizations for use in " +"parliament. These include the configuration of speaking time quotas for " +"parliamentary groups (e.g. fractions, coalitions) as well as extended types " +"of speeches such as short interventions and (parliamentary) interposed " +"questions." +msgstr "" + msgid "OpenSlides recommends" msgstr "OpenSlides recommande" @@ -3429,7 +3576,7 @@ msgid "Organization Management Level changed" msgstr "Organisation Niveau de gestion modifié" msgid "Organization admin" -msgstr "Administrateur de l'organisation" +msgstr "" msgid "Organization language" msgstr "Langue de l'organisation" @@ -3458,21 +3605,12 @@ msgstr "Désynchronisé" msgid "Outside" msgstr "À l'extérieur" -msgid "Overlay" -msgstr "Superpositions" - msgid "PDF" msgstr "PDF" msgid "PDF ballot paper logo" msgstr "Logo pour le bulletin de vote en PDF" -msgid "PDF export" -msgstr "PDF exportation" - -msgid "PDF export options" -msgstr "Options d'export PDF" - msgid "PDF footer logo (left)" msgstr "Logo en PDF pour le pied de page (à gauche)" @@ -3524,6 +3662,9 @@ msgstr "Chargement parallèle" msgid "Parent agenda item" msgstr "Point de l'ordre du jour superieur" +msgid "Parliament options" +msgstr "" + msgid "Participant" msgstr "Participant" @@ -3571,6 +3712,9 @@ msgstr "Participant retiré de plusieurs groupes lors de plusieurs réunions" msgid "Participants" msgstr "Participants" +msgid "Participants (PDF settings)" +msgstr "" + msgid "" "Participants and administrators are copied completely and cannot be edited " "here." @@ -3656,6 +3800,9 @@ msgstr "Veuillez saisir votre nouveau mot de passe" msgid "Please join the conference room now!" msgstr "Rejoignez la salle de conférence dès maintenant !" +msgid "Please select a primary account." +msgstr "" + msgid "Please select a vote weight greater than or equal to 0.000001" msgstr "Veuillez sélectionner un poids de vote supérieur ou égal à 0,000001" @@ -3689,9 +3836,6 @@ msgstr "Options possibles" msgid "Possible points of order" msgstr "Motions de procédure possibles" -msgid "Pre" -msgstr "Pre" - msgid "Preamble text for PDF document (all elections)" msgstr "Texte de préambule pour le fichier PDF (toutes les élections)" @@ -3725,6 +3869,9 @@ msgstr "Pages précédentes" msgid "Primary color" msgstr "Couleur primaire" +msgid "Principals" +msgstr "" + msgid "Privacy Policy" msgstr "Politique de confidentialité" @@ -3761,9 +3908,6 @@ msgstr "Projections" msgid "Projector" msgstr "Projecteur" -msgid "Projector and countdown" -msgstr "Projetuer et compte à rebours " - msgid "Projector h1" msgstr "Projecteur h1" @@ -3782,6 +3926,9 @@ msgstr "Projecteurs" msgid "Pronoun" msgstr "Pronom" +msgid "Proxy holders" +msgstr "" + msgid "Public" msgstr "Publique" @@ -3791,6 +3938,9 @@ msgstr "Élément public" msgid "Public template" msgstr "Modèle public" +msgid "Public template required for creating new meeting" +msgstr "" + msgid "Publish" msgstr "Publier" @@ -3822,7 +3972,7 @@ msgid "Receipt of contributions" msgstr "Réception des contributions" msgid "Receive motions" -msgstr "Recevoir des motions" +msgstr "" msgid "Receive motions from" msgstr "Recevoir des motions de" @@ -3850,6 +4000,9 @@ msgstr "Recommandation réinitialisation" msgid "Recommendation set to {}" msgstr "Recommandation définie sur {}" +msgid "Redo" +msgstr "" + msgid "Reenter to conference room" msgstr "Revenir dans la salle de conférence" @@ -3905,12 +4058,18 @@ msgstr "Supprimer de l'ordre du jour" msgid "Remove from motion block" msgstr "Retirer du bloc de motion" +msgid "Remove link" +msgstr "" + msgid "Remove me" msgstr "Enlever moi-même" msgid "Remove option" msgstr "Supprimer l'option" +msgid "Remove point of order" +msgstr "" + msgid "Reopen" msgstr "reouvrir" @@ -3963,6 +4122,9 @@ msgstr "Réinitialiser la recommandation" msgid "Reset state" msgstr "Réinitialiser le status" +msgid "Reset timer" +msgstr "" + msgid "Reset to default settings" msgstr "Réinitialiser les paramètres par défaut" @@ -3972,6 +4134,20 @@ msgstr "Résolution et dimensions" msgid "Restart livestream" msgstr "Redémarrer la diffusion en direct" +msgid "" +"Restrict delegation principals from adding themselves to the list of " +"speakers" +msgstr "" + +msgid "Restrict delegation principals from creating motions/amendments" +msgstr "" + +msgid "Restrict delegation principals from supporting motions" +msgstr "" + +msgid "Restrict delegation principals from voting" +msgstr "" + msgid "Restrictions" msgstr "Restrictions" @@ -3997,7 +4173,7 @@ msgid "Rows with warnings" msgstr "Lignes avec avertissements" msgid "SSO" -msgstr "SSO" +msgstr "" msgid "SSO Identification" msgstr "Identification SSO" @@ -4006,10 +4182,10 @@ msgid "SSO identification" msgstr "Identification SSO" msgid "Same email" -msgstr "Même courriel" +msgstr "" -msgid "Same first/last name" -msgstr "Même prénom/nom" +msgid "Same given and surname" +msgstr "" msgid "Save" msgstr "Enregistrer" @@ -4056,9 +4232,6 @@ msgstr "Selectionner" msgid "Select all" msgstr "Désélectionner tout" -msgid "Select exactly two participants to swap mandates" -msgstr "" - msgid "Select file" msgstr "Sélectionner un fichier" @@ -4194,6 +4367,9 @@ msgstr "" msgid "Settings" msgstr "Paramètres " +msgid "Short form for amendments" +msgstr "" + msgid "Show all" msgstr "Afficher tout" @@ -4283,9 +4459,6 @@ msgstr "Afficher le champ d'extension des recommandations" msgid "Show recommendation on projector" msgstr "Afficher des recommandations sur le projecteur" -msgid "Show recommendations not public" -msgstr "" - msgid "Show referring motions" msgstr "Afficher les motions de référence" @@ -4313,6 +4486,9 @@ msgstr "Afficher ce texte sur la page d'accueil" msgid "Show title" msgstr "Afficher le titre" +msgid "Show topic navigation in detail view" +msgstr "" + msgid "" "Shows a button with help icon to connect to an extra Jitsi conference room " "for technical audio/video tests." @@ -4340,9 +4516,6 @@ msgstr "Paramètres du Single Sign-On" msgid "Single votes" msgstr "Votes uniques" -msgid "Slide" -msgstr "Diapositive" - msgid "Some csv values could not be read correctly." msgstr "Certaines valeurs csv n'ont pas pu être lues correctement." @@ -4381,15 +4554,27 @@ msgstr "Trier les motions par" msgid "Sort workflow" msgstr "Trier les fluxs de travail" +msgid "Source" +msgstr "" + +msgid "Source code" +msgstr "" + msgid "Speaker" msgstr "Orateur" msgid "Speakers" msgstr "Orateurs" +msgid "Speaking time – current contribution" +msgstr "" + msgid "Speaking times" msgstr "Temps de parole" +msgid "Speaking times – overview structure levels" +msgstr "" + msgid "Speech start time" msgstr "" @@ -4434,20 +4619,8 @@ msgstr "Statut défini sur {}" msgid "Statistics" msgstr "Statistiques" -msgid "Statute" -msgstr "Statuts" - -msgid "Statute amendment" -msgstr "Changement de statut" - -msgid "Statute amendment for" -msgstr "Changement des statuts pour" - -msgid "Statute paragraph" -msgstr "Paragraphe des statuts" - -msgid "Statute paragraphs" -msgstr "Paragraphes des statuts" +msgid "Status" +msgstr "" msgid "Stop" msgstr "Arreter" @@ -4503,6 +4676,9 @@ msgstr "Changement de soumissionnaires" msgid "Subscript" msgstr "Indice" +msgid "Subtract" +msgstr "" + msgid "Suitable accounts found" msgstr "Comptes appropriés trouvés" @@ -4522,7 +4698,7 @@ msgid "Summary of changes:" msgstr " Résumé des modifications:" msgid "Superadmin" -msgstr "Superadministrateur" +msgstr "" msgid "Superadmin actions" msgstr "Actions du superadministrateur" @@ -4545,7 +4721,7 @@ msgstr "Les partisans ont changé" msgid "Surname" msgstr "Nom" -msgid "Swap mandates ..." +msgid "Swap mandates" msgstr "" msgid "Switch" @@ -4563,6 +4739,9 @@ msgstr "Balises" msgid "Text" msgstr "Texte" +msgid "Text color" +msgstr "" + msgid "Text for this option couldn't load." msgstr "Le texte de cette option n'a pas pu être chargé." @@ -4572,6 +4751,9 @@ msgstr "Importation de texte" msgid "Text separator" msgstr "Séparateur de texte" +msgid "Text to display" +msgstr "" + msgid "The account is deactivated." msgstr "Le compte est désactivé." @@ -4641,15 +4823,10 @@ msgstr "Le lien est cassé. Veuillez contacter votre administrateur système." msgid "The list of speakers is closed." msgstr "La liste des orateurs est fermée." -msgid "The list of speakers is open." -msgstr "La liste des orateurs est ouverte." - msgid "" "The maximum number of characters per line. Relevant when line numbering is " -"enabled. Min: 40" +"enabled. Min: 40. Note: Check PDF export and font." msgstr "" -"Nombre maximal de caractères par ligne. Relevant lorsque la numérotation des" -" lignes est activée. Min : 40 caractères." msgid "The number has to be greater than 0." msgstr "Le nombre doit être supérieur à 0." @@ -4737,6 +4914,9 @@ msgstr "Ces comptes seront supprimés :" msgid "These participants will be removed:" msgstr "Ces participants seront supprimés :" +msgid "These settings are only applied locally on this browser." +msgstr "" + msgid "This account has relations to meetings or committees" msgstr "Ce compte a des relations avec des réunions ou des comités" @@ -4999,9 +5179,15 @@ msgstr "Dépannage" msgid "Try reconnect" msgstr "Essayez de vous reconnecter." +msgid "URL" +msgstr "" + msgid "Underline" msgstr "Souligner" +msgid "Undo" +msgstr "" + msgid "Undone" msgstr "Défait" @@ -5011,6 +5197,9 @@ msgstr "Orateurs uniques" msgid "Unknown participant" msgstr "Participant inconnu" +msgid "Unknown user" +msgstr "" + msgid "Unsaved changes will not be applied." msgstr "Les modifications non enregistrées ne seront pas appliquées." @@ -5051,6 +5240,9 @@ msgstr "" "Utilisé pour les courriels d'invitation et le QRCode dans le PDF des données" " d'accès." +msgid "User" +msgstr "" + msgid "User not found." msgstr "Utilisateur non trouvé." @@ -5083,6 +5275,9 @@ msgstr "" msgid "Valid votes" msgstr "Votes valides" +msgid "View" +msgstr "" + msgid "Virtual applause" msgstr "Applaudissements virtuels" @@ -5095,6 +5290,9 @@ msgstr "Visibilité à l'ordre du jour" msgid "Vote" msgstr "Vote" +msgid "Vote delegation" +msgstr "" + msgid "Vote submitted" msgstr "Vote soumis" @@ -5107,8 +5305,8 @@ msgstr "Voté" msgid "Votes" msgstr "Votes" -msgid "Voting and ballot papers" -msgstr "Bulletins de vote et d'élection" +msgid "Voting" +msgstr "Vote" msgid "Voting anonymized" msgstr "Voter anonymisé" @@ -5198,13 +5396,6 @@ msgstr "Attendre la réponse ..." msgid "Warn color" msgstr "Couleur d'avertissement" -msgid "" -"Warning: Amendments exist for at least one of the selected motions. Are you " -"sure you want to delete these motions regardless?" -msgstr "" -"Attention : Des amendements existent pour au moins une des motions " -"sélectionnées. Êtes-vous sûr de vouloir supprimer ces motions malgré tout ?" - msgid "" "Warning: Amendments exist for this motion. Are you sure you want to delete " "this motion regardless?" @@ -5222,6 +5413,15 @@ msgstr "" "amendements peuvent devenir inutilisables si le paragraphe qu'ils affectent " "est supprimé." +msgid "" +"Warning: At least one of the selected motions has amendments, these will be " +"deleted as well. Do you want to delete anyway?" +msgstr "" + +msgid "" +"Warning: Data loss is possible because accounts are in the same meeting." +msgstr "" + msgid "Warning: This projector will be set to visible" msgstr "Avertissement : Ce projecteur sera réglé pour être visible" @@ -5249,13 +5449,6 @@ msgstr "Données d'accès du réseau sans fil" msgid "Wifi name" msgstr "Nom du réseau sans fil" -msgid "" -"Will be displayed as label before selected recommendation in statute " -"amendments." -msgstr "" -"Sera affichée comme étiquette avant la recommandation sélectionnée dans les " -"amendements au statut." - msgid "" "Will be displayed as label before selected recommendation. Use an empty " "value to disable the recommendation system." @@ -5275,9 +5468,6 @@ msgstr "Workflow des nouvelles modifications" msgid "Workflow of new motions" msgstr "Flux de travail des nouvelles motions" -msgid "Workflow of new statute amendments" -msgstr "Flux de travail pour les nouvelles modifications de statuts" - msgid "Workflows" msgstr "Flux de travail" @@ -5320,12 +5510,6 @@ msgstr "Vous n'êtes pas censé être ici..." msgid "You are using an incompatible client version." msgstr "" -msgid "" -"You are using the history mode of OpenSlides. Changes will not be saved." -msgstr "" -"Vous utilisez le mode historique d'OpenSlides. Les modifications ne seront " -"pas enregistrées." - msgid "You can change this option only in the forwarding section." msgstr "" "Vous pouvez changer cette option uniquement dans la section de transfert." @@ -5373,16 +5557,6 @@ msgstr "" "paramètres. Veuillez définir un autre flux de travail par défaut dans les " "paramètres et essayez à nouveau de supprimer le flux de travail." -msgid "" -"You cannot delete the workflow as long as it is selected as default workflow" -" for new statute amendments in the settings. Please set another workflow as " -"default in the settings and try to delete the workflow again." -msgstr "" -"Vous ne pouvez pas supprimer le flux de travail tant qu'il est sélectionné " -"comme flux de travail par défaut pour les nouvelles modifications de statuts" -" dans les paramètres. Veuillez définir un autre flux de travail par défaut " -"dans les paramètres et essayez à nouveau de supprimer le flux de travail." - msgid "You cannot delete yourself." msgstr "Vous ne pouvez pas vous supprimer vous-même." @@ -5719,6 +5893,9 @@ msgstr "supprimer le(s) groupe(s)" msgid "represented by" msgstr "représenté par" +msgid "represented by old account of" +msgstr "" + msgid "reset" msgstr "Réinitialiser" @@ -5758,6 +5935,9 @@ msgstr "version" msgid "votes per candidate" msgstr "votes par candidat" +msgid "votes per option" +msgstr "" + msgid "will be created" msgstr "sera créé" @@ -5850,9 +6030,6 @@ msgstr "Temps de parole" msgid "Staff" msgstr "Personnel" -msgid "Voting" -msgstr "Vote" - msgid "" "You are receiving this email because you have requested a new password for your OpenSlides account.\n" "\n" diff --git a/client/src/assets/i18n/it.po b/client/src/assets/i18n/it.po index 7ab2ba8234..8091d94ba8 100644 --- a/client/src/assets/i18n/it.po +++ b/client/src/assets/i18n/it.po @@ -1,11 +1,11 @@ # # Translators: # Katharina , 2022 -# Alexandra Damm , 2022 +# Alexandra Damm , 2024 # msgid "" msgstr "" -"Last-Translator: Alexandra Damm , 2022\n" +"Last-Translator: Alexandra Damm , 2024\n" "Language-Team: Italian (https://app.transifex.com/openslides/teams/14270/it/)\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -20,7 +20,7 @@ msgid "\"0\" means an unlimited number of active meetings" msgstr "\"0\" indica un numero illimitato di riunioni attive" msgid "%num% emails were send sucessfully." -msgstr "" +msgstr "%n um% Le e-mail sono state inviate con successo." msgid "-Ä" msgstr "-Ä" @@ -70,19 +70,21 @@ msgstr "Serve una password" msgid "A server error occured. Please contact your system administrator." msgstr "Errore del server. Prego contattare l'amministratore del server." +msgid "A time is required and must be in min:secs format." +msgstr "E' richiesto un tempo e deve essere indicato nel formato min:sec " + msgid "A title is required" msgstr "Serve un titolo" msgid "A topic needs a title" -msgstr "" - -msgid "A total time is required and must be greater than 0." -msgstr "" +msgstr "L'argomento necessita di un titolo" msgid "" "A user with the username '%username%' and the first name '%first_name%' was " "created." msgstr "" +"È stato creato un account con il nome utente ' 1%u sername%' e il nome di " +"battesimo ' 2%f irst_name%'." msgid "About me" msgstr "Su di me" @@ -91,7 +93,7 @@ msgid "Abstain" msgstr "Astensione" msgid "Accent color" -msgstr "" +msgstr "Colore dell'accento" msgid "Accept" msgstr "Accettare" @@ -102,14 +104,20 @@ msgstr "Dati d'accesso (pdf)" msgid "Access groups" msgstr "Gruppi d'accesso" +msgid "" +"Access only possible for participants of this meeting. All other accounts " +"(including organization and committee admins) may not open the closed " +"meeting. It is locked from the inside." +msgstr "" + msgid "Access-data" msgstr "Dati d'accesso" msgid "Account" -msgstr "" +msgstr "Account" msgid "Account admin" -msgstr "Amministratore del conto" +msgstr "" msgid "Account successfully assigned" msgstr "Account assegnato con successo" @@ -118,16 +126,16 @@ msgid "Accounts" msgstr "Accounts" msgid "Accounts created" -msgstr "" +msgstr "Creato Account" msgid "Accounts updated" -msgstr "" +msgstr "Account aggiornato" msgid "Accounts with errors" -msgstr "" +msgstr "Account con errori" msgid "Accounts with warnings: affected cells will be skipped" -msgstr "" +msgstr "Account con avvertimenti: le celle interessate saranno saltate" msgid "Activate" msgstr "Attivare" @@ -135,17 +143,17 @@ msgstr "Attivare" msgid "Activate amendments" msgstr "Attivare mozioni di modifica" -msgid "Activate design" +msgid "Activate closed meeting" msgstr "" -msgid "Activate statute amendments" -msgstr "Attivare modifiche di statuto" +msgid "Activate design" +msgstr "Attivare design" msgid "Activate the selection field 'motion editor'" -msgstr "" +msgstr "Attivare il campo di selezione \"motion edition\"" -msgid "Activate the selection field 'spokesman'" -msgstr "" +msgid "Activate the selection field 'spokesperson'" +msgstr "Attivare il campo di selezione \"spokesperson\"/portavoce" msgid "Activate vote delegations" msgstr "Attivare le deleghe di voto" @@ -157,24 +165,37 @@ msgid "" "Activates the automatic logging of the date and time when this state was " "first reached. A set time stamp cannot be removed." msgstr "" +"Attiva la registrazione automatica della data e dell'ora in cui questo stato" +" è stato raggiunto per la prima volta. Un timbro temporale impostato non può" +" essere rimosso." msgid "" "Activates the automatic setting of a number for motions that reach this " "state. The scheme for numbering can be customized under > [Settings] > " "[Motions]." msgstr "" +"Attiva l'impostazione automatica di un numero per le mozioni che raggiungono" +" questo stato. Lo schema di numerazione può essere personalizzato in > " +"[Impostazioni] > [Movimenti]." msgid "" "Activates the extension field for the selected state, which can be filled with free text as desired.\n" "\n" "Example: When activated, the state \"in progress\" can be expanded to e.g. \"in progress by the motion committee\"." msgstr "" +"Attiva il campo di estensione per lo stato selezionato, che può essere " +"riempito con testo libero a piacere. Esempio: Se attivato, lo stato \"in " +"corso\" può essere esteso ad esempio a \"in corso da parte della commissione" +" mozioni\"." msgid "" "Activates the extension field of the recommendation in this state, which can" " be filled with free text or extended with references to other motions or " "committees as desired." msgstr "" +"Attiva il campo di estensione della raccomandazione in questo stato, che può" +" essere riempito con testo libero o esteso con riferimenti ad altre mozioni " +"o commissioni, come desiderato." msgid "Active" msgstr "Attivo" @@ -201,13 +222,13 @@ msgid "Add new custom translation" msgstr "Aggiungere nuova traduzione utenti" msgid "Add new entry" -msgstr "" +msgstr "Aggiungere una nuova voce" msgid "Add option" msgstr "Aggiungi opzioni" msgid "Add timer" -msgstr "" +msgstr "Aggiungere il timer" msgid "Add to agenda" msgstr "Aggiungere all´ordine del giorno" @@ -218,6 +239,9 @@ msgstr "Aggiungi alle riunioni" msgid "Add to queue" msgstr "Aggiungere alla coda" +msgid "Add up" +msgstr "Aggiungere" + msgid "Add yourself to the current list of speakers to join the conference" msgstr "Aggiungiti alla lista dei relatori per parteicpare alla conferenza" @@ -225,7 +249,10 @@ msgid "Add/remove groups ..." msgstr "Aggiungere / cancellare gruppi ..." msgid "Add/remove structure levels ..." -msgstr "" +msgstr "Aggiungere/rimuovere livelli di struttura" + +msgid "Add/subtract" +msgstr "Aggiungere/sottrarre" msgid "" "Additional columns after the required ones may be present and will not " @@ -235,7 +262,7 @@ msgstr "" "all´importazione." msgid "Administration roles" -msgstr "Ruoli di amministrazione" +msgstr "" msgid "Administration roles (at organization level)" msgstr "Ruoli di amministrazione (a livello organizzativo)" @@ -248,11 +275,15 @@ msgstr "Dopo controllo cliccare su \"Importare\" (in alto a destra). " msgid "After verifying the preview click on \"import\" please (see top right)." msgstr "" +"Dopo aver verificato l'anteprima, fare clic su \"Importa\" (vedere in alto a" +" destra)." msgid "" "Afterwards you may be unable to regain your status in this meeting on your " "own. Are you sure you want to do this?" msgstr "" +"In seguito potreste non essere in grado di riguadagnare il vostro status in " +"questa riunione da soli. È sicuro di volerlo fare?" msgid "Agenda" msgstr "Ordine del Giorno" @@ -265,9 +296,12 @@ msgstr "" msgid "Agenda visibility" msgstr "Visibilità nell'Ordine del Giorno" -msgid "Alignment" +msgid "Align" msgstr "" +msgid "All" +msgstr "Tutto" + msgid "All casted ballots" msgstr "Tutte le schede di votazione consegnate" @@ -278,16 +312,16 @@ msgid "All lists of speakers will be cleared." msgstr "Tutte le liste di relatori veranno cancellati." msgid "All meetings" -msgstr "" +msgstr "Tutte le riunioni" msgid "All other fields are optional and may be empty." msgstr "Tutti gli altri campi sono facoltativi e possono essere vuoti." msgid "All present entitled users" -msgstr "" +msgstr "Tutti gli utenti presenti autorizzati" msgid "All structure levels" -msgstr "" +msgstr "Tutti i livelli di struttura" msgid "All topics will be deleted and won't be accessible afterwards." msgstr "Tutti i temi saranno cancellati e non più accessibili." @@ -311,7 +345,7 @@ msgid "Allow forwarding of motions" msgstr "Consentire l'inoltro di mozioni" msgid "Allow one participant multiple times on the same list" -msgstr "" +msgstr "Ammettere un partecipante molte volte nella stessa lista" msgid "" "Allow only current speakers and list of speakers managers to enter the live " @@ -375,9 +409,10 @@ msgstr "Numero di voti" msgid "An email with a password reset link has been sent." msgstr "" +"E' stata inviata un'e-mail con un link per la reimpostazione della password." msgid "An error occurred while voting." -msgstr "" +msgstr "Si è verificato un errore nella votazione" msgid "An unknown error occurred." msgstr "Si è verificato un errore sconosciuto." @@ -400,6 +435,9 @@ msgstr "Immagine particle d'applauso in URL" msgid "Applause visualization" msgstr "Visualizzazione dell'applauso" +msgid "Application update in progress." +msgstr "Aggiornamento dell'applicazione in corso." + msgid "Apply" msgstr "Applicare" @@ -419,10 +457,18 @@ msgid "" "Are you sure you want to activate this color set? This will change the " "colors in all meetings." msgstr "" +"Siete sicuri di voler attivare questo set di colori? Questo cambierà i " +"colori in tutte le riunioni." msgid "Are you sure you want to activate this meeting?" msgstr "È sicuro di voler attivare questa riunione?" +msgid "" +"Are you sure you want to add the following time onto every structure level?" +msgstr "" +"Siete sicuri di voler aggiungere il seguente tempo a ogni livello della " +"struttura?" + msgid "Are you sure you want to anonymize all votes? This cannot be undone." msgstr "" "Sei sicuro di voler rendere anonimi tutti i voti? Non può essere " @@ -440,12 +486,14 @@ msgstr "Sicuro di voler cancellare tutti i relatori da tutte le liste?" msgid "" "Are you sure you want to delete all next speakers from this list of " "speakers?" -msgstr "" +msgstr "Sicuro di voler eliminare tutti i prossimi oratori da questo elenco?" msgid "" "Are you sure you want to delete all previous speakers from this list of " "speakers?" msgstr "" +"È sicuro di voler eliminare tutti gli oratori precedenti da questo elenco di" +" oratori?" msgid "Are you sure you want to delete all selected elections?" msgstr "Sei sicuro di voler cancellare tutte le elezioni selezionate?" @@ -454,7 +502,7 @@ msgid "Are you sure you want to delete all selected files and folders?" msgstr "Sicuro di voler cancellare tutti i file e registri selezionati?" msgid "Are you sure you want to delete all selected meetings?" -msgstr "" +msgstr "Siete sicuri di voler eliminare tutte le riunioni selezionate?" msgid "Are you sure you want to delete all selected motions?" msgstr "Sicuro di voler cancellare tutte le mozioni selezionate?" @@ -467,7 +515,7 @@ msgid "" msgstr "Sicuro di voler cancellare tutti i relatori da questo elenco?" msgid "Are you sure you want to delete the editorial final version?" -msgstr "" +msgstr "Sei sicuro di voler cancellare la versione editoriale finale?" msgid "Are you sure you want to delete these accounts?" msgstr "Sicuro di voler eliminare questi account?" @@ -515,19 +563,16 @@ msgid "Are you sure you want to delete this motion block?" msgstr "Sicuro di voler cancellare questa sezione di mozione? " msgid "Are you sure you want to delete this motion? " -msgstr "" +msgstr "Sicuro di voler cancellare questa mozione? " msgid "Are you sure you want to delete this projector?" msgstr "Sicuro di voler cancellare questo proiettore?" msgid "Are you sure you want to delete this state?" -msgstr "" - -msgid "Are you sure you want to delete this statute paragraph?" -msgstr "Sicuro di voler cancellare questa paragrafo dello statuto?" +msgstr "Siete sicuri di voler cancellare questo stato?" msgid "Are you sure you want to delete this structure level?" -msgstr "" +msgstr "Siete sicuri di voler eliminare questo livello di struttura?" msgid "Are you sure you want to delete this tag?" msgstr "Sicuro di voler cancellare questa parole chiave?" @@ -551,6 +596,8 @@ msgid "" "Are you sure you want to end this contribution which still has interposed " "question(s)?" msgstr "" +"Sei sicuro di voler terminare questo contributo, che ha ancora delle domande" +" da porre?" msgid "" "Are you sure you want to generate new passwords for all selected " @@ -560,7 +607,7 @@ msgstr "" "selezionati?" msgid "Are you sure you want to irrevocably remove your point of order?" -msgstr "" +msgstr "È sicuro di voler eliminare irrevocabilmente la mozione d'ordine?" msgid "Are you sure you want to number all agenda items?" msgstr "Sicuro di voler numerare tutti i punti dell´ordine del giorno?" @@ -577,7 +624,7 @@ msgstr "" "giorno?" msgid "Are you sure you want to remove these participants?" -msgstr "" +msgstr "Siete sicuri di voler rimuovere questi partecipanti?" msgid "Are you sure you want to remove this entry from the agenda?" msgstr "Sicuro di voler cancellare questo contributo dall´ordine del giorno?" @@ -587,7 +634,7 @@ msgstr "" "Sicuro di voler cancellare questa mozione dalla sezione delle mozioni?" msgid "Are you sure you want to remove this participant?" -msgstr "" +msgstr "Sei sicuro di voler rimuovere questo partecipante?" msgid "" "Are you sure you want to remove this speaker from the list of speakers?" @@ -603,21 +650,36 @@ msgstr "" msgid "Are you sure you want to reset all options to default settings?" msgstr "" +"Siete sicuri di voler ripristinare tutte le opzioni alle impostazioni " +"predefinite?" msgid "" "Are you sure you want to reset all options to default settings? All changes " "of this settings group will be lost!" msgstr "" +"Siete sicuri di voler ripristinare tutte le opzioni alle impostazioni " +"predefinite? Tutte le modifiche apportate a questo gruppo di impostazioni " +"andranno perse!" msgid "Are you sure you want to reset all passwords to the default ones?" msgstr "Sicuro di voler resettare tutti i password a quelli iniziali?" +msgid "" +"Are you sure you want to reset the time to the last set value? It will be " +"reset to:" +msgstr "" +"Siete sicuri di voler ripristinare l'ora all'ultimo valore impostato? Verrà " +"reimpostato su:" + msgid "Are you sure you want to reset this vote?" msgstr "Sicuro di voler resettare questa votazione?" msgid "Are you sure you want to send an invitation email to the user?" msgstr "Sicuro di voler inviare un invito a questo utente?" +msgid "Are you sure you want to send an invitation email?" +msgstr "Siete sicuri di voler inviare un'e-mail di invito?" + msgid "Are you sure you want to send emails to all selected participants?" msgstr "Sicuro di voler inviare e-mails a tutti i partecipanti selezionati?" @@ -661,13 +723,16 @@ msgstr "" "\"Aggiungi alle riunioni\" nella vista dei dettagli dell'account." msgid "Attention: First enter the wifi data in [Settings > General]" +msgstr "Attenzione: Inserire prima i dati wifi in [Impostazioni > Generali]." + +msgid "Attention: Not selected accounts will be merged and then deleted." msgstr "" msgid "Attention: This action cannot be undone!" -msgstr "" +msgstr "Attenzione: Questa azione non può essere annullata!" msgid "Attribute mapping (JSON)" -msgstr "" +msgstr "Mappatura degli attributi (JSON)" msgid "Automatically open the microphone for new conference speakers" msgstr "" @@ -682,8 +747,11 @@ msgstr "" msgid "Autopilot" msgstr "Autopilota" +msgid "Autopilot widgets" +msgstr "Widget del pilota automatico" + msgid "Autoupdate unhealthy" -msgstr "" +msgstr "Aggiornamento automatico dannoso" msgid "Available sizes are 10, 11 and 12" msgstr "Le misure disponibili sono 10, 11 e 12" @@ -707,13 +775,13 @@ msgid "Ballot" msgstr "Votazione" msgid "Ballot anonymized" -msgstr "" +msgstr "Voto anonimo" msgid "Ballot created" -msgstr "" +msgstr "Creazione della votazione" msgid "Ballot deleted" -msgstr "" +msgstr "Votazione eliminata" msgid "Ballot opened" msgstr "Votazione aperta" @@ -722,26 +790,29 @@ msgid "Ballot papers" msgstr "Scheda elettorale" msgid "Ballot published" -msgstr "" +msgstr "Votazione pubblicata" msgid "Ballot reset" -msgstr "" +msgstr "Votazione resettata" msgid "Ballot started" -msgstr "" +msgstr "Votazione iniziata" msgid "Ballot stopped" -msgstr "" +msgstr "Votazione interrotta" msgid "Ballot stopped/published" -msgstr "" +msgstr "Votazione interrotta/pubblicata" msgid "Ballot updated" -msgstr "" +msgstr "Votazione aggiornata" msgid "Ballots" msgstr "Votazioni" +msgid "Ballots cast" +msgstr "" + msgid "Base folder" msgstr "Cartella base" @@ -751,18 +822,21 @@ msgstr "Inizio relazione" msgid "Blank between prefix and number, e.g. 'A 001'." msgstr "Spazio tra prefisso e numero, p. e. ´A 001´." -msgid "Blocks" +msgid "Blockquote" msgstr "" msgid "Bold" -msgstr "" +msgstr "Grassetto" -msgid "CSV export options" -msgstr "Opzioni di esportazione CSV" +msgid "Bullet list" +msgstr "" msgid "CSV import" msgstr "Importazione CSV" +msgid "CSV options" +msgstr "Opzioni CSV" + msgid "Calendar" msgstr "Calendario" @@ -776,20 +850,25 @@ msgid "Called with" msgstr "E' chiamato anche" msgid "Can activate and deactivate logos and fonts under > [Files]." -msgstr "" +msgstr "È possibile attivare e disattivare loghi e font in > [File]." msgid "" "Can add or delete speakers to or from the list of speakers, mark, sort, " "start/stop and open/close the list of speakers." msgstr "" +"È possibile aggiungere o eliminare oratori dall'elenco degli oratori, " +"contrassegnare, ordinare, avviare/arrestare e aprire/chiudere l'elenco degli" +" oratori." msgid "" "Can add their name to the list of candidates in the [Search for candidates] " "phase." msgstr "" +"Può aggiungere il proprio nome all'elenco dei candidati nella fase [Ricerca " +"di candidati]." msgid "Can change the presence status of other participants." -msgstr "" +msgstr "Può modificare lo stato di presenza di altri partecipanti." msgid "Can create amendments" msgstr "Può creare mozioni di modifica" @@ -798,6 +877,8 @@ msgid "" "Can create amendments and modify them later, depending on the workflow, but " "cannot delete them." msgstr "" +"Può creare modifiche e modificarle in seguito, a seconda del flusso di " +"lavoro, ma non può cancellarle." msgid "Can create motions" msgstr "Può creare mozioni" @@ -806,53 +887,73 @@ msgid "" "Can create motions and modify them later, depending on the workflow, but " "cannot delete them." msgstr "" +"Può creare mozioni e modificarle in seguito, a seconda del flusso di lavoro," +" ma non può eliminarle." msgid "Can create, change, delete tags for the agenda and for motions." msgstr "" +"Può creare, modificare e cancellare tag per l'ordine del giorno e per le " +"mozioni." msgid "Can create, change, start/stop and delete polls." -msgstr "" +msgstr "Può creare, modificare, avviare/arrestare ed eliminare i sondaggi." msgid "Can create, configure, control and delete projectors." -msgstr "" +msgstr "Può creare, configurare, controllare ed eliminare i proiettori." msgid "" "Can create, modify and delete elections and candidate lists, as well as " "start/stop and reset ballots. " msgstr "" +"Può creare, modificare e cancellare elezioni e liste di candidati, nonché " +"avviare/arrestare e reimpostare le votazioni." msgid "" "Can create, modify and delete motions and votings, amendments and change " "recommendations, and edit the metadata of a motion. Including the management" " of categories, motion blocks, tags, workflows and comment fields." msgstr "" +"Può creare, modificare e cancellare mozioni e votazioni, emendamenti e " +"raccomandazioni di modifica, nonché modificare i metadati di una mozione. " +"Comprende la gestione di categorie, blocchi di mozioni, tag, flussi di " +"lavoro e campi di commento." msgid "" "Can create, modify and delete topics, add motions and elections to the " "agenda, sort, number and tag agenda items." msgstr "" +"Può creare, modificare e cancellare argomenti, aggiungere mozioni ed " +"elezioni all'ordine del giorno, ordinare, numerare ed etichettare i punti " +"all'ordine del giorno." msgid "" "Can create, modify, delete chat groups and define permissions.\n" "\n" "Note: The chat menu item becomes visible to all participants, except admins, as soon as a chat has been created." msgstr "" +"Può creare, modificare, eliminare gruppi di chat e definire le " +"autorizzazioni. Nota: La voce di menu chat diventa visibile a tutti i " +"partecipanti, tranne gli amministratori, non appena viene creata una chat." msgid "" "Can create, modify, delete participant datasets and administrate group " "permissions." msgstr "" +"Can create, modify, delete participant datasets and administrate group " +"permissions." msgid "Can create, modify, start/stop and delete votings." -msgstr "" +msgstr "Può creare, modificare, avviare/arrestare ed eliminare le votazioni." msgid "Can edit all moderation notes." -msgstr "" +msgstr "Può modificare tutte le note di moderazione." msgid "" "Can edit and assign the following motion metadata: Submitter, state, " "recommendation, category, motion blocks and tags." msgstr "" +"Può modificare e assegnare i seguenti metadati del movimento: Presentatore, " +"stato, raccomandazione, categoria, blocchi di mozioni e tag." msgid "Can forward motions" msgstr "Può inoltrare mozioni" @@ -868,6 +969,11 @@ msgid "" "2. target meeting must be created.\n" "3. forwarding must be activated in the workflow in the state." msgstr "" +"Può inoltrare le mozioni ad altre riunioni all'interno dell'istanza " +"OpenSlides. Altri requisiti: 1. la gerarchia di inoltro deve essere " +"impostata a livello organizzativo nel comitato. 2. deve essere creata una " +"riunione di destinazione. 3. l'inoltro deve essere attivato nel flusso di " +"lavoro nello stato." msgid "Can manage agenda" msgstr "Può gestire l'ordine del giorno" @@ -885,7 +991,7 @@ msgid "Can manage logos and fonts" msgstr "Può gestire i logo e caratteri" msgid "Can manage moderation notes" -msgstr "" +msgstr "Può gestire le note di moderazione" msgid "Can manage motion metadata" msgstr "Può gestire mozioni metadata" @@ -917,6 +1023,10 @@ msgstr "Può gestire la chat" msgid "Can manage the projector" msgstr "Può gestire il proiettore" +msgid "Can modify existing participants, but cannot create or delete them." +msgstr "" +"Può modificare i partecipanti esistenti, ma non può crearli o eliminarli." + msgid "Can nominate another participant" msgstr "Può nominare altri partecipati per l'elezione" @@ -928,15 +1038,17 @@ msgid "" "\n" "Requires group permission: [Can see participants]" msgstr "" +"Può nominare altri partecipanti come candidati. Richiede l'autorizzazione " +"del gruppo: [Può vedere i partecipanti]." msgid "Can not import because of errors" -msgstr "" +msgstr "Impossibile importare a causa di errori" msgid "Can put oneself on the list of speakers" msgstr "Può mettersi sulla lista dei relatori" msgid "Can receive motions" -msgstr "Può ricevere mozioni" +msgstr "" msgid "Can receive motions from committee" msgstr "Può ricevere mozioni dalla commissione" @@ -945,19 +1057,24 @@ msgid "Can see agenda" msgstr "Può vedere l'ordine del giorno" msgid "Can see all internal topics, schedules and comments." -msgstr "" +msgstr "Può vedere tutti gli argomenti interni, gli orari e i commenti." msgid "Can see all lists of speakers" -msgstr "" +msgstr "Può vedere tutti gli elenchi dei relatori" msgid "Can see all moderation notes in each list of speakers." -msgstr "" +msgstr "Può vedere tutte le note di moderazione in ogni elenco di oratori." msgid "Can see elections" msgstr "Può vedere le elezioni" -msgid "Can see files" +msgid "Can see email, username and SSO identification of all participants." msgstr "" +"Può vedere l'e-mail, il nome utente e l'identificazione SSO di tutti i " +"partecipanti." + +msgid "Can see files" +msgstr "Può vedere i files" msgid "Can see history" msgstr "Può vedere lo storico" @@ -970,7 +1087,7 @@ msgid "Can see list of speakers" msgstr "Può vedere la lista dei relatori" msgid "Can see moderation notes" -msgstr "" +msgstr "Può vedere le note di moderazione" msgid "Can see motions" msgstr "Può vedere le mozioni" @@ -983,47 +1100,70 @@ msgid "" "\n" "Tip: Cross-check desired visibility of motions with test delegate account. " msgstr "" +"Può vedere i movimenti nello stato interno che sono limitati nel flusso di " +"lavoro sotto Restrizioni con la stessa descrizione: Verificare la visibilità" +" desiderata dei movimenti con l'account del delegato di prova. " msgid "Can see participants" msgstr "Può vedere i partecipanti" +msgid "Can see sensitive data" +msgstr "Può vedere i dati sensibili" + msgid "Can see the Agenda menu item and all public topics in the agenda." msgstr "" +"Può vedere la voce di menu Agenda e tutti gli argomenti pubblici " +"dell'agenda." msgid "" "Can see the Autopilot menu item with all content for which appropriate " "permissions are set." msgstr "" +"Può vedere la voce di menu Autopilot con tutti i contenuti per i quali sono " +"state impostate le autorizzazioni appropriate." msgid "" "Can see the Files menu item and all shared folders and files.\n" "\n" "Note: Sharing of folders and files may be restricted by group assignment." msgstr "" +"Può vedere la voce di menu File e tutte le cartelle e i file condivisi. " +"Nota: la condivisione di cartelle e file può essere limitata " +"dall'assegnazione di un gruppo." msgid "" "Can see the History menu item with the history of processing timestamps for motions, elections and participants. \n" "\n" "Note: For privacy reasons, it is recommended to limit the rights to view the History significantly." msgstr "" +"Può visualizzare la voce di menu Cronologia con la cronologia dei tempi di " +"elaborazione delle mozioni, delle elezioni e dei partecipanti. Nota: per " +"motivi di privacy, si consiglia di limitare notevolmente i diritti di " +"visualizzazione della Cronologia." msgid "Can see the Home menu item." -msgstr "" +msgstr "Può vedere la voce di menù Home" msgid "" "Can see the Motions menu item and all motions unless they are limited by " "access restrictions in the workflow." msgstr "" +"Può vedere la voce di menu Mozioni e tutte le mozioni, a meno che non siano " +"limitate da restrizioni di accesso nel flusso di lavoro." msgid "" "Can see the Projector menu item and all projectors (in the Autopilot as well" " as in the Projector menu item)" msgstr "" +"Può vedere la voce di menu Proiettore e tutti i proiettori (sia " +"nell'Autopilota che nella voce di menu Proiettore)" msgid "" "Can see the Settings menu item and edit all settings as well as the start " "page of the meeting." msgstr "" +"Può vedere la voce di menu Impostazioni e modificare tutte le impostazioni, " +"nonché la pagina iniziale della riunione." msgid "Can see the autopilot" msgstr "Può vedere l'autopilota" @@ -1038,18 +1178,27 @@ msgid "" "Can see the livestream if there is a livestream URL entered in > [Settings] " "> [Livestream]." msgstr "" +"È possibile vedere il livestream se è stato inserito un URL livestream in > " +"[Impostazioni] > [Livestream]." msgid "" "Can see the menu item Elections, including the list of candidates and results. \n" "\n" "Note: The right to vote is defined directly in the ballot." msgstr "" +"Può vedere la voce di menu Elezioni, compreso l'elenco dei candidati e i " +"risultati. Nota: Il diritto di voto è definito direttamente nella scheda " +"elettorale." msgid "" "Can see the menu item Participants and therefore the following data from all participants: \n" "Personal data: Name, pronoun, gender. \n" "Meeting specific information: Structure level, Group, Participant number, About me, Presence status." msgstr "" +"Può vedere la voce di menu Partecipanti e quindi i seguenti dati di tutti i " +"partecipanti: Dati personali: Nome, pronome, sesso. Informazioni specifiche " +"della riunione: Livello della struttura, Gruppo, Numero del partecipante, " +"Informazioni su di me, Stato della presenza." msgid "Can see the projector" msgstr "Può vedere il proiettore" @@ -1061,11 +1210,19 @@ msgid "" "Can support motions. The support function must be enabled in > [Settings] > " "[Motions] as well as for the corresponding state in > [Workflow]." msgstr "" +"Può supportare le mozioni. La funzione di supporto deve essere abilitata in " +"> [Impostazioni] > [Movimenti] così come per lo stato corrispondente in > " +"[Flusso di lavoro]." + +msgid "Can update participants" +msgstr "Può eleggere partecipanti" msgid "" "Can upload, modify and delete files, administrate folders and change access " "restrictions." msgstr "" +"Può caricare, modificare e cancellare file, amministrare cartelle e " +"modificare le restrizioni di accesso." msgid "Cancel" msgstr "Annulla" @@ -1077,13 +1234,13 @@ msgid "Cancel editing without saving" msgstr "Annulla lavorazione senza salvare" msgid "Candidate" -msgstr "" +msgstr "Candidato" msgid "Candidate added" -msgstr "" +msgstr "Aggiunto candidato" msgid "Candidate removed" -msgstr "" +msgstr "Candidato rimosso" msgid "Candidates" msgstr "Candidati" @@ -1092,13 +1249,10 @@ msgid "Cannot do that in demo mode!" msgstr "Questa opzione non disponibile nel modus demo!" msgid "Cannot forward motions" -msgstr "Non può inoltrare mozioni" - -msgid "Cannot navigate to the selected history element." -msgstr "Non si può aprire il documento storico selezionato." +msgstr "" msgid "Cannot receive motions" -msgstr "Non può ricevere mozioni" +msgstr "" msgid "Categories" msgstr "Categorie" @@ -1119,7 +1273,7 @@ msgid "Center" msgstr "Centro" msgid "Change color set" -msgstr "" +msgstr "Cambia il set di colori" msgid "Change paragraph" msgstr "Cambiare paragrafo" @@ -1167,39 +1321,49 @@ msgid "Check in or check out participants based on their participant numbers:" msgstr "Check in o check out dei partecipanti secondo la propria numerazione" msgid "Checkmate! You lost!" -msgstr "" +msgstr "Scacco matto! Hai perso!" msgid "Checkmate! You won!" -msgstr "" +msgstr "Scacco matto! Hai vinto!" msgid "Chess" -msgstr "" +msgstr "Scacchi" msgid "Choice" msgstr "Scelta" msgid "Choose 0 to disable Intervention." +msgstr "Scegliere 0 per disabilitare Intervento." + +msgid "" +"Choose 0 to disable speaking times widget for structure level countdowns." msgstr "" +"Scegliere 0 per disattivare il widget dei tempi di parola per i conti alla " +"rovescia dei livelli della struttura." msgid "Choose 0 to disable the supporting system." msgstr "Per disattivare il sistema di sostegno premere \"0\"." -msgid "" -"Choose a number greater than 0 to activate speaking times widget for " -"structure level countdowns." -msgstr "" - msgid "Chyron" -msgstr "Fascetta" +msgstr "Sottopancia" -msgid "Chyron background color" -msgstr "Colore sfondo fascetta" +msgid "Chyron agenda item, background color" +msgstr "Voce dell'agenda del sottopancia, colore dello sfondo" -msgid "Chyron font color" -msgstr "Colore carattere fascetta" +msgid "Chyron agenda item, font color" +msgstr "Voce dell'agenda del sottopancia, colore del carattere" msgid "Chyron speaker name" -msgstr "" +msgstr "Sottopancia con nome del relatore" + +msgid "Chyron speaker, background color" +msgstr "Sottopancia con nome del relatore, colore dello sfondo" + +msgid "Chyron speaker, font color" +msgstr "Sottopancia con nome del relatore, colore della scritta" + +msgid "Classic" +msgstr "Classico" msgid "Clear" msgstr "Cancella" @@ -1211,6 +1375,9 @@ msgid "Clear all list of speakers" msgstr "Cancellare tutte le liste dei relatori" msgid "Clear current projection" +msgstr "Cancella la proiezione corrente" + +msgid "Clear formatting" msgstr "" msgid "Clear list" @@ -1220,7 +1387,7 @@ msgid "Clear motion block" msgstr "Cancellare sezione di mozioni" msgid "Clear recommendation" -msgstr "" +msgstr "Cancella la raccomandazione" msgid "Clear tags" msgstr "Cancellare parole chiave" @@ -1229,18 +1396,18 @@ msgid "Click here to vote!" msgstr "Premere qui per votare!" msgid "Close" -msgstr "" +msgstr "Chiudi" msgid "Close edit mode" -msgstr "" +msgstr "Chiudere la modalità di modifica" msgid "Close list of speakers" msgstr "Chiudere lista dei relatori" -msgid "Closed items" -msgstr "Mozioni deliberate" +msgid "Closed" +msgstr "" -msgid "Code" +msgid "Closed items" msgstr "" msgid "Collapse all" @@ -1250,7 +1417,7 @@ msgid "Color" msgstr "Colore" msgid "Color set" -msgstr "" +msgstr "Set di colori" msgid "Column separator" msgstr "Divisore colonne" @@ -1268,10 +1435,10 @@ msgid "Comment fields" msgstr "Campo per il commento" msgid "Comment section" -msgstr "" +msgstr "Sezione commenti" msgid "Comment sections" -msgstr "" +msgstr "Sezioni commenti" msgid "Comment updated" msgstr "Commento aggiornato" @@ -1292,7 +1459,7 @@ msgid "Committee" msgstr "Comitato" msgid "Committee Management Level changed" -msgstr "" +msgstr "Livello comitato di Gestione cambiato" msgid "Committee admin" msgstr "Amministratore del Comitato" @@ -1310,16 +1477,16 @@ msgid "Committees and meetings" msgstr "Comitati e riunioni" msgid "Committees created" -msgstr "" +msgstr "Creati comitati" msgid "Committees updated" -msgstr "" +msgstr "Comitati aggiornati" msgid "Committees with errors" -msgstr "" +msgstr "Comitati con errori" msgid "Committees with warnings: affected cells will be skipped" -msgstr "" +msgstr "Comitati con avvertenze: le celle interessate saranno saltate" msgid "Conference room" msgstr "Stanza delle conferenze." @@ -1328,13 +1495,13 @@ msgid "Confirm new password" msgstr "Confermare la nuova password" msgid "Confirmation of the nomination list" -msgstr "" +msgstr "Conferma della lista delle nomine" msgid "Congratuations! Your browser is supported by OpenSlides." msgstr "Congratulazionii! Il suo browser viene supportato da OpenSlides." msgid "Connect 4" -msgstr "" +msgstr "4 vince" msgid "Connect all users to live conference automatically." msgstr "" @@ -1356,16 +1523,16 @@ msgid "Contribution" msgstr "Contributo" msgid "Contributions" -msgstr "" +msgstr "Contributi" msgid "Copy report to clipboard" -msgstr "" +msgstr "Copiare il rapporto negli appunti" msgid "Count completed requests to speak" msgstr "Contare richieste di parola concluse" msgid "Count logged-in users" -msgstr "" +msgstr "Conteggio degli utenti connessi" msgid "Countdown" msgstr "Countdown" @@ -1386,10 +1553,10 @@ msgid "Create" msgstr "Creare" msgid "Create editorial final version" -msgstr "" +msgstr "Creare la versione editoriale finale" msgid "Create subitem" -msgstr "" +msgstr "Creare una sottovoce" msgid "Create user" msgstr "Creare utene" @@ -1403,6 +1570,9 @@ msgstr "Creazione" msgid "Creation date" msgstr "Data di creazione" +msgid "Current agenda item" +msgstr "Punto all'ordine del giorno attuale" + msgid "Current date" msgstr "Data attuale" @@ -1410,15 +1580,18 @@ msgid "Current list of speakers" msgstr "Lista dei relatori attuale" msgid "Current list of speakers (as slide)" -msgstr "" +msgstr "Lista degli oratori attuale (come slide)" msgid "Current slide" -msgstr "" +msgstr "Slide corrente" msgid "Current speaker" -msgstr "" +msgstr "Oratore corrente" msgid "Current speaker chyron" +msgstr "Sottopancia dell'attuale relatore/relatrice" + +msgid "Current window" msgstr "" msgid "Currently no livestream available." @@ -1436,11 +1609,14 @@ msgstr "Numero personalizzato di schede elettorali" msgid "Custom translations" msgstr "Traduzioni personalizzate" +msgid "Customize autopilot" +msgstr "Personalizzare il pilota automatico" + msgid "Dark mode" msgstr "Modalità scura" msgid "Dashboard" -msgstr "" +msgstr "Dashboard" msgid "Datastore is corrupt! See the console for errors." msgstr "Il datastore è corrotto! Vedere la console per gli errori." @@ -1454,11 +1630,8 @@ msgstr "Decisione" msgid "Default" msgstr "Default" -msgid "Default 100 % base of a voting result" -msgstr "Preimpostato base di 100% per risultato di votazione" - -msgid "Default 100 % base of an election result" -msgstr "Preimpostato base di 100% del risultato d'elezione" +msgid "Default 100 % base" +msgstr "Predefinito 100 % base" msgid "Default election method" msgstr "Preimpostato metodo d'elezione " @@ -1475,12 +1648,18 @@ msgstr "Gruppi preimpostati con diritto di voto" msgid "Default line numbering" msgstr "Numerazione di linea predefinita" -msgid "Default speaking time for structure levels in seconds" +msgid "" +"Default speaking time contingent for parliamentary groups (structure levels)" +" in seconds" msgstr "" +"Contingente di tempo di parola predefinito per i gruppi parlamentari " +"(livelli di struttura) in secondi" msgid "" "Default text version for change recommendations and projection of motions" msgstr "" +"Versione di testo predefinita per le raccomandazioni di modifica e la " +"proiezione di mozioni" msgid "Default visibility for new agenda items (except topics)" msgstr "" @@ -1501,9 +1680,15 @@ msgid "" "- If no option is selected, the motions in the selected state are visible to all; The prerequisite for this is group permission: [Can see motions].\n" "- Selecting one or more options restricts access to those groups for which the selected authorization option is defined under > [Participants] > [Groups]." msgstr "" +"Definisce per lo stato selezionato quali gruppi hanno accesso:- Se non viene" +" selezionata alcuna opzione, le mozioni nello stato selezionato sono " +"visibili a tutti; il prerequisito è l'autorizzazione del gruppo: [puoi " +"vedere mozioni]. Selezionando una o più opzioni, l'accesso è limitato ai " +"gruppi per i quali l'opzione di autorizzazione selezionata è definita in > " +"[Partecipanti] > [Gruppi]." msgid "Defines the colour for the state button." -msgstr "" +msgstr "Definisce il colore del pulsante di stato." msgid "" "Defines the maximum deflection. Entering zero will use the amount of present" @@ -1523,7 +1708,7 @@ msgstr "Definisce il tempo nel quale si sommano applausi." msgid "" "Defines the wording of the recommendation that belongs to this state.\n" -"Example: State = Accepted / Recommendation = Acceptance. \n" +"Example: State = Accepted / Recommendation = Acceptance.\n" "\n" "To activate the recommendation system, a recommender (for example, a motion committee) must be defined under > [Settings] > [Motions] > [Name of recommender].\n" "Example recommender: motion committee\n" @@ -1534,18 +1719,20 @@ msgstr "" msgid "Defines which states can be selected next in the workflow." msgstr "" +"Definisce quali stati possono essere selezionati successivamente nel flusso " +"di lavoro." msgid "Delegation of vote" -msgstr "Trasferimento diritto di voto" +msgstr "Delega di voto" msgid "Delete" msgstr "Cancellare" msgid "Delete color set" -msgstr "" +msgstr "Cancella il set di colori" msgid "Delete editorial final version" -msgstr "" +msgstr "Cancella la versione editoriale finale" msgid "Delete projector" msgstr "Cancellare proiettore" @@ -1553,10 +1740,10 @@ msgstr "Cancellare proiettore" msgid "Deleted user" msgstr "Utente cancellato" -msgid "" -"Deleting this motion will likely impact it's amendments negatively and they " -"could become unusable." +msgid "Deleting this motion will also delete the amendments." msgstr "" +"L'eliminazione di questa mozione comporta l'eliminazione anche degli " +"emendamenti." msgid "Deletion" msgstr "Cancellazione" @@ -1577,25 +1764,26 @@ msgid "Designates whether this user is in the room." msgstr "Decide se questo utente è presente in loco." msgid "Didn't get an email" -msgstr "Non ha ricevuto un'e-mail" +msgstr "" msgid "Diff version" msgstr "Versione di modifica" +msgid "Disable connection closing on inactivity" +msgstr "Disabilita la chiusura della connessione in caso di inattività" + msgid "Disabled (no percents)" msgstr "Disabilitati (senza percentuali)" msgid "Disallow new point of order when list of speakers is closed" msgstr "" +"Respinge una nuova mozione d'ordine quando l'elenco degli oratori è chiuso" msgid "Display type" msgstr "Formato display" msgid "Distribute overhang time" -msgstr "" - -msgid "Div" -msgstr "" +msgstr "Riportare il tempo di recupero" msgid "Divergent:" msgstr "Divergente" @@ -1603,11 +1791,14 @@ msgstr "Divergente" msgid "Do not forget to save your changes!" msgstr "Non dimenticare di salvare modifiche!" +msgid "Do not show recommendations publicly" +msgstr "Non mostrare pubblicamente le raccomandazioni" + msgid "Do you accept?" -msgstr "" +msgstr "Accetti?" msgid "Do you really want to delete this color set?" -msgstr "" +msgstr "Volete davvero eliminare questo set di colori?" msgid "Do you really want to discard all your changes?" msgstr "Volete davvero scartare tutte le vostre modifiche?" @@ -1643,6 +1834,9 @@ msgstr "Scaricare il file CSV di esempio" msgid "Download folder" msgstr "Cartella Download" +msgid "Download the file" +msgstr "" + msgid "Drop files into this area OR click here to select files" msgstr "Spostare files in questa sezione O premere qui per selezionare files" @@ -1650,7 +1844,7 @@ msgid "Duplicate" msgstr "Duplicare" msgid "Duplicate from" -msgstr "Duplicato da" +msgstr "Copiato da" msgid "Duplicates" msgstr "" @@ -1659,7 +1853,7 @@ msgid "Duration" msgstr "Durata" msgid "Duration in minutes" -msgstr "" +msgstr "Durata in minuti" msgid "Duration of all requests to speak" msgstr "Durata di tutte le richieste di parola" @@ -1684,9 +1878,12 @@ msgstr "" msgid "Edit" msgstr "Modificare" -msgid "Edit account" +msgid "Edit HTML content" msgstr "" +msgid "Edit account" +msgstr "Modifica account" + msgid "Edit comment field" msgstr "Modificare campo commento" @@ -1700,31 +1897,28 @@ msgid "Edit details for" msgstr "Modificare dettagli per " msgid "Edit editorial final version" -msgstr "" +msgstr "Modifica la versione editoriale finale" msgid "Edit group" -msgstr "" +msgstr "Modifica gruppo" msgid "Edit meeting" msgstr "Modifica riunione" msgid "Edit moderation note" -msgstr "" +msgstr "Modifica nota di moderazione" msgid "Edit point of order ..." -msgstr "" +msgstr "Elaborare la mozione d'ordine" msgid "Edit projector" msgstr "Modificare proiettore" msgid "Edit queue" -msgstr "" +msgstr "Modifica la coda d'attesa" msgid "Edit state" -msgstr "" - -msgid "Edit statute paragraph" -msgstr "Modificare paragrafo statuto" +msgstr "Modifica lo stato" msgid "Edit tag" msgstr "Modificare etichetta" @@ -1738,14 +1932,11 @@ msgstr "Modificare per inserire voti" msgid "Edit topic" msgstr "Modifica argomento" -msgid "Edit total time" -msgstr "" - msgid "Edit workflow" -msgstr "" +msgstr "Modifica flusso di lavoro" msgid "Editorial final version" -msgstr "" +msgstr "Versione editoriale finale" msgid "Election" msgstr "Elezione" @@ -1756,14 +1947,17 @@ msgstr "Documenti d´elezione" msgid "Elections" msgstr "Elezioni" +msgid "Elections (PDF settings)" +msgstr "Elezioni (impostazioni PDF)" + msgid "Element" -msgstr "" +msgstr "Elemento" msgid "Email" msgstr "E-mail" msgid "Email address" -msgstr "Indirizzo Email" +msgstr "" msgid "Email body" msgstr "corpo della e-mail" @@ -1781,7 +1975,7 @@ msgid "Empty text field" msgstr "Campo di testo vuoto" msgid "Enable SSO via SAML" -msgstr "" +msgstr "Abilita SSO via SAML" msgid "Enable chat globally" msgstr "Abilitare la chat a livello globale" @@ -1793,7 +1987,7 @@ msgid "Enable forspeech / counter speech" msgstr "abilita intercessione / contro-parola" msgid "Enable interposed questions" -msgstr "" +msgstr "Attivare domande intermedie" msgid "Enable numbering for agenda items" msgstr "Abilitare la numerazione dei punti dell'ordine del giorno" @@ -1805,13 +1999,13 @@ msgid "Enable point of order" msgstr "Abilitazione del punto d'ordine" msgid "Enable point of orders for other participants" -msgstr "" +msgstr "Abilitare la mozione d'ordine per gli altri partecipanti" msgid "Enable specifications and ranking for possible motions" -msgstr "" +msgstr "Consentire specifiche e classifiche per le possibili mozioni" msgid "Enable star icon usage by speakers" -msgstr "" +msgstr "Abilita l'uso dell'icona a stella da parte degli oratori" msgid "Enable virtual applause" msgstr "Attivare applauso virtuale" @@ -1829,20 +2023,26 @@ msgid "" "Enables for the selected state the possibility for submitters to change the " "state of the motion. Other administrative functions are excluded." msgstr "" +"Abilita, per lo stato selezionato, la possibilità per i proponenti di " +"modificare lo stato della mozione. Sono escluse altre funzioni " +"amministrative." msgid "Enables the ability to create votings for motions in this state." msgstr "" +"Abilita la possibilità di creare votazioni per le mozioni in questo stato." msgid "" "Enables the editing of the motion text and reason by submitters in the " "selected state after the motion has been created." msgstr "" +"Consente la modifica del testo della mozione e del motivo da parte dei " +"proponenti nello stato selezionato dopo la creazione della mozione." msgid "" -"Enables the forwarding of motions to other meetings within the OpenSlides instance in the selected state. \n" +"Enables the forwarding of motions to other meetings within the OpenSlides instance in the selected state.\n" "\n" "Prerequisites:\n" -"1. forwarding hierarchy must be set at the organizational level in the committee. \n" +"1. forwarding hierarchy must be set at the organizational level in the committee.\n" "2. target meeting must be created.\n" "3. user must have group permission for forwarding." msgstr "" @@ -1853,12 +2053,20 @@ msgid "" "corresponding group permission in > [Participants] > [Groups] > [Motions] > " "[Can support motions]." msgstr "" +"Abilita la funzione di supporto per le mozioni nello stato selezionato. La " +"funzione di supporto deve essere attivata in > [Impostazioni] > [Movimenti] " +"come anche l'autorizzazione di gruppo corrispondente in > [Partecipanti] > " +"[Gruppi] > [Mozioni] > [Può supportare mozioni]." msgid "" "Enables the visibility of amendments directly in the corresponding main motion. The text of amendments is embedded within the text of the motion.\n" "\n" "Note: Does not affect the visibility of change recommendations." msgstr "" +"Consente la visibilità degli emendamenti direttamente nella mozione " +"principale corrispondente. Il testo degli emendamenti è incorporato nel " +"testo della mozione. Nota: non influisce sulla visibilità delle " +"raccomandazioni di modifica." msgid "Encoding of the file" msgstr "Codificare il file" @@ -1900,7 +2108,7 @@ msgid "Enter your email to send the password reset link" msgstr "Inserire l´e-mail per ricevere il link per resettare la password" msgid "Entitled present users" -msgstr "" +msgstr "Utenti presenti aventi diritto" msgid "Entitled to vote" msgstr "Avente diritto di voto" @@ -1938,12 +2146,13 @@ msgstr "" "manager solo per la lista degli oratori)" msgid "" -"Existing accounts can be reused by entering email (with given name and " -"surname) OR by entering the username in the csv file." +"Existing accounts can be reused or updated by using:
        • Membership " +"number (recommended)
        • Username
        • Email address AND first name AND " +"last name" msgstr "" - -msgid "Exit" -msgstr "Terminare" +"Gli account esistenti possono essere riutilizzati o aggiornati tramite: " +"Numero di iscrizione (consigliato) Nome utente, Indirizzo e-mail E nome E " +"cognome" msgid "Exit conference room" msgstr "Esci dalla stanza della conferenza" @@ -1982,16 +2191,19 @@ msgid "Extension" msgstr "Estensione" msgid "External ID" -msgstr "" +msgstr "ID esterno" + +msgid "Fallback" +msgstr "Fallback" msgid "Favorites" msgstr "Preferiti" msgid "File" -msgstr "" +msgstr "File" msgid "File is being used" -msgstr "" +msgstr "Il file è in uso" msgid "Filename" msgstr "Nome del file" @@ -2002,6 +2214,9 @@ msgstr "Files" msgid "Filter" msgstr "Filtro" +msgid "Filtered single votes" +msgstr "" + msgid "Final version" msgstr "Versione finale" @@ -2024,23 +2239,34 @@ msgid "Following users are currently editing this motion:" msgstr "I seguenti utenti stanno revisionando al momento la mozione:" msgid "Font bold" -msgstr "" +msgstr "Carattere in grassetto" msgid "Font bold italic" -msgstr "" +msgstr "Carattere grassetto corsivo" msgid "Font italic" -msgstr "" +msgstr "Carattere corsivo" msgid "Font monospace" -msgstr "" +msgstr "Caratteri a spaziatura singola" msgid "Font regular" -msgstr "" +msgstr "Font regolare" msgid "Font size in pt" msgstr "Dimensione del carattere in pt" +msgid "" +"For activation:
          \n" +" 1. Assign group permission (define the group that can support motions)
          \n" +" 2. Adjust workflow (define state in which motions can be supported)
          \n" +" 3. Enter minimum number (see next field)" +msgstr "" +"Per l'attivazione: 1. Assegnare l'autorizzazione al gruppo (definire il " +"gruppo che può supportare le mozioni) 2. Adattare il flusso di lavoro " +"(definire lo stato in cui i movimenti possono essere supportati) 3. Inserire" +" il numero minimo (vedere il campo successivo)" + msgid "" "For large instances this may block the server to the point of unusability" msgstr "" @@ -2053,6 +2279,9 @@ msgstr "Colore in primo piano" msgid "Forgot Password?" msgstr "Dimenticato password?" +msgid "Formalities" +msgstr "Formalità" + msgid "Format" msgstr "Format" @@ -2063,16 +2292,16 @@ msgid "Forward" msgstr "Inoltrare" msgid "Forward motions" -msgstr "Inoltrare mozioni" +msgstr "" msgid "Forward motions to" msgstr "Inoltrare mozioni a" msgid "Forwarded motion deleted" -msgstr "" +msgstr "Mozione presentata e cancellata" msgid "Forwarded to {}" -msgstr "" +msgstr "Inoltrato a {}" msgid "Forwarding" msgstr "Inoltro" @@ -2093,7 +2322,7 @@ msgid "Fullscreen" msgstr "Schermo intero" msgid "Game draw!" -msgstr "" +msgstr "Pareggio di partita!" msgid "Gender" msgstr "Genere" @@ -2126,16 +2355,16 @@ msgid "Given name" msgstr "Nome assegnato" msgid "Global headbar color" -msgstr "" +msgstr "Colore della intestazione" msgid "Go to line" msgstr "Vai alla riga" msgid "Got an email" -msgstr "Ricevi una e-mail" +msgstr "" msgid "Group" -msgstr "" +msgstr "Gruppo" msgid "Group name" msgstr "Nome gruppo" @@ -2152,10 +2381,10 @@ msgid "Groups" msgstr "Gruppi" msgid "Groups changed in meeting {}" -msgstr "" +msgstr "Gruppi modificati in riunione {}" msgid "Groups changed in multiple meetings" -msgstr "" +msgstr "Gruppi modificati in più incontri" msgid "Groups with read permissions" msgstr "Gruppi con diritto di leggere" @@ -2167,28 +2396,43 @@ msgid "Guest" msgstr "Ospiti" msgid "Has SSO identification" +msgstr "Ha SSO identificazione" + +msgid "Has a membership number" msgstr "" msgid "Has amendments" msgstr "Ha richieste di modifica mozione" msgid "Has an email address" -msgstr "Ha un indirizzo e-mail" +msgstr "" msgid "Has changed vote weight" -msgstr "Ha cambiato peso di voto" +msgstr "" + +msgid "Has email" +msgstr "Ha email" msgid "Has forwardings" msgstr "Dispone di inoltri" +msgid "Has identical motions" +msgstr "Ha mozioni identiche" + msgid "Has logged in" msgstr "" msgid "Has no SSO identification" -msgstr "" +msgstr "Non ha identificazione SSO" msgid "Has no email address" -msgstr "Non ha un indirizzo e-mail" +msgstr "" + +msgid "Has no identical motions" +msgstr "Non ha mozioni identiche" + +msgid "Has no membership number" +msgstr "" msgid "Has no speakers" msgstr "Nessuna richiesta di parola" @@ -2196,49 +2440,40 @@ msgstr "Nessuna richiesta di parola" msgid "Has not logged in yet" msgstr "" -msgid "Has not voted" +msgid "Has not spoken" msgstr "" +msgid "Has not voted" +msgstr "Non ha votato" + msgid "Has notes" msgstr "Ha annotazioni" msgid "Has speakers" msgstr "Presenti richieste di parola" +msgid "Has spoken" +msgstr "" + msgid "Has unchanged vote weight" -msgstr "Peso di voto invariato" +msgstr "" msgid "Has voted" -msgstr "" +msgstr "Ha votato" msgid "Header" msgstr "Intestazione" -msgid "Header 1" -msgstr "" - -msgid "Header 2" -msgstr "" - -msgid "Header 3" -msgstr "" - -msgid "Header 4" -msgstr "" - -msgid "Header 5" -msgstr "" - -msgid "Header 6" -msgstr "" - msgid "Header background color" -msgstr "Colore sfondo altezza testa" +msgstr "Colore intestazione" msgid "Header font color" -msgstr "Coloro scrittura altezza testa" +msgstr "Colore scrittura intestazione" + +msgid "Heading" +msgstr "" -msgid "Headers" +msgid "Headings" msgstr "" msgid "Headline color" @@ -2253,12 +2488,18 @@ msgstr "Testo di aiuto per i dati di accesso e PDF di benvenuto" msgid "Hidden item" msgstr "Voce nascosta" +msgid "Hide" +msgstr "Nascondi" + msgid "Hide main menu" -msgstr "" +msgstr "Nascondi il menù principale" msgid "Hide more text" msgstr "Dimostrare meno" +msgid "Hide note on number of multiple contributions" +msgstr "Nascondi nota sul numero di contributi multipli" + msgid "Hide password" msgstr "Nascondere password" @@ -2284,12 +2525,20 @@ msgid "" "IMPORTANT: The sender address (noreply@openslides.com) is defined in the OpenSlides server settings and cannot be changed here.\n" " To receive replies you have to enter a reply address in the next field. Please test the email dispatch in case of changes!" msgstr "" +"IMPORTANTE: L'indirizzo del mittente (noreply@openslides.com) è definito " +"nelle impostazioni del server OpenSlides e non può essere modificato qui. " +"Per ricevere le risposte è necessario inserire un indirizzo di risposta nel " +"campo successivo. Si prega di testare l'invio di e-mail in caso di " +"modifiche!" + +msgid "Identical motions" +msgstr "Mozioni identiche" msgid "Identical with" -msgstr "" +msgstr "Identico a " msgid "Identifier" -msgstr "" +msgstr "Identificatore" msgid "If deactivated it is displayed below the title" msgstr "Se è disattivata, viene visualizzata sotto il titolo." @@ -2303,6 +2552,10 @@ msgstr "" msgid "If the value is set to 0 the time counts up as stopwatch." msgstr "" +"Se il valore è impostato su 0, il tempo viene conteggiato come cronometro." + +msgid "Image description" +msgstr "" msgid "Import" msgstr "Importa" @@ -2325,14 +2578,11 @@ msgstr "Importare mozioni" msgid "Import participants" msgstr "Importare partecipanti" -msgid "Import statute" -msgstr "Importare statuto" - msgid "Import successful" -msgstr "" +msgstr "Importazione riuscita" msgid "Import successful with some warnings" -msgstr "" +msgstr "Importazione riuscita con alcuni avvertimenti" msgid "Import topics" msgstr "Importare temi" @@ -2344,7 +2594,7 @@ msgid "In motion list, motion detail and PDF." msgstr "Nella lista di mozioni, dettaglio mozione e PDF." msgid "In progress, please wait ..." -msgstr "" +msgstr "In corso, attendere prego ..." msgid "In the election process" msgstr "Nel processo d'elezione" @@ -2362,7 +2612,7 @@ msgid "Initial password" msgstr "Password iniziale" msgid "Inline" -msgstr "" +msgstr "Formati dei caratteri" msgid "Insert after" msgstr "Inserire dopo" @@ -2376,29 +2626,38 @@ msgstr "Inserire dietro" msgid "Insert topics here" msgstr "Inserire temi qui" -msgid "Insertion" -msgstr "Inserzione" +msgid "Insert/Edit Link" +msgstr "" -msgid "Insufficient material! It's a draw!" +msgid "Insert/edit image" msgstr "" +msgid "Insert/edit link" +msgstr "" + +msgid "Insertion" +msgstr "Inserzione" + +msgid "Insufficient material! It's a draw!" +msgstr "Materiale insufficiente! E' un pareggio!" + msgid "Internal" msgstr "Interno" msgid "Internal item" -msgstr "Contributo interno" +msgstr "Voce interna" msgid "Internal login" -msgstr "" +msgstr "Login interno" msgid "Interposed question" -msgstr "" +msgstr "Domanda interposta" msgid "Intervention" -msgstr "" +msgstr "Intervento" msgid "Intervention speaking time in seconds" -msgstr "" +msgstr "Tempo di parola dell'intervento in secondi" msgid "Invalid line number" msgstr "Numero di riga invalido" @@ -2410,13 +2669,13 @@ msgid "Invite to conference room" msgstr "Invitare nell'aula della conferenza" msgid "Is a committee" -msgstr "E' un comitato" +msgstr "" msgid "Is a natural person" msgstr "E' una persona naturale" msgid "Is a template" -msgstr "" +msgstr "E' un modello" msgid "Is active" msgstr "E' attivo" @@ -2427,6 +2686,9 @@ msgid "" "Note:\n" "Optional combination of requests to speak with presence status is possible. ( > [Settings] > [List of speakers] > [General] )" msgstr "" +"Può aggiungersi all'elenco degli oratori. Nota: È possibile combinare le " +"richieste di intervento con lo stato di presenza. ( > [Impostazioni] > " +"[Elenco degli interlocutori] > [Generale] )" msgid "Is already projected" msgstr "E' già proiettato" @@ -2435,16 +2697,16 @@ msgid "Is amendment" msgstr "E' una richiesta di modifica mozione" msgid "Is archived" -msgstr "" +msgstr "E' archiviato" msgid "Is being projected" -msgstr "" +msgstr "Viene proiettato" msgid "Is candidate" msgstr "E' un candidato / una candidata" msgid "Is committee admin" -msgstr "È amministratore del comitato" +msgstr "" msgid "Is favorite" msgstr "E' il preferito" @@ -2465,16 +2727,16 @@ msgid "Is no natural person" msgstr "Non è una persona naturale" msgid "Is not a committee" -msgstr "Non è un comitato" +msgstr "" msgid "Is not a template" -msgstr "" +msgstr "Non è un modello" msgid "Is not active" -msgstr "Non è attivo" +msgstr "" msgid "Is not archived" -msgstr "" +msgstr "Non è archiviato" msgid "Is not favorite" msgstr "Non è il preferito" @@ -2504,25 +2766,25 @@ msgstr "" "degli oratori o per i sondaggi." msgid "It's a draw!" -msgstr "" +msgstr "E' un pareggio!" msgid "It's your opponent's turn" -msgstr "" +msgstr "È il turno dell'avversario" msgid "It's your turn!" -msgstr "" +msgstr "E' il tuo turno" msgid "Italic" -msgstr "" +msgstr "Corsivo" msgid "Item" -msgstr "" +msgstr "Voce inserita" msgid "Item number" msgstr "Numero dell'ordine del giorno" msgid "Items" -msgstr "" +msgstr "Voci inserite" msgid "Jitsi domain" msgstr "Dominio Jitsi" @@ -2533,6 +2795,9 @@ msgstr "Nome dell'aula Jitsi" msgid "Jitsi room password" msgstr "Password dell'aula Jitsi" +msgid "Justify" +msgstr "" + msgid "Keep each item in a single line." msgstr "Utilizzare per ogni contributo una riga" @@ -2540,13 +2805,13 @@ msgid "Label color" msgstr "Colore etichetta " msgid "Language" -msgstr "" +msgstr "Lingua" msgid "Last email sent" msgstr "Ulitma e-mail inviata" msgid "Last login" -msgstr "" +msgstr "Ultimo login" msgid "Last modified" msgstr "Ultima modifica" @@ -2558,10 +2823,10 @@ msgid "Leave" msgstr "Lasciare" msgid "Leave blank to automatically generate the password." -msgstr "" +msgstr "Lasciare vuoto per generare automaticamente la password." msgid "Leave blank to automatically generate the username." -msgstr "" +msgstr "Lasciare vuoto per generare automaticamente la password." msgid "Left" msgstr "Sinistra" @@ -2597,7 +2862,7 @@ msgid "Line spacing" msgstr "Interlinea" msgid "List of amendments: " -msgstr "" +msgstr "Elenco delle modifiche" msgid "List of electronic votes" msgstr "Votazioni elettroniche" @@ -2611,6 +2876,9 @@ msgstr "Lista dei partecipanti (PDF)" msgid "List of speakers" msgstr "Liste dei relatori" +msgid "List of speakers as overlay" +msgstr "Elenco dei relatori in sovrimpressione" + msgid "List of speakers is initially closed" msgstr "Lista dei relatori è inizialmente chiusa" @@ -2618,7 +2886,7 @@ msgid "List view" msgstr "Vista liste" msgid "Lists of speakers" -msgstr "" +msgstr "Elenco degli oratori" msgid "Live conference" msgstr "Conferenza dal vivo." @@ -2629,6 +2897,9 @@ msgstr "Livestream" msgid "Livestream URL" msgstr "Livestream URL" +msgid "Livestream poster image" +msgstr "" + msgid "Livestream poster image url" msgstr "Livestream immagine poster URL" @@ -2636,7 +2907,7 @@ msgid "Loading data. Please wait ..." msgstr "Dati vengono caricati. Attendere prego ..." msgid "Logged-in users" -msgstr "" +msgstr "Utenti registrati" msgid "Login" msgstr "Login" @@ -2648,7 +2919,7 @@ msgid "Login as guest" msgstr "Login come ospite" msgid "Login button text" -msgstr "" +msgstr "Testo del pulsante di accesso" msgid "Logout" msgstr "Logout" @@ -2657,10 +2928,10 @@ msgid "Lowest applause amount" msgstr "Valore minimo dell'applauso" msgid "Main motion and line number" -msgstr "" +msgstr "Mozione principale e numero di riga" msgid "Mandates switched sucessfully!" -msgstr "" +msgstr "Autorizzazioni scambiate con successo!" msgid "Mark as personal favorite" msgstr "Evidenziare come preferito personale" @@ -2672,7 +2943,7 @@ msgid "Maximum amount of votes per option" msgstr "Numero massimo di voti per opzione" msgid "Maximum number of columns on motion block slide" -msgstr "" +msgstr "Numero massimo di colonne sulla slide del blocco di mozione" msgid "Media access is denied" msgstr "Accesso media negato" @@ -2687,14 +2958,17 @@ msgid "Meeting administrator" msgstr "Amministratore della riunione" msgid "Meeting date" -msgstr "" +msgstr "Data della riunione" msgid "Meeting information" msgstr "Informazioni della riunione" -msgid "Meeting not found" +msgid "Meeting is closed" msgstr "" +msgid "Meeting not found" +msgstr "Riunione non trovata" + msgid "Meeting specific information" msgstr "Informazioni specifiche sulla riunione" @@ -2709,14 +2983,26 @@ msgstr "" " da tutti gli amministratori delle commissioni." msgid "Meeting title" -msgstr "" +msgstr "Nome della riunione" msgid "Meetings" msgstr "Riunioni" +msgid "Meetings affected:" +msgstr "" + msgid "Meetings selected" msgstr "Riunioni selezionate" +msgid "Membership number" +msgstr "Numero d'iscrizione" + +msgid "Merge" +msgstr "" + +msgid "Merge accounts" +msgstr "" + msgid "Message" msgstr "Messaggio" @@ -2727,10 +3013,10 @@ msgid "Meta information" msgstr "Informazione meta" msgid "Metadata of Identity Provider (IdP)" -msgstr "" +msgstr "Metadati del fornitore di identità (IdP)" msgid "Metadata of Service Provider (SP)" -msgstr "" +msgstr "Metadati del fornitore di servizi (SP)" msgid "Min votes cannot be greater than max votes." msgstr "" @@ -2746,16 +3032,19 @@ msgid "Minimum amount of votes" msgstr "Numero minimo di voti" msgid "Minimum number of digits for motion identifier" -msgstr "" +msgstr "Numero minimo di cifre per l'identificativo della mozione" msgid "Moderation note" -msgstr "" +msgstr "Nota di moderazione" + +msgid "Modern" +msgstr "Moderno" msgid "Modify design" -msgstr "" +msgstr "Modificare il design" msgid "Module" -msgstr "" +msgstr "Modulo" msgid "More" msgstr "Più" @@ -2791,16 +3080,16 @@ msgid "Motion created" msgstr "Mozione creata" msgid "Motion created (forwarded)" -msgstr "" +msgstr "Mozione creata (inoltrata)" msgid "Motion deleted" msgstr "Mozione cancellata" msgid "Motion editor" -msgstr "" +msgstr "Redattore della mozione" msgid "Motion editors" -msgstr "" +msgstr "Redattori della mozione" msgid "Motion forwarded to" msgstr "Mozione inoltrata a" @@ -2809,7 +3098,7 @@ msgid "Motion forwarding" msgstr "Inoltro di mozione" msgid "Motion identifier" -msgstr "" +msgstr "Identificativo di mozione" msgid "Motion preamble" msgstr "Preambolo mozione" @@ -2823,6 +3112,9 @@ msgstr "Voti mozione" msgid "Motions" msgstr "Mozioni" +msgid "Motions (PDF settings)" +msgstr "Mozioni (impostazioni PDF)" + msgid "Motions are in process. Please wait ..." msgstr "Mozioni in elaborazione. Attendere prego...." @@ -2851,7 +3143,7 @@ msgid "Multiselect" msgstr "Selezione multipla" msgid "Must be unique" -msgstr "" +msgstr "Deve essere unico" msgid "My account" msgstr "Il mio account" @@ -2868,15 +3160,30 @@ msgstr "Nome" msgid "Name of recommender" msgstr "Nome del raccomandatore" -msgid "Name of recommender for statute amendments" -msgstr "Nome raccomandatore per mozioni di modifica statuto" - msgid "Name of the new category" msgstr "Nome della nuova categoria" msgid "Natural person" msgstr "Persona naturale" +msgid "Navigate to account page from " +msgstr "" + +msgid "Navigate to committee detail view from " +msgstr "" + +msgid "Navigate to meeting " +msgstr "" + +msgid "Navigate to motion" +msgstr "" + +msgid "Navigate to participant page from " +msgstr "" + +msgid "Navigate to the folder" +msgstr "" + msgid "Negative votes are not allowed." msgstr "Non sono ammessi voti negativi" @@ -2899,7 +3206,7 @@ msgid "New change recommendation" msgstr "Nuova raccomandazione di modifica" msgid "New chat group" -msgstr "" +msgstr "Nuovo gruppo chat" msgid "New comment field" msgstr "Nuovo campo di commento" @@ -2908,7 +3215,7 @@ msgid "New committee" msgstr "Nuovo comitato" msgid "New design" -msgstr "" +msgstr "Nuovo design" msgid "New directory" msgstr "Nuovo elenco" @@ -2917,16 +3224,16 @@ msgid "New election" msgstr "Nuova elezione" msgid "New file" -msgstr "" +msgstr "Nuovo file" msgid "New file name" msgstr "Nuovo nome file" msgid "New folder" -msgstr "" +msgstr "Nuova cartella" msgid "New group" -msgstr "" +msgstr "Nuovo gruppo" msgid "New meeting" msgstr "Nuova mozione" @@ -2947,14 +3254,11 @@ msgid "New password" msgstr "Nuova password" msgid "New projector" -msgstr "" +msgstr "Nuovo proiettore" msgid "New state" msgstr "Nuovo stato" -msgid "New statute paragraph" -msgstr "Nuovo paragrafo statuto" - msgid "New tag" msgstr "Nuova etichetta" @@ -2964,6 +3268,9 @@ msgstr "Nuovo tema" msgid "New vote" msgstr "Nuovo voto" +msgid "New window" +msgstr "" + msgid "New workflow" msgstr "Nuova lavorazione" @@ -2977,14 +3284,11 @@ msgid "No" msgstr "No" msgid "No admin role" -msgstr "Nessun ruolo di amministratore" +msgstr "" msgid "No category" msgstr "Nessuna categoria" -msgid "No category set" -msgstr "Nessuna categoria impostata" - msgid "No change recommendations yet" msgstr "Finora nessuna raccomandazione di modifica" @@ -2998,16 +3302,16 @@ msgid "No comment" msgstr "Nessun commento" msgid "No committee admin" -msgstr "Nessun amministratore di comitato" +msgstr "" msgid "No data" msgstr "Nessun dato" msgid "No delegation of vote" -msgstr "Nessuna delega del diritto di voto" +msgstr "Nessuna delega di voto" msgid "No emails were send." -msgstr "" +msgstr "Nessuna email inviata" msgid "No encryption" msgstr "Nessun criptaggio" @@ -3033,12 +3337,6 @@ msgstr "Nessuna riunione disponibile" msgid "No meetings have been selected." msgstr "Non è stata selezionata alcuna riunione" -msgid "No motion block set" -msgstr "Nessuna sezione di mozione assegnato" - -msgid "No motion editors" -msgstr "" - msgid "No one has voted for this poll" msgstr "Nessuno ha votato per questo sondaggio" @@ -3051,27 +3349,15 @@ msgstr "No per candidato" msgid "No personal note" msgstr "Nessuna annotazione personale" -msgid "No recommendation" -msgstr "Nessuna raccomandazione" - msgid "No results found" -msgstr "" +msgstr "Nessun risultato trovato" msgid "No results yet." msgstr "Finora nessun risultato" -msgid "No spokesperson" -msgstr "" - -msgid "No statute paragraphs" -msgstr "Nessun paragrafo di statuto" - msgid "No structure level" msgstr "" -msgid "No tags" -msgstr "No etichette" - msgid "No verbose name is defined" msgstr "Non è definito un nome dettagliato" @@ -3079,13 +3365,16 @@ msgid "No." msgstr "N." msgid "Nomination list" -msgstr "" +msgstr "Elenco delle candidature" msgid "None" msgstr "Nessuno" msgid "None of the selected motions can be forwarded." -msgstr "" +msgstr "Nessuna delle mozioni selezionate può essere inoltrata." + +msgid "Normal (http/2)" +msgstr "Normale (http/2)" msgid "Not found" msgstr "Non trovato" @@ -3135,7 +3424,7 @@ msgid "Number of last speakers to be shown on the projector" msgstr "Numero degli ultimi oratori da visualizzare sul proiettore" msgid "Number of motions" -msgstr "" +msgstr "Numero di mozioni" msgid "" "Number of next speakers automatically connecting to the live conference" @@ -3144,7 +3433,7 @@ msgstr "" "alla conferenza in diretta" msgid "Number of participants" -msgstr "" +msgstr "Numero di partecipanti" msgid "Number of persons to be elected" msgstr "Numero delle persone da eleggere" @@ -3158,12 +3447,18 @@ msgstr "Numero dei prossimi relatori da dimostrare con il proiettore" msgid "Number set" msgstr "Numero assegnato" +msgid "Numbered list" +msgstr "" + msgid "Numbered per category" msgstr "Numerare per categoria" msgid "Numbering" msgstr "Numerazione" +msgid "Numbering and sorting" +msgstr "Numerazione e classificazione" + msgid "Numbering prefix for agenda items" msgstr "Numerazione prefisso per contributi dell'ordine del giorno" @@ -3173,20 +3468,35 @@ msgstr "Sistema di numerazione per contributi dell'ordine del giorno" msgid "OK" msgstr "Ok" +msgid "OR" +msgstr "" + +msgid "Off" +msgstr "spento" + msgid "Offline mode" msgstr "Modus offline" msgid "Ok" msgstr "Ok" +msgid "Old account of" +msgstr "" + msgid "Old password" msgstr "Vecchia password" +msgid "On" +msgstr "Acceso" + msgid "One email was send sucessfully." -msgstr "" +msgstr "Una email è stata inviata con successo" msgid "Only for internal notes." -msgstr "Solo per annotazioni interni." +msgstr "Solo per annotazioni interne." + +msgid "Only groups and participant number are switched." +msgstr "mozione originale cancellata" msgid "Only main agenda items" msgstr "Solo contributi principali dell'ordine del giorno" @@ -3196,7 +3506,7 @@ msgstr "" "Solo partecipanti presenti possono essere aggiunti alla lista dei relatori" msgid "Only time" -msgstr "" +msgstr "Solo tempo" msgid "Only traffic light" msgstr "Solo semaforo" @@ -3205,13 +3515,16 @@ msgid "Open Jitsi in new tab" msgstr "Aprire Jitsi in un nuovo tab" msgid "Open a meeting to play \"Connect 4\"" -msgstr "" +msgstr "Aprire una riunione per giocare a \"Connect 4\"" msgid "Open a meeting to play chess" -msgstr "" +msgstr "Apri una riunione per giocare a scacchi" msgid "Open items" -msgstr "Aprire contributi" +msgstr "" + +msgid "Open link in ..." +msgstr "" msgid "Open list of speakers" msgstr "Aprire la lista dei relatori" @@ -3234,11 +3547,23 @@ msgstr "Data d'accesso OpenSlide " msgid "OpenSlides help (FAQ)" msgstr "OpenSlides help (FAQ)" +msgid "" +"OpenSlides offers various speaking list customizations for use in " +"parliament. These include the configuration of speaking time quotas for " +"parliamentary groups (e.g. fractions, coalitions) as well as extended types " +"of speeches such as short interventions and (parliamentary) interposed " +"questions." +msgstr "" +"OpenSlides offre diverse personalizzazioni delle liste di intervento per " +"l'uso in parlamento. Queste includono la configurazione di quote di tempo di" +" parola per i gruppi parlamentari (ad esempio, frazioni, coalizioni) e tipi " +"di discorsi estesi, come brevi interventi e interrogazioni (parlamentari)." + msgid "OpenSlides recommends" msgstr "OpenSlides raccomanda" msgid "Option" -msgstr "" +msgstr "Opzione" msgid "Options" msgstr "Opzioni" @@ -3247,25 +3572,25 @@ msgid "Organization" msgstr "Organizzazione" msgid "Organization Management Level changed" -msgstr "" +msgstr "Livello di Gestione dell'Organizzazione modificato" msgid "Organization admin" -msgstr "Amministratore dell'organizzazione" +msgstr "" msgid "Organization language" -msgstr "" +msgstr "Lingua dell'organizzazione" msgid "Organization specific information" msgstr "Informazioni specifiche sull'organizzazione" msgid "Organizations" -msgstr "" +msgstr "Organizzazioni" msgid "Origin" msgstr "Origine" msgid "Origin motion deleted" -msgstr "" +msgstr "Mozione originale cancellata" msgid "Original" msgstr "Originale" @@ -3274,26 +3599,17 @@ msgid "Original version" msgstr "Versione originale" msgid "Out of sync" -msgstr "" +msgstr "Non sincronizzato" msgid "Outside" msgstr "Fuori" -msgid "Overlay" -msgstr "Copertura" - msgid "PDF" msgstr "PDF" msgid "PDF ballot paper logo" msgstr "PDF logo scheda elettorale " -msgid "PDF export" -msgstr "PDF export" - -msgid "PDF export options" -msgstr "Opzioni di esportazione PDF" - msgid "PDF footer logo (left)" msgstr "PDF logo piè di pagina (sinistra)" @@ -3334,7 +3650,7 @@ msgid "Page numbers" msgstr "Numeri pagine" msgid "Paragraph" -msgstr "" +msgstr "Paragrafo" msgid "Paragraph-based, Diff-enabled" msgstr "Basato sul paragrafo con visualizzazione modifiche" @@ -3345,51 +3661,57 @@ msgstr "Caricare in parallelo" msgid "Parent agenda item" msgstr "Contributo madre nell'ordine del giorno" +msgid "Parliament options" +msgstr "Opzione parlamento" + msgid "Participant" msgstr "Partecipante" msgid "Participant added to group {} in meeting {}" -msgstr "" +msgstr "Partecipante aggiunto al gruppo {} nella riunione {}" msgid "Participant added to multiple groups in meeting {}" -msgstr "" +msgstr "Partecipante aggiunto a più gruppi nella riunione {}" msgid "Participant added to multiple groups in multiple meetings" -msgstr "" +msgstr "Partecipante aggiunto a più gruppi in più riunioni" msgid "Participant created" -msgstr "" +msgstr "Creato partecipante" msgid "Participant created in meeting {}" -msgstr "" +msgstr "Partecipante creato nella riunione {}" msgid "Participant data updated in meeting {}" -msgstr "" +msgstr "Dati dei partecipanti aggiornati nella riunione {}" msgid "Participant data updated in multiple meetings" -msgstr "" +msgstr "Dati dei partecipanti aggiornati in più incontri" msgid "Participant deleted" -msgstr "" +msgstr "Partecipante cancellato" msgid "Participant deleted in meeting {}" -msgstr "" +msgstr "Partecipante cancellato dalla riunione {}" msgid "Participant number" msgstr "Numero partecipante" msgid "Participant removed from group {} in meeting {}" -msgstr "" +msgstr "Partecipante rimosso dal gruppo {} nella riunione {}" msgid "Participant removed from multiple groups in meeting {}" -msgstr "" +msgstr "Partecipante rimosso da più gruppi nella riunione {}" msgid "Participant removed from multiple groups in multiple meetings" -msgstr "" +msgstr "Partecipante rimosso da più gruppi in più riunioni" msgid "Participants" msgstr "Partecipanti" +msgid "Participants (PDF settings)" +msgstr "Partecipanti (impostazioni PDF)" + msgid "" "Participants and administrators are copied completely and cannot be edited " "here." @@ -3398,19 +3720,19 @@ msgstr "" " essere modificati qui." msgid "Participants created" -msgstr "" +msgstr "Partecipanti creati" msgid "Participants skipped" -msgstr "" +msgstr "Partecipanti saltati" msgid "Participants updated" -msgstr "" +msgstr "Partecipanti aggiornati" msgid "Participants with errors" -msgstr "" +msgstr "Partecipanti con errori" msgid "Participants with warnings: affected cells will be skipped" -msgstr "" +msgstr "Partecipanti con avvertenze: le celle interessate verranno saltate" msgid "Particles" msgstr "Particelle" @@ -3419,7 +3741,7 @@ msgid "Password" msgstr "Password" msgid "Password changed" -msgstr "" +msgstr "La password è cambiata" msgid "Password changed successfully!" msgstr "Password cambiata con successo!" @@ -3431,13 +3753,13 @@ msgid "Paste/write your topics in this textbox." msgstr "Copiare / scrivere i propri temi nel campo di testo." msgid "Pause speech" -msgstr "" +msgstr "Pausa di discorso" msgid "Permissions" msgstr "Permessi" msgid "Personal data changed" -msgstr "" +msgstr "I dati personali sono cambiati" msgid "Personal information" msgstr "Informazioni personali" @@ -3452,7 +3774,7 @@ msgid "Phase" msgstr "Fase" msgid "Playing against" -msgstr "" +msgstr "Giocare contro" msgid "Please allow OpenSlides to access your microphone and/or camera" msgstr "" @@ -3474,11 +3796,14 @@ msgstr "Prego, da inserire la nuova password" msgid "Please join the conference room now!" msgstr "Prego entra nell'aula conferenza ora!" -msgid "Please select a vote weight greater than or equal to 0.000001" +msgid "Please select a primary account." msgstr "" +msgid "Please select a vote weight greater than or equal to 0.000001" +msgstr "Selezionare un peso di voto maggiore o uguale a 0,000001." + msgid "Please select a vote weight greater than zero." -msgstr "" +msgstr "Selezionare un peso di voto maggiore di 0." msgid "Please select the directory:" msgstr "Prego, da selezionare l'elenco: " @@ -3502,13 +3827,10 @@ msgid "Polls" msgstr "Sondaggio" msgid "Possible options" -msgstr "" +msgstr "Opzioni possibili" msgid "Possible points of order" -msgstr "" - -msgid "Pre" -msgstr "" +msgstr "Possibili mozioni d'ordine" msgid "Preamble text for PDF document (all elections)" msgstr "Testo d'introduzione per documenti PDF (tutte le elezioni)" @@ -3523,7 +3845,7 @@ msgid "Prefix" msgstr "Prefisso" msgid "Prefix for the motion identifier of amendments" -msgstr "" +msgstr "Prefisso per l'identificativo della mozione degli emendamenti" msgid "Presence" msgstr "Presenza" @@ -3541,7 +3863,10 @@ msgid "Previous slides" msgstr "Ultime slides" msgid "Primary color" -msgstr "" +msgstr "Colore primario" + +msgid "Principals" +msgstr "Mandanti" msgid "Privacy Policy" msgstr "Dichiarazione protezione dati" @@ -3550,43 +3875,40 @@ msgid "Privacy policy" msgstr "Dichiarazione protezione dati" msgid "Private key of Service Provider (SP)" -msgstr "" +msgstr "Chiave privata del fornitore di servizi (SP)" msgid "Process handling" -msgstr "" +msgstr "Gestione del processo" msgid "Project" msgstr "Proiettare" msgid "Project active structure level" -msgstr "" +msgstr "Livello di struttura attiva del progetto" msgid "Project all structure levels" -msgstr "" +msgstr "Progetto di tutti i livelli della struttura" msgid "Project selection?" msgstr "Proiettare selezione?" msgid "Projection" -msgstr "" +msgstr "Proiezione" msgid "Projection defaults" msgstr "Impostazione proiezione" msgid "Projections" -msgstr "" +msgstr "Proiezioni" msgid "Projector" msgstr "Proiettore" -msgid "Projector and countdown" -msgstr "Proiettore e conto alla rovescia" - msgid "Projector h1" -msgstr "" +msgstr "Proiettore h1" msgid "Projector h2" -msgstr "" +msgstr "Proiettore h2" msgid "Projector header image" msgstr "Intestazione grafica proiettore" @@ -3600,6 +3922,9 @@ msgstr "Proiettori" msgid "Pronoun" msgstr "Pronome" +msgid "Proxy holders" +msgstr "Delegati" + msgid "Public" msgstr "Publico" @@ -3609,6 +3934,9 @@ msgstr "Contributo publico" msgid "Public template" msgstr "Modello pubblico" +msgid "Public template required for creating new meeting" +msgstr "" + msgid "Publish" msgstr "Pubblicare" @@ -3622,13 +3950,13 @@ msgid "Queue" msgstr "Lista d'attesa" msgid "Rank" -msgstr "" +msgstr "Ordine" msgid "Re-add last speaker" msgstr "Ripristinare l'ultima lista dei relatori" msgid "Re-count logged-in users" -msgstr "" +msgstr "Riconteggio degli utenti connessi" msgid "Reason" msgstr "Motivazione" @@ -3637,10 +3965,10 @@ msgid "Reason required for creating new motion" msgstr "Motivazione necessaria per creazione nuovo mozione" msgid "Receipt of contributions" -msgstr "" +msgstr "Ricezione di contributi" msgid "Receive motions" -msgstr "Ricevere mozioni" +msgstr "" msgid "Receive motions from" msgstr "Ricevere mozioni da" @@ -3661,6 +3989,8 @@ msgid "" "Recommendation of motions in such a state can only be seen by motion " "managers." msgstr "" +"La raccomandazione di mozioni in questo stato può essere vista solo dai " +"gestori di mozione." msgid "Recommendation reset" msgstr "Ripristino raccomandazione" @@ -3668,6 +3998,9 @@ msgstr "Ripristino raccomandazione" msgid "Recommendation set to {}" msgstr "Raccomandazione impostata su {}" +msgid "Redo" +msgstr "" + msgid "Reenter to conference room" msgstr "Rientra nella stanza della conferenza" @@ -3684,10 +4017,10 @@ msgid "Rejected" msgstr "Respinto" msgid "Relevant information could not be accessed" -msgstr "" +msgstr "Impossibile accedere alle informazioni pertinenti" msgid "Reload page" -msgstr "" +msgstr "Ricarica pagina" msgid "Remove" msgstr "Cancellare" @@ -3700,10 +4033,10 @@ msgstr "" "gruppo extra per poter vedere il livestream." msgid "Remove all next speakers" -msgstr "" +msgstr "Rimuovi tutti i prossimi oratori" msgid "Remove all previous speakers" -msgstr "" +msgstr "Rimuovi tutti i precedenti oratori" msgid "Remove all speakers" msgstr "Cancellare tutti i realtori" @@ -3723,12 +4056,18 @@ msgstr "Cancellare dall'ordine del giorno" msgid "Remove from motion block" msgstr "Cancellare dal gruppo mozioni" +msgid "Remove link" +msgstr "" + msgid "Remove me" msgstr "Cancellarmi" msgid "Remove option" msgstr "Rimuovere opzione" +msgid "Remove point of order" +msgstr "Rimuovere mozione d'ordine" + msgid "Reopen" msgstr "Riaprire" @@ -3742,7 +4081,7 @@ msgid "Request" msgstr "Richiesta." msgid "Request \"WhoAmI\" failed" -msgstr "" +msgstr "Richiesta \"WhoAmI\" fallita" msgid "Requests to speak" msgstr "Richieste di parola" @@ -3761,7 +4100,7 @@ msgid "Required permissions to view this page:" msgstr "Permessi necessari per visualizzare questa pagina:" msgid "Requires permission to manage lists of speakers" -msgstr "" +msgstr "Richiede l'autorizzazione a gestire elenchi di relatori" msgid "Reset" msgstr "Resettare" @@ -3781,8 +4120,11 @@ msgstr "Raccomandazione resettare" msgid "Reset state" msgstr "Resettare stato" +msgid "Reset timer" +msgstr "Risetta il timer" + msgid "Reset to default settings" -msgstr "" +msgstr "Risetta le impostazioni di default" msgid "Resolution and size" msgstr "Risoluzione e grandezza" @@ -3790,20 +4132,35 @@ msgstr "Risoluzione e grandezza" msgid "Restart livestream" msgstr "Riavviare livestream" +msgid "" +"Restrict delegation principals from adding themselves to the list of " +"speakers" +msgstr "" +"Impedire ai capi delle delegazioni di aggiungersi all'elenco degli oratori." + +msgid "Restrict delegation principals from creating motions/amendments" +msgstr "Impedire ai capi delle delegazioni di creare mozioni/modifiche" + +msgid "Restrict delegation principals from supporting motions" +msgstr "Impedire ai capi delle delegazioni di supportare mozioni" + +msgid "Restrict delegation principals from voting" +msgstr "Impedire ai capi delegazione di votare" + msgid "Restrictions" msgstr "Restrizioni" msgid "Result" -msgstr "" +msgstr "Risultato" msgid "Results" msgstr "Risultati" msgid "Resume speech" -msgstr "" +msgstr "Riprendi il discorso" msgid "Retrieving vote status... Please wait!" -msgstr "" +msgstr "Recupero dello stato dei voti... Attendere prego!" msgid "Right" msgstr "Diritto" @@ -3812,21 +4169,21 @@ msgid "Roman" msgstr "Romano" msgid "Rows with warnings" -msgstr "" +msgstr "Righe con avvertimenti" msgid "SSO" msgstr "" msgid "SSO Identification" -msgstr "" +msgstr "Identificazione SSO" msgid "SSO identification" -msgstr "" +msgstr "Identificazione SSO" msgid "Same email" msgstr "" -msgid "Same first/last name" +msgid "Same given and surname" msgstr "" msgid "Save" @@ -3836,7 +4193,7 @@ msgid "Save all changes" msgstr "Salvare tutte le modifiche" msgid "Save editorial final version" -msgstr "" +msgstr "Salva version editoriale finale" msgid "Scan this QR code to open URL." msgstr "Scannerizzare questo codice QR per aprire URL." @@ -3863,7 +4220,7 @@ msgid "Searching for candidates" msgstr "A ricerca candidati" msgid "Searching for players ..." -msgstr "" +msgstr "Alla ricerca di giocatori" msgid "Secret voting can not be guaranteed" msgstr "Non possono essere assicurati voti segreti" @@ -3874,9 +4231,6 @@ msgstr "Seleziona" msgid "Select all" msgstr "Selezionare tutto" -msgid "Select exactly two participants to swap mandates" -msgstr "" - msgid "Select file" msgstr "Selezionare file" @@ -3887,10 +4241,10 @@ msgid "Select paragraphs" msgstr "Selezionare paragrafi" msgid "Select participant" -msgstr "" +msgstr "Seleziona partecipanti" msgid "Select speaker" -msgstr "" +msgstr "Seleziona speaker" msgid "Send" msgstr "Inviare" @@ -3918,86 +4272,86 @@ msgstr "" "Impostazione server necessario per attivare integrazione di Jitsi Meet." msgid "Set active" -msgstr "" +msgstr "Impostare attivo" msgid "Set as favorite" -msgstr "Selezionare come favorito" +msgstr "Impostare come favorito" msgid "Set as not favorite" -msgstr "Selezionare come non favorito" +msgstr "Impostare come non favorito" msgid "Set as parent" -msgstr "Selezionare come parente" +msgstr "Impostare come parente" msgid "Set as reference projector" -msgstr "Selezionare come proiettore di riferimento" +msgstr "Impostare come proiettore di riferimento" msgid "Set category" -msgstr "Selezionare categoria" +msgstr "Impostare categoria" msgid "Set favorite" -msgstr "Selezionare favorito" +msgstr "Impostare favorito" msgid "Set forward" msgstr "Impostare l'inoltro" msgid "Set hidden" -msgstr "Selezionare nascosto" +msgstr "Impostare nascosto" msgid "Set identifier" -msgstr "" +msgstr "Impostare l'identificatore" msgid "Set inactive" -msgstr "" +msgstr "Impostare inattivo" msgid "Set internal" -msgstr "Selezionare interno" +msgstr "Impostare interno" msgid "Set it manually" -msgstr "Selezionare manuale" +msgstr "Impostazione manuale" msgid "Set motion block" -msgstr "Selezionare sezione di mozione" +msgstr "Impostare il blocco di mozioni" msgid "Set natural person ..." msgstr "Impostare persona naturale" msgid "Set not present in meeting {}" -msgstr "" +msgstr "Impostare non presente al meeting {}" msgid "Set or remove motion forwarding from the selected committees to:" msgstr "" "Impostare o rimuovere l'inoltro della mozione dai comitati selezionati:" msgid "Set presence ..." -msgstr "Selezionare presenza ..." +msgstr "Impostare presenza ..." msgid "Set present in meeting {}" -msgstr "" +msgstr "Impostare presente al meeting {}" msgid "Set public" -msgstr "Selezionare publico ..." +msgstr "Impostare publico ..." msgid "Set recommendation" -msgstr "Selezionare raccomandazione" +msgstr "Impostare raccomandazione" msgid "Set status" -msgstr "Selezionare status" +msgstr "Impostare lo stato" msgid "Set status for selected accounts" msgstr "Impostare lo stato per i conti selezionati" msgid "Set status for selected participants:" -msgstr "Selezionare status per partecipanti selezionati:" +msgstr "Imposta status per partecipanti selezionati:" msgid "Set submission timestamp" -msgstr "" +msgstr "Imposta data e ora dell' invio" msgid "Set submitters" -msgstr "" +msgstr "Impostare il presentatore/la presentatrice di mozione" msgid "Set tags" -msgstr "" +msgstr "Imposta tags" msgid "Set workflow" msgstr "Imposta il flusso di lavoro" @@ -4013,6 +4367,9 @@ msgstr "" msgid "Settings" msgstr "Impostazioni" +msgid "Short form for amendments" +msgstr "Modulo breve per le modifiche" + msgid "Show all" msgstr "Visualizzare tutto" @@ -4073,7 +4430,7 @@ msgid "Show logo" msgstr "Visualizzare logo" msgid "Show main menu" -msgstr "" +msgstr "Mostra il menù principale" msgid "Show meta information box beside the title on projector" msgstr "" @@ -4102,14 +4459,11 @@ msgstr "Visualizzare campo extra per raccomandazioni" msgid "Show recommendation on projector" msgstr "Mostra la raccomandazione sul proiettore" -msgid "Show recommendations not public" -msgstr "" - msgid "Show referring motions" msgstr "Mostra le mozioni di riferimento" msgid "Show report" -msgstr "" +msgstr "Mostra report" msgid "Show state extension field" msgstr "Visualizzare status campo extra" @@ -4133,6 +4487,10 @@ msgstr "Visualizzare questo testo nella pagina login" msgid "Show title" msgstr "Visualizzare titolo" +msgid "Show topic navigation in detail view" +msgstr "" +"Mostra la navigazione degli argomenti nella modalità vista dettagliata" + msgid "" "Shows a button with help icon to connect to an extra Jitsi conference room " "for technical audio/video tests." @@ -4155,21 +4513,20 @@ msgstr "" "image format: 24x24Px, PNG, JPG or SVG" msgid "Single Sign-On settings" -msgstr "" +msgstr "Impostazioni di Single Sign-On" msgid "Single votes" msgstr "Voto singolo" -msgid "Slide" -msgstr "Diapositiva" - msgid "Some csv values could not be read correctly." -msgstr "" +msgstr "Non si è potuto leggere correttamente alcuni valori csv." msgid "" "Some mails could not be sent. There may be a problem communicating with the " "mail server, please contact your admin." msgstr "" +"Non è stato possibile inviare alcune e-mail. Potrebbe esserci un problema di" +" comunicazione con il server di posta, prego contattare l'amministratore." msgid "Sort" msgstr "Ordinare" @@ -4178,7 +4535,7 @@ msgid "Sort agenda" msgstr "Ordinare ordine del giorno" msgid "Sort by identifier" -msgstr "" +msgstr "Ordina per identificatore" msgid "Sort categories" msgstr "Ordinare secondo categorie" @@ -4198,38 +4555,51 @@ msgstr "Ordinare mozioni secondo" msgid "Sort workflow" msgstr "Selezionario per flusso di lavoro" -msgid "Speaker" +msgid "Source" +msgstr "" + +msgid "Source code" msgstr "" +msgid "Speaker" +msgstr "Relatore" + msgid "Speakers" -msgstr "Oratori" +msgstr "Relatori" + +msgid "Speaking time – current contribution" +msgstr "Durata dell'intervento - contributo attuale" msgid "Speaking times" -msgstr "" +msgstr "Durata degli interventi " + +msgid "Speaking times – overview structure levels" +msgstr "Durata degli interventi - Panoramica livelli di struttura" msgid "Speech start time" -msgstr "" +msgstr "Orario di inizio del discorso" msgid "Speech type" -msgstr "" +msgstr "Tipo di discorso" msgid "Spokesperson" -msgstr "" +msgstr "Portavoce" msgid "Spokespersons" -msgstr "" +msgstr "Persone portavoce" msgid "Stalemate! It's a draw!" -msgstr "" +msgstr "Pareggio! E' un pareggio!" msgid "Start and end time must either both be set or both be empty" msgstr "" +"L'ora di inizio e di fine devono essere entrambe impostate o entrambe vuote." msgid "Start date" msgstr "Data d'inizio" msgid "Start line number" -msgstr "" +msgstr "Numero della linea di partenza" msgid "Start time" msgstr "Tempo di partenza" @@ -4249,20 +4619,8 @@ msgstr "Stato impostato su {}" msgid "Statistics" msgstr "Statistiche" -msgid "Statute" -msgstr "Statuto" - -msgid "Statute amendment" -msgstr "Richiesta di modifica statuto" - -msgid "Statute amendment for" -msgstr "Richiesta di modifica statuto riguardante" - -msgid "Statute paragraph" -msgstr "Paragrafo statuto" - -msgid "Statute paragraphs" -msgstr "Paragrafi statuto" +msgid "Status" +msgstr "" msgid "Stop" msgstr "Stop" @@ -4277,22 +4635,22 @@ msgid "Stop voting" msgstr "Stop votazione" msgid "Stop waiting" -msgstr "" +msgstr "Smettere di aspettare" msgid "Strikethrough" -msgstr "" +msgstr "Barrato" msgid "Structure level" msgstr "Livello struttura" msgid "Structure levels" -msgstr "" +msgstr "Livelli di struttura" msgid "Subcategory" msgstr "Categoria secondaria" msgid "Submission date" -msgstr "" +msgstr "Data di presentazione" msgid "Submit selection now?" msgstr "Inviare la selezione ora?" @@ -4301,13 +4659,13 @@ msgid "Submit vote now" msgstr "Inviare il voto ora?" msgid "Submitter" -msgstr "" +msgstr "Presentatore/Presentatrici di mozioni" msgid "Submitter (in target meeting)" msgstr "Richiedente (nella riunione target)" msgid "Submitter may set state to" -msgstr "" +msgstr "Chi presenta la mozione può impostare lo stato su" msgid "Submitters" msgstr "Richiedenti" @@ -4316,7 +4674,10 @@ msgid "Submitters changed" msgstr "I richiedenti sono cambiati" msgid "Subscript" -msgstr "" +msgstr "Pedice" + +msgid "Subtract" +msgstr "Sottrarre" msgid "Suitable accounts found" msgstr "Trovati accounts idonei " @@ -4337,7 +4698,7 @@ msgid "Summary of changes:" msgstr "Sommario di cambiamenti:" msgid "Superadmin" -msgstr "Superamministratore" +msgstr "" msgid "Superadmin actions" msgstr "Azioni del super amministratore" @@ -4346,7 +4707,7 @@ msgid "Superadmin settings" msgstr "Impostazioni super amministratore" msgid "Superscript" -msgstr "" +msgstr "Apice" msgid "Support" msgstr "Supporto" @@ -4360,11 +4721,11 @@ msgstr "Supportatori cambiati" msgid "Surname" msgstr "Cognome" -msgid "Swap mandates ..." -msgstr "" +msgid "Swap mandates" +msgstr "Cambio di mandato" msgid "Switch" -msgstr "" +msgstr "Cambiare" msgid "Table of contents" msgstr "Tabella dei contenuti." @@ -4378,6 +4739,9 @@ msgstr "Etichette" msgid "Text" msgstr "Testo" +msgid "Text color" +msgstr "" + msgid "Text for this option couldn't load." msgstr "Non è stato possibile caricare il testo per questa opzione." @@ -4387,11 +4751,14 @@ msgstr "Importo testo" msgid "Text separator" msgstr "Divisore testo" +msgid "Text to display" +msgstr "" + msgid "The account is deactivated." msgstr "L'account è disattivato" msgid "The affected columns will not be imported." -msgstr "" +msgstr "Le colonne interessate non saranno importate" msgid "The assembly may decide:" msgstr "L'assemblea voglia decidere:" @@ -4404,7 +4771,7 @@ msgstr "" "Il gestore dell'evento non ha ancora impostato una politica sulla privacy " msgid "The fields are defined as follows" -msgstr "" +msgstr "I campi sono definiti come segue" msgid "The file has too few columns to be parsed properly." msgstr "Il file ha troppo poche colonne per essere analizzato correttamente." @@ -4421,9 +4788,11 @@ msgid "" "The import can not proceed. There is likely a problem with the import data, " "please check the preview for details." msgstr "" +"L'importazione non può procedere. È probabile che ci sia un problema con i " +"dati di importazione; controllare l'anteprima per i dettagli." msgid "The import is in progress, please wait ..." -msgstr "" +msgstr "L'importazione è in corso, attendere..." msgid "" "The import returned warnings. This does not mean that it failed, but some " @@ -4431,12 +4800,17 @@ msgid "" "same as during the preview, but as there is a possibility that new ones have" " arisen, the relevant rows will be displayed below." msgstr "" +"L'importazione ha restituito degli avvertimenti. Ciò non significa che " +"l'importazione sia fallita, ma che alcuni dati potrebbero essere stati " +"importati in modo diverso. Di solito gli avvertimenti sono gli stessi " +"comparsi nell'anteprima, ma poiché è possibile che ne siano sorte di nuove, " +"le righe pertinenti vengono visualizzate di seguito" msgid "The import was successful." -msgstr "" +msgstr "L'importazione è avvenuta con successo." msgid "The input data for voting is invalid." -msgstr "" +msgstr "I dati inseriti per la votazione non sono validi." msgid "The link is broken. Please contact your system administrator." msgstr "Il link è rotto. Contatta il tuo amministratore di sistema." @@ -4444,33 +4818,30 @@ msgstr "Il link è rotto. Contatta il tuo amministratore di sistema." msgid "The list of speakers is closed." msgstr "La lista degli oratori è chiusa." -msgid "The list of speakers is open." -msgstr "La lista dei realtori è aperta." - msgid "" "The maximum number of characters per line. Relevant when line numbering is " -"enabled. Min: 40" +"enabled. Min: 40. Note: Check PDF export and font." msgstr "" -"Il numero massimo di caratteri per linea. Rilevante quando la numerazione " -"delle righe è abilitata. Min. 40" +"Il numero massimo di caratteri per riga. Rilevante quando la numerazione " +"delle righe è abilitata. Min: 40. Nota: Controllare esportazione PDF e font." msgid "The number has to be greater than 0." msgstr "Il numero deve essere maggiore di 0." msgid "The parent motion is not available." -msgstr "" +msgstr "La mozione principale non è disponibile." msgid "The process is still running. Please wait!" -msgstr "" +msgstr "Il processo è ancora in corso. Siete pregati di aspettare!" msgid "The process may have stopped running." -msgstr "" +msgstr "Il processo potrebbe aver smesso di funzionare." msgid "The process will be started. Please wait!" -msgstr "" +msgstr "Il processo avrà inizio. Siete pregati di aspettare!" msgid "The request could not be sent. Check your connection." -msgstr "" +msgstr "Non è stato possibile inviare la richiesta. Controlla la connessione." msgid "The server could not be reached." msgstr "Il server non è raggiugibile." @@ -4482,6 +4853,8 @@ msgid "" "The server may still be processing them, but you will probably not get a " "result." msgstr "" +"Il server potrebbe ancora elaborarli, ma probabilmente non si otterrà alcun " +"risultato." msgid "The title is required" msgstr "Il titol è richiesto" @@ -4489,10 +4862,14 @@ msgstr "Il titol è richiesto" msgid "" "The user %user% has no email, so the invitation email could not be sent." msgstr "" +"%u L'utente ser% non ha un indirizzo e-mail, pertanto non è stato possibile " +"inviare l'e-mail di invito." msgid "" "The users %user% have no email, so the invitation emails could not be sent." msgstr "" +"%uGli utenti ser% non hanno un'e-mail, quindi non è stato possibile inviare" +" le e-mail di invito." msgid "There are not enough options." msgstr "Non ci sono abbastanza opzioni." @@ -4512,14 +4889,19 @@ msgstr "C'è un problema di voto sconosciuto" msgid "There is an unspecified error in this line, which prevents the import." msgstr "" +"ThIl server potrebbe ancora elaborarli, ma probabilmente non si otterrà " +"alcun risultato.ere is an unspecified error in this line, which prevents the" +" import." msgid "" "There seems to be a problem connecting to our services. Check your " "connection or try again later." msgstr "" +"Sembra che ci sia un problema di connessione ai nostri servizi. Controllare " +"la connessione o riprovare più tardi." msgid "There should be at least 2 options." -msgstr "" +msgstr "Dovrebbero esserci almeno 2 opzioni." msgid "Thereof point of orders" msgstr "Mozioni d'ordine relative" @@ -4528,7 +4910,11 @@ msgid "These accounts will be deleted:" msgstr "Questi accounts saranno eliminati" msgid "These participants will be removed:" +msgstr "Questi partecipanti saranno rimossi:" + +msgid "These settings are only applied locally on this browser." msgstr "" +"Queste impostazioni vengono applicate solo localmente su questo browser." msgid "This account has relations to meetings or committees" msgstr "Questo account ha relazioni con riunioni o comitati" @@ -4541,13 +4927,13 @@ msgstr "" "nessuna riunione e non è responsabile di nessun comitato." msgid "This action will diminish your organization management level" -msgstr "" +msgstr "Questa azione ridurrà il livello di gestione dell'organizzazione" msgid "This action will remove you from one or more groups." -msgstr "" +msgstr "Questa azione vi rimuoverà da uno o più gruppi." msgid "This action will remove you from one or more meetings." -msgstr "" +msgstr "Questa azione vi allontanerà da una o più riunioni." msgid "This ballot contains deleted users." msgstr "Questo sondaggio contiene utenti cancellati." @@ -4571,9 +4957,12 @@ msgid "" "This may diminish your ability to do things in this meeting and you may not " "be able to revert it by youself. Are you sure you want to do this?" msgstr "" +"Questo potrebbe ridurre la vostra capacità di fare cose in questa riunione e" +" potreste non essere in grado di tornare indietro da soli. È sicuro di " +"volerlo fare?" msgid "This meeting" -msgstr "" +msgstr "Questa riunione" msgid "This meeting is archived" msgstr "Questa riunione è archiviata" @@ -4582,13 +4971,13 @@ msgid "This paragraph does not exist in the main motion anymore:" msgstr "Questo paragrafo non esiste più nella mozione principale:" msgid "This participant will only be removed from this meeting" -msgstr "" +msgstr "Questo partecipante sarà rimosso solo da questo incontro " msgid "This prefix already exists" -msgstr "" +msgstr "Questo prefisso esiste già" msgid "This prefix already exists." -msgstr "" +msgstr "Questo prefisso esiste già" msgid "This prefix will be set if you run the automatic agenda numbering." msgstr "" @@ -4600,6 +4989,9 @@ msgid "" " projectors will automatically set them to visible. Do you really want to do" " this?" msgstr "" +"Questo proiettore è attualmente interno. Selezionando tali proiettori come " +"proiettori di riferimento, verranno automaticamente impostati come visibili." +" Volete davvero farlo?" msgid "" "This will add or remove the following groups for all selected participants:" @@ -4611,6 +5003,8 @@ msgid "" "This will add or remove the following structure levels for all selected " "participants:" msgstr "" +"Questa operazione aggiunge o rimuove i seguenti livelli di struttura per " +"tutti i partecipanti selezionati:" msgid "" "This will add or remove the following submitters for all selected motions:" @@ -4638,6 +5032,8 @@ msgid "" "This will diminish your ability to do things on the organization level and " "you will not be able to revert this yourself." msgstr "" +"Questo ridurrà la vostra capacità di agire a livello organizzativo e non " +"sarete in grado di ripristinare la situazione da soli." msgid "This will move all selected motions as childs to:" msgstr "Questo sposterà tutti i movimenti selezionati come figli a:" @@ -4684,22 +5080,22 @@ msgid "Thoroughly check datastore (unsafe)" msgstr "Controllo approfondito del datastore (non sicuro)" msgid "Threefold repetition! It's a draw!" -msgstr "" +msgstr "Triplice ripetizione! E un pareggio!" msgid "Tile view" msgstr "Visualizzazione in modalità gallery" msgid "Time" -msgstr "" +msgstr "Tempo" msgid "Time and traffic light" -msgstr "" +msgstr "Tempo e semaforo" msgid "Timer" -msgstr "" +msgstr "Timer" msgid "Timers" -msgstr "" +msgstr "Timer" msgid "Timestamp" msgstr "Data e ora" @@ -4717,13 +5113,13 @@ msgid "Title for access data and welcome PDF" msgstr "Titolo PDF data d'accesso e benvenuto" msgid "To start your search press Enter or the search icon" -msgstr "" +msgstr "Per avviare la ricerca, premere Invio o l'icona di ricerca." msgid "Toggle to list of speakers" -msgstr "" +msgstr "Vai all'elenco dei relatori" msgid "Toggle to parent item" -msgstr "" +msgstr "Cambiare in elemento genitore" msgid "Too many votes on one option." msgstr "Troppi voti per una unica opzione" @@ -4735,31 +5131,31 @@ msgid "Topics" msgstr "Temi" msgid "Topics created" -msgstr "" +msgstr "Argomenti creati" msgid "Topics skipped" -msgstr "" +msgstr "Argomenti saltati" msgid "Topics updated" -msgstr "" +msgstr "Argomenti aggiornati" msgid "Topics with warnings (will be skipped)" -msgstr "" +msgstr "Argomenti con avvertenze (saranno saltati)" msgid "Total accounts" -msgstr "" +msgstr "Accounts totali" msgid "Total committees" -msgstr "" +msgstr "Totale comitati" msgid "Total participants" -msgstr "" +msgstr "Totale partecipanti" msgid "Total time" -msgstr "" +msgstr "Tempo totale" msgid "Total topics" -msgstr "" +msgstr "Totale argomenti" msgid "Total votes cast" msgstr "Voti totali espressi" @@ -4776,7 +5172,13 @@ msgstr "Risoluzione dei problemi" msgid "Try reconnect" msgstr "Prova a ricollegare" +msgid "URL" +msgstr "" + msgid "Underline" +msgstr "Sottolineato" + +msgid "Undo" msgstr "" msgid "Undone" @@ -4786,7 +5188,10 @@ msgid "Unique speakers" msgstr "Altoparlanti unici" msgid "Unknown participant" -msgstr "" +msgstr "Partecipante sconosciuto" + +msgid "Unknown user" +msgstr "Utente sconosciuto" msgid "Unsaved changes will not be applied." msgstr "Le modifiche non salvate non verranno applicate." @@ -4804,9 +5209,11 @@ msgid "" "Use JSON key:value structure (key = OpenSlides attribute name, value = IdP " "attribute name)." msgstr "" +"Utilizzare la struttura JSON chiave: valore (chiave = nome dell'attributo " +"OpenSlides, valore = nome dell'attributo IdP)." msgid "Use color" -msgstr "" +msgstr "Utilizzare colore" msgid "Use the following custom number" msgstr "Usa il seguente numero cliente" @@ -4819,13 +5226,16 @@ msgstr "" "L'url si riferisce all'url del sistema." msgid "Used for WLAN QRCode projection." -msgstr "" +msgstr "Utilizzato per la proiezione del QRCode WLAN." msgid "Used for invitation emails and QRCode in PDF of access data." msgstr "" "Utilizzato per le e-mail di invito e per i QRCode nei PDF dei dati di " "accesso." +msgid "User" +msgstr "Utente" + msgid "User not found." msgstr "Utente non trovato." @@ -4833,18 +5243,22 @@ msgid "Username" msgstr "Nome utente" msgid "Username may not contain spaces" -msgstr "" +msgstr "Il nome utente non può contenere spazi" msgid "Username or password is incorrect." msgstr "Il nome utente o la password non sono corretti." msgid "Uses leading zeros to sort motions correctly by identifier." msgstr "" +"Utilizza gli zeri iniziali per ordinare correttamente i movimenti in base " +"all'identificatore." msgid "" "Using OpenSlides over HTTP 1.1 or lower is not supported. Make sure you can " "use HTTP 2 to continue." msgstr "" +"L'uso di OpenSlides su HTTP 1.1 o inferiore non è supportato. Assicurarsi di" +" poter utilizzare HTTP 2 per continuare." msgid "Using OpenSlides over HTTP is not supported. Enable HTTPS to continue." msgstr "" @@ -4854,6 +5268,9 @@ msgstr "" msgid "Valid votes" msgstr "Voti validi" +msgid "View" +msgstr "Vista" + msgid "Virtual applause" msgstr "Applauso virtuale" @@ -4861,13 +5278,16 @@ msgid "Visibility" msgstr "Visibilità" msgid "Visibility on agenda" -msgstr "" +msgstr "Visibilità in agenda" msgid "Vote" msgstr "Voto" +msgid "Vote delegation" +msgstr "Delega di voto" + msgid "Vote submitted" -msgstr "" +msgstr "Voto presentato" msgid "Vote weight" msgstr "Peso del voto" @@ -4878,20 +5298,20 @@ msgstr "Votato" msgid "Votes" msgstr "Voti" -msgid "Voting and ballot papers" -msgstr "Voto e schede elettorali" +msgid "Voting" +msgstr "Votazione" msgid "Voting anonymized" msgstr "Voto reso anonimo" msgid "Voting colors" -msgstr "" +msgstr "Colori per la votazione" msgid "Voting created" -msgstr "" +msgstr "Votazione creata" msgid "Voting deleted" -msgstr "" +msgstr "Votazione cancellata" msgid "Voting duration" msgstr "Durata della votazione" @@ -4958,26 +5378,23 @@ msgid "WLAN password" msgstr "WLAN password" msgid "Wait" -msgstr "" +msgstr "Attendere" msgid "Wait for response ..." -msgstr "" +msgstr "Attendere la risposta ..." msgid "Waiting for response ..." -msgstr "" +msgstr "In attesa di risposta ..." msgid "Warn color" -msgstr "" - -msgid "" -"Warning: Amendments exist for at least one of the selected motions. Are you " -"sure you want to delete these motions regardless?" -msgstr "" +msgstr "Colore di avvertimento" msgid "" "Warning: Amendments exist for this motion. Are you sure you want to delete " "this motion regardless?" msgstr "" +"Attenzione: Esistono emendamenti per questa mozione. Siete sicuri di voler " +"cancellare questa mozione a prescindere?" msgid "" "Warning: Amendments exist for this motion. Editing this text will likely " @@ -4989,9 +5406,20 @@ msgstr "" "emendamenti potrebbero diventare inutilizzabili se il paragrafo che " "interessano viene cancellato." -msgid "Warning: This projector will be set to visible" +msgid "" +"Warning: At least one of the selected motions has amendments, these will be " +"deleted as well. Do you want to delete anyway?" +msgstr "" +"Attenzione: Almeno una delle mozioni selezionate ha degli emendamenti; anche" +" questi saranno cancellati. Volete cancellare comunque?" + +msgid "" +"Warning: Data loss is possible because accounts are in the same meeting." msgstr "" +msgid "Warning: This projector will be set to visible" +msgstr "Attenzione: Questo proiettore sarà impostato su visibile" + msgid "Was forwarded to this meeting" msgstr "È stato trasmesso a questa riunione" @@ -5008,20 +5436,13 @@ msgid "Which version?" msgstr "Quale versione?" msgid "Wifi" -msgstr "" +msgstr "Wifi" msgid "Wifi access data" -msgstr "" +msgstr "Dati di accesso Wifi" msgid "Wifi name" -msgstr "" - -msgid "" -"Will be displayed as label before selected recommendation in statute " -"amendments." -msgstr "" -"Sarà visualizzato come etichetta prima della raccomandazione selezionata " -"negli emendamenti allo statuto." +msgstr "Nome del Wifi" msgid "" "Will be displayed as label before selected recommendation. Use an empty " @@ -5042,9 +5463,6 @@ msgstr "Flusso di lavoro dei nuovi emendamenti" msgid "Workflow of new motions" msgstr "Flusso di lavoro delle nuove mozioni" -msgid "Workflow of new statute amendments" -msgstr "Flusso di lavoro dei nuovi emendamenti allo statuto" - msgid "Workflows" msgstr "Lavorazioni" @@ -5073,7 +5491,7 @@ msgid "Yes/No/Abstain per candidate" msgstr "Si/No/Astensione per candidato" msgid "Yes/No/Abstain per list" -msgstr "" +msgstr "Sì/No/Assenso per elenco" msgid "You are not allowed to see all entitled users." msgstr "Non ti è permesso di vedere tutti gli utenti autorizzati." @@ -5085,13 +5503,7 @@ msgid "You are not supposed to be here..." msgstr "Non dovresti essere qui..." msgid "You are using an incompatible client version." -msgstr "" - -msgid "" -"You are using the history mode of OpenSlides. Changes will not be saved." -msgstr "" -"Stai usando la modalità storia di OpenSlides. Le modifiche non saranno " -"salvate." +msgstr "Si sta utilizzando una versione del client non compatibile." msgid "You can change this option only in the forwarding section." msgstr "È possibile modificare questa opzione solo nella sezione di inoltro." @@ -5104,7 +5516,7 @@ msgstr "" "Non puoi votare in questo momento perché la votazione non è ancora iniziata." msgid "You can only anonymize named polls." -msgstr "" +msgstr "È possibile anonimizzare solo i sondaggi nominativi." msgid "You can use {event_name} and {username} as placeholder." msgstr "Puoi usare {event_name} e {username} come segnaposto." @@ -5116,28 +5528,30 @@ msgstr "" "lavoro!" msgid "You cannot delete the last workflow of a meeting." -msgstr "" +msgstr "Non è possibile eliminare l'ultimo flusso di lavoro di una riunione." msgid "" "You cannot delete the workflow as long as it is selected as default workflow" " for new amendments in the settings. Please set another workflow as default " "in the settings and try to delete the workflow again." msgstr "" +"Non è possibile eliminare il flusso di lavoro finché è selezionato come " +"flusso di lavoro predefinito per le nuove modifiche nelle impostazioni. " +"Impostate un altro flusso di lavoro come predefinito nelle impostazioni e " +"provate di nuovo a eliminare il flusso di lavoro." msgid "" "You cannot delete the workflow as long as it is selected as default workflow" " for new motions in the settings. Please set another workflow as default in " "the settings and try to delete the workflow again." msgstr "" - -msgid "" -"You cannot delete the workflow as long as it is selected as default workflow" -" for new statute amendments in the settings. Please set another workflow as " -"default in the settings and try to delete the workflow again." -msgstr "" +"Non è possibile eliminare il flusso di lavoro finché è selezionato come " +"flusso di lavoro predefinito per le nuove modifiche nelle impostazioni. " +"Impostate un altro flusso di lavoro come predefinito nelle impostazioni e " +"provate di nuovo a eliminare il flusso di lavoro." msgid "You cannot delete yourself." -msgstr "" +msgstr "Non puoi cancellare te stesso" msgid "" "You cannot enter this meeting because you are not assigned to any group." @@ -5158,7 +5572,7 @@ msgid "You have to be logged in to be able to vote." msgstr "Devi essere registrato per poter votare." msgid "You have to be present to add yourself." -msgstr "" +msgstr "Bisogna essere presenti per aggiungere se stessi." msgid "You have to be present to vote." msgstr "Bisogna essere presenti per votare." @@ -5183,7 +5597,7 @@ msgid "You reached the maximum amount of votes. Deselect somebody first." msgstr "Hai raggiunto il numero massimo di voti. Deseleziona prima qualcuno." msgid "You won!" -msgstr "" +msgstr "Hai vinto!" msgid "Your browser" msgstr "Browser" @@ -5201,13 +5615,13 @@ msgid "Your input does not match the following structure: \"hh:mm\"" msgstr "Il tuo input non corrisponde alla seguente struttura: \"hh:mm\"" msgid "Your opponent couldn't stand it anymore... You are the winner!" -msgstr "" +msgstr "Il tuo avversario non è riuscito a resistere ... Tu sei il vincitore!" msgid "Your opponent has won!" -msgstr "" +msgstr "Il tuo avversario ha vinto!" msgid "Your password has been reset successfully!" -msgstr "" +msgstr "La password è stata reimpostata con successo!" msgid "Your votes" msgstr "I suoi voti" @@ -5242,16 +5656,16 @@ msgid "add group(s)" msgstr "aggiungere gruppo(i)" msgid "already exists" -msgstr "" +msgstr "Esiste già" msgid "analog" msgstr "analogo" msgid "and" -msgstr "" +msgstr "e" msgid "anonymized" -msgstr "" +msgstr "Reso anonimo" msgid "are required" msgstr "sono necessari" @@ -5263,7 +5677,7 @@ msgid "by" msgstr "da" msgid "challenged you to a chess match!" -msgstr "" +msgstr "Ti ha sfidato a giocare una partita di scacchi!" msgid "committee-example" msgstr "comitato-esempio" @@ -5290,10 +5704,10 @@ msgid "dateless" msgstr "Senza data" msgid "delete" -msgstr "" +msgstr "Cancellare" msgid "deleted" -msgstr "" +msgstr "Cancellato" msgid "disabled" msgstr "disabilitato" @@ -5377,13 +5791,13 @@ msgid "items selected" msgstr "Inserimento selezionati" msgid "last updated" -msgstr "" +msgstr "Ultimo aggiornamento" msgid "lightblue" msgstr "azzurro" msgid "logged-in users" -msgstr "" +msgstr "Utenti connessi" msgid "long running" msgstr "A lungo termine" @@ -5395,10 +5809,10 @@ msgid "male" msgstr "maschile" msgid "max. 32 characters allowed" -msgstr "" +msgstr "Ammessi un massimo di 32 caratteri" msgid "modified" -msgstr "" +msgstr "Modificato" msgid "motions" msgstr "mozioni" @@ -5416,7 +5830,7 @@ msgid "nominal" msgstr "nominale" msgid "non-binary" -msgstr "" +msgstr "Non binario" msgid "non-nominal" msgstr "non nominale" @@ -5425,7 +5839,7 @@ msgid "none" msgstr "niente" msgid "not specified" -msgstr "" +msgstr "Non specificato" msgid "of" msgstr "di" @@ -5440,7 +5854,7 @@ msgid "outside" msgstr "fuori" msgid "partially forwarded" -msgstr "" +msgstr "Inoltrato parzialmente" msgid "participants" msgstr "partecipanti" @@ -5461,7 +5875,7 @@ msgid "red" msgstr "rosso" msgid "remove" -msgstr "" +msgstr "Eliminare" msgid "remove group(s)" msgstr "rimuovere gruppo(gruppi)" @@ -5469,9 +5883,12 @@ msgstr "rimuovere gruppo(gruppi)" msgid "represented by" msgstr "rappresentato da" -msgid "reset" +msgid "represented by old account of" msgstr "" +msgid "reset" +msgstr "Ripristinare" + msgid "selected" msgstr "selezionato" @@ -5482,7 +5899,7 @@ msgid "started" msgstr "iniziato" msgid "stopped" -msgstr "" +msgstr "Terminato" msgid "successfully forwarded" msgstr "Inoltrato con successo" @@ -5500,7 +5917,7 @@ msgid "undocumented" msgstr "Non documentato" msgid "updated" -msgstr "" +msgstr "Aggiornato" msgid "version" msgstr "versione" @@ -5508,6 +5925,9 @@ msgstr "versione" msgid "votes per candidate" msgstr "Voti per candidato" +msgid "votes per option" +msgstr "" + msgid "will be created" msgstr "Sarà creato" @@ -5515,19 +5935,19 @@ msgid "will be imported" msgstr "Sarà importato" msgid "will be updated" -msgstr "" +msgstr "Sarà aggiornato" msgid "yellow" msgstr "giallo" msgid "{{amount}} interposed questions will be cleared" -msgstr "" +msgstr "{{amount}} Le domande intermedie saranno eliminate" msgid "{{amount}} of them will be saved with 'unknown' speaker" -msgstr "" +msgstr "{{amount}} di essi saranno salvati con \"relatore sconosciuto\"." msgid "{{amount}} will be saved" -msgstr "" +msgstr "{{amount}} saranno salvati" msgid "Acceptance" msgstr "Accettazione" @@ -5576,22 +5996,22 @@ msgid "No decision" msgstr "Nessuna decisione" msgid "Presentation and assembly system" -msgstr "" +msgstr "Sistema di presentazione e assemblea" msgid "Referral to" -msgstr "" +msgstr "Inoltro a" msgid "Rejection" msgstr "Rigetto" msgid "Reset your OpenSlides password" -msgstr "" +msgstr "Reimpostare la password di OpenSlides" msgid "Simple Workflow" msgstr "Lavorazione semplice" msgid "Space for your welcome text." -msgstr "" +msgstr "Spazio per il tuo testo di benvenuto." msgid "Speaking time" msgstr "Tempo per l'intervento" @@ -5599,9 +6019,6 @@ msgstr "Tempo per l'intervento" msgid "Staff" msgstr "Collaboratori" -msgid "Voting" -msgstr "Votazione" - msgid "" "You are receiving this email because you have requested a new password for your OpenSlides account.\n" "\n" @@ -5610,6 +6027,10 @@ msgid "" "\n" "The link will be valid for 10 minutes." msgstr "" +"Stai ricevendo questa e-mail perché hai richiesto una nuova password per il " +"tuo account OpenSlides. Per favore apri il seguente link e scegli una nuova " +"password: {url}/login/forget-password-" +"confirm?user_id={user_id}&token={token}. Il link sarà valido per 10 minuti." msgid "accepted" msgstr "accettato" @@ -5621,7 +6042,7 @@ msgid "in progress" msgstr "in corso" msgid "name" -msgstr "" +msgstr "Nome" msgid "not concerned" msgstr "non elaborato" @@ -5630,13 +6051,13 @@ msgid "not decided" msgstr "Non deciso" msgid "not permitted" -msgstr "" +msgstr "Non consentito" msgid "permitted" msgstr "permesso" msgid "referred to" -msgstr "" +msgstr "Riferito a " msgid "rejected" msgstr "rifiutato" diff --git a/client/src/assets/i18n/template-en.pot b/client/src/assets/i18n/template-en.pot index dba03e3261..1d8fc17690 100644 --- a/client/src/assets/i18n/template-en.pot +++ b/client/src/assets/i18n/template-en.pot @@ -766,6 +766,10 @@ msgstr "" msgid "Ballots" msgstr "" +#: /app/src/app/site/pages/meetings/modules/poll/components/poll-filtered-votes-chart/poll-filtered-votes-chart.component.html +msgid "Ballots cast" +msgstr "" + msgid "Base folder" msgstr "" @@ -1750,6 +1754,10 @@ msgstr "" msgid "Download folder" msgstr "" +#: /app/src/app/ui/modules/file-list/components/file-list/file-list.component.ts +msgid "Download the file" +msgstr "" + msgid "Drop files into this area OR click here to select files" msgstr "" @@ -2123,6 +2131,10 @@ msgstr "" msgid "Filter" msgstr "" +#: /app/src/app/site/pages/meetings/modules/poll/components/poll-filtered-votes-chart/poll-filtered-votes-chart.component.html +msgid "Filtered single votes" +msgstr "" + msgid "Final version" msgstr "" @@ -3116,6 +3128,30 @@ msgstr "" msgid "Natural person" msgstr "" +#: /app/src/app/site/pages/organization/pages/accounts/pages/account-list/components/account-list/account-list.component.ts +msgid "Navigate to account page from " +msgstr "" + +#: /app/src/app/site/pages/organization/pages/committees/pages/committee-list/components/committee-list/committee-list.component.ts +msgid "Navigate to committee detail view from " +msgstr "" + +#: /app/src/app/site/pages/organization/pages/orga-meetings/pages/meeting-list/components/meeting-list/meeting-list.component.ts +msgid "Navigate to meeting " +msgstr "" + +#: /app/src/app/site/pages/meetings/pages/motions/pages/categories/components/category-detail/category-detail.component.ts +msgid "Navigate to motion" +msgstr "" + +#: /app/src/app/site/pages/meetings/pages/participants/pages/participant-list/components/participant-list/participant-list.component.ts +msgid "Navigate to participant page from " +msgstr "" + +#: /app/src/app/ui/modules/file-list/components/file-list/file-list.component.ts +msgid "Navigate to the folder" +msgstr "" + msgid "Negative votes are not allowed." msgstr "" diff --git a/client/src/assets/pdfworker/pdf.worker.min.js b/client/src/assets/pdfworker/pdf.worker.min.js deleted file mode 100644 index d0fe8a33a5..0000000000 --- a/client/src/assets/pdfworker/pdf.worker.min.js +++ /dev/null @@ -1,22 +0,0 @@ -/** - * @licstart The following is the entire license notice for the - * JavaScript code in this page - * - * Copyright 2022 Mozilla Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * @licend The above is the entire license notice for the - * JavaScript code in this page - */ -!function webpackUniversalModuleDefinition(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("pdfjs-dist/build/pdf.worker",[],t):"object"==typeof exports?exports["pdfjs-dist/build/pdf.worker"]=t():e["pdfjs-dist/build/pdf.worker"]=e.pdfjsWorker=t()}(this,(()=>(()=>{"use strict";var e=[,(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.WorkerTask=t.WorkerMessageHandler=void 0;var r=a(2),n=a(5),i=a(6),s=a(67),o=a(73),c=a(4),l=a(102),h=a(103),u=a(8);class WorkerTask{constructor(e){this.name=e;this.terminated=!1;this._capability=(0,r.createPromiseCapability)()}get finished(){return this._capability.promise}finish(){this._capability.resolve()}terminate(){this.terminated=!0}ensureNotTerminated(){if(this.terminated)throw new Error("Worker task was terminated")}}t.WorkerTask=WorkerTask;class WorkerMessageHandler{static setup(e,t){let a=!1;e.on("test",(function wphSetupTest(t){if(!a){a=!0;e.send("test",t instanceof Uint8Array)}}));e.on("configure",(function wphConfigure(e){(0,r.setVerbosityLevel)(e.verbosity)}));e.on("GetDocRequest",(function wphSetupDoc(e){return WorkerMessageHandler.createDocumentHandler(e,t)}))}static createDocumentHandler(e,t){let a,d=!1,f=null;const g=[],p=(0,r.getVerbosityLevel)(),m=e.apiVersion,b="2.14.305";if(m!==b)throw new Error(`The API version "${m}" does not match the Worker version "2.14.305".`);const y=[];for(const e in[])y.push(e);if(y.length)throw new Error("The `Array.prototype` contains unexpected enumerable properties: "+y.join(", ")+"; thus breaking e.g. `for...in` iteration of `Array`s.");if("undefined"==typeof ReadableStream){const e="The browser/environment lacks native support for critical functionality used by the PDF.js library (e.g. `ReadableStream`); ";if(c.isNodeJS)throw new Error(e+"please use a `legacy`-build instead.");throw new Error(e+"please update to a supported browser.")}const w=e.docId,S=e.docBaseUrl,x=e.docId+"_worker";let k=new l.MessageHandler(x,w,t);function ensureNotTerminated(){if(d)throw new Error("Worker was terminated")}function startWorkerTask(e){g.push(e)}function finishWorkerTask(e){e.finish();const t=g.indexOf(e);g.splice(t,1)}async function loadDocument(e){await a.ensureDoc("checkHeader");await a.ensureDoc("parseStartXRef");await a.ensureDoc("parse",[e]);await a.ensureDoc("checkFirstPage",[e]);await a.ensureDoc("checkLastPage",[e]);const t=await a.ensureDoc("isPureXfa");if(t){const e=new WorkerTask("loadXfaFonts");startWorkerTask(e);await Promise.all([a.loadXfaFonts(k,e).catch((e=>{})).then((()=>finishWorkerTask(e))),a.loadXfaImages()])}const[r,n]=await Promise.all([a.ensureDoc("numPages"),a.ensureDoc("fingerprints")]);return{numPages:r,fingerprints:n,htmlForXfa:t?await a.ensureDoc("htmlForXfa"):null}}function getPdfManager(e,t,a){const n=(0,r.createPromiseCapability)();let s;const o=e.source;if(o.data){try{s=new i.LocalPdfManager(w,o.data,o.password,k,t,a,S);n.resolve(s)}catch(e){n.reject(e)}return n.promise}let c,l=[];try{c=new h.PDFWorkerStream(k)}catch(e){n.reject(e);return n.promise}const u=c.getFullReader();u.headersReady.then((function(){if(!u.isRangeSupported)return;const e=o.disableAutoFetch||u.isStreamingSupported;s=new i.NetworkPdfManager(w,c,{msgHandler:k,password:o.password,length:u.contentLength,disableAutoFetch:e,rangeChunkSize:o.rangeChunkSize},t,a,S);for(let e=0;enull!==e)).reduce(((e,t)=>e.concat(t)),u);if(0===u.length)return t.bytes}const f=a instanceof n.Dict&&a.get("XFA")||null;let g=null,p=!1;if(Array.isArray(f)){for(let e=0,t=f.length;e{"string"==typeof a&&(e[t]=(0,r.stringToPDFString)(a))}));m={rootRef:c.trailer.getRaw("Root")||null,encryptRef:c.trailer.getRaw("Encrypt")||null,newRef:c.getNewRef(),infoRef:c.trailer.getRaw("Info")||null,info:e,fileIds:c.trailer.get("ID")||null,startXRef:l,filename:s}}c.resetNewRef();return(0,o.incrementalUpdate)({originalData:t.bytes,xrefInfo:m,newRefs:u,xref:c,hasXfa:!!f,xfaDatasetsRef:g,hasXfaDatasetsEntry:p,acroFormRef:i,acroForm:a,xfaData:d})}))}));k.on("GetOperatorList",(function wphSetupRenderPage(e,t){const n=e.pageIndex;a.getPage(n).then((function(a){const i=new WorkerTask(`GetOperatorList: page ${n}`);startWorkerTask(i);const s=p>=r.VerbosityLevel.INFOS?Date.now():0;a.getOperatorList({handler:k,sink:t,task:i,intent:e.intent,cacheKey:e.cacheKey,annotationStorage:e.annotationStorage}).then((function(e){finishWorkerTask(i);s&&(0,r.info)(`page=${n+1} - getOperatorList: time=${Date.now()-s}ms, len=${e.length}`);t.close()}),(function(e){finishWorkerTask(i);if(!i.terminated){k.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorOperatorList});t.error(e)}}))}))}));k.on("GetTextContent",(function wphExtractText(e,t){const n=e.pageIndex;a.getPage(n).then((function(a){const i=new WorkerTask("GetTextContent: page "+n);startWorkerTask(i);const s=p>=r.VerbosityLevel.INFOS?Date.now():0;a.extractTextContent({handler:k,task:i,sink:t,includeMarkedContent:e.includeMarkedContent,combineTextItems:e.combineTextItems}).then((function(){finishWorkerTask(i);s&&(0,r.info)(`page=${n+1} - getTextContent: time=`+(Date.now()-s)+"ms");t.close()}),(function(e){finishWorkerTask(i);i.terminated||t.error(e)}))}))}));k.on("GetStructTree",(function wphGetStructTree(e){return a.getPage(e.pageIndex).then((function(e){return a.ensure(e,"getStructTree")}))}));k.on("FontFallback",(function(e){return a.fontFallback(e.id,k)}));k.on("Cleanup",(function wphCleanup(e){return a.cleanup(!0)}));k.on("Terminate",(function wphTerminate(e){d=!0;const t=[];if(a){a.terminate(new r.AbortException("Worker was terminated."));const e=a.cleanup();t.push(e);a=null}else(0,s.clearGlobalCaches)();f&&f(new r.AbortException("Worker was terminated."));for(const e of g){t.push(e.finished);e.terminate()}return Promise.all(t).then((function(){k.destroy();k=null}))}));k.on("Ready",(function wphReady(t){!function setupDoc(e){function onSuccess(e){ensureNotTerminated();k.send("GetDoc",{pdfInfo:e})}function onFailure(e){ensureNotTerminated();if(e instanceof r.PasswordException){const t=new WorkerTask(`PasswordException: response ${e.code}`);startWorkerTask(t);k.sendWithPromise("PasswordRequest",e).then((function({password:e}){finishWorkerTask(t);a.updatePassword(e);pdfManagerReady()})).catch((function(){finishWorkerTask(t);k.send("DocException",e)}))}else e instanceof r.InvalidPDFException||e instanceof r.MissingPDFException||e instanceof r.UnexpectedResponseException||e instanceof r.UnknownErrorException?k.send("DocException",e):k.send("DocException",new r.UnknownErrorException(e.message,e.toString()))}function pdfManagerReady(){ensureNotTerminated();loadDocument(!1).then(onSuccess,(function(e){ensureNotTerminated();if(e instanceof u.XRefParseException){a.requestLoadedStream();a.onLoadedStream().then((function(){ensureNotTerminated();loadDocument(!0).then(onSuccess,onFailure)}))}else onFailure(e)}))}ensureNotTerminated();getPdfManager(e,{maxImageSize:e.maxImageSize,disableFontFace:e.disableFontFace,ignoreErrors:e.ignoreErrors,isEvalSupported:e.isEvalSupported,fontExtraProperties:e.fontExtraProperties,useSystemFonts:e.useSystemFonts,cMapUrl:e.cMapUrl,standardFontDataUrl:e.standardFontDataUrl},e.enableXfa).then((function(e){if(d){e.terminate(new r.AbortException("Worker was terminated."));throw new Error("Worker was terminated")}a=e;a.onLoadedStream().then((function(e){k.send("DataLoaded",{length:e.bytes.byteLength})}))})).then(pdfManagerReady,onFailure)}(e);e=null}));return x}static initializeFromPort(e){const t=new l.MessageHandler("worker","main",e);WorkerMessageHandler.setup(t,e);t.send("ready",null)}}t.WorkerMessageHandler=WorkerMessageHandler;"undefined"==typeof window&&!c.isNodeJS&&"undefined"!=typeof self&&function isMessagePort(e){return"function"==typeof e.postMessage&&"onmessage"in e}(self)&&WorkerMessageHandler.initializeFromPort(self)},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.VerbosityLevel=t.Util=t.UnknownErrorException=t.UnexpectedResponseException=t.UNSUPPORTED_FEATURES=t.TextRenderingMode=t.StreamType=t.RenderingIntentFlag=t.PermissionFlag=t.PasswordResponses=t.PasswordException=t.PageActionEventType=t.OPS=t.MissingPDFException=t.InvalidPDFException=t.ImageKind=t.IDENTITY_MATRIX=t.FormatError=t.FontType=t.FeatureTest=t.FONT_IDENTITY_MATRIX=t.DocumentActionEventType=t.CMapCompressionType=t.BaseException=t.AnnotationType=t.AnnotationStateModelType=t.AnnotationReviewState=t.AnnotationReplyType=t.AnnotationMode=t.AnnotationMarkedState=t.AnnotationFlag=t.AnnotationFieldFlag=t.AnnotationBorderStyleType=t.AnnotationActionEventType=t.AbortException=void 0;t.arrayByteLength=arrayByteLength;t.arraysToBytes=function arraysToBytes(e){const t=e.length;if(1===t&&e[0]instanceof Uint8Array)return e[0];let a=0;for(let r=0;rt});e.promise=new Promise((function(a,r){e.resolve=function(e){t=!0;a(e)};e.reject=function(e){t=!0;r(e)}}));return e};t.createValidAbsoluteUrl=function createValidAbsoluteUrl(e,t=null,a=null){if(!e)return null;try{if(a&&"string"==typeof e){if(a.addDefaultProtocol&&e.startsWith("www.")){const t=e.match(/\./g);t&&t.length>=2&&(e=`http://${e}`)}if(a.tryConvertEncoding)try{e=stringToUTF8String(e)}catch(e){}}const r=t?new URL(e,t):new URL(e);if(function _isValidProtocol(e){if(!e)return!1;switch(e.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}(r))return r}catch(e){}return null};t.escapeString=function escapeString(e){return e.replace(/([()\\\n\r])/g,(e=>"\n"===e?"\\n":"\r"===e?"\\r":`\\${e}`))};t.getModificationDate=function getModificationDate(e=new Date){return[e.getUTCFullYear().toString(),(e.getUTCMonth()+1).toString().padStart(2,"0"),e.getUTCDate().toString().padStart(2,"0"),e.getUTCHours().toString().padStart(2,"0"),e.getUTCMinutes().toString().padStart(2,"0"),e.getUTCSeconds().toString().padStart(2,"0")].join("")};t.getVerbosityLevel=function getVerbosityLevel(){return n};t.info=function info(e){n>=r.INFOS&&console.log(`Info: ${e}`)};t.isArrayBuffer=function isArrayBuffer(e){return"object"==typeof e&&null!==e&&void 0!==e.byteLength};t.isArrayEqual=function isArrayEqual(e,t){if(e.length!==t.length)return!1;for(let a=0,r=e.length;a>24&255,e>>16&255,e>>8&255,255&e)};t.stringToBytes=stringToBytes;t.stringToPDFString=function stringToPDFString(e){if(e[0]>="ï"){let t;"þ"===e[0]&&"ÿ"===e[1]?t="utf-16be":"ÿ"===e[0]&&"þ"===e[1]?t="utf-16le":"ï"===e[0]&&"»"===e[1]&&"¿"===e[2]&&(t="utf-8");if(t)try{const a=new TextDecoder(t,{fatal:!0}),r=stringToBytes(e);return a.decode(r)}catch(e){warn(`stringToPDFString: "${e}".`)}}const t=[];for(let a=0,r=e.length;a>8&255),String.fromCharCode(255&r))}return t.join("")};t.stringToUTF8String=stringToUTF8String;t.unreachable=unreachable;t.utf8StringToString=function utf8StringToString(e){return unescape(encodeURIComponent(e))};t.warn=warn;a(3);t.IDENTITY_MATRIX=[1,0,0,1,0,0];t.FONT_IDENTITY_MATRIX=[.001,0,0,.001,0,0];t.RenderingIntentFlag={ANY:1,DISPLAY:2,PRINT:4,ANNOTATIONS_FORMS:16,ANNOTATIONS_STORAGE:32,ANNOTATIONS_DISABLE:64,OPLIST:256};t.AnnotationMode={DISABLE:0,ENABLE:1,ENABLE_FORMS:2,ENABLE_STORAGE:3};t.PermissionFlag={PRINT:4,MODIFY_CONTENTS:8,COPY:16,MODIFY_ANNOTATIONS:32,FILL_INTERACTIVE_FORMS:256,COPY_FOR_ACCESSIBILITY:512,ASSEMBLE:1024,PRINT_HIGH_QUALITY:2048};t.TextRenderingMode={FILL:0,STROKE:1,FILL_STROKE:2,INVISIBLE:3,FILL_ADD_TO_PATH:4,STROKE_ADD_TO_PATH:5,FILL_STROKE_ADD_TO_PATH:6,ADD_TO_PATH:7,FILL_STROKE_MASK:3,ADD_TO_PATH_FLAG:4};t.ImageKind={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3};t.AnnotationType={TEXT:1,LINK:2,FREETEXT:3,LINE:4,SQUARE:5,CIRCLE:6,POLYGON:7,POLYLINE:8,HIGHLIGHT:9,UNDERLINE:10,SQUIGGLY:11,STRIKEOUT:12,STAMP:13,CARET:14,INK:15,POPUP:16,FILEATTACHMENT:17,SOUND:18,MOVIE:19,WIDGET:20,SCREEN:21,PRINTERMARK:22,TRAPNET:23,WATERMARK:24,THREED:25,REDACT:26};t.AnnotationStateModelType={MARKED:"Marked",REVIEW:"Review"};t.AnnotationMarkedState={MARKED:"Marked",UNMARKED:"Unmarked"};t.AnnotationReviewState={ACCEPTED:"Accepted",REJECTED:"Rejected",CANCELLED:"Cancelled",COMPLETED:"Completed",NONE:"None"};t.AnnotationReplyType={GROUP:"Group",REPLY:"R"};t.AnnotationFlag={INVISIBLE:1,HIDDEN:2,PRINT:4,NOZOOM:8,NOROTATE:16,NOVIEW:32,READONLY:64,LOCKED:128,TOGGLENOVIEW:256,LOCKEDCONTENTS:512};t.AnnotationFieldFlag={READONLY:1,REQUIRED:2,NOEXPORT:4,MULTILINE:4096,PASSWORD:8192,NOTOGGLETOOFF:16384,RADIO:32768,PUSHBUTTON:65536,COMBO:131072,EDIT:262144,SORT:524288,FILESELECT:1048576,MULTISELECT:2097152,DONOTSPELLCHECK:4194304,DONOTSCROLL:8388608,COMB:16777216,RICHTEXT:33554432,RADIOSINUNISON:33554432,COMMITONSELCHANGE:67108864};t.AnnotationBorderStyleType={SOLID:1,DASHED:2,BEVELED:3,INSET:4,UNDERLINE:5};t.AnnotationActionEventType={E:"Mouse Enter",X:"Mouse Exit",D:"Mouse Down",U:"Mouse Up",Fo:"Focus",Bl:"Blur",PO:"PageOpen",PC:"PageClose",PV:"PageVisible",PI:"PageInvisible",K:"Keystroke",F:"Format",V:"Validate",C:"Calculate"};t.DocumentActionEventType={WC:"WillClose",WS:"WillSave",DS:"DidSave",WP:"WillPrint",DP:"DidPrint"};t.PageActionEventType={O:"PageOpen",C:"PageClose"};t.StreamType={UNKNOWN:"UNKNOWN",FLATE:"FLATE",LZW:"LZW",DCT:"DCT",JPX:"JPX",JBIG:"JBIG",A85:"A85",AHX:"AHX",CCF:"CCF",RLX:"RLX"};t.FontType={UNKNOWN:"UNKNOWN",TYPE1:"TYPE1",TYPE1STANDARD:"TYPE1STANDARD",TYPE1C:"TYPE1C",CIDFONTTYPE0:"CIDFONTTYPE0",CIDFONTTYPE0C:"CIDFONTTYPE0C",TRUETYPE:"TRUETYPE",CIDFONTTYPE2:"CIDFONTTYPE2",TYPE3:"TYPE3",OPENTYPE:"OPENTYPE",TYPE0:"TYPE0",MMTYPE1:"MMTYPE1"};const r={ERRORS:0,WARNINGS:1,INFOS:5};t.VerbosityLevel=r;t.CMapCompressionType={NONE:0,BINARY:1,STREAM:2};t.OPS={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotations:78,endAnnotations:79,beginAnnotation:80,endAnnotation:81,paintJpegXObject:82,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91};t.UNSUPPORTED_FEATURES={unknown:"unknown",forms:"forms",javaScript:"javaScript",signatures:"signatures",smask:"smask",shadingPattern:"shadingPattern",font:"font",errorTilingPattern:"errorTilingPattern",errorExtGState:"errorExtGState",errorXObject:"errorXObject",errorFontLoadType3:"errorFontLoadType3",errorFontState:"errorFontState",errorFontMissing:"errorFontMissing",errorFontTranslate:"errorFontTranslate",errorColorSpace:"errorColorSpace",errorOperatorList:"errorOperatorList",errorFontToUnicode:"errorFontToUnicode",errorFontLoadNative:"errorFontLoadNative",errorFontBuildPath:"errorFontBuildPath",errorFontGetPath:"errorFontGetPath",errorMarkedContent:"errorMarkedContent",errorContentSubStream:"errorContentSubStream"};t.PasswordResponses={NEED_PASSWORD:1,INCORRECT_PASSWORD:2};let n=r.WARNINGS;function warn(e){n>=r.WARNINGS&&console.log(`Warning: ${e}`)}function unreachable(e){throw new Error(e)}function shadow(e,t,a){Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!1});return a}const i=function BaseExceptionClosure(){function BaseException(e,t){this.constructor===BaseException&&unreachable("Cannot initialize BaseException.");this.message=e;this.name=t}BaseException.prototype=new Error;BaseException.constructor=BaseException;return BaseException}();t.BaseException=i;t.PasswordException=class PasswordException extends i{constructor(e,t){super(e,"PasswordException");this.code=t}};t.UnknownErrorException=class UnknownErrorException extends i{constructor(e,t){super(e,"UnknownErrorException");this.details=t}};t.InvalidPDFException=class InvalidPDFException extends i{constructor(e){super(e,"InvalidPDFException")}};t.MissingPDFException=class MissingPDFException extends i{constructor(e){super(e,"MissingPDFException")}};t.UnexpectedResponseException=class UnexpectedResponseException extends i{constructor(e,t){super(e,"UnexpectedResponseException");this.status=t}};t.FormatError=class FormatError extends i{constructor(e){super(e,"FormatError")}};t.AbortException=class AbortException extends i{constructor(e){super(e,"AbortException")}};function stringToBytes(e){"string"!=typeof e&&unreachable("Invalid argument for stringToBytes");const t=e.length,a=new Uint8Array(t);for(let r=0;re.toString(16).padStart(2,"0")));class Util{static makeHexColor(e,t,a){return`#${s[e]}${s[t]}${s[a]}`}static scaleMinMax(e,t){let a;if(e[0]){if(e[0]<0){a=t[0];t[0]=t[1];t[1]=a}t[0]*=e[0];t[1]*=e[0];if(e[3]<0){a=t[2];t[2]=t[3];t[3]=a}t[2]*=e[3];t[3]*=e[3]}else{a=t[0];t[0]=t[2];t[2]=a;a=t[1];t[1]=t[3];t[3]=a;if(e[1]<0){a=t[2];t[2]=t[3];t[3]=a}t[2]*=e[1];t[3]*=e[1];if(e[2]<0){a=t[0];t[0]=t[1];t[1]=a}t[0]*=e[2];t[1]*=e[2]}t[0]+=e[4];t[1]+=e[4];t[2]+=e[5];t[3]+=e[5]}static transform(e,t){return[e[0]*t[0]+e[2]*t[1],e[1]*t[0]+e[3]*t[1],e[0]*t[2]+e[2]*t[3],e[1]*t[2]+e[3]*t[3],e[0]*t[4]+e[2]*t[5]+e[4],e[1]*t[4]+e[3]*t[5]+e[5]]}static applyTransform(e,t){return[e[0]*t[0]+e[1]*t[2]+t[4],e[0]*t[1]+e[1]*t[3]+t[5]]}static applyInverseTransform(e,t){const a=t[0]*t[3]-t[1]*t[2];return[(e[0]*t[3]-e[1]*t[2]+t[2]*t[5]-t[4]*t[3])/a,(-e[0]*t[1]+e[1]*t[0]+t[4]*t[1]-t[5]*t[0])/a]}static getAxialAlignedBoundingBox(e,t){const a=Util.applyTransform(e,t),r=Util.applyTransform(e.slice(2,4),t),n=Util.applyTransform([e[0],e[3]],t),i=Util.applyTransform([e[2],e[1]],t);return[Math.min(a[0],r[0],n[0],i[0]),Math.min(a[1],r[1],n[1],i[1]),Math.max(a[0],r[0],n[0],i[0]),Math.max(a[1],r[1],n[1],i[1])]}static inverseTransform(e){const t=e[0]*e[3]-e[1]*e[2];return[e[3]/t,-e[1]/t,-e[2]/t,e[0]/t,(e[2]*e[5]-e[4]*e[3])/t,(e[4]*e[1]-e[5]*e[0])/t]}static apply3dTransform(e,t){return[e[0]*t[0]+e[1]*t[1]+e[2]*t[2],e[3]*t[0]+e[4]*t[1]+e[5]*t[2],e[6]*t[0]+e[7]*t[1]+e[8]*t[2]]}static singularValueDecompose2dScale(e){const t=[e[0],e[2],e[1],e[3]],a=e[0]*t[0]+e[1]*t[2],r=e[0]*t[1]+e[1]*t[3],n=e[2]*t[0]+e[3]*t[2],i=e[2]*t[1]+e[3]*t[3],s=(a+i)/2,o=Math.sqrt((a+i)**2-4*(a*i-n*r))/2,c=s+o||1,l=s-o||1;return[Math.sqrt(c),Math.sqrt(l)]}static normalizeRect(e){const t=e.slice(0);if(e[0]>e[2]){t[0]=e[2];t[2]=e[0]}if(e[1]>e[3]){t[1]=e[3];t[3]=e[1]}return t}static intersect(e,t){const a=Math.max(Math.min(e[0],e[2]),Math.min(t[0],t[2])),r=Math.min(Math.max(e[0],e[2]),Math.max(t[0],t[2]));if(a>r)return null;const n=Math.max(Math.min(e[1],e[3]),Math.min(t[1],t[3])),i=Math.min(Math.max(e[1],e[3]),Math.max(t[1],t[3]));return n>i?null:[a,n,r,i]}static bezierBoundingBox(e,t,a,r,n,i,s,o){const c=[],l=[[],[]];let h,u,d,f,g,p,m,b;for(let l=0;l<2;++l){if(0===l){u=6*e-12*a+6*n;h=-3*e+9*a-9*n+3*s;d=3*a-3*e}else{u=6*t-12*r+6*i;h=-3*t+9*r-9*i+3*o;d=3*r-3*t}if(Math.abs(h)<1e-12){if(Math.abs(u)<1e-12)continue;f=-d/u;0{a(4)},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.isNodeJS=void 0;const a=!("object"!=typeof process||process+""!="[object process]"||process.versions.nw||process.versions.electron&&process.type&&"browser"!==process.type);t.isNodeJS=a},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.RefSetCache=t.RefSet=t.Ref=t.Name=t.EOF=t.Dict=t.Cmd=t.CIRCULAR_REF=void 0;t.clearPrimitiveCaches=function clearPrimitiveCaches(){o._clearCache();s._clearCache();l._clearCache()};t.isCmd=function isCmd(e,t){return e instanceof o&&(void 0===t||e.cmd===t)};t.isDict=function isDict(e,t){return e instanceof Dict&&(void 0===t||isName(e.get("Type"),t))};t.isName=isName;t.isRefsEqual=function isRefsEqual(e,t){return e.num===t.num&&e.gen===t.gen};var r=a(2);const n=Symbol("CIRCULAR_REF");t.CIRCULAR_REF=n;const i=Symbol("EOF");t.EOF=i;const s=function NameClosure(){let e=Object.create(null);class Name{constructor(e){this.name=e}static get(t){const a=e[t];return a||(e[t]=new Name(t))}static _clearCache(){e=Object.create(null)}}return Name}();t.Name=s;const o=function CmdClosure(){let e=Object.create(null);class Cmd{constructor(e){this.cmd=e}static get(t){const a=e[t];return a||(e[t]=new Cmd(t))}static _clearCache(){e=Object.create(null)}}return Cmd}();t.Cmd=o;const c=function nonSerializableClosure(){return c};class Dict{constructor(e=null){this._map=Object.create(null);this.xref=e;this.objId=null;this.suppressEncryption=!1;this.__nonSerializable__=c}assignXref(e){this.xref=e}get size(){return Object.keys(this._map).length}get(e,t,a){let r=this._map[e];if(void 0===r&&void 0!==t){r=this._map[t];void 0===r&&void 0!==a&&(r=this._map[a])}return r instanceof l&&this.xref?this.xref.fetch(r,this.suppressEncryption):r}async getAsync(e,t,a){let r=this._map[e];if(void 0===r&&void 0!==t){r=this._map[t];void 0===r&&void 0!==a&&(r=this._map[a])}return r instanceof l&&this.xref?this.xref.fetchAsync(r,this.suppressEncryption):r}getArray(e,t,a){let r=this._map[e];if(void 0===r&&void 0!==t){r=this._map[t];void 0===r&&void 0!==a&&(r=this._map[a])}r instanceof l&&this.xref&&(r=this.xref.fetch(r,this.suppressEncryption));if(Array.isArray(r)){r=r.slice();for(let e=0,t=r.length;e{(0,r.unreachable)("Should not call `set` on the empty dictionary.")};return(0,r.shadow)(this,"empty",e)}static merge({xref:e,dictArray:t,mergeSubDicts:a=!1}){const r=new Dict(e),n=new Map;for(const e of t)if(e instanceof Dict)for(const[t,r]of Object.entries(e._map)){let e=n.get(t);if(void 0===e){e=[];n.set(t,e)}else if(!(a&&r instanceof Dict))continue;e.push(r)}for(const[t,a]of n){if(1===a.length||!(a[0]instanceof Dict)){r._map[t]=a[0];continue}const n=new Dict(e);for(const e of a)for(const[t,a]of Object.entries(e._map))void 0===n._map[t]&&(n._map[t]=a);n.size>0&&(r._map[t]=n)}n.clear();return r.size>0?r:Dict.empty}}t.Dict=Dict;const l=function RefClosure(){let e=Object.create(null);class Ref{constructor(e,t){this.num=e;this.gen=t}toString(){return 0===this.gen?`${this.num}R`:`${this.num}R${this.gen}`}static get(t,a){const r=0===a?`${t}R`:`${t}R${a}`,n=e[r];return n||(e[r]=new Ref(t,a))}static _clearCache(){e=Object.create(null)}}return Ref}();t.Ref=l;class RefSet{constructor(e=null){this._set=new Set(e&&e._set)}has(e){return this._set.has(e.toString())}put(e){this._set.add(e.toString())}remove(e){this._set.delete(e.toString())}[Symbol.iterator](){return this._set.values()}clear(){this._set.clear()}}t.RefSet=RefSet;class RefSetCache{constructor(){this._map=new Map}get size(){return this._map.size}get(e){return this._map.get(e.toString())}has(e){return this._map.has(e.toString())}put(e,t){this._map.set(e.toString(),t)}putAlias(e,t){this._map.set(e.toString(),this.get(t))}[Symbol.iterator](){return this._map.values()}clear(){this._map.clear()}}t.RefSetCache=RefSetCache;function isName(e,t){return e instanceof s&&(void 0===t||e.name===t)}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.NetworkPdfManager=t.LocalPdfManager=void 0;var r=a(2),n=a(7),i=a(8),s=a(11),o=a(10);function parseDocBaseUrl(e){if(e){const t=(0,r.createValidAbsoluteUrl)(e);if(t)return t.href;(0,r.warn)(`Invalid absolute docBaseUrl: "${e}".`)}return null}class BasePdfManager{constructor(){this.constructor===BasePdfManager&&(0,r.unreachable)("Cannot initialize BasePdfManager.")}get docId(){return this._docId}get password(){return this._password}get docBaseUrl(){const e=this.pdfDocument.catalog;return(0,r.shadow)(this,"docBaseUrl",e.baseUrl||this._docBaseUrl)}onLoadedStream(){(0,r.unreachable)("Abstract method `onLoadedStream` called")}ensureDoc(e,t){return this.ensure(this.pdfDocument,e,t)}ensureXRef(e,t){return this.ensure(this.pdfDocument.xref,e,t)}ensureCatalog(e,t){return this.ensure(this.pdfDocument.catalog,e,t)}getPage(e){return this.pdfDocument.getPage(e)}fontFallback(e,t){return this.pdfDocument.fontFallback(e,t)}loadXfaFonts(e,t){return this.pdfDocument.loadXfaFonts(e,t)}loadXfaImages(){return this.pdfDocument.loadXfaImages()}serializeXfaData(e){return this.pdfDocument.serializeXfaData(e)}cleanup(e=!1){return this.pdfDocument.cleanup(e)}async ensure(e,t,a){(0,r.unreachable)("Abstract method `ensure` called")}requestRange(e,t){(0,r.unreachable)("Abstract method `requestRange` called")}requestLoadedStream(){(0,r.unreachable)("Abstract method `requestLoadedStream` called")}sendProgressiveData(e){(0,r.unreachable)("Abstract method `sendProgressiveData` called")}updatePassword(e){this._password=e}terminate(e){(0,r.unreachable)("Abstract method `terminate` called")}}t.LocalPdfManager=class LocalPdfManager extends BasePdfManager{constructor(e,t,a,r,n,i,c){super();this._docId=e;this._password=a;this._docBaseUrl=parseDocBaseUrl(c);this.msgHandler=r;this.evaluatorOptions=n;this.enableXfa=i;const l=new o.Stream(t);this.pdfDocument=new s.PDFDocument(this,l);this._loadedStreamPromise=Promise.resolve(l)}async ensure(e,t,a){const r=e[t];return"function"==typeof r?r.apply(e,a):r}requestRange(e,t){return Promise.resolve()}requestLoadedStream(){}onLoadedStream(){return this._loadedStreamPromise}terminate(e){}};t.NetworkPdfManager=class NetworkPdfManager extends BasePdfManager{constructor(e,t,a,r,i,o){super();this._docId=e;this._password=a.password;this._docBaseUrl=parseDocBaseUrl(o);this.msgHandler=a.msgHandler;this.evaluatorOptions=r;this.enableXfa=i;this.streamManager=new n.ChunkedStreamManager(t,{msgHandler:a.msgHandler,length:a.length,disableAutoFetch:a.disableAutoFetch,rangeChunkSize:a.rangeChunkSize});this.pdfDocument=new s.PDFDocument(this,this.streamManager.getStream())}async ensure(e,t,a){try{const r=e[t];return"function"==typeof r?r.apply(e,a):r}catch(r){if(!(r instanceof i.MissingDataException))throw r;await this.requestRange(r.begin,r.end);return this.ensure(e,t,a)}}requestRange(e,t){return this.streamManager.requestRange(e,t)}requestLoadedStream(){this.streamManager.requestAllChunks()}sendProgressiveData(e){this.streamManager.onReceiveData({chunk:e})}onLoadedStream(){return this.streamManager.onLoadedStream()}terminate(e){this.streamManager.abort(e)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ChunkedStreamManager=t.ChunkedStream=void 0;var r=a(2),n=a(8),i=a(10);class ChunkedStream extends i.Stream{constructor(e,t,a){super(new Uint8Array(e),0,e,null);this.chunkSize=t;this._loadedChunks=new Set;this.numChunks=Math.ceil(e/t);this.manager=a;this.progressiveDataLength=0;this.lastSuccessfulEnsureByteChunk=-1}getMissingChunks(){const e=[];for(let t=0,a=this.numChunks;t=this.end?this.numChunks:Math.floor(t/this.chunkSize);for(let e=a;ethis.numChunks)&&t!==this.lastSuccessfulEnsureByteChunk){if(!this._loadedChunks.has(t))throw new n.MissingDataException(e,e+1);this.lastSuccessfulEnsureByteChunk=t}}ensureRange(e,t){if(e>=t)return;if(t<=this.progressiveDataLength)return;const a=Math.floor(e/this.chunkSize);if(a>this.numChunks)return;const r=Math.min(Math.floor((t-1)/this.chunkSize)+1,this.numChunks);for(let i=a;i=this.end)return-1;e>=this.progressiveDataLength&&this.ensureByte(e);return this.bytes[this.pos++]}getBytes(e){const t=this.bytes,a=this.pos,r=this.end;if(!e){r>this.progressiveDataLength&&this.ensureRange(a,r);return t.subarray(a,r)}let n=a+e;n>r&&(n=r);n>this.progressiveDataLength&&this.ensureRange(a,n);this.pos=n;return t.subarray(a,n)}getByteRange(e,t){e<0&&(e=0);t>this.end&&(t=this.end);t>this.progressiveDataLength&&this.ensureRange(e,t);return this.bytes.subarray(e,t)}makeSubStream(e,t,a=null){t?e+t>this.progressiveDataLength&&this.ensureRange(e,e+t):e>=this.progressiveDataLength&&this.ensureByte(e);function ChunkedStreamSubstream(){}ChunkedStreamSubstream.prototype=Object.create(this);ChunkedStreamSubstream.prototype.getMissingChunks=function(){const e=this.chunkSize,t=Math.floor(this.start/e),a=Math.floor((this.end-1)/e)+1,r=[];for(let e=t;e{const readChunk=s=>{try{if(!s.done){const e=s.value;n.push(e);i+=(0,r.arrayByteLength)(e);a.isStreamingSupported&&this.onProgress({loaded:i});a.read().then(readChunk,t);return}const o=(0,r.arraysToBytes)(n);n=null;e(o)}catch(e){t(e)}};a.read().then(readChunk,t)})).then((t=>{this.aborted||this.onReceiveData({chunk:t,begin:e})}))}requestAllChunks(){const e=this.stream.getMissingChunks();this._requestChunks(e);return this._loadedStreamCapability.promise}_requestChunks(e){const t=this.currRequestId++,a=new Set;this._chunksNeededByRequest.set(t,a);for(const t of e)this.stream.hasChunk(t)||a.add(t);if(0===a.size)return Promise.resolve();const n=(0,r.createPromiseCapability)();this._promisesByRequest.set(t,n);const i=[];for(const e of a){let a=this._requestsByChunk.get(e);if(!a){a=[];this._requestsByChunk.set(e,a);i.push(e)}a.push(t)}if(i.length>0){const e=this.groupChunks(i);for(const t of e){const e=t.beginChunk*this.chunkSize,a=Math.min(t.endChunk*this.chunkSize,this.length);this.sendRequest(e,a).catch(n.reject)}}return n.promise.catch((e=>{if(!this.aborted)throw e}))}getStream(){return this.stream}requestRange(e,t){t=Math.min(t,this.length);const a=this.getBeginChunk(e),r=this.getEndChunk(t),n=[];for(let e=a;e=0&&r+1!==i){t.push({beginChunk:a,endChunk:r+1});a=i}n+1===e.length&&t.push({beginChunk:a,endChunk:i+1});r=i}return t}onProgress(e){this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize+e.loaded,total:this.length})}onReceiveData(e){const t=e.chunk,a=void 0===e.begin,r=a?this.progressiveDataLength:e.begin,n=r+t.byteLength,i=Math.floor(r/this.chunkSize),s=n0||o.push(a)}}}if(!this.disableAutoFetch&&0===this._requestsByChunk.size){let e;if(1===this.stream.numChunksLoaded){const t=this.stream.numChunks-1;this.stream.hasChunk(t)||(e=t)}else e=this.stream.nextEmptyChunk(s);Number.isInteger(e)&&this._requestChunks([e])}for(const e of o){const t=this._promisesByRequest.get(e);this._promisesByRequest.delete(e);t.resolve()}this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize,total:this.length})}onError(e){this._loadedStreamCapability.reject(e)}getBeginChunk(e){return Math.floor(e/this.chunkSize)}getEndChunk(e){return Math.floor((e-1)/this.chunkSize)+1}abort(e){this.aborted=!0;this.pdfNetworkStream&&this.pdfNetworkStream.cancelAllRequests(e);for(const t of this._promisesByRequest.values())t.reject(e)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XRefParseException=t.XRefEntryException=t.ParserEOFException=t.MissingDataException=t.DocStats=void 0;t.collectActions=function collectActions(e,t,a){const i=Object.create(null),s=getInheritableProperty({dict:t,key:"AA",stopWhenFound:!1});if(s)for(let t=s.length-1;t>=0;t--){const r=s[t];if(r instanceof n.Dict)for(const t of r.getKeys()){const s=a[t];if(!s)continue;const o=r.getRaw(t),c=new n.RefSet,l=[];_collectJS(o,e,l,c);l.length>0&&(i[s]=l)}}if(t.has("A")){const a=t.get("A"),r=new n.RefSet,s=[];_collectJS(a,e,s,r);s.length>0&&(i.Action=s)}return(0,r.objectSize)(i)>0?i:null};t.encodeToXmlString=function encodeToXmlString(e){const t=[];let a=0;for(let r=0,n=e.length;r55295&&(n<57344||n>65533)&&r++;a=r+1}}if(0===t.length)return e;a126||35===n||40===n||41===n||60===n||62===n||91===n||93===n||123===n||125===n||47===n||37===n){a{const a=e.match(t);return a?{name:a[1],pos:parseInt(a[2],10)}:{name:e,pos:0}}))};t.readInt8=function readInt8(e,t){return e[t]<<24>>24};t.readUint16=function readUint16(e,t){return e[t]<<8|e[t+1]};t.readUint32=function readUint32(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0};t.recoverJsURL=function recoverJsURL(e){const t=new RegExp("^\\s*("+["app.launchURL","window.open","xfa.host.gotoURL"].join("|").split(".").join("\\.")+")\\((?:'|\")([^'\"]*)(?:'|\")(?:,\\s*(\\w+)\\)|\\))","i").exec(e);if(t&&t[2]){const e=t[2];let a=!1;"true"===t[3]&&"app.launchURL"===t[1]&&(a=!0);return{url:e,newWindow:a}}return null};t.toRomanNumerals=function toRomanNumerals(e,t=!1){(0,r.assert)(Number.isInteger(e)&&e>0,"The number should be a positive integer.");const a=[];let n;for(;e>=1e3;){e-=1e3;a.push("M")}n=e/100|0;e%=100;a.push(s[n]);n=e/10|0;e%=10;a.push(s[10+n]);a.push(s[20+e]);const i=a.join("");return t?i.toLowerCase():i};t.validateCSSFont=function validateCSSFont(e){const t=new Set(["100","200","300","400","500","600","700","800","900","1000","normal","bold","bolder","lighter"]),{fontFamily:a,fontWeight:n,italicAngle:i}=e;if(/^".*"$/.test(a)){if(/[^\\]"/.test(a.slice(1,a.length-1))){(0,r.warn)(`XFA - FontFamily contains some unescaped ": ${a}.`);return!1}}else if(/^'.*'$/.test(a)){if(/[^\\]'/.test(a.slice(1,a.length-1))){(0,r.warn)(`XFA - FontFamily contains some unescaped ': ${a}.`);return!1}}else for(const e of a.split(/[ \t]+/))if(/^(\d|(-(\d|-)))/.test(e)||!/^[\w-\\]+$/.test(e)){(0,r.warn)(`XFA - FontFamily contains some invalid : ${a}.`);return!1}const s=n?n.toString():"";e.fontWeight=t.has(s)?s:"400";const o=parseFloat(i);e.italicAngle=isNaN(o)||o<-90||o>90?"14":i.toString();return!0};var r=a(2),n=a(5),i=a(9);class MissingDataException extends r.BaseException{constructor(e,t){super(`Missing data [${e}, ${t})`,"MissingDataException");this.begin=e;this.end=t}}t.MissingDataException=MissingDataException;class ParserEOFException extends r.BaseException{constructor(e){super(e,"ParserEOFException")}}t.ParserEOFException=ParserEOFException;class XRefEntryException extends r.BaseException{constructor(e){super(e,"XRefEntryException")}}t.XRefEntryException=XRefEntryException;class XRefParseException extends r.BaseException{constructor(e){super(e,"XRefParseException")}}t.XRefParseException=XRefParseException;t.DocStats=class DocStats{constructor(e){this._handler=e;this._streamTypes=new Set;this._fontTypes=new Set}_send(){const e=Object.create(null),t=Object.create(null);for(const t of this._streamTypes)e[t]=!0;for(const e of this._fontTypes)t[e]=!0;this._handler.send("DocStats",{streamTypes:e,fontTypes:t})}addStreamType(e){if(!this._streamTypes.has(e)){this._streamTypes.add(e);this._send()}}addFontType(e){if(!this._fontTypes.has(e)){this._fontTypes.add(e);this._send()}}};function getInheritableProperty({dict:e,key:t,getArray:a=!1,stopWhenFound:r=!0}){let i;const s=new n.RefSet;for(;e instanceof n.Dict&&(!e.objId||!s.has(e.objId));){e.objId&&s.put(e.objId);const n=a?e.getArray(t):e.get(t);if(void 0!==n){if(r)return n;i||(i=[]);i.push(n)}e=e.get("Parent")}return i}const s=["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM","","X","XX","XXX","XL","L","LX","LXX","LXXX","XC","","I","II","III","IV","V","VI","VII","VIII","IX"];function _collectJS(e,t,a,s){if(!e)return;let o=null;if(e instanceof n.Ref){if(s.has(e))return;o=e;s.put(o);e=t.fetch(e)}if(Array.isArray(e))for(const r of e)_collectJS(r,t,a,s);else if(e instanceof n.Dict){if((0,n.isName)(e.get("S"),"JavaScript")){const t=e.get("JS");let n;t instanceof i.BaseStream?n=t.getString():"string"==typeof t&&(n=t);n=n&&(0,r.stringToPDFString)(n);n&&a.push(n)}_collectJS(e.getRaw("Next"),t,a,s)}o&&s.remove(o)}const o={60:"<",62:">",38:"&",34:""",39:"'"}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.BaseStream=void 0;var r=a(2);class BaseStream{constructor(){this.constructor===BaseStream&&(0,r.unreachable)("Cannot initialize BaseStream.")}get length(){(0,r.unreachable)("Abstract getter `length` accessed")}get isEmpty(){(0,r.unreachable)("Abstract getter `isEmpty` accessed")}get isDataLoaded(){return(0,r.shadow)(this,"isDataLoaded",!0)}getByte(){(0,r.unreachable)("Abstract method `getByte` called")}getBytes(e){(0,r.unreachable)("Abstract method `getBytes` called")}peekByte(){const e=this.getByte();-1!==e&&this.pos--;return e}peekBytes(e){const t=this.getBytes(e);this.pos-=t.length;return t}getUint16(){const e=this.getByte(),t=this.getByte();return-1===e||-1===t?-1:(e<<8)+t}getInt32(){return(this.getByte()<<24)+(this.getByte()<<16)+(this.getByte()<<8)+this.getByte()}getByteRange(e,t){(0,r.unreachable)("Abstract method `getByteRange` called")}getString(e){return(0,r.bytesToString)(this.getBytes(e))}skip(e){this.pos+=e||1}reset(){(0,r.unreachable)("Abstract method `reset` called")}moveStart(){(0,r.unreachable)("Abstract method `moveStart` called")}makeSubStream(e,t,a=null){(0,r.unreachable)("Abstract method `makeSubStream` called")}getBaseStreams(){return null}}t.BaseStream=BaseStream},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.StringStream=t.Stream=t.NullStream=void 0;var r=a(9),n=a(2);class Stream extends r.BaseStream{constructor(e,t,a,r){super();this.bytes=e instanceof Uint8Array?e:new Uint8Array(e);this.start=t||0;this.pos=this.start;this.end=t+a||this.bytes.length;this.dict=r}get length(){return this.end-this.start}get isEmpty(){return 0===this.length}getByte(){return this.pos>=this.end?-1:this.bytes[this.pos++]}getBytes(e){const t=this.bytes,a=this.pos,r=this.end;if(!e)return t.subarray(a,r);let n=a+e;n>r&&(n=r);this.pos=n;return t.subarray(a,n)}getByteRange(e,t){e<0&&(e=0);t>this.end&&(t=this.end);return this.bytes.subarray(e,t)}reset(){this.pos=this.start}moveStart(){this.start=this.pos}makeSubStream(e,t,a=null){return new Stream(this.bytes.buffer,e,t,a)}}t.Stream=Stream;t.StringStream=class StringStream extends Stream{constructor(e){super((0,n.stringToBytes)(e))}};t.NullStream=class NullStream extends Stream{constructor(){super(new Uint8Array(0))}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Page=t.PDFDocument=void 0;var r=a(2),n=a(8),i=a(5),s=a(12),o=a(22),c=a(9),l=a(74),h=a(65),u=a(67),d=a(100),f=a(27),g=a(10),p=a(72),m=a(62),b=a(25),y=a(29),w=a(71),S=a(76),x=a(101);const k=[0,0,612,792];class Page{constructor({pdfManager:e,xref:t,pageIndex:a,pageDict:r,ref:n,globalIdFactory:i,fontCache:s,builtInCMapCache:o,standardFontDataCache:c,globalImageCache:l,nonBlendModesSet:h,xfaFactory:u}){this.pdfManager=e;this.pageIndex=a;this.pageDict=r;this.xref=t;this.ref=n;this.fontCache=s;this.builtInCMapCache=o;this.standardFontDataCache=c;this.globalImageCache=l;this.nonBlendModesSet=h;this.evaluatorOptions=e.evaluatorOptions;this.resourcesPromise=null;this.xfaFactory=u;const d={obj:0};this._localIdFactory=class extends i{static createObjId(){return`p${a}_${++d.obj}`}static getPageObjId(){return`page${n.toString()}`}}}_getInheritableProperty(e,t=!1){const a=(0,n.getInheritableProperty)({dict:this.pageDict,key:e,getArray:t,stopWhenFound:!1});return Array.isArray(a)?1!==a.length&&a[0]instanceof i.Dict?i.Dict.merge({xref:this.xref,dictArray:a}):a[0]:a}get content(){return this.pageDict.getArray("Contents")}get resources(){return(0,r.shadow)(this,"resources",this._getInheritableProperty("Resources")||i.Dict.empty)}_getBoundingBox(e){if(this.xfaData)return this.xfaData.bbox;const t=this._getInheritableProperty(e,!0);if(Array.isArray(t)&&4===t.length){if(t[2]-t[0]!=0&&t[3]-t[1]!=0)return t;(0,r.warn)(`Empty /${e} entry.`)}return null}get mediaBox(){return(0,r.shadow)(this,"mediaBox",this._getBoundingBox("MediaBox")||k)}get cropBox(){return(0,r.shadow)(this,"cropBox",this._getBoundingBox("CropBox")||this.mediaBox)}get userUnit(){let e=this.pageDict.get("UserUnit");("number"!=typeof e||e<=0)&&(e=1);return(0,r.shadow)(this,"userUnit",e)}get view(){const{cropBox:e,mediaBox:t}=this;let a;if(e===t||(0,r.isArrayEqual)(e,t))a=t;else{const n=r.Util.intersect(e,t);n&&n[2]-n[0]!=0&&n[3]-n[1]!=0?a=n:(0,r.warn)("Empty /CropBox and /MediaBox intersection.")}return(0,r.shadow)(this,"view",a||t)}get rotate(){let e=this._getInheritableProperty("Rotate")||0;e%90!=0?e=0:e>=360?e%=360:e<0&&(e=(e%360+360)%360);return(0,r.shadow)(this,"rotate",e)}_onSubStreamError(e,t,a){if(!this.evaluatorOptions.ignoreErrors)throw t;e.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorContentSubStream});(0,r.warn)(`getContentStream - ignoring sub-stream (${a}): "${t}".`)}getContentStream(e){return this.pdfManager.ensure(this,"content").then((t=>t instanceof c.BaseStream?t:Array.isArray(t)?new y.StreamsSequenceStream(t,this._onSubStreamError.bind(this,e)):new g.NullStream))}get xfaData(){return(0,r.shadow)(this,"xfaData",this.xfaFactory?{bbox:this.xfaFactory.getBoundingBox(this.pageIndex)}:null)}save(e,t,a){const n=new b.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions});return this._parsedAnnotations.then((function(e){const i=[];for(const s of e)s.mustBePrinted(a)&&i.push(s.save(n,t,a).catch((function(e){(0,r.warn)(`save - ignoring annotation data during "${t.name}" task: "${e}".`);return null})));return Promise.all(i)}))}loadResources(e){this.resourcesPromise||(this.resourcesPromise=this.pdfManager.ensure(this,"resources"));return this.resourcesPromise.then((()=>new p.ObjectLoader(this.resources,e,this.xref).load()))}getOperatorList({handler:e,sink:t,task:a,intent:n,cacheKey:i,annotationStorage:s=null}){const o=this.getContentStream(e),c=this.loadResources(["ColorSpace","ExtGState","Font","Pattern","Properties","Shading","XObject"]),l=new b.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions}),h=Promise.all([o,c]).then((([r])=>{const s=new m.OperatorList(n,t);e.send("StartRenderPage",{transparency:l.hasBlendModes(this.resources,this.nonBlendModesSet),pageIndex:this.pageIndex,cacheKey:i});return l.getOperatorList({stream:r,task:a,resources:this.resources,operatorList:s}).then((function(){return s}))}));return Promise.all([h,this._parsedAnnotations]).then((function([e,t]){if(0===t.length||n&r.RenderingIntentFlag.ANNOTATIONS_DISABLE){e.flush(!0);return{length:e.totalLength}}const i=!!(n&r.RenderingIntentFlag.ANNOTATIONS_FORMS),o=!!(n&r.RenderingIntentFlag.ANY),c=!!(n&r.RenderingIntentFlag.DISPLAY),h=!!(n&r.RenderingIntentFlag.PRINT),u=[];for(const e of t)(o||c&&e.mustBeViewed(s)||h&&e.mustBePrinted(s))&&u.push(e.getOperatorList(l,a,n,i,s).catch((function(e){(0,r.warn)(`getOperatorList - ignoring annotation data during "${a.name}" task: "${e}".`);return null})));return Promise.all(u).then((function(t){e.addOp(r.OPS.beginAnnotations,[]);for(const a of t)e.addOpList(a);e.addOp(r.OPS.endAnnotations,[]);e.flush(!0);return{length:e.totalLength}}))}))}extractTextContent({handler:e,task:t,includeMarkedContent:a,sink:r,combineTextItems:n}){const i=this.getContentStream(e),s=this.loadResources(["ExtGState","Font","Properties","XObject"]);return Promise.all([i,s]).then((([i])=>new b.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions}).getTextContent({stream:i,task:t,resources:this.resources,includeMarkedContent:a,combineTextItems:n,sink:r,viewBox:this.view})))}async getStructTree(){const e=await this.pdfManager.ensureCatalog("structTreeRoot");if(!e)return null;return(await this.pdfManager.ensure(this,"_parseStructTree",[e])).serializable}_parseStructTree(e){const t=new w.StructTreePage(e,this.pageDict);t.parse();return t}getAnnotationsData(e){return this._parsedAnnotations.then((function(t){const a=[];if(0===t.length)return a;const n=!!(e&r.RenderingIntentFlag.ANY),i=!!(e&r.RenderingIntentFlag.DISPLAY),s=!!(e&r.RenderingIntentFlag.PRINT);for(const e of t)(n||i&&e.viewable||s&&e.printable)&&a.push(e.data);return a}))}get annotations(){const e=this._getInheritableProperty("Annots");return(0,r.shadow)(this,"annotations",Array.isArray(e)?e:[])}get _parsedAnnotations(){const e=this.pdfManager.ensure(this,"annotations").then((()=>{const e=[];for(const t of this.annotations)e.push(o.AnnotationFactory.create(this.xref,t,this.pdfManager,this._localIdFactory,!1).catch((function(e){(0,r.warn)(`_parsedAnnotations: "${e}".`);return null})));return Promise.all(e).then((function(e){return e.filter((e=>!!e))}))}));return(0,r.shadow)(this,"_parsedAnnotations",e)}get jsActions(){const e=(0,n.collectActions)(this.xref,this.pageDict,r.PageActionEventType);return(0,r.shadow)(this,"jsActions",e)}}t.Page=Page;const C=new Uint8Array([37,80,68,70,45]),v=new Uint8Array([115,116,97,114,116,120,114,101,102]),F=new Uint8Array([101,110,100,111,98,106]),O=/^[1-9]\.\d$/;function find(e,t,a=1024,r=!1){const n=t.length,i=e.peekBytes(a),s=i.length-n;if(s<=0)return!1;if(r){const a=n-1;let r=i.length-1;for(;r>=a;){let s=0;for(;s=n){e.pos+=r-a;return!0}r--}}else{let a=0;for(;a<=s;){let r=0;for(;r=n){e.pos+=a;return!0}a++}}return!1}t.PDFDocument=class PDFDocument{constructor(e,t){if(t.length<=0)throw new r.InvalidPDFException("The PDF file is empty, i.e. its size is zero bytes.");this.pdfManager=e;this.stream=t;this.xref=new x.XRef(t,e);this._pagePromises=new Map;this._version=null;const a={font:0};this._globalIdFactory=class{static getDocId(){return`g_${e.docId}`}static createFontId(){return"f"+ ++a.font}static createObjId(){(0,r.unreachable)("Abstract method `createObjId` called.")}static getPageObjId(){(0,r.unreachable)("Abstract method `getPageObjId` called.")}}}parse(e){this.xref.parse(e);this.catalog=new h.Catalog(this.pdfManager,this.xref);this.catalog.version&&(this._version=this.catalog.version)}get linearization(){let e=null;try{e=f.Linearization.create(this.stream)}catch(e){if(e instanceof n.MissingDataException)throw e;(0,r.info)(e)}return(0,r.shadow)(this,"linearization",e)}get startXRef(){const e=this.stream;let t=0;if(this.linearization){e.reset();find(e,F)&&(t=e.pos+6-e.start)}else{const a=1024,r=v.length;let i=!1,s=e.end;for(;!i&&s>0;){s-=a-r;s<0&&(s=0);e.pos=s;i=find(e,v,a,!0)}if(i){e.skip(9);let a;do{a=e.getByte()}while((0,n.isWhiteSpace)(a));let r="";for(;a>=32&&a<=57;){r+=String.fromCharCode(a);a=e.getByte()}t=parseInt(r,10);isNaN(t)&&(t=0)}}return(0,r.shadow)(this,"startXRef",t)}checkHeader(){const e=this.stream;e.reset();if(!find(e,C))return;e.moveStart();let t,a="";for(;(t=e.getByte())>32&&!(a.length>=12);)a+=String.fromCharCode(t);this._version||(this._version=a.substring(5))}parseStartXRef(){this.xref.setStartXRef(this.startXRef)}get numPages(){let e=0;e=this.catalog.hasActualNumPages?this.catalog.numPages:this.xfaFactory?this.xfaFactory.getNumPages():this.linearization?this.linearization.numPages:this.catalog.numPages;return(0,r.shadow)(this,"numPages",e)}_hasOnlyDocumentSignatures(e,t=0){return!!Array.isArray(e)&&e.every((e=>{if(!((e=this.xref.fetchIfRef(e))instanceof i.Dict))return!1;if(e.has("Kids")){if(++t>10){(0,r.warn)("_hasOnlyDocumentSignatures: maximum recursion depth reached");return!1}return this._hasOnlyDocumentSignatures(e.get("Kids"),t)}const a=(0,i.isName)(e.get("FT"),"Sig"),n=e.get("Rect"),s=Array.isArray(n)&&n.every((e=>0===e));return a&&s}))}get _xfaStreams(){const e=this.catalog.acroForm;if(!e)return null;const t=e.get("XFA"),a={"xdp:xdp":"",template:"",datasets:"",config:"",connectionSet:"",localeSet:"",stylesheet:"","/xdp:xdp":""};if(t instanceof c.BaseStream&&!t.isEmpty){a["xdp:xdp"]=t;return a}if(!Array.isArray(t)||0===t.length)return null;for(let e=0,r=t.length;e{y.set(e,t)}));const w=[];for(const[e,a]of y){const s=a.get("FontDescriptor");if(!(s instanceof i.Dict))continue;let c=s.get("FontFamily");c=c.replace(/[ ]+(\d)/g,"$1");const l={fontFamily:c,fontWeight:s.get("FontWeight"),italicAngle:-s.get("ItalicAngle")};(0,n.validateCSSFont)(l)&&w.push(u.handleSetFont(o,[i.Name.get(e),1],null,d,t,g,null,l).catch((function(e){(0,r.warn)(`loadXfaFonts: "${e}".`);return null})))}await Promise.all(w);const S=this.xfaFactory.setFonts(f);if(!S)return;h.ignoreErrors=!0;w.length=0;f.length=0;const x=new Set;for(const e of S)(0,s.getXfaFontName)(`${e}-Regular`)||x.add(e);x.size&&S.push("PdfJS-Fallback");for(const e of S)if(!x.has(e))for(const a of[{name:"Regular",fontWeight:400,italicAngle:0},{name:"Bold",fontWeight:700,italicAngle:0},{name:"Italic",fontWeight:400,italicAngle:12},{name:"BoldItalic",fontWeight:700,italicAngle:12}]){const n=`${e}-${a.name}`,c=(0,s.getXfaFontDict)(n);w.push(u.handleSetFont(o,[i.Name.get(n),1],null,d,t,g,c,{fontFamily:e,fontWeight:a.fontWeight,italicAngle:a.italicAngle}).catch((function(e){(0,r.warn)(`loadXfaFonts: "${e}".`);return null})))}await Promise.all(w);this.xfaFactory.appendFonts(f,x)}async serializeXfaData(e){return this.xfaFactory?this.xfaFactory.serializeData(e):null}get formInfo(){const e={hasFields:!1,hasAcroForm:!1,hasXfa:!1,hasSignatures:!1},t=this.catalog.acroForm;if(!t)return(0,r.shadow)(this,"formInfo",e);try{const a=t.get("Fields"),r=Array.isArray(a)&&a.length>0;e.hasFields=r;const n=t.get("XFA");e.hasXfa=Array.isArray(n)&&n.length>0||n instanceof c.BaseStream&&!n.isEmpty;const i=!!(1&t.get("SigFlags")),s=i&&this._hasOnlyDocumentSignatures(a);e.hasAcroForm=r&&!s;e.hasSignatures=i}catch(e){if(e instanceof n.MissingDataException)throw e;(0,r.warn)(`Cannot fetch form information: "${e}".`)}return(0,r.shadow)(this,"formInfo",e)}get documentInfo(){let e=this._version;if("string"!=typeof e||!O.test(e)){(0,r.warn)(`Invalid PDF header version number: ${e}`);e=null}const t={PDFFormatVersion:e,Language:this.catalog.lang,EncryptFilterName:this.xref.encrypt?this.xref.encrypt.filterName:null,IsLinearized:!!this.linearization,IsAcroFormPresent:this.formInfo.hasAcroForm,IsXFAPresent:this.formInfo.hasXfa,IsCollectionPresent:!!this.catalog.collection,IsSignaturesPresent:this.formInfo.hasSignatures};let a;try{a=this.xref.trailer.get("Info")}catch(e){if(e instanceof n.MissingDataException)throw e;(0,r.info)("The document information dictionary is invalid.")}if(!(a instanceof i.Dict))return(0,r.shadow)(this,"documentInfo",t);for(const e of a.getKeys()){const n=a.get(e);switch(e){case"Title":case"Author":case"Subject":case"Keywords":case"Creator":case"Producer":case"CreationDate":case"ModDate":if("string"==typeof n){t[e]=(0,r.stringToPDFString)(n);continue}break;case"Trapped":if(n instanceof i.Name){t[e]=n;continue}break;default:let a;switch(typeof n){case"string":a=(0,r.stringToPDFString)(n);break;case"number":case"boolean":a=n;break;default:n instanceof i.Name&&(a=n)}if(void 0===a){(0,r.warn)(`Bad value, for custom key "${e}", in Info: ${n}.`);continue}t.Custom||(t.Custom=Object.create(null));t.Custom[e]=a;continue}(0,r.warn)(`Bad value, for key "${e}", in Info: ${n}.`)}return(0,r.shadow)(this,"documentInfo",t)}get fingerprints(){function validate(e){return"string"==typeof e&&e.length>0&&"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"!==e}function hexString(e){const t=[];for(let a=0,r=e.length;anew Page({pdfManager:this.pdfManager,xref:this.xref,pageIndex:e,pageDict:t,ref:r,globalIdFactory:this._globalIdFactory,fontCache:a.fontCache,builtInCMapCache:a.builtInCMapCache,standardFontDataCache:a.standardFontDataCache,globalImageCache:a.globalImageCache,nonBlendModesSet:a.nonBlendModesSet,xfaFactory:n})));this._pagePromises.set(e,s);return s}async checkFirstPage(e=!1){if(!e)try{await this.getPage(0)}catch(e){if(e instanceof n.XRefEntryException){this._pagePromises.delete(0);await this.cleanup();throw new n.XRefParseException}}}async checkLastPage(e=!1){const{catalog:t,pdfManager:a}=this;t.setActualNumPages();let i;try{await Promise.all([a.ensureDoc("xfaFactory"),a.ensureDoc("linearization"),a.ensureCatalog("numPages")]);if(this.xfaFactory)return;i=this.linearization?this.linearization.numPages:t.numPages;if(!Number.isInteger(i))throw new r.FormatError("Page count is not an integer.");if(i<=1)return;await this.getPage(i-1)}catch(s){this._pagePromises.delete(i-1);await this.cleanup();if(s instanceof n.XRefEntryException&&!e)throw new n.XRefParseException;(0,r.warn)(`checkLastPage - invalid /Pages tree /Count: ${i}.`);let o;try{o=await t.getAllPageDicts(e)}catch(a){if(a instanceof n.XRefEntryException&&!e)throw new n.XRefParseException;t.setActualNumPages(1);return}for(const[e,[r,n]]of o){let i;if(r instanceof Error){i=Promise.reject(r);i.catch((()=>{}))}else i=Promise.resolve(new Page({pdfManager:a,xref:this.xref,pageIndex:e,pageDict:r,ref:n,globalIdFactory:this._globalIdFactory,fontCache:t.fontCache,builtInCMapCache:t.builtInCMapCache,standardFontDataCache:t.standardFontDataCache,globalImageCache:t.globalImageCache,nonBlendModesSet:t.nonBlendModesSet,xfaFactory:null}));this._pagePromises.set(e,i)}t.setActualNumPages(o.size)}}fontFallback(e,t){return this.catalog.fontFallback(e,t)}async cleanup(e=!1){return this.catalog?this.catalog.cleanup(e):(0,u.clearGlobalCaches)()}_collectFieldObjects(e,t,a){const n=this.xref.fetchIfRef(t);if(n.has("T")){const t=(0,r.stringToPDFString)(n.get("T"));e=""===e?t:`${e}.${t}`}a.has(e)||a.set(e,[]);a.get(e).push(o.AnnotationFactory.create(this.xref,t,this.pdfManager,this._localIdFactory,!0).then((e=>e&&e.getFieldObject())).catch((function(e){(0,r.warn)(`_collectFieldObjects: "${e}".`);return null})));if(n.has("Kids")){const t=n.get("Kids");for(const r of t)this._collectFieldObjects(e,r,a)}}get fieldObjects(){if(!this.formInfo.hasFields)return(0,r.shadow)(this,"fieldObjects",Promise.resolve(null));const e=Object.create(null),t=new Map;for(const e of this.catalog.acroForm.get("Fields"))this._collectFieldObjects("",e,t);const a=[];for(const[r,n]of t)a.push(Promise.all(n).then((t=>{(t=t.filter((e=>!!e))).length>0&&(e[r]=t)})));return(0,r.shadow)(this,"fieldObjects",Promise.all(a).then((()=>e)))}get hasJSActions(){const e=this.pdfManager.ensureDoc("_parseHasJSActions");return(0,r.shadow)(this,"hasJSActions",e)}async _parseHasJSActions(){const[e,t]=await Promise.all([this.pdfManager.ensureCatalog("jsActions"),this.pdfManager.ensureDoc("fieldObjects")]);return!!e||!!t&&Object.values(t).some((e=>e.some((e=>null!==e.actions))))}get calculationOrderIds(){const e=this.catalog.acroForm;if(!e||!e.has("CO"))return(0,r.shadow)(this,"calculationOrderIds",null);const t=e.get("CO");if(!Array.isArray(t)||0===t.length)return(0,r.shadow)(this,"calculationOrderIds",null);const a=[];for(const e of t)e instanceof i.Ref&&a.push(e.toString());return 0===a.length?(0,r.shadow)(this,"calculationOrderIds",null):(0,r.shadow)(this,"calculationOrderIds",a)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.getXfaFontDict=function getXfaFontDict(e){const t=function getXfaFontWidths(e){const t=getXfaFontName(e);if(!t)return null;const{baseWidths:a,baseMapping:r,factors:n}=t;let i;i=n?a.map(((e,t)=>e*n[t])):a;let s,o=-2;const c=[];for(const[e,t]of r.map(((e,t)=>[e,t])).sort((([e],[t])=>e-t)))if(-1!==e)if(e===o+1){s.push(i[t]);o+=1}else{o=e;s=[i[t]];c.push(e,s)}return c}(e),a=new n.Dict(null);a.set("BaseFont",n.Name.get(e));a.set("Type",n.Name.get("Font"));a.set("Subtype",n.Name.get("CIDFontType2"));a.set("Encoding",n.Name.get("Identity-H"));a.set("CIDToGIDMap",n.Name.get("Identity"));a.set("W",t);a.set("FirstChar",t[0]);a.set("LastChar",t[t.length-2]+t[t.length-1].length-1);const r=new n.Dict(null);a.set("FontDescriptor",r);const i=new n.Dict(null);i.set("Ordering","Identity");i.set("Registry","Adobe");i.set("Supplement",0);a.set("CIDSystemInfo",i);return a};t.getXfaFontName=getXfaFontName;var r=a(13),n=a(5),i=a(14),s=a(15),o=a(16),c=a(17),l=a(8),h=a(18);const u=(0,l.getLookupTableFactory)((function(e){e["MyriadPro-Regular"]=e["PdfJS-Fallback-Regular"]={name:"LiberationSans-Regular",factors:o.MyriadProRegularFactors,baseWidths:s.LiberationSansRegularWidths,baseMapping:s.LiberationSansRegularMapping,metrics:o.MyriadProRegularMetrics};e["MyriadPro-Bold"]=e["PdfJS-Fallback-Bold"]={name:"LiberationSans-Bold",factors:o.MyriadProBoldFactors,baseWidths:s.LiberationSansBoldWidths,baseMapping:s.LiberationSansBoldMapping,metrics:o.MyriadProBoldMetrics};e["MyriadPro-It"]=e["MyriadPro-Italic"]=e["PdfJS-Fallback-Italic"]={name:"LiberationSans-Italic",factors:o.MyriadProItalicFactors,baseWidths:s.LiberationSansItalicWidths,baseMapping:s.LiberationSansItalicMapping,metrics:o.MyriadProItalicMetrics};e["MyriadPro-BoldIt"]=e["MyriadPro-BoldItalic"]=e["PdfJS-Fallback-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:o.MyriadProBoldItalicFactors,baseWidths:s.LiberationSansBoldItalicWidths,baseMapping:s.LiberationSansBoldItalicMapping,metrics:o.MyriadProBoldItalicMetrics};e.ArialMT=e.Arial=e["Arial-Regular"]={name:"LiberationSans-Regular",baseWidths:s.LiberationSansRegularWidths,baseMapping:s.LiberationSansRegularMapping};e["Arial-BoldMT"]=e["Arial-Bold"]={name:"LiberationSans-Bold",baseWidths:s.LiberationSansBoldWidths,baseMapping:s.LiberationSansBoldMapping};e["Arial-ItalicMT"]=e["Arial-Italic"]={name:"LiberationSans-Italic",baseWidths:s.LiberationSansItalicWidths,baseMapping:s.LiberationSansItalicMapping};e["Arial-BoldItalicMT"]=e["Arial-BoldItalic"]={name:"LiberationSans-BoldItalic",baseWidths:s.LiberationSansBoldItalicWidths,baseMapping:s.LiberationSansBoldItalicMapping};e["Calibri-Regular"]={name:"LiberationSans-Regular",factors:r.CalibriRegularFactors,baseWidths:s.LiberationSansRegularWidths,baseMapping:s.LiberationSansRegularMapping,metrics:r.CalibriRegularMetrics};e["Calibri-Bold"]={name:"LiberationSans-Bold",factors:r.CalibriBoldFactors,baseWidths:s.LiberationSansBoldWidths,baseMapping:s.LiberationSansBoldMapping,metrics:r.CalibriBoldMetrics};e["Calibri-Italic"]={name:"LiberationSans-Italic",factors:r.CalibriItalicFactors,baseWidths:s.LiberationSansItalicWidths,baseMapping:s.LiberationSansItalicMapping,metrics:r.CalibriItalicMetrics};e["Calibri-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:r.CalibriBoldItalicFactors,baseWidths:s.LiberationSansBoldItalicWidths,baseMapping:s.LiberationSansBoldItalicMapping,metrics:r.CalibriBoldItalicMetrics};e["Segoeui-Regular"]={name:"LiberationSans-Regular",factors:c.SegoeuiRegularFactors,baseWidths:s.LiberationSansRegularWidths,baseMapping:s.LiberationSansRegularMapping,metrics:c.SegoeuiRegularMetrics};e["Segoeui-Bold"]={name:"LiberationSans-Bold",factors:c.SegoeuiBoldFactors,baseWidths:s.LiberationSansBoldWidths,baseMapping:s.LiberationSansBoldMapping,metrics:c.SegoeuiBoldMetrics};e["Segoeui-Italic"]={name:"LiberationSans-Italic",factors:c.SegoeuiItalicFactors,baseWidths:s.LiberationSansItalicWidths,baseMapping:s.LiberationSansItalicMapping,metrics:c.SegoeuiItalicMetrics};e["Segoeui-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:c.SegoeuiBoldItalicFactors,baseWidths:s.LiberationSansBoldItalicWidths,baseMapping:s.LiberationSansBoldItalicMapping,metrics:c.SegoeuiBoldItalicMetrics};e["Helvetica-Regular"]=e.Helvetica={name:"LiberationSans-Regular",factors:i.HelveticaRegularFactors,baseWidths:s.LiberationSansRegularWidths,baseMapping:s.LiberationSansRegularMapping,metrics:i.HelveticaRegularMetrics};e["Helvetica-Bold"]={name:"LiberationSans-Bold",factors:i.HelveticaBoldFactors,baseWidths:s.LiberationSansBoldWidths,baseMapping:s.LiberationSansBoldMapping,metrics:i.HelveticaBoldMetrics};e["Helvetica-Italic"]={name:"LiberationSans-Italic",factors:i.HelveticaItalicFactors,baseWidths:s.LiberationSansItalicWidths,baseMapping:s.LiberationSansItalicMapping,metrics:i.HelveticaItalicMetrics};e["Helvetica-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:i.HelveticaBoldItalicFactors,baseWidths:s.LiberationSansBoldItalicWidths,baseMapping:s.LiberationSansBoldItalicMapping,metrics:i.HelveticaBoldItalicMetrics}}));function getXfaFontName(e){const t=(0,h.normalizeFontName)(e);return u()[t]}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.CalibriRegularMetrics=t.CalibriRegularFactors=t.CalibriItalicMetrics=t.CalibriItalicFactors=t.CalibriBoldMetrics=t.CalibriBoldItalicMetrics=t.CalibriBoldItalicFactors=t.CalibriBoldFactors=void 0;t.CalibriBoldFactors=[1.3877,1,1,1,.97801,.92482,.89552,.91133,.81988,.97566,.98152,.93548,.93548,1.2798,.85284,.92794,1,.96134,1.54657,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.82845,.82845,.85284,.85284,.85284,.75859,.92138,.83908,.7762,.73293,.87289,.73133,.7514,.81921,.87356,.95958,.59526,.75727,.69225,1.04924,.9121,.86943,.79795,.88198,.77958,.70864,.81055,.90399,.88653,.96017,.82577,.77892,.78257,.97507,1.54657,.97507,.85284,.89552,.90176,.88762,.8785,.75241,.8785,.90518,.95015,.77618,.8785,.88401,.91916,.86304,.88401,.91488,.8785,.8801,.8785,.8785,.91343,.7173,1.04106,.8785,.85075,.95794,.82616,.85162,.79492,.88331,1.69808,.88331,.85284,.97801,.89552,.91133,.89552,.91133,1.7801,.89552,1.24487,1.13254,1.12401,.96839,.85284,.68787,.70645,.85592,.90747,1.01466,1.0088,.90323,1,1.07463,1,.91056,.75806,1.19118,.96839,.78864,.82845,.84133,.75859,.83908,.83908,.83908,.83908,.83908,.83908,.77539,.73293,.73133,.73133,.73133,.73133,.95958,.95958,.95958,.95958,.88506,.9121,.86943,.86943,.86943,.86943,.86943,.85284,.87508,.90399,.90399,.90399,.90399,.77892,.79795,.90807,.88762,.88762,.88762,.88762,.88762,.88762,.8715,.75241,.90518,.90518,.90518,.90518,.88401,.88401,.88401,.88401,.8785,.8785,.8801,.8801,.8801,.8801,.8801,.90747,.89049,.8785,.8785,.8785,.8785,.85162,.8785,.85162,.83908,.88762,.83908,.88762,.83908,.88762,.73293,.75241,.73293,.75241,.73293,.75241,.73293,.75241,.87289,.83016,.88506,.93125,.73133,.90518,.73133,.90518,.73133,.90518,.73133,.90518,.73133,.90518,.81921,.77618,.81921,.77618,.81921,.77618,1,1,.87356,.8785,.91075,.89608,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.76229,.90167,.59526,.91916,1,1,.86304,.69225,.88401,1,1,.70424,.79468,.91926,.88175,.70823,.94903,.9121,.8785,1,1,.9121,.8785,.87802,.88656,.8785,.86943,.8801,.86943,.8801,.86943,.8801,.87402,.89291,.77958,.91343,1,1,.77958,.91343,.70864,.7173,.70864,.7173,.70864,.7173,.70864,.7173,1,1,.81055,.75841,.81055,1.06452,.90399,.8785,.90399,.8785,.90399,.8785,.90399,.8785,.90399,.8785,.90399,.8785,.96017,.95794,.77892,.85162,.77892,.78257,.79492,.78257,.79492,.78257,.79492,.9297,.56892,.83908,.88762,.77539,.8715,.87508,.89049,1,1,.81055,1.04106,1.20528,1.20528,1,1.15543,.70674,.98387,.94721,1.33431,1.45894,.95161,1.06303,.83908,.80352,.57184,.6965,.56289,.82001,.56029,.81235,1.02988,.83908,.7762,.68156,.80367,.73133,.78257,.87356,.86943,.95958,.75727,.89019,1.04924,.9121,.7648,.86943,.87356,.79795,.78275,.81055,.77892,.9762,.82577,.99819,.84896,.95958,.77892,.96108,1.01407,.89049,1.02988,.94211,.96108,.8936,.84021,.87842,.96399,.79109,.89049,1.00813,1.02988,.86077,.87445,.92099,.84723,.86513,.8801,.75638,.85714,.78216,.79586,.87965,.94211,.97747,.78287,.97926,.84971,1.02988,.94211,.8801,.94211,.84971,.73133,1,1,1,1,1,1,1,1,1,1,1,1,.90264,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.90518,1,1,1,1,1,1,1,1,1,1,1,1,.90548,1,1,1,1,1,1,.96017,.95794,.96017,.95794,.96017,.95794,.77892,.85162,1,1,.89552,.90527,1,.90363,.92794,.92794,.92794,.92794,.87012,.87012,.87012,.89552,.89552,1.42259,.71143,1.06152,1,1,1.03372,1.03372,.97171,1.4956,2.2807,.93835,.83406,.91133,.84107,.91133,1,1,1,.72021,1,1.23108,.83489,.88525,.88525,.81499,.90527,1.81055,.90527,1.81055,1.31006,1.53711,.94434,1.08696,1,.95018,.77192,.85284,.90747,1.17534,.69825,.9716,1.37077,.90747,.90747,.85356,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.08004,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,.90727,.90727,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.CalibriBoldMetrics={lineHeight:1.2207,lineGap:.2207};t.CalibriBoldItalicFactors=[1.3877,1,1,1,.97801,.92482,.89552,.91133,.81988,.97566,.98152,.93548,.93548,1.2798,.85284,.92794,1,.96134,1.56239,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.82845,.82845,.85284,.85284,.85284,.75859,.92138,.83908,.7762,.71805,.87289,.73133,.7514,.81921,.87356,.95958,.59526,.75727,.69225,1.04924,.90872,.85938,.79795,.87068,.77958,.69766,.81055,.90399,.88653,.96068,.82577,.77892,.78257,.97507,1.529,.97507,.85284,.89552,.90176,.94908,.86411,.74012,.86411,.88323,.95015,.86411,.86331,.88401,.91916,.86304,.88401,.9039,.86331,.86331,.86411,.86411,.90464,.70852,1.04106,.86331,.84372,.95794,.82616,.84548,.79492,.88331,1.69808,.88331,.85284,.97801,.89552,.91133,.89552,.91133,1.7801,.89552,1.24487,1.13254,1.19129,.96839,.85284,.68787,.70645,.85592,.90747,1.01466,1.0088,.90323,1,1.07463,1,.91056,.75806,1.19118,.96839,.78864,.82845,.84133,.75859,.83908,.83908,.83908,.83908,.83908,.83908,.77539,.71805,.73133,.73133,.73133,.73133,.95958,.95958,.95958,.95958,.88506,.90872,.85938,.85938,.85938,.85938,.85938,.85284,.87068,.90399,.90399,.90399,.90399,.77892,.79795,.90807,.94908,.94908,.94908,.94908,.94908,.94908,.85887,.74012,.88323,.88323,.88323,.88323,.88401,.88401,.88401,.88401,.8785,.86331,.86331,.86331,.86331,.86331,.86331,.90747,.89049,.86331,.86331,.86331,.86331,.84548,.86411,.84548,.83908,.94908,.83908,.94908,.83908,.94908,.71805,.74012,.71805,.74012,.71805,.74012,.71805,.74012,.87289,.79538,.88506,.92726,.73133,.88323,.73133,.88323,.73133,.88323,.73133,.88323,.73133,.88323,.81921,.86411,.81921,.86411,.81921,.86411,1,1,.87356,.86331,.91075,.8777,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.76467,.90167,.59526,.91916,1,1,.86304,.69225,.88401,1,1,.70424,.77312,.91926,.88175,.70823,.94903,.90872,.86331,1,1,.90872,.86331,.86906,.88116,.86331,.85938,.86331,.85938,.86331,.85938,.86331,.87402,.86549,.77958,.90464,1,1,.77958,.90464,.69766,.70852,.69766,.70852,.69766,.70852,.69766,.70852,1,1,.81055,.75841,.81055,1.06452,.90399,.86331,.90399,.86331,.90399,.86331,.90399,.86331,.90399,.86331,.90399,.86331,.96068,.95794,.77892,.84548,.77892,.78257,.79492,.78257,.79492,.78257,.79492,.9297,.56892,.83908,.94908,.77539,.85887,.87068,.89049,1,1,.81055,1.04106,1.20528,1.20528,1,1.15543,.70088,.98387,.94721,1.33431,1.45894,.95161,1.48387,.83908,.80352,.57118,.6965,.56347,.79179,.55853,.80346,1.02988,.83908,.7762,.67174,.86036,.73133,.78257,.87356,.86441,.95958,.75727,.89019,1.04924,.90872,.74889,.85938,.87891,.79795,.7957,.81055,.77892,.97447,.82577,.97466,.87179,.95958,.77892,.94252,.95612,.8753,1.02988,.92733,.94252,.87411,.84021,.8728,.95612,.74081,.8753,1.02189,1.02988,.84814,.87445,.91822,.84723,.85668,.86331,.81344,.87581,.76422,.82046,.96057,.92733,.99375,.78022,.95452,.86015,1.02988,.92733,.86331,.92733,.86015,.73133,1,1,1,1,1,1,1,1,1,1,1,1,.90631,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.88323,1,1,1,1,1,1,1,1,1,1,1,1,.85174,1,1,1,1,1,1,.96068,.95794,.96068,.95794,.96068,.95794,.77892,.84548,1,1,.89552,.90527,1,.90363,.92794,.92794,.92794,.89807,.87012,.87012,.87012,.89552,.89552,1.42259,.71094,1.06152,1,1,1.03372,1.03372,.97171,1.4956,2.2807,.92972,.83406,.91133,.83326,.91133,1,1,1,.72021,1,1.23108,.83489,.88525,.88525,.81499,.90616,1.81055,.90527,1.81055,1.3107,1.53711,.94434,1.08696,1,.95018,.77192,.85284,.90747,1.17534,.69825,.9716,1.37077,.90747,.90747,.85356,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.08004,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,.90727,.90727,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.CalibriBoldItalicMetrics={lineHeight:1.2207,lineGap:.2207};t.CalibriItalicFactors=[1.3877,1,1,1,1.17223,1.1293,.89552,.91133,.80395,1.02269,1.15601,.91056,.91056,1.2798,.85284,.89807,1,.90861,1.39543,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.96309,.96309,.85284,.85284,.85284,.83319,.88071,.8675,.81552,.72346,.85193,.73206,.7522,.81105,.86275,.90685,.6377,.77892,.75593,1.02638,.89249,.84118,.77452,.85374,.75186,.67789,.79776,.88844,.85066,.94309,.77818,.7306,.76659,1.10369,1.38313,1.10369,1.06139,.89552,.8739,.9245,.9245,.83203,.9245,.85865,1.09842,.9245,.9245,1.03297,1.07692,.90918,1.03297,.94959,.9245,.92274,.9245,.9245,1.02933,.77832,1.20562,.9245,.8916,.98986,.86621,.89453,.79004,.94152,1.77256,.94152,.85284,.97801,.89552,.91133,.89552,.91133,1.91729,.89552,1.17889,1.13254,1.16359,.92098,.85284,.68787,.71353,.84737,.90747,1.0088,1.0044,.87683,1,1.09091,1,.92229,.739,1.15642,.92098,.76288,.80504,.80972,.75859,.8675,.8675,.8675,.8675,.8675,.8675,.76318,.72346,.73206,.73206,.73206,.73206,.90685,.90685,.90685,.90685,.86477,.89249,.84118,.84118,.84118,.84118,.84118,.85284,.84557,.88844,.88844,.88844,.88844,.7306,.77452,.86331,.9245,.9245,.9245,.9245,.9245,.9245,.84843,.83203,.85865,.85865,.85865,.85865,.82601,.82601,.82601,.82601,.94469,.9245,.92274,.92274,.92274,.92274,.92274,.90747,.86651,.9245,.9245,.9245,.9245,.89453,.9245,.89453,.8675,.9245,.8675,.9245,.8675,.9245,.72346,.83203,.72346,.83203,.72346,.83203,.72346,.83203,.85193,.8875,.86477,.99034,.73206,.85865,.73206,.85865,.73206,.85865,.73206,.85865,.73206,.85865,.81105,.9245,.81105,.9245,.81105,.9245,1,1,.86275,.9245,.90872,.93591,.90685,.82601,.90685,.82601,.90685,.82601,.90685,1.03297,.90685,.82601,.77896,1.05611,.6377,1.07692,1,1,.90918,.75593,1.03297,1,1,.76032,.9375,.98156,.93407,.77261,1.11429,.89249,.9245,1,1,.89249,.9245,.92534,.86698,.9245,.84118,.92274,.84118,.92274,.84118,.92274,.8667,.86291,.75186,1.02933,1,1,.75186,1.02933,.67789,.77832,.67789,.77832,.67789,.77832,.67789,.77832,1,1,.79776,.97655,.79776,1.23023,.88844,.9245,.88844,.9245,.88844,.9245,.88844,.9245,.88844,.9245,.88844,.9245,.94309,.98986,.7306,.89453,.7306,.76659,.79004,.76659,.79004,.76659,.79004,1.09231,.54873,.8675,.9245,.76318,.84843,.84557,.86651,1,1,.79776,1.20562,1.18622,1.18622,1,1.1437,.67009,.96334,.93695,1.35191,1.40909,.95161,1.48387,.8675,.90861,.6192,.7363,.64824,.82411,.56321,.85696,1.23516,.8675,.81552,.7286,.84134,.73206,.76659,.86275,.84369,.90685,.77892,.85871,1.02638,.89249,.75828,.84118,.85984,.77452,.76466,.79776,.7306,.90782,.77818,.903,.87291,.90685,.7306,.99058,1.03667,.94635,1.23516,.9849,.99058,.92393,.8916,.942,1.03667,.75026,.94635,1.0297,1.23516,.90918,.94048,.98217,.89746,.84153,.92274,.82507,.88832,.84438,.88178,1.03525,.9849,1.00225,.78086,.97248,.89404,1.23516,.9849,.92274,.9849,.89404,.73206,1,1,1,1,1,1,1,1,1,1,1,1,.89693,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.85865,1,1,1,1,1,1,1,1,1,1,1,1,.90933,1,1,1,1,1,1,.94309,.98986,.94309,.98986,.94309,.98986,.7306,.89453,1,1,.89552,.90527,1,.90186,1.12308,1.12308,1.12308,1.12308,1.2566,1.2566,1.2566,.89552,.89552,1.42259,.68994,1.03809,1,1,1.0176,1.0176,1.11523,1.4956,2.01462,.97858,.82616,.91133,.83437,.91133,1,1,1,.70508,1,1.23108,.79801,.84426,.84426,.774,.90572,1.81055,.90749,1.81055,1.28809,1.55469,.94434,1.07806,1,.97094,.7589,.85284,.90747,1.19658,.69825,.97622,1.33512,.90747,.90747,.85284,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.0336,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,1.05859,1.05859,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.CalibriItalicMetrics={lineHeight:1.2207,lineGap:.2207};t.CalibriRegularFactors=[1.3877,1,1,1,1.17223,1.1293,.89552,.91133,.80395,1.02269,1.15601,.91056,.91056,1.2798,.85284,.89807,1,.90861,1.39016,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.96309,.96309,.85284,.85284,.85284,.83319,.88071,.8675,.81552,.73834,.85193,.73206,.7522,.81105,.86275,.90685,.6377,.77892,.75593,1.02638,.89385,.85122,.77452,.86503,.75186,.68887,.79776,.88844,.85066,.94258,.77818,.7306,.76659,1.10369,1.39016,1.10369,1.06139,.89552,.8739,.86128,.94469,.8457,.94469,.89464,1.09842,.84636,.94469,1.03297,1.07692,.90918,1.03297,.95897,.94469,.9482,.94469,.94469,1.04692,.78223,1.20562,.94469,.90332,.98986,.86621,.90527,.79004,.94152,1.77256,.94152,.85284,.97801,.89552,.91133,.89552,.91133,1.91729,.89552,1.17889,1.13254,1.08707,.92098,.85284,.68787,.71353,.84737,.90747,1.0088,1.0044,.87683,1,1.09091,1,.92229,.739,1.15642,.92098,.76288,.80504,.80972,.75859,.8675,.8675,.8675,.8675,.8675,.8675,.76318,.73834,.73206,.73206,.73206,.73206,.90685,.90685,.90685,.90685,.86477,.89385,.85122,.85122,.85122,.85122,.85122,.85284,.85311,.88844,.88844,.88844,.88844,.7306,.77452,.86331,.86128,.86128,.86128,.86128,.86128,.86128,.8693,.8457,.89464,.89464,.89464,.89464,.82601,.82601,.82601,.82601,.94469,.94469,.9482,.9482,.9482,.9482,.9482,.90747,.86651,.94469,.94469,.94469,.94469,.90527,.94469,.90527,.8675,.86128,.8675,.86128,.8675,.86128,.73834,.8457,.73834,.8457,.73834,.8457,.73834,.8457,.85193,.92454,.86477,.9921,.73206,.89464,.73206,.89464,.73206,.89464,.73206,.89464,.73206,.89464,.81105,.84636,.81105,.84636,.81105,.84636,1,1,.86275,.94469,.90872,.95786,.90685,.82601,.90685,.82601,.90685,.82601,.90685,1.03297,.90685,.82601,.77741,1.05611,.6377,1.07692,1,1,.90918,.75593,1.03297,1,1,.76032,.90452,.98156,1.11842,.77261,1.11429,.89385,.94469,1,1,.89385,.94469,.95877,.86901,.94469,.85122,.9482,.85122,.9482,.85122,.9482,.8667,.90016,.75186,1.04692,1,1,.75186,1.04692,.68887,.78223,.68887,.78223,.68887,.78223,.68887,.78223,1,1,.79776,.92188,.79776,1.23023,.88844,.94469,.88844,.94469,.88844,.94469,.88844,.94469,.88844,.94469,.88844,.94469,.94258,.98986,.7306,.90527,.7306,.76659,.79004,.76659,.79004,.76659,.79004,1.09231,.54873,.8675,.86128,.76318,.8693,.85311,.86651,1,1,.79776,1.20562,1.18622,1.18622,1,1.1437,.67742,.96334,.93695,1.35191,1.40909,.95161,1.48387,.86686,.90861,.62267,.74359,.65649,.85498,.56963,.88254,1.23516,.8675,.81552,.75443,.84503,.73206,.76659,.86275,.85122,.90685,.77892,.85746,1.02638,.89385,.75657,.85122,.86275,.77452,.74171,.79776,.7306,.95165,.77818,.89772,.88831,.90685,.7306,.98142,1.02191,.96576,1.23516,.99018,.98142,.9236,.89258,.94035,1.02191,.78848,.96576,.9561,1.23516,.90918,.92578,.95424,.89746,.83969,.9482,.80113,.89442,.85208,.86155,.98022,.99018,1.00452,.81209,.99247,.89181,1.23516,.99018,.9482,.99018,.89181,.73206,1,1,1,1,1,1,1,1,1,1,1,1,.88844,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.89464,1,1,1,1,1,1,1,1,1,1,1,1,.96766,1,1,1,1,1,1,.94258,.98986,.94258,.98986,.94258,.98986,.7306,.90527,1,1,.89552,.90527,1,.90186,1.12308,1.12308,1.12308,1.12308,1.2566,1.2566,1.2566,.89552,.89552,1.42259,.69043,1.03809,1,1,1.0176,1.0176,1.11523,1.4956,2.01462,.99331,.82616,.91133,.84286,.91133,1,1,1,.70508,1,1.23108,.79801,.84426,.84426,.774,.90527,1.81055,.90527,1.81055,1.28809,1.55469,.94434,1.07806,1,.97094,.7589,.85284,.90747,1.19658,.69825,.97622,1.33512,.90747,.90747,.85356,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.0336,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,1.05859,1.05859,1,1,1,1.07185,.99413,.96334,1.08065,1,1,1,1,1,1,1,1,1,1,1];t.CalibriRegularMetrics={lineHeight:1.2207,lineGap:.2207}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.HelveticaRegularMetrics=t.HelveticaRegularFactors=t.HelveticaItalicMetrics=t.HelveticaItalicFactors=t.HelveticaBoldMetrics=t.HelveticaBoldItalicMetrics=t.HelveticaBoldItalicFactors=t.HelveticaBoldFactors=void 0;t.HelveticaBoldFactors=[.76116,1,1,1.0006,.99998,.99974,.99973,.99973,.99982,.99977,1.00087,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99998,1,1.00003,1.00003,1.00003,1.00026,.9999,.99977,.99977,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,.99973,.99977,1.00026,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,.99998,1.0006,.99998,1.00003,.99973,.99998,.99973,1.00026,.99973,1.00026,.99973,.99998,1.00026,1.00026,1.0006,1.0006,.99973,1.0006,.99982,1.00026,1.00026,1.00026,1.00026,.99959,.99973,.99998,1.00026,.99973,1.00022,.99973,.99973,1,.99959,1.00077,.99959,1.00003,.99998,.99973,.99973,.99973,.99973,1.00077,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.99973,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,.99977,.99977,.99977,.99977,.99977,.99977,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,.99973,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.06409,1.00026,1.00026,1.00026,1.00026,1.00026,.99973,1.00026,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,1.03374,.99977,1.00026,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,.99977,1.00026,.99977,1.00026,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.00042,.99973,.99973,1.0006,.99977,.99973,.99973,1.00026,1.0006,1.00026,1.0006,1.00026,1.03828,1.00026,.99999,1.00026,1.0006,.99977,1.00026,.99977,1.00026,.99977,1.00026,.9993,.9998,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1,1.00016,.99977,.99959,.99977,.99959,.99977,.99959,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00026,.99998,1.00026,.8121,1.00026,.99998,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,1.00016,1.00022,1.00001,.99973,1.00001,1.00026,1,1.00026,1,1.00026,1,1.0006,.99973,.99977,.99973,1,.99982,1.00022,1.00026,1.00001,.99973,1.00026,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,1.00034,.99977,1,.99997,1.00026,1.00078,1.00036,.99973,1.00013,1.0006,.99977,.99977,.99988,.85148,1.00001,1.00026,.99977,1.00022,1.0006,.99977,1.00001,.99999,.99977,1.00069,1.00022,.99977,1.00001,.99984,1.00026,1.00001,1.00024,1.00001,.9999,1,1.0006,1.00001,1.00041,.99962,1.00026,1.0006,.99995,1.00041,.99942,.99973,.99927,1.00082,.99902,1.00026,1.00087,1.0006,1.00069,.99973,.99867,.99973,.9993,1.00026,1.00049,1.00056,1,.99988,.99935,.99995,.99954,1.00055,.99945,1.00032,1.0006,.99995,1.00026,.99995,1.00032,1.00001,1.00008,.99971,1.00019,.9994,1.00001,1.0006,1.00044,.99973,1.00023,1.00047,1,.99942,.99561,.99989,1.00035,.99977,1.00035,.99977,1.00019,.99944,1.00001,1.00021,.99926,1.00035,1.00035,.99942,1.00048,.99999,.99977,1.00022,1.00035,1.00001,.99977,1.00026,.99989,1.00057,1.00001,.99936,1.00052,1.00012,.99996,1.00043,1,1.00035,.9994,.99976,1.00035,.99973,1.00052,1.00041,1.00119,1.00037,.99973,1.00002,.99986,1.00041,1.00041,.99902,.9996,1.00034,.99999,1.00026,.99999,1.00026,.99973,1.00052,.99973,1,.99973,1.00041,1.00075,.9994,1.0003,.99999,1,1.00041,.99955,1,.99915,.99973,.99973,1.00026,1.00119,.99955,.99973,1.0006,.99911,1.0006,1.00026,.99972,1.00026,.99902,1.00041,.99973,.99999,1,1,1.00038,1.0005,1.00016,1.00022,1.00016,1.00022,1.00016,1.00022,1.00001,.99973,1,1,.99973,1,1,.99955,1.0006,1.0006,1.0006,1.0006,1,1,1,.99973,.99973,.99972,1,1,1.00106,.99999,.99998,.99998,.99999,.99998,1.66475,1,.99973,.99973,1.00023,.99973,.99971,1.00047,1.00023,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1,1,1,1,1,1,1,.99972,1,1.20985,1.39713,1.00003,1.00031,1.00015,1,.99561,1.00027,1.00031,1.00031,.99915,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.99972,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,.99998,.99998,.99998,.99998,1,1,1,1,1,1,1,1,1,1,1];t.HelveticaBoldMetrics={lineHeight:1.2,lineGap:.2};t.HelveticaBoldItalicFactors=[.76116,1,1,1.0006,.99998,.99974,.99973,.99973,.99982,.99977,1.00087,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99998,1,1.00003,1.00003,1.00003,1.00026,.9999,.99977,.99977,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,.99973,.99977,1.00026,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,.99998,1.0006,.99998,1.00003,.99973,.99998,.99973,1.00026,.99973,1.00026,.99973,.99998,1.00026,1.00026,1.0006,1.0006,.99973,1.0006,.99982,1.00026,1.00026,1.00026,1.00026,.99959,.99973,.99998,1.00026,.99973,1.00022,.99973,.99973,1,.99959,1.00077,.99959,1.00003,.99998,.99973,.99973,.99973,.99973,1.00077,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.99973,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,.99977,.99977,.99977,.99977,.99977,.99977,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,.99973,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.06409,1.00026,1.00026,1.00026,1.00026,1.00026,.99973,1.00026,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,1.0044,.99977,1.00026,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,.99977,1.00026,.99977,1.00026,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,.99971,.99973,.99973,1.0006,.99977,.99973,.99973,1.00026,1.0006,1.00026,1.0006,1.00026,1.01011,1.00026,.99999,1.00026,1.0006,.99977,1.00026,.99977,1.00026,.99977,1.00026,.9993,.9998,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1,1.00016,.99977,.99959,.99977,.99959,.99977,.99959,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00026,.99998,1.00026,.8121,1.00026,.99998,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,1.00016,1.00022,1.00001,.99973,1.00001,1.00026,1,1.00026,1,1.00026,1,1.0006,.99973,.99977,.99973,1,.99982,1.00022,1.00026,1.00001,.99973,1.00026,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99977,1,1,1.00026,.99969,.99972,.99981,.9998,1.0006,.99977,.99977,1.00022,.91155,1.00001,1.00026,.99977,1.00022,1.0006,.99977,1.00001,.99999,.99977,.99966,1.00022,1.00032,1.00001,.99944,1.00026,1.00001,.99968,1.00001,1.00047,1,1.0006,1.00001,.99981,1.00101,1.00026,1.0006,.99948,.99981,1.00064,.99973,.99942,1.00101,1.00061,1.00026,1.00069,1.0006,1.00014,.99973,1.01322,.99973,1.00065,1.00026,1.00012,.99923,1,1.00064,1.00076,.99948,1.00055,1.00063,1.00007,.99943,1.0006,.99948,1.00026,.99948,.99943,1.00001,1.00001,1.00029,1.00038,1.00035,1.00001,1.0006,1.0006,.99973,.99978,1.00001,1.00057,.99989,.99967,.99964,.99967,.99977,.99999,.99977,1.00038,.99977,1.00001,.99973,1.00066,.99967,.99967,1.00041,.99998,.99999,.99977,1.00022,.99967,1.00001,.99977,1.00026,.99964,1.00031,1.00001,.99999,.99999,1,1.00023,1,1,.99999,1.00035,1.00001,.99999,.99973,.99977,.99999,1.00058,.99973,.99973,.99955,.9995,1.00026,1.00026,1.00032,.99989,1.00034,.99999,1.00026,1.00026,1.00026,.99973,.45998,.99973,1.00026,.99973,1.00001,.99999,.99982,.99994,.99996,1,1.00042,1.00044,1.00029,1.00023,.99973,.99973,1.00026,.99949,1.00002,.99973,1.0006,1.0006,1.0006,.99975,1.00026,1.00026,1.00032,.98685,.99973,1.00026,1,1,.99966,1.00044,1.00016,1.00022,1.00016,1.00022,1.00016,1.00022,1.00001,.99973,1,1,.99973,1,1,.99955,1.0006,1.0006,1.0006,1.0006,1,1,1,.99973,.99973,.99972,1,1,1.00106,.99999,.99998,.99998,.99999,.99998,1.66475,1,.99973,.99973,1,.99973,.99971,.99978,1,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1.00098,1,1,1,1.00049,1,1,.99972,1,1.20985,1.39713,1.00003,1.00031,1.00015,1,.99561,1.00027,1.00031,1.00031,.99915,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.99972,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,.99998,.99998,.99998,.99998,1,1,1,1,1,1,1,1,1,1,1];t.HelveticaBoldItalicMetrics={lineHeight:1.35,lineGap:.2};t.HelveticaItalicFactors=[.76116,1,1,1.0006,1.0006,1.00006,.99973,.99973,.99982,1.00001,1.00043,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.0006,1,1.00003,1.00003,1.00003,.99973,.99987,1.00001,1.00001,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,1,1.00001,.99973,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,1.0006,1.0006,1.0006,.99949,.99973,.99998,.99973,.99973,1,.99973,.99973,1.0006,.99973,.99973,.99924,.99924,1,.99924,.99999,.99973,.99973,.99973,.99973,.99998,1,1.0006,.99973,1,.99977,1,1,1,1.00005,1.0009,1.00005,1.00003,.99998,.99973,.99973,.99973,.99973,1.0009,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.9998,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,1.00001,1.00001,1.00001,1.00001,1.00001,1.00001,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,1,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.06409,1.00026,.99973,.99973,.99973,.99973,1,.99973,1,1.00001,.99973,1.00001,.99973,1.00001,.99973,.99977,1,.99977,1,.99977,1,.99977,1,.99977,1.0288,.99977,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,.99977,.99973,.99977,.99973,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,.99924,1.0006,1.0006,.99946,1.00034,1,.99924,1.00001,1,1,.99973,.99924,.99973,.99924,.99973,1.06311,.99973,1.00024,.99973,.99924,.99977,.99973,.99977,.99973,.99977,.99973,1.00041,.9998,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1,1.00016,.99977,.99998,.99977,.99998,.99977,.99998,1.00001,1,1.00001,1,1.00001,1,1.00001,1,1.00026,1.0006,1.00026,.89547,1.00026,1.0006,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,1.00016,.99977,1.00001,1,1.00001,1.00026,1,1.00026,1,1.00026,1,.99924,.99973,1.00001,.99973,1,.99982,1.00022,1.00026,1.00001,1,1.00026,1.0006,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,1.00001,1,1.00054,.99977,1.00084,1.00007,.99973,1.00013,.99924,1.00001,1.00001,.99945,.91221,1.00001,1.00026,.99977,1.00022,1.0006,1.00001,1.00001,.99999,.99977,.99933,1.00022,1.00054,1.00001,1.00065,1.00026,1.00001,1.0001,1.00001,1.00052,1,1.0006,1.00001,.99945,.99897,.99968,.99924,1.00036,.99945,.99949,1,1.0006,.99897,.99918,.99968,.99911,.99924,1,.99962,1.01487,1,1.0005,.99973,1.00012,1.00043,1,.99995,.99994,1.00036,.99947,1.00019,1.00063,1.00025,.99924,1.00036,.99973,1.00036,1.00025,1.00001,1.00001,1.00027,1.0001,1.00068,1.00001,1.0006,1.0006,1,1.00008,.99957,.99972,.9994,.99954,.99975,1.00051,1.00001,1.00019,1.00001,1.0001,.99986,1.00001,1.00001,1.00038,.99954,.99954,.9994,1.00066,.99999,.99977,1.00022,1.00054,1.00001,.99977,1.00026,.99975,1.0001,1.00001,.99993,.9995,.99955,1.00016,.99978,.99974,1.00019,1.00022,.99955,1.00053,.99973,1.00089,1.00005,.99967,1.00048,.99973,1.00002,1.00034,.99973,.99973,.99964,1.00006,1.00066,.99947,.99973,.98894,.99973,1,.44898,1,.99946,1,1.00039,1.00082,.99991,.99991,.99985,1.00022,1.00023,1.00061,1.00006,.99966,.99973,.99973,.99973,1.00019,1.0008,1,.99924,.99924,.99924,.99983,1.00044,.99973,.99964,.98332,1,.99973,1,1,.99962,.99895,1.00016,.99977,1.00016,.99977,1.00016,.99977,1.00001,1,1,1,.99973,1,1,.99955,.99924,.99924,.99924,.99924,.99998,.99998,.99998,.99973,.99973,.99972,1,1,1.00267,.99999,.99998,.99998,1,.99998,1.66475,1,.99973,.99973,1.00023,.99973,1.00423,.99925,.99999,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1.00049,1,1.00245,1,1,1,1,.96329,1,1.20985,1.39713,1.00003,.8254,1.00015,1,1.00035,1.00027,1.00031,1.00031,1.00003,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.95317,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,.99998,.99998,.99998,.99998,1,1,1,1,1,1,1,1,1,1,1];t.HelveticaItalicMetrics={lineHeight:1.35,lineGap:.2};t.HelveticaRegularFactors=[.76116,1,1,1.0006,1.0006,1.00006,.99973,.99973,.99982,1.00001,1.00043,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.0006,1,1.00003,1.00003,1.00003,.99973,.99987,1.00001,1.00001,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,1,1.00001,.99973,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,1.0006,1.0006,1.0006,.99949,.99973,.99998,.99973,.99973,1,.99973,.99973,1.0006,.99973,.99973,.99924,.99924,1,.99924,.99999,.99973,.99973,.99973,.99973,.99998,1,1.0006,.99973,1,.99977,1,1,1,1.00005,1.0009,1.00005,1.00003,.99998,.99973,.99973,.99973,.99973,1.0009,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.9998,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,1.00001,1.00001,1.00001,1.00001,1.00001,1.00001,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,1,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.06409,1.00026,.99973,.99973,.99973,.99973,1,.99973,1,1.00001,.99973,1.00001,.99973,1.00001,.99973,.99977,1,.99977,1,.99977,1,.99977,1,.99977,1.04596,.99977,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,.99977,.99973,.99977,.99973,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,.99924,1.0006,1.0006,1.00019,1.00034,1,.99924,1.00001,1,1,.99973,.99924,.99973,.99924,.99973,1.02572,.99973,1.00005,.99973,.99924,.99977,.99973,.99977,.99973,.99977,.99973,.99999,.9998,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1,1.00016,.99977,.99998,.99977,.99998,.99977,.99998,1.00001,1,1.00001,1,1.00001,1,1.00001,1,1.00026,1.0006,1.00026,.84533,1.00026,1.0006,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,1.00016,.99977,1.00001,1,1.00001,1.00026,1,1.00026,1,1.00026,1,.99924,.99973,1.00001,.99973,1,.99982,1.00022,1.00026,1.00001,1,1.00026,1.0006,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99928,1,.99977,1.00013,1.00055,.99947,.99945,.99941,.99924,1.00001,1.00001,1.0004,.91621,1.00001,1.00026,.99977,1.00022,1.0006,1.00001,1.00005,.99999,.99977,1.00015,1.00022,.99977,1.00001,.99973,1.00026,1.00001,1.00019,1.00001,.99946,1,1.0006,1.00001,.99978,1.00045,.99973,.99924,1.00023,.99978,.99966,1,1.00065,1.00045,1.00019,.99973,.99973,.99924,1,1,.96499,1,1.00055,.99973,1.00008,1.00027,1,.9997,.99995,1.00023,.99933,1.00019,1.00015,1.00031,.99924,1.00023,.99973,1.00023,1.00031,1.00001,.99928,1.00029,1.00092,1.00035,1.00001,1.0006,1.0006,1,.99988,.99975,1,1.00082,.99561,.9996,1.00035,1.00001,.99962,1.00001,1.00092,.99964,1.00001,.99963,.99999,1.00035,1.00035,1.00082,.99962,.99999,.99977,1.00022,1.00035,1.00001,.99977,1.00026,.9996,.99967,1.00001,1.00034,1.00074,1.00054,1.00053,1.00063,.99971,.99962,1.00035,.99975,.99977,.99973,1.00043,.99953,1.0007,.99915,.99973,1.00008,.99892,1.00073,1.00073,1.00114,.99915,1.00073,.99955,.99973,1.00092,.99973,1,.99998,1,1.0003,1,1.00043,1.00001,.99969,1.0003,1,1.00035,1.00001,.9995,1,1.00092,.99973,.99973,.99973,1.0007,.9995,1,.99924,1.0006,.99924,.99972,1.00062,.99973,1.00114,1.00073,1,.99955,1,1,1.00047,.99968,1.00016,.99977,1.00016,.99977,1.00016,.99977,1.00001,1,1,1,.99973,1,1,.99955,.99924,.99924,.99924,.99924,.99998,.99998,.99998,.99973,.99973,.99972,1,1,1.00267,.99999,.99998,.99998,1,.99998,1.66475,1,.99973,.99973,1.00023,.99973,.99971,.99925,1.00023,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1,1,1,1,1,1,1,.96329,1,1.20985,1.39713,1.00003,.8254,1.00015,1,1.00035,1.00027,1.00031,1.00031,.99915,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.95317,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.HelveticaRegularMetrics={lineHeight:1.2,lineGap:.2}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.LiberationSansRegularWidths=t.LiberationSansRegularMapping=t.LiberationSansItalicWidths=t.LiberationSansItalicMapping=t.LiberationSansBoldWidths=t.LiberationSansBoldMapping=t.LiberationSansBoldItalicWidths=t.LiberationSansBoldItalicMapping=void 0;t.LiberationSansBoldWidths=[365,0,333,278,333,474,556,556,889,722,238,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,584,333,556,556,556,556,280,556,333,737,370,556,584,737,552,400,549,333,333,333,576,556,278,333,333,365,556,834,834,834,611,722,722,722,722,722,722,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,278,278,611,611,611,611,611,611,611,549,611,611,611,611,611,556,611,556,722,556,722,556,722,556,722,556,722,556,722,556,722,556,722,719,722,611,667,556,667,556,667,556,667,556,667,556,778,611,778,611,778,611,778,611,722,611,722,611,278,278,278,278,278,278,278,278,278,278,785,556,556,278,722,556,556,611,278,611,278,611,385,611,479,611,278,722,611,722,611,722,611,708,723,611,778,611,778,611,778,611,1e3,944,722,389,722,389,722,389,667,556,667,556,667,556,667,556,611,333,611,479,611,333,722,611,722,611,722,611,722,611,722,611,722,611,944,778,667,556,667,611,500,611,500,611,500,278,556,722,556,1e3,889,778,611,667,556,611,333,333,333,333,333,333,333,333,333,333,333,465,722,333,853,906,474,825,927,838,278,722,722,601,719,667,611,722,778,278,722,667,833,722,644,778,722,667,600,611,667,821,667,809,802,278,667,615,451,611,278,582,615,610,556,606,475,460,611,541,278,558,556,612,556,445,611,766,619,520,684,446,582,715,576,753,845,278,582,611,582,845,667,669,885,567,711,667,278,276,556,1094,1062,875,610,722,622,719,722,719,722,567,712,667,904,626,719,719,610,702,833,722,778,719,667,722,611,622,854,667,730,703,1005,1019,870,979,719,711,1031,719,556,618,615,417,635,556,709,497,615,615,500,635,740,604,611,604,611,556,490,556,875,556,615,581,833,844,729,854,615,552,854,583,556,556,611,417,552,556,278,281,278,969,906,611,500,615,556,604,778,611,487,447,944,778,944,778,944,778,667,556,333,333,556,1e3,1e3,552,278,278,278,278,500,500,500,556,556,350,1e3,1e3,240,479,333,333,604,333,167,396,556,556,1094,556,885,489,1115,1e3,768,600,834,834,834,834,1e3,500,1e3,500,1e3,500,500,494,612,823,713,584,549,713,979,722,274,549,549,583,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,611,611,333,333,333,333,333,333,333,333,222,222,333,333,333,333,333,333,333,333];t.LiberationSansBoldMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];t.LiberationSansBoldItalicWidths=[365,0,333,278,333,474,556,556,889,722,238,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,584,333,556,556,556,556,280,556,333,737,370,556,584,737,552,400,549,333,333,333,576,556,278,333,333,365,556,834,834,834,611,722,722,722,722,722,722,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,278,278,611,611,611,611,611,611,611,549,611,611,611,611,611,556,611,556,722,556,722,556,722,556,722,556,722,556,722,556,722,556,722,740,722,611,667,556,667,556,667,556,667,556,667,556,778,611,778,611,778,611,778,611,722,611,722,611,278,278,278,278,278,278,278,278,278,278,782,556,556,278,722,556,556,611,278,611,278,611,396,611,479,611,278,722,611,722,611,722,611,708,723,611,778,611,778,611,778,611,1e3,944,722,389,722,389,722,389,667,556,667,556,667,556,667,556,611,333,611,479,611,333,722,611,722,611,722,611,722,611,722,611,722,611,944,778,667,556,667,611,500,611,500,611,500,278,556,722,556,1e3,889,778,611,667,556,611,333,333,333,333,333,333,333,333,333,333,333,333,722,333,854,906,473,844,930,847,278,722,722,610,671,667,611,722,778,278,722,667,833,722,657,778,718,667,590,611,667,822,667,829,781,278,667,620,479,611,278,591,620,621,556,610,479,492,611,558,278,566,556,603,556,450,611,712,605,532,664,409,591,704,578,773,834,278,591,611,591,834,667,667,886,614,719,667,278,278,556,1094,1042,854,622,719,677,719,722,708,722,614,722,667,927,643,719,719,615,687,833,722,778,719,667,722,611,677,781,667,729,708,979,989,854,1e3,708,719,1042,729,556,619,604,534,618,556,736,510,611,611,507,622,740,604,611,611,611,556,889,556,885,556,646,583,889,935,707,854,594,552,865,589,556,556,611,469,563,556,278,278,278,969,906,611,507,619,556,611,778,611,575,467,944,778,944,778,944,778,667,556,333,333,556,1e3,1e3,552,278,278,278,278,500,500,500,556,556,350,1e3,1e3,240,479,333,333,604,333,167,396,556,556,1104,556,885,516,1146,1e3,768,600,834,834,834,834,999,500,1e3,500,1e3,500,500,494,612,823,713,584,549,713,979,722,274,549,549,583,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,611,611,333,333,333,333,333,333,333,333,222,222,333,333,333,333,333,333,333,333];t.LiberationSansBoldItalicMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];t.LiberationSansItalicWidths=[365,0,333,278,278,355,556,556,889,667,191,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,584,333,556,556,556,556,260,556,333,737,370,556,584,737,552,400,549,333,333,333,576,537,278,333,333,365,556,834,834,834,611,667,667,667,667,667,667,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,278,278,556,556,556,556,556,556,556,549,611,556,556,556,556,500,556,500,667,556,667,556,667,556,722,500,722,500,722,500,722,500,722,625,722,556,667,556,667,556,667,556,667,556,667,556,778,556,778,556,778,556,778,556,722,556,722,556,278,278,278,278,278,278,278,222,278,278,733,444,500,222,667,500,500,556,222,556,222,556,281,556,400,556,222,722,556,722,556,722,556,615,723,556,778,556,778,556,778,556,1e3,944,722,333,722,333,722,333,667,500,667,500,667,500,667,500,611,278,611,354,611,278,722,556,722,556,722,556,722,556,722,556,722,556,944,722,667,500,667,611,500,611,500,611,500,222,556,667,556,1e3,889,778,611,667,500,611,278,333,333,333,333,333,333,333,333,333,333,333,667,278,789,846,389,794,865,775,222,667,667,570,671,667,611,722,778,278,667,667,833,722,648,778,725,667,600,611,667,837,667,831,761,278,667,570,439,555,222,550,570,571,500,556,439,463,555,542,222,500,492,548,500,447,556,670,573,486,603,374,550,652,546,728,779,222,550,556,550,779,667,667,843,544,708,667,278,278,500,1066,982,844,589,715,639,724,667,651,667,544,704,667,917,614,715,715,589,686,833,722,778,725,667,722,611,639,795,667,727,673,920,923,805,886,651,694,1022,682,556,562,522,493,553,556,688,465,556,556,472,564,686,550,556,556,556,500,833,500,835,500,572,518,830,851,621,736,526,492,752,534,556,556,556,378,496,500,222,222,222,910,828,556,472,565,500,556,778,556,492,339,944,722,944,722,944,722,667,500,333,333,556,1e3,1e3,552,222,222,222,222,333,333,333,556,556,350,1e3,1e3,188,354,333,333,500,333,167,365,556,556,1094,556,885,323,1083,1e3,768,600,834,834,834,834,1e3,500,998,500,1e3,500,500,494,612,823,713,584,549,713,979,719,274,549,549,584,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,500,500,333,333,333,333,333,333,333,333,222,222,294,294,324,324,316,328,398,285];t.LiberationSansItalicMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];t.LiberationSansRegularWidths=[365,0,333,278,278,355,556,556,889,667,191,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,584,333,556,556,556,556,260,556,333,737,370,556,584,737,552,400,549,333,333,333,576,537,278,333,333,365,556,834,834,834,611,667,667,667,667,667,667,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,278,278,556,556,556,556,556,556,556,549,611,556,556,556,556,500,556,500,667,556,667,556,667,556,722,500,722,500,722,500,722,500,722,615,722,556,667,556,667,556,667,556,667,556,667,556,778,556,778,556,778,556,778,556,722,556,722,556,278,278,278,278,278,278,278,222,278,278,735,444,500,222,667,500,500,556,222,556,222,556,292,556,334,556,222,722,556,722,556,722,556,604,723,556,778,556,778,556,778,556,1e3,944,722,333,722,333,722,333,667,500,667,500,667,500,667,500,611,278,611,375,611,278,722,556,722,556,722,556,722,556,722,556,722,556,944,722,667,500,667,611,500,611,500,611,500,222,556,667,556,1e3,889,778,611,667,500,611,278,333,333,333,333,333,333,333,333,333,333,333,667,278,784,838,384,774,855,752,222,667,667,551,668,667,611,722,778,278,667,668,833,722,650,778,722,667,618,611,667,798,667,835,748,278,667,578,446,556,222,547,578,575,500,557,446,441,556,556,222,500,500,576,500,448,556,690,569,482,617,395,547,648,525,713,781,222,547,556,547,781,667,667,865,542,719,667,278,278,500,1057,1010,854,583,722,635,719,667,656,667,542,677,667,923,604,719,719,583,656,833,722,778,719,667,722,611,635,760,667,740,667,917,938,792,885,656,719,1010,722,556,573,531,365,583,556,669,458,559,559,438,583,688,552,556,542,556,500,458,500,823,500,573,521,802,823,625,719,521,510,750,542,556,556,556,365,510,500,222,278,222,906,812,556,438,559,500,552,778,556,489,411,944,722,944,722,944,722,667,500,333,333,556,1e3,1e3,552,222,222,222,222,333,333,333,556,556,350,1e3,1e3,188,354,333,333,500,333,167,365,556,556,1094,556,885,323,1073,1e3,768,600,834,834,834,834,1e3,500,1e3,500,1e3,500,500,494,612,823,713,584,549,713,979,719,274,549,549,583,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,500,500,333,333,333,333,333,333,333,333,222,222,294,294,324,324,316,328,398,285];t.LiberationSansRegularMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.MyriadProRegularMetrics=t.MyriadProRegularFactors=t.MyriadProItalicMetrics=t.MyriadProItalicFactors=t.MyriadProBoldMetrics=t.MyriadProBoldItalicMetrics=t.MyriadProBoldItalicFactors=t.MyriadProBoldFactors=void 0;t.MyriadProBoldFactors=[1.36898,1,1,.72706,.80479,.83734,.98894,.99793,.9897,.93884,.86209,.94292,.94292,1.16661,1.02058,.93582,.96694,.93582,1.19137,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.78076,.78076,1.02058,1.02058,1.02058,.72851,.78966,.90838,.83637,.82391,.96376,.80061,.86275,.8768,.95407,1.0258,.73901,.85022,.83655,1.0156,.95546,.92179,.87107,.92179,.82114,.8096,.89713,.94438,.95353,.94083,.91905,.90406,.9446,.94292,1.18777,.94292,1.02058,.89903,.90088,.94938,.97898,.81093,.97571,.94938,1.024,.9577,.95933,.98621,1.0474,.97455,.98981,.9672,.95933,.9446,.97898,.97407,.97646,.78036,1.10208,.95442,.95298,.97579,.9332,.94039,.938,.80687,1.01149,.80687,1.02058,.80479,.99793,.99793,.99793,.99793,1.01149,1.00872,.90088,.91882,1.0213,.8361,1.02058,.62295,.54324,.89022,1.08595,1,1,.90088,1,.97455,.93582,.90088,1,1.05686,.8361,.99642,.99642,.99642,.72851,.90838,.90838,.90838,.90838,.90838,.90838,.868,.82391,.80061,.80061,.80061,.80061,1.0258,1.0258,1.0258,1.0258,.97484,.95546,.92179,.92179,.92179,.92179,.92179,1.02058,.92179,.94438,.94438,.94438,.94438,.90406,.86958,.98225,.94938,.94938,.94938,.94938,.94938,.94938,.9031,.81093,.94938,.94938,.94938,.94938,.98621,.98621,.98621,.98621,.93969,.95933,.9446,.9446,.9446,.9446,.9446,1.08595,.9446,.95442,.95442,.95442,.95442,.94039,.97898,.94039,.90838,.94938,.90838,.94938,.90838,.94938,.82391,.81093,.82391,.81093,.82391,.81093,.82391,.81093,.96376,.84313,.97484,.97571,.80061,.94938,.80061,.94938,.80061,.94938,.80061,.94938,.80061,.94938,.8768,.9577,.8768,.9577,.8768,.9577,1,1,.95407,.95933,.97069,.95933,1.0258,.98621,1.0258,.98621,1.0258,.98621,1.0258,.98621,1.0258,.98621,.887,1.01591,.73901,1.0474,1,1,.97455,.83655,.98981,1,1,.83655,.73977,.83655,.73903,.84638,1.033,.95546,.95933,1,1,.95546,.95933,.8271,.95417,.95933,.92179,.9446,.92179,.9446,.92179,.9446,.936,.91964,.82114,.97646,1,1,.82114,.97646,.8096,.78036,.8096,.78036,1,1,.8096,.78036,1,1,.89713,.77452,.89713,1.10208,.94438,.95442,.94438,.95442,.94438,.95442,.94438,.95442,.94438,.95442,.94438,.95442,.94083,.97579,.90406,.94039,.90406,.9446,.938,.9446,.938,.9446,.938,1,.99793,.90838,.94938,.868,.9031,.92179,.9446,1,1,.89713,1.10208,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90989,.9358,.91945,.83181,.75261,.87992,.82976,.96034,.83689,.97268,1.0078,.90838,.83637,.8019,.90157,.80061,.9446,.95407,.92436,1.0258,.85022,.97153,1.0156,.95546,.89192,.92179,.92361,.87107,.96318,.89713,.93704,.95638,.91905,.91709,.92796,1.0258,.93704,.94836,1.0373,.95933,1.0078,.95871,.94836,.96174,.92601,.9498,.98607,.95776,.95933,1.05453,1.0078,.98275,.9314,.95617,.91701,1.05993,.9446,.78367,.9553,1,.86832,1.0128,.95871,.99394,.87548,.96361,.86774,1.0078,.95871,.9446,.95871,.86774,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.94083,.97579,.94083,.97579,.94083,.97579,.90406,.94039,.96694,1,.89903,1,1,1,.93582,.93582,.93582,1,.908,.908,.918,.94219,.94219,.96544,1,1.285,1,1,.81079,.81079,1,1,.74854,1,1,1,1,.99793,1,1,1,.65,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.17173,1,.80535,.76169,1.02058,1.0732,1.05486,1,1,1.30692,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.16161,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.MyriadProBoldMetrics={lineHeight:1.2,lineGap:.2};t.MyriadProBoldItalicFactors=[1.36898,1,1,.66227,.80779,.81625,.97276,.97276,.97733,.92222,.83266,.94292,.94292,1.16148,1.02058,.93582,.96694,.93582,1.17337,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.78076,.78076,1.02058,1.02058,1.02058,.71541,.76813,.85576,.80591,.80729,.94299,.77512,.83655,.86523,.92222,.98621,.71743,.81698,.79726,.98558,.92222,.90637,.83809,.90637,.80729,.76463,.86275,.90699,.91605,.9154,.85308,.85458,.90531,.94292,1.21296,.94292,1.02058,.89903,1.18616,.99613,.91677,.78216,.91677,.90083,.98796,.9135,.92168,.95381,.98981,.95298,.95381,.93459,.92168,.91513,.92004,.91677,.95077,.748,1.04502,.91677,.92061,.94236,.89544,.89364,.9,.80687,.8578,.80687,1.02058,.80779,.97276,.97276,.97276,.97276,.8578,.99973,1.18616,.91339,1.08074,.82891,1.02058,.55509,.71526,.89022,1.08595,1,1,1.18616,1,.96736,.93582,1.18616,1,1.04864,.82711,.99043,.99043,.99043,.71541,.85576,.85576,.85576,.85576,.85576,.85576,.845,.80729,.77512,.77512,.77512,.77512,.98621,.98621,.98621,.98621,.95961,.92222,.90637,.90637,.90637,.90637,.90637,1.02058,.90251,.90699,.90699,.90699,.90699,.85458,.83659,.94951,.99613,.99613,.99613,.99613,.99613,.99613,.85811,.78216,.90083,.90083,.90083,.90083,.95381,.95381,.95381,.95381,.9135,.92168,.91513,.91513,.91513,.91513,.91513,1.08595,.91677,.91677,.91677,.91677,.91677,.89364,.92332,.89364,.85576,.99613,.85576,.99613,.85576,.99613,.80729,.78216,.80729,.78216,.80729,.78216,.80729,.78216,.94299,.76783,.95961,.91677,.77512,.90083,.77512,.90083,.77512,.90083,.77512,.90083,.77512,.90083,.86523,.9135,.86523,.9135,.86523,.9135,1,1,.92222,.92168,.92222,.92168,.98621,.95381,.98621,.95381,.98621,.95381,.98621,.95381,.98621,.95381,.86036,.97096,.71743,.98981,1,1,.95298,.79726,.95381,1,1,.79726,.6894,.79726,.74321,.81691,1.0006,.92222,.92168,1,1,.92222,.92168,.79464,.92098,.92168,.90637,.91513,.90637,.91513,.90637,.91513,.909,.87514,.80729,.95077,1,1,.80729,.95077,.76463,.748,.76463,.748,1,1,.76463,.748,1,1,.86275,.72651,.86275,1.04502,.90699,.91677,.90699,.91677,.90699,.91677,.90699,.91677,.90699,.91677,.90699,.91677,.9154,.94236,.85458,.89364,.85458,.90531,.9,.90531,.9,.90531,.9,1,.97276,.85576,.99613,.845,.85811,.90251,.91677,1,1,.86275,1.04502,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.00899,1.30628,.85576,.80178,.66862,.7927,.69323,.88127,.72459,.89711,.95381,.85576,.80591,.7805,.94729,.77512,.90531,.92222,.90637,.98621,.81698,.92655,.98558,.92222,.85359,.90637,.90976,.83809,.94523,.86275,.83509,.93157,.85308,.83392,.92346,.98621,.83509,.92886,.91324,.92168,.95381,.90646,.92886,.90557,.86847,.90276,.91324,.86842,.92168,.99531,.95381,.9224,.85408,.92699,.86847,1.0051,.91513,.80487,.93481,1,.88159,1.05214,.90646,.97355,.81539,.89398,.85923,.95381,.90646,.91513,.90646,.85923,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.9154,.94236,.9154,.94236,.9154,.94236,.85458,.89364,.96694,1,.89903,1,1,1,.91782,.91782,.91782,1,.896,.896,.896,.9332,.9332,.95973,1,1.26,1,1,.80479,.80178,1,1,.85633,1,1,1,1,.97276,1,1,1,.698,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.14542,1,.79199,.78694,1.02058,1.03493,1.05486,1,1,1.23026,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.20006,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.MyriadProBoldItalicMetrics={lineHeight:1.2,lineGap:.2};t.MyriadProItalicFactors=[1.36898,1,1,.65507,.84943,.85639,.88465,.88465,.86936,.88307,.86948,.85283,.85283,1.06383,1.02058,.75945,.9219,.75945,1.17337,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.75945,.75945,1.02058,1.02058,1.02058,.69046,.70926,.85158,.77812,.76852,.89591,.70466,.76125,.80094,.86822,.83864,.728,.77212,.79475,.93637,.87514,.8588,.76013,.8588,.72421,.69866,.77598,.85991,.80811,.87832,.78112,.77512,.8562,1.0222,1.18417,1.0222,1.27014,.89903,1.15012,.93859,.94399,.846,.94399,.81453,1.0186,.94219,.96017,1.03075,1.02175,.912,1.03075,.96998,.96017,.93859,.94399,.94399,.95493,.746,1.12658,.94578,.91,.979,.882,.882,.83,.85034,.83537,.85034,1.02058,.70869,.88465,.88465,.88465,.88465,.83537,.90083,1.15012,.9161,.94565,.73541,1.02058,.53609,.69353,.79519,1.08595,1,1,1.15012,1,.91974,.75945,1.15012,1,.9446,.73361,.9005,.9005,.9005,.62864,.85158,.85158,.85158,.85158,.85158,.85158,.773,.76852,.70466,.70466,.70466,.70466,.83864,.83864,.83864,.83864,.90561,.87514,.8588,.8588,.8588,.8588,.8588,1.02058,.85751,.85991,.85991,.85991,.85991,.77512,.76013,.88075,.93859,.93859,.93859,.93859,.93859,.93859,.8075,.846,.81453,.81453,.81453,.81453,.82424,.82424,.82424,.82424,.9278,.96017,.93859,.93859,.93859,.93859,.93859,1.08595,.8562,.94578,.94578,.94578,.94578,.882,.94578,.882,.85158,.93859,.85158,.93859,.85158,.93859,.76852,.846,.76852,.846,.76852,.846,.76852,.846,.89591,.8544,.90561,.94399,.70466,.81453,.70466,.81453,.70466,.81453,.70466,.81453,.70466,.81453,.80094,.94219,.80094,.94219,.80094,.94219,1,1,.86822,.96017,.86822,.96017,.83864,.82424,.83864,.82424,.83864,.82424,.83864,1.03075,.83864,.82424,.81402,1.02738,.728,1.02175,1,1,.912,.79475,1.03075,1,1,.79475,.83911,.79475,.66266,.80553,1.06676,.87514,.96017,1,1,.87514,.96017,.86865,.87396,.96017,.8588,.93859,.8588,.93859,.8588,.93859,.867,.84759,.72421,.95493,1,1,.72421,.95493,.69866,.746,.69866,.746,1,1,.69866,.746,1,1,.77598,.88417,.77598,1.12658,.85991,.94578,.85991,.94578,.85991,.94578,.85991,.94578,.85991,.94578,.85991,.94578,.87832,.979,.77512,.882,.77512,.8562,.83,.8562,.83,.8562,.83,1,.88465,.85158,.93859,.773,.8075,.85751,.8562,1,1,.77598,1.12658,1.15012,1.15012,1.15012,1.15012,1.15012,1.15313,1.15012,1.15012,1.15012,1.08106,1.03901,.85158,.77025,.62264,.7646,.65351,.86026,.69461,.89947,1.03075,.85158,.77812,.76449,.88836,.70466,.8562,.86822,.8588,.83864,.77212,.85308,.93637,.87514,.82352,.8588,.85701,.76013,.89058,.77598,.8156,.82565,.78112,.77899,.89386,.83864,.8156,.9486,.92388,.96186,1.03075,.91123,.9486,.93298,.878,.93942,.92388,.84596,.96186,.95119,1.03075,.922,.88787,.95829,.88,.93559,.93859,.78815,.93758,1,.89217,1.03737,.91123,.93969,.77487,.85769,.86799,1.03075,.91123,.93859,.91123,.86799,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.87832,.979,.87832,.979,.87832,.979,.77512,.882,.9219,1,.89903,1,1,1,.87321,.87321,.87321,1,1.027,1.027,1.027,.86847,.86847,.79121,1,1.124,1,1,.73572,.73572,1,1,.85034,1,1,1,1,.88465,1,1,1,.669,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.04828,1,.74948,.75187,1.02058,.98391,1.02119,1,1,1.06233,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.05233,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.MyriadProItalicMetrics={lineHeight:1.2,lineGap:.2};t.MyriadProRegularFactors=[1.36898,1,1,.76305,.82784,.94935,.89364,.92241,.89073,.90706,.98472,.85283,.85283,1.0664,1.02058,.74505,.9219,.74505,1.23456,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.74505,.74505,1.02058,1.02058,1.02058,.73002,.72601,.91755,.8126,.80314,.92222,.73764,.79726,.83051,.90284,.86023,.74,.8126,.84869,.96518,.91115,.8858,.79761,.8858,.74498,.73914,.81363,.89591,.83659,.89633,.85608,.8111,.90531,1.0222,1.22736,1.0222,1.27014,.89903,.90088,.86667,1.0231,.896,1.01411,.90083,1.05099,1.00512,.99793,1.05326,1.09377,.938,1.06226,1.00119,.99793,.98714,1.0231,1.01231,.98196,.792,1.19137,.99074,.962,1.01915,.926,.942,.856,.85034,.92006,.85034,1.02058,.69067,.92241,.92241,.92241,.92241,.92006,.9332,.90088,.91882,.93484,.75339,1.02058,.56866,.54324,.79519,1.08595,1,1,.90088,1,.95325,.74505,.90088,1,.97198,.75339,.91009,.91009,.91009,.66466,.91755,.91755,.91755,.91755,.91755,.91755,.788,.80314,.73764,.73764,.73764,.73764,.86023,.86023,.86023,.86023,.92915,.91115,.8858,.8858,.8858,.8858,.8858,1.02058,.8858,.89591,.89591,.89591,.89591,.8111,.79611,.89713,.86667,.86667,.86667,.86667,.86667,.86667,.86936,.896,.90083,.90083,.90083,.90083,.84224,.84224,.84224,.84224,.97276,.99793,.98714,.98714,.98714,.98714,.98714,1.08595,.89876,.99074,.99074,.99074,.99074,.942,1.0231,.942,.91755,.86667,.91755,.86667,.91755,.86667,.80314,.896,.80314,.896,.80314,.896,.80314,.896,.92222,.93372,.92915,1.01411,.73764,.90083,.73764,.90083,.73764,.90083,.73764,.90083,.73764,.90083,.83051,1.00512,.83051,1.00512,.83051,1.00512,1,1,.90284,.99793,.90976,.99793,.86023,.84224,.86023,.84224,.86023,.84224,.86023,1.05326,.86023,.84224,.82873,1.07469,.74,1.09377,1,1,.938,.84869,1.06226,1,1,.84869,.83704,.84869,.81441,.85588,1.08927,.91115,.99793,1,1,.91115,.99793,.91887,.90991,.99793,.8858,.98714,.8858,.98714,.8858,.98714,.894,.91434,.74498,.98196,1,1,.74498,.98196,.73914,.792,.73914,.792,1,1,.73914,.792,1,1,.81363,.904,.81363,1.19137,.89591,.99074,.89591,.99074,.89591,.99074,.89591,.99074,.89591,.99074,.89591,.99074,.89633,1.01915,.8111,.942,.8111,.90531,.856,.90531,.856,.90531,.856,1,.92241,.91755,.86667,.788,.86936,.8858,.89876,1,1,.81363,1.19137,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90388,1.03901,.92138,.78105,.7154,.86169,.80513,.94007,.82528,.98612,1.06226,.91755,.8126,.81884,.92819,.73764,.90531,.90284,.8858,.86023,.8126,.91172,.96518,.91115,.83089,.8858,.87791,.79761,.89297,.81363,.88157,.89992,.85608,.81992,.94307,.86023,.88157,.95308,.98699,.99793,1.06226,.95817,.95308,.97358,.928,.98088,.98699,.92761,.99793,.96017,1.06226,.986,.944,.95978,.938,.96705,.98714,.80442,.98972,1,.89762,1.04552,.95817,.99007,.87064,.91879,.88888,1.06226,.95817,.98714,.95817,.88888,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.89633,1.01915,.89633,1.01915,.89633,1.01915,.8111,.942,.9219,1,.89903,1,1,1,.93173,.93173,.93173,1,1.06304,1.06304,1.06904,.89903,.89903,.80549,1,1.156,1,1,.76575,.76575,1,1,.72458,1,1,1,1,.92241,1,1,1,.619,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.07257,1,.74705,.71119,1.02058,1.024,1.02119,1,1,1.1536,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.05638,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.MyriadProRegularMetrics={lineHeight:1.2,lineGap:.2}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.SegoeuiRegularMetrics=t.SegoeuiRegularFactors=t.SegoeuiItalicMetrics=t.SegoeuiItalicFactors=t.SegoeuiBoldMetrics=t.SegoeuiBoldItalicMetrics=t.SegoeuiBoldItalicFactors=t.SegoeuiBoldFactors=void 0;t.SegoeuiBoldFactors=[1.76738,1,1,.99297,.9824,1.04016,1.06497,1.03424,.97529,1.17647,1.23203,1.1085,1.1085,1.16939,1.2107,.9754,1.21408,.9754,1.59578,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,.81378,.81378,1.2107,1.2107,1.2107,.71703,.97847,.97363,.88776,.8641,1.02096,.79795,.85132,.914,1.06085,1.1406,.8007,.89858,.83693,1.14889,1.09398,.97489,.92094,.97489,.90399,.84041,.95923,1.00135,1,1.06467,.98243,.90996,.99361,1.1085,1.56942,1.1085,1.2107,.74627,.94282,.96752,1.01519,.86304,1.01359,.97278,1.15103,1.01359,.98561,1.02285,1.02285,1.00527,1.02285,1.0302,.99041,1.0008,1.01519,1.01359,1.02258,.79104,1.16862,.99041,.97454,1.02511,.99298,.96752,.95801,.94856,1.16579,.94856,1.2107,.9824,1.03424,1.03424,1,1.03424,1.16579,.8727,1.3871,1.18622,1.10818,1.04478,1.2107,1.18622,.75155,.94994,1.28826,1.21408,1.21408,.91056,1,.91572,.9754,.64663,1.18328,1.24866,1.04478,1.14169,1.15749,1.17389,.71703,.97363,.97363,.97363,.97363,.97363,.97363,.93506,.8641,.79795,.79795,.79795,.79795,1.1406,1.1406,1.1406,1.1406,1.02096,1.09398,.97426,.97426,.97426,.97426,.97426,1.2107,.97489,1.00135,1.00135,1.00135,1.00135,.90996,.92094,1.02798,.96752,.96752,.96752,.96752,.96752,.96752,.93136,.86304,.97278,.97278,.97278,.97278,1.02285,1.02285,1.02285,1.02285,.97122,.99041,1,1,1,1,1,1.28826,1.0008,.99041,.99041,.99041,.99041,.96752,1.01519,.96752,.97363,.96752,.97363,.96752,.97363,.96752,.8641,.86304,.8641,.86304,.8641,.86304,.8641,.86304,1.02096,1.03057,1.02096,1.03517,.79795,.97278,.79795,.97278,.79795,.97278,.79795,.97278,.79795,.97278,.914,1.01359,.914,1.01359,.914,1.01359,1,1,1.06085,.98561,1.06085,1.00879,1.1406,1.02285,1.1406,1.02285,1.1406,1.02285,1.1406,1.02285,1.1406,1.02285,.97138,1.08692,.8007,1.02285,1,1,1.00527,.83693,1.02285,1,1,.83693,.9455,.83693,.90418,.83693,1.13005,1.09398,.99041,1,1,1.09398,.99041,.96692,1.09251,.99041,.97489,1.0008,.97489,1.0008,.97489,1.0008,.93994,.97931,.90399,1.02258,1,1,.90399,1.02258,.84041,.79104,.84041,.79104,.84041,.79104,.84041,.79104,1,1,.95923,1.07034,.95923,1.16862,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.06467,1.02511,.90996,.96752,.90996,.99361,.95801,.99361,.95801,.99361,.95801,1.07733,1.03424,.97363,.96752,.93506,.93136,.97489,1.0008,1,1,.95923,1.16862,1.15103,1.15103,1.01173,1.03959,.75953,.81378,.79912,1.15103,1.21994,.95161,.87815,1.01149,.81525,.7676,.98167,1.01134,1.02546,.84097,1.03089,1.18102,.97363,.88776,.85134,.97826,.79795,.99361,1.06085,.97489,1.1406,.89858,1.0388,1.14889,1.09398,.86039,.97489,1.0595,.92094,.94793,.95923,.90996,.99346,.98243,1.02112,.95493,1.1406,.90996,1.03574,1.02597,1.0008,1.18102,1.06628,1.03574,1.0192,1.01932,1.00886,.97531,1.0106,1.0008,1.13189,1.18102,1.02277,.98683,1.0016,.99561,1.07237,1.0008,.90434,.99921,.93803,.8965,1.23085,1.06628,1.04983,.96268,1.0499,.98439,1.18102,1.06628,1.0008,1.06628,.98439,.79795,1,1,1,1,1,1,1,1,1,1,1,1,1.09466,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.97278,1,1,1,1,1,1,1,1,1,1,1,1,1.02065,1,1,1,1,1,1,1.06467,1.02511,1.06467,1.02511,1.06467,1.02511,.90996,.96752,1,1.21408,.89903,1,1,.75155,1.04394,1.04394,1.04394,1.04394,.98633,.98633,.98633,.73047,.73047,1.20642,.91211,1.25635,1.222,1.02956,1.03372,1.03372,.96039,1.24633,1,1.12454,.93503,1.03424,1.19687,1.03424,1,1,1,.771,1,1,1.15749,1.15749,1.15749,1.10948,.86279,.94434,.86279,.94434,.86182,1,1,1.16897,1,.96085,.90137,1.2107,1.18416,1.13973,.69825,.9716,2.10339,1.29004,1.29004,1.21172,1.29004,1.29004,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.18874,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.09193,1.09193,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.SegoeuiBoldMetrics={lineHeight:1.33008,lineGap:0};t.SegoeuiBoldItalicFactors=[1.76738,1,1,.98946,1.03959,1.04016,1.02809,1.036,.97639,1.10953,1.23203,1.11144,1.11144,1.16939,1.21237,.9754,1.21261,.9754,1.59754,1.036,1.036,1.036,1.036,1.036,1.036,1.036,1.036,1.036,1.036,.81378,.81378,1.21237,1.21237,1.21237,.73541,.97847,.97363,.89723,.87897,1.0426,.79429,.85292,.91149,1.05815,1.1406,.79631,.90128,.83853,1.04396,1.10615,.97552,.94436,.97552,.88641,.80527,.96083,1.00135,1,1.06777,.9817,.91142,.99361,1.11144,1.57293,1.11144,1.21237,.74627,1.31818,1.06585,.97042,.83055,.97042,.93503,1.1261,.97042,.97922,1.14236,.94552,1.01054,1.14236,1.02471,.97922,.94165,.97042,.97042,1.0276,.78929,1.1261,.97922,.95874,1.02197,.98507,.96752,.97168,.95107,1.16579,.95107,1.21237,1.03959,1.036,1.036,1,1.036,1.16579,.87357,1.31818,1.18754,1.26781,1.05356,1.21237,1.18622,.79487,.94994,1.29004,1.24047,1.24047,1.31818,1,.91484,.9754,1.31818,1.1349,1.24866,1.05356,1.13934,1.15574,1.17389,.73541,.97363,.97363,.97363,.97363,.97363,.97363,.94385,.87897,.79429,.79429,.79429,.79429,1.1406,1.1406,1.1406,1.1406,1.0426,1.10615,.97552,.97552,.97552,.97552,.97552,1.21237,.97552,1.00135,1.00135,1.00135,1.00135,.91142,.94436,.98721,1.06585,1.06585,1.06585,1.06585,1.06585,1.06585,.96705,.83055,.93503,.93503,.93503,.93503,1.14236,1.14236,1.14236,1.14236,.93125,.97922,.94165,.94165,.94165,.94165,.94165,1.29004,.94165,.97922,.97922,.97922,.97922,.96752,.97042,.96752,.97363,1.06585,.97363,1.06585,.97363,1.06585,.87897,.83055,.87897,.83055,.87897,.83055,.87897,.83055,1.0426,1.0033,1.0426,.97042,.79429,.93503,.79429,.93503,.79429,.93503,.79429,.93503,.79429,.93503,.91149,.97042,.91149,.97042,.91149,.97042,1,1,1.05815,.97922,1.05815,.97922,1.1406,1.14236,1.1406,1.14236,1.1406,1.14236,1.1406,1.14236,1.1406,1.14236,.97441,1.04302,.79631,1.01582,1,1,1.01054,.83853,1.14236,1,1,.83853,1.09125,.83853,.90418,.83853,1.19508,1.10615,.97922,1,1,1.10615,.97922,1.01034,1.10466,.97922,.97552,.94165,.97552,.94165,.97552,.94165,.91602,.91981,.88641,1.0276,1,1,.88641,1.0276,.80527,.78929,.80527,.78929,.80527,.78929,.80527,.78929,1,1,.96083,1.05403,.95923,1.16862,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.06777,1.02197,.91142,.96752,.91142,.99361,.97168,.99361,.97168,.99361,.97168,1.23199,1.036,.97363,1.06585,.94385,.96705,.97552,.94165,1,1,.96083,1.1261,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,.95161,1.27126,1.00811,.83284,.77702,.99137,.95253,1.0347,.86142,1.07205,1.14236,.97363,.89723,.86869,1.09818,.79429,.99361,1.05815,.97552,1.1406,.90128,1.06662,1.04396,1.10615,.84918,.97552,1.04694,.94436,.98015,.96083,.91142,1.00356,.9817,1.01945,.98999,1.1406,.91142,1.04961,.9898,1.00639,1.14236,1.07514,1.04961,.99607,1.02897,1.008,.9898,.95134,1.00639,1.11121,1.14236,1.00518,.97981,1.02186,1,1.08578,.94165,.99314,.98387,.93028,.93377,1.35125,1.07514,1.10687,.93491,1.04232,1.00351,1.14236,1.07514,.94165,1.07514,1.00351,.79429,1,1,1,1,1,1,1,1,1,1,1,1,1.09097,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.93503,1,1,1,1,1,1,1,1,1,1,1,1,.96609,1,1,1,1,1,1,1.06777,1.02197,1.06777,1.02197,1.06777,1.02197,.91142,.96752,1,1.21261,.89903,1,1,.75155,1.04745,1.04745,1.04745,1.04394,.98633,.98633,.98633,.72959,.72959,1.20502,.91406,1.26514,1.222,1.02956,1.03372,1.03372,.96039,1.24633,1,1.09125,.93327,1.03336,1.16541,1.036,1,1,1,.771,1,1,1.15574,1.15574,1.15574,1.15574,.86364,.94434,.86279,.94434,.86224,1,1,1.16798,1,.96085,.90068,1.21237,1.18416,1.13904,.69825,.9716,2.10339,1.29004,1.29004,1.21339,1.29004,1.29004,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.18775,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.13269,1.13269,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.SegoeuiBoldItalicMetrics={lineHeight:1.33008,lineGap:0};t.SegoeuiItalicFactors=[1.76738,1,1,.98946,1.14763,1.05365,1.06234,.96927,.92586,1.15373,1.18414,.91349,.91349,1.07403,1.17308,.78383,1.20088,.78383,1.42531,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.78383,.78383,1.17308,1.17308,1.17308,.77349,.94565,.94729,.85944,.88506,.9858,.74817,.80016,.88449,.98039,.95782,.69238,.89898,.83231,.98183,1.03989,.96924,.86237,.96924,.80595,.74524,.86091,.95402,.94143,.98448,.8858,.83089,.93285,1.0949,1.39016,1.0949,1.45994,.74627,1.04839,.97454,.97454,.87207,.97454,.87533,1.06151,.97454,1.00176,1.16484,1.08132,.98047,1.16484,1.02989,1.01054,.96225,.97454,.97454,1.06598,.79004,1.16344,1.00351,.94629,.9973,.91016,.96777,.9043,.91082,.92481,.91082,1.17308,.95748,.96927,.96927,1,.96927,.92481,.80597,1.04839,1.23393,1.1781,.9245,1.17308,1.20808,.63218,.94261,1.24822,1.09971,1.09971,1.04839,1,.85273,.78032,1.04839,1.09971,1.22326,.9245,1.09836,1.13525,1.15222,.70424,.94729,.94729,.94729,.94729,.94729,.94729,.85498,.88506,.74817,.74817,.74817,.74817,.95782,.95782,.95782,.95782,.9858,1.03989,.96924,.96924,.96924,.96924,.96924,1.17308,.96924,.95402,.95402,.95402,.95402,.83089,.86237,.88409,.97454,.97454,.97454,.97454,.97454,.97454,.92916,.87207,.87533,.87533,.87533,.87533,.93146,.93146,.93146,.93146,.93854,1.01054,.96225,.96225,.96225,.96225,.96225,1.24822,.8761,1.00351,1.00351,1.00351,1.00351,.96777,.97454,.96777,.94729,.97454,.94729,.97454,.94729,.97454,.88506,.87207,.88506,.87207,.88506,.87207,.88506,.87207,.9858,.95391,.9858,.97454,.74817,.87533,.74817,.87533,.74817,.87533,.74817,.87533,.74817,.87533,.88449,.97454,.88449,.97454,.88449,.97454,1,1,.98039,1.00176,.98039,1.00176,.95782,.93146,.95782,.93146,.95782,.93146,.95782,1.16484,.95782,.93146,.84421,1.12761,.69238,1.08132,1,1,.98047,.83231,1.16484,1,1,.84723,1.04861,.84723,.78755,.83231,1.23736,1.03989,1.01054,1,1,1.03989,1.01054,.9857,1.03849,1.01054,.96924,.96225,.96924,.96225,.96924,.96225,.92383,.90171,.80595,1.06598,1,1,.80595,1.06598,.74524,.79004,.74524,.79004,.74524,.79004,.74524,.79004,1,1,.86091,1.02759,.85771,1.16344,.95402,1.00351,.95402,1.00351,.95402,1.00351,.95402,1.00351,.95402,1.00351,.95402,1.00351,.98448,.9973,.83089,.96777,.83089,.93285,.9043,.93285,.9043,.93285,.9043,1.31868,.96927,.94729,.97454,.85498,.92916,.96924,.8761,1,1,.86091,1.16344,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,.81965,.81965,.94729,.78032,.71022,.90883,.84171,.99877,.77596,1.05734,1.2,.94729,.85944,.82791,.9607,.74817,.93285,.98039,.96924,.95782,.89898,.98316,.98183,1.03989,.78614,.96924,.97642,.86237,.86075,.86091,.83089,.90082,.8858,.97296,1.01284,.95782,.83089,1.0976,1.04,1.03342,1.2,1.0675,1.0976,.98205,1.03809,1.05097,1.04,.95364,1.03342,1.05401,1.2,1.02148,1.0119,1.04724,1.0127,1.02732,.96225,.8965,.97783,.93574,.94818,1.30679,1.0675,1.11826,.99821,1.0557,1.0326,1.2,1.0675,.96225,1.0675,1.0326,.74817,1,1,1,1,1,1,1,1,1,1,1,1,1.03754,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.87533,1,1,1,1,1,1,1,1,1,1,1,1,.98705,1,1,1,1,1,1,.98448,.9973,.98448,.9973,.98448,.9973,.83089,.96777,1,1.20088,.89903,1,1,.75155,.94945,.94945,.94945,.94945,1.12317,1.12317,1.12317,.67603,.67603,1.15621,.73584,1.21191,1.22135,1.06483,.94868,.94868,.95996,1.24633,1,1.07497,.87709,.96927,1.01473,.96927,1,1,1,.77295,1,1,1.09836,1.09836,1.09836,1.01522,.86321,.94434,.8649,.94434,.86182,1,1,1.083,1,.91578,.86438,1.17308,1.18416,1.14589,.69825,.97622,1.96791,1.24822,1.24822,1.17308,1.24822,1.24822,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.17984,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.10742,1.10742,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.SegoeuiItalicMetrics={lineHeight:1.33008,lineGap:0};t.SegoeuiRegularFactors=[1.76738,1,1,.98594,1.02285,1.10454,1.06234,.96927,.92037,1.19985,1.2046,.90616,.90616,1.07152,1.1714,.78032,1.20088,.78032,1.40246,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.78032,.78032,1.1714,1.1714,1.1714,.80597,.94084,.96706,.85944,.85734,.97093,.75842,.79936,.88198,.9831,.95782,.71387,.86969,.84636,1.07796,1.03584,.96924,.83968,.96924,.82826,.79649,.85771,.95132,.93119,.98965,.88433,.8287,.93365,1.08612,1.3638,1.08612,1.45786,.74627,.80499,.91484,1.05707,.92383,1.05882,.9403,1.12654,1.05882,1.01756,1.09011,1.09011,.99414,1.09011,1.034,1.01756,1.05356,1.05707,1.05882,1.04399,.84863,1.21968,1.01756,.95801,1.00068,.91797,.96777,.9043,.90351,.92105,.90351,1.1714,.85337,.96927,.96927,.99912,.96927,.92105,.80597,1.2434,1.20808,1.05937,.90957,1.1714,1.20808,.75155,.94261,1.24644,1.09971,1.09971,.84751,1,.85273,.78032,.61584,1.05425,1.17914,.90957,1.08665,1.11593,1.14169,.73381,.96706,.96706,.96706,.96706,.96706,.96706,.86035,.85734,.75842,.75842,.75842,.75842,.95782,.95782,.95782,.95782,.97093,1.03584,.96924,.96924,.96924,.96924,.96924,1.1714,.96924,.95132,.95132,.95132,.95132,.8287,.83968,.89049,.91484,.91484,.91484,.91484,.91484,.91484,.93575,.92383,.9403,.9403,.9403,.9403,.8717,.8717,.8717,.8717,1.00527,1.01756,1.05356,1.05356,1.05356,1.05356,1.05356,1.24644,.95923,1.01756,1.01756,1.01756,1.01756,.96777,1.05707,.96777,.96706,.91484,.96706,.91484,.96706,.91484,.85734,.92383,.85734,.92383,.85734,.92383,.85734,.92383,.97093,1.0969,.97093,1.05882,.75842,.9403,.75842,.9403,.75842,.9403,.75842,.9403,.75842,.9403,.88198,1.05882,.88198,1.05882,.88198,1.05882,1,1,.9831,1.01756,.9831,1.01756,.95782,.8717,.95782,.8717,.95782,.8717,.95782,1.09011,.95782,.8717,.84784,1.11551,.71387,1.09011,1,1,.99414,.84636,1.09011,1,1,.84636,1.0536,.84636,.94298,.84636,1.23297,1.03584,1.01756,1,1,1.03584,1.01756,1.00323,1.03444,1.01756,.96924,1.05356,.96924,1.05356,.96924,1.05356,.93066,.98293,.82826,1.04399,1,1,.82826,1.04399,.79649,.84863,.79649,.84863,.79649,.84863,.79649,.84863,1,1,.85771,1.17318,.85771,1.21968,.95132,1.01756,.95132,1.01756,.95132,1.01756,.95132,1.01756,.95132,1.01756,.95132,1.01756,.98965,1.00068,.8287,.96777,.8287,.93365,.9043,.93365,.9043,.93365,.9043,1.08571,.96927,.96706,.91484,.86035,.93575,.96924,.95923,1,1,.85771,1.21968,1.11437,1.11437,.93109,.91202,.60411,.84164,.55572,1.01173,.97361,.81818,.81818,.96635,.78032,.72727,.92366,.98601,1.03405,.77968,1.09799,1.2,.96706,.85944,.85638,.96491,.75842,.93365,.9831,.96924,.95782,.86969,.94152,1.07796,1.03584,.78437,.96924,.98715,.83968,.83491,.85771,.8287,.94492,.88433,.9287,1.0098,.95782,.8287,1.0625,.98248,1.03424,1.2,1.01071,1.0625,.95246,1.03809,1.04912,.98248,1.00221,1.03424,1.05443,1.2,1.04785,.99609,1.00169,1.05176,.99346,1.05356,.9087,1.03004,.95542,.93117,1.23362,1.01071,1.07831,1.02512,1.05205,1.03502,1.2,1.01071,1.05356,1.01071,1.03502,.75842,1,1,1,1,1,1,1,1,1,1,1,1,1.03719,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.9403,1,1,1,1,1,1,1,1,1,1,1,1,1.04021,1,1,1,1,1,1,.98965,1.00068,.98965,1.00068,.98965,1.00068,.8287,.96777,1,1.20088,.89903,1,1,.75155,1.03077,1.03077,1.03077,1.03077,1.13196,1.13196,1.13196,.67428,.67428,1.16039,.73291,1.20996,1.22135,1.06483,.94868,.94868,.95996,1.24633,1,1.07497,.87796,.96927,1.01518,.96927,1,1,1,.77295,1,1,1.10539,1.10539,1.11358,1.06967,.86279,.94434,.86279,.94434,.86182,1,1,1.083,1,.91578,.86507,1.1714,1.18416,1.14589,.69825,.97622,1.9697,1.24822,1.24822,1.17238,1.24822,1.24822,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.18083,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.10938,1.10938,1,1,1,1.05425,1.09971,1.09971,1.09971,1,1,1,1,1,1,1,1,1,1,1];t.SegoeuiRegularMetrics={lineHeight:1.33008,lineGap:0}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.SEAC_ANALYSIS_ENABLED=t.MacStandardGlyphOrdering=t.FontFlags=void 0;t.getFontType=function getFontType(e,t,a=!1){switch(e){case"Type1":return a?r.FontType.TYPE1STANDARD:"Type1C"===t?r.FontType.TYPE1C:r.FontType.TYPE1;case"CIDFontType0":return"CIDFontType0C"===t?r.FontType.CIDFONTTYPE0C:r.FontType.CIDFONTTYPE0;case"OpenType":return r.FontType.OPENTYPE;case"TrueType":return r.FontType.TRUETYPE;case"CIDFontType2":return r.FontType.CIDFONTTYPE2;case"MMType1":return r.FontType.MMTYPE1;case"Type0":return r.FontType.TYPE0;default:return r.FontType.UNKNOWN}};t.normalizeFontName=function normalizeFontName(e){return e.replace(/[,_]/g,"-").replace(/\s/g,"")};t.recoverGlyphName=recoverGlyphName;t.type1FontGlyphMapping=function type1FontGlyphMapping(e,t,a){const r=Object.create(null);let s,c,l;const h=!!(e.flags&o.Symbolic);if(e.isInternalFont){l=t;for(c=0;c=0?s:0}}else if(e.baseEncodingName){l=(0,n.getEncoding)(e.baseEncodingName);for(c=0;c=0?s:0}}else if(h)for(c in t)r[c]=t[c];else{l=n.StandardEncoding;for(c=0;c=0?s:0}}const u=e.differences;let d;if(u)for(c in u){const e=u[c];s=a.indexOf(e);if(-1===s){d||(d=(0,i.getGlyphsUnicode)());const t=recoverGlyphName(e,d);t!==e&&(s=a.indexOf(t))}r[c]=s>=0?s:0}return r};var r=a(2),n=a(19),i=a(20),s=a(21);t.SEAC_ANALYSIS_ENABLED=!0;const o={FixedPitch:1,Serif:2,Symbolic:4,Script:8,Nonsymbolic:32,Italic:64,AllCap:65536,SmallCap:131072,ForceBold:262144};t.FontFlags=o;t.MacStandardGlyphOrdering=[".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","nonbreakingspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron","Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth","Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior","twosuperior","threesuperior","onehalf","onequarter","threequarters","franc","Gbreve","gbreve","Idotaccent","Scedilla","scedilla","Cacute","cacute","Ccaron","ccaron","dcroat"];function recoverGlyphName(e,t){if(void 0!==t[e])return e;const a=(0,s.getUnicodeForGlyph)(e,t);if(-1!==a)for(const e in t)if(t[e]===a)return e;(0,r.info)("Unable to recover a standard glyph name for: "+e);return e}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ZapfDingbatsEncoding=t.WinAnsiEncoding=t.SymbolSetEncoding=t.StandardEncoding=t.MacRomanEncoding=t.ExpertEncoding=void 0;t.getEncoding=function getEncoding(e){switch(e){case"WinAnsiEncoding":return s;case"StandardEncoding":return i;case"MacRomanEncoding":return n;case"SymbolSetEncoding":return o;case"ZapfDingbatsEncoding":return c;case"ExpertEncoding":return a;case"MacExpertEncoding":return r;default:return null}};const a=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"];t.ExpertEncoding=a;const r=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","centoldstyle","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","","threequartersemdash","","questionsmall","","","","","Ethsmall","","","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","","","","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hypheninferior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","asuperior","centsuperior","","","","","Aacutesmall","Agravesmall","Acircumflexsmall","Adieresissmall","Atildesmall","Aringsmall","Ccedillasmall","Eacutesmall","Egravesmall","Ecircumflexsmall","Edieresissmall","Iacutesmall","Igravesmall","Icircumflexsmall","Idieresissmall","Ntildesmall","Oacutesmall","Ogravesmall","Ocircumflexsmall","Odieresissmall","Otildesmall","Uacutesmall","Ugravesmall","Ucircumflexsmall","Udieresissmall","","eightsuperior","fourinferior","threeinferior","sixinferior","eightinferior","seveninferior","Scaronsmall","","centinferior","twoinferior","","Dieresissmall","","Caronsmall","osuperior","fiveinferior","","commainferior","periodinferior","Yacutesmall","","dollarinferior","","","Thornsmall","","nineinferior","zeroinferior","Zcaronsmall","AEsmall","Oslashsmall","questiondownsmall","oneinferior","Lslashsmall","","","","","","","Cedillasmall","","","","","","OEsmall","figuredash","hyphensuperior","","","","","exclamdownsmall","","Ydieresissmall","","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","ninesuperior","zerosuperior","","esuperior","rsuperior","tsuperior","","","isuperior","ssuperior","dsuperior","","","","","","lsuperior","Ogoneksmall","Brevesmall","Macronsmall","bsuperior","nsuperior","msuperior","commasuperior","periodsuperior","Dotaccentsmall","Ringsmall","","","",""],n=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","space","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron"];t.MacRomanEncoding=n;const i=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls","","","",""];t.StandardEncoding=i;const s=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","bullet","Euro","bullet","quotesinglbase","florin","quotedblbase","ellipsis","dagger","daggerdbl","circumflex","perthousand","Scaron","guilsinglleft","OE","bullet","Zcaron","bullet","bullet","quoteleft","quoteright","quotedblleft","quotedblright","bullet","endash","emdash","tilde","trademark","scaron","guilsinglright","oe","bullet","zcaron","Ydieresis","space","exclamdown","cent","sterling","currency","yen","brokenbar","section","dieresis","copyright","ordfeminine","guillemotleft","logicalnot","hyphen","registered","macron","degree","plusminus","twosuperior","threesuperior","acute","mu","paragraph","periodcentered","cedilla","onesuperior","ordmasculine","guillemotright","onequarter","onehalf","threequarters","questiondown","Agrave","Aacute","Acircumflex","Atilde","Adieresis","Aring","AE","Ccedilla","Egrave","Eacute","Ecircumflex","Edieresis","Igrave","Iacute","Icircumflex","Idieresis","Eth","Ntilde","Ograve","Oacute","Ocircumflex","Otilde","Odieresis","multiply","Oslash","Ugrave","Uacute","Ucircumflex","Udieresis","Yacute","Thorn","germandbls","agrave","aacute","acircumflex","atilde","adieresis","aring","ae","ccedilla","egrave","eacute","ecircumflex","edieresis","igrave","iacute","icircumflex","idieresis","eth","ntilde","ograve","oacute","ocircumflex","otilde","odieresis","divide","oslash","ugrave","uacute","ucircumflex","udieresis","yacute","thorn","ydieresis"];t.WinAnsiEncoding=s;const o=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","universal","numbersign","existential","percent","ampersand","suchthat","parenleft","parenright","asteriskmath","plus","comma","minus","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","congruent","Alpha","Beta","Chi","Delta","Epsilon","Phi","Gamma","Eta","Iota","theta1","Kappa","Lambda","Mu","Nu","Omicron","Pi","Theta","Rho","Sigma","Tau","Upsilon","sigma1","Omega","Xi","Psi","Zeta","bracketleft","therefore","bracketright","perpendicular","underscore","radicalex","alpha","beta","chi","delta","epsilon","phi","gamma","eta","iota","phi1","kappa","lambda","mu","nu","omicron","pi","theta","rho","sigma","tau","upsilon","omega1","omega","xi","psi","zeta","braceleft","bar","braceright","similar","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Euro","Upsilon1","minute","lessequal","fraction","infinity","florin","club","diamond","heart","spade","arrowboth","arrowleft","arrowup","arrowright","arrowdown","degree","plusminus","second","greaterequal","multiply","proportional","partialdiff","bullet","divide","notequal","equivalence","approxequal","ellipsis","arrowvertex","arrowhorizex","carriagereturn","aleph","Ifraktur","Rfraktur","weierstrass","circlemultiply","circleplus","emptyset","intersection","union","propersuperset","reflexsuperset","notsubset","propersubset","reflexsubset","element","notelement","angle","gradient","registerserif","copyrightserif","trademarkserif","product","radical","dotmath","logicalnot","logicaland","logicalor","arrowdblboth","arrowdblleft","arrowdblup","arrowdblright","arrowdbldown","lozenge","angleleft","registersans","copyrightsans","trademarksans","summation","parenlefttp","parenleftex","parenleftbt","bracketlefttp","bracketleftex","bracketleftbt","bracelefttp","braceleftmid","braceleftbt","braceex","","angleright","integral","integraltp","integralex","integralbt","parenrighttp","parenrightex","parenrightbt","bracketrighttp","bracketrightex","bracketrightbt","bracerighttp","bracerightmid","bracerightbt",""];t.SymbolSetEncoding=o;const c=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","a1","a2","a202","a3","a4","a5","a119","a118","a117","a11","a12","a13","a14","a15","a16","a105","a17","a18","a19","a20","a21","a22","a23","a24","a25","a26","a27","a28","a6","a7","a8","a9","a10","a29","a30","a31","a32","a33","a34","a35","a36","a37","a38","a39","a40","a41","a42","a43","a44","a45","a46","a47","a48","a49","a50","a51","a52","a53","a54","a55","a56","a57","a58","a59","a60","a61","a62","a63","a64","a65","a66","a67","a68","a69","a70","a71","a72","a73","a74","a203","a75","a204","a76","a77","a78","a79","a81","a82","a83","a84","a97","a98","a99","a100","","a89","a90","a93","a94","a91","a92","a205","a85","a206","a86","a87","a88","a95","a96","","","","","","","","","","","","","","","","","","","","a101","a102","a103","a104","a106","a107","a108","a112","a111","a110","a109","a120","a121","a122","a123","a124","a125","a126","a127","a128","a129","a130","a131","a132","a133","a134","a135","a136","a137","a138","a139","a140","a141","a142","a143","a144","a145","a146","a147","a148","a149","a150","a151","a152","a153","a154","a155","a156","a157","a158","a159","a160","a161","a163","a164","a196","a165","a192","a166","a167","a168","a169","a170","a171","a172","a173","a162","a174","a175","a176","a177","a178","a179","a193","a180","a199","a181","a200","a182","","a201","a183","a184","a197","a185","a194","a198","a186","a195","a187","a188","a189","a190","a191",""];t.ZapfDingbatsEncoding=c},(e,t,a)=>{a.r(t);a.d(t,{getDingbatsGlyphsUnicode:()=>i,getGlyphsUnicode:()=>n});var r=a(8);const n=(0,r.getArrayLookupTableFactory)((function(){return["A",65,"AE",198,"AEacute",508,"AEmacron",482,"AEsmall",63462,"Aacute",193,"Aacutesmall",63457,"Abreve",258,"Abreveacute",7854,"Abrevecyrillic",1232,"Abrevedotbelow",7862,"Abrevegrave",7856,"Abrevehookabove",7858,"Abrevetilde",7860,"Acaron",461,"Acircle",9398,"Acircumflex",194,"Acircumflexacute",7844,"Acircumflexdotbelow",7852,"Acircumflexgrave",7846,"Acircumflexhookabove",7848,"Acircumflexsmall",63458,"Acircumflextilde",7850,"Acute",63177,"Acutesmall",63412,"Acyrillic",1040,"Adblgrave",512,"Adieresis",196,"Adieresiscyrillic",1234,"Adieresismacron",478,"Adieresissmall",63460,"Adotbelow",7840,"Adotmacron",480,"Agrave",192,"Agravesmall",63456,"Ahookabove",7842,"Aiecyrillic",1236,"Ainvertedbreve",514,"Alpha",913,"Alphatonos",902,"Amacron",256,"Amonospace",65313,"Aogonek",260,"Aring",197,"Aringacute",506,"Aringbelow",7680,"Aringsmall",63461,"Asmall",63329,"Atilde",195,"Atildesmall",63459,"Aybarmenian",1329,"B",66,"Bcircle",9399,"Bdotaccent",7682,"Bdotbelow",7684,"Becyrillic",1041,"Benarmenian",1330,"Beta",914,"Bhook",385,"Blinebelow",7686,"Bmonospace",65314,"Brevesmall",63220,"Bsmall",63330,"Btopbar",386,"C",67,"Caarmenian",1342,"Cacute",262,"Caron",63178,"Caronsmall",63221,"Ccaron",268,"Ccedilla",199,"Ccedillaacute",7688,"Ccedillasmall",63463,"Ccircle",9400,"Ccircumflex",264,"Cdot",266,"Cdotaccent",266,"Cedillasmall",63416,"Chaarmenian",1353,"Cheabkhasiancyrillic",1212,"Checyrillic",1063,"Chedescenderabkhasiancyrillic",1214,"Chedescendercyrillic",1206,"Chedieresiscyrillic",1268,"Cheharmenian",1347,"Chekhakassiancyrillic",1227,"Cheverticalstrokecyrillic",1208,"Chi",935,"Chook",391,"Circumflexsmall",63222,"Cmonospace",65315,"Coarmenian",1361,"Csmall",63331,"D",68,"DZ",497,"DZcaron",452,"Daarmenian",1332,"Dafrican",393,"Dcaron",270,"Dcedilla",7696,"Dcircle",9401,"Dcircumflexbelow",7698,"Dcroat",272,"Ddotaccent",7690,"Ddotbelow",7692,"Decyrillic",1044,"Deicoptic",1006,"Delta",8710,"Deltagreek",916,"Dhook",394,"Dieresis",63179,"DieresisAcute",63180,"DieresisGrave",63181,"Dieresissmall",63400,"Digammagreek",988,"Djecyrillic",1026,"Dlinebelow",7694,"Dmonospace",65316,"Dotaccentsmall",63223,"Dslash",272,"Dsmall",63332,"Dtopbar",395,"Dz",498,"Dzcaron",453,"Dzeabkhasiancyrillic",1248,"Dzecyrillic",1029,"Dzhecyrillic",1039,"E",69,"Eacute",201,"Eacutesmall",63465,"Ebreve",276,"Ecaron",282,"Ecedillabreve",7708,"Echarmenian",1333,"Ecircle",9402,"Ecircumflex",202,"Ecircumflexacute",7870,"Ecircumflexbelow",7704,"Ecircumflexdotbelow",7878,"Ecircumflexgrave",7872,"Ecircumflexhookabove",7874,"Ecircumflexsmall",63466,"Ecircumflextilde",7876,"Ecyrillic",1028,"Edblgrave",516,"Edieresis",203,"Edieresissmall",63467,"Edot",278,"Edotaccent",278,"Edotbelow",7864,"Efcyrillic",1060,"Egrave",200,"Egravesmall",63464,"Eharmenian",1335,"Ehookabove",7866,"Eightroman",8551,"Einvertedbreve",518,"Eiotifiedcyrillic",1124,"Elcyrillic",1051,"Elevenroman",8554,"Emacron",274,"Emacronacute",7702,"Emacrongrave",7700,"Emcyrillic",1052,"Emonospace",65317,"Encyrillic",1053,"Endescendercyrillic",1186,"Eng",330,"Enghecyrillic",1188,"Enhookcyrillic",1223,"Eogonek",280,"Eopen",400,"Epsilon",917,"Epsilontonos",904,"Ercyrillic",1056,"Ereversed",398,"Ereversedcyrillic",1069,"Escyrillic",1057,"Esdescendercyrillic",1194,"Esh",425,"Esmall",63333,"Eta",919,"Etarmenian",1336,"Etatonos",905,"Eth",208,"Ethsmall",63472,"Etilde",7868,"Etildebelow",7706,"Euro",8364,"Ezh",439,"Ezhcaron",494,"Ezhreversed",440,"F",70,"Fcircle",9403,"Fdotaccent",7710,"Feharmenian",1366,"Feicoptic",996,"Fhook",401,"Fitacyrillic",1138,"Fiveroman",8548,"Fmonospace",65318,"Fourroman",8547,"Fsmall",63334,"G",71,"GBsquare",13191,"Gacute",500,"Gamma",915,"Gammaafrican",404,"Gangiacoptic",1002,"Gbreve",286,"Gcaron",486,"Gcedilla",290,"Gcircle",9404,"Gcircumflex",284,"Gcommaaccent",290,"Gdot",288,"Gdotaccent",288,"Gecyrillic",1043,"Ghadarmenian",1346,"Ghemiddlehookcyrillic",1172,"Ghestrokecyrillic",1170,"Gheupturncyrillic",1168,"Ghook",403,"Gimarmenian",1331,"Gjecyrillic",1027,"Gmacron",7712,"Gmonospace",65319,"Grave",63182,"Gravesmall",63328,"Gsmall",63335,"Gsmallhook",667,"Gstroke",484,"H",72,"H18533",9679,"H18543",9642,"H18551",9643,"H22073",9633,"HPsquare",13259,"Haabkhasiancyrillic",1192,"Hadescendercyrillic",1202,"Hardsigncyrillic",1066,"Hbar",294,"Hbrevebelow",7722,"Hcedilla",7720,"Hcircle",9405,"Hcircumflex",292,"Hdieresis",7718,"Hdotaccent",7714,"Hdotbelow",7716,"Hmonospace",65320,"Hoarmenian",1344,"Horicoptic",1e3,"Hsmall",63336,"Hungarumlaut",63183,"Hungarumlautsmall",63224,"Hzsquare",13200,"I",73,"IAcyrillic",1071,"IJ",306,"IUcyrillic",1070,"Iacute",205,"Iacutesmall",63469,"Ibreve",300,"Icaron",463,"Icircle",9406,"Icircumflex",206,"Icircumflexsmall",63470,"Icyrillic",1030,"Idblgrave",520,"Idieresis",207,"Idieresisacute",7726,"Idieresiscyrillic",1252,"Idieresissmall",63471,"Idot",304,"Idotaccent",304,"Idotbelow",7882,"Iebrevecyrillic",1238,"Iecyrillic",1045,"Ifraktur",8465,"Igrave",204,"Igravesmall",63468,"Ihookabove",7880,"Iicyrillic",1048,"Iinvertedbreve",522,"Iishortcyrillic",1049,"Imacron",298,"Imacroncyrillic",1250,"Imonospace",65321,"Iniarmenian",1339,"Iocyrillic",1025,"Iogonek",302,"Iota",921,"Iotaafrican",406,"Iotadieresis",938,"Iotatonos",906,"Ismall",63337,"Istroke",407,"Itilde",296,"Itildebelow",7724,"Izhitsacyrillic",1140,"Izhitsadblgravecyrillic",1142,"J",74,"Jaarmenian",1345,"Jcircle",9407,"Jcircumflex",308,"Jecyrillic",1032,"Jheharmenian",1355,"Jmonospace",65322,"Jsmall",63338,"K",75,"KBsquare",13189,"KKsquare",13261,"Kabashkircyrillic",1184,"Kacute",7728,"Kacyrillic",1050,"Kadescendercyrillic",1178,"Kahookcyrillic",1219,"Kappa",922,"Kastrokecyrillic",1182,"Kaverticalstrokecyrillic",1180,"Kcaron",488,"Kcedilla",310,"Kcircle",9408,"Kcommaaccent",310,"Kdotbelow",7730,"Keharmenian",1364,"Kenarmenian",1343,"Khacyrillic",1061,"Kheicoptic",998,"Khook",408,"Kjecyrillic",1036,"Klinebelow",7732,"Kmonospace",65323,"Koppacyrillic",1152,"Koppagreek",990,"Ksicyrillic",1134,"Ksmall",63339,"L",76,"LJ",455,"LL",63167,"Lacute",313,"Lambda",923,"Lcaron",317,"Lcedilla",315,"Lcircle",9409,"Lcircumflexbelow",7740,"Lcommaaccent",315,"Ldot",319,"Ldotaccent",319,"Ldotbelow",7734,"Ldotbelowmacron",7736,"Liwnarmenian",1340,"Lj",456,"Ljecyrillic",1033,"Llinebelow",7738,"Lmonospace",65324,"Lslash",321,"Lslashsmall",63225,"Lsmall",63340,"M",77,"MBsquare",13190,"Macron",63184,"Macronsmall",63407,"Macute",7742,"Mcircle",9410,"Mdotaccent",7744,"Mdotbelow",7746,"Menarmenian",1348,"Mmonospace",65325,"Msmall",63341,"Mturned",412,"Mu",924,"N",78,"NJ",458,"Nacute",323,"Ncaron",327,"Ncedilla",325,"Ncircle",9411,"Ncircumflexbelow",7754,"Ncommaaccent",325,"Ndotaccent",7748,"Ndotbelow",7750,"Nhookleft",413,"Nineroman",8552,"Nj",459,"Njecyrillic",1034,"Nlinebelow",7752,"Nmonospace",65326,"Nowarmenian",1350,"Nsmall",63342,"Ntilde",209,"Ntildesmall",63473,"Nu",925,"O",79,"OE",338,"OEsmall",63226,"Oacute",211,"Oacutesmall",63475,"Obarredcyrillic",1256,"Obarreddieresiscyrillic",1258,"Obreve",334,"Ocaron",465,"Ocenteredtilde",415,"Ocircle",9412,"Ocircumflex",212,"Ocircumflexacute",7888,"Ocircumflexdotbelow",7896,"Ocircumflexgrave",7890,"Ocircumflexhookabove",7892,"Ocircumflexsmall",63476,"Ocircumflextilde",7894,"Ocyrillic",1054,"Odblacute",336,"Odblgrave",524,"Odieresis",214,"Odieresiscyrillic",1254,"Odieresissmall",63478,"Odotbelow",7884,"Ogoneksmall",63227,"Ograve",210,"Ogravesmall",63474,"Oharmenian",1365,"Ohm",8486,"Ohookabove",7886,"Ohorn",416,"Ohornacute",7898,"Ohorndotbelow",7906,"Ohorngrave",7900,"Ohornhookabove",7902,"Ohorntilde",7904,"Ohungarumlaut",336,"Oi",418,"Oinvertedbreve",526,"Omacron",332,"Omacronacute",7762,"Omacrongrave",7760,"Omega",8486,"Omegacyrillic",1120,"Omegagreek",937,"Omegaroundcyrillic",1146,"Omegatitlocyrillic",1148,"Omegatonos",911,"Omicron",927,"Omicrontonos",908,"Omonospace",65327,"Oneroman",8544,"Oogonek",490,"Oogonekmacron",492,"Oopen",390,"Oslash",216,"Oslashacute",510,"Oslashsmall",63480,"Osmall",63343,"Ostrokeacute",510,"Otcyrillic",1150,"Otilde",213,"Otildeacute",7756,"Otildedieresis",7758,"Otildesmall",63477,"P",80,"Pacute",7764,"Pcircle",9413,"Pdotaccent",7766,"Pecyrillic",1055,"Peharmenian",1354,"Pemiddlehookcyrillic",1190,"Phi",934,"Phook",420,"Pi",928,"Piwrarmenian",1363,"Pmonospace",65328,"Psi",936,"Psicyrillic",1136,"Psmall",63344,"Q",81,"Qcircle",9414,"Qmonospace",65329,"Qsmall",63345,"R",82,"Raarmenian",1356,"Racute",340,"Rcaron",344,"Rcedilla",342,"Rcircle",9415,"Rcommaaccent",342,"Rdblgrave",528,"Rdotaccent",7768,"Rdotbelow",7770,"Rdotbelowmacron",7772,"Reharmenian",1360,"Rfraktur",8476,"Rho",929,"Ringsmall",63228,"Rinvertedbreve",530,"Rlinebelow",7774,"Rmonospace",65330,"Rsmall",63346,"Rsmallinverted",641,"Rsmallinvertedsuperior",694,"S",83,"SF010000",9484,"SF020000",9492,"SF030000",9488,"SF040000",9496,"SF050000",9532,"SF060000",9516,"SF070000",9524,"SF080000",9500,"SF090000",9508,"SF100000",9472,"SF110000",9474,"SF190000",9569,"SF200000",9570,"SF210000",9558,"SF220000",9557,"SF230000",9571,"SF240000",9553,"SF250000",9559,"SF260000",9565,"SF270000",9564,"SF280000",9563,"SF360000",9566,"SF370000",9567,"SF380000",9562,"SF390000",9556,"SF400000",9577,"SF410000",9574,"SF420000",9568,"SF430000",9552,"SF440000",9580,"SF450000",9575,"SF460000",9576,"SF470000",9572,"SF480000",9573,"SF490000",9561,"SF500000",9560,"SF510000",9554,"SF520000",9555,"SF530000",9579,"SF540000",9578,"Sacute",346,"Sacutedotaccent",7780,"Sampigreek",992,"Scaron",352,"Scarondotaccent",7782,"Scaronsmall",63229,"Scedilla",350,"Schwa",399,"Schwacyrillic",1240,"Schwadieresiscyrillic",1242,"Scircle",9416,"Scircumflex",348,"Scommaaccent",536,"Sdotaccent",7776,"Sdotbelow",7778,"Sdotbelowdotaccent",7784,"Seharmenian",1357,"Sevenroman",8550,"Shaarmenian",1351,"Shacyrillic",1064,"Shchacyrillic",1065,"Sheicoptic",994,"Shhacyrillic",1210,"Shimacoptic",1004,"Sigma",931,"Sixroman",8549,"Smonospace",65331,"Softsigncyrillic",1068,"Ssmall",63347,"Stigmagreek",986,"T",84,"Tau",932,"Tbar",358,"Tcaron",356,"Tcedilla",354,"Tcircle",9417,"Tcircumflexbelow",7792,"Tcommaaccent",354,"Tdotaccent",7786,"Tdotbelow",7788,"Tecyrillic",1058,"Tedescendercyrillic",1196,"Tenroman",8553,"Tetsecyrillic",1204,"Theta",920,"Thook",428,"Thorn",222,"Thornsmall",63486,"Threeroman",8546,"Tildesmall",63230,"Tiwnarmenian",1359,"Tlinebelow",7790,"Tmonospace",65332,"Toarmenian",1337,"Tonefive",444,"Tonesix",388,"Tonetwo",423,"Tretroflexhook",430,"Tsecyrillic",1062,"Tshecyrillic",1035,"Tsmall",63348,"Twelveroman",8555,"Tworoman",8545,"U",85,"Uacute",218,"Uacutesmall",63482,"Ubreve",364,"Ucaron",467,"Ucircle",9418,"Ucircumflex",219,"Ucircumflexbelow",7798,"Ucircumflexsmall",63483,"Ucyrillic",1059,"Udblacute",368,"Udblgrave",532,"Udieresis",220,"Udieresisacute",471,"Udieresisbelow",7794,"Udieresiscaron",473,"Udieresiscyrillic",1264,"Udieresisgrave",475,"Udieresismacron",469,"Udieresissmall",63484,"Udotbelow",7908,"Ugrave",217,"Ugravesmall",63481,"Uhookabove",7910,"Uhorn",431,"Uhornacute",7912,"Uhorndotbelow",7920,"Uhorngrave",7914,"Uhornhookabove",7916,"Uhorntilde",7918,"Uhungarumlaut",368,"Uhungarumlautcyrillic",1266,"Uinvertedbreve",534,"Ukcyrillic",1144,"Umacron",362,"Umacroncyrillic",1262,"Umacrondieresis",7802,"Umonospace",65333,"Uogonek",370,"Upsilon",933,"Upsilon1",978,"Upsilonacutehooksymbolgreek",979,"Upsilonafrican",433,"Upsilondieresis",939,"Upsilondieresishooksymbolgreek",980,"Upsilonhooksymbol",978,"Upsilontonos",910,"Uring",366,"Ushortcyrillic",1038,"Usmall",63349,"Ustraightcyrillic",1198,"Ustraightstrokecyrillic",1200,"Utilde",360,"Utildeacute",7800,"Utildebelow",7796,"V",86,"Vcircle",9419,"Vdotbelow",7806,"Vecyrillic",1042,"Vewarmenian",1358,"Vhook",434,"Vmonospace",65334,"Voarmenian",1352,"Vsmall",63350,"Vtilde",7804,"W",87,"Wacute",7810,"Wcircle",9420,"Wcircumflex",372,"Wdieresis",7812,"Wdotaccent",7814,"Wdotbelow",7816,"Wgrave",7808,"Wmonospace",65335,"Wsmall",63351,"X",88,"Xcircle",9421,"Xdieresis",7820,"Xdotaccent",7818,"Xeharmenian",1341,"Xi",926,"Xmonospace",65336,"Xsmall",63352,"Y",89,"Yacute",221,"Yacutesmall",63485,"Yatcyrillic",1122,"Ycircle",9422,"Ycircumflex",374,"Ydieresis",376,"Ydieresissmall",63487,"Ydotaccent",7822,"Ydotbelow",7924,"Yericyrillic",1067,"Yerudieresiscyrillic",1272,"Ygrave",7922,"Yhook",435,"Yhookabove",7926,"Yiarmenian",1349,"Yicyrillic",1031,"Yiwnarmenian",1362,"Ymonospace",65337,"Ysmall",63353,"Ytilde",7928,"Yusbigcyrillic",1130,"Yusbigiotifiedcyrillic",1132,"Yuslittlecyrillic",1126,"Yuslittleiotifiedcyrillic",1128,"Z",90,"Zaarmenian",1334,"Zacute",377,"Zcaron",381,"Zcaronsmall",63231,"Zcircle",9423,"Zcircumflex",7824,"Zdot",379,"Zdotaccent",379,"Zdotbelow",7826,"Zecyrillic",1047,"Zedescendercyrillic",1176,"Zedieresiscyrillic",1246,"Zeta",918,"Zhearmenian",1338,"Zhebrevecyrillic",1217,"Zhecyrillic",1046,"Zhedescendercyrillic",1174,"Zhedieresiscyrillic",1244,"Zlinebelow",7828,"Zmonospace",65338,"Zsmall",63354,"Zstroke",437,"a",97,"aabengali",2438,"aacute",225,"aadeva",2310,"aagujarati",2694,"aagurmukhi",2566,"aamatragurmukhi",2622,"aarusquare",13059,"aavowelsignbengali",2494,"aavowelsigndeva",2366,"aavowelsigngujarati",2750,"abbreviationmarkarmenian",1375,"abbreviationsigndeva",2416,"abengali",2437,"abopomofo",12570,"abreve",259,"abreveacute",7855,"abrevecyrillic",1233,"abrevedotbelow",7863,"abrevegrave",7857,"abrevehookabove",7859,"abrevetilde",7861,"acaron",462,"acircle",9424,"acircumflex",226,"acircumflexacute",7845,"acircumflexdotbelow",7853,"acircumflexgrave",7847,"acircumflexhookabove",7849,"acircumflextilde",7851,"acute",180,"acutebelowcmb",791,"acutecmb",769,"acutecomb",769,"acutedeva",2388,"acutelowmod",719,"acutetonecmb",833,"acyrillic",1072,"adblgrave",513,"addakgurmukhi",2673,"adeva",2309,"adieresis",228,"adieresiscyrillic",1235,"adieresismacron",479,"adotbelow",7841,"adotmacron",481,"ae",230,"aeacute",509,"aekorean",12624,"aemacron",483,"afii00208",8213,"afii08941",8356,"afii10017",1040,"afii10018",1041,"afii10019",1042,"afii10020",1043,"afii10021",1044,"afii10022",1045,"afii10023",1025,"afii10024",1046,"afii10025",1047,"afii10026",1048,"afii10027",1049,"afii10028",1050,"afii10029",1051,"afii10030",1052,"afii10031",1053,"afii10032",1054,"afii10033",1055,"afii10034",1056,"afii10035",1057,"afii10036",1058,"afii10037",1059,"afii10038",1060,"afii10039",1061,"afii10040",1062,"afii10041",1063,"afii10042",1064,"afii10043",1065,"afii10044",1066,"afii10045",1067,"afii10046",1068,"afii10047",1069,"afii10048",1070,"afii10049",1071,"afii10050",1168,"afii10051",1026,"afii10052",1027,"afii10053",1028,"afii10054",1029,"afii10055",1030,"afii10056",1031,"afii10057",1032,"afii10058",1033,"afii10059",1034,"afii10060",1035,"afii10061",1036,"afii10062",1038,"afii10063",63172,"afii10064",63173,"afii10065",1072,"afii10066",1073,"afii10067",1074,"afii10068",1075,"afii10069",1076,"afii10070",1077,"afii10071",1105,"afii10072",1078,"afii10073",1079,"afii10074",1080,"afii10075",1081,"afii10076",1082,"afii10077",1083,"afii10078",1084,"afii10079",1085,"afii10080",1086,"afii10081",1087,"afii10082",1088,"afii10083",1089,"afii10084",1090,"afii10085",1091,"afii10086",1092,"afii10087",1093,"afii10088",1094,"afii10089",1095,"afii10090",1096,"afii10091",1097,"afii10092",1098,"afii10093",1099,"afii10094",1100,"afii10095",1101,"afii10096",1102,"afii10097",1103,"afii10098",1169,"afii10099",1106,"afii10100",1107,"afii10101",1108,"afii10102",1109,"afii10103",1110,"afii10104",1111,"afii10105",1112,"afii10106",1113,"afii10107",1114,"afii10108",1115,"afii10109",1116,"afii10110",1118,"afii10145",1039,"afii10146",1122,"afii10147",1138,"afii10148",1140,"afii10192",63174,"afii10193",1119,"afii10194",1123,"afii10195",1139,"afii10196",1141,"afii10831",63175,"afii10832",63176,"afii10846",1241,"afii299",8206,"afii300",8207,"afii301",8205,"afii57381",1642,"afii57388",1548,"afii57392",1632,"afii57393",1633,"afii57394",1634,"afii57395",1635,"afii57396",1636,"afii57397",1637,"afii57398",1638,"afii57399",1639,"afii57400",1640,"afii57401",1641,"afii57403",1563,"afii57407",1567,"afii57409",1569,"afii57410",1570,"afii57411",1571,"afii57412",1572,"afii57413",1573,"afii57414",1574,"afii57415",1575,"afii57416",1576,"afii57417",1577,"afii57418",1578,"afii57419",1579,"afii57420",1580,"afii57421",1581,"afii57422",1582,"afii57423",1583,"afii57424",1584,"afii57425",1585,"afii57426",1586,"afii57427",1587,"afii57428",1588,"afii57429",1589,"afii57430",1590,"afii57431",1591,"afii57432",1592,"afii57433",1593,"afii57434",1594,"afii57440",1600,"afii57441",1601,"afii57442",1602,"afii57443",1603,"afii57444",1604,"afii57445",1605,"afii57446",1606,"afii57448",1608,"afii57449",1609,"afii57450",1610,"afii57451",1611,"afii57452",1612,"afii57453",1613,"afii57454",1614,"afii57455",1615,"afii57456",1616,"afii57457",1617,"afii57458",1618,"afii57470",1607,"afii57505",1700,"afii57506",1662,"afii57507",1670,"afii57508",1688,"afii57509",1711,"afii57511",1657,"afii57512",1672,"afii57513",1681,"afii57514",1722,"afii57519",1746,"afii57534",1749,"afii57636",8362,"afii57645",1470,"afii57658",1475,"afii57664",1488,"afii57665",1489,"afii57666",1490,"afii57667",1491,"afii57668",1492,"afii57669",1493,"afii57670",1494,"afii57671",1495,"afii57672",1496,"afii57673",1497,"afii57674",1498,"afii57675",1499,"afii57676",1500,"afii57677",1501,"afii57678",1502,"afii57679",1503,"afii57680",1504,"afii57681",1505,"afii57682",1506,"afii57683",1507,"afii57684",1508,"afii57685",1509,"afii57686",1510,"afii57687",1511,"afii57688",1512,"afii57689",1513,"afii57690",1514,"afii57694",64298,"afii57695",64299,"afii57700",64331,"afii57705",64287,"afii57716",1520,"afii57717",1521,"afii57718",1522,"afii57723",64309,"afii57793",1460,"afii57794",1461,"afii57795",1462,"afii57796",1467,"afii57797",1464,"afii57798",1463,"afii57799",1456,"afii57800",1458,"afii57801",1457,"afii57802",1459,"afii57803",1474,"afii57804",1473,"afii57806",1465,"afii57807",1468,"afii57839",1469,"afii57841",1471,"afii57842",1472,"afii57929",700,"afii61248",8453,"afii61289",8467,"afii61352",8470,"afii61573",8236,"afii61574",8237,"afii61575",8238,"afii61664",8204,"afii63167",1645,"afii64937",701,"agrave",224,"agujarati",2693,"agurmukhi",2565,"ahiragana",12354,"ahookabove",7843,"aibengali",2448,"aibopomofo",12574,"aideva",2320,"aiecyrillic",1237,"aigujarati",2704,"aigurmukhi",2576,"aimatragurmukhi",2632,"ainarabic",1593,"ainfinalarabic",65226,"aininitialarabic",65227,"ainmedialarabic",65228,"ainvertedbreve",515,"aivowelsignbengali",2504,"aivowelsigndeva",2376,"aivowelsigngujarati",2760,"akatakana",12450,"akatakanahalfwidth",65393,"akorean",12623,"alef",1488,"alefarabic",1575,"alefdageshhebrew",64304,"aleffinalarabic",65166,"alefhamzaabovearabic",1571,"alefhamzaabovefinalarabic",65156,"alefhamzabelowarabic",1573,"alefhamzabelowfinalarabic",65160,"alefhebrew",1488,"aleflamedhebrew",64335,"alefmaddaabovearabic",1570,"alefmaddaabovefinalarabic",65154,"alefmaksuraarabic",1609,"alefmaksurafinalarabic",65264,"alefmaksurainitialarabic",65267,"alefmaksuramedialarabic",65268,"alefpatahhebrew",64302,"alefqamatshebrew",64303,"aleph",8501,"allequal",8780,"alpha",945,"alphatonos",940,"amacron",257,"amonospace",65345,"ampersand",38,"ampersandmonospace",65286,"ampersandsmall",63270,"amsquare",13250,"anbopomofo",12578,"angbopomofo",12580,"angbracketleft",12296,"angbracketright",12297,"angkhankhuthai",3674,"angle",8736,"anglebracketleft",12296,"anglebracketleftvertical",65087,"anglebracketright",12297,"anglebracketrightvertical",65088,"angleleft",9001,"angleright",9002,"angstrom",8491,"anoteleia",903,"anudattadeva",2386,"anusvarabengali",2434,"anusvaradeva",2306,"anusvaragujarati",2690,"aogonek",261,"apaatosquare",13056,"aparen",9372,"apostrophearmenian",1370,"apostrophemod",700,"apple",63743,"approaches",8784,"approxequal",8776,"approxequalorimage",8786,"approximatelyequal",8773,"araeaekorean",12686,"araeakorean",12685,"arc",8978,"arighthalfring",7834,"aring",229,"aringacute",507,"aringbelow",7681,"arrowboth",8596,"arrowdashdown",8675,"arrowdashleft",8672,"arrowdashright",8674,"arrowdashup",8673,"arrowdblboth",8660,"arrowdbldown",8659,"arrowdblleft",8656,"arrowdblright",8658,"arrowdblup",8657,"arrowdown",8595,"arrowdownleft",8601,"arrowdownright",8600,"arrowdownwhite",8681,"arrowheaddownmod",709,"arrowheadleftmod",706,"arrowheadrightmod",707,"arrowheadupmod",708,"arrowhorizex",63719,"arrowleft",8592,"arrowleftdbl",8656,"arrowleftdblstroke",8653,"arrowleftoverright",8646,"arrowleftwhite",8678,"arrowright",8594,"arrowrightdblstroke",8655,"arrowrightheavy",10142,"arrowrightoverleft",8644,"arrowrightwhite",8680,"arrowtableft",8676,"arrowtabright",8677,"arrowup",8593,"arrowupdn",8597,"arrowupdnbse",8616,"arrowupdownbase",8616,"arrowupleft",8598,"arrowupleftofdown",8645,"arrowupright",8599,"arrowupwhite",8679,"arrowvertex",63718,"asciicircum",94,"asciicircummonospace",65342,"asciitilde",126,"asciitildemonospace",65374,"ascript",593,"ascriptturned",594,"asmallhiragana",12353,"asmallkatakana",12449,"asmallkatakanahalfwidth",65383,"asterisk",42,"asteriskaltonearabic",1645,"asteriskarabic",1645,"asteriskmath",8727,"asteriskmonospace",65290,"asterisksmall",65121,"asterism",8258,"asuperior",63209,"asymptoticallyequal",8771,"at",64,"atilde",227,"atmonospace",65312,"atsmall",65131,"aturned",592,"aubengali",2452,"aubopomofo",12576,"audeva",2324,"augujarati",2708,"augurmukhi",2580,"aulengthmarkbengali",2519,"aumatragurmukhi",2636,"auvowelsignbengali",2508,"auvowelsigndeva",2380,"auvowelsigngujarati",2764,"avagrahadeva",2365,"aybarmenian",1377,"ayin",1506,"ayinaltonehebrew",64288,"ayinhebrew",1506,"b",98,"babengali",2476,"backslash",92,"backslashmonospace",65340,"badeva",2348,"bagujarati",2732,"bagurmukhi",2604,"bahiragana",12400,"bahtthai",3647,"bakatakana",12496,"bar",124,"barmonospace",65372,"bbopomofo",12549,"bcircle",9425,"bdotaccent",7683,"bdotbelow",7685,"beamedsixteenthnotes",9836,"because",8757,"becyrillic",1073,"beharabic",1576,"behfinalarabic",65168,"behinitialarabic",65169,"behiragana",12409,"behmedialarabic",65170,"behmeeminitialarabic",64671,"behmeemisolatedarabic",64520,"behnoonfinalarabic",64621,"bekatakana",12505,"benarmenian",1378,"bet",1489,"beta",946,"betasymbolgreek",976,"betdagesh",64305,"betdageshhebrew",64305,"bethebrew",1489,"betrafehebrew",64332,"bhabengali",2477,"bhadeva",2349,"bhagujarati",2733,"bhagurmukhi",2605,"bhook",595,"bihiragana",12403,"bikatakana",12499,"bilabialclick",664,"bindigurmukhi",2562,"birusquare",13105,"blackcircle",9679,"blackdiamond",9670,"blackdownpointingtriangle",9660,"blackleftpointingpointer",9668,"blackleftpointingtriangle",9664,"blacklenticularbracketleft",12304,"blacklenticularbracketleftvertical",65083,"blacklenticularbracketright",12305,"blacklenticularbracketrightvertical",65084,"blacklowerlefttriangle",9699,"blacklowerrighttriangle",9698,"blackrectangle",9644,"blackrightpointingpointer",9658,"blackrightpointingtriangle",9654,"blacksmallsquare",9642,"blacksmilingface",9787,"blacksquare",9632,"blackstar",9733,"blackupperlefttriangle",9700,"blackupperrighttriangle",9701,"blackuppointingsmalltriangle",9652,"blackuppointingtriangle",9650,"blank",9251,"blinebelow",7687,"block",9608,"bmonospace",65346,"bobaimaithai",3610,"bohiragana",12412,"bokatakana",12508,"bparen",9373,"bqsquare",13251,"braceex",63732,"braceleft",123,"braceleftbt",63731,"braceleftmid",63730,"braceleftmonospace",65371,"braceleftsmall",65115,"bracelefttp",63729,"braceleftvertical",65079,"braceright",125,"bracerightbt",63742,"bracerightmid",63741,"bracerightmonospace",65373,"bracerightsmall",65116,"bracerighttp",63740,"bracerightvertical",65080,"bracketleft",91,"bracketleftbt",63728,"bracketleftex",63727,"bracketleftmonospace",65339,"bracketlefttp",63726,"bracketright",93,"bracketrightbt",63739,"bracketrightex",63738,"bracketrightmonospace",65341,"bracketrighttp",63737,"breve",728,"brevebelowcmb",814,"brevecmb",774,"breveinvertedbelowcmb",815,"breveinvertedcmb",785,"breveinverteddoublecmb",865,"bridgebelowcmb",810,"bridgeinvertedbelowcmb",826,"brokenbar",166,"bstroke",384,"bsuperior",63210,"btopbar",387,"buhiragana",12406,"bukatakana",12502,"bullet",8226,"bulletinverse",9688,"bulletoperator",8729,"bullseye",9678,"c",99,"caarmenian",1390,"cabengali",2458,"cacute",263,"cadeva",2330,"cagujarati",2714,"cagurmukhi",2586,"calsquare",13192,"candrabindubengali",2433,"candrabinducmb",784,"candrabindudeva",2305,"candrabindugujarati",2689,"capslock",8682,"careof",8453,"caron",711,"caronbelowcmb",812,"caroncmb",780,"carriagereturn",8629,"cbopomofo",12568,"ccaron",269,"ccedilla",231,"ccedillaacute",7689,"ccircle",9426,"ccircumflex",265,"ccurl",597,"cdot",267,"cdotaccent",267,"cdsquare",13253,"cedilla",184,"cedillacmb",807,"cent",162,"centigrade",8451,"centinferior",63199,"centmonospace",65504,"centoldstyle",63394,"centsuperior",63200,"chaarmenian",1401,"chabengali",2459,"chadeva",2331,"chagujarati",2715,"chagurmukhi",2587,"chbopomofo",12564,"cheabkhasiancyrillic",1213,"checkmark",10003,"checyrillic",1095,"chedescenderabkhasiancyrillic",1215,"chedescendercyrillic",1207,"chedieresiscyrillic",1269,"cheharmenian",1395,"chekhakassiancyrillic",1228,"cheverticalstrokecyrillic",1209,"chi",967,"chieuchacirclekorean",12919,"chieuchaparenkorean",12823,"chieuchcirclekorean",12905,"chieuchkorean",12618,"chieuchparenkorean",12809,"chochangthai",3594,"chochanthai",3592,"chochingthai",3593,"chochoethai",3596,"chook",392,"cieucacirclekorean",12918,"cieucaparenkorean",12822,"cieuccirclekorean",12904,"cieuckorean",12616,"cieucparenkorean",12808,"cieucuparenkorean",12828,"circle",9675,"circlecopyrt",169,"circlemultiply",8855,"circleot",8857,"circleplus",8853,"circlepostalmark",12342,"circlewithlefthalfblack",9680,"circlewithrighthalfblack",9681,"circumflex",710,"circumflexbelowcmb",813,"circumflexcmb",770,"clear",8999,"clickalveolar",450,"clickdental",448,"clicklateral",449,"clickretroflex",451,"club",9827,"clubsuitblack",9827,"clubsuitwhite",9831,"cmcubedsquare",13220,"cmonospace",65347,"cmsquaredsquare",13216,"coarmenian",1409,"colon",58,"colonmonetary",8353,"colonmonospace",65306,"colonsign",8353,"colonsmall",65109,"colontriangularhalfmod",721,"colontriangularmod",720,"comma",44,"commaabovecmb",787,"commaaboverightcmb",789,"commaaccent",63171,"commaarabic",1548,"commaarmenian",1373,"commainferior",63201,"commamonospace",65292,"commareversedabovecmb",788,"commareversedmod",701,"commasmall",65104,"commasuperior",63202,"commaturnedabovecmb",786,"commaturnedmod",699,"compass",9788,"congruent",8773,"contourintegral",8750,"control",8963,"controlACK",6,"controlBEL",7,"controlBS",8,"controlCAN",24,"controlCR",13,"controlDC1",17,"controlDC2",18,"controlDC3",19,"controlDC4",20,"controlDEL",127,"controlDLE",16,"controlEM",25,"controlENQ",5,"controlEOT",4,"controlESC",27,"controlETB",23,"controlETX",3,"controlFF",12,"controlFS",28,"controlGS",29,"controlHT",9,"controlLF",10,"controlNAK",21,"controlNULL",0,"controlRS",30,"controlSI",15,"controlSO",14,"controlSOT",2,"controlSTX",1,"controlSUB",26,"controlSYN",22,"controlUS",31,"controlVT",11,"copyright",169,"copyrightsans",63721,"copyrightserif",63193,"cornerbracketleft",12300,"cornerbracketlefthalfwidth",65378,"cornerbracketleftvertical",65089,"cornerbracketright",12301,"cornerbracketrighthalfwidth",65379,"cornerbracketrightvertical",65090,"corporationsquare",13183,"cosquare",13255,"coverkgsquare",13254,"cparen",9374,"cruzeiro",8354,"cstretched",663,"curlyand",8911,"curlyor",8910,"currency",164,"cyrBreve",63185,"cyrFlex",63186,"cyrbreve",63188,"cyrflex",63189,"d",100,"daarmenian",1380,"dabengali",2470,"dadarabic",1590,"dadeva",2342,"dadfinalarabic",65214,"dadinitialarabic",65215,"dadmedialarabic",65216,"dagesh",1468,"dageshhebrew",1468,"dagger",8224,"daggerdbl",8225,"dagujarati",2726,"dagurmukhi",2598,"dahiragana",12384,"dakatakana",12480,"dalarabic",1583,"dalet",1491,"daletdagesh",64307,"daletdageshhebrew",64307,"dalethebrew",1491,"dalfinalarabic",65194,"dammaarabic",1615,"dammalowarabic",1615,"dammatanaltonearabic",1612,"dammatanarabic",1612,"danda",2404,"dargahebrew",1447,"dargalefthebrew",1447,"dasiapneumatacyrilliccmb",1157,"dblGrave",63187,"dblanglebracketleft",12298,"dblanglebracketleftvertical",65085,"dblanglebracketright",12299,"dblanglebracketrightvertical",65086,"dblarchinvertedbelowcmb",811,"dblarrowleft",8660,"dblarrowright",8658,"dbldanda",2405,"dblgrave",63190,"dblgravecmb",783,"dblintegral",8748,"dbllowline",8215,"dbllowlinecmb",819,"dbloverlinecmb",831,"dblprimemod",698,"dblverticalbar",8214,"dblverticallineabovecmb",782,"dbopomofo",12553,"dbsquare",13256,"dcaron",271,"dcedilla",7697,"dcircle",9427,"dcircumflexbelow",7699,"dcroat",273,"ddabengali",2465,"ddadeva",2337,"ddagujarati",2721,"ddagurmukhi",2593,"ddalarabic",1672,"ddalfinalarabic",64393,"dddhadeva",2396,"ddhabengali",2466,"ddhadeva",2338,"ddhagujarati",2722,"ddhagurmukhi",2594,"ddotaccent",7691,"ddotbelow",7693,"decimalseparatorarabic",1643,"decimalseparatorpersian",1643,"decyrillic",1076,"degree",176,"dehihebrew",1453,"dehiragana",12391,"deicoptic",1007,"dekatakana",12487,"deleteleft",9003,"deleteright",8998,"delta",948,"deltaturned",397,"denominatorminusonenumeratorbengali",2552,"dezh",676,"dhabengali",2471,"dhadeva",2343,"dhagujarati",2727,"dhagurmukhi",2599,"dhook",599,"dialytikatonos",901,"dialytikatonoscmb",836,"diamond",9830,"diamondsuitwhite",9826,"dieresis",168,"dieresisacute",63191,"dieresisbelowcmb",804,"dieresiscmb",776,"dieresisgrave",63192,"dieresistonos",901,"dihiragana",12386,"dikatakana",12482,"dittomark",12291,"divide",247,"divides",8739,"divisionslash",8725,"djecyrillic",1106,"dkshade",9619,"dlinebelow",7695,"dlsquare",13207,"dmacron",273,"dmonospace",65348,"dnblock",9604,"dochadathai",3598,"dodekthai",3604,"dohiragana",12393,"dokatakana",12489,"dollar",36,"dollarinferior",63203,"dollarmonospace",65284,"dollaroldstyle",63268,"dollarsmall",65129,"dollarsuperior",63204,"dong",8363,"dorusquare",13094,"dotaccent",729,"dotaccentcmb",775,"dotbelowcmb",803,"dotbelowcomb",803,"dotkatakana",12539,"dotlessi",305,"dotlessj",63166,"dotlessjstrokehook",644,"dotmath",8901,"dottedcircle",9676,"doubleyodpatah",64287,"doubleyodpatahhebrew",64287,"downtackbelowcmb",798,"downtackmod",725,"dparen",9375,"dsuperior",63211,"dtail",598,"dtopbar",396,"duhiragana",12389,"dukatakana",12485,"dz",499,"dzaltone",675,"dzcaron",454,"dzcurl",677,"dzeabkhasiancyrillic",1249,"dzecyrillic",1109,"dzhecyrillic",1119,"e",101,"eacute",233,"earth",9793,"ebengali",2447,"ebopomofo",12572,"ebreve",277,"ecandradeva",2317,"ecandragujarati",2701,"ecandravowelsigndeva",2373,"ecandravowelsigngujarati",2757,"ecaron",283,"ecedillabreve",7709,"echarmenian",1381,"echyiwnarmenian",1415,"ecircle",9428,"ecircumflex",234,"ecircumflexacute",7871,"ecircumflexbelow",7705,"ecircumflexdotbelow",7879,"ecircumflexgrave",7873,"ecircumflexhookabove",7875,"ecircumflextilde",7877,"ecyrillic",1108,"edblgrave",517,"edeva",2319,"edieresis",235,"edot",279,"edotaccent",279,"edotbelow",7865,"eegurmukhi",2575,"eematragurmukhi",2631,"efcyrillic",1092,"egrave",232,"egujarati",2703,"eharmenian",1383,"ehbopomofo",12573,"ehiragana",12360,"ehookabove",7867,"eibopomofo",12575,"eight",56,"eightarabic",1640,"eightbengali",2542,"eightcircle",9319,"eightcircleinversesansserif",10129,"eightdeva",2414,"eighteencircle",9329,"eighteenparen",9349,"eighteenperiod",9369,"eightgujarati",2798,"eightgurmukhi",2670,"eighthackarabic",1640,"eighthangzhou",12328,"eighthnotebeamed",9835,"eightideographicparen",12839,"eightinferior",8328,"eightmonospace",65304,"eightoldstyle",63288,"eightparen",9339,"eightperiod",9359,"eightpersian",1784,"eightroman",8567,"eightsuperior",8312,"eightthai",3672,"einvertedbreve",519,"eiotifiedcyrillic",1125,"ekatakana",12456,"ekatakanahalfwidth",65396,"ekonkargurmukhi",2676,"ekorean",12628,"elcyrillic",1083,"element",8712,"elevencircle",9322,"elevenparen",9342,"elevenperiod",9362,"elevenroman",8570,"ellipsis",8230,"ellipsisvertical",8942,"emacron",275,"emacronacute",7703,"emacrongrave",7701,"emcyrillic",1084,"emdash",8212,"emdashvertical",65073,"emonospace",65349,"emphasismarkarmenian",1371,"emptyset",8709,"enbopomofo",12579,"encyrillic",1085,"endash",8211,"endashvertical",65074,"endescendercyrillic",1187,"eng",331,"engbopomofo",12581,"enghecyrillic",1189,"enhookcyrillic",1224,"enspace",8194,"eogonek",281,"eokorean",12627,"eopen",603,"eopenclosed",666,"eopenreversed",604,"eopenreversedclosed",606,"eopenreversedhook",605,"eparen",9376,"epsilon",949,"epsilontonos",941,"equal",61,"equalmonospace",65309,"equalsmall",65126,"equalsuperior",8316,"equivalence",8801,"erbopomofo",12582,"ercyrillic",1088,"ereversed",600,"ereversedcyrillic",1101,"escyrillic",1089,"esdescendercyrillic",1195,"esh",643,"eshcurl",646,"eshortdeva",2318,"eshortvowelsigndeva",2374,"eshreversedloop",426,"eshsquatreversed",645,"esmallhiragana",12359,"esmallkatakana",12455,"esmallkatakanahalfwidth",65386,"estimated",8494,"esuperior",63212,"eta",951,"etarmenian",1384,"etatonos",942,"eth",240,"etilde",7869,"etildebelow",7707,"etnahtafoukhhebrew",1425,"etnahtafoukhlefthebrew",1425,"etnahtahebrew",1425,"etnahtalefthebrew",1425,"eturned",477,"eukorean",12641,"euro",8364,"evowelsignbengali",2503,"evowelsigndeva",2375,"evowelsigngujarati",2759,"exclam",33,"exclamarmenian",1372,"exclamdbl",8252,"exclamdown",161,"exclamdownsmall",63393,"exclammonospace",65281,"exclamsmall",63265,"existential",8707,"ezh",658,"ezhcaron",495,"ezhcurl",659,"ezhreversed",441,"ezhtail",442,"f",102,"fadeva",2398,"fagurmukhi",2654,"fahrenheit",8457,"fathaarabic",1614,"fathalowarabic",1614,"fathatanarabic",1611,"fbopomofo",12552,"fcircle",9429,"fdotaccent",7711,"feharabic",1601,"feharmenian",1414,"fehfinalarabic",65234,"fehinitialarabic",65235,"fehmedialarabic",65236,"feicoptic",997,"female",9792,"ff",64256,"f_f",64256,"ffi",64259,"ffl",64260,"fi",64257,"fifteencircle",9326,"fifteenparen",9346,"fifteenperiod",9366,"figuredash",8210,"filledbox",9632,"filledrect",9644,"finalkaf",1498,"finalkafdagesh",64314,"finalkafdageshhebrew",64314,"finalkafhebrew",1498,"finalmem",1501,"finalmemhebrew",1501,"finalnun",1503,"finalnunhebrew",1503,"finalpe",1507,"finalpehebrew",1507,"finaltsadi",1509,"finaltsadihebrew",1509,"firsttonechinese",713,"fisheye",9673,"fitacyrillic",1139,"five",53,"fivearabic",1637,"fivebengali",2539,"fivecircle",9316,"fivecircleinversesansserif",10126,"fivedeva",2411,"fiveeighths",8541,"fivegujarati",2795,"fivegurmukhi",2667,"fivehackarabic",1637,"fivehangzhou",12325,"fiveideographicparen",12836,"fiveinferior",8325,"fivemonospace",65301,"fiveoldstyle",63285,"fiveparen",9336,"fiveperiod",9356,"fivepersian",1781,"fiveroman",8564,"fivesuperior",8309,"fivethai",3669,"fl",64258,"florin",402,"fmonospace",65350,"fmsquare",13209,"fofanthai",3615,"fofathai",3613,"fongmanthai",3663,"forall",8704,"four",52,"fourarabic",1636,"fourbengali",2538,"fourcircle",9315,"fourcircleinversesansserif",10125,"fourdeva",2410,"fourgujarati",2794,"fourgurmukhi",2666,"fourhackarabic",1636,"fourhangzhou",12324,"fourideographicparen",12835,"fourinferior",8324,"fourmonospace",65300,"fournumeratorbengali",2551,"fouroldstyle",63284,"fourparen",9335,"fourperiod",9355,"fourpersian",1780,"fourroman",8563,"foursuperior",8308,"fourteencircle",9325,"fourteenparen",9345,"fourteenperiod",9365,"fourthai",3668,"fourthtonechinese",715,"fparen",9377,"fraction",8260,"franc",8355,"g",103,"gabengali",2455,"gacute",501,"gadeva",2327,"gafarabic",1711,"gaffinalarabic",64403,"gafinitialarabic",64404,"gafmedialarabic",64405,"gagujarati",2711,"gagurmukhi",2583,"gahiragana",12364,"gakatakana",12460,"gamma",947,"gammalatinsmall",611,"gammasuperior",736,"gangiacoptic",1003,"gbopomofo",12557,"gbreve",287,"gcaron",487,"gcedilla",291,"gcircle",9430,"gcircumflex",285,"gcommaaccent",291,"gdot",289,"gdotaccent",289,"gecyrillic",1075,"gehiragana",12370,"gekatakana",12466,"geometricallyequal",8785,"gereshaccenthebrew",1436,"gereshhebrew",1523,"gereshmuqdamhebrew",1437,"germandbls",223,"gershayimaccenthebrew",1438,"gershayimhebrew",1524,"getamark",12307,"ghabengali",2456,"ghadarmenian",1394,"ghadeva",2328,"ghagujarati",2712,"ghagurmukhi",2584,"ghainarabic",1594,"ghainfinalarabic",65230,"ghaininitialarabic",65231,"ghainmedialarabic",65232,"ghemiddlehookcyrillic",1173,"ghestrokecyrillic",1171,"gheupturncyrillic",1169,"ghhadeva",2394,"ghhagurmukhi",2650,"ghook",608,"ghzsquare",13203,"gihiragana",12366,"gikatakana",12462,"gimarmenian",1379,"gimel",1490,"gimeldagesh",64306,"gimeldageshhebrew",64306,"gimelhebrew",1490,"gjecyrillic",1107,"glottalinvertedstroke",446,"glottalstop",660,"glottalstopinverted",662,"glottalstopmod",704,"glottalstopreversed",661,"glottalstopreversedmod",705,"glottalstopreversedsuperior",740,"glottalstopstroke",673,"glottalstopstrokereversed",674,"gmacron",7713,"gmonospace",65351,"gohiragana",12372,"gokatakana",12468,"gparen",9378,"gpasquare",13228,"gradient",8711,"grave",96,"gravebelowcmb",790,"gravecmb",768,"gravecomb",768,"gravedeva",2387,"gravelowmod",718,"gravemonospace",65344,"gravetonecmb",832,"greater",62,"greaterequal",8805,"greaterequalorless",8923,"greatermonospace",65310,"greaterorequivalent",8819,"greaterorless",8823,"greateroverequal",8807,"greatersmall",65125,"gscript",609,"gstroke",485,"guhiragana",12368,"guillemotleft",171,"guillemotright",187,"guilsinglleft",8249,"guilsinglright",8250,"gukatakana",12464,"guramusquare",13080,"gysquare",13257,"h",104,"haabkhasiancyrillic",1193,"haaltonearabic",1729,"habengali",2489,"hadescendercyrillic",1203,"hadeva",2361,"hagujarati",2745,"hagurmukhi",2617,"haharabic",1581,"hahfinalarabic",65186,"hahinitialarabic",65187,"hahiragana",12399,"hahmedialarabic",65188,"haitusquare",13098,"hakatakana",12495,"hakatakanahalfwidth",65418,"halantgurmukhi",2637,"hamzaarabic",1569,"hamzalowarabic",1569,"hangulfiller",12644,"hardsigncyrillic",1098,"harpoonleftbarbup",8636,"harpoonrightbarbup",8640,"hasquare",13258,"hatafpatah",1458,"hatafpatah16",1458,"hatafpatah23",1458,"hatafpatah2f",1458,"hatafpatahhebrew",1458,"hatafpatahnarrowhebrew",1458,"hatafpatahquarterhebrew",1458,"hatafpatahwidehebrew",1458,"hatafqamats",1459,"hatafqamats1b",1459,"hatafqamats28",1459,"hatafqamats34",1459,"hatafqamatshebrew",1459,"hatafqamatsnarrowhebrew",1459,"hatafqamatsquarterhebrew",1459,"hatafqamatswidehebrew",1459,"hatafsegol",1457,"hatafsegol17",1457,"hatafsegol24",1457,"hatafsegol30",1457,"hatafsegolhebrew",1457,"hatafsegolnarrowhebrew",1457,"hatafsegolquarterhebrew",1457,"hatafsegolwidehebrew",1457,"hbar",295,"hbopomofo",12559,"hbrevebelow",7723,"hcedilla",7721,"hcircle",9431,"hcircumflex",293,"hdieresis",7719,"hdotaccent",7715,"hdotbelow",7717,"he",1492,"heart",9829,"heartsuitblack",9829,"heartsuitwhite",9825,"hedagesh",64308,"hedageshhebrew",64308,"hehaltonearabic",1729,"heharabic",1607,"hehebrew",1492,"hehfinalaltonearabic",64423,"hehfinalalttwoarabic",65258,"hehfinalarabic",65258,"hehhamzaabovefinalarabic",64421,"hehhamzaaboveisolatedarabic",64420,"hehinitialaltonearabic",64424,"hehinitialarabic",65259,"hehiragana",12408,"hehmedialaltonearabic",64425,"hehmedialarabic",65260,"heiseierasquare",13179,"hekatakana",12504,"hekatakanahalfwidth",65421,"hekutaarusquare",13110,"henghook",615,"herutusquare",13113,"het",1495,"hethebrew",1495,"hhook",614,"hhooksuperior",689,"hieuhacirclekorean",12923,"hieuhaparenkorean",12827,"hieuhcirclekorean",12909,"hieuhkorean",12622,"hieuhparenkorean",12813,"hihiragana",12402,"hikatakana",12498,"hikatakanahalfwidth",65419,"hiriq",1460,"hiriq14",1460,"hiriq21",1460,"hiriq2d",1460,"hiriqhebrew",1460,"hiriqnarrowhebrew",1460,"hiriqquarterhebrew",1460,"hiriqwidehebrew",1460,"hlinebelow",7830,"hmonospace",65352,"hoarmenian",1392,"hohipthai",3627,"hohiragana",12411,"hokatakana",12507,"hokatakanahalfwidth",65422,"holam",1465,"holam19",1465,"holam26",1465,"holam32",1465,"holamhebrew",1465,"holamnarrowhebrew",1465,"holamquarterhebrew",1465,"holamwidehebrew",1465,"honokhukthai",3630,"hookabovecomb",777,"hookcmb",777,"hookpalatalizedbelowcmb",801,"hookretroflexbelowcmb",802,"hoonsquare",13122,"horicoptic",1001,"horizontalbar",8213,"horncmb",795,"hotsprings",9832,"house",8962,"hparen",9379,"hsuperior",688,"hturned",613,"huhiragana",12405,"huiitosquare",13107,"hukatakana",12501,"hukatakanahalfwidth",65420,"hungarumlaut",733,"hungarumlautcmb",779,"hv",405,"hyphen",45,"hypheninferior",63205,"hyphenmonospace",65293,"hyphensmall",65123,"hyphensuperior",63206,"hyphentwo",8208,"i",105,"iacute",237,"iacyrillic",1103,"ibengali",2439,"ibopomofo",12583,"ibreve",301,"icaron",464,"icircle",9432,"icircumflex",238,"icyrillic",1110,"idblgrave",521,"ideographearthcircle",12943,"ideographfirecircle",12939,"ideographicallianceparen",12863,"ideographiccallparen",12858,"ideographiccentrecircle",12965,"ideographicclose",12294,"ideographiccomma",12289,"ideographiccommaleft",65380,"ideographiccongratulationparen",12855,"ideographiccorrectcircle",12963,"ideographicearthparen",12847,"ideographicenterpriseparen",12861,"ideographicexcellentcircle",12957,"ideographicfestivalparen",12864,"ideographicfinancialcircle",12950,"ideographicfinancialparen",12854,"ideographicfireparen",12843,"ideographichaveparen",12850,"ideographichighcircle",12964,"ideographiciterationmark",12293,"ideographiclaborcircle",12952,"ideographiclaborparen",12856,"ideographicleftcircle",12967,"ideographiclowcircle",12966,"ideographicmedicinecircle",12969,"ideographicmetalparen",12846,"ideographicmoonparen",12842,"ideographicnameparen",12852,"ideographicperiod",12290,"ideographicprintcircle",12958,"ideographicreachparen",12867,"ideographicrepresentparen",12857,"ideographicresourceparen",12862,"ideographicrightcircle",12968,"ideographicsecretcircle",12953,"ideographicselfparen",12866,"ideographicsocietyparen",12851,"ideographicspace",12288,"ideographicspecialparen",12853,"ideographicstockparen",12849,"ideographicstudyparen",12859,"ideographicsunparen",12848,"ideographicsuperviseparen",12860,"ideographicwaterparen",12844,"ideographicwoodparen",12845,"ideographiczero",12295,"ideographmetalcircle",12942,"ideographmooncircle",12938,"ideographnamecircle",12948,"ideographsuncircle",12944,"ideographwatercircle",12940,"ideographwoodcircle",12941,"ideva",2311,"idieresis",239,"idieresisacute",7727,"idieresiscyrillic",1253,"idotbelow",7883,"iebrevecyrillic",1239,"iecyrillic",1077,"ieungacirclekorean",12917,"ieungaparenkorean",12821,"ieungcirclekorean",12903,"ieungkorean",12615,"ieungparenkorean",12807,"igrave",236,"igujarati",2695,"igurmukhi",2567,"ihiragana",12356,"ihookabove",7881,"iibengali",2440,"iicyrillic",1080,"iideva",2312,"iigujarati",2696,"iigurmukhi",2568,"iimatragurmukhi",2624,"iinvertedbreve",523,"iishortcyrillic",1081,"iivowelsignbengali",2496,"iivowelsigndeva",2368,"iivowelsigngujarati",2752,"ij",307,"ikatakana",12452,"ikatakanahalfwidth",65394,"ikorean",12643,"ilde",732,"iluyhebrew",1452,"imacron",299,"imacroncyrillic",1251,"imageorapproximatelyequal",8787,"imatragurmukhi",2623,"imonospace",65353,"increment",8710,"infinity",8734,"iniarmenian",1387,"integral",8747,"integralbottom",8993,"integralbt",8993,"integralex",63733,"integraltop",8992,"integraltp",8992,"intersection",8745,"intisquare",13061,"invbullet",9688,"invcircle",9689,"invsmileface",9787,"iocyrillic",1105,"iogonek",303,"iota",953,"iotadieresis",970,"iotadieresistonos",912,"iotalatin",617,"iotatonos",943,"iparen",9380,"irigurmukhi",2674,"ismallhiragana",12355,"ismallkatakana",12451,"ismallkatakanahalfwidth",65384,"issharbengali",2554,"istroke",616,"isuperior",63213,"iterationhiragana",12445,"iterationkatakana",12541,"itilde",297,"itildebelow",7725,"iubopomofo",12585,"iucyrillic",1102,"ivowelsignbengali",2495,"ivowelsigndeva",2367,"ivowelsigngujarati",2751,"izhitsacyrillic",1141,"izhitsadblgravecyrillic",1143,"j",106,"jaarmenian",1393,"jabengali",2460,"jadeva",2332,"jagujarati",2716,"jagurmukhi",2588,"jbopomofo",12560,"jcaron",496,"jcircle",9433,"jcircumflex",309,"jcrossedtail",669,"jdotlessstroke",607,"jecyrillic",1112,"jeemarabic",1580,"jeemfinalarabic",65182,"jeeminitialarabic",65183,"jeemmedialarabic",65184,"jeharabic",1688,"jehfinalarabic",64395,"jhabengali",2461,"jhadeva",2333,"jhagujarati",2717,"jhagurmukhi",2589,"jheharmenian",1403,"jis",12292,"jmonospace",65354,"jparen",9381,"jsuperior",690,"k",107,"kabashkircyrillic",1185,"kabengali",2453,"kacute",7729,"kacyrillic",1082,"kadescendercyrillic",1179,"kadeva",2325,"kaf",1499,"kafarabic",1603,"kafdagesh",64315,"kafdageshhebrew",64315,"kaffinalarabic",65242,"kafhebrew",1499,"kafinitialarabic",65243,"kafmedialarabic",65244,"kafrafehebrew",64333,"kagujarati",2709,"kagurmukhi",2581,"kahiragana",12363,"kahookcyrillic",1220,"kakatakana",12459,"kakatakanahalfwidth",65398,"kappa",954,"kappasymbolgreek",1008,"kapyeounmieumkorean",12657,"kapyeounphieuphkorean",12676,"kapyeounpieupkorean",12664,"kapyeounssangpieupkorean",12665,"karoriisquare",13069,"kashidaautoarabic",1600,"kashidaautonosidebearingarabic",1600,"kasmallkatakana",12533,"kasquare",13188,"kasraarabic",1616,"kasratanarabic",1613,"kastrokecyrillic",1183,"katahiraprolongmarkhalfwidth",65392,"kaverticalstrokecyrillic",1181,"kbopomofo",12558,"kcalsquare",13193,"kcaron",489,"kcedilla",311,"kcircle",9434,"kcommaaccent",311,"kdotbelow",7731,"keharmenian",1412,"kehiragana",12369,"kekatakana",12465,"kekatakanahalfwidth",65401,"kenarmenian",1391,"kesmallkatakana",12534,"kgreenlandic",312,"khabengali",2454,"khacyrillic",1093,"khadeva",2326,"khagujarati",2710,"khagurmukhi",2582,"khaharabic",1582,"khahfinalarabic",65190,"khahinitialarabic",65191,"khahmedialarabic",65192,"kheicoptic",999,"khhadeva",2393,"khhagurmukhi",2649,"khieukhacirclekorean",12920,"khieukhaparenkorean",12824,"khieukhcirclekorean",12906,"khieukhkorean",12619,"khieukhparenkorean",12810,"khokhaithai",3586,"khokhonthai",3589,"khokhuatthai",3587,"khokhwaithai",3588,"khomutthai",3675,"khook",409,"khorakhangthai",3590,"khzsquare",13201,"kihiragana",12365,"kikatakana",12461,"kikatakanahalfwidth",65399,"kiroguramusquare",13077,"kiromeetorusquare",13078,"kirosquare",13076,"kiyeokacirclekorean",12910,"kiyeokaparenkorean",12814,"kiyeokcirclekorean",12896,"kiyeokkorean",12593,"kiyeokparenkorean",12800,"kiyeoksioskorean",12595,"kjecyrillic",1116,"klinebelow",7733,"klsquare",13208,"kmcubedsquare",13222,"kmonospace",65355,"kmsquaredsquare",13218,"kohiragana",12371,"kohmsquare",13248,"kokaithai",3585,"kokatakana",12467,"kokatakanahalfwidth",65402,"kooposquare",13086,"koppacyrillic",1153,"koreanstandardsymbol",12927,"koroniscmb",835,"kparen",9382,"kpasquare",13226,"ksicyrillic",1135,"ktsquare",13263,"kturned",670,"kuhiragana",12367,"kukatakana",12463,"kukatakanahalfwidth",65400,"kvsquare",13240,"kwsquare",13246,"l",108,"labengali",2482,"lacute",314,"ladeva",2354,"lagujarati",2738,"lagurmukhi",2610,"lakkhangyaothai",3653,"lamaleffinalarabic",65276,"lamalefhamzaabovefinalarabic",65272,"lamalefhamzaaboveisolatedarabic",65271,"lamalefhamzabelowfinalarabic",65274,"lamalefhamzabelowisolatedarabic",65273,"lamalefisolatedarabic",65275,"lamalefmaddaabovefinalarabic",65270,"lamalefmaddaaboveisolatedarabic",65269,"lamarabic",1604,"lambda",955,"lambdastroke",411,"lamed",1500,"lameddagesh",64316,"lameddageshhebrew",64316,"lamedhebrew",1500,"lamfinalarabic",65246,"lamhahinitialarabic",64714,"laminitialarabic",65247,"lamjeeminitialarabic",64713,"lamkhahinitialarabic",64715,"lamlamhehisolatedarabic",65010,"lammedialarabic",65248,"lammeemhahinitialarabic",64904,"lammeeminitialarabic",64716,"largecircle",9711,"lbar",410,"lbelt",620,"lbopomofo",12556,"lcaron",318,"lcedilla",316,"lcircle",9435,"lcircumflexbelow",7741,"lcommaaccent",316,"ldot",320,"ldotaccent",320,"ldotbelow",7735,"ldotbelowmacron",7737,"leftangleabovecmb",794,"lefttackbelowcmb",792,"less",60,"lessequal",8804,"lessequalorgreater",8922,"lessmonospace",65308,"lessorequivalent",8818,"lessorgreater",8822,"lessoverequal",8806,"lesssmall",65124,"lezh",622,"lfblock",9612,"lhookretroflex",621,"lira",8356,"liwnarmenian",1388,"lj",457,"ljecyrillic",1113,"ll",63168,"lladeva",2355,"llagujarati",2739,"llinebelow",7739,"llladeva",2356,"llvocalicbengali",2529,"llvocalicdeva",2401,"llvocalicvowelsignbengali",2531,"llvocalicvowelsigndeva",2403,"lmiddletilde",619,"lmonospace",65356,"lmsquare",13264,"lochulathai",3628,"logicaland",8743,"logicalnot",172,"logicalnotreversed",8976,"logicalor",8744,"lolingthai",3621,"longs",383,"lowlinecenterline",65102,"lowlinecmb",818,"lowlinedashed",65101,"lozenge",9674,"lparen",9383,"lslash",322,"lsquare",8467,"lsuperior",63214,"ltshade",9617,"luthai",3622,"lvocalicbengali",2444,"lvocalicdeva",2316,"lvocalicvowelsignbengali",2530,"lvocalicvowelsigndeva",2402,"lxsquare",13267,"m",109,"mabengali",2478,"macron",175,"macronbelowcmb",817,"macroncmb",772,"macronlowmod",717,"macronmonospace",65507,"macute",7743,"madeva",2350,"magujarati",2734,"magurmukhi",2606,"mahapakhhebrew",1444,"mahapakhlefthebrew",1444,"mahiragana",12414,"maichattawalowleftthai",63637,"maichattawalowrightthai",63636,"maichattawathai",3659,"maichattawaupperleftthai",63635,"maieklowleftthai",63628,"maieklowrightthai",63627,"maiekthai",3656,"maiekupperleftthai",63626,"maihanakatleftthai",63620,"maihanakatthai",3633,"maitaikhuleftthai",63625,"maitaikhuthai",3655,"maitholowleftthai",63631,"maitholowrightthai",63630,"maithothai",3657,"maithoupperleftthai",63629,"maitrilowleftthai",63634,"maitrilowrightthai",63633,"maitrithai",3658,"maitriupperleftthai",63632,"maiyamokthai",3654,"makatakana",12510,"makatakanahalfwidth",65423,"male",9794,"mansyonsquare",13127,"maqafhebrew",1470,"mars",9794,"masoracirclehebrew",1455,"masquare",13187,"mbopomofo",12551,"mbsquare",13268,"mcircle",9436,"mcubedsquare",13221,"mdotaccent",7745,"mdotbelow",7747,"meemarabic",1605,"meemfinalarabic",65250,"meeminitialarabic",65251,"meemmedialarabic",65252,"meemmeeminitialarabic",64721,"meemmeemisolatedarabic",64584,"meetorusquare",13133,"mehiragana",12417,"meizierasquare",13182,"mekatakana",12513,"mekatakanahalfwidth",65426,"mem",1502,"memdagesh",64318,"memdageshhebrew",64318,"memhebrew",1502,"menarmenian",1396,"merkhahebrew",1445,"merkhakefulahebrew",1446,"merkhakefulalefthebrew",1446,"merkhalefthebrew",1445,"mhook",625,"mhzsquare",13202,"middledotkatakanahalfwidth",65381,"middot",183,"mieumacirclekorean",12914,"mieumaparenkorean",12818,"mieumcirclekorean",12900,"mieumkorean",12609,"mieumpansioskorean",12656,"mieumparenkorean",12804,"mieumpieupkorean",12654,"mieumsioskorean",12655,"mihiragana",12415,"mikatakana",12511,"mikatakanahalfwidth",65424,"minus",8722,"minusbelowcmb",800,"minuscircle",8854,"minusmod",727,"minusplus",8723,"minute",8242,"miribaarusquare",13130,"mirisquare",13129,"mlonglegturned",624,"mlsquare",13206,"mmcubedsquare",13219,"mmonospace",65357,"mmsquaredsquare",13215,"mohiragana",12418,"mohmsquare",13249,"mokatakana",12514,"mokatakanahalfwidth",65427,"molsquare",13270,"momathai",3617,"moverssquare",13223,"moverssquaredsquare",13224,"mparen",9384,"mpasquare",13227,"mssquare",13235,"msuperior",63215,"mturned",623,"mu",181,"mu1",181,"muasquare",13186,"muchgreater",8811,"muchless",8810,"mufsquare",13196,"mugreek",956,"mugsquare",13197,"muhiragana",12416,"mukatakana",12512,"mukatakanahalfwidth",65425,"mulsquare",13205,"multiply",215,"mumsquare",13211,"munahhebrew",1443,"munahlefthebrew",1443,"musicalnote",9834,"musicalnotedbl",9835,"musicflatsign",9837,"musicsharpsign",9839,"mussquare",13234,"muvsquare",13238,"muwsquare",13244,"mvmegasquare",13241,"mvsquare",13239,"mwmegasquare",13247,"mwsquare",13245,"n",110,"nabengali",2472,"nabla",8711,"nacute",324,"nadeva",2344,"nagujarati",2728,"nagurmukhi",2600,"nahiragana",12394,"nakatakana",12490,"nakatakanahalfwidth",65413,"napostrophe",329,"nasquare",13185,"nbopomofo",12555,"nbspace",160,"ncaron",328,"ncedilla",326,"ncircle",9437,"ncircumflexbelow",7755,"ncommaaccent",326,"ndotaccent",7749,"ndotbelow",7751,"nehiragana",12397,"nekatakana",12493,"nekatakanahalfwidth",65416,"newsheqelsign",8362,"nfsquare",13195,"ngabengali",2457,"ngadeva",2329,"ngagujarati",2713,"ngagurmukhi",2585,"ngonguthai",3591,"nhiragana",12435,"nhookleft",626,"nhookretroflex",627,"nieunacirclekorean",12911,"nieunaparenkorean",12815,"nieuncieuckorean",12597,"nieuncirclekorean",12897,"nieunhieuhkorean",12598,"nieunkorean",12596,"nieunpansioskorean",12648,"nieunparenkorean",12801,"nieunsioskorean",12647,"nieuntikeutkorean",12646,"nihiragana",12395,"nikatakana",12491,"nikatakanahalfwidth",65414,"nikhahitleftthai",63641,"nikhahitthai",3661,"nine",57,"ninearabic",1641,"ninebengali",2543,"ninecircle",9320,"ninecircleinversesansserif",10130,"ninedeva",2415,"ninegujarati",2799,"ninegurmukhi",2671,"ninehackarabic",1641,"ninehangzhou",12329,"nineideographicparen",12840,"nineinferior",8329,"ninemonospace",65305,"nineoldstyle",63289,"nineparen",9340,"nineperiod",9360,"ninepersian",1785,"nineroman",8568,"ninesuperior",8313,"nineteencircle",9330,"nineteenparen",9350,"nineteenperiod",9370,"ninethai",3673,"nj",460,"njecyrillic",1114,"nkatakana",12531,"nkatakanahalfwidth",65437,"nlegrightlong",414,"nlinebelow",7753,"nmonospace",65358,"nmsquare",13210,"nnabengali",2467,"nnadeva",2339,"nnagujarati",2723,"nnagurmukhi",2595,"nnnadeva",2345,"nohiragana",12398,"nokatakana",12494,"nokatakanahalfwidth",65417,"nonbreakingspace",160,"nonenthai",3603,"nonuthai",3609,"noonarabic",1606,"noonfinalarabic",65254,"noonghunnaarabic",1722,"noonghunnafinalarabic",64415,"nooninitialarabic",65255,"noonjeeminitialarabic",64722,"noonjeemisolatedarabic",64587,"noonmedialarabic",65256,"noonmeeminitialarabic",64725,"noonmeemisolatedarabic",64590,"noonnoonfinalarabic",64653,"notcontains",8716,"notelement",8713,"notelementof",8713,"notequal",8800,"notgreater",8815,"notgreaternorequal",8817,"notgreaternorless",8825,"notidentical",8802,"notless",8814,"notlessnorequal",8816,"notparallel",8742,"notprecedes",8832,"notsubset",8836,"notsucceeds",8833,"notsuperset",8837,"nowarmenian",1398,"nparen",9385,"nssquare",13233,"nsuperior",8319,"ntilde",241,"nu",957,"nuhiragana",12396,"nukatakana",12492,"nukatakanahalfwidth",65415,"nuktabengali",2492,"nuktadeva",2364,"nuktagujarati",2748,"nuktagurmukhi",2620,"numbersign",35,"numbersignmonospace",65283,"numbersignsmall",65119,"numeralsigngreek",884,"numeralsignlowergreek",885,"numero",8470,"nun",1504,"nundagesh",64320,"nundageshhebrew",64320,"nunhebrew",1504,"nvsquare",13237,"nwsquare",13243,"nyabengali",2462,"nyadeva",2334,"nyagujarati",2718,"nyagurmukhi",2590,"o",111,"oacute",243,"oangthai",3629,"obarred",629,"obarredcyrillic",1257,"obarreddieresiscyrillic",1259,"obengali",2451,"obopomofo",12571,"obreve",335,"ocandradeva",2321,"ocandragujarati",2705,"ocandravowelsigndeva",2377,"ocandravowelsigngujarati",2761,"ocaron",466,"ocircle",9438,"ocircumflex",244,"ocircumflexacute",7889,"ocircumflexdotbelow",7897,"ocircumflexgrave",7891,"ocircumflexhookabove",7893,"ocircumflextilde",7895,"ocyrillic",1086,"odblacute",337,"odblgrave",525,"odeva",2323,"odieresis",246,"odieresiscyrillic",1255,"odotbelow",7885,"oe",339,"oekorean",12634,"ogonek",731,"ogonekcmb",808,"ograve",242,"ogujarati",2707,"oharmenian",1413,"ohiragana",12362,"ohookabove",7887,"ohorn",417,"ohornacute",7899,"ohorndotbelow",7907,"ohorngrave",7901,"ohornhookabove",7903,"ohorntilde",7905,"ohungarumlaut",337,"oi",419,"oinvertedbreve",527,"okatakana",12458,"okatakanahalfwidth",65397,"okorean",12631,"olehebrew",1451,"omacron",333,"omacronacute",7763,"omacrongrave",7761,"omdeva",2384,"omega",969,"omega1",982,"omegacyrillic",1121,"omegalatinclosed",631,"omegaroundcyrillic",1147,"omegatitlocyrillic",1149,"omegatonos",974,"omgujarati",2768,"omicron",959,"omicrontonos",972,"omonospace",65359,"one",49,"onearabic",1633,"onebengali",2535,"onecircle",9312,"onecircleinversesansserif",10122,"onedeva",2407,"onedotenleader",8228,"oneeighth",8539,"onefitted",63196,"onegujarati",2791,"onegurmukhi",2663,"onehackarabic",1633,"onehalf",189,"onehangzhou",12321,"oneideographicparen",12832,"oneinferior",8321,"onemonospace",65297,"onenumeratorbengali",2548,"oneoldstyle",63281,"oneparen",9332,"oneperiod",9352,"onepersian",1777,"onequarter",188,"oneroman",8560,"onesuperior",185,"onethai",3665,"onethird",8531,"oogonek",491,"oogonekmacron",493,"oogurmukhi",2579,"oomatragurmukhi",2635,"oopen",596,"oparen",9386,"openbullet",9702,"option",8997,"ordfeminine",170,"ordmasculine",186,"orthogonal",8735,"oshortdeva",2322,"oshortvowelsigndeva",2378,"oslash",248,"oslashacute",511,"osmallhiragana",12361,"osmallkatakana",12457,"osmallkatakanahalfwidth",65387,"ostrokeacute",511,"osuperior",63216,"otcyrillic",1151,"otilde",245,"otildeacute",7757,"otildedieresis",7759,"oubopomofo",12577,"overline",8254,"overlinecenterline",65098,"overlinecmb",773,"overlinedashed",65097,"overlinedblwavy",65100,"overlinewavy",65099,"overscore",175,"ovowelsignbengali",2507,"ovowelsigndeva",2379,"ovowelsigngujarati",2763,"p",112,"paampssquare",13184,"paasentosquare",13099,"pabengali",2474,"pacute",7765,"padeva",2346,"pagedown",8671,"pageup",8670,"pagujarati",2730,"pagurmukhi",2602,"pahiragana",12401,"paiyannoithai",3631,"pakatakana",12497,"palatalizationcyrilliccmb",1156,"palochkacyrillic",1216,"pansioskorean",12671,"paragraph",182,"parallel",8741,"parenleft",40,"parenleftaltonearabic",64830,"parenleftbt",63725,"parenleftex",63724,"parenleftinferior",8333,"parenleftmonospace",65288,"parenleftsmall",65113,"parenleftsuperior",8317,"parenlefttp",63723,"parenleftvertical",65077,"parenright",41,"parenrightaltonearabic",64831,"parenrightbt",63736,"parenrightex",63735,"parenrightinferior",8334,"parenrightmonospace",65289,"parenrightsmall",65114,"parenrightsuperior",8318,"parenrighttp",63734,"parenrightvertical",65078,"partialdiff",8706,"paseqhebrew",1472,"pashtahebrew",1433,"pasquare",13225,"patah",1463,"patah11",1463,"patah1d",1463,"patah2a",1463,"patahhebrew",1463,"patahnarrowhebrew",1463,"patahquarterhebrew",1463,"patahwidehebrew",1463,"pazerhebrew",1441,"pbopomofo",12550,"pcircle",9439,"pdotaccent",7767,"pe",1508,"pecyrillic",1087,"pedagesh",64324,"pedageshhebrew",64324,"peezisquare",13115,"pefinaldageshhebrew",64323,"peharabic",1662,"peharmenian",1402,"pehebrew",1508,"pehfinalarabic",64343,"pehinitialarabic",64344,"pehiragana",12410,"pehmedialarabic",64345,"pekatakana",12506,"pemiddlehookcyrillic",1191,"perafehebrew",64334,"percent",37,"percentarabic",1642,"percentmonospace",65285,"percentsmall",65130,"period",46,"periodarmenian",1417,"periodcentered",183,"periodhalfwidth",65377,"periodinferior",63207,"periodmonospace",65294,"periodsmall",65106,"periodsuperior",63208,"perispomenigreekcmb",834,"perpendicular",8869,"perthousand",8240,"peseta",8359,"pfsquare",13194,"phabengali",2475,"phadeva",2347,"phagujarati",2731,"phagurmukhi",2603,"phi",966,"phi1",981,"phieuphacirclekorean",12922,"phieuphaparenkorean",12826,"phieuphcirclekorean",12908,"phieuphkorean",12621,"phieuphparenkorean",12812,"philatin",632,"phinthuthai",3642,"phisymbolgreek",981,"phook",421,"phophanthai",3614,"phophungthai",3612,"phosamphaothai",3616,"pi",960,"pieupacirclekorean",12915,"pieupaparenkorean",12819,"pieupcieuckorean",12662,"pieupcirclekorean",12901,"pieupkiyeokkorean",12658,"pieupkorean",12610,"pieupparenkorean",12805,"pieupsioskiyeokkorean",12660,"pieupsioskorean",12612,"pieupsiostikeutkorean",12661,"pieupthieuthkorean",12663,"pieuptikeutkorean",12659,"pihiragana",12404,"pikatakana",12500,"pisymbolgreek",982,"piwrarmenian",1411,"plus",43,"plusbelowcmb",799,"pluscircle",8853,"plusminus",177,"plusmod",726,"plusmonospace",65291,"plussmall",65122,"plussuperior",8314,"pmonospace",65360,"pmsquare",13272,"pohiragana",12413,"pointingindexdownwhite",9759,"pointingindexleftwhite",9756,"pointingindexrightwhite",9758,"pointingindexupwhite",9757,"pokatakana",12509,"poplathai",3611,"postalmark",12306,"postalmarkface",12320,"pparen",9387,"precedes",8826,"prescription",8478,"primemod",697,"primereversed",8245,"product",8719,"projective",8965,"prolongedkana",12540,"propellor",8984,"propersubset",8834,"propersuperset",8835,"proportion",8759,"proportional",8733,"psi",968,"psicyrillic",1137,"psilipneumatacyrilliccmb",1158,"pssquare",13232,"puhiragana",12407,"pukatakana",12503,"pvsquare",13236,"pwsquare",13242,"q",113,"qadeva",2392,"qadmahebrew",1448,"qafarabic",1602,"qaffinalarabic",65238,"qafinitialarabic",65239,"qafmedialarabic",65240,"qamats",1464,"qamats10",1464,"qamats1a",1464,"qamats1c",1464,"qamats27",1464,"qamats29",1464,"qamats33",1464,"qamatsde",1464,"qamatshebrew",1464,"qamatsnarrowhebrew",1464,"qamatsqatanhebrew",1464,"qamatsqatannarrowhebrew",1464,"qamatsqatanquarterhebrew",1464,"qamatsqatanwidehebrew",1464,"qamatsquarterhebrew",1464,"qamatswidehebrew",1464,"qarneyparahebrew",1439,"qbopomofo",12561,"qcircle",9440,"qhook",672,"qmonospace",65361,"qof",1511,"qofdagesh",64327,"qofdageshhebrew",64327,"qofhebrew",1511,"qparen",9388,"quarternote",9833,"qubuts",1467,"qubuts18",1467,"qubuts25",1467,"qubuts31",1467,"qubutshebrew",1467,"qubutsnarrowhebrew",1467,"qubutsquarterhebrew",1467,"qubutswidehebrew",1467,"question",63,"questionarabic",1567,"questionarmenian",1374,"questiondown",191,"questiondownsmall",63423,"questiongreek",894,"questionmonospace",65311,"questionsmall",63295,"quotedbl",34,"quotedblbase",8222,"quotedblleft",8220,"quotedblmonospace",65282,"quotedblprime",12318,"quotedblprimereversed",12317,"quotedblright",8221,"quoteleft",8216,"quoteleftreversed",8219,"quotereversed",8219,"quoteright",8217,"quoterightn",329,"quotesinglbase",8218,"quotesingle",39,"quotesinglemonospace",65287,"r",114,"raarmenian",1404,"rabengali",2480,"racute",341,"radeva",2352,"radical",8730,"radicalex",63717,"radoverssquare",13230,"radoverssquaredsquare",13231,"radsquare",13229,"rafe",1471,"rafehebrew",1471,"ragujarati",2736,"ragurmukhi",2608,"rahiragana",12425,"rakatakana",12521,"rakatakanahalfwidth",65431,"ralowerdiagonalbengali",2545,"ramiddlediagonalbengali",2544,"ramshorn",612,"ratio",8758,"rbopomofo",12566,"rcaron",345,"rcedilla",343,"rcircle",9441,"rcommaaccent",343,"rdblgrave",529,"rdotaccent",7769,"rdotbelow",7771,"rdotbelowmacron",7773,"referencemark",8251,"reflexsubset",8838,"reflexsuperset",8839,"registered",174,"registersans",63720,"registerserif",63194,"reharabic",1585,"reharmenian",1408,"rehfinalarabic",65198,"rehiragana",12428,"rekatakana",12524,"rekatakanahalfwidth",65434,"resh",1512,"reshdageshhebrew",64328,"reshhebrew",1512,"reversedtilde",8765,"reviahebrew",1431,"reviamugrashhebrew",1431,"revlogicalnot",8976,"rfishhook",638,"rfishhookreversed",639,"rhabengali",2525,"rhadeva",2397,"rho",961,"rhook",637,"rhookturned",635,"rhookturnedsuperior",693,"rhosymbolgreek",1009,"rhotichookmod",734,"rieulacirclekorean",12913,"rieulaparenkorean",12817,"rieulcirclekorean",12899,"rieulhieuhkorean",12608,"rieulkiyeokkorean",12602,"rieulkiyeoksioskorean",12649,"rieulkorean",12601,"rieulmieumkorean",12603,"rieulpansioskorean",12652,"rieulparenkorean",12803,"rieulphieuphkorean",12607,"rieulpieupkorean",12604,"rieulpieupsioskorean",12651,"rieulsioskorean",12605,"rieulthieuthkorean",12606,"rieultikeutkorean",12650,"rieulyeorinhieuhkorean",12653,"rightangle",8735,"righttackbelowcmb",793,"righttriangle",8895,"rihiragana",12426,"rikatakana",12522,"rikatakanahalfwidth",65432,"ring",730,"ringbelowcmb",805,"ringcmb",778,"ringhalfleft",703,"ringhalfleftarmenian",1369,"ringhalfleftbelowcmb",796,"ringhalfleftcentered",723,"ringhalfright",702,"ringhalfrightbelowcmb",825,"ringhalfrightcentered",722,"rinvertedbreve",531,"rittorusquare",13137,"rlinebelow",7775,"rlongleg",636,"rlonglegturned",634,"rmonospace",65362,"rohiragana",12429,"rokatakana",12525,"rokatakanahalfwidth",65435,"roruathai",3619,"rparen",9389,"rrabengali",2524,"rradeva",2353,"rragurmukhi",2652,"rreharabic",1681,"rrehfinalarabic",64397,"rrvocalicbengali",2528,"rrvocalicdeva",2400,"rrvocalicgujarati",2784,"rrvocalicvowelsignbengali",2500,"rrvocalicvowelsigndeva",2372,"rrvocalicvowelsigngujarati",2756,"rsuperior",63217,"rtblock",9616,"rturned",633,"rturnedsuperior",692,"ruhiragana",12427,"rukatakana",12523,"rukatakanahalfwidth",65433,"rupeemarkbengali",2546,"rupeesignbengali",2547,"rupiah",63197,"ruthai",3620,"rvocalicbengali",2443,"rvocalicdeva",2315,"rvocalicgujarati",2699,"rvocalicvowelsignbengali",2499,"rvocalicvowelsigndeva",2371,"rvocalicvowelsigngujarati",2755,"s",115,"sabengali",2488,"sacute",347,"sacutedotaccent",7781,"sadarabic",1589,"sadeva",2360,"sadfinalarabic",65210,"sadinitialarabic",65211,"sadmedialarabic",65212,"sagujarati",2744,"sagurmukhi",2616,"sahiragana",12373,"sakatakana",12469,"sakatakanahalfwidth",65403,"sallallahoualayhewasallamarabic",65018,"samekh",1505,"samekhdagesh",64321,"samekhdageshhebrew",64321,"samekhhebrew",1505,"saraaathai",3634,"saraaethai",3649,"saraaimaimalaithai",3652,"saraaimaimuanthai",3651,"saraamthai",3635,"saraathai",3632,"saraethai",3648,"saraiileftthai",63622,"saraiithai",3637,"saraileftthai",63621,"saraithai",3636,"saraothai",3650,"saraueeleftthai",63624,"saraueethai",3639,"saraueleftthai",63623,"sarauethai",3638,"sarauthai",3640,"sarauuthai",3641,"sbopomofo",12569,"scaron",353,"scarondotaccent",7783,"scedilla",351,"schwa",601,"schwacyrillic",1241,"schwadieresiscyrillic",1243,"schwahook",602,"scircle",9442,"scircumflex",349,"scommaaccent",537,"sdotaccent",7777,"sdotbelow",7779,"sdotbelowdotaccent",7785,"seagullbelowcmb",828,"second",8243,"secondtonechinese",714,"section",167,"seenarabic",1587,"seenfinalarabic",65202,"seeninitialarabic",65203,"seenmedialarabic",65204,"segol",1462,"segol13",1462,"segol1f",1462,"segol2c",1462,"segolhebrew",1462,"segolnarrowhebrew",1462,"segolquarterhebrew",1462,"segoltahebrew",1426,"segolwidehebrew",1462,"seharmenian",1405,"sehiragana",12379,"sekatakana",12475,"sekatakanahalfwidth",65406,"semicolon",59,"semicolonarabic",1563,"semicolonmonospace",65307,"semicolonsmall",65108,"semivoicedmarkkana",12444,"semivoicedmarkkanahalfwidth",65439,"sentisquare",13090,"sentosquare",13091,"seven",55,"sevenarabic",1639,"sevenbengali",2541,"sevencircle",9318,"sevencircleinversesansserif",10128,"sevendeva",2413,"seveneighths",8542,"sevengujarati",2797,"sevengurmukhi",2669,"sevenhackarabic",1639,"sevenhangzhou",12327,"sevenideographicparen",12838,"seveninferior",8327,"sevenmonospace",65303,"sevenoldstyle",63287,"sevenparen",9338,"sevenperiod",9358,"sevenpersian",1783,"sevenroman",8566,"sevensuperior",8311,"seventeencircle",9328,"seventeenparen",9348,"seventeenperiod",9368,"seventhai",3671,"sfthyphen",173,"shaarmenian",1399,"shabengali",2486,"shacyrillic",1096,"shaddaarabic",1617,"shaddadammaarabic",64609,"shaddadammatanarabic",64606,"shaddafathaarabic",64608,"shaddakasraarabic",64610,"shaddakasratanarabic",64607,"shade",9618,"shadedark",9619,"shadelight",9617,"shademedium",9618,"shadeva",2358,"shagujarati",2742,"shagurmukhi",2614,"shalshelethebrew",1427,"shbopomofo",12565,"shchacyrillic",1097,"sheenarabic",1588,"sheenfinalarabic",65206,"sheeninitialarabic",65207,"sheenmedialarabic",65208,"sheicoptic",995,"sheqel",8362,"sheqelhebrew",8362,"sheva",1456,"sheva115",1456,"sheva15",1456,"sheva22",1456,"sheva2e",1456,"shevahebrew",1456,"shevanarrowhebrew",1456,"shevaquarterhebrew",1456,"shevawidehebrew",1456,"shhacyrillic",1211,"shimacoptic",1005,"shin",1513,"shindagesh",64329,"shindageshhebrew",64329,"shindageshshindot",64300,"shindageshshindothebrew",64300,"shindageshsindot",64301,"shindageshsindothebrew",64301,"shindothebrew",1473,"shinhebrew",1513,"shinshindot",64298,"shinshindothebrew",64298,"shinsindot",64299,"shinsindothebrew",64299,"shook",642,"sigma",963,"sigma1",962,"sigmafinal",962,"sigmalunatesymbolgreek",1010,"sihiragana",12375,"sikatakana",12471,"sikatakanahalfwidth",65404,"siluqhebrew",1469,"siluqlefthebrew",1469,"similar",8764,"sindothebrew",1474,"siosacirclekorean",12916,"siosaparenkorean",12820,"sioscieuckorean",12670,"sioscirclekorean",12902,"sioskiyeokkorean",12666,"sioskorean",12613,"siosnieunkorean",12667,"siosparenkorean",12806,"siospieupkorean",12669,"siostikeutkorean",12668,"six",54,"sixarabic",1638,"sixbengali",2540,"sixcircle",9317,"sixcircleinversesansserif",10127,"sixdeva",2412,"sixgujarati",2796,"sixgurmukhi",2668,"sixhackarabic",1638,"sixhangzhou",12326,"sixideographicparen",12837,"sixinferior",8326,"sixmonospace",65302,"sixoldstyle",63286,"sixparen",9337,"sixperiod",9357,"sixpersian",1782,"sixroman",8565,"sixsuperior",8310,"sixteencircle",9327,"sixteencurrencydenominatorbengali",2553,"sixteenparen",9347,"sixteenperiod",9367,"sixthai",3670,"slash",47,"slashmonospace",65295,"slong",383,"slongdotaccent",7835,"smileface",9786,"smonospace",65363,"sofpasuqhebrew",1475,"softhyphen",173,"softsigncyrillic",1100,"sohiragana",12381,"sokatakana",12477,"sokatakanahalfwidth",65407,"soliduslongoverlaycmb",824,"solidusshortoverlaycmb",823,"sorusithai",3625,"sosalathai",3624,"sosothai",3595,"sosuathai",3626,"space",32,"spacehackarabic",32,"spade",9824,"spadesuitblack",9824,"spadesuitwhite",9828,"sparen",9390,"squarebelowcmb",827,"squarecc",13252,"squarecm",13213,"squarediagonalcrosshatchfill",9641,"squarehorizontalfill",9636,"squarekg",13199,"squarekm",13214,"squarekmcapital",13262,"squareln",13265,"squarelog",13266,"squaremg",13198,"squaremil",13269,"squaremm",13212,"squaremsquared",13217,"squareorthogonalcrosshatchfill",9638,"squareupperlefttolowerrightfill",9639,"squareupperrighttolowerleftfill",9640,"squareverticalfill",9637,"squarewhitewithsmallblack",9635,"srsquare",13275,"ssabengali",2487,"ssadeva",2359,"ssagujarati",2743,"ssangcieuckorean",12617,"ssanghieuhkorean",12677,"ssangieungkorean",12672,"ssangkiyeokkorean",12594,"ssangnieunkorean",12645,"ssangpieupkorean",12611,"ssangsioskorean",12614,"ssangtikeutkorean",12600,"ssuperior",63218,"sterling",163,"sterlingmonospace",65505,"strokelongoverlaycmb",822,"strokeshortoverlaycmb",821,"subset",8834,"subsetnotequal",8842,"subsetorequal",8838,"succeeds",8827,"suchthat",8715,"suhiragana",12377,"sukatakana",12473,"sukatakanahalfwidth",65405,"sukunarabic",1618,"summation",8721,"sun",9788,"superset",8835,"supersetnotequal",8843,"supersetorequal",8839,"svsquare",13276,"syouwaerasquare",13180,"t",116,"tabengali",2468,"tackdown",8868,"tackleft",8867,"tadeva",2340,"tagujarati",2724,"tagurmukhi",2596,"taharabic",1591,"tahfinalarabic",65218,"tahinitialarabic",65219,"tahiragana",12383,"tahmedialarabic",65220,"taisyouerasquare",13181,"takatakana",12479,"takatakanahalfwidth",65408,"tatweelarabic",1600,"tau",964,"tav",1514,"tavdages",64330,"tavdagesh",64330,"tavdageshhebrew",64330,"tavhebrew",1514,"tbar",359,"tbopomofo",12554,"tcaron",357,"tccurl",680,"tcedilla",355,"tcheharabic",1670,"tchehfinalarabic",64379,"tchehinitialarabic",64380,"tchehmedialarabic",64381,"tcircle",9443,"tcircumflexbelow",7793,"tcommaaccent",355,"tdieresis",7831,"tdotaccent",7787,"tdotbelow",7789,"tecyrillic",1090,"tedescendercyrillic",1197,"teharabic",1578,"tehfinalarabic",65174,"tehhahinitialarabic",64674,"tehhahisolatedarabic",64524,"tehinitialarabic",65175,"tehiragana",12390,"tehjeeminitialarabic",64673,"tehjeemisolatedarabic",64523,"tehmarbutaarabic",1577,"tehmarbutafinalarabic",65172,"tehmedialarabic",65176,"tehmeeminitialarabic",64676,"tehmeemisolatedarabic",64526,"tehnoonfinalarabic",64627,"tekatakana",12486,"tekatakanahalfwidth",65411,"telephone",8481,"telephoneblack",9742,"telishagedolahebrew",1440,"telishaqetanahebrew",1449,"tencircle",9321,"tenideographicparen",12841,"tenparen",9341,"tenperiod",9361,"tenroman",8569,"tesh",679,"tet",1496,"tetdagesh",64312,"tetdageshhebrew",64312,"tethebrew",1496,"tetsecyrillic",1205,"tevirhebrew",1435,"tevirlefthebrew",1435,"thabengali",2469,"thadeva",2341,"thagujarati",2725,"thagurmukhi",2597,"thalarabic",1584,"thalfinalarabic",65196,"thanthakhatlowleftthai",63640,"thanthakhatlowrightthai",63639,"thanthakhatthai",3660,"thanthakhatupperleftthai",63638,"theharabic",1579,"thehfinalarabic",65178,"thehinitialarabic",65179,"thehmedialarabic",65180,"thereexists",8707,"therefore",8756,"theta",952,"theta1",977,"thetasymbolgreek",977,"thieuthacirclekorean",12921,"thieuthaparenkorean",12825,"thieuthcirclekorean",12907,"thieuthkorean",12620,"thieuthparenkorean",12811,"thirteencircle",9324,"thirteenparen",9344,"thirteenperiod",9364,"thonangmonthothai",3601,"thook",429,"thophuthaothai",3602,"thorn",254,"thothahanthai",3607,"thothanthai",3600,"thothongthai",3608,"thothungthai",3606,"thousandcyrillic",1154,"thousandsseparatorarabic",1644,"thousandsseparatorpersian",1644,"three",51,"threearabic",1635,"threebengali",2537,"threecircle",9314,"threecircleinversesansserif",10124,"threedeva",2409,"threeeighths",8540,"threegujarati",2793,"threegurmukhi",2665,"threehackarabic",1635,"threehangzhou",12323,"threeideographicparen",12834,"threeinferior",8323,"threemonospace",65299,"threenumeratorbengali",2550,"threeoldstyle",63283,"threeparen",9334,"threeperiod",9354,"threepersian",1779,"threequarters",190,"threequartersemdash",63198,"threeroman",8562,"threesuperior",179,"threethai",3667,"thzsquare",13204,"tihiragana",12385,"tikatakana",12481,"tikatakanahalfwidth",65409,"tikeutacirclekorean",12912,"tikeutaparenkorean",12816,"tikeutcirclekorean",12898,"tikeutkorean",12599,"tikeutparenkorean",12802,"tilde",732,"tildebelowcmb",816,"tildecmb",771,"tildecomb",771,"tildedoublecmb",864,"tildeoperator",8764,"tildeoverlaycmb",820,"tildeverticalcmb",830,"timescircle",8855,"tipehahebrew",1430,"tipehalefthebrew",1430,"tippigurmukhi",2672,"titlocyrilliccmb",1155,"tiwnarmenian",1407,"tlinebelow",7791,"tmonospace",65364,"toarmenian",1385,"tohiragana",12392,"tokatakana",12488,"tokatakanahalfwidth",65412,"tonebarextrahighmod",741,"tonebarextralowmod",745,"tonebarhighmod",742,"tonebarlowmod",744,"tonebarmidmod",743,"tonefive",445,"tonesix",389,"tonetwo",424,"tonos",900,"tonsquare",13095,"topatakthai",3599,"tortoiseshellbracketleft",12308,"tortoiseshellbracketleftsmall",65117,"tortoiseshellbracketleftvertical",65081,"tortoiseshellbracketright",12309,"tortoiseshellbracketrightsmall",65118,"tortoiseshellbracketrightvertical",65082,"totaothai",3605,"tpalatalhook",427,"tparen",9391,"trademark",8482,"trademarksans",63722,"trademarkserif",63195,"tretroflexhook",648,"triagdn",9660,"triaglf",9668,"triagrt",9658,"triagup",9650,"ts",678,"tsadi",1510,"tsadidagesh",64326,"tsadidageshhebrew",64326,"tsadihebrew",1510,"tsecyrillic",1094,"tsere",1461,"tsere12",1461,"tsere1e",1461,"tsere2b",1461,"tserehebrew",1461,"tserenarrowhebrew",1461,"tserequarterhebrew",1461,"tserewidehebrew",1461,"tshecyrillic",1115,"tsuperior",63219,"ttabengali",2463,"ttadeva",2335,"ttagujarati",2719,"ttagurmukhi",2591,"tteharabic",1657,"ttehfinalarabic",64359,"ttehinitialarabic",64360,"ttehmedialarabic",64361,"tthabengali",2464,"tthadeva",2336,"tthagujarati",2720,"tthagurmukhi",2592,"tturned",647,"tuhiragana",12388,"tukatakana",12484,"tukatakanahalfwidth",65410,"tusmallhiragana",12387,"tusmallkatakana",12483,"tusmallkatakanahalfwidth",65391,"twelvecircle",9323,"twelveparen",9343,"twelveperiod",9363,"twelveroman",8571,"twentycircle",9331,"twentyhangzhou",21316,"twentyparen",9351,"twentyperiod",9371,"two",50,"twoarabic",1634,"twobengali",2536,"twocircle",9313,"twocircleinversesansserif",10123,"twodeva",2408,"twodotenleader",8229,"twodotleader",8229,"twodotleadervertical",65072,"twogujarati",2792,"twogurmukhi",2664,"twohackarabic",1634,"twohangzhou",12322,"twoideographicparen",12833,"twoinferior",8322,"twomonospace",65298,"twonumeratorbengali",2549,"twooldstyle",63282,"twoparen",9333,"twoperiod",9353,"twopersian",1778,"tworoman",8561,"twostroke",443,"twosuperior",178,"twothai",3666,"twothirds",8532,"u",117,"uacute",250,"ubar",649,"ubengali",2441,"ubopomofo",12584,"ubreve",365,"ucaron",468,"ucircle",9444,"ucircumflex",251,"ucircumflexbelow",7799,"ucyrillic",1091,"udattadeva",2385,"udblacute",369,"udblgrave",533,"udeva",2313,"udieresis",252,"udieresisacute",472,"udieresisbelow",7795,"udieresiscaron",474,"udieresiscyrillic",1265,"udieresisgrave",476,"udieresismacron",470,"udotbelow",7909,"ugrave",249,"ugujarati",2697,"ugurmukhi",2569,"uhiragana",12358,"uhookabove",7911,"uhorn",432,"uhornacute",7913,"uhorndotbelow",7921,"uhorngrave",7915,"uhornhookabove",7917,"uhorntilde",7919,"uhungarumlaut",369,"uhungarumlautcyrillic",1267,"uinvertedbreve",535,"ukatakana",12454,"ukatakanahalfwidth",65395,"ukcyrillic",1145,"ukorean",12636,"umacron",363,"umacroncyrillic",1263,"umacrondieresis",7803,"umatragurmukhi",2625,"umonospace",65365,"underscore",95,"underscoredbl",8215,"underscoremonospace",65343,"underscorevertical",65075,"underscorewavy",65103,"union",8746,"universal",8704,"uogonek",371,"uparen",9392,"upblock",9600,"upperdothebrew",1476,"upsilon",965,"upsilondieresis",971,"upsilondieresistonos",944,"upsilonlatin",650,"upsilontonos",973,"uptackbelowcmb",797,"uptackmod",724,"uragurmukhi",2675,"uring",367,"ushortcyrillic",1118,"usmallhiragana",12357,"usmallkatakana",12453,"usmallkatakanahalfwidth",65385,"ustraightcyrillic",1199,"ustraightstrokecyrillic",1201,"utilde",361,"utildeacute",7801,"utildebelow",7797,"uubengali",2442,"uudeva",2314,"uugujarati",2698,"uugurmukhi",2570,"uumatragurmukhi",2626,"uuvowelsignbengali",2498,"uuvowelsigndeva",2370,"uuvowelsigngujarati",2754,"uvowelsignbengali",2497,"uvowelsigndeva",2369,"uvowelsigngujarati",2753,"v",118,"vadeva",2357,"vagujarati",2741,"vagurmukhi",2613,"vakatakana",12535,"vav",1493,"vavdagesh",64309,"vavdagesh65",64309,"vavdageshhebrew",64309,"vavhebrew",1493,"vavholam",64331,"vavholamhebrew",64331,"vavvavhebrew",1520,"vavyodhebrew",1521,"vcircle",9445,"vdotbelow",7807,"vecyrillic",1074,"veharabic",1700,"vehfinalarabic",64363,"vehinitialarabic",64364,"vehmedialarabic",64365,"vekatakana",12537,"venus",9792,"verticalbar",124,"verticallineabovecmb",781,"verticallinebelowcmb",809,"verticallinelowmod",716,"verticallinemod",712,"vewarmenian",1406,"vhook",651,"vikatakana",12536,"viramabengali",2509,"viramadeva",2381,"viramagujarati",2765,"visargabengali",2435,"visargadeva",2307,"visargagujarati",2691,"vmonospace",65366,"voarmenian",1400,"voicediterationhiragana",12446,"voicediterationkatakana",12542,"voicedmarkkana",12443,"voicedmarkkanahalfwidth",65438,"vokatakana",12538,"vparen",9393,"vtilde",7805,"vturned",652,"vuhiragana",12436,"vukatakana",12532,"w",119,"wacute",7811,"waekorean",12633,"wahiragana",12431,"wakatakana",12527,"wakatakanahalfwidth",65436,"wakorean",12632,"wasmallhiragana",12430,"wasmallkatakana",12526,"wattosquare",13143,"wavedash",12316,"wavyunderscorevertical",65076,"wawarabic",1608,"wawfinalarabic",65262,"wawhamzaabovearabic",1572,"wawhamzaabovefinalarabic",65158,"wbsquare",13277,"wcircle",9446,"wcircumflex",373,"wdieresis",7813,"wdotaccent",7815,"wdotbelow",7817,"wehiragana",12433,"weierstrass",8472,"wekatakana",12529,"wekorean",12638,"weokorean",12637,"wgrave",7809,"whitebullet",9702,"whitecircle",9675,"whitecircleinverse",9689,"whitecornerbracketleft",12302,"whitecornerbracketleftvertical",65091,"whitecornerbracketright",12303,"whitecornerbracketrightvertical",65092,"whitediamond",9671,"whitediamondcontainingblacksmalldiamond",9672,"whitedownpointingsmalltriangle",9663,"whitedownpointingtriangle",9661,"whiteleftpointingsmalltriangle",9667,"whiteleftpointingtriangle",9665,"whitelenticularbracketleft",12310,"whitelenticularbracketright",12311,"whiterightpointingsmalltriangle",9657,"whiterightpointingtriangle",9655,"whitesmallsquare",9643,"whitesmilingface",9786,"whitesquare",9633,"whitestar",9734,"whitetelephone",9743,"whitetortoiseshellbracketleft",12312,"whitetortoiseshellbracketright",12313,"whiteuppointingsmalltriangle",9653,"whiteuppointingtriangle",9651,"wihiragana",12432,"wikatakana",12528,"wikorean",12639,"wmonospace",65367,"wohiragana",12434,"wokatakana",12530,"wokatakanahalfwidth",65382,"won",8361,"wonmonospace",65510,"wowaenthai",3623,"wparen",9394,"wring",7832,"wsuperior",695,"wturned",653,"wynn",447,"x",120,"xabovecmb",829,"xbopomofo",12562,"xcircle",9447,"xdieresis",7821,"xdotaccent",7819,"xeharmenian",1389,"xi",958,"xmonospace",65368,"xparen",9395,"xsuperior",739,"y",121,"yaadosquare",13134,"yabengali",2479,"yacute",253,"yadeva",2351,"yaekorean",12626,"yagujarati",2735,"yagurmukhi",2607,"yahiragana",12420,"yakatakana",12516,"yakatakanahalfwidth",65428,"yakorean",12625,"yamakkanthai",3662,"yasmallhiragana",12419,"yasmallkatakana",12515,"yasmallkatakanahalfwidth",65388,"yatcyrillic",1123,"ycircle",9448,"ycircumflex",375,"ydieresis",255,"ydotaccent",7823,"ydotbelow",7925,"yeharabic",1610,"yehbarreearabic",1746,"yehbarreefinalarabic",64431,"yehfinalarabic",65266,"yehhamzaabovearabic",1574,"yehhamzaabovefinalarabic",65162,"yehhamzaaboveinitialarabic",65163,"yehhamzaabovemedialarabic",65164,"yehinitialarabic",65267,"yehmedialarabic",65268,"yehmeeminitialarabic",64733,"yehmeemisolatedarabic",64600,"yehnoonfinalarabic",64660,"yehthreedotsbelowarabic",1745,"yekorean",12630,"yen",165,"yenmonospace",65509,"yeokorean",12629,"yeorinhieuhkorean",12678,"yerahbenyomohebrew",1450,"yerahbenyomolefthebrew",1450,"yericyrillic",1099,"yerudieresiscyrillic",1273,"yesieungkorean",12673,"yesieungpansioskorean",12675,"yesieungsioskorean",12674,"yetivhebrew",1434,"ygrave",7923,"yhook",436,"yhookabove",7927,"yiarmenian",1397,"yicyrillic",1111,"yikorean",12642,"yinyang",9775,"yiwnarmenian",1410,"ymonospace",65369,"yod",1497,"yoddagesh",64313,"yoddageshhebrew",64313,"yodhebrew",1497,"yodyodhebrew",1522,"yodyodpatahhebrew",64287,"yohiragana",12424,"yoikorean",12681,"yokatakana",12520,"yokatakanahalfwidth",65430,"yokorean",12635,"yosmallhiragana",12423,"yosmallkatakana",12519,"yosmallkatakanahalfwidth",65390,"yotgreek",1011,"yoyaekorean",12680,"yoyakorean",12679,"yoyakthai",3618,"yoyingthai",3597,"yparen",9396,"ypogegrammeni",890,"ypogegrammenigreekcmb",837,"yr",422,"yring",7833,"ysuperior",696,"ytilde",7929,"yturned",654,"yuhiragana",12422,"yuikorean",12684,"yukatakana",12518,"yukatakanahalfwidth",65429,"yukorean",12640,"yusbigcyrillic",1131,"yusbigiotifiedcyrillic",1133,"yuslittlecyrillic",1127,"yuslittleiotifiedcyrillic",1129,"yusmallhiragana",12421,"yusmallkatakana",12517,"yusmallkatakanahalfwidth",65389,"yuyekorean",12683,"yuyeokorean",12682,"yyabengali",2527,"yyadeva",2399,"z",122,"zaarmenian",1382,"zacute",378,"zadeva",2395,"zagurmukhi",2651,"zaharabic",1592,"zahfinalarabic",65222,"zahinitialarabic",65223,"zahiragana",12374,"zahmedialarabic",65224,"zainarabic",1586,"zainfinalarabic",65200,"zakatakana",12470,"zaqefgadolhebrew",1429,"zaqefqatanhebrew",1428,"zarqahebrew",1432,"zayin",1494,"zayindagesh",64310,"zayindageshhebrew",64310,"zayinhebrew",1494,"zbopomofo",12567,"zcaron",382,"zcircle",9449,"zcircumflex",7825,"zcurl",657,"zdot",380,"zdotaccent",380,"zdotbelow",7827,"zecyrillic",1079,"zedescendercyrillic",1177,"zedieresiscyrillic",1247,"zehiragana",12380,"zekatakana",12476,"zero",48,"zeroarabic",1632,"zerobengali",2534,"zerodeva",2406,"zerogujarati",2790,"zerogurmukhi",2662,"zerohackarabic",1632,"zeroinferior",8320,"zeromonospace",65296,"zerooldstyle",63280,"zeropersian",1776,"zerosuperior",8304,"zerothai",3664,"zerowidthjoiner",65279,"zerowidthnonjoiner",8204,"zerowidthspace",8203,"zeta",950,"zhbopomofo",12563,"zhearmenian",1386,"zhebrevecyrillic",1218,"zhecyrillic",1078,"zhedescendercyrillic",1175,"zhedieresiscyrillic",1245,"zihiragana",12376,"zikatakana",12472,"zinorhebrew",1454,"zlinebelow",7829,"zmonospace",65370,"zohiragana",12382,"zokatakana",12478,"zparen",9397,"zretroflexhook",656,"zstroke",438,"zuhiragana",12378,"zukatakana",12474,".notdef",0,"angbracketleftbig",9001,"angbracketleftBig",9001,"angbracketleftbigg",9001,"angbracketleftBigg",9001,"angbracketrightBig",9002,"angbracketrightbig",9002,"angbracketrightBigg",9002,"angbracketrightbigg",9002,"arrowhookleft",8618,"arrowhookright",8617,"arrowlefttophalf",8636,"arrowleftbothalf",8637,"arrownortheast",8599,"arrownorthwest",8598,"arrowrighttophalf",8640,"arrowrightbothalf",8641,"arrowsoutheast",8600,"arrowsouthwest",8601,"backslashbig",8726,"backslashBig",8726,"backslashBigg",8726,"backslashbigg",8726,"bardbl",8214,"bracehtipdownleft",65079,"bracehtipdownright",65079,"bracehtipupleft",65080,"bracehtipupright",65080,"braceleftBig",123,"braceleftbig",123,"braceleftbigg",123,"braceleftBigg",123,"bracerightBig",125,"bracerightbig",125,"bracerightbigg",125,"bracerightBigg",125,"bracketleftbig",91,"bracketleftBig",91,"bracketleftbigg",91,"bracketleftBigg",91,"bracketrightBig",93,"bracketrightbig",93,"bracketrightbigg",93,"bracketrightBigg",93,"ceilingleftbig",8968,"ceilingleftBig",8968,"ceilingleftBigg",8968,"ceilingleftbigg",8968,"ceilingrightbig",8969,"ceilingrightBig",8969,"ceilingrightbigg",8969,"ceilingrightBigg",8969,"circledotdisplay",8857,"circledottext",8857,"circlemultiplydisplay",8855,"circlemultiplytext",8855,"circleplusdisplay",8853,"circleplustext",8853,"contintegraldisplay",8750,"contintegraltext",8750,"coproductdisplay",8720,"coproducttext",8720,"floorleftBig",8970,"floorleftbig",8970,"floorleftbigg",8970,"floorleftBigg",8970,"floorrightbig",8971,"floorrightBig",8971,"floorrightBigg",8971,"floorrightbigg",8971,"hatwide",770,"hatwider",770,"hatwidest",770,"intercal",7488,"integraldisplay",8747,"integraltext",8747,"intersectiondisplay",8898,"intersectiontext",8898,"logicalanddisplay",8743,"logicalandtext",8743,"logicalordisplay",8744,"logicalortext",8744,"parenleftBig",40,"parenleftbig",40,"parenleftBigg",40,"parenleftbigg",40,"parenrightBig",41,"parenrightbig",41,"parenrightBigg",41,"parenrightbigg",41,"prime",8242,"productdisplay",8719,"producttext",8719,"radicalbig",8730,"radicalBig",8730,"radicalBigg",8730,"radicalbigg",8730,"radicalbt",8730,"radicaltp",8730,"radicalvertex",8730,"slashbig",47,"slashBig",47,"slashBigg",47,"slashbigg",47,"summationdisplay",8721,"summationtext",8721,"tildewide",732,"tildewider",732,"tildewidest",732,"uniondisplay",8899,"unionmultidisplay",8846,"unionmultitext",8846,"unionsqdisplay",8852,"unionsqtext",8852,"uniontext",8899,"vextenddouble",8741,"vextendsingle",8739]})),i=(0,r.getArrayLookupTableFactory)((function(){return["space",32,"a1",9985,"a2",9986,"a202",9987,"a3",9988,"a4",9742,"a5",9990,"a119",9991,"a118",9992,"a117",9993,"a11",9755,"a12",9758,"a13",9996,"a14",9997,"a15",9998,"a16",9999,"a105",1e4,"a17",10001,"a18",10002,"a19",10003,"a20",10004,"a21",10005,"a22",10006,"a23",10007,"a24",10008,"a25",10009,"a26",10010,"a27",10011,"a28",10012,"a6",10013,"a7",10014,"a8",10015,"a9",10016,"a10",10017,"a29",10018,"a30",10019,"a31",10020,"a32",10021,"a33",10022,"a34",10023,"a35",9733,"a36",10025,"a37",10026,"a38",10027,"a39",10028,"a40",10029,"a41",10030,"a42",10031,"a43",10032,"a44",10033,"a45",10034,"a46",10035,"a47",10036,"a48",10037,"a49",10038,"a50",10039,"a51",10040,"a52",10041,"a53",10042,"a54",10043,"a55",10044,"a56",10045,"a57",10046,"a58",10047,"a59",10048,"a60",10049,"a61",10050,"a62",10051,"a63",10052,"a64",10053,"a65",10054,"a66",10055,"a67",10056,"a68",10057,"a69",10058,"a70",10059,"a71",9679,"a72",10061,"a73",9632,"a74",10063,"a203",10064,"a75",10065,"a204",10066,"a76",9650,"a77",9660,"a78",9670,"a79",10070,"a81",9687,"a82",10072,"a83",10073,"a84",10074,"a97",10075,"a98",10076,"a99",10077,"a100",10078,"a101",10081,"a102",10082,"a103",10083,"a104",10084,"a106",10085,"a107",10086,"a108",10087,"a112",9827,"a111",9830,"a110",9829,"a109",9824,"a120",9312,"a121",9313,"a122",9314,"a123",9315,"a124",9316,"a125",9317,"a126",9318,"a127",9319,"a128",9320,"a129",9321,"a130",10102,"a131",10103,"a132",10104,"a133",10105,"a134",10106,"a135",10107,"a136",10108,"a137",10109,"a138",10110,"a139",10111,"a140",10112,"a141",10113,"a142",10114,"a143",10115,"a144",10116,"a145",10117,"a146",10118,"a147",10119,"a148",10120,"a149",10121,"a150",10122,"a151",10123,"a152",10124,"a153",10125,"a154",10126,"a155",10127,"a156",10128,"a157",10129,"a158",10130,"a159",10131,"a160",10132,"a161",8594,"a163",8596,"a164",8597,"a196",10136,"a165",10137,"a192",10138,"a166",10139,"a167",10140,"a168",10141,"a169",10142,"a170",10143,"a171",10144,"a172",10145,"a173",10146,"a162",10147,"a174",10148,"a175",10149,"a176",10150,"a177",10151,"a178",10152,"a179",10153,"a193",10154,"a180",10155,"a199",10156,"a181",10157,"a200",10158,"a182",10159,"a201",10161,"a183",10162,"a184",10163,"a197",10164,"a185",10165,"a194",10166,"a198",10167,"a186",10168,"a195",10169,"a187",10170,"a188",10171,"a189",10172,"a190",10173,"a191",10174,"a89",10088,"a90",10089,"a93",10090,"a94",10091,"a91",10092,"a92",10093,"a205",10094,"a85",10095,"a206",10096,"a86",10097,"a87",10098,"a88",10099,"a95",10100,"a96",10101,".notdef",0]}))},(e,t,a)=>{a.r(t);a.d(t,{clearUnicodeCaches:()=>clearUnicodeCaches,getCharUnicodeCategory:()=>getCharUnicodeCategory,getNormalizedUnicodes:()=>s,getUnicodeForGlyph:()=>getUnicodeForGlyph,getUnicodeRangeFor:()=>getUnicodeRangeFor,mapSpecialUnicodeValues:()=>mapSpecialUnicodeValues,reverseIfRtl:()=>reverseIfRtl});var r=a(8);const n=(0,r.getLookupTableFactory)((function(e){e[63721]=169;e[63193]=169;e[63720]=174;e[63194]=174;e[63722]=8482;e[63195]=8482;e[63729]=9127;e[63730]=9128;e[63731]=9129;e[63740]=9131;e[63741]=9132;e[63742]=9133;e[63726]=9121;e[63727]=9122;e[63728]=9123;e[63737]=9124;e[63738]=9125;e[63739]=9126;e[63723]=9115;e[63724]=9116;e[63725]=9117;e[63734]=9118;e[63735]=9119;e[63736]=9120}));function mapSpecialUnicodeValues(e){return e>=65520&&e<=65535?0:e>=62976&&e<=63743?n()[e]||e:173===e?45:e}function getUnicodeForGlyph(e,t){let a=t[e];if(void 0!==a)return a;if(!e)return-1;if("u"===e[0]){const t=e.length;let r;if(7===t&&"n"===e[1]&&"i"===e[2])r=e.substring(3);else{if(!(t>=5&&t<=7))return-1;r=e.substring(1)}if(r===r.toUpperCase()){a=parseInt(r,16);if(a>=0)return a}}return-1}const i=[{begin:0,end:127},{begin:128,end:255},{begin:256,end:383},{begin:384,end:591},{begin:592,end:687},{begin:688,end:767},{begin:768,end:879},{begin:880,end:1023},{begin:11392,end:11519},{begin:1024,end:1279},{begin:1328,end:1423},{begin:1424,end:1535},{begin:42240,end:42559},{begin:1536,end:1791},{begin:1984,end:2047},{begin:2304,end:2431},{begin:2432,end:2559},{begin:2560,end:2687},{begin:2688,end:2815},{begin:2816,end:2943},{begin:2944,end:3071},{begin:3072,end:3199},{begin:3200,end:3327},{begin:3328,end:3455},{begin:3584,end:3711},{begin:3712,end:3839},{begin:4256,end:4351},{begin:6912,end:7039},{begin:4352,end:4607},{begin:7680,end:7935},{begin:7936,end:8191},{begin:8192,end:8303},{begin:8304,end:8351},{begin:8352,end:8399},{begin:8400,end:8447},{begin:8448,end:8527},{begin:8528,end:8591},{begin:8592,end:8703},{begin:8704,end:8959},{begin:8960,end:9215},{begin:9216,end:9279},{begin:9280,end:9311},{begin:9312,end:9471},{begin:9472,end:9599},{begin:9600,end:9631},{begin:9632,end:9727},{begin:9728,end:9983},{begin:9984,end:10175},{begin:12288,end:12351},{begin:12352,end:12447},{begin:12448,end:12543},{begin:12544,end:12591},{begin:12592,end:12687},{begin:43072,end:43135},{begin:12800,end:13055},{begin:13056,end:13311},{begin:44032,end:55215},{begin:55296,end:57343},{begin:67840,end:67871},{begin:19968,end:40959},{begin:57344,end:63743},{begin:12736,end:12783},{begin:64256,end:64335},{begin:64336,end:65023},{begin:65056,end:65071},{begin:65040,end:65055},{begin:65104,end:65135},{begin:65136,end:65279},{begin:65280,end:65519},{begin:65520,end:65535},{begin:3840,end:4095},{begin:1792,end:1871},{begin:1920,end:1983},{begin:3456,end:3583},{begin:4096,end:4255},{begin:4608,end:4991},{begin:5024,end:5119},{begin:5120,end:5759},{begin:5760,end:5791},{begin:5792,end:5887},{begin:6016,end:6143},{begin:6144,end:6319},{begin:10240,end:10495},{begin:40960,end:42127},{begin:5888,end:5919},{begin:66304,end:66351},{begin:66352,end:66383},{begin:66560,end:66639},{begin:118784,end:119039},{begin:119808,end:120831},{begin:1044480,end:1048573},{begin:65024,end:65039},{begin:917504,end:917631},{begin:6400,end:6479},{begin:6480,end:6527},{begin:6528,end:6623},{begin:6656,end:6687},{begin:11264,end:11359},{begin:11568,end:11647},{begin:19904,end:19967},{begin:43008,end:43055},{begin:65536,end:65663},{begin:65856,end:65935},{begin:66432,end:66463},{begin:66464,end:66527},{begin:66640,end:66687},{begin:66688,end:66735},{begin:67584,end:67647},{begin:68096,end:68191},{begin:119552,end:119647},{begin:73728,end:74751},{begin:119648,end:119679},{begin:7040,end:7103},{begin:7168,end:7247},{begin:7248,end:7295},{begin:43136,end:43231},{begin:43264,end:43311},{begin:43312,end:43359},{begin:43520,end:43615},{begin:65936,end:65999},{begin:66e3,end:66047},{begin:66208,end:66271},{begin:127024,end:127135}];function getUnicodeRangeFor(e){for(let t=0,a=i.length;t=a.begin&&e=t.begin&&e=t.begin&&e=0;r--)a.push(e[r]);return a.join("")}const o=new RegExp("^(\\s)|(\\p{Mn})|(\\p{Cf})$","u"),c=new Map;function getCharUnicodeCategory(e){const t=c.get(e);if(t)return t;const a=e.match(o),r={isWhitespace:!(!a||!a[1]),isZeroWidthDiacritic:!(!a||!a[2]),isInvisibleFormatMark:!(!a||!a[3])};c.set(e,r);return r}function clearUnicodeCaches(){c.clear()}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.MarkupAnnotation=t.AnnotationFactory=t.AnnotationBorderStyle=t.Annotation=void 0;t.getQuadPoints=getQuadPoints;var r=a(2),n=a(8),i=a(23),s=a(5),o=a(9),c=a(60),l=a(65),h=a(24),u=a(68),d=a(72),f=a(62),g=a(10),p=a(73),m=a(76);const b=1.35;t.AnnotationFactory=class AnnotationFactory{static create(e,t,a,r,n){return Promise.all([a.ensureCatalog("acroForm"),a.ensureCatalog("baseUrl"),a.ensureDoc("xfaDatasets"),n?this._getPageIndex(e,t,a):-1]).then((([i,s,o,c])=>a.ensure(this,"_create",[e,t,a,r,i,o,n,c])))}static _create(e,t,a,i,o,c,l,h=-1){const u=e.fetchIfRef(t);if(!(u instanceof s.Dict))return;const d=t instanceof s.Ref?t.toString():`annot_${i.createObjId()}`;let f=u.get("Subtype");f=f instanceof s.Name?f.name:null;const g={xref:e,ref:t,dict:u,subtype:f,id:d,pdfManager:a,acroForm:o instanceof s.Dict?o:s.Dict.empty,xfaDatasets:c,collectFields:l,pageIndex:h};switch(f){case"Link":return new LinkAnnotation(g);case"Text":return new TextAnnotation(g);case"Widget":let e=(0,n.getInheritableProperty)({dict:u,key:"FT"});e=e instanceof s.Name?e.name:null;switch(e){case"Tx":return new TextWidgetAnnotation(g);case"Btn":return new ButtonWidgetAnnotation(g);case"Ch":return new ChoiceWidgetAnnotation(g);case"Sig":return new SignatureWidgetAnnotation(g)}(0,r.warn)(`Unimplemented widget field type "${e}", falling back to base field type.`);return new WidgetAnnotation(g);case"Popup":return new PopupAnnotation(g);case"FreeText":return new FreeTextAnnotation(g);case"Line":return new LineAnnotation(g);case"Square":return new SquareAnnotation(g);case"Circle":return new CircleAnnotation(g);case"PolyLine":return new PolylineAnnotation(g);case"Polygon":return new PolygonAnnotation(g);case"Caret":return new CaretAnnotation(g);case"Ink":return new InkAnnotation(g);case"Highlight":return new HighlightAnnotation(g);case"Underline":return new UnderlineAnnotation(g);case"Squiggly":return new SquigglyAnnotation(g);case"StrikeOut":return new StrikeOutAnnotation(g);case"Stamp":return new StampAnnotation(g);case"FileAttachment":return new FileAttachmentAnnotation(g);default:l||(f?(0,r.warn)(`Unimplemented annotation type "${f}", falling back to base annotation.`):(0,r.warn)("Annotation is missing the required /Subtype."));return new Annotation(g)}}static async _getPageIndex(e,t,a){try{const r=await e.fetchIfRefAsync(t);if(!(r instanceof s.Dict))return-1;const n=r.getRaw("P");if(!(n instanceof s.Ref))return-1;return await a.ensureCatalog("getPageIndex",[n])}catch(e){(0,r.warn)(`_getPageIndex: "${e}".`);return-1}}};function getRgbColor(e,t=new Uint8ClampedArray(3)){if(!Array.isArray(e))return t;const a=t||new Uint8ClampedArray(3);switch(e.length){case 0:return null;case 1:h.ColorSpace.singletons.gray.getRgbItem(e,0,a,0);return a;case 3:h.ColorSpace.singletons.rgb.getRgbItem(e,0,a,0);return a;case 4:h.ColorSpace.singletons.cmyk.getRgbItem(e,0,a,0);return a;default:return t}}function getQuadPoints(e,t){if(!e.has("QuadPoints"))return null;const a=e.getArray("QuadPoints");if(!Array.isArray(a)||0===a.length||a.length%8>0)return null;const r=[];for(let e=0,n=a.length/8;et[2]||st[3]))return null;r[e].push({x:i,y:s})}}return r.map((e=>{const[t,a,r,n]=e.reduce((([e,t,a,r],n)=>[Math.min(e,n.x),Math.max(t,n.x),Math.min(a,n.y),Math.max(r,n.y)]),[Number.MAX_VALUE,Number.MIN_VALUE,Number.MAX_VALUE,Number.MIN_VALUE]);return[{x:t,y:n},{x:a,y:n},{x:t,y:r},{x:a,y:r}]}))}function getTransformMatrix(e,t,a){const[n,i,s,o]=r.Util.getAxialAlignedBoundingBox(t,a);if(n===s||i===o)return[1,0,0,1,e[0],e[1]];const c=(e[2]-e[0])/(s-n),l=(e[3]-e[1])/(o-i);return[c,0,0,l,e[0]-n*c,e[1]-i*l]}class Annotation{constructor(e){const t=e.dict;this.setTitle(t.get("T"));this.setContents(t.get("Contents"));this.setModificationDate(t.get("M"));this.setFlags(t.get("F"));this.setRectangle(t.getArray("Rect"));this.setColor(t.getArray("C"));this.setBorderStyle(t);this.setAppearance(t);this.setBorderAndBackgroundColors(t.get("MK"));this._streams=[];this.appearance&&this._streams.push(this.appearance);this.data={annotationFlags:this.flags,borderStyle:this.borderStyle,color:this.color,backgroundColor:this.backgroundColor,borderColor:this.borderColor,contentsObj:this._contents,hasAppearance:!!this.appearance,id:e.id,modificationDate:this.modificationDate,rect:this.rectangle,subtype:e.subtype,hasOwnCanvas:!1};if(e.collectFields){const a=t.get("Kids");if(Array.isArray(a)){const e=[];for(const t of a)t instanceof s.Ref&&e.push(t.toString());0!==e.length&&(this.data.kidIds=e)}this.data.actions=(0,n.collectActions)(e.xref,t,r.AnnotationActionEventType);this.data.fieldName=this._constructFieldName(t);this.data.pageIndex=e.pageIndex}this._fallbackFontDict=null}_hasFlag(e,t){return!!(e&t)}_isViewable(e){return!this._hasFlag(e,r.AnnotationFlag.INVISIBLE)&&!this._hasFlag(e,r.AnnotationFlag.NOVIEW)}_isPrintable(e){return this._hasFlag(e,r.AnnotationFlag.PRINT)&&!this._hasFlag(e,r.AnnotationFlag.INVISIBLE)}mustBeViewed(e){const t=e&&e.get(this.data.id);return t&&void 0!==t.hidden?!t.hidden:this.viewable&&!this._hasFlag(this.flags,r.AnnotationFlag.HIDDEN)}mustBePrinted(e){const t=e&&e.get(this.data.id);return t&&void 0!==t.print?t.print:this.printable}get viewable(){return null!==this.data.quadPoints&&(0===this.flags||this._isViewable(this.flags))}get printable(){return null!==this.data.quadPoints&&(0!==this.flags&&this._isPrintable(this.flags))}_parseStringHelper(e){const t="string"==typeof e?(0,r.stringToPDFString)(e):"";return{str:t,dir:t&&"rtl"===(0,c.bidi)(t).dir?"rtl":"ltr"}}setTitle(e){this._title=this._parseStringHelper(e)}setContents(e){this._contents=this._parseStringHelper(e)}setModificationDate(e){this.modificationDate="string"==typeof e?e:null}setFlags(e){this.flags=Number.isInteger(e)&&e>0?e:0}hasFlag(e){return this._hasFlag(this.flags,e)}setRectangle(e){Array.isArray(e)&&4===e.length?this.rectangle=r.Util.normalizeRect(e):this.rectangle=[0,0,0,0]}setColor(e){this.color=getRgbColor(e)}setLineEndings(e){this.lineEndings=["None","None"];if(Array.isArray(e)&&2===e.length)for(let t=0;t<2;t++){const a=e[t];if(a instanceof s.Name)switch(a.name){case"None":continue;case"Square":case"Circle":case"Diamond":case"OpenArrow":case"ClosedArrow":case"Butt":case"ROpenArrow":case"RClosedArrow":case"Slash":this.lineEndings[t]=a.name;continue}(0,r.warn)(`Ignoring invalid lineEnding: ${a}`)}}setBorderAndBackgroundColors(e){if(e instanceof s.Dict){this.borderColor=getRgbColor(e.getArray("BC"),null);this.backgroundColor=getRgbColor(e.getArray("BG"),null)}else this.borderColor=this.backgroundColor=null}setBorderStyle(e){this.borderStyle=new AnnotationBorderStyle;if(e instanceof s.Dict)if(e.has("BS")){const t=e.get("BS"),a=t.get("Type");if(!a||(0,s.isName)(a,"Border")){this.borderStyle.setWidth(t.get("W"),this.rectangle);this.borderStyle.setStyle(t.get("S"));this.borderStyle.setDashArray(t.getArray("D"))}}else if(e.has("Border")){const t=e.getArray("Border");if(Array.isArray(t)&&t.length>=3){this.borderStyle.setHorizontalCornerRadius(t[0]);this.borderStyle.setVerticalCornerRadius(t[1]);this.borderStyle.setWidth(t[2],this.rectangle);4===t.length&&this.borderStyle.setDashArray(t[3],!0)}}else this.borderStyle.setWidth(0)}setAppearance(e){this.appearance=null;const t=e.get("AP");if(!(t instanceof s.Dict))return;const a=t.get("N");if(a instanceof o.BaseStream){this.appearance=a;return}if(!(a instanceof s.Dict))return;const r=e.get("AS");r instanceof s.Name&&a.has(r.name)&&(this.appearance=a.get(r.name))}loadResources(e,t){return t.dict.getAsync("Resources").then((t=>{if(!t)return;return new d.ObjectLoader(t,e,t.xref).load().then((function(){return t}))}))}getOperatorList(e,t,a,n,i){const o=this.data;let c=this.appearance;const l=o.hasOwnCanvas&&a&r.RenderingIntentFlag.DISPLAY;if(!c){if(!l)return Promise.resolve(new f.OperatorList);c=new g.StringStream("");c.dict=new s.Dict}const h=c.dict,u=this.loadResources(["ExtGState","ColorSpace","Pattern","Shading","XObject","Font"],c),d=h.getArray("BBox")||[0,0,1,1],p=h.getArray("Matrix")||[1,0,0,1,0,0],m=getTransformMatrix(o.rect,d,p);return u.then((a=>{const n=new f.OperatorList;n.addOp(r.OPS.beginAnnotation,[o.id,o.rect,m,p,l]);return e.getOperatorList({stream:c,task:t,resources:a,operatorList:n,fallbackFontDict:this._fallbackFontDict}).then((()=>{n.addOp(r.OPS.endAnnotation,[]);this.reset();return n}))}))}async save(e,t,a){return null}getFieldObject(){return this.data.kidIds?{id:this.data.id,actions:this.data.actions,name:this.data.fieldName,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,type:"",kidIds:this.data.kidIds,page:this.data.pageIndex}:null}reset(){for(const e of this._streams)e.reset()}_constructFieldName(e){if(!e.has("T")&&!e.has("Parent")){(0,r.warn)("Unknown field name, falling back to empty field name.");return""}if(!e.has("Parent"))return(0,r.stringToPDFString)(e.get("T"));const t=[];e.has("T")&&t.unshift((0,r.stringToPDFString)(e.get("T")));let a=e;const n=new s.RefSet;e.objId&&n.put(e.objId);for(;a.has("Parent");){a=a.get("Parent");if(!(a instanceof s.Dict)||a.objId&&n.has(a.objId))break;a.objId&&n.put(a.objId);a.has("T")&&t.unshift((0,r.stringToPDFString)(a.get("T")))}return t.join(".")}}t.Annotation=Annotation;class AnnotationBorderStyle{constructor(){this.width=1;this.style=r.AnnotationBorderStyleType.SOLID;this.dashArray=[3];this.horizontalCornerRadius=0;this.verticalCornerRadius=0}setWidth(e,t=[0,0,0,0]){if(e instanceof s.Name)this.width=0;else if("number"==typeof e){if(e>0){const a=(t[2]-t[0])/2,n=(t[3]-t[1])/2;if(a>0&&n>0&&(e>a||e>n)){(0,r.warn)(`AnnotationBorderStyle.setWidth - ignoring width: ${e}`);e=1}}this.width=e}}setStyle(e){if(e instanceof s.Name)switch(e.name){case"S":this.style=r.AnnotationBorderStyleType.SOLID;break;case"D":this.style=r.AnnotationBorderStyleType.DASHED;break;case"B":this.style=r.AnnotationBorderStyleType.BEVELED;break;case"I":this.style=r.AnnotationBorderStyleType.INSET;break;case"U":this.style=r.AnnotationBorderStyleType.UNDERLINE}}setDashArray(e,t=!1){if(Array.isArray(e)&&e.length>0){let a=!0,r=!0;for(const t of e){if(!(+t>=0)){a=!1;break}t>0&&(r=!1)}if(a&&!r){this.dashArray=e;t&&this.setStyle(s.Name.get("D"))}else this.width=0}else e&&(this.width=0)}setHorizontalCornerRadius(e){Number.isInteger(e)&&(this.horizontalCornerRadius=e)}setVerticalCornerRadius(e){Number.isInteger(e)&&(this.verticalCornerRadius=e)}}t.AnnotationBorderStyle=AnnotationBorderStyle;class MarkupAnnotation extends Annotation{constructor(e){super(e);const t=e.dict;if(t.has("IRT")){const e=t.getRaw("IRT");this.data.inReplyTo=e instanceof s.Ref?e.toString():null;const a=t.get("RT");this.data.replyType=a instanceof s.Name?a.name:r.AnnotationReplyType.REPLY}if(this.data.replyType===r.AnnotationReplyType.GROUP){const e=t.get("IRT");this.setTitle(e.get("T"));this.data.titleObj=this._title;this.setContents(e.get("Contents"));this.data.contentsObj=this._contents;if(e.has("CreationDate")){this.setCreationDate(e.get("CreationDate"));this.data.creationDate=this.creationDate}else this.data.creationDate=null;if(e.has("M")){this.setModificationDate(e.get("M"));this.data.modificationDate=this.modificationDate}else this.data.modificationDate=null;this.data.hasPopup=e.has("Popup");if(e.has("C")){this.setColor(e.getArray("C"));this.data.color=this.color}else this.data.color=null}else{this.data.titleObj=this._title;this.setCreationDate(t.get("CreationDate"));this.data.creationDate=this.creationDate;this.data.hasPopup=t.has("Popup");t.has("C")||(this.data.color=null)}t.has("RC")&&(this.data.richText=m.XFAFactory.getRichTextAsHtml(t.get("RC")))}setCreationDate(e){this.creationDate="string"==typeof e?e:null}_setDefaultAppearance({xref:e,extra:t,strokeColor:a,fillColor:r,blendMode:n,strokeAlpha:i,fillAlpha:o,pointsCallback:c}){let l=Number.MAX_VALUE,h=Number.MAX_VALUE,u=Number.MIN_VALUE,d=Number.MIN_VALUE;const f=["q"];t&&f.push(t);a&&f.push(`${a[0]} ${a[1]} ${a[2]} RG`);r&&f.push(`${r[0]} ${r[1]} ${r[2]} rg`);let p=this.data.quadPoints;p||(p=[[{x:this.rectangle[0],y:this.rectangle[3]},{x:this.rectangle[2],y:this.rectangle[3]},{x:this.rectangle[0],y:this.rectangle[1]},{x:this.rectangle[2],y:this.rectangle[1]}]]);for(const e of p){const[t,a,r,n]=c(f,e);l=Math.min(l,t);u=Math.max(u,a);h=Math.min(h,r);d=Math.max(d,n)}f.push("Q");const m=new s.Dict(e),b=new s.Dict(e);b.set("Subtype",s.Name.get("Form"));const y=new g.StringStream(f.join(" "));y.dict=b;m.set("Fm0",y);const w=new s.Dict(e);n&&w.set("BM",s.Name.get(n));"number"==typeof i&&w.set("CA",i);"number"==typeof o&&w.set("ca",o);const S=new s.Dict(e);S.set("GS0",w);const x=new s.Dict(e);x.set("ExtGState",S);x.set("XObject",m);const k=new s.Dict(e);k.set("Resources",x);const C=this.data.rect=[l,h,u,d];k.set("BBox",C);this.appearance=new g.StringStream("/GS0 gs /Fm0 Do");this.appearance.dict=k;this._streams.push(this.appearance,y)}}t.MarkupAnnotation=MarkupAnnotation;class WidgetAnnotation extends Annotation{constructor(e){super(e);const t=e.dict,a=this.data;this.ref=e.ref;a.annotationType=r.AnnotationType.WIDGET;void 0===a.fieldName&&(a.fieldName=this._constructFieldName(t));void 0===a.actions&&(a.actions=(0,n.collectActions)(e.xref,t,r.AnnotationActionEventType));let o=(0,n.getInheritableProperty)({dict:t,key:"V",getArray:!0});a.fieldValue=this._decodeFormValue(o);const c=(0,n.getInheritableProperty)({dict:t,key:"DV",getArray:!0});a.defaultFieldValue=this._decodeFormValue(c);if(void 0===o&&e.xfaDatasets){const t=this._title.str;if(t){this._hasValueFromXFA=!0;a.fieldValue=o=e.xfaDatasets.getValue(t)}}void 0===o&&null!==a.defaultFieldValue&&(a.fieldValue=a.defaultFieldValue);a.alternativeText=(0,r.stringToPDFString)(t.get("TU")||"");const l=(0,n.getInheritableProperty)({dict:t,key:"DA"})||e.acroForm.get("DA");this._defaultAppearance="string"==typeof l?l:"";a.defaultAppearanceData=(0,i.parseDefaultAppearance)(this._defaultAppearance);const h=(0,n.getInheritableProperty)({dict:t,key:"FT"});a.fieldType=h instanceof s.Name?h.name:null;const u=(0,n.getInheritableProperty)({dict:t,key:"DR"}),d=e.acroForm.get("DR"),f=this.appearance&&this.appearance.dict.get("Resources");this._fieldResources={localResources:u,acroFormResources:d,appearanceResources:f,mergedResources:s.Dict.merge({xref:e.xref,dictArray:[u,f,d],mergeSubDicts:!0})};a.fieldFlags=(0,n.getInheritableProperty)({dict:t,key:"Ff"});(!Number.isInteger(a.fieldFlags)||a.fieldFlags<0)&&(a.fieldFlags=0);a.readOnly=this.hasFieldFlag(r.AnnotationFieldFlag.READONLY);a.hidden=this._hasFlag(a.annotationFlags,r.AnnotationFlag.HIDDEN)}_decodeFormValue(e){return Array.isArray(e)?e.filter((e=>"string"==typeof e)).map((e=>(0,r.stringToPDFString)(e))):e instanceof s.Name?(0,r.stringToPDFString)(e.name):"string"==typeof e?(0,r.stringToPDFString)(e):null}hasFieldFlag(e){return!!(this.data.fieldFlags&e)}getOperatorList(e,t,a,n,i){return!n||this instanceof SignatureWidgetAnnotation?this._hasText?this._getAppearance(e,t,i).then((s=>{if(this.appearance&&null===s)return super.getOperatorList(e,t,a,n,i);const o=new f.OperatorList;if(!this._defaultAppearance||null===s)return o;const c=[1,0,0,1,0,0],l=[0,0,this.data.rect[2]-this.data.rect[0],this.data.rect[3]-this.data.rect[1]],h=getTransformMatrix(this.data.rect,l,c);o.addOp(r.OPS.beginAnnotation,[this.data.id,this.data.rect,h,c]);const u=new g.StringStream(s);return e.getOperatorList({stream:u,task:t,resources:this._fieldResources.mergedResources,operatorList:o}).then((function(){o.addOp(r.OPS.endAnnotation,[]);return o}))})):super.getOperatorList(e,t,a,n,i):Promise.resolve(new f.OperatorList)}async save(e,t,a){const n=a?a.get(this.data.id):void 0;let i=n&&n.value;if(i===this.data.fieldValue||void 0===i){if(!this._hasValueFromXFA)return null;i=i||this.data.fieldValue}if(!this._hasValueFromXFA&&Array.isArray(i)&&Array.isArray(this.data.fieldValue)&&i.length===this.data.fieldValue.length&&i.every(((e,t)=>e===this.data.fieldValue[t])))return null;let o=await this._getAppearance(e,t,a);if(null===o)return null;const{xref:c}=e,l=c.fetchIfRef(this.ref);if(!(l instanceof s.Dict))return null;const h=[0,0,this.data.rect[2]-this.data.rect[0],this.data.rect[3]-this.data.rect[1]],u={path:(0,r.stringToPDFString)(l.get("T")||""),value:i},d=c.getNewRef(),f=new s.Dict(c);f.set("N",d);const g=c.encrypt;let m=null,b=null;if(g){m=g.createCipherTransform(this.ref.num,this.ref.gen);b=g.createCipherTransform(d.num,d.gen);o=b.encryptString(o)}const encoder=e=>(0,r.isAscii)(e)?e:(0,r.stringToUTF16BEString)(e);l.set("V",Array.isArray(i)?i.map(encoder):encoder(i));l.set("AP",f);l.set("M",`D:${(0,r.getModificationDate)()}`);const y=new s.Dict(c);y.set("Length",o.length);y.set("Subtype",s.Name.get("Form"));y.set("Resources",this._getSaveFieldResources(c));y.set("BBox",h);const w=[`${this.ref.num} ${this.ref.gen} obj\n`];(0,p.writeDict)(l,w,m);w.push("\nendobj\n");const S=[`${d.num} ${d.gen} obj\n`];(0,p.writeDict)(y,S,b);S.push(" stream\n",o,"\nendstream\nendobj\n");return[{ref:this.ref,data:w.join(""),xfa:u},{ref:d,data:S.join(""),xfa:null}]}async _getAppearance(e,t,a){if(this.hasFieldFlag(r.AnnotationFieldFlag.PASSWORD))return null;const n=a?a.get(this.data.id):void 0;let s=n&&(n.formattedValue||n.value);if(void 0===s){if(!this._hasValueFromXFA||this.appearance)return null;s=this.data.fieldValue;if(!s)return""}(0,r.assert)("string"==typeof s,"Expected `value` to be a string.");s=s.trim();if(""===s)return"";let o=-1;this.data.multiLine&&(o=s.split(/\r\n|\r|\n/).length);const c=this.data.rect[3]-this.data.rect[1],l=this.data.rect[2]-this.data.rect[0];this._defaultAppearance||(this.data.defaultAppearanceData=(0,i.parseDefaultAppearance)(this._defaultAppearance="/Helvetica 0 Tf 0 g"));const h=await this._getFontData(e,t),[u,d]=this._computeFontSize(c-2,l-4,s,h,o);let f=h.descent;isNaN(f)&&(f=0);const g=2+Math.abs(f)*d,p=this.data.textAlignment;if(this.data.multiLine)return this._getMultilineAppearance(u,s,h,d,l,c,p,2,g);const m=h.encodeString(s).join("");if(this.data.comb)return this._getCombAppearance(u,h,m,l,2,g);if(0===p||p>2)return"/Tx BMC q BT "+u+` 1 0 0 1 2 ${g} Tm (${(0,r.escapeString)(m)}) Tj ET Q EMC`;return"/Tx BMC q BT "+u+` 1 0 0 1 0 0 Tm ${this._renderText(m,h,d,l,p,2,g)} ET Q EMC`}async _getFontData(e,t){const a=new f.OperatorList,r={font:null,clone(){return this}},{fontName:n,fontSize:i}=this.data.defaultAppearanceData;await e.handleSetFont(this._fieldResources.mergedResources,[n&&s.Name.get(n),i],null,a,t,r,null);return r.font}_getTextWidth(e,t){return t.charsToGlyphs(e).reduce(((e,t)=>e+t.width),0)/1e3}_computeFontSize(e,t,a,r,n){let{fontSize:s}=this.data.defaultAppearanceData;if(!s){const roundWithTwoDigits=e=>Math.floor(100*e)/100;if(-1===n){const n=this._getTextWidth(a,r);s=roundWithTwoDigits(Math.min(e/b,t/n))}else{const i=a.split(/\r\n?|\n/),o=[];for(const e of i){const t=r.encodeString(e).join(""),a=r.charsToGlyphs(t),n=r.getCharPositions(t);o.push({line:t,glyphs:a,positions:n})}const isTooBig=a=>{let n=0;for(const i of o){n+=this._splitLine(null,r,a,t,i).length*a;if(n>e)return!0}return!1};s=12;let c=s*b,l=Math.round(e/c);l=Math.max(l,n);for(;;){c=e/l;s=roundWithTwoDigits(c/b);if(!isTooBig(s))break;l++}}const{fontName:o,fontColor:c}=this.data.defaultAppearanceData;this._defaultAppearance=(0,i.createDefaultAppearance)({fontSize:s,fontName:o,fontColor:c})}return[this._defaultAppearance,s]}_renderText(e,t,a,n,i,s,o){let c;if(1===i){c=(n-this._getTextWidth(e,t)*a)/2}else if(2===i){c=n-this._getTextWidth(e,t)*a-s}else c=s;c=c.toFixed(2);return`${c} ${o=o.toFixed(2)} Td (${(0,r.escapeString)(e)}) Tj`}_getSaveFieldResources(e){const{localResources:t,appearanceResources:a,acroFormResources:r}=this._fieldResources,n=this.data.defaultAppearanceData&&this.data.defaultAppearanceData.fontName;if(!n)return t||s.Dict.empty;for(const e of[t,a])if(e instanceof s.Dict){const t=e.get("Font");if(t instanceof s.Dict&&t.has(n))return e}if(r instanceof s.Dict){const a=r.get("Font");if(a instanceof s.Dict&&a.has(n)){const r=new s.Dict(e);r.set(n,a.getRaw(n));const i=new s.Dict(e);i.set("Font",r);return s.Dict.merge({xref:e,dictArray:[i,t],mergeSubDicts:!0})}}return t||s.Dict.empty}getFieldObject(){return null}}class TextWidgetAnnotation extends WidgetAnnotation{constructor(e){super(e);this._hasText=!0;const t=e.dict;"string"!=typeof this.data.fieldValue&&(this.data.fieldValue="");let a=(0,n.getInheritableProperty)({dict:t,key:"Q"});(!Number.isInteger(a)||a<0||a>2)&&(a=null);this.data.textAlignment=a;let i=(0,n.getInheritableProperty)({dict:t,key:"MaxLen"});(!Number.isInteger(i)||i<0)&&(i=null);this.data.maxLen=i;this.data.multiLine=this.hasFieldFlag(r.AnnotationFieldFlag.MULTILINE);this.data.comb=this.hasFieldFlag(r.AnnotationFieldFlag.COMB)&&!this.hasFieldFlag(r.AnnotationFieldFlag.MULTILINE)&&!this.hasFieldFlag(r.AnnotationFieldFlag.PASSWORD)&&!this.hasFieldFlag(r.AnnotationFieldFlag.FILESELECT)&&null!==this.data.maxLen}_getCombAppearance(e,t,a,n,i,s){const o=(n/this.data.maxLen).toFixed(2),c=[],l=t.getCharPositions(a);for(const[e,t]of l)c.push(`(${(0,r.escapeString)(a.substring(e,t))}) Tj`);return"/Tx BMC q BT "+e+` 1 0 0 1 ${i} ${s} Tm ${c.join(` ${o} 0 Td `)} ET Q EMC`}_getMultilineAppearance(e,t,a,r,n,i,s,o,c){const l=t.split(/\r\n?|\n/),h=[],u=n-2*o;for(const e of l){const t=this._splitLine(e,a,r,u);for(const e of t){const t=0===h.length?o:0;h.push(this._renderText(e,a,r,n,s,t,-r))}}return"/Tx BMC q BT "+e+` 1 0 0 1 0 ${i} Tm ${h.join("\n")} ET Q EMC`}_splitLine(e,t,a,r,n={}){e=n.line||t.encodeString(e).join("");const i=n.glyphs||t.charsToGlyphs(e);if(i.length<=1)return[e];const s=n.positions||t.getCharPositions(e),o=a/1e3,c=[];let l=-1,h=-1,u=-1,d=0,f=0;for(let t=0,a=i.length;tr){c.push(e.substring(d,a));d=a;f=p;l=-1;u=-1}else{f+=p;l=a;h=n;u=t}else if(f+p>r)if(-1!==l){c.push(e.substring(d,h));d=h;t=u+1;l=-1;f=0}else{c.push(e.substring(d,a));d=a;f=p}else f+=p}d"Off"!==e));i.length=0;i.push("Off",e)}i.includes(this.data.fieldValue)||(this.data.fieldValue="Off");this.data.exportValue=i[1];this.checkedAppearance=a.get(this.data.exportValue)||null;this.uncheckedAppearance=a.get("Off")||null;this.checkedAppearance?this._streams.push(this.checkedAppearance):this._getDefaultCheckedAppearance(e,"check");this.uncheckedAppearance&&this._streams.push(this.uncheckedAppearance);this._fallbackFontDict=this.fallbackFontDict}_processRadioButton(e){this.data.fieldValue=this.data.buttonValue=null;const t=e.dict.get("Parent");if(t instanceof s.Dict){this.parent=e.dict.getRaw("Parent");const a=t.get("V");a instanceof s.Name&&(this.data.fieldValue=this._decodeFormValue(a))}const a=e.dict.get("AP");if(!(a instanceof s.Dict))return;const r=a.get("N");if(r instanceof s.Dict){for(const e of r.getKeys())if("Off"!==e){this.data.buttonValue=this._decodeFormValue(e);break}this.checkedAppearance=r.get(this.data.buttonValue)||null;this.uncheckedAppearance=r.get("Off")||null;this.checkedAppearance?this._streams.push(this.checkedAppearance):this._getDefaultCheckedAppearance(e,"disc");this.uncheckedAppearance&&this._streams.push(this.uncheckedAppearance);this._fallbackFontDict=this.fallbackFontDict}}_processPushButton(e){if(e.dict.has("A")||e.dict.has("AA")||this.data.alternativeText){this.data.isTooltipOnly=!e.dict.has("A")&&!e.dict.has("AA");l.Catalog.parseDestDictionary({destDict:e.dict,resultObj:this.data,docBaseUrl:e.pdfManager.docBaseUrl})}else(0,r.warn)("Push buttons without action dictionaries are not supported")}getFieldObject(){let e,t="button";if(this.data.checkBox){t="checkbox";e=this.data.exportValue}else if(this.data.radioButton){t="radiobutton";e=this.data.buttonValue}return{id:this.data.id,value:this.data.fieldValue||"Off",defaultValue:this.data.defaultFieldValue,exportValues:e,editable:!this.data.readOnly,name:this.data.fieldName,rect:this.data.rect,hidden:this.data.hidden,actions:this.data.actions,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,type:t}}get fallbackFontDict(){const e=new s.Dict;e.set("BaseFont",s.Name.get("ZapfDingbats"));e.set("Type",s.Name.get("FallbackType"));e.set("Subtype",s.Name.get("FallbackType"));e.set("Encoding",s.Name.get("ZapfDingbatsEncoding"));return(0,r.shadow)(this,"fallbackFontDict",e)}}class ChoiceWidgetAnnotation extends WidgetAnnotation{constructor(e){super(e);this.data.options=[];const t=(0,n.getInheritableProperty)({dict:e.dict,key:"Opt"});if(Array.isArray(t)){const a=e.xref;for(let e=0,r=t.length;e0?this.data.fieldValue[0]:null;return{id:this.data.id,value:t,defaultValue:this.data.defaultFieldValue,editable:!this.data.readOnly,name:this.data.fieldName,rect:this.data.rect,numItems:this.data.fieldValue.length,multipleSelection:this.data.multiSelect,hidden:this.data.hidden,actions:this.data.actions,items:this.data.options,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,type:e}}async _getAppearance(e,t,a){if(this.data.combo)return super._getAppearance(e,t,a);if(!a)return null;const r=a.get(this.data.id);let n=r&&r.value;if(void 0===n)return null;Array.isArray(n)||(n=[n]);const s=this.data.rect[3]-this.data.rect[1],o=this.data.rect[2]-this.data.rect[0],c=this.data.options.length,l=[];for(let e=0;ea){a=r;t=e}}[u,d]=this._computeFontSize(e,o-4,t,h,-1)}const f=d*b,g=(f-d)/2,p=Math.floor(s/f);let m;if(1===l.length){const e=l[0];m=e-e%p}else m=l.length?l[0]:0;const y=Math.min(m+p+1,c),w=["/Tx BMC q",`1 1 ${o} ${s} re W n`];if(l.length){w.push("0.600006 0.756866 0.854904 rg");for(const e of l)m<=e&&ee/255)):[0,0,0],i=t.get("CA");let s=null,o=t.getArray("IC");if(o){o=getRgbColor(o,null);s=o?Array.from(o).map((e=>e/255)):null}const c=s?i:null,l=this.borderStyle.width||1,h=2*l,u=[this.data.lineCoordinates[0]-h,this.data.lineCoordinates[1]-h,this.data.lineCoordinates[2]+h,this.data.lineCoordinates[3]+h];r.Util.intersect(this.rectangle,u)||(this.rectangle=u);this._setDefaultAppearance({xref:e.xref,extra:`${l} w`,strokeColor:n,fillColor:s,strokeAlpha:i,fillAlpha:c,pointsCallback:(e,t)=>{e.push(`${a[0]} ${a[1]} m`,`${a[2]} ${a[3]} l`,"S");return[t[0].x-l,t[1].x+l,t[3].y-l,t[1].y+l]}})}}}class SquareAnnotation extends MarkupAnnotation{constructor(e){super(e);this.data.annotationType=r.AnnotationType.SQUARE;if(!this.appearance){const t=this.color?Array.from(this.color).map((e=>e/255)):[0,0,0],a=e.dict.get("CA");let r=null,n=e.dict.getArray("IC");if(n){n=getRgbColor(n,null);r=n?Array.from(n).map((e=>e/255)):null}const i=r?a:null;if(0===this.borderStyle.width&&!r)return;this._setDefaultAppearance({xref:e.xref,extra:`${this.borderStyle.width} w`,strokeColor:t,fillColor:r,strokeAlpha:a,fillAlpha:i,pointsCallback:(e,t)=>{const a=t[2].x+this.borderStyle.width/2,n=t[2].y+this.borderStyle.width/2,i=t[3].x-t[2].x-this.borderStyle.width,s=t[1].y-t[3].y-this.borderStyle.width;e.push(`${a} ${n} ${i} ${s} re`);r?e.push("B"):e.push("S");return[t[0].x,t[1].x,t[3].y,t[1].y]}})}}}class CircleAnnotation extends MarkupAnnotation{constructor(e){super(e);this.data.annotationType=r.AnnotationType.CIRCLE;if(!this.appearance){const t=this.color?Array.from(this.color).map((e=>e/255)):[0,0,0],a=e.dict.get("CA");let r=null,n=e.dict.getArray("IC");if(n){n=getRgbColor(n,null);r=n?Array.from(n).map((e=>e/255)):null}const i=r?a:null;if(0===this.borderStyle.width&&!r)return;const s=4/3*Math.tan(Math.PI/8);this._setDefaultAppearance({xref:e.xref,extra:`${this.borderStyle.width} w`,strokeColor:t,fillColor:r,strokeAlpha:a,fillAlpha:i,pointsCallback:(e,t)=>{const a=t[0].x+this.borderStyle.width/2,n=t[0].y-this.borderStyle.width/2,i=t[3].x-this.borderStyle.width/2,o=t[3].y+this.borderStyle.width/2,c=a+(i-a)/2,l=n+(o-n)/2,h=(i-a)/2*s,u=(o-n)/2*s;e.push(`${c} ${o} m`,`${c+h} ${o} ${i} ${l+u} ${i} ${l} c`,`${i} ${l-u} ${c+h} ${n} ${c} ${n} c`,`${c-h} ${n} ${a} ${l-u} ${a} ${l} c`,`${a} ${l+u} ${c-h} ${o} ${c} ${o} c`,"h");r?e.push("B"):e.push("S");return[t[0].x,t[1].x,t[3].y,t[1].y]}})}}}class PolylineAnnotation extends MarkupAnnotation{constructor(e){super(e);const{dict:t}=e;this.data.annotationType=r.AnnotationType.POLYLINE;this.data.vertices=[];if(!(this instanceof PolygonAnnotation)){this.setLineEndings(t.getArray("LE"));this.data.lineEndings=this.lineEndings}const a=t.getArray("Vertices");if(Array.isArray(a)){for(let e=0,t=a.length;ee/255)):[0,0,0],n=t.get("CA"),i=this.borderStyle.width||1,s=2*i,o=[1/0,1/0,-1/0,-1/0];for(const e of this.data.vertices){o[0]=Math.min(o[0],e.x-s);o[1]=Math.min(o[1],e.y-s);o[2]=Math.max(o[2],e.x+s);o[3]=Math.max(o[3],e.y+s)}r.Util.intersect(this.rectangle,o)||(this.rectangle=o);this._setDefaultAppearance({xref:e.xref,extra:`${i} w`,strokeColor:a,strokeAlpha:n,pointsCallback:(e,t)=>{const a=this.data.vertices;for(let t=0,r=a.length;te/255)):[0,0,0],a=e.dict.get("CA"),n=this.borderStyle.width||1,i=2*n,s=[1/0,1/0,-1/0,-1/0];for(const e of this.data.inkLists)for(const t of e){s[0]=Math.min(s[0],t.x-i);s[1]=Math.min(s[1],t.y-i);s[2]=Math.max(s[2],t.x+i);s[3]=Math.max(s[3],t.y+i)}r.Util.intersect(this.rectangle,s)||(this.rectangle=s);this._setDefaultAppearance({xref:e.xref,extra:`${n} w`,strokeColor:t,strokeAlpha:a,pointsCallback:(e,t)=>{for(const t of this.data.inkLists){for(let a=0,r=t.length;ae/255)):[1,1,0],a=e.dict.get("CA");this._setDefaultAppearance({xref:e.xref,fillColor:t,blendMode:"Multiply",fillAlpha:a,pointsCallback:(e,t)=>{e.push(`${t[0].x} ${t[0].y} m`,`${t[1].x} ${t[1].y} l`,`${t[3].x} ${t[3].y} l`,`${t[2].x} ${t[2].y} l`,"f");return[t[0].x,t[1].x,t[3].y,t[1].y]}})}}else this.data.hasPopup=!1}}class UnderlineAnnotation extends MarkupAnnotation{constructor(e){super(e);this.data.annotationType=r.AnnotationType.UNDERLINE;if(this.data.quadPoints=getQuadPoints(e.dict,null)){if(!this.appearance){const t=this.color?Array.from(this.color).map((e=>e/255)):[0,0,0],a=e.dict.get("CA");this._setDefaultAppearance({xref:e.xref,extra:"[] 0 d 1 w",strokeColor:t,strokeAlpha:a,pointsCallback:(e,t)=>{e.push(`${t[2].x} ${t[2].y} m`,`${t[3].x} ${t[3].y} l`,"S");return[t[0].x,t[1].x,t[3].y,t[1].y]}})}}else this.data.hasPopup=!1}}class SquigglyAnnotation extends MarkupAnnotation{constructor(e){super(e);this.data.annotationType=r.AnnotationType.SQUIGGLY;if(this.data.quadPoints=getQuadPoints(e.dict,null)){if(!this.appearance){const t=this.color?Array.from(this.color).map((e=>e/255)):[0,0,0],a=e.dict.get("CA");this._setDefaultAppearance({xref:e.xref,extra:"[] 0 d 1 w",strokeColor:t,strokeAlpha:a,pointsCallback:(e,t)=>{const a=(t[0].y-t[2].y)/6;let r=a,n=t[2].x;const i=t[2].y,s=t[3].x;e.push(`${n} ${i+r} m`);do{n+=2;r=0===r?a:0;e.push(`${n} ${i+r} l`)}while(ne/255)):[0,0,0],a=e.dict.get("CA");this._setDefaultAppearance({xref:e.xref,extra:"[] 0 d 1 w",strokeColor:t,strokeAlpha:a,pointsCallback:(e,t)=>{e.push((t[0].x+t[2].x)/2+" "+(t[0].y+t[2].y)/2+" m",(t[1].x+t[3].x)/2+" "+(t[1].y+t[3].y)/2+" l","S");return[t[0].x,t[1].x,t[3].y,t[1].y]}})}}else this.data.hasPopup=!1}}class StampAnnotation extends MarkupAnnotation{constructor(e){super(e);this.data.annotationType=r.AnnotationType.STAMP}}class FileAttachmentAnnotation extends MarkupAnnotation{constructor(e){super(e);const t=new u.FileSpec(e.dict.get("FS"),e.xref);this.data.annotationType=r.AnnotationType.FILEATTACHMENT;this.data.file=t.serializable}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.createDefaultAppearance=function createDefaultAppearance({fontSize:e,fontName:t,fontColor:a}){let r;r=a.every((e=>0===e))?"0 g":Array.from(a).map((e=>(e/255).toFixed(2))).join(" ")+" rg";return`/${(0,i.escapePDFName)(t)} ${e} Tf ${r}`};t.parseDefaultAppearance=function parseDefaultAppearance(e){return new DefaultAppearanceEvaluator(e).parse()};var r=a(2),n=a(24),i=a(8),s=a(25),o=a(5),c=a(10);class DefaultAppearanceEvaluator extends s.EvaluatorPreprocessor{constructor(e){super(new c.StringStream(e))}parse(){const e={fn:0,args:[]},t={fontSize:0,fontName:"",fontColor:new Uint8ClampedArray(3)};try{for(;;){e.args.length=0;if(!this.read(e))break;if(0!==this.savedStatesDepth)continue;const{fn:a,args:i}=e;switch(0|a){case r.OPS.setFont:const[e,a]=i;e instanceof o.Name&&(t.fontName=e.name);"number"==typeof a&&a>0&&(t.fontSize=a);break;case r.OPS.setFillRGBColor:n.ColorSpace.singletons.rgb.getRgbItem(i,0,t.fontColor,0);break;case r.OPS.setFillGray:n.ColorSpace.singletons.gray.getRgbItem(i,0,t.fontColor,0);break;case r.OPS.setFillColorSpace:n.ColorSpace.singletons.cmyk.getRgbItem(i,0,t.fontColor,0)}}}catch(e){(0,r.warn)(`parseDefaultAppearance - ignoring errors: "${e}".`)}return t}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ColorSpace=void 0;var r=a(2),n=a(5),i=a(9),s=a(8);class ColorSpace{constructor(e,t){this.constructor===ColorSpace&&(0,r.unreachable)("Cannot initialize ColorSpace.");this.name=e;this.numComps=t}getRgb(e,t){const a=new Uint8ClampedArray(3);this.getRgbItem(e,t,a,0);return a}getRgbItem(e,t,a,n){(0,r.unreachable)("Should not call ColorSpace.getRgbItem")}getRgbBuffer(e,t,a,n,i,s,o){(0,r.unreachable)("Should not call ColorSpace.getRgbBuffer")}getOutputLength(e,t){(0,r.unreachable)("Should not call ColorSpace.getOutputLength")}isPassthrough(e){return!1}isDefaultDecode(e,t){return ColorSpace.isDefaultDecode(e,this.numComps)}fillRgb(e,t,a,r,n,i,s,o,c){const l=t*a;let h=null;const u=1<u&&"DeviceGray"!==this.name&&"DeviceRGB"!==this.name){const t=s<=8?new Uint8Array(u):new Uint16Array(u);for(let e=0;e=.99554525?1:adjustToRange(0,1,1.055*e**(1/2.4)-.055)}function adjustToRange(e,t,a){return Math.max(e,Math.min(t,a))}function decodeL(e){return e<0?-decodeL(-e):e>8?((e+16)/116)**3:.0011070564598794539*e}function convertToRgb(r,c,l,h,u,d){const f=adjustToRange(0,1,c[l]*d),g=adjustToRange(0,1,c[l+1]*d),p=adjustToRange(0,1,c[l+2]*d),m=1===f?1:f**r.GR,b=1===g?1:g**r.GG,y=1===p?1:p**r.GB,w=r.MXA*m+r.MXB*b+r.MXC*y,S=r.MYA*m+r.MYB*b+r.MYC*y,x=r.MZA*m+r.MZB*b+r.MZC*y,k=s;k[0]=w;k[1]=S;k[2]=x;const C=o;!function normalizeWhitePointToFlat(a,r,n){if(1===a[0]&&1===a[2]){n[0]=r[0];n[1]=r[1];n[2]=r[2];return}const s=n;matrixProduct(e,r,s);const o=i;!function convertToFlat(e,t,a){a[0]=1*t[0]/e[0];a[1]=1*t[1]/e[1];a[2]=1*t[2]/e[2]}(a,s,o);matrixProduct(t,o,n)}(r.whitePoint,k,C);const v=s;!function compensateBlackPoint(e,t,a){if(0===e[0]&&0===e[1]&&0===e[2]){a[0]=t[0];a[1]=t[1];a[2]=t[2];return}const r=decodeL(0),n=(1-r)/(1-decodeL(e[0])),i=1-n,s=(1-r)/(1-decodeL(e[1])),o=1-s,c=(1-r)/(1-decodeL(e[2])),l=1-c;a[0]=t[0]*n+i;a[1]=t[1]*s+o;a[2]=t[2]*c+l}(r.blackPoint,C,v);const F=o;!function normalizeWhitePointToD65(a,r,n){const s=n;matrixProduct(e,r,s);const o=i;!function convertToD65(e,t,a){a[0]=.95047*t[0]/e[0];a[1]=1*t[1]/e[1];a[2]=1.08883*t[2]/e[2]}(a,s,o);matrixProduct(t,o,n)}(n,v,F);const O=s;matrixProduct(a,F,O);h[u]=255*sRGBTransferFunction(O[0]);h[u+1]=255*sRGBTransferFunction(O[1]);h[u+2]=255*sRGBTransferFunction(O[2])}return class CalRGBCS extends ColorSpace{constructor(e,t,a,n){super("CalRGB",3);if(!e)throw new r.FormatError("WhitePoint missing - required for color space CalRGB");t=t||new Float32Array(3);a=a||new Float32Array([1,1,1]);n=n||new Float32Array([1,0,0,0,1,0,0,0,1]);const i=e[0],s=e[1],o=e[2];this.whitePoint=e;const c=t[0],l=t[1],h=t[2];this.blackPoint=t;this.GR=a[0];this.GG=a[1];this.GB=a[2];this.MXA=n[0];this.MYA=n[1];this.MZA=n[2];this.MXB=n[3];this.MYB=n[4];this.MZB=n[5];this.MXC=n[6];this.MYC=n[7];this.MZC=n[8];if(i<0||o<0||1!==s)throw new r.FormatError(`Invalid WhitePoint components for ${this.name}, no fallback available`);if(c<0||l<0||h<0){(0,r.info)(`Invalid BlackPoint for ${this.name} [${c}, ${l}, ${h}], falling back to default.`);this.blackPoint=new Float32Array(3)}if(this.GR<0||this.GG<0||this.GB<0){(0,r.info)(`Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ${this.name}, falling back to default.`);this.GR=this.GG=this.GB=1}}getRgbItem(e,t,a,r){convertToRgb(this,e,t,a,r,1)}getRgbBuffer(e,t,a,r,n,i,s){const o=1/((1<=6/29?e**3:108/841*(e-4/29);return t}function decode(e,t,a,r){return a+e*(r-a)/t}function convertToRgb(e,t,a,r,n,i){let s=t[a],o=t[a+1],c=t[a+2];if(!1!==r){s=decode(s,r,0,100);o=decode(o,r,e.amin,e.amax);c=decode(c,r,e.bmin,e.bmax)}o>e.amax?o=e.amax:oe.bmax?c=e.bmax:cthis.amax||this.bmin>this.bmax){(0,r.info)("Invalid Range, falling back to defaults");this.amin=-100;this.amax=100;this.bmin=-100;this.bmax=100}}getRgbItem(e,t,a,r){convertToRgb(this,e,t,!1,a,r)}getRgbBuffer(e,t,a,r,n,i,s){const o=(1<{Object.defineProperty(t,"__esModule",{value:!0});t.PartialEvaluator=t.EvaluatorPreprocessor=void 0;var r=a(2),n=a(26),i=a(5),s=a(44),o=a(18),c=a(19),l=a(47),h=a(21),u=a(56),d=a(12),f=a(48),g=a(57),p=a(27),m=a(59),b=a(10),y=a(9),w=a(60),S=a(24),x=a(29),k=a(20),C=a(8),v=a(51),F=a(61),O=a(62),T=a(63);const M=Object.freeze({maxImageSize:-1,disableFontFace:!1,ignoreErrors:!1,isEvalSupported:!0,fontExtraProperties:!1,useSystemFonts:!0,cMapUrl:null,standardFontDataUrl:null}),E=1,D=2,N=Promise.resolve();function normalizeBlendMode(e,t=!1){if(Array.isArray(e)){for(let t=0,a=e.length;t0&&e.args[0].count++}class TimeSlotManager{static get TIME_SLOT_DURATION_MS(){return(0,r.shadow)(this,"TIME_SLOT_DURATION_MS",20)}static get CHECK_TIME_EVERY(){return(0,r.shadow)(this,"CHECK_TIME_EVERY",100)}constructor(){this.reset()}check(){if(++this.checkedd){const e="Image exceeded maximum allowed size and was removed.";if(this.options.ignoreErrors){(0,r.warn)(e);return}throw new Error(e)}let f;c.has("OC")&&(f=await this.parseMarkedContentProps(c.get("OC"),e));let g,p;if(c.get("IM","ImageMask")||!1){const e=c.get("I","Interpolate"),a=h+7>>3,o=t.getBytes(a*u),d=c.getArray("D","Decode");if(this.parsingType3Font){g=T.PDFImage.createRawMask({imgArray:o,width:h,height:u,imageIsFromDecodeStream:t instanceof x.DecodeStream,inverseDecode:!!d&&d[0]>0,interpolate:e});g.cached=!!i;p=[g];n.addImageOps(r.OPS.paintImageMaskXObject,p,f);i&&s.set(i,l,{fn:r.OPS.paintImageMaskXObject,args:p,optionalContent:f});return}g=T.PDFImage.createMask({imgArray:o,width:h,height:u,imageIsFromDecodeStream:t instanceof x.DecodeStream,inverseDecode:!!d&&d[0]>0,interpolate:e});if(g.isSingleOpaquePixel){n.addImageOps(r.OPS.paintSolidColorImageMask,[],f);i&&s.set(i,l,{fn:r.OPS.paintSolidColorImageMask,args:[],optionalContent:f});return}const m=`mask_${this.idFactory.createObjId()}`;n.addDependency(m);this._sendImgData(m,g);p=[{data:m,width:g.width,height:g.height,interpolate:g.interpolate,count:1}];n.addImageOps(r.OPS.paintImageMaskXObject,p,f);i&&s.set(i,l,{fn:r.OPS.paintImageMaskXObject,args:p,optionalContent:f});return}const m=c.get("SM","SMask")||!1,b=c.get("Mask")||!1;if(a&&!m&&!b&&h+u<200){const i=new T.PDFImage({xref:this.xref,res:e,image:t,isInline:a,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:o});g=i.createImageData(!0);n.addImageOps(r.OPS.paintInlineImageXObject,[g],f);return}let y=`img_${this.idFactory.createObjId()}`,w=!1;if(this.parsingType3Font)y=`${this.idFactory.getDocId()}_type3_${y}`;else if(l){w=this.globalImageCache.shouldCache(l,this.pageIndex);w&&(y=`${this.idFactory.getDocId()}_${y}`)}n.addDependency(y);p=[y,h,u];T.PDFImage.buildImage({xref:this.xref,res:e,image:t,isInline:a,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:o}).then((e=>{g=e.createImageData(!1);i&&l&&w&&this.globalImageCache.addByteSize(l,g.data.length);return this._sendImgData(y,g,w)})).catch((e=>{(0,r.warn)(`Unable to decode image "${y}": "${e}".`);return this._sendImgData(y,null,w)}));n.addImageOps(r.OPS.paintImageXObject,p,f);if(i){s.set(i,l,{fn:r.OPS.paintImageXObject,args:p,optionalContent:f});if(l){(0,r.assert)(!a,"Cannot cache an inline image globally.");this.globalImageCache.addPageIndex(l,this.pageIndex);w&&this.globalImageCache.setData(l,{objId:y,fn:r.OPS.paintImageXObject,args:p,optionalContent:f,byteSize:0})}}}handleSMask(e,t,a,r,n,i){const s=e.get("G"),o={subtype:e.get("S").name,backdrop:e.get("BC")},c=e.get("TR");if((0,g.isPDFFunction)(c)){const e=this._pdfFunctionFactory.create(c),t=new Uint8Array(256),a=new Float32Array(1);for(let r=0;r<256;r++){a[0]=r/255;e(a,0,a,0);t[r]=255*a[0]|0}o.transferMap=t}return this.buildFormXObject(t,s,o,a,r,n.state.clone(),i)}handleTransferFunction(e){let t;if(Array.isArray(e))t=e;else{if(!(0,g.isPDFFunction)(e))return null;t=[e]}const a=[];let r=0,n=0;for(const e of t){const t=this.xref.fetchIfRef(e);r++;if((0,i.isName)(t,"Identity")){a.push(null);continue}if(!(0,g.isPDFFunction)(t))return null;const s=this._pdfFunctionFactory.create(t),o=new Uint8Array(256),c=new Float32Array(1);for(let e=0;e<256;e++){c[0]=e/255;s(c,0,c,0);o[e]=255*c[0]|0}a.push(o);n++}return 1!==r&&4!==r||0===n?null:a}handleTilingType(e,t,a,n,s,o,c,l){const h=new O.OperatorList,d=i.Dict.merge({xref:this.xref,dictArray:[s.get("Resources"),a]});return this.getOperatorList({stream:n,task:c,resources:d,operatorList:h}).then((function(){const a=h.getIR(),r=(0,u.getTilingPatternIR)(a,s,t);o.addDependencies(h.dependencies);o.addOp(e,r);s.objId&&l.set(null,s.objId,{operatorListIR:a,dict:s})})).catch((e=>{if(!(e instanceof r.AbortException)){if(!this.options.ignoreErrors)throw e;this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorTilingPattern});(0,r.warn)(`handleTilingType - ignoring pattern: "${e}".`)}}))}handleSetFont(e,t,a,n,o,c,l=null,h=null){const u=t&&t[0]instanceof i.Name?t[0].name:null;return this.loadFont(u,a,e,l,h).then((t=>t.font.isType3Font?t.loadType3Data(this,e,o).then((function(){n.addDependencies(t.type3Dependencies);return t})).catch((e=>{this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorFontLoadType3});return new TranslatedFont({loadedName:"g_font_error",font:new s.ErrorFont(`Type3 font load error: ${e}`),dict:t.font,evaluatorOptions:this.options})})):t)).then((e=>{c.font=e.font;e.send(this.handler);return e.loadedName}))}handleText(e,t){const a=t.font,n=a.charsToGlyphs(e);if(a.data){(!!(t.textRenderingMode&r.TextRenderingMode.ADD_TO_PATH_FLAG)||"Pattern"===t.fillColorSpace.name||a.disableFontFace||this.options.disableFontFace)&&PartialEvaluator.buildFontPaths(a,n,this.handler,this.options)}return n}ensureStateFont(e){if(e.font)return;const t=new r.FormatError("Missing setFont (Tf) operator before text rendering operator.");if(!this.options.ignoreErrors)throw t;this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorFontState});(0,r.warn)(`ensureStateFont: "${t}".`)}async setGState({resources:e,gState:t,operatorList:a,cacheKey:n,task:s,stateManager:o,localGStateCache:c,localColorSpaceCache:l}){const h=t.objId;let u=!0;const d=[],f=t.getKeys();let g=Promise.resolve();for(let n=0,c=f.length;nthis.handleSetFont(e,null,h[0],a,s,o.state).then((function(e){a.addDependency(e);d.push([c,[e,h[1]]])}))));break;case"BM":d.push([c,normalizeBlendMode(h)]);break;case"SMask":if((0,i.isName)(h,"None")){d.push([c,!1]);break}if(h instanceof i.Dict){u=!1;g=g.then((()=>this.handleSMask(h,e,a,s,o,l)));d.push([c,!0])}else(0,r.warn)("Unsupported SMask type");break;case"TR":const t=this.handleTransferFunction(h);d.push([c,t]);break;case"OP":case"op":case"OPM":case"BG":case"BG2":case"UCR":case"UCR2":case"TR2":case"HT":case"SM":case"SA":case"AIS":case"TK":(0,r.info)("graphic state operator "+c);break;default:(0,r.info)("Unknown graphic state operator "+c)}}return g.then((function(){d.length>0&&a.addOp(r.OPS.setGState,[d]);u&&c.set(n,h,d)}))}loadFont(e,t,a,n=null,c=null){const errorFont=async()=>new TranslatedFont({loadedName:"g_font_error",font:new s.ErrorFont(`Font "${e}" is not available.`),dict:t,evaluatorOptions:this.options}),l=this.xref;let h;if(t){if(!(t instanceof i.Ref))throw new r.FormatError('The "font" object should be a reference.');h=t}else{const t=a.get("Font");t&&(h=t.getRaw(e))}if(!h){const a=`Font "${e||t&&t.toString()}" is not available`;if(!this.options.ignoreErrors&&!this.parsingType3Font){(0,r.warn)(`${a}.`);return errorFont()}this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorFontMissing});(0,r.warn)(`${a} -- attempting to fallback to a default font.`);h=n||PartialEvaluator.fallbackFontDict}if(this.parsingType3Font&&this.type3FontRefs.has(h))return errorFont();if(this.fontCache.has(h))return this.fontCache.get(h);if(!((t=l.fetchIfRef(h))instanceof i.Dict))return errorFont();if(t.cacheKey&&this.fontCache.has(t.cacheKey))return this.fontCache.get(t.cacheKey);const u=(0,r.createPromiseCapability)();let d;try{d=this.preEvaluateFont(t);d.cssFontInfo=c}catch(e){(0,r.warn)(`loadFont - preEvaluateFont failed: "${e}".`);return errorFont()}const{descriptor:f,hash:g}=d,p=h instanceof i.Ref;let m;p&&(m=`f${h.toString()}`);if(g&&f instanceof i.Dict){f.fontAliases||(f.fontAliases=Object.create(null));const e=f.fontAliases;if(e[g]){const t=e[g].aliasRef;if(p&&t&&this.fontCache.has(t)){this.fontCache.putAlias(h,t);return this.fontCache.get(h)}}else e[g]={fontID:this.idFactory.createFontId()};p&&(e[g].aliasRef=h);m=e[g].fontID}if(p)this.fontCache.put(h,u.promise);else{m||(m=this.idFactory.createFontId());t.cacheKey=`cacheKey_${m}`;this.fontCache.put(t.cacheKey,u.promise)}(0,r.assert)(m&&m.startsWith("f"),'The "fontID" must be (correctly) defined.');t.loadedName=`${this.idFactory.getDocId()}_${m}`;this.translateFont(d).then((e=>{void 0!==e.fontType&&l.stats.addFontType(e.fontType);u.resolve(new TranslatedFont({loadedName:t.loadedName,font:e,dict:t,evaluatorOptions:this.options}))})).catch((e=>{this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorFontTranslate});(0,r.warn)(`loadFont - translateFont failed: "${e}".`);try{const e=f&&f.get("FontFile3"),t=e&&e.get("Subtype"),a=(0,o.getFontType)(d.type,t&&t.name);void 0!==a&&l.stats.addFontType(a)}catch(e){}u.resolve(new TranslatedFont({loadedName:t.loadedName,font:new s.ErrorFont(e instanceof Error?e.message:e),dict:t,evaluatorOptions:this.options}))}));return u.promise}buildPath(e,t,a,n=!1){const i=e.length-1;a||(a=[]);let s;if(i<0||e.fnArray[i]!==r.OPS.constructPath){if(n){(0,r.warn)(`Encountered path operator "${t}" inside of a text object.`);e.addOp(r.OPS.save,null)}s=[1/0,-1/0,1/0,-1/0];e.addOp(r.OPS.constructPath,[[t],a,s]);n&&e.addOp(r.OPS.restore,null)}else{const r=e.argsArray[i];r[0].push(t);Array.prototype.push.apply(r[1],a);s=r[2]}switch(t){case r.OPS.rectangle:s[0]=Math.min(s[0],a[0],a[0]+a[2]);s[1]=Math.max(s[1],a[0],a[0]+a[2]);s[2]=Math.min(s[2],a[1],a[1]+a[3]);s[3]=Math.max(s[3],a[1],a[1]+a[3]);break;case r.OPS.moveTo:case r.OPS.lineTo:s[0]=Math.min(s[0],a[0]);s[1]=Math.max(s[1],a[0]);s[2]=Math.min(s[2],a[1]);s[3]=Math.max(s[3],a[1])}}parseColorSpace({cs:e,resources:t,localColorSpaceCache:a}){return S.ColorSpace.parseAsync({cs:e,xref:this.xref,resources:t,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:a}).catch((e=>{if(e instanceof r.AbortException)return null;if(this.options.ignoreErrors){this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorColorSpace});(0,r.warn)(`parseColorSpace - ignoring ColorSpace: "${e}".`);return null}throw e}))}parseShading({shading:e,resources:t,localColorSpaceCache:a,localShadingPatternCache:r}){let n=r.get(e);if(!n){const i=u.Pattern.parseShading(e,this.xref,t,this.handler,this._pdfFunctionFactory,a).getIR();n=`pattern_${this.idFactory.createObjId()}`;r.set(e,n);this.handler.send("obj",[n,this.pageIndex,"Pattern",i])}return n}handleColorN(e,t,a,n,s,o,c,l,h,d){const f=a.pop();if(f instanceof i.Name){const g=s.getRaw(f.name),p=g instanceof i.Ref&&h.getByRef(g);if(p)try{const r=n.base?n.base.getRgb(a,0):null,i=(0,u.getTilingPatternIR)(p.operatorListIR,p.dict,r);e.addOp(t,i);return}catch(e){}const m=this.xref.fetchIfRef(g);if(m){const i=m instanceof y.BaseStream?m.dict:m,s=i.get("PatternType");if(s===E){const r=n.base?n.base.getRgb(a,0):null;return this.handleTilingType(t,r,o,m,i,e,c,h)}if(s===D){const a=i.get("Shading"),r=i.getArray("Matrix"),n=this.parseShading({shading:a,resources:o,localColorSpaceCache:l,localShadingPatternCache:d});e.addOp(t,["Shading",n,r]);return}throw new r.FormatError(`Unknown PatternType: ${s}`)}}throw new r.FormatError(`Unknown PatternName: ${f}`)}_parseVisibilityExpression(e,t,a){if(++t>10){(0,r.warn)("Visibility expression is too deeply nested");return}const n=e.length,s=this.xref.fetchIfRef(e[0]);if(!(n<2)&&s instanceof i.Name){switch(s.name){case"And":case"Or":case"Not":a.push(s.name);break;default:(0,r.warn)(`Invalid operator ${s.name} in visibility expression`);return}for(let r=1;r0)return{type:"OCMD",expression:t}}const t=a.get("OCGs");if(Array.isArray(t)||t instanceof i.Dict){const e=[];if(Array.isArray(t))for(const a of t)e.push(a.toString());else e.push(t.objId);return{type:n,ids:e,policy:a.get("P")instanceof i.Name?a.get("P").name:null,expression:null}}if(t instanceof i.Ref)return{type:n,id:t.toString()}}return null}getOperatorList({stream:e,task:t,resources:a,operatorList:n,initialState:s=null,fallbackFontDict:o=null}){a=a||i.Dict.empty;s=s||new EvalState;if(!n)throw new Error('getOperatorList: missing "operatorList" parameter');const c=this,l=this.xref;let h=!1;const u=new m.LocalImageCache,d=new m.LocalColorSpaceCache,f=new m.LocalGStateCache,g=new m.LocalTilingPatternCache,p=new Map,b=a.get("XObject")||i.Dict.empty,w=a.get("Pattern")||i.Dict.empty,x=new StateManager(s),k=new EvaluatorPreprocessor(e,l,x),C=new TimeSlotManager;function closePendingRestoreOPS(e){for(let e=0,t=k.savedStatesDepth;e0&&n.addOp(r.OPS.setGState,[t]);e=null;continue}}next(new Promise((function(e,s){if(!E)throw new r.FormatError("GState must be referred to by name.");const o=a.get("ExtGState");if(!(o instanceof i.Dict))throw new r.FormatError("ExtGState should be a dictionary.");const l=o.get(M);if(!(l instanceof i.Dict))throw new r.FormatError("GState should be a dictionary.");c.setGState({resources:a,gState:l,operatorList:n,cacheKey:M,task:t,stateManager:x,localGStateCache:f,localColorSpaceCache:d}).then(e,s)})).catch((function(e){if(!(e instanceof r.AbortException)){if(!c.options.ignoreErrors)throw e;c.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorExtGState});(0,r.warn)(`getOperatorList - ignoring ExtGState: "${e}".`)}})));return;case r.OPS.moveTo:case r.OPS.lineTo:case r.OPS.curveTo:case r.OPS.curveTo2:case r.OPS.curveTo3:case r.OPS.closePath:case r.OPS.rectangle:c.buildPath(n,s,e,h);continue;case r.OPS.markPoint:case r.OPS.markPointProps:case r.OPS.beginCompat:case r.OPS.endCompat:continue;case r.OPS.beginMarkedContentProps:if(!(e[0]instanceof i.Name)){(0,r.warn)(`Expected name for beginMarkedContentProps arg0=${e[0]}`);continue}if("OC"===e[0].name){next(c.parseMarkedContentProps(e[1],a).then((e=>{n.addOp(r.OPS.beginMarkedContentProps,["OC",e])})).catch((e=>{if(!(e instanceof r.AbortException)){if(!c.options.ignoreErrors)throw e;c.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorMarkedContent});(0,r.warn)(`getOperatorList - ignoring beginMarkedContentProps: "${e}".`)}})));return}e=[e[0].name,e[1]instanceof i.Dict?e[1].get("MCID"):null];break;case r.OPS.beginMarkedContent:case r.OPS.endMarkedContent:default:if(null!==e){for(F=0,O=e.length;F{if(!(e instanceof r.AbortException)){if(!this.options.ignoreErrors)throw e;this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorOperatorList});(0,r.warn)(`getOperatorList - ignoring errors during "${t.name}" task: "${e}".`);closePendingRestoreOPS()}}))}getTextContent({stream:e,task:t,resources:a,stateManager:n=null,combineTextItems:s=!1,includeMarkedContent:o=!1,sink:c,seenStyles:l=new Set,viewBox:u}){a=a||i.Dict.empty;n=n||new StateManager(new TextState);const d=(0,h.getNormalizedUnicodes)(),f={items:[],styles:Object.create(null)},g={initialized:!1,str:[],totalWidth:0,totalHeight:0,width:0,height:0,vertical:!1,prevTransform:null,textAdvanceScale:0,spaceInFlowMin:0,spaceInFlowMax:0,trackingSpaceMin:1/0,negativeSpaceMax:-1/0,notASpace:-1/0,transform:null,fontName:null,hasEOL:!1},p=[" "," "];let b=0;function saveLastChar(e){const t=(b+1)%2,a=" "!==p[b]&&" "===p[t];p[b]=e;b=t;return a}function resetLastChars(){p[0]=p[1]=" ";b=0}const S=this,x=this.xref,k=[];let C=null;const v=new m.LocalImageCache,F=new m.LocalGStateCache,O=new EvaluatorPreprocessor(e,x,n);let T;function getCurrentTextTransform(){const e=T.font,t=[T.fontSize*T.textHScale,0,0,T.fontSize,0,T.textRise];if(e.isType3Font&&(T.fontSize<=1||e.isCharBBox)&&!(0,r.isArrayEqual)(T.fontMatrix,r.FONT_IDENTITY_MATRIX)){const a=e.bbox[3]-e.bbox[1];a>0&&(t[3]*=a*T.fontMatrix[3])}return r.Util.transform(T.ctm,r.Util.transform(T.textMatrix,t))}function ensureTextContentItem(){if(g.initialized)return g;const e=T.font,t=e.loadedName;if(!l.has(t)){l.add(t);f.styles[t]={fontFamily:e.fallbackName,ascent:e.ascent,descent:e.descent,vertical:e.vertical}}g.fontName=t;const a=g.transform=getCurrentTextTransform();if(e.vertical){g.width=g.totalWidth=Math.hypot(a[0],a[1]);g.height=g.totalHeight=0;g.vertical=!0}else{g.width=g.totalWidth=0;g.height=g.totalHeight=Math.hypot(a[2],a[3]);g.vertical=!1}const r=Math.hypot(T.textLineMatrix[0],T.textLineMatrix[1]),n=Math.hypot(T.ctm[0],T.ctm[1]);g.textAdvanceScale=n*r;g.trackingSpaceMin=.1*T.fontSize;g.notASpace=.03*T.fontSize;g.negativeSpaceMax=-.2*T.fontSize;g.spaceInFlowMin=.1*T.fontSize;g.spaceInFlowMax=.6*T.fontSize;g.hasEOL=!1;g.initialized=!0;return g}function updateAdvanceScale(){if(!g.initialized)return;const e=Math.hypot(T.textLineMatrix[0],T.textLineMatrix[1]),t=Math.hypot(T.ctm[0],T.ctm[1])*e;if(t!==g.textAdvanceScale){if(g.vertical){g.totalHeight+=g.height*g.textAdvanceScale;g.height=0}else{g.totalWidth+=g.width*g.textAdvanceScale;g.width=0}g.textAdvanceScale=t}}function handleSetFont(e,n){return S.loadFont(e,n,a).then((function(e){return e.font.isType3Font?e.loadType3Data(S,a,t).catch((function(){})).then((function(){return e})):e})).then((function(e){T.font=e.font;T.fontMatrix=e.font.fontMatrix||r.FONT_IDENTITY_MATRIX}))}function applyInverseRotation(e,t,a){const r=Math.hypot(a[0],a[1]);return[(a[0]*e+a[1]*t)/r,(a[2]*e+a[3]*t)/r]}function compareWithLastPosition(){const e=getCurrentTextTransform();let t=e[4],a=e[5];const r=t-u[0],n=a-u[1];if(r<0||r>u[2]||n<0||n>u[3])return!1;if(!s||!T.font||!g.prevTransform)return!0;let i=g.prevTransform[4],o=g.prevTransform[5];if(i===t&&o===a)return!0;let c=-1;e[0]&&0===e[1]&&0===e[2]?c=e[0]>0?0:180:e[1]&&0===e[0]&&0===e[3]&&(c=e[1]>0?90:270);switch(c){case 0:break;case 90:[t,a]=[a,t];[i,o]=[o,i];break;case 180:[t,a,i,o]=[-t,-a,-i,-o];break;case 270:[t,a]=[-a,-t];[i,o]=[-o,-i];break;default:[t,a]=applyInverseRotation(t,a,e);[i,o]=applyInverseRotation(i,o,g.prevTransform)}if(T.font.vertical){const e=(o-a)/g.textAdvanceScale,r=t-i,n=Math.sign(g.height);if(e.5*g.width){appendEOL();return!0}resetLastChars();flushTextContentItem();return!0}if(Math.abs(r)>g.width){appendEOL();return!0}e<=n*g.notASpace&&resetLastChars();if(e<=n*g.trackingSpaceMin)g.height+=e;else if(!addFakeSpaces(e,g.prevTransform,n))if(0===g.str.length){resetLastChars();f.items.push({str:" ",dir:"ltr",width:0,height:Math.abs(e),transform:g.prevTransform,fontName:g.fontName,hasEOL:!1})}else g.height+=e;return!0}const l=(t-i)/g.textAdvanceScale,h=a-o,d=Math.sign(g.width);if(l.5*g.height){appendEOL();return!0}resetLastChars();flushTextContentItem();return!0}if(Math.abs(h)>g.height){appendEOL();return!0}l<=d*g.notASpace&&resetLastChars();if(l<=d*g.trackingSpaceMin)g.width+=l;else if(!addFakeSpaces(l,g.prevTransform,d))if(0===g.str.length){resetLastChars();f.items.push({str:" ",dir:"ltr",width:Math.abs(l),height:0,transform:g.prevTransform,fontName:g.fontName,hasEOL:!1})}else g.width+=l;return!0}function buildTextContentItem({chars:e,extraSpacing:t}){const a=T.font;if(!e){const e=T.charSpacing+t;e&&(a.vertical?T.translateTextMatrix(0,-e):T.translateTextMatrix(e*T.textHScale,0));return}const r=a.charsToGlyphs(e),n=T.fontMatrix[0]*T.fontSize;for(let e=0,i=r.length;e0){const e=k.join("");k.length=0;buildTextContentItem({chars:e,extraSpacing:0})}break;case r.OPS.showText:if(!n.state.font){S.ensureStateFont(n.state);continue}buildTextContentItem({chars:p[0],extraSpacing:0});break;case r.OPS.nextLineShowText:if(!n.state.font){S.ensureStateFont(n.state);continue}T.carriageReturn();buildTextContentItem({chars:p[0],extraSpacing:0});break;case r.OPS.nextLineSetSpacingShowText:if(!n.state.font){S.ensureStateFont(n.state);continue}T.wordSpacing=p[0];T.charSpacing=p[1];T.carriageReturn();buildTextContentItem({chars:p[2],extraSpacing:0});break;case r.OPS.paintXObject:flushTextContentItem();C||(C=a.get("XObject")||i.Dict.empty);var w=p[0]instanceof i.Name,E=p[0].name;if(w&&v.getByName(E))break;next(new Promise((function(e,h){if(!w)throw new r.FormatError("XObject must be referred to by name.");let d=C.getRaw(E);if(d instanceof i.Ref){if(v.getByRef(d)){e();return}if(S.globalImageCache.getData(d,S.pageIndex)){e();return}d=x.fetch(d)}if(!(d instanceof y.BaseStream))throw new r.FormatError("XObject should be a stream");const f=d.dict.get("Subtype");if(!(f instanceof i.Name))throw new r.FormatError("XObject should have a Name subtype");if("Form"!==f.name){v.set(E,d.dict.objId,!0);e();return}const g=n.state.clone(),p=new StateManager(g),m=d.dict.getArray("Matrix");Array.isArray(m)&&6===m.length&&p.transform(m);enqueueChunk();const b={enqueueInvoked:!1,enqueue(e,t){this.enqueueInvoked=!0;c.enqueue(e,t)},get desiredSize(){return c.desiredSize},get ready(){return c.ready}};S.getTextContent({stream:d,task:t,resources:d.dict.get("Resources")||a,stateManager:p,combineTextItems:s,includeMarkedContent:o,sink:b,seenStyles:l,viewBox:u}).then((function(){b.enqueueInvoked||v.set(E,d.dict.objId,!0);e()}),h)})).catch((function(e){if(!(e instanceof r.AbortException)){if(!S.options.ignoreErrors)throw e;(0,r.warn)(`getTextContent - ignoring XObject: "${e}".`)}})));return;case r.OPS.setGState:w=p[0]instanceof i.Name;E=p[0].name;if(w&&F.getByName(E))break;next(new Promise((function(e,t){if(!w)throw new r.FormatError("GState must be referred to by name.");const n=a.get("ExtGState");if(!(n instanceof i.Dict))throw new r.FormatError("ExtGState should be a dictionary.");const s=n.get(E);if(!(s instanceof i.Dict))throw new r.FormatError("GState should be a dictionary.");const o=s.get("Font");if(o){flushTextContentItem();T.fontName=null;T.fontSize=o[1];handleSetFont(null,o[0]).then(e,t)}else{F.set(E,s.objId,!0);e()}})).catch((function(e){if(!(e instanceof r.AbortException)){if(!S.options.ignoreErrors)throw e;(0,r.warn)(`getTextContent - ignoring ExtGState: "${e}".`)}})));return;case r.OPS.beginMarkedContent:o&&f.items.push({type:"beginMarkedContent",tag:p[0]instanceof i.Name?p[0].name:null});break;case r.OPS.beginMarkedContentProps:if(o){flushTextContentItem();let e=null;p[1]instanceof i.Dict&&(e=p[1].get("MCID"));f.items.push({type:"beginMarkedContentProps",id:Number.isInteger(e)?`${S.idFactory.getPageObjId()}_mcid${e}`:null,tag:p[0]instanceof i.Name?p[0].name:null})}break;case r.OPS.endMarkedContent:if(o){flushTextContentItem();f.items.push({type:"endMarkedContent"})}}if(f.items.length>=c.desiredSize){g=!0;break}}if(g)next(N);else{flushTextContentItem();enqueueChunk();e()}})).catch((e=>{if(!(e instanceof r.AbortException)){if(!this.options.ignoreErrors)throw e;(0,r.warn)(`getTextContent - ignoring errors during "${t.name}" task: "${e}".`);flushTextContentItem();enqueueChunk()}}))}extractDataStructures(e,t,a){const n=this.xref;let s;const l=this.readToUnicode(a.toUnicode||e.get("ToUnicode")||t.get("ToUnicode"));if(a.composite){const t=e.get("CIDSystemInfo");t instanceof i.Dict&&(a.cidSystemInfo={registry:(0,r.stringToPDFString)(t.get("Registry")),ordering:(0,r.stringToPDFString)(t.get("Ordering")),supplement:t.get("Supplement")});const n=e.get("CIDToGIDMap");n instanceof y.BaseStream&&(s=n.getBytes())}const h=[];let u,d=null;if(e.has("Encoding")){u=e.get("Encoding");if(u instanceof i.Dict){d=u.get("BaseEncoding");d=d instanceof i.Name?d.name:null;if(u.has("Differences")){const e=u.get("Differences");let t=0;for(let a=0,s=e.length;a0;a.dict=e;return l.then((e=>{a.toUnicode=e;return this.buildToUnicode(a)})).then((e=>{a.toUnicode=e;s&&(a.cidToGidMap=this.readCidToGidMap(s,e));return a}))}_simpleFontToUnicode(e,t=!1){(0,r.assert)(!e.composite,"Must be a simple font.");const a=[],n=e.defaultEncoding.slice(),i=e.baseEncodingName,s=e.differences;for(const e in s){const t=s[e];".notdef"!==t&&(n[e]=t)}const o=(0,k.getGlyphsUnicode)();for(const r in n){let s=n[r];if(""!==s)if(void 0!==o[s])a[r]=String.fromCharCode(o[s]);else{let n=0;switch(s[0]){case"G":3===s.length&&(n=parseInt(s.substring(1),16));break;case"g":5===s.length&&(n=parseInt(s.substring(1),16));break;case"C":case"c":if(s.length>=3&&s.length<=4){const a=s.substring(1);if(t){n=parseInt(a,16);break}n=+a;if(Number.isNaN(n)&&Number.isInteger(parseInt(a,16)))return this._simpleFontToUnicode(e,!0)}break;default:const a=(0,h.getUnicodeForGlyph)(s,o);-1!==a&&(n=a)}if(n>0&&n<=1114111&&Number.isInteger(n)){if(i&&n===+r){const e=(0,c.getEncoding)(i);if(e&&(s=e[r])){a[r]=String.fromCharCode(o[s]);continue}}a[r]=String.fromCodePoint(n)}}}return a}async buildToUnicode(e){e.hasIncludedToUnicodeMap=!!e.toUnicode&&e.toUnicode.length>0;if(e.hasIncludedToUnicodeMap){!e.composite&&e.hasEncoding&&(e.fallbackToUnicode=this._simpleFontToUnicode(e));return e.toUnicode}if(!e.composite)return new f.ToUnicodeMap(this._simpleFontToUnicode(e));if(e.composite&&(e.cMap.builtInCMap&&!(e.cMap instanceof n.IdentityCMap)||"Adobe"===e.cidSystemInfo.registry&&("GB1"===e.cidSystemInfo.ordering||"CNS1"===e.cidSystemInfo.ordering||"Japan1"===e.cidSystemInfo.ordering||"Korea1"===e.cidSystemInfo.ordering))){const{registry:t,ordering:a}=e.cidSystemInfo,s=i.Name.get(`${t}-${a}-UCS2`),o=await n.CMapFactory.create({encoding:s,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}),c=[];e.cMap.forEach((function(e,t){if(t>65535)throw new r.FormatError("Max size of CID is 65,535");const a=o.lookup(t);a&&(c[e]=String.fromCharCode((a.charCodeAt(0)<<8)+a.charCodeAt(1)))}));return new f.ToUnicodeMap(c)}return new f.IdentityToUnicodeMap(e.firstChar,e.lastChar)}readToUnicode(e){return e?e instanceof i.Name?n.CMapFactory.create({encoding:e,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}).then((function(e){return e instanceof n.IdentityCMap?new f.IdentityToUnicodeMap(0,65535):new f.ToUnicodeMap(e.getMap())})):e instanceof y.BaseStream?n.CMapFactory.create({encoding:e,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}).then((function(e){if(e instanceof n.IdentityCMap)return new f.IdentityToUnicodeMap(0,65535);const t=new Array(e.length);e.forEach((function(e,a){if("number"==typeof a){t[e]=String.fromCodePoint(a);return}const r=[];for(let e=0;e{if(e instanceof r.AbortException)return null;if(this.options.ignoreErrors){this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorFontToUnicode});(0,r.warn)(`readToUnicode - ignoring ToUnicode data: "${e}".`);return null}throw e})):Promise.resolve(null):Promise.resolve(null)}readCidToGidMap(e,t){const a=[];for(let r=0,n=e.length;r>1;(0!==n||t.has(i))&&(a[i]=n)}return a}extractWidths(e,t,a){const r=this.xref;let n=[],s=0;const c=[];let l,h,u,d,f,g,p,m;if(a.composite){s=e.has("DW")?e.get("DW"):1e3;m=e.get("W");if(m)for(h=0,u=m.length;h{if(p){const e=[];let a=u;for(let t=0,r=p.length;t{this.extractWidths(t,e,a);return new s.Font(v.name,w,a)}))}static buildFontPaths(e,t,a,n){function buildPath(t){const i=`${e.loadedName}_path_${t}`;try{if(e.renderer.hasBuiltPath(t))return;a.send("commonobj",[i,"FontPath",e.renderer.getPathJs(t)])}catch(e){if(n.ignoreErrors){a.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorFontBuildPath});(0,r.warn)(`buildFontPaths - ignoring ${i} glyph: "${e}".`);return}throw e}}for(const e of t){buildPath(e.fontChar);const t=e.accent;t&&t.fontChar&&buildPath(t.fontChar)}}static get fallbackFontDict(){const e=new i.Dict;e.set("BaseFont",i.Name.get("PDFJS-FallbackFont"));e.set("Type",i.Name.get("FallbackType"));e.set("Subtype",i.Name.get("FallbackType"));e.set("Encoding",i.Name.get("WinAnsiEncoding"));return(0,r.shadow)(this,"fallbackFontDict",e)}}t.PartialEvaluator=PartialEvaluator;class TranslatedFont{constructor({loadedName:e,font:t,dict:a,evaluatorOptions:r}){this.loadedName=e;this.font=t;this.dict=a;this._evaluatorOptions=r||M;this.type3Loaded=null;this.type3Dependencies=t.isType3Font?new Set:null;this.sent=!1}send(e){if(!this.sent){this.sent=!0;e.send("commonobj",[this.loadedName,"Font",this.font.exportData(this._evaluatorOptions.fontExtraProperties)])}}fallback(e){if(this.font.data){this.font.disableFontFace=!0;PartialEvaluator.buildFontPaths(this.font,this.font.glyphCacheValues,e,this._evaluatorOptions)}}loadType3Data(e,t,a){if(this.type3Loaded)return this.type3Loaded;if(!this.font.isType3Font)throw new Error("Must be a Type3 font.");const n=e.clone({ignoreErrors:!1});n.parsingType3Font=!0;const s=new i.RefSet(e.type3FontRefs);this.dict.objId&&!s.has(this.dict.objId)&&s.put(this.dict.objId);n.type3FontRefs=s;const o=this.font,c=this.type3Dependencies;let l=Promise.resolve();const h=this.dict.get("CharProcs"),u=this.dict.get("Resources")||t,d=Object.create(null),f=!o.bbox||(0,r.isArrayEqual)(o.bbox,[0,0,0,0]);for(const e of h.getKeys())l=l.then((()=>{const t=h.get(e),i=new O.OperatorList;return n.getOperatorList({stream:t,task:a,resources:u,operatorList:i}).then((()=>{i.fnArray[0]===r.OPS.setCharWidthAndBounds&&this._removeType3ColorOperators(i,f);d[e]=i.getIR();for(const e of i.dependencies)c.add(e)})).catch((function(t){(0,r.warn)(`Type3 font resource "${e}" is not available.`);const a=new O.OperatorList;d[e]=a.getIR()}))}));this.type3Loaded=l.then((()=>{o.charProcOperatorList=d;if(this._bbox){o.isCharBBox=!0;o.bbox=this._bbox}}));return this.type3Loaded}_removeType3ColorOperators(e,t=!1){if(t){this._bbox||(this._bbox=[1/0,1/0,-1/0,-1/0]);const t=r.Util.normalizeRect(e.argsArray[0].slice(2));this._bbox[0]=Math.min(this._bbox[0],t[0]);this._bbox[1]=Math.min(this._bbox[1],t[1]);this._bbox[2]=Math.max(this._bbox[2],t[2]);this._bbox[3]=Math.max(this._bbox[3],t[3])}let a=1,n=e.length;for(;ao&&(0,r.info)(`Command ${n}: expected [0, ${o}] args, but received ${c} args.`);else{if(c!==o){const e=this.nonProcessedArgs;for(;c>o;){e.push(t.shift());c--}for(;c=r.OPS.moveTo&&s<=r.OPS.endPath&&++this._numInvalidPathOPS>EvaluatorPreprocessor.MAX_INVALID_PATH_OPS)throw new r.FormatError(`Invalid ${e}`);(0,r.warn)(`Skipping ${e}`);null!==t&&(t.length=0);continue}}this.preprocessCommand(s,t);e.fn=s;e.args=t;return!0}if(a===i.EOF)return!1;if(null!==a){null===t&&(t=[]);t.push(a);if(t.length>33)throw new r.FormatError("Too many arguments")}}}preprocessCommand(e,t){switch(0|e){case r.OPS.save:this.stateManager.save();break;case r.OPS.restore:this.stateManager.restore();break;case r.OPS.transform:this.stateManager.transform(t)}}}t.EvaluatorPreprocessor=EvaluatorPreprocessor},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.IdentityCMap=t.CMapFactory=t.CMap=void 0;var r=a(2),n=a(5),i=a(9),s=a(27),o=a(8),c=a(10);const l=["Adobe-GB1-UCS2","Adobe-CNS1-UCS2","Adobe-Japan1-UCS2","Adobe-Korea1-UCS2","78-EUC-H","78-EUC-V","78-H","78-RKSJ-H","78-RKSJ-V","78-V","78ms-RKSJ-H","78ms-RKSJ-V","83pv-RKSJ-H","90ms-RKSJ-H","90ms-RKSJ-V","90msp-RKSJ-H","90msp-RKSJ-V","90pv-RKSJ-H","90pv-RKSJ-V","Add-H","Add-RKSJ-H","Add-RKSJ-V","Add-V","Adobe-CNS1-0","Adobe-CNS1-1","Adobe-CNS1-2","Adobe-CNS1-3","Adobe-CNS1-4","Adobe-CNS1-5","Adobe-CNS1-6","Adobe-GB1-0","Adobe-GB1-1","Adobe-GB1-2","Adobe-GB1-3","Adobe-GB1-4","Adobe-GB1-5","Adobe-Japan1-0","Adobe-Japan1-1","Adobe-Japan1-2","Adobe-Japan1-3","Adobe-Japan1-4","Adobe-Japan1-5","Adobe-Japan1-6","Adobe-Korea1-0","Adobe-Korea1-1","Adobe-Korea1-2","B5-H","B5-V","B5pc-H","B5pc-V","CNS-EUC-H","CNS-EUC-V","CNS1-H","CNS1-V","CNS2-H","CNS2-V","ETHK-B5-H","ETHK-B5-V","ETen-B5-H","ETen-B5-V","ETenms-B5-H","ETenms-B5-V","EUC-H","EUC-V","Ext-H","Ext-RKSJ-H","Ext-RKSJ-V","Ext-V","GB-EUC-H","GB-EUC-V","GB-H","GB-V","GBK-EUC-H","GBK-EUC-V","GBK2K-H","GBK2K-V","GBKp-EUC-H","GBKp-EUC-V","GBT-EUC-H","GBT-EUC-V","GBT-H","GBT-V","GBTpc-EUC-H","GBTpc-EUC-V","GBpc-EUC-H","GBpc-EUC-V","H","HKdla-B5-H","HKdla-B5-V","HKdlb-B5-H","HKdlb-B5-V","HKgccs-B5-H","HKgccs-B5-V","HKm314-B5-H","HKm314-B5-V","HKm471-B5-H","HKm471-B5-V","HKscs-B5-H","HKscs-B5-V","Hankaku","Hiragana","KSC-EUC-H","KSC-EUC-V","KSC-H","KSC-Johab-H","KSC-Johab-V","KSC-V","KSCms-UHC-H","KSCms-UHC-HW-H","KSCms-UHC-HW-V","KSCms-UHC-V","KSCpc-EUC-H","KSCpc-EUC-V","Katakana","NWP-H","NWP-V","RKSJ-H","RKSJ-V","Roman","UniCNS-UCS2-H","UniCNS-UCS2-V","UniCNS-UTF16-H","UniCNS-UTF16-V","UniCNS-UTF32-H","UniCNS-UTF32-V","UniCNS-UTF8-H","UniCNS-UTF8-V","UniGB-UCS2-H","UniGB-UCS2-V","UniGB-UTF16-H","UniGB-UTF16-V","UniGB-UTF32-H","UniGB-UTF32-V","UniGB-UTF8-H","UniGB-UTF8-V","UniJIS-UCS2-H","UniJIS-UCS2-HW-H","UniJIS-UCS2-HW-V","UniJIS-UCS2-V","UniJIS-UTF16-H","UniJIS-UTF16-V","UniJIS-UTF32-H","UniJIS-UTF32-V","UniJIS-UTF8-H","UniJIS-UTF8-V","UniJIS2004-UTF16-H","UniJIS2004-UTF16-V","UniJIS2004-UTF32-H","UniJIS2004-UTF32-V","UniJIS2004-UTF8-H","UniJIS2004-UTF8-V","UniJISPro-UCS2-HW-V","UniJISPro-UCS2-V","UniJISPro-UTF8-V","UniJISX0213-UTF32-H","UniJISX0213-UTF32-V","UniJISX02132004-UTF32-H","UniJISX02132004-UTF32-V","UniKS-UCS2-H","UniKS-UCS2-V","UniKS-UTF16-H","UniKS-UTF16-V","UniKS-UTF32-H","UniKS-UTF32-V","UniKS-UTF8-H","UniKS-UTF8-V","V","WP-Symbol"],h=2**24-1;class CMap{constructor(e=!1){this.codespaceRanges=[[],[],[],[]];this.numCodespaceRanges=0;this._map=[];this.name="";this.vertical=!1;this.useCMap=null;this.builtInCMap=e}addCodespaceRange(e,t,a){this.codespaceRanges[e-1].push(t,a);this.numCodespaceRanges++}mapCidRange(e,t,a){if(t-e>h)throw new Error("mapCidRange - ignoring data above MAX_MAP_RANGE.");for(;e<=t;)this._map[e++]=a++}mapBfRange(e,t,a){if(t-e>h)throw new Error("mapBfRange - ignoring data above MAX_MAP_RANGE.");const r=a.length-1;for(;e<=t;){this._map[e++]=a;const t=a.charCodeAt(r)+1;t>255?a=a.substring(0,r-1)+String.fromCharCode(a.charCodeAt(r-1)+1)+"\0":a=a.substring(0,r)+String.fromCharCode(t)}}mapBfRangeToArray(e,t,a){if(t-e>h)throw new Error("mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.");const r=a.length;let n=0;for(;e<=t&&n>>0;const s=n[i];for(let e=0,t=s.length;e=t&&r<=n){a.charcode=r;a.length=i+1;return}}}a.charcode=0;a.length=1}getCharCodeLength(e){const t=this.codespaceRanges;for(let a=0,r=t.length;a=n&&e<=i)return a+1}}return 1}get length(){return this._map.length}get isIdentityCMap(){if("Identity-H"!==this.name&&"Identity-V"!==this.name)return!1;if(65536!==this._map.length)return!1;for(let e=0;e<65536;e++)if(this._map[e]!==e)return!1;return!0}}t.CMap=CMap;class IdentityCMap extends CMap{constructor(e,t){super();this.vertical=e;this.addCodespaceRange(t,0,65535)}mapCidRange(e,t,a){(0,r.unreachable)("should not call mapCidRange")}mapBfRange(e,t,a){(0,r.unreachable)("should not call mapBfRange")}mapBfRangeToArray(e,t,a){(0,r.unreachable)("should not call mapBfRangeToArray")}mapOne(e,t){(0,r.unreachable)("should not call mapCidOne")}lookup(e){return Number.isInteger(e)&&e<=65535?e:void 0}contains(e){return Number.isInteger(e)&&e<=65535}forEach(e){for(let t=0;t<=65535;t++)e(t,t)}charCodeOf(e){return Number.isInteger(e)&&e<=65535?e:-1}getMap(){const e=new Array(65536);for(let t=0;t<=65535;t++)e[t]=t;return e}get length(){return 65536}get isIdentityCMap(){(0,r.unreachable)("should not access .isIdentityCMap")}}t.IdentityCMap=IdentityCMap;const u=function BinaryCMapReaderClosure(){function hexToInt(e,t){let a=0;for(let r=0;r<=t;r++)a=a<<8|e[r];return a>>>0}function hexToStr(e,t){return 1===t?String.fromCharCode(e[0],e[1]):3===t?String.fromCharCode(e[0],e[1],e[2],e[3]):String.fromCharCode.apply(null,e.subarray(0,t+1))}function addHex(e,t,a){let r=0;for(let n=a;n>=0;n--){r+=e[n]+t[n];e[n]=255&r;r>>=8}}function incHex(e,t){let a=1;for(let r=t;r>=0&&a>0;r--){a+=e[r];e[r]=255&a;a>>=8}}const e=16;class BinaryCMapStream{constructor(e){this.buffer=e;this.pos=0;this.end=e.length;this.tmpBuf=new Uint8Array(19)}readByte(){return this.pos>=this.end?-1:this.buffer[this.pos++]}readNumber(){let e,t=0;do{const a=this.readByte();if(a<0)throw new r.FormatError("unexpected EOF in bcmap");e=!(128&a);t=t<<7|127&a}while(!e);return t}readSigned(){const e=this.readNumber();return 1&e?~(e>>>1):e>>>1}readHex(e,t){e.set(this.buffer.subarray(this.pos,this.pos+t+1));this.pos+=t+1}readHexNumber(e,t){let a;const n=this.tmpBuf;let i=0;do{const e=this.readByte();if(e<0)throw new r.FormatError("unexpected EOF in bcmap");a=!(128&e);n[i++]=127&e}while(!a);let s=t,o=0,c=0;for(;s>=0;){for(;c<8&&n.length>0;){o|=n[--i]<>=8;c-=8}}readHexSigned(e,t){this.readHexNumber(e,t);const a=1&e[t]?255:0;let r=0;for(let n=0;n<=t;n++){r=(1&r)<<8|e[n];e[n]=r>>1^a}}readString(){const e=this.readNumber();let t="";for(let a=0;a=0;){const t=f>>5;if(7===t){switch(31&f){case 0:n.readString();break;case 1:s=n.readString()}continue}const r=!!(16&f),i=15&f;if(i+1>e)throw new Error("BinaryCMapReader.process: Invalid dataSize.");const g=1,p=n.readNumber();switch(t){case 0:n.readHex(o,i);n.readHexNumber(c,i);addHex(c,o,i);a.addCodespaceRange(i+1,hexToInt(o,i),hexToInt(c,i));for(let e=1;e>>0}function expectString(e){if("string"!=typeof e)throw new r.FormatError("Malformed CMap: expected string.")}function expectInt(e){if(!Number.isInteger(e))throw new r.FormatError("Malformed CMap: expected int.")}function parseBfChar(e,t){for(;;){let a=t.getObj();if(a===n.EOF)break;if((0,n.isCmd)(a,"endbfchar"))return;expectString(a);const r=strToInt(a);a=t.getObj();expectString(a);const i=a;e.mapOne(r,i)}}function parseBfRange(e,t){for(;;){let a=t.getObj();if(a===n.EOF)break;if((0,n.isCmd)(a,"endbfrange"))return;expectString(a);const r=strToInt(a);a=t.getObj();expectString(a);const i=strToInt(a);a=t.getObj();if(Number.isInteger(a)||"string"==typeof a){const t=Number.isInteger(a)?String.fromCharCode(a):a;e.mapBfRange(r,i,t)}else{if(!(0,n.isCmd)(a,"["))break;{a=t.getObj();const s=[];for(;!(0,n.isCmd)(a,"]")&&a!==n.EOF;){s.push(a);a=t.getObj()}e.mapBfRangeToArray(r,i,s)}}}throw new r.FormatError("Invalid bf range.")}function parseCidChar(e,t){for(;;){let a=t.getObj();if(a===n.EOF)break;if((0,n.isCmd)(a,"endcidchar"))return;expectString(a);const r=strToInt(a);a=t.getObj();expectInt(a);const i=a;e.mapOne(r,i)}}function parseCidRange(e,t){for(;;){let a=t.getObj();if(a===n.EOF)break;if((0,n.isCmd)(a,"endcidrange"))return;expectString(a);const r=strToInt(a);a=t.getObj();expectString(a);const i=strToInt(a);a=t.getObj();expectInt(a);const s=a;e.mapCidRange(r,i,s)}}function parseCodespaceRange(e,t){for(;;){let a=t.getObj();if(a===n.EOF)break;if((0,n.isCmd)(a,"endcodespacerange"))return;if("string"!=typeof a)break;const r=strToInt(a);a=t.getObj();if("string"!=typeof a)break;const i=strToInt(a);e.addCodespaceRange(a.length,r,i)}throw new r.FormatError("Invalid codespace range.")}function parseWMode(e,t){const a=t.getObj();Number.isInteger(a)&&(e.vertical=!!a)}function parseCMapName(e,t){const a=t.getObj();a instanceof n.Name&&(e.name=a.name)}async function parseCMap(e,t,a,i){let s,c;e:for(;;)try{const a=t.getObj();if(a===n.EOF)break;if(a instanceof n.Name){"WMode"===a.name?parseWMode(e,t):"CMapName"===a.name&&parseCMapName(e,t);s=a}else if(a instanceof n.Cmd)switch(a.cmd){case"endcmap":break e;case"usecmap":s instanceof n.Name&&(c=s.name);break;case"begincodespacerange":parseCodespaceRange(e,t);break;case"beginbfchar":parseBfChar(e,t);break;case"begincidchar":parseCidChar(e,t);break;case"beginbfrange":parseBfRange(e,t);break;case"begincidrange":parseCidRange(e,t)}}catch(e){if(e instanceof o.MissingDataException)throw e;(0,r.warn)("Invalid cMap data: "+e);continue}!i&&c&&(i=c);return i?extendCMap(e,a,i):e}async function extendCMap(e,t,a){e.useCMap=await createBuiltInCMap(a,t);if(0===e.numCodespaceRanges){const t=e.useCMap.codespaceRanges;for(let a=0;aextendCMap(i,t,e)));if(n===r.CMapCompressionType.NONE){const e=new s.Lexer(new c.Stream(a));return parseCMap(i,e,t,null)}throw new Error("TODO: Only BINARY/NONE CMap compression is currently supported.")}return{async create(e){const t=e.encoding,a=e.fetchBuiltInCMap,r=e.useCMap;if(t instanceof n.Name)return createBuiltInCMap(t.name,a);if(t instanceof i.BaseStream){const e=await parseCMap(new CMap,new s.Lexer(t),a,r);return e.isIdentityCMap?createBuiltInCMap(e.name,a):e}throw new Error("Encoding required.")}}}();t.CMapFactory=d},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Parser=t.Linearization=t.Lexer=void 0;var r=a(2),n=a(5),i=a(8),s=a(28),o=a(30),c=a(31),l=a(33),h=a(34),u=a(37),d=a(39),f=a(41),g=a(10),p=a(42),m=a(43);function computeAdler32(e){const t=e.length;let a=1,r=0;for(let n=0;n>")&&this.buf1!==n.EOF;){if(!(this.buf1 instanceof n.Name)){(0,r.info)("Malformed dictionary: key must be a name object");this.shift();continue}const t=this.buf1.name;this.shift();if(this.buf1===n.EOF)break;s.set(t,this.getObj(e))}if(this.buf1===n.EOF){if(this.recoveryMode)return s;throw new i.ParserEOFException("End of file inside dictionary.")}if((0,n.isCmd)(this.buf2,"stream"))return this.allowStreams?this.makeStream(s,e):s;this.shift();return s;default:return t}if(Number.isInteger(t)){if(Number.isInteger(this.buf1)&&(0,n.isCmd)(this.buf2,"R")){const e=n.Ref.get(t,this.buf1);this.shift();this.shift();return e}return t}return"string"==typeof t&&e?e.decryptString(t):t}findDefaultInlineStreamEnd(e){const t=this.lexer,a=e.pos;let s,o,c=0;for(;-1!==(s=e.getByte());)if(0===c)c=69===s?1:0;else if(1===c)c=73===s?2:0;else{(0,r.assert)(2===c,"findDefaultInlineStreamEnd - invalid state.");if(32===s||10===s||13===s){o=e.pos;const a=e.peekBytes(10);for(let e=0,t=a.length;e127))){c=0;break}}if(2!==c)continue;if(t.knownCommands){const e=t.peekObj();e instanceof n.Cmd&&!t.knownCommands[e.cmd]&&(c=0)}else(0,r.warn)("findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.");if(2===c)break}else c=0}if(-1===s){(0,r.warn)("findDefaultInlineStreamEnd: Reached the end of the stream without finding a valid EI marker");if(o){(0,r.warn)('... trying to recover by using the last "EI" occurrence.');e.skip(-(e.pos-o))}}let l=4;e.skip(-l);s=e.peekByte();e.skip(l);(0,i.isWhiteSpace)(s)||l--;return e.pos-l-a}findDCTDecodeInlineStreamEnd(e){const t=e.pos;let a,n,i=!1;for(;-1!==(a=e.getByte());)if(255===a){switch(e.getByte()){case 0:break;case 255:e.skip(-1);break;case 217:i=!0;break;case 192:case 193:case 194:case 195:case 197:case 198:case 199:case 201:case 202:case 203:case 205:case 206:case 207:case 196:case 204:case 218:case 219:case 220:case 221:case 222:case 223:case 224:case 225:case 226:case 227:case 228:case 229:case 230:case 231:case 232:case 233:case 234:case 235:case 236:case 237:case 238:case 239:case 254:n=e.getUint16();n>2?e.skip(n-2):e.skip(-2)}if(i)break}const s=e.pos-t;if(-1===a){(0,r.warn)("Inline DCTDecode image stream: EOI marker not found, searching for /EI/ instead.");e.skip(-s);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return s}findASCII85DecodeInlineStreamEnd(e){const t=e.pos;let a;for(;-1!==(a=e.getByte());)if(126===a){const t=e.pos;a=e.peekByte();for(;(0,i.isWhiteSpace)(a);){e.skip();a=e.peekByte()}if(62===a){e.skip();break}if(e.pos>t){const t=e.peekBytes(2);if(69===t[0]&&73===t[1])break}}const n=e.pos-t;if(-1===a){(0,r.warn)("Inline ASCII85Decode image stream: EOD marker not found, searching for /EI/ instead.");e.skip(-n);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return n}findASCIIHexDecodeInlineStreamEnd(e){const t=e.pos;let a;for(;-1!==(a=e.getByte())&&62!==a;);const n=e.pos-t;if(-1===a){(0,r.warn)("Inline ASCIIHexDecode image stream: EOD marker not found, searching for /EI/ instead.");e.skip(-n);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return n}inlineStreamSkipEI(e){let t,a=0;for(;-1!==(t=e.getByte());)if(0===a)a=69===t?1:0;else if(1===a)a=73===t?2:0;else if(2===a)break}makeInlineImage(e){const t=this.lexer,a=t.stream,i=new n.Dict(this.xref);let s;for(;!(0,n.isCmd)(this.buf1,"ID")&&this.buf1!==n.EOF;){if(!(this.buf1 instanceof n.Name))throw new r.FormatError("Dictionary key must be a name object");const t=this.buf1.name;this.shift();if(this.buf1===n.EOF)break;i.set(t,this.getObj(e))}-1!==t.beginInlineImagePos&&(s=a.pos-t.beginInlineImagePos);const o=i.get("F","Filter");let c;if(o instanceof n.Name)c=o.name;else if(Array.isArray(o)){const e=this.xref.fetchIfRef(o[0]);e instanceof n.Name&&(c=e.name)}const l=a.pos;let h;switch(c){case"DCT":case"DCTDecode":h=this.findDCTDecodeInlineStreamEnd(a);break;case"A85":case"ASCII85Decode":h=this.findASCII85DecodeInlineStreamEnd(a);break;case"AHx":case"ASCIIHexDecode":h=this.findASCIIHexDecodeInlineStreamEnd(a);break;default:h=this.findDefaultInlineStreamEnd(a)}let u,d=a.makeSubStream(l,h,i);if(h<1e3&&s<5552){const e=d.getBytes();d.reset();const r=a.pos;a.pos=t.beginInlineImagePos;const i=a.getBytes(s);a.pos=r;u=computeAdler32(e)+"_"+computeAdler32(i);const o=this.imageCache[u];if(void 0!==o){this.buf2=n.Cmd.get("EI");this.shift();o.reset();return o}}e&&(d=e.createStream(d,h));d=this.filter(d,i,h);d.dict=i;if(void 0!==u){d.cacheKey=`inline_${h}_${u}`;this.imageCache[u]=d}this.buf2=n.Cmd.get("EI");this.shift();return d}_findStreamLength(e,t){const{stream:a}=this.lexer;a.pos=e;const r=t.length;for(;a.pos=r){a.pos+=s;return a.pos-e}s++}a.pos+=i}return-1}makeStream(e,t){const a=this.lexer;let s=a.stream;a.skipToNextLine();const o=s.pos-1;let c=e.get("Length");if(!Number.isInteger(c)){(0,r.info)(`Bad length "${c&&c.toString()}" in stream.`);c=0}s.pos=o+c;a.nextChar();if(this.tryShift()&&(0,n.isCmd)(this.buf2,"endstream"))this.shift();else{const e=new Uint8Array([101,110,100,115,116,114,101,97,109]);let t=this._findStreamLength(o,e);if(t<0){const a=1;for(let n=1;n<=a;n++){const a=e.length-n,c=e.slice(0,a),l=this._findStreamLength(o,c);if(l>=0){const e=s.peekBytes(a+1)[a];if(!(0,i.isWhiteSpace)(e))break;(0,r.info)(`Found "${(0,r.bytesToString)(c)}" when searching for endstream command.`);t=l;break}}if(t<0)throw new r.FormatError("Missing endstream command.")}c=t;a.nextChar();this.shift();this.shift()}this.shift();s=s.makeSubStream(o,c,e);t&&(s=t.createStream(s,c));s=this.filter(s,e,c);s.dict=e;return s}filter(e,t,a){let i=t.get("F","Filter"),s=t.get("DP","DecodeParms");if(i instanceof n.Name){Array.isArray(s)&&(0,r.warn)("/DecodeParms should not be an Array, when /Filter is a Name.");return this.makeFilter(e,i.name,a,s)}let o=a;if(Array.isArray(i)){const t=i,a=s;for(let c=0,l=t.length;c=48&&e<=57?15&e:e>=65&&e<=70||e>=97&&e<=102?9+(15&e):-1}class Lexer{constructor(e,t=null){this.stream=e;this.nextChar();this.strBuf=[];this.knownCommands=t;this._hexStringNumWarn=0;this.beginInlineImagePos=-1}nextChar(){return this.currentChar=this.stream.getByte()}peekChar(){return this.stream.peekByte()}getNumber(){let e=this.currentChar,t=!1,a=0,n=0;if(45===e){n=-1;e=this.nextChar();45===e&&(e=this.nextChar())}else if(43===e){n=1;e=this.nextChar()}if(10===e||13===e)do{e=this.nextChar()}while(10===e||13===e);if(46===e){a=10;e=this.nextChar()}if(e<48||e>57){if((0,i.isWhiteSpace)(e)||-1===e){if(10===a&&0===n){(0,r.warn)("Lexer.getNumber - treating a single decimal point as zero.");return 0}if(0===a&&-1===n){(0,r.warn)("Lexer.getNumber - treating a single minus sign as zero.");return 0}}throw new r.FormatError(`Invalid number: ${String.fromCharCode(e)} (charCode ${e})`)}n=n||1;let s=e-48,o=0,c=1;for(;(e=this.nextChar())>=0;)if(e>=48&&e<=57){const r=e-48;if(t)o=10*o+r;else{0!==a&&(a*=10);s=10*s+r}}else if(46===e){if(0!==a)break;a=1}else if(45===e)(0,r.warn)("Badly formatted number: minus sign in the middle");else{if(69!==e&&101!==e)break;e=this.peekChar();if(43===e||45===e){c=45===e?-1:1;this.nextChar()}else if(e<48||e>57)break;t=!0}0!==a&&(s/=a);t&&(s*=10**(c*o));return n*s}getString(){let e=1,t=!1;const a=this.strBuf;a.length=0;let n=this.nextChar();for(;;){let i=!1;switch(0|n){case-1:(0,r.warn)("Unterminated string");t=!0;break;case 40:++e;a.push("(");break;case 41:if(0==--e){this.nextChar();t=!0}else a.push(")");break;case 92:n=this.nextChar();switch(n){case-1:(0,r.warn)("Unterminated string");t=!0;break;case 110:a.push("\n");break;case 114:a.push("\r");break;case 116:a.push("\t");break;case 98:a.push("\b");break;case 102:a.push("\f");break;case 92:case 40:case 41:a.push(String.fromCharCode(n));break;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:let e=15&n;n=this.nextChar();i=!0;if(n>=48&&n<=55){e=(e<<3)+(15&n);n=this.nextChar();if(n>=48&&n<=55){i=!1;e=(e<<3)+(15&n)}}a.push(String.fromCharCode(e));break;case 13:10===this.peekChar()&&this.nextChar();break;case 10:break;default:a.push(String.fromCharCode(n))}break;default:a.push(String.fromCharCode(n))}if(t)break;i||(n=this.nextChar())}return a.join("")}getName(){let e,t;const a=this.strBuf;a.length=0;for(;(e=this.nextChar())>=0&&!b[e];)if(35===e){e=this.nextChar();if(b[e]){(0,r.warn)("Lexer_getName: NUMBER SIGN (#) should be followed by a hexadecimal number.");a.push("#");break}const n=toHexDigit(e);if(-1!==n){t=e;e=this.nextChar();const i=toHexDigit(e);if(-1===i){(0,r.warn)(`Lexer_getName: Illegal digit (${String.fromCharCode(e)}) in hexadecimal number.`);a.push("#",String.fromCharCode(t));if(b[e])break;a.push(String.fromCharCode(e));continue}a.push(String.fromCharCode(n<<4|i))}else a.push("#",String.fromCharCode(e))}else a.push(String.fromCharCode(e));a.length>127&&(0,r.warn)(`Name token is longer than allowed by the spec: ${a.length}`);return n.Name.get(a.join(""))}_hexStringWarn(e){5!=this._hexStringNumWarn++?this._hexStringNumWarn>5||(0,r.warn)(`getHexString - ignoring invalid character: ${e}`):(0,r.warn)("getHexString - ignoring additional invalid characters.")}getHexString(){const e=this.strBuf;e.length=0;let t,a,n=this.currentChar,i=!0;this._hexStringNumWarn=0;for(;;){if(n<0){(0,r.warn)("Unterminated hex string");break}if(62===n){this.nextChar();break}if(1!==b[n]){if(i){t=toHexDigit(n);if(-1===t){this._hexStringWarn(n);n=this.nextChar();continue}}else{a=toHexDigit(n);if(-1===a){this._hexStringWarn(n);n=this.nextChar();continue}e.push(String.fromCharCode(t<<4|a))}i=!i;n=this.nextChar()}else n=this.nextChar()}return e.join("")}getObj(){let e=!1,t=this.currentChar;for(;;){if(t<0)return n.EOF;if(e)10!==t&&13!==t||(e=!1);else if(37===t)e=!0;else if(1!==b[t])break;t=this.nextChar()}switch(0|t){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return this.getNumber();case 40:return this.getString();case 47:return this.getName();case 91:this.nextChar();return n.Cmd.get("[");case 93:this.nextChar();return n.Cmd.get("]");case 60:t=this.nextChar();if(60===t){this.nextChar();return n.Cmd.get("<<")}return this.getHexString();case 62:t=this.nextChar();if(62===t){this.nextChar();return n.Cmd.get(">>")}return n.Cmd.get(">");case 123:this.nextChar();return n.Cmd.get("{");case 125:this.nextChar();return n.Cmd.get("}");case 41:this.nextChar();throw new r.FormatError(`Illegal character: ${t}`)}let a=String.fromCharCode(t);if(t<32||t>127){const e=this.peekChar();if(e>=32&&e<=127){this.nextChar();return n.Cmd.get(a)}}const i=this.knownCommands;let s=i&&void 0!==i[a];for(;(t=this.nextChar())>=0&&!b[t];){const e=a+String.fromCharCode(t);if(s&&void 0===i[e])break;if(128===a.length)throw new r.FormatError(`Command token too long: ${a.length}`);a=e;s=i&&void 0!==i[a]}if("true"===a)return!0;if("false"===a)return!1;if("null"===a)return null;"BI"===a&&(this.beginInlineImagePos=this.stream.pos);return n.Cmd.get(a)}peekObj(){const e=this.stream.pos,t=this.currentChar,a=this.beginInlineImagePos;let n;try{n=this.getObj()}catch(e){if(e instanceof i.MissingDataException)throw e;(0,r.warn)(`peekObj: ${e}`)}this.stream.pos=e;this.currentChar=t;this.beginInlineImagePos=a;return n}skipToNextLine(){let e=this.currentChar;for(;e>=0;){if(13===e){e=this.nextChar();10===e&&this.nextChar();break}if(10===e){this.nextChar();break}e=this.nextChar()}}}t.Lexer=Lexer;t.Linearization=class Linearization{static create(e){function getInt(e,t,a=!1){const r=e.get(t);if(Number.isInteger(r)&&(a?r>=0:r>0))return r;throw new Error(`The "${t}" parameter in the linearization dictionary is invalid.`)}const t=new Parser({lexer:new Lexer(e),xref:null}),a=t.getObj(),r=t.getObj(),i=t.getObj(),s=t.getObj();let o,c;if(!(Number.isInteger(a)&&Number.isInteger(r)&&(0,n.isCmd)(i,"obj")&&s instanceof n.Dict&&"number"==typeof(o=s.get("Linearized"))&&o>0))return null;if((c=getInt(s,"L"))!==e.length)throw new Error('The "L" parameter in the linearization dictionary does not equal the stream length.');return{length:c,hints:function getHints(e){const t=e.get("H");let a;if(Array.isArray(t)&&(2===(a=t.length)||4===a)){for(let e=0;e0))throw new Error(`Hint (${e}) in the linearization dictionary is invalid.`)}return t}throw new Error("Hint array in the linearization dictionary is invalid.")}(s),objectNumberFirst:getInt(s,"O"),endFirst:getInt(s,"E"),numPages:getInt(s,"N"),mainXRefEntriesOffset:getInt(s,"T"),pageFirst:s.has("P")?getInt(s,"P",!0):0}}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Ascii85Stream=void 0;var r=a(29),n=a(8);class Ascii85Stream extends r.DecodeStream{constructor(e,t){t&&(t*=.8);super(t);this.str=e;this.dict=e.dict;this.input=new Uint8Array(5)}readBlock(){const e=this.str;let t=e.getByte();for(;(0,n.isWhiteSpace)(t);)t=e.getByte();if(-1===t||126===t){this.eof=!0;return}const a=this.bufferLength;let r,i;if(122===t){r=this.ensureBuffer(a+4);for(i=0;i<4;++i)r[a+i]=0;this.bufferLength+=4}else{const s=this.input;s[0]=t;for(i=1;i<5;++i){t=e.getByte();for(;(0,n.isWhiteSpace)(t);)t=e.getByte();s[i]=t;if(-1===t||126===t)break}r=this.ensureBuffer(a+i-1);this.bufferLength+=i-1;if(i<5){for(;i<5;++i)s[i]=117;this.eof=!0}let o=0;for(i=0;i<5;++i)o=85*o+(s[i]-33);for(i=3;i>=0;--i){r[a+i]=255&o;o>>=8}}}}t.Ascii85Stream=Ascii85Stream},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.StreamsSequenceStream=t.DecodeStream=void 0;var r=a(9),n=a(10);const i=new Uint8Array(0);class DecodeStream extends r.BaseStream{constructor(e){super();this._rawMinBufferLength=e||0;this.pos=0;this.bufferLength=0;this.eof=!1;this.buffer=i;this.minBufferLength=512;if(e)for(;this.minBufferLengthr&&(a=r)}else{for(;!this.eof;)this.readBlock();a=this.bufferLength}this.pos=a;return this.buffer.subarray(t,a)}reset(){this.pos=0}makeSubStream(e,t,a=null){if(void 0===t)for(;!this.eof;)this.readBlock();else{const a=e+t;for(;this.bufferLength<=a&&!this.eof;)this.readBlock()}return new n.Stream(this.buffer,e,t,a)}getBaseStreams(){return this.str?this.str.getBaseStreams():null}}t.DecodeStream=DecodeStream;t.StreamsSequenceStream=class StreamsSequenceStream extends DecodeStream{constructor(e,t=null){let a=0;for(const t of e)a+=t instanceof DecodeStream?t._rawMinBufferLength:t.length;super(a);this.streams=e;this._onError=t}readBlock(){const e=this.streams;if(0===e.length){this.eof=!0;return}const t=e.shift();let a;try{a=t.getBytes()}catch(e){if(this._onError){this._onError(e,t.dict&&t.dict.objId);return}throw e}const r=this.bufferLength,n=r+a.length;this.ensureBuffer(n).set(a,r);this.bufferLength=n}getBaseStreams(){const e=[];for(const t of this.streams){const a=t.getBaseStreams();a&&e.push(...a)}return e.length>0?e:null}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.AsciiHexStream=void 0;var r=a(29);class AsciiHexStream extends r.DecodeStream{constructor(e,t){t&&(t*=.5);super(t);this.str=e;this.dict=e.dict;this.firstDigit=-1}readBlock(){const e=this.str.getBytes(8e3);if(!e.length){this.eof=!0;return}const t=e.length+1>>1,a=this.ensureBuffer(this.bufferLength+t);let r=this.bufferLength,n=this.firstDigit;for(const t of e){let e;if(t>=48&&t<=57)e=15&t;else{if(!(t>=65&&t<=70||t>=97&&t<=102)){if(62===t){this.eof=!0;break}continue}e=9+(15&t)}if(n<0)n=e;else{a[r++]=n<<4|e;n=-1}}if(n>=0&&this.eof){a[r++]=n<<4;n=-1}this.firstDigit=n;this.bufferLength=r}}t.AsciiHexStream=AsciiHexStream},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.CCITTFaxStream=void 0;var r=a(32),n=a(29),i=a(5);class CCITTFaxStream extends n.DecodeStream{constructor(e,t,a){super(t);this.str=e;this.dict=e.dict;a instanceof i.Dict||(a=i.Dict.empty);const n={next:()=>e.getByte()};this.ccittFaxDecoder=new r.CCITTFaxDecoder(n,{K:a.get("K"),EndOfLine:a.get("EndOfLine"),EncodedByteAlign:a.get("EncodedByteAlign"),Columns:a.get("Columns"),Rows:a.get("Rows"),EndOfBlock:a.get("EndOfBlock"),BlackIs1:a.get("BlackIs1")})}readBlock(){for(;!this.eof;){const e=this.ccittFaxDecoder.readNextChar();if(-1===e){this.eof=!0;return}this.ensureBuffer(this.bufferLength+1);this.buffer[this.bufferLength++]=e}}}t.CCITTFaxStream=CCITTFaxStream},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.CCITTFaxDecoder=void 0;var r=a(2);const n=-1,i=[[-1,-1],[-1,-1],[7,8],[7,7],[6,6],[6,6],[6,5],[6,5],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2]],s=[[-1,-1],[12,-2],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[12,1984],[12,2048],[12,2112],[12,2176],[12,2240],[12,2304],[11,1856],[11,1856],[11,1920],[11,1920],[12,2368],[12,2432],[12,2496],[12,2560]],o=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[8,29],[8,29],[8,30],[8,30],[8,45],[8,45],[8,46],[8,46],[7,22],[7,22],[7,22],[7,22],[7,23],[7,23],[7,23],[7,23],[8,47],[8,47],[8,48],[8,48],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[7,20],[7,20],[7,20],[7,20],[8,33],[8,33],[8,34],[8,34],[8,35],[8,35],[8,36],[8,36],[8,37],[8,37],[8,38],[8,38],[7,19],[7,19],[7,19],[7,19],[8,31],[8,31],[8,32],[8,32],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[8,53],[8,53],[8,54],[8,54],[7,26],[7,26],[7,26],[7,26],[8,39],[8,39],[8,40],[8,40],[8,41],[8,41],[8,42],[8,42],[8,43],[8,43],[8,44],[8,44],[7,21],[7,21],[7,21],[7,21],[7,28],[7,28],[7,28],[7,28],[8,61],[8,61],[8,62],[8,62],[8,63],[8,63],[8,0],[8,0],[8,320],[8,320],[8,384],[8,384],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[7,27],[7,27],[7,27],[7,27],[8,59],[8,59],[8,60],[8,60],[9,1472],[9,1536],[9,1600],[9,1728],[7,18],[7,18],[7,18],[7,18],[7,24],[7,24],[7,24],[7,24],[8,49],[8,49],[8,50],[8,50],[8,51],[8,51],[8,52],[8,52],[7,25],[7,25],[7,25],[7,25],[8,55],[8,55],[8,56],[8,56],[8,57],[8,57],[8,58],[8,58],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[8,448],[8,448],[8,512],[8,512],[9,704],[9,768],[8,640],[8,640],[8,576],[8,576],[9,832],[9,896],[9,960],[9,1024],[9,1088],[9,1152],[9,1216],[9,1280],[9,1344],[9,1408],[7,256],[7,256],[7,256],[7,256],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7]],c=[[-1,-1],[-1,-1],[12,-2],[12,-2],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[11,1792],[11,1792],[12,1984],[12,1984],[12,2048],[12,2048],[12,2112],[12,2112],[12,2176],[12,2176],[12,2240],[12,2240],[12,2304],[12,2304],[11,1856],[11,1856],[11,1856],[11,1856],[11,1920],[11,1920],[11,1920],[11,1920],[12,2368],[12,2368],[12,2432],[12,2432],[12,2496],[12,2496],[12,2560],[12,2560],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[12,52],[12,52],[13,640],[13,704],[13,768],[13,832],[12,55],[12,55],[12,56],[12,56],[13,1280],[13,1344],[13,1408],[13,1472],[12,59],[12,59],[12,60],[12,60],[13,1536],[13,1600],[11,24],[11,24],[11,24],[11,24],[11,25],[11,25],[11,25],[11,25],[13,1664],[13,1728],[12,320],[12,320],[12,384],[12,384],[12,448],[12,448],[13,512],[13,576],[12,53],[12,53],[12,54],[12,54],[13,896],[13,960],[13,1024],[13,1088],[13,1152],[13,1216],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64]],l=[[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[11,23],[11,23],[12,50],[12,51],[12,44],[12,45],[12,46],[12,47],[12,57],[12,58],[12,61],[12,256],[10,16],[10,16],[10,16],[10,16],[10,17],[10,17],[10,17],[10,17],[12,48],[12,49],[12,62],[12,63],[12,30],[12,31],[12,32],[12,33],[12,40],[12,41],[11,22],[11,22],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[12,128],[12,192],[12,26],[12,27],[12,28],[12,29],[11,19],[11,19],[11,20],[11,20],[12,34],[12,35],[12,36],[12,37],[12,38],[12,39],[11,21],[11,21],[12,42],[12,43],[10,0],[10,0],[10,0],[10,0],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12]],h=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[6,9],[6,8],[5,7],[5,7],[4,6],[4,6],[4,6],[4,6],[4,5],[4,5],[4,5],[4,5],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2]];t.CCITTFaxDecoder=class CCITTFaxDecoder{constructor(e,t={}){if(!e||"function"!=typeof e.next)throw new Error('CCITTFaxDecoder - invalid "source" parameter.');this.source=e;this.eof=!1;this.encoding=t.K||0;this.eoline=t.EndOfLine||!1;this.byteAlign=t.EncodedByteAlign||!1;this.columns=t.Columns||1728;this.rows=t.Rows||0;let a,r=t.EndOfBlock;null==r&&(r=!0);this.eoblock=r;this.black=t.BlackIs1||!1;this.codingLine=new Uint32Array(this.columns+1);this.refLine=new Uint32Array(this.columns+2);this.codingLine[0]=this.columns;this.codingPos=0;this.row=0;this.nextLine2D=this.encoding<0;this.inputBits=0;this.inputBuf=0;this.outputBits=0;this.rowsDone=!1;for(;0===(a=this._lookBits(12));)this._eatBits(1);1===a&&this._eatBits(12);if(this.encoding>0){this.nextLine2D=!this._lookBits(1);this._eatBits(1)}}readNextChar(){if(this.eof)return-1;const e=this.refLine,t=this.codingLine,a=this.columns;let i,s,o,c,l;if(0===this.outputBits){this.rowsDone&&(this.eof=!0);if(this.eof)return-1;this.err=!1;let o,l,h;if(this.nextLine2D){for(c=0;t[c]=64);do{l+=h=this._getWhiteCode()}while(h>=64)}else{do{o+=h=this._getWhiteCode()}while(h>=64);do{l+=h=this._getBlackCode()}while(h>=64)}this._addPixels(t[this.codingPos]+o,s);t[this.codingPos]0?--i:++i;for(;e[i]<=t[this.codingPos]&&e[i]0?--i:++i;for(;e[i]<=t[this.codingPos]&&e[i]0?--i:++i;for(;e[i]<=t[this.codingPos]&&e[i]=64);else do{o+=h=this._getWhiteCode()}while(h>=64);this._addPixels(t[this.codingPos]+o,s);s^=1}}let u=!1;this.byteAlign&&(this.inputBits&=-8);if(this.eoblock||this.row!==this.rows-1){o=this._lookBits(12);if(this.eoline)for(;o!==n&&1!==o;){this._eatBits(1);o=this._lookBits(12)}else for(;0===o;){this._eatBits(1);o=this._lookBits(12)}if(1===o){this._eatBits(12);u=!0}else o===n&&(this.eof=!0)}else this.rowsDone=!0;if(!this.eof&&this.encoding>0&&!this.rowsDone){this.nextLine2D=!this._lookBits(1);this._eatBits(1)}if(this.eoblock&&u&&this.byteAlign){o=this._lookBits(12);if(1===o){this._eatBits(12);if(this.encoding>0){this._lookBits(1);this._eatBits(1)}if(this.encoding>=0)for(c=0;c<4;++c){o=this._lookBits(12);1!==o&&(0,r.info)("bad rtc code: "+o);this._eatBits(12);if(this.encoding>0){this._lookBits(1);this._eatBits(1)}}this.eof=!0}}else if(this.err&&this.eoline){for(;;){o=this._lookBits(13);if(o===n){this.eof=!0;return-1}if(o>>1==1)break;this._eatBits(1)}this._eatBits(12);if(this.encoding>0){this._eatBits(1);this.nextLine2D=!(1&o)}}t[0]>0?this.outputBits=t[this.codingPos=0]:this.outputBits=t[this.codingPos=1];this.row++}if(this.outputBits>=8){l=1&this.codingPos?0:255;this.outputBits-=8;if(0===this.outputBits&&t[this.codingPos]o){l<<=o;1&this.codingPos||(l|=255>>8-o);this.outputBits-=o;o=0}else{l<<=this.outputBits;1&this.codingPos||(l|=255>>8-this.outputBits);o-=this.outputBits;this.outputBits=0;if(t[this.codingPos]0){l<<=o;o=0}}}while(o)}this.black&&(l^=255);return l}_addPixels(e,t){const a=this.codingLine;let n=this.codingPos;if(e>a[n]){if(e>this.columns){(0,r.info)("row is wrong length");this.err=!0;e=this.columns}1&n^t&&++n;a[n]=e}this.codingPos=n}_addPixelsNeg(e,t){const a=this.codingLine;let n=this.codingPos;if(e>a[n]){if(e>this.columns){(0,r.info)("row is wrong length");this.err=!0;e=this.columns}1&n^t&&++n;a[n]=e}else if(e0&&e=i){const t=a[e-i];if(t[0]===r){this._eatBits(r);return[!0,t[1],!0]}}}return[!1,0,!1]}_getTwoDimCode(){let e,t=0;if(this.eoblock){t=this._lookBits(7);e=i[t];if(e&&e[0]>0){this._eatBits(e[0]);return e[1]}}else{const e=this._findTableCode(1,7,i);if(e[0]&&e[2])return e[1]}(0,r.info)("Bad two dim code");return n}_getWhiteCode(){let e,t=0;if(this.eoblock){t=this._lookBits(12);if(t===n)return 1;e=t>>5==0?s[t]:o[t>>3];if(e[0]>0){this._eatBits(e[0]);return e[1]}}else{let e=this._findTableCode(1,9,o);if(e[0])return e[1];e=this._findTableCode(11,12,s);if(e[0])return e[1]}(0,r.info)("bad white code");this._eatBits(1);return 1}_getBlackCode(){let e,t;if(this.eoblock){e=this._lookBits(13);if(e===n)return 1;t=e>>7==0?c[e]:e>>9==0&&e>>7!=0?l[(e>>1)-64]:h[e>>7];if(t[0]>0){this._eatBits(t[0]);return t[1]}}else{let e=this._findTableCode(2,6,h);if(e[0])return e[1];e=this._findTableCode(7,12,l,64);if(e[0])return e[1];e=this._findTableCode(10,13,c);if(e[0])return e[1]}(0,r.info)("bad black code");this._eatBits(1);return 1}_lookBits(e){let t;for(;this.inputBits>16-e;this.inputBuf=this.inputBuf<<8|t;this.inputBits+=8}return this.inputBuf>>this.inputBits-e&65535>>16-e}_eatBits(e){(this.inputBits-=e)<0&&(this.inputBits=0)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.FlateStream=void 0;var r=a(29),n=a(2);const i=new Int32Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),s=new Int32Array([3,4,5,6,7,8,9,10,65547,65549,65551,65553,131091,131095,131099,131103,196643,196651,196659,196667,262211,262227,262243,262259,327811,327843,327875,327907,258,258,258]),o=new Int32Array([1,2,3,4,65541,65543,131081,131085,196625,196633,262177,262193,327745,327777,393345,393409,459009,459137,524801,525057,590849,591361,657409,658433,724993,727041,794625,798721,868353,876545]),c=[new Int32Array([459008,524368,524304,524568,459024,524400,524336,590016,459016,524384,524320,589984,524288,524416,524352,590048,459012,524376,524312,589968,459028,524408,524344,590032,459020,524392,524328,59e4,524296,524424,524360,590064,459010,524372,524308,524572,459026,524404,524340,590024,459018,524388,524324,589992,524292,524420,524356,590056,459014,524380,524316,589976,459030,524412,524348,590040,459022,524396,524332,590008,524300,524428,524364,590072,459009,524370,524306,524570,459025,524402,524338,590020,459017,524386,524322,589988,524290,524418,524354,590052,459013,524378,524314,589972,459029,524410,524346,590036,459021,524394,524330,590004,524298,524426,524362,590068,459011,524374,524310,524574,459027,524406,524342,590028,459019,524390,524326,589996,524294,524422,524358,590060,459015,524382,524318,589980,459031,524414,524350,590044,459023,524398,524334,590012,524302,524430,524366,590076,459008,524369,524305,524569,459024,524401,524337,590018,459016,524385,524321,589986,524289,524417,524353,590050,459012,524377,524313,589970,459028,524409,524345,590034,459020,524393,524329,590002,524297,524425,524361,590066,459010,524373,524309,524573,459026,524405,524341,590026,459018,524389,524325,589994,524293,524421,524357,590058,459014,524381,524317,589978,459030,524413,524349,590042,459022,524397,524333,590010,524301,524429,524365,590074,459009,524371,524307,524571,459025,524403,524339,590022,459017,524387,524323,589990,524291,524419,524355,590054,459013,524379,524315,589974,459029,524411,524347,590038,459021,524395,524331,590006,524299,524427,524363,590070,459011,524375,524311,524575,459027,524407,524343,590030,459019,524391,524327,589998,524295,524423,524359,590062,459015,524383,524319,589982,459031,524415,524351,590046,459023,524399,524335,590014,524303,524431,524367,590078,459008,524368,524304,524568,459024,524400,524336,590017,459016,524384,524320,589985,524288,524416,524352,590049,459012,524376,524312,589969,459028,524408,524344,590033,459020,524392,524328,590001,524296,524424,524360,590065,459010,524372,524308,524572,459026,524404,524340,590025,459018,524388,524324,589993,524292,524420,524356,590057,459014,524380,524316,589977,459030,524412,524348,590041,459022,524396,524332,590009,524300,524428,524364,590073,459009,524370,524306,524570,459025,524402,524338,590021,459017,524386,524322,589989,524290,524418,524354,590053,459013,524378,524314,589973,459029,524410,524346,590037,459021,524394,524330,590005,524298,524426,524362,590069,459011,524374,524310,524574,459027,524406,524342,590029,459019,524390,524326,589997,524294,524422,524358,590061,459015,524382,524318,589981,459031,524414,524350,590045,459023,524398,524334,590013,524302,524430,524366,590077,459008,524369,524305,524569,459024,524401,524337,590019,459016,524385,524321,589987,524289,524417,524353,590051,459012,524377,524313,589971,459028,524409,524345,590035,459020,524393,524329,590003,524297,524425,524361,590067,459010,524373,524309,524573,459026,524405,524341,590027,459018,524389,524325,589995,524293,524421,524357,590059,459014,524381,524317,589979,459030,524413,524349,590043,459022,524397,524333,590011,524301,524429,524365,590075,459009,524371,524307,524571,459025,524403,524339,590023,459017,524387,524323,589991,524291,524419,524355,590055,459013,524379,524315,589975,459029,524411,524347,590039,459021,524395,524331,590007,524299,524427,524363,590071,459011,524375,524311,524575,459027,524407,524343,590031,459019,524391,524327,589999,524295,524423,524359,590063,459015,524383,524319,589983,459031,524415,524351,590047,459023,524399,524335,590015,524303,524431,524367,590079]),9],l=[new Int32Array([327680,327696,327688,327704,327684,327700,327692,327708,327682,327698,327690,327706,327686,327702,327694,0,327681,327697,327689,327705,327685,327701,327693,327709,327683,327699,327691,327707,327687,327703,327695,0]),5];class FlateStream extends r.DecodeStream{constructor(e,t){super(t);this.str=e;this.dict=e.dict;const a=e.getByte(),r=e.getByte();if(-1===a||-1===r)throw new n.FormatError(`Invalid header in flate stream: ${a}, ${r}`);if(8!=(15&a))throw new n.FormatError(`Unknown compression method in flate stream: ${a}, ${r}`);if(((a<<8)+r)%31!=0)throw new n.FormatError(`Bad FCHECK in flate stream: ${a}, ${r}`);if(32&r)throw new n.FormatError(`FDICT bit set in flate stream: ${a}, ${r}`);this.codeSize=0;this.codeBuf=0}getBits(e){const t=this.str;let a,r=this.codeSize,i=this.codeBuf;for(;r>e;this.codeSize=r-=e;return a}getCode(e){const t=this.str,a=e[0],r=e[1];let i,s=this.codeSize,o=this.codeBuf;for(;s>16,h=65535&c;if(l<1||s>l;this.codeSize=s-l;return h}generateHuffmanTable(e){const t=e.length;let a,r=0;for(a=0;ar&&(r=e[a]);const n=1<>=1}for(a=e;a>=1;if(0===u){let t;if(-1===(t=a.getByte()))throw new n.FormatError("Bad block header in flate stream");let r=t;if(-1===(t=a.getByte()))throw new n.FormatError("Bad block header in flate stream");r|=t<<8;if(-1===(t=a.getByte()))throw new n.FormatError("Bad block header in flate stream");let i=t;if(-1===(t=a.getByte()))throw new n.FormatError("Bad block header in flate stream");i|=t<<8;if(i!==(65535&~r)&&(0!==r||0!==i))throw new n.FormatError("Bad uncompressed block length in flate stream");this.codeBuf=0;this.codeSize=0;const s=this.bufferLength,o=s+r;e=this.ensureBuffer(o);this.bufferLength=o;if(0===r)-1===a.peekByte()&&(this.eof=!0);else{const t=a.getBytes(r);e.set(t,s);t.length0;)u[o++]=g}r=this.generateHuffmanTable(u.subarray(0,e));h=this.generateHuffmanTable(u.subarray(e,l))}}e=this.buffer;let d=e?e.length:0,f=this.bufferLength;for(;;){let a=this.getCode(r);if(a<256){if(f+1>=d){e=this.ensureBuffer(f+1);d=e.length}e[f++]=a;continue}if(256===a){this.bufferLength=f;return}a-=257;a=s[a];let n=a>>16;n>0&&(n=this.getBits(n));t=(65535&a)+n;a=this.getCode(h);a=o[a];n=a>>16;n>0&&(n=this.getBits(n));const i=(65535&a)+n;if(f+t>=d){e=this.ensureBuffer(f+t);d=e.length}for(let a=0;a{Object.defineProperty(t,"__esModule",{value:!0});t.Jbig2Stream=void 0;var r=a(9),n=a(29),i=a(5),s=a(35),o=a(2);class Jbig2Stream extends n.DecodeStream{constructor(e,t,a){super(t);this.stream=e;this.dict=e.dict;this.maybeLength=t;this.params=a}get bytes(){return(0,o.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength))}ensureBuffer(e){}readBlock(){if(this.eof)return;const e=new s.Jbig2Image,t=[];if(this.params instanceof i.Dict){const e=this.params.get("JBIG2Globals");if(e instanceof r.BaseStream){const a=e.getBytes();t.push({data:a,start:0,end:a.length})}}t.push({data:this.bytes,start:0,end:this.bytes.length});const a=e.parseChunks(t),n=a.length;for(let e=0;e{Object.defineProperty(t,"__esModule",{value:!0});t.Jbig2Image=void 0;var r=a(2),n=a(8),i=a(36),s=a(32);class Jbig2Error extends r.BaseException{constructor(e){super(`JBIG2 error: ${e}`,"Jbig2Error")}}class ContextCache{getContexts(e){return e in this?this[e]:this[e]=new Int8Array(65536)}}class DecodingContext{constructor(e,t,a){this.data=e;this.start=t;this.end=a}get decoder(){const e=new i.ArithmeticDecoder(this.data,this.start,this.end);return(0,r.shadow)(this,"decoder",e)}get contextCache(){const e=new ContextCache;return(0,r.shadow)(this,"contextCache",e)}}function decodeInteger(e,t,a){const r=e.getContexts(t);let n=1;function readBits(e){let t=0;for(let i=0;i>>0}const i=readBits(1),s=readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(32)+4436:readBits(12)+340:readBits(8)+84:readBits(6)+20:readBits(4)+4:readBits(2);return 0===i?s:s>0?-s:null}function decodeIAID(e,t,a){const r=e.getContexts("IAID");let n=1;for(let e=0;e=O&&j=T){q=q<<1&y;for(b=0;b=0&&_=0){U=N[$][_];U&&(q|=U<=e?l<<=1:l=l<<1|C[o][c]}for(p=0;p=x||c<0||c>=S?l<<=1:l=l<<1|r[o][c]}const h=v.readBit(F,l);t[s]=h}}return C}function decodeTextRegion(e,t,a,r,n,i,s,o,c,l,h,u,d,f,g,p,m,b,y){if(e&&t)throw new Jbig2Error("refinement with Huffman is not supported");const w=[];let S,x;for(S=0;S1&&(n=e?y.readBits(b):decodeInteger(C,"IAIT",k));const i=s*v+n,F=e?f.symbolIDTable.decode(y):decodeIAID(C,k,c),O=t&&(e?y.readBit():decodeInteger(C,"IARI",k));let T=o[F],M=T[0].length,E=T.length;if(O){const e=decodeInteger(C,"IARDW",k),t=decodeInteger(C,"IARDH",k),a=decodeInteger(C,"IARDX",k),r=decodeInteger(C,"IARDY",k);M+=e;E+=t;T=decodeRefinement(M,E,g,T,(e>>1)+a,(t>>1)+r,!1,p,m)}const D=i-(1&u?0:E-1),N=r-(2&u?M-1:0);let L,R,j;if(l){for(L=0;L>5&7;const h=[31&c];let u=t+6;if(7===c){l=536870911&(0,n.readUint32)(e,u-1);u+=3;let t=l+7>>3;h[0]=e[u++];for(;--t>0;)h.push(e[u++])}else if(5===c||6===c)throw new Jbig2Error("invalid referred-to flags");a.retainBits=h;let f=4;a.number<=256?f=1:a.number<=65536&&(f=2);const g=[];let p,m;for(p=0;p>>24&255;i[3]=t.height>>16&255;i[4]=t.height>>8&255;i[5]=255&t.height;for(p=u,m=e.length;p>2&3;e.huffmanDWSelector=t>>4&3;e.bitmapSizeSelector=t>>6&1;e.aggregationInstancesSelector=t>>7&1;e.bitmapCodingContextUsed=!!(256&t);e.bitmapCodingContextRetained=!!(512&t);e.template=t>>10&3;e.refinementTemplate=t>>12&1;h+=2;if(!e.huffman){l=0===e.template?4:1;o=[];for(c=0;c>2&3;u.stripSize=1<>4&3;u.transposed=!!(64&f);u.combinationOperator=f>>7&3;u.defaultPixelValue=f>>9&1;u.dsOffset=f<<17>>27;u.refinementTemplate=f>>15&1;if(u.huffman){const e=(0,n.readUint16)(r,h);h+=2;u.huffmanFS=3&e;u.huffmanDS=e>>2&3;u.huffmanDT=e>>4&3;u.huffmanRefinementDW=e>>6&3;u.huffmanRefinementDH=e>>8&3;u.huffmanRefinementDX=e>>10&3;u.huffmanRefinementDY=e>>12&3;u.huffmanRefinementSizeSelector=!!(16384&e)}if(u.refinement&&!u.refinementTemplate){o=[];for(c=0;c<2;c++){o.push({x:(0,n.readInt8)(r,h),y:(0,n.readInt8)(r,h+1)});h+=2}u.refinementAt=o}u.numberOfSymbolInstances=(0,n.readUint32)(r,h);h+=4;s=[u,a.referredTo,r,h,i];break;case 16:const g={},p=r[h++];g.mmr=!!(1&p);g.template=p>>1&3;g.patternWidth=r[h++];g.patternHeight=r[h++];g.maxPatternIndex=(0,n.readUint32)(r,h);h+=4;s=[g,a.number,r,h,i];break;case 22:case 23:const m={};m.info=readRegionSegmentInformation(r,h);h+=d;const b=r[h++];m.mmr=!!(1&b);m.template=b>>1&3;m.enableSkip=!!(8&b);m.combinationOperator=b>>4&7;m.defaultPixelValue=b>>7&1;m.gridWidth=(0,n.readUint32)(r,h);h+=4;m.gridHeight=(0,n.readUint32)(r,h);h+=4;m.gridOffsetX=4294967295&(0,n.readUint32)(r,h);h+=4;m.gridOffsetY=4294967295&(0,n.readUint32)(r,h);h+=4;m.gridVectorX=(0,n.readUint16)(r,h);h+=2;m.gridVectorY=(0,n.readUint16)(r,h);h+=2;s=[m,a.referredTo,r,h,i];break;case 38:case 39:const y={};y.info=readRegionSegmentInformation(r,h);h+=d;const w=r[h++];y.mmr=!!(1&w);y.template=w>>1&3;y.prediction=!!(8&w);if(!y.mmr){l=0===y.template?4:1;o=[];for(c=0;c>2&1;S.combinationOperator=x>>3&3;S.requiresBuffer=!!(32&x);S.combinationOperatorOverride=!!(64&x);s=[S];break;case 49:case 50:case 51:case 62:break;case 53:s=[a.number,r,h,i];break;default:throw new Jbig2Error(`segment type ${a.typeName}(${a.type}) is not implemented`)}const u="on"+a.typeName;u in t&&t[u].apply(t,s)}function processSegments(e,t){for(let a=0,r=e.length;a>3,a=new Uint8ClampedArray(t*e.height);e.defaultPixelValue&&a.fill(255);this.buffer=a}drawBitmap(e,t){const a=this.currentPageInfo,r=e.width,n=e.height,i=a.width+7>>3,s=a.combinationOperatorOverride?e.combinationOperator:a.combinationOperator,o=this.buffer,c=128>>(7&e.x);let l,h,u,d,f=e.y*i+(e.x>>3);switch(s){case 0:for(l=0;l>=1;if(!u){u=128;d++}}f+=i}break;case 2:for(l=0;l>=1;if(!u){u=128;d++}}f+=i}break;default:throw new Jbig2Error(`operator ${s} is not supported`)}}onImmediateGenericRegion(e,t,a,r){const n=e.info,i=new DecodingContext(t,a,r),s=decodeBitmap(e.mmr,n.width,n.height,e.template,e.prediction,null,e.at,i);this.drawBitmap(n,s)}onImmediateLosslessGenericRegion(){this.onImmediateGenericRegion.apply(this,arguments)}onSymbolDictionary(e,t,a,r,i,s){let o,c;if(e.huffman){o=function getSymbolDictionaryHuffmanTables(e,t,a){let r,n,i,s,o=0;switch(e.huffmanDHSelector){case 0:case 1:r=getStandardTable(e.huffmanDHSelector+4);break;case 3:r=getCustomHuffmanTable(o,t,a);o++;break;default:throw new Jbig2Error("invalid Huffman DH selector")}switch(e.huffmanDWSelector){case 0:case 1:n=getStandardTable(e.huffmanDWSelector+2);break;case 3:n=getCustomHuffmanTable(o,t,a);o++;break;default:throw new Jbig2Error("invalid Huffman DW selector")}if(e.bitmapSizeSelector){i=getCustomHuffmanTable(o,t,a);o++}else i=getStandardTable(1);s=e.aggregationInstancesSelector?getCustomHuffmanTable(o,t,a):getStandardTable(1);return{tableDeltaHeight:r,tableDeltaWidth:n,tableBitmapSize:i,tableAggregateInstances:s}}(e,a,this.customTables);c=new Reader(r,i,s)}let l=this.symbols;l||(this.symbols=l={});let h=[];for(let e=0,t=a.length;e1)y=decodeTextRegion(e,t,r,g,0,n,1,a.concat(f),p,0,0,1,0,s,l,h,u,0,d);else{const e=decodeIAID(b,m,p),t=decodeInteger(b,"IARDX",m),n=decodeInteger(b,"IARDY",m);y=decodeRefinement(r,g,l,e=32){let a,r,s;switch(t){case 32:if(0===e)throw new Jbig2Error("no previous value in symbol ID table");r=n.readBits(2)+3;a=i[e-1].prefixLength;break;case 33:r=n.readBits(3)+3;a=0;break;case 34:r=n.readBits(7)+11;a=0;break;default:throw new Jbig2Error("invalid code length in symbol ID table")}for(s=0;s=0;b--){M=e?decodeMMRBitmap(T,l,h,!0):decodeBitmap(!1,l,h,a,!1,null,F,p);O[b]=M}for(E=0;E=0;y--){N^=O[y][E][D];L|=N<>8;$=d+E*f-D*g>>8;if(j>=0&&j+k<=r&&$>=0&&$+C<=i)for(b=0;b=i)){U=m[t];_=R[b];for(y=0;y=0&&e>1&7),l=1+(r>>4&7),h=[];let u,d,f=i;do{u=o.readBits(c);d=o.readBits(l);h.push(new HuffmanLine([f,u,d,0]));f+=1<>t&1;if(t<=0)this.children[a]=new HuffmanTreeNode(e);else{let r=this.children[a];r||(this.children[a]=r=new HuffmanTreeNode(null));r.buildTree(e,t-1)}}decodeNode(e){if(this.isLeaf){if(this.isOOB)return null;const t=e.readBits(this.rangeLength);return this.rangeLow+(this.isLowerRange?-t:t)}const t=this.children[e.readBit()];if(!t)throw new Jbig2Error("invalid Huffman data");return t.decodeNode(e)}}class HuffmanTable{constructor(e,t){t||this.assignPrefixCodes(e);this.rootNode=new HuffmanTreeNode(null);for(let t=0,a=e.length;t0&&this.rootNode.buildTree(a,a.prefixLength-1)}}decode(e){return this.rootNode.decodeNode(e)}assignPrefixCodes(e){const t=e.length;let a=0;for(let r=0;r=this.end)throw new Jbig2Error("end of data while reading bit");this.currentByte=this.data[this.position++];this.shift=7}const e=this.currentByte>>this.shift&1;this.shift--;return e}readBits(e){let t,a=0;for(t=e-1;t>=0;t--)a|=this.readBit()<=this.end?-1:this.data[this.position++]}}function getCustomHuffmanTable(e,t,a){let r=0;for(let n=0,i=t.length;n>a&1;a--}}if(r&&!l){const e=5;for(let t=0;t>=1}}return{imgData:u,width:c,height:l}}(e);this.width=a;this.height=r;return t}}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ArithmeticDecoder=void 0;const a=[{qe:22017,nmps:1,nlps:1,switchFlag:1},{qe:13313,nmps:2,nlps:6,switchFlag:0},{qe:6145,nmps:3,nlps:9,switchFlag:0},{qe:2753,nmps:4,nlps:12,switchFlag:0},{qe:1313,nmps:5,nlps:29,switchFlag:0},{qe:545,nmps:38,nlps:33,switchFlag:0},{qe:22017,nmps:7,nlps:6,switchFlag:1},{qe:21505,nmps:8,nlps:14,switchFlag:0},{qe:18433,nmps:9,nlps:14,switchFlag:0},{qe:14337,nmps:10,nlps:14,switchFlag:0},{qe:12289,nmps:11,nlps:17,switchFlag:0},{qe:9217,nmps:12,nlps:18,switchFlag:0},{qe:7169,nmps:13,nlps:20,switchFlag:0},{qe:5633,nmps:29,nlps:21,switchFlag:0},{qe:22017,nmps:15,nlps:14,switchFlag:1},{qe:21505,nmps:16,nlps:14,switchFlag:0},{qe:20737,nmps:17,nlps:15,switchFlag:0},{qe:18433,nmps:18,nlps:16,switchFlag:0},{qe:14337,nmps:19,nlps:17,switchFlag:0},{qe:13313,nmps:20,nlps:18,switchFlag:0},{qe:12289,nmps:21,nlps:19,switchFlag:0},{qe:10241,nmps:22,nlps:19,switchFlag:0},{qe:9217,nmps:23,nlps:20,switchFlag:0},{qe:8705,nmps:24,nlps:21,switchFlag:0},{qe:7169,nmps:25,nlps:22,switchFlag:0},{qe:6145,nmps:26,nlps:23,switchFlag:0},{qe:5633,nmps:27,nlps:24,switchFlag:0},{qe:5121,nmps:28,nlps:25,switchFlag:0},{qe:4609,nmps:29,nlps:26,switchFlag:0},{qe:4353,nmps:30,nlps:27,switchFlag:0},{qe:2753,nmps:31,nlps:28,switchFlag:0},{qe:2497,nmps:32,nlps:29,switchFlag:0},{qe:2209,nmps:33,nlps:30,switchFlag:0},{qe:1313,nmps:34,nlps:31,switchFlag:0},{qe:1089,nmps:35,nlps:32,switchFlag:0},{qe:673,nmps:36,nlps:33,switchFlag:0},{qe:545,nmps:37,nlps:34,switchFlag:0},{qe:321,nmps:38,nlps:35,switchFlag:0},{qe:273,nmps:39,nlps:36,switchFlag:0},{qe:133,nmps:40,nlps:37,switchFlag:0},{qe:73,nmps:41,nlps:38,switchFlag:0},{qe:37,nmps:42,nlps:39,switchFlag:0},{qe:21,nmps:43,nlps:40,switchFlag:0},{qe:9,nmps:44,nlps:41,switchFlag:0},{qe:5,nmps:45,nlps:42,switchFlag:0},{qe:1,nmps:45,nlps:43,switchFlag:0},{qe:22017,nmps:46,nlps:46,switchFlag:0}];t.ArithmeticDecoder=class ArithmeticDecoder{constructor(e,t,a){this.data=e;this.bp=t;this.dataEnd=a;this.chigh=e[t];this.clow=0;this.byteIn();this.chigh=this.chigh<<7&65535|this.clow>>9&127;this.clow=this.clow<<7&65535;this.ct-=7;this.a=32768}byteIn(){const e=this.data;let t=this.bp;if(255===e[t])if(e[t+1]>143){this.clow+=65280;this.ct=8}else{t++;this.clow+=e[t]<<9;this.ct=7;this.bp=t}else{t++;this.clow+=t65535){this.chigh+=this.clow>>16;this.clow&=65535}}readBit(e,t){let r=e[t]>>1,n=1&e[t];const i=a[r],s=i.qe;let o,c=this.a-s;if(this.chigh>15&1;this.clow=this.clow<<1&65535;this.ct--}while(0==(32768&c));this.a=c;e[t]=r<<1|n;return o}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.JpegStream=void 0;var r=a(29),n=a(5),i=a(38),s=a(2);class JpegStream extends r.DecodeStream{constructor(e,t,a){let r;for(;-1!==(r=e.getByte());)if(255===r){e.skip(-1);break}super(t);this.stream=e;this.dict=e.dict;this.maybeLength=t;this.params=a}get bytes(){return(0,s.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength))}ensureBuffer(e){}readBlock(){if(this.eof)return;const e={decodeTransform:void 0,colorTransform:void 0},t=this.dict.getArray("D","Decode");if(this.forceRGB&&Array.isArray(t)){const a=this.dict.get("BPC","BitsPerComponent")||8,r=t.length,n=new Int32Array(r);let i=!1;const s=(1<{Object.defineProperty(t,"__esModule",{value:!0});t.JpegImage=void 0;var r=a(2),n=a(8);class JpegError extends r.BaseException{constructor(e){super(`JPEG error: ${e}`,"JpegError")}}class DNLMarkerError extends r.BaseException{constructor(e,t){super(e,"DNLMarkerError");this.scanLines=t}}class EOIMarkerError extends r.BaseException{constructor(e){super(e,"EOIMarkerError")}}const i=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),s=4017,o=799,c=3406,l=2276,h=1567,u=3784,d=5793,f=2896;function buildHuffmanTable(e,t){let a,r,n=0,i=16;for(;i>0&&!e[i-1];)i--;const s=[{children:[],index:0}];let o,c=s[0];for(a=0;a0;)c=s.pop();c.index++;s.push(c);for(;s.length<=a;){s.push(o={children:[],index:0});c.children[c.index]=o.children;c=o}n++}if(a+10){b--;return m>>b&1}m=e[t++];if(255===m){const r=e[t++];if(r){if(220===r&&d){t+=2;const r=(0,n.readUint16)(e,t);t+=2;if(r>0&&r!==a.scanLines)throw new DNLMarkerError("Found DNL marker (0xFFDC) while parsing scan data",r)}else if(217===r){if(d){const e=x*(8===a.precision?8:0);if(e>0&&Math.round(a.scanLines/e)>=10)throw new DNLMarkerError("Found EOI marker (0xFFD9) while parsing scan data, possibly caused by incorrect `scanLines` parameter",e)}throw new EOIMarkerError("Found EOI marker (0xFFD9) while parsing scan data")}throw new JpegError(`unexpected marker ${(m<<8|r).toString(16)}`)}}b=7;return m>>>7}function decodeHuffman(e){let t=e;for(;;){t=t[readBit()];switch(typeof t){case"number":return t;case"object":continue}throw new JpegError("invalid huffman sequence")}}function receive(e){let t=0;for(;e>0;){t=t<<1|readBit();e--}return t}function receiveAndExtend(e){if(1===e)return 1===readBit()?1:-1;const t=receive(e);return t>=1<0){y--;return}let a=c;const r=l;for(;a<=r;){const r=decodeHuffman(e.huffmanTableAC),n=15&r,s=r>>4;if(0===n){if(s<15){y=receive(s)+(1<>4;if(0===n)if(o<15){y=receive(o)+(1<>4;if(0===r){if(s<15)break;n+=16;continue}n+=s;const o=i[n];e.blockData[t+o]=receiveAndExtend(r);n++}};let E,D,N,L,R=0;D=1===k?s[0].blocksPerLine*s[0].blocksPerColumn:f*a.mcusPerColumn;for(;R<=D;){const a=o?Math.min(D-R,o):D;if(a>0){for(v=0;v0?"unexpected":"excessive";(0,r.warn)(`decodeScan - ${e} MCU data, current marker is: ${E.invalid}`);t=E.offset}if(!(E.marker>=65488&&E.marker<=65495))break;t+=2}return t-p}function quantizeAndInverse(e,t,a){const r=e.quantizationTable,n=e.blockData;let i,g,p,m,b,y,w,S,x,k,C,v,F,O,T,M,E;if(!r)throw new JpegError("missing required Quantization Table.");for(let e=0;e<64;e+=8){x=n[t+e];k=n[t+e+1];C=n[t+e+2];v=n[t+e+3];F=n[t+e+4];O=n[t+e+5];T=n[t+e+6];M=n[t+e+7];x*=r[e];if(0!=(k|C|v|F|O|T|M)){k*=r[e+1];C*=r[e+2];v*=r[e+3];F*=r[e+4];O*=r[e+5];T*=r[e+6];M*=r[e+7];i=d*x+128>>8;g=d*F+128>>8;p=C;m=T;b=f*(k-M)+128>>8;S=f*(k+M)+128>>8;y=v<<4;w=O<<4;i=i+g+1>>1;g=i-g;E=p*u+m*h+128>>8;p=p*h-m*u+128>>8;m=E;b=b+w+1>>1;w=b-w;S=S+y+1>>1;y=S-y;i=i+m+1>>1;m=i-m;g=g+p+1>>1;p=g-p;E=b*l+S*c+2048>>12;b=b*c-S*l+2048>>12;S=E;E=y*o+w*s+2048>>12;y=y*s-w*o+2048>>12;w=E;a[e]=i+S;a[e+7]=i-S;a[e+1]=g+w;a[e+6]=g-w;a[e+2]=p+y;a[e+5]=p-y;a[e+3]=m+b;a[e+4]=m-b}else{E=d*x+512>>10;a[e]=E;a[e+1]=E;a[e+2]=E;a[e+3]=E;a[e+4]=E;a[e+5]=E;a[e+6]=E;a[e+7]=E}}for(let e=0;e<8;++e){x=a[e];k=a[e+8];C=a[e+16];v=a[e+24];F=a[e+32];O=a[e+40];T=a[e+48];M=a[e+56];if(0!=(k|C|v|F|O|T|M)){i=d*x+2048>>12;g=d*F+2048>>12;p=C;m=T;b=f*(k-M)+2048>>12;S=f*(k+M)+2048>>12;y=v;w=O;i=4112+(i+g+1>>1);g=i-g;E=p*u+m*h+2048>>12;p=p*h-m*u+2048>>12;m=E;b=b+w+1>>1;w=b-w;S=S+y+1>>1;y=S-y;i=i+m+1>>1;m=i-m;g=g+p+1>>1;p=g-p;E=b*l+S*c+2048>>12;b=b*c-S*l+2048>>12;S=E;E=y*o+w*s+2048>>12;y=y*s-w*o+2048>>12;w=E;x=i+S;M=i-S;k=g+w;T=g-w;C=p+y;O=p-y;v=m+b;F=m-b;x<16?x=0:x>=4080?x=255:x>>=4;k<16?k=0:k>=4080?k=255:k>>=4;C<16?C=0:C>=4080?C=255:C>>=4;v<16?v=0:v>=4080?v=255:v>>=4;F<16?F=0:F>=4080?F=255:F>>=4;O<16?O=0:O>=4080?O=255:O>>=4;T<16?T=0:T>=4080?T=255:T>>=4;M<16?M=0:M>=4080?M=255:M>>=4;n[t+e]=x;n[t+e+8]=k;n[t+e+16]=C;n[t+e+24]=v;n[t+e+32]=F;n[t+e+40]=O;n[t+e+48]=T;n[t+e+56]=M}else{E=d*x+8192>>14;E=E<-2040?0:E>=2024?255:E+2056>>4;n[t+e]=E;n[t+e+8]=E;n[t+e+16]=E;n[t+e+24]=E;n[t+e+32]=E;n[t+e+40]=E;n[t+e+48]=E;n[t+e+56]=E}}}function buildComponentData(e,t){const a=t.blocksPerLine,r=t.blocksPerColumn,n=new Int16Array(64);for(let e=0;e=r)return null;const s=(0,n.readUint16)(e,t);if(s>=65472&&s<=65534)return{invalid:null,marker:s,offset:t};let o=(0,n.readUint16)(e,i);for(;!(o>=65472&&o<=65534);){if(++i>=r)return null;o=(0,n.readUint16)(e,i)}return{invalid:s.toString(16),marker:o,offset:i}}t.JpegImage=class JpegImage{constructor({decodeTransform:e=null,colorTransform:t=-1}={}){this._decodeTransform=e;this._colorTransform=t}parse(e,{dnlScanLines:t=null}={}){function readDataBlock(){const t=(0,n.readUint16)(e,o);o+=2;let a=o+t-2;const i=findNextFileMarker(e,a,o);if(i&&i.invalid){(0,r.warn)("readDataBlock - incorrect length, current marker is: "+i.invalid);a=i.offset}const s=e.subarray(o,a);o+=s.length;return s}function prepareComponents(e){const t=Math.ceil(e.samplesPerLine/8/e.maxH),a=Math.ceil(e.scanLines/8/e.maxV);for(let r=0,n=e.components.length;r>4==0)for(m=0;m<64;m++){x=i[m];a[x]=e[o++]}else{if(t>>4!=1)throw new JpegError("DQT - invalid table spec");for(m=0;m<64;m++){x=i[m];a[x]=(0,n.readUint16)(e,o);o+=2}}u[15&t]=a}break;case 65472:case 65473:case 65474:if(a)throw new JpegError("Only single frame JPEGs supported");o+=2;a={};a.extended=65473===g;a.progressive=65474===g;a.precision=e[o++];const k=(0,n.readUint16)(e,o);o+=2;a.scanLines=t||k;a.samplesPerLine=(0,n.readUint16)(e,o);o+=2;a.components=[];a.componentIds={};const C=e[o++];let v=0,F=0;for(p=0;p>4,n=15&e[o+1];v>4==0?f:d)[15&t]=buildHuffmanTable(a,n)}break;case 65501:o+=2;s=(0,n.readUint16)(e,o);o+=2;break;case 65498:const T=1==++h&&!t;o+=2;const M=e[o++],E=[];for(p=0;p>4];n.huffmanTableAC=d[15&i];E.push(n)}const D=e[o++],N=e[o++],L=e[o++];try{const t=decodeScan(e,o,a,E,s,D,N,L>>4,15&L,T);o+=t}catch(t){if(t instanceof DNLMarkerError){(0,r.warn)(`${t.message} -- attempting to re-parse the JPEG image.`);return this.parse(e,{dnlScanLines:t.scanLines})}if(t instanceof EOIMarkerError){(0,r.warn)(`${t.message} -- ignoring the rest of the image data.`);break e}throw t}break;case 65500:o+=4;break;case 65535:255!==e[o]&&o--;break;default:const R=findNextFileMarker(e,o-2,o-3);if(R&&R.invalid){(0,r.warn)("JpegImage.parse - unexpected data, current marker is: "+R.invalid);o=R.offset;break}if(!R||o>=e.length-1){(0,r.warn)("JpegImage.parse - reached the end of the image data without finding an EOI marker (0xFFD9).");break e}throw new JpegError("JpegImage.parse - unknown marker: "+g.toString(16))}g=(0,n.readUint16)(e,o);o+=2}this.width=a.samplesPerLine;this.height=a.scanLines;this.jfif=c;this.adobe=l;this.components=[];for(let e=0,t=a.components.length;e>8)+C[f+1];return w}get _isColorConversionNeeded(){return this.adobe?!!this.adobe.transformCode:3===this.numComponents?0!==this._colorTransform&&(82!==this.components[0].index||71!==this.components[1].index||66!==this.components[2].index):1===this._colorTransform}_convertYccToRgb(e){let t,a,r;for(let n=0,i=e.length;n4)throw new JpegError("Unsupported color mode");const n=this._getLinearizedBlockData(e,t,r);if(1===this.numComponents&&a){const e=n.length,t=new Uint8ClampedArray(3*e);let a=0;for(let r=0;r{Object.defineProperty(t,"__esModule",{value:!0});t.JpxStream=void 0;var r=a(29),n=a(40),i=a(2);class JpxStream extends r.DecodeStream{constructor(e,t,a){super(t);this.stream=e;this.dict=e.dict;this.maybeLength=t;this.params=a}get bytes(){return(0,i.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength))}ensureBuffer(e){}readBlock(){if(this.eof)return;const e=new n.JpxImage;e.parse(this.bytes);const t=e.width,a=e.height,r=e.componentsCount,i=e.tiles.length;if(1===i)this.buffer=e.tiles[0].items;else{const n=new Uint8ClampedArray(t*a*r);for(let a=0;a{Object.defineProperty(t,"__esModule",{value:!0});t.JpxImage=void 0;var r=a(2),n=a(8),i=a(36);class JpxError extends r.BaseException{constructor(e){super(`JPX error: ${e}`,"JpxError")}}const s={LL:0,LH:1,HL:1,HH:2};t.JpxImage=class JpxImage{constructor(){this.failOnCorruptedImage=!1}parse(e){if(65359===(0,n.readUint16)(e,0)){this.parseCodestream(e,0,e.length);return}const t=e.length;let a=0;for(;a>24&255,o>>16&255,o>>8&255,255&o);(0,r.warn)(`Unsupported header type ${o} (${i}).`)}l&&(a+=c)}}parseImageProperties(e){let t=e.getByte();for(;t>=0;){const a=t;t=e.getByte();if(65361===(a<<8|t)){e.skip(4);const t=e.getInt32()>>>0,a=e.getInt32()>>>0,r=e.getInt32()>>>0,n=e.getInt32()>>>0;e.skip(16);const i=e.getUint16();this.width=t-r;this.height=a-n;this.componentsCount=i;this.bitsPerComponent=8;return}}throw new JpxError("No size marker found in JPX stream")}parseCodestream(e,t,a){const i={};let s=!1;try{let o=t;for(;o+1>5;l=[];for(;a>3;t.mu=0}else{t.epsilon=e[a]>>3;t.mu=(7&e[a])<<8|e[a+1];a+=2}l.push(t)}b.SPqcds=l;if(i.mainHeader)i.QCD=b;else{i.currentTile.QCD=b;i.currentTile.QCC=[]}break;case 65373:f=(0,n.readUint16)(e,o);const y={};a=o+2;let w;if(i.SIZ.Csiz<257)w=e[a++];else{w=(0,n.readUint16)(e,a);a+=2}c=e[a++];switch(31&c){case 0:h=8;u=!0;break;case 1:h=16;u=!1;break;case 2:h=16;u=!0;break;default:throw new Error("Invalid SQcd value "+c)}y.noQuantization=8===h;y.scalarExpounded=u;y.guardBits=c>>5;l=[];for(;a>3;t.mu=0}else{t.epsilon=e[a]>>3;t.mu=(7&e[a])<<8|e[a+1];a+=2}l.push(t)}y.SPqcds=l;i.mainHeader?i.QCC[w]=y:i.currentTile.QCC[w]=y;break;case 65362:f=(0,n.readUint16)(e,o);const S={};a=o+2;const x=e[a++];S.entropyCoderWithCustomPrecincts=!!(1&x);S.sopMarkerUsed=!!(2&x);S.ephMarkerUsed=!!(4&x);S.progressionOrder=e[a++];S.layersCount=(0,n.readUint16)(e,a);a+=2;S.multipleComponentTransform=e[a++];S.decompositionLevelsCount=e[a++];S.xcb=2+(15&e[a++]);S.ycb=2+(15&e[a++]);const k=e[a++];S.selectiveArithmeticCodingBypass=!!(1&k);S.resetContextProbabilities=!!(2&k);S.terminationOnEachCodingPass=!!(4&k);S.verticallyStripe=!!(8&k);S.predictableTermination=!!(16&k);S.segmentationSymbolUsed=!!(32&k);S.reversibleTransformation=e[a++];if(S.entropyCoderWithCustomPrecincts){const t=[];for(;a>4})}S.precinctsSizes=t}const C=[];S.selectiveArithmeticCodingBypass&&C.push("selectiveArithmeticCodingBypass");S.terminationOnEachCodingPass&&C.push("terminationOnEachCodingPass");S.verticallyStripe&&C.push("verticallyStripe");S.predictableTermination&&C.push("predictableTermination");if(C.length>0){s=!0;(0,r.warn)(`JPX: Unsupported COD options (${C.join(", ")}).`)}if(i.mainHeader)i.COD=S;else{i.currentTile.COD=S;i.currentTile.COC=[]}break;case 65424:f=(0,n.readUint16)(e,o);d={};d.index=(0,n.readUint16)(e,o+2);d.length=(0,n.readUint32)(e,o+4);d.dataEnd=d.length+o-2;d.partIndex=e[o+8];d.partsCount=e[o+9];i.mainHeader=!1;if(0===d.partIndex){d.COD=i.COD;d.COC=i.COC.slice(0);d.QCD=i.QCD;d.QCC=i.QCC.slice(0)}i.currentTile=d;break;case 65427:d=i.currentTile;if(0===d.partIndex){initializeTile(i,d.index);buildPackets(i)}f=d.dataEnd-o;parseTilePackets(i,e,o,f);break;case 65363:(0,r.warn)("JPX: Codestream code 0xFF53 (COC) is not implemented.");case 65365:case 65367:case 65368:case 65380:f=(0,n.readUint16)(e,o);break;default:throw new Error("Unknown codestream code: "+t.toString(16))}o+=f}}catch(e){if(s||this.failOnCorruptedImage)throw new JpxError(e.message);(0,r.warn)(`JPX: Trying to recover from: "${e.message}".`)}this.tiles=function transformComponents(e){const t=e.SIZ,a=e.components,r=t.Csiz,n=[];for(let t=0,i=e.tiles.length;t>2);c[b++]=e+m>>h;c[b++]=e>>h;c[b++]=e+p>>h}else for(d=0;d>h;c[b++]=g-.34413*p-.71414*m>>h;c[b++]=g+1.772*p>>h}if(e)for(d=0,b=3;d>h}else for(let e=0;e>h;b+=r}}n.push(l)}return n}(i);this.width=i.SIZ.Xsiz-i.SIZ.XOsiz;this.height=i.SIZ.Ysiz-i.SIZ.YOsiz;this.componentsCount=i.SIZ.Csiz}};function calculateComponentDimensions(e,t){e.x0=Math.ceil(t.XOsiz/e.XRsiz);e.x1=Math.ceil(t.Xsiz/e.XRsiz);e.y0=Math.ceil(t.YOsiz/e.YRsiz);e.y1=Math.ceil(t.Ysiz/e.YRsiz);e.width=e.x1-e.x0;e.height=e.y1-e.y0}function calculateTileGrids(e,t){const a=e.SIZ,r=[];let n;const i=Math.ceil((a.Xsiz-a.XTOsiz)/a.XTsiz),s=Math.ceil((a.Ysiz-a.YTOsiz)/a.YTsiz);for(let e=0;e0?Math.min(r.xcb,n.PPx-1):Math.min(r.xcb,n.PPx);n.ycb_=a>0?Math.min(r.ycb,n.PPy-1):Math.min(r.ycb,n.PPy);return n}function buildPrecincts(e,t,a){const r=1<t.trx0?Math.ceil(t.trx1/r)-Math.floor(t.trx0/r):0,l=t.try1>t.try0?Math.ceil(t.try1/n)-Math.floor(t.try0/n):0,h=c*l;t.precinctParameters={precinctWidth:r,precinctHeight:n,numprecinctswide:c,numprecinctshigh:l,numprecincts:h,precinctWidthInSubband:s,precinctHeightInSubband:o}}function buildCodeblocks(e,t,a){const r=a.xcb_,n=a.ycb_,i=1<>r,c=t.tby0>>n,l=t.tbx1+i-1>>r,h=t.tby1+s-1>>n,u=t.resolution.precinctParameters,d=[],f=[];let g,p,m,b;for(p=c;pe.cbxMax&&(e.cbxMax=g);pe.cbyMax&&(e.cbyMax=p)}else f[b]=e={cbxMin:g,cbyMin:p,cbxMax:g,cbyMax:p};m.precinct=e}t.codeblockParameters={codeblockWidth:r,codeblockHeight:n,numcodeblockwide:l-o+1,numcodeblockhigh:h-c+1};t.codeblocks=d;t.precincts=f}function createPacket(e,t,a){const r=[],n=e.subbands;for(let e=0,a=n.length;ee.codingStyleParameters.decompositionLevelsCount)continue;const t=e.resolutions[c],a=t.precinctParameters.numprecincts;for(;he.codingStyleParameters.decompositionLevelsCount)continue;const t=e.resolutions[o],a=t.precinctParameters.numprecincts;for(;he.codingStyleParameters.decompositionLevelsCount)continue;const t=e.resolutions[o],a=t.precinctParameters.numprecincts;if(!(l>=a)){for(;s=0;--e){const a=t.resolutions[e],r=g*a.precinctParameters.precinctWidth,n=g*a.precinctParameters.precinctHeight;h=Math.min(h,r);u=Math.min(u,n);d=Math.max(d,a.precinctParameters.numprecinctswide);f=Math.max(f,a.precinctParameters.numprecinctshigh);l[e]={width:r,height:n};g<<=1}a=Math.min(a,h);r=Math.min(r,u);n=Math.max(n,d);i=Math.max(i,f);s[o]={resolutions:l,minWidth:h,minHeight:u,maxNumWide:d,maxNumHigh:f}}return{components:s,minWidth:a,minHeight:r,maxNumWide:n,maxNumHigh:i}}function buildPackets(e){const t=e.SIZ,a=e.currentTile.index,r=e.tiles[a],n=t.Csiz;for(let e=0;e>>o&(1<0;){const e=i.shift();o=e.codeblock;void 0===o.data&&(o.data=[]);o.data.push({data:t,start:a+s,end:a+s+e.dataLength,codingpasses:e.codingpasses});s+=e.dataLength}}return s}function copyCoefficients(e,t,a,r,n,s,c,l,h){const u=r.tbx0,d=r.tby0,f=r.tbx1-r.tbx0,g=r.codeblocks,p="H"===r.type.charAt(0)?1:0,m="H"===r.type.charAt(1)?t:0;for(let a=0,b=g.length;a=s?U:U*(1<0?1-e:0)}const p=t.subbands[r],m=s[p.type];copyCoefficients(i,a,0,p,g?1:2**(f+m-o)*(1+n/2048),h+o-1,g,u,d)}m.push({width:a,height:n,items:i})}const y=p.calculate(m,r.tcx0,r.tcy0);return{left:r.tcx0,top:r.tcy0,width:y.width,height:y.height,items:y.items}}function initializeTile(e,t){const a=e.SIZ.Csiz,r=e.tiles[t];for(let t=0;t>=1;t>>=1;r++}r--;a=this.levels[r];a.items[a.index]=n;this.currentLevel=r;delete this.value}incrementValue(){const e=this.levels[this.currentLevel];e.items[e.index]++}nextLevel(){let e=this.currentLevel,t=this.levels[e];const a=t.items[t.index];e--;if(e<0){this.value=a;return!1}this.currentLevel=e;t=this.levels[e];t.items[t.index]=a;return!0}}class InclusionTree{constructor(e,t,a){const r=(0,n.log2)(Math.max(e,t))+1;this.levels=[];for(let n=0;na){this.currentLevel=r;this.propagateValues();return!1}e>>=1;t>>=1;r++}this.currentLevel=r-1;return!0}incrementValue(e){const t=this.levels[this.currentLevel];t.items[t.index]=e+1;this.propagateValues()}propagateValues(){let e=this.currentLevel,t=this.levels[e];const a=t.items[t.index];for(;--e>=0;){t=this.levels[e];t.items[t.index]=a}}nextLevel(){let e=this.currentLevel,t=this.levels[e];const a=t.items[t.index];t.items[t.index]=255;e--;if(e<0)return!1;this.currentLevel=e;t=this.levels[e];t.items[t.index]=a;return!0}}const o=function BitModelClosure(){const e=17,t=new Uint8Array([0,5,8,0,3,7,8,0,4,7,8,0,0,0,0,0,1,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8]),a=new Uint8Array([0,3,4,0,5,7,7,0,8,8,8,0,0,0,0,0,1,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8]),r=new Uint8Array([0,1,2,0,1,2,2,0,2,2,2,0,0,0,0,0,3,4,5,0,4,5,5,0,5,5,5,0,0,0,0,0,6,7,7,0,7,7,7,0,7,7,7,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8]);return class BitModel{constructor(e,n,i,s,o){this.width=e;this.height=n;let c;c="HH"===i?r:"HL"===i?a:t;this.contextLabelTable=c;const l=e*n;this.neighborsSignificance=new Uint8Array(l);this.coefficentsSign=new Uint8Array(l);let h;h=o>14?new Uint32Array(l):o>6?new Uint16Array(l):new Uint8Array(l);this.coefficentsMagnitude=h;this.processingFlags=new Uint8Array(l);const u=new Uint8Array(l);if(0!==s)for(let e=0;e0,o=t+10){c=a-n;s&&(r[c-1]+=16);o&&(r[c+1]+=16);r[c]+=4}if(e+1=a)break;s[d]&=-2;if(r[d]||!i[d])continue;const g=c[i[d]];if(e.readBit(o,g)){const e=this.decodeSignBit(t,u,d);n[d]=e;r[d]=1;this.setNeighborsSignificance(t,u,d);s[d]|=2}l[d]++;s[d]|=1}}}decodeSignBit(e,t,a){const r=this.width,n=this.height,i=this.coefficentsMagnitude,s=this.coefficentsSign;let o,c,l,h,u,d;h=t>0&&0!==i[a-1];if(t+10&&0!==i[a-r];if(e+1=0){u=9+o;d=this.decoder.readBit(this.contexts,u)}else{u=9-o;d=1^this.decoder.readBit(this.contexts,u)}return d}runMagnitudeRefinementPass(){const e=this.decoder,t=this.width,a=this.height,r=this.coefficentsMagnitude,n=this.neighborsSignificance,i=this.contexts,s=this.bitsDecoded,o=this.processingFlags,c=t*a,l=4*t;for(let a,h=0;h>1;let n,i,s,o;const c=-1.586134342059924,l=-.052980118572961,h=.882911075530934,u=.443506852043971,d=1.230174104914001;n=(t|=0)-3;for(i=r+4;i--;n+=2)e[n]*=.8128930661159609;n=t-2;s=u*e[n-1];for(i=r+3;i--;n+=2){o=u*e[n+1];e[n]=d*e[n]-s-o;if(!i--)break;n+=2;s=u*e[n+1];e[n]=d*e[n]-s-o}n=t-1;s=h*e[n-1];for(i=r+2;i--;n+=2){o=h*e[n+1];e[n]-=s+o;if(!i--)break;n+=2;s=h*e[n+1];e[n]-=s+o}n=t;s=l*e[n-1];for(i=r+1;i--;n+=2){o=l*e[n+1];e[n]-=s+o;if(!i--)break;n+=2;s=l*e[n+1];e[n]-=s+o}if(0!==r){n=t+1;s=c*e[n-1];for(i=r;i--;n+=2){o=c*e[n+1];e[n]-=s+o;if(!i--)break;n+=2;s=c*e[n+1];e[n]-=s+o}}}}class ReversibleTransform extends Transform{filter(e,t,a){const r=a>>1;let n,i;for(n=t|=0,i=r+1;i--;n+=2)e[n]-=e[n-1]+e[n+1]+2>>2;for(n=t+1,i=r;i--;n+=2)e[n]+=e[n-1]+e[n+1]>>1}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.LZWStream=void 0;var r=a(29);class LZWStream extends r.DecodeStream{constructor(e,t,a){super(t);this.str=e;this.dict=e.dict;this.cachedData=0;this.bitsCached=0;const r=4096,n={earlyChange:a,codeLength:9,nextCode:258,dictionaryValues:new Uint8Array(r),dictionaryLengths:new Uint16Array(r),dictionaryPrevCodes:new Uint16Array(r),currentSequence:new Uint8Array(r),currentSequenceLength:0};for(let e=0;e<256;++e){n.dictionaryValues[e]=e;n.dictionaryLengths[e]=1}this.lzwState=n}readBits(e){let t=this.bitsCached,a=this.cachedData;for(;t>>t&(1<0;if(e<256){d[0]=e;f=1}else{if(!(e>=258)){if(256===e){h=9;s=258;f=0;continue}this.eof=!0;delete this.lzwState;break}if(e=0;t--){d[t]=o[a];a=l[a]}}else d[f++]=d[0]}if(n){l[s]=u;c[s]=c[u]+1;o[s]=d[0];s++;h=s+i&s+i-1?h:0|Math.min(Math.log(s+i)/.6931471805599453+1,12)}u=e;g+=f;if(r{Object.defineProperty(t,"__esModule",{value:!0});t.PredictorStream=void 0;var r=a(29),n=a(5),i=a(2);class PredictorStream extends r.DecodeStream{constructor(e,t,a){super(t);if(!(a instanceof n.Dict))return e;const r=this.predictor=a.get("Predictor")||1;if(r<=1)return e;if(2!==r&&(r<10||r>15))throw new i.FormatError(`Unsupported predictor: ${r}`);this.readBlock=2===r?this.readBlockTiff:this.readBlockPng;this.str=e;this.dict=e.dict;const s=this.colors=a.get("Colors")||1,o=this.bits=a.get("BPC","BitsPerComponent")||8,c=this.columns=a.get("Columns")||1;this.pixBytes=s*o+7>>3;this.rowBytes=c*s*o+7>>3;return this}readBlockTiff(){const e=this.rowBytes,t=this.bufferLength,a=this.ensureBuffer(t+e),r=this.bits,n=this.colors,i=this.str.getBytes(e);this.eof=!i.length;if(this.eof)return;let s,o=0,c=0,l=0,h=0,u=t;if(1===r&&1===n)for(s=0;s>1;e^=e>>2;e^=e>>4;o=(1&e)<<7;a[u++]=e}else if(8===r){for(s=0;s>8&255;a[u++]=255&e}}else{const e=new Uint8Array(n+1),u=(1<>l-r)&u;l-=r;c=c<=8){a[f++]=c>>h-8&255;h-=8}}h>0&&(a[f++]=(c<<8-h)+(o&(1<<8-h)-1))}this.bufferLength+=e}readBlockPng(){const e=this.rowBytes,t=this.pixBytes,a=this.str.getByte(),r=this.str.getBytes(e);this.eof=!r.length;if(this.eof)return;const n=this.bufferLength,s=this.ensureBuffer(n+e);let o=s.subarray(n-e,n);0===o.length&&(o=new Uint8Array(e));let c,l,h,u=n;switch(a){case 0:for(c=0;c>1)+r[c];for(;c>1)+r[c]&255;u++}break;case 4:for(c=0;c{Object.defineProperty(t,"__esModule",{value:!0});t.RunLengthStream=void 0;var r=a(29);class RunLengthStream extends r.DecodeStream{constructor(e,t){super(t);this.str=e;this.dict=e.dict}readBlock(){const e=this.str.getBytes(2);if(!e||e.length<2||128===e[0]){this.eof=!0;return}let t,a=this.bufferLength,r=e[0];if(r<128){t=this.ensureBuffer(a+r+1);t[a++]=e[1];if(r>0){const e=this.str.getBytes(r);t.set(e,a);a+=r}}else{r=257-r;const n=e[1];t=this.ensureBuffer(a+r+1);for(let e=0;e{Object.defineProperty(t,"__esModule",{value:!0});t.Font=t.ErrorFont=void 0;var r=a(2),n=a(45),i=a(18),s=a(21),o=a(20),c=a(19),l=a(47),h=a(48),u=a(49),d=a(50),f=a(51),g=a(52),p=a(26),m=a(53),b=a(8),y=a(10),w=a(54);const S=[[57344,63743],[1048576,1114109]],x=1e3,k=["ascent","bbox","black","bold","charProcOperatorList","composite","cssFontInfo","data","defaultVMetrics","defaultWidth","descent","fallbackName","fontMatrix","fontType","isType3Font","italic","loadedName","mimetype","missingFile","name","remeasure","subtype","type","vertical"],C=["cMap","defaultEncoding","differences","isMonospace","isSerifFont","isSymbolicFont","seacMap","toFontChar","toUnicode","vmetrics","widths"];function adjustWidths(e){if(!e.fontMatrix)return;if(e.fontMatrix[0]===r.FONT_IDENTITY_MATRIX[0])return;const t=.001/e.fontMatrix[0],a=e.widths;for(const e in a)a[e]*=t;e.defaultWidth*=t}function amendFallbackToUnicode(e){if(!e.fallbackToUnicode)return;if(e.toUnicode instanceof h.IdentityToUnicodeMap)return;const t=[];for(const a in e.fallbackToUnicode)e.toUnicode.has(a)||(t[a]=e.fallbackToUnicode[a]);t.length>0&&e.toUnicode.amend(t)}class Glyph{constructor(e,t,a,r,n,i,o,c,l){this.originalCharCode=e;this.fontChar=t;this.unicode=a;this.accent=r;this.width=n;this.vmetric=i;this.operatorListId=o;this.isSpace=c;this.isInFont=l;const h=(0,s.getCharUnicodeCategory)(a);this.isWhitespace=h.isWhitespace;this.isZeroWidthDiacritic=h.isZeroWidthDiacritic;this.isInvisibleFormatMark=h.isInvisibleFormatMark}matchesForCache(e,t,a,r,n,i,s,o,c){return this.originalCharCode===e&&this.fontChar===t&&this.unicode===a&&this.accent===r&&this.width===n&&this.vmetric===i&&this.operatorListId===s&&this.isSpace===o&&this.isInFont===c}}function int16(e,t){return(e<<8)+t}function writeSignedInt16(e,t,a){e[t+1]=a;e[t]=a>>>8}function signedInt16(e,t){const a=(e<<8)+t;return 32768&a?a-65536:a}function string16(e){return String.fromCharCode(e>>8&255,255&e)}function safeString16(e){e>32767?e=32767:e<-32768&&(e=-32768);return String.fromCharCode(e>>8&255,255&e)}function isTrueTypeCollectionFile(e){const t=e.peekBytes(4);return"ttcf"===(0,r.bytesToString)(t)}function getFontFileType(e,{type:t,subtype:a,composite:n}){let i,s;if(function isTrueTypeFile(e){const t=e.peekBytes(4);return 65536===(0,b.readUint32)(t,0)||"true"===(0,r.bytesToString)(t)}(e)||isTrueTypeCollectionFile(e))i=n?"CIDFontType2":"TrueType";else if(function isOpenTypeFile(e){const t=e.peekBytes(4);return"OTTO"===(0,r.bytesToString)(t)}(e))i=n?"CIDFontType2":"OpenType";else if(function isType1File(e){const t=e.peekBytes(2);return 37===t[0]&&33===t[1]||128===t[0]&&1===t[1]}(e))i=n?"CIDFontType0":"MMType1"===t?"MMType1":"Type1";else if(function isCFFFile(e){const t=e.peekBytes(4);return t[0]>=1&&t[3]>=1&&t[3]<=4}(e))if(n){i="CIDFontType0";s="CIDFontType0C"}else{i="MMType1"===t?"MMType1":"Type1";s="Type1C"}else{(0,r.warn)("getFontFileType: Unable to detect correct font file Type/Subtype.");i=t;s=a}return[i,s]}function applyStandardFontGlyphMap(e,t){for(const a in t)e[+a]=t[a]}function buildToFontChar(e,t,a){const r=[];let n;for(let a=0,i=e.length;ac){s++;if(s>=S.length){(0,r.warn)("Ran out of space in font private use area.");break}o=S[s][0];c=S[s][1]}const u=o++;0===h&&(h=a);n[u]=h;i[l]=u}return{toFontChar:i,charCodeToGlyphId:n,nextAvailableFontCharCode:o}}function createCmapTable(e,t){const a=function getRanges(e,t){const a=[];for(const r in e)e[r]>=t||a.push({fontCharCode:0|r,glyphId:e[r]});0===a.length&&a.push({fontCharCode:0,glyphId:0});a.sort((function fontGetRangesSort(e,t){return e.fontCharCode-t.fontCharCode}));const r=[],n=a.length;for(let e=0;e65535?2:1;let i,s,o,c,l="\0\0"+string16(n)+"\0\0"+(0,r.string32)(4+8*n);for(i=a.length-1;i>=0&&!(a[i][0]<=65535);--i);const h=i+1;a[i][0]<65535&&65535===a[i][1]&&(a[i][1]=65534);const u=a[i][1]<65535?1:0,d=h+u,f=m.OpenTypeFileBuilder.getSearchParams(d,2);let g,p,b,y,w="",S="",x="",k="",C="",v=0;for(i=0,s=h;i0){S+="ÿÿ";w+="ÿÿ";x+="\0";k+="\0\0"}const F="\0\0"+string16(2*d)+string16(f.range)+string16(f.entry)+string16(f.rangeShift)+S+"\0\0"+w+x+k+C;let O="",T="";if(n>1){l+="\0\0\n"+(0,r.string32)(4+8*n+4+F.length);O="";for(i=0,s=a.length;ie||!l)&&(l=e);h 123 are reserved for internal usage");c|=1<65535&&(h=65535)}else{l=0;h=255}const u=e.bbox||[0,0,0,0],d=a.unitsPerEm||1/(e.fontMatrix||r.FONT_IDENTITY_MATRIX)[0],f=e.ascentScaled?1:d/x,g=a.ascent||Math.round(f*(e.ascent||u[3]));let p=a.descent||Math.round(f*(e.descent||u[1]));p>0&&e.descent>0&&u[1]<0&&(p=-p);const m=a.yMax||g,b=-a.yMin||-p;return"\0$ô\0\0\0Š»\0\0\0ŒŠ»\0\0ß\x001\0\0\0\0"+String.fromCharCode(e.fixedPitch?9:0)+"\0\0\0\0\0\0"+(0,r.string32)(n)+(0,r.string32)(i)+(0,r.string32)(o)+(0,r.string32)(c)+"*21*"+string16(e.italicAngle?1:0)+string16(l||e.firstChar)+string16(h||e.lastChar)+string16(g)+string16(p)+"\0d"+string16(m)+string16(b)+"\0\0\0\0\0\0\0\0"+string16(e.xHeight)+string16(e.capHeight)+string16(0)+string16(l||e.firstChar)+"\0"}function createPostTable(e){const t=Math.floor(65536*e.italicAngle);return"\0\0\0"+(0,r.string32)(t)+"\0\0\0\0"+(0,r.string32)(e.fixedPitch?1:0)+"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}function createPostscriptName(e){return e.replace(/[^\x21-\x7E]|[[\](){}<>/%]/g,"").slice(0,63)}function createNameTable(e,t){t||(t=[[],[]]);const a=[t[0][0]||"Original licence",t[0][1]||e,t[0][2]||"Unknown",t[0][3]||"uniqueID",t[0][4]||e,t[0][5]||"Version 0.11",t[0][6]||createPostscriptName(e),t[0][7]||"Unknown",t[0][8]||"Unknown",t[0][9]||"Unknown"],r=[];let n,i,s,o,c;for(n=0,i=a.length;n0;if((p||m)&&"CIDFontType2"===a&&this.cidEncoding.startsWith("Identity-")){const a=e.cidToGidMap,r=[];applyStandardFontGlyphMap(r,(0,l.getGlyphMapForStandardFonts)());/Arial-?Black/i.test(t)?applyStandardFontGlyphMap(r,(0,l.getSupplementalGlyphMapForArialBlack)()):/Calibri/i.test(t)&&applyStandardFontGlyphMap(r,(0,l.getSupplementalGlyphMapForCalibri)());if(a){for(const e in r){const t=r[e];void 0!==a[t]&&(r[+e]=a[t])}a.length!==this.toUnicode.length&&e.hasIncludedToUnicodeMap&&this.toUnicode instanceof h.IdentityToUnicodeMap&&this.toUnicode.forEach((function(e,t){const n=r[e];void 0===a[n]&&(r[+e]=t)}))}this.toUnicode instanceof h.IdentityToUnicodeMap||this.toUnicode.forEach((function(e,t){r[+e]=t}));this.toFontChar=r;this.toUnicode=new h.ToUnicodeMap(r)}else if(/Symbol/i.test(u))this.toFontChar=buildToFontChar(c.SymbolSetEncoding,(0,o.getGlyphsUnicode)(),this.differences);else if(/Dingbats/i.test(u)){/Wingdings/i.test(t)&&(0,r.warn)("Non-embedded Wingdings font, falling back to ZapfDingbats.");this.toFontChar=buildToFontChar(c.ZapfDingbatsEncoding,(0,o.getDingbatsGlyphsUnicode)(),this.differences)}else if(p){const e=buildToFontChar(this.defaultEncoding,(0,o.getGlyphsUnicode)(),this.differences);"CIDFontType2"!==a||this.cidEncoding.startsWith("Identity-")||this.toUnicode instanceof h.IdentityToUnicodeMap||this.toUnicode.forEach((function(t,a){e[+t]=a}));this.toFontChar=e}else{const e=(0,o.getGlyphsUnicode)(),a=[];this.toUnicode.forEach(((t,r)=>{if(!this.composite){const a=this.differences[t]||this.defaultEncoding[t],n=(0,s.getUnicodeForGlyph)(a,e);-1!==n&&(r=n)}a[+t]=r}));this.composite&&this.toUnicode instanceof h.IdentityToUnicodeMap&&/Verdana/i.test(t)&&applyStandardFontGlyphMap(a,(0,l.getGlyphMapForStandardFonts)());this.toFontChar=a}amendFallbackToUnicode(e);this.loadedName=u.split("-")[0];this.fontType=(0,i.getFontType)(a,n,e.isStandardFont)}checkAndRepair(e,t,a){const s=["OS/2","cmap","head","hhea","hmtx","maxp","name","post","loca","glyf","fpgm","prep","cvt ","CFF "];function readTables(e,t){const a=Object.create(null);a["OS/2"]=null;a.cmap=null;a.head=null;a.hhea=null;a.hmtx=null;a.maxp=null;a.name=null;a.post=null;for(let r=0;r>>0,r=e.getInt32()>>>0,n=e.getInt32()>>>0,i=e.pos;e.pos=e.start?e.start:0;e.skip(r);const s=e.getBytes(n);e.pos=i;if("head"===t){s[8]=s[9]=s[10]=s[11]=0;s[17]|=32}return{tag:t,checksum:a,length:n,offset:r,data:s}}function readOpenTypeHeader(e){return{version:e.getString(4),numTables:e.getUint16(),searchRange:e.getUint16(),entrySelector:e.getUint16(),rangeShift:e.getUint16()}}function sanitizeGlyph(e,t,a,r,n,i){const s={length:0,sizeOfInstructions:0};if(a-t<=12)return s;const o=e.subarray(t,a);let c=signedInt16(o[0],o[1]);if(c<0){c=-1;writeSignedInt16(o,0,c);r.set(o,n);s.length=o.length;return s}let l,h=10,u=0;for(l=0;lo.length)return s;if(!i&&f>0){r.set(o.subarray(0,d),n);r.set([0,0],n+d);r.set(o.subarray(g,m),n+d+2);m-=f;o.length-m>3&&(m=m+3&-4);s.length=m;return s}if(o.length-m>3){m=m+3&-4;r.set(o.subarray(0,m),n);s.length=m;return s}r.set(o,n);s.length=o.length;return s}function readNameTable(e){const a=(t.start?t.start:0)+e.offset;t.pos=a;const r=[[],[]],n=e.length,i=a+n;if(0!==t.getUint16()||n<6)return r;const s=t.getUint16(),o=t.getUint16(),c=[];let l,h;for(l=0;li)continue;t.pos=n;const s=e.name;if(e.encoding){let a="";for(let r=0,n=e.length;r0&&(h+=e-1)}}else{if(b||w){(0,r.warn)("TT: nested FDEFs not allowed");m=!0}b=!0;d=h;s=f.pop();t.functionsDefined[s]={data:c,i:h}}else if(!b&&!w){s=f[f.length-1];if(isNaN(s))(0,r.info)("TT: CALL empty stack (or invalid entry).");else{t.functionsUsed[s]=!0;if(s in t.functionsStackDeltas){const e=f.length+t.functionsStackDeltas[s];if(e<0){(0,r.warn)("TT: CALL invalid functions stack delta.");t.hintsValid=!1;return}f.length=e}else if(s in t.functionsDefined&&!p.includes(s)){g.push({data:c,i:h,stackTop:f.length-1});p.push(s);o=t.functionsDefined[s];if(!o){(0,r.warn)("TT: CALL non-existent function");t.hintsValid=!1;return}c=o.data;h=o.i}}}if(!b&&!w){let t=0;e<=142?t=l[e]:e>=192&&e<=223?t=-1:e>=224&&(t=-2);if(e>=113&&e<=117){n=f.pop();isNaN(n)||(t=2*-n)}for(;t<0&&f.length>0;){f.pop();t++}for(;t>0;){f.push(NaN);t--}}}t.tooComplexToFollowFunctions=m;const S=[c];h>c.length&&S.push(new Uint8Array(h-c.length));if(d>u){(0,r.warn)("TT: complementing a missing function tail");S.push(new Uint8Array([34,45]))}!function foldTTTable(e,t){if(t.length>1){let a,r,n=0;for(a=0,r=t.length;a>>0,s=[];for(let t=0;t>>0);const o={ttcTag:t,majorVersion:a,minorVersion:n,numFonts:i,offsetTable:s};switch(a){case 1:return o;case 2:o.dsigTag=e.getInt32()>>>0;o.dsigLength=e.getInt32()>>>0;o.dsigOffset=e.getInt32()>>>0;return o}throw new r.FormatError(`Invalid TrueType Collection majorVersion: ${a}.`)}(e),i=t.split("+");let s;for(let o=0;o0||!(a.cMap instanceof p.IdentityCMap));if("OTTO"===d.version&&!t||!f.head||!f.hhea||!f.maxp||!f.post){w=new y.Stream(f["CFF "].data);b=new u.CFFFont(w,a);adjustWidths(a);return this.convert(e,b,a)}delete f.glyf;delete f.loca;delete f.fpgm;delete f.prep;delete f["cvt "];this.isOpenType=!0}if(!f.maxp)throw new r.FormatError('Required "maxp" table is not found');t.pos=(t.start||0)+f.maxp.offset;const x=t.getInt32(),k=t.getUint16();if(a.scaleFactors&&a.scaleFactors.length===k&&S){const{scaleFactors:e}=a,t=int16(f.head.data[50],f.head.data[51]),r=new g.GlyfTable({glyfTable:f.glyf.data,isGlyphLocationsLong:t,locaTable:f.loca.data,numGlyphs:k});r.scale(e);const{glyf:n,loca:i,isLocationLong:s}=r.write();f.glyf.data=n;f.loca.data=i;if(s!==!!t){f.head.data[50]=0;f.head.data[51]=s?1:0}const o=f.hmtx.data;for(let t=0;t>8&255;o[a+1]=255&r;writeSignedInt16(o,a+2,Math.round(e[t]*signedInt16(o[a+2],o[a+3])))}}let C=k+1,v=!0;if(C>65535){v=!1;C=k;(0,r.warn)("Not enough space in glyfs to duplicate first glyph.")}let F=0,O=0;if(x>=65536&&f.maxp.length>=22){t.pos+=8;if(t.getUint16()>2){f.maxp.data[14]=0;f.maxp.data[15]=2}t.pos+=4;F=t.getUint16();t.pos+=4;O=t.getUint16()}f.maxp.data[4]=C>>8;f.maxp.data[5]=255&C;const T=function sanitizeTTPrograms(e,t,a,n){const i={functionsDefined:[],functionsUsed:[],functionsStackDeltas:[],tooComplexToFollowFunctions:!1,hintsValid:!0};e&&sanitizeTTProgram(e,i);t&&sanitizeTTProgram(t,i);e&&function checkInvalidFunctions(e,t){if(!e.tooComplexToFollowFunctions)if(e.functionsDefined.length>t){(0,r.warn)("TT: more functions defined than expected");e.hintsValid=!1}else for(let a=0,n=e.functionsUsed.length;at){(0,r.warn)("TT: invalid function id: "+a);e.hintsValid=!1;return}if(e.functionsUsed[a]&&!e.functionsDefined[a]){(0,r.warn)("TT: undefined function: "+a);e.hintsValid=!1;return}}}(i,n);if(a&&1&a.length){const e=new Uint8Array(a.length+1);e.set(a.data);a.data=e}return i.hintsValid}(f.fpgm,f.prep,f["cvt "],F);if(!T){delete f.fpgm;delete f.prep;delete f["cvt "]}!function sanitizeMetrics(e,t,a,n,i,s){if(!t){a&&(a.data=null);return}e.pos=(e.start?e.start:0)+t.offset;e.pos+=4;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;const o=e.getUint16();e.pos+=8;e.pos+=2;let c=e.getUint16();if(0!==o){if(!(2&int16(n.data[44],n.data[45]))){t.data[22]=0;t.data[23]=0}}if(c>i){(0,r.info)(`The numOfMetrics (${c}) should not be greater than the numGlyphs (${i}).`);c=i;t.data[34]=(65280&c)>>8;t.data[35]=255&c}const l=i-c-(a.length-4*c>>1);if(l>0){const e=new Uint8Array(a.length+2*l);e.set(a.data);if(s){e[a.length]=a.data[2];e[a.length+1]=a.data[3]}a.data=e}}(t,f.hhea,f.hmtx,f.head,C,v);if(!f.head)throw new r.FormatError('Required "head" table is not found');!function sanitizeHead(e,t,a){const n=e.data,i=function int32(e,t,a,r){return(e<<24)+(t<<16)+(a<<8)+r}(n[0],n[1],n[2],n[3]);if(i>>16!=1){(0,r.info)("Attempting to fix invalid version in head table: "+i);n[0]=0;n[1]=1;n[2]=0;n[3]=0}const s=int16(n[50],n[51]);if(s<0||s>1){(0,r.info)("Attempting to fix invalid indexToLocFormat in head table: "+s);const e=t+1;if(a===e<<1){n[50]=0;n[51]=0}else{if(a!==e<<2)throw new r.FormatError("Could not fix indexToLocFormat: "+s);n[50]=0;n[51]=1}}}(f.head,k,S?f.loca.length:0);let M=Object.create(null);if(S){const e=int16(f.head.data[50],f.head.data[51]),t=function sanitizeGlyphLocations(e,t,a,r,n,i,s){let o,c,l;if(r){o=4;c=function fontItemDecodeLong(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]};l=function fontItemEncodeLong(e,t,a){e[t]=a>>>24&255;e[t+1]=a>>16&255;e[t+2]=a>>8&255;e[t+3]=255&a}}else{o=2;c=function fontItemDecode(e,t){return e[t]<<9|e[t+1]<<1};l=function fontItemEncode(e,t,a){e[t]=a>>9&255;e[t+1]=a>>1&255}}const h=i?a+1:a,u=o*(1+h),d=new Uint8Array(u);d.set(e.data.subarray(0,u));e.data=d;const f=t.data,g=f.length,p=new Uint8Array(g);let m,b;const y=[];for(m=0,b=0;mg&&(e=g);y.push({index:m,offset:e,endOffset:0})}y.sort(((e,t)=>e.offset-t.offset));for(m=0;me.index-t.index));for(m=0;ms&&(s=e.sizeOfInstructions);S+=t;l(d,b,S)}if(0===S){const e=new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,49,0]);for(m=0,b=o;ma+S)t.data=p.subarray(0,a+S);else{t.data=new Uint8Array(a+S);t.data.set(p.subarray(0,S))}t.data.set(p.subarray(0,a),S);l(e.data,d.length-o,S+a)}else t.data=p.subarray(0,S);return{missingGlyphs:w,maxSizeOfInstructions:s}}(f.loca,f.glyf,k,e,T,v,O);M=t.missingGlyphs;if(x>=65536&&f.maxp.length>=22){f.maxp.data[26]=t.maxSizeOfInstructions>>8;f.maxp.data[27]=255&t.maxSizeOfInstructions}}if(!f.hhea)throw new r.FormatError('Required "hhea" table is not found');if(0===f.hhea.data[10]&&0===f.hhea.data[11]){f.hhea.data[10]=255;f.hhea.data[11]=255}const E={unitsPerEm:int16(f.head.data[18],f.head.data[19]),yMax:int16(f.head.data[42],f.head.data[43]),yMin:signedInt16(f.head.data[38],f.head.data[39]),ascent:signedInt16(f.hhea.data[4],f.hhea.data[5]),descent:signedInt16(f.hhea.data[6],f.hhea.data[7]),lineGap:signedInt16(f.hhea.data[8],f.hhea.data[9])};this.ascent=E.ascent/E.unitsPerEm;this.descent=E.descent/E.unitsPerEm;this.lineGap=E.lineGap/E.unitsPerEm;if(this.cssFontInfo&&this.cssFontInfo.lineHeight){this.lineHeight=this.cssFontInfo.metrics.lineHeight;this.lineGap=this.cssFontInfo.metrics.lineGap}else this.lineHeight=this.ascent-this.descent+this.lineGap;f.post&&function readPostScriptTable(e,a,n){const s=(t.start?t.start:0)+e.offset;t.pos=s;const o=s+e.length,c=t.getInt32();t.skip(28);let l,h,u=!0;switch(c){case 65536:l=i.MacStandardGlyphOrdering;break;case 131072:const e=t.getUint16();if(e!==n){u=!1;break}const s=[];for(h=0;h=32768){u=!1;break}s.push(e)}if(!u)break;const d=[],f=[];for(;t.pos65535)throw new r.FormatError("Max size of CID is 65,535");let i=-1;t?i=n:void 0!==e[n]&&(i=e[n]);i>=0&&i>>0;let h=!1;if(!c||c.platformId!==r||c.encodingId!==i){if(0!==r||0!==i&&1!==i&&3!==i)if(1===r&&0===i)h=!0;else if(3!==r||1!==i||!n&&c){if(a&&3===r&&0===i){h=!0;let a=!0;if(e>3;e.push(r);a=Math.max(r,a)}const r=[];for(let e=0;e<=a;e++)r.push({firstCode:t.getUint16(),entryCount:t.getUint16(),idDelta:signedInt16(t.getByte(),t.getByte()),idRangePos:t.pos+t.getUint16()});for(let a=0;a<256;a++)if(0===e[a]){t.pos=r[0].idRangePos+2*a;g=t.getUint16();d.push({charCode:a,glyphId:g})}else{const n=r[e[a]];for(f=0;f>1;t.skip(6);const a=[];let r;for(r=0;r>1)-(e-r);i.offsetIndex=n;o=Math.max(o,n+i.end-i.start+1)}else i.offsetIndex=-1}const c=[];for(f=0;f>>0;for(f=0;f>>0,a=t.getInt32()>>>0;let r=t.getInt32()>>>0;for(let t=e;t<=a;t++)d.push({charCode:t,glyphId:r++})}}}d.sort((function(e,t){return e.charCode-t.charCode}));for(let e=1;e=61440&&t<=61695&&(t&=255);D[t]=l[e].glyphId}if(a.glyphNames&&(d.length||this.differences.length))for(let e=0;e<256;++e){if(!g&&void 0!==D[e])continue;const t=this.differences[e]||d[e];if(!t)continue;const r=a.glyphNames.indexOf(t);r>0&&hasGlyph(r)&&(D[e]=r)}}0===D.length&&(D[0]=0);let N=C-1;v||(N=0);if(!a.cssFontInfo){const e=adjustMapping(D,hasGlyph,N);this.toFontChar=e.toFontChar;f.cmap={tag:"cmap",data:createCmapTable(e.charCodeToGlyphId,C)};f["OS/2"]&&function validateOS2Table(e,t){t.pos=(t.start||0)+e.offset;const a=t.getUint16();t.skip(60);const r=t.getUint16();if(a<4&&768&r)return!1;if(t.getUint16()>t.getUint16())return!1;t.skip(6);if(0===t.getUint16())return!1;e.data[8]=e.data[9]=0;return!0}(f["OS/2"],t)||(f["OS/2"]={tag:"OS/2",data:createOS2Table(a,e.charCodeToGlyphId,E)})}if(!S)try{w=new y.Stream(f["CFF "].data);b=new n.CFFParser(w,a,i.SEAC_ANALYSIS_ENABLED).parse();b.duplicateFirstGlyph();const e=new n.CFFCompiler(b);f["CFF "].data=e.compile()}catch(e){(0,r.warn)("Failed to compile font "+a.loadedName)}if(f.name){const t=readNameTable(f.name);f.name.data=createNameTable(e,t);this.psName=t[0][6]||null}else f.name={tag:"name",data:createNameTable(this.name)};const L=new m.OpenTypeFileBuilder(d.version);for(const e in f)L.addTable(e,f[e].data);return L.toArray()}convert(e,t,a){a.fixedPitch=!1;a.builtInEncoding&&function adjustToUnicode(e,t){if(e.isInternalFont)return;if(t===e.defaultEncoding)return;if(e.toUnicode instanceof h.IdentityToUnicodeMap)return;const a=[],r=(0,o.getGlyphsUnicode)();for(const n in t){if(e.hasIncludedToUnicodeMap){if(e.toUnicode.has(n))continue}else if(e.hasEncoding&&(0===e.differences.length||void 0!==e.differences[n]))continue;const i=t[n],o=(0,s.getUnicodeForGlyph)(i,r);-1!==o&&(a[n]=String.fromCharCode(o))}a.length>0&&e.toUnicode.amend(a)}(a,a.builtInEncoding);let n=1;t instanceof u.CFFFont&&(n=t.numGlyphs-1);const l=t.getGlyphMapping(a);let d=null,f=l;if(!a.cssFontInfo){d=adjustMapping(l,t.hasGlyphId.bind(t),n);this.toFontChar=d.toFontChar;f=d.charCodeToGlyphId}const g=t.numGlyphs;function getCharCodes(e,t){let a=null;for(const r in e)if(t===e[r]){a||(a=[]);a.push(0|r)}return a}function createCharCode(e,t){for(const a in e)if(t===e[a])return 0|a;d.charCodeToGlyphId[d.nextAvailableFontCharCode]=t;return d.nextAvailableFontCharCode++}const p=t.seacs;if(d&&i.SEAC_ANALYSIS_ENABLED&&p&&p.length){const e=a.fontMatrix||r.FONT_IDENTITY_MATRIX,n=t.getCharset(),i=Object.create(null);for(let t in p){t|=0;const a=p[t],r=c.StandardEncoding[a[2]],s=c.StandardEncoding[a[3]],o=n.indexOf(r),h=n.indexOf(s);if(o<0||h<0)continue;const u={x:a[0]*e[0]+a[1]*e[2]+e[4],y:a[0]*e[1]+a[1]*e[3]+e[5]},f=getCharCodes(l,t);if(f)for(let e=0,t=f.length;et.length%2==1,r=this.toUnicode instanceof h.IdentityToUnicodeMap?e=>this.toUnicode.charCodeOf(e):e=>this.toUnicode.charCodeOf(String.fromCodePoint(e));for(let n=0,i=e.length;n55295&&(i<57344||i>65533)&&n++;if(this.toUnicode){const e=r(i);if(-1!==e){if(hasCurrentBufErrors()){t.push(a.join(""));a.length=0}for(let t=(this.cMap?this.cMap.getCharCodeLength(e):1)-1;t>=0;t--)a.push(String.fromCharCode(e>>8*t&255));continue}}if(!hasCurrentBufErrors()){t.push(a.join(""));a.length=0}a.push(String.fromCodePoint(i))}t.push(a.join(""));return t}};t.ErrorFont=class ErrorFont{constructor(e){this.error=e;this.loadedName="g_font_error";this.missingFile=!0}charsToGlyphs(){return[]}encodeString(e){return[e]}exportData(e=!1){return{error:this.error}}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.CFFTopDict=t.CFFStrings=t.CFFStandardStrings=t.CFFPrivateDict=t.CFFParser=t.CFFIndex=t.CFFHeader=t.CFFFDSelect=t.CFFCompiler=t.CFFCharset=t.CFF=void 0;var r=a(2),n=a(46),i=a(19);const s=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"];t.CFFStandardStrings=s;const o=391,c=function CFFParserClosure(){const e=[null,{id:"hstem",min:2,stackClearing:!0,stem:!0},null,{id:"vstem",min:2,stackClearing:!0,stem:!0},{id:"vmoveto",min:1,stackClearing:!0},{id:"rlineto",min:2,resetStack:!0},{id:"hlineto",min:1,resetStack:!0},{id:"vlineto",min:1,resetStack:!0},{id:"rrcurveto",min:6,resetStack:!0},null,{id:"callsubr",min:1,undefStack:!0},{id:"return",min:0,undefStack:!0},null,null,{id:"endchar",min:0,stackClearing:!0},null,null,null,{id:"hstemhm",min:2,stackClearing:!0,stem:!0},{id:"hintmask",min:0,stackClearing:!0},{id:"cntrmask",min:0,stackClearing:!0},{id:"rmoveto",min:2,stackClearing:!0},{id:"hmoveto",min:1,stackClearing:!0},{id:"vstemhm",min:2,stackClearing:!0,stem:!0},{id:"rcurveline",min:8,resetStack:!0},{id:"rlinecurve",min:8,resetStack:!0},{id:"vvcurveto",min:4,resetStack:!0},{id:"hhcurveto",min:4,resetStack:!0},null,{id:"callgsubr",min:1,undefStack:!0},{id:"vhcurveto",min:4,resetStack:!0},{id:"hvcurveto",min:4,resetStack:!0}],t=[null,null,null,{id:"and",min:2,stackDelta:-1},{id:"or",min:2,stackDelta:-1},{id:"not",min:1,stackDelta:0},null,null,null,{id:"abs",min:1,stackDelta:0},{id:"add",min:2,stackDelta:-1,stackFn:function stack_div(e,t){e[t-2]=e[t-2]+e[t-1]}},{id:"sub",min:2,stackDelta:-1,stackFn:function stack_div(e,t){e[t-2]=e[t-2]-e[t-1]}},{id:"div",min:2,stackDelta:-1,stackFn:function stack_div(e,t){e[t-2]=e[t-2]/e[t-1]}},null,{id:"neg",min:1,stackDelta:0,stackFn:function stack_div(e,t){e[t-1]=-e[t-1]}},{id:"eq",min:2,stackDelta:-1},null,null,{id:"drop",min:1,stackDelta:-1},null,{id:"put",min:2,stackDelta:-2},{id:"get",min:1,stackDelta:0},{id:"ifelse",min:4,stackDelta:-3},{id:"random",min:0,stackDelta:1},{id:"mul",min:2,stackDelta:-1,stackFn:function stack_div(e,t){e[t-2]=e[t-2]*e[t-1]}},null,{id:"sqrt",min:1,stackDelta:0},{id:"dup",min:1,stackDelta:1},{id:"exch",min:2,stackDelta:0},{id:"index",min:2,stackDelta:0},{id:"roll",min:3,stackDelta:-2},null,null,null,{id:"hflex",min:7,resetStack:!0},{id:"flex",min:13,resetStack:!0},{id:"hflex1",min:9,resetStack:!0},{id:"flex1",min:11,resetStack:!0}];return class CFFParser{constructor(e,t,a){this.bytes=e.getBytes();this.properties=t;this.seacAnalysisEnabled=!!a}parse(){const e=this.properties,t=new CFF;this.cff=t;const a=this.parseHeader(),r=this.parseIndex(a.endPos),n=this.parseIndex(r.endPos),i=this.parseIndex(n.endPos),s=this.parseIndex(i.endPos),o=this.parseDict(n.obj.get(0)),c=this.createDict(l,o,t.strings);t.header=a.obj;t.names=this.parseNameIndex(r.obj);t.strings=this.parseStringIndex(i.obj);t.topDict=c;t.globalSubrIndex=s.obj;this.parsePrivateDict(t.topDict);t.isCIDFont=c.hasName("ROS");const h=c.getByName("CharStrings"),u=this.parseIndex(h).obj,d=c.getByName("FontMatrix");d&&(e.fontMatrix=d);const f=c.getByName("FontBBox");if(f){e.ascent=Math.max(f[3],f[1]);e.descent=Math.min(f[1],f[3]);e.ascentScaled=!0}let g,p;if(t.isCIDFont){const e=this.parseIndex(c.getByName("FDArray")).obj;for(let a=0,r=e.count;a=t)throw new r.FormatError("Invalid CFF header");if(0!==a){(0,r.info)("cff data is shifted");e=e.subarray(a);this.bytes=e}const n=e[0],i=e[1],s=e[2],o=e[3];return{obj:new CFFHeader(n,i,s,o),endPos:s}}parseDict(e){let t=0;function parseOperand(){let a=e[t++];if(30===a)return function parseFloatOperand(){let a="";const r=15,n=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"],i=e.length;for(;t>4,o=15&i;if(s===r)break;a+=n[s];if(o===r)break;a+=n[o]}return parseFloat(a)}();if(28===a){a=e[t++];a=(a<<24|e[t++]<<16)>>16;return a}if(29===a){a=e[t++];a=a<<8|e[t++];a=a<<8|e[t++];a=a<<8|e[t++];return a}if(a>=32&&a<=246)return a-139;if(a>=247&&a<=250)return 256*(a-247)+e[t++]+108;if(a>=251&&a<=254)return-256*(a-251)-e[t++]-108;(0,r.warn)('CFFParser_parseDict: "'+a+'" is a reserved command.');return NaN}let a=[];const n=[];t=0;const i=e.length;for(;t10)return!1;let o=a.stackSize;const c=a.stack,l=n.length;for(let h=0;h>16;h+=2;o++}else if(14===l){if(o>=4){o-=4;if(this.seacAnalysisEnabled){a.seac=c.slice(o,o+4);return!1}}u=e[l]}else if(l>=32&&l<=246){c[o]=l-139;o++}else if(l>=247&&l<=254){c[o]=l<251?(l-247<<8)+n[h]+108:-(l-251<<8)-n[h]-108;h++;o++}else if(255===l){c[o]=(n[h]<<24|n[h+1]<<16|n[h+2]<<8|n[h+3])/65536;h+=4;o++}else if(19===l||20===l){a.hints+=o>>1;h+=a.hints+7>>3;o%=2;u=e[l]}else{if(10===l||29===l){let t;t=10===l?i:s;if(!t){u=e[l];(0,r.warn)("Missing subrsIndex for "+u.id);return!1}let n=32768;t.count<1240?n=107:t.count<33900&&(n=1131);const h=c[--o]+n;if(h<0||h>=t.count||isNaN(h)){u=e[l];(0,r.warn)("Out of bounds subrIndex for "+u.id);return!1}a.stackSize=o;a.callDepth++;if(!this.parseCharString(a,t.get(h),i,s))return!1;a.callDepth--;o=a.stackSize;continue}if(11===l){a.stackSize=o;return!0}if(0===l&&h===n.length){n[h-1]=14;u=e[14]}else u=e[l]}if(u){if(u.stem){a.hints+=o>>1;if(3===l||23===l)a.hasVStems=!0;else if(a.hasVStems&&(1===l||18===l)){(0,r.warn)("CFF stem hints are in wrong order");n[h-1]=1===l?3:23}}if("min"in u&&!a.undefStack&&o=2&&u.stem?o%=2:o>1&&(0,r.warn)("Found too many parameters for stack-clearing command");o>0&&(a.width=c[o-1])}if("stackDelta"in u){"stackFn"in u&&u.stackFn(c,o);o+=u.stackDelta}else if(u.stackClearing)o=0;else if(u.resetStack){o=0;a.undefStack=!1}else if(u.undefStack){o=0;a.undefStack=!0;a.firstStackClearing=!1}}}a.stackSize=o;return!0}parseCharStrings({charStrings:e,localSubrIndex:t,globalSubrIndex:a,fdSelect:n,fdArray:i,privateDict:s}){const o=[],c=[],l=e.count;for(let h=0;h=i.length){(0,r.warn)("Invalid fd index for glyph index.");d=!1}if(d){g=i[e].privateDict;f=g.subrsIndex}}else t&&(f=t);d&&(d=this.parseCharString(u,l,f,a));if(null!==u.width){const e=g.getByName("nominalWidthX");c[h]=e+u.width}else{const e=g.getByName("defaultWidthX");c[h]=e}null!==u.seac&&(o[h]=u.seac);d||e.set(h,new Uint8Array([14]))}return{charStrings:e,seacs:o,widths:c}}emptyPrivateDictionary(e){const t=this.createDict(h,[],e.strings);e.setByKey(18,[0,0]);e.privateDict=t}parsePrivateDict(e){if(!e.hasName("Private")){this.emptyPrivateDictionary(e);return}const t=e.getByName("Private");if(!Array.isArray(t)||2!==t.length){e.removeByName("Private");return}const a=t[0],r=t[1];if(0===a||r>=this.bytes.length){this.emptyPrivateDictionary(e);return}const n=r+a,i=this.bytes.subarray(r,n),s=this.parseDict(i),o=this.createDict(h,s,e.strings);e.privateDict=o;if(!o.getByName("Subrs"))return;const c=o.getByName("Subrs"),l=r+c;if(0===c||l>=this.bytes.length){this.emptyPrivateDictionary(e);return}const u=this.parseIndex(l);o.subrsIndex=u.obj}parseCharsets(e,t,a,i){if(0===e)return new CFFCharset(!0,u.ISO_ADOBE,n.ISOAdobeCharset);if(1===e)return new CFFCharset(!0,u.EXPERT,n.ExpertCharset);if(2===e)return new CFFCharset(!0,u.EXPERT_SUBSET,n.ExpertSubsetCharset);const s=this.bytes,o=e,c=s[e++],l=[i?0:".notdef"];let h,d,f;t-=1;switch(c){case 0:for(f=0;f=65535){(0,r.warn)("Not enough space in charstrings to duplicate first glyph.");return}const e=this.charStrings.get(0);this.charStrings.add(e);this.isCIDFont&&this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0])}hasGlyphId(e){if(e<0||e>=this.charStrings.count)return!1;return this.charStrings.get(e).length>0}}t.CFF=CFF;class CFFHeader{constructor(e,t,a,r){this.major=e;this.minor=t;this.hdrSize=a;this.offSize=r}}t.CFFHeader=CFFHeader;class CFFStrings{constructor(){this.strings=[]}get(e){return e>=0&&e<=390?s[e]:e-o<=this.strings.length?this.strings[e-o]:s[0]}getSID(e){let t=s.indexOf(e);if(-1!==t)return t;t=this.strings.indexOf(e);return-1!==t?t+o:-1}add(e){this.strings.push(e)}get count(){return this.strings.length}}t.CFFStrings=CFFStrings;class CFFIndex{constructor(){this.objects=[];this.length=0}add(e){this.length+=e.length;this.objects.push(e)}set(e,t){this.length+=t.length-this.objects[e].length;this.objects[e]=t}get(e){return this.objects[e]}get count(){return this.objects.length}}t.CFFIndex=CFFIndex;class CFFDict{constructor(e,t){this.keyToNameMap=e.keyToNameMap;this.nameToKeyMap=e.nameToKeyMap;this.defaults=e.defaults;this.types=e.types;this.opcodes=e.opcodes;this.order=e.order;this.strings=t;this.values=Object.create(null)}setByKey(e,t){if(!(e in this.keyToNameMap))return!1;const a=t.length;if(0===a)return!0;for(let n=0;n=this.fdSelect.length?-1:this.fdSelect[e]}}t.CFFFDSelect=CFFFDSelect;class CFFOffsetTracker{constructor(){this.offsets=Object.create(null)}isTracking(e){return e in this.offsets}track(e,t){if(e in this.offsets)throw new r.FormatError(`Already tracking location of ${e}`);this.offsets[e]=t}offset(e){for(const t in this.offsets)this.offsets[t]+=e}setEntryLocation(e,t,a){if(!(e in this.offsets))throw new r.FormatError(`Not tracking location of ${e}`);const n=a.data,i=this.offsets[e];for(let e=0,a=t.length;e>24&255;n[o]=h>>16&255;n[c]=h>>8&255;n[l]=255&h}}}class CFFCompiler{constructor(e){this.cff=e}compile(){const e=this.cff,t={data:[],length:0,add:function CFFCompiler_add(e){this.data=this.data.concat(e);this.length=this.data.length}},a=this.compileHeader(e.header);t.add(a);const n=this.compileNameIndex(e.names);t.add(n);if(e.isCIDFont&&e.topDict.hasName("FontMatrix")){const t=e.topDict.getByName("FontMatrix");e.topDict.removeByName("FontMatrix");for(let a=0,n=e.fdArray.length;a16&&e.topDict.removeByName("XUID");e.topDict.setByName("charset",0);let s=this.compileTopDicts([e.topDict],t.length,e.isCIDFont);t.add(s.output);const o=s.trackers[0],c=this.compileStringIndex(e.strings.strings);t.add(c);const l=this.compileIndex(e.globalSubrIndex);t.add(l);if(e.encoding&&e.topDict.hasName("Encoding"))if(e.encoding.predefined)o.setEntryLocation("Encoding",[e.encoding.format],t);else{const a=this.compileEncoding(e.encoding);o.setEntryLocation("Encoding",[t.length],t);t.add(a)}const h=this.compileCharset(e.charset,e.charStrings.count,e.strings,e.isCIDFont);o.setEntryLocation("charset",[t.length],t);t.add(h);const u=this.compileCharStrings(e.charStrings);o.setEntryLocation("CharStrings",[t.length],t);t.add(u);if(e.isCIDFont){o.setEntryLocation("FDSelect",[t.length],t);const a=this.compileFDSelect(e.fdSelect);t.add(a);s=this.compileTopDicts(e.fdArray,t.length,!0);o.setEntryLocation("FDArray",[t.length],t);t.add(s.output);const r=s.trackers;this.compilePrivateDicts(e.fdArray,r,t)}this.compilePrivateDicts([e.topDict],[o],t);t.add([0]);return t.data}encodeNumber(e){return Number.isInteger(e)?this.encodeInteger(e):this.encodeFloat(e)}static get EncodeFloatRegExp(){return(0,r.shadow)(this,"EncodeFloatRegExp",/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/)}encodeFloat(e){let t=e.toString();const a=CFFCompiler.EncodeFloatRegExp.exec(t);if(a){const r=parseFloat("1e"+((a[2]?+a[2]:0)+a[1].length));t=(Math.round(e*r)/r).toString()}let r,n,i="";for(r=0,n=t.length;r=-107&&e<=107?[e+139]:e>=108&&e<=1131?[247+((e-=108)>>8),255&e]:e>=-1131&&e<=-108?[251+((e=-e-108)>>8),255&e]:e>=-32768&&e<=32767?[28,e>>8&255,255&e]:[29,e>>24&255,e>>16&255,e>>8&255,255&e];return t}compileHeader(e){return[e.major,e.minor,4,e.offSize]}compileNameIndex(e){const t=new CFFIndex;for(let a=0,n=e.length;a"~"||"["===t||"]"===t||"("===t||")"===t||"{"===t||"}"===t||"<"===t||">"===t||"/"===t||"%"===t)&&(t="_");s[e]=t}s=s.join("");""===s&&(s="Bad_Font_Name");t.add((0,r.stringToBytes)(s))}return this.compileIndex(t)}compileTopDicts(e,t,a){const r=[];let n=new CFFIndex;for(let i=0,s=e.length;i>8&255,255&s]);else{i=new Uint8Array(1+2*s);i[0]=0;let t=0;const n=e.charset.length;let o=!1;for(let s=1;s>8&255;i[s+1]=255&c}}return this.compileTypedArray(i)}compileEncoding(e){return this.compileTypedArray(e.raw)}compileFDSelect(e){const t=e.format;let a,r;switch(t){case 0:a=new Uint8Array(1+e.fdSelect.length);a[0]=t;for(r=0;r>8&255,255&n,i];for(r=1;r>8&255,255&r,t);i=t}}const o=(s.length-3)/3;s[1]=o>>8&255;s[2]=255&o;s.push(r>>8&255,255&r);a=new Uint8Array(s)}return this.compileTypedArray(a)}compileTypedArray(e){const t=[];for(let a=0,r=e.length;a>8&255,255&r];let i,s,o=1;for(i=0;i>8&255,255&c):3===s?n.push(c>>16&255,c>>8&255,255&c):n.push(c>>>24&255,c>>16&255,c>>8&255,255&c);a[i]&&(c+=a[i].length)}for(i=0;i{Object.defineProperty(t,"__esModule",{value:!0});t.ISOAdobeCharset=t.ExpertSubsetCharset=t.ExpertCharset=void 0;t.ISOAdobeCharset=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron"];t.ExpertCharset=[".notdef","space","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"];t.ExpertSubsetCharset=[".notdef","space","dollaroldstyle","dollarsuperior","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","hyphensuperior","colonmonetary","onefitted","rupiah","centoldstyle","figuredash","hypheninferior","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior"]},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.getSerifFonts=t.getNonStdFontMap=t.getGlyphMapForStandardFonts=t.getFontNameToFileMap=void 0;t.getStandardFontName=function getStandardFontName(e){const t=(0,n.normalizeFontName)(e);return i()[t]};t.getSymbolsFonts=t.getSupplementalGlyphMapForCalibri=t.getSupplementalGlyphMapForArialBlack=t.getStdFontMap=void 0;var r=a(8),n=a(18);const i=(0,r.getLookupTableFactory)((function(e){e["Times-Roman"]="Times-Roman";e.Helvetica="Helvetica";e.Courier="Courier";e.Symbol="Symbol";e["Times-Bold"]="Times-Bold";e["Helvetica-Bold"]="Helvetica-Bold";e["Courier-Bold"]="Courier-Bold";e.ZapfDingbats="ZapfDingbats";e["Times-Italic"]="Times-Italic";e["Helvetica-Oblique"]="Helvetica-Oblique";e["Courier-Oblique"]="Courier-Oblique";e["Times-BoldItalic"]="Times-BoldItalic";e["Helvetica-BoldOblique"]="Helvetica-BoldOblique";e["Courier-BoldOblique"]="Courier-BoldOblique";e.ArialNarrow="Helvetica";e["ArialNarrow-Bold"]="Helvetica-Bold";e["ArialNarrow-BoldItalic"]="Helvetica-BoldOblique";e["ArialNarrow-Italic"]="Helvetica-Oblique";e.ArialBlack="Helvetica";e["ArialBlack-Bold"]="Helvetica-Bold";e["ArialBlack-BoldItalic"]="Helvetica-BoldOblique";e["ArialBlack-Italic"]="Helvetica-Oblique";e["Arial-Black"]="Helvetica";e["Arial-Black-Bold"]="Helvetica-Bold";e["Arial-Black-BoldItalic"]="Helvetica-BoldOblique";e["Arial-Black-Italic"]="Helvetica-Oblique";e.Arial="Helvetica";e["Arial-Bold"]="Helvetica-Bold";e["Arial-BoldItalic"]="Helvetica-BoldOblique";e["Arial-Italic"]="Helvetica-Oblique";e["Arial-BoldItalicMT"]="Helvetica-BoldOblique";e["Arial-BoldMT"]="Helvetica-Bold";e["Arial-ItalicMT"]="Helvetica-Oblique";e.ArialMT="Helvetica";e["Courier-BoldItalic"]="Courier-BoldOblique";e["Courier-Italic"]="Courier-Oblique";e.CourierNew="Courier";e["CourierNew-Bold"]="Courier-Bold";e["CourierNew-BoldItalic"]="Courier-BoldOblique";e["CourierNew-Italic"]="Courier-Oblique";e["CourierNewPS-BoldItalicMT"]="Courier-BoldOblique";e["CourierNewPS-BoldMT"]="Courier-Bold";e["CourierNewPS-ItalicMT"]="Courier-Oblique";e.CourierNewPSMT="Courier";e["Helvetica-BoldItalic"]="Helvetica-BoldOblique";e["Helvetica-Italic"]="Helvetica-Oblique";e["Symbol-Bold"]="Symbol";e["Symbol-BoldItalic"]="Symbol";e["Symbol-Italic"]="Symbol";e.TimesNewRoman="Times-Roman";e["TimesNewRoman-Bold"]="Times-Bold";e["TimesNewRoman-BoldItalic"]="Times-BoldItalic";e["TimesNewRoman-Italic"]="Times-Italic";e.TimesNewRomanPS="Times-Roman";e["TimesNewRomanPS-Bold"]="Times-Bold";e["TimesNewRomanPS-BoldItalic"]="Times-BoldItalic";e["TimesNewRomanPS-BoldItalicMT"]="Times-BoldItalic";e["TimesNewRomanPS-BoldMT"]="Times-Bold";e["TimesNewRomanPS-Italic"]="Times-Italic";e["TimesNewRomanPS-ItalicMT"]="Times-Italic";e.TimesNewRomanPSMT="Times-Roman";e["TimesNewRomanPSMT-Bold"]="Times-Bold";e["TimesNewRomanPSMT-BoldItalic"]="Times-BoldItalic";e["TimesNewRomanPSMT-Italic"]="Times-Italic"}));t.getStdFontMap=i;const s=(0,r.getLookupTableFactory)((function(e){e.Courier="FoxitFixed.pfb";e["Courier-Bold"]="FoxitFixedBold.pfb";e["Courier-BoldOblique"]="FoxitFixedBoldItalic.pfb";e["Courier-Oblique"]="FoxitFixedItalic.pfb";e.Helvetica="FoxitSans.pfb";e["Helvetica-Bold"]="FoxitSansBold.pfb";e["Helvetica-BoldOblique"]="FoxitSansBoldItalic.pfb";e["Helvetica-Oblique"]="FoxitSansItalic.pfb";e["Times-Roman"]="FoxitSerif.pfb";e["Times-Bold"]="FoxitSerifBold.pfb";e["Times-BoldItalic"]="FoxitSerifBoldItalic.pfb";e["Times-Italic"]="FoxitSerifItalic.pfb";e.Symbol="FoxitSymbol.pfb";e.ZapfDingbats="FoxitDingbats.pfb";e["LiberationSans-Regular"]="LiberationSans-Regular.ttf";e["LiberationSans-Bold"]="LiberationSans-Bold.ttf";e["LiberationSans-Italic"]="LiberationSans-Italic.ttf";e["LiberationSans-BoldItalic"]="LiberationSans-BoldItalic.ttf"}));t.getFontNameToFileMap=s;const o=(0,r.getLookupTableFactory)((function(e){e.Calibri="Helvetica";e["Calibri-Bold"]="Helvetica-Bold";e["Calibri-BoldItalic"]="Helvetica-BoldOblique";e["Calibri-Italic"]="Helvetica-Oblique";e.CenturyGothic="Helvetica";e["CenturyGothic-Bold"]="Helvetica-Bold";e["CenturyGothic-BoldItalic"]="Helvetica-BoldOblique";e["CenturyGothic-Italic"]="Helvetica-Oblique";e.ComicSansMS="Comic Sans MS";e["ComicSansMS-Bold"]="Comic Sans MS-Bold";e["ComicSansMS-BoldItalic"]="Comic Sans MS-BoldItalic";e["ComicSansMS-Italic"]="Comic Sans MS-Italic";e["ItcSymbol-Bold"]="Helvetica-Bold";e["ItcSymbol-BoldItalic"]="Helvetica-BoldOblique";e["ItcSymbol-Book"]="Helvetica";e["ItcSymbol-BookItalic"]="Helvetica-Oblique";e["ItcSymbol-Medium"]="Helvetica";e["ItcSymbol-MediumItalic"]="Helvetica-Oblique";e.LucidaConsole="Courier";e["LucidaConsole-Bold"]="Courier-Bold";e["LucidaConsole-BoldItalic"]="Courier-BoldOblique";e["LucidaConsole-Italic"]="Courier-Oblique";e["LucidaSans-Demi"]="Helvetica-Bold";e["MS-Gothic"]="MS Gothic";e["MS-Gothic-Bold"]="MS Gothic-Bold";e["MS-Gothic-BoldItalic"]="MS Gothic-BoldItalic";e["MS-Gothic-Italic"]="MS Gothic-Italic";e["MS-Mincho"]="MS Mincho";e["MS-Mincho-Bold"]="MS Mincho-Bold";e["MS-Mincho-BoldItalic"]="MS Mincho-BoldItalic";e["MS-Mincho-Italic"]="MS Mincho-Italic";e["MS-PGothic"]="MS PGothic";e["MS-PGothic-Bold"]="MS PGothic-Bold";e["MS-PGothic-BoldItalic"]="MS PGothic-BoldItalic";e["MS-PGothic-Italic"]="MS PGothic-Italic";e["MS-PMincho"]="MS PMincho";e["MS-PMincho-Bold"]="MS PMincho-Bold";e["MS-PMincho-BoldItalic"]="MS PMincho-BoldItalic";e["MS-PMincho-Italic"]="MS PMincho-Italic";e.NuptialScript="Times-Italic";e.SegoeUISymbol="Helvetica";e.Wingdings="ZapfDingbats";e["Wingdings-Regular"]="ZapfDingbats"}));t.getNonStdFontMap=o;const c=(0,r.getLookupTableFactory)((function(e){e["Adobe Jenson"]=!0;e["Adobe Text"]=!0;e.Albertus=!0;e.Aldus=!0;e.Alexandria=!0;e.Algerian=!0;e["American Typewriter"]=!0;e.Antiqua=!0;e.Apex=!0;e.Arno=!0;e.Aster=!0;e.Aurora=!0;e.Baskerville=!0;e.Bell=!0;e.Bembo=!0;e["Bembo Schoolbook"]=!0;e.Benguiat=!0;e["Berkeley Old Style"]=!0;e["Bernhard Modern"]=!0;e["Berthold City"]=!0;e.Bodoni=!0;e["Bauer Bodoni"]=!0;e["Book Antiqua"]=!0;e.Bookman=!0;e["Bordeaux Roman"]=!0;e["Californian FB"]=!0;e.Calisto=!0;e.Calvert=!0;e.Capitals=!0;e.Cambria=!0;e.Cartier=!0;e.Caslon=!0;e.Catull=!0;e.Centaur=!0;e["Century Old Style"]=!0;e["Century Schoolbook"]=!0;e.Chaparral=!0;e["Charis SIL"]=!0;e.Cheltenham=!0;e["Cholla Slab"]=!0;e.Clarendon=!0;e.Clearface=!0;e.Cochin=!0;e.Colonna=!0;e["Computer Modern"]=!0;e["Concrete Roman"]=!0;e.Constantia=!0;e["Cooper Black"]=!0;e.Corona=!0;e.Ecotype=!0;e.Egyptienne=!0;e.Elephant=!0;e.Excelsior=!0;e.Fairfield=!0;e["FF Scala"]=!0;e.Folkard=!0;e.Footlight=!0;e.FreeSerif=!0;e["Friz Quadrata"]=!0;e.Garamond=!0;e.Gentium=!0;e.Georgia=!0;e.Gloucester=!0;e["Goudy Old Style"]=!0;e["Goudy Schoolbook"]=!0;e["Goudy Pro Font"]=!0;e.Granjon=!0;e["Guardian Egyptian"]=!0;e.Heather=!0;e.Hercules=!0;e["High Tower Text"]=!0;e.Hiroshige=!0;e["Hoefler Text"]=!0;e["Humana Serif"]=!0;e.Imprint=!0;e["Ionic No. 5"]=!0;e.Janson=!0;e.Joanna=!0;e.Korinna=!0;e.Lexicon=!0;e.LiberationSerif=!0;e["Liberation Serif"]=!0;e["Linux Libertine"]=!0;e.Literaturnaya=!0;e.Lucida=!0;e["Lucida Bright"]=!0;e.Melior=!0;e.Memphis=!0;e.Miller=!0;e.Minion=!0;e.Modern=!0;e["Mona Lisa"]=!0;e["Mrs Eaves"]=!0;e["MS Serif"]=!0;e["Museo Slab"]=!0;e["New York"]=!0;e["Nimbus Roman"]=!0;e["NPS Rawlinson Roadway"]=!0;e.NuptialScript=!0;e.Palatino=!0;e.Perpetua=!0;e.Plantin=!0;e["Plantin Schoolbook"]=!0;e.Playbill=!0;e["Poor Richard"]=!0;e["Rawlinson Roadway"]=!0;e.Renault=!0;e.Requiem=!0;e.Rockwell=!0;e.Roman=!0;e["Rotis Serif"]=!0;e.Sabon=!0;e.Scala=!0;e.Seagull=!0;e.Sistina=!0;e.Souvenir=!0;e.STIX=!0;e["Stone Informal"]=!0;e["Stone Serif"]=!0;e.Sylfaen=!0;e.Times=!0;e.Trajan=!0;e["Trinité"]=!0;e["Trump Mediaeval"]=!0;e.Utopia=!0;e["Vale Type"]=!0;e["Bitstream Vera"]=!0;e["Vera Serif"]=!0;e.Versailles=!0;e.Wanted=!0;e.Weiss=!0;e["Wide Latin"]=!0;e.Windsor=!0;e.XITS=!0}));t.getSerifFonts=c;const l=(0,r.getLookupTableFactory)((function(e){e.Dingbats=!0;e.Symbol=!0;e.ZapfDingbats=!0}));t.getSymbolsFonts=l;const h=(0,r.getLookupTableFactory)((function(e){e[2]=10;e[3]=32;e[4]=33;e[5]=34;e[6]=35;e[7]=36;e[8]=37;e[9]=38;e[10]=39;e[11]=40;e[12]=41;e[13]=42;e[14]=43;e[15]=44;e[16]=45;e[17]=46;e[18]=47;e[19]=48;e[20]=49;e[21]=50;e[22]=51;e[23]=52;e[24]=53;e[25]=54;e[26]=55;e[27]=56;e[28]=57;e[29]=58;e[30]=894;e[31]=60;e[32]=61;e[33]=62;e[34]=63;e[35]=64;e[36]=65;e[37]=66;e[38]=67;e[39]=68;e[40]=69;e[41]=70;e[42]=71;e[43]=72;e[44]=73;e[45]=74;e[46]=75;e[47]=76;e[48]=77;e[49]=78;e[50]=79;e[51]=80;e[52]=81;e[53]=82;e[54]=83;e[55]=84;e[56]=85;e[57]=86;e[58]=87;e[59]=88;e[60]=89;e[61]=90;e[62]=91;e[63]=92;e[64]=93;e[65]=94;e[66]=95;e[67]=96;e[68]=97;e[69]=98;e[70]=99;e[71]=100;e[72]=101;e[73]=102;e[74]=103;e[75]=104;e[76]=105;e[77]=106;e[78]=107;e[79]=108;e[80]=109;e[81]=110;e[82]=111;e[83]=112;e[84]=113;e[85]=114;e[86]=115;e[87]=116;e[88]=117;e[89]=118;e[90]=119;e[91]=120;e[92]=121;e[93]=122;e[94]=123;e[95]=124;e[96]=125;e[97]=126;e[98]=196;e[99]=197;e[100]=199;e[101]=201;e[102]=209;e[103]=214;e[104]=220;e[105]=225;e[106]=224;e[107]=226;e[108]=228;e[109]=227;e[110]=229;e[111]=231;e[112]=233;e[113]=232;e[114]=234;e[115]=235;e[116]=237;e[117]=236;e[118]=238;e[119]=239;e[120]=241;e[121]=243;e[122]=242;e[123]=244;e[124]=246;e[125]=245;e[126]=250;e[127]=249;e[128]=251;e[129]=252;e[130]=8224;e[131]=176;e[132]=162;e[133]=163;e[134]=167;e[135]=8226;e[136]=182;e[137]=223;e[138]=174;e[139]=169;e[140]=8482;e[141]=180;e[142]=168;e[143]=8800;e[144]=198;e[145]=216;e[146]=8734;e[147]=177;e[148]=8804;e[149]=8805;e[150]=165;e[151]=181;e[152]=8706;e[153]=8721;e[154]=8719;e[156]=8747;e[157]=170;e[158]=186;e[159]=8486;e[160]=230;e[161]=248;e[162]=191;e[163]=161;e[164]=172;e[165]=8730;e[166]=402;e[167]=8776;e[168]=8710;e[169]=171;e[170]=187;e[171]=8230;e[200]=193;e[203]=205;e[210]=218;e[223]=711;e[224]=321;e[225]=322;e[226]=352;e[227]=353;e[228]=381;e[229]=382;e[233]=221;e[234]=253;e[252]=263;e[253]=268;e[254]=269;e[258]=258;e[260]=260;e[261]=261;e[265]=280;e[266]=281;e[267]=282;e[268]=283;e[269]=313;e[275]=323;e[276]=324;e[278]=328;e[283]=344;e[284]=345;e[285]=346;e[286]=347;e[292]=367;e[295]=377;e[296]=378;e[298]=380;e[305]=963;e[306]=964;e[307]=966;e[308]=8215;e[309]=8252;e[310]=8319;e[311]=8359;e[312]=8592;e[313]=8593;e[337]=9552;e[493]=1039;e[494]=1040;e[705]=1524;e[706]=8362;e[710]=64288;e[711]=64298;e[759]=1617;e[761]=1776;e[763]=1778;e[775]=1652;e[777]=1764;e[778]=1780;e[779]=1781;e[780]=1782;e[782]=771;e[783]=64726;e[786]=8363;e[788]=8532;e[790]=768;e[791]=769;e[792]=768;e[795]=803;e[797]=64336;e[798]=64337;e[799]=64342;e[800]=64343;e[801]=64344;e[802]=64345;e[803]=64362;e[804]=64363;e[805]=64364;e[2424]=7821;e[2425]=7822;e[2426]=7823;e[2427]=7824;e[2428]=7825;e[2429]=7826;e[2430]=7827;e[2433]=7682;e[2678]=8045;e[2679]=8046;e[2830]=1552;e[2838]=686;e[2840]=751;e[2842]=753;e[2843]=754;e[2844]=755;e[2846]=757;e[2856]=767;e[2857]=848;e[2858]=849;e[2862]=853;e[2863]=854;e[2864]=855;e[2865]=861;e[2866]=862;e[2906]=7460;e[2908]=7462;e[2909]=7463;e[2910]=7464;e[2912]=7466;e[2913]=7467;e[2914]=7468;e[2916]=7470;e[2917]=7471;e[2918]=7472;e[2920]=7474;e[2921]=7475;e[2922]=7476;e[2924]=7478;e[2925]=7479;e[2926]=7480;e[2928]=7482;e[2929]=7483;e[2930]=7484;e[2932]=7486;e[2933]=7487;e[2934]=7488;e[2936]=7490;e[2937]=7491;e[2938]=7492;e[2940]=7494;e[2941]=7495;e[2942]=7496;e[2944]=7498;e[2946]=7500;e[2948]=7502;e[2950]=7504;e[2951]=7505;e[2952]=7506;e[2954]=7508;e[2955]=7509;e[2956]=7510;e[2958]=7512;e[2959]=7513;e[2960]=7514;e[2962]=7516;e[2963]=7517;e[2964]=7518;e[2966]=7520;e[2967]=7521;e[2968]=7522;e[2970]=7524;e[2971]=7525;e[2972]=7526;e[2974]=7528;e[2975]=7529;e[2976]=7530;e[2978]=1537;e[2979]=1538;e[2980]=1539;e[2982]=1549;e[2983]=1551;e[2984]=1552;e[2986]=1554;e[2987]=1555;e[2988]=1556;e[2990]=1623;e[2991]=1624;e[2995]=1775;e[2999]=1791;e[3002]=64290;e[3003]=64291;e[3004]=64292;e[3006]=64294;e[3007]=64295;e[3008]=64296;e[3011]=1900;e[3014]=8223;e[3015]=8244;e[3017]=7532;e[3018]=7533;e[3019]=7534;e[3075]=7590;e[3076]=7591;e[3079]=7594;e[3080]=7595;e[3083]=7598;e[3084]=7599;e[3087]=7602;e[3088]=7603;e[3091]=7606;e[3092]=7607;e[3095]=7610;e[3096]=7611;e[3099]=7614;e[3100]=7615;e[3103]=7618;e[3104]=7619;e[3107]=8337;e[3108]=8338;e[3116]=1884;e[3119]=1885;e[3120]=1885;e[3123]=1886;e[3124]=1886;e[3127]=1887;e[3128]=1887;e[3131]=1888;e[3132]=1888;e[3135]=1889;e[3136]=1889;e[3139]=1890;e[3140]=1890;e[3143]=1891;e[3144]=1891;e[3147]=1892;e[3148]=1892;e[3153]=580;e[3154]=581;e[3157]=584;e[3158]=585;e[3161]=588;e[3162]=589;e[3165]=891;e[3166]=892;e[3169]=1274;e[3170]=1275;e[3173]=1278;e[3174]=1279;e[3181]=7622;e[3182]=7623;e[3282]=11799;e[3316]=578;e[3379]=42785;e[3393]=1159;e[3416]=8377}));t.getGlyphMapForStandardFonts=h;const u=(0,r.getLookupTableFactory)((function(e){e[227]=322;e[264]=261;e[291]=346}));t.getSupplementalGlyphMapForArialBlack=u;const d=(0,r.getLookupTableFactory)((function(e){e[1]=32;e[4]=65;e[6]=193;e[17]=66;e[18]=67;e[21]=268;e[24]=68;e[28]=69;e[30]=201;e[32]=282;e[38]=70;e[39]=71;e[44]=72;e[47]=73;e[49]=205;e[58]=74;e[60]=75;e[62]=76;e[68]=77;e[69]=78;e[75]=79;e[87]=80;e[89]=81;e[90]=82;e[92]=344;e[94]=83;e[97]=352;e[100]=84;e[104]=85;e[115]=86;e[116]=87;e[121]=88;e[122]=89;e[124]=221;e[127]=90;e[129]=381;e[258]=97;e[260]=225;e[268]=261;e[271]=98;e[272]=99;e[273]=263;e[275]=269;e[282]=100;e[286]=101;e[288]=233;e[290]=283;e[295]=281;e[296]=102;e[336]=103;e[346]=104;e[349]=105;e[351]=237;e[361]=106;e[364]=107;e[367]=108;e[371]=322;e[373]=109;e[374]=110;e[381]=111;e[383]=243;e[393]=112;e[395]=113;e[396]=114;e[398]=345;e[400]=115;e[401]=347;e[403]=353;e[410]=116;e[437]=117;e[448]=118;e[449]=119;e[454]=120;e[455]=121;e[457]=253;e[460]=122;e[462]=382;e[463]=380;e[853]=44;e[855]=58;e[856]=46;e[876]=47;e[878]=45;e[882]=45;e[894]=40;e[895]=41;e[896]=91;e[897]=93;e[923]=64;e[1004]=48;e[1005]=49;e[1006]=50;e[1007]=51;e[1008]=52;e[1009]=53;e[1010]=54;e[1011]=55;e[1012]=56;e[1013]=57;e[1081]=37;e[1085]=43;e[1086]=45}));t.getSupplementalGlyphMapForCalibri=d},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ToUnicodeMap=t.IdentityToUnicodeMap=void 0;var r=a(2);t.ToUnicodeMap=class ToUnicodeMap{constructor(e=[]){this._map=e}get length(){return this._map.length}forEach(e){for(const t in this._map)e(t,this._map[t].charCodeAt(0))}has(e){return void 0!==this._map[e]}get(e){return this._map[e]}charCodeOf(e){const t=this._map;if(t.length<=65536)return t.indexOf(e);for(const a in t)if(t[a]===e)return 0|a;return-1}amend(e){for(const t in e)this._map[t]=e[t]}};t.IdentityToUnicodeMap=class IdentityToUnicodeMap{constructor(e,t){this.firstChar=e;this.lastChar=t}get length(){return this.lastChar+1-this.firstChar}forEach(e){for(let t=this.firstChar,a=this.lastChar;t<=a;t++)e(t,t)}has(e){return this.firstChar<=e&&e<=this.lastChar}get(e){if(this.firstChar<=e&&e<=this.lastChar)return String.fromCharCode(e)}charCodeOf(e){return Number.isInteger(e)&&e>=this.firstChar&&e<=this.lastChar?e:-1}amend(e){(0,r.unreachable)("Should not call amend()")}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.CFFFont=void 0;var r=a(45),n=a(18),i=a(2);t.CFFFont=class CFFFont{constructor(e,t){this.properties=t;const a=new r.CFFParser(e,t,n.SEAC_ANALYSIS_ENABLED);this.cff=a.parse();this.cff.duplicateFirstGlyph();const s=new r.CFFCompiler(this.cff);this.seacs=this.cff.seacs;try{this.data=s.compile()}catch(a){(0,i.warn)("Failed to compile font "+t.loadedName);this.data=e}this._createBuiltInEncoding()}get numGlyphs(){return this.cff.charStrings.count}getCharset(){return this.cff.charset.charset}getGlyphMapping(){const e=this.cff,t=this.properties,a=e.charset.charset;let r,i;if(t.composite){r=Object.create(null);let n;if(e.isCIDFont)for(i=0;i=0){const r=a[t];r&&(n[e]=r)}}n.length>0&&(this.properties.builtInEncoding=n)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.FontRendererFactory=void 0;var r=a(2),n=a(45),i=a(20),s=a(19),o=a(10);function getUint32(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}function getUint16(e,t){return e[t]<<8|e[t+1]}function getInt16(e,t){return(e[t]<<24|e[t+1]<<16)>>16}function getInt8(e,t){return e[t]<<24>>24}function getFloat214(e,t){return getInt16(e,t)/16384}function getSubroutineBias(e){const t=e.length;let a=32768;t<1240?a=107:t<33900&&(a=1131);return a}function parseCmap(e,t,a){const n=1===getUint16(e,t+2)?getUint32(e,t+8):getUint32(e,t+16),i=getUint16(e,t+n);let s,o,c;if(4===i){getUint16(e,t+n+2);const a=getUint16(e,t+n+6)>>1;o=t+n+14;s=[];for(c=0;c>1;a0;)h.push({flags:i})}for(a=0;a>1;S=!0;break;case 4:c+=i.pop();moveTo(o,c);S=!0;break;case 5:for(;i.length>0;){o+=i.shift();c+=i.shift();lineTo(o,c)}break;case 6:for(;i.length>0;){o+=i.shift();lineTo(o,c);if(0===i.length)break;c+=i.shift();lineTo(o,c)}break;case 7:for(;i.length>0;){c+=i.shift();lineTo(o,c);if(0===i.length)break;o+=i.shift();lineTo(o,c)}break;case 8:for(;i.length>0;){u=o+i.shift();f=c+i.shift();d=u+i.shift();g=f+i.shift();o=d+i.shift();c=g+i.shift();bezierCurveTo(u,f,d,g,o,c)}break;case 10:y=i.pop();w=null;if(a.isCFFCIDFont){const e=a.fdSelect.getFDIndex(n);if(e>=0&&eMath.abs(c-t)?o+=i.shift():c+=i.shift();bezierCurveTo(u,f,d,g,o,c);break;default:throw new r.FormatError(`unknown operator: 12 ${x}`)}break;case 14:if(i.length>=4){const e=i.pop(),r=i.pop();c=i.pop();o=i.pop();t.push({cmd:"save"},{cmd:"translate",args:[o,c]});let n=lookupCmap(a.cmap,String.fromCharCode(a.glyphNameMap[s.StandardEncoding[e]]));compileCharString(a.glyphs[n.glyphId],t,a,n.glyphId);t.push({cmd:"restore"});n=lookupCmap(a.cmap,String.fromCharCode(a.glyphNameMap[s.StandardEncoding[r]]));compileCharString(a.glyphs[n.glyphId],t,a,n.glyphId)}return;case 19:case 20:l+=i.length>>1;h+=l+7>>3;S=!0;break;case 21:c+=i.pop();o+=i.pop();moveTo(o,c);S=!0;break;case 22:o+=i.pop();moveTo(o,c);S=!0;break;case 24:for(;i.length>2;){u=o+i.shift();f=c+i.shift();d=u+i.shift();g=f+i.shift();o=d+i.shift();c=g+i.shift();bezierCurveTo(u,f,d,g,o,c)}o+=i.shift();c+=i.shift();lineTo(o,c);break;case 25:for(;i.length>6;){o+=i.shift();c+=i.shift();lineTo(o,c)}u=o+i.shift();f=c+i.shift();d=u+i.shift();g=f+i.shift();o=d+i.shift();c=g+i.shift();bezierCurveTo(u,f,d,g,o,c);break;case 26:i.length%2&&(o+=i.shift());for(;i.length>0;){u=o;f=c+i.shift();d=u+i.shift();g=f+i.shift();o=d;c=g+i.shift();bezierCurveTo(u,f,d,g,o,c)}break;case 27:i.length%2&&(c+=i.shift());for(;i.length>0;){u=o+i.shift();f=c;d=u+i.shift();g=f+i.shift();o=d+i.shift();c=g;bezierCurveTo(u,f,d,g,o,c)}break;case 28:i.push((e[h]<<24|e[h+1]<<16)>>16);h+=2;break;case 29:y=i.pop()+a.gsubrsBias;w=a.gsubrs[y];w&&parse(w);break;case 30:for(;i.length>0;){u=o;f=c+i.shift();d=u+i.shift();g=f+i.shift();o=d+i.shift();c=g+(1===i.length?i.shift():0);bezierCurveTo(u,f,d,g,o,c);if(0===i.length)break;u=o+i.shift();f=c;d=u+i.shift();g=f+i.shift();c=g+i.shift();o=d+(1===i.length?i.shift():0);bezierCurveTo(u,f,d,g,o,c)}break;case 31:for(;i.length>0;){u=o+i.shift();f=c;d=u+i.shift();g=f+i.shift();c=g+i.shift();o=d+(1===i.length?i.shift():0);bezierCurveTo(u,f,d,g,o,c);if(0===i.length)break;u=o;f=c+i.shift();d=u+i.shift();g=f+i.shift();o=d+i.shift();c=g+(1===i.length?i.shift():0);bezierCurveTo(u,f,d,g,o,c)}break;default:if(x<32)throw new r.FormatError(`unknown operator: ${x}`);if(x<247)i.push(x-139);else if(x<251)i.push(256*(x-247)+e[h++]+108);else if(x<255)i.push(256*-(x-251)-e[h++]-108);else{i.push((e[h]<<24|e[h+1]<<16|e[h+2]<<8|e[h+3])/65536);h+=4}}S&&(i.length=0)}}(e)}const c=[];class CompiledFont{constructor(e){this.constructor===CompiledFont&&(0,r.unreachable)("Cannot initialize CompiledFont.");this.fontMatrix=e;this.compiledGlyphs=Object.create(null);this.compiledCharCodeToGlyphId=Object.create(null)}getPathJs(e){const{charCode:t,glyphId:a}=lookupCmap(this.cmap,e);let r=this.compiledGlyphs[a];if(!r)try{r=this.compileGlyph(this.glyphs[a],a);this.compiledGlyphs[a]=r}catch(e){this.compiledGlyphs[a]=c;void 0===this.compiledCharCodeToGlyphId[t]&&(this.compiledCharCodeToGlyphId[t]=a);throw e}void 0===this.compiledCharCodeToGlyphId[t]&&(this.compiledCharCodeToGlyphId[t]=a);return r}compileGlyph(e,t){if(!e||0===e.length||14===e[0])return c;let a=this.fontMatrix;if(this.isCFFCIDFont){const e=this.fdSelect.getFDIndex(t);if(e>=0&&e2*getUint16(e,t)}const i=[];let s=n(t,0);for(let a=r;a{Object.defineProperty(t,"__esModule",{value:!0});t.getMetrics=t.getFontBasicMetrics=void 0;var r=a(8);const n=(0,r.getLookupTableFactory)((function(e){e.Courier=600;e["Courier-Bold"]=600;e["Courier-BoldOblique"]=600;e["Courier-Oblique"]=600;e.Helvetica=(0,r.getLookupTableFactory)((function(e){e.space=278;e.exclam=278;e.quotedbl=355;e.numbersign=556;e.dollar=556;e.percent=889;e.ampersand=667;e.quoteright=222;e.parenleft=333;e.parenright=333;e.asterisk=389;e.plus=584;e.comma=278;e.hyphen=333;e.period=278;e.slash=278;e.zero=556;e.one=556;e.two=556;e.three=556;e.four=556;e.five=556;e.six=556;e.seven=556;e.eight=556;e.nine=556;e.colon=278;e.semicolon=278;e.less=584;e.equal=584;e.greater=584;e.question=556;e.at=1015;e.A=667;e.B=667;e.C=722;e.D=722;e.E=667;e.F=611;e.G=778;e.H=722;e.I=278;e.J=500;e.K=667;e.L=556;e.M=833;e.N=722;e.O=778;e.P=667;e.Q=778;e.R=722;e.S=667;e.T=611;e.U=722;e.V=667;e.W=944;e.X=667;e.Y=667;e.Z=611;e.bracketleft=278;e.backslash=278;e.bracketright=278;e.asciicircum=469;e.underscore=556;e.quoteleft=222;e.a=556;e.b=556;e.c=500;e.d=556;e.e=556;e.f=278;e.g=556;e.h=556;e.i=222;e.j=222;e.k=500;e.l=222;e.m=833;e.n=556;e.o=556;e.p=556;e.q=556;e.r=333;e.s=500;e.t=278;e.u=556;e.v=500;e.w=722;e.x=500;e.y=500;e.z=500;e.braceleft=334;e.bar=260;e.braceright=334;e.asciitilde=584;e.exclamdown=333;e.cent=556;e.sterling=556;e.fraction=167;e.yen=556;e.florin=556;e.section=556;e.currency=556;e.quotesingle=191;e.quotedblleft=333;e.guillemotleft=556;e.guilsinglleft=333;e.guilsinglright=333;e.fi=500;e.fl=500;e.endash=556;e.dagger=556;e.daggerdbl=556;e.periodcentered=278;e.paragraph=537;e.bullet=350;e.quotesinglbase=222;e.quotedblbase=333;e.quotedblright=333;e.guillemotright=556;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=611;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=1e3;e.ordfeminine=370;e.Lslash=556;e.Oslash=778;e.OE=1e3;e.ordmasculine=365;e.ae=889;e.dotlessi=278;e.lslash=222;e.oslash=611;e.oe=944;e.germandbls=611;e.Idieresis=278;e.eacute=556;e.abreve=556;e.uhungarumlaut=556;e.ecaron=556;e.Ydieresis=667;e.divide=584;e.Yacute=667;e.Acircumflex=667;e.aacute=556;e.Ucircumflex=722;e.yacute=500;e.scommaaccent=500;e.ecircumflex=556;e.Uring=722;e.Udieresis=722;e.aogonek=556;e.Uacute=722;e.uogonek=556;e.Edieresis=667;e.Dcroat=722;e.commaaccent=250;e.copyright=737;e.Emacron=667;e.ccaron=500;e.aring=556;e.Ncommaaccent=722;e.lacute=222;e.agrave=556;e.Tcommaaccent=611;e.Cacute=722;e.atilde=556;e.Edotaccent=667;e.scaron=500;e.scedilla=500;e.iacute=278;e.lozenge=471;e.Rcaron=722;e.Gcommaaccent=778;e.ucircumflex=556;e.acircumflex=556;e.Amacron=667;e.rcaron=333;e.ccedilla=500;e.Zdotaccent=611;e.Thorn=667;e.Omacron=778;e.Racute=722;e.Sacute=667;e.dcaron=643;e.Umacron=722;e.uring=556;e.threesuperior=333;e.Ograve=778;e.Agrave=667;e.Abreve=667;e.multiply=584;e.uacute=556;e.Tcaron=611;e.partialdiff=476;e.ydieresis=500;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=667;e.adieresis=556;e.edieresis=556;e.cacute=500;e.nacute=556;e.umacron=556;e.Ncaron=722;e.Iacute=278;e.plusminus=584;e.brokenbar=260;e.registered=737;e.Gbreve=778;e.Idotaccent=278;e.summation=600;e.Egrave=667;e.racute=333;e.omacron=556;e.Zacute=611;e.Zcaron=611;e.greaterequal=549;e.Eth=722;e.Ccedilla=722;e.lcommaaccent=222;e.tcaron=317;e.eogonek=556;e.Uogonek=722;e.Aacute=667;e.Adieresis=667;e.egrave=556;e.zacute=500;e.iogonek=222;e.Oacute=778;e.oacute=556;e.amacron=556;e.sacute=500;e.idieresis=278;e.Ocircumflex=778;e.Ugrave=722;e.Delta=612;e.thorn=556;e.twosuperior=333;e.Odieresis=778;e.mu=556;e.igrave=278;e.ohungarumlaut=556;e.Eogonek=667;e.dcroat=556;e.threequarters=834;e.Scedilla=667;e.lcaron=299;e.Kcommaaccent=667;e.Lacute=556;e.trademark=1e3;e.edotaccent=556;e.Igrave=278;e.Imacron=278;e.Lcaron=556;e.onehalf=834;e.lessequal=549;e.ocircumflex=556;e.ntilde=556;e.Uhungarumlaut=722;e.Eacute=667;e.emacron=556;e.gbreve=556;e.onequarter=834;e.Scaron=667;e.Scommaaccent=667;e.Ohungarumlaut=778;e.degree=400;e.ograve=556;e.Ccaron=722;e.ugrave=556;e.radical=453;e.Dcaron=722;e.rcommaaccent=333;e.Ntilde=722;e.otilde=556;e.Rcommaaccent=722;e.Lcommaaccent=556;e.Atilde=667;e.Aogonek=667;e.Aring=667;e.Otilde=778;e.zdotaccent=500;e.Ecaron=667;e.Iogonek=278;e.kcommaaccent=500;e.minus=584;e.Icircumflex=278;e.ncaron=556;e.tcommaaccent=278;e.logicalnot=584;e.odieresis=556;e.udieresis=556;e.notequal=549;e.gcommaaccent=556;e.eth=556;e.zcaron=500;e.ncommaaccent=556;e.onesuperior=333;e.imacron=278;e.Euro=556}));e["Helvetica-Bold"]=(0,r.getLookupTableFactory)((function(e){e.space=278;e.exclam=333;e.quotedbl=474;e.numbersign=556;e.dollar=556;e.percent=889;e.ampersand=722;e.quoteright=278;e.parenleft=333;e.parenright=333;e.asterisk=389;e.plus=584;e.comma=278;e.hyphen=333;e.period=278;e.slash=278;e.zero=556;e.one=556;e.two=556;e.three=556;e.four=556;e.five=556;e.six=556;e.seven=556;e.eight=556;e.nine=556;e.colon=333;e.semicolon=333;e.less=584;e.equal=584;e.greater=584;e.question=611;e.at=975;e.A=722;e.B=722;e.C=722;e.D=722;e.E=667;e.F=611;e.G=778;e.H=722;e.I=278;e.J=556;e.K=722;e.L=611;e.M=833;e.N=722;e.O=778;e.P=667;e.Q=778;e.R=722;e.S=667;e.T=611;e.U=722;e.V=667;e.W=944;e.X=667;e.Y=667;e.Z=611;e.bracketleft=333;e.backslash=278;e.bracketright=333;e.asciicircum=584;e.underscore=556;e.quoteleft=278;e.a=556;e.b=611;e.c=556;e.d=611;e.e=556;e.f=333;e.g=611;e.h=611;e.i=278;e.j=278;e.k=556;e.l=278;e.m=889;e.n=611;e.o=611;e.p=611;e.q=611;e.r=389;e.s=556;e.t=333;e.u=611;e.v=556;e.w=778;e.x=556;e.y=556;e.z=500;e.braceleft=389;e.bar=280;e.braceright=389;e.asciitilde=584;e.exclamdown=333;e.cent=556;e.sterling=556;e.fraction=167;e.yen=556;e.florin=556;e.section=556;e.currency=556;e.quotesingle=238;e.quotedblleft=500;e.guillemotleft=556;e.guilsinglleft=333;e.guilsinglright=333;e.fi=611;e.fl=611;e.endash=556;e.dagger=556;e.daggerdbl=556;e.periodcentered=278;e.paragraph=556;e.bullet=350;e.quotesinglbase=278;e.quotedblbase=500;e.quotedblright=500;e.guillemotright=556;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=611;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=1e3;e.ordfeminine=370;e.Lslash=611;e.Oslash=778;e.OE=1e3;e.ordmasculine=365;e.ae=889;e.dotlessi=278;e.lslash=278;e.oslash=611;e.oe=944;e.germandbls=611;e.Idieresis=278;e.eacute=556;e.abreve=556;e.uhungarumlaut=611;e.ecaron=556;e.Ydieresis=667;e.divide=584;e.Yacute=667;e.Acircumflex=722;e.aacute=556;e.Ucircumflex=722;e.yacute=556;e.scommaaccent=556;e.ecircumflex=556;e.Uring=722;e.Udieresis=722;e.aogonek=556;e.Uacute=722;e.uogonek=611;e.Edieresis=667;e.Dcroat=722;e.commaaccent=250;e.copyright=737;e.Emacron=667;e.ccaron=556;e.aring=556;e.Ncommaaccent=722;e.lacute=278;e.agrave=556;e.Tcommaaccent=611;e.Cacute=722;e.atilde=556;e.Edotaccent=667;e.scaron=556;e.scedilla=556;e.iacute=278;e.lozenge=494;e.Rcaron=722;e.Gcommaaccent=778;e.ucircumflex=611;e.acircumflex=556;e.Amacron=722;e.rcaron=389;e.ccedilla=556;e.Zdotaccent=611;e.Thorn=667;e.Omacron=778;e.Racute=722;e.Sacute=667;e.dcaron=743;e.Umacron=722;e.uring=611;e.threesuperior=333;e.Ograve=778;e.Agrave=722;e.Abreve=722;e.multiply=584;e.uacute=611;e.Tcaron=611;e.partialdiff=494;e.ydieresis=556;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=667;e.adieresis=556;e.edieresis=556;e.cacute=556;e.nacute=611;e.umacron=611;e.Ncaron=722;e.Iacute=278;e.plusminus=584;e.brokenbar=280;e.registered=737;e.Gbreve=778;e.Idotaccent=278;e.summation=600;e.Egrave=667;e.racute=389;e.omacron=611;e.Zacute=611;e.Zcaron=611;e.greaterequal=549;e.Eth=722;e.Ccedilla=722;e.lcommaaccent=278;e.tcaron=389;e.eogonek=556;e.Uogonek=722;e.Aacute=722;e.Adieresis=722;e.egrave=556;e.zacute=500;e.iogonek=278;e.Oacute=778;e.oacute=611;e.amacron=556;e.sacute=556;e.idieresis=278;e.Ocircumflex=778;e.Ugrave=722;e.Delta=612;e.thorn=611;e.twosuperior=333;e.Odieresis=778;e.mu=611;e.igrave=278;e.ohungarumlaut=611;e.Eogonek=667;e.dcroat=611;e.threequarters=834;e.Scedilla=667;e.lcaron=400;e.Kcommaaccent=722;e.Lacute=611;e.trademark=1e3;e.edotaccent=556;e.Igrave=278;e.Imacron=278;e.Lcaron=611;e.onehalf=834;e.lessequal=549;e.ocircumflex=611;e.ntilde=611;e.Uhungarumlaut=722;e.Eacute=667;e.emacron=556;e.gbreve=611;e.onequarter=834;e.Scaron=667;e.Scommaaccent=667;e.Ohungarumlaut=778;e.degree=400;e.ograve=611;e.Ccaron=722;e.ugrave=611;e.radical=549;e.Dcaron=722;e.rcommaaccent=389;e.Ntilde=722;e.otilde=611;e.Rcommaaccent=722;e.Lcommaaccent=611;e.Atilde=722;e.Aogonek=722;e.Aring=722;e.Otilde=778;e.zdotaccent=500;e.Ecaron=667;e.Iogonek=278;e.kcommaaccent=556;e.minus=584;e.Icircumflex=278;e.ncaron=611;e.tcommaaccent=333;e.logicalnot=584;e.odieresis=611;e.udieresis=611;e.notequal=549;e.gcommaaccent=611;e.eth=611;e.zcaron=500;e.ncommaaccent=611;e.onesuperior=333;e.imacron=278;e.Euro=556}));e["Helvetica-BoldOblique"]=(0,r.getLookupTableFactory)((function(e){e.space=278;e.exclam=333;e.quotedbl=474;e.numbersign=556;e.dollar=556;e.percent=889;e.ampersand=722;e.quoteright=278;e.parenleft=333;e.parenright=333;e.asterisk=389;e.plus=584;e.comma=278;e.hyphen=333;e.period=278;e.slash=278;e.zero=556;e.one=556;e.two=556;e.three=556;e.four=556;e.five=556;e.six=556;e.seven=556;e.eight=556;e.nine=556;e.colon=333;e.semicolon=333;e.less=584;e.equal=584;e.greater=584;e.question=611;e.at=975;e.A=722;e.B=722;e.C=722;e.D=722;e.E=667;e.F=611;e.G=778;e.H=722;e.I=278;e.J=556;e.K=722;e.L=611;e.M=833;e.N=722;e.O=778;e.P=667;e.Q=778;e.R=722;e.S=667;e.T=611;e.U=722;e.V=667;e.W=944;e.X=667;e.Y=667;e.Z=611;e.bracketleft=333;e.backslash=278;e.bracketright=333;e.asciicircum=584;e.underscore=556;e.quoteleft=278;e.a=556;e.b=611;e.c=556;e.d=611;e.e=556;e.f=333;e.g=611;e.h=611;e.i=278;e.j=278;e.k=556;e.l=278;e.m=889;e.n=611;e.o=611;e.p=611;e.q=611;e.r=389;e.s=556;e.t=333;e.u=611;e.v=556;e.w=778;e.x=556;e.y=556;e.z=500;e.braceleft=389;e.bar=280;e.braceright=389;e.asciitilde=584;e.exclamdown=333;e.cent=556;e.sterling=556;e.fraction=167;e.yen=556;e.florin=556;e.section=556;e.currency=556;e.quotesingle=238;e.quotedblleft=500;e.guillemotleft=556;e.guilsinglleft=333;e.guilsinglright=333;e.fi=611;e.fl=611;e.endash=556;e.dagger=556;e.daggerdbl=556;e.periodcentered=278;e.paragraph=556;e.bullet=350;e.quotesinglbase=278;e.quotedblbase=500;e.quotedblright=500;e.guillemotright=556;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=611;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=1e3;e.ordfeminine=370;e.Lslash=611;e.Oslash=778;e.OE=1e3;e.ordmasculine=365;e.ae=889;e.dotlessi=278;e.lslash=278;e.oslash=611;e.oe=944;e.germandbls=611;e.Idieresis=278;e.eacute=556;e.abreve=556;e.uhungarumlaut=611;e.ecaron=556;e.Ydieresis=667;e.divide=584;e.Yacute=667;e.Acircumflex=722;e.aacute=556;e.Ucircumflex=722;e.yacute=556;e.scommaaccent=556;e.ecircumflex=556;e.Uring=722;e.Udieresis=722;e.aogonek=556;e.Uacute=722;e.uogonek=611;e.Edieresis=667;e.Dcroat=722;e.commaaccent=250;e.copyright=737;e.Emacron=667;e.ccaron=556;e.aring=556;e.Ncommaaccent=722;e.lacute=278;e.agrave=556;e.Tcommaaccent=611;e.Cacute=722;e.atilde=556;e.Edotaccent=667;e.scaron=556;e.scedilla=556;e.iacute=278;e.lozenge=494;e.Rcaron=722;e.Gcommaaccent=778;e.ucircumflex=611;e.acircumflex=556;e.Amacron=722;e.rcaron=389;e.ccedilla=556;e.Zdotaccent=611;e.Thorn=667;e.Omacron=778;e.Racute=722;e.Sacute=667;e.dcaron=743;e.Umacron=722;e.uring=611;e.threesuperior=333;e.Ograve=778;e.Agrave=722;e.Abreve=722;e.multiply=584;e.uacute=611;e.Tcaron=611;e.partialdiff=494;e.ydieresis=556;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=667;e.adieresis=556;e.edieresis=556;e.cacute=556;e.nacute=611;e.umacron=611;e.Ncaron=722;e.Iacute=278;e.plusminus=584;e.brokenbar=280;e.registered=737;e.Gbreve=778;e.Idotaccent=278;e.summation=600;e.Egrave=667;e.racute=389;e.omacron=611;e.Zacute=611;e.Zcaron=611;e.greaterequal=549;e.Eth=722;e.Ccedilla=722;e.lcommaaccent=278;e.tcaron=389;e.eogonek=556;e.Uogonek=722;e.Aacute=722;e.Adieresis=722;e.egrave=556;e.zacute=500;e.iogonek=278;e.Oacute=778;e.oacute=611;e.amacron=556;e.sacute=556;e.idieresis=278;e.Ocircumflex=778;e.Ugrave=722;e.Delta=612;e.thorn=611;e.twosuperior=333;e.Odieresis=778;e.mu=611;e.igrave=278;e.ohungarumlaut=611;e.Eogonek=667;e.dcroat=611;e.threequarters=834;e.Scedilla=667;e.lcaron=400;e.Kcommaaccent=722;e.Lacute=611;e.trademark=1e3;e.edotaccent=556;e.Igrave=278;e.Imacron=278;e.Lcaron=611;e.onehalf=834;e.lessequal=549;e.ocircumflex=611;e.ntilde=611;e.Uhungarumlaut=722;e.Eacute=667;e.emacron=556;e.gbreve=611;e.onequarter=834;e.Scaron=667;e.Scommaaccent=667;e.Ohungarumlaut=778;e.degree=400;e.ograve=611;e.Ccaron=722;e.ugrave=611;e.radical=549;e.Dcaron=722;e.rcommaaccent=389;e.Ntilde=722;e.otilde=611;e.Rcommaaccent=722;e.Lcommaaccent=611;e.Atilde=722;e.Aogonek=722;e.Aring=722;e.Otilde=778;e.zdotaccent=500;e.Ecaron=667;e.Iogonek=278;e.kcommaaccent=556;e.minus=584;e.Icircumflex=278;e.ncaron=611;e.tcommaaccent=333;e.logicalnot=584;e.odieresis=611;e.udieresis=611;e.notequal=549;e.gcommaaccent=611;e.eth=611;e.zcaron=500;e.ncommaaccent=611;e.onesuperior=333;e.imacron=278;e.Euro=556}));e["Helvetica-Oblique"]=(0,r.getLookupTableFactory)((function(e){e.space=278;e.exclam=278;e.quotedbl=355;e.numbersign=556;e.dollar=556;e.percent=889;e.ampersand=667;e.quoteright=222;e.parenleft=333;e.parenright=333;e.asterisk=389;e.plus=584;e.comma=278;e.hyphen=333;e.period=278;e.slash=278;e.zero=556;e.one=556;e.two=556;e.three=556;e.four=556;e.five=556;e.six=556;e.seven=556;e.eight=556;e.nine=556;e.colon=278;e.semicolon=278;e.less=584;e.equal=584;e.greater=584;e.question=556;e.at=1015;e.A=667;e.B=667;e.C=722;e.D=722;e.E=667;e.F=611;e.G=778;e.H=722;e.I=278;e.J=500;e.K=667;e.L=556;e.M=833;e.N=722;e.O=778;e.P=667;e.Q=778;e.R=722;e.S=667;e.T=611;e.U=722;e.V=667;e.W=944;e.X=667;e.Y=667;e.Z=611;e.bracketleft=278;e.backslash=278;e.bracketright=278;e.asciicircum=469;e.underscore=556;e.quoteleft=222;e.a=556;e.b=556;e.c=500;e.d=556;e.e=556;e.f=278;e.g=556;e.h=556;e.i=222;e.j=222;e.k=500;e.l=222;e.m=833;e.n=556;e.o=556;e.p=556;e.q=556;e.r=333;e.s=500;e.t=278;e.u=556;e.v=500;e.w=722;e.x=500;e.y=500;e.z=500;e.braceleft=334;e.bar=260;e.braceright=334;e.asciitilde=584;e.exclamdown=333;e.cent=556;e.sterling=556;e.fraction=167;e.yen=556;e.florin=556;e.section=556;e.currency=556;e.quotesingle=191;e.quotedblleft=333;e.guillemotleft=556;e.guilsinglleft=333;e.guilsinglright=333;e.fi=500;e.fl=500;e.endash=556;e.dagger=556;e.daggerdbl=556;e.periodcentered=278;e.paragraph=537;e.bullet=350;e.quotesinglbase=222;e.quotedblbase=333;e.quotedblright=333;e.guillemotright=556;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=611;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=1e3;e.ordfeminine=370;e.Lslash=556;e.Oslash=778;e.OE=1e3;e.ordmasculine=365;e.ae=889;e.dotlessi=278;e.lslash=222;e.oslash=611;e.oe=944;e.germandbls=611;e.Idieresis=278;e.eacute=556;e.abreve=556;e.uhungarumlaut=556;e.ecaron=556;e.Ydieresis=667;e.divide=584;e.Yacute=667;e.Acircumflex=667;e.aacute=556;e.Ucircumflex=722;e.yacute=500;e.scommaaccent=500;e.ecircumflex=556;e.Uring=722;e.Udieresis=722;e.aogonek=556;e.Uacute=722;e.uogonek=556;e.Edieresis=667;e.Dcroat=722;e.commaaccent=250;e.copyright=737;e.Emacron=667;e.ccaron=500;e.aring=556;e.Ncommaaccent=722;e.lacute=222;e.agrave=556;e.Tcommaaccent=611;e.Cacute=722;e.atilde=556;e.Edotaccent=667;e.scaron=500;e.scedilla=500;e.iacute=278;e.lozenge=471;e.Rcaron=722;e.Gcommaaccent=778;e.ucircumflex=556;e.acircumflex=556;e.Amacron=667;e.rcaron=333;e.ccedilla=500;e.Zdotaccent=611;e.Thorn=667;e.Omacron=778;e.Racute=722;e.Sacute=667;e.dcaron=643;e.Umacron=722;e.uring=556;e.threesuperior=333;e.Ograve=778;e.Agrave=667;e.Abreve=667;e.multiply=584;e.uacute=556;e.Tcaron=611;e.partialdiff=476;e.ydieresis=500;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=667;e.adieresis=556;e.edieresis=556;e.cacute=500;e.nacute=556;e.umacron=556;e.Ncaron=722;e.Iacute=278;e.plusminus=584;e.brokenbar=260;e.registered=737;e.Gbreve=778;e.Idotaccent=278;e.summation=600;e.Egrave=667;e.racute=333;e.omacron=556;e.Zacute=611;e.Zcaron=611;e.greaterequal=549;e.Eth=722;e.Ccedilla=722;e.lcommaaccent=222;e.tcaron=317;e.eogonek=556;e.Uogonek=722;e.Aacute=667;e.Adieresis=667;e.egrave=556;e.zacute=500;e.iogonek=222;e.Oacute=778;e.oacute=556;e.amacron=556;e.sacute=500;e.idieresis=278;e.Ocircumflex=778;e.Ugrave=722;e.Delta=612;e.thorn=556;e.twosuperior=333;e.Odieresis=778;e.mu=556;e.igrave=278;e.ohungarumlaut=556;e.Eogonek=667;e.dcroat=556;e.threequarters=834;e.Scedilla=667;e.lcaron=299;e.Kcommaaccent=667;e.Lacute=556;e.trademark=1e3;e.edotaccent=556;e.Igrave=278;e.Imacron=278;e.Lcaron=556;e.onehalf=834;e.lessequal=549;e.ocircumflex=556;e.ntilde=556;e.Uhungarumlaut=722;e.Eacute=667;e.emacron=556;e.gbreve=556;e.onequarter=834;e.Scaron=667;e.Scommaaccent=667;e.Ohungarumlaut=778;e.degree=400;e.ograve=556;e.Ccaron=722;e.ugrave=556;e.radical=453;e.Dcaron=722;e.rcommaaccent=333;e.Ntilde=722;e.otilde=556;e.Rcommaaccent=722;e.Lcommaaccent=556;e.Atilde=667;e.Aogonek=667;e.Aring=667;e.Otilde=778;e.zdotaccent=500;e.Ecaron=667;e.Iogonek=278;e.kcommaaccent=500;e.minus=584;e.Icircumflex=278;e.ncaron=556;e.tcommaaccent=278;e.logicalnot=584;e.odieresis=556;e.udieresis=556;e.notequal=549;e.gcommaaccent=556;e.eth=556;e.zcaron=500;e.ncommaaccent=556;e.onesuperior=333;e.imacron=278;e.Euro=556}));e.Symbol=(0,r.getLookupTableFactory)((function(e){e.space=250;e.exclam=333;e.universal=713;e.numbersign=500;e.existential=549;e.percent=833;e.ampersand=778;e.suchthat=439;e.parenleft=333;e.parenright=333;e.asteriskmath=500;e.plus=549;e.comma=250;e.minus=549;e.period=250;e.slash=278;e.zero=500;e.one=500;e.two=500;e.three=500;e.four=500;e.five=500;e.six=500;e.seven=500;e.eight=500;e.nine=500;e.colon=278;e.semicolon=278;e.less=549;e.equal=549;e.greater=549;e.question=444;e.congruent=549;e.Alpha=722;e.Beta=667;e.Chi=722;e.Delta=612;e.Epsilon=611;e.Phi=763;e.Gamma=603;e.Eta=722;e.Iota=333;e.theta1=631;e.Kappa=722;e.Lambda=686;e.Mu=889;e.Nu=722;e.Omicron=722;e.Pi=768;e.Theta=741;e.Rho=556;e.Sigma=592;e.Tau=611;e.Upsilon=690;e.sigma1=439;e.Omega=768;e.Xi=645;e.Psi=795;e.Zeta=611;e.bracketleft=333;e.therefore=863;e.bracketright=333;e.perpendicular=658;e.underscore=500;e.radicalex=500;e.alpha=631;e.beta=549;e.chi=549;e.delta=494;e.epsilon=439;e.phi=521;e.gamma=411;e.eta=603;e.iota=329;e.phi1=603;e.kappa=549;e.lambda=549;e.mu=576;e.nu=521;e.omicron=549;e.pi=549;e.theta=521;e.rho=549;e.sigma=603;e.tau=439;e.upsilon=576;e.omega1=713;e.omega=686;e.xi=493;e.psi=686;e.zeta=494;e.braceleft=480;e.bar=200;e.braceright=480;e.similar=549;e.Euro=750;e.Upsilon1=620;e.minute=247;e.lessequal=549;e.fraction=167;e.infinity=713;e.florin=500;e.club=753;e.diamond=753;e.heart=753;e.spade=753;e.arrowboth=1042;e.arrowleft=987;e.arrowup=603;e.arrowright=987;e.arrowdown=603;e.degree=400;e.plusminus=549;e.second=411;e.greaterequal=549;e.multiply=549;e.proportional=713;e.partialdiff=494;e.bullet=460;e.divide=549;e.notequal=549;e.equivalence=549;e.approxequal=549;e.ellipsis=1e3;e.arrowvertex=603;e.arrowhorizex=1e3;e.carriagereturn=658;e.aleph=823;e.Ifraktur=686;e.Rfraktur=795;e.weierstrass=987;e.circlemultiply=768;e.circleplus=768;e.emptyset=823;e.intersection=768;e.union=768;e.propersuperset=713;e.reflexsuperset=713;e.notsubset=713;e.propersubset=713;e.reflexsubset=713;e.element=713;e.notelement=713;e.angle=768;e.gradient=713;e.registerserif=790;e.copyrightserif=790;e.trademarkserif=890;e.product=823;e.radical=549;e.dotmath=250;e.logicalnot=713;e.logicaland=603;e.logicalor=603;e.arrowdblboth=1042;e.arrowdblleft=987;e.arrowdblup=603;e.arrowdblright=987;e.arrowdbldown=603;e.lozenge=494;e.angleleft=329;e.registersans=790;e.copyrightsans=790;e.trademarksans=786;e.summation=713;e.parenlefttp=384;e.parenleftex=384;e.parenleftbt=384;e.bracketlefttp=384;e.bracketleftex=384;e.bracketleftbt=384;e.bracelefttp=494;e.braceleftmid=494;e.braceleftbt=494;e.braceex=494;e.angleright=329;e.integral=274;e.integraltp=686;e.integralex=686;e.integralbt=686;e.parenrighttp=384;e.parenrightex=384;e.parenrightbt=384;e.bracketrighttp=384;e.bracketrightex=384;e.bracketrightbt=384;e.bracerighttp=494;e.bracerightmid=494;e.bracerightbt=494;e.apple=790}));e["Times-Roman"]=(0,r.getLookupTableFactory)((function(e){e.space=250;e.exclam=333;e.quotedbl=408;e.numbersign=500;e.dollar=500;e.percent=833;e.ampersand=778;e.quoteright=333;e.parenleft=333;e.parenright=333;e.asterisk=500;e.plus=564;e.comma=250;e.hyphen=333;e.period=250;e.slash=278;e.zero=500;e.one=500;e.two=500;e.three=500;e.four=500;e.five=500;e.six=500;e.seven=500;e.eight=500;e.nine=500;e.colon=278;e.semicolon=278;e.less=564;e.equal=564;e.greater=564;e.question=444;e.at=921;e.A=722;e.B=667;e.C=667;e.D=722;e.E=611;e.F=556;e.G=722;e.H=722;e.I=333;e.J=389;e.K=722;e.L=611;e.M=889;e.N=722;e.O=722;e.P=556;e.Q=722;e.R=667;e.S=556;e.T=611;e.U=722;e.V=722;e.W=944;e.X=722;e.Y=722;e.Z=611;e.bracketleft=333;e.backslash=278;e.bracketright=333;e.asciicircum=469;e.underscore=500;e.quoteleft=333;e.a=444;e.b=500;e.c=444;e.d=500;e.e=444;e.f=333;e.g=500;e.h=500;e.i=278;e.j=278;e.k=500;e.l=278;e.m=778;e.n=500;e.o=500;e.p=500;e.q=500;e.r=333;e.s=389;e.t=278;e.u=500;e.v=500;e.w=722;e.x=500;e.y=500;e.z=444;e.braceleft=480;e.bar=200;e.braceright=480;e.asciitilde=541;e.exclamdown=333;e.cent=500;e.sterling=500;e.fraction=167;e.yen=500;e.florin=500;e.section=500;e.currency=500;e.quotesingle=180;e.quotedblleft=444;e.guillemotleft=500;e.guilsinglleft=333;e.guilsinglright=333;e.fi=556;e.fl=556;e.endash=500;e.dagger=500;e.daggerdbl=500;e.periodcentered=250;e.paragraph=453;e.bullet=350;e.quotesinglbase=333;e.quotedblbase=444;e.quotedblright=444;e.guillemotright=500;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=444;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=889;e.ordfeminine=276;e.Lslash=611;e.Oslash=722;e.OE=889;e.ordmasculine=310;e.ae=667;e.dotlessi=278;e.lslash=278;e.oslash=500;e.oe=722;e.germandbls=500;e.Idieresis=333;e.eacute=444;e.abreve=444;e.uhungarumlaut=500;e.ecaron=444;e.Ydieresis=722;e.divide=564;e.Yacute=722;e.Acircumflex=722;e.aacute=444;e.Ucircumflex=722;e.yacute=500;e.scommaaccent=389;e.ecircumflex=444;e.Uring=722;e.Udieresis=722;e.aogonek=444;e.Uacute=722;e.uogonek=500;e.Edieresis=611;e.Dcroat=722;e.commaaccent=250;e.copyright=760;e.Emacron=611;e.ccaron=444;e.aring=444;e.Ncommaaccent=722;e.lacute=278;e.agrave=444;e.Tcommaaccent=611;e.Cacute=667;e.atilde=444;e.Edotaccent=611;e.scaron=389;e.scedilla=389;e.iacute=278;e.lozenge=471;e.Rcaron=667;e.Gcommaaccent=722;e.ucircumflex=500;e.acircumflex=444;e.Amacron=722;e.rcaron=333;e.ccedilla=444;e.Zdotaccent=611;e.Thorn=556;e.Omacron=722;e.Racute=667;e.Sacute=556;e.dcaron=588;e.Umacron=722;e.uring=500;e.threesuperior=300;e.Ograve=722;e.Agrave=722;e.Abreve=722;e.multiply=564;e.uacute=500;e.Tcaron=611;e.partialdiff=476;e.ydieresis=500;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=611;e.adieresis=444;e.edieresis=444;e.cacute=444;e.nacute=500;e.umacron=500;e.Ncaron=722;e.Iacute=333;e.plusminus=564;e.brokenbar=200;e.registered=760;e.Gbreve=722;e.Idotaccent=333;e.summation=600;e.Egrave=611;e.racute=333;e.omacron=500;e.Zacute=611;e.Zcaron=611;e.greaterequal=549;e.Eth=722;e.Ccedilla=667;e.lcommaaccent=278;e.tcaron=326;e.eogonek=444;e.Uogonek=722;e.Aacute=722;e.Adieresis=722;e.egrave=444;e.zacute=444;e.iogonek=278;e.Oacute=722;e.oacute=500;e.amacron=444;e.sacute=389;e.idieresis=278;e.Ocircumflex=722;e.Ugrave=722;e.Delta=612;e.thorn=500;e.twosuperior=300;e.Odieresis=722;e.mu=500;e.igrave=278;e.ohungarumlaut=500;e.Eogonek=611;e.dcroat=500;e.threequarters=750;e.Scedilla=556;e.lcaron=344;e.Kcommaaccent=722;e.Lacute=611;e.trademark=980;e.edotaccent=444;e.Igrave=333;e.Imacron=333;e.Lcaron=611;e.onehalf=750;e.lessequal=549;e.ocircumflex=500;e.ntilde=500;e.Uhungarumlaut=722;e.Eacute=611;e.emacron=444;e.gbreve=500;e.onequarter=750;e.Scaron=556;e.Scommaaccent=556;e.Ohungarumlaut=722;e.degree=400;e.ograve=500;e.Ccaron=667;e.ugrave=500;e.radical=453;e.Dcaron=722;e.rcommaaccent=333;e.Ntilde=722;e.otilde=500;e.Rcommaaccent=667;e.Lcommaaccent=611;e.Atilde=722;e.Aogonek=722;e.Aring=722;e.Otilde=722;e.zdotaccent=444;e.Ecaron=611;e.Iogonek=333;e.kcommaaccent=500;e.minus=564;e.Icircumflex=333;e.ncaron=500;e.tcommaaccent=278;e.logicalnot=564;e.odieresis=500;e.udieresis=500;e.notequal=549;e.gcommaaccent=500;e.eth=500;e.zcaron=444;e.ncommaaccent=500;e.onesuperior=300;e.imacron=278;e.Euro=500}));e["Times-Bold"]=(0,r.getLookupTableFactory)((function(e){e.space=250;e.exclam=333;e.quotedbl=555;e.numbersign=500;e.dollar=500;e.percent=1e3;e.ampersand=833;e.quoteright=333;e.parenleft=333;e.parenright=333;e.asterisk=500;e.plus=570;e.comma=250;e.hyphen=333;e.period=250;e.slash=278;e.zero=500;e.one=500;e.two=500;e.three=500;e.four=500;e.five=500;e.six=500;e.seven=500;e.eight=500;e.nine=500;e.colon=333;e.semicolon=333;e.less=570;e.equal=570;e.greater=570;e.question=500;e.at=930;e.A=722;e.B=667;e.C=722;e.D=722;e.E=667;e.F=611;e.G=778;e.H=778;e.I=389;e.J=500;e.K=778;e.L=667;e.M=944;e.N=722;e.O=778;e.P=611;e.Q=778;e.R=722;e.S=556;e.T=667;e.U=722;e.V=722;e.W=1e3;e.X=722;e.Y=722;e.Z=667;e.bracketleft=333;e.backslash=278;e.bracketright=333;e.asciicircum=581;e.underscore=500;e.quoteleft=333;e.a=500;e.b=556;e.c=444;e.d=556;e.e=444;e.f=333;e.g=500;e.h=556;e.i=278;e.j=333;e.k=556;e.l=278;e.m=833;e.n=556;e.o=500;e.p=556;e.q=556;e.r=444;e.s=389;e.t=333;e.u=556;e.v=500;e.w=722;e.x=500;e.y=500;e.z=444;e.braceleft=394;e.bar=220;e.braceright=394;e.asciitilde=520;e.exclamdown=333;e.cent=500;e.sterling=500;e.fraction=167;e.yen=500;e.florin=500;e.section=500;e.currency=500;e.quotesingle=278;e.quotedblleft=500;e.guillemotleft=500;e.guilsinglleft=333;e.guilsinglright=333;e.fi=556;e.fl=556;e.endash=500;e.dagger=500;e.daggerdbl=500;e.periodcentered=250;e.paragraph=540;e.bullet=350;e.quotesinglbase=333;e.quotedblbase=500;e.quotedblright=500;e.guillemotright=500;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=500;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=1e3;e.ordfeminine=300;e.Lslash=667;e.Oslash=778;e.OE=1e3;e.ordmasculine=330;e.ae=722;e.dotlessi=278;e.lslash=278;e.oslash=500;e.oe=722;e.germandbls=556;e.Idieresis=389;e.eacute=444;e.abreve=500;e.uhungarumlaut=556;e.ecaron=444;e.Ydieresis=722;e.divide=570;e.Yacute=722;e.Acircumflex=722;e.aacute=500;e.Ucircumflex=722;e.yacute=500;e.scommaaccent=389;e.ecircumflex=444;e.Uring=722;e.Udieresis=722;e.aogonek=500;e.Uacute=722;e.uogonek=556;e.Edieresis=667;e.Dcroat=722;e.commaaccent=250;e.copyright=747;e.Emacron=667;e.ccaron=444;e.aring=500;e.Ncommaaccent=722;e.lacute=278;e.agrave=500;e.Tcommaaccent=667;e.Cacute=722;e.atilde=500;e.Edotaccent=667;e.scaron=389;e.scedilla=389;e.iacute=278;e.lozenge=494;e.Rcaron=722;e.Gcommaaccent=778;e.ucircumflex=556;e.acircumflex=500;e.Amacron=722;e.rcaron=444;e.ccedilla=444;e.Zdotaccent=667;e.Thorn=611;e.Omacron=778;e.Racute=722;e.Sacute=556;e.dcaron=672;e.Umacron=722;e.uring=556;e.threesuperior=300;e.Ograve=778;e.Agrave=722;e.Abreve=722;e.multiply=570;e.uacute=556;e.Tcaron=667;e.partialdiff=494;e.ydieresis=500;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=667;e.adieresis=500;e.edieresis=444;e.cacute=444;e.nacute=556;e.umacron=556;e.Ncaron=722;e.Iacute=389;e.plusminus=570;e.brokenbar=220;e.registered=747;e.Gbreve=778;e.Idotaccent=389;e.summation=600;e.Egrave=667;e.racute=444;e.omacron=500;e.Zacute=667;e.Zcaron=667;e.greaterequal=549;e.Eth=722;e.Ccedilla=722;e.lcommaaccent=278;e.tcaron=416;e.eogonek=444;e.Uogonek=722;e.Aacute=722;e.Adieresis=722;e.egrave=444;e.zacute=444;e.iogonek=278;e.Oacute=778;e.oacute=500;e.amacron=500;e.sacute=389;e.idieresis=278;e.Ocircumflex=778;e.Ugrave=722;e.Delta=612;e.thorn=556;e.twosuperior=300;e.Odieresis=778;e.mu=556;e.igrave=278;e.ohungarumlaut=500;e.Eogonek=667;e.dcroat=556;e.threequarters=750;e.Scedilla=556;e.lcaron=394;e.Kcommaaccent=778;e.Lacute=667;e.trademark=1e3;e.edotaccent=444;e.Igrave=389;e.Imacron=389;e.Lcaron=667;e.onehalf=750;e.lessequal=549;e.ocircumflex=500;e.ntilde=556;e.Uhungarumlaut=722;e.Eacute=667;e.emacron=444;e.gbreve=500;e.onequarter=750;e.Scaron=556;e.Scommaaccent=556;e.Ohungarumlaut=778;e.degree=400;e.ograve=500;e.Ccaron=722;e.ugrave=556;e.radical=549;e.Dcaron=722;e.rcommaaccent=444;e.Ntilde=722;e.otilde=500;e.Rcommaaccent=722;e.Lcommaaccent=667;e.Atilde=722;e.Aogonek=722;e.Aring=722;e.Otilde=778;e.zdotaccent=444;e.Ecaron=667;e.Iogonek=389;e.kcommaaccent=556;e.minus=570;e.Icircumflex=389;e.ncaron=556;e.tcommaaccent=333;e.logicalnot=570;e.odieresis=500;e.udieresis=556;e.notequal=549;e.gcommaaccent=500;e.eth=500;e.zcaron=444;e.ncommaaccent=556;e.onesuperior=300;e.imacron=278;e.Euro=500}));e["Times-BoldItalic"]=(0,r.getLookupTableFactory)((function(e){e.space=250;e.exclam=389;e.quotedbl=555;e.numbersign=500;e.dollar=500;e.percent=833;e.ampersand=778;e.quoteright=333;e.parenleft=333;e.parenright=333;e.asterisk=500;e.plus=570;e.comma=250;e.hyphen=333;e.period=250;e.slash=278;e.zero=500;e.one=500;e.two=500;e.three=500;e.four=500;e.five=500;e.six=500;e.seven=500;e.eight=500;e.nine=500;e.colon=333;e.semicolon=333;e.less=570;e.equal=570;e.greater=570;e.question=500;e.at=832;e.A=667;e.B=667;e.C=667;e.D=722;e.E=667;e.F=667;e.G=722;e.H=778;e.I=389;e.J=500;e.K=667;e.L=611;e.M=889;e.N=722;e.O=722;e.P=611;e.Q=722;e.R=667;e.S=556;e.T=611;e.U=722;e.V=667;e.W=889;e.X=667;e.Y=611;e.Z=611;e.bracketleft=333;e.backslash=278;e.bracketright=333;e.asciicircum=570;e.underscore=500;e.quoteleft=333;e.a=500;e.b=500;e.c=444;e.d=500;e.e=444;e.f=333;e.g=500;e.h=556;e.i=278;e.j=278;e.k=500;e.l=278;e.m=778;e.n=556;e.o=500;e.p=500;e.q=500;e.r=389;e.s=389;e.t=278;e.u=556;e.v=444;e.w=667;e.x=500;e.y=444;e.z=389;e.braceleft=348;e.bar=220;e.braceright=348;e.asciitilde=570;e.exclamdown=389;e.cent=500;e.sterling=500;e.fraction=167;e.yen=500;e.florin=500;e.section=500;e.currency=500;e.quotesingle=278;e.quotedblleft=500;e.guillemotleft=500;e.guilsinglleft=333;e.guilsinglright=333;e.fi=556;e.fl=556;e.endash=500;e.dagger=500;e.daggerdbl=500;e.periodcentered=250;e.paragraph=500;e.bullet=350;e.quotesinglbase=333;e.quotedblbase=500;e.quotedblright=500;e.guillemotright=500;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=500;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=944;e.ordfeminine=266;e.Lslash=611;e.Oslash=722;e.OE=944;e.ordmasculine=300;e.ae=722;e.dotlessi=278;e.lslash=278;e.oslash=500;e.oe=722;e.germandbls=500;e.Idieresis=389;e.eacute=444;e.abreve=500;e.uhungarumlaut=556;e.ecaron=444;e.Ydieresis=611;e.divide=570;e.Yacute=611;e.Acircumflex=667;e.aacute=500;e.Ucircumflex=722;e.yacute=444;e.scommaaccent=389;e.ecircumflex=444;e.Uring=722;e.Udieresis=722;e.aogonek=500;e.Uacute=722;e.uogonek=556;e.Edieresis=667;e.Dcroat=722;e.commaaccent=250;e.copyright=747;e.Emacron=667;e.ccaron=444;e.aring=500;e.Ncommaaccent=722;e.lacute=278;e.agrave=500;e.Tcommaaccent=611;e.Cacute=667;e.atilde=500;e.Edotaccent=667;e.scaron=389;e.scedilla=389;e.iacute=278;e.lozenge=494;e.Rcaron=667;e.Gcommaaccent=722;e.ucircumflex=556;e.acircumflex=500;e.Amacron=667;e.rcaron=389;e.ccedilla=444;e.Zdotaccent=611;e.Thorn=611;e.Omacron=722;e.Racute=667;e.Sacute=556;e.dcaron=608;e.Umacron=722;e.uring=556;e.threesuperior=300;e.Ograve=722;e.Agrave=667;e.Abreve=667;e.multiply=570;e.uacute=556;e.Tcaron=611;e.partialdiff=494;e.ydieresis=444;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=667;e.adieresis=500;e.edieresis=444;e.cacute=444;e.nacute=556;e.umacron=556;e.Ncaron=722;e.Iacute=389;e.plusminus=570;e.brokenbar=220;e.registered=747;e.Gbreve=722;e.Idotaccent=389;e.summation=600;e.Egrave=667;e.racute=389;e.omacron=500;e.Zacute=611;e.Zcaron=611;e.greaterequal=549;e.Eth=722;e.Ccedilla=667;e.lcommaaccent=278;e.tcaron=366;e.eogonek=444;e.Uogonek=722;e.Aacute=667;e.Adieresis=667;e.egrave=444;e.zacute=389;e.iogonek=278;e.Oacute=722;e.oacute=500;e.amacron=500;e.sacute=389;e.idieresis=278;e.Ocircumflex=722;e.Ugrave=722;e.Delta=612;e.thorn=500;e.twosuperior=300;e.Odieresis=722;e.mu=576;e.igrave=278;e.ohungarumlaut=500;e.Eogonek=667;e.dcroat=500;e.threequarters=750;e.Scedilla=556;e.lcaron=382;e.Kcommaaccent=667;e.Lacute=611;e.trademark=1e3;e.edotaccent=444;e.Igrave=389;e.Imacron=389;e.Lcaron=611;e.onehalf=750;e.lessequal=549;e.ocircumflex=500;e.ntilde=556;e.Uhungarumlaut=722;e.Eacute=667;e.emacron=444;e.gbreve=500;e.onequarter=750;e.Scaron=556;e.Scommaaccent=556;e.Ohungarumlaut=722;e.degree=400;e.ograve=500;e.Ccaron=667;e.ugrave=556;e.radical=549;e.Dcaron=722;e.rcommaaccent=389;e.Ntilde=722;e.otilde=500;e.Rcommaaccent=667;e.Lcommaaccent=611;e.Atilde=667;e.Aogonek=667;e.Aring=667;e.Otilde=722;e.zdotaccent=389;e.Ecaron=667;e.Iogonek=389;e.kcommaaccent=500;e.minus=606;e.Icircumflex=389;e.ncaron=556;e.tcommaaccent=278;e.logicalnot=606;e.odieresis=500;e.udieresis=556;e.notequal=549;e.gcommaaccent=500;e.eth=500;e.zcaron=389;e.ncommaaccent=556;e.onesuperior=300;e.imacron=278;e.Euro=500}));e["Times-Italic"]=(0,r.getLookupTableFactory)((function(e){e.space=250;e.exclam=333;e.quotedbl=420;e.numbersign=500;e.dollar=500;e.percent=833;e.ampersand=778;e.quoteright=333;e.parenleft=333;e.parenright=333;e.asterisk=500;e.plus=675;e.comma=250;e.hyphen=333;e.period=250;e.slash=278;e.zero=500;e.one=500;e.two=500;e.three=500;e.four=500;e.five=500;e.six=500;e.seven=500;e.eight=500;e.nine=500;e.colon=333;e.semicolon=333;e.less=675;e.equal=675;e.greater=675;e.question=500;e.at=920;e.A=611;e.B=611;e.C=667;e.D=722;e.E=611;e.F=611;e.G=722;e.H=722;e.I=333;e.J=444;e.K=667;e.L=556;e.M=833;e.N=667;e.O=722;e.P=611;e.Q=722;e.R=611;e.S=500;e.T=556;e.U=722;e.V=611;e.W=833;e.X=611;e.Y=556;e.Z=556;e.bracketleft=389;e.backslash=278;e.bracketright=389;e.asciicircum=422;e.underscore=500;e.quoteleft=333;e.a=500;e.b=500;e.c=444;e.d=500;e.e=444;e.f=278;e.g=500;e.h=500;e.i=278;e.j=278;e.k=444;e.l=278;e.m=722;e.n=500;e.o=500;e.p=500;e.q=500;e.r=389;e.s=389;e.t=278;e.u=500;e.v=444;e.w=667;e.x=444;e.y=444;e.z=389;e.braceleft=400;e.bar=275;e.braceright=400;e.asciitilde=541;e.exclamdown=389;e.cent=500;e.sterling=500;e.fraction=167;e.yen=500;e.florin=500;e.section=500;e.currency=500;e.quotesingle=214;e.quotedblleft=556;e.guillemotleft=500;e.guilsinglleft=333;e.guilsinglright=333;e.fi=500;e.fl=500;e.endash=500;e.dagger=500;e.daggerdbl=500;e.periodcentered=250;e.paragraph=523;e.bullet=350;e.quotesinglbase=333;e.quotedblbase=556;e.quotedblright=556;e.guillemotright=500;e.ellipsis=889;e.perthousand=1e3;e.questiondown=500;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=889;e.AE=889;e.ordfeminine=276;e.Lslash=556;e.Oslash=722;e.OE=944;e.ordmasculine=310;e.ae=667;e.dotlessi=278;e.lslash=278;e.oslash=500;e.oe=667;e.germandbls=500;e.Idieresis=333;e.eacute=444;e.abreve=500;e.uhungarumlaut=500;e.ecaron=444;e.Ydieresis=556;e.divide=675;e.Yacute=556;e.Acircumflex=611;e.aacute=500;e.Ucircumflex=722;e.yacute=444;e.scommaaccent=389;e.ecircumflex=444;e.Uring=722;e.Udieresis=722;e.aogonek=500;e.Uacute=722;e.uogonek=500;e.Edieresis=611;e.Dcroat=722;e.commaaccent=250;e.copyright=760;e.Emacron=611;e.ccaron=444;e.aring=500;e.Ncommaaccent=667;e.lacute=278;e.agrave=500;e.Tcommaaccent=556;e.Cacute=667;e.atilde=500;e.Edotaccent=611;e.scaron=389;e.scedilla=389;e.iacute=278;e.lozenge=471;e.Rcaron=611;e.Gcommaaccent=722;e.ucircumflex=500;e.acircumflex=500;e.Amacron=611;e.rcaron=389;e.ccedilla=444;e.Zdotaccent=556;e.Thorn=611;e.Omacron=722;e.Racute=611;e.Sacute=500;e.dcaron=544;e.Umacron=722;e.uring=500;e.threesuperior=300;e.Ograve=722;e.Agrave=611;e.Abreve=611;e.multiply=675;e.uacute=500;e.Tcaron=556;e.partialdiff=476;e.ydieresis=444;e.Nacute=667;e.icircumflex=278;e.Ecircumflex=611;e.adieresis=500;e.edieresis=444;e.cacute=444;e.nacute=500;e.umacron=500;e.Ncaron=667;e.Iacute=333;e.plusminus=675;e.brokenbar=275;e.registered=760;e.Gbreve=722;e.Idotaccent=333;e.summation=600;e.Egrave=611;e.racute=389;e.omacron=500;e.Zacute=556;e.Zcaron=556;e.greaterequal=549;e.Eth=722;e.Ccedilla=667;e.lcommaaccent=278;e.tcaron=300;e.eogonek=444;e.Uogonek=722;e.Aacute=611;e.Adieresis=611;e.egrave=444;e.zacute=389;e.iogonek=278;e.Oacute=722;e.oacute=500;e.amacron=500;e.sacute=389;e.idieresis=278;e.Ocircumflex=722;e.Ugrave=722;e.Delta=612;e.thorn=500;e.twosuperior=300;e.Odieresis=722;e.mu=500;e.igrave=278;e.ohungarumlaut=500;e.Eogonek=611;e.dcroat=500;e.threequarters=750;e.Scedilla=500;e.lcaron=300;e.Kcommaaccent=667;e.Lacute=556;e.trademark=980;e.edotaccent=444;e.Igrave=333;e.Imacron=333;e.Lcaron=611;e.onehalf=750;e.lessequal=549;e.ocircumflex=500;e.ntilde=500;e.Uhungarumlaut=722;e.Eacute=611;e.emacron=444;e.gbreve=500;e.onequarter=750;e.Scaron=500;e.Scommaaccent=500;e.Ohungarumlaut=722;e.degree=400;e.ograve=500;e.Ccaron=667;e.ugrave=500;e.radical=453;e.Dcaron=722;e.rcommaaccent=389;e.Ntilde=667;e.otilde=500;e.Rcommaaccent=611;e.Lcommaaccent=556;e.Atilde=611;e.Aogonek=611;e.Aring=611;e.Otilde=722;e.zdotaccent=389;e.Ecaron=611;e.Iogonek=333;e.kcommaaccent=444;e.minus=675;e.Icircumflex=333;e.ncaron=500;e.tcommaaccent=278;e.logicalnot=675;e.odieresis=500;e.udieresis=500;e.notequal=549;e.gcommaaccent=500;e.eth=500;e.zcaron=389;e.ncommaaccent=500;e.onesuperior=300;e.imacron=278;e.Euro=500}));e.ZapfDingbats=(0,r.getLookupTableFactory)((function(e){e.space=278;e.a1=974;e.a2=961;e.a202=974;e.a3=980;e.a4=719;e.a5=789;e.a119=790;e.a118=791;e.a117=690;e.a11=960;e.a12=939;e.a13=549;e.a14=855;e.a15=911;e.a16=933;e.a105=911;e.a17=945;e.a18=974;e.a19=755;e.a20=846;e.a21=762;e.a22=761;e.a23=571;e.a24=677;e.a25=763;e.a26=760;e.a27=759;e.a28=754;e.a6=494;e.a7=552;e.a8=537;e.a9=577;e.a10=692;e.a29=786;e.a30=788;e.a31=788;e.a32=790;e.a33=793;e.a34=794;e.a35=816;e.a36=823;e.a37=789;e.a38=841;e.a39=823;e.a40=833;e.a41=816;e.a42=831;e.a43=923;e.a44=744;e.a45=723;e.a46=749;e.a47=790;e.a48=792;e.a49=695;e.a50=776;e.a51=768;e.a52=792;e.a53=759;e.a54=707;e.a55=708;e.a56=682;e.a57=701;e.a58=826;e.a59=815;e.a60=789;e.a61=789;e.a62=707;e.a63=687;e.a64=696;e.a65=689;e.a66=786;e.a67=787;e.a68=713;e.a69=791;e.a70=785;e.a71=791;e.a72=873;e.a73=761;e.a74=762;e.a203=762;e.a75=759;e.a204=759;e.a76=892;e.a77=892;e.a78=788;e.a79=784;e.a81=438;e.a82=138;e.a83=277;e.a84=415;e.a97=392;e.a98=392;e.a99=668;e.a100=668;e.a89=390;e.a90=390;e.a93=317;e.a94=317;e.a91=276;e.a92=276;e.a205=509;e.a85=509;e.a206=410;e.a86=410;e.a87=234;e.a88=234;e.a95=334;e.a96=334;e.a101=732;e.a102=544;e.a103=544;e.a104=910;e.a106=667;e.a107=760;e.a108=760;e.a112=776;e.a111=595;e.a110=694;e.a109=626;e.a120=788;e.a121=788;e.a122=788;e.a123=788;e.a124=788;e.a125=788;e.a126=788;e.a127=788;e.a128=788;e.a129=788;e.a130=788;e.a131=788;e.a132=788;e.a133=788;e.a134=788;e.a135=788;e.a136=788;e.a137=788;e.a138=788;e.a139=788;e.a140=788;e.a141=788;e.a142=788;e.a143=788;e.a144=788;e.a145=788;e.a146=788;e.a147=788;e.a148=788;e.a149=788;e.a150=788;e.a151=788;e.a152=788;e.a153=788;e.a154=788;e.a155=788;e.a156=788;e.a157=788;e.a158=788;e.a159=788;e.a160=894;e.a161=838;e.a163=1016;e.a164=458;e.a196=748;e.a165=924;e.a192=748;e.a166=918;e.a167=927;e.a168=928;e.a169=928;e.a170=834;e.a171=873;e.a172=828;e.a173=924;e.a162=924;e.a174=917;e.a175=930;e.a176=931;e.a177=463;e.a178=883;e.a179=836;e.a193=836;e.a180=867;e.a199=867;e.a181=696;e.a200=696;e.a182=874;e.a201=874;e.a183=760;e.a184=946;e.a197=771;e.a185=865;e.a194=771;e.a198=888;e.a186=967;e.a195=888;e.a187=831;e.a188=873;e.a189=927;e.a190=970;e.a191=918}))}));t.getMetrics=n;const i=(0,r.getLookupTableFactory)((function(e){e.Courier={ascent:629,descent:-157,capHeight:562,xHeight:-426};e["Courier-Bold"]={ascent:629,descent:-157,capHeight:562,xHeight:439};e["Courier-Oblique"]={ascent:629,descent:-157,capHeight:562,xHeight:426};e["Courier-BoldOblique"]={ascent:629,descent:-157,capHeight:562,xHeight:426};e.Helvetica={ascent:718,descent:-207,capHeight:718,xHeight:523};e["Helvetica-Bold"]={ascent:718,descent:-207,capHeight:718,xHeight:532};e["Helvetica-Oblique"]={ascent:718,descent:-207,capHeight:718,xHeight:523};e["Helvetica-BoldOblique"]={ascent:718,descent:-207,capHeight:718,xHeight:532};e["Times-Roman"]={ascent:683,descent:-217,capHeight:662,xHeight:450};e["Times-Bold"]={ascent:683,descent:-217,capHeight:676,xHeight:461};e["Times-Italic"]={ascent:683,descent:-217,capHeight:653,xHeight:441};e["Times-BoldItalic"]={ascent:683,descent:-217,capHeight:669,xHeight:462};e.Symbol={ascent:Math.NaN,descent:Math.NaN,capHeight:Math.NaN,xHeight:Math.NaN};e.ZapfDingbats={ascent:Math.NaN,descent:Math.NaN,capHeight:Math.NaN,xHeight:Math.NaN}}));t.getFontBasicMetrics=i},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.GlyfTable=void 0;t.GlyfTable=class GlyfTable{constructor({glyfTable:e,isGlyphLocationsLong:t,locaTable:a,numGlyphs:r}){this.glyphs=[];const n=new DataView(a.buffer,a.byteOffset,a.byteLength),i=new DataView(e.buffer,e.byteOffset,e.byteLength),s=t?4:2;let o=t?n.getUint32(0):2*n.getUint16(0),c=0;for(let e=0;ee+(t.getSize()+3&-4)),0)}write(){const e=this.getSize(),t=new DataView(new ArrayBuffer(e)),a=e>131070,r=a?4:2,n=new DataView(new ArrayBuffer((this.glyphs.length+1)*r));a?n.setUint32(0,0):n.setUint16(0,0);let i=0,s=0;for(const e of this.glyphs){i+=e.write(i,t);i=i+3&-4;s+=r;a?n.setUint32(s,i):n.setUint16(s,i>>1)}return{isLocationLong:a,loca:new Uint8Array(n.buffer),glyf:new Uint8Array(t.buffer)}}scale(e){for(let t=0,a=this.glyphs.length;te+t.getSize()),0);return this.header.getSize()+e}write(e,t){if(!this.header)return 0;const a=e;e+=this.header.write(e,t);if(this.simple)e+=this.simple.write(e,t);else for(const a of this.composites)e+=a.write(e,t);return e-a}scale(e){if(!this.header)return;const t=(this.header.xMin+this.header.xMax)/2;this.header.scale(t,e);if(this.simple)this.simple.scale(t,e);else for(const a of this.composites)a.scale(t,e)}}class GlyphHeader{constructor({numberOfContours:e,xMin:t,yMin:a,xMax:r,yMax:n}){this.numberOfContours=e;this.xMin=t;this.yMin=a;this.xMax=r;this.yMax=n}static parse(e,t){return[10,new GlyphHeader({numberOfContours:t.getInt16(e),xMin:t.getInt16(e+2),yMin:t.getInt16(e+4),xMax:t.getInt16(e+6),yMax:t.getInt16(e+8)})]}getSize(){return 10}write(e,t){t.setInt16(e,this.numberOfContours);t.setInt16(e+2,this.xMin);t.setInt16(e+4,this.yMin);t.setInt16(e+6,this.xMax);t.setInt16(e+8,this.yMax);return 10}scale(e,t){this.xMin=Math.round(e+(this.xMin-e)*t);this.xMax=Math.round(e+(this.xMax-e)*t)}}class Contour{constructor({flags:e,xCoordinates:t,yCoordinates:a}){this.xCoordinates=t;this.yCoordinates=a;this.flags=e}}class SimpleGlyph{constructor({contours:e,instructions:t}){this.contours=e;this.instructions=t}static parse(e,t,a){const r=[];for(let n=0;n255?e+=2:o>0&&(e+=1);t=i;o=Math.abs(s-a);o>255?e+=2:o>0&&(e+=1);a=s}}return e}write(e,t){const a=e,r=[],n=[],i=[];let s=0,o=0;for(const a of this.contours){for(let e=0,t=a.xCoordinates.length;e=0?18:2;r.push(e)}else r.push(l)}s=c;const h=a.yCoordinates[e];l=h-o;if(0===l){t|=32;n.push(0)}else{const e=Math.abs(l);if(e<=255){t|=l>=0?36:4;n.push(e)}else n.push(l)}o=h;i.push(t)}t.setUint16(e,r.length-1);e+=2}t.setUint16(e,this.instructions.length);e+=2;if(this.instructions.length){new Uint8Array(t.buffer,0,t.buffer.byteLength).set(this.instructions,e);e+=this.instructions.length}for(const a of i)t.setUint8(e++,a);for(let a=0,n=r.length;a=-128&&this.argument1<=127&&this.argument2>=-128&&this.argument2<=127||(e+=2):this.argument1>=0&&this.argument1<=255&&this.argument2>=0&&this.argument2<=255||(e+=2);return e}write(e,t){const a=e;2&this.flags?this.argument1>=-128&&this.argument1<=127&&this.argument2>=-128&&this.argument2<=127||(this.flags|=1):this.argument1>=0&&this.argument1<=255&&this.argument2>=0&&this.argument2<=255||(this.flags|=1);t.setUint16(e,this.flags);t.setUint16(e+2,this.glyphIndex);e+=4;if(1&this.flags){if(2&this.flags){t.setInt16(e,this.argument1);t.setInt16(e+2,this.argument2)}else{t.setUint16(e,this.argument1);t.setUint16(e+2,this.argument2)}e+=4}else{t.setUint8(e,this.argument1);t.setUint8(e+1,this.argument2);e+=2}if(256&this.flags){t.setUint16(e,this.instructions.length);e+=2;if(this.instructions.length){new Uint8Array(t.buffer,0,t.buffer.byteLength).set(this.instructions,e);e+=this.instructions.length}}return e-a}scale(e,t){}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.OpenTypeFileBuilder=void 0;var r=a(8),n=a(2);function writeInt16(e,t,a){e[t]=a>>8&255;e[t+1]=255&a}function writeInt32(e,t,a){e[t]=a>>24&255;e[t+1]=a>>16&255;e[t+2]=a>>8&255;e[t+3]=255&a}function writeData(e,t,a){if(a instanceof Uint8Array)e.set(a,t);else if("string"==typeof a)for(let r=0,n=a.length;ra;){a<<=1;r++}const n=a*t;return{range:n,entry:r,rangeShift:t*e-n}}toArray(){let e=this.sfnt;const t=this.tables,a=Object.keys(t);a.sort();const i=a.length;let s,o,c,l,h,u=12+16*i;const d=[u];for(s=0;s>>0;d.push(u)}const f=new Uint8Array(u);for(s=0;s>>0}writeInt32(f,u+4,e);writeInt32(f,u+8,d[s]);writeInt32(f,u+12,t[h].length);u+=16}return f}addTable(e,t){if(e in this.tables)throw new Error("Table "+e+" already exists");this.tables[e]=t}}t.OpenTypeFileBuilder=OpenTypeFileBuilder},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Type1Font=void 0;var r=a(45),n=a(18),i=a(8),s=a(10),o=a(55),c=a(2);function findBlock(e,t,a){const r=e.length,n=t.length,s=r-n;let o=a,c=!1;for(;o=n){o+=a;for(;o=0&&(r[e]=i)}}return(0,n.type1FontGlyphMapping)(e,r,a)}hasGlyphId(e){if(e<0||e>=this.numGlyphs)return!1;if(0===e)return!0;return this.charstrings[e-1].charstring.length>0}getSeacs(e){const t=[];for(let a=0,r=e.length;a0;e--)t[e]-=t[e-1];g.setByName(e,t)}s.topDict.privateDict=g;const m=new r.CFFIndex;for(u=0,d=n.length;u{Object.defineProperty(t,"__esModule",{value:!0});t.Type1Parser=void 0;var r=a(19),n=a(8),i=a(10),s=a(2);const o=function Type1CharStringClosure(){const e=[4],t=[5],a=[6],r=[7],n=[8],i=[12,35],o=[14],c=[21],l=[22],h=[30],u=[31];return class Type1CharString{constructor(){this.width=0;this.lsb=0;this.flexing=!1;this.output=[];this.stack=[]}convert(d,f,g){const p=d.length;let m,b,y,w=!1;for(let S=0;Sr)return!0;const n=r-e;for(let e=n;e>8&255,255&t);else{t=65536*t|0;this.output.push(255,t>>24&255,t>>16&255,t>>8&255,255&t)}}this.output.push.apply(this.output,t);a?this.stack.splice(n,e):this.stack.length=0;return!1}}}(),c=function Type1ParserClosure(){function isHexDigit(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function decrypt(e,t,a){if(a>=e.length)return new Uint8Array(0);let r,n,i=0|t;for(r=0;r>8;i=52845*(t+i)+22719&65535}return o}function isSpecial(e){return 47===e||91===e||93===e||123===e||125===e||40===e||41===e}return class Type1Parser{constructor(e,t,a){if(t){const t=e.getBytes(),a=!((isHexDigit(t[0])||(0,n.isWhiteSpace)(t[0]))&&isHexDigit(t[1])&&isHexDigit(t[2])&&isHexDigit(t[3])&&isHexDigit(t[4])&&isHexDigit(t[5])&&isHexDigit(t[6])&&isHexDigit(t[7]));e=new i.Stream(a?decrypt(t,55665,4):function decryptAscii(e,t,a){let r=0|t;const n=e.length,i=new Uint8Array(n>>>1);let s,o;for(s=0,o=0;s>8;r=52845*(e+r)+22719&65535}}return i.slice(a,o)}(t,55665,4))}this.seacAnalysisEnabled=!!a;this.stream=e;this.nextChar()}readNumberArray(){this.getToken();const e=[];for(;;){const t=this.getToken();if(null===t||"]"===t||"}"===t)break;e.push(parseFloat(t||0))}return e}readNumber(){const e=this.getToken();return parseFloat(e||0)}readInt(){const e=this.getToken();return 0|parseInt(e||0,10)}readBoolean(){return"true"===this.getToken()?1:0}nextChar(){return this.currentChar=this.stream.getByte()}prevChar(){this.stream.skip(-2);return this.currentChar=this.stream.getByte()}getToken(){let e=!1,t=this.currentChar;for(;;){if(-1===t)return null;if(e)10!==t&&13!==t||(e=!1);else if(37===t)e=!0;else if(!(0,n.isWhiteSpace)(t))break;t=this.nextChar()}if(isSpecial(t)){this.nextChar();return String.fromCharCode(t)}let a="";do{a+=String.fromCharCode(t);t=this.nextChar()}while(t>=0&&!(0,n.isWhiteSpace)(t)&&!isSpecial(t));return a}readCharStrings(e,t){return-1===t?e:decrypt(e,4330,t)}extractFontProgram(e){const t=this.stream,a=[],r=[],n=Object.create(null);n.lenIV=4;const i={subrs:[],charstrings:[],properties:{privateData:n}};let s,c,l,h,u;for(;null!==(s=this.getToken());)if("/"===s){s=this.getToken();switch(s){case"CharStrings":this.getToken();this.getToken();this.getToken();this.getToken();for(;;){s=this.getToken();if(null===s||"end"===s)break;if("/"!==s)continue;const e=this.getToken();c=this.readInt();this.getToken();l=c>0?t.getBytes(c):new Uint8Array(0);h=i.properties.privateData.lenIV;u=this.readCharStrings(l,h);this.nextChar();s=this.getToken();"noaccess"===s?this.getToken():"/"===s&&this.prevChar();r.push({glyph:e,encoded:u})}break;case"Subrs":this.readInt();this.getToken();for(;"dup"===this.getToken();){const e=this.readInt();c=this.readInt();this.getToken();l=c>0?t.getBytes(c):new Uint8Array(0);h=i.properties.privateData.lenIV;u=this.readCharStrings(l,h);this.nextChar();s=this.getToken();"noaccess"===s&&this.getToken();a[e]=u}break;case"BlueValues":case"OtherBlues":case"FamilyBlues":case"FamilyOtherBlues":const e=this.readNumberArray();e.length>0&&e.length,0;break;case"StemSnapH":case"StemSnapV":i.properties.privateData[s]=this.readNumberArray();break;case"StdHW":case"StdVW":i.properties.privateData[s]=this.readNumberArray()[0];break;case"BlueShift":case"lenIV":case"BlueFuzz":case"BlueScale":case"LanguageGroup":case"ExpansionFactor":i.properties.privateData[s]=this.readNumber();break;case"ForceBold":i.properties.privateData[s]=this.readBoolean()}}for(let t=0;t-1&&void 0===e.widths[t]&&t>=e.firstChar&&t<=e.lastChar&&(e.widths[t]=s.width)}}return i}extractFontHeader(e){let t;for(;null!==(t=this.getToken());)if("/"===t){t=this.getToken();switch(t){case"FontMatrix":const a=this.readNumberArray();e.fontMatrix=a;break;case"Encoding":const n=this.getToken();let i;if(/^\d+$/.test(n)){i=[];const e=0|parseInt(n,10);this.getToken();for(let a=0;a{Object.defineProperty(t,"__esModule",{value:!0});t.Pattern=void 0;t.getTilingPatternIR=function getTilingPatternIR(e,t,a){const n=t.getArray("Matrix"),i=r.Util.normalizeRect(t.getArray("BBox")),s=t.get("XStep"),o=t.get("YStep"),c=t.get("PaintType"),l=t.get("TilingType");if(i[2]-i[0]==0||i[3]-i[1]==0)throw new r.FormatError(`Invalid getTilingPatternIR /BBox array: [${i}].`);return["TilingPattern",a,e,n,i,s,o,c,l]};var r=a(2),n=a(9),i=a(24),s=a(8);const o=2,c=3,l=4,h=5,u=6,d=7;t.Pattern=class Pattern{constructor(){(0,r.unreachable)("Cannot initialize Pattern.")}static parseShading(e,t,a,i,f,g){const p=e instanceof n.BaseStream?e.dict:e,m=p.get("ShadingType");try{switch(m){case o:case c:return new RadialAxialShading(p,t,a,f,g);case l:case h:case u:case d:return new MeshShading(e,t,a,f,g);default:throw new r.FormatError("Unsupported ShadingType: "+m)}}catch(e){if(e instanceof s.MissingDataException)throw e;i.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.shadingPattern});(0,r.warn)(e);return new DummyShading}}};class BaseShading{static get SMALL_NUMBER(){return(0,r.shadow)(this,"SMALL_NUMBER",1e-6)}constructor(){this.constructor===BaseShading&&(0,r.unreachable)("Cannot initialize BaseShading.")}getIR(){(0,r.unreachable)("Abstract method `getIR` called.")}}class RadialAxialShading extends BaseShading{constructor(e,t,a,n,s){super();this.coordsArr=e.getArray("Coords");this.shadingType=e.get("ShadingType");const o=i.ColorSpace.parse({cs:e.getRaw("CS")||e.getRaw("ColorSpace"),xref:t,resources:a,pdfFunctionFactory:n,localColorSpaceCache:s}),l=e.getArray("BBox");Array.isArray(l)&&4===l.length?this.bbox=r.Util.normalizeRect(l):this.bbox=null;let h=0,u=1;if(e.has("Domain")){const t=e.getArray("Domain");h=t[0];u=t[1]}let d=!1,f=!1;if(e.has("Extend")){const t=e.getArray("Extend");d=t[0];f=t[1]}if(!(this.shadingType!==c||d&&f)){const[e,t,a,n,i,s]=this.coordsArr,o=Math.hypot(e-n,t-i);a<=s+o&&s<=a+o&&(0,r.warn)("Unsupported radial gradient.")}this.extendStart=d;this.extendEnd=f;const g=e.getRaw("Function"),p=n.createFromArray(g),m=(u-h)/10,b=this.colorStops=[];if(h>=u||m<=0){(0,r.info)("Bad shading domain.");return}const y=new Float32Array(o.numComps),w=new Float32Array(1);let S;for(let e=0;e<=10;e++){w[0]=h+e*m;p(w,0,y,0);S=o.getRgb(y,0);const t=r.Util.makeHexColor(S[0],S[1],S[2]);b.push([e/10,t])}let x="transparent";if(e.has("Background")){S=o.getRgb(e.get("Background"),0);x=r.Util.makeHexColor(S[0],S[1],S[2])}if(!d){b.unshift([0,x]);b[1][0]+=BaseShading.SMALL_NUMBER}if(!f){b[b.length-1][0]-=BaseShading.SMALL_NUMBER;b.push([1,x])}this.colorStops=b}getIR(){const e=this.coordsArr,t=this.shadingType;let a,n,i,s,l;if(t===o){n=[e[0],e[1]];i=[e[2],e[3]];s=null;l=null;a="axial"}else if(t===c){n=[e[0],e[1]];i=[e[3],e[4]];s=e[2];l=e[5];a="radial"}else(0,r.unreachable)(`getPattern type unknown: ${t}`);return["RadialAxial",a,this.bbox,this.colorStops,n,i,s,l]}}class MeshStreamReader{constructor(e,t){this.stream=e;this.context=t;this.buffer=0;this.bufferLength=0;const a=t.numComps;this.tmpCompsBuf=new Float32Array(a);const r=t.colorSpace.numComps;this.tmpCsCompsBuf=t.colorFn?new Float32Array(r):this.tmpCompsBuf}get hasData(){if(this.stream.end)return this.stream.pos0)return!0;const e=this.stream.getByte();if(e<0)return!1;this.buffer=e;this.bufferLength=8;return!0}readBits(e){let t=this.buffer,a=this.bufferLength;if(32===e){if(0===a)return(this.stream.getByte()<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte())>>>0;t=t<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte();const e=this.stream.getByte();this.buffer=e&(1<>a)>>>0}if(8===e&&0===a)return this.stream.getByte();for(;a>a}align(){this.buffer=0;this.bufferLength=0}readFlag(){return this.readBits(this.context.bitsPerFlag)}readCoordinate(){const e=this.context.bitsPerCoordinate,t=this.readBits(e),a=this.readBits(e),r=this.context.decode,n=e<32?1/((1<i?i:e;t=t>s?s:t;a=a{Object.defineProperty(t,"__esModule",{value:!0});t.PostScriptEvaluator=t.PostScriptCompiler=t.PDFFunctionFactory=void 0;t.isPDFFunction=function isPDFFunction(e){let t;if("object"!=typeof e)return!1;if(e instanceof r.Dict)t=e;else{if(!(e instanceof s.BaseStream))return!1;t=e.dict}return t.has("FunctionType")};var r=a(5),n=a(2),i=a(58),s=a(9),o=a(59);t.PDFFunctionFactory=class PDFFunctionFactory{constructor({xref:e,isEvalSupported:t=!0}){this.xref=e;this.isEvalSupported=!1!==t}create(e){const t=this.getCached(e);if(t)return t;const a=PDFFunction.parse({xref:this.xref,isEvalSupported:this.isEvalSupported,fn:e instanceof r.Ref?this.xref.fetch(e):e});this._cache(e,a);return a}createFromArray(e){const t=this.getCached(e);if(t)return t;const a=PDFFunction.parseArray({xref:this.xref,isEvalSupported:this.isEvalSupported,fnObj:e instanceof r.Ref?this.xref.fetch(e):e});this._cache(e,a);return a}getCached(e){let t;e instanceof r.Ref?t=e:e instanceof r.Dict?t=e.objId:e instanceof s.BaseStream&&(t=e.dict&&e.dict.objId);if(t){const e=this._localFunctionCache.getByRef(t);if(e)return e}return null}_cache(e,t){if(!t)throw new Error('PDFFunctionFactory._cache - expected "parsedFunction" argument.');let a;e instanceof r.Ref?a=e:e instanceof r.Dict?a=e.objId:e instanceof s.BaseStream&&(a=e.dict&&e.dict.objId);a&&this._localFunctionCache.set(null,a,t)}get _localFunctionCache(){return(0,n.shadow)(this,"_localFunctionCache",new o.LocalFunctionCache)}};function toNumberArray(e){if(!Array.isArray(e))return null;const t=e.length;for(let a=0;a>c)*h;l&=(1<a?e=a:e0&&(d=o[u-1]);let f=r[1];u>1,d=s.length>>1,f=new PostScriptEvaluator(h),g=Object.create(null);let p=8192;const m=new Float32Array(d);return function constructPostScriptFn(e,t,a,r){let n,i,s="";const c=m;for(n=0;ne&&(i=e)}h[n]=i}if(p>0){p--;g[s]=h}a.set(h,r)}}}class PostScriptStack{static get MAX_STACK_SIZE(){return(0,n.shadow)(this,"MAX_STACK_SIZE",100)}constructor(e){this.stack=e?Array.prototype.slice.call(e,0):[]}push(e){if(this.stack.length>=PostScriptStack.MAX_STACK_SIZE)throw new Error("PostScript function stack overflow.");this.stack.push(e)}pop(){if(this.stack.length<=0)throw new Error("PostScript function stack underflow.");return this.stack.pop()}copy(e){if(this.stack.length+e>=PostScriptStack.MAX_STACK_SIZE)throw new Error("PostScript function stack overflow.");const t=this.stack;for(let a=t.length-e,r=e-1;r>=0;r--,a++)t.push(t[a])}index(e){this.push(this.stack[this.stack.length-e-1])}roll(e,t){const a=this.stack,r=a.length-e,n=a.length-1,i=r+(t-Math.floor(t/e)*e);for(let e=r,t=n;e0?t.push(o<>c);break;case"ceiling":o=t.pop();t.push(Math.ceil(o));break;case"copy":o=t.pop();t.copy(o);break;case"cos":o=t.pop();t.push(Math.cos(o));break;case"cvi":o=0|t.pop();t.push(o);break;case"cvr":break;case"div":c=t.pop();o=t.pop();t.push(o/c);break;case"dup":t.copy(1);break;case"eq":c=t.pop();o=t.pop();t.push(o===c);break;case"exch":t.roll(2,1);break;case"exp":c=t.pop();o=t.pop();t.push(o**c);break;case"false":t.push(!1);break;case"floor":o=t.pop();t.push(Math.floor(o));break;case"ge":c=t.pop();o=t.pop();t.push(o>=c);break;case"gt":c=t.pop();o=t.pop();t.push(o>c);break;case"idiv":c=t.pop();o=t.pop();t.push(o/c|0);break;case"index":o=t.pop();t.index(o);break;case"le":c=t.pop();o=t.pop();t.push(o<=c);break;case"ln":o=t.pop();t.push(Math.log(o));break;case"log":o=t.pop();t.push(Math.log(o)/Math.LN10);break;case"lt":c=t.pop();o=t.pop();t.push(o=t?new AstLiteral(t):e.max<=t?e:new AstMin(e,t)}return class PostScriptCompiler{compile(e,t,a){const r=[],n=[],i=t.length>>1,s=a.length>>1;let o,c,l,h,u,d,f,g,p=0;for(let e=0;et.min){o.unshift("Math.max(",i,", ");o.push(")")}if(s{Object.defineProperty(t,"__esModule",{value:!0});t.PostScriptParser=t.PostScriptLexer=void 0;var r=a(2),n=a(5),i=a(8);t.PostScriptParser=class PostScriptParser{constructor(e){this.lexer=e;this.operators=[];this.token=null;this.prev=null}nextToken(){this.prev=this.token;this.token=this.lexer.getToken()}accept(e){if(this.token.type===e){this.nextToken();return!0}return!1}expect(e){if(this.accept(e))return!0;throw new r.FormatError(`Unexpected symbol: found ${this.token.type} expected ${e}.`)}parse(){this.nextToken();this.expect(s.LBRACE);this.parseBlock();this.expect(s.RBRACE);return this.operators}parseBlock(){for(;;)if(this.accept(s.NUMBER))this.operators.push(this.prev.value);else if(this.accept(s.OPERATOR))this.operators.push(this.prev.value);else{if(!this.accept(s.LBRACE))return;this.parseCondition()}}parseCondition(){const e=this.operators.length;this.operators.push(null,null);this.parseBlock();this.expect(s.RBRACE);if(this.accept(s.IF)){this.operators[e]=this.operators.length;this.operators[e+1]="jz"}else{if(!this.accept(s.LBRACE))throw new r.FormatError("PS Function: error parsing conditional.");{const t=this.operators.length;this.operators.push(null,null);const a=this.operators.length;this.parseBlock();this.expect(s.RBRACE);this.expect(s.IFELSE);this.operators[t]=this.operators.length;this.operators[t+1]="j";this.operators[e]=a;this.operators[e+1]="jz"}}}};const s={LBRACE:0,RBRACE:1,NUMBER:2,OPERATOR:3,IF:4,IFELSE:5};class PostScriptToken{static get opCache(){return(0,r.shadow)(this,"opCache",Object.create(null))}constructor(e,t){this.type=e;this.value=t}static getOperator(e){const t=PostScriptToken.opCache[e];return t||(PostScriptToken.opCache[e]=new PostScriptToken(s.OPERATOR,e))}static get LBRACE(){return(0,r.shadow)(this,"LBRACE",new PostScriptToken(s.LBRACE,"{"))}static get RBRACE(){return(0,r.shadow)(this,"RBRACE",new PostScriptToken(s.RBRACE,"}"))}static get IF(){return(0,r.shadow)(this,"IF",new PostScriptToken(s.IF,"IF"))}static get IFELSE(){return(0,r.shadow)(this,"IFELSE",new PostScriptToken(s.IFELSE,"IFELSE"))}}t.PostScriptLexer=class PostScriptLexer{constructor(e){this.stream=e;this.nextChar();this.strBuf=[]}nextChar(){return this.currentChar=this.stream.getByte()}getToken(){let e=!1,t=this.currentChar;for(;;){if(t<0)return n.EOF;if(e)10!==t&&13!==t||(e=!1);else if(37===t)e=!0;else if(!(0,i.isWhiteSpace)(t))break;t=this.nextChar()}switch(0|t){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return new PostScriptToken(s.NUMBER,this.getNumber());case 123:this.nextChar();return PostScriptToken.LBRACE;case 125:this.nextChar();return PostScriptToken.RBRACE}const a=this.strBuf;a.length=0;a[0]=String.fromCharCode(t);for(;(t=this.nextChar())>=0&&(t>=65&&t<=90||t>=97&&t<=122);)a.push(String.fromCharCode(t));const r=a.join("");switch(r.toLowerCase()){case"if":return PostScriptToken.IF;case"ifelse":return PostScriptToken.IFELSE;default:return PostScriptToken.getOperator(r)}}getNumber(){let e=this.currentChar;const t=this.strBuf;t.length=0;t[0]=String.fromCharCode(e);for(;(e=this.nextChar())>=0&&(e>=48&&e<=57||45===e||46===e);)t.push(String.fromCharCode(e));const a=parseFloat(t.join(""));if(isNaN(a))throw new r.FormatError(`Invalid floating point number: ${a}`);return a}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.LocalTilingPatternCache=t.LocalImageCache=t.LocalGStateCache=t.LocalFunctionCache=t.LocalColorSpaceCache=t.GlobalImageCache=void 0;var r=a(2),n=a(5);class BaseLocalCache{constructor(e){this.constructor===BaseLocalCache&&(0,r.unreachable)("Cannot initialize BaseLocalCache.");this._onlyRefs=!0===(e&&e.onlyRefs);if(!this._onlyRefs){this._nameRefMap=new Map;this._imageMap=new Map}this._imageCache=new n.RefSetCache}getByName(e){this._onlyRefs&&(0,r.unreachable)("Should not call `getByName` method.");const t=this._nameRefMap.get(e);return t?this.getByRef(t):this._imageMap.get(e)||null}getByRef(e){return this._imageCache.get(e)||null}set(e,t,a){(0,r.unreachable)("Abstract method `set` called.")}}t.LocalImageCache=class LocalImageCache extends BaseLocalCache{set(e,t=null,a){if("string"!=typeof e)throw new Error('LocalImageCache.set - expected "name" argument.');if(t){if(this._imageCache.has(t))return;this._nameRefMap.set(e,t);this._imageCache.put(t,a)}else this._imageMap.has(e)||this._imageMap.set(e,a)}};t.LocalColorSpaceCache=class LocalColorSpaceCache extends BaseLocalCache{set(e=null,t=null,a){if("string"!=typeof e&&!t)throw new Error('LocalColorSpaceCache.set - expected "name" and/or "ref" argument.');if(t){if(this._imageCache.has(t))return;null!==e&&this._nameRefMap.set(e,t);this._imageCache.put(t,a)}else this._imageMap.has(e)||this._imageMap.set(e,a)}};t.LocalFunctionCache=class LocalFunctionCache extends BaseLocalCache{constructor(e){super({onlyRefs:!0})}set(e=null,t,a){if(!t)throw new Error('LocalFunctionCache.set - expected "ref" argument.');this._imageCache.has(t)||this._imageCache.put(t,a)}};t.LocalGStateCache=class LocalGStateCache extends BaseLocalCache{set(e,t=null,a){if("string"!=typeof e)throw new Error('LocalGStateCache.set - expected "name" argument.');if(t){if(this._imageCache.has(t))return;this._nameRefMap.set(e,t);this._imageCache.put(t,a)}else this._imageMap.has(e)||this._imageMap.set(e,a)}};t.LocalTilingPatternCache=class LocalTilingPatternCache extends BaseLocalCache{constructor(e){super({onlyRefs:!0})}set(e=null,t,a){if(!t)throw new Error('LocalTilingPatternCache.set - expected "ref" argument.');this._imageCache.has(t)||this._imageCache.put(t,a)}};class GlobalImageCache{static get NUM_PAGES_THRESHOLD(){return(0,r.shadow)(this,"NUM_PAGES_THRESHOLD",2)}static get MIN_IMAGES_TO_CACHE(){return(0,r.shadow)(this,"MIN_IMAGES_TO_CACHE",10)}static get MAX_BYTE_SIZE(){return(0,r.shadow)(this,"MAX_BYTE_SIZE",4e7)}constructor(){this._refCache=new n.RefSetCache;this._imageCache=new n.RefSetCache}get _byteSize(){let e=0;for(const t of this._imageCache)e+=t.byteSize;return e}get _cacheLimitReached(){return!(this._imageCache.size{Object.defineProperty(t,"__esModule",{value:!0});t.bidi=function bidi(e,t=-1,a=!1){let c=!0;const l=e.length;if(0===l||a)return createBidiText(e,c,a);s.length=l;o.length=l;let h,u,d=0;for(h=0;h4){c=!0;t=0}else{c=!1;t=1}const f=[];for(h=0;h=0&&"ET"===o[e];--e)o[e]="EN";for(let e=h+1;e0&&(t=o[h-1]);let a=m;e+1w&&isOdd(w)&&(x=w)}for(w=S;w>=x;--w){let e=-1;for(h=0,u=f.length;h=0){reverseValues(s,e,h);e=-1}}else e<0&&(e=h);e>=0&&reverseValues(s,e,f.length)}for(h=0,u=s.length;h"!==e||(s[h]="")}return createBidiText(s.join(""),c)};var r=a(2);const n=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","BN","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],i=["AN","AN","AN","AN","AN","AN","ON","ON","AL","ET","ET","AL","CS","AL","ON","ON","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AN","AN","AN","AN","AN","AN","AN","AN","AN","AN","ET","AN","AN","AL","AL","AL","NSM","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AN","ON","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","NSM","NSM","ON","NSM","NSM","NSM","NSM","AL","AL","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","AL","AL","AL","AL","AL","AL"];function isOdd(e){return 0!=(1&e)}function isEven(e){return 0==(1&e)}function findUnequal(e,t,a){let r,n;for(r=t,n=e.length;r{Object.defineProperty(t,"__esModule",{value:!0});t.MurmurHash3_64=void 0;var r=a(2);const n=3285377520,i=4294901760,s=65535;t.MurmurHash3_64=class MurmurHash3_64{constructor(e){this.h1=e?4294967295&e:n;this.h2=e?4294967295&e:n}update(e){let t,a;if("string"==typeof e){t=new Uint8Array(2*e.length);a=0;for(let r=0,n=e.length;r>>8;t[a++]=255&n}}}else{if(!(0,r.isArrayBuffer)(e))throw new Error("Wrong data format in MurmurHash3_64_update. Input must be a string or array.");t=e.slice();a=t.byteLength}const n=a>>2,o=a-4*n,c=new Uint32Array(t.buffer,0,n);let l=0,h=0,u=this.h1,d=this.h2;const f=3432918353,g=461845907,p=11601,m=13715;for(let e=0;e>>17;l=l*g&i|l*m&s;u^=l;u=u<<13|u>>>19;u=5*u+3864292196}else{h=c[e];h=h*f&i|h*p&s;h=h<<15|h>>>17;h=h*g&i|h*m&s;d^=h;d=d<<13|d>>>19;d=5*d+3864292196}l=0;switch(o){case 3:l^=t[4*n+2]<<16;case 2:l^=t[4*n+1]<<8;case 1:l^=t[4*n];l=l*f&i|l*p&s;l=l<<15|l>>>17;l=l*g&i|l*m&s;1&n?u^=l:d^=l}this.h1=u;this.h2=d}hexdigest(){let e=this.h1,t=this.h2;e^=t>>>1;e=3981806797*e&i|36045*e&s;t=4283543511*t&i|(2950163797*(t<<16|e>>>16)&i)>>>16;e^=t>>>1;e=444984403*e&i|60499*e&s;t=3301882366*t&i|(3120437893*(t<<16|e>>>16)&i)>>>16;e^=t>>>1;const a=(e>>>0).toString(16),r=(t>>>0).toString(16);return a.padStart(8,"0")+r.padStart(8,"0")}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.OperatorList=void 0;var r=a(2);function addState(e,t,a,r,n){let i=e;for(let e=0,a=t.length-1;e1e3){h=Math.max(h,f);g+=d+2;f=0;d=0}u.push({transform:t,x:f,y:g,w:a.width,h:a.height});f+=a.width+2;d=Math.max(d,a.height)}const p=Math.max(h,f)+1,m=g+d+1,b=new Uint8Array(p*m*4),y=p<<2;for(let e=0;e=0;){t[i-4]=t[i];t[i-3]=t[i+1];t[i-2]=t[i+2];t[i-1]=t[i+3];t[i+a]=t[i+a-4];t[i+a+1]=t[i+a-3];t[i+a+2]=t[i+a-2];t[i+a+3]=t[i+a-1];i-=y}}a.splice(s,4*l,r.OPS.paintInlineImageXObjectGroup);n.splice(s,4*l,[{width:p,height:m,kind:r.ImageKind.RGBA_32BPP,data:b},u]);return s+1}));addState(n,[r.OPS.save,r.OPS.transform,r.OPS.paintImageMaskXObject,r.OPS.restore],null,(function iterateImageMaskGroup(e,t){const a=e.fnArray,n=(t-(e.iCurr-3))%4;switch(n){case 0:return a[t]===r.OPS.save;case 1:return a[t]===r.OPS.transform;case 2:return a[t]===r.OPS.paintImageMaskXObject;case 3:return a[t]===r.OPS.restore}throw new Error(`iterateImageMaskGroup - invalid pos: ${n}`)}),(function foundImageMaskGroup(e,t){const a=e.fnArray,n=e.argsArray,i=e.iCurr,s=i-3,o=i-2,c=i-1;let l=Math.floor((t-s)/4);if(l<10)return t-(t-s)%4;let h,u,d=!1;const f=n[c][0],g=n[o][0],p=n[o][1],m=n[o][2],b=n[o][3];if(p===m){d=!0;h=o+4;let e=c+4;for(let t=1;t=4&&a[i-4]===a[s]&&a[i-3]===a[o]&&a[i-2]===a[c]&&a[i-1]===a[l]&&r[i-4][0]===h&&r[i-4][1]===u){d++;f-=5}let g=f+4;for(let e=1;e=a)break}r=(r||n)[e[t]];if(r&&!Array.isArray(r)){s.iCurr=t;t++;if(!r.checkFn||(0,r.checkFn)(s)){i=r;r=null}else r=null}else t++}this.state=r;this.match=i;this.lastProcessed=t}flush(){for(;this.match;){const e=this.queue.fnArray.length;this.lastProcessed=(0,this.match.processFn)(this.context,e);this.match=null;this.state=null;this._optimize()}}reset(){this.state=null;this.match=null;this.lastProcessed=0}}class OperatorList{static get CHUNK_SIZE(){return(0,r.shadow)(this,"CHUNK_SIZE",1e3)}static get CHUNK_SIZE_ABOUT(){return(0,r.shadow)(this,"CHUNK_SIZE_ABOUT",this.CHUNK_SIZE-5)}constructor(e=0,t){this._streamSink=t;this.fnArray=[];this.argsArray=[];!t||e&r.RenderingIntentFlag.OPLIST?this.optimizer=new NullOptimizer(this):this.optimizer=new QueueOptimizer(this);this.dependencies=new Set;this._totalLength=0;this.weight=0;this._resolved=t?null:Promise.resolve()}get length(){return this.argsArray.length}get ready(){return this._resolved||this._streamSink.ready}get totalLength(){return this._totalLength+this.length}addOp(e,t){this.optimizer.push(e,t);this.weight++;this._streamSink&&(this.weight>=OperatorList.CHUNK_SIZE||this.weight>=OperatorList.CHUNK_SIZE_ABOUT&&(e===r.OPS.restore||e===r.OPS.endText))&&this.flush()}addImageOps(e,t,a){void 0!==a&&this.addOp(r.OPS.beginMarkedContentProps,["OC",a]);this.addOp(e,t);void 0!==a&&this.addOp(r.OPS.endMarkedContent,[])}addDependency(e){if(!this.dependencies.has(e)){this.dependencies.add(e);this.addOp(r.OPS.dependency,[e])}}addDependencies(e){for(const t of e)this.addDependency(t)}addOpList(e){if(e instanceof OperatorList){for(const t of e.dependencies)this.dependencies.add(t);for(let t=0,a=e.length;t{Object.defineProperty(t,"__esModule",{value:!0});t.PDFImage=void 0;var r=a(2),n=a(64),i=a(9),s=a(24),o=a(29),c=a(37),l=a(40),h=a(5);function decodeAndClamp(e,t,a,r){(e=t+e*a)<0?e=0:e>r&&(e=r);return e}function resizeImageMask(e,t,a,r,n,i){const s=n*i;let o;o=t<=8?new Uint8Array(s):t<=16?new Uint16Array(s):new Uint32Array(s);const c=a/n,l=r/i;let h,u,d,f,g=0;const p=new Uint16Array(n),m=a;for(h=0;h0&&Number.isInteger(a.height)&&a.height>0&&(a.width!==m||a.height!==b)){(0,r.warn)("PDFImage - using the Width/Height of the image data, rather than the image dictionary.");m=a.width;b=a.height}if(m<1||b<1)throw new r.FormatError(`Invalid image width: ${m} or height: ${b}`);this.width=m;this.height=b;this.interpolate=g.get("I","Interpolate");this.imageMask=g.get("IM","ImageMask")||!1;this.matte=g.get("Matte")||!1;let y=a.bitsPerComponent;if(!y){y=g.get("BPC","BitsPerComponent");if(!y){if(!this.imageMask)throw new r.FormatError(`Bits per component missing in image: ${this.imageMask}`);y=1}}this.bpc=y;if(!this.imageMask){let i=g.getRaw("CS")||g.getRaw("ColorSpace");if(!i){(0,r.info)("JPX images (which do not require color spaces)");switch(a.numComps){case 1:i=h.Name.get("DeviceGray");break;case 3:i=h.Name.get("DeviceRGB");break;case 4:i=h.Name.get("DeviceCMYK");break;default:throw new Error(`JPX images with ${a.numComps} color components not supported.`)}}this.colorSpace=s.ColorSpace.parse({cs:i,xref:e,resources:n?t:null,pdfFunctionFactory:d,localColorSpaceCache:f});this.numComps=this.colorSpace.numComps}this.decode=g.getArray("D","Decode");this.needsDecode=!1;if(this.decode&&(this.colorSpace&&!this.colorSpace.isDefaultDecode(this.decode,y)||u&&!s.ColorSpace.isDefaultDecode(this.decode,1))){this.needsDecode=!0;const e=(1<>3)*a,o=e.byteLength;let c,l;if(!r||n&&!(s===o))if(n){c=new Uint8Array(s);c.set(e);c.fill(255,o)}else c=new Uint8Array(e);else c=e;if(n)for(l=0;l>7&1;s[d+1]=u>>6&1;s[d+2]=u>>5&1;s[d+3]=u>>4&1;s[d+4]=u>>3&1;s[d+5]=u>>2&1;s[d+6]=u>>1&1;s[d+7]=1&u;d+=8}if(d>=1}}}}else{let a=0;u=0;for(d=0,h=i;d>r;n<0?n=0:n>l&&(n=l);s[d]=n;u&=(1<o[r+1]){t=255;break}}c[u]=t}}}if(c)for(u=0,f=3,d=t*n;u>3;if(!e){let e;"DeviceGray"===this.colorSpace.name&&1===l?e=r.ImageKind.GRAYSCALE_1BPP:"DeviceRGB"!==this.colorSpace.name||8!==l||this.needsDecode||(e=r.ImageKind.RGB_24BPP);if(e&&!this.smask&&!this.mask&&t===s&&a===o){n.kind=e;n.data=this.getImageBytes(o*h,{});if(this.needsDecode){(0,r.assert)(e===r.ImageKind.GRAYSCALE_1BPP,"PDFImage.createImageData: The image must be grayscale.");const t=n.data;for(let e=0,a=t.length;e>3,o=this.getImageBytes(n*s,{internal:!0}),c=this.getComponents(o);let l,h;if(1===i){h=a*n;if(this.needsDecode)for(l=0;l{Object.defineProperty(t,"__esModule",{value:!0});t.applyMaskImageData=function applyMaskImageData({src:e,srcPos:t=0,dest:a,destPos:n=0,width:i,height:s,inverseDecode:o=!1}){const c=r.FeatureTest.isLittleEndian?4278190080:255,[l,h]=o?[0,c]:[c,0],u=i>>3,d=7&i,f=e.length;a=new Uint32Array(a.buffer);for(let r=0;r{Object.defineProperty(t,"__esModule",{value:!0});t.Catalog=void 0;var r=a(8),n=a(2),i=a(5),s=a(66),o=a(9),c=a(67),l=a(24),h=a(68),u=a(59),d=a(69),f=a(71);function fetchDestination(e){e instanceof i.Dict&&(e=e.get("D"));return Array.isArray(e)?e:null}class Catalog{constructor(e,t){this.pdfManager=e;this.xref=t;this._catDict=t.getCatalogObj();if(!(this._catDict instanceof i.Dict))throw new n.FormatError("Catalog object is not a dictionary.");this.toplevelPagesDict;this._actualNumPages=null;this.fontCache=new i.RefSetCache;this.builtInCMapCache=new Map;this.standardFontDataCache=new Map;this.globalImageCache=new u.GlobalImageCache;this.pageKidsCountCache=new i.RefSetCache;this.pageIndexCache=new i.RefSetCache;this.nonBlendModesSet=new i.RefSet}get version(){const e=this._catDict.get("Version");return(0,n.shadow)(this,"version",e instanceof i.Name?e.name:null)}get lang(){const e=this._catDict.get("Lang");return(0,n.shadow)(this,"lang","string"==typeof e?(0,n.stringToPDFString)(e):null)}get needsRendering(){const e=this._catDict.get("NeedsRendering");return(0,n.shadow)(this,"needsRendering","boolean"==typeof e&&e)}get collection(){let e=null;try{const t=this._catDict.get("Collection");t instanceof i.Dict&&t.size>0&&(e=t)}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.info)("Cannot fetch Collection entry; assuming no collection is present.")}return(0,n.shadow)(this,"collection",e)}get acroForm(){let e=null;try{const t=this._catDict.get("AcroForm");t instanceof i.Dict&&t.size>0&&(e=t)}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.info)("Cannot fetch AcroForm entry; assuming no forms are present.")}return(0,n.shadow)(this,"acroForm",e)}get acroFormRef(){const e=this._catDict.getRaw("AcroForm");return(0,n.shadow)(this,"acroFormRef",e instanceof i.Ref?e:null)}get metadata(){const e=this._catDict.getRaw("Metadata");if(!(e instanceof i.Ref))return(0,n.shadow)(this,"metadata",null);let t=null;try{const a=!(this.xref.encrypt&&this.xref.encrypt.encryptMetadata),r=this.xref.fetch(e,a);if(r instanceof o.BaseStream&&r.dict instanceof i.Dict){const e=r.dict.get("Type"),a=r.dict.get("Subtype");if((0,i.isName)(e,"Metadata")&&(0,i.isName)(a,"XML")){const e=(0,n.stringToUTF8String)(r.getString());e&&(t=new d.MetadataParser(e).serializable)}}}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.info)(`Skipping invalid Metadata: "${e}".`)}return(0,n.shadow)(this,"metadata",t)}get markInfo(){let e=null;try{e=this._readMarkInfo()}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.warn)("Unable to read mark info.")}return(0,n.shadow)(this,"markInfo",e)}_readMarkInfo(){const e=this._catDict.get("MarkInfo");if(!(e instanceof i.Dict))return null;const t={Marked:!1,UserProperties:!1,Suspects:!1};for(const a in t){const r=e.get(a);"boolean"==typeof r&&(t[a]=r)}return t}get structTreeRoot(){let e=null;try{e=this._readStructTreeRoot()}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.warn)("Unable read to structTreeRoot info.")}return(0,n.shadow)(this,"structTreeRoot",e)}_readStructTreeRoot(){const e=this._catDict.get("StructTreeRoot");if(!(e instanceof i.Dict))return null;const t=new f.StructTreeRoot(e);t.init();return t}get toplevelPagesDict(){const e=this._catDict.get("Pages");if(!(e instanceof i.Dict))throw new n.FormatError("Invalid top-level pages dictionary.");return(0,n.shadow)(this,"toplevelPagesDict",e)}get documentOutline(){let e=null;try{e=this._readDocumentOutline()}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.warn)("Unable to read document outline.")}return(0,n.shadow)(this,"documentOutline",e)}_readDocumentOutline(){let e=this._catDict.get("Outlines");if(!(e instanceof i.Dict))return null;e=e.getRaw("First");if(!(e instanceof i.Ref))return null;const t={items:[]},a=[{obj:e,parent:t}],r=new i.RefSet;r.put(e);const s=this.xref,o=new Uint8ClampedArray(3);for(;a.length>0;){const t=a.shift(),c=s.fetchIfRef(t.obj);if(null===c)continue;if(!c.has("Title"))throw new n.FormatError("Invalid outline item encountered.");const h={url:null,dest:null};Catalog.parseDestDictionary({destDict:c,resultObj:h,docBaseUrl:this.pdfManager.docBaseUrl});const u=c.get("Title"),d=c.get("F")||0,f=c.getArray("C"),g=c.get("Count");let p=o;!Array.isArray(f)||3!==f.length||0===f[0]&&0===f[1]&&0===f[2]||(p=l.ColorSpace.singletons.rgb.getRgb(f,0));const m={dest:h.dest,url:h.url,unsafeUrl:h.unsafeUrl,newWindow:h.newWindow,title:(0,n.stringToPDFString)(u),color:p,count:Number.isInteger(g)?g:void 0,bold:!!(2&d),italic:!!(1&d),items:[]};t.parent.items.push(m);e=c.getRaw("First");if(e instanceof i.Ref&&!r.has(e)){a.push({obj:e,parent:m});r.put(e)}e=c.getRaw("Next");if(e instanceof i.Ref&&!r.has(e)){a.push({obj:e,parent:t.parent});r.put(e)}}return t.items.length>0?t.items:null}get permissions(){let e=null;try{e=this._readPermissions()}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.warn)("Unable to read permissions.")}return(0,n.shadow)(this,"permissions",e)}_readPermissions(){const e=this.xref.trailer.get("Encrypt");if(!(e instanceof i.Dict))return null;let t=e.get("P");if("number"!=typeof t)return null;t+=2**32;const a=[];for(const e in n.PermissionFlag){const r=n.PermissionFlag[e];t&r&&a.push(r)}return a}get optionalContentConfig(){let e=null;try{const t=this._catDict.get("OCProperties");if(!t)return(0,n.shadow)(this,"optionalContentConfig",null);const a=t.get("D");if(!a)return(0,n.shadow)(this,"optionalContentConfig",null);const r=t.get("OCGs");if(!Array.isArray(r))return(0,n.shadow)(this,"optionalContentConfig",null);const s=[],o=[];for(const e of r){if(!(e instanceof i.Ref))continue;o.push(e);const t=this.xref.fetchIfRef(e);s.push({id:e.toString(),name:"string"==typeof t.get("Name")?(0,n.stringToPDFString)(t.get("Name")):null,intent:"string"==typeof t.get("Intent")?(0,n.stringToPDFString)(t.get("Intent")):null})}e=this._readOptionalContentConfig(a,o);e.groups=s}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.warn)(`Unable to read optional content config: ${e}`)}return(0,n.shadow)(this,"optionalContentConfig",e)}_readOptionalContentConfig(e,t){function parseOnOff(e){const a=[];if(Array.isArray(e))for(const r of e)r instanceof i.Ref&&t.includes(r)&&a.push(r.toString());return a}function parseOrder(e,a=0){if(!Array.isArray(e))return null;const n=[];for(const s of e){if(s instanceof i.Ref&&t.includes(s)){r.put(s);n.push(s.toString());continue}const e=parseNestedOrder(s,a);e&&n.push(e)}if(a>0)return n;const s=[];for(const e of t)r.has(e)||s.push(e.toString());s.length&&n.push({name:null,order:s});return n}function parseNestedOrder(e,t){if(++t>s){(0,n.warn)("parseNestedOrder - reached MAX_NESTED_LEVELS.");return null}const r=a.fetchIfRef(e);if(!Array.isArray(r))return null;const i=a.fetchIfRef(r[0]);if("string"!=typeof i)return null;const o=parseOrder(r.slice(1),t);return o&&o.length?{name:(0,n.stringToPDFString)(i),order:o}:null}const a=this.xref,r=new i.RefSet,s=10;return{name:"string"==typeof e.get("Name")?(0,n.stringToPDFString)(e.get("Name")):null,creator:"string"==typeof e.get("Creator")?(0,n.stringToPDFString)(e.get("Creator")):null,baseState:e.get("BaseState")instanceof i.Name?e.get("BaseState").name:null,on:parseOnOff(e.get("ON")),off:parseOnOff(e.get("OFF")),order:parseOrder(e.get("Order")),groups:null}}setActualNumPages(e=null){this._actualNumPages=e}get hasActualNumPages(){return null!==this._actualNumPages}get _pagesCount(){const e=this.toplevelPagesDict.get("Count");if(!Number.isInteger(e))throw new n.FormatError("Page count in top-level pages dictionary is not an integer.");return(0,n.shadow)(this,"_pagesCount",e)}get numPages(){return this.hasActualNumPages?this._actualNumPages:this._pagesCount}get destinations(){const e=this._readDests(),t=Object.create(null);if(e instanceof s.NameTree)for(const[a,r]of e.getAll()){const e=fetchDestination(r);e&&(t[(0,n.stringToPDFString)(a)]=e)}else e instanceof i.Dict&&e.forEach((function(e,a){const r=fetchDestination(a);r&&(t[e]=r)}));return(0,n.shadow)(this,"destinations",t)}getDestination(e){const t=this._readDests();if(t instanceof s.NameTree){const a=fetchDestination(t.get(e));if(a)return a;const r=this.destinations[e];if(r){(0,n.warn)(`Found "${e}" at an incorrect position in the NameTree.`);return r}}else if(t instanceof i.Dict){const a=fetchDestination(t.get(e));if(a)return a}return null}_readDests(){const e=this._catDict.get("Names");return e&&e.has("Dests")?new s.NameTree(e.getRaw("Dests"),this.xref):this._catDict.has("Dests")?this._catDict.get("Dests"):void 0}get pageLabels(){let e=null;try{e=this._readPageLabels()}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.warn)("Unable to read page labels.")}return(0,n.shadow)(this,"pageLabels",e)}_readPageLabels(){const e=this._catDict.getRaw("PageLabels");if(!e)return null;const t=new Array(this.numPages);let a=null,o="";const c=new s.NumberTree(e,this.xref).getAll();let l="",h=1;for(let e=0,s=this.numPages;e=1))throw new n.FormatError("Invalid start in PageLabel dictionary.");h=e}else h=1}switch(a){case"D":l=h;break;case"R":case"r":l=(0,r.toRomanNumerals)(h,"r"===a);break;case"A":case"a":const e=26,t=65,i=97,s="a"===a?i:t,o=h-1;l=String.fromCharCode(s+o%e).repeat(Math.floor(o/e)+1);break;default:if(a)throw new n.FormatError(`Invalid style "${a}" in PageLabel dictionary.`);l=""}t[e]=o+l;h++}return t}get pageLayout(){const e=this._catDict.get("PageLayout");let t="";if(e instanceof i.Name)switch(e.name){case"SinglePage":case"OneColumn":case"TwoColumnLeft":case"TwoColumnRight":case"TwoPageLeft":case"TwoPageRight":t=e.name}return(0,n.shadow)(this,"pageLayout",t)}get pageMode(){const e=this._catDict.get("PageMode");let t="UseNone";if(e instanceof i.Name)switch(e.name){case"UseNone":case"UseOutlines":case"UseThumbs":case"FullScreen":case"UseOC":case"UseAttachments":t=e.name}return(0,n.shadow)(this,"pageMode",t)}get viewerPreferences(){const e=this._catDict.get("ViewerPreferences");if(!(e instanceof i.Dict))return(0,n.shadow)(this,"viewerPreferences",null);let t=null;for(const a of e.getKeys()){const r=e.get(a);let s;switch(a){case"HideToolbar":case"HideMenubar":case"HideWindowUI":case"FitWindow":case"CenterWindow":case"DisplayDocTitle":case"PickTrayByPDFSize":"boolean"==typeof r&&(s=r);break;case"NonFullScreenPageMode":if(r instanceof i.Name)switch(r.name){case"UseNone":case"UseOutlines":case"UseThumbs":case"UseOC":s=r.name;break;default:s="UseNone"}break;case"Direction":if(r instanceof i.Name)switch(r.name){case"L2R":case"R2L":s=r.name;break;default:s="L2R"}break;case"ViewArea":case"ViewClip":case"PrintArea":case"PrintClip":if(r instanceof i.Name)switch(r.name){case"MediaBox":case"CropBox":case"BleedBox":case"TrimBox":case"ArtBox":s=r.name;break;default:s="CropBox"}break;case"PrintScaling":if(r instanceof i.Name)switch(r.name){case"None":case"AppDefault":s=r.name;break;default:s="AppDefault"}break;case"Duplex":if(r instanceof i.Name)switch(r.name){case"Simplex":case"DuplexFlipShortEdge":case"DuplexFlipLongEdge":s=r.name;break;default:s="None"}break;case"PrintPageRange":if(Array.isArray(r)&&r.length%2==0){r.every(((e,t,a)=>Number.isInteger(e)&&e>0&&(0===t||e>=a[t-1])&&e<=this.numPages))&&(s=r)}break;case"NumCopies":Number.isInteger(r)&&r>0&&(s=r);break;default:(0,n.warn)(`Ignoring non-standard key in ViewerPreferences: ${a}.`);continue}if(void 0!==s){t||(t=Object.create(null));t[a]=s}else(0,n.warn)(`Bad value, for key "${a}", in ViewerPreferences: ${r}.`)}return(0,n.shadow)(this,"viewerPreferences",t)}get openAction(){const e=this._catDict.get("OpenAction"),t=Object.create(null);if(e instanceof i.Dict){const a=new i.Dict(this.xref);a.set("A",e);const r={url:null,dest:null,action:null};Catalog.parseDestDictionary({destDict:a,resultObj:r});Array.isArray(r.dest)?t.dest=r.dest:r.action&&(t.action=r.action)}else Array.isArray(e)&&(t.dest=e);return(0,n.shadow)(this,"openAction",(0,n.objectSize)(t)>0?t:null)}get attachments(){const e=this._catDict.get("Names");let t=null;if(e instanceof i.Dict&&e.has("EmbeddedFiles")){const a=new s.NameTree(e.getRaw("EmbeddedFiles"),this.xref);for(const[e,r]of a.getAll()){const a=new h.FileSpec(r,this.xref);t||(t=Object.create(null));t[(0,n.stringToPDFString)(e)]=a.serializable}}return(0,n.shadow)(this,"attachments",t)}get xfaImages(){const e=this._catDict.get("Names");let t=null;if(e instanceof i.Dict&&e.has("XFAImages")){const a=new s.NameTree(e.getRaw("XFAImages"),this.xref);for(const[e,r]of a.getAll()){t||(t=new i.Dict(this.xref));t.set((0,n.stringToPDFString)(e),r)}}return(0,n.shadow)(this,"xfaImages",t)}_collectJavaScript(){const e=this._catDict.get("Names");let t=null;function appendIfJavaScriptDict(e,a){if(!(a instanceof i.Dict))return;if(!(0,i.isName)(a.get("S"),"JavaScript"))return;let r=a.get("JS");if(r instanceof o.BaseStream)r=r.getString();else if("string"!=typeof r)return;null===t&&(t=new Map);t.set(e,(0,n.stringToPDFString)(r))}if(e instanceof i.Dict&&e.has("JavaScript")){const t=new s.NameTree(e.getRaw("JavaScript"),this.xref);for(const[e,a]of t.getAll())appendIfJavaScriptDict((0,n.stringToPDFString)(e),a)}const a=this._catDict.get("OpenAction");a&&appendIfJavaScriptDict("OpenAction",a);return t}get javaScript(){const e=this._collectJavaScript();return(0,n.shadow)(this,"javaScript",e?[...e.values()]:null)}get jsActions(){const e=this._collectJavaScript();let t=(0,r.collectActions)(this.xref,this._catDict,n.DocumentActionEventType);if(e){t||(t=Object.create(null));for(const[a,r]of e)a in t?t[a].push(r):t[a]=[r]}return(0,n.shadow)(this,"jsActions",t)}async fontFallback(e,t){const a=await Promise.all(this.fontCache);for(const r of a)if(r.loadedName===e){r.fallback(t);return}}async cleanup(e=!1){(0,c.clearGlobalCaches)();this.globalImageCache.clear(e);this.pageKidsCountCache.clear();this.pageIndexCache.clear();this.nonBlendModesSet.clear();const t=await Promise.all(this.fontCache);for(const{dict:e}of t)delete e.cacheKey;this.fontCache.clear();this.builtInCMapCache.clear();this.standardFontDataCache.clear()}async getPageDict(e){const t=[this.toplevelPagesDict],a=new i.RefSet,r=this._catDict.getRaw("Pages");r instanceof i.Ref&&a.put(r);const s=this.xref,o=this.pageKidsCountCache,c=this.pageIndexCache;let l=0;for(;t.length;){const r=t.pop();if(r instanceof i.Ref){const h=o.get(r);if(h>=0&&l+h<=e){l+=h;continue}if(a.has(r))throw new n.FormatError("Pages tree contains circular reference.");a.put(r);const u=await s.fetchAsync(r);if(u instanceof i.Dict){let t=u.getRaw("Type");t instanceof i.Ref&&(t=await s.fetchAsync(t));if((0,i.isName)(t,"Page")||!u.has("Kids")){o.has(r)||o.put(r,1);c.has(r)||c.put(r,l);if(l===e)return[u,r];l++;continue}}t.push(u);continue}if(!(r instanceof i.Dict))throw new n.FormatError("Page dictionary kid reference points to wrong type of object.");const{objId:h}=r;let u=r.getRaw("Count");u instanceof i.Ref&&(u=await s.fetchAsync(u));if(Number.isInteger(u)&&u>=0){h&&!o.has(h)&&o.put(h,u);if(l+u<=e){l+=u;continue}}let d=r.getRaw("Kids");d instanceof i.Ref&&(d=await s.fetchAsync(d));if(!Array.isArray(d)){let t=r.getRaw("Type");t instanceof i.Ref&&(t=await s.fetchAsync(t));if((0,i.isName)(t,"Page")||!r.has("Kids")){if(l===e)return[r,null];l++;continue}throw new n.FormatError("Page dictionary kids object is not an array.")}for(let e=d.length-1;e>=0;e--)t.push(d[e])}throw new Error(`Page index ${e} not found.`)}async getAllPageDicts(e=!1){const t=[{currentNode:this.toplevelPagesDict,posInKids:0}],a=new i.RefSet,s=this._catDict.getRaw("Pages");s instanceof i.Ref&&a.put(s);const o=new Map,c=this.xref,l=this.pageIndexCache;let h=0;function addPageDict(e,t){t&&!l.has(t)&&l.put(t,h);o.set(h++,[e,t])}function addPageError(t){if(t instanceof r.XRefEntryException&&!e)throw t;o.set(h++,[t,null])}for(;t.length>0;){const e=t[t.length-1],{currentNode:r,posInKids:s}=e;let o=r.getRaw("Kids");if(o instanceof i.Ref)try{o=await c.fetchAsync(o)}catch(e){addPageError(e);break}if(!Array.isArray(o)){addPageError(new n.FormatError("Page dictionary kids object is not an array."));break}if(s>=o.length){t.pop();continue}const l=o[s];let h;if(l instanceof i.Ref){if(a.has(l)){addPageError(new n.FormatError("Pages tree contains circular reference."));break}a.put(l);try{h=await c.fetchAsync(l)}catch(e){addPageError(e);break}}else h=l;if(!(h instanceof i.Dict)){addPageError(new n.FormatError("Page dictionary kid reference points to wrong type of object."));break}let u=h.getRaw("Type");if(u instanceof i.Ref)try{u=await c.fetchAsync(u)}catch(e){addPageError(e);break}(0,i.isName)(u,"Page")||!h.has("Kids")?addPageDict(h,l instanceof i.Ref?l:null):t.push({currentNode:h,posInKids:0});e.posInKids++}return o}getPageIndex(e){const t=this.pageIndexCache.get(e);if(void 0!==t)return Promise.resolve(t);const a=this.xref;let r=0;const next=t=>function pagesBeforeRef(t){let r,s=0;return a.fetchAsync(t).then((function(a){if((0,i.isRefsEqual)(t,e)&&!(0,i.isDict)(a,"Page")&&!(a instanceof i.Dict&&!a.has("Type")&&a.has("Contents")))throw new n.FormatError("The reference does not point to a /Page dictionary.");if(!a)return null;if(!(a instanceof i.Dict))throw new n.FormatError("Node must be a dictionary.");r=a.getRaw("Parent");return a.getAsync("Parent")})).then((function(e){if(!e)return null;if(!(e instanceof i.Dict))throw new n.FormatError("Parent must be a dictionary.");return e.getAsync("Kids")})).then((function(e){if(!e)return null;const o=[];let c=!1;for(let r=0,l=e.length;r{if(!t){this.pageIndexCache.put(e,r);return r}const[a,n]=t;r+=a;return next(n)}));return next(e)}get baseUrl(){const e=this._catDict.get("URI");if(e instanceof i.Dict){const t=e.get("Base");if("string"==typeof t){const e=(0,n.createValidAbsoluteUrl)(t,null,{tryConvertEncoding:!0});if(e)return(0,n.shadow)(this,"baseUrl",e.href)}}return(0,n.shadow)(this,"baseUrl",null)}static parseDestDictionary(e){const t=e.destDict;if(!(t instanceof i.Dict)){(0,n.warn)("parseDestDictionary: `destDict` must be a dictionary.");return}const a=e.resultObj;if("object"!=typeof a){(0,n.warn)("parseDestDictionary: `resultObj` must be an object.");return}const s=e.docBaseUrl||null;let c,l,h=t.get("A");if(!(h instanceof i.Dict))if(t.has("Dest"))h=t.get("Dest");else{h=t.get("AA");h instanceof i.Dict&&(h.has("D")?h=h.get("D"):h.has("U")&&(h=h.get("U")))}if(h instanceof i.Dict){const e=h.get("S");if(!(e instanceof i.Name)){(0,n.warn)("parseDestDictionary: Invalid type in Action dictionary.");return}const t=e.name;switch(t){case"ResetForm":const e=h.get("Flags"),s=0==(1&("number"==typeof e?e:0)),u=[],d=[];for(const e of h.get("Fields")||[])e instanceof i.Ref?d.push(e.toString()):"string"==typeof e&&u.push((0,n.stringToPDFString)(e));a.resetForm={fields:u,refs:d,include:s};break;case"URI":c=h.get("URI");c instanceof i.Name&&(c="/"+c.name);break;case"GoTo":l=h.get("D");break;case"Launch":case"GoToR":const f=h.get("F");f instanceof i.Dict?c=f.get("F")||null:"string"==typeof f&&(c=f);let g=h.get("D");if(g){g instanceof i.Name&&(g=g.name);if("string"==typeof c){const e=c.split("#")[0];"string"==typeof g?c=e+"#"+g:Array.isArray(g)&&(c=e+"#"+JSON.stringify(g))}}const p=h.get("NewWindow");"boolean"==typeof p&&(a.newWindow=p);break;case"Named":const m=h.get("N");m instanceof i.Name&&(a.action=m.name);break;case"JavaScript":const b=h.get("JS");let y;b instanceof o.BaseStream?y=b.getString():"string"==typeof b&&(y=b);const w=y&&(0,r.recoverJsURL)((0,n.stringToPDFString)(y));if(w){c=w.url;a.newWindow=w.newWindow;break}default:if("JavaScript"===t||"SubmitForm"===t)break;(0,n.warn)(`parseDestDictionary - unsupported action: "${t}".`)}}else t.has("Dest")&&(l=t.get("Dest"));if("string"==typeof c){const e=(0,n.createValidAbsoluteUrl)(c,s,{addDefaultProtocol:!0,tryConvertEncoding:!0});e&&(a.url=e.href);a.unsafeUrl=c}if(l){l instanceof i.Name&&(l=l.name);"string"==typeof l?a.dest=(0,n.stringToPDFString)(l):Array.isArray(l)&&(a.dest=l)}}}t.Catalog=Catalog},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.NumberTree=t.NameTree=void 0;var r=a(5),n=a(2);class NameOrNumberTree{constructor(e,t,a){this.constructor===NameOrNumberTree&&(0,n.unreachable)("Cannot initialize NameOrNumberTree.");this.root=e;this.xref=t;this._type=a}getAll(){const e=new Map;if(!this.root)return e;const t=this.xref,a=new r.RefSet;a.put(this.root);const i=[this.root];for(;i.length>0;){const s=t.fetchIfRef(i.shift());if(!(s instanceof r.Dict))continue;if(s.has("Kids")){const e=s.get("Kids");if(!Array.isArray(e))continue;for(const t of e){if(a.has(t))throw new n.FormatError(`Duplicate entry in "${this._type}" tree.`);i.push(t);a.put(t)}continue}const o=s.get(this._type);if(Array.isArray(o))for(let a=0,r=o.length;a10){(0,n.warn)(`Search depth limit reached for "${this._type}" tree.`);return null}const i=a.get("Kids");if(!Array.isArray(i))return null;let s=0,o=i.length-1;for(;s<=o;){const r=s+o>>1,n=t.fetchIfRef(i[r]),c=n.get("Limits");if(et.fetchIfRef(c[1]))){a=n;break}s=r+1}}if(s>o)return null}const i=a.get(this._type);if(Array.isArray(i)){let a=0,r=i.length-2;for(;a<=r;){const n=a+r>>1,s=n+(1&n),o=t.fetchIfRef(i[s]);if(eo))return t.fetchIfRef(i[s+1]);a=s+2}}}return null}}t.NameTree=class NameTree extends NameOrNumberTree{constructor(e,t){super(e,t,"Names")}};t.NumberTree=class NumberTree extends NameOrNumberTree{constructor(e,t){super(e,t,"Nums")}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.clearGlobalCaches=function clearGlobalCaches(){(0,r.clearPrimitiveCaches)();(0,n.clearUnicodeCaches)()};var r=a(5),n=a(21)},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.FileSpec=void 0;var r=a(2),n=a(9),i=a(5);function pickPlatformItem(e){return e.has("UF")?e.get("UF"):e.has("F")?e.get("F"):e.has("Unix")?e.get("Unix"):e.has("Mac")?e.get("Mac"):e.has("DOS")?e.get("DOS"):null}t.FileSpec=class FileSpec{constructor(e,t){if(e instanceof i.Dict){this.xref=t;this.root=e;e.has("FS")&&(this.fs=e.get("FS"));this.description=e.has("Desc")?(0,r.stringToPDFString)(e.get("Desc")):"";e.has("RF")&&(0,r.warn)("Related file specifications are not supported");this.contentAvailable=!0;if(!e.has("EF")){this.contentAvailable=!1;(0,r.warn)("Non-embedded file specifications are not supported")}}}get filename(){if(!this._filename&&this.root){const e=pickPlatformItem(this.root)||"unnamed";this._filename=(0,r.stringToPDFString)(e).replace(/\\\\/g,"\\").replace(/\\\//g,"/").replace(/\\/g,"/")}return this._filename}get content(){if(!this.contentAvailable)return null;!this.contentRef&&this.root&&(this.contentRef=pickPlatformItem(this.root.get("EF")));let e=null;if(this.contentRef){const t=this.xref.fetchIfRef(this.contentRef);t instanceof n.BaseStream?e=t.getBytes():(0,r.warn)("Embedded file specification points to non-existing/invalid content")}else(0,r.warn)("Embedded file specification does not have a content");return e}get serializable(){return{filename:this.filename,content:this.content}}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.MetadataParser=void 0;var r=a(70);t.MetadataParser=class MetadataParser{constructor(e){e=this._repair(e);const t=new r.SimpleXMLParser({lowerCaseName:!0}).parseFromString(e);this._metadataMap=new Map;this._data=e;t&&this._parse(t)}_repair(e){return e.replace(/^[^<]+/,"").replace(/>\\376\\377([^<]+)/g,(function(e,t){const a=t.replace(/\\([0-3])([0-7])([0-7])/g,(function(e,t,a,r){return String.fromCharCode(64*t+8*a+1*r)})).replace(/&(amp|apos|gt|lt|quot);/g,(function(e,t){switch(t){case"amp":return"&";case"apos":return"'";case"gt":return">";case"lt":return"<";case"quot":return'"'}throw new Error(`_repair: ${t} isn't defined.`)})),r=[];for(let e=0,t=a.length;e=32&&t<127&&60!==t&&62!==t&&38!==t?r.push(String.fromCharCode(t)):r.push("&#x"+(65536+t).toString(16).substring(1)+";")}return">"+r.join("")}))}_getSequence(e){const t=e.nodeName;return"rdf:bag"!==t&&"rdf:seq"!==t&&"rdf:alt"!==t?null:e.childNodes.filter((e=>"rdf:li"===e.nodeName))}_parseArray(e){if(!e.hasChildNodes())return;const[t]=e.childNodes,a=this._getSequence(t)||[];this._metadataMap.set(e.nodeName,a.map((e=>e.textContent.trim())))}_parse(e){let t=e.documentElement;if("rdf:rdf"!==t.nodeName){t=t.firstChild;for(;t&&"rdf:rdf"!==t.nodeName;)t=t.nextSibling}if(t&&"rdf:rdf"===t.nodeName&&t.hasChildNodes())for(const e of t.childNodes)if("rdf:description"===e.nodeName)for(const t of e.childNodes){const e=t.nodeName;switch(e){case"#text":continue;case"dc:creator":case"dc:subject":this._parseArray(t);continue}this._metadataMap.set(e,t.textContent.trim())}}get serializable(){return{parsedData:this._metadataMap,rawData:this._data}}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XMLParserErrorCode=t.XMLParserBase=t.SimpleXMLParser=t.SimpleDOMNode=void 0;var r=a(8);const n={NoError:0,EndOfDocument:-1,UnterminatedCdat:-2,UnterminatedXmlDeclaration:-3,UnterminatedDoctypeDeclaration:-4,UnterminatedComment:-5,MalformedElement:-6,OutOfMemory:-7,UnterminatedAttributeValue:-8,UnterminatedElement:-9,ElementNeverBegun:-10};t.XMLParserErrorCode=n;function isWhitespace(e,t){const a=e[t];return" "===a||"\n"===a||"\r"===a||"\t"===a}class XMLParserBase{_resolveEntities(e){return e.replace(/&([^;]+);/g,((e,t)=>{if("#x"===t.substring(0,2))return String.fromCodePoint(parseInt(t.substring(2),16));if("#"===t.substring(0,1))return String.fromCodePoint(parseInt(t.substring(1),10));switch(t){case"lt":return"<";case"gt":return">";case"amp":return"&";case"quot":return'"';case"apos":return"'"}return this.onResolveEntity(t)}))}_parseContent(e,t){const a=[];let r=t;function skipWs(){for(;r"!==e[r]&&"/"!==e[r];)++r;const n=e.substring(t,r);skipWs();for(;r"!==e[r]&&"/"!==e[r]&&"?"!==e[r];){skipWs();let t="",n="";for(;r"!==e[a]&&"?"!==e[a]&&"/"!==e[a];)++a;const r=e.substring(t,a);!function skipWs(){for(;a"!==e[a+1]);)++a;return{name:r,value:e.substring(n,a),parsed:a-t}}parseXml(e){let t=0;for(;t",a);if(t<0){this.onError(n.UnterminatedElement);return}this.onEndElement(e.substring(a,t));a=t+1;break;case"?":++a;const r=this._parseProcessingInstruction(e,a);if("?>"!==e.substring(a+r.parsed,a+r.parsed+2)){this.onError(n.UnterminatedXmlDeclaration);return}this.onPi(r.name,r.value);a+=r.parsed+2;break;case"!":if("--"===e.substring(a+1,a+3)){t=e.indexOf("--\x3e",a+3);if(t<0){this.onError(n.UnterminatedComment);return}this.onComment(e.substring(a+3,t));a=t+3}else if("[CDATA["===e.substring(a+1,a+8)){t=e.indexOf("]]>",a+8);if(t<0){this.onError(n.UnterminatedCdat);return}this.onCdata(e.substring(a+8,t));a=t+3}else{if("DOCTYPE"!==e.substring(a+1,a+8)){this.onError(n.MalformedElement);return}{const r=e.indexOf("[",a+8);let i=!1;t=e.indexOf(">",a+8);if(t<0){this.onError(n.UnterminatedDoctypeDeclaration);return}if(r>0&&t>r){t=e.indexOf("]>",a+8);if(t<0){this.onError(n.UnterminatedDoctypeDeclaration);return}i=!0}const s=e.substring(a+8,t+(i?1:0));this.onDoctype(s);a=t+(i?2:1)}}break;default:const i=this._parseContent(e,a);if(null===i){this.onError(n.MalformedElement);return}let s=!1;if("/>"===e.substring(a+i.parsed,a+i.parsed+2))s=!0;else if(">"!==e.substring(a+i.parsed,a+i.parsed+1)){this.onError(n.UnterminatedElement);return}this.onBeginElement(i.name,i.attributes,s);a+=i.parsed+(s?2:1)}}else{for(;a0}searchNode(e,t){if(t>=e.length)return this;const a=e[t],r=[];let n=this;for(;;){if(a.name===n.nodeName){if(0!==a.pos){if(0===r.length)return null;{const[i]=r.pop();let s=0;for(const r of i.childNodes)if(a.name===r.nodeName){if(s===a.pos)return r.searchNode(e,t+1);s++}return n.searchNode(e,t+1)}}{const a=n.searchNode(e,t+1);if(null!==a)return a}}if(n.childNodes&&0!==n.childNodes.length){r.push([n,0]);n=n.childNodes[0]}else{if(0===r.length)return null;for(;0!==r.length;){const[e,t]=r.pop(),a=t+1;if(a");for(const t of this.childNodes)t.dump(e);e.push(``)}else this.nodeValue?e.push(`>${(0,r.encodeToXmlString)(this.nodeValue)}`):e.push("/>")}else e.push((0,r.encodeToXmlString)(this.nodeValue))}}t.SimpleDOMNode=SimpleDOMNode;t.SimpleXMLParser=class SimpleXMLParser extends XMLParserBase{constructor({hasAttributes:e=!1,lowerCaseName:t=!1}){super();this._currentFragment=null;this._stack=null;this._errorCode=n.NoError;this._hasAttributes=e;this._lowerCaseName=t}parseFromString(e){this._currentFragment=[];this._stack=[];this._errorCode=n.NoError;this.parseXml(e);if(this._errorCode!==n.NoError)return;const[t]=this._currentFragment;return t?{documentElement:t}:void 0}onText(e){if(function isWhitespaceString(e){for(let t=0,a=e.length;t{Object.defineProperty(t,"__esModule",{value:!0});t.StructTreeRoot=t.StructTreePage=void 0;var r=a(5),n=a(2),i=a(66);const s="PAGE_CONTENT",o="STREAM_CONTENT",c="OBJECT",l="ELEMENT";t.StructTreeRoot=class StructTreeRoot{constructor(e){this.dict=e;this.roleMap=new Map}init(){this.readRoleMap()}readRoleMap(){const e=this.dict.get("RoleMap");e instanceof r.Dict&&e.forEach(((e,t)=>{t instanceof r.Name&&this.roleMap.set(e,t.name)}))}};class StructElementNode{constructor(e,t){this.tree=e;this.dict=t;this.kids=[];this.parseKids()}get role(){const e=this.dict.get("S"),t=e instanceof r.Name?e.name:"",{root:a}=this.tree;return a.roleMap.has(t)?a.roleMap.get(t):t}parseKids(){let e=null;const t=this.dict.getRaw("Pg");t instanceof r.Ref&&(e=t.toString());const a=this.dict.get("K");if(Array.isArray(a))for(const t of a){const a=this.parseKid(e,t);a&&this.kids.push(a)}else{const t=this.parseKid(e,a);t&&this.kids.push(t)}}parseKid(e,t){if(Number.isInteger(t))return this.tree.pageDict.objId!==e?null:new StructElement({type:s,mcid:t,pageObjId:e});let a=null;t instanceof r.Ref?a=this.dict.xref.fetch(t):t instanceof r.Dict&&(a=t);if(!a)return null;const n=a.getRaw("Pg");n instanceof r.Ref&&(e=n.toString());const i=a.get("Type")instanceof r.Name?a.get("Type").name:null;return"MCR"===i?this.tree.pageDict.objId!==e?null:new StructElement({type:o,refObjId:a.getRaw("Stm")instanceof r.Ref?a.getRaw("Stm").toString():null,pageObjId:e,mcid:a.get("MCID")}):"OBJR"===i?this.tree.pageDict.objId!==e?null:new StructElement({type:c,refObjId:a.getRaw("Obj")instanceof r.Ref?a.getRaw("Obj").toString():null,pageObjId:e}):new StructElement({type:l,dict:a})}}class StructElement{constructor({type:e,dict:t=null,mcid:a=null,pageObjId:r=null,refObjId:n=null}){this.type=e;this.dict=t;this.mcid=a;this.pageObjId=r;this.refObjId=n;this.parentNode=null}}t.StructTreePage=class StructTreePage{constructor(e,t){this.root=e;this.rootDict=e?e.dict:null;this.pageDict=t;this.nodes=[]}parse(){if(!this.root||!this.rootDict)return;const e=this.rootDict.get("ParentTree");if(!e)return;const t=this.pageDict.get("StructParents");if(!Number.isInteger(t))return;const a=new i.NumberTree(e,this.rootDict.xref).get(t);if(!Array.isArray(a))return;const n=new Map;for(const e of a)e instanceof r.Ref&&this.addNode(this.rootDict.xref.fetch(e),n)}addNode(e,t,a=0){if(a>40){(0,n.warn)("StructTree MAX_DEPTH reached.");return null}if(t.has(e))return t.get(e);const i=new StructElementNode(this,e);t.set(e,i);const s=e.get("P");if(!s||(0,r.isName)(s.get("Type"),"StructTreeRoot")){this.addTopLevelNode(e,i)||t.delete(e);return i}const o=this.addNode(s,t,a+1);if(!o)return i;let c=!1;for(const t of o.kids)if(t.type===l&&t.dict===e){t.parentNode=i;c=!0}c||t.delete(e);return i}addTopLevelNode(e,t){const a=this.rootDict.get("K");if(!a)return!1;if(a instanceof r.Dict){if(a.objId!==e.objId)return!1;this.nodes[0]=t;return!0}if(!Array.isArray(a))return!0;let n=!1;for(let r=0;r40){(0,n.warn)("StructTree too deep to be fully serialized.");return}const r=Object.create(null);r.role=e.role;r.children=[];t.children.push(r);const i=e.dict.get("Alt");"string"==typeof i&&(r.alt=(0,n.stringToPDFString)(i));const h=e.dict.get("Lang");"string"==typeof h&&(r.lang=(0,n.stringToPDFString)(h));for(const t of e.kids){const e=t.type===l?t.parentNode:null;e?nodeToSerializable(e,r,a+1):t.type===s||t.type===o?r.children.push({type:"content",id:`page${t.pageObjId}_mcid${t.mcid}`}):t.type===c&&r.children.push({type:"object",id:t.refObjId})}}const e=Object.create(null);e.children=[];e.role="Root";for(const t of this.nodes)t&&nodeToSerializable(t,e);return e}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ObjectLoader=void 0;var r=a(5),n=a(9),i=a(8),s=a(2);function addChildren(e,t){if(e instanceof r.Dict)e=e.getRawValues();else if(e instanceof n.BaseStream)e=e.dict.getRawValues();else if(!Array.isArray(e))return;for(const i of e)((a=i)instanceof r.Ref||a instanceof r.Dict||a instanceof n.BaseStream||Array.isArray(a))&&t.push(i);var a}t.ObjectLoader=class ObjectLoader{constructor(e,t,a){this.dict=e;this.keys=t;this.xref=a;this.refSet=null}async load(){if(this.xref.stream.isDataLoaded)return;const{keys:e,dict:t}=this;this.refSet=new r.RefSet;const a=[];for(let r=0,n=e.length;r{Object.defineProperty(t,"__esModule",{value:!0});t.incrementalUpdate=function incrementalUpdate({originalData:e,xrefInfo:t,newRefs:a,xref:o=null,hasXfa:l=!1,xfaDatasetsRef:h=null,hasXfaDatasetsEntry:u=!1,acroFormRef:d=null,acroForm:f=null,xfaData:g=null}){l&&function updateXFA({xfaData:e,xfaDatasetsRef:t,hasXfaDatasetsEntry:a,acroFormRef:n,acroForm:o,newRefs:c,xref:l,xrefInfo:h}){if(null===l)return;if(!a){if(!n){(0,r.warn)("XFA - Cannot save it");return}const e=o.get("XFA"),a=e.slice();a.splice(2,0,"datasets");a.splice(3,0,t);o.set("XFA",a);const i=l.encrypt;let s=null;i&&(s=i.createCipherTransform(n.num,n.gen));const h=[`${n.num} ${n.gen} obj\n`];writeDict(o,h,s);h.push("\n");o.set("XFA",e);c.push({ref:n,data:h.join("")})}if(null===e){e=function writeXFADataForAcroform(e,t){const a=new s.SimpleXMLParser({hasAttributes:!0}).parseFromString(e);for(const{xfa:e}of t){if(!e)continue;const{path:t,value:n}=e;if(!t)continue;const o=a.documentElement.searchNode((0,i.parseXFAPath)(t),0);o?Array.isArray(n)?o.childNodes=n.map((e=>new s.SimpleDOMNode("value",e))):o.childNodes=[new s.SimpleDOMNode("#text",n)]:(0,r.warn)(`Node not found for path: ${t}`)}const n=[];a.documentElement.dump(n);return n.join("")}(l.fetchIfRef(t).getString(),c)}const u=l.encrypt;if(u){e=u.createCipherTransform(t.num,t.gen).encryptString(e)}const d=`${t.num} ${t.gen} obj\n<< /Type /EmbeddedFile /Length ${e.length}>>\nstream\n`+e+"\nendstream\nendobj\n";c.push({ref:t,data:d})}({xfaData:g,xfaDatasetsRef:h,hasXfaDatasetsEntry:u,acroFormRef:d,acroForm:f,newRefs:a,xref:o,xrefInfo:t});const p=new n.Dict(null),m=t.newRef;let b,y;const w=e[e.length-1];if(10===w||13===w){b=[];y=e.length}else{b=["\n"];y=e.length+1}p.set("Size",m.num+1);p.set("Prev",t.startXRef);p.set("Type",n.Name.get("XRef"));null!==t.rootRef&&p.set("Root",t.rootRef);null!==t.infoRef&&p.set("Info",t.infoRef);null!==t.encryptRef&&p.set("Encrypt",t.encryptRef);a.push({ref:m,data:""});a=a.sort(((e,t)=>e.ref.num-t.ref.num));const S=[[0,1,65535]],x=[0,1];let k=0;for(const{ref:e,data:t}of a){k=Math.max(k,y);S.push([1,y,Math.min(e.gen,65535)]);y+=t.length;x.push(e.num,1);b.push(t)}p.set("Index",x);if(Array.isArray(t.fileIds)&&t.fileIds.length>0){const e=function computeMD5(e,t){const a=Math.floor(Date.now()/1e3),n=t.filename||"",i=[a.toString(),n,e.toString()];let s=i.reduce(((e,t)=>e+t.length),0);for(const e of Object.values(t.info)){i.push(e);s+=e.length}const o=new Uint8Array(s);let l=0;for(const e of i){writeString(e,l,o);l+=e.length}return(0,r.bytesToString)((0,c.calculateMD5)(o))}(y,t);p.set("ID",[t.fileIds[0],e])}const C=[1,Math.ceil(Math.log2(k)/8),2],v=(C[0]+C[1]+C[2])*S.length;p.set("W",C);p.set("Length",v);b.push(`${m.num} ${m.gen} obj\n`);writeDict(p,b,null);b.push(" stream\n");const F=b.reduce(((e,t)=>e+t.length),0),O=`\nendstream\nendobj\nstartxref\n${y}\n%%EOF\n`,T=new Uint8Array(e.length+F+v+O.length);T.set(e);let M=e.length;for(const e of b){writeString(e,M,T);M+=e.length}for(const[e,t,a]of S){M=writeInt(e,C[0],M,T);M=writeInt(t,C[1],M,T);M=writeInt(a,C[2],M,T)}writeString(O,M,T);return T};t.writeDict=writeDict;var r=a(2),n=a(5),i=a(8),s=a(70),o=a(9),c=a(74);function writeDict(e,t,a){t.push("<<");for(const r of e.getKeys()){t.push(` /${(0,i.escapePDFName)(r)} `);writeValue(e.getRaw(r),t,a)}t.push(">>")}function writeValue(e,t,a){if(e instanceof n.Name)t.push(`/${(0,i.escapePDFName)(e.name)}`);else if(e instanceof n.Ref)t.push(`${e.num} ${e.gen} R`);else if(Array.isArray(e))!function writeArray(e,t,a){t.push("[");let r=!0;for(const n of e){r?r=!1:t.push(" ");writeValue(n,t,a)}t.push("]")}(e,t,a);else if("string"==typeof e){null!==a&&(e=a.encryptString(e));t.push(`(${(0,r.escapeString)(e)})`)}else"number"==typeof e?t.push(function numberToString(e){if(Number.isInteger(e))return e.toString();const t=Math.round(100*e);return t%100==0?(t/100).toString():t%10==0?e.toFixed(1):e.toFixed(2)}(e)):"boolean"==typeof e?t.push(e.toString()):e instanceof n.Dict?writeDict(e,t,a):e instanceof o.BaseStream?function writeStream(e,t,a){writeDict(e.dict,t,a);t.push(" stream\n");let r=e.getString();null!==a&&(r=a.encryptString(r));t.push(r,"\nendstream\n")}(e,t,a):null===e?t.push("null"):(0,r.warn)(`Unhandled value in writer: ${typeof e}, please file a bug.`)}function writeInt(e,t,a,r){for(let n=t+a-1;n>a-1;n--){r[n]=255&e;e>>=8}return a+t}function writeString(e,t,a){for(let r=0,n=e.length;r{Object.defineProperty(t,"__esModule",{value:!0});t.calculateSHA256=t.calculateMD5=t.PDF20=t.PDF17=t.CipherTransformFactory=t.ARCFourCipher=t.AES256Cipher=t.AES128Cipher=void 0;t.calculateSHA384=calculateSHA384;t.calculateSHA512=void 0;var r=a(2),n=a(5),i=a(75);class ARCFourCipher{constructor(e){this.a=0;this.b=0;const t=new Uint8Array(256),a=e.length;for(let e=0;e<256;++e)t[e]=e;for(let r=0,n=0;r<256;++r){const i=t[r];n=n+i+e[r%a]&255;t[r]=t[n];t[n]=i}this.s=t}encryptBlock(e){let t=this.a,a=this.b;const r=this.s,n=e.length,i=new Uint8Array(n);for(let s=0;s>5&255;h[u++]=n>>13&255;h[u++]=n>>21&255;h[u++]=n>>>29&255;h[u++]=0;h[u++]=0;h[u++]=0;const g=new Int32Array(16);for(u=0;u>>32-o)|0;n=i}i=i+n|0;s=s+l|0;o=o+f|0;c=c+p|0}return new Uint8Array([255&i,i>>8&255,i>>16&255,i>>>24&255,255&s,s>>8&255,s>>16&255,s>>>24&255,255&o,o>>8&255,o>>16&255,o>>>24&255,255&c,c>>8&255,c>>16&255,c>>>24&255])}}();t.calculateMD5=s;class Word64{constructor(e,t){this.high=0|e;this.low=0|t}and(e){this.high&=e.high;this.low&=e.low}xor(e){this.high^=e.high;this.low^=e.low}or(e){this.high|=e.high;this.low|=e.low}shiftRight(e){if(e>=32){this.low=this.high>>>e-32|0;this.high=0}else{this.low=this.low>>>e|this.high<<32-e;this.high=this.high>>>e|0}}shiftLeft(e){if(e>=32){this.high=this.low<>>32-e;this.low<<=e}}rotateRight(e){let t,a;if(32&e){a=this.low;t=this.high}else{t=this.low;a=this.high}e&=31;this.low=t>>>e|a<<32-e;this.high=a>>>e|t<<32-e}not(){this.high=~this.high;this.low=~this.low}add(e){const t=(this.low>>>0)+(e.low>>>0);let a=(this.high>>>0)+(e.high>>>0);t>4294967295&&(a+=1);this.low=0|t;this.high=0|a}copyTo(e,t){e[t]=this.high>>>24&255;e[t+1]=this.high>>16&255;e[t+2]=this.high>>8&255;e[t+3]=255&this.high;e[t+4]=this.low>>>24&255;e[t+5]=this.low>>16&255;e[t+6]=this.low>>8&255;e[t+7]=255&this.low}assign(e){this.high=e.high;this.low=e.low}}const o=function calculateSHA256Closure(){function rotr(e,t){return e>>>t|e<<32-t}function ch(e,t,a){return e&t^~e&a}function maj(e,t,a){return e&t^e&a^t&a}function sigma(e){return rotr(e,2)^rotr(e,13)^rotr(e,22)}function sigmaPrime(e){return rotr(e,6)^rotr(e,11)^rotr(e,25)}function littleSigma(e){return rotr(e,7)^rotr(e,18)^e>>>3}const e=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];return function hash(t,a,r){let n=1779033703,i=3144134277,s=1013904242,o=2773480762,c=1359893119,l=2600822924,h=528734635,u=1541459225;const d=64*Math.ceil((r+9)/64),f=new Uint8Array(d);let g,p;for(g=0;g>>29&255;f[g++]=r>>21&255;f[g++]=r>>13&255;f[g++]=r>>5&255;f[g++]=r<<3&255;const b=new Uint32Array(64);for(g=0;g>>10)+b[p-7]+littleSigma(b[p-15])+b[p-16]|0;let t,a,r=n,d=i,m=s,w=o,S=c,x=l,k=h,C=u;for(p=0;p<64;++p){t=C+sigmaPrime(S)+ch(S,x,k)+e[p]+b[p];a=sigma(r)+maj(r,d,m);C=k;k=x;x=S;S=w+t|0;w=m;m=d;d=r;r=t+a|0}n=n+r|0;i=i+d|0;s=s+m|0;o=o+w|0;c=c+S|0;l=l+x|0;h=h+k|0;u=u+C|0}var y;return new Uint8Array([n>>24&255,n>>16&255,n>>8&255,255&n,i>>24&255,i>>16&255,i>>8&255,255&i,s>>24&255,s>>16&255,s>>8&255,255&s,o>>24&255,o>>16&255,o>>8&255,255&o,c>>24&255,c>>16&255,c>>8&255,255&c,l>>24&255,l>>16&255,l>>8&255,255&l,h>>24&255,h>>16&255,h>>8&255,255&h,u>>24&255,u>>16&255,u>>8&255,255&u])}}();t.calculateSHA256=o;const c=function calculateSHA512Closure(){function ch(e,t,a,r,n){e.assign(t);e.and(a);n.assign(t);n.not();n.and(r);e.xor(n)}function maj(e,t,a,r,n){e.assign(t);e.and(a);n.assign(t);n.and(r);e.xor(n);n.assign(a);n.and(r);e.xor(n)}function sigma(e,t,a){e.assign(t);e.rotateRight(28);a.assign(t);a.rotateRight(34);e.xor(a);a.assign(t);a.rotateRight(39);e.xor(a)}function sigmaPrime(e,t,a){e.assign(t);e.rotateRight(14);a.assign(t);a.rotateRight(18);e.xor(a);a.assign(t);a.rotateRight(41);e.xor(a)}function littleSigma(e,t,a){e.assign(t);e.rotateRight(1);a.assign(t);a.rotateRight(8);e.xor(a);a.assign(t);a.shiftRight(7);e.xor(a)}function littleSigmaPrime(e,t,a){e.assign(t);e.rotateRight(19);a.assign(t);a.rotateRight(61);e.xor(a);a.assign(t);a.shiftRight(6);e.xor(a)}const e=[new Word64(1116352408,3609767458),new Word64(1899447441,602891725),new Word64(3049323471,3964484399),new Word64(3921009573,2173295548),new Word64(961987163,4081628472),new Word64(1508970993,3053834265),new Word64(2453635748,2937671579),new Word64(2870763221,3664609560),new Word64(3624381080,2734883394),new Word64(310598401,1164996542),new Word64(607225278,1323610764),new Word64(1426881987,3590304994),new Word64(1925078388,4068182383),new Word64(2162078206,991336113),new Word64(2614888103,633803317),new Word64(3248222580,3479774868),new Word64(3835390401,2666613458),new Word64(4022224774,944711139),new Word64(264347078,2341262773),new Word64(604807628,2007800933),new Word64(770255983,1495990901),new Word64(1249150122,1856431235),new Word64(1555081692,3175218132),new Word64(1996064986,2198950837),new Word64(2554220882,3999719339),new Word64(2821834349,766784016),new Word64(2952996808,2566594879),new Word64(3210313671,3203337956),new Word64(3336571891,1034457026),new Word64(3584528711,2466948901),new Word64(113926993,3758326383),new Word64(338241895,168717936),new Word64(666307205,1188179964),new Word64(773529912,1546045734),new Word64(1294757372,1522805485),new Word64(1396182291,2643833823),new Word64(1695183700,2343527390),new Word64(1986661051,1014477480),new Word64(2177026350,1206759142),new Word64(2456956037,344077627),new Word64(2730485921,1290863460),new Word64(2820302411,3158454273),new Word64(3259730800,3505952657),new Word64(3345764771,106217008),new Word64(3516065817,3606008344),new Word64(3600352804,1432725776),new Word64(4094571909,1467031594),new Word64(275423344,851169720),new Word64(430227734,3100823752),new Word64(506948616,1363258195),new Word64(659060556,3750685593),new Word64(883997877,3785050280),new Word64(958139571,3318307427),new Word64(1322822218,3812723403),new Word64(1537002063,2003034995),new Word64(1747873779,3602036899),new Word64(1955562222,1575990012),new Word64(2024104815,1125592928),new Word64(2227730452,2716904306),new Word64(2361852424,442776044),new Word64(2428436474,593698344),new Word64(2756734187,3733110249),new Word64(3204031479,2999351573),new Word64(3329325298,3815920427),new Word64(3391569614,3928383900),new Word64(3515267271,566280711),new Word64(3940187606,3454069534),new Word64(4118630271,4000239992),new Word64(116418474,1914138554),new Word64(174292421,2731055270),new Word64(289380356,3203993006),new Word64(460393269,320620315),new Word64(685471733,587496836),new Word64(852142971,1086792851),new Word64(1017036298,365543100),new Word64(1126000580,2618297676),new Word64(1288033470,3409855158),new Word64(1501505948,4234509866),new Word64(1607167915,987167468),new Word64(1816402316,1246189591)];return function hash(t,a,r,n=!1){let i,s,o,c,l,h,u,d;if(n){i=new Word64(3418070365,3238371032);s=new Word64(1654270250,914150663);o=new Word64(2438529370,812702999);c=new Word64(355462360,4144912697);l=new Word64(1731405415,4290775857);h=new Word64(2394180231,1750603025);u=new Word64(3675008525,1694076839);d=new Word64(1203062813,3204075428)}else{i=new Word64(1779033703,4089235720);s=new Word64(3144134277,2227873595);o=new Word64(1013904242,4271175723);c=new Word64(2773480762,1595750129);l=new Word64(1359893119,2917565137);h=new Word64(2600822924,725511199);u=new Word64(528734635,4215389547);d=new Word64(1541459225,327033209)}const f=128*Math.ceil((r+17)/128),g=new Uint8Array(f);let p,m;for(p=0;p>>29&255;g[p++]=r>>21&255;g[p++]=r>>13&255;g[p++]=r>>5&255;g[p++]=r<<3&255;const y=new Array(80);for(p=0;p<80;p++)y[p]=new Word64(0,0);let w=new Word64(0,0),S=new Word64(0,0),x=new Word64(0,0),k=new Word64(0,0),C=new Word64(0,0),v=new Word64(0,0),F=new Word64(0,0),O=new Word64(0,0);const T=new Word64(0,0),M=new Word64(0,0),E=new Word64(0,0),D=new Word64(0,0);let N,L;for(p=0;p=1;--e){a=i[13];i[13]=i[9];i[9]=i[5];i[5]=i[1];i[1]=a;a=i[14];r=i[10];i[14]=i[6];i[10]=i[2];i[6]=a;i[2]=r;a=i[15];r=i[11];n=i[7];i[15]=i[3];i[11]=a;i[7]=r;i[3]=n;for(let e=0;e<16;++e)i[e]=this._inv_s[i[e]];for(let a=0,r=16*e;a<16;++a,++r)i[a]^=t[r];for(let e=0;e<16;e+=4){const t=this._mix[i[e]],r=this._mix[i[e+1]],n=this._mix[i[e+2]],s=this._mix[i[e+3]];a=t^r>>>8^r<<24^n>>>16^n<<16^s>>>24^s<<8;i[e]=a>>>24&255;i[e+1]=a>>16&255;i[e+2]=a>>8&255;i[e+3]=255&a}}a=i[13];i[13]=i[9];i[9]=i[5];i[5]=i[1];i[1]=a;a=i[14];r=i[10];i[14]=i[6];i[10]=i[2];i[6]=a;i[2]=r;a=i[15];r=i[11];n=i[7];i[15]=i[3];i[11]=a;i[7]=r;i[3]=n;for(let e=0;e<16;++e){i[e]=this._inv_s[i[e]];i[e]^=t[e]}return i}_encrypt(e,t){const a=this._s;let r,n,i;const s=new Uint8Array(16);s.set(e);for(let e=0;e<16;++e)s[e]^=t[e];for(let e=1;e=r;--a)if(e[a]!==t){t=0;break}o-=t;i[i.length-1]=e.subarray(0,16-t)}}const c=new Uint8Array(o);for(let e=0,t=0,a=i.length;e=256&&(o=255&(27^o))}for(let t=0;t<4;++t){a[e]=r^=a[e-32];e++;a[e]=n^=a[e-32];e++;a[e]=i^=a[e-32];e++;a[e]=s^=a[e-32];e++}}return a}}t.AES256Cipher=AES256Cipher;class PDF17{checkOwnerPassword(e,t,a,n){const i=new Uint8Array(e.length+56);i.set(e,0);i.set(t,e.length);i.set(a,e.length+t.length);const s=o(i,0,i.length);return(0,r.isArrayEqual)(s,n)}checkUserPassword(e,t,a){const n=new Uint8Array(e.length+8);n.set(e,0);n.set(t,e.length);const i=o(n,0,n.length);return(0,r.isArrayEqual)(i,a)}getOwnerKey(e,t,a,r){const n=new Uint8Array(e.length+56);n.set(e,0);n.set(t,e.length);n.set(a,e.length+t.length);const i=o(n,0,n.length);return new AES256Cipher(i).decryptBlock(r,!1,new Uint8Array(16))}getUserKey(e,t,a){const r=new Uint8Array(e.length+8);r.set(e,0);r.set(t,e.length);const n=o(r,0,r.length);return new AES256Cipher(n).decryptBlock(a,!1,new Uint8Array(16))}}t.PDF17=PDF17;const l=function PDF20Closure(){function calculatePDF20Hash(e,t,a){let r=o(t,0,t.length).subarray(0,32),n=[0],i=0;for(;i<64||n[n.length-1]>i-32;){const t=e.length+r.length+a.length,s=new Uint8Array(t);let l=0;s.set(e,l);l+=e.length;s.set(r,l);l+=r.length;s.set(a,l);const h=new Uint8Array(64*t);for(let e=0,a=0;e<64;e++,a+=t)h.set(s,a);n=new AES128Cipher(r.subarray(0,16)).encrypt(h,r.subarray(16,32));let u=0;for(let e=0;e<16;e++){u*=1;u%=3;u+=(n[e]>>>0)%3;u%=3}0===u?r=o(n,0,n.length):1===u?r=calculateSHA384(n,0,n.length):2===u&&(r=c(n,0,n.length));i++}return r.subarray(0,32)}return class PDF20{hash(e,t,a){return calculatePDF20Hash(e,t,a)}checkOwnerPassword(e,t,a,n){const i=new Uint8Array(e.length+56);i.set(e,0);i.set(t,e.length);i.set(a,e.length+t.length);const s=calculatePDF20Hash(e,i,a);return(0,r.isArrayEqual)(s,n)}checkUserPassword(e,t,a){const n=new Uint8Array(e.length+8);n.set(e,0);n.set(t,e.length);const i=calculatePDF20Hash(e,n,[]);return(0,r.isArrayEqual)(i,a)}getOwnerKey(e,t,a,r){const n=new Uint8Array(e.length+56);n.set(e,0);n.set(t,e.length);n.set(a,e.length+t.length);const i=calculatePDF20Hash(e,n,a);return new AES256Cipher(i).decryptBlock(r,!1,new Uint8Array(16))}getUserKey(e,t,a){const r=new Uint8Array(e.length+8);r.set(e,0);r.set(t,e.length);const n=calculatePDF20Hash(e,r,[]);return new AES256Cipher(n).decryptBlock(a,!1,new Uint8Array(16))}}}();t.PDF20=l;class CipherTransform{constructor(e,t){this.StringCipherConstructor=e;this.StreamCipherConstructor=t}createStream(e,t){const a=new this.StreamCipherConstructor;return new i.DecryptStream(e,t,(function cipherTransformDecryptStream(e,t){return a.decryptBlock(e,t)}))}decryptString(e){const t=new this.StringCipherConstructor;let a=(0,r.stringToBytes)(e);a=t.decryptBlock(a,!0);return(0,r.bytesToString)(a)}encryptString(e){const t=new this.StringCipherConstructor;if(t instanceof AESBaseCipher){const a=16-e.length%16;e+=String.fromCharCode(a).repeat(a);const n=new Uint8Array(16);if("undefined"!=typeof crypto)crypto.getRandomValues(n);else for(let e=0;e<16;e++)n[e]=Math.floor(256*Math.random());let i=(0,r.stringToBytes)(e);i=t.encrypt(i,n);const s=new Uint8Array(16+i.length);s.set(n);s.set(i,16);return(0,r.bytesToString)(s)}let a=(0,r.stringToBytes)(e);a=t.encrypt(a);return(0,r.bytesToString)(a)}}const h=function CipherTransformFactoryClosure(){const e=new Uint8Array([40,191,78,94,78,117,138,65,100,0,78,86,255,250,1,8,46,46,0,182,208,104,62,128,47,12,169,254,100,83,105,122]);function prepareKeyData(t,a,r,n,i,o,c,l){const h=40+r.length+t.length,u=new Uint8Array(h);let d,f,g=0;if(a){f=Math.min(32,a.length);for(;g>8&255;u[g++]=i>>16&255;u[g++]=i>>>24&255;for(d=0,f=t.length;d=4&&!l){u[g++]=255;u[g++]=255;u[g++]=255;u[g++]=255}let p=s(u,0,g);const m=c>>3;if(o>=3)for(d=0;d<50;++d)p=s(p,0,m);const b=p.subarray(0,m);let y,w;if(o>=3){for(g=0;g<32;++g)u[g]=e[g];for(d=0,f=t.length;d>8&255;n[o++]=e>>16&255;n[o++]=255&t;n[o++]=t>>8&255;if(r){n[o++]=115;n[o++]=65;n[o++]=108;n[o++]=84}return s(n,0,o).subarray(0,Math.min(a.length+5,16))}function buildCipherConstructor(e,t,a,i,s){if(!(t instanceof n.Name))throw new r.FormatError("Invalid crypt filter name.");const o=e.get(t.name);let c;null!=o&&(c=o.get("CFM"));if(!c||"None"===c.name)return function cipherTransformFactoryBuildCipherConstructorNone(){return new NullCipher};if("V2"===c.name)return function cipherTransformFactoryBuildCipherConstructorV2(){return new ARCFourCipher(buildObjectKey(a,i,s,!1))};if("AESV2"===c.name)return function cipherTransformFactoryBuildCipherConstructorAESV2(){return new AES128Cipher(buildObjectKey(a,i,s,!0))};if("AESV3"===c.name)return function cipherTransformFactoryBuildCipherConstructorAESV3(){return new AES256Cipher(s)};throw new r.FormatError("Unknown crypto method")}return class CipherTransformFactory{constructor(a,i,o){const c=a.get("Filter");if(!(0,n.isName)(c,"Standard"))throw new r.FormatError("unknown encryption method");this.filterName=c.name;this.dict=a;const h=a.get("V");if(!Number.isInteger(h)||1!==h&&2!==h&&4!==h&&5!==h)throw new r.FormatError("unsupported encryption algorithm");this.algorithm=h;let u=a.get("Length");if(!u)if(h<=3)u=40;else{const e=a.get("CF"),t=a.get("StmF");if(e instanceof n.Dict&&t instanceof n.Name){e.suppressEncryption=!0;const a=e.get(t.name);u=a&&a.get("Length")||128;u<40&&(u<<=3)}}if(!Number.isInteger(u)||u<40||u%8!=0)throw new r.FormatError("invalid key length");const d=(0,r.stringToBytes)(a.get("O")).subarray(0,32),f=(0,r.stringToBytes)(a.get("U")).subarray(0,32),g=a.get("P"),p=a.get("R"),m=(4===h||5===h)&&!1!==a.get("EncryptMetadata");this.encryptMetadata=m;const b=(0,r.stringToBytes)(i);let y,w;if(o){if(6===p)try{o=(0,r.utf8StringToString)(o)}catch(e){(0,r.warn)("CipherTransformFactory: Unable to convert UTF8 encoded password.")}y=(0,r.stringToBytes)(o)}if(5!==h)w=prepareKeyData(b,y,d,f,g,p,u,m);else{const e=(0,r.stringToBytes)(a.get("O")).subarray(32,40),t=(0,r.stringToBytes)(a.get("O")).subarray(40,48),n=(0,r.stringToBytes)(a.get("U")).subarray(0,48),i=(0,r.stringToBytes)(a.get("U")).subarray(32,40),s=(0,r.stringToBytes)(a.get("U")).subarray(40,48),o=(0,r.stringToBytes)(a.get("OE")),c=(0,r.stringToBytes)(a.get("UE"));(0,r.stringToBytes)(a.get("Perms"));w=function createEncryptionKey20(e,t,a,r,n,i,s,o,c,h,u,d){if(t){const e=Math.min(127,t.length);t=t.subarray(0,e)}else t=[];let f;f=6===e?new l:new PDF17;return f.checkUserPassword(t,o,s)?f.getUserKey(t,c,u):t.length&&f.checkOwnerPassword(t,r,i,a)?f.getOwnerKey(t,n,i,h):null}(p,y,d,e,t,n,f,i,s,o,c)}if(!w&&!o)throw new r.PasswordException("No password given",r.PasswordResponses.NEED_PASSWORD);if(!w&&o){const t=function decodeUserPassword(t,a,r,n){const i=new Uint8Array(32);let o=0;const c=Math.min(32,t.length);for(;o>3;if(r>=3)for(l=0;l<50;++l)h=s(h,0,h.length);let d,f;if(r>=3){f=a;const e=new Uint8Array(u);for(l=19;l>=0;l--){for(let t=0;t=4){const e=a.get("CF");e instanceof n.Dict&&(e.suppressEncryption=!0);this.cf=e;this.stmf=a.get("StmF")||t;this.strf=a.get("StrF")||t;this.eff=a.get("EFF")||this.stmf}}createCipherTransform(e,t){if(4===this.algorithm||5===this.algorithm)return new CipherTransform(buildCipherConstructor(this.cf,this.stmf,e,t,this.encryptionKey),buildCipherConstructor(this.cf,this.strf,e,t,this.encryptionKey));const a=buildObjectKey(e,t,this.encryptionKey,!1),r=function buildCipherCipherConstructor(){return new ARCFourCipher(a)};return new CipherTransform(r,r)}}}();t.CipherTransformFactory=h},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.DecryptStream=void 0;var r=a(29);class DecryptStream extends r.DecodeStream{constructor(e,t,a){super(t);this.str=e;this.dict=e.dict;this.decrypt=a;this.nextChunk=null;this.initialized=!1}readBlock(){let e;if(this.initialized)e=this.nextChunk;else{e=this.str.getBytes(512);this.initialized=!0}if(!e||0===e.length){this.eof=!0;return}this.nextChunk=this.str.getBytes(512);const t=this.nextChunk&&this.nextChunk.length>0;e=(0,this.decrypt)(e,!t);let a=this.bufferLength;const r=e.length,n=this.ensureBuffer(a+r);for(let t=0;t{Object.defineProperty(t,"__esModule",{value:!0});t.XFAFactory=void 0;var r=a(77),n=a(81),i=a(87),s=a(85),o=a(78),c=a(2),l=a(88),h=a(98);class XFAFactory{constructor(e){try{this.root=(new l.XFAParser).parse(XFAFactory._createDocument(e));const t=new n.Binder(this.root);this.form=t.bind();this.dataHandler=new i.DataHandler(this.root,t.getData());this.form[r.$globalData].template=this.form}catch(e){(0,c.warn)(`XFA - an error occurred during parsing and binding: ${e}`)}}isValid(){return this.root&&this.form}_createPagesHelper(){const e=this.form[r.$toPages]();return new Promise(((t,a)=>{const nextIteration=()=>{try{const a=e.next();a.done?t(a.value):setTimeout(nextIteration,0)}catch(e){a(e)}};setTimeout(nextIteration,0)}))}async _createPages(){try{this.pages=await this._createPagesHelper();this.dims=this.pages.children.map((e=>{const{width:t,height:a}=e.attributes.style;return[0,0,parseInt(t),parseInt(a)]}))}catch(e){(0,c.warn)(`XFA - an error occurred during layout: ${e}`)}}getBoundingBox(e){return this.dims[e]}async getNumPages(){this.pages||await this._createPages();return this.dims.length}setImages(e){this.form[r.$globalData].images=e}setFonts(e){this.form[r.$globalData].fontFinder=new s.FontFinder(e);const t=[];for(let e of this.form[r.$globalData].usedTypefaces){e=(0,o.stripQuotes)(e);this.form[r.$globalData].fontFinder.find(e)||t.push(e)}return t.length>0?t:null}appendFonts(e,t){this.form[r.$globalData].fontFinder.add(e,t)}async getPages(){this.pages||await this._createPages();const e=this.pages;this.pages=null;return e}serializeData(e){return this.dataHandler.serialize(e)}static _createDocument(e){return e["/xdp:xdp"]?Object.values(e).join(""):e["xdp:xdp"]}static getRichTextAsHtml(e){if(!e||"string"!=typeof e)return null;try{let t=new l.XFAParser(h.XhtmlNamespace,!0).parse(e);if(!["body","xhtml"].includes(t[r.$nodeName])){const e=h.XhtmlNamespace.body({});e[r.$appendChild](t);t=e}const a=t[r.$toHTML]();if(!a.success)return null;const{html:n}=a,{attributes:i}=n;if(i){i.class&&(i.class=i.class.filter((e=>!e.startsWith("xfa"))));i.dir="auto"}return{html:n,str:t[r.$text]()}}catch(e){(0,c.warn)(`XFA - an error occurred during parsing of rich text: ${e}`)}return null}}t.XFAFactory=XFAFactory},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XmlObject=t.XFAObjectArray=t.XFAObject=t.XFAAttribute=t.StringObject=t.OptionObject=t.Option10=t.Option01=t.IntegerObject=t.ContentObject=t.$uid=t.$toStyle=t.$toString=t.$toPages=t.$toHTML=t.$text=t.$tabIndex=t.$setValue=t.$setSetAttributes=t.$setId=t.$searchNode=t.$root=t.$resolvePrototypes=t.$removeChild=t.$pushPara=t.$pushGlyphs=t.$popPara=t.$onText=t.$onChildCheck=t.$onChild=t.$nsAttributes=t.$nodeName=t.$namespaceId=t.$isUsable=t.$isTransparent=t.$isThereMoreWidth=t.$isSplittable=t.$isNsAgnostic=t.$isDescendent=t.$isDataValue=t.$isCDATAXml=t.$isBindable=t.$insertAt=t.$indexOf=t.$ids=t.$hasSettableValue=t.$globalData=t.$getTemplateRoot=t.$getSubformParent=t.$getRealChildrenByNameIt=t.$getParent=t.$getNextPage=t.$getExtra=t.$getDataValue=t.$getContainedChildren=t.$getChildrenByNameIt=t.$getChildrenByName=t.$getChildrenByClass=t.$getChildren=t.$getAvailableSpace=t.$getAttributes=t.$getAttributeIt=t.$flushHTML=t.$finalize=t.$extra=t.$dump=t.$data=t.$content=t.$consumed=t.$clone=t.$cleanup=t.$cleanPage=t.$clean=t.$childrenToHTML=t.$appendChild=t.$addHTML=t.$acceptWhitespace=void 0;var r=a(78),n=a(2),i=a(8),s=a(79),o=a(80);const c=Symbol();t.$acceptWhitespace=c;const l=Symbol();t.$addHTML=l;const h=Symbol();t.$appendChild=h;const u=Symbol();t.$childrenToHTML=u;const d=Symbol();t.$clean=d;const f=Symbol();t.$cleanPage=f;const g=Symbol();t.$cleanup=g;const p=Symbol();t.$clone=p;const m=Symbol();t.$consumed=m;const b=Symbol("content");t.$content=b;const y=Symbol("data");t.$data=y;const w=Symbol();t.$dump=w;const S=Symbol("extra");t.$extra=S;const x=Symbol();t.$finalize=x;const k=Symbol();t.$flushHTML=k;const C=Symbol();t.$getAttributeIt=C;const v=Symbol();t.$getAttributes=v;const F=Symbol();t.$getAvailableSpace=F;const O=Symbol();t.$getChildrenByClass=O;const T=Symbol();t.$getChildrenByName=T;const M=Symbol();t.$getChildrenByNameIt=M;const E=Symbol();t.$getDataValue=E;const D=Symbol();t.$getExtra=D;const N=Symbol();t.$getRealChildrenByNameIt=N;const L=Symbol();t.$getChildren=L;const R=Symbol();t.$getContainedChildren=R;const j=Symbol();t.$getNextPage=j;const $=Symbol();t.$getSubformParent=$;const _=Symbol();t.$getParent=_;const U=Symbol();t.$getTemplateRoot=U;const X=Symbol();t.$globalData=X;const H=Symbol();t.$hasSettableValue=H;const q=Symbol();t.$ids=q;const z=Symbol();t.$indexOf=z;const W=Symbol();t.$insertAt=W;const G=Symbol();t.$isCDATAXml=G;const V=Symbol();t.$isBindable=V;const K=Symbol();t.$isDataValue=K;const Y=Symbol();t.$isDescendent=Y;const J=Symbol();t.$isNsAgnostic=J;const Z=Symbol();t.$isSplittable=Z;const Q=Symbol();t.$isThereMoreWidth=Q;const ee=Symbol();t.$isTransparent=ee;const te=Symbol();t.$isUsable=te;const ae=Symbol(),re=Symbol("namespaceId");t.$namespaceId=re;const ne=Symbol("nodeName");t.$nodeName=ne;const ie=Symbol();t.$nsAttributes=ie;const se=Symbol();t.$onChild=se;const oe=Symbol();t.$onChildCheck=oe;const ce=Symbol();t.$onText=ce;const le=Symbol();t.$pushGlyphs=le;const he=Symbol();t.$popPara=he;const ue=Symbol();t.$pushPara=ue;const de=Symbol();t.$removeChild=de;const fe=Symbol("root");t.$root=fe;const ge=Symbol();t.$resolvePrototypes=ge;const pe=Symbol();t.$searchNode=pe;const me=Symbol();t.$setId=me;const be=Symbol();t.$setSetAttributes=be;const ye=Symbol();t.$setValue=ye;const we=Symbol();t.$tabIndex=we;const Se=Symbol();t.$text=Se;const xe=Symbol();t.$toPages=xe;const ke=Symbol();t.$toHTML=ke;const Ae=Symbol();t.$toString=Ae;const Ce=Symbol();t.$toStyle=Ce;const ve=Symbol("uid");t.$uid=ve;const Fe=Symbol(),Oe=Symbol(),Te=Symbol(),Ie=Symbol("_children"),Pe=Symbol(),Me=Symbol(),Ee=Symbol(),De=Symbol(),Be=Symbol(),Ne=Symbol(),Le=Symbol(),Re=Symbol(),je=Symbol(),$e=Symbol("parent"),_e=Symbol(),Ue=Symbol(),Xe=Symbol();let He=0;const qe=s.NamespaceIds.datasets.id;class XFAObject{constructor(e,t,a=!1){this[re]=e;this[ne]=t;this[Le]=a;this[$e]=null;this[Ie]=[];this[ve]=`${t}${He++}`;this[X]=null}[se](e){if(!this[Le]||!this[oe](e))return!1;const t=e[ne],a=this[t];if(!(a instanceof XFAObjectArray)){null!==a&&this[de](a);this[t]=e;this[h](e);return!0}if(a.push(e)){this[h](e);return!0}let r="";this.id?r=` (id: ${this.id})`:this.name&&(r=` (name: ${this.name} ${this.h.value})`);(0,n.warn)(`XFA - node "${this[ne]}"${r} has already enough "${t}"!`);return!1}[oe](e){return this.hasOwnProperty(e[ne])&&e[re]===this[re]}[J](){return!1}[c](){return!1}[G](){return!1}[V](){return!1}[he](){this.para&&this[U]()[S].paraStack.pop()}[ue](){this[U]()[S].paraStack.push(this.para)}[me](e){this.id&&this[re]===s.NamespaceIds.template.id&&e.set(this.id,this)}[U](){return this[X].template}[Z](){return!1}[Q](){return!1}[h](e){e[$e]=this;this[Ie].push(e);!e[X]&&this[X]&&(e[X]=this[X])}[de](e){const t=this[Ie].indexOf(e);this[Ie].splice(t,1)}[H](){return this.hasOwnProperty("value")}[ye](e){}[ce](e){}[x](){}[d](e){delete this[Le];if(this[g]){e.clean(this[g]);delete this[g]}}[z](e){return this[Ie].indexOf(e)}[W](e,t){t[$e]=this;this[Ie].splice(e,0,t);!t[X]&&this[X]&&(t[X]=this[X])}[ee](){return!this.name}[ae](){return""}[Se](){return 0===this[Ie].length?this[b]:this[Ie].map((e=>e[Se]())).join("")}get[Te](){const e=Object.getPrototypeOf(this);if(!e._attributes){const t=e._attributes=new Set;for(const e of Object.getOwnPropertyNames(this)){if(null===this[e]||this[e]instanceof XFAObject||this[e]instanceof XFAObjectArray)break;t.add(e)}}return(0,n.shadow)(this,Te,e._attributes)}[Y](e){let t=this;for(;t;){if(t===e)return!0;t=t[_]()}return!1}[_](){return this[$e]}[$](){return this[_]()}[L](e=null){return e?this[e]:this[Ie]}[w](){const e=Object.create(null);this[b]&&(e.$content=this[b]);for(const t of Object.getOwnPropertyNames(this)){const a=this[t];null!==a&&(a instanceof XFAObject?e[t]=a[w]():a instanceof XFAObjectArray?a.isEmpty()||(e[t]=a.dump()):e[t]=a)}return e}[Ce](){return null}[ke](){return r.HTMLResult.EMPTY}*[R](){for(const e of this[L]())yield e}*[De](e,t){for(const a of this[R]())if(!e||t===e.has(a[ne])){const e=this[F](),t=a[ke](e);t.success||(this[S].failingNode=a);yield t}}[k](){return null}[l](e,t){this[S].children.push(e)}[F](){}[u]({filter:e=null,include:t=!0}){if(this[S].generator){const e=this[F](),t=this[S].failingNode[ke](e);if(!t.success)return t;t.html&&this[l](t.html,t.bbox);delete this[S].failingNode}else this[S].generator=this[De](e,t);for(;;){const e=this[S].generator.next();if(e.done)break;const t=e.value;if(!t.success)return t;t.html&&this[l](t.html,t.bbox)}this[S].generator=null;return r.HTMLResult.EMPTY}[be](e){this[Ue]=new Set(Object.keys(e))}[Ne](e){const t=this[Te],a=this[Ue];return[...e].filter((e=>t.has(e)&&!a.has(e)))}[ge](e,t=new Set){for(const a of this[Ie])a[_e](e,t)}[_e](e,t){const a=this[Be](e,t);a?this[Fe](a,e,t):this[ge](e,t)}[Be](e,t){const{use:a,usehref:r}=this;if(!a&&!r)return null;let i=null,s=null,c=null,l=a;if(r){l=r;r.startsWith("#som(")&&r.endsWith(")")?s=r.slice("#som(".length,r.length-1):r.startsWith(".#som(")&&r.endsWith(")")?s=r.slice(".#som(".length,r.length-1):r.startsWith("#")?c=r.slice(1):r.startsWith(".#")&&(c=r.slice(2))}else a.startsWith("#")?c=a.slice(1):s=a;this.use=this.usehref="";if(c)i=e.get(c);else{i=(0,o.searchNode)(e.get(fe),this,s,!0,!1);i&&(i=i[0])}if(!i){(0,n.warn)(`XFA - Invalid prototype reference: ${l}.`);return null}if(i[ne]!==this[ne]){(0,n.warn)(`XFA - Incompatible prototype: ${i[ne]} !== ${this[ne]}.`);return null}if(t.has(i)){(0,n.warn)("XFA - Cycle detected in prototypes use.");return null}t.add(i);const h=i[Be](e,t);h&&i[Fe](h,e,t);i[ge](e,t);t.delete(i);return i}[Fe](e,t,a){if(a.has(e)){(0,n.warn)("XFA - Cycle detected in prototypes use.");return}!this[b]&&e[b]&&(this[b]=e[b]);new Set(a).add(e);for(const t of this[Ne](e[Ue])){this[t]=e[t];this[Ue]&&this[Ue].add(t)}for(const r of Object.getOwnPropertyNames(this)){if(this[Te].has(r))continue;const n=this[r],i=e[r];if(n instanceof XFAObjectArray){for(const e of n[Ie])e[_e](t,a);for(let r=n[Ie].length,s=i[Ie].length;rXFAObject[Pe](e))):"object"==typeof e&&null!==e?Object.assign({},e):e}[p](){const e=Object.create(Object.getPrototypeOf(this));for(const t of Object.getOwnPropertySymbols(this))try{e[t]=this[t]}catch(a){(0,n.shadow)(e,t,this[t])}e[ve]=`${e[ne]}${He++}`;e[Ie]=[];for(const t of Object.getOwnPropertyNames(this)){if(this[Te].has(t)){e[t]=XFAObject[Pe](this[t]);continue}const a=this[t];e[t]=a instanceof XFAObjectArray?new XFAObjectArray(a[Re]):null}for(const t of this[Ie]){const a=t[ne],r=t[p]();e[Ie].push(r);r[$e]=e;null===e[a]?e[a]=r:e[a][Ie].push(r)}return e}[L](e=null){return e?this[Ie].filter((t=>t[ne]===e)):this[Ie]}[O](e){return this[e]}[T](e,t,a=!0){return Array.from(this[M](e,t,a))}*[M](e,t,a=!0){if("parent"!==e){for(const a of this[Ie]){a[ne]===e&&(yield a);a.name===e&&(yield a);(t||a[ee]())&&(yield*a[M](e,t,!1))}a&&this[Te].has(e)&&(yield new XFAAttribute(this,e,this[e]))}else yield this[$e]}}t.XFAObject=XFAObject;class XFAObjectArray{constructor(e=1/0){this[Re]=e;this[Ie]=[]}push(e){if(this[Ie].length<=this[Re]){this[Ie].push(e);return!0}(0,n.warn)(`XFA - node "${e[ne]}" accepts no more than ${this[Re]} children`);return!1}isEmpty(){return 0===this[Ie].length}dump(){return 1===this[Ie].length?this[Ie][0][w]():this[Ie].map((e=>e[w]()))}[p](){const e=new XFAObjectArray(this[Re]);e[Ie]=this[Ie].map((e=>e[p]()));return e}get children(){return this[Ie]}clear(){this[Ie].length=0}}t.XFAObjectArray=XFAObjectArray;class XFAAttribute{constructor(e,t,a){this[$e]=e;this[ne]=t;this[b]=a;this[m]=!1;this[ve]="attribute"+He++}[_](){return this[$e]}[K](){return!0}[E](){return this[b].trim()}[ye](e){e=e.value||"";this[b]=e.toString()}[Se](){return this[b]}[Y](e){return this[$e]===e||this[$e][Y](e)}}t.XFAAttribute=XFAAttribute;class XmlObject extends XFAObject{constructor(e,t,a={}){super(e,t);this[b]="";this[Me]=null;if("#text"!==t){const e=new Map;this[Oe]=e;for(const[t,r]of Object.entries(a))e.set(t,new XFAAttribute(this,t,r));if(a.hasOwnProperty(ie)){const e=a[ie].xfa.dataNode;void 0!==e&&("dataGroup"===e?this[Me]=!1:"dataValue"===e&&(this[Me]=!0))}}this[m]=!1}[Ae](e){const t=this[ne];if("#text"===t){e.push((0,i.encodeToXmlString)(this[b]));return}const a=(0,n.utf8StringToString)(t),r=this[re]===qe?"xfa:":"";e.push(`<${r}${a}`);for(const[t,a]of this[Oe].entries()){const r=(0,n.utf8StringToString)(t);e.push(` ${r}="${(0,i.encodeToXmlString)(a[b])}"`)}null!==this[Me]&&(this[Me]?e.push(' xfa:dataNode="dataValue"'):e.push(' xfa:dataNode="dataGroup"'));if(this[b]||0!==this[Ie].length){e.push(">");if(this[b])"string"==typeof this[b]?e.push((0,i.encodeToXmlString)(this[b])):this[b][Ae](e);else for(const t of this[Ie])t[Ae](e);e.push(``)}else e.push("/>")}[se](e){if(this[b]){const e=new XmlObject(this[re],"#text");this[h](e);e[b]=this[b];this[b]=""}this[h](e);return!0}[ce](e){this[b]+=e}[x](){if(this[b]&&this[Ie].length>0){const e=new XmlObject(this[re],"#text");this[h](e);e[b]=this[b];delete this[b]}}[ke](){return"#text"===this[ne]?r.HTMLResult.success({name:"#text",value:this[b]}):r.HTMLResult.EMPTY}[L](e=null){return e?this[Ie].filter((t=>t[ne]===e)):this[Ie]}[v](){return this[Oe]}[O](e){const t=this[Oe].get(e);return void 0!==t?t:this[L](e)}*[M](e,t){const a=this[Oe].get(e);a&&(yield a);for(const a of this[Ie]){a[ne]===e&&(yield a);t&&(yield*a[M](e,t))}}*[C](e,t){const a=this[Oe].get(e);!a||t&&a[m]||(yield a);for(const a of this[Ie])yield*a[C](e,t)}*[N](e,t,a){for(const r of this[Ie]){r[ne]!==e||a&&r[m]||(yield r);t&&(yield*r[N](e,t,a))}}[K](){return null===this[Me]?0===this[Ie].length||this[Ie][0][re]===s.NamespaceIds.xhtml.id:this[Me]}[E](){return null===this[Me]?0===this[Ie].length?this[b].trim():this[Ie][0][re]===s.NamespaceIds.xhtml.id?this[Ie][0][Se]().trim():null:this[b].trim()}[ye](e){e=e.value||"";this[b]=e.toString()}[w](e=!1){const t=Object.create(null);e&&(t.$ns=this[re]);this[b]&&(t.$content=this[b]);t.$name=this[ne];t.children=[];for(const a of this[Ie])t.children.push(a[w](e));t.attributes=Object.create(null);for(const[e,a]of this[Oe])t.attributes[e]=a[b];return t}}t.XmlObject=XmlObject;class ContentObject extends XFAObject{constructor(e,t){super(e,t);this[b]=""}[ce](e){this[b]+=e}[x](){}}t.ContentObject=ContentObject;t.OptionObject=class OptionObject extends ContentObject{constructor(e,t,a){super(e,t);this[je]=a}[x](){this[b]=(0,r.getKeyword)({data:this[b],defaultValue:this[je][0],validate:e=>this[je].includes(e)})}[d](e){super[d](e);delete this[je]}};t.StringObject=class StringObject extends ContentObject{[x](){this[b]=this[b].trim()}};class IntegerObject extends ContentObject{constructor(e,t,a,r){super(e,t);this[Ee]=a;this[Xe]=r}[x](){this[b]=(0,r.getInteger)({data:this[b],defaultValue:this[Ee],validate:this[Xe]})}[d](e){super[d](e);delete this[Ee];delete this[Xe]}}t.IntegerObject=IntegerObject;t.Option01=class Option01 extends IntegerObject{constructor(e,t){super(e,t,0,(e=>1===e))}};t.Option10=class Option10 extends IntegerObject{constructor(e,t){super(e,t,1,(e=>0===e))}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.HTMLResult=void 0;t.getBBox=function getBBox(e){const t=-1;if(!e)return{x:t,y:t,width:t,height:t};const a=e.trim().split(/\s*,\s*/).map((e=>getMeasurement(e,"-1")));if(a.length<4||a[2]<0||a[3]<0)return{x:t,y:t,width:t,height:t};const[r,n,i,s]=a;return{x:r,y:n,width:i,height:s}};t.getColor=function getColor(e,t=[0,0,0]){let[a,r,n]=t;if(!e)return{r:a,g:r,b:n};const i=e.trim().split(/\s*,\s*/).map((e=>Math.min(Math.max(0,parseInt(e.trim(),10)),255))).map((e=>isNaN(e)?0:e));if(i.length<3)return{r:a,g:r,b:n};[a,r,n]=i;return{r:a,g:r,b:n}};t.getFloat=function getFloat({data:e,defaultValue:t,validate:a}){if(!e)return t;e=e.trim();const r=parseFloat(e);if(!isNaN(r)&&a(r))return r;return t};t.getInteger=function getInteger({data:e,defaultValue:t,validate:a}){if(!e)return t;e=e.trim();const r=parseInt(e,10);if(!isNaN(r)&&a(r))return r;return t};t.getKeyword=getKeyword;t.getMeasurement=getMeasurement;t.getRatio=function getRatio(e){if(!e)return{num:1,den:1};const t=e.trim().split(/\s*:\s*/).map((e=>parseFloat(e))).filter((e=>!isNaN(e)));1===t.length&&t.push(1);if(0===t.length)return{num:1,den:1};const[a,r]=t;return{num:a,den:r}};t.getRelevant=function getRelevant(e){if(!e)return[];return e.trim().split(/\s+/).map((e=>({excluded:"-"===e[0],viewname:e.substring(1)})))};t.getStringOption=function getStringOption(e,t){return getKeyword({data:e,defaultValue:t[0],validate:e=>t.includes(e)})};t.stripQuotes=function stripQuotes(e){if(e.startsWith("'")||e.startsWith('"'))return e.slice(1,e.length-1);return e};var r=a(2);const n={pt:e=>e,cm:e=>e/2.54*72,mm:e=>e/25.4*72,in:e=>72*e,px:e=>e},i=/([+-]?\d+\.?\d*)(.*)/;function getKeyword({data:e,defaultValue:t,validate:a}){return e&&a(e=e.trim())?e:t}function getMeasurement(e,t="0"){t=t||"0";if(!e)return getMeasurement(t);const a=e.trim().match(i);if(!a)return getMeasurement(t);const[,r,s]=a,o=parseFloat(r);if(isNaN(o))return getMeasurement(t);if(0===o)return 0;const c=n[s];return c?c(o):o}class HTMLResult{static get FAILURE(){return(0,r.shadow)(this,"FAILURE",new HTMLResult(!1,null,null,null))}static get EMPTY(){return(0,r.shadow)(this,"EMPTY",new HTMLResult(!0,null,null,null))}constructor(e,t,a,r){this.success=e;this.html=t;this.bbox=a;this.breakNode=r}isBreak(){return!!this.breakNode}static breakNode(e){return new HTMLResult(!1,null,null,e)}static success(e,t=null){return new HTMLResult(!0,e,t,null)}}t.HTMLResult=HTMLResult},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.NamespaceIds=t.$buildXFAObject=void 0;const a=Symbol();t.$buildXFAObject=a;t.NamespaceIds={config:{id:0,check:e=>e.startsWith("http://www.xfa.org/schema/xci/")},connectionSet:{id:1,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-connection-set/")},datasets:{id:2,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-data/")},form:{id:3,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-form/")},localeSet:{id:4,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-locale-set/")},pdf:{id:5,check:e=>"http://ns.adobe.com/xdp/pdf/"===e},signature:{id:6,check:e=>"http://www.w3.org/2000/09/xmldsig#"===e},sourceSet:{id:7,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-source-set/")},stylesheet:{id:8,check:e=>"http://www.w3.org/1999/XSL/Transform"===e},template:{id:9,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-template/")},xdc:{id:10,check:e=>e.startsWith("http://www.xfa.org/schema/xdc/")},xdp:{id:11,check:e=>"http://ns.adobe.com/xdp/"===e},xfdf:{id:12,check:e=>"http://ns.adobe.com/xfdf/"===e},xhtml:{id:13,check:e=>"http://www.w3.org/1999/xhtml"===e},xmpmeta:{id:14,check:e=>"http://ns.adobe.com/xmpmeta/"===e}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.createDataNode=function createDataNode(e,t,a){const n=parseExpression(a);if(!n)return null;if(n.some((e=>e.operator===l)))return null;const s=f.get(n[0].name);let o=0;if(s){e=s(e,t);o=1}else e=t||e;for(let t=n.length;o0&&p.push(e)}if(0!==p.length||u||0!==d)e=isFinite(f)?p.filter((e=>fe[f])):p.reduce(((e,t)=>e.concat(t)),[]);else{const a=t[r.$getParent]();if(!(t=a))return null;d=-1;e=[t]}}if(0===e.length)return null;return e};var r=a(77),n=a(79),i=a(2);const s=/^[^.[]+/,o=/^[^\]]+/,c=0,l=1,h=2,u=3,d=4,f=new Map([["$data",(e,t)=>e.datasets?e.datasets.data:e],["$record",(e,t)=>(e.datasets?e.datasets.data:e)[r.$getChildren]()[0]],["$template",(e,t)=>e.template],["$connectionSet",(e,t)=>e.connectionSet],["$form",(e,t)=>e.form],["$layout",(e,t)=>e.layout],["$host",(e,t)=>e.host],["$dataWindow",(e,t)=>e.dataWindow],["$event",(e,t)=>e.event],["!",(e,t)=>e.datasets],["$xfa",(e,t)=>e],["xfa",(e,t)=>e],["$",(e,t)=>t]]),g=new WeakMap,p=n.NamespaceIds.datasets.id;function parseExpression(e,t,a=!0){let r=e.match(s);if(!r)return null;let[n]=r;const f=[{name:n,cacheName:"."+n,index:0,js:null,formCalc:null,operator:c}];let g=n.length;for(;g{Object.defineProperty(t,"__esModule",{value:!0});t.Binder=void 0;var r=a(77),n=a(82),i=a(80),s=a(79),o=a(2);const c=s.NamespaceIds.datasets.id;function createText(e){const t=new n.Text({});t[r.$content]=e;return t}t.Binder=class Binder{constructor(e){this.root=e;this.datasets=e.datasets;e.datasets&&e.datasets.data?this.data=e.datasets.data:this.data=new r.XmlObject(s.NamespaceIds.datasets.id,"data");this.emptyMerge=0===this.data[r.$getChildren]().length;this.root.form=this.form=e.template[r.$clone]()}_isConsumeData(){return!this.emptyMerge&&this._mergeMode}_isMatchTemplate(){return!this._isConsumeData()}bind(){this._bindElement(this.form,this.data);return this.form}getData(){return this.data}_bindValue(e,t,a){e[r.$data]=t;if(e[r.$hasSettableValue]())if(t[r.$isDataValue]()){const a=t[r.$getDataValue]();e[r.$setValue](createText(a))}else if(e instanceof n.Field&&e.ui&&e.ui.choiceList&&"multiSelect"===e.ui.choiceList.open){const a=t[r.$getChildren]().map((e=>e[r.$content].trim())).join("\n");e[r.$setValue](createText(a))}else this._isConsumeData()&&(0,o.warn)("XFA - Nodes haven't the same type.");else!t[r.$isDataValue]()||this._isMatchTemplate()?this._bindElement(e,t):(0,o.warn)("XFA - Nodes haven't the same type.")}_findDataByNameToConsume(e,t,a,n){if(!e)return null;let i,o;for(let n=0;n<3;n++){i=a[r.$getRealChildrenByNameIt](e,!1,!0);for(;;){o=i.next().value;if(!o)break;if(t===o[r.$isDataValue]())return o}if(a[r.$namespaceId]===s.NamespaceIds.datasets.id&&"data"===a[r.$nodeName])break;a=a[r.$getParent]()}if(!n)return null;i=this.data[r.$getRealChildrenByNameIt](e,!0,!1);o=i.next().value;if(o)return o;i=this.data[r.$getAttributeIt](e,!0);o=i.next().value;return o&&o[r.$isDataValue]()?o:null}_setProperties(e,t){if(e.hasOwnProperty("setProperty"))for(const{ref:a,target:s,connection:c}of e.setProperty.children){if(c)continue;if(!a)continue;const l=(0,i.searchNode)(this.root,t,a,!1,!1);if(!l){(0,o.warn)(`XFA - Invalid reference: ${a}.`);continue}const[h]=l;if(!h[r.$isDescendent](this.data)){(0,o.warn)("XFA - Invalid node: must be a data node.");continue}const u=(0,i.searchNode)(this.root,e,s,!1,!1);if(!u){(0,o.warn)(`XFA - Invalid target: ${s}.`);continue}const[d]=u;if(!d[r.$isDescendent](e)){(0,o.warn)("XFA - Invalid target: must be a property or subproperty.");continue}const f=d[r.$getParent]();if(d instanceof n.SetProperty||f instanceof n.SetProperty){(0,o.warn)("XFA - Invalid target: cannot be a setProperty or one of its properties.");continue}if(d instanceof n.BindItems||f instanceof n.BindItems){(0,o.warn)("XFA - Invalid target: cannot be a bindItems or one of its properties.");continue}const g=h[r.$text](),p=d[r.$nodeName];if(d instanceof r.XFAAttribute){const e=Object.create(null);e[p]=g;const t=Reflect.construct(Object.getPrototypeOf(f).constructor,[e]);f[p]=t[p]}else if(d.hasOwnProperty(r.$content)){d[r.$data]=h;d[r.$content]=g;d[r.$finalize]()}else(0,o.warn)("XFA - Invalid node to use in setProperty")}}_bindItems(e,t){if(!e.hasOwnProperty("items")||!e.hasOwnProperty("bindItems")||e.bindItems.isEmpty())return;for(const t of e.items.children)e[r.$removeChild](t);e.items.clear();const a=new n.Items({}),s=new n.Items({});e[r.$appendChild](a);e.items.push(a);e[r.$appendChild](s);e.items.push(s);for(const{ref:n,labelRef:c,valueRef:l,connection:h}of e.bindItems.children){if(h)continue;if(!n)continue;const e=(0,i.searchNode)(this.root,t,n,!1,!1);if(e)for(const t of e){if(!t[r.$isDescendent](this.datasets)){(0,o.warn)(`XFA - Invalid ref (${n}): must be a datasets child.`);continue}const e=(0,i.searchNode)(this.root,t,c,!0,!1);if(!e){(0,o.warn)(`XFA - Invalid label: ${c}.`);continue}const[h]=e;if(!h[r.$isDescendent](this.datasets)){(0,o.warn)("XFA - Invalid label: must be a datasets child.");continue}const u=(0,i.searchNode)(this.root,t,l,!0,!1);if(!u){(0,o.warn)(`XFA - Invalid value: ${l}.`);continue}const[d]=u;if(!d[r.$isDescendent](this.datasets)){(0,o.warn)("XFA - Invalid value: must be a datasets child.");continue}const f=createText(h[r.$text]()),g=createText(d[r.$text]());a[r.$appendChild](f);a.text.push(f);s[r.$appendChild](g);s.text.push(g)}else(0,o.warn)(`XFA - Invalid reference: ${n}.`)}}_bindOccurrences(e,t,a){let n;if(t.length>1){n=e[r.$clone]();n[r.$removeChild](n.occur);n.occur=null}this._bindValue(e,t[0],a);this._setProperties(e,t[0]);this._bindItems(e,t[0]);if(1===t.length)return;const i=e[r.$getParent](),s=e[r.$nodeName],o=i[r.$indexOf](e);for(let e=1,c=t.length;et.name===e.name)).length:a[n].children.length;const s=a[r.$indexOf](e)+1,o=t.initial-i;if(o){const t=e[r.$clone]();t[r.$removeChild](t.occur);t.occur=null;a[n].push(t);a[r.$insertAt](s,t);for(let e=1;e0)this._bindOccurrences(n,[e[0]],null);else if(this.emptyMerge){const e=t[r.$namespaceId]===c?-1:t[r.$namespaceId],a=n[r.$data]=new r.XmlObject(e,n.name||"root");t[r.$appendChild](a);this._bindElement(n,a)}continue}if(!n[r.$isBindable]())continue;let e=!1,s=null,l=null,h=null;if(n.bind){switch(n.bind.match){case"none":this._setAndBind(n,t);continue;case"global":e=!0;break;case"dataRef":if(!n.bind.ref){(0,o.warn)(`XFA - ref is empty in node ${n[r.$nodeName]}.`);this._setAndBind(n,t);continue}l=n.bind.ref}n.bind.picture&&(s=n.bind.picture[r.$content])}const[u,d]=this._getOccurInfo(n);if(l){h=(0,i.searchNode)(this.root,t,l,!0,!1);if(null===h){h=(0,i.createDataNode)(this.data,t,l);if(!h)continue;this._isConsumeData()&&(h[r.$consumed]=!0);this._setAndBind(n,h);continue}this._isConsumeData()&&(h=h.filter((e=>!e[r.$consumed])));h.length>d?h=h.slice(0,d):0===h.length&&(h=null);h&&this._isConsumeData()&&h.forEach((e=>{e[r.$consumed]=!0}))}else{if(!n.name){this._setAndBind(n,t);continue}if(this._isConsumeData()){const a=[];for(;a.length0?a:null}else{h=t[r.$getRealChildrenByNameIt](n.name,!1,this.emptyMerge).next().value;if(!h){if(0===u){a.push(n);continue}const e=t[r.$namespaceId]===c?-1:t[r.$namespaceId];h=n[r.$data]=new r.XmlObject(e,n.name);this.emptyMerge&&(h[r.$consumed]=!0);t[r.$appendChild](h);this._setAndBind(n,h);continue}this.emptyMerge&&(h[r.$consumed]=!0);h=[h]}}h?this._bindOccurrences(n,h,s):u>0?this._setAndBind(n,t):a.push(n)}a.forEach((e=>e[r.$getParent]()[r.$removeChild](e)))}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Value=t.Text=t.TemplateNamespace=t.Template=t.SetProperty=t.Items=t.Field=t.BindItems=void 0;var r=a(77),n=a(79),i=a(83),s=a(84),o=a(78),c=a(2),l=a(85),h=a(8),u=a(80);const d=n.NamespaceIds.template.id,f="http://www.w3.org/2000/svg",g=/^H(\d+)$/,p=new Set(["image/gif","image/jpeg","image/jpg","image/pjpeg","image/png","image/apng","image/x-png","image/bmp","image/x-ms-bmp","image/tiff","image/tif","application/octet-stream"]),m=[[[66,77],"image/bmp"],[[255,216,255],"image/jpeg"],[[73,73,42,0],"image/tiff"],[[77,77,0,42],"image/tiff"],[[71,73,70,56,57,97],"image/gif"],[[137,80,78,71,13,10,26,10],"image/png"]];function getBorderDims(e){if(!e||!e.border)return{w:0,h:0};const t=e.border[r.$getExtra]();return t?{w:t.widths[0]+t.widths[2]+t.insets[0]+t.insets[2],h:t.widths[1]+t.widths[3]+t.insets[1]+t.insets[3]}:{w:0,h:0}}function hasMargin(e){return e.margin&&(e.margin.topInset||e.margin.rightInset||e.margin.bottomInset||e.margin.leftInset)}function _setValue(e,t){if(!e.value){const t=new Value({});e[r.$appendChild](t);e.value=t}e.value[r.$setValue](t)}function*getContainedChildren(e){for(const t of e[r.$getChildren]())t instanceof SubformSet?yield*t[r.$getContainedChildren]():yield t}function setTabIndex(e){for(;e;){if(!e.traversal){e[r.$tabIndex]=e[r.$getParent]()[r.$tabIndex];return}if(e[r.$tabIndex])return;let t=null;for(const a of e.traversal[r.$getChildren]())if("next"===a.operation){t=a;break}if(!t||!t.ref){e[r.$tabIndex]=e[r.$getParent]()[r.$tabIndex];return}const a=e[r.$getTemplateRoot]();e[r.$tabIndex]=++a[r.$tabIndex];const n=a[r.$searchNode](t.ref,e);if(!n)return;e=n[0]}}function applyAssist(e,t){const a=e.assist;if(a){const e=a[r.$toHTML]();e&&(t.title=e);const n=a.role.match(g);if(n){const e="heading",a=n[1];t.role=e;t["aria-level"]=a}}if("table"===e.layout)t.role="table";else if("row"===e.layout)t.role="row";else{const a=e[r.$getParent]();"row"===a.layout&&(a.assist&&"TH"===a.assist.role?t.role="columnheader":t.role="cell")}}function ariaLabel(e){if(!e.assist)return null;const t=e.assist;return t.speak&&""!==t.speak[r.$content]?t.speak[r.$content]:t.toolTip?t.toolTip[r.$content]:null}function valueToHtml(e){return o.HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:Object.create(null)},children:[{name:"span",attributes:{style:Object.create(null)},value:e}]})}function setFirstUnsplittable(e){const t=e[r.$getTemplateRoot]();if(null===t[r.$extra].firstUnsplittable){t[r.$extra].firstUnsplittable=e;t[r.$extra].noLayoutFailure=!0}}function unsetFirstUnsplittable(e){const t=e[r.$getTemplateRoot]();t[r.$extra].firstUnsplittable===e&&(t[r.$extra].noLayoutFailure=!1)}function handleBreak(e){if(e[r.$extra])return!1;e[r.$extra]=Object.create(null);if("auto"===e.targetType)return!1;const t=e[r.$getTemplateRoot]();let a=null;if(e.target){a=t[r.$searchNode](e.target,e[r.$getParent]());if(!a)return!1;a=a[0]}const{currentPageArea:n,currentContentArea:i}=t[r.$extra];if("pageArea"===e.targetType){a instanceof PageArea||(a=null);if(e.startNew){e[r.$extra].target=a||n;return!0}if(a&&a!==n){e[r.$extra].target=a;return!0}return!1}a instanceof ContentArea||(a=null);const s=a&&a[r.$getParent]();let o,c=s;if(e.startNew)if(a){const e=s.contentArea.children,t=e.indexOf(i),r=e.indexOf(a);-1!==t&&te;n[r.$extra].noLayoutFailure=!0;const o=t[r.$toHTML](a);e[r.$addHTML](o.html,o.bbox);n[r.$extra].noLayoutFailure=i;t[r.$getSubformParent]=s}class AppearanceFilter extends r.StringObject{constructor(e){super(d,"appearanceFilter");this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||""}}class Arc extends r.XFAObject{constructor(e){super(d,"arc",!0);this.circular=(0,o.getInteger)({data:e.circular,defaultValue:0,validate:e=>1===e});this.hand=(0,o.getStringOption)(e.hand,["even","left","right"]);this.id=e.id||"";this.startAngle=(0,o.getFloat)({data:e.startAngle,defaultValue:0,validate:e=>!0});this.sweepAngle=(0,o.getFloat)({data:e.sweepAngle,defaultValue:360,validate:e=>!0});this.use=e.use||"";this.usehref=e.usehref||"";this.edge=null;this.fill=null}[r.$toHTML](){const e=this.edge?this.edge:new Edge({}),t=e[r.$toStyle](),a=Object.create(null);this.fill&&"visible"===this.fill.presence?Object.assign(a,this.fill[r.$toStyle]()):a.fill="transparent";a.strokeWidth=(0,s.measureToString)("visible"===e.presence?e.thickness:0);a.stroke=t.color;let n;const i={xmlns:f,style:{width:"100%",height:"100%",overflow:"visible"}};if(360===this.sweepAngle)n={name:"ellipse",attributes:{xmlns:f,cx:"50%",cy:"50%",rx:"50%",ry:"50%",style:a}};else{const e=this.startAngle*Math.PI/180,t=this.sweepAngle*Math.PI/180,r=this.sweepAngle>180?1:0,[s,o,c,l]=[50*(1+Math.cos(e)),50*(1-Math.sin(e)),50*(1+Math.cos(e+t)),50*(1-Math.sin(e+t))];n={name:"path",attributes:{xmlns:f,d:`M ${s} ${o} A 50 50 0 ${r} 0 ${c} ${l}`,vectorEffect:"non-scaling-stroke",style:a}};Object.assign(i,{viewBox:"0 0 100 100",preserveAspectRatio:"none"})}const c={name:"svg",children:[n],attributes:i};if(hasMargin(this[r.$getParent]()[r.$getParent]()))return o.HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[c]});c.attributes.style.position="absolute";return o.HTMLResult.success(c)}}class Area extends r.XFAObject{constructor(e){super(d,"area",!0);this.colSpan=(0,o.getInteger)({data:e.colSpan,defaultValue:1,validate:e=>e>=1||-1===e});this.id=e.id||"";this.name=e.name||"";this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.x=(0,o.getMeasurement)(e.x,"0pt");this.y=(0,o.getMeasurement)(e.y,"0pt");this.desc=null;this.extras=null;this.area=new r.XFAObjectArray;this.draw=new r.XFAObjectArray;this.exObject=new r.XFAObjectArray;this.exclGroup=new r.XFAObjectArray;this.field=new r.XFAObjectArray;this.subform=new r.XFAObjectArray;this.subformSet=new r.XFAObjectArray}*[r.$getContainedChildren](){yield*getContainedChildren(this)}[r.$isTransparent](){return!0}[r.$isBindable](){return!0}[r.$addHTML](e,t){const[a,n,i,s]=t;this[r.$extra].width=Math.max(this[r.$extra].width,a+i);this[r.$extra].height=Math.max(this[r.$extra].height,n+s);this[r.$extra].children.push(e)}[r.$getAvailableSpace](){return this[r.$extra].availableSpace}[r.$toHTML](e){const t=(0,s.toStyle)(this,"position"),a={style:t,id:this[r.$uid],class:["xfaArea"]};(0,s.isPrintOnly)(this)&&a.class.push("xfaPrintOnly");this.name&&(a.xfaName=this.name);const n=[];this[r.$extra]={children:n,width:0,height:0,availableSpace:e};const i=this[r.$childrenToHTML]({filter:new Set(["area","draw","field","exclGroup","subform","subformSet"]),include:!0});if(!i.success){if(i.isBreak())return i;delete this[r.$extra];return o.HTMLResult.FAILURE}t.width=(0,s.measureToString)(this[r.$extra].width);t.height=(0,s.measureToString)(this[r.$extra].height);const c={name:"div",attributes:a,children:n},l=[this.x,this.y,this[r.$extra].width,this[r.$extra].height];delete this[r.$extra];return o.HTMLResult.success(c,l)}}class Assist extends r.XFAObject{constructor(e){super(d,"assist",!0);this.id=e.id||"";this.role=e.role||"";this.use=e.use||"";this.usehref=e.usehref||"";this.speak=null;this.toolTip=null}[r.$toHTML](){return this.toolTip&&this.toolTip[r.$content]?this.toolTip[r.$content]:null}}class Barcode extends r.XFAObject{constructor(e){super(d,"barcode",!0);this.charEncoding=(0,o.getKeyword)({data:e.charEncoding?e.charEncoding.toLowerCase():"",defaultValue:"",validate:e=>["utf-8","big-five","fontspecific","gbk","gb-18030","gb-2312","ksc-5601","none","shift-jis","ucs-2","utf-16"].includes(e)||e.match(/iso-8859-\d{2}/)});this.checksum=(0,o.getStringOption)(e.checksum,["none","1mod10","1mod10_1mod11","2mod10","auto"]);this.dataColumnCount=(0,o.getInteger)({data:e.dataColumnCount,defaultValue:-1,validate:e=>e>=0});this.dataLength=(0,o.getInteger)({data:e.dataLength,defaultValue:-1,validate:e=>e>=0});this.dataPrep=(0,o.getStringOption)(e.dataPrep,["none","flateCompress"]);this.dataRowCount=(0,o.getInteger)({data:e.dataRowCount,defaultValue:-1,validate:e=>e>=0});this.endChar=e.endChar||"";this.errorCorrectionLevel=(0,o.getInteger)({data:e.errorCorrectionLevel,defaultValue:-1,validate:e=>e>=0&&e<=8});this.id=e.id||"";this.moduleHeight=(0,o.getMeasurement)(e.moduleHeight,"5mm");this.moduleWidth=(0,o.getMeasurement)(e.moduleWidth,"0.25mm");this.printCheckDigit=(0,o.getInteger)({data:e.printCheckDigit,defaultValue:0,validate:e=>1===e});this.rowColumnRatio=(0,o.getRatio)(e.rowColumnRatio);this.startChar=e.startChar||"";this.textLocation=(0,o.getStringOption)(e.textLocation,["below","above","aboveEmbedded","belowEmbedded","none"]);this.truncate=(0,o.getInteger)({data:e.truncate,defaultValue:0,validate:e=>1===e});this.type=(0,o.getStringOption)(e.type?e.type.toLowerCase():"",["aztec","codabar","code2of5industrial","code2of5interleaved","code2of5matrix","code2of5standard","code3of9","code3of9extended","code11","code49","code93","code128","code128a","code128b","code128c","code128sscc","datamatrix","ean8","ean8add2","ean8add5","ean13","ean13add2","ean13add5","ean13pwcd","fim","logmars","maxicode","msi","pdf417","pdf417macro","plessey","postauscust2","postauscust3","postausreplypaid","postausstandard","postukrm4scc","postusdpbc","postusimb","postusstandard","postus5zip","qrcode","rfid","rss14","rss14expanded","rss14limited","rss14stacked","rss14stackedomni","rss14truncated","telepen","ucc128","ucc128random","ucc128sscc","upca","upcaadd2","upcaadd5","upcapwcd","upce","upceadd2","upceadd5","upcean2","upcean5","upsmaxicode"]);this.upsMode=(0,o.getStringOption)(e.upsMode,["usCarrier","internationalCarrier","secureSymbol","standardSymbol"]);this.use=e.use||"";this.usehref=e.usehref||"";this.wideNarrowRatio=(0,o.getRatio)(e.wideNarrowRatio);this.encrypt=null;this.extras=null}}class Bind extends r.XFAObject{constructor(e){super(d,"bind",!0);this.match=(0,o.getStringOption)(e.match,["once","dataRef","global","none"]);this.ref=e.ref||"";this.picture=null}}class BindItems extends r.XFAObject{constructor(e){super(d,"bindItems");this.connection=e.connection||"";this.labelRef=e.labelRef||"";this.ref=e.ref||"";this.valueRef=e.valueRef||""}}t.BindItems=BindItems;class Bookend extends r.XFAObject{constructor(e){super(d,"bookend");this.id=e.id||"";this.leader=e.leader||"";this.trailer=e.trailer||"";this.use=e.use||"";this.usehref=e.usehref||""}}class BooleanElement extends r.Option01{constructor(e){super(d,"boolean");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$toHTML](e){return valueToHtml(1===this[r.$content]?"1":"0")}}class Border extends r.XFAObject{constructor(e){super(d,"border",!0);this.break=(0,o.getStringOption)(e.break,["close","open"]);this.hand=(0,o.getStringOption)(e.hand,["even","left","right"]);this.id=e.id||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.corner=new r.XFAObjectArray(4);this.edge=new r.XFAObjectArray(4);this.extras=null;this.fill=null;this.margin=null}[r.$getExtra](){if(!this[r.$extra]){const e=this.edge.children.slice();if(e.length<4){const t=e[e.length-1]||new Edge({});for(let a=e.length;a<4;a++)e.push(t)}const t=e.map((e=>e.thickness)),a=[0,0,0,0];if(this.margin){a[0]=this.margin.topInset;a[1]=this.margin.rightInset;a[2]=this.margin.bottomInset;a[3]=this.margin.leftInset}this[r.$extra]={widths:t,insets:a,edges:e}}return this[r.$extra]}[r.$toStyle](){const{edges:e}=this[r.$getExtra](),t=e.map((e=>{const t=e[r.$toStyle]();t.color=t.color||"#000000";return t})),a=Object.create(null);this.margin&&Object.assign(a,this.margin[r.$toStyle]());this.fill&&"visible"===this.fill.presence&&Object.assign(a,this.fill[r.$toStyle]());if(this.corner.children.some((e=>0!==e.radius))){const e=this.corner.children.map((e=>e[r.$toStyle]()));if(2===e.length||3===e.length){const t=e[e.length-1];for(let a=e.length;a<4;a++)e.push(t)}a.borderRadius=e.map((e=>e.radius)).join(" ")}switch(this.presence){case"invisible":case"hidden":a.borderStyle="";break;case"inactive":a.borderStyle="none";break;default:a.borderStyle=t.map((e=>e.style)).join(" ")}a.borderWidth=t.map((e=>e.width)).join(" ");a.borderColor=t.map((e=>e.color)).join(" ");return a}}class Break extends r.XFAObject{constructor(e){super(d,"break",!0);this.after=(0,o.getStringOption)(e.after,["auto","contentArea","pageArea","pageEven","pageOdd"]);this.afterTarget=e.afterTarget||"";this.before=(0,o.getStringOption)(e.before,["auto","contentArea","pageArea","pageEven","pageOdd"]);this.beforeTarget=e.beforeTarget||"";this.bookendLeader=e.bookendLeader||"";this.bookendTrailer=e.bookendTrailer||"";this.id=e.id||"";this.overflowLeader=e.overflowLeader||"";this.overflowTarget=e.overflowTarget||"";this.overflowTrailer=e.overflowTrailer||"";this.startNew=(0,o.getInteger)({data:e.startNew,defaultValue:0,validate:e=>1===e});this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}}class BreakAfter extends r.XFAObject{constructor(e){super(d,"breakAfter",!0);this.id=e.id||"";this.leader=e.leader||"";this.startNew=(0,o.getInteger)({data:e.startNew,defaultValue:0,validate:e=>1===e});this.target=e.target||"";this.targetType=(0,o.getStringOption)(e.targetType,["auto","contentArea","pageArea"]);this.trailer=e.trailer||"";this.use=e.use||"";this.usehref=e.usehref||"";this.script=null}}class BreakBefore extends r.XFAObject{constructor(e){super(d,"breakBefore",!0);this.id=e.id||"";this.leader=e.leader||"";this.startNew=(0,o.getInteger)({data:e.startNew,defaultValue:0,validate:e=>1===e});this.target=e.target||"";this.targetType=(0,o.getStringOption)(e.targetType,["auto","contentArea","pageArea"]);this.trailer=e.trailer||"";this.use=e.use||"";this.usehref=e.usehref||"";this.script=null}[r.$toHTML](e){this[r.$extra]={};return o.HTMLResult.FAILURE}}class Button extends r.XFAObject{constructor(e){super(d,"button",!0);this.highlight=(0,o.getStringOption)(e.highlight,["inverted","none","outline","push"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}[r.$toHTML](e){const t=this[r.$getParent]()[r.$getParent](),a={name:"button",attributes:{id:this[r.$uid],class:["xfaButton"],style:{}},children:[]};for(const e of t.event.children){if("click"!==e.activity||!e.script)continue;const t=(0,h.recoverJsURL)(e.script[r.$content]);if(!t)continue;const n=(0,s.fixURL)(t.url);n&&a.children.push({name:"a",attributes:{id:"link"+this[r.$uid],href:n,newWindow:t.newWindow,class:["xfaLink"],style:{}},children:[]})}return o.HTMLResult.success(a)}}class Calculate extends r.XFAObject{constructor(e){super(d,"calculate",!0);this.id=e.id||"";this.override=(0,o.getStringOption)(e.override,["disabled","error","ignore","warning"]);this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.message=null;this.script=null}}class Caption extends r.XFAObject{constructor(e){super(d,"caption",!0);this.id=e.id||"";this.placement=(0,o.getStringOption)(e.placement,["left","bottom","inline","right","top"]);this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.reserve=Math.ceil((0,o.getMeasurement)(e.reserve));this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.font=null;this.margin=null;this.para=null;this.value=null}[r.$setValue](e){_setValue(this,e)}[r.$getExtra](e){if(!this[r.$extra]){let{width:t,height:a}=e;switch(this.placement){case"left":case"right":case"inline":t=this.reserve<=0?t:this.reserve;break;case"top":case"bottom":a=this.reserve<=0?a:this.reserve}this[r.$extra]=(0,s.layoutNode)(this,{width:t,height:a})}return this[r.$extra]}[r.$toHTML](e){if(!this.value)return o.HTMLResult.EMPTY;this[r.$pushPara]();const t=this.value[r.$toHTML](e).html;if(!t){this[r.$popPara]();return o.HTMLResult.EMPTY}const a=this.reserve;if(this.reserve<=0){const{w:t,h:a}=this[r.$getExtra](e);switch(this.placement){case"left":case"right":case"inline":this.reserve=t;break;case"top":case"bottom":this.reserve=a}}const n=[];"string"==typeof t?n.push({name:"#text",value:t}):n.push(t);const i=(0,s.toStyle)(this,"font","margin","visibility");switch(this.placement){case"left":case"right":this.reserve>0&&(i.width=(0,s.measureToString)(this.reserve));break;case"top":case"bottom":this.reserve>0&&(i.height=(0,s.measureToString)(this.reserve))}(0,s.setPara)(this,null,t);this[r.$popPara]();this.reserve=a;return o.HTMLResult.success({name:"div",attributes:{style:i,class:["xfaCaption"]},children:n})}}class Certificate extends r.StringObject{constructor(e){super(d,"certificate");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Certificates extends r.XFAObject{constructor(e){super(d,"certificates",!0);this.credentialServerPolicy=(0,o.getStringOption)(e.credentialServerPolicy,["optional","required"]);this.id=e.id||"";this.url=e.url||"";this.urlPolicy=e.urlPolicy||"";this.use=e.use||"";this.usehref=e.usehref||"";this.encryption=null;this.issuers=null;this.keyUsage=null;this.oids=null;this.signing=null;this.subjectDNs=null}}class CheckButton extends r.XFAObject{constructor(e){super(d,"checkButton",!0);this.id=e.id||"";this.mark=(0,o.getStringOption)(e.mark,["default","check","circle","cross","diamond","square","star"]);this.shape=(0,o.getStringOption)(e.shape,["square","round"]);this.size=(0,o.getMeasurement)(e.size,"10pt");this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.extras=null;this.margin=null}[r.$toHTML](e){const t=(0,s.toStyle)("margin"),a=(0,s.measureToString)(this.size);t.width=t.height=a;let n,i,c;const l=this[r.$getParent]()[r.$getParent](),h=l.items.children.length&&l.items.children[0][r.$toHTML]().html||[],u={on:(void 0!==h[0]?h[0]:"on").toString(),off:(void 0!==h[1]?h[1]:"off").toString()},d=(l.value&&l.value[r.$text]()||"off")===u.on||void 0,f=l[r.$getSubformParent](),g=l[r.$uid];let p;if(f instanceof ExclGroup){c=f[r.$uid];n="radio";i="xfaRadio";p=f[r.$data]&&f[r.$data][r.$uid]||f[r.$uid]}else{n="checkbox";i="xfaCheckbox";p=l[r.$data]&&l[r.$data][r.$uid]||l[r.$uid]}const m={name:"input",attributes:{class:[i],style:t,fieldId:g,dataId:p,type:n,checked:d,xfaOn:u.on,xfaOff:u.off,"aria-label":ariaLabel(l)}};c&&(m.attributes.name=c);return o.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[m]})}}class ChoiceList extends r.XFAObject{constructor(e){super(d,"choiceList",!0);this.commitOn=(0,o.getStringOption)(e.commitOn,["select","exit"]);this.id=e.id||"";this.open=(0,o.getStringOption)(e.open,["userControl","always","multiSelect","onEntry"]);this.textEntry=(0,o.getInteger)({data:e.textEntry,defaultValue:0,validate:e=>1===e});this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.extras=null;this.margin=null}[r.$toHTML](e){const t=(0,s.toStyle)(this,"border","margin"),a=this[r.$getParent]()[r.$getParent](),n={fontSize:`calc(${a.font&&a.font.size||10}px * var(--zoom-factor))`},i=[];if(a.items.children.length>0){const e=a.items;let t=0,s=0;if(2===e.children.length){t=e.children[0].save;s=1-t}const o=e.children[t][r.$toHTML]().html,c=e.children[s][r.$toHTML]().html;let l=!1;const h=a.value&&a.value[r.$text]()||"";for(let e=0,t=o.length;ee>=0});this.use=e.use||"";this.usehref=e.usehref||""}}class Connect extends r.XFAObject{constructor(e){super(d,"connect",!0);this.connection=e.connection||"";this.id=e.id||"";this.ref=e.ref||"";this.usage=(0,o.getStringOption)(e.usage,["exportAndImport","exportOnly","importOnly"]);this.use=e.use||"";this.usehref=e.usehref||"";this.picture=null}}class ContentArea extends r.XFAObject{constructor(e){super(d,"contentArea",!0);this.h=(0,o.getMeasurement)(e.h);this.id=e.id||"";this.name=e.name||"";this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.w=(0,o.getMeasurement)(e.w);this.x=(0,o.getMeasurement)(e.x,"0pt");this.y=(0,o.getMeasurement)(e.y,"0pt");this.desc=null;this.extras=null}[r.$toHTML](e){const t={left:(0,s.measureToString)(this.x),top:(0,s.measureToString)(this.y),width:(0,s.measureToString)(this.w),height:(0,s.measureToString)(this.h)},a=["xfaContentarea"];(0,s.isPrintOnly)(this)&&a.push("xfaPrintOnly");return o.HTMLResult.success({name:"div",children:[],attributes:{style:t,class:a,id:this[r.$uid]}})}}class Corner extends r.XFAObject{constructor(e){super(d,"corner",!0);this.id=e.id||"";this.inverted=(0,o.getInteger)({data:e.inverted,defaultValue:0,validate:e=>1===e});this.join=(0,o.getStringOption)(e.join,["square","round"]);this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.radius=(0,o.getMeasurement)(e.radius);this.stroke=(0,o.getStringOption)(e.stroke,["solid","dashDot","dashDotDot","dashed","dotted","embossed","etched","lowered","raised"]);this.thickness=(0,o.getMeasurement)(e.thickness,"0.5pt");this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[r.$toStyle](){const e=(0,s.toStyle)(this,"visibility");e.radius=(0,s.measureToString)("square"===this.join?0:this.radius);return e}}class DateElement extends r.ContentObject{constructor(e){super(d,"date");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){const e=this[r.$content].trim();this[r.$content]=e?new Date(e):null}[r.$toHTML](e){return valueToHtml(this[r.$content]?this[r.$content].toString():"")}}class DateTime extends r.ContentObject{constructor(e){super(d,"dateTime");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){const e=this[r.$content].trim();this[r.$content]=e?new Date(e):null}[r.$toHTML](e){return valueToHtml(this[r.$content]?this[r.$content].toString():"")}}class DateTimeEdit extends r.XFAObject{constructor(e){super(d,"dateTimeEdit",!0);this.hScrollPolicy=(0,o.getStringOption)(e.hScrollPolicy,["auto","off","on"]);this.id=e.id||"";this.picker=(0,o.getStringOption)(e.picker,["host","none"]);this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.comb=null;this.extras=null;this.margin=null}[r.$toHTML](e){const t=(0,s.toStyle)(this,"border","font","margin"),a=this[r.$getParent]()[r.$getParent](),n={name:"input",attributes:{type:"text",fieldId:a[r.$uid],dataId:a[r.$data]&&a[r.$data][r.$uid]||a[r.$uid],class:["xfaTextfield"],style:t,"aria-label":ariaLabel(a)}};return o.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[n]})}}class Decimal extends r.ContentObject{constructor(e){super(d,"decimal");this.fracDigits=(0,o.getInteger)({data:e.fracDigits,defaultValue:2,validate:e=>!0});this.id=e.id||"";this.leadDigits=(0,o.getInteger)({data:e.leadDigits,defaultValue:-1,validate:e=>!0});this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){const e=parseFloat(this[r.$content].trim());this[r.$content]=isNaN(e)?null:e}[r.$toHTML](e){return valueToHtml(null!==this[r.$content]?this[r.$content].toString():"")}}class DefaultUi extends r.XFAObject{constructor(e){super(d,"defaultUi",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}}class Desc extends r.XFAObject{constructor(e){super(d,"desc",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.boolean=new r.XFAObjectArray;this.date=new r.XFAObjectArray;this.dateTime=new r.XFAObjectArray;this.decimal=new r.XFAObjectArray;this.exData=new r.XFAObjectArray;this.float=new r.XFAObjectArray;this.image=new r.XFAObjectArray;this.integer=new r.XFAObjectArray;this.text=new r.XFAObjectArray;this.time=new r.XFAObjectArray}}class DigestMethod extends r.OptionObject{constructor(e){super(d,"digestMethod",["","SHA1","SHA256","SHA512","RIPEMD160"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class DigestMethods extends r.XFAObject{constructor(e){super(d,"digestMethods",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.digestMethod=new r.XFAObjectArray}}class Draw extends r.XFAObject{constructor(e){super(d,"draw",!0);this.anchorType=(0,o.getStringOption)(e.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]);this.colSpan=(0,o.getInteger)({data:e.colSpan,defaultValue:1,validate:e=>e>=1||-1===e});this.h=e.h?(0,o.getMeasurement)(e.h):"";this.hAlign=(0,o.getStringOption)(e.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=e.id||"";this.locale=e.locale||"";this.maxH=(0,o.getMeasurement)(e.maxH,"0pt");this.maxW=(0,o.getMeasurement)(e.maxW,"0pt");this.minH=(0,o.getMeasurement)(e.minH,"0pt");this.minW=(0,o.getMeasurement)(e.minW,"0pt");this.name=e.name||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.relevant=(0,o.getRelevant)(e.relevant);this.rotate=(0,o.getInteger)({data:e.rotate,defaultValue:0,validate:e=>e%90==0});this.use=e.use||"";this.usehref=e.usehref||"";this.w=e.w?(0,o.getMeasurement)(e.w):"";this.x=(0,o.getMeasurement)(e.x,"0pt");this.y=(0,o.getMeasurement)(e.y,"0pt");this.assist=null;this.border=null;this.caption=null;this.desc=null;this.extras=null;this.font=null;this.keep=null;this.margin=null;this.para=null;this.traversal=null;this.ui=null;this.value=null;this.setProperty=new r.XFAObjectArray}[r.$setValue](e){_setValue(this,e)}[r.$toHTML](e){setTabIndex(this);if("hidden"===this.presence||"inactive"===this.presence)return o.HTMLResult.EMPTY;(0,s.fixDimensions)(this);this[r.$pushPara]();const t=this.w,a=this.h,{w:n,h:c,isBroken:l}=(0,s.layoutNode)(this,e);if(n&&""===this.w){if(l&&this[r.$getSubformParent]()[r.$isThereMoreWidth]()){this[r.$popPara]();return o.HTMLResult.FAILURE}this.w=n}c&&""===this.h&&(this.h=c);setFirstUnsplittable(this);if(!(0,i.checkDimensions)(this,e)){this.w=t;this.h=a;this[r.$popPara]();return o.HTMLResult.FAILURE}unsetFirstUnsplittable(this);const h=(0,s.toStyle)(this,"font","hAlign","dimensions","position","presence","rotate","anchorType","border","margin");(0,s.setMinMaxDimensions)(this,h);if(h.margin){h.padding=h.margin;delete h.margin}const u=["xfaDraw"];this.font&&u.push("xfaFont");(0,s.isPrintOnly)(this)&&u.push("xfaPrintOnly");const d={style:h,id:this[r.$uid],class:u};this.name&&(d.xfaName=this.name);const f={name:"div",attributes:d,children:[]};applyAssist(this,d);const g=(0,s.computeBbox)(this,f,e),p=this.value?this.value[r.$toHTML](e).html:null;if(null===p){this.w=t;this.h=a;this[r.$popPara]();return o.HTMLResult.success((0,s.createWrapper)(this,f),g)}f.children.push(p);(0,s.setPara)(this,h,p);this.w=t;this.h=a;this[r.$popPara]();return o.HTMLResult.success((0,s.createWrapper)(this,f),g)}}class Edge extends r.XFAObject{constructor(e){super(d,"edge",!0);this.cap=(0,o.getStringOption)(e.cap,["square","butt","round"]);this.id=e.id||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.stroke=(0,o.getStringOption)(e.stroke,["solid","dashDot","dashDotDot","dashed","dotted","embossed","etched","lowered","raised"]);this.thickness=(0,o.getMeasurement)(e.thickness,"0.5pt");this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[r.$toStyle](){const e=(0,s.toStyle)(this,"visibility");Object.assign(e,{linecap:this.cap,width:(0,s.measureToString)(this.thickness),color:this.color?this.color[r.$toStyle]():"#000000",style:""});if("visible"!==this.presence)e.style="none";else switch(this.stroke){case"solid":e.style="solid";break;case"dashDot":case"dashDotDot":case"dashed":e.style="dashed";break;case"dotted":e.style="dotted";break;case"embossed":e.style="ridge";break;case"etched":e.style="groove";break;case"lowered":e.style="inset";break;case"raised":e.style="outset"}return e}}class Encoding extends r.OptionObject{constructor(e){super(d,"encoding",["adbe.x509.rsa_sha1","adbe.pkcs7.detached","adbe.pkcs7.sha1"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Encodings extends r.XFAObject{constructor(e){super(d,"encodings",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.encoding=new r.XFAObjectArray}}class Encrypt extends r.XFAObject{constructor(e){super(d,"encrypt",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.certificate=null}}class EncryptData extends r.XFAObject{constructor(e){super(d,"encryptData",!0);this.id=e.id||"";this.operation=(0,o.getStringOption)(e.operation,["encrypt","decrypt"]);this.target=e.target||"";this.use=e.use||"";this.usehref=e.usehref||"";this.filter=null;this.manifest=null}}class Encryption extends r.XFAObject{constructor(e){super(d,"encryption",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.certificate=new r.XFAObjectArray}}class EncryptionMethod extends r.OptionObject{constructor(e){super(d,"encryptionMethod",["","AES256-CBC","TRIPLEDES-CBC","AES128-CBC","AES192-CBC"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class EncryptionMethods extends r.XFAObject{constructor(e){super(d,"encryptionMethods",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.encryptionMethod=new r.XFAObjectArray}}class Event extends r.XFAObject{constructor(e){super(d,"event",!0);this.activity=(0,o.getStringOption)(e.activity,["click","change","docClose","docReady","enter","exit","full","indexChange","initialize","mouseDown","mouseEnter","mouseExit","mouseUp","postExecute","postOpen","postPrint","postSave","postSign","postSubmit","preExecute","preOpen","prePrint","preSave","preSign","preSubmit","ready","validationState"]);this.id=e.id||"";this.listen=(0,o.getStringOption)(e.listen,["refOnly","refAndDescendents"]);this.name=e.name||"";this.ref=e.ref||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.encryptData=null;this.execute=null;this.script=null;this.signData=null;this.submit=null}}class ExData extends r.ContentObject{constructor(e){super(d,"exData");this.contentType=e.contentType||"";this.href=e.href||"";this.id=e.id||"";this.maxLength=(0,o.getInteger)({data:e.maxLength,defaultValue:-1,validate:e=>e>=-1});this.name=e.name||"";this.rid=e.rid||"";this.transferEncoding=(0,o.getStringOption)(e.transferEncoding,["none","base64","package"]);this.use=e.use||"";this.usehref=e.usehref||""}[r.$isCDATAXml](){return"text/html"===this.contentType}[r.$onChild](e){if("text/html"===this.contentType&&e[r.$namespaceId]===n.NamespaceIds.xhtml.id){this[r.$content]=e;return!0}if("text/xml"===this.contentType){this[r.$content]=e;return!0}return!1}[r.$toHTML](e){return"text/html"===this.contentType&&this[r.$content]?this[r.$content][r.$toHTML](e):o.HTMLResult.EMPTY}}class ExObject extends r.XFAObject{constructor(e){super(d,"exObject",!0);this.archive=e.archive||"";this.classId=e.classId||"";this.codeBase=e.codeBase||"";this.codeType=e.codeType||"";this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.boolean=new r.XFAObjectArray;this.date=new r.XFAObjectArray;this.dateTime=new r.XFAObjectArray;this.decimal=new r.XFAObjectArray;this.exData=new r.XFAObjectArray;this.exObject=new r.XFAObjectArray;this.float=new r.XFAObjectArray;this.image=new r.XFAObjectArray;this.integer=new r.XFAObjectArray;this.text=new r.XFAObjectArray;this.time=new r.XFAObjectArray}}class ExclGroup extends r.XFAObject{constructor(e){super(d,"exclGroup",!0);this.access=(0,o.getStringOption)(e.access,["open","nonInteractive","protected","readOnly"]);this.accessKey=e.accessKey||"";this.anchorType=(0,o.getStringOption)(e.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]);this.colSpan=(0,o.getInteger)({data:e.colSpan,defaultValue:1,validate:e=>e>=1||-1===e});this.h=e.h?(0,o.getMeasurement)(e.h):"";this.hAlign=(0,o.getStringOption)(e.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=e.id||"";this.layout=(0,o.getStringOption)(e.layout,["position","lr-tb","rl-row","rl-tb","row","table","tb"]);this.maxH=(0,o.getMeasurement)(e.maxH,"0pt");this.maxW=(0,o.getMeasurement)(e.maxW,"0pt");this.minH=(0,o.getMeasurement)(e.minH,"0pt");this.minW=(0,o.getMeasurement)(e.minW,"0pt");this.name=e.name||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.w=e.w?(0,o.getMeasurement)(e.w):"";this.x=(0,o.getMeasurement)(e.x,"0pt");this.y=(0,o.getMeasurement)(e.y,"0pt");this.assist=null;this.bind=null;this.border=null;this.calculate=null;this.caption=null;this.desc=null;this.extras=null;this.margin=null;this.para=null;this.traversal=null;this.validate=null;this.connect=new r.XFAObjectArray;this.event=new r.XFAObjectArray;this.field=new r.XFAObjectArray;this.setProperty=new r.XFAObjectArray}[r.$isBindable](){return!0}[r.$hasSettableValue](){return!0}[r.$setValue](e){for(const t of this.field.children){if(!t.value){const e=new Value({});t[r.$appendChild](e);t.value=e}t.value[r.$setValue](e)}}[r.$isThereMoreWidth](){return this.layout.endsWith("-tb")&&0===this[r.$extra].attempt&&this[r.$extra].numberInLine>0||this[r.$getParent]()[r.$isThereMoreWidth]()}[r.$isSplittable](){const e=this[r.$getSubformParent]();if(!e[r.$isSplittable]())return!1;if(void 0!==this[r.$extra]._isSplittable)return this[r.$extra]._isSplittable;if("position"===this.layout||this.layout.includes("row")){this[r.$extra]._isSplittable=!1;return!1}if(e.layout&&e.layout.endsWith("-tb")&&0!==e[r.$extra].numberInLine)return!1;this[r.$extra]._isSplittable=!0;return!0}[r.$flushHTML](){return(0,i.flushHTML)(this)}[r.$addHTML](e,t){(0,i.addHTML)(this,e,t)}[r.$getAvailableSpace](){return(0,i.getAvailableSpace)(this)}[r.$toHTML](e){setTabIndex(this);if("hidden"===this.presence||"inactive"===this.presence||0===this.h||0===this.w)return o.HTMLResult.EMPTY;(0,s.fixDimensions)(this);const t=[],a={id:this[r.$uid],class:[]};(0,s.setAccess)(this,a.class);this[r.$extra]||(this[r.$extra]=Object.create(null));Object.assign(this[r.$extra],{children:t,attributes:a,attempt:0,line:null,numberInLine:0,availableSpace:{width:Math.min(this.w||1/0,e.width),height:Math.min(this.h||1/0,e.height)},width:0,height:0,prevHeight:0,currentWidth:0});const n=this[r.$isSplittable]();n||setFirstUnsplittable(this);if(!(0,i.checkDimensions)(this,e))return o.HTMLResult.FAILURE;const c=new Set(["field"]);if(this.layout.includes("row")){const e=this[r.$getSubformParent]().columnWidths;if(Array.isArray(e)&&e.length>0){this[r.$extra].columnWidths=e;this[r.$extra].currentColumn=0}}const l=(0,s.toStyle)(this,"anchorType","dimensions","position","presence","border","margin","hAlign"),h=["xfaExclgroup"],u=(0,s.layoutClass)(this);u&&h.push(u);(0,s.isPrintOnly)(this)&&h.push("xfaPrintOnly");a.style=l;a.class=h;this.name&&(a.xfaName=this.name);this[r.$pushPara]();const d="lr-tb"===this.layout||"rl-tb"===this.layout,f=d?2:1;for(;this[r.$extra].attempte>=1||-1===e});this.h=e.h?(0,o.getMeasurement)(e.h):"";this.hAlign=(0,o.getStringOption)(e.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=e.id||"";this.locale=e.locale||"";this.maxH=(0,o.getMeasurement)(e.maxH,"0pt");this.maxW=(0,o.getMeasurement)(e.maxW,"0pt");this.minH=(0,o.getMeasurement)(e.minH,"0pt");this.minW=(0,o.getMeasurement)(e.minW,"0pt");this.name=e.name||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.relevant=(0,o.getRelevant)(e.relevant);this.rotate=(0,o.getInteger)({data:e.rotate,defaultValue:0,validate:e=>e%90==0});this.use=e.use||"";this.usehref=e.usehref||"";this.w=e.w?(0,o.getMeasurement)(e.w):"";this.x=(0,o.getMeasurement)(e.x,"0pt");this.y=(0,o.getMeasurement)(e.y,"0pt");this.assist=null;this.bind=null;this.border=null;this.calculate=null;this.caption=null;this.desc=null;this.extras=null;this.font=null;this.format=null;this.items=new r.XFAObjectArray(2);this.keep=null;this.margin=null;this.para=null;this.traversal=null;this.ui=null;this.validate=null;this.value=null;this.bindItems=new r.XFAObjectArray;this.connect=new r.XFAObjectArray;this.event=new r.XFAObjectArray;this.setProperty=new r.XFAObjectArray}[r.$isBindable](){return!0}[r.$setValue](e){_setValue(this,e)}[r.$toHTML](e){setTabIndex(this);if(!this.ui){this.ui=new Ui({});this.ui[r.$globalData]=this[r.$globalData];this[r.$appendChild](this.ui);let e;switch(this.items.children.length){case 0:e=new TextEdit({});this.ui.textEdit=e;break;case 1:e=new CheckButton({});this.ui.checkButton=e;break;case 2:e=new ChoiceList({});this.ui.choiceList=e}this.ui[r.$appendChild](e)}if(!this.ui||"hidden"===this.presence||"inactive"===this.presence||0===this.h||0===this.w)return o.HTMLResult.EMPTY;this.caption&&delete this.caption[r.$extra];this[r.$pushPara]();const t=this.caption?this.caption[r.$toHTML](e).html:null,a=this.w,n=this.h;let c=0,h=0;if(this.margin){c=this.margin.leftInset+this.margin.rightInset;h=this.margin.topInset+this.margin.bottomInset}let u=null;if(""===this.w||""===this.h){let t=null,a=null,n=0,i=0;if(this.ui.checkButton)n=i=this.ui.checkButton.size;else{const{w:t,h:a}=(0,s.layoutNode)(this,e);if(null!==t){n=t;i=a}else i=(0,l.getMetrics)(this.font,!0).lineNoGap}u=getBorderDims(this.ui[r.$getExtra]());n+=u.w;i+=u.h;if(this.caption){const{w:s,h:c,isBroken:l}=this.caption[r.$getExtra](e);if(l&&this[r.$getSubformParent]()[r.$isThereMoreWidth]()){this[r.$popPara]();return o.HTMLResult.FAILURE}t=s;a=c;switch(this.caption.placement){case"left":case"right":case"inline":t+=n;break;case"top":case"bottom":a+=i}}else{t=n;a=i}if(t&&""===this.w){t+=c;this.w=Math.min(this.maxW<=0?1/0:this.maxW,this.minW+1e>=1&&e<=5});this.appearanceFilter=null;this.certificates=null;this.digestMethods=null;this.encodings=null;this.encryptionMethods=null;this.handler=null;this.lockDocument=null;this.mdp=null;this.reasons=null;this.timeStamp=null}}class Float extends r.ContentObject{constructor(e){super(d,"float");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){const e=parseFloat(this[r.$content].trim());this[r.$content]=isNaN(e)?null:e}[r.$toHTML](e){return valueToHtml(null!==this[r.$content]?this[r.$content].toString():"")}}class Font extends r.XFAObject{constructor(e){super(d,"font",!0);this.baselineShift=(0,o.getMeasurement)(e.baselineShift);this.fontHorizontalScale=(0,o.getFloat)({data:e.fontHorizontalScale,defaultValue:100,validate:e=>e>=0});this.fontVerticalScale=(0,o.getFloat)({data:e.fontVerticalScale,defaultValue:100,validate:e=>e>=0});this.id=e.id||"";this.kerningMode=(0,o.getStringOption)(e.kerningMode,["none","pair"]);this.letterSpacing=(0,o.getMeasurement)(e.letterSpacing,"0");this.lineThrough=(0,o.getInteger)({data:e.lineThrough,defaultValue:0,validate:e=>1===e||2===e});this.lineThroughPeriod=(0,o.getStringOption)(e.lineThroughPeriod,["all","word"]);this.overline=(0,o.getInteger)({data:e.overline,defaultValue:0,validate:e=>1===e||2===e});this.overlinePeriod=(0,o.getStringOption)(e.overlinePeriod,["all","word"]);this.posture=(0,o.getStringOption)(e.posture,["normal","italic"]);this.size=(0,o.getMeasurement)(e.size,"10pt");this.typeface=e.typeface||"Courier";this.underline=(0,o.getInteger)({data:e.underline,defaultValue:0,validate:e=>1===e||2===e});this.underlinePeriod=(0,o.getStringOption)(e.underlinePeriod,["all","word"]);this.use=e.use||"";this.usehref=e.usehref||"";this.weight=(0,o.getStringOption)(e.weight,["normal","bold"]);this.extras=null;this.fill=null}[r.$clean](e){super[r.$clean](e);this[r.$globalData].usedTypefaces.add(this.typeface)}[r.$toStyle](){const e=(0,s.toStyle)(this,"fill"),t=e.color;if(t)if("#000000"===t)delete e.color;else if(!t.startsWith("#")){e.background=t;e.backgroundClip="text";e.color="transparent"}this.baselineShift&&(e.verticalAlign=(0,s.measureToString)(this.baselineShift));e.fontKerning="none"===this.kerningMode?"none":"normal";e.letterSpacing=(0,s.measureToString)(this.letterSpacing);if(0!==this.lineThrough){e.textDecoration="line-through";2===this.lineThrough&&(e.textDecorationStyle="double")}if(0!==this.overline){e.textDecoration="overline";2===this.overline&&(e.textDecorationStyle="double")}e.fontStyle=this.posture;e.fontSize=(0,s.measureToString)(.99*this.size);(0,s.setFontFamily)(this,this,this[r.$globalData].fontFinder,e);if(0!==this.underline){e.textDecoration="underline";2===this.underline&&(e.textDecorationStyle="double")}e.fontWeight=this.weight;return e}}class Format extends r.XFAObject{constructor(e){super(d,"format",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.picture=null}}class Handler extends r.StringObject{constructor(e){super(d,"handler");this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||""}}class Hyphenation extends r.XFAObject{constructor(e){super(d,"hyphenation");this.excludeAllCaps=(0,o.getInteger)({data:e.excludeAllCaps,defaultValue:0,validate:e=>1===e});this.excludeInitialCap=(0,o.getInteger)({data:e.excludeInitialCap,defaultValue:0,validate:e=>1===e});this.hyphenate=(0,o.getInteger)({data:e.hyphenate,defaultValue:0,validate:e=>1===e});this.id=e.id||"";this.pushCharacterCount=(0,o.getInteger)({data:e.pushCharacterCount,defaultValue:3,validate:e=>e>=0});this.remainCharacterCount=(0,o.getInteger)({data:e.remainCharacterCount,defaultValue:3,validate:e=>e>=0});this.use=e.use||"";this.usehref=e.usehref||"";this.wordCharacterCount=(0,o.getInteger)({data:e.wordCharacterCount,defaultValue:7,validate:e=>e>=0})}}class Image extends r.StringObject{constructor(e){super(d,"image");this.aspect=(0,o.getStringOption)(e.aspect,["fit","actual","height","none","width"]);this.contentType=e.contentType||"";this.href=e.href||"";this.id=e.id||"";this.name=e.name||"";this.transferEncoding=(0,o.getStringOption)(e.transferEncoding,["base64","none","package"]);this.use=e.use||"";this.usehref=e.usehref||""}[r.$toHTML](){if(this.contentType&&!p.has(this.contentType.toLowerCase()))return o.HTMLResult.EMPTY;let e=this[r.$globalData].images&&this[r.$globalData].images.get(this.href);if(!e&&(this.href||!this[r.$content]))return o.HTMLResult.EMPTY;e||"base64"!==this.transferEncoding||(e=(0,c.stringToBytes)(atob(this[r.$content])));if(!e)return o.HTMLResult.EMPTY;if(!this.contentType){for(const[t,a]of m)if(e.length>t.length&&t.every(((t,a)=>t===e[a]))){this.contentType=a;break}if(!this.contentType)return o.HTMLResult.EMPTY}const t=new Blob([e],{type:this.contentType});let a;switch(this.aspect){case"fit":case"actual":break;case"height":a={height:"100%",objectFit:"fill"};break;case"none":a={width:"100%",height:"100%",objectFit:"fill"};break;case"width":a={width:"100%",objectFit:"fill"}}const n=this[r.$getParent]();return o.HTMLResult.success({name:"img",attributes:{class:["xfaImage"],style:a,src:URL.createObjectURL(t),alt:n?ariaLabel(n[r.$getParent]()):null}})}}class ImageEdit extends r.XFAObject{constructor(e){super(d,"imageEdit",!0);this.data=(0,o.getStringOption)(e.data,["link","embed"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.extras=null;this.margin=null}[r.$toHTML](e){return"embed"===this.data?o.HTMLResult.success({name:"div",children:[],attributes:{}}):o.HTMLResult.EMPTY}}class Integer extends r.ContentObject{constructor(e){super(d,"integer");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){const e=parseInt(this[r.$content].trim(),10);this[r.$content]=isNaN(e)?null:e}[r.$toHTML](e){return valueToHtml(null!==this[r.$content]?this[r.$content].toString():"")}}class Issuers extends r.XFAObject{constructor(e){super(d,"issuers",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.certificate=new r.XFAObjectArray}}class Items extends r.XFAObject{constructor(e){super(d,"items",!0);this.id=e.id||"";this.name=e.name||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.ref=e.ref||"";this.save=(0,o.getInteger)({data:e.save,defaultValue:0,validate:e=>1===e});this.use=e.use||"";this.usehref=e.usehref||"";this.boolean=new r.XFAObjectArray;this.date=new r.XFAObjectArray;this.dateTime=new r.XFAObjectArray;this.decimal=new r.XFAObjectArray;this.exData=new r.XFAObjectArray;this.float=new r.XFAObjectArray;this.image=new r.XFAObjectArray;this.integer=new r.XFAObjectArray;this.text=new r.XFAObjectArray;this.time=new r.XFAObjectArray}[r.$toHTML](){const e=[];for(const t of this[r.$getChildren]())e.push(t[r.$text]());return o.HTMLResult.success(e)}}t.Items=Items;class Keep extends r.XFAObject{constructor(e){super(d,"keep",!0);this.id=e.id||"";const t=["none","contentArea","pageArea"];this.intact=(0,o.getStringOption)(e.intact,t);this.next=(0,o.getStringOption)(e.next,t);this.previous=(0,o.getStringOption)(e.previous,t);this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}}class KeyUsage extends r.XFAObject{constructor(e){super(d,"keyUsage");const t=["","yes","no"];this.crlSign=(0,o.getStringOption)(e.crlSign,t);this.dataEncipherment=(0,o.getStringOption)(e.dataEncipherment,t);this.decipherOnly=(0,o.getStringOption)(e.decipherOnly,t);this.digitalSignature=(0,o.getStringOption)(e.digitalSignature,t);this.encipherOnly=(0,o.getStringOption)(e.encipherOnly,t);this.id=e.id||"";this.keyAgreement=(0,o.getStringOption)(e.keyAgreement,t);this.keyCertSign=(0,o.getStringOption)(e.keyCertSign,t);this.keyEncipherment=(0,o.getStringOption)(e.keyEncipherment,t);this.nonRepudiation=(0,o.getStringOption)(e.nonRepudiation,t);this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||""}}class Line extends r.XFAObject{constructor(e){super(d,"line",!0);this.hand=(0,o.getStringOption)(e.hand,["even","left","right"]);this.id=e.id||"";this.slope=(0,o.getStringOption)(e.slope,["\\","/"]);this.use=e.use||"";this.usehref=e.usehref||"";this.edge=null}[r.$toHTML](){const e=this[r.$getParent]()[r.$getParent](),t=this.edge?this.edge:new Edge({}),a=t[r.$toStyle](),n=Object.create(null),i="visible"===t.presence?t.thickness:0;n.strokeWidth=(0,s.measureToString)(i);n.stroke=a.color;let c,l,h,u,d="100%",g="100%";if(e.w<=i){[c,l,h,u]=["50%",0,"50%","100%"];d=n.strokeWidth}else if(e.h<=i){[c,l,h,u]=[0,"50%","100%","50%"];g=n.strokeWidth}else"\\"===this.slope?[c,l,h,u]=[0,0,"100%","100%"]:[c,l,h,u]=[0,"100%","100%",0];const p={name:"svg",children:[{name:"line",attributes:{xmlns:f,x1:c,y1:l,x2:h,y2:u,style:n}}],attributes:{xmlns:f,width:d,height:g,style:{overflow:"visible"}}};if(hasMargin(e))return o.HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[p]});p.attributes.style.position="absolute";return o.HTMLResult.success(p)}}class Linear extends r.XFAObject{constructor(e){super(d,"linear",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["toRight","toBottom","toLeft","toTop"]);this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[r.$toStyle](e){e=e?e[r.$toStyle]():"#FFFFFF";return`linear-gradient(${this.type.replace(/([RBLT])/," $1").toLowerCase()}, ${e}, ${this.color?this.color[r.$toStyle]():"#000000"})`}}class LockDocument extends r.ContentObject{constructor(e){super(d,"lockDocument");this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){this[r.$content]=(0,o.getStringOption)(this[r.$content],["auto","0","1"])}}class Manifest extends r.XFAObject{constructor(e){super(d,"manifest",!0);this.action=(0,o.getStringOption)(e.action,["include","all","exclude"]);this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.ref=new r.XFAObjectArray}}class Margin extends r.XFAObject{constructor(e){super(d,"margin",!0);this.bottomInset=(0,o.getMeasurement)(e.bottomInset,"0");this.id=e.id||"";this.leftInset=(0,o.getMeasurement)(e.leftInset,"0");this.rightInset=(0,o.getMeasurement)(e.rightInset,"0");this.topInset=(0,o.getMeasurement)(e.topInset,"0");this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}[r.$toStyle](){return{margin:(0,s.measureToString)(this.topInset)+" "+(0,s.measureToString)(this.rightInset)+" "+(0,s.measureToString)(this.bottomInset)+" "+(0,s.measureToString)(this.leftInset)}}}class Mdp extends r.XFAObject{constructor(e){super(d,"mdp");this.id=e.id||"";this.permissions=(0,o.getInteger)({data:e.permissions,defaultValue:2,validate:e=>1===e||3===e});this.signatureType=(0,o.getStringOption)(e.signatureType,["filler","author"]);this.use=e.use||"";this.usehref=e.usehref||""}}class Medium extends r.XFAObject{constructor(e){super(d,"medium");this.id=e.id||"";this.imagingBBox=(0,o.getBBox)(e.imagingBBox);this.long=(0,o.getMeasurement)(e.long);this.orientation=(0,o.getStringOption)(e.orientation,["portrait","landscape"]);this.short=(0,o.getMeasurement)(e.short);this.stock=e.stock||"";this.trayIn=(0,o.getStringOption)(e.trayIn,["auto","delegate","pageFront"]);this.trayOut=(0,o.getStringOption)(e.trayOut,["auto","delegate"]);this.use=e.use||"";this.usehref=e.usehref||""}}class Message extends r.XFAObject{constructor(e){super(d,"message",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.text=new r.XFAObjectArray}}class NumericEdit extends r.XFAObject{constructor(e){super(d,"numericEdit",!0);this.hScrollPolicy=(0,o.getStringOption)(e.hScrollPolicy,["auto","off","on"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.comb=null;this.extras=null;this.margin=null}[r.$toHTML](e){const t=(0,s.toStyle)(this,"border","font","margin"),a=this[r.$getParent]()[r.$getParent](),n={name:"input",attributes:{type:"text",fieldId:a[r.$uid],dataId:a[r.$data]&&a[r.$data][r.$uid]||a[r.$uid],class:["xfaTextfield"],style:t,"aria-label":ariaLabel(a)}};return o.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[n]})}}class Occur extends r.XFAObject{constructor(e){super(d,"occur",!0);this.id=e.id||"";this.initial=""!==e.initial?(0,o.getInteger)({data:e.initial,defaultValue:"",validate:e=>!0}):"";this.max=""!==e.max?(0,o.getInteger)({data:e.max,defaultValue:1,validate:e=>!0}):"";this.min=""!==e.min?(0,o.getInteger)({data:e.min,defaultValue:1,validate:e=>!0}):"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}[r.$clean](){const e=this[r.$getParent](),t=this.min;""===this.min&&(this.min=e instanceof PageArea||e instanceof PageSet?0:1);""===this.max&&(this.max=""===t?e instanceof PageArea||e instanceof PageSet?-1:1:this.min);-1!==this.max&&this.max!0});this.name=e.name||"";this.numbered=(0,o.getInteger)({data:e.numbered,defaultValue:1,validate:e=>!0});this.oddOrEven=(0,o.getStringOption)(e.oddOrEven,["any","even","odd"]);this.pagePosition=(0,o.getStringOption)(e.pagePosition,["any","first","last","only","rest"]);this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.desc=null;this.extras=null;this.medium=null;this.occur=null;this.area=new r.XFAObjectArray;this.contentArea=new r.XFAObjectArray;this.draw=new r.XFAObjectArray;this.exclGroup=new r.XFAObjectArray;this.field=new r.XFAObjectArray;this.subform=new r.XFAObjectArray}[r.$isUsable](){if(!this[r.$extra]){this[r.$extra]={numberOfUse:0};return!0}return!this.occur||-1===this.occur.max||this[r.$extra].numberOfUsee.oddOrEven===t&&e.pagePosition===a));if(n)return n;n=this.pageArea.children.find((e=>"any"===e.oddOrEven&&e.pagePosition===a));if(n)return n;n=this.pageArea.children.find((e=>"any"===e.oddOrEven&&"any"===e.pagePosition));return n||this.pageArea.children[0]}}class Para extends r.XFAObject{constructor(e){super(d,"para",!0);this.hAlign=(0,o.getStringOption)(e.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=e.id||"";this.lineHeight=e.lineHeight?(0,o.getMeasurement)(e.lineHeight,"0pt"):"";this.marginLeft=e.marginLeft?(0,o.getMeasurement)(e.marginLeft,"0pt"):"";this.marginRight=e.marginRight?(0,o.getMeasurement)(e.marginRight,"0pt"):"";this.orphans=(0,o.getInteger)({data:e.orphans,defaultValue:0,validate:e=>e>=0});this.preserve=e.preserve||"";this.radixOffset=e.radixOffset?(0,o.getMeasurement)(e.radixOffset,"0pt"):"";this.spaceAbove=e.spaceAbove?(0,o.getMeasurement)(e.spaceAbove,"0pt"):"";this.spaceBelow=e.spaceBelow?(0,o.getMeasurement)(e.spaceBelow,"0pt"):"";this.tabDefault=e.tabDefault?(0,o.getMeasurement)(this.tabDefault):"";this.tabStops=(e.tabStops||"").trim().split(/\s+/).map(((e,t)=>t%2==1?(0,o.getMeasurement)(e):e));this.textIndent=e.textIndent?(0,o.getMeasurement)(e.textIndent,"0pt"):"";this.use=e.use||"";this.usehref=e.usehref||"";this.vAlign=(0,o.getStringOption)(e.vAlign,["top","bottom","middle"]);this.widows=(0,o.getInteger)({data:e.widows,defaultValue:0,validate:e=>e>=0});this.hyphenation=null}[r.$toStyle](){const e=(0,s.toStyle)(this,"hAlign");""!==this.marginLeft&&(e.paddingLeft=(0,s.measureToString)(this.marginLeft));""!==this.marginRight&&(e.paddingight=(0,s.measureToString)(this.marginRight));""!==this.spaceAbove&&(e.paddingTop=(0,s.measureToString)(this.spaceAbove));""!==this.spaceBelow&&(e.paddingBottom=(0,s.measureToString)(this.spaceBelow));if(""!==this.textIndent){e.textIndent=(0,s.measureToString)(this.textIndent);(0,s.fixTextIndent)(e)}this.lineHeight>0&&(e.lineHeight=(0,s.measureToString)(this.lineHeight));""!==this.tabDefault&&(e.tabSize=(0,s.measureToString)(this.tabDefault));this.tabStops.length;this.hyphenatation&&Object.assign(e,this.hyphenatation[r.$toStyle]());return e}}class PasswordEdit extends r.XFAObject{constructor(e){super(d,"passwordEdit",!0);this.hScrollPolicy=(0,o.getStringOption)(e.hScrollPolicy,["auto","off","on"]);this.id=e.id||"";this.passwordChar=e.passwordChar||"*";this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.extras=null;this.margin=null}}class Pattern extends r.XFAObject{constructor(e){super(d,"pattern",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["crossHatch","crossDiagonal","diagonalLeft","diagonalRight","horizontal","vertical"]);this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[r.$toStyle](e){e=e?e[r.$toStyle]():"#FFFFFF";const t=this.color?this.color[r.$toStyle]():"#000000",a="repeating-linear-gradient",n=`${e},${e} 5px,${t} 5px,${t} 10px`;switch(this.type){case"crossHatch":return`${a}(to top,${n}) ${a}(to right,${n})`;case"crossDiagonal":return`${a}(45deg,${n}) ${a}(-45deg,${n})`;case"diagonalLeft":return`${a}(45deg,${n})`;case"diagonalRight":return`${a}(-45deg,${n})`;case"horizontal":return`${a}(to top,${n})`;case"vertical":return`${a}(to right,${n})`}return""}}class Picture extends r.StringObject{constructor(e){super(d,"picture");this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Proto extends r.XFAObject{constructor(e){super(d,"proto",!0);this.appearanceFilter=new r.XFAObjectArray;this.arc=new r.XFAObjectArray;this.area=new r.XFAObjectArray;this.assist=new r.XFAObjectArray;this.barcode=new r.XFAObjectArray;this.bindItems=new r.XFAObjectArray;this.bookend=new r.XFAObjectArray;this.boolean=new r.XFAObjectArray;this.border=new r.XFAObjectArray;this.break=new r.XFAObjectArray;this.breakAfter=new r.XFAObjectArray;this.breakBefore=new r.XFAObjectArray;this.button=new r.XFAObjectArray;this.calculate=new r.XFAObjectArray;this.caption=new r.XFAObjectArray;this.certificate=new r.XFAObjectArray;this.certificates=new r.XFAObjectArray;this.checkButton=new r.XFAObjectArray;this.choiceList=new r.XFAObjectArray;this.color=new r.XFAObjectArray;this.comb=new r.XFAObjectArray;this.connect=new r.XFAObjectArray;this.contentArea=new r.XFAObjectArray;this.corner=new r.XFAObjectArray;this.date=new r.XFAObjectArray;this.dateTime=new r.XFAObjectArray;this.dateTimeEdit=new r.XFAObjectArray;this.decimal=new r.XFAObjectArray;this.defaultUi=new r.XFAObjectArray;this.desc=new r.XFAObjectArray;this.digestMethod=new r.XFAObjectArray;this.digestMethods=new r.XFAObjectArray;this.draw=new r.XFAObjectArray;this.edge=new r.XFAObjectArray;this.encoding=new r.XFAObjectArray;this.encodings=new r.XFAObjectArray;this.encrypt=new r.XFAObjectArray;this.encryptData=new r.XFAObjectArray;this.encryption=new r.XFAObjectArray;this.encryptionMethod=new r.XFAObjectArray;this.encryptionMethods=new r.XFAObjectArray;this.event=new r.XFAObjectArray;this.exData=new r.XFAObjectArray;this.exObject=new r.XFAObjectArray;this.exclGroup=new r.XFAObjectArray;this.execute=new r.XFAObjectArray;this.extras=new r.XFAObjectArray;this.field=new r.XFAObjectArray;this.fill=new r.XFAObjectArray;this.filter=new r.XFAObjectArray;this.float=new r.XFAObjectArray;this.font=new r.XFAObjectArray;this.format=new r.XFAObjectArray;this.handler=new r.XFAObjectArray;this.hyphenation=new r.XFAObjectArray;this.image=new r.XFAObjectArray;this.imageEdit=new r.XFAObjectArray;this.integer=new r.XFAObjectArray;this.issuers=new r.XFAObjectArray;this.items=new r.XFAObjectArray;this.keep=new r.XFAObjectArray;this.keyUsage=new r.XFAObjectArray;this.line=new r.XFAObjectArray;this.linear=new r.XFAObjectArray;this.lockDocument=new r.XFAObjectArray;this.manifest=new r.XFAObjectArray;this.margin=new r.XFAObjectArray;this.mdp=new r.XFAObjectArray;this.medium=new r.XFAObjectArray;this.message=new r.XFAObjectArray;this.numericEdit=new r.XFAObjectArray;this.occur=new r.XFAObjectArray;this.oid=new r.XFAObjectArray;this.oids=new r.XFAObjectArray;this.overflow=new r.XFAObjectArray;this.pageArea=new r.XFAObjectArray;this.pageSet=new r.XFAObjectArray;this.para=new r.XFAObjectArray;this.passwordEdit=new r.XFAObjectArray;this.pattern=new r.XFAObjectArray;this.picture=new r.XFAObjectArray;this.radial=new r.XFAObjectArray;this.reason=new r.XFAObjectArray;this.reasons=new r.XFAObjectArray;this.rectangle=new r.XFAObjectArray;this.ref=new r.XFAObjectArray;this.script=new r.XFAObjectArray;this.setProperty=new r.XFAObjectArray;this.signData=new r.XFAObjectArray;this.signature=new r.XFAObjectArray;this.signing=new r.XFAObjectArray;this.solid=new r.XFAObjectArray;this.speak=new r.XFAObjectArray;this.stipple=new r.XFAObjectArray;this.subform=new r.XFAObjectArray;this.subformSet=new r.XFAObjectArray;this.subjectDN=new r.XFAObjectArray;this.subjectDNs=new r.XFAObjectArray;this.submit=new r.XFAObjectArray;this.text=new r.XFAObjectArray;this.textEdit=new r.XFAObjectArray;this.time=new r.XFAObjectArray;this.timeStamp=new r.XFAObjectArray;this.toolTip=new r.XFAObjectArray;this.traversal=new r.XFAObjectArray;this.traverse=new r.XFAObjectArray;this.ui=new r.XFAObjectArray;this.validate=new r.XFAObjectArray;this.value=new r.XFAObjectArray;this.variables=new r.XFAObjectArray}}class Radial extends r.XFAObject{constructor(e){super(d,"radial",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["toEdge","toCenter"]);this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[r.$toStyle](e){e=e?e[r.$toStyle]():"#FFFFFF";const t=this.color?this.color[r.$toStyle]():"#000000";return`radial-gradient(circle at center, ${"toEdge"===this.type?`${e},${t}`:`${t},${e}`})`}}class Reason extends r.StringObject{constructor(e){super(d,"reason");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Reasons extends r.XFAObject{constructor(e){super(d,"reasons",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.reason=new r.XFAObjectArray}}class Rectangle extends r.XFAObject{constructor(e){super(d,"rectangle",!0);this.hand=(0,o.getStringOption)(e.hand,["even","left","right"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.corner=new r.XFAObjectArray(4);this.edge=new r.XFAObjectArray(4);this.fill=null}[r.$toHTML](){const e=this.edge.children.length?this.edge.children[0]:new Edge({}),t=e[r.$toStyle](),a=Object.create(null);this.fill&&"visible"===this.fill.presence?Object.assign(a,this.fill[r.$toStyle]()):a.fill="transparent";a.strokeWidth=(0,s.measureToString)("visible"===e.presence?e.thickness:0);a.stroke=t.color;const n=(this.corner.children.length?this.corner.children[0]:new Corner({}))[r.$toStyle](),i={name:"svg",children:[{name:"rect",attributes:{xmlns:f,width:"100%",height:"100%",x:0,y:0,rx:n.radius,ry:n.radius,style:a}}],attributes:{xmlns:f,style:{overflow:"visible"},width:"100%",height:"100%"}};if(hasMargin(this[r.$getParent]()[r.$getParent]()))return o.HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[i]});i.attributes.style.position="absolute";return o.HTMLResult.success(i)}}class RefElement extends r.StringObject{constructor(e){super(d,"ref");this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Script extends r.StringObject{constructor(e){super(d,"script");this.binding=e.binding||"";this.contentType=e.contentType||"";this.id=e.id||"";this.name=e.name||"";this.runAt=(0,o.getStringOption)(e.runAt,["client","both","server"]);this.use=e.use||"";this.usehref=e.usehref||""}}class SetProperty extends r.XFAObject{constructor(e){super(d,"setProperty");this.connection=e.connection||"";this.ref=e.ref||"";this.target=e.target||""}}t.SetProperty=SetProperty;class SignData extends r.XFAObject{constructor(e){super(d,"signData",!0);this.id=e.id||"";this.operation=(0,o.getStringOption)(e.operation,["sign","clear","verify"]);this.ref=e.ref||"";this.target=e.target||"";this.use=e.use||"";this.usehref=e.usehref||"";this.filter=null;this.manifest=null}}class Signature extends r.XFAObject{constructor(e){super(d,"signature",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["PDF1.3","PDF1.6"]);this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.extras=null;this.filter=null;this.manifest=null;this.margin=null}}class Signing extends r.XFAObject{constructor(e){super(d,"signing",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.certificate=new r.XFAObjectArray}}class Solid extends r.XFAObject{constructor(e){super(d,"solid",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}[r.$toStyle](e){return e?e[r.$toStyle]():"#FFFFFF"}}class Speak extends r.StringObject{constructor(e){super(d,"speak");this.disable=(0,o.getInteger)({data:e.disable,defaultValue:0,validate:e=>1===e});this.id=e.id||"";this.priority=(0,o.getStringOption)(e.priority,["custom","caption","name","toolTip"]);this.rid=e.rid||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Stipple extends r.XFAObject{constructor(e){super(d,"stipple",!0);this.id=e.id||"";this.rate=(0,o.getInteger)({data:e.rate,defaultValue:50,validate:e=>e>=0&&e<=100});this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[r.$toStyle](e){const t=this.rate/100;return c.Util.makeHexColor(Math.round(e.value.r*(1-t)+this.value.r*t),Math.round(e.value.g*(1-t)+this.value.g*t),Math.round(e.value.b*(1-t)+this.value.b*t))}}class Subform extends r.XFAObject{constructor(e){super(d,"subform",!0);this.access=(0,o.getStringOption)(e.access,["open","nonInteractive","protected","readOnly"]);this.allowMacro=(0,o.getInteger)({data:e.allowMacro,defaultValue:0,validate:e=>1===e});this.anchorType=(0,o.getStringOption)(e.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]);this.colSpan=(0,o.getInteger)({data:e.colSpan,defaultValue:1,validate:e=>e>=1||-1===e});this.columnWidths=(e.columnWidths||"").trim().split(/\s+/).map((e=>"-1"===e?-1:(0,o.getMeasurement)(e)));this.h=e.h?(0,o.getMeasurement)(e.h):"";this.hAlign=(0,o.getStringOption)(e.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=e.id||"";this.layout=(0,o.getStringOption)(e.layout,["position","lr-tb","rl-row","rl-tb","row","table","tb"]);this.locale=e.locale||"";this.maxH=(0,o.getMeasurement)(e.maxH,"0pt");this.maxW=(0,o.getMeasurement)(e.maxW,"0pt");this.mergeMode=(0,o.getStringOption)(e.mergeMode,["consumeData","matchTemplate"]);this.minH=(0,o.getMeasurement)(e.minH,"0pt");this.minW=(0,o.getMeasurement)(e.minW,"0pt");this.name=e.name||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.relevant=(0,o.getRelevant)(e.relevant);this.restoreState=(0,o.getStringOption)(e.restoreState,["manual","auto"]);this.scope=(0,o.getStringOption)(e.scope,["name","none"]);this.use=e.use||"";this.usehref=e.usehref||"";this.w=e.w?(0,o.getMeasurement)(e.w):"";this.x=(0,o.getMeasurement)(e.x,"0pt");this.y=(0,o.getMeasurement)(e.y,"0pt");this.assist=null;this.bind=null;this.bookend=null;this.border=null;this.break=null;this.calculate=null;this.desc=null;this.extras=null;this.keep=null;this.margin=null;this.occur=null;this.overflow=null;this.pageSet=null;this.para=null;this.traversal=null;this.validate=null;this.variables=null;this.area=new r.XFAObjectArray;this.breakAfter=new r.XFAObjectArray;this.breakBefore=new r.XFAObjectArray;this.connect=new r.XFAObjectArray;this.draw=new r.XFAObjectArray;this.event=new r.XFAObjectArray;this.exObject=new r.XFAObjectArray;this.exclGroup=new r.XFAObjectArray;this.field=new r.XFAObjectArray;this.proto=new r.XFAObjectArray;this.setProperty=new r.XFAObjectArray;this.subform=new r.XFAObjectArray;this.subformSet=new r.XFAObjectArray}[r.$getSubformParent](){const e=this[r.$getParent]();return e instanceof SubformSet?e[r.$getSubformParent]():e}[r.$isBindable](){return!0}[r.$isThereMoreWidth](){return this.layout.endsWith("-tb")&&0===this[r.$extra].attempt&&this[r.$extra].numberInLine>0||this[r.$getParent]()[r.$isThereMoreWidth]()}*[r.$getContainedChildren](){yield*getContainedChildren(this)}[r.$flushHTML](){return(0,i.flushHTML)(this)}[r.$addHTML](e,t){(0,i.addHTML)(this,e,t)}[r.$getAvailableSpace](){return(0,i.getAvailableSpace)(this)}[r.$isSplittable](){const e=this[r.$getSubformParent]();if(!e[r.$isSplittable]())return!1;if(void 0!==this[r.$extra]._isSplittable)return this[r.$extra]._isSplittable;if("position"===this.layout||this.layout.includes("row")){this[r.$extra]._isSplittable=!1;return!1}if(this.keep&&"none"!==this.keep.intact){this[r.$extra]._isSplittable=!1;return!1}if(e.layout&&e.layout.endsWith("-tb")&&0!==e[r.$extra].numberInLine)return!1;this[r.$extra]._isSplittable=!0;return!0}[r.$toHTML](e){setTabIndex(this);if(this.break){if("auto"!==this.break.after||""!==this.break.afterTarget){const e=new BreakAfter({targetType:this.break.after,target:this.break.afterTarget,startNew:this.break.startNew.toString()});e[r.$globalData]=this[r.$globalData];this[r.$appendChild](e);this.breakAfter.push(e)}if("auto"!==this.break.before||""!==this.break.beforeTarget){const e=new BreakBefore({targetType:this.break.before,target:this.break.beforeTarget,startNew:this.break.startNew.toString()});e[r.$globalData]=this[r.$globalData];this[r.$appendChild](e);this.breakBefore.push(e)}if(""!==this.break.overflowTarget){const e=new Overflow({target:this.break.overflowTarget,leader:this.break.overflowLeader,trailer:this.break.overflowTrailer});e[r.$globalData]=this[r.$globalData];this[r.$appendChild](e);this.overflow.push(e)}this[r.$removeChild](this.break);this.break=null}if("hidden"===this.presence||"inactive"===this.presence)return o.HTMLResult.EMPTY;(this.breakBefore.children.length>1||this.breakAfter.children.length>1)&&(0,c.warn)("XFA - Several breakBefore or breakAfter in subforms: please file a bug.");if(this.breakBefore.children.length>=1){const e=this.breakBefore.children[0];if(handleBreak(e))return o.HTMLResult.breakNode(e)}if(this[r.$extra]&&this[r.$extra].afterBreakAfter)return o.HTMLResult.EMPTY;(0,s.fixDimensions)(this);const t=[],a={id:this[r.$uid],class:[]};(0,s.setAccess)(this,a.class);this[r.$extra]||(this[r.$extra]=Object.create(null));Object.assign(this[r.$extra],{children:t,line:null,attributes:a,attempt:0,numberInLine:0,availableSpace:{width:Math.min(this.w||1/0,e.width),height:Math.min(this.h||1/0,e.height)},width:0,height:0,prevHeight:0,currentWidth:0});const n=this[r.$getTemplateRoot](),l=n[r.$extra].noLayoutFailure,h=this[r.$isSplittable]();h||setFirstUnsplittable(this);if(!(0,i.checkDimensions)(this,e))return o.HTMLResult.FAILURE;const u=new Set(["area","draw","exclGroup","field","subform","subformSet"]);if(this.layout.includes("row")){const e=this[r.$getSubformParent]().columnWidths;if(Array.isArray(e)&&e.length>0){this[r.$extra].columnWidths=e;this[r.$extra].currentColumn=0}}const d=(0,s.toStyle)(this,"anchorType","dimensions","position","presence","border","margin","hAlign"),f=["xfaSubform"],g=(0,s.layoutClass)(this);g&&f.push(g);a.style=d;a.class=f;this.name&&(a.xfaName=this.name);if(this.overflow){const t=this.overflow[r.$getExtra]();if(t.addLeader){t.addLeader=!1;handleOverflow(this,t.leader,e)}}this[r.$pushPara]();const p="lr-tb"===this.layout||"rl-tb"===this.layout,m=p?2:1;for(;this[r.$extra].attempt=1){const e=this.breakAfter.children[0];if(handleBreak(e)){this[r.$extra].afterBreakAfter=C;return o.HTMLResult.breakNode(e)}}delete this[r.$extra];return C}}class SubformSet extends r.XFAObject{constructor(e){super(d,"subformSet",!0);this.id=e.id||"";this.name=e.name||"";this.relation=(0,o.getStringOption)(e.relation,["ordered","choice","unordered"]);this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.bookend=null;this.break=null;this.desc=null;this.extras=null;this.occur=null;this.overflow=null;this.breakAfter=new r.XFAObjectArray;this.breakBefore=new r.XFAObjectArray;this.subform=new r.XFAObjectArray;this.subformSet=new r.XFAObjectArray}*[r.$getContainedChildren](){yield*getContainedChildren(this)}[r.$getSubformParent](){let e=this[r.$getParent]();for(;!(e instanceof Subform);)e=e[r.$getParent]();return e}[r.$isBindable](){return!0}}class SubjectDN extends r.ContentObject{constructor(e){super(d,"subjectDN");this.delimiter=e.delimiter||",";this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){this[r.$content]=new Map(this[r.$content].split(this.delimiter).map((e=>{(e=e.split("=",2))[0]=e[0].trim();return e})))}}class SubjectDNs extends r.XFAObject{constructor(e){super(d,"subjectDNs",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.subjectDN=new r.XFAObjectArray}}class Submit extends r.XFAObject{constructor(e){super(d,"submit",!0);this.embedPDF=(0,o.getInteger)({data:e.embedPDF,defaultValue:0,validate:e=>1===e});this.format=(0,o.getStringOption)(e.format,["xdp","formdata","pdf","urlencoded","xfd","xml"]);this.id=e.id||"";this.target=e.target||"";this.textEncoding=(0,o.getKeyword)({data:e.textEncoding?e.textEncoding.toLowerCase():"",defaultValue:"",validate:e=>["utf-8","big-five","fontspecific","gbk","gb-18030","gb-2312","ksc-5601","none","shift-jis","ucs-2","utf-16"].includes(e)||e.match(/iso-8859-\d{2}/)});this.use=e.use||"";this.usehref=e.usehref||"";this.xdpContent=e.xdpContent||"";this.encrypt=null;this.encryptData=new r.XFAObjectArray;this.signData=new r.XFAObjectArray}}class Template extends r.XFAObject{constructor(e){super(d,"template",!0);this.baseProfile=(0,o.getStringOption)(e.baseProfile,["full","interactiveForms"]);this.extras=null;this.subform=new r.XFAObjectArray}[r.$finalize](){0===this.subform.children.length&&(0,c.warn)("XFA - No subforms in template node.");this.subform.children.length>=2&&(0,c.warn)("XFA - Several subforms in template node: please file a bug.");this[r.$tabIndex]=5e3}[r.$isSplittable](){return!0}[r.$searchNode](e,t){return e.startsWith("#")?[this[r.$ids].get(e.slice(1))]:(0,u.searchNode)(this,t,e,!0,!0)}*[r.$toPages](){if(!this.subform.children.length)return o.HTMLResult.success({name:"div",children:[]});this[r.$extra]={overflowNode:null,firstUnsplittable:null,currentContentArea:null,currentPageArea:null,noLayoutFailure:!1,pageNumber:1,pagePosition:"first",oddOrEven:"odd",blankOrNotBlank:"nonBlank",paraStack:[]};const e=this.subform.children[0];e.pageSet[r.$cleanPage]();const t=e.pageSet.pageArea.children,a={name:"div",children:[]};let n=null,i=null,s=null;if(e.breakBefore.children.length>=1){i=e.breakBefore.children[0];s=i.target}else if(e.subform.children.length>=1&&e.subform.children[0].breakBefore.children.length>=1){i=e.subform.children[0].breakBefore.children[0];s=i.target}else if(e.break&&e.break.beforeTarget){i=e.break;s=i.beforeTarget}else if(e.subform.children.length>=1&&e.subform.children[0].break&&e.subform.children[0].break.beforeTarget){i=e.subform.children[0].break;s=i.beforeTarget}if(i){const e=this[r.$searchNode](s,i[r.$getParent]());if(e instanceof PageArea){n=e;i[r.$extra]={}}}n||(n=t[0]);n[r.$extra]={numberOfUse:1};const l=n[r.$getParent]();l[r.$extra]={numberOfUse:1,pageIndex:l.pageArea.children.indexOf(n),pageSetIndex:0};let h,u=null,d=null,f=!0,g=0,p=0;for(;;){if(f)g=0;else{a.children.pop();if(3==++g){(0,c.warn)("XFA - Something goes wrong: please file a bug.");return a}}h=null;this[r.$extra].currentPageArea=n;const t=n[r.$toHTML]().html;a.children.push(t);if(u){this[r.$extra].noLayoutFailure=!0;t.children.push(u[r.$toHTML](n[r.$extra].space).html);u=null}if(d){this[r.$extra].noLayoutFailure=!0;t.children.push(d[r.$toHTML](n[r.$extra].space).html);d=null}const i=n.contentArea.children,s=t.children.filter((e=>e.attributes.class.includes("xfaContentarea")));f=!1;this[r.$extra].firstUnsplittable=null;this[r.$extra].noLayoutFailure=!1;const flush=t=>{const a=e[r.$flushHTML]();if(a){f=f||a.children&&0!==a.children.length;s[t].children.push(a)}};for(let t=p,n=i.length;t1&&a.children.pop();return a}if(c.isBreak()){const e=c.breakNode;flush(t);if("auto"===e.targetType)continue;if(e.leader){u=this[r.$searchNode](e.leader,e[r.$getParent]());u=u?u[0]:null}if(e.trailer){d=this[r.$searchNode](e.trailer,e[r.$getParent]());d=d?d[0]:null}if("pageArea"===e.targetType){h=e[r.$extra].target;t=1/0}else if(e[r.$extra].target){h=e[r.$extra].target;p=e[r.$extra].index+1;t=1/0}else t=e[r.$extra].index}else if(this[r.$extra].overflowNode){const e=this[r.$extra].overflowNode;this[r.$extra].overflowNode=null;const a=e[r.$getExtra](),n=a.target;a.addLeader=null!==a.leader;a.addTrailer=null!==a.trailer;flush(t);const s=t;t=1/0;if(n instanceof PageArea)h=n;else if(n instanceof ContentArea){const e=i.findIndex((e=>e===n));if(-1!==e)e>s?t=e-1:p=e;else{h=n[r.$getParent]();p=h.contentArea.children.findIndex((e=>e===n))}}}else flush(t)}this[r.$extra].pageNumber+=1;h&&(h[r.$isUsable]()?h[r.$extra].numberOfUse+=1:h=null);n=h||n[r.$getNextPage]();yield null}}}t.Template=Template;class Text extends r.ContentObject{constructor(e){super(d,"text");this.id=e.id||"";this.maxChars=(0,o.getInteger)({data:e.maxChars,defaultValue:0,validate:e=>e>=0});this.name=e.name||"";this.rid=e.rid||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$acceptWhitespace](){return!0}[r.$onChild](e){if(e[r.$namespaceId]===n.NamespaceIds.xhtml.id){this[r.$content]=e;return!0}(0,c.warn)(`XFA - Invalid content in Text: ${e[r.$nodeName]}.`);return!1}[r.$onText](e){this[r.$content]instanceof r.XFAObject||super[r.$onText](e)}[r.$finalize](){"string"==typeof this[r.$content]&&(this[r.$content]=this[r.$content].replace(/\r\n/g,"\n"))}[r.$getExtra](){return"string"==typeof this[r.$content]?this[r.$content].split(/[\u2029\u2028\n]/).reduce(((e,t)=>{t&&e.push(t);return e}),[]).join("\n"):this[r.$content][r.$text]()}[r.$toHTML](e){if("string"==typeof this[r.$content]){const e=valueToHtml(this[r.$content]).html;if(this[r.$content].includes("\u2029")){e.name="div";e.children=[];this[r.$content].split("\u2029").map((e=>e.split(/[\u2028\n]/).reduce(((e,t)=>{e.push({name:"span",value:t},{name:"br"});return e}),[]))).forEach((t=>{e.children.push({name:"p",children:t})}))}else if(/[\u2028\n]/.test(this[r.$content])){e.name="div";e.children=[];this[r.$content].split(/[\u2028\n]/).forEach((t=>{e.children.push({name:"span",value:t},{name:"br"})}))}return o.HTMLResult.success(e)}return this[r.$content][r.$toHTML](e)}}t.Text=Text;class TextEdit extends r.XFAObject{constructor(e){super(d,"textEdit",!0);this.allowRichText=(0,o.getInteger)({data:e.allowRichText,defaultValue:0,validate:e=>1===e});this.hScrollPolicy=(0,o.getStringOption)(e.hScrollPolicy,["auto","off","on"]);this.id=e.id||"";this.multiLine=(0,o.getInteger)({data:e.multiLine,defaultValue:"",validate:e=>0===e||1===e});this.use=e.use||"";this.usehref=e.usehref||"";this.vScrollPolicy=(0,o.getStringOption)(e.vScrollPolicy,["auto","off","on"]);this.border=null;this.comb=null;this.extras=null;this.margin=null}[r.$toHTML](e){const t=(0,s.toStyle)(this,"border","font","margin");let a;const n=this[r.$getParent]()[r.$getParent]();""===this.multiLine&&(this.multiLine=n instanceof Draw?1:0);a=1===this.multiLine?{name:"textarea",attributes:{dataId:n[r.$data]&&n[r.$data][r.$uid]||n[r.$uid],fieldId:n[r.$uid],class:["xfaTextfield"],style:t,"aria-label":ariaLabel(n)}}:{name:"input",attributes:{type:"text",dataId:n[r.$data]&&n[r.$data][r.$uid]||n[r.$uid],fieldId:n[r.$uid],class:["xfaTextfield"],style:t,"aria-label":ariaLabel(n)}};return o.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[a]})}}class Time extends r.StringObject{constructor(e){super(d,"time");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){const e=this[r.$content].trim();this[r.$content]=e?new Date(e):null}[r.$toHTML](e){return valueToHtml(this[r.$content]?this[r.$content].toString():"")}}class TimeStamp extends r.XFAObject{constructor(e){super(d,"timeStamp");this.id=e.id||"";this.server=e.server||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||""}}class ToolTip extends r.StringObject{constructor(e){super(d,"toolTip");this.id=e.id||"";this.rid=e.rid||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Traversal extends r.XFAObject{constructor(e){super(d,"traversal",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.traverse=new r.XFAObjectArray}}class Traverse extends r.XFAObject{constructor(e){super(d,"traverse",!0);this.id=e.id||"";this.operation=(0,o.getStringOption)(e.operation,["next","back","down","first","left","right","up"]);this.ref=e.ref||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.script=null}get name(){return this.operation}[r.$isTransparent](){return!1}}class Ui extends r.XFAObject{constructor(e){super(d,"ui",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.picture=null;this.barcode=null;this.button=null;this.checkButton=null;this.choiceList=null;this.dateTimeEdit=null;this.defaultUi=null;this.imageEdit=null;this.numericEdit=null;this.passwordEdit=null;this.signature=null;this.textEdit=null}[r.$getExtra](){if(void 0===this[r.$extra]){for(const e of Object.getOwnPropertyNames(this)){if("extras"===e||"picture"===e)continue;const t=this[e];if(t instanceof r.XFAObject){this[r.$extra]=t;return t}}this[r.$extra]=null}return this[r.$extra]}[r.$toHTML](e){const t=this[r.$getExtra]();return t?t[r.$toHTML](e):o.HTMLResult.EMPTY}}class Validate extends r.XFAObject{constructor(e){super(d,"validate",!0);this.formatTest=(0,o.getStringOption)(e.formatTest,["warning","disabled","error"]);this.id=e.id||"";this.nullTest=(0,o.getStringOption)(e.nullTest,["disabled","error","warning"]);this.scriptTest=(0,o.getStringOption)(e.scriptTest,["error","disabled","warning"]);this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.message=null;this.picture=null;this.script=null}}class Value extends r.XFAObject{constructor(e){super(d,"value",!0);this.id=e.id||"";this.override=(0,o.getInteger)({data:e.override,defaultValue:0,validate:e=>1===e});this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.arc=null;this.boolean=null;this.date=null;this.dateTime=null;this.decimal=null;this.exData=null;this.float=null;this.image=null;this.integer=null;this.line=null;this.rectangle=null;this.text=null;this.time=null}[r.$setValue](e){const t=this[r.$getParent]();if(t instanceof Field&&t.ui&&t.ui.imageEdit){if(!this.image){this.image=new Image({});this[r.$appendChild](this.image)}this.image[r.$content]=e[r.$content];return}const a=e[r.$nodeName];if(null===this[a]){for(const e of Object.getOwnPropertyNames(this)){const t=this[e];if(t instanceof r.XFAObject){this[e]=null;this[r.$removeChild](t)}}this[e[r.$nodeName]]=e;this[r.$appendChild](e)}else this[a][r.$content]=e[r.$content]}[r.$text](){if(this.exData)return"string"==typeof this.exData[r.$content]?this.exData[r.$content].trim():this.exData[r.$content][r.$text]().trim();for(const e of Object.getOwnPropertyNames(this)){if("image"===e)continue;const t=this[e];if(t instanceof r.XFAObject)return(t[r.$content]||"").toString().trim()}return null}[r.$toHTML](e){for(const t of Object.getOwnPropertyNames(this)){const a=this[t];if(a instanceof r.XFAObject)return a[r.$toHTML](e)}return o.HTMLResult.EMPTY}}t.Value=Value;class Variables extends r.XFAObject{constructor(e){super(d,"variables",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.boolean=new r.XFAObjectArray;this.date=new r.XFAObjectArray;this.dateTime=new r.XFAObjectArray;this.decimal=new r.XFAObjectArray;this.exData=new r.XFAObjectArray;this.float=new r.XFAObjectArray;this.image=new r.XFAObjectArray;this.integer=new r.XFAObjectArray;this.manifest=new r.XFAObjectArray;this.script=new r.XFAObjectArray;this.text=new r.XFAObjectArray;this.time=new r.XFAObjectArray}[r.$isTransparent](){return!0}}class TemplateNamespace{static[n.$buildXFAObject](e,t){if(TemplateNamespace.hasOwnProperty(e)){const a=TemplateNamespace[e](t);a[r.$setSetAttributes](t);return a}}static appearanceFilter(e){return new AppearanceFilter(e)}static arc(e){return new Arc(e)}static area(e){return new Area(e)}static assist(e){return new Assist(e)}static barcode(e){return new Barcode(e)}static bind(e){return new Bind(e)}static bindItems(e){return new BindItems(e)}static bookend(e){return new Bookend(e)}static boolean(e){return new BooleanElement(e)}static border(e){return new Border(e)}static break(e){return new Break(e)}static breakAfter(e){return new BreakAfter(e)}static breakBefore(e){return new BreakBefore(e)}static button(e){return new Button(e)}static calculate(e){return new Calculate(e)}static caption(e){return new Caption(e)}static certificate(e){return new Certificate(e)}static certificates(e){return new Certificates(e)}static checkButton(e){return new CheckButton(e)}static choiceList(e){return new ChoiceList(e)}static color(e){return new Color(e)}static comb(e){return new Comb(e)}static connect(e){return new Connect(e)}static contentArea(e){return new ContentArea(e)}static corner(e){return new Corner(e)}static date(e){return new DateElement(e)}static dateTime(e){return new DateTime(e)}static dateTimeEdit(e){return new DateTimeEdit(e)}static decimal(e){return new Decimal(e)}static defaultUi(e){return new DefaultUi(e)}static desc(e){return new Desc(e)}static digestMethod(e){return new DigestMethod(e)}static digestMethods(e){return new DigestMethods(e)}static draw(e){return new Draw(e)}static edge(e){return new Edge(e)}static encoding(e){return new Encoding(e)}static encodings(e){return new Encodings(e)}static encrypt(e){return new Encrypt(e)}static encryptData(e){return new EncryptData(e)}static encryption(e){return new Encryption(e)}static encryptionMethod(e){return new EncryptionMethod(e)}static encryptionMethods(e){return new EncryptionMethods(e)}static event(e){return new Event(e)}static exData(e){return new ExData(e)}static exObject(e){return new ExObject(e)}static exclGroup(e){return new ExclGroup(e)}static execute(e){return new Execute(e)}static extras(e){return new Extras(e)}static field(e){return new Field(e)}static fill(e){return new Fill(e)}static filter(e){return new Filter(e)}static float(e){return new Float(e)}static font(e){return new Font(e)}static format(e){return new Format(e)}static handler(e){return new Handler(e)}static hyphenation(e){return new Hyphenation(e)}static image(e){return new Image(e)}static imageEdit(e){return new ImageEdit(e)}static integer(e){return new Integer(e)}static issuers(e){return new Issuers(e)}static items(e){return new Items(e)}static keep(e){return new Keep(e)}static keyUsage(e){return new KeyUsage(e)}static line(e){return new Line(e)}static linear(e){return new Linear(e)}static lockDocument(e){return new LockDocument(e)}static manifest(e){return new Manifest(e)}static margin(e){return new Margin(e)}static mdp(e){return new Mdp(e)}static medium(e){return new Medium(e)}static message(e){return new Message(e)}static numericEdit(e){return new NumericEdit(e)}static occur(e){return new Occur(e)}static oid(e){return new Oid(e)}static oids(e){return new Oids(e)}static overflow(e){return new Overflow(e)}static pageArea(e){return new PageArea(e)}static pageSet(e){return new PageSet(e)}static para(e){return new Para(e)}static passwordEdit(e){return new PasswordEdit(e)}static pattern(e){return new Pattern(e)}static picture(e){return new Picture(e)}static proto(e){return new Proto(e)}static radial(e){return new Radial(e)}static reason(e){return new Reason(e)}static reasons(e){return new Reasons(e)}static rectangle(e){return new Rectangle(e)}static ref(e){return new RefElement(e)}static script(e){return new Script(e)}static setProperty(e){return new SetProperty(e)}static signData(e){return new SignData(e)}static signature(e){return new Signature(e)}static signing(e){return new Signing(e)}static solid(e){return new Solid(e)}static speak(e){return new Speak(e)}static stipple(e){return new Stipple(e)}static subform(e){return new Subform(e)}static subformSet(e){return new SubformSet(e)}static subjectDN(e){return new SubjectDN(e)}static subjectDNs(e){return new SubjectDNs(e)}static submit(e){return new Submit(e)}static template(e){return new Template(e)}static text(e){return new Text(e)}static textEdit(e){return new TextEdit(e)}static time(e){return new Time(e)}static timeStamp(e){return new TimeStamp(e)}static toolTip(e){return new ToolTip(e)}static traversal(e){return new Traversal(e)}static traverse(e){return new Traverse(e)}static ui(e){return new Ui(e)}static validate(e){return new Validate(e)}static value(e){return new Value(e)}static variables(e){return new Variables(e)}}t.TemplateNamespace=TemplateNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.addHTML=function addHTML(e,t,a){const i=e[r.$extra],s=i.availableSpace,[o,c,l,h]=a;switch(e.layout){case"position":i.width=Math.max(i.width,o+l);i.height=Math.max(i.height,c+h);i.children.push(t);break;case"lr-tb":case"rl-tb":if(!i.line||1===i.attempt){i.line=createLine(e,[]);i.children.push(i.line);i.numberInLine=0}i.numberInLine+=1;i.line.children.push(t);if(0===i.attempt){i.currentWidth+=l;i.height=Math.max(i.height,i.prevHeight+h)}else{i.currentWidth=l;i.prevHeight=i.height;i.height+=h;i.attempt=0}i.width=Math.max(i.width,i.currentWidth);break;case"rl-row":case"row":{i.children.push(t);i.width+=l;i.height=Math.max(i.height,h);const e=(0,n.measureToString)(i.height);for(const t of i.children)t.attributes.style.height=e;break}case"table":case"tb":i.width=Math.min(s.width,Math.max(i.width,l));i.height+=h;i.children.push(t)}};t.checkDimensions=function checkDimensions(e,t){if(null===e[r.$getTemplateRoot]()[r.$extra].firstUnsplittable)return!0;if(0===e.w||0===e.h)return!0;const a=e[r.$getSubformParent](),n=a[r.$extra]&&a[r.$extra].attempt||0,[,i,s,o]=function getTransformedBBox(e){let t,a,r=""===e.w?NaN:e.w,n=""===e.h?NaN:e.h,[i,s]=[0,0];switch(e.anchorType||""){case"bottomCenter":[i,s]=[r/2,n];break;case"bottomLeft":[i,s]=[0,n];break;case"bottomRight":[i,s]=[r,n];break;case"middleCenter":[i,s]=[r/2,n/2];break;case"middleLeft":[i,s]=[0,n/2];break;case"middleRight":[i,s]=[r,n/2];break;case"topCenter":[i,s]=[r/2,0];break;case"topRight":[i,s]=[r,0]}switch(e.rotate||0){case 0:[t,a]=[-i,-s];break;case 90:[t,a]=[-s,i];[r,n]=[n,-r];break;case 180:[t,a]=[i,s];[r,n]=[-r,-n];break;case 270:[t,a]=[s,-i];[r,n]=[-n,r]}return[e.x+t+Math.min(0,r),e.y+a+Math.min(0,n),Math.abs(r),Math.abs(n)]}(e);switch(a.layout){case"lr-tb":case"rl-tb":return 0===n?e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure?""!==e.w?Math.round(s-t.width)<=2:t.width>2:!(""!==e.h&&Math.round(o-t.height)>2)&&(""!==e.w?Math.round(s-t.width)<=2||0===a[r.$extra].numberInLine&&t.height>2:t.width>2):!!e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure||!(""!==e.h&&Math.round(o-t.height)>2)&&((""===e.w||Math.round(s-t.width)<=2||!a[r.$isThereMoreWidth]())&&t.height>2);case"table":case"tb":return!!e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure||(""===e.h||e[r.$isSplittable]()?(""===e.w||Math.round(s-t.width)<=2||!a[r.$isThereMoreWidth]())&&t.height>2:Math.round(o-t.height)<=2);case"position":if(e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure)return!0;if(""===e.h||Math.round(o+i-t.height)<=2)return!0;const c=e[r.$getTemplateRoot]()[r.$extra].currentContentArea;return o+i>c.h;case"rl-row":case"row":return!!e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure||(""===e.h||Math.round(o-t.height)<=2);default:return!0}};t.flushHTML=function flushHTML(e){if(!e[r.$extra])return null;const t={name:"div",attributes:e[r.$extra].attributes,children:e[r.$extra].children};if(e[r.$extra].failingNode){const a=e[r.$extra].failingNode[r.$flushHTML]();a&&(e.layout.endsWith("-tb")?t.children.push(createLine(e,[a])):t.children.push(a))}if(0===t.children.length)return null;return t};t.getAvailableSpace=function getAvailableSpace(e){const t=e[r.$extra].availableSpace,a=e.margin?e.margin.topInset+e.margin.bottomInset:0,n=e.margin?e.margin.leftInset+e.margin.rightInset:0;switch(e.layout){case"lr-tb":case"rl-tb":return 0===e[r.$extra].attempt?{width:t.width-n-e[r.$extra].currentWidth,height:t.height-a-e[r.$extra].prevHeight}:{width:t.width-n,height:t.height-a-e[r.$extra].height};case"rl-row":case"row":return{width:e[r.$extra].columnWidths.slice(e[r.$extra].currentColumn).reduce(((e,t)=>e+t)),height:t.height-n};case"table":case"tb":return{width:t.width-n,height:t.height-a-e[r.$extra].height};default:return t}};var r=a(77),n=a(84);function createLine(e,t){return{name:"div",attributes:{class:["lr-tb"===e.layout?"xfaLr":"xfaRl"]},children:t}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.computeBbox=function computeBbox(e,t,a){let n;if(""!==e.w&&""!==e.h)n=[e.x,e.y,e.w,e.h];else{if(!a)return null;let i=e.w;if(""===i){if(0===e.maxW){const t=e[r.$getSubformParent]();i="position"===t.layout&&""!==t.w?0:e.minW}else i=Math.min(e.maxW,a.width);t.attributes.style.width=measureToString(i)}let s=e.h;if(""===s){if(0===e.maxH){const t=e[r.$getSubformParent]();s="position"===t.layout&&""!==t.h?0:e.minH}else s=Math.min(e.maxH,a.height);t.attributes.style.height=measureToString(s)}n=[e.x,e.y,i,s]}return n};t.createWrapper=function createWrapper(e,t){const{attributes:a}=t,{style:n}=a,i={name:"div",attributes:{class:["xfaWrapper"],style:Object.create(null)},children:[]};a.class.push("xfaWrapped");if(e.border){const{widths:a,insets:s}=e.border[r.$extra];let o,c,l=s[0],h=s[3];const u=s[0]+s[2],d=s[1]+s[3];switch(e.border.hand){case"even":l-=a[0]/2;h-=a[3]/2;o=`calc(100% + ${(a[1]+a[3])/2-d}px)`;c=`calc(100% + ${(a[0]+a[2])/2-u}px)`;break;case"left":l-=a[0];h-=a[3];o=`calc(100% + ${a[1]+a[3]-d}px)`;c=`calc(100% + ${a[0]+a[2]-u}px)`;break;case"right":o=d?`calc(100% - ${d}px)`:"100%";c=u?`calc(100% - ${u}px)`:"100%"}const f=["xfaBorder"];isPrintOnly(e.border)&&f.push("xfaPrintOnly");const g={name:"div",attributes:{class:f,style:{top:`${l}px`,left:`${h}px`,width:o,height:c}},children:[]};for(const e of["border","borderWidth","borderColor","borderRadius","borderStyle"])if(void 0!==n[e]){g.attributes.style[e]=n[e];delete n[e]}i.children.push(g,t)}else i.children.push(t);for(const e of["background","backgroundClip","top","left","width","height","minWidth","minHeight","maxWidth","maxHeight","transform","transformOrigin","visibility"])if(void 0!==n[e]){i.attributes.style[e]=n[e];delete n[e]}"absolute"===n.position?i.attributes.style.position="absolute":i.attributes.style.position="relative";delete n.position;if(n.alignSelf){i.attributes.style.alignSelf=n.alignSelf;delete n.alignSelf}return i};t.fixDimensions=function fixDimensions(e){const t=e[r.$getSubformParent]();if(t.layout&&t.layout.includes("row")){const a=t[r.$extra],n=e.colSpan;let i;i=-1===n?a.columnWidths.slice(a.currentColumn).reduce(((e,t)=>e+t),0):a.columnWidths.slice(a.currentColumn,a.currentColumn+n).reduce(((e,t)=>e+t),0);isNaN(i)||(e.w=i)}t.layout&&"position"!==t.layout&&(e.x=e.y=0);"table"===e.layout&&""===e.w&&Array.isArray(e.columnWidths)&&(e.w=e.columnWidths.reduce(((e,t)=>e+t),0))};t.fixTextIndent=function fixTextIndent(e){const t=(0,i.getMeasurement)(e.textIndent,"0px");if(t>=0)return;const a="padding"+("left"==("right"===e.textAlign?"right":"left")?"Left":"Right"),r=(0,i.getMeasurement)(e[a],"0px");e[a]=r-t+"px"};t.fixURL=function fixURL(e){const t=(0,n.createValidAbsoluteUrl)(e,null,{addDefaultProtocol:!0,tryConvertEncoding:!0});return t?t.href:null};t.isPrintOnly=isPrintOnly;t.layoutClass=function layoutClass(e){switch(e.layout){case"position":default:return"xfaPosition";case"lr-tb":return"xfaLrTb";case"rl-row":return"xfaRlRow";case"rl-tb":return"xfaRlTb";case"row":return"xfaRow";case"table":return"xfaTable";case"tb":return"xfaTb"}};t.layoutNode=function layoutNode(e,t){let a=null,n=null,i=!1;if((!e.w||!e.h)&&e.value){let s=0,o=0;if(e.margin){s=e.margin.leftInset+e.margin.rightInset;o=e.margin.topInset+e.margin.bottomInset}let c=null,l=null;if(e.para){l=Object.create(null);c=""===e.para.lineHeight?null:e.para.lineHeight;l.top=""===e.para.spaceAbove?0:e.para.spaceAbove;l.bottom=""===e.para.spaceBelow?0:e.para.spaceBelow;l.left=""===e.para.marginLeft?0:e.para.marginLeft;l.right=""===e.para.marginRight?0:e.para.marginRight}let h=e.font;if(!h){const t=e[r.$getTemplateRoot]();let a=e[r.$getParent]();for(;a&&a!==t;){if(a.font){h=a.font;break}a=a[r.$getParent]()}}const u=(e.w?e.w:t.width)-s,d=e[r.$globalData].fontFinder;if(e.value.exData&&e.value.exData[r.$content]&&"text/html"===e.value.exData.contentType){const t=layoutText(e.value.exData[r.$content],h,l,c,d,u);n=t.width;a=t.height;i=t.isBroken}else{const t=e.value[r.$text]();if(t){const e=layoutText(t,h,l,c,d,u);n=e.width;a=e.height;i=e.isBroken}}null===n||e.w||(n+=s);null===a||e.h||(a+=o)}return{w:n,h:a,isBroken:i}};t.measureToString=measureToString;t.setAccess=function setAccess(e,t){switch(e.access){case"nonInteractive":t.push("xfaNonInteractive");break;case"readOnly":t.push("xfaReadOnly");break;case"protected":t.push("xfaDisabled")}};t.setFontFamily=function setFontFamily(e,t,a,r){if(!a){delete r.fontFamily;return}const n=(0,i.stripQuotes)(e.typeface);r.fontFamily=`"${n}"`;const o=a.find(n);if(o){const{fontFamily:a}=o.regular.cssFontInfo;a!==n&&(r.fontFamily=`"${a}"`);const i=getCurrentPara(t);if(i&&""!==i.lineHeight)return;if(r.lineHeight)return;const c=(0,s.selectFont)(e,o);c&&(r.lineHeight=Math.max(1.2,c.lineHeight))}};t.setMinMaxDimensions=function setMinMaxDimensions(e,t){if("position"===e[r.$getSubformParent]().layout){e.minW>0&&(t.minWidth=measureToString(e.minW));e.maxW>0&&(t.maxWidth=measureToString(e.maxW));e.minH>0&&(t.minHeight=measureToString(e.minH));e.maxH>0&&(t.maxHeight=measureToString(e.maxH))}};t.setPara=function setPara(e,t,a){if(a.attributes.class&&a.attributes.class.includes("xfaRich")){if(t){""===e.h&&(t.height="auto");""===e.w&&(t.width="auto")}const n=getCurrentPara(e);if(n){const e=a.attributes.style;e.display="flex";e.flexDirection="column";switch(n.vAlign){case"top":e.justifyContent="start";break;case"bottom":e.justifyContent="end";break;case"middle":e.justifyContent="center"}const t=n[r.$toStyle]();for(const[a,r]of Object.entries(t))a in e||(e[a]=r)}}};t.toStyle=function toStyle(e,...t){const a=Object.create(null);for(const i of t){const t=e[i];if(null!==t)if(c.hasOwnProperty(i))c[i](e,a);else if(t instanceof r.XFAObject){const e=t[r.$toStyle]();e?Object.assign(a,e):(0,n.warn)(`(DEBUG) - XFA - style for ${i} not implemented yet`)}}return a};var r=a(77),n=a(2),i=a(78),s=a(85),o=a(86);function measureToString(e){return"string"==typeof e?"0px":Number.isInteger(e)?`${e}px`:`${e.toFixed(2)}px`}const c={anchorType(e,t){const a=e[r.$getSubformParent]();if(a&&(!a.layout||"position"===a.layout)){"transform"in t||(t.transform="");switch(e.anchorType){case"bottomCenter":t.transform+="translate(-50%, -100%)";break;case"bottomLeft":t.transform+="translate(0,-100%)";break;case"bottomRight":t.transform+="translate(-100%,-100%)";break;case"middleCenter":t.transform+="translate(-50%,-50%)";break;case"middleLeft":t.transform+="translate(0,-50%)";break;case"middleRight":t.transform+="translate(-100%,-50%)";break;case"topCenter":t.transform+="translate(-50%,0)";break;case"topRight":t.transform+="translate(-100%,0)"}}},dimensions(e,t){const a=e[r.$getSubformParent]();let n=e.w;const i=e.h;if(a.layout&&a.layout.includes("row")){const t=a[r.$extra],i=e.colSpan;let s;if(-1===i){s=t.columnWidths.slice(t.currentColumn).reduce(((e,t)=>e+t),0);t.currentColumn=0}else{s=t.columnWidths.slice(t.currentColumn,t.currentColumn+i).reduce(((e,t)=>e+t),0);t.currentColumn=(t.currentColumn+e.colSpan)%t.columnWidths.length}isNaN(s)||(n=e.w=s)}t.width=""!==n?measureToString(n):"auto";t.height=""!==i?measureToString(i):"auto"},position(e,t){const a=e[r.$getSubformParent]();if(!a||!a.layout||"position"===a.layout){t.position="absolute";t.left=measureToString(e.x);t.top=measureToString(e.y)}},rotate(e,t){if(e.rotate){"transform"in t||(t.transform="");t.transform+=`rotate(-${e.rotate}deg)`;t.transformOrigin="top left"}},presence(e,t){switch(e.presence){case"invisible":t.visibility="hidden";break;case"hidden":case"inactive":t.display="none"}},hAlign(e,t){if("para"===e[r.$nodeName])switch(e.hAlign){case"justifyAll":t.textAlign="justify-all";break;case"radix":t.textAlign="left";break;default:t.textAlign=e.hAlign}else switch(e.hAlign){case"left":t.alignSelf="start";break;case"center":t.alignSelf="center";break;case"right":t.alignSelf="end"}},margin(e,t){e.margin&&(t.margin=e.margin[r.$toStyle]().margin)}};function layoutText(e,t,a,n,i,s){const c=new o.TextMeasure(t,a,n,i);"string"==typeof e?c.addString(e):e[r.$pushGlyphs](c);return c.compute(s)}function isPrintOnly(e){return e.relevant.length>0&&!e.relevant[0].excluded&&"print"===e.relevant[0].viewname}function getCurrentPara(e){const t=e[r.$getTemplateRoot]()[r.$extra].paraStack;return t.length?t[t.length-1]:null}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.FontFinder=void 0;t.getMetrics=function getMetrics(e,t=!1){let a=null;if(e){const t=(0,n.stripQuotes)(e.typeface),i=e[r.$globalData].fontFinder.find(t);a=selectFont(e,i)}if(!a)return{lineHeight:12,lineGap:2,lineNoGap:10};const i=e.size||10,s=a.lineHeight?Math.max(t?0:1.2,a.lineHeight):1.2,o=void 0===a.lineGap?.2:a.lineGap;return{lineHeight:s*i,lineGap:o*i,lineNoGap:Math.max(1,s-o)*i}};t.selectFont=selectFont;var r=a(77),n=a(78),i=a(2);t.FontFinder=class FontFinder{constructor(e){this.fonts=new Map;this.cache=new Map;this.warned=new Set;this.defaultFont=null;this.add(e)}add(e,t=null){for(const t of e)this.addPdfFont(t);for(const e of this.fonts.values())e.regular||(e.regular=e.italic||e.bold||e.bolditalic);if(!t||0===t.size)return;const a=this.fonts.get("PdfJS-Fallback-PdfJS-XFA");for(const e of t)this.fonts.set(e,a)}addPdfFont(e){const t=e.cssFontInfo,a=t.fontFamily;let r=this.fonts.get(a);if(!r){r=Object.create(null);this.fonts.set(a,r);this.defaultFont||(this.defaultFont=r)}let n="";const i=parseFloat(t.fontWeight);0!==parseFloat(t.italicAngle)?n=i>=700?"bolditalic":"italic":i>=700&&(n="bold");if(!n){(e.name.includes("Bold")||e.psName&&e.psName.includes("Bold"))&&(n="bold");(e.name.includes("Italic")||e.name.endsWith("It")||e.psName&&(e.psName.includes("Italic")||e.psName.endsWith("It")))&&(n+="italic")}n||(n="regular");r[n]=e}getDefault(){return this.defaultFont}find(e,t=!0){let a=this.fonts.get(e)||this.cache.get(e);if(a)return a;const r=/,|-|_| |bolditalic|bold|italic|regular|it/gi;let n=e.replace(r,"");a=this.fonts.get(n);if(a){this.cache.set(e,a);return a}n=n.toLowerCase();const s=[];for(const[e,t]of this.fonts.entries())e.replace(r,"").toLowerCase().startsWith(n)&&s.push(t);if(0===s.length)for(const[,e]of this.fonts.entries())e.regular.name&&e.regular.name.replace(r,"").toLowerCase().startsWith(n)&&s.push(e);if(0===s.length){n=n.replace(/psmt|mt/gi,"");for(const[e,t]of this.fonts.entries())e.replace(r,"").toLowerCase().startsWith(n)&&s.push(t)}if(0===s.length)for(const e of this.fonts.values())e.regular.name&&e.regular.name.replace(r,"").toLowerCase().startsWith(n)&&s.push(e);if(s.length>=1){1!==s.length&&t&&(0,i.warn)(`XFA - Too many choices to guess the correct font: ${e}`);this.cache.set(e,s[0]);return s[0]}if(t&&!this.warned.has(e)){this.warned.add(e);(0,i.warn)(`XFA - Cannot find the font: ${e}`)}return null}};function selectFont(e,t){return"italic"===e.posture?"bold"===e.weight?t.bolditalic:t.italic:"bold"===e.weight?t.bold:t.regular}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.TextMeasure=void 0;var r=a(85);class FontInfo{constructor(e,t,a,n){this.lineHeight=a;this.paraMargin=t||{top:0,bottom:0,left:0,right:0};if(!e){[this.pdfFont,this.xfaFont]=this.defaultFont(n);return}this.xfaFont={typeface:e.typeface,posture:e.posture,weight:e.weight,size:e.size,letterSpacing:e.letterSpacing};const i=n.find(e.typeface);if(i){this.pdfFont=(0,r.selectFont)(e,i);this.pdfFont||([this.pdfFont,this.xfaFont]=this.defaultFont(n))}else[this.pdfFont,this.xfaFont]=this.defaultFont(n)}defaultFont(e){const t=e.find("Helvetica",!1)||e.find("Myriad Pro",!1)||e.find("Arial",!1)||e.getDefault();if(t&&t.regular){const e=t.regular;return[e,{typeface:e.cssFontInfo.fontFamily,posture:"normal",weight:"normal",size:10,letterSpacing:0}]}return[null,{typeface:"Courier",posture:"normal",weight:"normal",size:10,letterSpacing:0}]}}class FontSelector{constructor(e,t,a,r){this.fontFinder=r;this.stack=[new FontInfo(e,t,a,r)]}pushData(e,t,a){const r=this.stack[this.stack.length-1];for(const t of["typeface","posture","weight","size","letterSpacing"])e[t]||(e[t]=r.xfaFont[t]);for(const e of["top","bottom","left","right"])isNaN(t[e])&&(t[e]=r.paraMargin[e]);const n=new FontInfo(e,t,a||r.lineHeight,this.fontFinder);n.pdfFont||(n.pdfFont=r.pdfFont);this.stack.push(n)}popFont(){this.stack.pop()}topFont(){return this.stack[this.stack.length-1]}}t.TextMeasure=class TextMeasure{constructor(e,t,a,r){this.glyphs=[];this.fontSelector=new FontSelector(e,t,a,r);this.extraHeight=0}pushData(e,t,a){this.fontSelector.pushData(e,t,a)}popFont(e){return this.fontSelector.popFont()}addPara(){const e=this.fontSelector.topFont();this.extraHeight+=e.paraMargin.top+e.paraMargin.bottom}addString(e){if(!e)return;const t=this.fontSelector.topFont(),a=t.xfaFont.size;if(t.pdfFont){const r=t.xfaFont.letterSpacing,n=t.pdfFont,i=n.lineHeight||1.2,s=t.lineHeight||Math.max(1.2,i)*a,o=i-(void 0===n.lineGap?.2:n.lineGap),c=Math.max(1,o)*a,l=a/1e3,h=n.defaultWidth||n.charsToGlyphs(" ")[0].width;for(const t of e.split(/[\u2029\n]/)){const e=n.encodeString(t).join(""),a=n.charsToGlyphs(e);for(const e of a){const t=e.width||h;this.glyphs.push([t*l+r,s,c,e.unicode,!1])}this.glyphs.push([0,0,0,"\n",!0])}this.glyphs.pop()}else{for(const t of e.split(/[\u2029\n]/)){for(const e of t.split(""))this.glyphs.push([a,1.2*a,a,e,!1]);this.glyphs.push([0,0,0,"\n",!0])}this.glyphs.pop()}}compute(e){let t=-1,a=0,r=0,n=0,i=0,s=0,o=!1,c=!0;for(let l=0,h=this.glyphs.length;le){r=Math.max(r,i);i=0;n+=s;s=m;t=-1;a=0;o=!0;c=!1}else{s=Math.max(m,s);a=i;i+=h;t=l}else if(i+h>e){n+=s;s=m;if(-1!==t){l=t;r=Math.max(r,a);i=0;t=-1;a=0}else{r=Math.max(r,i);i=h}o=!0;c=!1}else{i+=h;s=Math.max(m,s)}}r=Math.max(r,i);n+=s+this.extraHeight;return{width:1.02*r,height:n,isBroken:o}}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.DataHandler=void 0;var r=a(77);t.DataHandler=class DataHandler{constructor(e,t){this.data=t;this.dataset=e.datasets||null}serialize(e){const t=[[-1,this.data[r.$getChildren]()]];for(;t.length>0;){const a=t[t.length-1],[n,i]=a;if(n+1===i.length){t.pop();continue}const s=i[++a[0]],o=e.get(s[r.$uid]);if(o)s[r.$setValue](o);else{const t=s[r.$getAttributes]();for(const a of t.values()){const t=e.get(a[r.$uid]);if(t){a[r.$setValue](t);break}}}const c=s[r.$getChildren]();c.length>0&&t.push([-1,c])}const a=[''];if(this.dataset)for(const e of this.dataset[r.$getChildren]())"data"!==e[r.$nodeName]&&e[r.$toString](a);this.data[r.$toString](a);a.push("");return a.join("")}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XFAParser=void 0;var r=a(77),n=a(70),i=a(89),s=a(2);class XFAParser extends n.XMLParserBase{constructor(e=null,t=!1){super();this._builder=new i.Builder(e);this._stack=[];this._globalData={usedTypefaces:new Set};this._ids=new Map;this._current=this._builder.buildRoot(this._ids);this._errorCode=n.XMLParserErrorCode.NoError;this._whiteRegex=/^\s+$/;this._nbsps=/\xa0+/g;this._richText=t}parse(e){this.parseXml(e);if(this._errorCode===n.XMLParserErrorCode.NoError){this._current[r.$finalize]();return this._current.element}}onText(e){e=e.replace(this._nbsps,(e=>e.slice(1)+" "));this._richText||this._current[r.$acceptWhitespace]()?this._current[r.$onText](e,this._richText):this._whiteRegex.test(e)||this._current[r.$onText](e.trim())}onCdata(e){this._current[r.$onText](e)}_mkAttributes(e,t){let a=null,n=null;const i=Object.create({});for(const{name:o,value:c}of e)if("xmlns"===o)a?(0,s.warn)(`XFA - multiple namespace definition in <${t}>`):a=c;else if(o.startsWith("xmlns:")){const e=o.substring("xmlns:".length);n||(n=[]);n.push({prefix:e,value:c})}else{const e=o.indexOf(":");if(-1===e)i[o]=c;else{let t=i[r.$nsAttributes];t||(t=i[r.$nsAttributes]=Object.create(null));const[a,n]=[o.slice(0,e),o.slice(e+1)];let s=t[a];s||(s=t[a]=Object.create(null));s[n]=c}}return[a,n,i]}_getNameAndPrefix(e,t){const a=e.indexOf(":");return-1===a?[e,null]:[e.substring(a+1),t?"":e.substring(0,a)]}onBeginElement(e,t,a){const[n,i,s]=this._mkAttributes(t,e),[o,c]=this._getNameAndPrefix(e,this._builder.isNsAgnostic()),l=this._builder.build({nsPrefix:c,name:o,attributes:s,namespace:n,prefixes:i});l[r.$globalData]=this._globalData;if(a){l[r.$finalize]();this._current[r.$onChild](l)&&l[r.$setId](this._ids);l[r.$clean](this._builder)}else{this._stack.push(this._current);this._current=l}}onEndElement(e){const t=this._current;if(t[r.$isCDATAXml]()&&"string"==typeof t[r.$content]){const e=new XFAParser;e._globalData=this._globalData;const a=e.parse(t[r.$content]);t[r.$content]=null;t[r.$onChild](a)}t[r.$finalize]();this._current=this._stack.pop();this._current[r.$onChild](t)&&t[r.$setId](this._ids);t[r.$clean](this._builder)}onError(e){this._errorCode=e}}t.XFAParser=XFAParser},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Builder=void 0;var r=a(79),n=a(77),i=a(90),s=a(82),o=a(99),c=a(2);class Root extends n.XFAObject{constructor(e){super(-1,"root",Object.create(null));this.element=null;this[n.$ids]=e}[n.$onChild](e){this.element=e;return!0}[n.$finalize](){super[n.$finalize]();if(this.element.template instanceof s.Template){this[n.$ids].set(n.$root,this.element);this.element.template[n.$resolvePrototypes](this[n.$ids]);this.element.template[n.$ids]=this[n.$ids]}}}class Empty extends n.XFAObject{constructor(){super(-1,"",Object.create(null))}[n.$onChild](e){return!1}}t.Builder=class Builder{constructor(e=null){this._namespaceStack=[];this._nsAgnosticLevel=0;this._namespacePrefixes=new Map;this._namespaces=new Map;this._nextNsId=Math.max(...Object.values(r.NamespaceIds).map((({id:e})=>e)));this._currentNamespace=e||new o.UnknownNamespace(++this._nextNsId)}buildRoot(e){return new Root(e)}build({nsPrefix:e,name:t,attributes:a,namespace:s,prefixes:o}){const c=null!==s;if(c){this._namespaceStack.push(this._currentNamespace);this._currentNamespace=this._searchNamespace(s)}o&&this._addNamespacePrefix(o);if(a.hasOwnProperty(n.$nsAttributes)){const e=i.NamespaceSetUp.datasets,t=a[n.$nsAttributes];let r=null;for(const[a,n]of Object.entries(t)){if(this._getNamespaceToUse(a)===e){r={xfa:n};break}}r?a[n.$nsAttributes]=r:delete a[n.$nsAttributes]}const l=this._getNamespaceToUse(e),h=l&&l[r.$buildXFAObject](t,a)||new Empty;h[n.$isNsAgnostic]()&&this._nsAgnosticLevel++;(c||o||h[n.$isNsAgnostic]())&&(h[n.$cleanup]={hasNamespace:c,prefixes:o,nsAgnostic:h[n.$isNsAgnostic]()});return h}isNsAgnostic(){return this._nsAgnosticLevel>0}_searchNamespace(e){let t=this._namespaces.get(e);if(t)return t;for(const[a,{check:n}]of Object.entries(r.NamespaceIds))if(n(e)){t=i.NamespaceSetUp[a];if(t){this._namespaces.set(e,t);return t}break}t=new o.UnknownNamespace(++this._nextNsId);this._namespaces.set(e,t);return t}_addNamespacePrefix(e){for(const{prefix:t,value:a}of e){const e=this._searchNamespace(a);let r=this._namespacePrefixes.get(t);if(!r){r=[];this._namespacePrefixes.set(t,r)}r.push(e)}}_getNamespaceToUse(e){if(!e)return this._currentNamespace;const t=this._namespacePrefixes.get(e);if(t&&t.length>0)return t[t.length-1];(0,c.warn)(`Unknown namespace prefix: ${e}.`);return null}clean(e){const{hasNamespace:t,prefixes:a,nsAgnostic:r}=e;t&&(this._currentNamespace=this._namespaceStack.pop());a&&a.forEach((({prefix:e})=>{this._namespacePrefixes.get(e).pop()}));r&&this._nsAgnosticLevel--}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.NamespaceSetUp=void 0;var r=a(91),n=a(92),i=a(93),s=a(94),o=a(95),c=a(96),l=a(82),h=a(97),u=a(98);const d={config:r.ConfigNamespace,connection:n.ConnectionSetNamespace,datasets:i.DatasetsNamespace,localeSet:s.LocaleSetNamespace,signature:o.SignatureNamespace,stylesheet:c.StylesheetNamespace,template:l.TemplateNamespace,xdp:h.XdpNamespace,xhtml:u.XhtmlNamespace};t.NamespaceSetUp=d},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ConfigNamespace=void 0;var r=a(79),n=a(77),i=a(78),s=a(2);const o=r.NamespaceIds.config.id;class Acrobat extends n.XFAObject{constructor(e){super(o,"acrobat",!0);this.acrobat7=null;this.autoSave=null;this.common=null;this.validate=null;this.validateApprovalSignatures=null;this.submitUrl=new n.XFAObjectArray}}class Acrobat7 extends n.XFAObject{constructor(e){super(o,"acrobat7",!0);this.dynamicRender=null}}class ADBE_JSConsole extends n.OptionObject{constructor(e){super(o,"ADBE_JSConsole",["delegate","Enable","Disable"])}}class ADBE_JSDebugger extends n.OptionObject{constructor(e){super(o,"ADBE_JSDebugger",["delegate","Enable","Disable"])}}class AddSilentPrint extends n.Option01{constructor(e){super(o,"addSilentPrint")}}class AddViewerPreferences extends n.Option01{constructor(e){super(o,"addViewerPreferences")}}class AdjustData extends n.Option10{constructor(e){super(o,"adjustData")}}class AdobeExtensionLevel extends n.IntegerObject{constructor(e){super(o,"adobeExtensionLevel",0,(e=>e>=1&&e<=8))}}class Agent extends n.XFAObject{constructor(e){super(o,"agent",!0);this.name=e.name?e.name.trim():"";this.common=new n.XFAObjectArray}}class AlwaysEmbed extends n.ContentObject{constructor(e){super(o,"alwaysEmbed")}}class Amd extends n.StringObject{constructor(e){super(o,"amd")}}class Area extends n.XFAObject{constructor(e){super(o,"area");this.level=(0,i.getInteger)({data:e.level,defaultValue:0,validate:e=>e>=1&&e<=3});this.name=(0,i.getStringOption)(e.name,["","barcode","coreinit","deviceDriver","font","general","layout","merge","script","signature","sourceSet","templateCache"])}}class Attributes extends n.OptionObject{constructor(e){super(o,"attributes",["preserve","delegate","ignore"])}}class AutoSave extends n.OptionObject{constructor(e){super(o,"autoSave",["disabled","enabled"])}}class Base extends n.StringObject{constructor(e){super(o,"base")}}class BatchOutput extends n.XFAObject{constructor(e){super(o,"batchOutput");this.format=(0,i.getStringOption)(e.format,["none","concat","zip","zipCompress"])}}class BehaviorOverride extends n.ContentObject{constructor(e){super(o,"behaviorOverride")}[n.$finalize](){this[n.$content]=new Map(this[n.$content].trim().split(/\s+/).filter((e=>e.includes(":"))).map((e=>e.split(":",2))))}}class Cache extends n.XFAObject{constructor(e){super(o,"cache",!0);this.templateCache=null}}class Change extends n.Option01{constructor(e){super(o,"change")}}class Common extends n.XFAObject{constructor(e){super(o,"common",!0);this.data=null;this.locale=null;this.localeSet=null;this.messaging=null;this.suppressBanner=null;this.template=null;this.validationMessaging=null;this.versionControl=null;this.log=new n.XFAObjectArray}}class Compress extends n.XFAObject{constructor(e){super(o,"compress");this.scope=(0,i.getStringOption)(e.scope,["imageOnly","document"])}}class CompressLogicalStructure extends n.Option01{constructor(e){super(o,"compressLogicalStructure")}}class CompressObjectStream extends n.Option10{constructor(e){super(o,"compressObjectStream")}}class Compression extends n.XFAObject{constructor(e){super(o,"compression",!0);this.compressLogicalStructure=null;this.compressObjectStream=null;this.level=null;this.type=null}}class Config extends n.XFAObject{constructor(e){super(o,"config",!0);this.acrobat=null;this.present=null;this.trace=null;this.agent=new n.XFAObjectArray}}class Conformance extends n.OptionObject{constructor(e){super(o,"conformance",["A","B"])}}class ContentCopy extends n.Option01{constructor(e){super(o,"contentCopy")}}class Copies extends n.IntegerObject{constructor(e){super(o,"copies",1,(e=>e>=1))}}class Creator extends n.StringObject{constructor(e){super(o,"creator")}}class CurrentPage extends n.IntegerObject{constructor(e){super(o,"currentPage",0,(e=>e>=0))}}class Data extends n.XFAObject{constructor(e){super(o,"data",!0);this.adjustData=null;this.attributes=null;this.incrementalLoad=null;this.outputXSL=null;this.range=null;this.record=null;this.startNode=null;this.uri=null;this.window=null;this.xsl=null;this.excludeNS=new n.XFAObjectArray;this.transform=new n.XFAObjectArray}}class Debug extends n.XFAObject{constructor(e){super(o,"debug",!0);this.uri=null}}class DefaultTypeface extends n.ContentObject{constructor(e){super(o,"defaultTypeface");this.writingScript=(0,i.getStringOption)(e.writingScript,["*","Arabic","Cyrillic","EastEuropeanRoman","Greek","Hebrew","Japanese","Korean","Roman","SimplifiedChinese","Thai","TraditionalChinese","Vietnamese"])}}class Destination extends n.OptionObject{constructor(e){super(o,"destination",["pdf","pcl","ps","webClient","zpl"])}}class DocumentAssembly extends n.Option01{constructor(e){super(o,"documentAssembly")}}class Driver extends n.XFAObject{constructor(e){super(o,"driver",!0);this.name=e.name?e.name.trim():"";this.fontInfo=null;this.xdc=null}}class DuplexOption extends n.OptionObject{constructor(e){super(o,"duplexOption",["simplex","duplexFlipLongEdge","duplexFlipShortEdge"])}}class DynamicRender extends n.OptionObject{constructor(e){super(o,"dynamicRender",["forbidden","required"])}}class Embed extends n.Option01{constructor(e){super(o,"embed")}}class Encrypt extends n.Option01{constructor(e){super(o,"encrypt")}}class Encryption extends n.XFAObject{constructor(e){super(o,"encryption",!0);this.encrypt=null;this.encryptionLevel=null;this.permissions=null}}class EncryptionLevel extends n.OptionObject{constructor(e){super(o,"encryptionLevel",["40bit","128bit"])}}class Enforce extends n.StringObject{constructor(e){super(o,"enforce")}}class Equate extends n.XFAObject{constructor(e){super(o,"equate");this.force=(0,i.getInteger)({data:e.force,defaultValue:1,validate:e=>0===e});this.from=e.from||"";this.to=e.to||""}}class EquateRange extends n.XFAObject{constructor(e){super(o,"equateRange");this.from=e.from||"";this.to=e.to||"";this._unicodeRange=e.unicodeRange||""}get unicodeRange(){const e=[],t=/U\+([0-9a-fA-F]+)/,a=this._unicodeRange;for(let r of a.split(",").map((e=>e.trim())).filter((e=>!!e))){r=r.split("-",2).map((e=>{const a=e.match(t);return a?parseInt(a[1],16):0}));1===r.length&&r.push(r[0]);e.push(r)}return(0,s.shadow)(this,"unicodeRange",e)}}class Exclude extends n.ContentObject{constructor(e){super(o,"exclude")}[n.$finalize](){this[n.$content]=this[n.$content].trim().split(/\s+/).filter((e=>e&&["calculate","close","enter","exit","initialize","ready","validate"].includes(e)))}}class ExcludeNS extends n.StringObject{constructor(e){super(o,"excludeNS")}}class FlipLabel extends n.OptionObject{constructor(e){super(o,"flipLabel",["usePrinterSetting","on","off"])}}class FontInfo extends n.XFAObject{constructor(e){super(o,"fontInfo",!0);this.embed=null;this.map=null;this.subsetBelow=null;this.alwaysEmbed=new n.XFAObjectArray;this.defaultTypeface=new n.XFAObjectArray;this.neverEmbed=new n.XFAObjectArray}}class FormFieldFilling extends n.Option01{constructor(e){super(o,"formFieldFilling")}}class GroupParent extends n.StringObject{constructor(e){super(o,"groupParent")}}class IfEmpty extends n.OptionObject{constructor(e){super(o,"ifEmpty",["dataValue","dataGroup","ignore","remove"])}}class IncludeXDPContent extends n.StringObject{constructor(e){super(o,"includeXDPContent")}}class IncrementalLoad extends n.OptionObject{constructor(e){super(o,"incrementalLoad",["none","forwardOnly"])}}class IncrementalMerge extends n.Option01{constructor(e){super(o,"incrementalMerge")}}class Interactive extends n.Option01{constructor(e){super(o,"interactive")}}class Jog extends n.OptionObject{constructor(e){super(o,"jog",["usePrinterSetting","none","pageSet"])}}class LabelPrinter extends n.XFAObject{constructor(e){super(o,"labelPrinter",!0);this.name=(0,i.getStringOption)(e.name,["zpl","dpl","ipl","tcpl"]);this.batchOutput=null;this.flipLabel=null;this.fontInfo=null;this.xdc=null}}class Layout extends n.OptionObject{constructor(e){super(o,"layout",["paginate","panel"])}}class Level extends n.IntegerObject{constructor(e){super(o,"level",0,(e=>e>0))}}class Linearized extends n.Option01{constructor(e){super(o,"linearized")}}class Locale extends n.StringObject{constructor(e){super(o,"locale")}}class LocaleSet extends n.StringObject{constructor(e){super(o,"localeSet")}}class Log extends n.XFAObject{constructor(e){super(o,"log",!0);this.mode=null;this.threshold=null;this.to=null;this.uri=null}}class MapElement extends n.XFAObject{constructor(e){super(o,"map",!0);this.equate=new n.XFAObjectArray;this.equateRange=new n.XFAObjectArray}}class MediumInfo extends n.XFAObject{constructor(e){super(o,"mediumInfo",!0);this.map=null}}class Message extends n.XFAObject{constructor(e){super(o,"message",!0);this.msgId=null;this.severity=null}}class Messaging extends n.XFAObject{constructor(e){super(o,"messaging",!0);this.message=new n.XFAObjectArray}}class Mode extends n.OptionObject{constructor(e){super(o,"mode",["append","overwrite"])}}class ModifyAnnots extends n.Option01{constructor(e){super(o,"modifyAnnots")}}class MsgId extends n.IntegerObject{constructor(e){super(o,"msgId",1,(e=>e>=1))}}class NameAttr extends n.StringObject{constructor(e){super(o,"nameAttr")}}class NeverEmbed extends n.ContentObject{constructor(e){super(o,"neverEmbed")}}class NumberOfCopies extends n.IntegerObject{constructor(e){super(o,"numberOfCopies",null,(e=>e>=2&&e<=5))}}class OpenAction extends n.XFAObject{constructor(e){super(o,"openAction",!0);this.destination=null}}class Output extends n.XFAObject{constructor(e){super(o,"output",!0);this.to=null;this.type=null;this.uri=null}}class OutputBin extends n.StringObject{constructor(e){super(o,"outputBin")}}class OutputXSL extends n.XFAObject{constructor(e){super(o,"outputXSL",!0);this.uri=null}}class Overprint extends n.OptionObject{constructor(e){super(o,"overprint",["none","both","draw","field"])}}class Packets extends n.StringObject{constructor(e){super(o,"packets")}[n.$finalize](){"*"!==this[n.$content]&&(this[n.$content]=this[n.$content].trim().split(/\s+/).filter((e=>["config","datasets","template","xfdf","xslt"].includes(e))))}}class PageOffset extends n.XFAObject{constructor(e){super(o,"pageOffset");this.x=(0,i.getInteger)({data:e.x,defaultValue:"useXDCSetting",validate:e=>!0});this.y=(0,i.getInteger)({data:e.y,defaultValue:"useXDCSetting",validate:e=>!0})}}class PageRange extends n.StringObject{constructor(e){super(o,"pageRange")}[n.$finalize](){const e=this[n.$content].trim().split(/\s+/).map((e=>parseInt(e,10))),t=[];for(let a=0,r=e.length;a!1))}}class Pcl extends n.XFAObject{constructor(e){super(o,"pcl",!0);this.name=e.name||"";this.batchOutput=null;this.fontInfo=null;this.jog=null;this.mediumInfo=null;this.outputBin=null;this.pageOffset=null;this.staple=null;this.xdc=null}}class Pdf extends n.XFAObject{constructor(e){super(o,"pdf",!0);this.name=e.name||"";this.adobeExtensionLevel=null;this.batchOutput=null;this.compression=null;this.creator=null;this.encryption=null;this.fontInfo=null;this.interactive=null;this.linearized=null;this.openAction=null;this.pdfa=null;this.producer=null;this.renderPolicy=null;this.scriptModel=null;this.silentPrint=null;this.submitFormat=null;this.tagged=null;this.version=null;this.viewerPreferences=null;this.xdc=null}}class Pdfa extends n.XFAObject{constructor(e){super(o,"pdfa",!0);this.amd=null;this.conformance=null;this.includeXDPContent=null;this.part=null}}class Permissions extends n.XFAObject{constructor(e){super(o,"permissions",!0);this.accessibleContent=null;this.change=null;this.contentCopy=null;this.documentAssembly=null;this.formFieldFilling=null;this.modifyAnnots=null;this.plaintextMetadata=null;this.print=null;this.printHighQuality=null}}class PickTrayByPDFSize extends n.Option01{constructor(e){super(o,"pickTrayByPDFSize")}}class Picture extends n.StringObject{constructor(e){super(o,"picture")}}class PlaintextMetadata extends n.Option01{constructor(e){super(o,"plaintextMetadata")}}class Presence extends n.OptionObject{constructor(e){super(o,"presence",["preserve","dissolve","dissolveStructure","ignore","remove"])}}class Present extends n.XFAObject{constructor(e){super(o,"present",!0);this.behaviorOverride=null;this.cache=null;this.common=null;this.copies=null;this.destination=null;this.incrementalMerge=null;this.layout=null;this.output=null;this.overprint=null;this.pagination=null;this.paginationOverride=null;this.script=null;this.validate=null;this.xdp=null;this.driver=new n.XFAObjectArray;this.labelPrinter=new n.XFAObjectArray;this.pcl=new n.XFAObjectArray;this.pdf=new n.XFAObjectArray;this.ps=new n.XFAObjectArray;this.submitUrl=new n.XFAObjectArray;this.webClient=new n.XFAObjectArray;this.zpl=new n.XFAObjectArray}}class Print extends n.Option01{constructor(e){super(o,"print")}}class PrintHighQuality extends n.Option01{constructor(e){super(o,"printHighQuality")}}class PrintScaling extends n.OptionObject{constructor(e){super(o,"printScaling",["appdefault","noScaling"])}}class PrinterName extends n.StringObject{constructor(e){super(o,"printerName")}}class Producer extends n.StringObject{constructor(e){super(o,"producer")}}class Ps extends n.XFAObject{constructor(e){super(o,"ps",!0);this.name=e.name||"";this.batchOutput=null;this.fontInfo=null;this.jog=null;this.mediumInfo=null;this.outputBin=null;this.staple=null;this.xdc=null}}class Range extends n.ContentObject{constructor(e){super(o,"range")}[n.$finalize](){this[n.$content]=this[n.$content].trim().split(/\s*,\s*/,2).map((e=>e.split("-").map((e=>parseInt(e.trim(),10))))).filter((e=>e.every((e=>!isNaN(e))))).map((e=>{1===e.length&&e.push(e[0]);return e}))}}class Record extends n.ContentObject{constructor(e){super(o,"record")}[n.$finalize](){this[n.$content]=this[n.$content].trim();const e=parseInt(this[n.$content],10);!isNaN(e)&&e>=0&&(this[n.$content]=e)}}class Relevant extends n.ContentObject{constructor(e){super(o,"relevant")}[n.$finalize](){this[n.$content]=this[n.$content].trim().split(/\s+/)}}class Rename extends n.ContentObject{constructor(e){super(o,"rename")}[n.$finalize](){this[n.$content]=this[n.$content].trim();(this[n.$content].toLowerCase().startsWith("xml")||this[n.$content].match(new RegExp("[\\p{L}_][\\p{L}\\d._\\p{M}-]*","u")))&&(0,s.warn)("XFA - Rename: invalid XFA name")}}class RenderPolicy extends n.OptionObject{constructor(e){super(o,"renderPolicy",["server","client"])}}class RunScripts extends n.OptionObject{constructor(e){super(o,"runScripts",["both","client","none","server"])}}class Script extends n.XFAObject{constructor(e){super(o,"script",!0);this.currentPage=null;this.exclude=null;this.runScripts=null}}class ScriptModel extends n.OptionObject{constructor(e){super(o,"scriptModel",["XFA","none"])}}class Severity extends n.OptionObject{constructor(e){super(o,"severity",["ignore","error","information","trace","warning"])}}class SilentPrint extends n.XFAObject{constructor(e){super(o,"silentPrint",!0);this.addSilentPrint=null;this.printerName=null}}class Staple extends n.XFAObject{constructor(e){super(o,"staple");this.mode=(0,i.getStringOption)(e.mode,["usePrinterSetting","on","off"])}}class StartNode extends n.StringObject{constructor(e){super(o,"startNode")}}class StartPage extends n.IntegerObject{constructor(e){super(o,"startPage",0,(e=>!0))}}class SubmitFormat extends n.OptionObject{constructor(e){super(o,"submitFormat",["html","delegate","fdf","xml","pdf"])}}class SubmitUrl extends n.StringObject{constructor(e){super(o,"submitUrl")}}class SubsetBelow extends n.IntegerObject{constructor(e){super(o,"subsetBelow",100,(e=>e>=0&&e<=100))}}class SuppressBanner extends n.Option01{constructor(e){super(o,"suppressBanner")}}class Tagged extends n.Option01{constructor(e){super(o,"tagged")}}class Template extends n.XFAObject{constructor(e){super(o,"template",!0);this.base=null;this.relevant=null;this.startPage=null;this.uri=null;this.xsl=null}}class Threshold extends n.OptionObject{constructor(e){super(o,"threshold",["trace","error","information","warning"])}}class To extends n.OptionObject{constructor(e){super(o,"to",["null","memory","stderr","stdout","system","uri"])}}class TemplateCache extends n.XFAObject{constructor(e){super(o,"templateCache");this.maxEntries=(0,i.getInteger)({data:e.maxEntries,defaultValue:5,validate:e=>e>=0})}}class Trace extends n.XFAObject{constructor(e){super(o,"trace",!0);this.area=new n.XFAObjectArray}}class Transform extends n.XFAObject{constructor(e){super(o,"transform",!0);this.groupParent=null;this.ifEmpty=null;this.nameAttr=null;this.picture=null;this.presence=null;this.rename=null;this.whitespace=null}}class Type extends n.OptionObject{constructor(e){super(o,"type",["none","ascii85","asciiHex","ccittfax","flate","lzw","runLength","native","xdp","mergedXDP"])}}class Uri extends n.StringObject{constructor(e){super(o,"uri")}}class Validate extends n.OptionObject{constructor(e){super(o,"validate",["preSubmit","prePrint","preExecute","preSave"])}}class ValidateApprovalSignatures extends n.ContentObject{constructor(e){super(o,"validateApprovalSignatures")}[n.$finalize](){this[n.$content]=this[n.$content].trim().split(/\s+/).filter((e=>["docReady","postSign"].includes(e)))}}class ValidationMessaging extends n.OptionObject{constructor(e){super(o,"validationMessaging",["allMessagesIndividually","allMessagesTogether","firstMessageOnly","noMessages"])}}class Version extends n.OptionObject{constructor(e){super(o,"version",["1.7","1.6","1.5","1.4","1.3","1.2"])}}class VersionControl extends n.XFAObject{constructor(e){super(o,"VersionControl");this.outputBelow=(0,i.getStringOption)(e.outputBelow,["warn","error","update"]);this.sourceAbove=(0,i.getStringOption)(e.sourceAbove,["warn","error"]);this.sourceBelow=(0,i.getStringOption)(e.sourceBelow,["update","maintain"])}}class ViewerPreferences extends n.XFAObject{constructor(e){super(o,"viewerPreferences",!0);this.ADBE_JSConsole=null;this.ADBE_JSDebugger=null;this.addViewerPreferences=null;this.duplexOption=null;this.enforce=null;this.numberOfCopies=null;this.pageRange=null;this.pickTrayByPDFSize=null;this.printScaling=null}}class WebClient extends n.XFAObject{constructor(e){super(o,"webClient",!0);this.name=e.name?e.name.trim():"";this.fontInfo=null;this.xdc=null}}class Whitespace extends n.OptionObject{constructor(e){super(o,"whitespace",["preserve","ltrim","normalize","rtrim","trim"])}}class Window extends n.ContentObject{constructor(e){super(o,"window")}[n.$finalize](){const e=this[n.$content].trim().split(/\s*,\s*/,2).map((e=>parseInt(e,10)));if(e.some((e=>isNaN(e))))this[n.$content]=[0,0];else{1===e.length&&e.push(e[0]);this[n.$content]=e}}}class Xdc extends n.XFAObject{constructor(e){super(o,"xdc",!0);this.uri=new n.XFAObjectArray;this.xsl=new n.XFAObjectArray}}class Xdp extends n.XFAObject{constructor(e){super(o,"xdp",!0);this.packets=null}}class Xsl extends n.XFAObject{constructor(e){super(o,"xsl",!0);this.debug=null;this.uri=null}}class Zpl extends n.XFAObject{constructor(e){super(o,"zpl",!0);this.name=e.name?e.name.trim():"";this.batchOutput=null;this.flipLabel=null;this.fontInfo=null;this.xdc=null}}class ConfigNamespace{static[r.$buildXFAObject](e,t){if(ConfigNamespace.hasOwnProperty(e))return ConfigNamespace[e](t)}static acrobat(e){return new Acrobat(e)}static acrobat7(e){return new Acrobat7(e)}static ADBE_JSConsole(e){return new ADBE_JSConsole(e)}static ADBE_JSDebugger(e){return new ADBE_JSDebugger(e)}static addSilentPrint(e){return new AddSilentPrint(e)}static addViewerPreferences(e){return new AddViewerPreferences(e)}static adjustData(e){return new AdjustData(e)}static adobeExtensionLevel(e){return new AdobeExtensionLevel(e)}static agent(e){return new Agent(e)}static alwaysEmbed(e){return new AlwaysEmbed(e)}static amd(e){return new Amd(e)}static area(e){return new Area(e)}static attributes(e){return new Attributes(e)}static autoSave(e){return new AutoSave(e)}static base(e){return new Base(e)}static batchOutput(e){return new BatchOutput(e)}static behaviorOverride(e){return new BehaviorOverride(e)}static cache(e){return new Cache(e)}static change(e){return new Change(e)}static common(e){return new Common(e)}static compress(e){return new Compress(e)}static compressLogicalStructure(e){return new CompressLogicalStructure(e)}static compressObjectStream(e){return new CompressObjectStream(e)}static compression(e){return new Compression(e)}static config(e){return new Config(e)}static conformance(e){return new Conformance(e)}static contentCopy(e){return new ContentCopy(e)}static copies(e){return new Copies(e)}static creator(e){return new Creator(e)}static currentPage(e){return new CurrentPage(e)}static data(e){return new Data(e)}static debug(e){return new Debug(e)}static defaultTypeface(e){return new DefaultTypeface(e)}static destination(e){return new Destination(e)}static documentAssembly(e){return new DocumentAssembly(e)}static driver(e){return new Driver(e)}static duplexOption(e){return new DuplexOption(e)}static dynamicRender(e){return new DynamicRender(e)}static embed(e){return new Embed(e)}static encrypt(e){return new Encrypt(e)}static encryption(e){return new Encryption(e)}static encryptionLevel(e){return new EncryptionLevel(e)}static enforce(e){return new Enforce(e)}static equate(e){return new Equate(e)}static equateRange(e){return new EquateRange(e)}static exclude(e){return new Exclude(e)}static excludeNS(e){return new ExcludeNS(e)}static flipLabel(e){return new FlipLabel(e)}static fontInfo(e){return new FontInfo(e)}static formFieldFilling(e){return new FormFieldFilling(e)}static groupParent(e){return new GroupParent(e)}static ifEmpty(e){return new IfEmpty(e)}static includeXDPContent(e){return new IncludeXDPContent(e)}static incrementalLoad(e){return new IncrementalLoad(e)}static incrementalMerge(e){return new IncrementalMerge(e)}static interactive(e){return new Interactive(e)}static jog(e){return new Jog(e)}static labelPrinter(e){return new LabelPrinter(e)}static layout(e){return new Layout(e)}static level(e){return new Level(e)}static linearized(e){return new Linearized(e)}static locale(e){return new Locale(e)}static localeSet(e){return new LocaleSet(e)}static log(e){return new Log(e)}static map(e){return new MapElement(e)}static mediumInfo(e){return new MediumInfo(e)}static message(e){return new Message(e)}static messaging(e){return new Messaging(e)}static mode(e){return new Mode(e)}static modifyAnnots(e){return new ModifyAnnots(e)}static msgId(e){return new MsgId(e)}static nameAttr(e){return new NameAttr(e)}static neverEmbed(e){return new NeverEmbed(e)}static numberOfCopies(e){return new NumberOfCopies(e)}static openAction(e){return new OpenAction(e)}static output(e){return new Output(e)}static outputBin(e){return new OutputBin(e)}static outputXSL(e){return new OutputXSL(e)}static overprint(e){return new Overprint(e)}static packets(e){return new Packets(e)}static pageOffset(e){return new PageOffset(e)}static pageRange(e){return new PageRange(e)}static pagination(e){return new Pagination(e)}static paginationOverride(e){return new PaginationOverride(e)}static part(e){return new Part(e)}static pcl(e){return new Pcl(e)}static pdf(e){return new Pdf(e)}static pdfa(e){return new Pdfa(e)}static permissions(e){return new Permissions(e)}static pickTrayByPDFSize(e){return new PickTrayByPDFSize(e)}static picture(e){return new Picture(e)}static plaintextMetadata(e){return new PlaintextMetadata(e)}static presence(e){return new Presence(e)}static present(e){return new Present(e)}static print(e){return new Print(e)}static printHighQuality(e){return new PrintHighQuality(e)}static printScaling(e){return new PrintScaling(e)}static printerName(e){return new PrinterName(e)}static producer(e){return new Producer(e)}static ps(e){return new Ps(e)}static range(e){return new Range(e)}static record(e){return new Record(e)}static relevant(e){return new Relevant(e)}static rename(e){return new Rename(e)}static renderPolicy(e){return new RenderPolicy(e)}static runScripts(e){return new RunScripts(e)}static script(e){return new Script(e)}static scriptModel(e){return new ScriptModel(e)}static severity(e){return new Severity(e)}static silentPrint(e){return new SilentPrint(e)}static staple(e){return new Staple(e)}static startNode(e){return new StartNode(e)}static startPage(e){return new StartPage(e)}static submitFormat(e){return new SubmitFormat(e)}static submitUrl(e){return new SubmitUrl(e)}static subsetBelow(e){return new SubsetBelow(e)}static suppressBanner(e){return new SuppressBanner(e)}static tagged(e){return new Tagged(e)}static template(e){return new Template(e)}static templateCache(e){return new TemplateCache(e)}static threshold(e){return new Threshold(e)}static to(e){return new To(e)}static trace(e){return new Trace(e)}static transform(e){return new Transform(e)}static type(e){return new Type(e)}static uri(e){return new Uri(e)}static validate(e){return new Validate(e)}static validateApprovalSignatures(e){return new ValidateApprovalSignatures(e)}static validationMessaging(e){return new ValidationMessaging(e)}static version(e){return new Version(e)}static versionControl(e){return new VersionControl(e)}static viewerPreferences(e){return new ViewerPreferences(e)}static webClient(e){return new WebClient(e)}static whitespace(e){return new Whitespace(e)}static window(e){return new Window(e)}static xdc(e){return new Xdc(e)}static xdp(e){return new Xdp(e)}static xsl(e){return new Xsl(e)}static zpl(e){return new Zpl(e)}}t.ConfigNamespace=ConfigNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ConnectionSetNamespace=void 0;var r=a(79),n=a(77);const i=r.NamespaceIds.connectionSet.id;class ConnectionSet extends n.XFAObject{constructor(e){super(i,"connectionSet",!0);this.wsdlConnection=new n.XFAObjectArray;this.xmlConnection=new n.XFAObjectArray;this.xsdConnection=new n.XFAObjectArray}}class EffectiveInputPolicy extends n.XFAObject{constructor(e){super(i,"effectiveInputPolicy");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class EffectiveOutputPolicy extends n.XFAObject{constructor(e){super(i,"effectiveOutputPolicy");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Operation extends n.StringObject{constructor(e){super(i,"operation");this.id=e.id||"";this.input=e.input||"";this.name=e.name||"";this.output=e.output||"";this.use=e.use||"";this.usehref=e.usehref||""}}class RootElement extends n.StringObject{constructor(e){super(i,"rootElement");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class SoapAction extends n.StringObject{constructor(e){super(i,"soapAction");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class SoapAddress extends n.StringObject{constructor(e){super(i,"soapAddress");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Uri extends n.StringObject{constructor(e){super(i,"uri");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class WsdlAddress extends n.StringObject{constructor(e){super(i,"wsdlAddress");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class WsdlConnection extends n.XFAObject{constructor(e){super(i,"wsdlConnection",!0);this.dataDescription=e.dataDescription||"";this.name=e.name||"";this.effectiveInputPolicy=null;this.effectiveOutputPolicy=null;this.operation=null;this.soapAction=null;this.soapAddress=null;this.wsdlAddress=null}}class XmlConnection extends n.XFAObject{constructor(e){super(i,"xmlConnection",!0);this.dataDescription=e.dataDescription||"";this.name=e.name||"";this.uri=null}}class XsdConnection extends n.XFAObject{constructor(e){super(i,"xsdConnection",!0);this.dataDescription=e.dataDescription||"";this.name=e.name||"";this.rootElement=null;this.uri=null}}class ConnectionSetNamespace{static[r.$buildXFAObject](e,t){if(ConnectionSetNamespace.hasOwnProperty(e))return ConnectionSetNamespace[e](t)}static connectionSet(e){return new ConnectionSet(e)}static effectiveInputPolicy(e){return new EffectiveInputPolicy(e)}static effectiveOutputPolicy(e){return new EffectiveOutputPolicy(e)}static operation(e){return new Operation(e)}static rootElement(e){return new RootElement(e)}static soapAction(e){return new SoapAction(e)}static soapAddress(e){return new SoapAddress(e)}static uri(e){return new Uri(e)}static wsdlAddress(e){return new WsdlAddress(e)}static wsdlConnection(e){return new WsdlConnection(e)}static xmlConnection(e){return new XmlConnection(e)}static xsdConnection(e){return new XsdConnection(e)}}t.ConnectionSetNamespace=ConnectionSetNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.DatasetsNamespace=void 0;var r=a(77),n=a(79);const i=n.NamespaceIds.datasets.id;class Data extends r.XmlObject{constructor(e){super(i,"data",e)}[r.$isNsAgnostic](){return!0}}class Datasets extends r.XFAObject{constructor(e){super(i,"datasets",!0);this.data=null;this.Signature=null}[r.$onChild](e){const t=e[r.$nodeName];("data"===t&&e[r.$namespaceId]===i||"Signature"===t&&e[r.$namespaceId]===n.NamespaceIds.signature.id)&&(this[t]=e);this[r.$appendChild](e)}}class DatasetsNamespace{static[n.$buildXFAObject](e,t){if(DatasetsNamespace.hasOwnProperty(e))return DatasetsNamespace[e](t)}static datasets(e){return new Datasets(e)}static data(e){return new Data(e)}}t.DatasetsNamespace=DatasetsNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.LocaleSetNamespace=void 0;var r=a(79),n=a(77),i=a(78);const s=r.NamespaceIds.localeSet.id;class CalendarSymbols extends n.XFAObject{constructor(e){super(s,"calendarSymbols",!0);this.name="gregorian";this.dayNames=new n.XFAObjectArray(2);this.eraNames=null;this.meridiemNames=null;this.monthNames=new n.XFAObjectArray(2)}}class CurrencySymbol extends n.StringObject{constructor(e){super(s,"currencySymbol");this.name=(0,i.getStringOption)(e.name,["symbol","isoname","decimal"])}}class CurrencySymbols extends n.XFAObject{constructor(e){super(s,"currencySymbols",!0);this.currencySymbol=new n.XFAObjectArray(3)}}class DatePattern extends n.StringObject{constructor(e){super(s,"datePattern");this.name=(0,i.getStringOption)(e.name,["full","long","med","short"])}}class DatePatterns extends n.XFAObject{constructor(e){super(s,"datePatterns",!0);this.datePattern=new n.XFAObjectArray(4)}}class DateTimeSymbols extends n.ContentObject{constructor(e){super(s,"dateTimeSymbols")}}class Day extends n.StringObject{constructor(e){super(s,"day")}}class DayNames extends n.XFAObject{constructor(e){super(s,"dayNames",!0);this.abbr=(0,i.getInteger)({data:e.abbr,defaultValue:0,validate:e=>1===e});this.day=new n.XFAObjectArray(7)}}class Era extends n.StringObject{constructor(e){super(s,"era")}}class EraNames extends n.XFAObject{constructor(e){super(s,"eraNames",!0);this.era=new n.XFAObjectArray(2)}}class Locale extends n.XFAObject{constructor(e){super(s,"locale",!0);this.desc=e.desc||"";this.name="isoname";this.calendarSymbols=null;this.currencySymbols=null;this.datePatterns=null;this.dateTimeSymbols=null;this.numberPatterns=null;this.numberSymbols=null;this.timePatterns=null;this.typeFaces=null}}class LocaleSet extends n.XFAObject{constructor(e){super(s,"localeSet",!0);this.locale=new n.XFAObjectArray}}class Meridiem extends n.StringObject{constructor(e){super(s,"meridiem")}}class MeridiemNames extends n.XFAObject{constructor(e){super(s,"meridiemNames",!0);this.meridiem=new n.XFAObjectArray(2)}}class Month extends n.StringObject{constructor(e){super(s,"month")}}class MonthNames extends n.XFAObject{constructor(e){super(s,"monthNames",!0);this.abbr=(0,i.getInteger)({data:e.abbr,defaultValue:0,validate:e=>1===e});this.month=new n.XFAObjectArray(12)}}class NumberPattern extends n.StringObject{constructor(e){super(s,"numberPattern");this.name=(0,i.getStringOption)(e.name,["full","long","med","short"])}}class NumberPatterns extends n.XFAObject{constructor(e){super(s,"numberPatterns",!0);this.numberPattern=new n.XFAObjectArray(4)}}class NumberSymbol extends n.StringObject{constructor(e){super(s,"numberSymbol");this.name=(0,i.getStringOption)(e.name,["decimal","grouping","percent","minus","zero"])}}class NumberSymbols extends n.XFAObject{constructor(e){super(s,"numberSymbols",!0);this.numberSymbol=new n.XFAObjectArray(5)}}class TimePattern extends n.StringObject{constructor(e){super(s,"timePattern");this.name=(0,i.getStringOption)(e.name,["full","long","med","short"])}}class TimePatterns extends n.XFAObject{constructor(e){super(s,"timePatterns",!0);this.timePattern=new n.XFAObjectArray(4)}}class TypeFace extends n.XFAObject{constructor(e){super(s,"typeFace",!0);this.name=""|e.name}}class TypeFaces extends n.XFAObject{constructor(e){super(s,"typeFaces",!0);this.typeFace=new n.XFAObjectArray}}class LocaleSetNamespace{static[r.$buildXFAObject](e,t){if(LocaleSetNamespace.hasOwnProperty(e))return LocaleSetNamespace[e](t)}static calendarSymbols(e){return new CalendarSymbols(e)}static currencySymbol(e){return new CurrencySymbol(e)}static currencySymbols(e){return new CurrencySymbols(e)}static datePattern(e){return new DatePattern(e)}static datePatterns(e){return new DatePatterns(e)}static dateTimeSymbols(e){return new DateTimeSymbols(e)}static day(e){return new Day(e)}static dayNames(e){return new DayNames(e)}static era(e){return new Era(e)}static eraNames(e){return new EraNames(e)}static locale(e){return new Locale(e)}static localeSet(e){return new LocaleSet(e)}static meridiem(e){return new Meridiem(e)}static meridiemNames(e){return new MeridiemNames(e)}static month(e){return new Month(e)}static monthNames(e){return new MonthNames(e)}static numberPattern(e){return new NumberPattern(e)}static numberPatterns(e){return new NumberPatterns(e)}static numberSymbol(e){return new NumberSymbol(e)}static numberSymbols(e){return new NumberSymbols(e)}static timePattern(e){return new TimePattern(e)}static timePatterns(e){return new TimePatterns(e)}static typeFace(e){return new TypeFace(e)}static typeFaces(e){return new TypeFaces(e)}}t.LocaleSetNamespace=LocaleSetNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.SignatureNamespace=void 0;var r=a(79),n=a(77);const i=r.NamespaceIds.signature.id;class Signature extends n.XFAObject{constructor(e){super(i,"signature",!0)}}class SignatureNamespace{static[r.$buildXFAObject](e,t){if(SignatureNamespace.hasOwnProperty(e))return SignatureNamespace[e](t)}static signature(e){return new Signature(e)}}t.SignatureNamespace=SignatureNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.StylesheetNamespace=void 0;var r=a(79),n=a(77);const i=r.NamespaceIds.stylesheet.id;class Stylesheet extends n.XFAObject{constructor(e){super(i,"stylesheet",!0)}}class StylesheetNamespace{static[r.$buildXFAObject](e,t){if(StylesheetNamespace.hasOwnProperty(e))return StylesheetNamespace[e](t)}static stylesheet(e){return new Stylesheet(e)}}t.StylesheetNamespace=StylesheetNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XdpNamespace=void 0;var r=a(79),n=a(77);const i=r.NamespaceIds.xdp.id;class Xdp extends n.XFAObject{constructor(e){super(i,"xdp",!0);this.uuid=e.uuid||"";this.timeStamp=e.timeStamp||"";this.config=null;this.connectionSet=null;this.datasets=null;this.localeSet=null;this.stylesheet=new n.XFAObjectArray;this.template=null}[n.$onChildCheck](e){const t=r.NamespaceIds[e[n.$nodeName]];return t&&e[n.$namespaceId]===t.id}}class XdpNamespace{static[r.$buildXFAObject](e,t){if(XdpNamespace.hasOwnProperty(e))return XdpNamespace[e](t)}static xdp(e){return new Xdp(e)}}t.XdpNamespace=XdpNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XhtmlNamespace=void 0;var r=a(77),n=a(79),i=a(84),s=a(78);const o=n.NamespaceIds.xhtml.id,c=Symbol(),l=new Set(["color","font","font-family","font-size","font-stretch","font-style","font-weight","margin","margin-bottom","margin-left","margin-right","margin-top","letter-spacing","line-height","orphans","page-break-after","page-break-before","page-break-inside","tab-interval","tab-stop","text-align","text-decoration","text-indent","vertical-align","widows","kerning-mode","xfa-font-horizontal-scale","xfa-font-vertical-scale","xfa-spacerun","xfa-tab-stops"]),h=new Map([["page-break-after","breakAfter"],["page-break-before","breakBefore"],["page-break-inside","breakInside"],["kerning-mode",e=>"none"===e?"none":"normal"],["xfa-font-horizontal-scale",e=>`scaleX(${Math.max(0,Math.min(parseInt(e)/100)).toFixed(2)})`],["xfa-font-vertical-scale",e=>`scaleY(${Math.max(0,Math.min(parseInt(e)/100)).toFixed(2)})`],["xfa-spacerun",""],["xfa-tab-stops",""],["font-size",(e,t)=>{e=t.fontSize=(0,s.getMeasurement)(e);return(0,i.measureToString)(.99*e)}],["letter-spacing",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["line-height",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["margin",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["margin-bottom",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["margin-left",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["margin-right",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["margin-top",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["text-indent",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["font-family",e=>e],["vertical-align",e=>(0,i.measureToString)((0,s.getMeasurement)(e))]]),u=/\s+/g,d=/[\r\n]+/g,f=/\r\n?/g;function mapStyle(e,t,a){const n=Object.create(null);if(!e)return n;const o=Object.create(null);for(const[t,a]of e.split(";").map((e=>e.split(":",2)))){const e=h.get(t);if(""===e)continue;let r=a;e&&(r="string"==typeof e?e:e(a,o));t.endsWith("scale")?n.transform?n.transform=`${n[t]} ${r}`:n.transform=r:n[t.replaceAll(/-([a-zA-Z])/g,((e,t)=>t.toUpperCase()))]=r}n.fontFamily&&(0,i.setFontFamily)({typeface:n.fontFamily,weight:n.fontWeight||"normal",posture:n.fontStyle||"normal",size:o.fontSize||0},t,t[r.$globalData].fontFinder,n);if(a&&n.verticalAlign&&"0px"!==n.verticalAlign&&n.fontSize){const e=.583,t=.333,a=(0,s.getMeasurement)(n.fontSize);n.fontSize=(0,i.measureToString)(a*e);n.verticalAlign=(0,i.measureToString)(Math.sign((0,s.getMeasurement)(n.verticalAlign))*a*t)}(0,i.fixTextIndent)(n);return n}const g=new Set(["body","html"]);class XhtmlObject extends r.XmlObject{constructor(e,t){super(o,t);this[c]=!1;this.style=e.style||""}[r.$clean](e){super[r.$clean](e);this.style=function checkStyle(e){return e.style?e.style.trim().split(/\s*;\s*/).filter((e=>!!e)).map((e=>e.split(/\s*:\s*/,2))).filter((([t,a])=>{"font-family"===t&&e[r.$globalData].usedTypefaces.add(a);return l.has(t)})).map((e=>e.join(":"))).join(";"):""}(this)}[r.$acceptWhitespace](){return!g.has(this[r.$nodeName])}[r.$onText](e,t=!1){if(t)this[c]=!0;else{e=e.replace(d,"");this.style.includes("xfa-spacerun:yes")||(e=e.replace(u," "))}e&&(this[r.$content]+=e)}[r.$pushGlyphs](e,t=!0){const a=Object.create(null),n={top:NaN,bottom:NaN,left:NaN,right:NaN};let i=null;for(const[e,t]of this.style.split(";").map((e=>e.split(":",2))))switch(e){case"font-family":a.typeface=(0,s.stripQuotes)(t);break;case"font-size":a.size=(0,s.getMeasurement)(t);break;case"font-weight":a.weight=t;break;case"font-style":a.posture=t;break;case"letter-spacing":a.letterSpacing=(0,s.getMeasurement)(t);break;case"margin":const e=t.split(/ \t/).map((e=>(0,s.getMeasurement)(e)));switch(e.length){case 1:n.top=n.bottom=n.left=n.right=e[0];break;case 2:n.top=n.bottom=e[0];n.left=n.right=e[1];break;case 3:n.top=e[0];n.bottom=e[2];n.left=n.right=e[1];break;case 4:n.top=e[0];n.left=e[1];n.bottom=e[2];n.right=e[3]}break;case"margin-top":n.top=(0,s.getMeasurement)(t);break;case"margin-bottom":n.bottom=(0,s.getMeasurement)(t);break;case"margin-left":n.left=(0,s.getMeasurement)(t);break;case"margin-right":n.right=(0,s.getMeasurement)(t);break;case"line-height":i=(0,s.getMeasurement)(t)}e.pushData(a,n,i);if(this[r.$content])e.addString(this[r.$content]);else for(const t of this[r.$getChildren]())"#text"!==t[r.$nodeName]?t[r.$pushGlyphs](e):e.addString(t[r.$content]);t&&e.popFont()}[r.$toHTML](e){const t=[];this[r.$extra]={children:t};this[r.$childrenToHTML]({});if(0===t.length&&!this[r.$content])return s.HTMLResult.EMPTY;let a;a=this[c]?this[r.$content]?this[r.$content].replace(f,"\n"):void 0:this[r.$content]||void 0;return s.HTMLResult.success({name:this[r.$nodeName],attributes:{href:this.href,style:mapStyle(this.style,this,this[c])},children:t,value:a})}}class A extends XhtmlObject{constructor(e){super(e,"a");this.href=(0,i.fixURL)(e.href)||""}}class B extends XhtmlObject{constructor(e){super(e,"b")}[r.$pushGlyphs](e){e.pushFont({weight:"bold"});super[r.$pushGlyphs](e);e.popFont()}}class Body extends XhtmlObject{constructor(e){super(e,"body")}[r.$toHTML](e){const t=super[r.$toHTML](e),{html:a}=t;if(!a)return s.HTMLResult.EMPTY;a.name="div";a.attributes.class=["xfaRich"];return t}}class Br extends XhtmlObject{constructor(e){super(e,"br")}[r.$text](){return"\n"}[r.$pushGlyphs](e){e.addString("\n")}[r.$toHTML](e){return s.HTMLResult.success({name:"br"})}}class Html extends XhtmlObject{constructor(e){super(e,"html")}[r.$toHTML](e){const t=[];this[r.$extra]={children:t};this[r.$childrenToHTML]({});if(0===t.length)return s.HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:{}},value:this[r.$content]||""});if(1===t.length){const e=t[0];if(e.attributes&&e.attributes.class.includes("xfaRich"))return s.HTMLResult.success(e)}return s.HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:{}},children:t})}}class I extends XhtmlObject{constructor(e){super(e,"i")}[r.$pushGlyphs](e){e.pushFont({posture:"italic"});super[r.$pushGlyphs](e);e.popFont()}}class Li extends XhtmlObject{constructor(e){super(e,"li")}}class Ol extends XhtmlObject{constructor(e){super(e,"ol")}}class P extends XhtmlObject{constructor(e){super(e,"p")}[r.$pushGlyphs](e){super[r.$pushGlyphs](e,!1);e.addString("\n");e.addPara();e.popFont()}[r.$text](){const e=this[r.$getParent]()[r.$getChildren]();return e[e.length-1]===this?super[r.$text]():super[r.$text]()+"\n"}}class Span extends XhtmlObject{constructor(e){super(e,"span")}}class Sub extends XhtmlObject{constructor(e){super(e,"sub")}}class Sup extends XhtmlObject{constructor(e){super(e,"sup")}}class Ul extends XhtmlObject{constructor(e){super(e,"ul")}}class XhtmlNamespace{static[n.$buildXFAObject](e,t){if(XhtmlNamespace.hasOwnProperty(e))return XhtmlNamespace[e](t)}static a(e){return new A(e)}static b(e){return new B(e)}static body(e){return new Body(e)}static br(e){return new Br(e)}static html(e){return new Html(e)}static i(e){return new I(e)}static li(e){return new Li(e)}static ol(e){return new Ol(e)}static p(e){return new P(e)}static span(e){return new Span(e)}static sub(e){return new Sub(e)}static sup(e){return new Sup(e)}static ul(e){return new Ul(e)}}t.XhtmlNamespace=XhtmlNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.UnknownNamespace=void 0;var r=a(79),n=a(77);class UnknownNamespace{constructor(e){this.namespaceId=e}[r.$buildXFAObject](e,t){return new n.XmlObject(this.namespaceId,e,t)}}t.UnknownNamespace=UnknownNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.DatasetReader=void 0;var r=a(2),n=a(8),i=a(70);function decodeString(e){try{return(0,r.stringToUTF8String)(e)}catch(t){(0,r.warn)(`UTF-8 decoding failed: "${t}".`);return e}}class DatasetXMLParser extends i.SimpleXMLParser{constructor(e){super(e);this.node=null}onEndElement(e){const t=super.onEndElement(e);if(t&&"xfa:datasets"===e){this.node=t;throw new Error("Aborting DatasetXMLParser.")}}}t.DatasetReader=class DatasetReader{constructor(e){if(e.datasets)this.node=new i.SimpleXMLParser({hasAttributes:!0}).parseFromString(e.datasets).documentElement;else{const t=new DatasetXMLParser({hasAttributes:!0});try{t.parseFromString(e["xdp:xdp"])}catch(e){}this.node=t.node}}getValue(e){if(!this.node||!e)return"";const t=this.node.searchNode((0,n.parseXFAPath)(e),0);if(!t)return"";const a=t.firstChild;return a&&"value"===a.nodeName?t.children.map((e=>decodeString(e.textContent))):decodeString(t.textContent)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XRef=void 0;var r=a(2),n=a(5),i=a(8),s=a(27),o=a(9),c=a(74);t.XRef=class XRef{constructor(e,t){this.stream=e;this.pdfManager=t;this.entries=[];this.xrefstms=Object.create(null);this._cacheMap=new Map;this._pendingRefs=new n.RefSet;this.stats=new i.DocStats(t.msgHandler);this._newRefNum=null}getNewRef(){null===this._newRefNum&&(this._newRefNum=this.entries.length);return n.Ref.get(this._newRefNum++,0)}resetNewRef(){this._newRefNum=null}setStartXRef(e){this.startXRefQueue=[e]}parse(e=!1){let t,a,s;if(e){(0,r.warn)("Indexing all PDF objects");t=this.indexObjects()}else t=this.readXRef();t.assignXref(this);this.trailer=t;try{a=t.get("Encrypt")}catch(e){if(e instanceof i.MissingDataException)throw e;(0,r.warn)(`XRef.parse - Invalid "Encrypt" reference: "${e}".`)}if(a instanceof n.Dict){const e=t.get("ID"),r=e&&e.length?e[0]:"";a.suppressEncryption=!0;this.encrypt=new c.CipherTransformFactory(a,r,this.pdfManager.password)}try{s=t.get("Root")}catch(e){if(e instanceof i.MissingDataException)throw e;(0,r.warn)(`XRef.parse - Invalid "Root" reference: "${e}".`)}if(s instanceof n.Dict)try{if(s.get("Pages")instanceof n.Dict){this.root=s;return}}catch(e){if(e instanceof i.MissingDataException)throw e;(0,r.warn)(`XRef.parse - Invalid "Pages" reference: "${e}".`)}if(!e)throw new i.XRefParseException;throw new r.InvalidPDFException("Invalid Root reference.")}processXRefTable(e){"tableState"in this||(this.tableState={entryNum:0,streamPos:e.lexer.stream.pos,parserBuf1:e.buf1,parserBuf2:e.buf2});const t=this.readXRefTable(e);if(!(0,n.isCmd)(t,"trailer"))throw new r.FormatError("Invalid XRef table: could not find trailer dictionary");let a=e.getObj();a instanceof n.Dict||!a.dict||(a=a.dict);if(!(a instanceof n.Dict))throw new r.FormatError("Invalid XRef table: could not parse trailer dictionary");delete this.tableState;return a}readXRefTable(e){const t=e.lexer.stream,a=this.tableState;t.pos=a.streamPos;e.buf1=a.parserBuf1;e.buf2=a.parserBuf2;let i;for(;;){if(!("firstEntryNum"in a)||!("entryCount"in a)){if((0,n.isCmd)(i=e.getObj(),"trailer"))break;a.firstEntryNum=i;a.entryCount=e.getObj()}let s=a.firstEntryNum;const o=a.entryCount;if(!Number.isInteger(s)||!Number.isInteger(o))throw new r.FormatError("Invalid XRef table: wrong types in subsection header");for(let i=a.entryNum;i0;){const[o,c]=s;if(!Number.isInteger(o)||!Number.isInteger(c))throw new r.FormatError(`Invalid XRef range fields: ${o}, ${c}`);if(!Number.isInteger(a)||!Number.isInteger(n)||!Number.isInteger(i))throw new r.FormatError(`Invalid XRef entry fields length: ${o}, ${c}`);for(let s=t.entryNum;s=e.length);){a+=String.fromCharCode(r);r=e[t]}return a}function skipUntil(e,t,a){const r=a.length,n=e.length;let i=0;for(;t=r)break;t++;i++}return i}const e=/^(\d+)\s+(\d+)\s+obj\b/,t=/\bendobj[\b\s]$/,a=/\s+(\d+\s+\d+\s+obj[\b\s<])$/,o=new Uint8Array([116,114,97,105,108,101,114]),c=new Uint8Array([115,116,97,114,116,120,114,101,102]),l=new Uint8Array([111,98,106]),h=new Uint8Array([47,88,82,101,102]);this.entries.length=0;this._cacheMap.clear();const u=this.stream;u.pos=0;const d=u.getBytes(),f=d.length;let g=u.start;const p=[],m=[];for(;g=f)break;n=d[g]}while(10!==n&&13!==n);continue}const b=readToken(d,g);let y;if(b.startsWith("xref")&&(4===b.length||/\s/.test(b[4]))){g+=skipUntil(d,g,o);p.push(g);g+=skipUntil(d,g,c)}else if(y=e.exec(b)){const e=0|y[1],n=0|y[2];let o,c=g+b.length,f=!1;if(this.entries[e]){if(this.entries[e].gen===n)try{new s.Parser({lexer:new s.Lexer(u.makeSubStream(c))}).getObj();f=!0}catch(e){e instanceof i.ParserEOFException?(0,r.warn)(`indexObjects -- checking object (${b}): "${e}".`):f=!0}}else f=!0;f&&(this.entries[e]={offset:g-u.start,gen:n,uncompressed:!0});for(;c{Object.defineProperty(t,"__esModule",{value:!0});t.MessageHandler=void 0;var r=a(2);const n=1,i=2,s=1,o=2,c=3,l=4,h=5,u=6,d=7,f=8;function wrapReason(e){e instanceof Error||"object"==typeof e&&null!==e||(0,r.unreachable)('wrapReason: Expected "reason" to be a (possibly cloned) Error.');switch(e.name){case"AbortException":return new r.AbortException(e.message);case"MissingPDFException":return new r.MissingPDFException(e.message);case"PasswordException":return new r.PasswordException(e.message,e.code);case"UnexpectedResponseException":return new r.UnexpectedResponseException(e.message,e.status);case"UnknownErrorException":return new r.UnknownErrorException(e.message,e.details);default:return new r.UnknownErrorException(e.message,e.toString())}}t.MessageHandler=class MessageHandler{constructor(e,t,a){this.sourceName=e;this.targetName=t;this.comObj=a;this.callbackId=1;this.streamId=1;this.streamSinks=Object.create(null);this.streamControllers=Object.create(null);this.callbackCapabilities=Object.create(null);this.actionHandler=Object.create(null);this._onComObjOnMessage=e=>{const t=e.data;if(t.targetName!==this.sourceName)return;if(t.stream){this._processStreamMessage(t);return}if(t.callback){const e=t.callbackId,a=this.callbackCapabilities[e];if(!a)throw new Error(`Cannot resolve callback ${e}`);delete this.callbackCapabilities[e];if(t.callback===n)a.resolve(t.data);else{if(t.callback!==i)throw new Error("Unexpected callback case");a.reject(wrapReason(t.reason))}return}const r=this.actionHandler[t.action];if(!r)throw new Error(`Unknown action from worker: ${t.action}`);if(t.callbackId){const e=this.sourceName,s=t.sourceName;new Promise((function(e){e(r(t.data))})).then((function(r){a.postMessage({sourceName:e,targetName:s,callback:n,callbackId:t.callbackId,data:r})}),(function(r){a.postMessage({sourceName:e,targetName:s,callback:i,callbackId:t.callbackId,reason:wrapReason(r)})}))}else t.streamId?this._createStreamSink(t):r(t.data)};a.addEventListener("message",this._onComObjOnMessage)}on(e,t){const a=this.actionHandler;if(a[e])throw new Error(`There is already an actionName called "${e}"`);a[e]=t}send(e,t,a){this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:e,data:t},a)}sendWithPromise(e,t,a){const n=this.callbackId++,i=(0,r.createPromiseCapability)();this.callbackCapabilities[n]=i;try{this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:e,callbackId:n,data:t},a)}catch(e){i.reject(e)}return i.promise}sendWithStream(e,t,a,n){const i=this.streamId++,o=this.sourceName,c=this.targetName,l=this.comObj;return new ReadableStream({start:a=>{const s=(0,r.createPromiseCapability)();this.streamControllers[i]={controller:a,startCall:s,pullCall:null,cancelCall:null,isClosed:!1};l.postMessage({sourceName:o,targetName:c,action:e,streamId:i,data:t,desiredSize:a.desiredSize},n);return s.promise},pull:e=>{const t=(0,r.createPromiseCapability)();this.streamControllers[i].pullCall=t;l.postMessage({sourceName:o,targetName:c,stream:u,streamId:i,desiredSize:e.desiredSize});return t.promise},cancel:e=>{(0,r.assert)(e instanceof Error,"cancel must have a valid reason");const t=(0,r.createPromiseCapability)();this.streamControllers[i].cancelCall=t;this.streamControllers[i].isClosed=!0;l.postMessage({sourceName:o,targetName:c,stream:s,streamId:i,reason:wrapReason(e)});return t.promise}},a)}_createStreamSink(e){const t=e.streamId,a=this.sourceName,n=e.sourceName,i=this.comObj,s=this,o=this.actionHandler[e.action],u={enqueue(e,s=1,o){if(this.isCancelled)return;const c=this.desiredSize;this.desiredSize-=s;if(c>0&&this.desiredSize<=0){this.sinkCapability=(0,r.createPromiseCapability)();this.ready=this.sinkCapability.promise}i.postMessage({sourceName:a,targetName:n,stream:l,streamId:t,chunk:e},o)},close(){if(!this.isCancelled){this.isCancelled=!0;i.postMessage({sourceName:a,targetName:n,stream:c,streamId:t});delete s.streamSinks[t]}},error(e){(0,r.assert)(e instanceof Error,"error must have a valid reason");if(!this.isCancelled){this.isCancelled=!0;i.postMessage({sourceName:a,targetName:n,stream:h,streamId:t,reason:wrapReason(e)})}},sinkCapability:(0,r.createPromiseCapability)(),onPull:null,onCancel:null,isCancelled:!1,desiredSize:e.desiredSize,ready:null};u.sinkCapability.resolve();u.ready=u.sinkCapability.promise;this.streamSinks[t]=u;new Promise((function(t){t(o(e.data,u))})).then((function(){i.postMessage({sourceName:a,targetName:n,stream:f,streamId:t,success:!0})}),(function(e){i.postMessage({sourceName:a,targetName:n,stream:f,streamId:t,reason:wrapReason(e)})}))}_processStreamMessage(e){const t=e.streamId,a=this.sourceName,n=e.sourceName,i=this.comObj,g=this.streamControllers[t],p=this.streamSinks[t];switch(e.stream){case f:e.success?g.startCall.resolve():g.startCall.reject(wrapReason(e.reason));break;case d:e.success?g.pullCall.resolve():g.pullCall.reject(wrapReason(e.reason));break;case u:if(!p){i.postMessage({sourceName:a,targetName:n,stream:d,streamId:t,success:!0});break}p.desiredSize<=0&&e.desiredSize>0&&p.sinkCapability.resolve();p.desiredSize=e.desiredSize;new Promise((function(e){e(p.onPull&&p.onPull())})).then((function(){i.postMessage({sourceName:a,targetName:n,stream:d,streamId:t,success:!0})}),(function(e){i.postMessage({sourceName:a,targetName:n,stream:d,streamId:t,reason:wrapReason(e)})}));break;case l:(0,r.assert)(g,"enqueue should have stream controller");if(g.isClosed)break;g.controller.enqueue(e.chunk);break;case c:(0,r.assert)(g,"close should have stream controller");if(g.isClosed)break;g.isClosed=!0;g.controller.close();this._deleteStreamController(g,t);break;case h:(0,r.assert)(g,"error should have stream controller");g.controller.error(wrapReason(e.reason));this._deleteStreamController(g,t);break;case o:e.success?g.cancelCall.resolve():g.cancelCall.reject(wrapReason(e.reason));this._deleteStreamController(g,t);break;case s:if(!p)break;new Promise((function(t){t(p.onCancel&&p.onCancel(wrapReason(e.reason)))})).then((function(){i.postMessage({sourceName:a,targetName:n,stream:o,streamId:t,success:!0})}),(function(e){i.postMessage({sourceName:a,targetName:n,stream:o,streamId:t,reason:wrapReason(e)})}));p.sinkCapability.reject(wrapReason(e.reason));p.isCancelled=!0;delete this.streamSinks[t];break;default:throw new Error("Unexpected stream case")}}async _deleteStreamController(e,t){await Promise.allSettled([e.startCall&&e.startCall.promise,e.pullCall&&e.pullCall.promise,e.cancelCall&&e.cancelCall.promise]);delete this.streamControllers[t]}destroy(){this.comObj.removeEventListener("message",this._onComObjOnMessage)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.PDFWorkerStream=void 0;var r=a(2);t.PDFWorkerStream=class PDFWorkerStream{constructor(e){this._msgHandler=e;this._contentLength=null;this._fullRequestReader=null;this._rangeRequestReaders=[]}getFullReader(){(0,r.assert)(!this._fullRequestReader,"PDFWorkerStream.getFullReader can only be called once.");this._fullRequestReader=new PDFWorkerStreamReader(this._msgHandler);return this._fullRequestReader}getRangeReader(e,t){const a=new PDFWorkerStreamRangeReader(e,t,this._msgHandler);this._rangeRequestReaders.push(a);return a}cancelAllRequests(e){this._fullRequestReader&&this._fullRequestReader.cancel(e);for(const t of this._rangeRequestReaders.slice(0))t.cancel(e)}};class PDFWorkerStreamReader{constructor(e){this._msgHandler=e;this.onProgress=null;this._contentLength=null;this._isRangeSupported=!1;this._isStreamingSupported=!1;const t=this._msgHandler.sendWithStream("GetReader");this._reader=t.getReader();this._headersReady=this._msgHandler.sendWithPromise("ReaderHeadersReady").then((e=>{this._isStreamingSupported=e.isStreamingSupported;this._isRangeSupported=e.isRangeSupported;this._contentLength=e.contentLength}))}get headersReady(){return this._headersReady}get contentLength(){return this._contentLength}get isStreamingSupported(){return this._isStreamingSupported}get isRangeSupported(){return this._isRangeSupported}async read(){const{value:e,done:t}=await this._reader.read();return t?{value:void 0,done:!0}:{value:e.buffer,done:!1}}cancel(e){this._reader.cancel(e)}}class PDFWorkerStreamRangeReader{constructor(e,t,a){this._msgHandler=a;this.onProgress=null;const r=this._msgHandler.sendWithStream("GetRangeReader",{begin:e,end:t});this._reader=r.getReader()}get isStreamingSupported(){return!1}async read(){const{value:e,done:t}=await this._reader.read();return t?{value:void 0,done:!0}:{value:e.buffer,done:!1}}cancel(e){this._reader.cancel(e)}}}],t={};function __w_pdfjs_require__(a){var r=t[a];if(void 0!==r)return r.exports;var n=t[a]={exports:{}};e[a](n,n.exports,__w_pdfjs_require__);return n.exports}__w_pdfjs_require__.d=(e,t)=>{for(var a in t)__w_pdfjs_require__.o(t,a)&&!__w_pdfjs_require__.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})};__w_pdfjs_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);__w_pdfjs_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});Object.defineProperty(e,"__esModule",{value:!0})};var a={};(()=>{var e=a;Object.defineProperty(e,"__esModule",{value:!0});Object.defineProperty(e,"WorkerMessageHandler",{enumerable:!0,get:function(){return t.WorkerMessageHandler}});var t=__w_pdfjs_require__(1)})();return a})())); \ No newline at end of file diff --git a/client/src/assets/styles/mixins/detail-view-appearance.scss b/client/src/assets/styles/mixins/detail-view-appearance.scss index c1abdc0882..dfc67fdc97 100644 --- a/client/src/assets/styles/mixins/detail-view-appearance.scss +++ b/client/src/assets/styles/mixins/detail-view-appearance.scss @@ -2,6 +2,11 @@ @mixin detail-view-appearance { h1 { color: inherit; + font-weight: 400 !important; + } + + h2 { + font-weight: 700 !important; } h3 { diff --git a/client/src/meta b/client/src/meta index b273140488..8e7451440f 160000 --- a/client/src/meta +++ b/client/src/meta @@ -1 +1 @@ -Subproject commit b273140488acc6c397b38e1b02dd8f9e4f40338d +Subproject commit 8e7451440fae5aa809e3d828b6552c7f0e7feb3d diff --git a/client/src/styles.scss b/client/src/styles.scss index fda2f13fd2..4ab112f2c3 100644 --- a/client/src/styles.scss +++ b/client/src/styles.scss @@ -338,3 +338,7 @@ mat-hint, .hint { padding-left: 45px; margin-top: -10px; } + +.hiddenCanvasElement { + display: none; +} diff --git a/client/tests/integration/guards.spec.ts b/client/tests/integration/guards.spec.ts index a0cae3c2c3..2e24013d51 100644 --- a/client/tests/integration/guards.spec.ts +++ b/client/tests/integration/guards.spec.ts @@ -1,4 +1,5 @@ -import { test, expect, BrowserContext } from '@playwright/test'; +import { expect, test } from '@playwright/test'; + import { login, logout } from './helpers/auth'; import { createAccount, createMeeting, deleteAccounts, deleteCommittees, deleteMeetings } from './helpers/request'; @@ -33,8 +34,8 @@ test.describe(`Testing permission- and auth-guards`, () => { test.afterAll(async ({ browser }) => { const context = await browser.newContext(); await login(context); - await deleteAccounts(context, secondAccountId); await deleteMeetings(context, meetingId); + await deleteAccounts(context, secondAccountId); await deleteCommittees(context, committeeId); await logout(context); }); diff --git a/client/tests/integration/login.spec.ts b/client/tests/integration/login.spec.ts index 64ac058370..6bfd1eabb1 100644 --- a/client/tests/integration/login.spec.ts +++ b/client/tests/integration/login.spec.ts @@ -42,8 +42,8 @@ test.describe(`Testing the internal sign in process with saml enabled`, () => { test.afterAll(async ({ browser }) => { const context = await browser.newContext(); await login(context); - await deleteAccounts(context, secondAccountId); await deleteMeetings(context, meetingId); + await deleteAccounts(context, secondAccountId); await deleteCommittees(context, committeeId); await logout(context); }); @@ -113,8 +113,8 @@ test.describe(`Testing the sign in and out process`, () => { test.afterAll(async ({ browser }) => { const context = await browser.newContext(); await login(context); - await deleteAccounts(context, secondAccountId); await deleteMeetings(context, meetingId); + await deleteAccounts(context, secondAccountId); await deleteCommittees(context, committeeId); await logout(context); }); diff --git a/client/tests/integration/meeting/motion/history.spec.ts b/client/tests/integration/meeting/motion/history.spec.ts index 95ce5064e1..02cb8430c5 100644 --- a/client/tests/integration/meeting/motion/history.spec.ts +++ b/client/tests/integration/meeting/motion/history.spec.ts @@ -18,7 +18,7 @@ test.describe(`motion history mode test`, () => { text: `

          MotionHistoryTestText

          `, submitter_ids: [], category_id: null, - attachment_ids: [], + attachment_mediafile_ids: [], reason: ``, supporter_meeting_user_ids: [], agenda_create: false, diff --git a/nginx/nginx.conf b/nginx/nginx.conf index dd88a84141..ac058f04ad 100644 --- a/nginx/nginx.conf +++ b/nginx/nginx.conf @@ -16,6 +16,10 @@ http { index index.html index.htm; include /etc/nginx/mime.types; + types { + application/javascript js mjs; + } + client_max_body_size 100M; gzip on;