From dfc75a8619b6e7129a79ece25616d749c13bf76f Mon Sep 17 00:00:00 2001 From: Chris Coutinho Date: Wed, 11 Feb 2026 10:10:29 +0100 Subject: [PATCH 1/4] refactor: extract Astrolabe to separate repository Astrolabe has been extracted to its own repository at github.com/cbcoutinho/astrolabe for independent releases. Changes: - Replace third_party/astrolabe/ directory with git submodule - Remove astrolabe-ci.yml and appstore-build-publish.yml workflows - Remove scripts/bump-astrolabe.sh - Remove Astrolabe sections from bump-version.yml workflow - Remove Astrolabe build steps from test.yml CI workflow - Remove astrolabe volume mount from docker-compose.yml - Simplify astrolabe install hook to always use app store - Update CONTRIBUTING.md to reflect two-component monorepo Co-Authored-By: Claude Opus 4.6 --- .github/workflows/appstore-build-publish.yml | 89 - .github/workflows/astrolabe-ci.yml | 323 - .github/workflows/bump-version.yml | 16 +- .github/workflows/test.yml | 17 - .gitmodules | 3 + CONTRIBUTING.md | 16 +- .../20-install-astrolabe-app.sh | 24 +- docker-compose.yml | 1 - scripts/bump-astrolabe.sh | 90 - third_party/astrolabe | 1 + third_party/astrolabe/.cz.toml | 25 - third_party/astrolabe/.eslintrc.cjs | 9 - third_party/astrolabe/.gitignore | 15 - third_party/astrolabe/.nvmrc | 1 - third_party/astrolabe/.php-cs-fixer.dist.php | 19 - third_party/astrolabe/CHANGELOG.md | 573 - third_party/astrolabe/CODE_OF_CONDUCT.md | 9 - third_party/astrolabe/LICENSE | 661 - third_party/astrolabe/Makefile | 101 - third_party/astrolabe/README.md | 223 - third_party/astrolabe/appinfo/info.xml | 63 - third_party/astrolabe/appinfo/routes.php | 115 - third_party/astrolabe/composer.json | 57 - third_party/astrolabe/composer.lock | 3305 ----- third_party/astrolabe/img/app-dark.svg | 3 - third_party/astrolabe/img/app.svg | 3 - .../astrolabe/lib/AppInfo/Application.php | 45 - .../lib/BackgroundJob/RefreshUserTokens.php | 207 - .../lib/Controller/ApiController.php | 854 -- .../lib/Controller/CredentialsController.php | 324 - .../lib/Controller/OauthController.php | 550 - .../lib/Controller/PageController.php | 29 - .../AstrolabeAdminSettingsListener.php | 101 - .../lib/Search/SemanticSearchProvider.php | 349 - .../lib/Service/IdpTokenRefresher.php | 220 - .../astrolabe/lib/Service/McpServerClient.php | 666 - .../astrolabe/lib/Service/McpTokenStorage.php | 519 - .../astrolabe/lib/Service/WebhookPresets.php | 188 - third_party/astrolabe/lib/Settings/Admin.php | 117 - .../astrolabe/lib/Settings/AdminSection.php | 52 - .../lib/Settings/AstrolabeAdminSettings.php | 64 - .../astrolabe/lib/Settings/Personal.php | 238 - .../lib/Settings/PersonalSection.php | 52 - third_party/astrolabe/openapi.json | 149 - third_party/astrolabe/package-lock.json | 10450 ---------------- third_party/astrolabe/package.json | 41 - third_party/astrolabe/psalm-baseline.xml | 488 - third_party/astrolabe/psalm.xml | 22 - third_party/astrolabe/rector.php | 30 - .../01-unified-search-astrolabe.png | Bin 753978 -> 0 bytes .../02-semantic-search-with-plot.png | Bin 208705 -> 0 bytes .../screenshots/03-chunk-viewer-open.png | Bin 223095 -> 0 bytes third_party/astrolabe/src/App.vue | 1432 --- third_party/astrolabe/src/adminSettings.js | 18 - .../src/components/MarkdownViewer.vue | 172 - .../astrolabe/src/components/PDFViewer.vue | 183 - .../src/components/admin/AdminSettings.vue | 695 - third_party/astrolabe/src/main.js | 11 - third_party/astrolabe/src/personalSettings.js | 124 - third_party/astrolabe/src/styles/settings.css | 290 - third_party/astrolabe/stylelint.config.cjs | 3 - third_party/astrolabe/templates/index.php | 13 - .../astrolabe/templates/settings/admin.php | 15 - .../astrolabe/templates/settings/error.php | 51 - .../templates/settings/oauth-required.php | 117 - .../astrolabe/templates/settings/personal.php | 303 - third_party/astrolabe/tests/bootstrap.php | 9 - third_party/astrolabe/tests/phpunit.xml | 12 - .../BackgroundJob/RefreshUserTokensTest.php | 635 - .../unit/Service/IdpTokenRefresherTest.php | 429 - .../unit/Service/McpTokenStorageTest.php | 829 -- .../astrolabe/tests/unit/bootstrap.php | 13 - third_party/astrolabe/tests/unit/phpunit.xml | 17 - .../vendor-bin/cs-fixer/composer.json | 10 - .../vendor-bin/cs-fixer/composer.lock | 171 - .../openapi-extractor/composer.json | 10 - .../openapi-extractor/composer.lock | 247 - .../vendor-bin/phpunit/composer.json | 10 - .../vendor-bin/phpunit/composer.lock | 1691 --- .../astrolabe/vendor-bin/psalm/composer.json | 10 - .../astrolabe/vendor-bin/psalm/composer.lock | 2122 ---- .../astrolabe/vendor-bin/rector/composer.json | 5 - .../astrolabe/vendor-bin/rector/composer.lock | 131 - third_party/astrolabe/vite.config.js | 43 - third_party/astrolabe/webpack.js | 27 - 85 files changed, 12 insertions(+), 31353 deletions(-) delete mode 100644 .github/workflows/appstore-build-publish.yml delete mode 100644 .github/workflows/astrolabe-ci.yml delete mode 100755 scripts/bump-astrolabe.sh create mode 160000 third_party/astrolabe delete mode 100644 third_party/astrolabe/.cz.toml delete mode 100644 third_party/astrolabe/.eslintrc.cjs delete mode 100644 third_party/astrolabe/.gitignore delete mode 100644 third_party/astrolabe/.nvmrc delete mode 100644 third_party/astrolabe/.php-cs-fixer.dist.php delete mode 100644 third_party/astrolabe/CHANGELOG.md delete mode 100644 third_party/astrolabe/CODE_OF_CONDUCT.md delete mode 100644 third_party/astrolabe/LICENSE delete mode 100644 third_party/astrolabe/Makefile delete mode 100644 third_party/astrolabe/README.md delete mode 100644 third_party/astrolabe/appinfo/info.xml delete mode 100644 third_party/astrolabe/appinfo/routes.php delete mode 100644 third_party/astrolabe/composer.json delete mode 100644 third_party/astrolabe/composer.lock delete mode 100644 third_party/astrolabe/img/app-dark.svg delete mode 100644 third_party/astrolabe/img/app.svg delete mode 100644 third_party/astrolabe/lib/AppInfo/Application.php delete mode 100644 third_party/astrolabe/lib/BackgroundJob/RefreshUserTokens.php delete mode 100644 third_party/astrolabe/lib/Controller/ApiController.php delete mode 100644 third_party/astrolabe/lib/Controller/CredentialsController.php delete mode 100644 third_party/astrolabe/lib/Controller/OauthController.php delete mode 100644 third_party/astrolabe/lib/Controller/PageController.php delete mode 100644 third_party/astrolabe/lib/Listener/AstrolabeAdminSettingsListener.php delete mode 100644 third_party/astrolabe/lib/Search/SemanticSearchProvider.php delete mode 100644 third_party/astrolabe/lib/Service/IdpTokenRefresher.php delete mode 100644 third_party/astrolabe/lib/Service/McpServerClient.php delete mode 100644 third_party/astrolabe/lib/Service/McpTokenStorage.php delete mode 100644 third_party/astrolabe/lib/Service/WebhookPresets.php delete mode 100644 third_party/astrolabe/lib/Settings/Admin.php delete mode 100644 third_party/astrolabe/lib/Settings/AdminSection.php delete mode 100644 third_party/astrolabe/lib/Settings/AstrolabeAdminSettings.php delete mode 100644 third_party/astrolabe/lib/Settings/Personal.php delete mode 100644 third_party/astrolabe/lib/Settings/PersonalSection.php delete mode 100644 third_party/astrolabe/openapi.json delete mode 100644 third_party/astrolabe/package-lock.json delete mode 100644 third_party/astrolabe/package.json delete mode 100644 third_party/astrolabe/psalm-baseline.xml delete mode 100644 third_party/astrolabe/psalm.xml delete mode 100644 third_party/astrolabe/rector.php delete mode 100644 third_party/astrolabe/screenshots/01-unified-search-astrolabe.png delete mode 100644 third_party/astrolabe/screenshots/02-semantic-search-with-plot.png delete mode 100644 third_party/astrolabe/screenshots/03-chunk-viewer-open.png delete mode 100644 third_party/astrolabe/src/App.vue delete mode 100644 third_party/astrolabe/src/adminSettings.js delete mode 100644 third_party/astrolabe/src/components/MarkdownViewer.vue delete mode 100644 third_party/astrolabe/src/components/PDFViewer.vue delete mode 100644 third_party/astrolabe/src/components/admin/AdminSettings.vue delete mode 100644 third_party/astrolabe/src/main.js delete mode 100644 third_party/astrolabe/src/personalSettings.js delete mode 100644 third_party/astrolabe/src/styles/settings.css delete mode 100644 third_party/astrolabe/stylelint.config.cjs delete mode 100644 third_party/astrolabe/templates/index.php delete mode 100644 third_party/astrolabe/templates/settings/admin.php delete mode 100644 third_party/astrolabe/templates/settings/error.php delete mode 100644 third_party/astrolabe/templates/settings/oauth-required.php delete mode 100644 third_party/astrolabe/templates/settings/personal.php delete mode 100644 third_party/astrolabe/tests/bootstrap.php delete mode 100644 third_party/astrolabe/tests/phpunit.xml delete mode 100644 third_party/astrolabe/tests/unit/BackgroundJob/RefreshUserTokensTest.php delete mode 100644 third_party/astrolabe/tests/unit/Service/IdpTokenRefresherTest.php delete mode 100644 third_party/astrolabe/tests/unit/Service/McpTokenStorageTest.php delete mode 100644 third_party/astrolabe/tests/unit/bootstrap.php delete mode 100644 third_party/astrolabe/tests/unit/phpunit.xml delete mode 100644 third_party/astrolabe/vendor-bin/cs-fixer/composer.json delete mode 100644 third_party/astrolabe/vendor-bin/cs-fixer/composer.lock delete mode 100644 third_party/astrolabe/vendor-bin/openapi-extractor/composer.json delete mode 100644 third_party/astrolabe/vendor-bin/openapi-extractor/composer.lock delete mode 100644 third_party/astrolabe/vendor-bin/phpunit/composer.json delete mode 100644 third_party/astrolabe/vendor-bin/phpunit/composer.lock delete mode 100644 third_party/astrolabe/vendor-bin/psalm/composer.json delete mode 100644 third_party/astrolabe/vendor-bin/psalm/composer.lock delete mode 100644 third_party/astrolabe/vendor-bin/rector/composer.json delete mode 100644 third_party/astrolabe/vendor-bin/rector/composer.lock delete mode 100644 third_party/astrolabe/vite.config.js delete mode 100644 third_party/astrolabe/webpack.js diff --git a/.github/workflows/appstore-build-publish.yml b/.github/workflows/appstore-build-publish.yml deleted file mode 100644 index 486a27d..0000000 --- a/.github/workflows/appstore-build-publish.yml +++ /dev/null @@ -1,89 +0,0 @@ -name: Build and Publish Astrolabe App Release - -on: - push: - tags: - - 'astrolabe-v*' - -env: - APP_NAME: astrolabe - APP_DIR: third_party/astrolabe - -jobs: - build-and-publish: - runs-on: ubuntu-latest - permissions: - contents: write - - steps: - - name: Checkout code - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 - - - name: Get version from tag - id: tag - run: | - echo "TAG=${GITHUB_REF#refs/tags/astrolabe-v}" >> $GITHUB_OUTPUT - - - name: Validate version in info.xml matches tag - working-directory: ${{ env.APP_DIR }} - run: | - INFO_VERSION=$(sed -n 's/.*\(.*\)<\/version>.*/\1/p' appinfo/info.xml | tr -d '\t') - if [ "$INFO_VERSION" != "${{ steps.tag.outputs.TAG }}" ]; then - echo "Version mismatch: info.xml has $INFO_VERSION but tag is ${{ steps.tag.outputs.TAG }}" - exit 1 - fi - echo "Version validated: $INFO_VERSION" - - - name: Setup Node - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 - with: - node-version: 22 - - - name: Setup PHP - uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2 - with: - php-version: 8.1 - coverage: none - - - name: Checkout Nextcloud server (for signing) - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 - with: - repository: nextcloud/server - ref: stable30 - path: server - - - name: Install dependencies and build - working-directory: ${{ env.APP_DIR }} - run: | - composer install --no-dev --optimize-autoloader - npm ci - npm run build - - - name: Setup signing certificate - run: | - mkdir -p $HOME/.nextcloud/certificates - echo "${{ secrets.APP_PRIVATE_KEY }}" > $HOME/.nextcloud/certificates/${{ env.APP_NAME }}.key - echo "${{ secrets.APP_PUBLIC_CRT }}" > $HOME/.nextcloud/certificates/${{ env.APP_NAME }}.crt - - - name: Build app store package - working-directory: ${{ env.APP_DIR }} - run: make appstore server_dir=${{ github.workspace }}/server - - - name: Create GitHub release and attach tarball - uses: svenstaro/upload-release-action@6b7fa9f267e90b50a19fef07b3596790bb941741 # v2 - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ env.APP_DIR }}/build/artifacts/${{ env.APP_NAME }}.tar.gz - asset_name: ${{ env.APP_NAME }}-${{ steps.tag.outputs.TAG }}.tar.gz - tag: ${{ github.ref }} - release_name: Astrolabe ${{ steps.tag.outputs.TAG }} - prerelease: ${{ contains(steps.tag.outputs.TAG, '-alpha') || contains(steps.tag.outputs.TAG, '-beta') || contains(steps.tag.outputs.TAG, '-rc') }} - - - name: Upload to Nextcloud App Store - uses: R0Wi/nextcloud-appstore-push-action@9244bb5445776688cfe90fa1903ea8dff95b0c28 # v1.0.4 - with: - app_name: ${{ env.APP_NAME }} - appstore_token: ${{ secrets.APPSTORE_TOKEN }} - download_url: ${{ github.server_url }}/${{ github.repository }}/releases/download/${{ github.ref_name }}/${{ env.APP_NAME }}-${{ steps.tag.outputs.TAG }}.tar.gz - app_private_key: ${{ secrets.APP_PRIVATE_KEY }} - nightly: ${{ contains(steps.tag.outputs.TAG, '-alpha') || contains(steps.tag.outputs.TAG, '-beta') || contains(steps.tag.outputs.TAG, '-rc') }} diff --git a/.github/workflows/astrolabe-ci.yml b/.github/workflows/astrolabe-ci.yml deleted file mode 100644 index 8d7afd8..0000000 --- a/.github/workflows/astrolabe-ci.yml +++ /dev/null @@ -1,323 +0,0 @@ -# Consolidated CI workflow for Astrolabe Nextcloud app -# -# Runs on PRs that modify the astrolabe directory -# Based on Nextcloud app skeleton workflows -# -# SPDX-FileCopyrightText: 2025 Nextcloud MCP Server contributors -# SPDX-License-Identifier: MIT - -name: Astrolabe CI - -on: - pull_request: - paths: - - 'third_party/astrolabe/**' - - '.github/workflows/astrolabe-ci.yml' - -permissions: - contents: read - -concurrency: - group: astrolabe-ci-${{ github.head_ref || github.run_id }} - cancel-in-progress: true - -jobs: - changes: - runs-on: ubuntu-latest - permissions: - contents: read - pull-requests: read - outputs: - frontend: ${{ steps.changes.outputs.frontend }} - php: ${{ steps.changes.outputs.php }} - steps: - - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 - id: changes - continue-on-error: true - with: - filters: | - frontend: - - 'third_party/astrolabe/src/**' - - 'third_party/astrolabe/package.json' - - 'third_party/astrolabe/package-lock.json' - - 'third_party/astrolabe/vite.config.js' - - 'third_party/astrolabe/**/*.js' - - 'third_party/astrolabe/**/*.ts' - - 'third_party/astrolabe/**/*.vue' - php: - - 'third_party/astrolabe/lib/**' - - 'third_party/astrolabe/appinfo/**' - - 'third_party/astrolabe/composer.json' - - 'third_party/astrolabe/psalm.xml' - - # Node.js build and lint - node-build: - runs-on: ubuntu-latest - needs: changes - if: needs.changes.outputs.frontend != 'false' - name: Node.js build - defaults: - run: - working-directory: third_party/astrolabe - steps: - - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - - name: Read package.json node and npm engines version - uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3 - id: versions - with: - path: third_party/astrolabe - fallbackNode: '^20' - fallbackNpm: '^10' - - - name: Set up node ${{ steps.versions.outputs.nodeVersion }} - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 - with: - node-version: ${{ steps.versions.outputs.nodeVersion }} - - - name: Set up npm ${{ steps.versions.outputs.npmVersion }} - run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}' - - - name: Install dependencies & build - env: - CYPRESS_INSTALL_BINARY: 0 - PUPPETEER_SKIP_DOWNLOAD: true - run: | - npm ci - npm run build --if-present - - - name: Check webpack build changes - run: | - bash -c "[[ ! \"`git status --porcelain `\" ]] || (echo 'Please recompile and commit the assets' && exit 1)" - - # ESLint - eslint: - runs-on: ubuntu-latest - needs: changes - if: needs.changes.outputs.frontend != 'false' - name: ESLint - defaults: - run: - working-directory: third_party/astrolabe - steps: - - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - - name: Read package.json node and npm engines version - uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3 - id: versions - with: - path: third_party/astrolabe - fallbackNode: '^20' - fallbackNpm: '^10' - - - name: Set up node ${{ steps.versions.outputs.nodeVersion }} - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 - with: - node-version: ${{ steps.versions.outputs.nodeVersion }} - - - name: Set up npm ${{ steps.versions.outputs.npmVersion }} - run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}' - - - name: Install dependencies - env: - CYPRESS_INSTALL_BINARY: 0 - PUPPETEER_SKIP_DOWNLOAD: true - run: npm ci - - - name: Lint - run: npm run lint - - # Stylelint - stylelint: - runs-on: ubuntu-latest - needs: changes - if: needs.changes.outputs.frontend != 'false' - name: Stylelint - defaults: - run: - working-directory: third_party/astrolabe - steps: - - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - - name: Read package.json node and npm engines version - uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3 - id: versions - with: - path: third_party/astrolabe - fallbackNode: '^20' - fallbackNpm: '^10' - - - name: Set up node ${{ steps.versions.outputs.nodeVersion }} - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 - with: - node-version: ${{ steps.versions.outputs.nodeVersion }} - - - name: Set up npm ${{ steps.versions.outputs.npmVersion }} - run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}' - - - name: Install dependencies - env: - CYPRESS_INSTALL_BINARY: 0 - PUPPETEER_SKIP_DOWNLOAD: true - run: npm ci - - - name: Lint - run: npm run stylelint - - # PHP Code Style - php-cs: - runs-on: ubuntu-latest - needs: changes - if: needs.changes.outputs.php != 'false' - name: PHP CS Fixer - defaults: - run: - working-directory: third_party/astrolabe - steps: - - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - - name: Get php version - id: versions - uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1 - with: - filename: third_party/astrolabe/appinfo/info.xml - - - name: Set up php${{ steps.versions.outputs.php-min }} - uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a # v2.33.0 - with: - php-version: ${{ steps.versions.outputs.php-min }} - extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite - coverage: none - ini-file: development - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Install dependencies - run: | - composer remove nextcloud/ocp --dev || true - composer i - - - name: Lint - run: composer run cs:check || ( echo 'Please run `composer run cs:fix` to format your code' && exit 1 ) - - # Psalm Static Analysis - psalm: - runs-on: ubuntu-latest - needs: changes - if: needs.changes.outputs.php != 'false' - name: Psalm - defaults: - run: - working-directory: third_party/astrolabe - steps: - - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - - name: Get php version - id: versions - uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1 - with: - filename: third_party/astrolabe/appinfo/info.xml - - - name: Set up php${{ steps.versions.outputs.php-min }} - uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a # v2.33.0 - with: - php-version: ${{ steps.versions.outputs.php-min }} - extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite - coverage: none - ini-file: development - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Install dependencies - run: | - composer remove nextcloud/ocp --dev || true - composer i - - - name: Get OCP version matrix - id: ocp-versions - uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1 - with: - filename: third_party/astrolabe/appinfo/info.xml - - - name: Install OCP for static analysis - run: | - # Get first OCP version from matrix - OCP_VERSION=$(echo '${{ steps.ocp-versions.outputs.ocp-matrix }}' | jq -r '.include[0]."ocp-version"') - composer require --dev "nextcloud/ocp:$OCP_VERSION" --ignore-platform-reqs --with-dependencies - - - name: Run Psalm - run: composer run psalm -- --threads=1 --monochrome --no-progress --output-format=github - - # PHPUnit Tests - phpunit: - runs-on: ubuntu-latest - needs: changes - if: needs.changes.outputs.php != 'false' - defaults: - run: - working-directory: third_party/astrolabe - - strategy: - matrix: - php-versions: ['8.1', '8.2', '8.3'] - - name: PHPUnit (PHP ${{ matrix.php-versions }}) - - steps: - - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - - name: Set up PHP ${{ matrix.php-versions }} - uses: shivammathur/setup-php@cf4cade2721270509d5b1c766ab3549210a39a2a # v2.33.0 - with: - php-version: ${{ matrix.php-versions }} - extensions: ctype, curl, dom, gd, iconv, intl, json, mbstring, openssl, posix, sqlite, xml, zip - coverage: none - ini-file: development - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Install dependencies - run: | - composer remove nextcloud/ocp --dev || true - composer i - - - name: Get OCP version matrix - id: ocp-versions - uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.3.1 - with: - filename: third_party/astrolabe/appinfo/info.xml - - - name: Install OCP for testing - run: | - OCP_VERSION=$(echo '${{ steps.ocp-versions.outputs.ocp-matrix }}' | jq -r '.include[0]."ocp-version"') - composer require --dev "nextcloud/ocp:$OCP_VERSION" --ignore-platform-reqs --with-dependencies - - - name: Run PHPUnit - run: composer run test:unit - - # Summary job - summary: - permissions: - contents: none - runs-on: ubuntu-latest - needs: [changes, node-build, eslint, stylelint, php-cs, psalm, phpunit] - if: always() - name: astrolabe-ci-summary - steps: - - name: Summary status - run: | - if ${{ needs.changes.outputs.frontend != 'false' && (needs.node-build.result != 'success' || needs.eslint.result != 'success' || needs.stylelint.result != 'success') }}; then - echo "Frontend checks failed" - exit 1 - fi - if ${{ needs.changes.outputs.php != 'false' && (needs.php-cs.result != 'success' || needs.psalm.result != 'success' || needs.phpunit.result != 'success') }}; then - echo "PHP checks failed" - exit 1 - fi - echo "All checks passed" diff --git a/.github/workflows/bump-version.yml b/.github/workflows/bump-version.yml index a92373b..6015efd 100644 --- a/.github/workflows/bump-version.yml +++ b/.github/workflows/bump-version.yml @@ -83,9 +83,9 @@ jobs: commit_range="${last_mcp_tag}..HEAD" fi - # Count conventional commits that are NOT scoped to helm or astrolabe + # Count conventional commits that are NOT scoped to helm mcp_commit_count=$(git log "$commit_range" --oneline --grep="^(feat|fix|docs|refactor|perf|test|build|ci|chore)" -E | \ - { grep -v "(helm)" || true; } | { grep -v "(astrolabe)" || true; } | wc -l) + { grep -v "(helm)" || true; } | wc -l) MCP_BUMPED=false if [ "$mcp_commit_count" -gt 0 ]; then @@ -115,14 +115,6 @@ jobs: BUMPED_COMPONENTS="$BUMPED_COMPONENTS helm" fi - # Bump Astrolabe (scope: astrolabe) - echo "Checking Astrolabe for version bump..." - if has_commits_since_tag "astrolabe-v" "(feat|fix|docs|refactor|perf|test|build|ci|chore)\(astrolabe\)(!)?:"; then - echo "Bumping Astrolabe version..." - ./scripts/bump-astrolabe.sh - BUMPED_COMPONENTS="$BUMPED_COMPONENTS astrolabe" - fi - # Output summary if [ -z "$BUMPED_COMPONENTS" ]; then echo "No components required version bumps" @@ -158,10 +150,6 @@ jobs: tag=$(git tag --sort=-creatordate | grep -E '^nextcloud-mcp-server-' | head -n 1) echo "- **Helm Chart**: \`$tag\`" >> $GITHUB_STEP_SUMMARY ;; - astrolabe) - tag=$(git tag --sort=-creatordate | grep -E '^astrolabe-v' | head -n 1) - echo "- **Astrolabe**: \`$tag\`" >> $GITHUB_STEP_SUMMARY - ;; esac done diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3e9a681..7dd9cce 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -48,23 +48,6 @@ jobs: ###### Required to build OIDC App ###### - ###### Required to build Astrolabe App ###### - - - name: Set up Node.js for Astrolabe - uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 - with: - node-version: '20' - - - name: Build Astrolabe app - run: | - cd third_party/astrolabe - composer install --no-dev --optimize-autoloader - npm ci - npm run build - - ###### Required to build Astrolabe App ###### - - - name: Run docker compose uses: hoverkraft-tech/compose-action@4894d2492015c1774ee5a13a95b1072093087ec3 # v2.5.0 with: diff --git a/.gitmodules b/.gitmodules index 6dc5078..768b7a1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,3 +4,6 @@ [submodule "third_party/notes"] path = third_party/notes url = https://github.com/cbcoutinho/notes +[submodule "third_party/astrolabe"] + path = third_party/astrolabe + url = git@github.com:cbcoutinho/astrolabe.git diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 463962b..984cd39 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,7 +2,7 @@ ## Version Management -This monorepo uses commitizen for version management with **independent versioning** for three components: +This monorepo uses commitizen for version management with **independent versioning** for two components: ### Components @@ -10,7 +10,8 @@ This monorepo uses commitizen for version management with **independent versioni |-----------|-------|--------------|-------------| | MCP Server | `mcp` or none | `./scripts/bump-mcp.sh` | `v0.54.0` | | Helm Chart | `helm` | `./scripts/bump-helm.sh` | `nextcloud-mcp-server-0.54.0` | -| Astrolabe App | `astrolabe` | `./scripts/bump-astrolabe.sh` | `astrolabe-v0.2.0` | + +> **Note:** The Astrolabe Nextcloud app has been moved to its own repository at [cbcoutinho/astrolabe](https://github.com/cbcoutinho/astrolabe). ### Commit Message Format @@ -24,10 +25,6 @@ fix(mcp): resolve authentication bug # Helm chart changes feat(helm): add resource limits docs(helm): update values documentation - -# Astrolabe app changes -feat(astrolabe): add dark mode toggle -fix(astrolabe): resolve search UI bug ``` **Unscoped commits** default to the MCP server: @@ -40,7 +37,6 @@ feat: add new feature # → MCP server (v0.54.0) #### 1. Make Changes with Scoped Commits ```bash -git commit -m "feat(astrolabe): add dark mode toggle" git commit -m "feat(helm): add ingress annotations" git commit -m "feat(mcp): add calendar sync" ``` @@ -58,10 +54,6 @@ git commit -m "feat(mcp): add calendar sync" # → Creates tag: nextcloud-mcp-server-0.54.0 # → Updates: Chart.yaml:version -# Bump Astrolabe (reads commits with scope=astrolabe) -./scripts/bump-astrolabe.sh -# → Creates tag: astrolabe-v0.2.0 -# → Updates: info.xml, package.json ``` #### 3. Push Tags @@ -76,7 +68,6 @@ Each component maintains its own `CHANGELOG.md`: - **MCP Server**: `CHANGELOG.md` (root) - includes `feat(mcp):` and unscoped commits - **Helm Chart**: `charts/nextcloud-mcp-server/CHANGELOG.md` - includes `feat(helm):` only -- **Astrolabe**: `third_party/astrolabe/CHANGELOG.md` - includes `feat(astrolabe):` only ### Manual Version Bumps @@ -101,7 +92,6 @@ uv run cz --config .cz.toml bump --increment MINOR - **MCP Server**: Follows PEP 440, `major_version_zero = true` (0.x.x for pre-1.0) - **Helm Chart**: Follows PEP 440, starts at 0.53.0 (continues from current) -- **Astrolabe**: Follows PEP 440, `major_version_zero = true` (0.x.x for alpha/beta) ### Chart.yaml Version vs appVersion diff --git a/app-hooks/post-installation/20-install-astrolabe-app.sh b/app-hooks/post-installation/20-install-astrolabe-app.sh index b472447..3e532b8 100755 --- a/app-hooks/post-installation/20-install-astrolabe-app.sh +++ b/app-hooks/post-installation/20-install-astrolabe-app.sh @@ -2,35 +2,17 @@ set -euox pipefail -echo "Installing Astrolabe app for testing..." +echo "Installing Astrolabe app from app store..." -# Check if development astrolabe app is mounted at /opt/apps/astrolabe -if [ -d /opt/apps/astrolabe ]; then - echo "Development astrolabe app found at /opt/apps/astrolabe" - - # Remove any existing astrolabe app in custom_apps (from app store or old symlink) - if [ -e /var/www/html/custom_apps/astrolabe ]; then - echo "Removing existing astrolabe in custom_apps..." - rm -rf /var/www/html/custom_apps/astrolabe - fi - - # Create symlink from custom_apps to the mounted development version - # Per Nextcloud docs: apps outside server root need symlinks in server root - echo "Creating symlink: custom_apps/astrolabe -> /opt/apps/astrolabe" - ln -sf /opt/apps/astrolabe /var/www/html/custom_apps/astrolabe - - echo "Enabling astrolabe app from /opt/apps (development mode via symlink)" - php /var/www/html/occ app:enable astrolabe -elif [ -d /var/www/html/custom_apps/astrolabe ]; then +if [ -d /var/www/html/custom_apps/astrolabe ]; then echo "astrolabe app directory found in custom_apps (already installed)" php /var/www/html/occ app:enable astrolabe else - echo "astrolabe app not found, installing from app store..." php /var/www/html/occ app:install astrolabe php /var/www/html/occ app:enable astrolabe fi -echo "✓ Astrolabe app installed successfully" +echo "Astrolabe app installed successfully" echo "" echo "Note: MCP server configuration is managed dynamically during tests" echo " to support testing multiple MCP server deployments." diff --git a/docker-compose.yml b/docker-compose.yml index 4c153ce..9ae77eb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -37,7 +37,6 @@ services: # Mount OIDC development directory outside /var/www/html to avoid rsync conflicts # The post-installation hook will register /opt/apps as an additional app directory #- ./third_party:/opt/apps:ro - - ./third_party/astrolabe:/opt/apps/astrolabe:ro environment: - NEXTCLOUD_TRUSTED_DOMAINS=app - NEXTCLOUD_ADMIN_USER=admin diff --git a/scripts/bump-astrolabe.sh b/scripts/bump-astrolabe.sh deleted file mode 100755 index b3aefaa..0000000 --- a/scripts/bump-astrolabe.sh +++ /dev/null @@ -1,90 +0,0 @@ -#!/bin/bash -# Bump Astrolabe app version -set -euo pipefail - -# Parse optional --increment flag -INCREMENT="" -while [[ $# -gt 0 ]]; do - case $1 in - --increment) - INCREMENT="$2" - shift 2 - ;; - *) - echo "❌ Error: Unknown option: $1" >&2 - echo "Usage: $0 [--increment PATCH|MINOR|MAJOR]" >&2 - exit 1 - ;; - esac -done - -# Validate dependencies -command -v uv >/dev/null 2>&1 || { - echo "❌ Error: uv not found" >&2 - echo " Install from https://docs.astral.sh/uv/" >&2 - exit 1 -} - -# Validate Astrolabe directory exists -if [ ! -d "third_party/astrolabe" ]; then - echo "❌ Error: Must run from repository root (third_party/astrolabe not found)" >&2 - exit 1 -fi - -cd third_party/astrolabe - -# Validate required files exist -if [ ! -f "appinfo/info.xml" ]; then - echo "❌ Error: appinfo/info.xml not found" >&2 - exit 1 -fi - -if [ ! -f "package.json" ]; then - echo "❌ Error: package.json not found" >&2 - exit 1 -fi - -echo "Bumping Astrolabe version..." -if [ -n "$INCREMENT" ]; then - echo " Forcing $INCREMENT bump" -fi - -# Build commitizen command -CZ_CMD="uv run cz --config .cz.toml bump --yes" -if [ -n "$INCREMENT" ]; then - CZ_CMD="$CZ_CMD --increment $INCREMENT" -fi - -# Run commitizen bump and capture output -if ! output=$($CZ_CMD 2>&1); then - cd ../.. - - # Check if this is the expected "no commits to bump" case - if echo "$output" | grep -q "\[NO_COMMITS_TO_BUMP\]"; then - echo "ℹ️ No commits eligible for version bump" >&2 - echo "$output" >&2 - exit 0 - fi - - # Otherwise, this is an actual error - echo "❌ Error: Version bump failed" >&2 - echo "$output" >&2 - echo "" >&2 - echo "Common causes:" >&2 - echo " - No commits with scope 'astrolabe' since last version" >&2 - echo " - No conventional commits found (use feat(astrolabe):, fix(astrolabe):, etc.)" >&2 - echo " - Git working directory not clean" >&2 - exit 1 -fi - -echo "$output" -echo "" -echo "✓ Astrolabe version bumped successfully" -echo " Updated: appinfo/info.xml, package.json" -echo " Tag format: astrolabe-v\${version}" -echo "" -echo "Next steps:" -echo " cd ../.." -echo " git push --follow-tags" - -cd ../.. diff --git a/third_party/astrolabe b/third_party/astrolabe new file mode 160000 index 0000000..c079a70 --- /dev/null +++ b/third_party/astrolabe @@ -0,0 +1 @@ +Subproject commit c079a70af883329d677d492340166ff68ca4437b diff --git a/third_party/astrolabe/.cz.toml b/third_party/astrolabe/.cz.toml deleted file mode 100644 index 4aabc36..0000000 --- a/third_party/astrolabe/.cz.toml +++ /dev/null @@ -1,25 +0,0 @@ -[tool.commitizen] -name = "cz_conventional_commits" -version = "0.10.1" -tag_format = "astrolabe-v$version" -version_scheme = "semver" -update_changelog_on_bump = true -major_version_zero = true - -# Update Astrolabe-specific files only -version_files = [ - "appinfo/info.xml:", - "package.json:version" -] - -# Ignore tags from other components -ignored_tag_formats = [ - "v*", # MCP server tags - "nextcloud-mcp-server-*", # Helm chart tags -] - -# Filter commits by scope -[tool.commitizen.customize] -changelog_pattern = "^(feat|fix|docs|refactor|perf|test|build|ci|chore)\\(astrolabe\\)(!)?:" -schema_pattern = "^(feat|fix|docs|refactor|perf|test|build|ci|chore)\\(astrolabe\\)(!)?:\\s.+" -message_template = "{{change_type}}(astrolabe): {{message}}" diff --git a/third_party/astrolabe/.eslintrc.cjs b/third_party/astrolabe/.eslintrc.cjs deleted file mode 100644 index 9175db9..0000000 --- a/third_party/astrolabe/.eslintrc.cjs +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = { - extends: [ - '@nextcloud', - ], - rules: { - 'jsdoc/require-jsdoc': 'off', - 'vue/first-attribute-linebreak': 'off', - }, -} diff --git a/third_party/astrolabe/.gitignore b/third_party/astrolabe/.gitignore deleted file mode 100644 index 9039f45..0000000 --- a/third_party/astrolabe/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -/.idea/ -/*.iml - -/vendor/ -/vendor-bin/*/vendor/ - -/.php-cs-fixer.cache -/tests/.phpunit.cache - -dist/ -build/ -node_modules/ -js/ -css/ -.phpunit.cache/ diff --git a/third_party/astrolabe/.nvmrc b/third_party/astrolabe/.nvmrc deleted file mode 100644 index 209e3ef..0000000 --- a/third_party/astrolabe/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -20 diff --git a/third_party/astrolabe/.php-cs-fixer.dist.php b/third_party/astrolabe/.php-cs-fixer.dist.php deleted file mode 100644 index 91fc1d9..0000000 --- a/third_party/astrolabe/.php-cs-fixer.dist.php +++ /dev/null @@ -1,19 +0,0 @@ -getFinder() - ->notPath('build') - ->notPath('l10n') - ->notPath('node_modules') - ->notPath('src') - ->notPath('vendor') - ->in(__DIR__); - -return $config; diff --git a/third_party/astrolabe/CHANGELOG.md b/third_party/astrolabe/CHANGELOG.md deleted file mode 100644 index fc4a6e9..0000000 --- a/third_party/astrolabe/CHANGELOG.md +++ /dev/null @@ -1,573 +0,0 @@ -# Changelog - Astrolabe - -All notable changes to the Astrolabe Nextcloud app will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - - -### Added - -- Initial alpha release -- Semantic search across Notes, Files, Calendar, Deck, and Contacts -- Integration with Nextcloud Unified Search -- Personal settings UI for MCP server configuration -- Admin settings for global MCP server URL -- OAuth PKCE authentication flow -- Vector visualization of semantic relationships -- Hybrid search combining semantic and keyword matching -- Background content indexing -- Support for Nextcloud 30-32 - -### Notes - -- This is an alpha release intended for early adopters and testing -- Requires external MCP server deployment -- See documentation for setup: https://github.com/cbcoutinho/nextcloud-mcp-server - -## astrolabe-v0.10.1 (2026-02-03) - -### Fix - -- **helm**: add backward compatibility for legacy persistence configs - -## astrolabe-v0.10.0 (2026-01-28) - -### Feat - -- **astrolabe**: add background token refresh job - -### Fix - -- **astrolabe**: add pagination and psalm fixes for token refresh -- **astrolabe**: add locking to prevent token refresh race condition -- **astrolabe**: add issued_at to on-demand token refresh - -## astrolabe-v0.9.0 (2026-01-26) - -### Feat - -- **scripts**: add database query helpers for development - -### Fix - -- **astrolabe**: resolve Psalm type errors in PDF preview code -- **astrolabe**: fix Psalm baseline and ESLint import order -- **astrolabe**: load pdfjs-dist externally to fix PDF viewer -- **astrolabe**: improve error messages for authorization issues -- **astrolabe**: rename OAuthController and fix app password check -- **tests**: improve Astrolabe integration test reliability -- **astrolabe**: update Plotly title attributes for v3 compatibility -- **deps**: update dependency plotly.js-dist-min to v3 - -### Refactor - -- **api**: split management.py into domain-focused modules -- **astrolabe**: replace client-side PDF.js with server-side PyMuPDF rendering - -## astrolabe-v0.8.3 (2026-01-17) - -### Fix - -- **astrolabe**: improve token refresh error handling and validation -- **astrolabe**: delete stale tokens when refresh fails -- **astrolabe**: resolve CI failures for code quality checks -- **astrolabe**: use internal URL for OAuth token refresh - -### Refactor - -- **astrolabe**: add PHP property types to fix Psalm errors -- **astrolabe**: upgrade to @nextcloud/vue 9.3.3 API - -## astrolabe-v0.8.2 (2026-01-16) - -### Fix - -- **astrolabe**: Address reviewer feedback for hybrid mode -- **astrolabe**: Fix NcSelect options and CSS loading -- **astrolabe**: fix OAuth flow and settings UI for hybrid mode -- **api**: return OIDC config in hybrid mode for Astrolabe OAuth flow - -## astrolabe-v0.8.1 (2026-01-15) - -### Fix - -- **astrolabe**: address review feedback for Vue 3 bindings -- **astrolabe**: update Vue component bindings for Vue 3 compatibility -- **ci**: bump helm chart version when MCP appVersion changes - -## astrolabe-v0.8.0 (2026-01-15) - -### Feat - -- Add rate limiting and extract helpers for app password endpoints - -### Fix - -- **astrolabe**: define appName and appVersion for @nextcloud/vue -- Add missing annotations for deck remove/unassign operations -- **auth**: Store app passwords locally for multi-user BasicAuth background sync -- **deck**: use correct endpoint for reorder_card to fix cross-stack moves -- **deck**: Always preserve fields in update_card for partial updates - -### Refactor - -- Use get_settings() for vector sync enabled check -- Extract storage helper and improve PHP error handling - -## astrolabe-v0.7.2 (2025-12-30) - -### Fix - -- **astrolabe**: Fix CSS loading for Nextcloud apps - -## astrolabe-v0.7.1 (2025-12-30) - -### Fix - -- **astrolabe**: Fix revoke access button HTTP method mismatch -- **oauth**: Enable browser OAuth routes for Management API in hybrid mode -- **mcp**: Move all imports to the top of modules - -## astrolabe-v0.7.0 (2025-12-26) - -### Feat - -- Remove URL rewriting in favor of proper nextcloud config -- **helm**: migrate to new environment variable naming convention -- Migrate to vue 3 -- **astrolabe**: upgrade to Vue 3 and @nextcloud/vue 9 -- **helm**: add support for multi-user BasicAuth mode - -### Fix - -- **tests**: Add singleton reset fixture to prevent anyio.WouldBlock errors -- **tests**: Fix integration test failures in qdrant, sampling, and rag tests -- **auth**: Skip issuer validation for management API tokens -- Use settings.enable_offline_access for env var consolidation -- Add required config.py attributes -- **docker**: remove overwritehost to fix container-to-container DCR -- **deps**: update dependency @nextcloud/vue to v9 -- **deps**: update dependency vue to v3 -- **helm**: set OIDC client env vars when using existingSecret -- **helm**: trigger chart release workflow on helm chart tags -- **helm**: address PR #447 reviewer feedback -- **helm**: include MCP server version bumps in changelog pattern - -### Refactor - -- **auth**: Decouple BasicAuth and OAuth authentication strategies - -## astrolabe-v0.6.0 (2025-12-22) - -### Feat - -- **config**: enable DCR for multi-user BasicAuth with offline access -- **astrolabe**: implement app password provisioning for multi-user background sync -- **config**: consolidate configuration with smart dependency resolution (ADR-021) - -## astrolabe-v0.5.0 (2025-12-20) - -### Feat - -- **auth**: add multi-user BasicAuth pass-through mode -- **astrolabe**: add dynamic MCP server configuration for testing - -### Fix - -- **config**: address reviewer feedback - -### Refactor - -- **config**: centralize configuration validation and simplify startup - -## astrolabe-v0.4.4 (2025-12-20) - -### Fix - -- **astrolabe**: screenshots in info.xml - -## astrolabe-v0.4.3 (2025-12-19) - -### Fix - -- **astrolabe**: screenshots in info.xml - -## astrolabe-v0.4.2 (2025-12-19) - -### Fix - -- **astrolabe**: Update screenshots -- **ci**: skip existing Helm chart releases to prevent duplicate release errors - -## astrolabe-v0.4.1 (2025-12-19) - -## astrolabe-v0.4.0 (2025-12-19) - -### Feat - -- **ci**: add --increment flag to bump scripts for manual version control - -## astrolabe-v0.3.2 (2025-12-19) - -### Fix - -- **astrolabe**: add contents:write permission to appstore workflow - -## astrolabe-v0.3.1 (2025-12-19) - -### Fix - -- **astrolabe**: update commitizen pattern to properly update info.xml version - -## astrolabe-v0.3.0 (2025-12-19) - -### Fix - -- **astrolabe**: prevent workflow failure when only helm/astrolabe commits exist -- **astrolabe**: info.xml - -## astrolabe-v0.2.1 (2025-12-19) - -### BREAKING CHANGE - -- MCP server now bumps for ANY conventional commit except -those explicitly scoped to helm or astrolabe. - -### Fix - -- **ci**: push all tags explicitly in bump workflow -- **ci**: make MCP server default bump target for all non-scoped commits -- **ci**: restrict docker build to MCP server tags only -- **ci**: correct appstore-push-action version to v1.0.4 - -## astrolabe-v0.2.0 (2025-12-19) - -### BREAKING CHANGE - -- Search algorithms now require Qdrant to be populated. -Vector sync must be enabled and documents indexed for search to work. -- All OAuth deployments must be reconfigured to specify -resource URIs (NEXTCLOUD_MCP_SERVER_URL and NEXTCLOUD_RESOURCE_URI) and -choose between multi-audience or token exchange mode. -- FASTMCP_-prefixed env vars have been replaced by CLI -arguments. Refer to the README for updated usage. - -### Feat - -- **ci**: implement monorepo-aware version bumping workflow -- **astrolabe**: add Nextcloud App Store deployment automation -- configure commitizen monorepo with independent versioning -- add Alembic database migration system -- make chunk modal title clickable link to documents -- add native Plotly hover styling for clickable points -- add click interactivity to Plotly 3D scatter chart -- improve chunk viewer with fixed navigation and markdown rendering -- **astrolabe**: enable multi-select for document types and refactor PDF viewer -- **auth**: implement refresh token rotation for Nextcloud OIDC -- **astrolabe**: enhance unified search and add webhook management -- **astrolabe**: add webhook management UI to admin settings -- **astrolabe**: add OAuth token refresh and webhook presets -- **search**: add file_path metadata and chunk offsets to search results -- **astrolabe**: use proper icons and thumbnails in unified search -- **astrolabe**: add admin search settings and enhanced UI -- **astrolabe**: add unified search provider with clickable file links -- **astrolabe**: add 3D PCA visualization for semantic search -- **astrolabe**: add Nextcloud PHP app for MCP server management -- **vector-sync**: enable background sync in OAuth mode -- **vector**: add Deck card vector search with visualization support -- **vector-viz**: add news_item support for links and chunk expansion -- add MCP tool annotations for enhanced UX -- **news**: add Nextcloud News app integration -- Add tag management methods to WebDAV client -- Add OpenAI provider support for embeddings and generation -- Add Smithery CLI deployment support -- Implement ADR-016 Smithery stateless deployment mode -- Add context expansion to semantic search with chunk overlap removal -- Use Ollama native batch API in embed_batch() -- Implement Qdrant placeholder state management -- Switch files to use numeric IDs with file_path resolution -- Implement per-chunk vector visualization with context expansion -- Improve vector visualization with static assets and fixes -- Redesign UI to match Nextcloud ecosystem aesthetic -- Replace custom document chunker with LangChain MarkdownTextSplitter -- **viz**: Add dual-score display and improve UI controls -- add configurable fusion algorithms for BM25 hybrid search -- add chunk position tracking to vector indexing and search -- add vector viz template and chunk context endpoint -- add unified provider architecture with Amazon Bedrock support -- add concurrent uploads and --force flag to upload command -- implement RAG evaluation framework with CLI tooling -- Add OpenTelemetry tracing to @instrument_tool decorator -- Implement BM25 hybrid search with native Qdrant RRF fusion -- Normalize hybrid search RRF scores to 0-1 range -- Enhance vector visualization UI and parallelize search verification -- Add Vector Viz tab to app home page -- Add vector visualization pane with multi-select document types -- Implement custom PCA to remove sklearn dependency -- Add multi-document Protocol with cross-app search support -- Update nc_semantic_search tool with algorithm selection -- Implement unified search algorithm module -- Enable SSE transport for mcp service and update test fixtures -- Complete Phase 5 - Instrument all 93 MCP tools -- Add instrumentation decorator and apply to notes tools (Phase 5) -- Add OAuth token and database metrics (Phases 3-4) -- Add metrics instrumentation for queue, health, and database operations -- Add Grafana dashboard and vector sync metric instrumentation -- **ollama**: Pull model on startup if not available in ollama -- add dynamic vector sync status updates with htmx polling -- add webhook management UI and BeforeNodeDeletedEvent support -- validate Nextcloud webhook schemas and document findings -- skip tracing for health and metrics endpoints -- **helm**: Add document chunking configuration -- **vector**: Add configurable chunk size and overlap for document embedding -- **vector**: Support multiple embedding models with auto-generated collection names -- **helm**: Add observability support with ServiceMonitor and Grafana dashboard -- **observability**: Add comprehensive monitoring with Prometheus and OpenTelemetry -- **helm**: add Qdrant local mode support with three deployment options [skip ci] -- add Qdrant local mode support with in-memory and persistent storage -- implement ADR-009 - refactor semantic search to use generic semantic:read scope -- implement MCP sampling for semantic search RAG (ADR-008) -- add optional vector database and semantic search to helm chart -- add vector sync processing status to /user/page endpoint -- implement semantic search tool and fix vector sync issues (ADR-007 Phase 3) -- implement vector sync scanner and processor (ADR-007 Phase 2) -- add real elicitation integration test with python-sdk MCP client -- unify session architecture and enhance login status visibility -- Implement ADR-005 unified token verifier to eliminate token passthrough vulnerability -- add scope protection to OAuth provisioning tools -- enable authorization services for token exchange in Keycloak -- implement scope-based audience mapping and RFC 9728 support -- integrate token exchange into MCP server application -- implement RFC 8693 Standard Token Exchange for Keycloak -- Add userinfo route/page -- add browser-based user info page with separate OAuth flow -- Implement ADR-004 Progressive Consent foundation (partial) -- Complete ADR-004 Progressive Consent OAuth flows implementation -- Implement ADR-004 Progressive Consent foundation components -- Implement ADR-004 Hybrid Flow with comprehensive integration tests -- Auto-configure impersonation role in Keycloak realm import -- Implement dual-tier token exchange (Standard V2 + Legacy V1 impersonation) -- Add Keycloak external IdP integration with custom scopes -- Implement RFC 8693 token exchange for Keycloak (ADR-002 Tier 2) -- Add Keycloak OAuth provider support with refresh token storage -- **server**: Add /live & /health endpoints -- Initialize helm chart -- Add text processing background worker for telling client about progress -- **auth**: Add support for client registration deletion -- Split read/write scopes into app:read/write scopes -- Enable token introspection for opaque tokens -- **server**: Add support for custom OIDC scopes and permissions via JWTs -- Initialize JWT-scoped tools -- **caldav**: Add support for tasks -- **webdav**: Add search and list favorite response tools -- **cookbook**: Add full Cookbook app support with 13 tools and 2 resources -- Add Groups API client -- add sharing API client and server tools -- **server**: Experimental support for OAuth2/OIDC authentication -- **users**: Initialize user API client -- **server**: Add support for `streamable-http` transport type -- Add WebDAV resource copy functionality -- Add WebDAV resource move/rename functionality -- **deck**: Add support for stack, cards, labels -- **deck**: Initialize Deck app client/server -- **cli**: Replace `mcp run` with click CLI and runtime options -- **client**: Preserve fields when modifying contacts/calendar resources -- **server**: Add structured output to all tool/resource output -- **contacts**: Initialize Contacts App -- **calendar**: add comprehensive Calendar app support via CalDAV protocol -- Update webdav client create_directory method to handle recursive directories -- **webdav**: add complete file system support -- Add TablesClient and associated tools -- Switch to using async client -- **notes**: Add append to note functionality - -### Fix - -- **ci**: improve versioning and error handling -- **ci**: address critical workflow and validation issues -- **astrolabe**: address code review feedback -- **security**: address critical security issues from PR #401 code review -- **oauth**: enable PKCE for all clients and add token_broker to oauth_context -- **astrolabe**: revert invalid files_pdfviewer URL for file links -- resolve type checking warnings for CI -- move Alembic to package submodule for Docker compatibility -- update unified search results to match chunk viz display -- **astrolabe**: handle OAuth refresh token rotation -- address critical code review issues (4 fixes) -- resolve CI linting issues for Astroglobe -- **news**: revert get_item() to use get_items() + filter -- Disable DNS rebinding protection for containerized deployments -- **deps**: update dependency mcp to >=1.23,<1.24 -- address PR review feedback -- Update lockfile -- Revert mcp version <1.23 -- resolve all type checking errors (8 errors fixed) -- **deps**: update dependency mcp to >=1.23,<1.24 -- **deps**: update dependency pillow to v12 -- Add rate limit retry logic to OpenAI provider -- Increase MCP sampling timeout to 5 minutes for slower LLMs -- Share vector sync state with FastMCP session lifespan via module singleton -- Share vector sync state with FastMCP session lifespan via module singleton -- Use WebDAV for tag creation and add LLM-as-a-judge for RAG tests -- **smithery**: Enable JSON response format for scanner compatibility -- **smithery**: Add JSON Schema metadata to mcp-config endpoint -- **smithery**: Use container runtime pattern for config discovery -- Add Smithery lifespan and auth mode detection -- Use alpha_composite for proper RGBA highlight blending -- Remove pymupdf.layout.activate() to fix page_chunks behavior -- Centralize PDF processing and generate separate images per chunk -- Set is_placeholder=False in processor to fix search filtering -- Increase placeholder staleness threshold to 5x scan interval -- Add placeholder staleness check to prevent duplicate processing -- Use empty SparseVector instead of None for placeholders -- Return empty array instead of null for query_coords when no results -- Align PDF text extraction between indexing and context expansion -- Update models and viz to use int-only doc_id -- Reconstruct full content for notes to match indexed offsets -- Add async/await, PDF metadata, and type safety fixes -- **deps**: update dependency mcp to >=1.22,<1.23 -- Improve 3D plot rendering with explicit dimensions and window resize support -- Preserve 3D plot camera and improve documentation -- Preserve 3D plot camera position and fix CSS loading -- prevent infinite loop in DocumentChunker with position tracking -- Relax SearchResult validation to support DBSF fusion scores > 1.0 -- suppress Starlette middleware type warnings in ty checker -- download qrels from BEIR ZIP instead of HuggingFace -- Handle named vectors in visualization and semantic search -- Update vizApp to use bm25_hybrid algorithm and remove deprecated weights -- Update viz routes to use BM25 hybrid search after refactor -- Reorder tabs and fix viz pane session access -- Use NEXTCLOUD_OIDC_CLIENT_ID/SECRET env vars consistently -- return all notes when search query is empty -- Move grafana_folder from labels to annotations -- add dynamic dimension detection for Ollama embedding models -- improve webapp tab UI with CSS Grid and viewport-filling container -- add retry logic for ETag conflicts in category change test -- optimize Notes API pagination with pruneBefore parameter -- Support in-memory Qdrant for CI testing -- **helm**: Set default strategy to Recreate -- **observability**: isolate metrics endpoint to dedicated port -- **readiness**: Only check external Qdrant in network mode -- **vector**: Handle missing 'modified' field in notes gracefully -- **ci**: Use helm dependency build instead of update to use Chart.lock -- **helm**: update Qdrant dependency condition to match new mode structure -- **ci**: add Helm repository setup to chart release workflow -- implement deletion grace period and vector sync status tool -- remove unnecessary urllib3<2.0 constraint -- integrate vector sync tasks with Starlette lifespan for streamable-http -- **deps**: update dependency mcp to >=1.21,<1.22 -- Consolidate OAuth callbacks and implement PKCE for all flows -- Implement proper OAuth resource parameters and PRM-based discovery -- Simplify token verifier to be RFC 7519 compliant -- Use Keycloak client ID for NEXTCLOUD_RESOURCE_URI in token exchange -- Correct OAuth token audience validation for multi-audience mode -- **deps**: update dependency mcp to >=1.20,<1.21 -- add missing await for get_nextcloud_client in capabilities resource -- use valid Fernet encryption keys in token exchange tests -- accept resource URL in token audience for Nextcloud JWT tokens -- remove token-exchange-nextcloud scope and accept tokens without audience -- move audience mapper from scope to nextcloud-mcp-server client -- move token-exchange-nextcloud from default to optional scopes -- restructure routes to prevent SessionAuthBackend from interfering with FastMCP OAuth -- allow OAuth Bearer tokens on /mcp endpoint by excluding from session auth -- correct OAuth token audience validation using RFC 8707 resource parameter -- remove remaining references to deleted oauth_callback and oauth_token -- remove Hybrid Flow, make Progressive Consent default (ADR-004) -- browser OAuth userinfo endpoint and refresh token rotation -- make ENABLE_PROGRESSIVE_CONSENT consistently opt-in (default false) -- make provisioning checks opt-in (default false) -- Disable Progressive Consent for mcp-oauth to enable Hybrid Flow tests -- Complete Keycloak external IdP integration with all tests passing -- Complete Keycloak external IdP integration with all tests passing -- Update DCR token_type tests for OIDC app changes -- **helm**: Remove image tag overide -- **helm**: Update helm chart with extraArgs -- Update helm chart variables -- **helm**: Update helm version with release -- **helm**: Update helm version with release -- **helm**: Update helm version with release -- **helm**: Update helm version with release -- Trigger release -- Add support for RFC 7592 client registration and deletion -- Update webdav models for proper serialization -- **deps**: update dependency mcp to >=1.19,<1.20 -- Add CORS middleware to allow browser-based clients like MCP Inspector -- Use occ-created OAuth clients with allowed_scopes for all tests -- Separate OAuth fixtures for opaque vs JWT tokens -- **caldav**: Fix caldav search() due to missing todos -- **caldav**: Check that calendar exists after creation to avoid race condition -- **caldav**: Properly parse datetimes as vDDDTypes -- Increase HTTP client timeout to 30s -- Handle RequestError in mcp tools -- **deps**: update dependency mcp to >=1.18,<1.19 -- **deps**: update dependency pillow to v12 -- **oauth**: Remove the option to force_register new clients -- Update user/groups API to OCS v2 -- **deps**: update dependency mcp to >=1.17,<1.18 -- **deps**: update dependency mcp to >=1.16,<1.17 -- **deps**: update dependency mcp to >=1.15,<1.16 -- **docker**: Provide --host 0.0.0.0 in default docker image -- **deps**: update dependency mcp to >=1.13,<1.14 -- **server**: Replace ErrorResponses with standard McpErrors -- **notes**: Include ETags in responses to avoid accidently updates -- **notes**: Remove note contents from responses to reduce token usage -- **model**: Serialize timestamps in RFC3339 format -- **client**: Use paging to fetch all notes -- **client**: Strip cookies from responses to avoid falsely raising CSRF errors -- **calendar**: Fix iCalendar date vs datetime format -- **calendar**: Remove try/except in calendar API -- apply ruff formatting to pass CI checks -- **calendar**: address PR feedback from maintainer -- apply ruff formatting to test_webdav_operations.py -- **deps**: update dependency mcp to >=1.10,<1.11 -- update tests -- Commitizen release process -- Do not update dependencies when running in Dockerfile -- Configure logging -- Limit search results to notes with score > 0.5 -- Install deps before checking service -- **deps**: update dependency mcp to >=1.9,<1.10 - -### Refactor - -- **astrolabe**: extract PDF viewer to dedicated component -- **astrolabe**: reframe UI as semantic search service -- **news**: simplify vector sync to fetch all items -- Move background tasks to server lifespan and deprecate SSE transport -- Simplify PDF text extraction with single to_markdown call -- migrate asyncio to anyio for consistent structured concurrency -- replace httpx client with NextcloudClient in upload command -- Optimize Nextcloud access verification with centralized filtering -- Make all search algorithms query Qdrant payload, not Nextcloud -- move webapp from /user/page to /app -- consolidate database storage for webhooks and OAuth tokens -- simplify OpenTelemetry tracing configuration -- migrate vector sync from asyncio.Queue to anyio memory object streams -- update to Qdrant query_points API and fix Playwright Keycloak login -- Eliminate duplicate validation logic in UnifiedTokenVerifier -- integrate token exchange into unified get_client() pattern -- Remove NEXTCLOUD_OIDC_CLIENT_STORAGE environment variable -- Remove unnecessary user_oidc patch - CORSMiddleware patch is sufficient -- Unify OAuth configuration to be provider-agnostic -- Transform document parsing into pluggable processor architecture -- Update JWT client to use DCR, re-enable tool filtering -- Migrate from internal CalendarClient to caldav library -- Unify logging & remove factory deployment -- Add tools for all resources to enable tool-only workflows -- Add `http` to --transport option -- Use _make_request where available -- **calendar**: optimize logging for production readiness -- Modularize NC and Notes app client - -### Perf - -- **deck**: optimize card lookup by storing board_id/stack_id in metadata -- **news**: use direct API endpoint for get_item() -- Optimize vector viz search performance -- Optimize PDF processing with parallel extraction and single-render highlights -- Eliminate double-fetching in semantic search sampling -- fix vector viz search performance and visual encoding -- make note deletion concurrent in upload --force -- Exclude vector-sync status polling from distributed tracing -- **notes**: Improve notes search performance using async iterators diff --git a/third_party/astrolabe/CODE_OF_CONDUCT.md b/third_party/astrolabe/CODE_OF_CONDUCT.md deleted file mode 100644 index d906007..0000000 --- a/third_party/astrolabe/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,9 +0,0 @@ -In the Nextcloud community, participants from all over the world come together to create Free Software for a free internet. This is made possible by the support, hard work and enthusiasm of thousands of people, including those who create and use Nextcloud software. - -Our code of conduct offers some guidance to ensure Nextcloud participants can cooperate effectively in a positive and inspiring atmosphere, and to explain how together we can strengthen and support each other. - -The Code of Conduct is shared by all contributors and users who engage with the Nextcloud team and its community services. It presents a summary of the shared values and “common sense” thinking in our community. - -You can find our full code of conduct on our website: https://nextcloud.com/code-of-conduct/ - -Please, keep our CoC in mind when you contribute! That way, everyone can be a part of our community in a productive, positive, creative and fun way. diff --git a/third_party/astrolabe/LICENSE b/third_party/astrolabe/LICENSE deleted file mode 100644 index be3f7b2..0000000 --- a/third_party/astrolabe/LICENSE +++ /dev/null @@ -1,661 +0,0 @@ - GNU AFFERO GENERAL PUBLIC LICENSE - Version 3, 19 November 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU Affero General Public License is a free, copyleft license for -software and other kinds of works, specifically designed to ensure -cooperation with the community in the case of network server software. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -our General Public Licenses are intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - Developers that use our General Public Licenses protect your rights -with two steps: (1) assert copyright on the software, and (2) offer -you this License which gives you legal permission to copy, distribute -and/or modify the software. - - A secondary benefit of defending all users' freedom is that -improvements made in alternate versions of the program, if they -receive widespread use, become available for other developers to -incorporate. Many developers of free software are heartened and -encouraged by the resulting cooperation. However, in the case of -software used on network servers, this result may fail to come about. -The GNU General Public License permits making a modified version and -letting the public access it on a server without ever releasing its -source code to the public. - - The GNU Affero General Public License is designed specifically to -ensure that, in such cases, the modified source code becomes available -to the community. It requires the operator of a network server to -provide the source code of the modified version running there to the -users of that server. Therefore, public use of a modified version, on -a publicly accessible server, gives the public access to the source -code of the modified version. - - An older license, called the Affero General Public License and -published by Affero, was designed to accomplish similar goals. This is -a different license, not a version of the Affero GPL, but Affero has -released a new version of the Affero GPL which permits relicensing under -this license. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU Affero General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Remote Network Interaction; Use with the GNU General Public License. - - Notwithstanding any other provision of this License, if you modify the -Program, your modified version must prominently offer all users -interacting with it remotely through a computer network (if your version -supports such interaction) an opportunity to receive the Corresponding -Source of your version by providing access to the Corresponding Source -from a network server at no charge, through some standard or customary -means of facilitating copying of software. This Corresponding Source -shall include the Corresponding Source for any work covered by version 3 -of the GNU General Public License that is incorporated pursuant to the -following paragraph. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the work with which it is combined will remain governed by version -3 of the GNU General Public License. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU Affero General Public License from time to time. Such new versions -will be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU Affero General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU Affero General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU Affero General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If your software can interact with users remotely through a computer -network, you should also make sure that it provides a way for users to -get its source. For example, if your program is a web application, its -interface could display a "Source" link that leads users to an archive -of the code. There are many ways you could offer source, and different -solutions will be better for different programs; see section 13 for the -specific requirements. - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU AGPL, see -. diff --git a/third_party/astrolabe/Makefile b/third_party/astrolabe/Makefile deleted file mode 100644 index f96e6e0..0000000 --- a/third_party/astrolabe/Makefile +++ /dev/null @@ -1,101 +0,0 @@ -# Nextcloud App Store Release Makefile for Astrolabe -# -# Based on: https://nextcloudappstore.readthedocs.io/en/latest/developer.html - -app_name=astrolabe -project_dir=$(CURDIR) -build_dir=$(project_dir)/build -appstore_dir=$(build_dir)/artifacts -package_name=$(appstore_dir)/$(app_name) -cert_dir=$(HOME)/.nextcloud/certificates - -# Nextcloud server path (configurable via environment variable) -server_dir?=../../server -occ=$(server_dir)/occ - -# Signing -private_key=$(cert_dir)/$(app_name).key -certificate=$(cert_dir)/$(app_name).crt -sign_cmd=php $(occ) integrity:sign-app --privateKey=$(private_key) --certificate=$(certificate) - -# Clean build artifacts -.PHONY: clean -clean: - rm -rf $(build_dir) - -# Validate required dependencies -.PHONY: validate-deps -validate-deps: - @command -v composer >/dev/null 2>&1 || { echo "Error: composer not found. Install from https://getcomposer.org/"; exit 1; } - @command -v npm >/dev/null 2>&1 || { echo "Error: npm not found. Install Node.js from https://nodejs.org/"; exit 1; } - @command -v php >/dev/null 2>&1 || { echo "Error: php not found. Install PHP 8.1 or higher."; exit 1; } - @echo "✓ All dependencies found" - -# Install PHP and Node dependencies -.PHONY: install-deps -install-deps: validate-deps - composer install --no-dev --optimize-autoloader - npm ci - -# Build production frontend assets -.PHONY: build-frontend -build-frontend: - npm run build - -# Run all linters -.PHONY: lint -lint: - composer lint - composer cs:check - npm run lint - npm run stylelint - -# Assemble app files into build directory (exclude dev files) -.PHONY: assemble -assemble: clean install-deps build-frontend - mkdir -p $(package_name) - # Copy app files - rsync -av \ - --exclude='.git*' \ - --exclude='build/' \ - --exclude='tests/' \ - --exclude='node_modules/' \ - --exclude='*.log' \ - --exclude='.github/' \ - --exclude='composer.json' \ - --exclude='composer.lock' \ - --exclude='package.json' \ - --exclude='package-lock.json' \ - --exclude='vite.config.js' \ - --exclude='.eslintrc.js' \ - --exclude='.php-cs-fixer.*' \ - --exclude='psalm.xml' \ - --exclude='*.iml' \ - --exclude='.idea' \ - --exclude='src/' \ - ./ $(package_name)/ - -# Validate signing prerequisites -.PHONY: validate-signing -validate-signing: - @test -f $(occ) || { echo "Error: Nextcloud server not found at $(server_dir)"; echo "Set server_dir variable: make appstore server_dir=/path/to/server"; exit 1; } - @test -f $(private_key) || { echo "Error: Private key not found at $(private_key)"; exit 1; } - @test -f $(certificate) || { echo "Error: Certificate not found at $(certificate)"; exit 1; } - @echo "✓ Signing prerequisites validated" - -# Create signed release tarball for App Store -.PHONY: appstore -appstore: assemble validate-signing - # Sign the app - $(sign_cmd) --path=$(package_name) - # Create tarball - cd $(appstore_dir) && \ - tar -czf $(app_name).tar.gz $(app_name) - # Show package info - @echo "=========================================" - @echo "App package created:" - @echo " $(appstore_dir)/$(app_name).tar.gz" - @echo "" - @echo "Signature:" - @cat $(package_name)/appinfo/signature.json | head -n 5 - @echo "=========================================" diff --git a/third_party/astrolabe/README.md b/third_party/astrolabe/README.md deleted file mode 100644 index 2346267..0000000 --- a/third_party/astrolabe/README.md +++ /dev/null @@ -1,223 +0,0 @@ -# Astrolabe: The Intelligence Layer for Nextcloud - -Your Nextcloud instance is more than just a bucket for files—it is a galaxy of ideas, projects, and knowledge. But until now, you've been navigating it in the dark, relying on exact filenames and rigid keywords. - -**It's time to turn the lights on.** - -Astrolabe is a fully integrated Nextcloud application that transforms your server into a semantic intelligence engine. It doesn't just store your data; it **maps it, understands it, and connects it** to the AI future. - ---- - -## What You Can Do - -### 🔍 Search That Actually Understands - -Forget clunky external tools. Astrolabe registers as a **native Nextcloud Search Provider**. - -- **Seamless**: Lives right in the standard Nextcloud search bar you already use -- **Semantic**: Type "marketing strategy for the winter launch" and Astrolabe finds the relevant PDFs, chat logs, and text files—even if those exact words never appear in the document -- **Intelligent**: It finds the **concept**, not just the string - -### 🌌 Visualize Your Data Universe - -Data shouldn't just be a list; it should be a landscape. Astrolabe includes a dedicated dashboard that visualizes your document chunks as a **3D PCA Vector Plot**. - -- **See the Connections**: View your data as a constellation of points in 3D space -- **Explore Clusters**: Visually identify how your documents relate to one another -- **True "Astroglobe" Experience**: Rotate, zoom, and fly through your semantic universe just like navigators once studied the stars - -### 🤖 Power Your AI Agents - -Astrolabe isn't just for humans; it's for your AI agents, too. It acts as a bridge, running a **Model Context Protocol (MCP) Server** directly from your Nextcloud. - -- **Bring Your Own Brain**: Connect external AI clients (like Claude Desktop or Cursor) to your private data -- **Agentic Workflows**: Enable LLMs to "sample" your files, read content, and perform complex reasoning tasks using your Nextcloud data as the source of truth -- **Private & Secure**: Your data never leaves your infrastructure - ---- - -## Installation - -### From App Store (Recommended) - -1. Open **Apps** in your Nextcloud -2. Search for **"Astrolabe"** -3. Click **"Download and enable"** - -### Manual Installation - -```bash -# Clone into your Nextcloud apps directory -cd /path/to/nextcloud/apps -git clone https://github.com/cbcoutinho/nextcloud-mcp-server.git -cd nextcloud-mcp-server/third_party/astrolabe - -# Install dependencies -composer install - -# Enable the app -php /path/to/nextcloud/occ app:enable astrolabe -``` - ---- - -## Quick Start - -### 1. Configure the MCP Server URL - -Add this to your Nextcloud `config/config.php`: - -```php -'mcp_server_url' => 'http://localhost:8000', -``` - -### 2. Start the MCP Server - -The MCP server handles semantic search and AI agent connections. See the [MCP Server Installation Guide](https://github.com/cbcoutinho/nextcloud-mcp-server/blob/master/docs/installation.md) for details. - -Quick start with Docker: - -```bash -docker run -p 127.0.0.1:8000:8000 --env-file .env --rm \ - ghcr.io/cbcoutinho/nextcloud-mcp-server:latest --oauth -``` - -### 3. Authorize Access - -1. Go to **Settings → Personal → Astrolabe** -2. Click **"Authorize Access"** -3. Sign in to your identity provider -4. Approve the requested permissions - -That's it! You can now use semantic search and explore your data universe. - ---- - -## Features - -### Personal Settings - -Located in: **Settings → Personal → Astrolabe** - -- **Semantic Search Dashboard**: Interactive 3D visualization of your document chunks -- **OAuth Authorization**: Authorize Nextcloud to access the MCP server on your behalf -- **Session Information**: View connection status and authentication details -- **Connection Management**: Revoke access or disconnect when needed - -### Admin Settings - -Located in: **Settings → Administration → Astrolabe** - -- **Server Status**: Monitor MCP server health and version -- **Vector Sync Metrics**: See how many documents are indexed, processing rates, and sync status -- **Configuration Validation**: Verify server URL and connectivity -- **Feature Availability**: Check which capabilities are enabled - -### Unified Search Integration - -Astrolabe integrates directly with Nextcloud's **Unified Search**: - -- Available in the top search bar across all Nextcloud pages -- Returns semantic matches ranked by relevance -- Shows excerpts from matching documents -- Links directly to source files in Nextcloud - ---- - -## Use Cases - -### For Individuals - -- **Research**: Find all notes related to a project, even if they use different terminology -- **Organization**: Discover forgotten documents related to your current work -- **Exploration**: Visualize how your knowledge connects and evolves over time - -### For Teams - -- **Knowledge Discovery**: Surface institutional knowledge that would otherwise stay buried -- **Collaboration**: Find team members working on similar problems -- **Documentation**: Locate relevant documentation without knowing exact titles - -### For Developers - -- **AI Integration**: Connect Claude Desktop, Cursor, or other MCP clients to Nextcloud -- **RAG Workflows**: Build retrieval-augmented generation pipelines on your private data -- **Custom Agents**: Use the MCP protocol to create specialized workflows - ---- - -## Requirements - -- **Nextcloud**: Version 30 or later -- **MCP Server**: Running instance (Docker recommended) -- **Identity Provider**: OAuth provider supporting PKCE (Nextcloud OIDC Login or Keycloak) -- **Vector Sync**: Optional but recommended for semantic search (see [configuration guide](https://github.com/cbcoutinho/nextcloud-mcp-server/blob/master/docs/configuration.md)) - ---- - -## Documentation - -### User Guides - -- [MCP Server Installation](https://github.com/cbcoutinho/nextcloud-mcp-server/blob/master/docs/installation.md) -- [Configuration Guide](https://github.com/cbcoutinho/nextcloud-mcp-server/blob/master/docs/configuration.md) -- [OAuth Setup](https://github.com/cbcoutinho/nextcloud-mcp-server/blob/master/docs/oauth-setup.md) - -### Technical Details - -- [ADR-018: Nextcloud PHP App Architecture](https://github.com/cbcoutinho/nextcloud-mcp-server/blob/master/docs/ADR-018-nextcloud-php-app-for-settings-ui.md) -- [OAuth PKCE Flow Details](https://github.com/cbcoutinho/nextcloud-mcp-server/blob/master/docs/ADR-004-progressive-consent.md) -- [Vector Sync Architecture](https://github.com/cbcoutinho/nextcloud-mcp-server/blob/master/docs/ADR-002-vector-sync-authentication.md) - -### Troubleshooting - -**Cannot connect to MCP server:** -- Verify `mcp_server_url` in `config.php` -- Check MCP server is running: `curl http://localhost:8000/health` -- Review logs: `tail -f data/nextcloud.log` - -**Authorization fails:** -- Ensure MCP server is in OAuth mode -- Verify identity provider is accessible -- Check browser console for errors - -**Semantic search returns no results:** -- Verify vector sync is enabled and running -- Check indexing status in Admin settings -- Allow time for initial indexing to complete - -For more help, see the [Troubleshooting Guide](https://github.com/cbcoutinho/nextcloud-mcp-server/blob/master/docs/troubleshooting.md). - ---- - -## Contributing - -We welcome contributions! Here's how to get started: - -1. Fork the [nextcloud-mcp-server repository](https://github.com/cbcoutinho/nextcloud-mcp-server) -2. Create a feature branch: `git checkout -b feature/your-feature` -3. Make your changes in `third_party/astrolabe/` -4. Test thoroughly with a local Nextcloud instance -5. Submit a pull request - -See [CONTRIBUTING.md](https://github.com/cbcoutinho/nextcloud-mcp-server/blob/master/CONTRIBUTING.md) for detailed guidelines. - ---- - -## License - -AGPL-3.0 - ---- - -## About - -**Astrolabe** is developed as part of the [Nextcloud MCP Server](https://github.com/cbcoutinho/nextcloud-mcp-server) project, bringing the power of semantic search and AI integration to Nextcloud. - -**Author**: Chris Coutinho - ---- - -**Your Data. Mapped. Visualized. Connected.** - -Install Astrolabe for Nextcloud. diff --git a/third_party/astrolabe/appinfo/info.xml b/third_party/astrolabe/appinfo/info.xml deleted file mode 100644 index 76de198..0000000 --- a/third_party/astrolabe/appinfo/info.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - astrolabe - Astrolabe - AI-powered semantic search across your Nextcloud - - 0.10.1 - agpl - Chris Coutinho - Astrolabe - ai - https://github.com/cbcoutinho/nextcloud-mcp-server/issues - https://github.com/cbcoutinho/nextcloud-mcp-server - https://github.com/cbcoutinho/nextcloud-mcp-server/blob/master/third_party/astrolabe/screenshots/02-semantic-search-with-plot.png?raw=1 - https://github.com/cbcoutinho/nextcloud-mcp-server/blob/master/third_party/astrolabe/screenshots/01-unified-search-astrolabe.png?raw=1 - https://github.com/cbcoutinho/nextcloud-mcp-server/blob/master/third_party/astrolabe/screenshots/03-chunk-viewer-open.png?raw=1 - - - - - OCA\Astrolabe\Settings\Personal - OCA\Astrolabe\Settings\PersonalSection - OCA\Astrolabe\Settings\Admin - OCA\Astrolabe\Settings\AdminSection - - - - astrolabe - Astrolabe - astrolabe.page.index - app.svg - link - - - - OCA\Astrolabe\BackgroundJob\RefreshUserTokens - - diff --git a/third_party/astrolabe/appinfo/routes.php b/third_party/astrolabe/appinfo/routes.php deleted file mode 100644 index 35d0c8d..0000000 --- a/third_party/astrolabe/appinfo/routes.php +++ /dev/null @@ -1,115 +0,0 @@ - [ - // OAuth routes - [ - 'name' => 'oauth#initiateOAuth', - 'url' => '/oauth/authorize', - 'verb' => 'GET', - ], - [ - 'name' => 'oauth#oauthCallback', - 'url' => '/oauth/callback', - 'verb' => 'GET', - ], - [ - 'name' => 'oauth#disconnect', - 'url' => '/oauth/disconnect', - 'verb' => 'POST', - ], - - // API routes (form handlers) - [ - 'name' => 'api#revokeAccess', - 'url' => '/api/revoke', - 'verb' => 'POST', - ], - - // Background sync credentials routes - [ - 'name' => 'credentials#storeAppPassword', - 'url' => '/api/v1/background-sync/credentials', - 'verb' => 'POST', - ], - [ - 'name' => 'credentials#getCredentials', - 'url' => '/api/v1/background-sync/credentials/{userId}', - 'verb' => 'GET', - ], - [ - 'name' => 'credentials#deleteCredentials', - 'url' => '/api/v1/background-sync/credentials/revoke', - 'verb' => 'POST', - ], - [ - 'name' => 'credentials#getStatus', - 'url' => '/api/v1/background-sync/status', - 'verb' => 'GET', - ], - - // Vector search API routes - [ - 'name' => 'api#search', - 'url' => '/api/search', - 'verb' => 'GET', - ], - [ - 'name' => 'api#vectorStatus', - 'url' => '/api/vector-status', - 'verb' => 'GET', - ], - [ - 'name' => 'api#chunkContext', - 'url' => '/api/chunk-context', - 'verb' => 'GET', - ], - [ - 'name' => 'api#pdfPreview', - 'url' => '/api/pdf-preview', - 'verb' => 'GET', - ], - - // Admin settings routes - [ - 'name' => 'api#serverStatus', - 'url' => '/api/admin/server-status', - 'verb' => 'GET', - ], - [ - 'name' => 'api#adminVectorStatus', - 'url' => '/api/admin/vector-status', - 'verb' => 'GET', - ], - [ - 'name' => 'api#saveSearchSettings', - 'url' => '/api/admin/search-settings', - 'verb' => 'POST', - ], - - // Webhook management routes (admin only) - [ - 'name' => 'api#getWebhookPresets', - 'url' => '/api/admin/webhooks/presets', - 'verb' => 'GET', - ], - [ - 'name' => 'api#enableWebhookPreset', - 'url' => '/api/admin/webhooks/presets/{presetId}/enable', - 'verb' => 'POST', - ], - [ - 'name' => 'api#disableWebhookPreset', - 'url' => '/api/admin/webhooks/presets/{presetId}/disable', - 'verb' => 'POST', - ], - ], -]; diff --git a/third_party/astrolabe/composer.json b/third_party/astrolabe/composer.json deleted file mode 100644 index 91969c1..0000000 --- a/third_party/astrolabe/composer.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "nextcloud/astrolabe", - "description": "This app provides a management UI for the Nextcloud MCP Server", - "license": "AGPL-3.0-or-later", - "authors": [ - { - "name": "Chris Coutinho", - "email": "chris@coutinho.io", - "homepage": "https://github.com/cbcoutinho" - } - ], - "autoload": { - "psr-4": { - "OCA\\Astrolabe\\": "lib/" - } - }, - "autoload-dev": { - "psr-4": { - "OCP\\": "vendor/nextcloud/ocp/OCP/" - } - }, - "scripts": { - "post-install-cmd": [ - "@composer bin all install --ansi" - ], - "post-update-cmd": [ - "@composer bin all install --ansi" - ], - "lint": "find . -name \\*.php -not -path './vendor/*' -not -path './vendor-bin/*' -not -path './build/*' -print0 | xargs -0 -n1 php -l", - "cs:check": "php-cs-fixer fix --dry-run --diff", - "cs:fix": "php-cs-fixer fix", - "psalm": "psalm --threads=1 --no-cache", - "test:unit": "./vendor/bin/phpunit -c tests/unit/phpunit.xml --colors=always", - "openapi": "generate-spec", - "rector": "rector && composer cs:fix" - }, - "require": { - "bamarni/composer-bin-plugin": "^1.8", - "php": "^8.1" - }, - "require-dev": { - "doctrine/dbal": "^3.8", - "nextcloud/ocp": "dev-stable30", - "phpunit/phpunit": "^10.0", - "roave/security-advisories": "dev-latest" - }, - "config": { - "allow-plugins": { - "bamarni/composer-bin-plugin": true - }, - "optimize-autoloader": true, - "sort-packages": true, - "platform": { - "php": "8.1" - } - } -} diff --git a/third_party/astrolabe/composer.lock b/third_party/astrolabe/composer.lock deleted file mode 100644 index c0f062e..0000000 --- a/third_party/astrolabe/composer.lock +++ /dev/null @@ -1,3305 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", - "This file is @generated automatically" - ], - "content-hash": "e6ea5a770c578a5d7694602bb2618cef", - "packages": [ - { - "name": "bamarni/composer-bin-plugin", - "version": "1.8.3", - "source": { - "type": "git", - "url": "https://github.com/bamarni/composer-bin-plugin.git", - "reference": "e7ef9e012667327516c24e5fad9903a3bc91389d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/bamarni/composer-bin-plugin/zipball/e7ef9e012667327516c24e5fad9903a3bc91389d", - "reference": "e7ef9e012667327516c24e5fad9903a3bc91389d", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^2.0", - "php": "^7.2.5 || ^8.0" - }, - "require-dev": { - "composer/composer": "^2.0", - "ext-json": "*", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-phpunit": "^1.1", - "phpunit/phpunit": "^8.5 || ^9.6 || ^10.0", - "symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", - "symfony/finder": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", - "symfony/process": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0" - }, - "type": "composer-plugin", - "extra": { - "class": "Bamarni\\Composer\\Bin\\BamarniBinPlugin" - }, - "autoload": { - "psr-4": { - "Bamarni\\Composer\\Bin\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "No conflicts for your bin dependencies", - "keywords": [ - "composer", - "conflict", - "dependency", - "executable", - "isolation", - "tool" - ], - "support": { - "issues": "https://github.com/bamarni/composer-bin-plugin/issues", - "source": "https://github.com/bamarni/composer-bin-plugin/tree/1.8.3" - }, - "time": "2025-11-24T19:20:55+00:00" - } - ], - "packages-dev": [ - { - "name": "doctrine/dbal", - "version": "3.10.4", - "source": { - "type": "git", - "url": "https://github.com/doctrine/dbal.git", - "reference": "63a46cb5aa6f60991186cc98c1d1b50c09311868" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/63a46cb5aa6f60991186cc98c1d1b50c09311868", - "reference": "63a46cb5aa6f60991186cc98c1d1b50c09311868", - "shasum": "" - }, - "require": { - "composer-runtime-api": "^2", - "doctrine/deprecations": "^0.5.3|^1", - "doctrine/event-manager": "^1|^2", - "php": "^7.4 || ^8.0", - "psr/cache": "^1|^2|^3", - "psr/log": "^1|^2|^3" - }, - "conflict": { - "doctrine/cache": "< 1.11" - }, - "require-dev": { - "doctrine/cache": "^1.11|^2.0", - "doctrine/coding-standard": "14.0.0", - "fig/log-test": "^1", - "jetbrains/phpstorm-stubs": "2023.1", - "phpstan/phpstan": "2.1.30", - "phpstan/phpstan-strict-rules": "^2", - "phpunit/phpunit": "9.6.29", - "slevomat/coding-standard": "8.24.0", - "squizlabs/php_codesniffer": "4.0.0", - "symfony/cache": "^5.4|^6.0|^7.0|^8.0", - "symfony/console": "^4.4|^5.4|^6.0|^7.0|^8.0" - }, - "suggest": { - "symfony/console": "For helpful console commands such as SQL execution and import of files." - }, - "bin": [ - "bin/doctrine-dbal" - ], - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\DBAL\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - } - ], - "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", - "homepage": "https://www.doctrine-project.org/projects/dbal.html", - "keywords": [ - "abstraction", - "database", - "db2", - "dbal", - "mariadb", - "mssql", - "mysql", - "oci8", - "oracle", - "pdo", - "pgsql", - "postgresql", - "queryobject", - "sasql", - "sql", - "sqlite", - "sqlserver", - "sqlsrv" - ], - "support": { - "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.10.4" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal", - "type": "tidelift" - } - ], - "time": "2025-11-29T10:46:08+00:00" - }, - { - "name": "doctrine/deprecations", - "version": "1.1.5", - "source": { - "type": "git", - "url": "https://github.com/doctrine/deprecations.git", - "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", - "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "conflict": { - "phpunit/phpunit": "<=7.5 || >=13" - }, - "require-dev": { - "doctrine/coding-standard": "^9 || ^12 || ^13", - "phpstan/phpstan": "1.4.10 || 2.1.11", - "phpstan/phpstan-phpunit": "^1.0 || ^2", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12", - "psr/log": "^1 || ^2 || ^3" - }, - "suggest": { - "psr/log": "Allows logging deprecations via PSR-3 logger implementation" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Deprecations\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", - "homepage": "https://www.doctrine-project.org/", - "support": { - "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.5" - }, - "time": "2025-04-07T20:06:18+00:00" - }, - { - "name": "doctrine/event-manager", - "version": "2.1.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/event-manager.git", - "reference": "c07799fcf5ad362050960a0fd068dded40b1e312" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/event-manager/zipball/c07799fcf5ad362050960a0fd068dded40b1e312", - "reference": "c07799fcf5ad362050960a0fd068dded40b1e312", - "shasum": "" - }, - "require": { - "php": "^8.1" - }, - "conflict": { - "doctrine/common": "<2.9" - }, - "require-dev": { - "doctrine/coding-standard": "^14", - "phpdocumentor/guides-cli": "^1.4", - "phpstan/phpstan": "^2.1.32", - "phpunit/phpunit": "^10.5.58" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - } - ], - "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", - "homepage": "https://www.doctrine-project.org/projects/event-manager.html", - "keywords": [ - "event", - "event dispatcher", - "event manager", - "event system", - "events" - ], - "support": { - "issues": "https://github.com/doctrine/event-manager/issues", - "source": "https://github.com/doctrine/event-manager/tree/2.1.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager", - "type": "tidelift" - } - ], - "time": "2026-01-17T22:40:21+00:00" - }, - { - "name": "myclabs/deep-copy", - "version": "1.13.4", - "source": { - "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a", - "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "conflict": { - "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3 <3.2.2" - }, - "require-dev": { - "doctrine/collections": "^1.6.8", - "doctrine/common": "^2.13.3 || ^3.2.2", - "phpspec/prophecy": "^1.10", - "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" - }, - "type": "library", - "autoload": { - "files": [ - "src/DeepCopy/deep_copy.php" - ], - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Create deep copies (clones) of your objects", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" - ], - "support": { - "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4" - }, - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", - "type": "tidelift" - } - ], - "time": "2025-08-01T08:46:24+00:00" - }, - { - "name": "nextcloud/ocp", - "version": "dev-stable30", - "source": { - "type": "git", - "url": "https://github.com/nextcloud-deps/ocp.git", - "reference": "d93fc10fea3db4b4896e37db312fae685cff54c4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/d93fc10fea3db4b4896e37db312fae685cff54c4", - "reference": "d93fc10fea3db4b4896e37db312fae685cff54c4", - "shasum": "" - }, - "require": { - "php": "~8.0 || ~8.1 || ~8.2 || ~8.3", - "psr/clock": "^1.0", - "psr/container": "^2.0.2", - "psr/event-dispatcher": "^1.0", - "psr/log": "^2.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-stable30": "30.0.0-dev" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "AGPL-3.0-or-later" - ], - "authors": [ - { - "name": "Christoph Wurst", - "email": "christoph@winzerhof-wurst.at" - } - ], - "description": "Composer package containing Nextcloud's public API (classes, interfaces)", - "support": { - "issues": "https://github.com/nextcloud-deps/ocp/issues", - "source": "https://github.com/nextcloud-deps/ocp/tree/stable30" - }, - "time": "2025-12-02T00:53:40+00:00" - }, - { - "name": "nikic/php-parser", - "version": "v5.7.0", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82", - "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "ext-json": "*", - "ext-tokenizer": "*", - "php": ">=7.4" - }, - "require-dev": { - "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^9.0" - }, - "bin": [ - "bin/php-parse" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nikita Popov" - } - ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], - "support": { - "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.7.0" - }, - "time": "2025-12-06T11:56:16+00:00" - }, - { - "name": "phar-io/manifest", - "version": "2.0.4", - "source": { - "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "54750ef60c58e43759730615a392c31c80e23176" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", - "reference": "54750ef60c58e43759730615a392c31c80e23176", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-libxml": "*", - "ext-phar": "*", - "ext-xmlwriter": "*", - "phar-io/version": "^3.0.1", - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "support": { - "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.4" - }, - "funding": [ - { - "url": "https://github.com/theseer", - "type": "github" - } - ], - "time": "2024-03-03T12:33:53+00:00" - }, - { - "name": "phar-io/version", - "version": "3.2.1", - "source": { - "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Library for handling version information and constraints", - "support": { - "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.2.1" - }, - "time": "2022-02-21T01:04:05+00:00" - }, - { - "name": "phpunit/php-code-coverage", - "version": "10.1.16", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "7e308268858ed6baedc8704a304727d20bc07c77" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/7e308268858ed6baedc8704a304727d20bc07c77", - "reference": "7e308268858ed6baedc8704a304727d20bc07c77", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-libxml": "*", - "ext-xmlwriter": "*", - "nikic/php-parser": "^4.19.1 || ^5.1.0", - "php": ">=8.1", - "phpunit/php-file-iterator": "^4.1.0", - "phpunit/php-text-template": "^3.0.1", - "sebastian/code-unit-reverse-lookup": "^3.0.0", - "sebastian/complexity": "^3.2.0", - "sebastian/environment": "^6.1.0", - "sebastian/lines-of-code": "^2.0.2", - "sebastian/version": "^4.0.1", - "theseer/tokenizer": "^1.2.3" - }, - "require-dev": { - "phpunit/phpunit": "^10.1" - }, - "suggest": { - "ext-pcov": "PHP extension that provides line coverage", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "10.1.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.16" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-08-22T04:31:57+00:00" - }, - { - "name": "phpunit/php-file-iterator", - "version": "4.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a95037b6d9e608ba092da1b23931e537cadc3c3c", - "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "phpunit/phpunit": "^10.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.1.0" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-08-31T06:24:48+00:00" - }, - { - "name": "phpunit/php-invoker", - "version": "4.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", - "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "ext-pcntl": "*", - "phpunit/phpunit": "^10.0" - }, - "suggest": { - "ext-pcntl": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Invoke callables with a timeout", - "homepage": "https://github.com/sebastianbergmann/php-invoker/", - "keywords": [ - "process" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-invoker/issues", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:56:09+00:00" - }, - { - "name": "phpunit/php-text-template", - "version": "3.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/0c7b06ff49e3d5072f057eb1fa59258bf287a748", - "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "phpunit/phpunit": "^10.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-08-31T14:07:24+00:00" - }, - { - "name": "phpunit/php-timer", - "version": "6.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/e2a2d67966e740530f4a3343fe2e030ffdc1161d", - "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "phpunit/phpunit": "^10.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "6.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:57:52+00:00" - }, - { - "name": "phpunit/phpunit", - "version": "10.5.63", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "33198268dad71e926626b618f3ec3966661e4d90" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/33198268dad71e926626b618f3ec3966661e4d90", - "reference": "33198268dad71e926626b618f3ec3966661e4d90", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.13.4", - "phar-io/manifest": "^2.0.4", - "phar-io/version": "^3.2.1", - "php": ">=8.1", - "phpunit/php-code-coverage": "^10.1.16", - "phpunit/php-file-iterator": "^4.1.0", - "phpunit/php-invoker": "^4.0.0", - "phpunit/php-text-template": "^3.0.1", - "phpunit/php-timer": "^6.0.0", - "sebastian/cli-parser": "^2.0.1", - "sebastian/code-unit": "^2.0.0", - "sebastian/comparator": "^5.0.5", - "sebastian/diff": "^5.1.1", - "sebastian/environment": "^6.1.0", - "sebastian/exporter": "^5.1.4", - "sebastian/global-state": "^6.0.2", - "sebastian/object-enumerator": "^5.0.0", - "sebastian/recursion-context": "^5.0.1", - "sebastian/type": "^4.0.0", - "sebastian/version": "^4.0.1" - }, - "suggest": { - "ext-soap": "To be able to generate mocks based on WSDL files" - }, - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "10.5-dev" - } - }, - "autoload": { - "files": [ - "src/Framework/Assert/Functions.php" - ], - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.63" - }, - "funding": [ - { - "url": "https://phpunit.de/sponsors.html", - "type": "custom" - }, - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", - "type": "tidelift" - } - ], - "time": "2026-01-27T05:48:37+00:00" - }, - { - "name": "psr/cache", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/cache.git", - "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", - "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", - "shasum": "" - }, - "require": { - "php": ">=8.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Cache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for caching libraries", - "keywords": [ - "cache", - "psr", - "psr-6" - ], - "support": { - "source": "https://github.com/php-fig/cache/tree/3.0.0" - }, - "time": "2021-02-03T23:26:27+00:00" - }, - { - "name": "psr/clock", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/clock.git", - "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d", - "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d", - "shasum": "" - }, - "require": { - "php": "^7.0 || ^8.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Psr\\Clock\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for reading the clock.", - "homepage": "https://github.com/php-fig/clock", - "keywords": [ - "clock", - "now", - "psr", - "psr-20", - "time" - ], - "support": { - "issues": "https://github.com/php-fig/clock/issues", - "source": "https://github.com/php-fig/clock/tree/1.0.0" - }, - "time": "2022-11-25T14:36:26+00:00" - }, - { - "name": "psr/container", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "shasum": "" - }, - "require": { - "php": ">=7.4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ], - "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/2.0.2" - }, - "time": "2021-11-05T16:47:00+00:00" - }, - { - "name": "psr/event-dispatcher", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/event-dispatcher.git", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", - "shasum": "" - }, - "require": { - "php": ">=7.2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\EventDispatcher\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Standard interfaces for event handling.", - "keywords": [ - "events", - "psr", - "psr-14" - ], - "support": { - "issues": "https://github.com/php-fig/event-dispatcher/issues", - "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" - }, - "time": "2019-01-08T18:20:26+00:00" - }, - { - "name": "psr/log", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/ef29f6d262798707a9edd554e2b82517ef3a9376", - "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376", - "shasum": "" - }, - "require": { - "php": ">=8.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "support": { - "source": "https://github.com/php-fig/log/tree/2.0.0" - }, - "time": "2021-07-14T16:41:46+00:00" - }, - { - "name": "roave/security-advisories", - "version": "dev-latest", - "source": { - "type": "git", - "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "1553067758ae7f3df13df7c7e232c62d928e1d23" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/1553067758ae7f3df13df7c7e232c62d928e1d23", - "reference": "1553067758ae7f3df13df7c7e232c62d928e1d23", - "shasum": "" - }, - "conflict": { - "3f/pygmentize": "<1.2", - "adaptcms/adaptcms": "<=1.3", - "admidio/admidio": "<=4.3.16", - "adodb/adodb-php": "<=5.22.9", - "aheinze/cockpit": "<2.2", - "aimeos/ai-admin-graphql": ">=2022.04.1,<2022.10.10|>=2023.04.1,<2023.10.6|>=2024.04.1,<2024.07.2", - "aimeos/ai-admin-jsonadm": "<2020.10.13|>=2021.04.1,<2021.10.6|>=2022.04.1,<2022.10.3|>=2023.04.1,<2023.10.4|==2024.04.1", - "aimeos/ai-client-html": ">=2020.04.1,<2020.10.27|>=2021.04.1,<2021.10.22|>=2022.04.1,<2022.10.13|>=2023.04.1,<2023.10.15|>=2024.04.1,<2024.04.7", - "aimeos/ai-cms-grapesjs": ">=2021.04.1,<2021.10.8|>=2022.04.1,<2022.10.9|>=2023.04.1,<2023.10.15|>=2024.04.1,<2024.10.8|>=2025.04.1,<2025.10.2", - "aimeos/ai-controller-frontend": "<2020.10.15|>=2021.04.1,<2021.10.8|>=2022.04.1,<2022.10.8|>=2023.04.1,<2023.10.9|==2024.04.1", - "aimeos/aimeos-core": ">=2022.04.1,<2022.10.17|>=2023.04.1,<2023.10.17|>=2024.04.1,<2024.04.7", - "aimeos/aimeos-typo3": "<19.10.12|>=20,<20.10.5", - "airesvsg/acf-to-rest-api": "<=3.1", - "akaunting/akaunting": "<2.1.13", - "akeneo/pim-community-dev": "<5.0.119|>=6,<6.0.53", - "alextselegidis/easyappointments": "<1.5.2.0-beta1", - "alexusmai/laravel-file-manager": "<=3.3.1", - "alt-design/alt-redirect": "<1.6.4", - "alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1", - "amazing/media2click": ">=1,<1.3.3", - "ameos/ameos_tarteaucitron": "<1.2.23", - "amphp/artax": "<1.0.6|>=2,<2.0.6", - "amphp/http": "<=1.7.2|>=2,<=2.1", - "amphp/http-client": ">=4,<4.4", - "anchorcms/anchor-cms": "<=0.12.7", - "andreapollastri/cipi": "<=3.1.15", - "andrewhaine/silverstripe-form-capture": ">=0.2,<=0.2.3|>=1,<1.0.2|>=2,<2.2.5", - "aoe/restler": "<1.7.1", - "apache-solr-for-typo3/solr": "<2.8.3", - "apereo/phpcas": "<1.6", - "api-platform/core": "<3.4.17|>=4,<4.0.22|>=4.1,<4.1.5", - "api-platform/graphql": "<3.4.17|>=4,<4.0.22|>=4.1,<4.1.5", - "appwrite/server-ce": "<=1.2.1", - "arc/web": "<3", - "area17/twill": "<1.2.5|>=2,<2.5.3", - "artesaos/seotools": "<0.17.2", - "asymmetricrypt/asymmetricrypt": "<9.9.99", - "athlon1600/php-proxy": "<=5.1", - "athlon1600/php-proxy-app": "<=3", - "athlon1600/youtube-downloader": "<=4", - "austintoddj/canvas": "<=3.4.2", - "auth0/auth0-php": ">=3.3,<=8.16", - "auth0/login": "<=7.18", - "auth0/symfony": "<=5.4.1", - "auth0/wordpress": "<=5.3", - "automad/automad": "<2.0.0.0-alpha5", - "automattic/jetpack": "<9.8", - "awesome-support/awesome-support": "<=6.0.7", - "aws/aws-sdk-php": "<3.288.1", - "azuracast/azuracast": "<=0.23.1", - "b13/seo_basics": "<0.8.2", - "backdrop/backdrop": "<=1.32", - "backpack/crud": "<3.4.9", - "backpack/filemanager": "<2.0.2|>=3,<3.0.9", - "bacula-web/bacula-web": "<9.7.1", - "badaso/core": "<=2.9.11", - "bagisto/bagisto": "<=2.3.7", - "barrelstrength/sprout-base-email": "<1.2.7", - "barrelstrength/sprout-forms": "<3.9", - "barryvdh/laravel-translation-manager": "<0.6.8", - "barzahlen/barzahlen-php": "<2.0.1", - "baserproject/basercms": "<=5.1.1", - "bassjobsen/bootstrap-3-typeahead": ">4.0.2", - "bbpress/bbpress": "<2.6.5", - "bcit-ci/codeigniter": "<3.1.3", - "bcosca/fatfree": "<3.7.2", - "bedita/bedita": "<4", - "bednee/cooluri": "<1.0.30", - "bigfork/silverstripe-form-capture": ">=3,<3.1.1", - "billz/raspap-webgui": "<3.3.6", - "binarytorch/larecipe": "<2.8.1", - "bk2k/bootstrap-package": ">=7.1,<7.1.2|>=8,<8.0.8|>=9,<9.0.4|>=9.1,<9.1.3|>=10,<10.0.10|>=11,<11.0.3", - "blueimp/jquery-file-upload": "==6.4.4", - "bmarshall511/wordpress_zero_spam": "<5.2.13", - "bolt/bolt": "<3.7.2", - "bolt/core": "<=4.2", - "born05/craft-twofactorauthentication": "<3.3.4", - "bottelet/flarepoint": "<2.2.1", - "bref/bref": "<2.1.17", - "brightlocal/phpwhois": "<=4.2.5", - "brotkrueml/codehighlight": "<2.7", - "brotkrueml/schema": "<1.13.1|>=2,<2.5.1", - "brotkrueml/typo3-matomo-integration": "<1.3.2", - "buddypress/buddypress": "<7.2.1", - "bugsnag/bugsnag-laravel": ">=2,<2.0.2", - "bvbmedia/multishop": "<2.0.39", - "bytefury/crater": "<6.0.2", - "cachethq/cachet": "<2.5.1", - "cakephp/cakephp": "<3.10.3|>=4,<4.0.10|>=4.1,<4.1.4|>=4.2,<4.2.12|>=4.3,<4.3.11|>=4.4,<4.4.10", - "cakephp/database": ">=4.2,<4.2.12|>=4.3,<4.3.11|>=4.4,<4.4.10", - "cardgate/magento2": "<2.0.33", - "cardgate/woocommerce": "<=3.1.15", - "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4", - "cart2quote/module-quotation-encoded": ">=4.1.6,<=4.4.5|>=5,<5.4.4", - "cartalyst/sentry": "<=2.1.6", - "catfan/medoo": "<1.7.5", - "causal/oidc": "<4", - "cecil/cecil": "<7.47.1", - "centreon/centreon": "<22.10.15", - "cesnet/simplesamlphp-module-proxystatistics": "<3.1", - "chriskacerguis/codeigniter-restserver": "<=2.7.1", - "chrome-php/chrome": "<1.14", - "civicrm/civicrm-core": ">=4.2,<4.2.9|>=4.3,<4.3.3", - "ckeditor/ckeditor": "<4.25", - "clickstorm/cs-seo": ">=6,<6.8|>=7,<7.5|>=8,<8.4|>=9,<9.3", - "co-stack/fal_sftp": "<0.2.6", - "cockpit-hq/cockpit": "<2.11.4", - "code16/sharp": "<9.11.1", - "codeception/codeception": "<3.1.3|>=4,<4.1.22", - "codeigniter/framework": "<3.1.10", - "codeigniter4/framework": "<4.6.2", - "codeigniter4/shield": "<1.0.0.0-beta8", - "codiad/codiad": "<=2.8.4", - "codingms/additional-tca": ">=1.7,<1.15.17|>=1.16,<1.16.9", - "codingms/modules": "<4.3.11|>=5,<5.7.4|>=6,<6.4.2|>=7,<7.5.5", - "commerceteam/commerce": ">=0.9.6,<0.9.9", - "components/jquery": ">=1.0.3,<3.5", - "composer/composer": "<1.10.27|>=2,<2.2.24|>=2.3,<2.7.7", - "concrete5/concrete5": "<9.4.3", - "concrete5/core": "<8.5.8|>=9,<9.1", - "contao-components/mediaelement": ">=2.14.2,<2.21.1", - "contao/comments-bundle": ">=2,<4.13.40|>=5.0.0.0-RC1-dev,<5.3.4", - "contao/contao": ">=3,<3.5.37|>=4,<4.4.56|>=4.5,<4.13.56|>=5,<5.3.38|>=5.4.0.0-RC1-dev,<5.6.1", - "contao/core": "<3.5.39", - "contao/core-bundle": "<4.13.57|>=5,<5.3.42|>=5.4,<5.6.5", - "contao/listing-bundle": ">=3,<=3.5.30|>=4,<4.4.8", - "contao/managed-edition": "<=1.5", - "corveda/phpsandbox": "<1.3.5", - "cosenary/instagram": "<=2.3", - "couleurcitron/tarteaucitron-wp": "<0.3", - "craftcms/cms": "<=4.16.5|>=5,<=5.8.6", - "croogo/croogo": "<4", - "cuyz/valinor": "<0.12", - "czim/file-handling": "<1.5|>=2,<2.3", - "czproject/git-php": "<4.0.3", - "damienharper/auditor-bundle": "<5.2.6", - "dapphp/securimage": "<3.6.6", - "darylldoyle/safe-svg": "<1.9.10", - "datadog/dd-trace": ">=0.30,<0.30.2", - "datahihi1/tiny-env": "<1.0.3|>=1.0.9,<1.0.11", - "datatables/datatables": "<1.10.10", - "david-garcia/phpwhois": "<=4.3.1", - "dbrisinajumi/d2files": "<1", - "dcat/laravel-admin": "<=2.1.3|==2.2.0.0-beta|==2.2.2.0-beta", - "derhansen/fe_change_pwd": "<2.0.5|>=3,<3.0.3", - "derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1|>=7,<7.4", - "desperado/xml-bundle": "<=0.1.7", - "dev-lancer/minecraft-motd-parser": "<=1.0.5", - "devcode-it/openstamanager": "<=2.9.4", - "devgroup/dotplant": "<2020.09.14-dev", - "digimix/wp-svg-upload": "<=1", - "directmailteam/direct-mail": "<6.0.3|>=7,<7.0.3|>=8,<9.5.2", - "dl/yag": "<3.0.1", - "dmk/webkitpdf": "<1.1.4", - "dnadesign/silverstripe-elemental": "<5.3.12", - "doctrine/annotations": "<1.2.7", - "doctrine/cache": ">=1,<1.3.2|>=1.4,<1.4.2", - "doctrine/common": "<2.4.3|>=2.5,<2.5.1", - "doctrine/dbal": ">=2,<2.0.8|>=2.1,<2.1.2|>=3,<3.1.4", - "doctrine/doctrine-bundle": "<1.5.2", - "doctrine/doctrine-module": "<0.7.2", - "doctrine/mongodb-odm": "<1.0.2", - "doctrine/mongodb-odm-bundle": "<3.0.1", - "doctrine/orm": ">=1,<1.2.4|>=2,<2.4.8|>=2.5,<2.5.1|>=2.8.3,<2.8.4", - "dolibarr/dolibarr": "<21.0.3", - "dompdf/dompdf": "<2.0.4", - "doublethreedigital/guest-entries": "<3.1.2", - "drupal-pattern-lab/unified-twig-extensions": "<=0.1", - "drupal/access_code": "<2.0.5", - "drupal/acquia_dam": "<1.1.5", - "drupal/admin_audit_trail": "<1.0.5", - "drupal/ai": "<1.0.5", - "drupal/alogin": "<2.0.6", - "drupal/cache_utility": "<1.2.1", - "drupal/civictheme": "<1.12", - "drupal/commerce_alphabank_redirect": "<1.0.3", - "drupal/commerce_eurobank_redirect": "<2.1.1", - "drupal/config_split": "<1.10|>=2,<2.0.2", - "drupal/core": ">=6,<6.38|>=7,<7.102|>=8,<10.4.9|>=10.5,<10.5.6|>=11,<11.1.9|>=11.2,<11.2.8", - "drupal/core-recommended": ">=7,<7.102|>=8,<10.2.11|>=10.3,<10.3.9|>=11,<11.0.8", - "drupal/currency": "<3.5", - "drupal/drupal": ">=5,<5.11|>=6,<6.38|>=7,<7.102|>=8,<10.2.11|>=10.3,<10.3.9|>=11,<11.0.8", - "drupal/email_tfa": "<2.0.6", - "drupal/formatter_suite": "<2.1", - "drupal/gdpr": "<3.0.1|>=3.1,<3.1.2", - "drupal/google_tag": "<1.8|>=2,<2.0.8", - "drupal/ignition": "<1.0.4", - "drupal/json_field": "<1.5", - "drupal/lightgallery": "<1.6", - "drupal/link_field_display_mode_formatter": "<1.6", - "drupal/matomo": "<1.24", - "drupal/oauth2_client": "<4.1.3", - "drupal/oauth2_server": "<2.1", - "drupal/obfuscate": "<2.0.1", - "drupal/plausible_tracking": "<1.0.2", - "drupal/quick_node_block": "<2", - "drupal/rapidoc_elements_field_formatter": "<1.0.1", - "drupal/reverse_proxy_header": "<1.1.2", - "drupal/simple_multistep": "<2", - "drupal/simple_oauth": ">=6,<6.0.7", - "drupal/spamspan": "<3.2.1", - "drupal/tfa": "<1.10", - "drupal/umami_analytics": "<1.0.1", - "duncanmcclean/guest-entries": "<3.1.2", - "dweeves/magmi": "<=0.7.24", - "ec-cube/ec-cube": "<2.4.4|>=2.11,<=2.17.1|>=3,<=3.0.18.0-patch4|>=4,<=4.1.2", - "ecodev/newsletter": "<=4", - "ectouch/ectouch": "<=2.7.2", - "egroupware/egroupware": "<23.1.20240624", - "elefant/cms": "<2.0.7", - "elgg/elgg": "<3.3.24|>=4,<4.0.5", - "elijaa/phpmemcacheadmin": "<=1.3", - "elmsln/haxcms": "<11.0.14", - "encore/laravel-admin": "<=1.8.19", - "endroid/qr-code-bundle": "<3.4.2", - "enhavo/enhavo-app": "<=0.13.1", - "enshrined/svg-sanitize": "<0.22", - "erusev/parsedown": "<1.7.2", - "ether/logs": "<3.0.4", - "evolutioncms/evolution": "<=3.2.3", - "exceedone/exment": "<4.4.3|>=5,<5.0.3", - "exceedone/laravel-admin": "<2.2.3|==3", - "ezsystems/demobundle": ">=5.4,<5.4.6.1-dev", - "ezsystems/ez-support-tools": ">=2.2,<2.2.3", - "ezsystems/ezdemo-ls-extension": ">=5.4,<5.4.2.1-dev", - "ezsystems/ezfind-ls": ">=5.3,<5.3.6.1-dev|>=5.4,<5.4.11.1-dev|>=2017.12,<2017.12.0.1-dev", - "ezsystems/ezplatform": "<=1.13.6|>=2,<=2.5.24", - "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<1.5.29|>=2.3,<2.3.39|>=3.3,<3.3.39", - "ezsystems/ezplatform-admin-ui-assets": ">=4,<4.2.1|>=5,<5.0.1|>=5.1,<5.1.1|>=5.3.0.0-beta1,<5.3.5", - "ezsystems/ezplatform-graphql": ">=1.0.0.0-RC1-dev,<1.0.13|>=2.0.0.0-beta1,<2.3.12", - "ezsystems/ezplatform-http-cache": "<2.3.16", - "ezsystems/ezplatform-kernel": "<1.2.5.1-dev|>=1.3,<1.3.35", - "ezsystems/ezplatform-rest": ">=1.2,<=1.2.2|>=1.3,<1.3.8", - "ezsystems/ezplatform-richtext": ">=2.3,<2.3.26|>=3.3,<3.3.40", - "ezsystems/ezplatform-solr-search-engine": ">=1.7,<1.7.12|>=2,<2.0.2|>=3.3,<3.3.15", - "ezsystems/ezplatform-user": ">=1,<1.0.1", - "ezsystems/ezpublish-kernel": "<6.13.8.2-dev|>=7,<7.5.31", - "ezsystems/ezpublish-legacy": "<=2017.12.7.3|>=2018.6,<=2019.03.5.1", - "ezsystems/platform-ui-assets-bundle": ">=4.2,<4.2.3", - "ezsystems/repository-forms": ">=2.3,<2.3.2.1-dev|>=2.5,<2.5.15", - "ezyang/htmlpurifier": "<=4.2", - "facade/ignition": "<1.16.15|>=2,<2.4.2|>=2.5,<2.5.2", - "facturascripts/facturascripts": "<=2022.08", - "fastly/magento2": "<1.2.26", - "feehi/cms": "<=2.1.1", - "feehi/feehicms": "<=2.1.1", - "fenom/fenom": "<=2.12.1", - "filament/actions": ">=3.2,<3.2.123", - "filament/filament": ">=4,<4.3.1", - "filament/infolists": ">=3,<3.2.115", - "filament/tables": ">=3,<3.2.115", - "filegator/filegator": "<7.8", - "filp/whoops": "<2.1.13", - "fineuploader/php-traditional-server": "<=1.2.2", - "firebase/php-jwt": "<6", - "fisharebest/webtrees": "<=2.1.18", - "fixpunkt/fp-masterquiz": "<2.2.1|>=3,<3.5.2", - "fixpunkt/fp-newsletter": "<1.1.1|>=1.2,<2.1.2|>=2.2,<3.2.6", - "flarum/core": "<1.8.10", - "flarum/flarum": "<0.1.0.0-beta8", - "flarum/framework": "<1.8.10", - "flarum/mentions": "<1.6.3", - "flarum/sticky": ">=0.1.0.0-beta14,<=0.1.0.0-beta15", - "flarum/tags": "<=0.1.0.0-beta13", - "floriangaerber/magnesium": "<0.3.1", - "fluidtypo3/vhs": "<5.1.1", - "fof/byobu": ">=0.3.0.0-beta2,<1.1.7", - "fof/pretty-mail": "<=1.1.2", - "fof/upload": "<1.2.3", - "foodcoopshop/foodcoopshop": ">=3.2,<3.6.1", - "fooman/tcpdf": "<6.2.22", - "forkcms/forkcms": "<5.11.1", - "fossar/tcpdf-parser": "<6.2.22", - "francoisjacquet/rosariosis": "<=11.5.1", - "frappant/frp-form-answers": "<3.1.2|>=4,<4.0.2", - "friendsofsymfony/oauth2-php": "<1.3", - "friendsofsymfony/rest-bundle": ">=1.2,<1.2.2", - "friendsofsymfony/user-bundle": ">=1,<1.3.5", - "friendsofsymfony1/swiftmailer": ">=4,<5.4.13|>=6,<6.2.5", - "friendsofsymfony1/symfony1": ">=1.1,<1.5.19", - "friendsoftypo3/mediace": ">=7.6.2,<7.6.5", - "friendsoftypo3/openid": ">=4.5,<4.5.31|>=4.7,<4.7.16|>=6,<6.0.11|>=6.1,<6.1.6", - "froala/wysiwyg-editor": "<=4.3", - "froxlor/froxlor": "<=2.2.5", - "frozennode/administrator": "<=5.0.12", - "fuel/core": "<1.8.1", - "funadmin/funadmin": "<=5.0.2", - "gaoming13/wechat-php-sdk": "<=1.10.2", - "genix/cms": "<=1.1.11", - "georgringer/news": "<1.3.3", - "geshi/geshi": "<=1.0.9.1", - "getformwork/formwork": "<2.2", - "getgrav/grav": "<1.11.0.0-beta1", - "getkirby/cms": "<3.9.8.3-dev|>=3.10,<3.10.1.2-dev|>=4,<4.7.1|>=5,<5.1.4", - "getkirby/kirby": "<3.9.8.3-dev|>=3.10,<3.10.1.2-dev|>=4,<4.7.1", - "getkirby/panel": "<2.5.14", - "getkirby/starterkit": "<=3.7.0.2", - "gilacms/gila": "<=1.15.4", - "gleez/cms": "<=1.3|==2", - "globalpayments/php-sdk": "<2", - "goalgorilla/open_social": "<12.3.11|>=12.4,<12.4.10|>=13.0.0.0-alpha1,<13.0.0.0-alpha11", - "gogentooss/samlbase": "<1.2.7", - "google/protobuf": "<3.4", - "gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3", - "gp247/core": "<1.1.24", - "gree/jose": "<2.2.1", - "gregwar/rst": "<1.0.3", - "grumpydictator/firefly-iii": "<6.1.17", - "gugoan/economizzer": "<=0.9.0.0-beta1", - "guzzlehttp/guzzle": "<6.5.8|>=7,<7.4.5", - "guzzlehttp/oauth-subscriber": "<0.8.1", - "guzzlehttp/psr7": "<1.9.1|>=2,<2.4.5", - "haffner/jh_captcha": "<=2.1.3|>=3,<=3.0.2", - "handcraftedinthealps/goodby-csv": "<1.4.3", - "harvesthq/chosen": "<1.8.7", - "helloxz/imgurl": "<=2.31", - "hhxsv5/laravel-s": "<3.7.36", - "hillelcoren/invoice-ninja": "<5.3.35", - "himiklab/yii2-jqgrid-widget": "<1.0.8", - "hjue/justwriting": "<=1", - "hov/jobfair": "<1.0.13|>=2,<2.0.2", - "httpsoft/http-message": "<1.0.12", - "hyn/multi-tenant": ">=5.6,<5.7.2", - "ibexa/admin-ui": ">=4.2,<4.2.3|>=4.6,<4.6.25|>=5,<5.0.3", - "ibexa/admin-ui-assets": ">=4.6.0.0-alpha1,<4.6.21", - "ibexa/core": ">=4,<4.0.7|>=4.1,<4.1.4|>=4.2,<4.2.3|>=4.5,<4.5.6|>=4.6,<4.6.2", - "ibexa/fieldtype-richtext": ">=4.6,<4.6.25|>=5,<5.0.3", - "ibexa/graphql": ">=2.5,<2.5.31|>=3.3,<3.3.28|>=4.2,<4.2.3", - "ibexa/http-cache": ">=4.6,<4.6.14", - "ibexa/post-install": "<1.0.16|>=4.6,<4.6.14", - "ibexa/solr": ">=4.5,<4.5.4", - "ibexa/user": ">=4,<4.4.3|>=5,<5.0.4", - "icecoder/icecoder": "<=8.1", - "idno/known": "<=1.3.1", - "ilicmiljan/secure-props": ">=1.2,<1.2.2", - "illuminate/auth": "<5.5.10", - "illuminate/cookie": ">=4,<=4.0.11|>=4.1,<6.18.31|>=7,<7.22.4", - "illuminate/database": "<6.20.26|>=7,<7.30.5|>=8,<8.40", - "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", - "illuminate/view": "<6.20.42|>=7,<7.30.6|>=8,<8.75", - "imdbphp/imdbphp": "<=5.1.1", - "impresscms/impresscms": "<=1.4.5", - "impresspages/impresspages": "<1.0.13", - "in2code/femanager": "<6.4.2|>=7,<7.5.3|>=8,<8.3.1", - "in2code/ipandlanguageredirect": "<5.1.2", - "in2code/lux": "<17.6.1|>=18,<24.0.2", - "in2code/powermail": "<7.5.1|>=8,<8.5.1|>=9,<10.9.1|>=11,<12.5.3|==13", - "innologi/typo3-appointments": "<2.0.6", - "intelliants/subrion": "<4.2.2", - "inter-mediator/inter-mediator": "==5.5", - "ipl/web": "<0.10.1", - "islandora/crayfish": "<4.1", - "islandora/islandora": ">=2,<2.4.1", - "ivankristianto/phpwhois": "<=4.3", - "jackalope/jackalope-doctrine-dbal": "<1.7.4", - "jambagecom/div2007": "<0.10.2", - "james-heinrich/getid3": "<1.9.21", - "james-heinrich/phpthumb": "<=1.7.23", - "jasig/phpcas": "<1.3.3", - "jbartels/wec-map": "<3.0.3", - "jcbrand/converse.js": "<3.3.3", - "joelbutcher/socialstream": "<5.6|>=6,<6.2", - "johnbillion/wp-crontrol": "<1.16.2|>=1.17,<1.19.2", - "joomla/application": "<1.0.13", - "joomla/archive": "<1.1.12|>=2,<2.0.1", - "joomla/database": ">=1,<2.2|>=3,<3.4", - "joomla/filesystem": "<1.6.2|>=2,<2.0.1", - "joomla/filter": "<2.0.6|>=3,<3.0.5|==4", - "joomla/framework": "<1.5.7|>=2.5.4,<=3.8.12", - "joomla/input": ">=2,<2.0.2", - "joomla/joomla-cms": "<3.9.12|>=4,<4.4.13|>=5,<5.2.6", - "joomla/joomla-platform": "<1.5.4", - "joomla/session": "<1.3.1", - "joyqi/hyper-down": "<=2.4.27", - "jsdecena/laracom": "<2.0.9", - "jsmitty12/phpwhois": "<5.1", - "juzaweb/cms": "<=3.4.2", - "jweiland/events2": "<8.3.8|>=9,<9.0.6", - "jweiland/kk-downloader": "<1.2.2", - "kazist/phpwhois": "<=4.2.6", - "kelvinmo/simplexrd": "<3.1.1", - "kevinpapst/kimai2": "<1.16.7", - "khodakhah/nodcms": "<=3", - "kimai/kimai": "<=2.20.1", - "kitodo/presentation": "<3.2.3|>=3.3,<3.3.4", - "klaviyo/magento2-extension": ">=1,<3", - "knplabs/knp-snappy": "<=1.4.2", - "kohana/core": "<3.3.3", - "koillection/koillection": "<1.6.12", - "krayin/laravel-crm": "<=1.3", - "kreait/firebase-php": ">=3.2,<3.8.1", - "kumbiaphp/kumbiapp": "<=1.1.1", - "la-haute-societe/tcpdf": "<6.2.22", - "laminas/laminas-diactoros": "<2.18.1|==2.19|==2.20|==2.21|==2.22|==2.23|>=2.24,<2.24.2|>=2.25,<2.25.2", - "laminas/laminas-form": "<2.17.1|>=3,<3.0.2|>=3.1,<3.1.1", - "laminas/laminas-http": "<2.14.2", - "lara-zeus/artemis": ">=1,<=1.0.6", - "lara-zeus/dynamic-dashboard": ">=3,<=3.0.1", - "laravel/fortify": "<1.11.1", - "laravel/framework": "<10.48.29|>=11,<11.44.1|>=12,<12.1.1", - "laravel/laravel": ">=5.4,<5.4.22", - "laravel/pulse": "<1.3.1", - "laravel/reverb": "<1.4", - "laravel/socialite": ">=1,<2.0.10", - "latte/latte": "<2.10.8", - "lavalite/cms": "<=9|==10.1", - "lavitto/typo3-form-to-database": "<2.2.5|>=3,<3.2.2|>=4,<4.2.3|>=5,<5.0.2", - "lcobucci/jwt": ">=3.4,<3.4.6|>=4,<4.0.4|>=4.1,<4.1.5", - "league/commonmark": "<2.7", - "league/flysystem": "<1.1.4|>=2,<2.1.1", - "league/oauth2-server": ">=8.3.2,<8.4.2|>=8.5,<8.5.3", - "leantime/leantime": "<3.3", - "lexik/jwt-authentication-bundle": "<2.10.7|>=2.11,<2.11.3", - "libreform/libreform": ">=2,<=2.0.8", - "librenms/librenms": "<25.11", - "liftkit/database": "<2.13.2", - "lightsaml/lightsaml": "<1.3.5", - "limesurvey/limesurvey": "<6.5.12", - "livehelperchat/livehelperchat": "<=3.91", - "livewire/livewire": "<2.12.7|>=3.0.0.0-beta1,<3.6.4", - "livewire/volt": "<1.7", - "lms/routes": "<2.1.1", - "localizationteam/l10nmgr": "<7.4|>=8,<8.7|>=9,<9.2", - "lomkit/laravel-rest-api": "<2.13", - "luracast/restler": "<3.1", - "luyadev/yii-helpers": "<1.2.1", - "macropay-solutions/laravel-crud-wizard-free": "<3.4.17", - "maestroerror/php-heic-to-jpg": "<1.0.5", - "magento/community-edition": "<2.4.6.0-patch13|>=2.4.7.0-beta1,<2.4.7.0-patch8|>=2.4.8.0-beta1,<2.4.8.0-patch3|>=2.4.9.0-alpha1,<2.4.9.0-alpha3|==2.4.9", - "magento/core": "<=1.9.4.5", - "magento/magento1ce": "<1.9.4.3-dev", - "magento/magento1ee": ">=1,<1.14.4.3-dev", - "magento/product-community-edition": "<2.4.4.0-patch9|>=2.4.5,<2.4.5.0-patch8|>=2.4.6,<2.4.6.0-patch6|>=2.4.7,<2.4.7.0-patch1", - "magento/project-community-edition": "<=2.0.2", - "magneto/core": "<1.9.4.4-dev", - "mahocommerce/maho": "<25.9", - "maikuolan/phpmussel": ">=1,<1.6", - "mainwp/mainwp": "<=4.4.3.3", - "manogi/nova-tiptap": "<=3.2.6", - "mantisbt/mantisbt": "<2.27.2", - "marcwillmann/turn": "<0.3.3", - "marshmallow/nova-tiptap": "<5.7", - "matomo/matomo": "<1.11", - "matyhtf/framework": "<3.0.6", - "mautic/core": "<5.2.9|>=6,<6.0.7", - "mautic/core-lib": ">=1.0.0.0-beta,<4.4.13|>=5.0.0.0-alpha,<5.1.1", - "mautic/grapes-js-builder-bundle": ">=4,<4.4.18|>=5,<5.2.9|>=6,<6.0.7", - "maximebf/debugbar": "<1.19", - "mdanter/ecc": "<2", - "mediawiki/abuse-filter": "<1.39.9|>=1.40,<1.41.3|>=1.42,<1.42.2", - "mediawiki/cargo": "<3.8.3", - "mediawiki/core": "<1.39.5|==1.40", - "mediawiki/data-transfer": ">=1.39,<1.39.11|>=1.41,<1.41.3|>=1.42,<1.42.2", - "mediawiki/matomo": "<2.4.3", - "mediawiki/semantic-media-wiki": "<4.0.2", - "mehrwert/phpmyadmin": "<3.2", - "melisplatform/melis-asset-manager": "<5.0.1", - "melisplatform/melis-cms": "<5.3.4", - "melisplatform/melis-cms-slider": "<5.3.1", - "melisplatform/melis-core": "<5.3.11", - "melisplatform/melis-front": "<5.0.1", - "mezzio/mezzio-swoole": "<3.7|>=4,<4.3", - "mgallegos/laravel-jqgrid": "<=1.3", - "microsoft/microsoft-graph": ">=1.16,<1.109.1|>=2,<2.0.1", - "microsoft/microsoft-graph-beta": "<2.0.1", - "microsoft/microsoft-graph-core": "<2.0.2", - "microweber/microweber": "<=2.0.19", - "mikehaertl/php-shellcommand": "<1.6.1", - "mineadmin/mineadmin": "<=3.0.9", - "miniorange/miniorange-saml": "<1.4.3", - "mittwald/typo3_forum": "<1.2.1", - "mobiledetect/mobiledetectlib": "<2.8.32", - "modx/revolution": "<=3.1", - "mojo42/jirafeau": "<4.4", - "mongodb/mongodb": ">=1,<1.9.2", - "mongodb/mongodb-extension": "<1.21.2", - "monolog/monolog": ">=1.8,<1.12", - "moodle/moodle": "<4.4.11|>=4.5.0.0-beta,<4.5.7|>=5.0.0.0-beta,<5.0.3", - "moonshine/moonshine": "<=3.12.5", - "mos/cimage": "<0.7.19", - "movim/moxl": ">=0.8,<=0.10", - "movingbytes/social-network": "<=1.2.1", - "mpdf/mpdf": "<=7.1.7", - "munkireport/comment": "<4", - "munkireport/managedinstalls": "<2.6", - "munkireport/munki_facts": "<1.5", - "munkireport/reportdata": "<3.5", - "munkireport/softwareupdate": "<1.6", - "mustache/mustache": ">=2,<2.14.1", - "mwdelaney/wp-enable-svg": "<=0.2", - "namshi/jose": "<2.2", - "nasirkhan/laravel-starter": "<11.11", - "nategood/httpful": "<1", - "neoan3-apps/template": "<1.1.1", - "neorazorx/facturascripts": "<2022.04", - "neos/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6", - "neos/form": ">=1.2,<4.3.3|>=5,<5.0.9|>=5.1,<5.1.3", - "neos/media-browser": "<7.3.19|>=8,<8.0.16|>=8.1,<8.1.11|>=8.2,<8.2.11|>=8.3,<8.3.9", - "neos/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<5.3.10|>=7,<7.0.9|>=7.1,<7.1.7|>=7.2,<7.2.6|>=7.3,<7.3.4|>=8,<8.0.2", - "neos/swiftmailer": "<5.4.5", - "nesbot/carbon": "<2.72.6|>=3,<3.8.4", - "netcarver/textile": "<=4.1.2", - "netgen/tagsbundle": ">=3.4,<3.4.11|>=4,<4.0.15", - "nette/application": ">=2,<2.0.19|>=2.1,<2.1.13|>=2.2,<2.2.10|>=2.3,<2.3.14|>=2.4,<2.4.16|>=3,<3.0.6", - "nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13", - "neuron-core/neuron-ai": "<=2.8.11", - "nilsteampassnet/teampass": "<3.1.3.1-dev", - "nitsan/ns-backup": "<13.0.1", - "nonfiction/nterchange": "<4.1.1", - "notrinos/notrinos-erp": "<=0.7", - "noumo/easyii": "<=0.9", - "novaksolutions/infusionsoft-php-sdk": "<1", - "novosga/novosga": "<=2.2.12", - "nukeviet/nukeviet": "<4.5.02", - "nyholm/psr7": "<1.6.1", - "nystudio107/craft-seomatic": "<3.4.12", - "nzedb/nzedb": "<0.8", - "nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1", - "october/backend": "<1.1.2", - "october/cms": "<1.0.469|==1.0.469|==1.0.471|==1.1.1", - "october/october": "<3.7.5", - "october/rain": "<1.0.472|>=1.1,<1.1.2", - "october/system": "<3.7.5", - "oliverklee/phpunit": "<3.5.15", - "omeka/omeka-s": "<4.0.3", - "onelogin/php-saml": "<2.21.1|>=3,<3.8.1|>=4,<4.3.1", - "oneup/uploader-bundle": ">=1,<1.9.3|>=2,<2.1.5", - "open-web-analytics/open-web-analytics": "<1.8.1", - "opencart/opencart": ">=0", - "openid/php-openid": "<2.3", - "openmage/magento-lts": "<20.16", - "opensolutions/vimbadmin": "<=3.0.15", - "opensource-workshop/connect-cms": "<1.8.7|>=2,<2.4.7", - "orchid/platform": ">=8,<14.43", - "oro/calendar-bundle": ">=4.2,<=4.2.6|>=5,<=5.0.6|>=5.1,<5.1.1", - "oro/commerce": ">=4.1,<5.0.11|>=5.1,<5.1.1", - "oro/crm": ">=1.7,<1.7.4|>=3.1,<4.1.17|>=4.2,<4.2.7", - "oro/crm-call-bundle": ">=4.2,<=4.2.5|>=5,<5.0.4|>=5.1,<5.1.1", - "oro/customer-portal": ">=4.1,<=4.1.13|>=4.2,<=4.2.10|>=5,<=5.0.11|>=5.1,<=5.1.3", - "oro/platform": ">=1.7,<1.7.4|>=3.1,<3.1.29|>=4.1,<4.1.17|>=4.2,<=4.2.10|>=5,<=5.0.12|>=5.1,<=5.1.3", - "oveleon/contao-cookiebar": "<1.16.3|>=2,<2.1.3", - "oxid-esales/oxideshop-ce": "<=7.0.5", - "oxid-esales/paymorrow-module": ">=1,<1.0.2|>=2,<2.0.1", - "packbackbooks/lti-1-3-php-library": "<5", - "padraic/humbug_get_contents": "<1.1.2", - "pagarme/pagarme-php": "<3", - "pagekit/pagekit": "<=1.0.18", - "paragonie/ecc": "<2.0.1", - "paragonie/random_compat": "<2", - "passbolt/passbolt_api": "<4.6.2", - "paypal/adaptivepayments-sdk-php": "<=3.9.2", - "paypal/invoice-sdk-php": "<=3.9", - "paypal/merchant-sdk-php": "<3.12", - "paypal/permissions-sdk-php": "<=3.9.1", - "pear/archive_tar": "<1.4.14", - "pear/auth": "<1.2.4", - "pear/crypt_gpg": "<1.6.7", - "pear/http_request2": "<2.7", - "pear/pear": "<=1.10.1", - "pegasus/google-for-jobs": "<1.5.1|>=2,<2.1.1", - "personnummer/personnummer": "<3.0.2", - "phanan/koel": "<5.1.4", - "phenx/php-svg-lib": "<0.5.2", - "php-censor/php-censor": "<2.0.13|>=2.1,<2.1.5", - "php-mod/curl": "<2.3.2", - "phpbb/phpbb": "<3.3.11", - "phpems/phpems": ">=6,<=6.1.3", - "phpfastcache/phpfastcache": "<6.1.5|>=7,<7.1.2|>=8,<8.0.7", - "phpmailer/phpmailer": "<6.5", - "phpmussel/phpmussel": ">=1,<1.6", - "phpmyadmin/phpmyadmin": "<5.2.2", - "phpmyfaq/phpmyfaq": "<=4.0.13", - "phpoffice/common": "<0.2.9", - "phpoffice/math": "<=0.2", - "phpoffice/phpexcel": "<=1.8.2", - "phpoffice/phpspreadsheet": "<1.30|>=2,<2.1.12|>=2.2,<2.4|>=3,<3.10|>=4,<5", - "phppgadmin/phppgadmin": "<=7.13", - "phpseclib/phpseclib": "<2.0.47|>=3,<3.0.36", - "phpservermon/phpservermon": "<3.6", - "phpsysinfo/phpsysinfo": "<3.4.3", - "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3", - "phpwhois/phpwhois": "<=4.2.5", - "phpxmlrpc/extras": "<0.6.1", - "phpxmlrpc/phpxmlrpc": "<4.9.2", - "pi/pi": "<=2.5", - "pimcore/admin-ui-classic-bundle": "<1.7.6", - "pimcore/customer-management-framework-bundle": "<4.2.1", - "pimcore/data-hub": "<1.2.4", - "pimcore/data-importer": "<1.8.9|>=1.9,<1.9.3", - "pimcore/demo": "<10.3", - "pimcore/ecommerce-framework-bundle": "<1.0.10", - "pimcore/perspective-editor": "<1.5.1", - "pimcore/pimcore": "<11.5.4", - "piwik/piwik": "<1.11", - "pixelfed/pixelfed": "<0.12.5", - "plotly/plotly.js": "<2.25.2", - "pocketmine/bedrock-protocol": "<8.0.2", - "pocketmine/pocketmine-mp": "<5.32.1", - "pocketmine/raklib": ">=0.14,<0.14.6|>=0.15,<0.15.1", - "pressbooks/pressbooks": "<5.18", - "prestashop/autoupgrade": ">=4,<4.10.1", - "prestashop/blockreassurance": "<=5.1.3", - "prestashop/blockwishlist": ">=2,<2.1.1", - "prestashop/contactform": ">=1.0.1,<4.3", - "prestashop/gamification": "<2.3.2", - "prestashop/prestashop": "<8.2.3", - "prestashop/productcomments": "<5.0.2", - "prestashop/ps_checkout": "<4.4.1|>=5,<5.0.5", - "prestashop/ps_contactinfo": "<=3.3.2", - "prestashop/ps_emailsubscription": "<2.6.1", - "prestashop/ps_facetedsearch": "<3.4.1", - "prestashop/ps_linklist": "<3.1", - "privatebin/privatebin": "<1.4|>=1.5,<1.7.4|>=1.7.7,<2.0.3", - "processwire/processwire": "<=3.0.246", - "propel/propel": ">=2.0.0.0-alpha1,<=2.0.0.0-alpha7", - "propel/propel1": ">=1,<=1.7.1", - "pterodactyl/panel": "<=1.11.10", - "ptheofan/yii2-statemachine": ">=2.0.0.0-RC1-dev,<=2", - "ptrofimov/beanstalk_console": "<1.7.14", - "pubnub/pubnub": "<6.1", - "punktde/pt_extbase": "<1.5.1", - "pusher/pusher-php-server": "<2.2.1", - "pwweb/laravel-core": "<=0.3.6.0-beta", - "pxlrbt/filament-excel": "<1.1.14|>=2.0.0.0-alpha,<2.3.3", - "pyrocms/pyrocms": "<=3.9.1", - "qcubed/qcubed": "<=3.1.1", - "quickapps/cms": "<=2.0.0.0-beta2", - "rainlab/blog-plugin": "<1.4.1", - "rainlab/debugbar-plugin": "<3.1", - "rainlab/user-plugin": "<=1.4.5", - "rankmath/seo-by-rank-math": "<=1.0.95", - "rap2hpoutre/laravel-log-viewer": "<0.13", - "react/http": ">=0.7,<1.9", - "really-simple-plugins/complianz-gdpr": "<6.4.2", - "redaxo/source": "<5.20.1", - "remdex/livehelperchat": "<4.29", - "renolit/reint-downloadmanager": "<4.0.2|>=5,<5.0.1", - "reportico-web/reportico": "<=8.1", - "rhukster/dom-sanitizer": "<1.0.7", - "rmccue/requests": ">=1.6,<1.8", - "robrichards/xmlseclibs": "<=3.1.3", - "roots/soil": "<4.1", - "roundcube/roundcubemail": "<1.5.10|>=1.6,<1.6.11", - "rudloff/alltube": "<3.0.3", - "rudloff/rtmpdump-bin": "<=2.3.1", - "s-cart/core": "<=9.0.5", - "s-cart/s-cart": "<6.9", - "sabberworm/php-css-parser": ">=1,<1.0.1|>=2,<2.0.1|>=3,<3.0.1|>=4,<4.0.1|>=5,<5.0.9|>=5.1,<5.1.3|>=5.2,<5.2.1|>=6,<6.0.2|>=7,<7.0.4|>=8,<8.0.1|>=8.1,<8.1.1|>=8.2,<8.2.1|>=8.3,<8.3.1", - "sabre/dav": ">=1.6,<1.7.11|>=1.8,<1.8.9", - "samwilson/unlinked-wikibase": "<1.42", - "scheb/two-factor-bundle": "<3.26|>=4,<4.11", - "sensiolabs/connect": "<4.2.3", - "serluck/phpwhois": "<=4.2.6", - "setasign/fpdi": "<2.6.4", - "sfroemken/url_redirect": "<=1.2.1", - "sheng/yiicms": "<1.2.1", - "shopware/core": "<6.6.10.9-dev|>=6.7,<6.7.4.1-dev", - "shopware/platform": "<6.6.10.7-dev|>=6.7,<6.7.3.1-dev", - "shopware/production": "<=6.3.5.2", - "shopware/shopware": "<=5.7.17|>=6.4.6,<6.6.10.10-dev|>=6.7,<6.7.5.1-dev", - "shopware/storefront": "<6.6.10.10-dev|>=6.7,<6.7.5.1-dev", - "shopxo/shopxo": "<=6.4", - "showdoc/showdoc": "<2.10.4", - "shuchkin/simplexlsx": ">=1.0.12,<1.1.13", - "silverstripe-australia/advancedreports": ">=1,<=2", - "silverstripe/admin": "<1.13.19|>=2,<2.1.8", - "silverstripe/assets": ">=1,<1.11.1", - "silverstripe/cms": "<4.11.3", - "silverstripe/comments": ">=1.3,<3.1.1", - "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3", - "silverstripe/framework": "<5.3.23", - "silverstripe/graphql": ">=2,<2.0.5|>=3,<3.8.2|>=4,<4.3.7|>=5,<5.1.3", - "silverstripe/hybridsessions": ">=1,<2.4.1|>=2.5,<2.5.1", - "silverstripe/recipe-cms": ">=4.5,<4.5.3", - "silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1", - "silverstripe/reports": "<5.2.3", - "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4|>=2.1,<2.1.2", - "silverstripe/silverstripe-omnipay": "<2.5.2|>=3,<3.0.2|>=3.1,<3.1.4|>=3.2,<3.2.1", - "silverstripe/subsites": ">=2,<2.6.1", - "silverstripe/taxonomy": ">=1.3,<1.3.1|>=2,<2.0.1", - "silverstripe/userforms": "<3|>=5,<5.4.2", - "silverstripe/versioned-admin": ">=1,<1.11.1", - "simogeo/filemanager": "<=2.5", - "simple-updates/phpwhois": "<=1", - "simplesamlphp/saml2": "<=4.16.15|>=5.0.0.0-alpha1,<=5.0.0.0-alpha19", - "simplesamlphp/saml2-legacy": "<=4.16.15", - "simplesamlphp/simplesamlphp": "<1.18.6", - "simplesamlphp/simplesamlphp-module-infocard": "<1.0.1", - "simplesamlphp/simplesamlphp-module-openid": "<1", - "simplesamlphp/simplesamlphp-module-openidprovider": "<0.9", - "simplesamlphp/xml-common": "<1.20", - "simplesamlphp/xml-security": "==1.6.11", - "simplito/elliptic-php": "<1.0.6", - "sitegeist/fluid-components": "<3.5", - "sjbr/sr-feuser-register": "<2.6.2|>=5.1,<12.5", - "sjbr/sr-freecap": "<2.4.6|>=2.5,<2.5.3", - "sjbr/static-info-tables": "<2.3.1", - "slim/psr7": "<1.4.1|>=1.5,<1.5.1|>=1.6,<1.6.1", - "slim/slim": "<2.6", - "slub/slub-events": "<3.0.3", - "smarty/smarty": "<4.5.3|>=5,<5.1.1", - "snipe/snipe-it": "<=8.3.4", - "socalnick/scn-social-auth": "<1.15.2", - "socialiteproviders/steam": "<1.1", - "solspace/craft-freeform": ">=5,<5.10.16", - "soosyze/soosyze": "<=2", - "spatie/browsershot": "<5.0.5", - "spatie/image-optimizer": "<1.7.3", - "spencer14420/sp-php-email-handler": "<1", - "spipu/html2pdf": "<5.2.8", - "spiral/roadrunner": "<2025.1", - "spoon/library": "<1.4.1", - "spoonity/tcpdf": "<6.2.22", - "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", - "ssddanbrown/bookstack": "<24.05.1", - "starcitizentools/citizen-skin": ">=1.9.4,<3.9", - "starcitizentools/short-description": ">=4,<4.0.1", - "starcitizentools/tabber-neue": ">=1.9.1,<2.7.2|>=3,<3.1.1", - "starcitizenwiki/embedvideo": "<=4", - "statamic/cms": "<=5.22", - "stormpath/sdk": "<9.9.99", - "studio-42/elfinder": "<=2.1.64", - "studiomitte/friendlycaptcha": "<0.1.4", - "subhh/libconnect": "<7.0.8|>=8,<8.1", - "sukohi/surpass": "<1", - "sulu/form-bundle": ">=2,<2.5.3", - "sulu/sulu": "<1.6.44|>=2,<2.5.25|>=2.6,<2.6.9|>=3.0.0.0-alpha1,<3.0.0.0-alpha3", - "sumocoders/framework-user-bundle": "<1.4", - "superbig/craft-audit": "<3.0.2", - "svewap/a21glossary": "<=0.4.10", - "swag/paypal": "<5.4.4", - "swiftmailer/swiftmailer": "<6.2.5", - "swiftyedit/swiftyedit": "<1.2", - "sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2", - "sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1", - "sylius/grid-bundle": "<1.10.1", - "sylius/paypal-plugin": "<1.6.2|>=1.7,<1.7.2|>=2,<2.0.2", - "sylius/resource-bundle": ">=1,<1.3.14|>=1.4,<1.4.7|>=1.5,<1.5.2|>=1.6,<1.6.4", - "sylius/sylius": "<1.12.19|>=1.13.0.0-alpha1,<1.13.4", - "symbiote/silverstripe-multivaluefield": ">=3,<3.1", - "symbiote/silverstripe-queuedjobs": ">=3,<3.0.2|>=3.1,<3.1.4|>=4,<4.0.7|>=4.1,<4.1.2|>=4.2,<4.2.4|>=4.3,<4.3.3|>=4.4,<4.4.3|>=4.5,<4.5.1|>=4.6,<4.6.4", - "symbiote/silverstripe-seed": "<6.0.3", - "symbiote/silverstripe-versionedfiles": "<=2.0.3", - "symfont/process": ">=0", - "symfony/cache": ">=3.1,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8", - "symfony/dependency-injection": ">=2,<2.0.17|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", - "symfony/error-handler": ">=4.4,<4.4.4|>=5,<5.0.4", - "symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1", - "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=5.3.14,<5.3.15|>=5.4.3,<5.4.4|>=6.0.3,<6.0.4", - "symfony/http-client": ">=4.3,<5.4.47|>=6,<6.4.15|>=7,<7.1.8", - "symfony/http-foundation": "<5.4.50|>=6,<6.4.29|>=7,<7.3.7", - "symfony/http-kernel": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.2.6", - "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", - "symfony/maker-bundle": ">=1.27,<1.29.2|>=1.30,<1.31.1", - "symfony/mime": ">=4.3,<4.3.8", - "symfony/phpunit-bridge": ">=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", - "symfony/polyfill": ">=1,<1.10", - "symfony/polyfill-php55": ">=1,<1.10", - "symfony/process": "<5.4.46|>=6,<6.4.14|>=7,<7.1.7", - "symfony/proxy-manager-bridge": ">=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", - "symfony/routing": ">=2,<2.0.19", - "symfony/runtime": ">=5.3,<5.4.46|>=6,<6.4.14|>=7,<7.1.7", - "symfony/security": ">=2,<2.7.51|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.8", - "symfony/security-bundle": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.4.10|>=7,<7.0.10|>=7.1,<7.1.3", - "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.9", - "symfony/security-csrf": ">=2.4,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", - "symfony/security-guard": ">=2.8,<3.4.48|>=4,<4.4.23|>=5,<5.2.8", - "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7|>=5.1,<5.2.8|>=5.3,<5.4.47|>=6,<6.4.15|>=7,<7.1.8", - "symfony/serializer": ">=2,<2.0.11|>=4.1,<4.4.35|>=5,<5.3.12", - "symfony/symfony": "<5.4.50|>=6,<6.4.29|>=7,<7.3.7", - "symfony/translation": ">=2,<2.0.17", - "symfony/twig-bridge": ">=2,<4.4.51|>=5,<5.4.31|>=6,<6.3.8", - "symfony/ux-autocomplete": "<2.11.2", - "symfony/ux-live-component": "<2.25.1", - "symfony/ux-twig-component": "<2.25.1", - "symfony/validator": "<5.4.43|>=6,<6.4.11|>=7,<7.1.4", - "symfony/var-exporter": ">=4.2,<4.2.12|>=4.3,<4.3.8", - "symfony/web-profiler-bundle": ">=2,<2.3.19|>=2.4,<2.4.9|>=2.5,<2.5.4", - "symfony/webhook": ">=6.3,<6.3.8", - "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7|>=2.2.0.0-beta1,<2.2.0.0-beta2", - "symphonycms/symphony-2": "<2.6.4", - "t3/dce": "<0.11.5|>=2.2,<2.6.2", - "t3g/svg-sanitizer": "<1.0.3", - "t3s/content-consent": "<1.0.3|>=2,<2.0.2", - "tastyigniter/tastyigniter": "<4", - "tcg/voyager": "<=1.8", - "tecnickcom/tc-lib-pdf-font": "<2.6.4", - "tecnickcom/tcpdf": "<6.8", - "terminal42/contao-tablelookupwizard": "<3.3.5", - "thelia/backoffice-default-template": ">=2.1,<2.1.2", - "thelia/thelia": ">=2.1,<2.1.3", - "theonedemon/phpwhois": "<=4.2.5", - "thinkcmf/thinkcmf": "<6.0.8", - "thorsten/phpmyfaq": "<=4.0.13", - "tikiwiki/tiki-manager": "<=17.1", - "timber/timber": ">=0.16.6,<1.23.1|>=1.24,<1.24.1|>=2,<2.1", - "tinymce/tinymce": "<7.2", - "tinymighty/wiki-seo": "<1.2.2", - "titon/framework": "<9.9.99", - "tltneon/lgsl": "<7", - "tobiasbg/tablepress": "<=2.0.0.0-RC1", - "topthink/framework": "<6.0.17|>=6.1,<=8.0.4", - "topthink/think": "<=6.1.1", - "topthink/thinkphp": "<=3.2.3|>=6.1.3,<=8.0.4", - "torrentpier/torrentpier": "<=2.8.8", - "tpwd/ke_search": "<4.0.3|>=4.1,<4.6.6|>=5,<5.0.2", - "tribalsystems/zenario": "<=9.7.61188", - "truckersmp/phpwhois": "<=4.3.1", - "ttskch/pagination-service-provider": "<1", - "twbs/bootstrap": "<3.4.1|>=4,<4.3.1", - "twig/twig": "<3.11.2|>=3.12,<3.14.1|>=3.16,<3.19", - "typo3/cms": "<9.5.29|>=10,<10.4.35|>=11,<11.5.23|>=12,<12.2", - "typo3/cms-backend": "<4.1.14|>=4.2,<4.2.15|>=4.3,<4.3.7|>=4.4,<4.4.4|>=7,<=7.6.50|>=8,<=8.7.39|>=9,<9.5.55|>=10,<10.4.54|>=11,<11.5.48|>=12,<12.4.37|>=13,<13.4.18", - "typo3/cms-belog": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2", - "typo3/cms-beuser": ">=9,<9.5.55|>=10,<10.4.54|>=11,<11.5.48|>=12,<12.4.37|>=13,<13.4.18", - "typo3/cms-core": "<=8.7.56|>=9,<9.5.55|>=10,<10.4.54|>=11,<11.5.48|>=12,<12.4.37|>=13,<13.4.18", - "typo3/cms-dashboard": ">=10,<10.4.54|>=11,<11.5.48|>=12,<12.4.37|>=13,<13.4.18", - "typo3/cms-extbase": "<6.2.24|>=7,<7.6.8|==8.1.1", - "typo3/cms-extensionmanager": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2", - "typo3/cms-felogin": ">=4.2,<4.2.3", - "typo3/cms-fluid": "<4.3.4|>=4.4,<4.4.1", - "typo3/cms-form": ">=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2", - "typo3/cms-frontend": "<4.3.9|>=4.4,<4.4.5", - "typo3/cms-indexed-search": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2", - "typo3/cms-install": "<4.1.14|>=4.2,<4.2.16|>=4.3,<4.3.9|>=4.4,<4.4.5|>=12.2,<12.4.8|==13.4.2", - "typo3/cms-lowlevel": ">=11,<=11.5.41", - "typo3/cms-recordlist": ">=11,<11.5.48", - "typo3/cms-recycler": ">=9,<9.5.55|>=10,<10.4.54|>=11,<11.5.48|>=12,<12.4.37|>=13,<13.4.18", - "typo3/cms-rte-ckeditor": ">=9.5,<9.5.42|>=10,<10.4.39|>=11,<11.5.30", - "typo3/cms-scheduler": ">=11,<=11.5.41", - "typo3/cms-setup": ">=9,<=9.5.50|>=10,<=10.4.49|>=11,<=11.5.43|>=12,<=12.4.30|>=13,<=13.4.11", - "typo3/cms-webhooks": ">=12,<=12.4.30|>=13,<=13.4.11", - "typo3/cms-workspaces": ">=9,<9.5.55|>=10,<10.4.54|>=11,<11.5.48|>=12,<12.4.37|>=13,<13.4.18", - "typo3/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6", - "typo3/html-sanitizer": ">=1,<=1.5.2|>=2,<=2.1.3", - "typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<2.3.99|>=3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<3.3.23|>=4,<4.0.17|>=4.1,<4.1.16|>=4.2,<4.2.12|>=4.3,<4.3.3", - "typo3/phar-stream-wrapper": ">=1,<2.1.1|>=3,<3.1.1", - "typo3/swiftmailer": ">=4.1,<4.1.99|>=5.4,<5.4.5", - "typo3fluid/fluid": ">=2,<2.0.8|>=2.1,<2.1.7|>=2.2,<2.2.4|>=2.3,<2.3.7|>=2.4,<2.4.4|>=2.5,<2.5.11|>=2.6,<2.6.10", - "ua-parser/uap-php": "<3.8", - "uasoft-indonesia/badaso": "<=2.9.7", - "unisharp/laravel-filemanager": "<2.9.1", - "universal-omega/dynamic-page-list3": "<3.6.4", - "unopim/unopim": "<=0.3", - "userfrosting/userfrosting": ">=0.3.1,<4.6.3", - "usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2", - "uvdesk/community-skeleton": "<=1.1.1", - "uvdesk/core-framework": "<=1.1.1", - "vanilla/safecurl": "<0.9.2", - "verbb/comments": "<1.5.5", - "verbb/formie": "<=2.1.43", - "verbb/image-resizer": "<2.0.9", - "verbb/knock-knock": "<1.2.8", - "verot/class.upload.php": "<=2.1.6", - "vertexvaar/falsftp": "<0.2.6", - "villagedefrance/opencart-overclocked": "<=1.11.1", - "vova07/yii2-fileapi-widget": "<0.1.9", - "vrana/adminer": "<=4.8.1", - "vufind/vufind": ">=2,<9.1.1", - "waldhacker/hcaptcha": "<2.1.2", - "wallabag/tcpdf": "<6.2.22", - "wallabag/wallabag": "<2.6.11", - "wanglelecc/laracms": "<=1.0.3", - "wapplersystems/a21glossary": "<=0.4.10", - "web-auth/webauthn-framework": ">=3.3,<3.3.4|>=4.5,<4.9", - "web-auth/webauthn-lib": ">=4.5,<4.9", - "web-feet/coastercms": "==5.5", - "web-tp3/wec_map": "<3.0.3", - "webbuilders-group/silverstripe-kapost-bridge": "<0.4", - "webcoast/deferred-image-processing": "<1.0.2", - "webklex/laravel-imap": "<5.3", - "webklex/php-imap": "<5.3", - "webpa/webpa": "<3.1.2", - "webreinvent/vaahcms": "<=2.3.1", - "wikibase/wikibase": "<=1.39.3", - "wikimedia/parsoid": "<0.12.2", - "willdurand/js-translation-bundle": "<2.1.1", - "winter/wn-backend-module": "<1.2.4", - "winter/wn-cms-module": "<1.0.476|>=1.1,<1.1.11|>=1.2,<1.2.7", - "winter/wn-dusk-plugin": "<2.1", - "winter/wn-system-module": "<1.2.4", - "wintercms/winter": "<=1.2.3", - "wireui/wireui": "<1.19.3|>=2,<2.1.3", - "woocommerce/woocommerce": "<6.6|>=8.8,<8.8.5|>=8.9,<8.9.3", - "wp-cli/wp-cli": ">=0.12,<2.5", - "wp-graphql/wp-graphql": "<=1.14.5", - "wp-premium/gravityforms": "<2.4.21", - "wpanel/wpanel4-cms": "<=4.3.1", - "wpcloud/wp-stateless": "<3.2", - "wpglobus/wpglobus": "<=1.9.6", - "wwbn/avideo": "<14.3", - "xataface/xataface": "<3", - "xpressengine/xpressengine": "<3.0.15", - "yab/quarx": "<2.4.5", - "yeswiki/yeswiki": "<=4.5.4", - "yetiforce/yetiforce-crm": "<6.5", - "yidashi/yii2cmf": "<=2", - "yii2mod/yii2-cms": "<1.9.2", - "yiisoft/yii": "<1.1.31", - "yiisoft/yii2": "<2.0.52", - "yiisoft/yii2-authclient": "<2.2.15", - "yiisoft/yii2-bootstrap": "<2.0.4", - "yiisoft/yii2-dev": "<=2.0.45", - "yiisoft/yii2-elasticsearch": "<2.0.5", - "yiisoft/yii2-gii": "<=2.2.4", - "yiisoft/yii2-jui": "<2.0.4", - "yiisoft/yii2-redis": "<2.0.20", - "yikesinc/yikes-inc-easy-mailchimp-extender": "<6.8.6", - "yoast-seo-for-typo3/yoast_seo": "<7.2.3", - "yourls/yourls": "<=1.8.2", - "yuan1994/tpadmin": "<=1.3.12", - "yungifez/skuul": "<=2.6.5", - "z-push/z-push-dev": "<2.7.6", - "zencart/zencart": "<=1.5.7.0-beta", - "zendesk/zendesk_api_client_php": "<2.2.11", - "zendframework/zend-cache": ">=2.4,<2.4.8|>=2.5,<2.5.3", - "zendframework/zend-captcha": ">=2,<2.4.9|>=2.5,<2.5.2", - "zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2", - "zendframework/zend-db": "<2.2.10|>=2.3,<2.3.5", - "zendframework/zend-developer-tools": ">=1.2.2,<1.2.3", - "zendframework/zend-diactoros": "<1.8.4", - "zendframework/zend-feed": "<2.10.3", - "zendframework/zend-form": ">=2,<2.2.7|>=2.3,<2.3.1", - "zendframework/zend-http": "<2.8.1", - "zendframework/zend-json": ">=2.1,<2.1.6|>=2.2,<2.2.6", - "zendframework/zend-ldap": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3", - "zendframework/zend-mail": "<2.4.11|>=2.5,<2.7.2", - "zendframework/zend-navigation": ">=2,<2.2.7|>=2.3,<2.3.1", - "zendframework/zend-session": ">=2,<2.2.9|>=2.3,<2.3.4", - "zendframework/zend-validator": ">=2.3,<2.3.6", - "zendframework/zend-view": ">=2,<2.2.7|>=2.3,<2.3.1", - "zendframework/zend-xmlrpc": ">=2.1,<2.1.6|>=2.2,<2.2.6", - "zendframework/zendframework": "<=3", - "zendframework/zendframework1": "<1.12.20", - "zendframework/zendopenid": "<2.0.2", - "zendframework/zendrest": "<2.0.2", - "zendframework/zendservice-amazon": "<2.0.3", - "zendframework/zendservice-api": "<1", - "zendframework/zendservice-audioscrobbler": "<2.0.2", - "zendframework/zendservice-nirvanix": "<2.0.2", - "zendframework/zendservice-slideshare": "<2.0.2", - "zendframework/zendservice-technorati": "<2.0.2", - "zendframework/zendservice-windowsazure": "<2.0.2", - "zendframework/zendxml": ">=1,<1.0.1", - "zenstruck/collection": "<0.2.1", - "zetacomponents/mail": "<1.8.2", - "zf-commons/zfc-user": "<1.2.2", - "zfcampus/zf-apigility-doctrine": ">=1,<1.0.3", - "zfr/zfr-oauth2-server-module": "<0.1.2", - "zoujingli/thinkadmin": "<=6.1.53" - }, - "default-branch": true, - "type": "metapackage", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "role": "maintainer" - }, - { - "name": "Ilya Tribusean", - "email": "slash3b@gmail.com", - "role": "maintainer" - } - ], - "description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it", - "keywords": [ - "dev" - ], - "support": { - "issues": "https://github.com/Roave/SecurityAdvisories/issues", - "source": "https://github.com/Roave/SecurityAdvisories/tree/latest" - }, - "funding": [ - { - "url": "https://github.com/Ocramius", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/roave/security-advisories", - "type": "tidelift" - } - ], - "time": "2025-12-12T23:06:01+00:00" - }, - { - "name": "sebastian/cli-parser", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/c34583b87e7b7a8055bf6c450c2c77ce32a24084", - "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "phpunit/phpunit": "^10.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for parsing CLI options", - "homepage": "https://github.com/sebastianbergmann/cli-parser", - "support": { - "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-03-02T07:12:49+00:00" - }, - { - "name": "sebastian/code-unit", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "a81fee9eef0b7a76af11d121767abc44c104e503" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/a81fee9eef0b7a76af11d121767abc44c104e503", - "reference": "a81fee9eef0b7a76af11d121767abc44c104e503", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "phpunit/phpunit": "^10.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the PHP code units", - "homepage": "https://github.com/sebastianbergmann/code-unit", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0.0" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:58:43+00:00" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", - "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "phpunit/phpunit": "^10.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:59:15+00:00" - }, - { - "name": "sebastian/comparator", - "version": "5.0.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "55dfef806eb7dfeb6e7a6935601fef866f8ca48d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55dfef806eb7dfeb6e7a6935601fef866f8ca48d", - "reference": "55dfef806eb7dfeb6e7a6935601fef866f8ca48d", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-mbstring": "*", - "php": ">=8.1", - "sebastian/diff": "^5.0", - "sebastian/exporter": "^5.0" - }, - "require-dev": { - "phpunit/phpunit": "^10.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "5.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/comparator/issues", - "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/sebastian/comparator", - "type": "tidelift" - } - ], - "time": "2026-01-24T09:25:16+00:00" - }, - { - "name": "sebastian/complexity", - "version": "3.2.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "68ff824baeae169ec9f2137158ee529584553799" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799", - "reference": "68ff824baeae169ec9f2137158ee529584553799", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=8.1" - }, - "require-dev": { - "phpunit/phpunit": "^10.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.2-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for calculating the complexity of PHP code units", - "homepage": "https://github.com/sebastianbergmann/complexity", - "support": { - "issues": "https://github.com/sebastianbergmann/complexity/issues", - "security": "https://github.com/sebastianbergmann/complexity/security/policy", - "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-12-21T08:37:17+00:00" - }, - { - "name": "sebastian/diff", - "version": "5.1.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c41e007b4b62af48218231d6c2275e4c9b975b2e", - "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "phpunit/phpunit": "^10.0", - "symfony/process": "^6.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "5.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/diff/issues", - "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/5.1.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-03-02T07:15:17+00:00" - }, - { - "name": "sebastian/environment", - "version": "6.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "8074dbcd93529b357029f5cc5058fd3e43666984" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/8074dbcd93529b357029f5cc5058fd3e43666984", - "reference": "8074dbcd93529b357029f5cc5058fd3e43666984", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "phpunit/phpunit": "^10.0" - }, - "suggest": { - "ext-posix": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "6.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "https://github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/environment/issues", - "security": "https://github.com/sebastianbergmann/environment/security/policy", - "source": "https://github.com/sebastianbergmann/environment/tree/6.1.0" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-03-23T08:47:14+00:00" - }, - { - "name": "sebastian/exporter", - "version": "5.1.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "0735b90f4da94969541dac1da743446e276defa6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/0735b90f4da94969541dac1da743446e276defa6", - "reference": "0735b90f4da94969541dac1da743446e276defa6", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "php": ">=8.1", - "sebastian/recursion-context": "^5.0" - }, - "require-dev": { - "phpunit/phpunit": "^10.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "5.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "https://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/exporter/issues", - "security": "https://github.com/sebastianbergmann/exporter/security/policy", - "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter", - "type": "tidelift" - } - ], - "time": "2025-09-24T06:09:11+00:00" - }, - { - "name": "sebastian/global-state", - "version": "6.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", - "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "sebastian/object-reflector": "^3.0", - "sebastian/recursion-context": "^5.0" - }, - "require-dev": { - "ext-dom": "*", - "phpunit/phpunit": "^10.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "6.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Snapshotting of global state", - "homepage": "https://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/global-state/issues", - "security": "https://github.com/sebastianbergmann/global-state/security/policy", - "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-03-02T07:19:19+00:00" - }, - { - "name": "sebastian/lines-of-code", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0", - "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=8.1" - }, - "require-dev": { - "phpunit/phpunit": "^10.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for counting the lines of code in PHP source code", - "homepage": "https://github.com/sebastianbergmann/lines-of-code", - "support": { - "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-12-21T08:38:20+00:00" - }, - { - "name": "sebastian/object-enumerator", - "version": "5.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/202d0e344a580d7f7d04b3fafce6933e59dae906", - "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "sebastian/object-reflector": "^3.0", - "sebastian/recursion-context": "^5.0" - }, - "require-dev": { - "phpunit/phpunit": "^10.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "5.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0.0" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T07:08:32+00:00" - }, - { - "name": "sebastian/object-reflector", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "24ed13d98130f0e7122df55d06c5c4942a577957" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/24ed13d98130f0e7122df55d06c5c4942a577957", - "reference": "24ed13d98130f0e7122df55d06c5c4942a577957", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "phpunit/phpunit": "^10.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0.0" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T07:06:18+00:00" - }, - { - "name": "sebastian/recursion-context", - "version": "5.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "47e34210757a2f37a97dcd207d032e1b01e64c7a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/47e34210757a2f37a97dcd207d032e1b01e64c7a", - "reference": "47e34210757a2f37a97dcd207d032e1b01e64c7a", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "phpunit/phpunit": "^10.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "5.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "https://github.com/sebastianbergmann/recursion-context", - "support": { - "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context", - "type": "tidelift" - } - ], - "time": "2025-08-10T07:50:56+00:00" - }, - { - "name": "sebastian/type", - "version": "4.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/type.git", - "reference": "462699a16464c3944eefc02ebdd77882bd3925bf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf", - "reference": "462699a16464c3944eefc02ebdd77882bd3925bf", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "phpunit/phpunit": "^10.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the types of the PHP type system", - "homepage": "https://github.com/sebastianbergmann/type", - "support": { - "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/4.0.0" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T07:10:45+00:00" - }, - { - "name": "sebastian/version", - "version": "4.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17", - "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "support": { - "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/4.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-07T11:34:05+00:00" - }, - { - "name": "theseer/tokenizer", - "version": "1.3.1", - "source": { - "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "b7489ce515e168639d17feec34b8847c326b0b3c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c", - "reference": "b7489ce515e168639d17feec34b8847c326b0b3c", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - } - ], - "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "support": { - "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.3.1" - }, - "funding": [ - { - "url": "https://github.com/theseer", - "type": "github" - } - ], - "time": "2025-11-17T20:03:58+00:00" - } - ], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": { - "nextcloud/ocp": 20, - "roave/security-advisories": 20 - }, - "prefer-stable": false, - "prefer-lowest": false, - "platform": { - "php": "^8.1" - }, - "platform-dev": {}, - "platform-overrides": { - "php": "8.1" - }, - "plugin-api-version": "2.9.0" -} diff --git a/third_party/astrolabe/img/app-dark.svg b/third_party/astrolabe/img/app-dark.svg deleted file mode 100644 index 0edff66..0000000 --- a/third_party/astrolabe/img/app-dark.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/third_party/astrolabe/img/app.svg b/third_party/astrolabe/img/app.svg deleted file mode 100644 index 498850e..0000000 --- a/third_party/astrolabe/img/app.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/third_party/astrolabe/lib/AppInfo/Application.php b/third_party/astrolabe/lib/AppInfo/Application.php deleted file mode 100644 index 75aed93..0000000 --- a/third_party/astrolabe/lib/AppInfo/Application.php +++ /dev/null @@ -1,45 +0,0 @@ -registerSearchProvider(SemanticSearchProvider::class); - - // Register declarative admin settings - $context->registerDeclarativeSettings(AstrolabeAdminSettings::class); - - // Register event listeners for declarative settings - $context->registerEventListener( - DeclarativeSettingsGetValueEvent::class, - AstrolabeAdminSettingsListener::class - ); - $context->registerEventListener( - DeclarativeSettingsSetValueEvent::class, - AstrolabeAdminSettingsListener::class - ); - } - - public function boot(IBootContext $context): void { - } -} diff --git a/third_party/astrolabe/lib/BackgroundJob/RefreshUserTokens.php b/third_party/astrolabe/lib/BackgroundJob/RefreshUserTokens.php deleted file mode 100644 index 7c3c3a0..0000000 --- a/third_party/astrolabe/lib/BackgroundJob/RefreshUserTokens.php +++ /dev/null @@ -1,207 +0,0 @@ -setInterval(self::JOB_INTERVAL_SECONDS); - $this->setTimeSensitivity(IJob::TIME_INSENSITIVE); - } - - protected function run(mixed $argument): void { - $this->logger->info('RefreshUserTokens: Starting background token refresh'); - - $refreshed = 0; - $failed = 0; - $skipped = 0; - $offset = 0; - $totalUsers = 0; - - // Process users in batches to prevent memory issues on large installations - do { - $userIds = $this->tokenStorage->getAllUsersWithTokens(self::BATCH_SIZE, $offset); - $batchCount = count($userIds); - $totalUsers += $batchCount; - - foreach ($userIds as $userId) { - $result = $this->refreshUserTokenIfNeeded($userId); - match ($result) { - 'refreshed' => $refreshed++, - 'failed' => $failed++, - 'skipped' => $skipped++, - }; - } - - $offset += self::BATCH_SIZE; - } while ($batchCount === self::BATCH_SIZE); - - $this->logger->info("RefreshUserTokens: Complete - total=$totalUsers, refreshed=$refreshed, failed=$failed, skipped=$skipped"); - } - - /** - * Refresh a user's token if it's nearing expiration. - * - * Calculates the refresh threshold based on the token's actual lifetime, - * refreshing when less than 50% of the lifetime remains. - * - * Uses locking to prevent race conditions with on-demand refresh in - * getAccessToken(). If lock cannot be acquired, skips this user since - * on-demand refresh is already handling it. - * - * @return string 'refreshed', 'failed', or 'skipped' - */ - private function refreshUserTokenIfNeeded(string $userId): string { - $token = $this->tokenStorage->getUserToken($userId); - - if ($token === null) { - return 'skipped'; - } - - $expiresAt = (int)($token['expires_at'] ?? 0); - $issuedAt = isset($token['issued_at']) ? (int)$token['issued_at'] : null; - $timeRemaining = $expiresAt - time(); - - // Calculate token lifetime from stored data or use default - if ($issuedAt !== null) { - $tokenLifetime = $expiresAt - $issuedAt; - } else { - // Fallback: use default lifetime assumption - $tokenLifetime = self::DEFAULT_TOKEN_LIFETIME_SECONDS; - } - - // Calculate threshold: refresh when 50% of lifetime remains - $threshold = max( - (int)($tokenLifetime * self::REFRESH_AT_REMAINING_PERCENT), - self::MIN_THRESHOLD_SECONDS - ); - - if ($timeRemaining > $threshold) { - // Token still has plenty of time, skip - return 'skipped'; - } - - // Token is expiring soon, attempt refresh with lock - try { - return $this->tokenStorage->withTokenLock($userId, function () use ($userId) { - // Re-check token after acquiring lock (double-check pattern) - // Another process may have refreshed while we waited for lock - $currentToken = $this->tokenStorage->getUserToken($userId); - - if ($currentToken === null) { - return 'skipped'; - } - - // Recalculate threshold with current token data - $currentExpiresAt = (int)($currentToken['expires_at'] ?? 0); - $currentIssuedAt = isset($currentToken['issued_at']) ? (int)$currentToken['issued_at'] : null; - $currentTimeRemaining = $currentExpiresAt - time(); - - if ($currentIssuedAt !== null) { - $currentTokenLifetime = $currentExpiresAt - $currentIssuedAt; - } else { - $currentTokenLifetime = self::DEFAULT_TOKEN_LIFETIME_SECONDS; - } - - $currentThreshold = max( - (int)($currentTokenLifetime * self::REFRESH_AT_REMAINING_PERCENT), - self::MIN_THRESHOLD_SECONDS - ); - - if ($currentTimeRemaining > $currentThreshold) { - // Token was refreshed by another process while we waited - $this->logger->debug("RefreshUserTokens: Token already refreshed for user $userId while waiting for lock"); - return 'skipped'; - } - - // Still needs refresh, proceed - if (!isset($currentToken['refresh_token'])) { - $this->logger->warning("RefreshUserTokens: User $userId has no refresh token"); - return 'failed'; - } - - $this->logger->debug("RefreshUserTokens: Refreshing token for user $userId (remaining={$currentTimeRemaining}s, threshold={$currentThreshold}s)"); - - /** @var string $refreshToken */ - $refreshToken = $currentToken['refresh_token']; - $newTokenData = $this->tokenRefresher->refreshAccessToken($refreshToken); - - if ($newTokenData === null) { - $this->logger->warning("RefreshUserTokens: Refresh returned null for user $userId"); - // Don't delete token here - let on-demand refresh handle cleanup - return 'failed'; - } - - // Calculate new expiration and store issued_at for future calculations - $expiresIn = (int)($newTokenData['expires_in'] ?? self::DEFAULT_TOKEN_LIFETIME_SECONDS); - $now = time(); - - /** @var string $accessToken */ - $accessToken = $newTokenData['access_token']; - /** @var string $newRefreshToken */ - $newRefreshToken = $newTokenData['refresh_token'] ?? $refreshToken; - - $this->tokenStorage->storeUserToken( - $userId, - $accessToken, - $newRefreshToken, - $now + $expiresIn, - $now // issued_at - ); - - $this->logger->debug("RefreshUserTokens: Successfully refreshed token for user $userId"); - return 'refreshed'; - }); - } catch (LockedException $e) { - // Lock held by on-demand refresh - expected, not an error - $this->logger->debug("RefreshUserTokens: Lock held for user $userId, skipping"); - return 'skipped'; - } catch (\Exception $e) { - $this->logger->error("RefreshUserTokens: Failed to refresh for user $userId: " . $e->getMessage()); - return 'failed'; - } - } -} diff --git a/third_party/astrolabe/lib/Controller/ApiController.php b/third_party/astrolabe/lib/Controller/ApiController.php deleted file mode 100644 index 91535a3..0000000 --- a/third_party/astrolabe/lib/Controller/ApiController.php +++ /dev/null @@ -1,854 +0,0 @@ -client = $client; - $this->userSession = $userSession; - $this->urlGenerator = $urlGenerator; - $this->logger = $logger; - $this->tokenStorage = $tokenStorage; - $this->config = $config; - $this->tokenRefresher = $tokenRefresher; - } - - /** - * Revoke user's background access (delete refresh token). - * - * Called from personal settings form POST. - * Redirects back to personal settings after completion. - * - * @return RedirectResponse - */ - #[NoAdminRequired] - public function revokeAccess(): RedirectResponse { - $user = $this->userSession->getUser(); - if (!$user) { - // Should not happen (NoAdminRequired ensures user is logged in) - $this->logger->error('Revoke access called without authenticated user'); - return new RedirectResponse( - $this->urlGenerator->linkToRoute('settings.PersonalSettings.index', ['section' => 'astrolabe']) - ); - } - - $userId = $user->getUID(); - - // Get user's OAuth token - $token = $this->tokenStorage->getUserToken($userId); - if (!$token) { - $this->logger->error("Cannot revoke access: No token found for user $userId"); - return new RedirectResponse( - $this->urlGenerator->linkToRoute('settings.PersonalSettings.index', ['section' => 'astrolabe']) - ); - } - - $accessToken = $token['access_token']; - - // Call MCP server API to revoke access - $result = $this->client->revokeUserAccess($userId, $accessToken); - - if (isset($result['error'])) { - $this->logger->error("Failed to revoke access for user $userId", [ - 'error' => $result['error'] - ]); - // TODO: Add flash message/notification for user feedback - } else { - $this->logger->info("Successfully revoked background access for user $userId"); - - // Delete local OAuth tokens from Nextcloud config - // This ensures hasBackgroundAccess() returns false on next page load - $this->tokenStorage->deleteUserToken($userId); - $this->logger->debug("Deleted local OAuth tokens for user $userId"); - - // TODO: Add success flash message/notification - } - - // Redirect back to personal settings - return new RedirectResponse( - $this->urlGenerator->linkToRoute('settings.PersonalSettings.index', ['section' => 'astrolabe']) - ); - } - - /** - * Execute semantic search via MCP server. - * - * AJAX endpoint for vector search UI in app page. - * Uses user's OAuth token for authentication. - * - * @param string $query Search query - * @param string $algorithm Search algorithm (semantic, bm25, hybrid) - * @param int $limit Number of results (max 50) - * @param string $doc_types Comma-separated document types (e.g., "note,file") - * @param string $include_pca Whether to include PCA coordinates for visualization - * @return JSONResponse - */ - #[NoAdminRequired] - public function search( - string $query = '', - string $algorithm = 'hybrid', - int $limit = 10, - string $doc_types = '', - string $include_pca = 'true', - ): JSONResponse { - if (empty($query)) { - return new JSONResponse([ - 'success' => false, - 'error' => 'Missing required parameter: query' - ], Http::STATUS_BAD_REQUEST); - } - - // Get current user - $user = $this->userSession->getUser(); - if (!$user) { - return new JSONResponse([ - 'success' => false, - 'error' => 'User not authenticated' - ], Http::STATUS_UNAUTHORIZED); - } - - $userId = $user->getUID(); - - // Create refresh callback that calls IdP directly - /** @return array{access_token: string, refresh_token: string, expires_in: int}|null */ - $refreshCallback = function (string $refreshToken): ?array { - $newTokenData = $this->tokenRefresher->refreshAccessToken($refreshToken); - - if ($newTokenData === null) { - return null; - } - - return [ - 'access_token' => $newTokenData['access_token'], - 'refresh_token' => $newTokenData['refresh_token'] ?? $refreshToken, - 'expires_in' => $newTokenData['expires_in'] ?? 3600, - ]; - }; - - // Get user's OAuth token for MCP server with automatic refresh - $accessToken = $this->tokenStorage->getAccessToken($userId, $refreshCallback); - if ($accessToken === null) { - return new JSONResponse([ - 'success' => false, - 'error' => 'MCP server authorization required. Please authorize the app first.' - ], Http::STATUS_UNAUTHORIZED); - } - - // Validate algorithm - $validAlgorithms = ['semantic', 'bm25', 'hybrid']; - if (!in_array($algorithm, $validAlgorithms)) { - $algorithm = 'hybrid'; - } - - // Enforce limit bounds - $limit = max(1, min($limit, 50)); - - // Parse doc_types filter - $docTypesArray = null; - if (!empty($doc_types)) { - $validDocTypes = ['note', 'file', 'deck_card', 'calendar', 'contact', 'news_item']; - $docTypesArray = array_filter( - explode(',', $doc_types), - fn ($t) => in_array(trim($t), $validDocTypes) - ); - $docTypesArray = array_map('trim', $docTypesArray); - if (empty($docTypesArray)) { - $docTypesArray = null; - } - } - - // Parse include_pca (string "true"/"false" from query params) - $includePcaBool = in_array(strtolower($include_pca), ['true', '1', 'yes'], true); - - // Execute search via MCP server with OAuth token - $result = $this->client->search($query, $algorithm, $limit, $includePcaBool, $docTypesArray, $accessToken); - - if (isset($result['error'])) { - return new JSONResponse([ - 'success' => false, - 'error' => $result['error'] - ], Http::STATUS_INTERNAL_SERVER_ERROR); - } - - $response = [ - 'success' => true, - 'results' => $result['results'] ?? [], - 'algorithm_used' => $result['algorithm_used'] ?? $algorithm, - 'total_documents' => $result['total_documents'] ?? 0, - ]; - - // Include PCA visualization coordinates if requested and available - if ($includePcaBool) { - $response['coordinates_3d'] = $result['coordinates_3d'] ?? []; - $response['query_coords'] = $result['query_coords'] ?? []; - if (isset($result['pca_variance'])) { - $response['pca_variance'] = $result['pca_variance']; - } - } - - return new JSONResponse($response); - } - - /** - * Get vector sync status from MCP server. - * - * AJAX endpoint for status refresh in personal settings. - * - * @return JSONResponse - */ - #[NoAdminRequired] - public function vectorStatus(): JSONResponse { - $status = $this->client->getVectorSyncStatus(); - - if (isset($status['error'])) { - return new JSONResponse([ - 'success' => false, - 'error' => $status['error'] - ], Http::STATUS_INTERNAL_SERVER_ERROR); - } - - return new JSONResponse([ - 'success' => true, - 'status' => $status - ]); - } - - /** - * Get MCP server status. - * - * Admin-only endpoint for admin settings page. - * Returns server version, uptime, and vector sync availability. - * - * @return JSONResponse - */ - public function serverStatus(): JSONResponse { - $status = $this->client->getStatus(); - - // Validate that status is an array before accessing - if (!is_array($status)) { - return new JSONResponse([ - 'success' => false, - 'error' => 'Invalid response from MCP server' - ], Http::STATUS_INTERNAL_SERVER_ERROR); - } - - if (isset($status['error'])) { - return new JSONResponse([ - 'success' => false, - 'error' => $status['error'] - ], Http::STATUS_INTERNAL_SERVER_ERROR); - } - - return new JSONResponse([ - 'success' => true, - 'status' => $status - ]); - } - - /** - * Get vector sync status for admin. - * - * Admin-only endpoint for admin settings page. - * Returns indexing metrics and sync status. - * - * @return JSONResponse - */ - public function adminVectorStatus(): JSONResponse { - $status = $this->client->getVectorSyncStatus(); - - // Validate that status is an array before accessing - if (!is_array($status)) { - return new JSONResponse([ - 'success' => false, - 'error' => 'Invalid response from MCP server' - ], Http::STATUS_INTERNAL_SERVER_ERROR); - } - - if (isset($status['error'])) { - return new JSONResponse([ - 'success' => false, - 'error' => $status['error'] - ], Http::STATUS_INTERNAL_SERVER_ERROR); - } - - return new JSONResponse([ - 'success' => true, - 'status' => $status - ]); - } - - /** - * Save admin search settings. - * - * Admin-only endpoint to configure AI Search provider parameters. - * - * @return JSONResponse - */ - public function saveSearchSettings(): JSONResponse { - // Parse JSON body - $input = file_get_contents('php://input'); - $data = json_decode($input, true); - - if ($data === null) { - return new JSONResponse([ - 'success' => false, - 'error' => 'Invalid JSON body' - ], Http::STATUS_BAD_REQUEST); - } - - // Validate and save algorithm - $validAlgorithms = ['hybrid', 'semantic', 'bm25']; - $algorithm = $data['algorithm'] ?? AdminSettings::DEFAULT_SEARCH_ALGORITHM; - if (!in_array($algorithm, $validAlgorithms)) { - $algorithm = AdminSettings::DEFAULT_SEARCH_ALGORITHM; - } - $this->config->setAppValue( - $this->appName, - AdminSettings::SETTING_SEARCH_ALGORITHM, - $algorithm - ); - - // Validate and save fusion method - $validFusions = ['rrf', 'dbsf']; - $fusion = $data['fusion'] ?? AdminSettings::DEFAULT_SEARCH_FUSION; - if (!in_array($fusion, $validFusions)) { - $fusion = AdminSettings::DEFAULT_SEARCH_FUSION; - } - $this->config->setAppValue( - $this->appName, - AdminSettings::SETTING_SEARCH_FUSION, - $fusion - ); - - // Validate and save score threshold (0-100) - $scoreThreshold = (int)($data['scoreThreshold'] ?? AdminSettings::DEFAULT_SEARCH_SCORE_THRESHOLD); - $scoreThreshold = max(0, min(100, $scoreThreshold)); - $this->config->setAppValue( - $this->appName, - AdminSettings::SETTING_SEARCH_SCORE_THRESHOLD, - (string)$scoreThreshold - ); - - // Validate and save limit (5-100) - $limit = (int)($data['limit'] ?? AdminSettings::DEFAULT_SEARCH_LIMIT); - $limit = max(5, min(100, $limit)); - $this->config->setAppValue( - $this->appName, - AdminSettings::SETTING_SEARCH_LIMIT, - (string)$limit - ); - - $this->logger->info('Admin search settings saved', [ - 'algorithm' => $algorithm, - 'fusion' => $fusion, - 'scoreThreshold' => $scoreThreshold, - 'limit' => $limit, - ]); - - return new JSONResponse([ - 'success' => true, - 'settings' => [ - 'algorithm' => $algorithm, - 'fusion' => $fusion, - 'scoreThreshold' => $scoreThreshold, - 'limit' => $limit, - ] - ]); - } - - /** - * Get available webhook presets. - * - * Admin-only endpoint that lists webhook presets filtered by installed apps. - * - * @return JSONResponse - */ - public function getWebhookPresets(): JSONResponse { - // Get admin's OAuth token for API calls - $user = $this->userSession->getUser(); - if (!$user) { - return new JSONResponse([ - 'success' => false, - 'error' => 'User not authenticated' - ], Http::STATUS_UNAUTHORIZED); - } - - $userId = $user->getUID(); - - // Create refresh callback - /** @return array{access_token: string, refresh_token: string, expires_in: int}|null */ - $refreshCallback = function (string $refreshToken): ?array { - $newTokenData = $this->tokenRefresher->refreshAccessToken($refreshToken); - - if ($newTokenData === null) { - return null; - } - - return [ - 'access_token' => $newTokenData['access_token'], - 'refresh_token' => $newTokenData['refresh_token'] ?? $refreshToken, - 'expires_in' => $newTokenData['expires_in'] ?? 3600, - ]; - }; - - // Get access token with automatic refresh - $accessToken = $this->tokenStorage->getAccessToken($userId, $refreshCallback); - if ($accessToken === null) { - return new JSONResponse([ - 'success' => false, - 'error' => 'MCP server authorization required' - ], Http::STATUS_UNAUTHORIZED); - } - - // Get installed apps to filter presets - $installedAppsResult = $this->client->getInstalledApps($accessToken); - if (isset($installedAppsResult['error'])) { - return new JSONResponse([ - 'success' => false, - 'error' => $installedAppsResult['error'] - ], Http::STATUS_INTERNAL_SERVER_ERROR); - } - - $installedApps = $installedAppsResult['apps'] ?? []; - - // Get registered webhooks to check preset status - $webhooksResult = $this->client->listWebhooks($accessToken); - if (isset($webhooksResult['error'])) { - return new JSONResponse([ - 'success' => false, - 'error' => $webhooksResult['error'] - ], Http::STATUS_INTERNAL_SERVER_ERROR); - } - - $registeredWebhooks = $webhooksResult['webhooks'] ?? []; - - // Filter presets by installed apps - $presets = WebhookPresets::filterPresetsByInstalledApps($installedApps); - - // Add enabled status to each preset - // IMPORTANT: Match both event type AND filter to avoid false positives - // (e.g., Notes and Files both use FILE_EVENT_* but with different filters) - $presetsWithStatus = []; - foreach ($presets as $presetId => $preset) { - // Check if all events for this preset are registered with matching filters - $allEventsRegistered = true; - foreach ($preset['events'] as $presetEvent) { - $eventMatched = false; - foreach ($registeredWebhooks as $webhook) { - // Match event type - if ($webhook['event'] !== $presetEvent['event']) { - continue; - } - - // Match filter (both must have filter or both must not have filter) - $presetFilter = !empty($presetEvent['filter']) ? $presetEvent['filter'] : null; - $webhookFilter = !empty($webhook['eventFilter']) ? $webhook['eventFilter'] : null; - - // Compare filters (use json_encode for deep comparison) - if (json_encode($presetFilter) === json_encode($webhookFilter)) { - $eventMatched = true; - break; - } - } - - if (!$eventMatched) { - $allEventsRegistered = false; - break; - } - } - - $presetsWithStatus[$presetId] = array_merge($preset, [ - 'enabled' => $allEventsRegistered - ]); - } - - return new JSONResponse([ - 'success' => true, - 'presets' => $presetsWithStatus - ]); - } - - /** - * Enable a webhook preset. - * - * Admin-only endpoint that registers all webhooks for a preset. - * - * @param string $presetId Preset ID to enable - * @return JSONResponse - */ - public function enableWebhookPreset(string $presetId): JSONResponse { - // Get admin's OAuth token - $user = $this->userSession->getUser(); - if (!$user) { - return new JSONResponse([ - 'success' => false, - 'error' => 'User not authenticated' - ], Http::STATUS_UNAUTHORIZED); - } - - $userId = $user->getUID(); - - // Create refresh callback - /** @return array{access_token: string, refresh_token: string, expires_in: int}|null */ - $refreshCallback = function (string $refreshToken): ?array { - $newTokenData = $this->tokenRefresher->refreshAccessToken($refreshToken); - - if ($newTokenData === null) { - return null; - } - - return [ - 'access_token' => $newTokenData['access_token'], - 'refresh_token' => $newTokenData['refresh_token'] ?? $refreshToken, - 'expires_in' => $newTokenData['expires_in'] ?? 3600, - ]; - }; - - // Get access token with automatic refresh - $accessToken = $this->tokenStorage->getAccessToken($userId, $refreshCallback); - if ($accessToken === null) { - return new JSONResponse([ - 'success' => false, - 'error' => 'MCP server authorization required' - ], Http::STATUS_UNAUTHORIZED); - } - - // Get preset configuration - $preset = WebhookPresets::getPreset($presetId); - if ($preset === null) { - return new JSONResponse([ - 'success' => false, - 'error' => "Unknown preset: $presetId" - ], Http::STATUS_BAD_REQUEST); - } - - // Get MCP server URL for webhook callback URI - $mcpServerUrl = $this->client->getServerUrl(); - $callbackUri = $mcpServerUrl . '/api/v1/webhooks/callback'; - - // Register each event in the preset - $registered = []; - $errors = []; - foreach ($preset['events'] as $eventConfig) { - $result = $this->client->createWebhook( - $eventConfig['event'], - $callbackUri, - !empty($eventConfig['filter']) ? $eventConfig['filter'] : null, - $accessToken - ); - - if (isset($result['error'])) { - $errors[] = [ - 'event' => $eventConfig['event'], - 'error' => $result['error'] - ]; - } else { - $registered[] = $result; - } - } - - if (!empty($errors)) { - return new JSONResponse([ - 'success' => false, - 'error' => 'Failed to register some webhooks', - 'registered' => $registered, - 'errors' => $errors - ], Http::STATUS_INTERNAL_SERVER_ERROR); - } - - $this->logger->info("Enabled webhook preset $presetId for user $userId", [ - 'preset_id' => $presetId, - 'webhooks_registered' => count($registered) - ]); - - return new JSONResponse([ - 'success' => true, - 'message' => "Enabled {$preset['name']}", - 'webhooks' => $registered - ]); - } - - /** - * Disable a webhook preset. - * - * Admin-only endpoint that deletes all webhooks for a preset. - * - * @param string $presetId Preset ID to disable - * @return JSONResponse - */ - public function disableWebhookPreset(string $presetId): JSONResponse { - // Get admin's OAuth token - $user = $this->userSession->getUser(); - if (!$user) { - return new JSONResponse([ - 'success' => false, - 'error' => 'User not authenticated' - ], Http::STATUS_UNAUTHORIZED); - } - - $userId = $user->getUID(); - - // Create refresh callback - /** @return array{access_token: string, refresh_token: string, expires_in: int}|null */ - $refreshCallback = function (string $refreshToken): ?array { - $newTokenData = $this->tokenRefresher->refreshAccessToken($refreshToken); - - if ($newTokenData === null) { - return null; - } - - return [ - 'access_token' => $newTokenData['access_token'], - 'refresh_token' => $newTokenData['refresh_token'] ?? $refreshToken, - 'expires_in' => $newTokenData['expires_in'] ?? 3600, - ]; - }; - - // Get access token with automatic refresh - $accessToken = $this->tokenStorage->getAccessToken($userId, $refreshCallback); - if ($accessToken === null) { - return new JSONResponse([ - 'success' => false, - 'error' => 'MCP server authorization required' - ], Http::STATUS_UNAUTHORIZED); - } - - // Get preset configuration - $preset = WebhookPresets::getPreset($presetId); - if ($preset === null) { - return new JSONResponse([ - 'success' => false, - 'error' => "Unknown preset: $presetId" - ], Http::STATUS_BAD_REQUEST); - } - - // Get all registered webhooks - $webhooksResult = $this->client->listWebhooks($accessToken); - if (isset($webhooksResult['error'])) { - return new JSONResponse([ - 'success' => false, - 'error' => $webhooksResult['error'] - ], Http::STATUS_INTERNAL_SERVER_ERROR); - } - - $registeredWebhooks = $webhooksResult['webhooks'] ?? []; - - // Find webhooks that match this preset's events AND filters - // IMPORTANT: Must match both event type AND filter to avoid deleting - // webhooks from other presets (e.g., Notes vs Files both use FILE_EVENT_*) - $webhooksToDelete = []; - foreach ($registeredWebhooks as $webhook) { - // Check if this webhook matches any event in the preset - foreach ($preset['events'] as $presetEvent) { - // Match event type - if ($webhook['event'] !== $presetEvent['event']) { - continue; - } - - // Match filter (both must have filter or both must not have filter) - $presetFilter = !empty($presetEvent['filter']) ? $presetEvent['filter'] : null; - $webhookFilter = !empty($webhook['eventFilter']) ? $webhook['eventFilter'] : null; - - // Compare filters (use json_encode for deep comparison) - if (json_encode($presetFilter) === json_encode($webhookFilter)) { - $webhooksToDelete[] = $webhook; - break; // This webhook matches, no need to check other preset events - } - } - } - - // Delete each matching webhook - $deleted = []; - $errors = []; - foreach ($webhooksToDelete as $webhook) { - $result = $this->client->deleteWebhook($webhook['id'], $accessToken); - - if (isset($result['error'])) { - $errors[] = [ - 'webhook_id' => $webhook['id'], - 'event' => $webhook['event'], - 'error' => $result['error'] - ]; - } else { - $deleted[] = $webhook['id']; - } - } - - if (!empty($errors)) { - return new JSONResponse([ - 'success' => false, - 'error' => 'Failed to delete some webhooks', - 'deleted' => $deleted, - 'errors' => $errors - ], Http::STATUS_INTERNAL_SERVER_ERROR); - } - - $this->logger->info("Disabled webhook preset $presetId for user $userId", [ - 'preset_id' => $presetId, - 'webhooks_deleted' => count($deleted) - ]); - - return new JSONResponse([ - 'success' => true, - 'message' => "Disabled {$preset['name']}", - 'deleted' => $deleted - ]); - } - - /** - * Get chunk context for visualization. - * - * @param string $doc_type Document type - * @param string $doc_id Document ID - * @param int $start Start offset - * @param int $end End offset - * @return JSONResponse - */ - #[NoAdminRequired] - public function chunkContext( - string $doc_type, - string $doc_id, - int $start, - int $end, - ): JSONResponse { - $user = $this->userSession->getUser(); - if (!$user) { - return new JSONResponse(['error' => 'User not authenticated'], Http::STATUS_UNAUTHORIZED); - } - - $userId = $user->getUID(); - - // Create refresh callback - /** @return array{access_token: string, refresh_token: string, expires_in: int}|null */ - $refreshCallback = function (string $refreshToken): ?array { - $newTokenData = $this->tokenRefresher->refreshAccessToken($refreshToken); - - if ($newTokenData === null) { - return null; - } - - return [ - 'access_token' => $newTokenData['access_token'], - 'refresh_token' => $newTokenData['refresh_token'] ?? $refreshToken, - 'expires_in' => $newTokenData['expires_in'] ?? 3600, - ]; - }; - - // Get user's OAuth token for MCP server with automatic refresh - $accessToken = $this->tokenStorage->getAccessToken($userId, $refreshCallback); - if ($accessToken === null) { - return new JSONResponse([ - 'success' => false, - 'error' => 'MCP server authorization required.' - ], Http::STATUS_UNAUTHORIZED); - } - - $result = $this->client->getChunkContext($doc_type, $doc_id, $start, $end, $accessToken); - - if (isset($result['error'])) { - return new JSONResponse(['success' => false, 'error' => $result['error']], Http::STATUS_INTERNAL_SERVER_ERROR); - } - - return new JSONResponse($result); - } - - /** - * Get PDF page preview (server-side rendered). - * - * AJAX endpoint for PDF viewer in semantic search UI. - * Uses server-side PyMuPDF rendering to avoid CSP/worker issues. - * - * @param string $file_path WebDAV path to PDF file - * @param int $page Page number (1-indexed, default: 1) - * @param float $scale Zoom factor (default: 2.0) - * @return JSONResponse - */ - #[NoAdminRequired] - public function pdfPreview( - string $file_path, - int $page = 1, - float $scale = 2.0, - ): JSONResponse { - $user = $this->userSession->getUser(); - if (!$user) { - return new JSONResponse(['success' => false, 'error' => 'User not authenticated'], Http::STATUS_UNAUTHORIZED); - } - - $userId = $user->getUID(); - - // Create refresh callback - /** @return array{access_token: string, refresh_token: string, expires_in: int}|null */ - $refreshCallback = function (string $refreshToken): ?array { - $newTokenData = $this->tokenRefresher->refreshAccessToken($refreshToken); - - if ($newTokenData === null) { - return null; - } - - return [ - 'access_token' => $newTokenData['access_token'], - 'refresh_token' => $newTokenData['refresh_token'] ?? $refreshToken, - 'expires_in' => $newTokenData['expires_in'] ?? 3600, - ]; - }; - - // Get user's OAuth token for MCP server with automatic refresh - $accessToken = $this->tokenStorage->getAccessToken($userId, $refreshCallback); - if ($accessToken === null) { - return new JSONResponse([ - 'success' => false, - 'error' => 'MCP server authorization required.' - ], Http::STATUS_UNAUTHORIZED); - } - - $result = $this->client->getPdfPreview($file_path, $page, $scale, $accessToken); - - if (isset($result['error'])) { - return new JSONResponse(['success' => false, 'error' => $result['error']], Http::STATUS_INTERNAL_SERVER_ERROR); - } - - return new JSONResponse($result); - } -} diff --git a/third_party/astrolabe/lib/Controller/CredentialsController.php b/third_party/astrolabe/lib/Controller/CredentialsController.php deleted file mode 100644 index 4d414a2..0000000 --- a/third_party/astrolabe/lib/Controller/CredentialsController.php +++ /dev/null @@ -1,324 +0,0 @@ -tokenStorage = $tokenStorage; - $this->userSession = $userSession; - $this->logger = $logger; - $this->config = $config; - $this->client = $client; - $this->httpClientService = $httpClientService; - $this->urlGenerator = $urlGenerator; - } - - /** - * Store app password for background sync. - * - * Validates the app password by making a test request to Nextcloud, - * then stores it encrypted if valid. - * - * @param string $appPassword Nextcloud app password - * @return JSONResponse - */ - #[NoAdminRequired] - public function storeAppPassword(string $appPassword): JSONResponse { - $user = $this->userSession->getUser(); - if (!$user) { - $this->logger->error('storeAppPassword called without authenticated user'); - return new JSONResponse([ - 'success' => false, - 'error' => 'User not authenticated' - ], Http::STATUS_UNAUTHORIZED); - } - - $userId = $user->getUID(); - - // Validate app password format (xxxxx-xxxxx-xxxxx-xxxxx-xxxxx) - if (!preg_match('/^[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}$/', $appPassword)) { - $this->logger->warning("Invalid app password format for user: $userId"); - return new JSONResponse([ - 'success' => false, - 'error' => 'Invalid app password format' - ], Http::STATUS_BAD_REQUEST); - } - - // Validate app password with Nextcloud - $isValid = $this->validateAppPassword($userId, $appPassword); - - if (!$isValid) { - $this->logger->warning("App password validation failed for user: $userId"); - return new JSONResponse([ - 'success' => false, - 'error' => 'Invalid app password. Please check the password and try again.' - ], Http::STATUS_UNAUTHORIZED); - } - - // Store encrypted app password locally in Nextcloud - try { - $this->tokenStorage->storeBackgroundSyncPassword($userId, $appPassword); - $this->logger->info("Stored app password locally for user: $userId"); - } catch (\Exception $e) { - $this->logger->error("Failed to store app password locally for user $userId", [ - 'error' => $e->getMessage() - ]); - return new JSONResponse([ - 'success' => false, - 'error' => 'Failed to save app password locally' - ], Http::STATUS_INTERNAL_SERVER_ERROR); - } - - // Send app password to MCP server for background sync - // Get MCP server URL from system config (set in config.php) - $mcpServerUrl = $this->config->getSystemValue('mcp_server_url', ''); - if (empty($mcpServerUrl)) { - $this->logger->warning('MCP server URL not configured, app password stored locally only'); - return new JSONResponse([ - 'success' => true, - 'partial_success' => true, - 'local_storage' => true, - 'mcp_sync' => false, - 'message' => 'App password saved locally (MCP server not configured)' - ], Http::STATUS_OK); - } - - try { - $httpClient = $this->httpClientService->newClient(); - - // Send to MCP server with BasicAuth (user proves ownership of password) - $mcpEndpoint = rtrim($mcpServerUrl, '/') . '/api/v1/users/' . urlencode($userId) . '/app-password'; - - $this->logger->debug("Sending app password to MCP server: $mcpEndpoint"); - - $response = $httpClient->post($mcpEndpoint, [ - 'auth' => [$userId, $appPassword], - 'headers' => [ - 'Content-Type' => 'application/json', - 'Accept' => 'application/json', - ], - 'timeout' => 10, - ]); - - $statusCode = $response->getStatusCode(); - $body = json_decode($response->getBody(), true); - - if ($statusCode === 200 && ($body['success'] ?? false)) { - $this->logger->info("Successfully provisioned app password to MCP server for user: $userId"); - return new JSONResponse([ - 'success' => true, - 'partial_success' => false, - 'local_storage' => true, - 'mcp_sync' => true, - 'message' => 'App password saved successfully' - ], Http::STATUS_OK); - } else { - $error = $body['error'] ?? 'Unknown error'; - $this->logger->error("MCP server rejected app password for user $userId: $error"); - // Return partial success since it was stored locally but MCP sync failed - return new JSONResponse([ - 'success' => true, - 'partial_success' => true, - 'local_storage' => true, - 'mcp_sync' => false, - 'message' => 'App password saved locally (MCP server sync failed)', - 'mcp_error' => $error - ], Http::STATUS_OK); - } - } catch (\Exception $e) { - $this->logger->error("Failed to send app password to MCP server for user $userId", [ - 'error' => $e->getMessage() - ]); - // Return partial success since it was stored locally but MCP was unreachable - return new JSONResponse([ - 'success' => true, - 'partial_success' => true, - 'local_storage' => true, - 'mcp_sync' => false, - 'message' => 'App password saved locally (MCP server unreachable)', - 'mcp_error' => $e->getMessage() - ], Http::STATUS_OK); - } - } - - /** - * Validate app password by making a test request to Nextcloud. - * - * @param string $userId User ID - * @param string $appPassword App password to validate - * @return bool True if valid, false otherwise - */ - private function validateAppPassword(string $userId, string $appPassword): bool { - try { - // Use 127.0.0.1 for internal validation (we're running inside Nextcloud container) - // Using IP address instead of 'localhost' to avoid Nextcloud's overwrite.cli.url rewriting - // getAbsoluteURL() returns the external URL which isn't accessible from inside the container - $baseUrl = 'http://127.0.0.1'; - - // Make a test request to Nextcloud API with BasicAuth - // Using OCS API user endpoint as a lightweight test - $testUrl = $baseUrl . '/ocs/v1.php/cloud/user?format=json'; - - $this->logger->debug("Validating app password for user: $userId against $testUrl"); - - // Use Nextcloud's HTTP client - $httpClient = $this->httpClientService->newClient(); - - $response = $httpClient->get($testUrl, [ - 'auth' => [$userId, $appPassword], - 'headers' => [ - 'OCS-APIRequest' => 'true', - 'Accept' => 'application/json', - ], - 'timeout' => 10, - ]); - - $statusCode = $response->getStatusCode(); - - // Success is 200 OK - if ($statusCode === 200) { - $this->logger->debug("App password validation successful for user: $userId"); - return true; - } - - $this->logger->warning("App password validation failed for user: $userId (HTTP $statusCode)"); - return false; - } catch (\Exception $e) { - $this->logger->error("Exception during app password validation for user $userId", [ - 'error' => $e->getMessage() - ]); - return false; - } - } - - /** - * Get background sync credentials status for the current user. - * - * @return JSONResponse - */ - #[NoAdminRequired] - public function getStatus(): JSONResponse { - $user = $this->userSession->getUser(); - if (!$user) { - return new JSONResponse([ - 'success' => false, - 'error' => 'User not authenticated' - ], Http::STATUS_UNAUTHORIZED); - } - - $userId = $user->getUID(); - - $hasAccess = $this->tokenStorage->hasBackgroundSyncAccess($userId); - $syncType = $this->tokenStorage->getBackgroundSyncType($userId); - $provisionedAt = $this->tokenStorage->getBackgroundSyncProvisionedAt($userId); - - return new JSONResponse([ - 'success' => true, - 'has_background_access' => $hasAccess, - 'sync_type' => $syncType, - 'provisioned_at' => $provisionedAt, - ], Http::STATUS_OK); - } - - /** - * Get credentials for a specific user (admin only). - * - * Note: This does NOT return the actual password, only metadata. - * - * @param string $userId User ID to check - * @return JSONResponse - */ - public function getCredentials(string $userId): JSONResponse { - // This endpoint should only be accessible by admins - // For now, just return metadata (not actual credentials) - $hasAccess = $this->tokenStorage->hasBackgroundSyncAccess($userId); - $syncType = $this->tokenStorage->getBackgroundSyncType($userId); - $provisionedAt = $this->tokenStorage->getBackgroundSyncProvisionedAt($userId); - - return new JSONResponse([ - 'success' => true, - 'user_id' => $userId, - 'has_background_access' => $hasAccess, - 'sync_type' => $syncType, - 'provisioned_at' => $provisionedAt, - ], Http::STATUS_OK); - } - - /** - * Delete background sync credentials for the current user. - * - * @return JSONResponse - */ - #[NoAdminRequired] - public function deleteCredentials(): JSONResponse { - $user = $this->userSession->getUser(); - if (!$user) { - return new JSONResponse([ - 'success' => false, - 'error' => 'User not authenticated' - ], Http::STATUS_UNAUTHORIZED); - } - - $userId = $user->getUID(); - - try { - // Delete both OAuth tokens and app password (if any exist) - $this->tokenStorage->deleteUserToken($userId); - $this->tokenStorage->deleteBackgroundSyncPassword($userId); - - $this->logger->info("Deleted background sync credentials for user: $userId"); - - return new JSONResponse([ - 'success' => true, - 'message' => 'Credentials deleted successfully' - ], Http::STATUS_OK); - } catch (\Exception $e) { - $this->logger->error("Failed to delete credentials for user $userId", [ - 'error' => $e->getMessage() - ]); - return new JSONResponse([ - 'success' => false, - 'error' => 'Failed to delete credentials' - ], Http::STATUS_INTERNAL_SERVER_ERROR); - } - } -} diff --git a/third_party/astrolabe/lib/Controller/OauthController.php b/third_party/astrolabe/lib/Controller/OauthController.php deleted file mode 100644 index 6172335..0000000 --- a/third_party/astrolabe/lib/Controller/OauthController.php +++ /dev/null @@ -1,550 +0,0 @@ -config = $config; - $this->session = $session; - $this->userSession = $userSession; - $this->urlGenerator = $urlGenerator; - $this->tokenStorage = $tokenStorage; - $this->logger = $logger; - $this->l = $l; - $this->httpClient = $clientService->newClient(); - $this->client = $client; - } - - /** - * Initiate OAuth authorization flow. - * - * Always generates PKCE code verifier and challenge (RFC 9207). - * Stores state and code verifier in session, then redirects user to IdP authorization endpoint. - * - * @return RedirectResponse|TemplateResponse - */ - #[NoAdminRequired] - #[NoCSRFRequired] - public function initiateOAuth() { - $this->logger->info('initiateOAuth called'); - - $user = $this->userSession->getUser(); - if (!$user) { - $this->logger->error('initiateOAuth: User not authenticated'); - return new TemplateResponse( - 'astrolabe', - 'settings/error', - ['error' => $this->l->t('User not authenticated')] - ); - } - - $this->logger->info('initiateOAuth: User authenticated: ' . $user->getUID()); - - try { - // Get MCP server configuration - $mcpServerUrl = $this->config->getSystemValue('mcp_server_url', ''); - if (empty($mcpServerUrl)) { - throw new \Exception('MCP server URL not configured'); - } - - // Always generate PKCE values (RFC 9207: PKCE recommended for all clients) - $codeVerifier = bin2hex(random_bytes(32)); - $codeChallenge = $this->base64UrlEncode(hash('sha256', $codeVerifier, true)); - - // Check if confidential client secret is also configured - $clientSecret = $this->config->getSystemValue('astrolabe_client_secret', ''); - $isConfidentialClient = !empty($clientSecret); - - if ($isConfidentialClient) { - $this->logger->info('Using confidential client mode with PKCE and client secret'); - } else { - $this->logger->info('Using public client mode with PKCE only'); - } - - // Generate state for CSRF protection - $state = bin2hex(random_bytes(16)); - - // Store values in session - $this->session->set('mcp_oauth_code_verifier', $codeVerifier); - $this->session->set('mcp_oauth_state', $state); - $this->session->set('mcp_oauth_user_id', $user->getUID()); - - // Build OAuth authorization URL - $authUrl = $this->buildAuthorizationUrl( - $mcpServerUrl, - $state, - $codeChallenge - ); - - $this->logger->info('Initiating OAuth flow for user: ' . $user->getUID()); - - return new RedirectResponse($authUrl); - } catch (\Exception $e) { - $this->logger->error('Failed to initiate OAuth flow', [ - 'error' => $e->getMessage() - ]); - - return new TemplateResponse( - 'astrolabe', - 'settings/error', - ['error' => $this->l->t('Failed to initiate OAuth: %s', [$e->getMessage()])] - ); - } - } - - /** - * Handle OAuth callback after user authorization. - * - * Validates state, exchanges authorization code for access token using PKCE, - * and stores tokens for the user. - * - * @param string $code Authorization code - * @param string $state State parameter for CSRF protection - * @param string|null $error Error from IdP - * @param string|null $error_description Error description from IdP - * @return RedirectResponse - */ - #[NoAdminRequired] - #[NoCSRFRequired] - public function oauthCallback( - string $code = '', - string $state = '', - ?string $error = null, - ?string $error_description = null, - ): RedirectResponse { - try { - // Check for errors from IdP - if ($error) { - throw new \Exception("OAuth error: $error - " . ($error_description ?? '')); - } - - // Validate state to prevent CSRF - $storedState = $this->session->get('mcp_oauth_state'); - if (empty($storedState) || $state !== $storedState) { - throw new \Exception('Invalid state parameter (CSRF protection)'); - } - - // Get stored PKCE verifier (always required) - $codeVerifier = $this->session->get('mcp_oauth_code_verifier'); - if (empty($codeVerifier)) { - throw new \Exception('PKCE code verifier not found in session'); - } - - // Get user ID from session - $userId = $this->session->get('mcp_oauth_user_id'); - if (empty($userId)) { - throw new \Exception('User ID not found in session'); - } - - // Get MCP server configuration - $mcpServerUrl = $this->config->getSystemValue('mcp_server_url', ''); - if (empty($mcpServerUrl)) { - throw new \Exception('MCP server URL not configured'); - } - - // Exchange authorization code for tokens - $tokenData = $this->exchangeCodeForToken( - $mcpServerUrl, - $code, - $codeVerifier - ); - - // Store tokens for user - $this->tokenStorage->storeUserToken( - $userId, - $tokenData['access_token'], - $tokenData['refresh_token'] ?? '', - time() + ($tokenData['expires_in'] ?? 3600) - ); - - // Clean up session - $this->session->remove('mcp_oauth_code_verifier'); - $this->session->remove('mcp_oauth_state'); - $this->session->remove('mcp_oauth_user_id'); - - $this->logger->info("OAuth flow completed successfully for user: $userId"); - - // Redirect back to personal settings - return new RedirectResponse( - $this->urlGenerator->linkToRoute('settings.PersonalSettings.index', ['section' => 'astrolabe']) - ); - } catch (\Exception $e) { - $this->logger->error('OAuth callback failed', [ - 'error' => $e->getMessage() - ]); - - // Clean up session - $this->session->remove('mcp_oauth_code_verifier'); - $this->session->remove('mcp_oauth_state'); - $this->session->remove('mcp_oauth_user_id'); - - // Redirect to settings with error - return new RedirectResponse( - $this->urlGenerator->linkToRoute('settings.PersonalSettings.index', [ - 'section' => 'astrolabe', - 'error' => urlencode($e->getMessage()) - ]) - ); - } - } - - /** - * Disconnect user's MCP OAuth tokens. - * - * Deletes stored tokens from Nextcloud. Note: Does not revoke tokens on IdP side. - * - * @return RedirectResponse - */ - #[NoAdminRequired] - public function disconnect(): RedirectResponse { - $user = $this->userSession->getUser(); - if (!$user) { - return new RedirectResponse( - $this->urlGenerator->linkToRoute('settings.PersonalSettings.index', ['section' => 'astrolabe']) - ); - } - - $userId = $user->getUID(); - - try { - $this->tokenStorage->deleteUserToken($userId); - $this->logger->info("Disconnected MCP OAuth for user: $userId"); - } catch (\Exception $e) { - $this->logger->error("Failed to disconnect MCP OAuth for user $userId", [ - 'error' => $e->getMessage() - ]); - } - - return new RedirectResponse( - $this->urlGenerator->linkToRoute('settings.PersonalSettings.index', ['section' => 'astrolabe']) - ); - } - - /** - * Build OAuth authorization URL. - * - * Queries MCP server for IdP configuration, then performs OIDC discovery - * to find the authorization endpoint. Supports both Nextcloud OIDC and - * external IdPs like Keycloak. - * - * Always uses PKCE (RFC 9207 recommends PKCE for all clients). - * - * @param string $mcpServerUrl Base URL of MCP server - * @param string $state CSRF state parameter - * @param string $codeChallenge PKCE code challenge - * @return string Authorization URL - * @throws \Exception if OIDC discovery fails - */ - private function buildAuthorizationUrl( - string $mcpServerUrl, - string $state, - string $codeChallenge, - ): string { - // First, query MCP server to discover which IdP it's configured to use - $this->logger->info('buildAuthorizationUrl: Starting', [ - 'mcp_server_url' => $mcpServerUrl, - ]); - - try { - $statusUrl = $mcpServerUrl . '/api/v1/status'; - $this->logger->info('buildAuthorizationUrl: Fetching MCP server status', [ - 'url' => $statusUrl, - ]); - - $statusResponse = $this->httpClient->get($statusUrl); - $statusData = json_decode($statusResponse->getBody(), true); - - if (json_last_error() !== JSON_ERROR_NONE) { - throw new \RuntimeException('Invalid JSON in status response: ' . json_last_error_msg()); - } - - $this->logger->info('buildAuthorizationUrl: MCP server status received', [ - 'auth_mode' => $statusData['auth_mode'] ?? 'unknown', - 'has_oidc' => isset($statusData['oidc']), - 'oidc_discovery_url' => $statusData['oidc']['discovery_url'] ?? 'not_set', - ]); - - } catch (\Exception $e) { - $this->logger->error('buildAuthorizationUrl: Failed to fetch MCP server status', [ - 'url' => $mcpServerUrl . '/api/v1/status', - 'error' => $e->getMessage(), - 'trace' => $e->getTraceAsString(), - ]); - throw new \Exception('Cannot connect to MCP server: ' . $e->getMessage()); - } - - // Determine OIDC discovery URL - // Priority: 1) MCP server's configured discovery URL, 2) Nextcloud OIDC app - if (isset($statusData['oidc']['discovery_url'])) { - // MCP server has external IdP configured (e.g., Keycloak) - $discoveryUrl = $statusData['oidc']['discovery_url']; - $this->logger->info('Using IdP from MCP server configuration', [ - 'discovery_url' => $discoveryUrl, - ]); - } else { - // Fall back to Nextcloud's OIDC app - // Use internal localhost URL for HTTP request (accessible from inside container) - // We'll transform the returned URLs to external format after discovery - $discoveryUrl = 'http://localhost/.well-known/openid-configuration'; - $internalBaseUrl = 'http://localhost'; - - $this->logger->info('Using Nextcloud OIDC app as IdP (internal request)', [ - 'discovery_url' => $discoveryUrl, - ]); - } - - // Perform OIDC discovery - $this->logger->info('buildAuthorizationUrl: Starting OIDC discovery', [ - 'discovery_url' => $discoveryUrl, - ]); - - try { - $response = $this->httpClient->get($discoveryUrl); - $responseBody = $response->getBody(); - $this->logger->info('buildAuthorizationUrl: Got OIDC discovery response', [ - 'status_code' => $response->getStatusCode(), - 'body_length' => strlen($responseBody), - ]); - - $discovery = json_decode($responseBody, true); - - if (json_last_error() !== JSON_ERROR_NONE) { - throw new \RuntimeException('Invalid JSON in OIDC discovery: ' . json_last_error_msg()); - } - - if (!isset($discovery['authorization_endpoint'])) { - throw new \RuntimeException('Missing authorization_endpoint in OIDC discovery'); - } - - $authEndpoint = $discovery['authorization_endpoint']; - - // Transform internal URL to external URL if using Nextcloud OIDC app - // The discovery was done via internal http://localhost but browsers need - // the external URL (e.g., http://localhost:8080) - if (isset($internalBaseUrl)) { - $externalBaseUrl = $this->urlGenerator->getAbsoluteURL('/'); - $externalBaseUrl = rtrim($externalBaseUrl, '/'); - $authEndpoint = str_replace($internalBaseUrl, $externalBaseUrl, $authEndpoint); - } - - $this->logger->info('buildAuthorizationUrl: OIDC discovery succeeded', [ - 'auth_endpoint' => $authEndpoint, - 'token_endpoint' => $discovery['token_endpoint'] ?? 'not_set', - ]); - - } catch (\Exception $e) { - $this->logger->error('buildAuthorizationUrl: OIDC discovery failed', [ - 'discovery_url' => $discoveryUrl, - 'error' => $e->getMessage(), - 'trace' => $e->getTraceAsString(), - ]); - throw new \Exception('Failed to discover OAuth endpoints: ' . $e->getMessage()); - } - - // Build callback URL - $redirectUri = $this->urlGenerator->linkToRouteAbsolute( - 'astrolabe.oauth.oauthCallback' - ); - - // Get public MCP server URL for token audience (RFC 8707 Resource Indicator) - // Use public URL that clients/browsers see, not internal Docker URL - $mcpServerPublicUrl = $this->config->getSystemValue('mcp_server_public_url', $mcpServerUrl); - - // Build authorization URL parameters - $params = [ - 'client_id' => $this->client->getClientId(), - 'redirect_uri' => $redirectUri, - 'response_type' => 'code', - 'scope' => 'openid profile email offline_access', // Request MCP scopes - 'state' => $state, - 'resource' => $mcpServerPublicUrl, // RFC 8707 Resource Indicator - request token with MCP server audience - ]; - - // Add PKCE parameters (always required per RFC 9207) - $params['code_challenge'] = $codeChallenge; - $params['code_challenge_method'] = 'S256'; - - return $authEndpoint . '?' . http_build_query($params); - } - - /** - * Exchange authorization code for access token. - * - * Always uses PKCE code_verifier (RFC 9207). - * For confidential clients: Also includes client_secret for additional security. - * For public clients: Uses PKCE code_verifier only. - * - * Queries MCP server for IdP configuration, then performs OIDC discovery - * to find the token endpoint. Supports both Nextcloud OIDC and external IdPs. - * - * @param string $mcpServerUrl Base URL of MCP server - * @param string $code Authorization code - * @param string $codeVerifier PKCE code verifier - * @return array Token data containing access_token, refresh_token, expires_in - * @throws \Exception on HTTP or token error - */ - private function exchangeCodeForToken( - string $mcpServerUrl, - string $code, - string $codeVerifier, - ): array { - // Query MCP server to discover which IdP it's configured to use - try { - $statusResponse = $this->httpClient->get($mcpServerUrl . '/api/v1/status'); - $statusData = json_decode($statusResponse->getBody(), true); - - if (json_last_error() !== JSON_ERROR_NONE) { - throw new \RuntimeException('Invalid status response from MCP server'); - } - - } catch (\Exception $e) { - $this->logger->error('Failed to fetch MCP server status during token exchange', [ - 'error' => $e->getMessage(), - ]); - throw new \Exception('Cannot connect to MCP server: ' . $e->getMessage()); - } - - // Determine OIDC discovery URL and token endpoint - $useInternalNextcloud = !isset($statusData['oidc']['discovery_url']); - - if (!$useInternalNextcloud) { - // External IdP configured - use discovery - $discoveryUrl = $statusData['oidc']['discovery_url']; - - try { - $response = $this->httpClient->get($discoveryUrl); - $discovery = json_decode($response->getBody(), true); - - if (json_last_error() !== JSON_ERROR_NONE || !isset($discovery['token_endpoint'])) { - throw new \RuntimeException('Invalid OIDC discovery response'); - } - - $tokenEndpoint = $discovery['token_endpoint']; - - } catch (\Exception $e) { - $this->logger->error('OIDC discovery failed during token exchange', [ - 'discovery_url' => $discoveryUrl, - 'error' => $e->getMessage(), - ]); - throw new \Exception('Failed to discover token endpoint: ' . $e->getMessage()); - } - } else { - // Nextcloud's OIDC app - use internal URL directly (no HTTP request needed) - // This avoids network issues when overwritehost includes external port - $tokenEndpoint = 'http://localhost/apps/oidc/token'; - } - - $redirectUri = $this->urlGenerator->linkToRouteAbsolute( - 'astrolabe.oauth.oauthCallback' - ); - - // Build token request parameters - $postData = [ - 'grant_type' => 'authorization_code', - 'code' => $code, - 'redirect_uri' => $redirectUri, - 'client_id' => $this->client->getClientId(), - ]; - - // Always include PKCE code verifier (RFC 9207) - $postData['code_verifier'] = $codeVerifier; - - // Also include client secret if configured (defense in depth for confidential clients) - $clientSecret = $this->config->getSystemValue('astrolabe_client_secret', ''); - if (!empty($clientSecret)) { - $postData['client_secret'] = $clientSecret; - $this->logger->info('Using PKCE with client secret for token exchange'); - } else { - $this->logger->info('Using PKCE only for token exchange'); - } - - // Use Nextcloud's HTTP client for token request - try { - $response = $this->httpClient->post($tokenEndpoint, [ - 'body' => http_build_query($postData), - 'headers' => [ - 'Content-Type' => 'application/x-www-form-urlencoded', - 'Accept' => 'application/json', - ], - ]); - - $tokenData = json_decode($response->getBody(), true); - - if (json_last_error() !== JSON_ERROR_NONE || !isset($tokenData['access_token'])) { - throw new \RuntimeException('Invalid token response from server'); - } - - return $tokenData; - - } catch (\Exception $e) { - $this->logger->error('Token exchange failed', [ - 'error' => $e->getMessage(), - 'token_endpoint' => $tokenEndpoint, - ]); - throw new \Exception('Token exchange failed: ' . $e->getMessage()); - } - } - - /** - * Base64 URL-safe encoding (for PKCE). - * - * @param string $data Data to encode - * @return string Base64 URL-encoded string - */ - private function base64UrlEncode(string $data): string { - return rtrim(strtr(base64_encode($data), '+/', '-_'), '='); - } -} diff --git a/third_party/astrolabe/lib/Controller/PageController.php b/third_party/astrolabe/lib/Controller/PageController.php deleted file mode 100644 index 998fc1d..0000000 --- a/third_party/astrolabe/lib/Controller/PageController.php +++ /dev/null @@ -1,29 +0,0 @@ - - */ -class AstrolabeAdminSettingsListener implements IEventListener { - public function __construct( - private IConfig $config, - private LoggerInterface $logger, - ) { - } - - public function handle(Event $event): void { - if (!$event instanceof DeclarativeSettingsGetValueEvent && !$event instanceof DeclarativeSettingsSetValueEvent) { - return; - } - - if ($event->getApp() !== Application::APP_ID) { - return; - } - - if ($event->getFormId() !== 'astrolabe-admin-settings') { - return; - } - - if ($event instanceof DeclarativeSettingsGetValueEvent) { - $this->handleGetValue($event); - } elseif ($event instanceof DeclarativeSettingsSetValueEvent) { - $this->handleSetValue($event); - } - } - - private function handleGetValue(DeclarativeSettingsGetValueEvent $event): void { - $fieldId = $event->getFieldId(); - - // Map field IDs to system config keys - $value = match($fieldId) { - 'mcp_server_url' => $this->config->getSystemValue('mcp_server_url', ''), - 'mcp_server_api_key' => '****', // Never leak the API key on read - 'astrolabe_client_id' => $this->config->getSystemValue('astrolabe_client_id', ''), - 'astrolabe_client_secret' => '****', // Never leak the secret on read - default => null, - }; - - if ($value !== null) { - $event->setValue($value); - } - } - - private function handleSetValue(DeclarativeSettingsSetValueEvent $event): void { - $fieldId = $event->getFieldId(); - $value = $event->getValue(); - - // Only save if value is not empty (allow clearing by setting to empty string) - // For password fields, if the value is '****', don't update (user didn't change it) - if ($fieldId === 'mcp_server_api_key' && $value === '****') { - $event->stopPropagation(); - return; - } - if ($fieldId === 'astrolabe_client_secret' && $value === '****') { - $event->stopPropagation(); - return; - } - - try { - match($fieldId) { - 'mcp_server_url' => $this->config->setSystemValue('mcp_server_url', (string)$value), - 'mcp_server_api_key' => $this->config->setSystemValue('mcp_server_api_key', (string)$value), - 'astrolabe_client_id' => $this->config->setSystemValue('astrolabe_client_id', (string)$value), - 'astrolabe_client_secret' => $this->config->setSystemValue('astrolabe_client_secret', (string)$value), - default => null, - }; - - $this->logger->info('Astrolabe admin setting updated', [ - 'field' => $fieldId, - 'app' => Application::APP_ID, - ]); - } catch (\Exception $e) { - $this->logger->error('Failed to update Astrolabe admin setting', [ - 'field' => $fieldId, - 'error' => $e->getMessage(), - 'app' => Application::APP_ID, - ]); - throw $e; - } - - $event->stopPropagation(); - } -} diff --git a/third_party/astrolabe/lib/Search/SemanticSearchProvider.php b/third_party/astrolabe/lib/Search/SemanticSearchProvider.php deleted file mode 100644 index bdcb2f0..0000000 --- a/third_party/astrolabe/lib/Search/SemanticSearchProvider.php +++ /dev/null @@ -1,349 +0,0 @@ -l10n->t('Astrolabe'); - } - - /** - * Order in search results. Lower = higher priority. - * Use negative value when user is in our app's context. - */ - public function getOrder(string $route, array $routeParameters): int { - if (str_contains($route, Application::APP_ID)) { - return -1; // Prioritize when in Astrolabe app - } - return 40; // Above most apps, below files/mail - } - - /** - * Execute semantic search via MCP server. - * - * SECURITY: Results are filtered server-side to only include documents - * owned by the searching user. User identity comes from OAuth token. - */ - public function search(IUser $user, ISearchQuery $query): SearchResult { - $term = $query->getTerm(); - $limit = $query->getLimit(); - $cursor = $query->getCursor(); - - // Skip empty queries - if (empty(trim($term))) { - return SearchResult::complete($this->getName(), []); - } - - $userId = $user->getUID(); - - // Create refresh callback matching ApiController pattern - /** @return array{access_token: string, refresh_token: string, expires_in: int}|null */ - $refreshCallback = function (string $refreshToken): ?array { - $newTokenData = $this->tokenRefresher->refreshAccessToken($refreshToken); - - if ($newTokenData === null) { - return null; - } - - return [ - 'access_token' => $newTokenData['access_token'], - 'refresh_token' => $newTokenData['refresh_token'] ?? $refreshToken, - 'expires_in' => $newTokenData['expires_in'] ?? 3600, - ]; - }; - - // Get OAuth token for user with automatic refresh - $accessToken = $this->tokenStorage->getAccessToken($userId, $refreshCallback); - if ($accessToken === null) { - // User hasn't authorized the app yet - return empty results - $this->logger->debug('No OAuth token for user in semantic search', [ - 'user_id' => $userId, - ]); - return SearchResult::complete($this->getName(), []); - } - - // Check if MCP server is available and vector sync enabled - $status = $this->client->getStatus(); - if (!empty($status['error']) || !($status['vector_sync_enabled'] ?? false)) { - $this->logger->debug('MCP server not available or vector sync disabled', [ - 'status' => $status, - ]); - return SearchResult::complete($this->getName(), []); - } - - // Load admin search settings - $algorithm = $this->config->getAppValue( - Application::APP_ID, - AdminSettings::SETTING_SEARCH_ALGORITHM, - AdminSettings::DEFAULT_SEARCH_ALGORITHM - ); - $fusion = $this->config->getAppValue( - Application::APP_ID, - AdminSettings::SETTING_SEARCH_FUSION, - AdminSettings::DEFAULT_SEARCH_FUSION - ); - $scoreThreshold = (int)$this->config->getAppValue( - Application::APP_ID, - AdminSettings::SETTING_SEARCH_SCORE_THRESHOLD, - (string)AdminSettings::DEFAULT_SEARCH_SCORE_THRESHOLD - ); - $configuredLimit = (int)$this->config->getAppValue( - Application::APP_ID, - AdminSettings::SETTING_SEARCH_LIMIT, - (string)AdminSettings::DEFAULT_SEARCH_LIMIT - ); - - // Use configured limit if query limit is higher - $effectiveLimit = min($limit, $configuredLimit); - - // Calculate offset from cursor - $offset = $cursor ? (int)$cursor : 0; - - // Execute semantic search with OAuth token and admin settings - // Server extracts user_id from token - results filtered to that user's documents - $results = $this->client->searchForUnifiedSearch( - query: $term, - token: $accessToken, - limit: $effectiveLimit, - offset: $offset, - algorithm: $algorithm, - fusion: $fusion, - scoreThreshold: $scoreThreshold / 100.0, // Convert percentage to 0-1 range - ); - - if (!empty($results['error'])) { - $this->logger->warning('Semantic search failed', [ - 'error' => $results['error'], - 'query' => $term, - ]); - return SearchResult::complete($this->getName(), []); - } - - // Transform results to SearchResultEntry objects - $entries = []; - foreach ($results['results'] ?? [] as $result) { - $entries[] = $this->transformResult($result); - } - - // Return paginated if more results might exist - $totalFound = $results['total_found'] ?? count($entries); - if (count($entries) >= $effectiveLimit && $totalFound > $offset + $effectiveLimit) { - return SearchResult::paginated( - $this->getName(), - $entries, - (string)($offset + $effectiveLimit) - ); - } - - return SearchResult::complete($this->getName(), $entries); - } - - /** - * Transform MCP search result to Nextcloud SearchResultEntry. - */ - private function transformResult(array $result): SearchResultEntry { - $docType = $result['doc_type'] ?? 'unknown'; - $title = $result['title'] ?? $this->l10n->t('Untitled'); - $score = $result['score'] ?? 0; - $id = isset($result['id']) ? (string)$result['id'] : null; - $mimeType = $result['mime_type'] ?? null; - - // Build resource URL based on document type - $resourceUrl = $this->buildResourceUrl($result); - - // Get icon and thumbnail based on document type - [$thumbnailUrl, $iconClass] = $this->getIconAndThumbnail($docType, $id, $mimeType); - - // Build metadata string with chunk and page info - $metadataParts = []; - - // Chunk info (always available) - if (isset($result['chunk_index']) && isset($result['total_chunks'])) { - $chunkNum = $result['chunk_index'] + 1; // Convert 0-based to 1-based - $metadataParts[] = sprintf('Chunk %d/%d', $chunkNum, $result['total_chunks']); - } - - // Page info for PDFs - if (!empty($result['page_number']) && !empty($result['page_count'])) { - $metadataParts[] = sprintf('Page %d/%d', $result['page_number'], $result['page_count']); - } - - // Combine metadata parts - $metadata = !empty($metadataParts) ? implode(' · ', $metadataParts) : ''; - - // Subline shows only chunk/page metadata (no excerpt, consistent with chunk viz) - $subline = $metadata ?: sprintf( - '%s · %d%% %s', - $this->getDocTypeLabel($docType), - (int)($score * 100), - $this->l10n->t('relevant') - ); - - return new SearchResultEntry( - $thumbnailUrl, - $title, - $subline, - $resourceUrl, - $iconClass, - false // not rounded - ); - } - - /** - * Build URL to navigate to Astrolabe with chunk viewer. - * - * Links to Astrolabe app with query parameters that trigger the chunk modal, - * allowing users to preview the chunk before navigating to the full document. - */ - private function buildResourceUrl(array $result): string { - // Build base URL to Astrolabe app - $baseUrl = $this->urlGenerator->linkToRoute(Application::APP_ID . '.page.index'); - - // Extract chunk parameters - $docType = $result['doc_type'] ?? 'unknown'; - $id = $result['id'] ?? null; - $chunkStart = $result['chunk_start_offset'] ?? null; - $chunkEnd = $result['chunk_end_offset'] ?? null; - - // If we have chunk information, build URL with parameters - if ($id !== null && $chunkStart !== null && $chunkEnd !== null) { - $params = [ - 'doc_type' => $docType, - 'doc_id' => $id, - 'chunk_start' => $chunkStart, - 'chunk_end' => $chunkEnd, - ]; - - // Add optional metadata - if (isset($result['title'])) { - $params['title'] = $result['title']; - } - if (isset($result['path'])) { - $params['path'] = $result['path']; - } - if (isset($result['page_number'])) { - $params['page_number'] = $result['page_number']; - } - if (isset($result['board_id'])) { - $params['board_id'] = $result['board_id']; - } - - // Encode parameters for URL - $queryString = http_build_query($params); - return $baseUrl . '?' . $queryString; - } - - // Fallback to base URL if no chunk information - return $baseUrl; - } - - /** - * Get icon and thumbnail for document type. - * - * Returns [thumbnailUrl, iconClass] tuple. - * For files, uses mimetype-specific icons and preview thumbnails when available. - * For other document types, uses appropriate icon classes. - * - * @return array{string, string} [thumbnailUrl, iconClass] - */ - private function getIconAndThumbnail(string $docType, ?string $id, ?string $mimeType): array { - if ($docType === 'file' && $id !== null && $mimeType !== null) { - // For files, check if preview is supported - $thumbnailUrl = ''; - if ($this->previewManager->isMimeSupported($mimeType)) { - $thumbnailUrl = $this->urlGenerator->linkToRouteAbsolute( - 'core.Preview.getPreviewByFileId', - ['x' => 32, 'y' => 32, 'fileId' => $id] - ); - } - - // Get mimetype-specific icon class - $iconClass = $mimeType === FileInfo::MIMETYPE_FOLDER - ? 'icon-folder' - : $this->mimeTypeDetector->mimeTypeIcon($mimeType); - - return [$thumbnailUrl, $iconClass]; - } - - // For non-file document types, use icon classes - $iconClass = match ($docType) { - 'note' => 'icon-notes', - 'deck_card' => 'icon-deck', - 'calendar', 'calendar_event' => 'icon-calendar', - 'news_item' => 'icon-rss', - 'contact' => 'icon-contacts', - default => 'icon-file', - }; - - return ['', $iconClass]; - } - - /** - * Get human-readable label for document type. - */ - private function getDocTypeLabel(string $docType): string { - return match ($docType) { - 'note' => $this->l10n->t('Note'), - 'file' => $this->l10n->t('File'), - 'deck_card' => $this->l10n->t('Deck Card'), - 'calendar', 'calendar_event' => $this->l10n->t('Calendar'), - 'news_item' => $this->l10n->t('News'), - 'contact' => $this->l10n->t('Contact'), - default => $this->l10n->t('Document'), - }; - } - -} diff --git a/third_party/astrolabe/lib/Service/IdpTokenRefresher.php b/third_party/astrolabe/lib/Service/IdpTokenRefresher.php deleted file mode 100644 index 682e105..0000000 --- a/third_party/astrolabe/lib/Service/IdpTokenRefresher.php +++ /dev/null @@ -1,220 +0,0 @@ -config = $config; - $this->httpClient = $clientService->newClient(); - $this->logger = $logger; - $this->mcpServerClient = $mcpServerClient; - } - - /** - * Get Nextcloud base URL for constructing internal OIDC endpoint URLs. - * - * IMPORTANT: This is for INTERNAL server-to-server requests (PHP to local Apache), - * NOT for external client URLs. We must use the internal container URL, not the - * external URL that browsers see. - * - * Configuration priority: - * 1. astrolabe_internal_url - Explicit internal URL (for custom container setups) - * 2. http://localhost - Default for Docker containers (web server on port 80) - * - * NOTE: We intentionally DO NOT use overwrite.cli.url here because: - * - overwrite.cli.url is the EXTERNAL URL (e.g., http://localhost:8080) - * - External URLs are not accessible from inside the container - * - This method is for internal HTTP requests to the local web server - * - * @return string Base URL for internal requests (e.g., "http://localhost") - */ - private function getNextcloudBaseUrl(): string { - // Check for explicit internal URL config (for custom container setups) - $internalUrl = $this->config->getSystemValue('astrolabe_internal_url', ''); - if (!is_string($internalUrl)) { - $internalUrl = ''; - } - if (!empty($internalUrl)) { - // Validate URL format - if (!filter_var($internalUrl, FILTER_VALIDATE_URL)) { - $this->logger->warning('Invalid astrolabe_internal_url format, using default', [ - 'configured_url' => $internalUrl, - ]); - return 'http://localhost'; - } - // Warn if it looks like an external URL (common misconfiguration) - if (preg_match('/:\d{4,5}$/', $internalUrl)) { - $this->logger->warning('astrolabe_internal_url appears to use external port mapping', [ - 'configured_url' => $internalUrl, - 'hint' => 'Internal URLs should use port 80, not mapped ports like :8080', - ]); - } - return rtrim($internalUrl, '/'); - } - - // Default: container environment with web server on localhost:80 - // This works because PHP runs inside the same container as Apache - return 'http://localhost'; - } - - /** - * Refresh access token using refresh token. - * - * Calls IdP's token endpoint directly (NOT MCP server). - * - * @param string $refreshToken The refresh token - * @return array|null New token data or null on failure - */ - public function refreshAccessToken(string $refreshToken): ?array { - // Check if confidential client secret is configured - $clientSecret = $this->config->getSystemValue('astrolabe_client_secret', ''); - - if (empty($clientSecret)) { - $this->logger->warning('Cannot refresh: no client secret configured. Confidential client required for token refresh.'); - return null; - } - - try { - // Get MCP server URL - $mcpServerUrl = $this->config->getSystemValue('mcp_server_url', ''); - if (empty($mcpServerUrl)) { - throw new \Exception('MCP server URL not configured'); - } - - // Query MCP server to discover which IdP it's configured to use - $statusResponse = $this->httpClient->get($mcpServerUrl . '/api/v1/status'); - $statusData = json_decode($statusResponse->getBody(), true); - - if (json_last_error() !== JSON_ERROR_NONE) { - throw new \RuntimeException('Invalid status response from MCP server'); - } - - // Determine OIDC discovery URL and token endpoint - $useInternalNextcloud = !isset($statusData['oidc']['discovery_url']); - - if (!$useInternalNextcloud) { - // External IdP configured - use OIDC discovery - $discoveryUrl = $statusData['oidc']['discovery_url']; - - $this->logger->debug('IdpTokenRefresher: Using external IdP', [ - 'discovery_url' => $discoveryUrl, - ]); - - $discoveryResponse = $this->httpClient->get($discoveryUrl); - $discovery = json_decode($discoveryResponse->getBody(), true); - - if (json_last_error() !== JSON_ERROR_NONE || !isset($discovery['token_endpoint'])) { - throw new \RuntimeException('Invalid OIDC discovery response'); - } - - $tokenEndpoint = $discovery['token_endpoint']; - } else { - // Nextcloud's OIDC app - use internal URL - $tokenEndpoint = $this->getNextcloudBaseUrl() . '/apps/oidc/token'; - - $this->logger->debug('IdpTokenRefresher: Using Nextcloud OIDC app', [ - 'token_endpoint' => $tokenEndpoint, - ]); - } - - // Call IdP's token endpoint with refresh_token grant - $postData = [ - 'grant_type' => 'refresh_token', - 'refresh_token' => $refreshToken, - 'client_id' => $this->mcpServerClient->getClientId(), - 'client_secret' => $clientSecret, - ]; - - $this->logger->info('IdpTokenRefresher: Requesting token refresh'); - - $response = $this->httpClient->post($tokenEndpoint, [ - 'body' => http_build_query($postData), - 'headers' => [ - 'Content-Type' => 'application/x-www-form-urlencoded', - 'Accept' => 'application/json', - ], - ]); - - $tokenData = json_decode($response->getBody(), true); - - if (json_last_error() !== JSON_ERROR_NONE || !isset($tokenData['access_token'])) { - throw new \RuntimeException('Invalid token response from IdP'); - } - - // Validate refresh_token is present (required for token rotation) - if (!isset($tokenData['refresh_token'])) { - $this->logger->error( - 'IdpTokenRefresher: No refresh token in response - token rotation will fail', - [ - 'has_access_token' => isset($tokenData['access_token']), - 'response_keys' => array_keys($tokenData), - ] - ); - return null; - } - - $this->logger->info('IdpTokenRefresher: Token refresh successful'); - - return $tokenData; - - } catch (\OCP\Http\Client\LocalServerException $e) { - // Network/connection error - may be transient - $this->logger->warning('IdpTokenRefresher: Network error during refresh', [ - 'error' => $e->getMessage(), - ]); - return null; - } catch (\Exception $e) { - $statusCode = null; - if (method_exists($e, 'getCode')) { - $statusCode = $e->getCode(); - } - - // Log with appropriate level based on error type - if ($statusCode === 401 || $statusCode === 403) { - // Auth error - token is invalid, should be deleted - $this->logger->error('IdpTokenRefresher: Auth error - token invalid', [ - 'status_code' => $statusCode, - 'error' => $e->getMessage(), - ]); - } elseif ($statusCode >= 500) { - // Server error - may be transient - $this->logger->warning('IdpTokenRefresher: Server error during refresh', [ - 'status_code' => $statusCode, - 'error' => $e->getMessage(), - ]); - } else { - $this->logger->error('IdpTokenRefresher: Token refresh failed', [ - 'status_code' => $statusCode, - 'error' => $e->getMessage(), - ]); - } - return null; - } - } -} diff --git a/third_party/astrolabe/lib/Service/McpServerClient.php b/third_party/astrolabe/lib/Service/McpServerClient.php deleted file mode 100644 index 73225b8..0000000 --- a/third_party/astrolabe/lib/Service/McpServerClient.php +++ /dev/null @@ -1,666 +0,0 @@ -httpClient = $clientService->newClient(); - $this->config = $config; - $this->logger = $logger; - - // Get MCP server configuration from Nextcloud config - $baseUrl = $this->config->getSystemValue('mcp_server_url', 'http://localhost:8000'); - $this->baseUrl = is_string($baseUrl) ? $baseUrl : 'http://localhost:8000'; - } - - /** - * Get server status (version, auth mode, features). - * - * Public endpoint - no authentication required. - * - * @return array{ - * version?: string, - * auth_mode?: string, - * vector_sync_enabled?: bool, - * uptime_seconds?: int, - * management_api_version?: string, - * error?: string - * } - */ - public function getStatus(): array { - try { - $response = $this->httpClient->get($this->baseUrl . '/api/v1/status'); - $data = json_decode($response->getBody(), true); - - if (json_last_error() !== JSON_ERROR_NONE) { - throw new \RuntimeException('Invalid JSON response from server'); - } - - return $data; - } catch (\Exception $e) { - $this->logger->error('Failed to get MCP server status', [ - 'error' => $e->getMessage(), - 'server_url' => $this->baseUrl, - ]); - return ['error' => $e->getMessage()]; - } - } - - /** - * Get user session details. - * - * Requires authentication via OAuth bearer token. - * - * @param string $userId The user ID to query - * @param string $token OAuth bearer token - * @return array{ - * session_id?: string, - * background_access_granted?: bool, - * background_access_details?: array, - * idp_profile?: array, - * error?: string - * } - */ - public function getUserSession(string $userId, string $token): array { - try { - $response = $this->httpClient->get( - $this->baseUrl . '/api/v1/users/' . urlencode($userId) . '/session', - [ - 'headers' => [ - 'Authorization' => 'Bearer ' . $token - ] - ] - ); - $data = json_decode($response->getBody(), true); - - if (json_last_error() !== JSON_ERROR_NONE) { - throw new \RuntimeException('Invalid JSON response from server'); - } - - return $data; - } catch (\Exception $e) { - $this->logger->error("Failed to get session for user $userId", [ - 'error' => $e->getMessage(), - 'user_id' => $userId, - ]); - return ['error' => $e->getMessage()]; - } - } - - /** - * Revoke user's background access (delete refresh token). - * - * Requires authentication via OAuth bearer token. - * - * @param string $userId The user ID whose access to revoke - * @param string $token OAuth bearer token - * @return array{success?: bool, message?: string, error?: string} - */ - public function revokeUserAccess(string $userId, string $token): array { - try { - $response = $this->httpClient->post( - $this->baseUrl . '/api/v1/users/' . urlencode($userId) . '/revoke', - [ - 'headers' => [ - 'Authorization' => 'Bearer ' . $token - ] - ] - ); - $data = json_decode($response->getBody(), true); - - if (json_last_error() !== JSON_ERROR_NONE) { - throw new \RuntimeException('Invalid JSON response from server'); - } - - return $data; - } catch (\Exception $e) { - $this->logger->error("Failed to revoke access for user $userId", [ - 'error' => $e->getMessage(), - 'user_id' => $userId, - ]); - return ['error' => $e->getMessage()]; - } - } - - /** - * Get vector sync status (indexing metrics). - * - * Public endpoint - no authentication required. - * Only available if VECTOR_SYNC_ENABLED=true on server. - * - * @return array{ - * status?: string, - * indexed_documents?: int, - * pending_documents?: int, - * last_sync_time?: string, - * documents_per_second?: float, - * errors_24h?: int, - * error?: string - * } - */ - public function getVectorSyncStatus(): array { - try { - $response = $this->httpClient->get($this->baseUrl . '/api/v1/vector-sync/status'); - $data = json_decode($response->getBody(), true); - - if (json_last_error() !== JSON_ERROR_NONE) { - throw new \RuntimeException('Invalid JSON response from server'); - } - - return $data; - } catch (\Exception $e) { - $this->logger->error('Failed to get vector sync status', [ - 'error' => $e->getMessage(), - ]); - return ['error' => $e->getMessage()]; - } - } - - /** - * Execute semantic search for vector visualization. - * - * Requires OAuth bearer token for user-filtered search. - * Only available if VECTOR_SYNC_ENABLED=true on server. - * - * @param string $query Search query string - * @param string $algorithm Search algorithm: "semantic", "bm25", or "hybrid" - * @param int $limit Number of results (max 50) - * @param bool $includePca Whether to include PCA coordinates for 2D plot - * @param array|null $docTypes Document types to filter (e.g., ['note', 'file']) - * @param string|null $token OAuth bearer token for authentication - * @return array{ - * results?: array, - * pca_coordinates?: array, - * algorithm_used?: string, - * total_documents?: int, - * error?: string - * } - */ - public function search( - string $query, - string $algorithm = 'hybrid', - int $limit = 10, - bool $includePca = true, - ?array $docTypes = null, - ?string $token = null, - ): array { - try { - $requestBody = [ - 'query' => $query, - 'algorithm' => $algorithm, - 'limit' => min($limit, 50), // Enforce max limit - 'include_pca' => $includePca, - ]; - - // Add doc_types filter if specified - if ($docTypes !== null && count($docTypes) > 0) { - $requestBody['doc_types'] = $docTypes; - } - - $options = ['json' => $requestBody]; - - // Add authorization header if token provided - if ($token !== null) { - $options['headers'] = [ - 'Authorization' => 'Bearer ' . $token - ]; - } - - $response = $this->httpClient->post( - $this->baseUrl . '/api/v1/vector-viz/search', - $options - ); - $data = json_decode($response->getBody(), true); - - if (json_last_error() !== JSON_ERROR_NONE) { - throw new \RuntimeException('Invalid JSON response from server'); - } - - return $data; - } catch (\Exception $e) { - $this->logger->error('Failed to execute search', [ - 'error' => $e->getMessage(), - 'query' => $query, - 'algorithm' => $algorithm, - ]); - return ['error' => $e->getMessage()]; - } - } - - /** - * Execute semantic search for Nextcloud Unified Search. - * - * Simplified search method specifically for the unified search provider. - * Uses OAuth bearer token for authentication and user-scoped filtering. - * - * @param string $query Search query string - * @param string $token OAuth bearer token for authentication - * @param int $limit Maximum number of results (default: 20) - * @param int $offset Pagination offset (default: 0) - * @param string $algorithm Search algorithm: hybrid, semantic, or bm25 (default: hybrid) - * @param string $fusion Fusion method for hybrid: rrf or dbsf (default: rrf) - * @param float $scoreThreshold Minimum score threshold 0-1 (default: 0) - * @return array{ - * results?: array, - * total_found?: int, - * algorithm_used?: string, - * error?: string - * } - */ - public function searchForUnifiedSearch( - string $query, - string $token, - int $limit = 20, - int $offset = 0, - string $algorithm = 'hybrid', - string $fusion = 'rrf', - float $scoreThreshold = 0.0, - ): array { - try { - $response = $this->httpClient->post( - $this->baseUrl . '/api/v1/search', - [ - 'headers' => [ - 'Authorization' => 'Bearer ' . $token, - 'Content-Type' => 'application/json', - ], - 'json' => [ - 'query' => $query, - 'algorithm' => $algorithm, - 'fusion' => $fusion, - 'score_threshold' => $scoreThreshold, - 'limit' => min($limit, 100), - 'offset' => $offset, - 'include_pca' => false, - 'include_chunks' => true, - ] - ] - ); - $data = json_decode($response->getBody(), true); - - if (json_last_error() !== JSON_ERROR_NONE) { - throw new \RuntimeException('Invalid JSON response from server'); - } - - return $data; - } catch (\Exception $e) { - $this->logger->error('Unified search failed', [ - 'error' => $e->getMessage(), - 'query' => $query, - ]); - return ['error' => $e->getMessage()]; - } - } - - /** - * Check if the MCP server is reachable and API key is valid. - * - * @return bool True if server is reachable and healthy - */ - public function isServerReachable(): bool { - $status = $this->getStatus(); - return !isset($status['error']); - } - - /** - * Get the configured MCP server internal URL (for API calls). - * - * @return string The internal base URL - */ - public function getServerUrl(): string { - return $this->baseUrl; - } - - /** - * Get the public MCP server URL (for display, OAuth audience). - * - * Falls back to internal URL if public URL not configured. - * - * @return string The public URL users/browsers see - */ - public function getPublicServerUrl(): string { - return $this->config->getSystemValue('mcp_server_public_url', $this->baseUrl); - } - - /** - * Get the OAuth client ID from system config. - * - * The Astrolabe app has its own OAuth client (separate from MCP server's client). - * Client ID must be configured in config.php for OAuth functionality to work. - * - * @return string OAuth client ID or empty string if not configured - */ - public function getClientId(): string { - $clientId = $this->config->getSystemValue('astrolabe_client_id', ''); - - if (empty($clientId)) { - $this->logger->warning('astrolabe_client_id is not configured in config.php - OAuth functionality will not work'); - return ''; - } - - $this->logger->debug('Using client ID from system config: ' . substr($clientId, 0, 8) . '...'); - return $clientId; - } - - /** - * List all registered webhooks for a user. - * - * Requires OAuth bearer token for authentication. - * - * @param string $token OAuth bearer token - * @return array{ - * webhooks?: array, - * error?: string - * } - */ - public function listWebhooks(string $token): array { - try { - $response = $this->httpClient->get( - $this->baseUrl . '/api/v1/webhooks', - [ - 'headers' => [ - 'Authorization' => 'Bearer ' . $token - ] - ] - ); - $data = json_decode($response->getBody(), true); - - if (json_last_error() !== JSON_ERROR_NONE) { - throw new \RuntimeException('Invalid JSON response from server'); - } - - return $data; - } catch (\Exception $e) { - $this->logger->error('Failed to list webhooks', [ - 'error' => $e->getMessage(), - ]); - return ['error' => $e->getMessage()]; - } - } - - /** - * Create a new webhook registration. - * - * Requires OAuth bearer token for authentication. - * - * @param string $event Event type (e.g., "\\OCA\\Files::postCreate") - * @param string $uri Callback URI for webhook notifications - * @param array|null $eventFilter Optional event filter parameters - * @param string $token OAuth bearer token - * @return array{ - * id?: int, - * event?: string, - * uri?: string, - * event_filter?: array, - * enabled?: bool, - * error?: string - * } - */ - public function createWebhook( - string $event, - string $uri, - ?array $eventFilter, - string $token, - ): array { - try { - $requestBody = [ - 'event' => $event, - 'uri' => $uri, - ]; - - if ($eventFilter !== null) { - $requestBody['event_filter'] = $eventFilter; - } - - $response = $this->httpClient->post( - $this->baseUrl . '/api/v1/webhooks', - [ - 'headers' => [ - 'Authorization' => 'Bearer ' . $token, - 'Content-Type' => 'application/json', - ], - 'json' => $requestBody - ] - ); - $data = json_decode($response->getBody(), true); - - if (json_last_error() !== JSON_ERROR_NONE) { - throw new \RuntimeException('Invalid JSON response from server'); - } - - return $data; - } catch (\Exception $e) { - $this->logger->error('Failed to create webhook', [ - 'error' => $e->getMessage(), - 'event' => $event, - ]); - return ['error' => $e->getMessage()]; - } - } - - /** - * Delete a webhook registration. - * - * Requires OAuth bearer token for authentication. - * - * @param int $webhookId Webhook ID to delete - * @param string $token OAuth bearer token - * @return array{success?: bool, error?: string} - */ - public function deleteWebhook(int $webhookId, string $token): array { - try { - $response = $this->httpClient->delete( - $this->baseUrl . '/api/v1/webhooks/' . $webhookId, - [ - 'headers' => [ - 'Authorization' => 'Bearer ' . $token - ] - ] - ); - - // Successful DELETE may return 204 No Content - if ($response->getStatusCode() === 204) { - return ['success' => true]; - } - - $data = json_decode($response->getBody(), true); - - if (json_last_error() !== JSON_ERROR_NONE) { - throw new \RuntimeException('Invalid JSON response from server'); - } - - return $data; - } catch (\Exception $e) { - $this->logger->error('Failed to delete webhook', [ - 'error' => $e->getMessage(), - 'webhook_id' => $webhookId, - ]); - return ['error' => $e->getMessage()]; - } - } - - /** - * Get list of installed Nextcloud apps. - * - * Used to filter webhook presets based on available apps. - * Requires OAuth bearer token for authentication. - * - * @param string $token OAuth bearer token - * @return array{ - * apps?: array, - * error?: string - * } - */ - public function getInstalledApps(string $token): array { - try { - $response = $this->httpClient->get( - $this->baseUrl . '/api/v1/apps', - [ - 'headers' => [ - 'Authorization' => 'Bearer ' . $token - ] - ] - ); - $data = json_decode($response->getBody(), true); - - if (json_last_error() !== JSON_ERROR_NONE) { - throw new \RuntimeException('Invalid JSON response from server'); - } - - return $data; - } catch (\Exception $e) { - $this->logger->error('Failed to get installed apps', [ - 'error' => $e->getMessage(), - ]); - return ['error' => $e->getMessage()]; - } - } - - /** - * Get chunk context (text, surrounding context, page image). - * - * Requires OAuth bearer token for authentication. - * - * @param string $docType Document type - * @param string $docId Document ID - * @param int $start Start offset - * @param int $end End offset - * @param string $token OAuth bearer token - * @return array - */ - public function getChunkContext( - string $docType, - string $docId, - int $start, - int $end, - string $token, - ): array { - try { - $response = $this->httpClient->get( - $this->baseUrl . '/api/v1/chunk-context', - [ - 'headers' => [ - 'Authorization' => 'Bearer ' . $token - ], - 'query' => [ - 'doc_type' => $docType, - 'doc_id' => $docId, - 'start' => $start, - 'end' => $end, - 'context' => 500 - ] - ] - ); - $data = json_decode($response->getBody(), true); - - if (json_last_error() !== JSON_ERROR_NONE) { - throw new \RuntimeException('Invalid JSON response from server'); - } - - return $data; - } catch (\Exception $e) { - $this->logger->error('Failed to get chunk context', [ - 'error' => $e->getMessage(), - 'doc_type' => $docType, - 'doc_id' => $docId, - ]); - return ['error' => $e->getMessage()]; - } - } - - /** - * Get PDF page preview (server-side rendered). - * - * Renders a PDF page to PNG using PyMuPDF on the server. - * This avoids client-side PDF.js issues with CSP and ES private fields. - * - * Requires OAuth bearer token for authentication. - * - * @param string $filePath WebDAV path to PDF file - * @param int $page Page number (1-indexed) - * @param float $scale Zoom factor (default: 2.0) - * @param string $token OAuth bearer token - * @return array{ - * success?: bool, - * image?: string, - * page_number?: int, - * total_pages?: int, - * error?: string - * } - */ - public function getPdfPreview( - string $filePath, - int $page, - float $scale, - string $token, - ): array { - try { - $response = $this->httpClient->get( - $this->baseUrl . '/api/v1/pdf-preview', - [ - 'headers' => [ - 'Authorization' => 'Bearer ' . $token - ], - 'query' => [ - 'file_path' => $filePath, - 'page' => $page, - 'scale' => $scale, - ] - ] - ); - /** @var array{success?: bool, image?: string, page_number?: int, total_pages?: int, error?: string} $data */ - $data = json_decode((string)$response->getBody(), true); - - if (json_last_error() !== JSON_ERROR_NONE) { - throw new \RuntimeException('Invalid JSON response from server'); - } - - return $data; - } catch (\Exception $e) { - $this->logger->error('Failed to get PDF preview', [ - 'error' => $e->getMessage(), - 'file_path' => $filePath, - 'page' => $page, - ]); - return ['error' => $e->getMessage()]; - } - } -} diff --git a/third_party/astrolabe/lib/Service/McpTokenStorage.php b/third_party/astrolabe/lib/Service/McpTokenStorage.php deleted file mode 100644 index 15d0973..0000000 --- a/third_party/astrolabe/lib/Service/McpTokenStorage.php +++ /dev/null @@ -1,519 +0,0 @@ -config = $config; - $this->crypto = $crypto; - $this->db = $db; - $this->logger = $logger; - $this->lockingProvider = $lockingProvider; - } - - /** - * Store MCP OAuth tokens for a user. - * - * Tokens are encrypted before storage to protect user credentials. - * - * @param string $userId User ID - * @param string $accessToken OAuth access token - * @param string $refreshToken OAuth refresh token - * @param int $expiresAt Unix timestamp when token expires - * @param int|null $issuedAt Unix timestamp when token was issued (for lifetime calculation) - */ - public function storeUserToken( - string $userId, - string $accessToken, - string $refreshToken, - int $expiresAt, - ?int $issuedAt = null, - ): void { - try { - $tokenData = [ - 'access_token' => $accessToken, - 'refresh_token' => $refreshToken, - 'expires_at' => $expiresAt, - 'issued_at' => $issuedAt ?? time(), - ]; - - // Encrypt token data before storage - $encrypted = $this->crypto->encrypt(json_encode($tokenData)); - - // Store in user preferences - $this->config->setUserValue( - $userId, - 'astrolabe', - 'oauth_tokens', - $encrypted - ); - - $this->logger->info("Stored MCP OAuth tokens for user: $userId"); - } catch (\Exception $e) { - $this->logger->error("Failed to store MCP tokens for user $userId", [ - 'error' => $e->getMessage() - ]); - throw $e; - } - } - - /** - * Get MCP OAuth tokens for a user. - * - * @param string $userId User ID - * @return array|null Token data array with keys: access_token, refresh_token, expires_at - */ - public function getUserToken(string $userId): ?array { - try { - $encrypted = $this->config->getUserValue( - $userId, - 'astrolabe', - 'oauth_tokens', - '' - ); - - if (empty($encrypted)) { - return null; - } - - // Decrypt and parse token data - $decrypted = $this->crypto->decrypt($encrypted); - $tokenData = json_decode($decrypted, true); - - if (!$tokenData || !isset($tokenData['access_token'])) { - $this->logger->warning("Invalid token data for user: $userId"); - return null; - } - - return $tokenData; - } catch (\Exception $e) { - $this->logger->error("Failed to retrieve MCP tokens for user $userId", [ - 'error' => $e->getMessage() - ]); - return null; - } - } - - /** - * Check if a token is expired or about to expire. - * - * Uses TOKEN_EXPIRY_BUFFER_SECONDS buffer to refresh tokens before they actually expire. - * - * @param array $token Token data array - * @return bool True if expired or about to expire - */ - public function isExpired(array $token): bool { - if (!isset($token['expires_at'])) { - return true; - } - - // Expire early to avoid race conditions - return time() >= ($token['expires_at'] - self::TOKEN_EXPIRY_BUFFER_SECONDS); - } - - /** - * Get the lock path for a user's token refresh operation. - * - * @param string $userId User ID - * @return string Lock path - */ - private function getTokenRefreshLockPath(string $userId): string { - return 'astrolabe/oauth/tokens/' . $userId; - } - - /** - * Execute callback while holding exclusive lock on user's token. - * - * Prevents race conditions between background job and on-demand token refresh. - * - * Note: Lock TTL is configured at the Nextcloud server level (default: 3600s). - * If a process crashes while holding the lock, it will auto-expire after the TTL. - * The ILockingProvider interface does not support per-call timeouts. - * - * @template T - * @param string $userId User ID - * @param callable(): T $callback - * @return T - * @throws LockedException If lock cannot be acquired - */ - public function withTokenLock(string $userId, callable $callback): mixed { - $lockPath = $this->getTokenRefreshLockPath($userId); - - $this->lockingProvider->acquireLock($lockPath, ILockingProvider::LOCK_EXCLUSIVE); - try { - return $callback(); - } finally { - $this->lockingProvider->releaseLock($lockPath, ILockingProvider::LOCK_EXCLUSIVE); - } - } - - /** - * Delete stored tokens for a user. - * - * Used when user disconnects or revokes access. - * - * @param string $userId User ID - */ - public function deleteUserToken(string $userId): void { - try { - $this->config->deleteUserValue( - $userId, - 'astrolabe', - 'oauth_tokens' - ); - - $this->logger->info("Deleted MCP OAuth tokens for user: $userId"); - } catch (\Exception $e) { - $this->logger->error("Failed to delete MCP tokens for user $userId", [ - 'error' => $e->getMessage() - ]); - throw $e; - } - } - - /** - * Get user IDs that have OAuth tokens stored. - * - * Queries oc_preferences directly since IConfig doesn't support - * listing all users with a specific key set. - * - * @param int $limit Maximum users to return (0 = no limit, for backward compatibility) - * @param int $offset Starting offset for pagination - * @return list Array of user IDs - */ - public function getAllUsersWithTokens(int $limit = 0, int $offset = 0): array { - $qb = $this->db->getQueryBuilder(); - $qb->select('userid') - ->from('preferences') - ->where($qb->expr()->eq('appid', $qb->createNamedParameter('astrolabe'))) - ->andWhere($qb->expr()->eq('configkey', $qb->createNamedParameter('oauth_tokens'))); - - if ($limit > 0) { - $qb->setMaxResults($limit); - } - if ($offset > 0) { - $qb->setFirstResult($offset); - } - - $result = $qb->executeQuery(); - /** @var list $userIds */ - $userIds = []; - /** @psalm-suppress MixedAssignment - IResult::fetch() returns mixed */ - while (($row = $result->fetch()) !== false) { - if (is_array($row) && isset($row['userid']) && is_string($row['userid'])) { - $userIds[] = $row['userid']; - } - } - $result->closeCursor(); - - return $userIds; - } - - /** - * Get the access token for a user, handling expiration and refresh. - * - * This is a convenience method that combines token retrieval, - * expiration checking, and automatic refresh if needed. - * - * Uses double-check locking pattern to prevent race conditions between - * background job and on-demand refresh while minimizing lock contention. - * - * @param string $userId User ID - * @param callable|null $refreshCallback Callback to refresh token if expired - * Should accept (refreshToken) and return new token data - * @return string|null Access token, or null if not available - */ - public function getAccessToken(string $userId, ?callable $refreshCallback = null): ?string { - // Quick check without lock (optimization) - $token = $this->getUserToken($userId); - - if (!$token) { - return null; - } - - // If not expired, return immediately without lock - if (!$this->isExpired($token)) { - return $token['access_token']; - } - - // Token expired - acquire lock for refresh - try { - /** - * @return string|null - * @psalm-suppress MixedInferredReturnType - */ - return $this->withTokenLock($userId, function () use ($userId, $refreshCallback): ?string { - // Re-check after acquiring lock (double-check pattern) - // Another process may have refreshed while we waited for the lock - $currentToken = $this->getUserToken($userId); - - if ($currentToken === null) { - return null; - } - - // Check if another process already refreshed the token - if (!$this->isExpired($currentToken)) { - $this->logger->debug("Token already refreshed for user $userId while waiting for lock"); - /** @var string */ - return $currentToken['access_token']; - } - - // Still expired, perform refresh - if ($refreshCallback && isset($currentToken['refresh_token'])) { - try { - /** @var string $refreshToken */ - $refreshToken = $currentToken['refresh_token']; - $newTokenData = $refreshCallback($refreshToken); - - if ($newTokenData && isset($newTokenData['access_token'])) { - // Store refreshed token - // Use new refresh token if provided (rotation), otherwise keep old one - $now = time(); - /** @var string $accessToken */ - $accessToken = $newTokenData['access_token']; - /** @var string $newRefreshToken */ - $newRefreshToken = $newTokenData['refresh_token'] ?? $refreshToken; - $expiresIn = (int)($newTokenData['expires_in'] ?? 3600); - - $this->storeUserToken( - $userId, - $accessToken, - $newRefreshToken, - $now + $expiresIn, - $now // issued_at for accurate lifetime calculation - ); - - return $accessToken; - } - } catch (\Exception $e) { - $this->logger->error("Failed to refresh token for user $userId", [ - 'error' => $e->getMessage() - ]); - // Delete stale token to prevent repeated refresh attempts - $this->deleteUserToken($userId); - return null; - } - - // Refresh callback returned null or invalid data - delete stale token - $this->deleteUserToken($userId); - $this->logger->info("Deleted stale token for user $userId after refresh failure"); - return null; - } - - // Token expired and no refresh callback available - delete stale token - $this->deleteUserToken($userId); - $this->logger->info("Token expired for user $userId, no refresh available"); - return null; - }); - } catch (LockedException $e) { - // Could not acquire lock - another process is refreshing - // Return stale token rather than failing - caller can retry if needed - $this->logger->warning("Could not acquire token lock for user $userId, returning stale token"); - /** @var string|null $staleToken */ - $staleToken = $token['access_token'] ?? null; - return $staleToken; - } - } - - /** - * Store app password for background sync. - * - * App passwords are encrypted before storage and used as an alternative - * to OAuth refresh tokens for background sync operations. - * - * @param string $userId User ID - * @param string $appPassword Nextcloud app password - */ - public function storeBackgroundSyncPassword( - string $userId, - string $appPassword, - ): void { - try { - // Encrypt app password before storage - $encrypted = $this->crypto->encrypt($appPassword); - - // Store in user preferences - $this->config->setUserValue( - $userId, - 'astrolabe', - 'background_sync_password', - $encrypted - ); - - // Mark credential type - $this->config->setUserValue( - $userId, - 'astrolabe', - 'background_sync_type', - 'app_password' - ); - - // Store provisioned timestamp - $this->config->setUserValue( - $userId, - 'astrolabe', - 'background_sync_provisioned_at', - (string)time() - ); - - $this->logger->info("Stored background sync app password for user: $userId"); - } catch (\Exception $e) { - $this->logger->error("Failed to store app password for user $userId", [ - 'error' => $e->getMessage() - ]); - throw $e; - } - } - - /** - * Get app password for background sync. - * - * @param string $userId User ID - * @return string|null Decrypted app password, or null if not set - */ - public function getBackgroundSyncPassword(string $userId): ?string { - try { - $encrypted = $this->config->getUserValue( - $userId, - 'astrolabe', - 'background_sync_password', - '' - ); - - if (empty($encrypted)) { - return null; - } - - // Decrypt app password - return $this->crypto->decrypt($encrypted); - } catch (\Exception $e) { - $this->logger->error("Failed to retrieve app password for user $userId", [ - 'error' => $e->getMessage() - ]); - return null; - } - } - - /** - * Delete background sync app password for a user. - * - * @param string $userId User ID - */ - public function deleteBackgroundSyncPassword(string $userId): void { - try { - $this->config->deleteUserValue( - $userId, - 'astrolabe', - 'background_sync_password' - ); - - $this->config->deleteUserValue( - $userId, - 'astrolabe', - 'background_sync_type' - ); - - $this->config->deleteUserValue( - $userId, - 'astrolabe', - 'background_sync_provisioned_at' - ); - - $this->logger->info("Deleted background sync app password for user: $userId"); - } catch (\Exception $e) { - $this->logger->error("Failed to delete app password for user $userId", [ - 'error' => $e->getMessage() - ]); - throw $e; - } - } - - /** - * Check if user has provisioned background sync access. - * - * Returns true if either OAuth tokens or app password is configured. - * - * @param string $userId User ID - * @return bool True if background sync is provisioned - */ - public function hasBackgroundSyncAccess(string $userId): bool { - // Check for OAuth tokens - $oauthToken = $this->getUserToken($userId); - if ($oauthToken !== null) { - return true; - } - - // Check for app password - $appPassword = $this->getBackgroundSyncPassword($userId); - return $appPassword !== null; - } - - /** - * Get background sync credential type for a user. - * - * @param string $userId User ID - * @return string|null 'oauth' or 'app_password', or null if not provisioned - */ - public function getBackgroundSyncType(string $userId): ?string { - $type = $this->config->getUserValue( - $userId, - 'astrolabe', - 'background_sync_type', - '' - ); - - // Fallback to OAuth if tokens exist but type not set - if (empty($type) && $this->getUserToken($userId) !== null) { - return 'oauth'; - } - - return empty($type) ? null : $type; - } - - /** - * Get background sync provisioned timestamp for a user. - * - * @param string $userId User ID - * @return int|null Unix timestamp, or null if not provisioned - */ - public function getBackgroundSyncProvisionedAt(string $userId): ?int { - $timestamp = $this->config->getUserValue( - $userId, - 'astrolabe', - 'background_sync_provisioned_at', - '' - ); - - return empty($timestamp) ? null : (int)$timestamp; - } -} diff --git a/third_party/astrolabe/lib/Service/WebhookPresets.php b/third_party/astrolabe/lib/Service/WebhookPresets.php deleted file mode 100644 index f24d089..0000000 --- a/third_party/astrolabe/lib/Service/WebhookPresets.php +++ /dev/null @@ -1,188 +0,0 @@ - - * }> - */ - public static function getPresets(): array { - return [ - 'notes_sync' => [ - 'name' => 'Notes Sync', - 'description' => 'Real-time synchronization for Notes app (create, update, delete)', - 'app' => 'notes', - 'events' => [ - [ - 'event' => self::FILE_EVENT_CREATED, - 'filter' => ['event.node.path' => '/^\\/.*\\/files\\/Notes\\//'], - ], - [ - 'event' => self::FILE_EVENT_WRITTEN, - 'filter' => ['event.node.path' => '/^\\/.*\\/files\\/Notes\\//'], - ], - [ - 'event' => self::FILE_EVENT_DELETED, - 'filter' => ['event.node.path' => '/^\\/.*\\/files\\/Notes\\//'], - ], - ], - ], - 'calendar_sync' => [ - 'name' => 'Calendar Sync', - 'description' => 'Real-time synchronization for Calendar events (create, update, delete)', - 'app' => 'calendar', - 'events' => [ - [ - 'event' => self::CALENDAR_EVENT_CREATED, - 'filter' => [], - ], - [ - 'event' => self::CALENDAR_EVENT_UPDATED, - 'filter' => [], - ], - [ - 'event' => self::CALENDAR_EVENT_DELETED, - 'filter' => [], - ], - ], - ], - 'tables_sync' => [ - 'name' => 'Tables Sync', - 'description' => 'Real-time synchronization for Tables rows (add, update, delete)', - 'app' => 'tables', - 'events' => [ - [ - 'event' => self::TABLES_EVENT_ROW_ADDED, - 'filter' => [], - ], - [ - 'event' => self::TABLES_EVENT_ROW_UPDATED, - 'filter' => [], - ], - [ - 'event' => self::TABLES_EVENT_ROW_DELETED, - 'filter' => [], - ], - ], - ], - 'forms_sync' => [ - 'name' => 'Forms Sync', - 'description' => 'Real-time synchronization for Forms submissions', - 'app' => 'forms', - 'events' => [ - [ - 'event' => self::FORMS_EVENT_FORM_SUBMITTED, - 'filter' => [], - ], - ], - ], - 'files_sync' => [ - 'name' => 'All Files Sync', - 'description' => 'Real-time synchronization for all file operations (create, update, delete)', - 'app' => 'files', - 'events' => [ - [ - 'event' => self::FILE_EVENT_CREATED, - 'filter' => [], - ], - [ - 'event' => self::FILE_EVENT_WRITTEN, - 'filter' => [], - ], - [ - 'event' => self::FILE_EVENT_DELETED, - 'filter' => [], - ], - ], - ], - ]; - } - - /** - * Get a webhook preset by ID. - * - * @param string $presetId Preset identifier (e.g., "notes_sync", "calendar_sync") - * @return array|null Preset configuration or null if not found - */ - public static function getPreset(string $presetId): ?array { - $presets = self::getPresets(); - return $presets[$presetId] ?? null; - } - - /** - * Get list of event class names for a preset. - * - * @param string $presetId Preset identifier - * @return array List of fully qualified event class names - */ - public static function getPresetEvents(string $presetId): array { - $preset = self::getPreset($presetId); - if ($preset === null) { - return []; - } - - return array_map( - fn ($eventConfig) => $eventConfig['event'], - $preset['events'] - ); - } - - /** - * Filter webhook presets to only show those for installed apps. - * - * @param array $installedApps List of installed app names - * @return array Filtered presets - */ - public static function filterPresetsByInstalledApps(array $installedApps): array { - $filtered = []; - foreach (self::getPresets() as $presetId => $preset) { - $appName = $preset['app']; - // "files" is always available (core functionality) - if ($appName === 'files' || in_array($appName, $installedApps)) { - $filtered[$presetId] = $preset; - } - } - return $filtered; - } -} diff --git a/third_party/astrolabe/lib/Settings/Admin.php b/third_party/astrolabe/lib/Settings/Admin.php deleted file mode 100644 index bcda1c6..0000000 --- a/third_party/astrolabe/lib/Settings/Admin.php +++ /dev/null @@ -1,117 +0,0 @@ -client = $client; - $this->config = $config; - $this->initialState = $initialState; - } - - /** - * @return TemplateResponse - */ - public function getForm(): TemplateResponse { - // Get configuration from config.php (local, fast) - $serverUrl = $this->config->getSystemValue('mcp_server_url', ''); - $apiKeyConfigured = !empty($this->config->getSystemValue('mcp_server_api_key', '')); - $clientId = $this->config->getSystemValue('astrolabe_client_id', ''); - $clientIdConfigured = !empty($clientId); - $clientSecret = $this->config->getSystemValue('astrolabe_client_secret', ''); - $clientSecretConfigured = !empty($clientSecret); - - // Load search settings from app config - $searchSettings = [ - 'algorithm' => $this->config->getAppValue( - Application::APP_ID, - self::SETTING_SEARCH_ALGORITHM, - self::DEFAULT_SEARCH_ALGORITHM - ), - 'fusion' => $this->config->getAppValue( - Application::APP_ID, - self::SETTING_SEARCH_FUSION, - self::DEFAULT_SEARCH_FUSION - ), - 'scoreThreshold' => (int)$this->config->getAppValue( - Application::APP_ID, - self::SETTING_SEARCH_SCORE_THRESHOLD, - (string)self::DEFAULT_SEARCH_SCORE_THRESHOLD - ), - 'limit' => (int)$this->config->getAppValue( - Application::APP_ID, - self::SETTING_SEARCH_LIMIT, - (string)self::DEFAULT_SEARCH_LIMIT - ), - ]; - - // Provide initial state for Vue.js frontend - // MCP server data will be fetched asynchronously by Vue component - $this->initialState->provideInitialState('admin-config', [ - 'config' => [ - 'serverUrl' => $serverUrl, - 'apiKeyConfigured' => $apiKeyConfigured, - 'clientIdConfigured' => $clientIdConfigured, - 'clientSecretConfigured' => $clientSecretConfigured, - ], - 'searchSettings' => $searchSettings, - ]); - - $parameters = []; - - return new TemplateResponse( - Application::APP_ID, - 'settings/admin', - $parameters, - TemplateResponse::RENDER_AS_BLANK - ); - } - - /** - * @return string The section ID - */ - public function getSection(): string { - return 'astrolabe'; - } - - /** - * @return int Priority (lower = higher up) - */ - public function getPriority(): int { - return 10; - } -} diff --git a/third_party/astrolabe/lib/Settings/AdminSection.php b/third_party/astrolabe/lib/Settings/AdminSection.php deleted file mode 100644 index 295efee..0000000 --- a/third_party/astrolabe/lib/Settings/AdminSection.php +++ /dev/null @@ -1,52 +0,0 @@ -l = $l; - $this->urlGenerator = $urlGenerator; - } - - /** - * @return string The section ID - */ - public function getID(): string { - return 'astrolabe'; - } - - /** - * @return string The translated section name - */ - public function getName(): string { - return $this->l->t('Astrolabe'); - } - - /** - * @return int Priority (lower = higher up in list) - */ - public function getPriority(): int { - return 80; - } - - /** - * @return string Section icon (SVG or image URL) - */ - public function getIcon(): string { - return $this->urlGenerator->imagePath('astrolabe', 'app-dark.svg'); - } -} diff --git a/third_party/astrolabe/lib/Settings/AstrolabeAdminSettings.php b/third_party/astrolabe/lib/Settings/AstrolabeAdminSettings.php deleted file mode 100644 index f549f5d..0000000 --- a/third_party/astrolabe/lib/Settings/AstrolabeAdminSettings.php +++ /dev/null @@ -1,64 +0,0 @@ - 'astrolabe-admin-settings', - 'priority' => 10, - 'section_type' => DeclarativeSettingsTypes::SECTION_TYPE_ADMIN, - 'section_id' => 'astrolabe', - 'storage_type' => DeclarativeSettingsTypes::STORAGE_TYPE_EXTERNAL, - 'title' => $this->l->t('MCP Server Configuration'), - 'description' => $this->l->t('Configure the connection to your Nextcloud MCP Server'), - 'doc_url' => 'https://github.com/cbcoutinho/nextcloud-mcp-server', - - 'fields' => [ - [ - 'id' => 'mcp_server_url', - 'title' => $this->l->t('MCP Server URL'), - 'description' => $this->l->t('The base URL of your Nextcloud MCP Server instance (e.g., http://localhost:8000)'), - 'type' => DeclarativeSettingsTypes::URL, - 'placeholder' => 'http://localhost:8000', - 'default' => '', - ], - [ - 'id' => 'mcp_server_api_key', - 'title' => $this->l->t('API Key'), - 'description' => $this->l->t('Authentication key for the MCP server (leave empty if not required)'), - 'type' => DeclarativeSettingsTypes::PASSWORD, - 'placeholder' => $this->l->t('Enter API key'), - 'default' => '', - ], - [ - 'id' => 'astrolabe_client_id', - 'title' => $this->l->t('OAuth Client ID'), - 'description' => $this->l->t('The OAuth client ID for Astrolabe (required for multi-user deployments)'), - 'type' => DeclarativeSettingsTypes::TEXT, - 'placeholder' => $this->l->t('Enter OAuth client ID'), - 'default' => '', - ], - [ - 'id' => 'astrolabe_client_secret', - 'title' => $this->l->t('OAuth Client Secret'), - 'description' => $this->l->t('Optional: Client secret for OAuth. If not set, PKCE will be used as fallback.'), - 'type' => DeclarativeSettingsTypes::PASSWORD, - 'placeholder' => $this->l->t('Enter client secret (optional)'), - 'default' => '', - ], - ], - ]; - } -} diff --git a/third_party/astrolabe/lib/Settings/Personal.php b/third_party/astrolabe/lib/Settings/Personal.php deleted file mode 100644 index f6f38fd..0000000 --- a/third_party/astrolabe/lib/Settings/Personal.php +++ /dev/null @@ -1,238 +0,0 @@ -client = $client; - $this->userSession = $userSession; - $this->initialState = $initialState; - $this->tokenStorage = $tokenStorage; - $this->urlGenerator = $urlGenerator; - } - - /** - * @return TemplateResponse - */ - public function getForm(): TemplateResponse { - $user = $this->userSession->getUser(); - if (!$user) { - return new TemplateResponse(Application::APP_ID, 'settings/error', [ - 'error' => 'User not authenticated' - ], TemplateResponse::RENDER_AS_BLANK); - } - - $userId = $user->getUID(); - - // Fetch server status to determine auth mode - $serverStatus = $this->client->getStatus(); - - // Check for server connection error - if (isset($serverStatus['error'])) { - return new TemplateResponse( - Application::APP_ID, - 'settings/error', - [ - 'error' => 'Cannot connect to MCP server', - 'details' => $serverStatus['error'], - 'server_url' => $this->client->getPublicServerUrl(), - ], - TemplateResponse::RENDER_AS_BLANK - ); - } - - // Get auth mode from server (defaults to oauth if not specified) - $authMode = $serverStatus['auth_mode'] ?? 'oauth'; - $supportsAppPasswords = $serverStatus['supports_app_passwords'] ?? false; - - // Check if user has MCP OAuth token - $token = $this->tokenStorage->getUserToken($userId); - - // For multi_user_basic mode with app password support (hybrid mode) - // User needs BOTH: - // 1. OAuth token for Astrolabe→MCP API calls (stored in McpTokenStorage) - // 2. App password for MCP→Nextcloud background sync - if ($authMode === 'multi_user_basic' && $supportsAppPasswords) { - // Check both credentials - $hasOAuthToken = ($token !== null && !$this->tokenStorage->isExpired($token)); - // In hybrid mode, check specifically for app password (not general background access) - // because MCP server needs the app password for background sync - $hasAppPassword = ($this->tokenStorage->getBackgroundSyncPassword($userId) !== null); - $backgroundSyncType = $this->tokenStorage->getBackgroundSyncType($userId); - $backgroundSyncProvisionedAt = $this->tokenStorage->getBackgroundSyncProvisionedAt($userId); - - // OAuth URL for Astrolabe's own OAuth controller (NOT MCP server's browser OAuth) - $oauthUrl = $this->urlGenerator->linkToRoute('astrolabe.oauth.initiateOAuth'); - - // Consolidated template parameters (camelCase convention) - $parameters = [ - 'userId' => $userId, - 'serverUrl' => $this->client->getPublicServerUrl(), - 'serverStatus' => $serverStatus, - 'authMode' => $authMode, - 'supportsAppPasswords' => $supportsAppPasswords, - 'session' => null, // No session in hybrid mode - 'vectorSyncEnabled' => $serverStatus['vector_sync_enabled'] ?? false, - // OAuth token status (for Astrolabe→MCP API calls) - 'hasOAuthToken' => $hasOAuthToken, - 'oauthUrl' => $oauthUrl, - // App password status (for MCP→Nextcloud background sync) - 'hasBackgroundAccess' => $hasAppPassword, - 'backgroundAccessGranted' => $hasAppPassword, // Legacy alias - 'backgroundSyncType' => $backgroundSyncType, - 'backgroundSyncProvisionedAt' => $backgroundSyncProvisionedAt, - 'requesttoken' => \OCP\Util::callRegister(), - ]; - - return new TemplateResponse( - Application::APP_ID, - 'settings/personal', - $parameters, - TemplateResponse::RENDER_AS_BLANK - ); - } - // For OAuth modes, if no token or token is expired, show OAuth authorization UI - elseif (!$token || $this->tokenStorage->isExpired($token)) { - $oauthUrl = $this->urlGenerator->linkToRoute('astrolabe.oauth.initiateOAuth'); - - return new TemplateResponse( - Application::APP_ID, - 'settings/oauth-required', - [ - 'oauth_url' => $oauthUrl, - 'server_url' => $this->client->getPublicServerUrl(), - 'has_expired' => ($token !== null), // true if token exists but expired - ], - TemplateResponse::RENDER_AS_BLANK - ); - } - - // User has valid token - fetch data from MCP server - $accessToken = $token['access_token']; - - // Fetch server status (public endpoint, no token needed) - $serverStatus = $this->client->getStatus(); - - // Fetch user session data (requires token) - $userSession = $this->client->getUserSession($userId, $accessToken); - - // Check for server connection error - if (isset($serverStatus['error'])) { - return new TemplateResponse( - Application::APP_ID, - 'settings/error', - [ - 'error' => 'Cannot connect to MCP server', - 'details' => $serverStatus['error'], - 'server_url' => $this->client->getPublicServerUrl(), - ], - TemplateResponse::RENDER_AS_BLANK - ); - } - - // Check for authentication error (invalid/expired token) - if (isset($userSession['error'])) { - // Token might be invalid - delete it and show OAuth UI - $this->tokenStorage->deleteUserToken($userId); - - $oauthUrl = $this->urlGenerator->linkToRoute('astrolabe.oauth.initiateOAuth'); - - return new TemplateResponse( - Application::APP_ID, - 'settings/oauth-required', - [ - 'oauth_url' => $oauthUrl, - 'server_url' => $this->client->getPublicServerUrl(), - 'has_expired' => true, - 'error_message' => 'Your session has expired. Please sign in again.', - ], - TemplateResponse::RENDER_AS_BLANK - ); - } - - // Check background sync credential status - $hasBackgroundAccess = $this->tokenStorage->hasBackgroundSyncAccess($userId); - $backgroundSyncType = $this->tokenStorage->getBackgroundSyncType($userId); - $backgroundSyncProvisionedAt = $this->tokenStorage->getBackgroundSyncProvisionedAt($userId); - - // OAuth URL for standard OAuth mode (in case user needs to re-authorize) - $oauthUrl = $this->urlGenerator->linkToRoute('astrolabe.oauth.initiateOAuth'); - - // Provide initial state for Vue.js frontend (if needed) - $this->initialState->provideInitialState('user-data', [ - 'userId' => $userId, - 'serverStatus' => $serverStatus, - 'session' => $userSession, - ]); - - // Consolidated template parameters (camelCase convention) - $parameters = [ - 'userId' => $userId, - 'serverUrl' => $this->client->getPublicServerUrl(), - 'serverStatus' => $serverStatus, - 'session' => $userSession, - 'vectorSyncEnabled' => $serverStatus['vector_sync_enabled'] ?? false, - // OAuth status - 'hasOAuthToken' => true, - 'oauthUrl' => $oauthUrl, - // Background sync status - 'hasBackgroundAccess' => $hasBackgroundAccess, - 'backgroundAccessGranted' => $userSession['background_access_granted'] ?? false, // Legacy - 'backgroundSyncType' => $backgroundSyncType, - 'backgroundSyncProvisionedAt' => $backgroundSyncProvisionedAt, - 'requesttoken' => \OCP\Util::callRegister(), - ]; - - return new TemplateResponse( - Application::APP_ID, - 'settings/personal', - $parameters, - TemplateResponse::RENDER_AS_BLANK - ); - } - - /** - * @return string The section ID - */ - public function getSection(): string { - return 'astrolabe'; - } - - /** - * @return int Priority (lower = higher up) - */ - public function getPriority(): int { - return 50; - } -} diff --git a/third_party/astrolabe/lib/Settings/PersonalSection.php b/third_party/astrolabe/lib/Settings/PersonalSection.php deleted file mode 100644 index fd64f21..0000000 --- a/third_party/astrolabe/lib/Settings/PersonalSection.php +++ /dev/null @@ -1,52 +0,0 @@ -l = $l; - $this->urlGenerator = $urlGenerator; - } - - /** - * @return string The section ID - */ - public function getID(): string { - return 'astrolabe'; - } - - /** - * @return string The translated section name - */ - public function getName(): string { - return $this->l->t('Astrolabe'); - } - - /** - * @return int Priority (lower = higher up in list, 0-99) - */ - public function getPriority(): int { - return 80; - } - - /** - * @return string Section icon (SVG or image URL) - */ - public function getIcon(): string { - return $this->urlGenerator->imagePath('astrolabe', 'app-dark.svg'); - } -} diff --git a/third_party/astrolabe/openapi.json b/third_party/astrolabe/openapi.json deleted file mode 100644 index 3f0c242..0000000 --- a/third_party/astrolabe/openapi.json +++ /dev/null @@ -1,149 +0,0 @@ -{ - "openapi": "3.0.3", - "info": { - "title": "astrolabe", - "version": "0.0.1", - "description": "Manage the MCP Server from within Nextcloud UI", - "license": { - "name": "agpl" - } - }, - "components": { - "securitySchemes": { - "basic_auth": { - "type": "http", - "scheme": "basic" - }, - "bearer_auth": { - "type": "http", - "scheme": "bearer" - } - }, - "schemas": { - "OCSMeta": { - "type": "object", - "required": [ - "status", - "statuscode" - ], - "properties": { - "status": { - "type": "string" - }, - "statuscode": { - "type": "integer" - }, - "message": { - "type": "string" - }, - "totalitems": { - "type": "string" - }, - "itemsperpage": { - "type": "string" - } - } - } - } - }, - "paths": { - "/ocs/v2.php/apps/astrolabe/api": { - "get": { - "operationId": "api-index", - "summary": "An example API endpoint", - "tags": [ - "api" - ], - "security": [ - { - "bearer_auth": [] - }, - { - "basic_auth": [] - } - ], - "parameters": [ - { - "name": "OCS-APIRequest", - "in": "header", - "description": "Required to be true for the API request to pass", - "required": true, - "schema": { - "type": "boolean", - "default": true - } - } - ], - "responses": { - "200": { - "description": "Data returned", - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "ocs" - ], - "properties": { - "ocs": { - "type": "object", - "required": [ - "meta", - "data" - ], - "properties": { - "meta": { - "$ref": "#/components/schemas/OCSMeta" - }, - "data": { - "type": "object", - "required": [ - "message" - ], - "properties": { - "message": { - "type": "string" - } - } - } - } - } - } - } - } - } - }, - "401": { - "description": "Current user is not logged in", - "content": { - "application/json": { - "schema": { - "type": "object", - "required": [ - "ocs" - ], - "properties": { - "ocs": { - "type": "object", - "required": [ - "meta", - "data" - ], - "properties": { - "meta": { - "$ref": "#/components/schemas/OCSMeta" - }, - "data": {} - } - } - } - } - } - } - } - } - } - } - }, - "tags": [] -} diff --git a/third_party/astrolabe/package-lock.json b/third_party/astrolabe/package-lock.json deleted file mode 100644 index 38482a7..0000000 --- a/third_party/astrolabe/package-lock.json +++ /dev/null @@ -1,10450 +0,0 @@ -{ - "name": "astrolabe", - "version": "0.10.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "astrolabe", - "version": "0.10.0", - "license": "AGPL-3.0-or-later", - "dependencies": { - "@nextcloud/axios": "^2.5.1", - "@nextcloud/dialogs": "^7.2.0", - "@nextcloud/initial-state": "^3.0.0", - "@nextcloud/l10n": "^3.1.0", - "@nextcloud/router": "^3.0.1", - "@nextcloud/vue": "^9.3.3", - "markdown-it": "^14.1.0", - "plotly.js-dist-min": "^3.0.0", - "vue": "^3.0.0", - "vue-material-design-icons": "^5.3.1" - }, - "devDependencies": { - "@nextcloud/browserslist-config": "3.1.2", - "@nextcloud/eslint-config": "8.4.2", - "@nextcloud/stylelint-config": "3.1.1", - "@vitejs/plugin-vue": "^6.0.3", - "sass-embedded": "^1.97.1", - "terser": "5.44.1", - "vite": "7.2.7" - }, - "engines": { - "node": "^22.0.0", - "npm": "^10.5.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.27.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.27.1", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.28.5", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.28.5", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.5", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.28.3", - "@babel/helpers": "^7.28.4", - "@babel/parser": "^7.28.5", - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.5", - "@babel/types": "^7.28.5", - "@jridgewell/remapping": "^2.3.5", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/eslint-parser": { - "version": "7.28.5", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.11.0", - "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" - } - }, - "node_modules/@babel/generator": { - "version": "7.28.5", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/parser": "^7.28.5", - "@babel/types": "^7.28.5", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.27.2", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/compat-data": "^7.27.2", - "@babel/helper-validator-option": "^7.27.1", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-globals": { - "version": "7.28.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.27.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.28.3", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.28.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.27.1", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.28.4", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.28.5", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.28.5" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.28.4", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.27.2", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.28.5", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.5", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.5", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.5", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.28.5", - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bufbuild/protobuf": { - "version": "2.10.2", - "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.10.2.tgz", - "integrity": "sha512-uFsRXwIGyu+r6AMdz+XijIIZJYpoWeYzILt5yZ2d3mCjQrWUTVpVD9WL/jZAbvp+Ed04rOhrsk7FiTcEDseB5A==", - "dev": true, - "license": "(Apache-2.0 AND BSD-3-Clause)" - }, - "node_modules/@buttercup/fetch": { - "version": "0.2.1", - "license": "MIT", - "optionalDependencies": { - "node-fetch": "^3.3.0" - } - }, - "node_modules/@cacheable/memory": { - "version": "2.0.6", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@cacheable/utils": "^2.3.2", - "@keyv/bigmap": "^1.3.0", - "hookified": "^1.13.0", - "keyv": "^5.5.4" - } - }, - "node_modules/@cacheable/memory/node_modules/@keyv/bigmap": { - "version": "1.3.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "hashery": "^1.2.0", - "hookified": "^1.13.0" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "keyv": "^5.5.4" - } - }, - "node_modules/@cacheable/memory/node_modules/keyv": { - "version": "5.5.5", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@keyv/serialize": "^1.1.1" - } - }, - "node_modules/@cacheable/utils": { - "version": "2.3.2", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "hashery": "^1.2.0", - "keyv": "^5.5.4" - } - }, - "node_modules/@cacheable/utils/node_modules/keyv": { - "version": "5.5.5", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@keyv/serialize": "^1.1.1" - } - }, - "node_modules/@ckpack/vue-color": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@ckpack/vue-color/-/vue-color-1.6.0.tgz", - "integrity": "sha512-b9kFTKhYbNArfgP1lmnaVm0VNsWdZjqIbyHUYry7mZ+E7JeTQclbjq1+2xWn0SE3wzqRYlXmAVjECPOgteWmMQ==", - "license": "MIT", - "dependencies": { - "@ctrl/tinycolor": "^3.6.0", - "material-colors": "^1.2.6" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "vue": "^3.2.0" - } - }, - "node_modules/@csstools/css-parser-algorithms": { - "version": "3.0.5", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "peer": true, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-tokenizer": "^3.0.4" - } - }, - "node_modules/@csstools/css-syntax-patches-for-csstree": { - "version": "1.0.21", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/@csstools/css-tokenizer": { - "version": "3.0.4", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/@csstools/media-query-list-parser": { - "version": "4.0.3", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "peer": true, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" - } - }, - "node_modules/@ctrl/tinycolor": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", - "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/@dual-bundle/import-meta-resolve": { - "version": "4.2.1", - "dev": true, - "license": "MIT", - "peer": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/JounQin" - } - }, - "node_modules/@emnapi/core": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.7.1.tgz", - "integrity": "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@emnapi/wasi-threads": "1.1.0", - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.1.tgz", - "integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/wasi-threads": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", - "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@es-joy/jsdoccomment": { - "version": "0.41.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "comment-parser": "1.4.1", - "esquery": "^1.5.0", - "jsdoc-type-pratt-parser": "~4.0.0" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", - "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", - "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", - "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", - "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", - "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", - "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", - "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", - "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", - "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", - "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", - "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", - "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", - "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", - "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", - "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", - "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.25.12", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", - "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", - "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", - "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", - "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", - "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", - "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", - "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", - "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", - "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.9.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.2", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.12", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@eslint/js": { - "version": "8.57.1", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@file-type/xml": { - "version": "0.4.4", - "license": "MIT", - "dependencies": { - "sax": "^1.4.1", - "strtok3": "^10.3.4" - } - }, - "node_modules/@floating-ui/core": { - "version": "1.7.3", - "license": "MIT", - "dependencies": { - "@floating-ui/utils": "^0.2.10" - } - }, - "node_modules/@floating-ui/dom": { - "version": "1.7.4", - "license": "MIT", - "dependencies": { - "@floating-ui/core": "^1.7.3", - "@floating-ui/utils": "^0.2.10" - } - }, - "node_modules/@floating-ui/utils": { - "version": "0.2.10", - "license": "MIT" - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.12", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "dev": true, - "license": "BSD-3-Clause", - "peer": true - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/remapping": { - "version": "2.3.5", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.11", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@keyv/serialize": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/@mdi/js": { - "version": "7.4.47", - "resolved": "https://registry.npmjs.org/@mdi/js/-/js-7.4.47.tgz", - "integrity": "sha512-KPnNOtm5i2pMabqZxpUz7iQf+mfrYZyKCZ8QNz85czgEt7cuHcGorWfdzUMWYA0SD+a6Hn4FmJ+YhzzzjkTZrQ==", - "license": "Apache-2.0" - }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "0.2.12", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", - "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@emnapi/core": "^1.4.3", - "@emnapi/runtime": "^1.4.3", - "@tybys/wasm-util": "^0.10.0" - } - }, - "node_modules/@nextcloud/auth": { - "version": "2.5.3", - "license": "GPL-3.0-or-later", - "dependencies": { - "@nextcloud/browser-storage": "^0.5.0", - "@nextcloud/event-bus": "^3.3.2" - }, - "engines": { - "node": "^20.0.0 || ^22.0.0 || ^24.0.0" - } - }, - "node_modules/@nextcloud/axios": { - "version": "2.5.2", - "license": "GPL-3.0-or-later", - "dependencies": { - "@nextcloud/auth": "^2.5.1", - "@nextcloud/router": "^3.0.1", - "axios": "^1.12.2" - }, - "engines": { - "node": "^20.0.0 || ^22.0.0 || ^24.0.0" - } - }, - "node_modules/@nextcloud/browser-storage": { - "version": "0.5.0", - "license": "GPL-3.0-or-later", - "engines": { - "node": "^24 || ^22 || ^20" - } - }, - "node_modules/@nextcloud/browserslist-config": { - "version": "3.1.2", - "dev": true, - "license": "GPL-3.0-or-later", - "engines": { - "node": "^20 || ^22 || ^24", - "npm": ">=10.5.0" - }, - "peerDependencies": { - "browserslist": "^4.26.3" - } - }, - "node_modules/@nextcloud/capabilities": { - "version": "1.2.1", - "license": "GPL-3.0-or-later", - "dependencies": { - "@nextcloud/initial-state": "^3.0.0" - }, - "engines": { - "node": "^20.0.0 || ^22.0.0 || ^24.0.0" - } - }, - "node_modules/@nextcloud/dialogs": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@nextcloud/dialogs/-/dialogs-7.2.0.tgz", - "integrity": "sha512-seb2yYnGsP72t3aeK7WdcgfANpb/AHYc86Fz0kfzM11tvdqbs6Mz4Ja3bxccIJFXoyAp+NYS9UKpxA7bAQPywQ==", - "license": "AGPL-3.0-or-later", - "dependencies": { - "@mdi/js": "^7.4.47", - "@nextcloud/auth": "^2.5.3", - "@nextcloud/axios": "^2.5.2", - "@nextcloud/browser-storage": "^0.5.0", - "@nextcloud/event-bus": "^3.3.3", - "@nextcloud/files": "^3.12.2", - "@nextcloud/initial-state": "^3.0.0", - "@nextcloud/l10n": "^3.4.1", - "@nextcloud/paths": "^3.0.0", - "@nextcloud/router": "^3.1.0", - "@nextcloud/sharing": "^0.3.0", - "@nextcloud/vue": "^9.3.1", - "@types/toastify-js": "^1.12.4", - "@vueuse/core": "^14.1.0", - "cancelable-promise": "^4.3.1", - "p-queue": "^9.0.1", - "toastify-js": "^1.12.0", - "vue": "^3.5.25", - "webdav": "^5.8.0" - }, - "engines": { - "node": "^20 || ^22 || ^24" - } - }, - "node_modules/@nextcloud/eslint-config": { - "version": "8.4.2", - "dev": true, - "license": "AGPL-3.0-or-later", - "engines": { - "node": "^20.0.0", - "npm": "^10.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.26.9", - "@babel/eslint-parser": "^7.16.5", - "@nextcloud/eslint-plugin": "^2.2.1", - "@vue/eslint-config-typescript": "^13.0.0", - "eslint": "^8.27.0", - "eslint-config-standard": "^17.1.0", - "eslint-import-resolver-exports": "^1.0.0-beta.5", - "eslint-import-resolver-typescript": "^3.8.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jsdoc": "^46.2.6", - "eslint-plugin-n": "^16.0.0", - "eslint-plugin-promise": "^6.6.0", - "eslint-plugin-vue": "^9.7.0", - "typescript": "^5.0.2" - } - }, - "node_modules/@nextcloud/eslint-plugin": { - "version": "2.2.1", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "fast-xml-parser": "^4.2.5", - "requireindex": "^1.2.0", - "semver": "^7.5.3" - }, - "engines": { - "node": "^20.0.0", - "npm": "^10.0.0" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/@nextcloud/eslint-plugin/node_modules/semver": { - "version": "7.7.3", - "dev": true, - "license": "ISC", - "peer": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@nextcloud/event-bus": { - "version": "3.3.3", - "license": "GPL-3.0-or-later", - "dependencies": { - "@types/semver": "^7.7.0", - "semver": "^7.7.2" - }, - "engines": { - "node": "^20 || ^22 || ^24" - } - }, - "node_modules/@nextcloud/event-bus/node_modules/semver": { - "version": "7.7.3", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@nextcloud/files": { - "version": "3.12.2", - "resolved": "https://registry.npmjs.org/@nextcloud/files/-/files-3.12.2.tgz", - "integrity": "sha512-vBo8tf3Xh6efiF8CrEo3pKj9AtvAF6RdDGO1XKL65IxV8+UUd9Uxl2lUExHlzoDRRczCqfGfaWfRRaFhYqce5Q==", - "license": "AGPL-3.0-or-later", - "dependencies": { - "@nextcloud/auth": "^2.5.3", - "@nextcloud/capabilities": "^1.2.1", - "@nextcloud/l10n": "^3.4.1", - "@nextcloud/logger": "^3.0.3", - "@nextcloud/paths": "^3.0.0", - "@nextcloud/router": "^3.1.0", - "@nextcloud/sharing": "^0.3.0", - "cancelable-promise": "^4.3.1", - "is-svg": "^6.1.0", - "typescript-event-target": "^1.1.1", - "webdav": "^5.8.0" - }, - "engines": { - "node": "^20.0.0 || ^22.0.0 || ^24.0.0" - } - }, - "node_modules/@nextcloud/initial-state": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@nextcloud/initial-state/-/initial-state-3.0.0.tgz", - "integrity": "sha512-cV+HBdkQJGm8FxkBI5rFT/FbMNWNBvpbj6OPrg4Ae4YOOsQ15CL8InPOAw1t4XkOkQK2NEdUGQLVUz/19wXbdQ==", - "license": "GPL-3.0-or-later", - "engines": { - "node": "^20.0.0 || ^22.0.0 || ^24.0.0" - } - }, - "node_modules/@nextcloud/l10n": { - "version": "3.4.1", - "license": "GPL-3.0-or-later", - "dependencies": { - "@nextcloud/router": "^3.0.1", - "@nextcloud/typings": "^1.9.1", - "@types/escape-html": "^1.0.4", - "dompurify": "^3.2.6", - "escape-html": "^1.0.3" - }, - "engines": { - "node": "^20 || ^22 || ^24" - } - }, - "node_modules/@nextcloud/logger": { - "version": "3.0.3", - "license": "GPL-3.0-or-later", - "dependencies": { - "@nextcloud/auth": "^2.5.3" - }, - "engines": { - "node": "^20.0.0 || ^22.0.0 || ^24.0.0" - } - }, - "node_modules/@nextcloud/paths": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@nextcloud/paths/-/paths-3.0.0.tgz", - "integrity": "sha512-+sTfTkIbVUa2Ue3bkz3R7F1mhddvHPOWUxkSNg7Q5dAsimVFBaTRgiBAJmsAag3JPsxyuS8kUgeb0zdEssRdTA==", - "license": "GPL-3.0-or-later", - "engines": { - "node": "^20.0.0 || ^22.0.0 || ^24.0.0" - } - }, - "node_modules/@nextcloud/router": { - "version": "3.1.0", - "license": "GPL-3.0-or-later", - "dependencies": { - "@nextcloud/typings": "^1.10.0" - }, - "engines": { - "node": "^20.0.0 || ^22.0.0 || ^24.0.0" - } - }, - "node_modules/@nextcloud/sharing": { - "version": "0.3.0", - "license": "GPL-3.0-or-later", - "dependencies": { - "@nextcloud/initial-state": "^3.0.0", - "is-svg": "^6.1.0" - }, - "engines": { - "node": "^20.0.0 || ^22.0.0 || ^24.0.0" - }, - "optionalDependencies": { - "@nextcloud/files": "^3.12.0" - } - }, - "node_modules/@nextcloud/stylelint-config": { - "version": "3.1.1", - "dev": true, - "license": "AGPL-3.0-or-later", - "dependencies": { - "stylelint-use-logical": "^2.1.2" - }, - "engines": { - "node": "^20 || ^22 || ^24" - }, - "peerDependencies": { - "stylelint": "^16.13.2", - "stylelint-config-recommended-scss": "^15.0.1", - "stylelint-config-recommended-vue": "^1.5.0" - } - }, - "node_modules/@nextcloud/typings": { - "version": "1.10.0", - "license": "GPL-3.0-or-later", - "dependencies": { - "@types/jquery": "3.5.16" - }, - "engines": { - "node": "^20.0.0 || ^22.0.0 || ^24.0.0" - } - }, - "node_modules/@nextcloud/vue": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/@nextcloud/vue/-/vue-9.4.0.tgz", - "integrity": "sha512-MoEbaFqFeZfTB+8d/BtgObAfzJMQ+vdidzMP/zKzx9J4cW+vgY5bciDUueY+t3f0uwSJXO3xsqXXWj9x2KihzQ==", - "license": "AGPL-3.0-or-later", - "dependencies": { - "@ckpack/vue-color": "^1.6.0", - "@floating-ui/dom": "^1.7.4", - "@nextcloud/auth": "^2.5.3", - "@nextcloud/axios": "^2.5.2", - "@nextcloud/browser-storage": "^0.5.0", - "@nextcloud/capabilities": "^1.2.1", - "@nextcloud/event-bus": "^3.3.3", - "@nextcloud/initial-state": "^3.0.0", - "@nextcloud/l10n": "^3.4.1", - "@nextcloud/logger": "^3.0.3", - "@nextcloud/router": "^3.1.0", - "@nextcloud/sharing": "^0.3.0", - "@vuepic/vue-datepicker": "^11.0.3", - "@vueuse/components": "^14.1.0", - "@vueuse/core": "^14.0.0", - "blurhash": "^2.0.5", - "clone": "^2.1.2", - "debounce": "^3.0.0", - "dompurify": "^3.3.1", - "emoji-mart-vue-fast": "^15.0.5", - "escape-html": "^1.0.3", - "floating-vue": "^5.2.2", - "focus-trap": "^7.8.0", - "linkifyjs": "^4.3.2", - "p-queue": "^9.1.0", - "rehype-external-links": "^3.0.0", - "rehype-highlight": "^7.0.2", - "rehype-react": "^8.0.0", - "remark-breaks": "^4.0.0", - "remark-parse": "^11.0.0", - "remark-rehype": "^11.1.2", - "remark-unlink-protocols": "^1.0.0", - "splitpanes": "^4.0.4", - "striptags": "^3.2.0", - "tabbable": "^6.4.0", - "tributejs": "^5.1.3", - "ts-md5": "^2.0.1", - "unified": "^11.0.5", - "unist-builder": "^4.0.0", - "unist-util-visit": "^5.0.0", - "vue": "^3.5.18", - "vue-router": "^4.6.4", - "vue-select": "^4.0.0-beta.6" - }, - "engines": { - "node": "^20.11.0 || ^22 || ^24" - } - }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "eslint-scope": "5.1.1" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nolyfill/is-core-module": { - "version": "1.0.39", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=12.4.0" - } - }, - "node_modules/@parcel/watcher": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", - "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "dependencies": { - "detect-libc": "^1.0.3", - "is-glob": "^4.0.3", - "micromatch": "^4.0.5", - "node-addon-api": "^7.0.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.5.1", - "@parcel/watcher-darwin-arm64": "2.5.1", - "@parcel/watcher-darwin-x64": "2.5.1", - "@parcel/watcher-freebsd-x64": "2.5.1", - "@parcel/watcher-linux-arm-glibc": "2.5.1", - "@parcel/watcher-linux-arm-musl": "2.5.1", - "@parcel/watcher-linux-arm64-glibc": "2.5.1", - "@parcel/watcher-linux-arm64-musl": "2.5.1", - "@parcel/watcher-linux-x64-glibc": "2.5.1", - "@parcel/watcher-linux-x64-musl": "2.5.1", - "@parcel/watcher-win32-arm64": "2.5.1", - "@parcel/watcher-win32-ia32": "2.5.1", - "@parcel/watcher-win32-x64": "2.5.1" - } - }, - "node_modules/@parcel/watcher-android-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", - "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", - "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", - "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", - "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", - "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", - "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", - "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", - "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", - "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", - "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", - "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", - "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", - "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.53", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.53.tgz", - "integrity": "sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.3.tgz", - "integrity": "sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.3.tgz", - "integrity": "sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.3.tgz", - "integrity": "sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.3.tgz", - "integrity": "sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.3.tgz", - "integrity": "sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.3.tgz", - "integrity": "sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.3.tgz", - "integrity": "sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.3.tgz", - "integrity": "sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.3.tgz", - "integrity": "sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.3.tgz", - "integrity": "sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.3.tgz", - "integrity": "sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.3.tgz", - "integrity": "sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.3.tgz", - "integrity": "sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.3.tgz", - "integrity": "sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.3.tgz", - "integrity": "sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.53.3", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.53.3", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.3.tgz", - "integrity": "sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.3.tgz", - "integrity": "sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.3.tgz", - "integrity": "sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.3.tgz", - "integrity": "sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.3.tgz", - "integrity": "sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rtsao/scc": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/@tokenizer/token": { - "version": "0.3.0", - "license": "MIT" - }, - "node_modules/@tybys/wasm-util": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", - "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@types/debug": { - "version": "4.1.12", - "license": "MIT", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/escape-html": { - "version": "1.0.4", - "license": "MIT" - }, - "node_modules/@types/estree": { - "version": "1.0.8", - "license": "MIT" - }, - "node_modules/@types/estree-jsx": { - "version": "1.0.5", - "license": "MIT", - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/@types/hast": { - "version": "3.0.4", - "license": "MIT", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/jquery": { - "version": "3.5.16", - "license": "MIT", - "dependencies": { - "@types/sizzle": "*" - } - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/@types/mdast": { - "version": "4.0.4", - "license": "MIT", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/ms": { - "version": "2.1.0", - "license": "MIT" - }, - "node_modules/@types/semver": { - "version": "7.7.1", - "license": "MIT" - }, - "node_modules/@types/sizzle": { - "version": "2.3.10", - "license": "MIT" - }, - "node_modules/@types/toastify-js": { - "version": "1.12.4", - "resolved": "https://registry.npmjs.org/@types/toastify-js/-/toastify-js-1.12.4.tgz", - "integrity": "sha512-zfZHU4tKffPCnZRe7pjv/eFKzTVHozKewFCKaCjZ4gFinKgJRz/t0bkZiMCXJxPhv/ZoeDGNOeRD09R0kQZ/nw==", - "license": "MIT" - }, - "node_modules/@types/trusted-types": { - "version": "2.0.7", - "license": "MIT", - "optional": true - }, - "node_modules/@types/unist": { - "version": "3.0.3", - "license": "MIT" - }, - "node_modules/@types/web-bluetooth": { - "version": "0.0.21", - "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz", - "integrity": "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==", - "license": "MIT" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.18.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/type-utils": "7.18.0", - "@typescript-eslint/utils": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "7.18.0", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "7.18.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "7.18.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/utils": "7.18.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "7.18.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.18.0", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.7.3", - "dev": true, - "license": "ISC", - "peer": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "7.18.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.18.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@typescript-eslint/types": "7.18.0", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "license": "ISC" - }, - "node_modules/@unrs/resolver-binding-android-arm-eabi": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", - "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "peer": true - }, - "node_modules/@unrs/resolver-binding-android-arm64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", - "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "peer": true - }, - "node_modules/@unrs/resolver-binding-darwin-arm64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", - "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "peer": true - }, - "node_modules/@unrs/resolver-binding-darwin-x64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", - "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "peer": true - }, - "node_modules/@unrs/resolver-binding-freebsd-x64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", - "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "peer": true - }, - "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", - "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", - "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", - "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@unrs/resolver-binding-linux-arm64-musl": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", - "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", - "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", - "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", - "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", - "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@unrs/resolver-binding-linux-x64-gnu": { - "version": "1.11.1", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@unrs/resolver-binding-linux-x64-musl": { - "version": "1.11.1", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true - }, - "node_modules/@unrs/resolver-binding-wasm32-wasi": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", - "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@napi-rs/wasm-runtime": "^0.2.11" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", - "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true - }, - "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", - "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true - }, - "node_modules/@unrs/resolver-binding-win32-x64-msvc": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", - "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true - }, - "node_modules/@vitejs/plugin-vue": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.3.tgz", - "integrity": "sha512-TlGPkLFLVOY3T7fZrwdvKpjprR3s4fxRln0ORDo1VQ7HHyxJwTlrjKU3kpVWTlaAjIEuCTokmjkZnr8Tpc925w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rolldown/pluginutils": "1.0.0-beta.53" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "peerDependencies": { - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", - "vue": "^3.2.25" - } - }, - "node_modules/@vue/compiler-core": { - "version": "3.5.27", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.27.tgz", - "integrity": "sha512-gnSBQjZA+//qDZen+6a2EdHqJ68Z7uybrMf3SPjEGgG4dicklwDVmMC1AeIHxtLVPT7sn6sH1KOO+tS6gwOUeQ==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.28.5", - "@vue/shared": "3.5.27", - "entities": "^7.0.0", - "estree-walker": "^2.0.2", - "source-map-js": "^1.2.1" - } - }, - "node_modules/@vue/compiler-core/node_modules/entities": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", - "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/@vue/compiler-dom": { - "version": "3.5.27", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.27.tgz", - "integrity": "sha512-oAFea8dZgCtVVVTEC7fv3T5CbZW9BxpFzGGxC79xakTr6ooeEqmRuvQydIiDAkglZEAd09LgVf1RoDnL54fu5w==", - "license": "MIT", - "dependencies": { - "@vue/compiler-core": "3.5.27", - "@vue/shared": "3.5.27" - } - }, - "node_modules/@vue/compiler-sfc": { - "version": "3.5.27", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.27.tgz", - "integrity": "sha512-sHZu9QyDPeDmN/MRoshhggVOWE5WlGFStKFwu8G52swATgSny27hJRWteKDSUUzUH+wp+bmeNbhJnEAel/auUQ==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.28.5", - "@vue/compiler-core": "3.5.27", - "@vue/compiler-dom": "3.5.27", - "@vue/compiler-ssr": "3.5.27", - "@vue/shared": "3.5.27", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.21", - "postcss": "^8.5.6", - "source-map-js": "^1.2.1" - } - }, - "node_modules/@vue/compiler-ssr": { - "version": "3.5.27", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.27.tgz", - "integrity": "sha512-Sj7h+JHt512fV1cTxKlYhg7qxBvack+BGncSpH+8vnN+KN95iPIcqB5rsbblX40XorP+ilO7VIKlkuu3Xq2vjw==", - "license": "MIT", - "dependencies": { - "@vue/compiler-dom": "3.5.27", - "@vue/shared": "3.5.27" - } - }, - "node_modules/@vue/devtools-api": { - "version": "6.6.4", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", - "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", - "license": "MIT" - }, - "node_modules/@vue/eslint-config-typescript": { - "version": "13.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@typescript-eslint/eslint-plugin": "^7.1.1", - "@typescript-eslint/parser": "^7.1.1", - "vue-eslint-parser": "^9.3.1" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "peerDependencies": { - "eslint": "^8.56.0", - "eslint-plugin-vue": "^9.0.0", - "typescript": ">=4.7.4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@vue/reactivity": { - "version": "3.5.27", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.27.tgz", - "integrity": "sha512-vvorxn2KXfJ0nBEnj4GYshSgsyMNFnIQah/wczXlsNXt+ijhugmW+PpJ2cNPe4V6jpnBcs0MhCODKllWG+nvoQ==", - "license": "MIT", - "dependencies": { - "@vue/shared": "3.5.27" - } - }, - "node_modules/@vue/runtime-core": { - "version": "3.5.27", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.27.tgz", - "integrity": "sha512-fxVuX/fzgzeMPn/CLQecWeDIFNt3gQVhxM0rW02Tvp/YmZfXQgcTXlakq7IMutuZ/+Ogbn+K0oct9J3JZfyk3A==", - "license": "MIT", - "dependencies": { - "@vue/reactivity": "3.5.27", - "@vue/shared": "3.5.27" - } - }, - "node_modules/@vue/runtime-dom": { - "version": "3.5.27", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.27.tgz", - "integrity": "sha512-/QnLslQgYqSJ5aUmb5F0z0caZPGHRB8LEAQ1s81vHFM5CBfnun63rxhvE/scVb/j3TbBuoZwkJyiLCkBluMpeg==", - "license": "MIT", - "dependencies": { - "@vue/reactivity": "3.5.27", - "@vue/runtime-core": "3.5.27", - "@vue/shared": "3.5.27", - "csstype": "^3.2.3" - } - }, - "node_modules/@vue/server-renderer": { - "version": "3.5.27", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.27.tgz", - "integrity": "sha512-qOz/5thjeP1vAFc4+BY3Nr6wxyLhpeQgAE/8dDtKo6a6xdk+L4W46HDZgNmLOBUDEkFXV3G7pRiUqxjX0/2zWA==", - "license": "MIT", - "dependencies": { - "@vue/compiler-ssr": "3.5.27", - "@vue/shared": "3.5.27" - }, - "peerDependencies": { - "vue": "3.5.27" - } - }, - "node_modules/@vue/shared": { - "version": "3.5.27", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.27.tgz", - "integrity": "sha512-dXr/3CgqXsJkZ0n9F3I4elY8wM9jMJpP3pvRG52r6m0tu/MsAFIe6JpXVGeNMd/D9F4hQynWT8Rfuj0bdm9kFQ==", - "license": "MIT" - }, - "node_modules/@vuepic/vue-datepicker": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/@vuepic/vue-datepicker/-/vue-datepicker-11.0.3.tgz", - "integrity": "sha512-sb2adwqwK2PizLQOpxCYps2SwhVT6/ic2HMIOqHJXuYa6iAJZWGL5YVlS7O4aW+sk6ZyxlDURLO7kDZPL4HB/w==", - "license": "MIT", - "dependencies": { - "date-fns": "^4.1.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "vue": ">=3.3.0" - } - }, - "node_modules/@vueuse/components": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@vueuse/components/-/components-14.1.0.tgz", - "integrity": "sha512-SDRJUAv3H7/PMh+KkYpq0d5KMzpKOfqx4qcV4xyN4mZOLPw8NkiWu+yDcfXwI8h1uCqhRNz2cdeaLa+IuaehFw==", - "license": "MIT", - "dependencies": { - "@vueuse/core": "14.1.0", - "@vueuse/shared": "14.1.0" - }, - "peerDependencies": { - "vue": "^3.5.0" - } - }, - "node_modules/@vueuse/core": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-14.1.0.tgz", - "integrity": "sha512-rgBinKs07hAYyPF834mDTigH7BtPqvZ3Pryuzt1SD/lg5wEcWqvwzXXYGEDb2/cP0Sj5zSvHl3WkmMELr5kfWw==", - "license": "MIT", - "dependencies": { - "@types/web-bluetooth": "^0.0.21", - "@vueuse/metadata": "14.1.0", - "@vueuse/shared": "14.1.0" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "vue": "^3.5.0" - } - }, - "node_modules/@vueuse/metadata": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-14.1.0.tgz", - "integrity": "sha512-7hK4g015rWn2PhKcZ99NyT+ZD9sbwm7SGvp7k+k+rKGWnLjS/oQozoIZzWfCewSUeBmnJkIb+CNr7Zc/EyRnnA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/@vueuse/shared": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-14.1.0.tgz", - "integrity": "sha512-EcKxtYvn6gx1F8z9J5/rsg3+lTQnvOruQd8fUecW99DCK04BkWD7z5KQ/wTAx+DazyoEE9dJt/zV8OIEQbM6kw==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "vue": "^3.5.0" - } - }, - "node_modules/acorn": { - "version": "8.15.0", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "dev": true, - "license": "MIT", - "peer": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "dev": true, - "license": "MIT", - "peer": 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/ansi-regex": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/are-docs-informative": { - "version": "0.0.2", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "license": "Python-2.0" - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bound": "^1.0.3", - "is-array-buffer": "^3.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-includes": { - "version": "3.1.9", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.24.0", - "es-object-atoms": "^1.1.1", - "get-intrinsic": "^1.3.0", - "is-string": "^1.1.1", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.6", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "es-shim-unscopables": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.3", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.3", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/async-function": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "license": "MIT" - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/axios": { - "version": "1.13.2", - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.4", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/bail": { - "version": "2.0.2", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/base-64": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/baseline-browser-mapping": { - "version": "2.9.7", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "bin": { - "baseline-browser-mapping": "dist/cli.js" - } - }, - "node_modules/blurhash": { - "version": "2.0.5", - "license": "MIT" - }, - "node_modules/boolbase": { - "version": "1.0.0", - "dev": true, - "license": "ISC", - "peer": true - }, - "node_modules/brace-expansion": { - "version": "2.0.2", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.28.1", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "baseline-browser-mapping": "^2.9.0", - "caniuse-lite": "^1.0.30001759", - "electron-to-chromium": "^1.5.263", - "node-releases": "^2.0.27", - "update-browserslist-db": "^1.2.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer-builder": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/buffer-builder/-/buffer-builder-0.2.0.tgz", - "integrity": "sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==", - "dev": true, - "license": "MIT/X11" - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/builtin-modules": { - "version": "3.3.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/builtins": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "semver": "^7.0.0" - } - }, - "node_modules/builtins/node_modules/semver": { - "version": "7.7.3", - "dev": true, - "license": "ISC", - "peer": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/byte-length": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/cacheable": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@cacheable/memory": "^2.0.6", - "@cacheable/utils": "^2.3.2", - "hookified": "^1.13.0", - "keyv": "^5.5.4", - "qified": "^0.5.2" - } - }, - "node_modules/cacheable/node_modules/keyv": { - "version": "5.5.5", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@keyv/serialize": "^1.1.1" - } - }, - "node_modules/call-bind": { - "version": "1.0.8", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cancelable-promise": { - "version": "4.3.1", - "license": "MIT" - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001760", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0", - "peer": true - }, - "node_modules/ccount": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "peer": 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/character-entities": { - "version": "2.0.2", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-html4": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", - "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-legacy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", - "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-reference-invalid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", - "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/charenc": { - "version": "0.0.2", - "license": "BSD-3-Clause", - "engines": { - "node": "*" - } - }, - "node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/clone": { - "version": "2.1.2", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/colord": { - "version": "2.9.3", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/colorjs.io": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.5.2.tgz", - "integrity": "sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==", - "dev": true, - "license": "MIT" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "dev": true, - "license": "MIT" - }, - "node_modules/comment-parser": { - "version": "1.4.1", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/core-js": { - "version": "3.47.0", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/cosmiconfig": { - "version": "9.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypt": { - "version": "0.0.2", - "license": "BSD-3-Clause", - "engines": { - "node": "*" - } - }, - "node_modules/css-functions-list": { - "version": "3.2.3", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=12 || >=16" - } - }, - "node_modules/css-tree": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "mdn-data": "2.12.2", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/csstype": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", - "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", - "license": "MIT" - }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/data-view-buffer": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/inspect-js" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/date-fns": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", - "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/kossnocorp" - } - }, - "node_modules/debounce": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/debounce/-/debounce-3.0.0.tgz", - "integrity": "sha512-64byRbF0/AirwbuHqB3/ZpMG9/nckDa6ZA0yd6UnaQNwbbemCOwvz2sL5sjXLHhZHADyiwLm0M5qMhltUUx+TA==", - "license": "MIT", - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/debug": { - "version": "4.4.3", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decode-named-character-reference": { - "version": "1.2.0", - "license": "MIT", - "dependencies": { - "character-entities": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/devlop": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "dequal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause", - "peer": true - }, - "node_modules/domhandler": { - "version": "5.0.3", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/dompurify": { - "version": "3.3.1", - "license": "(MPL-2.0 OR Apache-2.0)", - "optionalDependencies": { - "@types/trusted-types": "^2.0.7" - } - }, - "node_modules/domutils": { - "version": "3.2.2", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.5.267", - "dev": true, - "license": "ISC", - "peer": true - }, - "node_modules/emoji-mart-vue-fast": { - "version": "15.0.5", - "license": "BSD-3-Clause", - "dependencies": { - "@babel/runtime": "^7.18.6", - "core-js": "^3.23.5" - }, - "peerDependencies": { - "vue": ">2.0.0" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/entities": { - "version": "4.5.0", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/error-ex": { - "version": "1.3.4", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.24.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.2", - "arraybuffer.prototype.slice": "^1.0.4", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "data-view-buffer": "^1.0.2", - "data-view-byte-length": "^1.0.2", - "data-view-byte-offset": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "es-set-tostringtag": "^2.1.0", - "es-to-primitive": "^1.3.0", - "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.3.0", - "get-proto": "^1.0.1", - "get-symbol-description": "^1.1.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "internal-slot": "^1.1.0", - "is-array-buffer": "^3.0.5", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.2", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.2.1", - "is-set": "^2.0.3", - "is-shared-array-buffer": "^1.0.4", - "is-string": "^1.1.1", - "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.1", - "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.4", - "object-keys": "^1.1.1", - "object.assign": "^4.1.7", - "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.4", - "safe-array-concat": "^1.1.3", - "safe-push-apply": "^1.0.0", - "safe-regex-test": "^1.1.0", - "set-proto": "^1.0.0", - "stop-iteration-iterator": "^1.1.0", - "string.prototype.trim": "^1.2.10", - "string.prototype.trimend": "^1.0.9", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.3", - "typed-array-byte-length": "^1.0.3", - "typed-array-byte-offset": "^1.0.4", - "typed-array-length": "^1.0.7", - "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.19" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.3.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/esbuild": { - "version": "0.25.12", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.12", - "@esbuild/android-arm": "0.25.12", - "@esbuild/android-arm64": "0.25.12", - "@esbuild/android-x64": "0.25.12", - "@esbuild/darwin-arm64": "0.25.12", - "@esbuild/darwin-x64": "0.25.12", - "@esbuild/freebsd-arm64": "0.25.12", - "@esbuild/freebsd-x64": "0.25.12", - "@esbuild/linux-arm": "0.25.12", - "@esbuild/linux-arm64": "0.25.12", - "@esbuild/linux-ia32": "0.25.12", - "@esbuild/linux-loong64": "0.25.12", - "@esbuild/linux-mips64el": "0.25.12", - "@esbuild/linux-ppc64": "0.25.12", - "@esbuild/linux-riscv64": "0.25.12", - "@esbuild/linux-s390x": "0.25.12", - "@esbuild/linux-x64": "0.25.12", - "@esbuild/netbsd-arm64": "0.25.12", - "@esbuild/netbsd-x64": "0.25.12", - "@esbuild/openbsd-arm64": "0.25.12", - "@esbuild/openbsd-x64": "0.25.12", - "@esbuild/openharmony-arm64": "0.25.12", - "@esbuild/sunos-x64": "0.25.12", - "@esbuild/win32-arm64": "0.25.12", - "@esbuild/win32-ia32": "0.25.12", - "@esbuild/win32-x64": "0.25.12" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.57.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-compat-utils": { - "version": "0.5.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "semver": "^7.5.4" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "eslint": ">=6.0.0" - } - }, - "node_modules/eslint-compat-utils/node_modules/semver": { - "version": "7.7.3", - "dev": true, - "license": "ISC", - "peer": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-config-standard": { - "version": "17.1.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "peer": true, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "eslint": "^8.0.1", - "eslint-plugin-import": "^2.25.2", - "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", - "eslint-plugin-promise": "^6.0.0" - } - }, - "node_modules/eslint-import-resolver-exports": { - "version": "1.0.0-beta.5", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "resolve.exports": "^2.0.0" - }, - "peerDependencies": { - "eslint": "*", - "eslint-plugin-import": "*" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-import-resolver-typescript": { - "version": "3.10.1", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "@nolyfill/is-core-module": "1.0.39", - "debug": "^4.4.0", - "get-tsconfig": "^4.10.0", - "is-bun-module": "^2.0.0", - "stable-hash": "^0.0.5", - "tinyglobby": "^0.2.13", - "unrs-resolver": "^1.6.2" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint-import-resolver-typescript" - }, - "peerDependencies": { - "eslint": "*", - "eslint-plugin-import": "*", - "eslint-plugin-import-x": "*" - }, - "peerDependenciesMeta": { - "eslint-plugin-import": { - "optional": true - }, - "eslint-plugin-import-x": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils": { - "version": "2.12.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-es-x": { - "version": "7.8.0", - "dev": true, - "funding": [ - "https://github.com/sponsors/ota-meshi", - "https://opencollective.com/eslint" - ], - "license": "MIT", - "peer": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.1.2", - "@eslint-community/regexpp": "^4.11.0", - "eslint-compat-utils": "^0.5.1" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": ">=8" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.32.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.9", - "array.prototype.findlastindex": "^1.2.6", - "array.prototype.flat": "^1.3.3", - "array.prototype.flatmap": "^1.3.3", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.1", - "hasown": "^2.0.2", - "is-core-module": "^2.16.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "object.groupby": "^1.0.3", - "object.values": "^1.2.1", - "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.9", - "tsconfig-paths": "^3.15.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" - } - }, - "node_modules/eslint-plugin-import/node_modules/brace-expansion": { - "version": "1.1.12", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint-plugin-jsdoc": { - "version": "46.10.1", - "dev": true, - "license": "BSD-3-Clause", - "peer": true, - "dependencies": { - "@es-joy/jsdoccomment": "~0.41.0", - "are-docs-informative": "^0.0.2", - "comment-parser": "1.4.1", - "debug": "^4.3.4", - "escape-string-regexp": "^4.0.0", - "esquery": "^1.5.0", - "is-builtin-module": "^3.2.1", - "semver": "^7.5.4", - "spdx-expression-parse": "^4.0.0" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" - } - }, - "node_modules/eslint-plugin-jsdoc/node_modules/semver": { - "version": "7.7.3", - "dev": true, - "license": "ISC", - "peer": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-plugin-n": { - "version": "16.6.2", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "builtins": "^5.0.1", - "eslint-plugin-es-x": "^7.5.0", - "get-tsconfig": "^4.7.0", - "globals": "^13.24.0", - "ignore": "^5.2.4", - "is-builtin-module": "^3.2.1", - "is-core-module": "^2.12.1", - "minimatch": "^3.1.2", - "resolve": "^1.22.2", - "semver": "^7.5.3" - }, - "engines": { - "node": ">=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-n/node_modules/brace-expansion": { - "version": "1.1.12", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint-plugin-n/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint-plugin-n/node_modules/semver": { - "version": "7.7.3", - "dev": true, - "license": "ISC", - "peer": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-plugin-promise": { - "version": "6.6.0", - "dev": true, - "license": "ISC", - "peer": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" - } - }, - "node_modules/eslint-plugin-vue": { - "version": "9.33.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "globals": "^13.24.0", - "natural-compare": "^1.4.0", - "nth-check": "^2.1.1", - "postcss-selector-parser": "^6.0.15", - "semver": "^7.6.3", - "vue-eslint-parser": "^9.4.3", - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": "^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" - } - }, - "node_modules/eslint-plugin-vue/node_modules/semver": { - "version": "7.7.3", - "dev": true, - "license": "ISC", - "peer": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.12", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.6.0", - "dev": true, - "license": "BSD-3-Clause", - "peer": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-util-is-identifier-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", - "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "license": "MIT" - }, - "node_modules/esutils": { - "version": "2.0.3", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "license": "MIT" - }, - "node_modules/extend": { - "version": "3.0.2", - "license": "MIT" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/fast-uri": { - "version": "3.1.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "BSD-3-Clause", - "peer": true - }, - "node_modules/fast-xml-parser": { - "version": "4.5.3", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - } - ], - "license": "MIT", - "dependencies": { - "strnum": "^1.1.1" - }, - "bin": { - "fxparser": "src/cli/cli.js" - } - }, - "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 4.9.1" - } - }, - "node_modules/fastq": { - "version": "1.19.1", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fdir": { - "version": "6.5.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "license": "MIT", - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.2.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.3.3", - "dev": true, - "license": "ISC", - "peer": true - }, - "node_modules/floating-vue": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/floating-vue/-/floating-vue-5.2.2.tgz", - "integrity": "sha512-afW+h2CFafo+7Y9Lvw/xsqjaQlKLdJV7h1fCHfcYQ1C4SVMlu7OAekqWgu5d4SgvkBVU0pVpLlVsrSTBURFRkg==", - "license": "MIT", - "dependencies": { - "@floating-ui/dom": "~1.1.1", - "vue-resize": "^2.0.0-alpha.1" - }, - "peerDependencies": { - "@nuxt/kit": "^3.2.0", - "vue": "^3.2.0" - }, - "peerDependenciesMeta": { - "@nuxt/kit": { - "optional": true - } - } - }, - "node_modules/floating-vue/node_modules/@floating-ui/dom": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.1.1.tgz", - "integrity": "sha512-TpIO93+DIujg3g7SykEAGZMDtbJRrmnYRCNYSjJlvIbGhBjRSNTLVbNeDQBrzy9qDgUbiWdc7KA0uZHZ2tJmiw==", - "license": "MIT", - "dependencies": { - "@floating-ui/core": "^1.1.0" - } - }, - "node_modules/focus-trap": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.8.0.tgz", - "integrity": "sha512-/yNdlIkpWbM0ptxno3ONTuf+2g318kh2ez3KSeZN5dZ8YC6AAmgeWz+GasYYiBJPFaYcSAPeu4GfhUaChzIJXA==", - "license": "MIT", - "dependencies": { - "tabbable": "^6.4.0" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.11", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-each": { - "version": "0.3.5", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/form-data": { - "version": "4.0.5", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.2", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "license": "MIT", - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "dev": true, - "license": "ISC", - "peer": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/function.prototype.name": { - "version": "1.1.8", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "functions-have-names": "^1.2.3", - "hasown": "^2.0.2", - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "dev": true, - "license": "MIT", - "peer": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/generator-function": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/get-symbol-description": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-tsconfig": { - "version": "4.13.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.12", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/global-modules": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "13.24.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globalthis": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globjoin": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/gopd": { - "version": "1.2.0", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graphemer": { - "version": "1.4.0", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/has-bigints": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "dunder-proto": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hashery": { - "version": "1.3.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "hookified": "^1.13.0" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hast-util-is-element": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-jsx-runtime": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", - "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "hast-util-whitespace": "^3.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^7.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-js": "^1.0.0", - "unist-util-position": "^5.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-text": { - "version": "4.0.2", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "hast-util-is-element": "^3.0.0", - "unist-util-find-after": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-whitespace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", - "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/highlight.js": { - "version": "11.11.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/hookified": { - "version": "1.14.0", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/hot-patcher": { - "version": "2.0.1", - "license": "MIT" - }, - "node_modules/html-tags": { - "version": "3.3.1", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/htmlparser2": { - "version": "8.0.2", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" - } - }, - "node_modules/ignore": { - "version": "5.3.2", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/immutable": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.4.tgz", - "integrity": "sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==", - "dev": true, - "license": "MIT" - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "dev": true, - "license": "ISC", - "peer": true - }, - "node_modules/ini": { - "version": "1.3.8", - "dev": true, - "license": "ISC", - "peer": true - }, - "node_modules/inline-style-parser": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz", - "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==", - "license": "MIT" - }, - "node_modules/internal-slot": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-absolute-url": { - "version": "4.0.1", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-alphabetical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", - "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-alphanumerical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", - "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", - "license": "MIT", - "dependencies": { - "is-alphabetical": "^2.0.0", - "is-decimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.5", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/is-async-function": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "async-function": "^1.0.0", - "call-bound": "^1.0.3", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "has-bigints": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.2.2", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "license": "MIT" - }, - "node_modules/is-builtin-module": { - "version": "3.2.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "builtin-modules": "^3.3.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-bun-module": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "semver": "^7.7.1" - } - }, - "node_modules/is-bun-module/node_modules/semver": { - "version": "7.7.3", - "dev": true, - "license": "ISC", - "peer": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-view": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-decimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", - "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finalizationregistry": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-function": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bound": "^1.0.4", - "generator-function": "^2.0.0", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-hexadecimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", - "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-map": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "4.1.0", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-set": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-svg": { - "version": "6.1.0", - "license": "MIT", - "dependencies": { - "@file-type/xml": "^0.4.3" - }, - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-symbol": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bound": "^1.0.2", - "has-symbols": "^1.1.0", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.4", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "dev": true, - "license": "ISC", - "peer": true - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/js-yaml": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsdoc-type-pratt-parser": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/jsesc": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "peer": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/json5": { - "version": "2.2.3", - "dev": true, - "license": "MIT", - "peer": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/known-css-properties": { - "version": "0.37.0", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/layerr": { - "version": "3.0.0", - "license": "MIT" - }, - "node_modules/levn": { - "version": "0.4.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/linkify-it": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "uc.micro": "^2.0.0" - } - }, - "node_modules/linkifyjs": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.3.2.tgz", - "integrity": "sha512-NT1CJtq3hHIreOianA8aSXn6Cw0JzYOuDQbOrSPe7gqFnCpKP++MQe3ODgO3oh2GJFORkAAdqredOa60z63GbA==", - "license": "MIT" - }, - "node_modules/locate-path": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/longest-streak": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", - "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/lowlight": { - "version": "3.3.0", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "devlop": "^1.0.0", - "highlight.js": "~11.11.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/magic-string": { - "version": "0.30.21", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, - "node_modules/markdown-it": { - "version": "14.1.0", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1", - "entities": "^4.4.0", - "linkify-it": "^5.0.0", - "mdurl": "^2.0.0", - "punycode.js": "^2.3.1", - "uc.micro": "^2.1.0" - }, - "bin": { - "markdown-it": "bin/markdown-it.mjs" - } - }, - "node_modules/material-colors": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz", - "integrity": "sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==", - "license": "ISC" - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/mathml-tag-names": { - "version": "2.1.3", - "dev": true, - "license": "MIT", - "peer": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/md5": { - "version": "2.3.0", - "license": "BSD-3-Clause", - "dependencies": { - "charenc": "0.0.2", - "crypt": "0.0.2", - "is-buffer": "~1.1.6" - } - }, - "node_modules/mdast-squeeze-paragraphs": { - "version": "6.0.0", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "unist-util-visit": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-find-and-replace": { - "version": "3.0.2", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "escape-string-regexp": "^5.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { - "version": "5.0.0", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mdast-util-from-markdown": { - "version": "2.0.2", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark": "^4.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-expression": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", - "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-jsx": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", - "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "ccount": "^2.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "parse-entities": "^4.0.0", - "stringify-entities": "^4.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdxjs-esm": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", - "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-newline-to-break": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-find-and-replace": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-phrasing": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", - "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-hast": { - "version": "13.2.1", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@ungap/structured-clone": "^1.0.0", - "devlop": "^1.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "trim-lines": "^3.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", - "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^4.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "unist-util-visit": "^5.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-string": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdn-data": { - "version": "2.12.2", - "dev": true, - "license": "CC0-1.0", - "peer": true - }, - "node_modules/mdurl": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/meow": { - "version": "13.2.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromark": { - "version": "4.0.2", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-core-commonmark": { - "version": "2.0.3", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-destination": "^2.0.0", - "micromark-factory-label": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-factory-title": "^2.0.0", - "micromark-factory-whitespace": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-html-tag-name": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-destination": { - "version": "2.0.1", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-label": { - "version": "2.0.1", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-space": { - "version": "2.0.1", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-title": { - "version": "2.0.1", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-whitespace": { - "version": "2.0.1", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-character": { - "version": "2.1.1", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-chunked": { - "version": "2.0.1", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-classify-character": { - "version": "2.0.1", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-combine-extensions": { - "version": "2.0.1", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-chunked": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "2.0.2", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-string": { - "version": "2.0.1", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-encode": { - "version": "2.0.1", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-html-tag-name": { - "version": "2.0.1", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-normalize-identifier": { - "version": "2.0.1", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-resolve-all": { - "version": "2.0.1", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-sanitize-uri": { - "version": "2.0.1", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-subtokenize": { - "version": "2.1.0", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-symbol": { - "version": "2.0.1", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-types": { - "version": "2.0.2", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromatch": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/micromatch/node_modules/picomatch": { - "version": "2.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimatch": { - "version": "9.0.5", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "dev": true, - "license": "MIT", - "peer": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.3.11", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/napi-postinstall": { - "version": "0.3.4", - "dev": true, - "license": "MIT", - "peer": true, - "bin": { - "napi-postinstall": "lib/cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/napi-postinstall" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/nested-property": { - "version": "4.0.0", - "license": "MIT" - }, - "node_modules/node-addon-api": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", - "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/node-domexception": { - "version": "1.0.0", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "license": "MIT", - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "3.3.2", - "license": "MIT", - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, - "node_modules/node-releases": { - "version": "2.0.27", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/object-inspect": { - "version": "1.13.4", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.7", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0", - "has-symbols": "^1.1.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.groupby": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.values": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optionator": { - "version": "0.9.4", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/own-keys": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "get-intrinsic": "^1.2.6", - "object-keys": "^1.1.1", - "safe-push-apply": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-queue": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-9.1.0.tgz", - "integrity": "sha512-O/ZPaXuQV29uSLbxWBGGZO1mCQXV2BLIwUr59JUU9SoH76mnYvtms7aafH/isNSNGwuEfP6W/4xD0/TJXxrizw==", - "license": "MIT", - "dependencies": { - "eventemitter3": "^5.0.1", - "p-timeout": "^7.0.0" - }, - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-timeout": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-7.0.1.tgz", - "integrity": "sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg==", - "license": "MIT", - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-entities": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", - "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "character-entities-legacy": "^3.0.0", - "character-reference-invalid": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "is-alphanumerical": "^2.0.0", - "is-decimal": "^2.0.0", - "is-hexadecimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/parse-entities/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "license": "MIT" - }, - "node_modules/parse-json": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/path-posix": { - "version": "1.0.0", - "license": "ISC" - }, - "node_modules/path-type": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.1.1", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/plotly.js-dist-min": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/plotly.js-dist-min/-/plotly.js-dist-min-3.3.1.tgz", - "integrity": "sha512-ZxKM9DlEoEF3wBzGRPGHt6gWTJrm5N81J9AgX9UBX/Qjc9L4lRxtPBPq+RmBJWoA71j1X5Z1ouuguLkdoo88tg==", - "license": "MIT" - }, - "node_modules/possible-typed-array-names": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/postcss": { - "version": "8.5.6", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-html": { - "version": "1.8.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "htmlparser2": "^8.0.0", - "js-tokens": "^9.0.0", - "postcss": "^8.5.0", - "postcss-safe-parser": "^6.0.0" - }, - "engines": { - "node": "^12 || >=14" - } - }, - "node_modules/postcss-html/node_modules/js-tokens": { - "version": "9.0.1", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/postcss-media-query-parser": { - "version": "0.2.3", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/postcss-resolve-nested-selector": { - "version": "0.1.6", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/postcss-safe-parser": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.3.3" - } - }, - "node_modules/postcss-scss": { - "version": "4.0.9", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss-scss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "peer": true, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "postcss": "^8.4.29" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/property-information": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", - "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/punycode": { - "version": "2.3.1", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/punycode.js": { - "version": "2.3.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/qified": { - "version": "0.5.3", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "hookified": "^1.13.0" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "license": "MIT" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "peer": true - }, - "node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 14.18.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.10", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.1", - "which-builtin-type": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.4", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/rehype-external-links": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@ungap/structured-clone": "^1.0.0", - "hast-util-is-element": "^3.0.0", - "is-absolute-url": "^4.0.0", - "space-separated-tokens": "^2.0.0", - "unist-util-visit": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-highlight": { - "version": "7.0.2", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "hast-util-to-text": "^4.0.0", - "lowlight": "^3.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-react": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/rehype-react/-/rehype-react-8.0.0.tgz", - "integrity": "sha512-vzo0YxYbB2HE+36+9HWXVdxNoNDubx63r5LBzpxBGVWM8s9mdnMdbmuJBAX6TTyuGdZjZix6qU3GcSuKCIWivw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "hast-util-to-jsx-runtime": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-breaks": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-newline-to-break": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-parse": { - "version": "11.0.0", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype": { - "version": "11.1.2", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "mdast-util-to-hast": "^13.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-unlink-protocols": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-squeeze-paragraphs": "^6.0.0", - "unist-util-visit": "^5.0.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requireindex": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.5" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/resolve": { - "version": "1.22.11", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "is-core-module": "^2.16.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, - "node_modules/resolve.exports": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/reusify": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "4.53.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.8" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.53.3", - "@rollup/rollup-android-arm64": "4.53.3", - "@rollup/rollup-darwin-arm64": "4.53.3", - "@rollup/rollup-darwin-x64": "4.53.3", - "@rollup/rollup-freebsd-arm64": "4.53.3", - "@rollup/rollup-freebsd-x64": "4.53.3", - "@rollup/rollup-linux-arm-gnueabihf": "4.53.3", - "@rollup/rollup-linux-arm-musleabihf": "4.53.3", - "@rollup/rollup-linux-arm64-gnu": "4.53.3", - "@rollup/rollup-linux-arm64-musl": "4.53.3", - "@rollup/rollup-linux-loong64-gnu": "4.53.3", - "@rollup/rollup-linux-ppc64-gnu": "4.53.3", - "@rollup/rollup-linux-riscv64-gnu": "4.53.3", - "@rollup/rollup-linux-riscv64-musl": "4.53.3", - "@rollup/rollup-linux-s390x-gnu": "4.53.3", - "@rollup/rollup-linux-x64-gnu": "4.53.3", - "@rollup/rollup-linux-x64-musl": "4.53.3", - "@rollup/rollup-openharmony-arm64": "4.53.3", - "@rollup/rollup-win32-arm64-msvc": "4.53.3", - "@rollup/rollup-win32-ia32-msvc": "4.53.3", - "@rollup/rollup-win32-x64-gnu": "4.53.3", - "@rollup/rollup-win32-x64-msvc": "4.53.3", - "fsevents": "~2.3.2" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "7.8.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", - "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-array-concat": { - "version": "1.1.3", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "has-symbols": "^1.1.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-push-apply": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "es-errors": "^1.3.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-regex-test": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-regex": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/sass": { - "version": "1.97.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.97.1.tgz", - "integrity": "sha512-uf6HoO8fy6ClsrShvMgaKUn14f2EHQLQRtpsZZLeU/Mv0Q1K5P0+x2uvH6Cub39TVVbWNSrraUhDAoFph6vh0A==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "chokidar": "^4.0.0", - "immutable": "^5.0.2", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=14.0.0" - }, - "optionalDependencies": { - "@parcel/watcher": "^2.4.1" - } - }, - "node_modules/sass-embedded": { - "version": "1.97.1", - "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.97.1.tgz", - "integrity": "sha512-wH3CbOThHYGX0bUyqFf7laLKyhVWIFc2lHynitkqMIUCtX2ixH9mQh0bN7+hkUu5BFt/SXvEMjFbkEbBMpQiSQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@bufbuild/protobuf": "^2.5.0", - "buffer-builder": "^0.2.0", - "colorjs.io": "^0.5.0", - "immutable": "^5.0.2", - "rxjs": "^7.4.0", - "supports-color": "^8.1.1", - "sync-child-process": "^1.0.2", - "varint": "^6.0.0" - }, - "bin": { - "sass": "dist/bin/sass.js" - }, - "engines": { - "node": ">=16.0.0" - }, - "optionalDependencies": { - "sass-embedded-all-unknown": "1.97.1", - "sass-embedded-android-arm": "1.97.1", - "sass-embedded-android-arm64": "1.97.1", - "sass-embedded-android-riscv64": "1.97.1", - "sass-embedded-android-x64": "1.97.1", - "sass-embedded-darwin-arm64": "1.97.1", - "sass-embedded-darwin-x64": "1.97.1", - "sass-embedded-linux-arm": "1.97.1", - "sass-embedded-linux-arm64": "1.97.1", - "sass-embedded-linux-musl-arm": "1.97.1", - "sass-embedded-linux-musl-arm64": "1.97.1", - "sass-embedded-linux-musl-riscv64": "1.97.1", - "sass-embedded-linux-musl-x64": "1.97.1", - "sass-embedded-linux-riscv64": "1.97.1", - "sass-embedded-linux-x64": "1.97.1", - "sass-embedded-unknown-all": "1.97.1", - "sass-embedded-win32-arm64": "1.97.1", - "sass-embedded-win32-x64": "1.97.1" - } - }, - "node_modules/sass-embedded-all-unknown": { - "version": "1.97.1", - "resolved": "https://registry.npmjs.org/sass-embedded-all-unknown/-/sass-embedded-all-unknown-1.97.1.tgz", - "integrity": "sha512-0au5gUNibfob7W/g+ycBx74O22CL8vwHiZdEDY6J0uzMkHPiSJk//h0iRf5AUnMArFHJjFd3urIiQIaoRKYa1Q==", - "cpu": [ - "!arm", - "!arm64", - "!riscv64", - "!x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "sass": "1.97.1" - } - }, - "node_modules/sass-embedded-android-arm": { - "version": "1.97.1", - "resolved": "https://registry.npmjs.org/sass-embedded-android-arm/-/sass-embedded-android-arm-1.97.1.tgz", - "integrity": "sha512-B5dlv4utJ+yC8ZpBeWTHwSZPVKRlqA8pcaD0FAzeNm/DelIFgQUQtt0UwgYoAI6wDIiie5uSVpMK9l2DaCbiBQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-android-arm64": { - "version": "1.97.1", - "resolved": "https://registry.npmjs.org/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.97.1.tgz", - "integrity": "sha512-h62DmOiS2Jn87s8+8GhJcMerJnTKa1IsIa9iIKjLiqbAvBDKCGUs027RugZkM+Zx7I+vhPq86PUXBYZ9EkRxdw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-android-riscv64": { - "version": "1.97.1", - "resolved": "https://registry.npmjs.org/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.97.1.tgz", - "integrity": "sha512-tGup88vgaXPnUHEgDMujrt5rfYadvkiVjRb/45FJTx2hQFoGVbmUXz5XqUFjIIbEjQ3kAJqp86A2jy11s43UiQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-android-x64": { - "version": "1.97.1", - "resolved": "https://registry.npmjs.org/sass-embedded-android-x64/-/sass-embedded-android-x64-1.97.1.tgz", - "integrity": "sha512-CAzKjjzu90LZduye2O9+UGX1oScMyF5/RVOa5CxACKALeIS+3XL3LVdV47kwKPoBv5B1aFUvGLscY0CR7jBAbg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-darwin-arm64": { - "version": "1.97.1", - "resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.97.1.tgz", - "integrity": "sha512-tyDzspzh5PbqdAFGtVKUXuf0up6Lff3c1U8J7+4Y7jW6AWRBnq95vTzIIxfnNifGCTI2fW5e7GAZpYygKpNwcw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-darwin-x64": { - "version": "1.97.1", - "resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.97.1.tgz", - "integrity": "sha512-FMrRuSPI2ICt2M2SYaLbiG4yxn86D6ae+XtrRdrrBMhWprAcB7Iyu67bgRzZkipMZNIKKeTR7EUvJHgZzi5ixQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-arm": { - "version": "1.97.1", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.97.1.tgz", - "integrity": "sha512-48VxaTUApLyx1NXFdZhKqI/7FYLmz8Ju3Ki2V/p+mhn5raHgAiYeFgn8O1WGxTOh+hBb9y3FdSR5a8MNTbmKMQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-arm64": { - "version": "1.97.1", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.97.1.tgz", - "integrity": "sha512-im80gfDWRivw9Su3r3YaZmJaCATcJgu3CsCSLodPk1b1R2+X/E12zEQayvrl05EGT9PDwTtuiqKgS4ND4xjwVg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-musl-arm": { - "version": "1.97.1", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.97.1.tgz", - "integrity": "sha512-FUFs466t3PVViVOKY/60JgLLtl61Pf7OW+g5BeEfuqVcSvYUECVHeiYHtX1fT78PEVa0h9tHpM6XpWti+7WYFA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-musl-arm64": { - "version": "1.97.1", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.97.1.tgz", - "integrity": "sha512-kD35WSD9o0279Ptwid3Jnbovo1FYnuG2mayYk9z4ZI4mweXEK6vTu+tlvCE/MdF/zFKSj11qaxaH+uzXe2cO5A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-musl-riscv64": { - "version": "1.97.1", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.97.1.tgz", - "integrity": "sha512-ZgpYps5YHuhA2+KiLkPukRbS5298QObgUhPll/gm5i0LOZleKCwrFELpVPcbhsSBuxqji2uaag5OL+n3JRBVVg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-musl-x64": { - "version": "1.97.1", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.97.1.tgz", - "integrity": "sha512-wcAigOyyvZ6o1zVypWV7QLZqpOEVnlBqJr9MbpnRIm74qFTSbAEmShoh8yMXBymzuVSmEbThxAwW01/TLf62tA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-riscv64": { - "version": "1.97.1", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.97.1.tgz", - "integrity": "sha512-9j1qE1ZrLMuGb+LUmBzw93Z4TNfqlRkkxjPVZy6u5vIggeSfvGbte7eRoYBNWX6SFew/yBCL90KXIirWFSGrlQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-x64": { - "version": "1.97.1", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.97.1.tgz", - "integrity": "sha512-7nrLFYMH/UgvEgXR5JxQJ6y9N4IJmnFnYoDxN0nw0jUp+CQWQL4EJ4RqAKTGelneueRbccvt2sEyPK+X0KJ9Jg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-unknown-all": { - "version": "1.97.1", - "resolved": "https://registry.npmjs.org/sass-embedded-unknown-all/-/sass-embedded-unknown-all-1.97.1.tgz", - "integrity": "sha512-oPSeKc7vS2dx3ZJHiUhHKcyqNq0GWzAiR8zMVpPd/kVMl5ZfVyw+5HTCxxWDBGkX02lNpou27JkeBPCaneYGAQ==", - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "!android", - "!darwin", - "!linux", - "!win32" - ], - "dependencies": { - "sass": "1.97.1" - } - }, - "node_modules/sass-embedded-win32-arm64": { - "version": "1.97.1", - "resolved": "https://registry.npmjs.org/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.97.1.tgz", - "integrity": "sha512-L5j7J6CbZgHGwcfVedMVpM3z5MYeighcyZE8GF2DVmjWzZI3JtPKNY11wNTD/P9o1Uql10YPOKhGH0iWIXOT7Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-win32-x64": { - "version": "1.97.1", - "resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.97.1.tgz", - "integrity": "sha512-rfaZAKXU8cW3E7gvdafyD6YtgbEcsDeT99OEiHXRT0UGFuXT8qCOjpAwIKaOA3XXr2d8S42xx6cXcaZ1a+1fgw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/sax": { - "version": "1.4.3", - "license": "BlueOak-1.0.0" - }, - "node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-proto": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "dunder-proto": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "dev": true, - "license": "ISC", - "peer": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/space-separated-tokens": { - "version": "2.0.2", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.5.0", - "dev": true, - "license": "CC-BY-3.0", - "peer": true - }, - "node_modules/spdx-expression-parse": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.22", - "dev": true, - "license": "CC0-1.0", - "peer": true - }, - "node_modules/splitpanes": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/splitpanes/-/splitpanes-4.0.4.tgz", - "integrity": "sha512-RbysugZhjbCw5fgplvk3hOXr41stahQDtZhHVkhnnJI6H4wlGDhM2kIpbehy7v92duy9GnMa8zIhHigIV1TWtg==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/antoniandre" - }, - "peerDependencies": { - "vue": "^3.2.0" - } - }, - "node_modules/stable-hash": { - "version": "0.0.5", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/stop-iteration-iterator": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "es-errors": "^1.3.0", - "internal-slot": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.10", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-data-property": "^1.1.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-object-atoms": "^1.0.0", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.9", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/stringify-entities": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", - "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", - "license": "MIT", - "dependencies": { - "character-entities-html4": "^2.0.0", - "character-entities-legacy": "^3.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/striptags": { - "version": "3.2.0", - "license": "MIT" - }, - "node_modules/strnum": { - "version": "1.1.2", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - } - ], - "license": "MIT" - }, - "node_modules/strtok3": { - "version": "10.3.4", - "license": "MIT", - "dependencies": { - "@tokenizer/token": "^0.3.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/style-to-js": { - "version": "1.1.21", - "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz", - "integrity": "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==", - "license": "MIT", - "dependencies": { - "style-to-object": "1.0.14" - } - }, - "node_modules/style-to-object": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.14.tgz", - "integrity": "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==", - "license": "MIT", - "dependencies": { - "inline-style-parser": "0.2.7" - } - }, - "node_modules/stylelint": { - "version": "16.26.1", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" - }, - { - "type": "github", - "url": "https://github.com/sponsors/stylelint" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-syntax-patches-for-csstree": "^1.0.19", - "@csstools/css-tokenizer": "^3.0.4", - "@csstools/media-query-list-parser": "^4.0.3", - "@csstools/selector-specificity": "^5.0.0", - "@dual-bundle/import-meta-resolve": "^4.2.1", - "balanced-match": "^2.0.0", - "colord": "^2.9.3", - "cosmiconfig": "^9.0.0", - "css-functions-list": "^3.2.3", - "css-tree": "^3.1.0", - "debug": "^4.4.3", - "fast-glob": "^3.3.3", - "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^11.1.1", - "global-modules": "^2.0.0", - "globby": "^11.1.0", - "globjoin": "^0.1.4", - "html-tags": "^3.3.1", - "ignore": "^7.0.5", - "imurmurhash": "^0.1.4", - "is-plain-object": "^5.0.0", - "known-css-properties": "^0.37.0", - "mathml-tag-names": "^2.1.3", - "meow": "^13.2.0", - "micromatch": "^4.0.8", - "normalize-path": "^3.0.0", - "picocolors": "^1.1.1", - "postcss": "^8.5.6", - "postcss-resolve-nested-selector": "^0.1.6", - "postcss-safe-parser": "^7.0.1", - "postcss-selector-parser": "^7.1.0", - "postcss-value-parser": "^4.2.0", - "resolve-from": "^5.0.0", - "string-width": "^4.2.3", - "supports-hyperlinks": "^3.2.0", - "svg-tags": "^1.0.0", - "table": "^6.9.0", - "write-file-atomic": "^5.0.1" - }, - "bin": { - "stylelint": "bin/stylelint.mjs" - }, - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/stylelint-config-html": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": "^12 || >=14" - }, - "funding": { - "url": "https://github.com/sponsors/ota-meshi" - }, - "peerDependencies": { - "postcss-html": "^1.0.0", - "stylelint": ">=14.0.0" - } - }, - "node_modules/stylelint-config-recommended": { - "version": "16.0.0", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" - }, - { - "type": "github", - "url": "https://github.com/sponsors/stylelint" - } - ], - "license": "MIT", - "peer": true, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "stylelint": "^16.16.0" - } - }, - "node_modules/stylelint-config-recommended-scss": { - "version": "15.0.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "postcss-scss": "^4.0.9", - "stylelint-config-recommended": "^16.0.0", - "stylelint-scss": "^6.12.0" - }, - "engines": { - "node": ">=20" - }, - "peerDependencies": { - "postcss": "^8.3.3", - "stylelint": "^16.16.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - } - } - }, - "node_modules/stylelint-config-recommended-vue": { - "version": "1.6.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "semver": "^7.3.5", - "stylelint-config-html": ">=1.0.0", - "stylelint-config-recommended": ">=6.0.0" - }, - "engines": { - "node": "^12 || >=14" - }, - "funding": { - "url": "https://github.com/sponsors/ota-meshi" - }, - "peerDependencies": { - "postcss-html": "^1.0.0", - "stylelint": ">=14.0.0" - } - }, - "node_modules/stylelint-config-recommended-vue/node_modules/semver": { - "version": "7.7.3", - "dev": true, - "license": "ISC", - "peer": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stylelint-scss": { - "version": "6.13.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "css-tree": "^3.0.1", - "is-plain-object": "^5.0.0", - "known-css-properties": "^0.37.0", - "mdn-data": "^2.25.0", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.6", - "postcss-selector-parser": "^7.1.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "stylelint": "^16.8.2" - } - }, - "node_modules/stylelint-scss/node_modules/mdn-data": { - "version": "2.25.0", - "dev": true, - "license": "CC0-1.0", - "peer": true - }, - "node_modules/stylelint-scss/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/stylelint-use-logical": { - "version": "2.1.2", - "dev": true, - "license": "CC0-1.0", - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "stylelint": ">= 11 < 17" - } - }, - "node_modules/stylelint/node_modules/@csstools/selector-specificity": { - "version": "5.0.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "peer": true, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss-selector-parser": "^7.0.0" - } - }, - "node_modules/stylelint/node_modules/balanced-match": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/stylelint/node_modules/file-entry-cache": { - "version": "11.1.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "flat-cache": "^6.1.19" - } - }, - "node_modules/stylelint/node_modules/flat-cache": { - "version": "6.1.19", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "cacheable": "^2.2.0", - "flatted": "^3.3.3", - "hookified": "^1.13.0" - } - }, - "node_modules/stylelint/node_modules/ignore": { - "version": "7.0.5", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/stylelint/node_modules/postcss-safe-parser": { - "version": "7.0.1", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "peer": true, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/stylelint/node_modules/postcss-selector-parser": { - "version": "7.1.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/stylelint/node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks": { - "version": "3.2.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=14.18" - }, - "funding": { - "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svg-tags": { - "version": "1.0.0", - "dev": true, - "peer": true - }, - "node_modules/sync-child-process": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/sync-child-process/-/sync-child-process-1.0.2.tgz", - "integrity": "sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "sync-message-port": "^1.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/sync-message-port": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sync-message-port/-/sync-message-port-1.1.3.tgz", - "integrity": "sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/tabbable": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.4.0.tgz", - "integrity": "sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==", - "license": "MIT" - }, - "node_modules/table": { - "version": "6.9.0", - "dev": true, - "license": "BSD-3-Clause", - "peer": true, - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.17.1", - "dev": true, - "license": "MIT", - "peer": 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" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/terser": { - "version": "5.44.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.15.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/tinyglobby": { - "version": "0.2.15", - "dev": true, - "license": "MIT", - "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.3" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toastify-js": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/toastify-js/-/toastify-js-1.12.0.tgz", - "integrity": "sha512-HeMHCO9yLPvP9k0apGSdPUWrUbLnxUKNFzgUoZp1PHCLploIX/4DSQ7V8H25ef+h4iO9n0he7ImfcndnN6nDrQ==", - "license": "MIT" - }, - "node_modules/tributejs": { - "version": "5.1.3", - "license": "MIT" - }, - "node_modules/trim-lines": { - "version": "3.0.1", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/trough": { - "version": "2.2.0", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/ts-api-utils": { - "version": "1.4.3", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } - }, - "node_modules/ts-md5": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ts-md5/-/ts-md5-2.0.1.tgz", - "integrity": "sha512-yF35FCoEOFBzOclSkMNEUbFQZuv89KEQ+5Xz03HrMSGUGB1+r+El+JiGOFwsP4p9RFNzwlrydYoTLvPOuICl9w==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, - "node_modules/type-check": { - "version": "0.4.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.15", - "reflect.getprototypeof": "^1.0.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.7", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0", - "reflect.getprototypeof": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typescript": { - "version": "5.9.3", - "devOptional": true, - "license": "Apache-2.0", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/typescript-event-target": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/uc.micro": { - "version": "2.1.0", - "license": "MIT" - }, - "node_modules/unbox-primitive": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bound": "^1.0.3", - "has-bigints": "^1.0.2", - "has-symbols": "^1.1.0", - "which-boxed-primitive": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unified": { - "version": "11.0.5", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-builder": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-find-after": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-is": { - "version": "6.0.1", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-position": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents": { - "version": "6.0.2", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unrs-resolver": { - "version": "1.11.1", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "peer": true, - "dependencies": { - "napi-postinstall": "^0.3.0" - }, - "funding": { - "url": "https://opencollective.com/unrs-resolver" - }, - "optionalDependencies": { - "@unrs/resolver-binding-android-arm-eabi": "1.11.1", - "@unrs/resolver-binding-android-arm64": "1.11.1", - "@unrs/resolver-binding-darwin-arm64": "1.11.1", - "@unrs/resolver-binding-darwin-x64": "1.11.1", - "@unrs/resolver-binding-freebsd-x64": "1.11.1", - "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", - "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", - "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", - "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", - "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", - "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-x64-musl": "1.11.1", - "@unrs/resolver-binding-wasm32-wasi": "1.11.1", - "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", - "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", - "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.2.2", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-join": { - "version": "5.0.0", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/url-parse": { - "version": "1.5.10", - "license": "MIT", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/varint": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==", - "dev": true, - "license": "MIT" - }, - "node_modules/vfile": { - "version": "6.0.3", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-message": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vite": { - "version": "7.2.7", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.25.0", - "fdir": "^6.5.0", - "picomatch": "^4.0.3", - "postcss": "^8.5.6", - "rollup": "^4.43.0", - "tinyglobby": "^0.2.15" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^20.19.0 || >=22.12.0", - "jiti": ">=1.21.0", - "less": "^4.0.0", - "lightningcss": "^1.21.0", - "sass": "^1.70.0", - "sass-embedded": "^1.70.0", - "stylus": ">=0.54.8", - "sugarss": "^5.0.0", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/vue": { - "version": "3.5.27", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.27.tgz", - "integrity": "sha512-aJ/UtoEyFySPBGarREmN4z6qNKpbEguYHMmXSiOGk69czc+zhs0NF6tEFrY8TZKAl8N/LYAkd4JHVd5E/AsSmw==", - "license": "MIT", - "dependencies": { - "@vue/compiler-dom": "3.5.27", - "@vue/compiler-sfc": "3.5.27", - "@vue/runtime-dom": "3.5.27", - "@vue/server-renderer": "3.5.27", - "@vue/shared": "3.5.27" - }, - "peerDependencies": { - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/vue-eslint-parser": { - "version": "9.4.3", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "debug": "^4.3.4", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", - "esquery": "^1.4.0", - "lodash": "^4.17.21", - "semver": "^7.3.6" - }, - "engines": { - "node": "^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=6.0.0" - } - }, - "node_modules/vue-eslint-parser/node_modules/eslint-scope": { - "version": "7.2.2", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/vue-eslint-parser/node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/vue-eslint-parser/node_modules/semver": { - "version": "7.7.3", - "dev": true, - "license": "ISC", - "peer": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/vue-material-design-icons": { - "version": "5.3.1", - "license": "MIT" - }, - "node_modules/vue-resize": { - "version": "2.0.0-alpha.1", - "resolved": "https://registry.npmjs.org/vue-resize/-/vue-resize-2.0.0-alpha.1.tgz", - "integrity": "sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==", - "license": "MIT", - "peerDependencies": { - "vue": "^3.0.0" - } - }, - "node_modules/vue-router": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.6.4.tgz", - "integrity": "sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg==", - "license": "MIT", - "dependencies": { - "@vue/devtools-api": "^6.6.4" - }, - "funding": { - "url": "https://github.com/sponsors/posva" - }, - "peerDependencies": { - "vue": "^3.5.0" - } - }, - "node_modules/vue-select": { - "version": "4.0.0-beta.6", - "resolved": "https://registry.npmjs.org/vue-select/-/vue-select-4.0.0-beta.6.tgz", - "integrity": "sha512-K+zrNBSpwMPhAxYLTCl56gaMrWZGgayoWCLqe5rWwkB8aUbAUh7u6sXjIR7v4ckp2WKC7zEEUY27g6h1MRsIHw==", - "license": "MIT", - "peerDependencies": { - "vue": "3.x" - } - }, - "node_modules/web-streams-polyfill": { - "version": "3.3.3", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/webdav": { - "version": "5.8.0", - "license": "MIT", - "dependencies": { - "@buttercup/fetch": "^0.2.1", - "base-64": "^1.0.0", - "byte-length": "^1.0.2", - "entities": "^6.0.0", - "fast-xml-parser": "^4.5.1", - "hot-patcher": "^2.0.1", - "layerr": "^3.0.0", - "md5": "^2.3.0", - "minimatch": "^9.0.5", - "nested-property": "^4.0.0", - "node-fetch": "^3.3.2", - "path-posix": "^1.0.0", - "url-join": "^5.0.0", - "url-parse": "^1.5.10" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/webdav/node_modules/entities": { - "version": "6.0.1", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/which": { - "version": "2.0.2", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "is-bigint": "^1.1.0", - "is-boolean-object": "^1.2.1", - "is-number-object": "^1.1.1", - "is-string": "^1.1.1", - "is-symbol": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "call-bound": "^1.0.2", - "function.prototype.name": "^1.1.6", - "has-tostringtag": "^1.0.2", - "is-async-function": "^2.0.0", - "is-date-object": "^1.1.0", - "is-finalizationregistry": "^1.1.0", - "is-generator-function": "^1.0.10", - "is-regex": "^1.2.1", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.1.0", - "which-collection": "^1.0.2", - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.19", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "for-each": "^0.3.5", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "dev": true, - "license": "ISC", - "peer": true - }, - "node_modules/write-file-atomic": { - "version": "5.0.1", - "dev": true, - "license": "ISC", - "peer": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/xml-name-validator": { - "version": "4.0.0", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "dev": true, - "license": "ISC", - "peer": true - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zwitch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - } - } -} diff --git a/third_party/astrolabe/package.json b/third_party/astrolabe/package.json deleted file mode 100644 index 46ae04b..0000000 --- a/third_party/astrolabe/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "astrolabe", - "version": "0.10.1", - "license": "AGPL-3.0-or-later", - "engines": { - "node": "^22.0.0", - "npm": "^10.5.0" - }, - "scripts": { - "build": "vite build", - "dev": "vite --mode development build", - "watch": "vite --mode development build --watch", - "lint": "eslint src", - "stylelint": "stylelint src/**/*.vue src/**/*.scss src/**/*.css" - }, - "type": "module", - "browserslist": [ - "extends @nextcloud/browserslist-config" - ], - "dependencies": { - "@nextcloud/axios": "^2.5.1", - "@nextcloud/dialogs": "^7.2.0", - "@nextcloud/initial-state": "^3.0.0", - "@nextcloud/l10n": "^3.1.0", - "@nextcloud/router": "^3.0.1", - "@nextcloud/vue": "^9.3.3", - "markdown-it": "^14.1.0", - "plotly.js-dist-min": "^3.0.0", - "vue": "^3.0.0", - "vue-material-design-icons": "^5.3.1" - }, - "devDependencies": { - "@nextcloud/browserslist-config": "3.1.2", - "@nextcloud/eslint-config": "8.4.2", - "@nextcloud/stylelint-config": "3.1.1", - "@vitejs/plugin-vue": "^6.0.3", - "sass-embedded": "^1.97.1", - "terser": "5.44.1", - "vite": "7.2.7" - } -} diff --git a/third_party/astrolabe/psalm-baseline.xml b/third_party/astrolabe/psalm-baseline.xml deleted file mode 100644 index b4c0207..0000000 --- a/third_party/astrolabe/psalm-baseline.xml +++ /dev/null @@ -1,488 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - getBody()]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - getBody()]]> - getBody()]]> - - - getBody()]]> - getBody()]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - getBody()]]> - getBody()]]> - getBody()]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - , - * error?: string - * }]]> - - - , - * total_found?: int, - * algorithm_used?: string, - * error?: string - * }]]> - - - - , - * error?: string - * }]]> - - - - - - - - - - - - - - - - - config->getSystemValue('mcp_server_public_url', $this->baseUrl)]]> - - - getBody()]]> - getBody()]]> - getBody()]]> - getBody()]]> - getBody()]]> - getBody()]]> - getBody()]]> - getBody()]]> - getBody()]]> - getBody()]]> - getBody()]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $eventConfig['event']]]> - - - - - - - - - ]]> - $eventConfig['event'], - $preset['events'] - )]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/third_party/astrolabe/psalm.xml b/third_party/astrolabe/psalm.xml deleted file mode 100644 index 920055b..0000000 --- a/third_party/astrolabe/psalm.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - diff --git a/third_party/astrolabe/rector.php b/third_party/astrolabe/rector.php deleted file mode 100644 index 32a7586..0000000 --- a/third_party/astrolabe/rector.php +++ /dev/null @@ -1,30 +0,0 @@ -withPaths([ - __DIR__ . '/lib', - __DIR__ . '/tests', - ]) - ->withPhpSets(php80: true) - ->withPreparedSets( - deadCode: true, - codeQuality: true, - codingStyle: true, - typeDeclarations: true, - privatization: true, - instanceOf: true, - earlyReturn: true, - strictBooleans: true, - carbon: true, - rectorPreset: true, - phpunitCodeQuality: true, - doctrineCodeQuality: true, - symfonyCodeQuality: true, - symfonyConfigs: true, - twig: true, - phpunit: true, - ); diff --git a/third_party/astrolabe/screenshots/01-unified-search-astrolabe.png b/third_party/astrolabe/screenshots/01-unified-search-astrolabe.png deleted file mode 100644 index 805836286e3e46573f2036fcbc1c6323de18d362..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 753978 zcmb5VWn5HU_%4h=C?Y5g($Xa@F@Q7*j0lnf(u~A_bPS--fQi3uf5it*R_IQt0@xPr@D`Yg+-vOB=-gj3#SJQ>n<1% z2e?zYR2~ETusg}?ILUrAH+F(R?dUZjw&qwK#`OHp=*`ScfggS$`e)C?1o*@RpV7<8 zYYu&;!vLKq|8&xTS~$5He>BIkw1e83b32-TG&i?%w1PVA-D#4r6kXh3z)XOjc9dJj+d-e(eT_q-?O z%*!Bse)a>@MGIC@H$8JhI9`XKRAz!$2p(M@S%lmJg!uc<_jY#T-~a!)W|O9mz4h;# zzMt>PQ2zTC7Ms#X?pVm(|J=P#nfg(V$B!e(^gj=Ng%pHXOg;WdAMu}eV@a946YP!k zjT>-a`2L?~a_wdA_+!V%U9)WhQk~fUZi6)} zgL$-uuA*z^`l>^w>2@d+L6SSWNSu*RGK9GRDU|%k>P(x@IAq;XdFLs|nV2X-QmjNS@={9>D!i`^-;tQGJ^; zy~3qa7Os+tmw0N1^8DiJeLK(}u(1WTng2AG-W@Withr}w=OYgDRDN~e5Svw`q(=>1 zdZC|Xe^=l?t%*RN@ys>@pIldpyYVR@-EPFg(Fmh}7!M{hLr`mYvQ|JD*dnr*N-z15$ zb2Ei%D%7G-Mvo|xpR@Vpyaj8(6s*oYDSzEh`j5{2^+%*y?-A2|TUX`0e*u0d(!Si~ zV@zrikJ zK~2I{sg&+lkq%yZ#7?=p>8h4kF-PdaX738r9qC;W{5ATY%hFIIV9rZ3B%OWWnDzrr zD8FbQoT=>r{zh6DCcXrSVMbVu6zQCn8Q@aZU3`f-P4 z+<~rQzYGObyMj?yFs5NJW#sogDVZcLts3{({Li}T@|QE!wZa{iL+QLVW^D(oX@VKA z5(<|?Lqc#~dt@3kKZA^zO@Hj=#{0LN^pOxN8=I7>4`V&hbhpcrB53VmK)$@3;{!fO z%%kyY_A%WaG?_-~kAmFy=N*2>IKnzRTFx9$Oi=sHv!^eyie0lP&%k`|qC89q(0xE0{U^yI*p}RB$e^ z9)6yYh*Z;f2LC{ZN11j`fNZ+;754h%?>_X)iBuZIqTm`fAE%dOz3&KWP#*62ExLV+ z|5{ZnEFw`VYU=iA&g0`_lPS{cWOfdYOdT!-W@cthJw1+V1$b#Z3u}LHd)Y5TGk!p3 z-g)y)!LUSXqQ6JO!ixIrpSHRAf#G`6|0vL(A)=GOIZW?tvd+Y-2zA z1ngvz));1OH|5>_<1*>rjE;}LdHXi52&Tif1U5Hkj*E*^pQKk+*7>PwfpKV2mpI~l z58;_fmHUqg_Dv~+AXyfcA|LGacH$9dvtzS5gmoE|9m>^e@Ybp}Pj1SWo}Y`IZDSi#uwCn=;_O5u9kuQDNt(0+g`GCrGMtW~9dDE$2w2|!dx};x z#epPX!bBdg2Zjlp4|sX9yUBP>lFpSqH{0p℞|exHIW9PrP%aft{@;q%G~1_6|6W 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�eDTHI2Ba!eW_Nn)YY zXx;o?{twF42QuE#+Q3!3D7(4&pU418PS8>Ye@_X)3kqJdt=JcDJ$&_Re*V;FQ@2zD7ORzk;zNM`m(<9 z(h%iRLUCVRVEVWD3()90No1ni^pBhh1H;9e4xq`Bc27wLxWxhXpr>KrlVFLXGfeS9 zxPPu`OmV;y$2fu;1L-)PS28`AXaeclp+FS{Y=W^UkSAAOrdq6n!}=-o`~g3VVq7Ub zDM&pfuGHBVo*^}#rgq+*(&08(a>aPtO#JtXKFcmM+)3jJz88Q2aEaY#Ey!VO;pcWY z^$d-hXiujhtUfF@?;)HC^G>W&6f9jQ|YEV6KK$nJ9Ba%F`yJeY$7rV&*V0g@l+u~sM z_EY{4%H0WB!C{kiiHxjlhL>xy-%@dU5f+wB*ext0ItT|8E!21b15r6rI3MOzdZzZa zD+{*VH~2-~|1Pw_x(5_EIN&_JT8z$8fE9r!e$j5Y(!y0kH<-QGN;Vj&vs66u`^;7= zCX@bKD>_6hN~o1XBn2s-X9(52nfw%(@ujr50A#cBaR+z{YA&DlN8YEWo&8SCf!p?McP%Mi(8pr1{D7>uN!3z)~s( z`G`;bhGyz=s1Tay^mrwIvx{Wym9*8jJmpG^N@p&GNBj;DwE9-}Qei6v zTt&p(;2JKiI$A`o$03WW&!X+koIJz82DSP+P^U}WhwC6u4y{O`LGV=>x6NAR*}}$+ z3LR@Lel@UmDY-U=9QON)_4L;)H96S~%k)_2w|F$M@TW9_;?3*=Pw+J{Czv{)2M7AH zEt0xalUdrm)_X$#qu6*T;n4)plPMGq0T0@vFcIEwCD6w!)lG zc`>=CwboZeR}9n|>uZC|A9eVrU{8+lca8*I>S1>2qRn2q?VF%J7Yd}JK0#Wm(>U3K zO2Cqp$(Xja2^3{nQ2lI2A=!{$P;WKfQ-$ZQwKi4)R-E9x5)a8%K?Oe`ZS~zMZvv)0#wpXQ4O2s`5{;Fk_u@@dt zu<3^hwux%$y;)%GS{qPoU*3q`LNPSP^>g>Z%^(NV?Se3F-f`-=ntv813&kc0C#6xq z$aJj+OX%VszmZXGMU2x*oDNGNA6~>NU$BwFFcLAokQuBI6w%5%?&)g3IRr zoDl$B6HK0qP9g+r>zBRk@_ho!dSlcTws<*0pT zuQZs{5-ol2BP3XO$H|BxsgJ*^bodTjb6n$*TH{uR%av{3{=m!(#fj9uBBKpaq0Th_9DhsFdw#hds+1I_}O*ml^Hh zl=j@h-~r|X`?XUz!4HVLxYgZ@cao(4hpV@WYV&=%hM}~j#jUs%cPQ=@cXtc!Zo#F+ z-QC??f zT(q4HV4?8TrQNsGuZ<$@0W^BZYZb~ZB@)mnTY8jzh@xX@o0lW%5_FGJi(haOG;=rW=Yclsy>2~wW@#OmofPEX@wIGhCMM-Muqyw zFBYev+7QOV*{5eg(%w9pO6FTy)@JZwuj*W$8KhgD>se>V3{6gj&?V6Mg2Rd`U5tHW zlQbP|@pk`4yI5FkPB(_0dXzu*0Lzgk_A!$6Ctq$(aXRW;P72Gm=fqa`)#^(9GUd7K zxY)trr_MRVhyfUsHz595d?cr}6a^sG4+(b%x~_0vE@{{ly+Ul>tD5wbD^tQ2L4g@o z8jZ5S@^WmAqZ2xsOv*exhk%kB#w8KhM5(j(JZ-lfubYMs@2d!dfD7&0)JcI};||&8 z7@+apRMl<~5^M73@2AAEB%d=vStb}8j1iU2;iM&eqJ3)f3pPOmJUbkVyfe0bN3a!I z-|m}&6pki>CADc{sZ+DzpwAgn1WU*nD3I}<*GVM}H@?}71yvDcm1g`F=hoRR=M!e6 zu>(Bn?|{PY8c9G&>F?y%YdGfD&$SciwN8O#1hb^WuxMl`zTv$RHF~&1O0>{Evrnl# zX364(Df;2_fP!hS;w1_X^OR?;R~4_CA7mDr<40*w2Ez`207i4(!HV&V9*%a5 z@w*#3F{N(mulO;ud2j_XB&Ko5yQ55bcYNj_MacYJrJ3#Z?GT9Cf5uMP{*$q$ zcw8HEv?A6mT|KPg+cuXOBrKu%LYAhRbKrEW0o*1qxS=ECUFH6u87N`faCn zj`Y$+8Xsc{Pfzs_5)ev|e0aipC%h3i6l!4Nt zDmlLnt^C^BhiQK=pP4{Dx&5l$jjO+EJtGs;Vz6+1R5U9IrP^c>Uk zT(p|=9r%jBR9)pQpdh$Af8P9$Oedt=g9AGxQ^Nod9f>Ib@J8)yCqV*}QWvGt$h5yi zYi-;}!1VnAf6JKCy4$PD@V8#TW=Cog>GK%Yuv1$wq<_En>i%LOII-){A$y}jmA#uV z;im!8bKz0w-dpTh@;TdUp2%M#q_`AluBa0Lmpq0gp*4lsmbS`3c~c3AW>y4oAl+{t zYJ0AXN05N1lXMk}*Bcd`J*>h?1hOS_36VF2XA;<;c0p%iGnLJSf<-N-N=apu7ibYH zbC^@9Qo--f_Q7Y5w(r>AR5ieb*+16Ia3U_qV%28nk&KpL8xU3bAV$F}#nhH*cnV4B zO$nlDsyY)}y?9YdU*SQ{Oqfk_P1vpmnQ%m75c}#!Ke#x`&ilP}q-(#vhF^MJd@H5w zs7@nB1_-UW_VpX5etz! z9>;?N+X$?=q(;3l+8>vLX$ROx!}1QAHuaRQ?KhZfwYtjo>ufvAelI`%6gKWIWY2_X zPL}eD0VWX?UQ-#M0-KpyO|KYhH~DM_Uu(OJ9@j36_?uhVqylcJIF^e;vL6}yvSqr# zF5b9CQ0OYGu@RMYoTU!pbJaR|*R;lNUV7#JK76*_R)eoh5vydW9fGv1K%Dp`C38NL zy6)47h`W42#ZQsXs*orZ3?R?|*5o~Vu5elE95^mD(OtlC>E@VunVPiYODvW)A=t)E(CVI4ZdF%dwk^StnkEr|#kpm_P+@=K|4w%b9&+|AxpL0Z zQk27B#4uBwREiK*XUruP7#IF<-MEkxp@07n=g>)KdOXS|0|JaEl_hh;kC(^pt110f zixRe@O#krBXR^L(F5LO>Pcglf5=giCkxaPe+8H*9Wa8)^=|8-rdGaRBC@2qBe;Qab z+1Kf{w^0Oqi#EPLmR@(L zY|=TWHfYUlI+?VRU&rrwCJW^$Ru}XW3m^E$*-Tn71&<7H;NFnrP?)|>u-b3Z&R#2@ zyiSmW!poOrh{Kxm!VGH?@n_0Rl7rBWaR2||tM~tpFYBfK#*L{0eT%!3I{8>rIgkv! zvbDh&oj^uT#^L}ErKp2UT9ROClLX#`B%u&AQa{o_#iCg0^eDC~zt`j_-zqJ?IylEK z_JGlHOC=f;<0rLx5?7gY=#o9X`4EAicQFDmu_mEfY!HA-6~1c-j8>f-tHi~6Vc|R4Rim!>W$=qRO&Xo4^?vom+KZn^T2cG;Q@#8nX<92YpTq>W6mw> zSc45sft=Mu_ci9XY*Vc1;qK(hv!k$u?)^AoN`@;xODH+5ST8q&sbK}XI92vVf*RZ= zF>*ul-25gr7=rG^cnTC$TU z5TT|l>LMdL?v*EY$ADTWy9w|xE2wF(ncC*5$)e5EpGpmXk8p9ILIr9hCR85{Io9udr5dR&RD zpF0GCMiE^elMD_xOtZx=F+kD=)yJeUl8v4fn=cNP>Jl9W1IxS^C@6H1u$ zAFl*|li1wLkoZ;Pc;~mK->9kw@`|^O!J%NVUC(KpdnLV25pq?`^f|x4XWa1WJ$j=( zYB{Az9D=4+xqGlMB14KCI7KI4b@Yona*6YZuY44W<;%RKW7~y1J8Ijf&W(bKpCe#< zDay5J30RBeQZ57LY0Af+=(?>v)mCw6$=~GrD>fN&!u--_x0-o_&6MJR&c6x|;a6I- zk`zsMB6778Z_kX&jlSw4H{XJ!M>HuMQm0>*NeU!5=MLv3oe>c$g~A(B&^v)gDx+3e zV(F3ZJLZcj{R~qk=v)mpzgN2Wn$+f!6ejhzlUiq=X-N!t+C$wLq%!-^N2}-%1l~e( zc0>w*DcAKssp4BbIsb9?9K4o`uSVT~ znsGW|M)=yA-PqZ@H{CW02NG}RYJO+CI>|zzUbF66R6leJuD3L-oV?&$U(Xq7E>YU2 z9>DNdgh>&)uM7?@6)p#z2gRG8V1l5DRM{bU%|iEK+Y1<{s9m;*W0MNf!5ly4$+!s* z$lwj+1Gc!K%(Y6lNc@>xo=kW-p4RVYI)f=2Qc_=b zjsQm)9xL@#d}@es>ahbgPSOSSO^#dDpF7zULka8DD0WxEw z7oEVDsS?OYnM1TPK6JuSezcTy4)h!@kD@QVN#?9H(G`>S1pCF*o}~isL3Fjiwe=WG z3g{jte1(Y)*InN8++*MUSJn)TVid^r>fHXTYa~nRYa@EfgeJSC8BMyR{?W)N-1qX> zlBQVIi~(X+i`}e-0LJEI)ztu4)=quUCl5(5>X@hKCR5yX6csWH+7{3V`zUU$m-dKd zPxl~HjHQwcv7iHMb!vj5|FD43iPQp)eF9x<&!OiS8C7}X^+xq&SUoeU8U>> zPvp~j4WgArgjA4h3$46-;-U%@ho`q#Jw0oSld}0WW~IBvq1A?n_H4&Qi3k}Fe^6?^ zZEnI`oV%SsZHW1Qky4+f*z@-_)LzANgz74ic=eq1q6^t*YKx$D_|D#Picv=mxF9d%(F6G`AvAU|y$ z|ByrO%6iqUs{Cx|*LU4&`(QO{alqQ>%e;WV`v&4q`_qIPMpLozvvHCbJJgn^SmCnd z!=tqQwaqE^XaXHtv2tqpQ{6(-(QjO+C`47Z{>nNjo!y3s37@{2s4geI)}iP0^c1lI zS#V~VA*F|wU1@+(yR)FPbmdZK;v|oAxVpC7QBLCZnnIH^k3x%mB(F2WNSd*`LzWlX ziJ**LbB(+;&DyI5sI3#nwav*PRb%6@H3D|{jbcBdbdN&3<#mq3Pv;-!T2g16t3bxk zp2ycQocYaM{16B|%%n$EKP(LK<#Na(<7oEkw>ux1k?CU(FWMYC-PEc~V`*68Ct_{% zv7fEncZnlA7iGWPbvAeB?bK7r>MBP?uOZMz0P8vpwxWHK4;dLguya zF~2$oN2yYvqceqa>zZxfOO;Pt&BgN9Jr+_5Y1eK(Gvm#Se5tl==tNb4V@P`5D~4&q z3+xwbe4PAd&+Om9QuHHg=VreGHDJpM*EP zyzK949@lKN1j!Z6DmO8+ogp=_qy|!;DAS6<6A<7d>4%~!Gn;Rr!+wlE5K=ZUC$Kw! zWVCDSnQ$~lDHF`G=Vei-K*j+`hu+c&iqSFQ*2$W^?)2W6zt{31;=(W%XS&B0PxhFD z7IErVzUMqJx&89j*_SM_8|(>lP*SwCnefvhts4PM{+=34qc$pU{Oiq8kJ2G$!DyAX zK=sYujgS2!RqY9DX+9Fl-*yU+=MDEYC>2^=A>pFR9*WTujH59Pp+IbFl4r!xu(4?~ zbMARIOUU~)JH`?6?XXEes+066Oed#lm3Y6qJvi7c#&uWc^}N)tsmZc+V5vy(Kh(-t z&gjP!lS=dt^5JEu>P_&BC(cMg(9YC@Sp9iB_g=Oi*Tr@Ys>@QZTpb&zR_)+d`W*x) zE=t>iR=ySp_l-M_{?uAt+BsM@+6MZ8d||`B0FAK*L6O{?M#ftKk32go#h|8NXS396 zjZH7ymmu>>sce9n;aS&&9&S`~C7qzJ~|P zo+8tSv8R;gZHA+6^don+pA(I{CE1H(H1@)7VB_psKXs>oRZuDIvZwy^5I(9vZOgrzjTIDTzUI6o&FqPdCoU~rlS3sxT_UJ*-#IDUC46wgYU2Kv~BCOG=1e`Q2R5P=y<5k zGM5#bZ$ld@9geBRKtJF$bewT>?)Q;a4{$l_{zWFI>!QlGKw|>8gN1|N3HsLl^d1Lp z)YsHZoy;uD+&D>Lm$rt=SEgDn)_=8tZ3_J|&-9E1A9u!ZOO356~cS{DQj1 zxV5kDr{YkQyrUjdO8ssn@l8T2vLD0j(r?)eCN2tl8?@%T@Bs`DL1tHt#>huGTp@_QUy25|d_5lfIBm6X|Go>feihe*VMZmSt6lt( z(_anvKsrW&=a>wm8{6QKmJGXS6CbyRZ2rFVBmSCiOz}~=kvMLRp{5``+OUKtsPydO zfKaEGCipT3GAjgn;yW?D&c?p=Jq+e=pE?;QmeHhls+?yj1()KDEHwoIW@Q%j_4Ne} zdBp!yQ59Dsmq$EZ~RqHpnu-Qypq4I8ONunztOVfi!tp}nyQdq zsZxp2xGt+v>CX*2WUwr2!jqX7pLR60%j|h|gTw64fw=1y6V*+sX}YfK7%wR+Q5g)-Y!ELp42&8-UXg1m>Bd@jyJ*^K z+x3~iVM@ybY9n0fDfs!5L|cx=&Ywf^G}x8FNs%2&2R@FBsy^3H55N9lGC2s|;SosJ zYgXQ-eP18`^FDbvQ<1o!d&TA)Pp$_foqAfgg<63w*h(WjTqRvej1G0Cikwd`vC^=_ z)l?L7jDP*Kv!Xx+N%bRcWhYIlXxlo^S5t-ivaqC$q9Uu2*8tmQ?Kb|QBEf)-b9WmZ zn-d8HKRhD=;xPuaS_>UcG?4m}@@7sd|JMR(sppbu*(p%+y^?PYj_<-Bamh0l8=oIw8350ZZoaIcbDQ zNdc!<6rv?qTchA?4X^z@9=BPJ)GcLtOnWG`5^v>4N*9tHN{0$Dns|2a!{+{AjX-Dq zV8n2lqe-ZD{#Xg2aeB5&q`zR#CP(}ziYmlDjc{BWV#%w_-It1=u`yUMyi5@n3smOlj%nOIl6ayOlHxB3TMg z{P}AbnVr8SW6`)=5gm(0VDm;49S}hwgJPmW?9V4gzMJ%uon))|vvZDd3i9J5Bpduu zqOcDDBGI4u2}Au>ReE;)#74$fe9mT48m@YRCG@SwCF5I%Lod2-3WQv$rj^jWu=I)| zccNIYzo1?7IQM^0QoVS?9O_1DNw*`H*#Geq;ajT*?5OPdn)7tuT$?)ifRBxKs9|-l z-*c5pPuT~lTzvKBBubSdxeH{UPp*0r{Sv3P+Civ1wyCw0L=LPIyL>n#rR@7;zPoxr zx6d$bAMnt*6GMs3NbyMQ3&YFI`z1hOdBmgrP6GML6*>+Oz7JvyQ10Ti^|033yf#J0 z%Y5O$7pwow46}{mogv_OkUn3n>ism-KQ#!F@%3uDI6UFE*O|MyNT=p2C>K4nDp%e| z;BZD^Hgr5-wvbb2oj6u~wNp?-U2{R8B=kdwc30pTxJ^~7g&+-Pn8J;2m{*AR;NUl< zskoftiwTaDLXIig$o~%Z(r;Jx&1P{f@Ev0A6Pc`KzVtIjS{R6I-GglIilQ2~w0zC* zRCZ6Uz7y{c-?|mfZnj#tOUanD8aK{7ysE0MScQ4xxa}} z5LM}CSqMhNyM4iYJFI7e8%8`NK$0{`8~qWO`n1?&lY}9@C!%&hPS(1tD=ObI_rvvI z?ZPQA&-=@qD3Z%+j)K?ETj|pHT>7fnvpf7a#W^uZ^9o`o)k;_Dd;I?%{U-~!>jm|8 z#$8CeRy(El57VC<$_!P>dKjdl!wjvQI#r;p8kXnD&#k#Hyly^(yn8V%81%~Q@KY;? zKyB;a3Y;h%j_GwwKZv}YcfAgR{>dzk?A*Y7ic-%{?2n_?Wxi%xU~CbOk?kBEn;&83U7XZCdYg?fTrCreQVE)x|djD;#$I$Hhu=l4oo2pJWH9<%OQ z1if;Km*^%ad@G^jFu>;k^H~fGeKijPhlZXkr>HdE|Dz{=3|v!LFKHNP@ulX93STFf z_lwC69k%gG-)bS*FvON>k1IY$ z5b}GrT;##ILSuvYyHc2Om#Ifq13yQbvUl z9z1`+Z5hjyY*G8qBcjKLpgM?)jN&wl3^_yYR;u~xxkO{L*X_d>mFO2m_yqBB^qg?< z++_9&^(y`56YMGa^s16T(j$XX*nx1@(|ac(=tPE#N?x?o-%Zm_T!H@?Neb0oRo~@( zj@@_D*s9VhfVzCbV&Nh2>0^GJxu|yP0F^-w;CtNsg`+4~Zgk6B>qT(*6=f=QS6rYW z0tdssC8O@jICRZ1&ACF06O5yHgA&KR&IG)y*R7Qf) z!7!{jT>n{=!{_j0sq(Fis5A&+tVD&R{)6G2o|`jqG5HYWH@IPAu8btssrnw-Td4H* zBl3;20`u|J@7&gvpNt_ozkJ7I2)4ooI0d{&c%scS>}qMF?Q$*%iWd!(g>PCXtU4Ti zZv^#2vZVfZLQ+DMEf-0%NOb~6sSd_5WPmCz+aTQ=@Fnir3DN!GOFYBd`N?_lkkH|l zwbo1KZAxqRvj`Q?2+xaC0eU=7+F2-X25JRS3AEKEqP&yE2Tb9_b+pd`6FwL5T_-u^Xq=T>y7U6 zGf(l5Vp^^@m{I_sG?kqX>~eRNxh{(+;8Ld=85)Zg$=KjucmB2hYo4Kxy#Z{y+SSK^ z3bun9&%USMel69->0Bw7_yjTjlN z>h=AL(j|ppvPYg98H5l4&d>mJanM~4-bVNDS?@?JrW z93wx7`?uw@SxSgq!wg_bb?>)+4}V2!;ymMg0#{iJKsHkg*D5XsXYh^mOFGg4`Igvt z&f3Y>n>IcHzDkw}6aI}uJ>W5r&;0i08?=Q_0gUG35IwyL$xEh-lQwY}&;zTjb(mkp z_s{W!mVWeDrR6f^leT^zd70doOp1IM!Hm}Raen{q%oG$3kL#SKxzE0fxhk1>Q4Mx* z9~#Qn9Z-&O$g1@|LV<=@R9*}2u8=ECtFdZGVI%k> z<%LUb=_h$Hx1N{K$z@-L=#6tEFCQI7=q9E7+4YuP&YY+GLx(XI${ZWQNX0l`exlUj zXHw${(KPJqP{Nqg6e^rs_Ldc*sY+V_3Snb~irFFm8snW0?PKM!ZR|zaz9N;gkJI6G>r?BITv3JESV96hFq4AD^7~&|f}7 z5ehHtM{&XvW;+=_m~i&3^mO=EGO?TODO|I+L|L#B=lC|>!RNb)`NzA>VTT@;{_Af% zQ~PVB;R!i`kA4jtBLDXNNY;P5j@1?5X7Ip>rH5R+3wIzB$pylr7I)caRDID5*SbC5 za?j5XjP?+Pl&+O>s3_t4y$C%`Y08#cpSyb9jksGnsmf~YoxM-5P`?M~Jo!*nSJjk; zoNzRi6wtdxa?D089_Wo*z{41yzjq?7HCh_(ruA>+%2j}ZH z5i>F6Gf;lpr_+=R6NXS=M>+7D%GqFPOg76^aP}%)OdTD#rXg6f;UIu`)Pf*e=-0%` zXN7VVrlMF$e+9h|)-SG1qNePH!twmNO z**F9(u?Rd{O=6^Z{YY>`fle}%IHl9jhL$ON20m1qO-nH3vY1d`#bjY+pCu+Ks4P5Z z&1f~7(Yfa>@jPFCG1v6|(VM(MEn8HLjxN6MEv4&U1){QocTP14ady)l6U(Di zhmzXcudd^;qS1^nFiO4LUdC3^1}*15B$=5eB;%TdWq-s31+8z@J)fILNu?s;@>JPt z_T3hN_{kp|&blW>;o8FZtq@yD>*vtlXNbY|OUbY!_{dMJra1O%udBnQH;c4`1V$(^BCj$WHvPOW~VDMCXpqE>g$RD4S(Yt z_17w!<6z_IPADeyij>EY(393XLDq+*wwmr=7~}D{OV%D?!t%0dm2q$akmW#+*|8pe zdMh3^0Hn2G*h7j4Bn3)6yplq`2O@L+cO7KZQS^qm?3%K3N7-yeI{$sg<5v3)vm5eQ zui1jQyeI%en?)F@gT_?)C+-5zFLOR2@u4i!BGa8`O}TVo??T?1u$HpQZ~iWm)$RuH zw8$8-pJ8F)(2GA}1!7@+O2j}@+eM{Q`91sHXeK%cAuNfk_;(V!lzV48A9Jxi|VNEiij+2E4-)mYj%f+hYuy&wqzHZT3`!v>T)dm zNPIX!5E2+D`h3-g$h?iy^AOBTCzZSQ3HU3s*Ur0_F_!k3s@az(nJv}U%6H{#wNcts zzQZ$U5}qKv63Zgp%jkYuRQ}OY(kz6&8FReDQ`!3@ zL;*pvom$~#G|2t3AbpLICKG-ZwVDA;mm50ld6;rU2GjHf<`RoMBIx8Pav;YJ;f24Ip)*WT>R zt)E|jXj9i?yP@zZo7pzXO+z1@zWV9A?QNUG_E1j`eC;v{n@#8M4u5xU;F_~&6_1N} zRr{O9!{i8P@1Vg4!=EJ9z#RkSWz^zwrde|^VyrfZgL9eC;O(uv_3C&98@1o#k)&sE zr^6vIwzi8^L(fXRs$(RzZmC{#`wxiU2FoSqnSPRY-)7mo5Y=cQ+1xn#j_a>R$60J* zjX&YV95^*;FoN$LWs3g|p73!&zJ8L9-gx5T72QP&AmH)%WBF7zcc9%5P+d2RzifD; zfBC9v-@A8VaeL&K^Ljr1dN~-q_;=K=ed%!@2wh{Yd)0?VNJ#jRsq<1K%XL0_JjP6Y85_{Q@M-gF#f`wz=f?iUUtbH~rl4+Y@p<85iWGn6Rml4+SYLzitSBJ-) zY|~zZ&C{@w0p&pWnIpw`i1npDtB&Y;##VpwTGFC+{NMFI5A&NLhMgp_4nOtN?d|D> zZ5NV1D_c)OSk(jX8{LAAsG;i8UaIZpNo?t7KV+UYc%_ZL9WYN-44U>f~#wH zr=@znol}c9_(mxZ*X^}Q>rF%M-UZiY2%Mig@qO9~v#t5w&P{jp2DIBvePN7RE9Ayp zBk(G??$J-geGif}852J^wjp%ba^nX+A09s(@db%_AK>w0>G?mi*}vVlJ-l|?7){Hq zWp!NLKv_<1Q%Io#o@I1J!)Uj|RxnN62CUQ^onS*{jy05n*-J6TriHz%|Mn@sp**mOB| zqlQB)c{7BqHCP20TRM)n%xih%bm6gKaNg2d`Nl19t+cVry|dEX`&nI!8cODHuP#na zB{GS6L_2oaMyvA?<(Osg-vFBVO7i_- z8<%u8k5>nlWEQ-wt5=~ME=;ik#ruGs_VCTjr(DeI<}YTwPDW6d@i_$i@NLrTxPSR* zVCz|A_r~#7bLp>|e{w%`^=mBk+hp;U!VV*jT(b#BYR?%}En6Yl+0p-1zj zorfvLgnBLO?JE~Ze?F{q2rNU_iXZnCBy}$$Qeo(OuI>zVT*%e+gwP*Y3xNn4uNbZx zA&gK1%y`pg+Den>z?dOCi>xrwo=*JDhmDoiV*#w+ke6caxAjn;geW7&!x(OGLgp37 ze?7)V;R$~+ODhm^zrp?3S_#!OX13UJC%fmNBOSq|8h_zO5j+>sb9#K_cIuI@FM3~b z$?e7vdYYm15Oy|p0soN};)Z*_mTp)rTBzGo^pCE5_aU!&eT{#ZMcC`@gk1KfOYTAx zso8-4-h{TFxKjF4ykBvtAAUdOo;T5XnE`?+w2?72p9oR-cL-nZ*9~^_>@19pqfHh~ zdWKMA+rK(w`o45_IL=Ty7$%=Xh7@C8@laOH1Q^sHLnwk#M@)QQQ~Bot0s{ku3a<}7 zKs6MxS~k6G^!#7%9u`5}!TI_5m#a{1T#*EZI>hz56tge=#R#)ybjdPnCmU2@a>g{M=Nliu*EnE2-~OMBR48=00u zUtTq&%uenhE9DzC?-X#Y9AS0)#LEtx1RzWIN0vmo*pRln1Q{o$ahhsrltKt@#q%Hr z+bm08S7o{Y|Db$&(W+oPK?-ZE6#yrO9oQ78l zi^#dHeZyHqkU&qr#!}>>nJ$4LW&fC0Y2;BsBac0QyR*Av8nd!4x_6cjSvMP-%7%{1 z-NBES2P*D|7Hvy@cU15dUfu#WNEslIcKyqY_!bFaDI^FALG+CP3B8ql0l~vmhFV7oxorsY2SV z@H(4?^thgxS;(vLFk=q|bz=Vb#GR6=c*y9afvv#V}$#u&D_IG5eOUhT( zFu><~7F*9hRgAK5cez0GJiu9qnz)*~i5W~0aj^}ItqLr6unQsC1oZbJ#y%Xcf3%tD zwD8q3W6o832FrYj25lhNKpXZT(E%#)@0Ck78-^jRFrf|RK5YK4X+Y! z29?U=6MSBo+Fdq@tq!0->`km4Z%VvzT3er?@L2tob;m{7RHRodSLb=CK5G5Xf<@Nn zgh#YY=i7L(mhx5Tv7~Hg|FT#xYh92AIak;NdWEDppKBUw+`sVzsZ+@HNtirC#vv45 z6YU&(iZ;&a4fiwfl1b98ovLg$RLuX>=38Yzy6iLJ0zR9|I#lIWm~vL7n|LZ9&3XRf zbj|qX`iLfC9tSK-3op}7?T<8Zg2qwX1Ge*l-|9>#&y{-Z{lr%*TBP(_;*Af_!b*ee zo_4VP%{@G=Xr92^+blwPEz2Pf%hz24hMzSIOq}NJy|Iul>^koh?p}rWX84?zDq*V^ zLYrGQF=Xeheq#@oav2~Bb-!|sd!GZ=Urpf%m|jW2zJ~V8YzwLH3@ru@ACBw)8ZDd) z#xD5Xsjlm8uU9|q%9>mehiD!m@4Xqkei=drhfFLP5YaOU;zj!JM`~s9502&v`w+1 z%tN!vOy*d@3{BWJ;60|tgw1v~XzNauYsM~dcbgO~&J^}Lwr!6`KQdR4d8Qroo>75} zZHZdiJXZBo(n2-H9TC+Uf%arbURj?kS9PLlt_yzzeB?17J7HBlVPz@3w{p)En#;-j z3dBuRvO`o(2Njoflrgnc@aK}sr`i6Zy_X|Tn|(?Dv-Xl4Uib|(Ulqmejs-%LOmahx zXd%q=a%Qko;UoEjY=1+WLF=KZP52ifqk8O|lv}^U+0oIG*w&H%bF_UC2qbyS(8;I0U&|svO?GVn}}1Ml_Nyo=m4GzaJg4>fJ}l3kawz%hE=ZgJT?GdHrk>UQvEWp zi2Y7>|NcZ$H+1~|w}W{zgw1c;pep2zR@V5yO)z4jyNMq7Frc#YX!MeebGhq1lM`_P zxUsA9lGiCC26#WJ3xTj>07v|xYfNt(Ox-(7{FnbQAGX$9b|@24zpKB+k{ zc3E?W@v20>5{aUb%7WU*ZVaq!B81le-nL)}>V0!1b^O+suM>q*P(|b>Xp?27`#d_Q zvOAE@GxKpZv5qOv`{t>cRhnK;vm(m1NLdZDBGd4VkZGbOkwyh4D`3lroxHZkAq9qh zFPE%3cJ#ptQ_-parfCd%{oB#2G(z_y4<~aH$)5Mp*t~0&)hl8)dD}lak#KU`Da#S1 z?ncQE1Obj&@2&T;5XPcbD5^TPf?I)sV~%fT{(sNi-!WrfE{Mi`Z)n#c)bCF>2d#%| zN86AsU4lRgCQfeT$P%iikmJDLaT(8OlMkbl++Z-s_bKX8Y_UMg==`AW?3&&r`3iM6 zs?lLEGbY#B@t=%GPUtISOK6_zd4O6FJ>%2VuN9{uBF%V>bTdHNFje40e1>U8$+xS? zjI`7S4Es5y;KNkfntbzY!0hUPq&FE)wduh#3 zzEpM&zla8DHva*t+=IaJsgkMhrxHaI)AIRFpk7-z{{9-(VLF#a7n+l)Kly8hz;-N8 zH=Z%(yD2y3V2v~Wqpq+_GNb>@Pq6$u(oopI{8_E=SL($Ze2#5ZZ-G0N?(h9waC)O)dla*Ve%#KRc(m73nkP8i z0lYpaPSMS|-|fMjUWCE@rYFTT@c;1MeqfyCIN#R#91XeL<|*BM()SN$mIL4-e)^b3 za>0_Mj$%86DfV{W3szE8X? zGMH2pcw-N#M;n$%PlH_Vd3=sEP7nS(!@*w`*iZ8jV)ps@97Iyn{bX(1Fha%sxSuF` z%JDlJ;YYnQK#?F9n^Xnu(L|uCfum zLeulSZso_H@kR!Jvt7%-)r@adf>Mo`c0EL|hM7NjTU?gt5ay)!%x^NZ!6n)U+j!{c zE($s6X#5#lo2mW7x-)BkwIaJM7!0i}d;Cj72pv z8eVvyCTv*6{$F^kXPRaaykhKqSYyY_?aF73XcrJ$Jx|cGz9TvLC%<$v7F1r60HFdu z9T+`K?EQJvK!UTe54xjvmt3oeU{21EwY}&Lggb(ByYmFBB4LNCnep z{i@}O)O3>7jr>#L4ntiMwE^Zki$=BysO^n#?j=p5W==>H%TuAZZ$B8rKBBexv6?rg z!T#6vR?XQ!WR}B6h(;|+J|D*@jdwX7%RgNVR;-W}rA(v}d@Zs?T#fXfKkMs~17gaE zK18!B*L*ZfNcyHgCW66jL#d)mxbZn-gnv*$&>gM;-;nFD7Fq^cn`wKDg?@A8bu+YV zJ>RrC#ztQ1?b)rrj-A(Exe;t*o-#$!zPRz|2fas-_`5N8wj9Mg3^ydQ z93AsrJ{#mjof7AM$_*a)rD+hfky>rCT7Vd85rE7=+^=o{2u6mi;L6^2hQQbI;Ynsa z!Gw(7FTkCeEY()URK~QCGy=Mag`Q+ca-N^CwLC|?Jswakc9RIUeh=B;_WXU)vV(zU zlk%j~SRJ>svRA>(KCsXfC#i&Eac(X!QGxd>Jh6x2Kl4AIaF95rbOPnAQ7I^)6b5n9 z>B-_|d2AyDy_M^S@>hY%p^GRej(ykk>^NavnNTHHRMPZ)BuNaJ|m}(sL!Gi+gOyvBZ!9@yR z;1{gdEK$~5Ez%ni<}A!b-~}_VvVmM1YH!gk3JrGgz^@IgJj_D8(PTwA1eSz^5;&_1 zp#31e2r7N(!KiRcY+YFAoF&ED`;&!tc4~y|zfAM|)5cJWg!V zIBVtDb+LoO*QHD&K83n`5>|4@Vv_;X6aKjy-QX%2}-b2G>{^D~KP-*rFv>(u}ee>mPp|cmyP;%wg9S%djm= z{x_BeLaGOt+i&P0%N&x6o~1+{DMV!HAWS9ox3=$1+ouuLSA(7U^*3XWCk*(e9pyn* zQ!NmTIx9II3L}j0ggNQ8S88bc;R4?*{Qf&D-4Apc9j`^$lKeIo|9Iy|q-@$b7 zwdlBC?0R+^^5q)FpZ-LD;W4@sg{X^Vqy*UidNGR|$6_8t`Ij@Iqycx9!p@7;uSJoq zPjtq6IRH(=`_p>4tLpkk9{PFx|6WXX;QDv&ZF#&5f>?0i(w=@D)c=*_>c2NwLC@8) zM$-@7EWR4VtnEWc%?)p4dSiRLy1emlDZ@#`*1@mzHI+T<9AaAb7;&n9UL|`NpJM*| z+a^0=j;Ry<-RFq|N%4tPuzl_q_t~jimb2X-kJHFKm!8fKvH)l7$*x`I)}xuDt0#t- zKX|f62gsa*CGmRew-TRUs zwudGM@NnMH{r&enI|cXy@MLQukU>wZ-B$~WCT+r8_q^Qfk>WV|Sl;K&nkAV53}Y^; zNY|;4C5EhKC;}>~Hkk|}R75mXr8K`4{0P3Wwo}U5DB*ucV=XEmmNoTSN}looSlKp+ zjW#E_=~85|^HuUUju}RvjlIc z-oN_A+?ixt#3#NzZ!~$;tw!&fVt%~UdcPu(o^;)7uuGAD?m0utJJX0Xf|M{mX81a|rX-lLmlLsD%JK@GAztTc>-q|$dsckE3pMc#B=$XLyMOKYs|1+( zPY#g|?Iv1KDZb9)5$%luY`H?)XA}6Vw_7xLY0~yIL7@L}+E4gJow4kug2MinHn`hj ztGc>g;FwZ~6p@dW;ALxjh!a+R;gy;Z5K3`j#BrEK;eyFxspkTNvMu0e{z2aeFAY!Z zI3<@QQ+Jd{LQf(zdK=E6rsy|VDyCzWpeD$S$ly)NQ8C-ma%(uKuor`fPthipUgFOY z1&JRqe^SB}Qa-LpF{stul3$toT>WSjD)v(=nR?@^Qrfn@ID1O&r*r;eeORK&+Fv-G zMcn4& zLGq#uHAxj7O%{5NXM85`K03oQT`IdLu^A!RzWSR1GMmIO*Yy?duwYstK`4vE&uWmr8o0{6vcU6GFs?er-QT)QiaaHPv6AS>!(!q@U15 z8u+IOfwa#yt|h$tt)~H7PSvw8@ZF|!gN;EkY_)Ooye*Hqc5#ZhR$Z`JG$CQNiaInO z?dRN)ajU2x_kKSkzcY4`iF(o7+Ih!XhJld|wK{;J`p*zl;T(}9qqHfRB$G+as7ibu z=P^>=__<$dr8pHKLK;Gm`*8n!o|+aI`^JxYv666wV9YWaY?A^SvS?>d7hQ_+Us?EV zgvrsaEO3XVgGy>|x1vZE)30GO5S1$~Ztckj6Wpcm$<4$#MAtLwE1zZN|Ctyg>X^aU zDyXn^0*+!p2k?yvTefJ2h+k+o2GzTXaA~BqH6t6kSK?Wi$F11;mXFH2WQlkmr)Z&a zjw@ca$q6|`*DZs_Y(6&Vedz8!Z9F!g5$Nd98FPlhL)JKR;C}HDP313PKTU!TWc?brpAxGD$sXzVJl@^{mo% zrmeV>#mI(mmSVV{D~_qFLCv&UqRbZEkoabe_5_q$+>u4rcf+QnIZ=1@bph+K%dkwCF^KtP!Vge`u2#zy4(nF z8*xCmpm}^wt9@fwji#S0-XPO@VXJH+C(3B~)*23>RU1BKsmxfRx9gFOvy zNZ+u4x!b5qL86*ifYWV>RSBV#U3yRr{3ZUdz#TLt$ts^UezF1mU9`t`pYZYbw%DJ{ z6tJ?%X)Ba271!3RQKVw9M{a2Ta>*!s(@inPV)yej6V@mtBf%5&7c8!#D2HUe!5R%i zShczUJ^>R*bEMU$$>F=7VxZGi*alvFH*gF1o>>oeBN6g^8XNYDQIaf^VW!Qwb!VP{ z|32MAw?{EQ-^Fmv)X|@k=){p+)njgj%oUh7Kz#l7M2!? z+4h)m)CbSSHDOLHw{d5e;|wytLT2oD+B|F$LC!~Hs2k*o8gt1g!iTL>XV7?>U##uW zO-qUn!uIPIV#)f<{``#nr7LC*7$uoY(t+-hf31}$4hqv4_s}P6y1RdS6eA%WIrZXA z<*|m_6foUp8C?x-fE$YHX@Hp(b6oQf%}I!=IF1NbqC!Qh^fZbSvyJFV=iZTXF?Op# zTt|l~Iq;oDH??!(JdCIq(OMZ7H*4a*#8IB+AJ(s6f}FMeZ=&OH#7L^#uv+Cdi%zYD zNWmdzPsMDcJK*9>ZbdK;R*8)R1Era((0*l^U{EDqhTFAW<0?vGHQFvRd79wvi&o94 zfP)%OIa3Y6(EsB@LvG(L%eN?NK0;hHen%9Mr%|b>#8VdPJobZa_b8|ljeKS_%9QC4 z3IenQ)4qFy2E|}~N-C4aLg4l875x+UJ*T2Xu-k4^Nax(HkC8uM@rYQT^27W|sy(_G zVtSN)jhGcppRXCmwA~>6+9^Pw1q2t5hG!gGu_|A|QHqoqtYz$o2WU?-S+$(0;#$f; z0Soz02Kfi%eUWZWd5~Z78#gRI?6}3elzF7kvcFK$7nfpnX$dXKoM3<^;CBK zTsZ=XuJ490>hL8EBU7>*ZP0VsV-4v4Su&Y|phi`(&|$-kG+z>p@(ttP*&sE;0xGfm z#e%Jl^#VYN%V#{JD->!>Ie+m@G*oSvpVQRkW7od$MX-?IM1CQXKxVkY{KWG>%gKeyQ}Q)x{qw z@?udBEM)aqjWw>!OS|R{fP`<<79kmS;&7VoSdv|ex=oIj{XYVJU*u_Eg!=TS*U%G> z*~6zWhBRe)*^W~CH7yY>Rs_(Mtw~`EAL9EJDXJ1r6tMvfe3)c;kSNT<99tc+S z0Vz!SV}vBvViK_n7EUr5Jew55??fH^oMB{Z<(0*A&9+Rj;Ik4R6TD0yC zp5(?%kNqn~0=7Q%MRK5U^Eq;(oGyMxrupqu=4upGARP?rWynshgPn-Rm_#Yi-b2)+ z^!qJnvvL@(wp=*tt)uWbqHa&c%SaQia&YS$VK!r5^*U4emF|s(?az_14U)na6MP3! zKVj?|jPtqB@(%A9?2oy(q#v`#{o@a~|HTUzf{VXMtS!{tI*Pt{e3$=FpM3d^t{8|d zhf-Oq7=ko1iPwgv{9E%GJIut05%z^CQb-i5oK)igLVr;|aS4{~)kwd)7mw&co9Qgt zfU_oC(wIkv!p^T?c_8_Xhg@0|JIb1`$gzTvtHFD5%Sx-%FlJ$$l2U5BqHkz7TrELb7XS7P;uaSo1N<)HM1pRfMvL zAp*ka94->#nOA2jlQ~t9EGV=G2%fu8GZi?24R>7ovx`SE{Ml_l5&p^#QeIZVV>`4i znTR?^G2fgdX9}TKE16wdCS6DMOTM8g+i2cQv9V}lT%xSVjHJ>GL8&olI9kdXLxug) zCLKQd2H5UlP@ZlwV79kkR>zepTJnWVby{|LZM?k{SeR2sS{Hv+lnII@elMKhtENl$ z;<7*gZ&Jgf5;t5GJ+ySRkSI1TRcb&*)3lkyZAXYFh3`sAk~Un(HX2i{w^E1Y)@spF zgb-cCCtq!0BcRQ>m7uK0bJAL>-?u!FeyR|Fl+Iaigh!}#p2P|!wbUrbM>rWKH2|z3 zDXap5`m7GJchnrD-ZVuO@;<)fQ`hyA{t_hdTm;{1;!BS^)a{@2glcwd&pZD*)k9?D zodz`&)0bF^#^^RHa{u@zaPW?&s_EA~1PX@hjfj9YDOX-mtAz9sRTs&qRG-<8(*-M@ zf_Mzn&nBZq$#)YYvmgp89B5XhaSlshx5XeyRE-2hI&;fRjucrjcvP#ydyp_u>Vr*z z{@|4#iwt*~bv~f2O(yiqG5sn>2nGYQxV25{0a=~^p1DnXVeLv=^C-!2!&b#)65v&u z7H5f*>)+JafNcMv9pQt8BiD7@mY+-vVa$0&dDuk8Ctm9m*;JHro5nVY*>25gmR29{ z{8Qglr(n8K6}z1(7q(R2)Q($0KN05G8L_Iji$pddt_W28B>RN+DC5(Me_>>0KayPE zDv@u_JfG}tq9ga);?Qii3a}!V0JADux$vi_Azf@=o#4)2l4J5tnl-y#f`5dp;R%$S zg5WaHktmH8Q6^IplIOGFDP%Rf51YzmjS58(8B=Bhp2|E0U!F8%Xdg)}Bon@#`t9N- zRRn&dZc;@;JTWPFCVer|KvVAuh-D&*m)UeQv%&{gl~YYlm=W?RMhlFguS-JBp8&TT)&$TIL@Ko zv}R-8jnlJKXhv?{k&~%`P^IVeZ$XMh6#C51jENe$G?`R^BH_q_)3`qRO{~}CfIRlX zPqxZ1&2&YD22Hwvn)V!N0ovM<({ajuQfz&uiF~Va#W*33xK&L4A$?cgVyyrJF=+|- zsWFk;+Gx%$G(s948#|04ey|c{j7jO^%BVReI~vjFiDwSdZ}0B?@P`yp6Nm*Odx3v? zsvFg3^bY(0zF)U8vIM)iLTP-V3$32!Bn2A`)cH<+w2yt`9GUsa)1wNQ(V%=7DS5h6 zpO*?v0DIbZlu2=|iK8H6AO=HsTrl35Wo4M9T<&*D;tyf^YCO^3#APZwkH z0d20Yo-7PCz|DL(BEYoe;&Z>O+I4I*PH6F3e|4sk-CD~gT4B!N-)E9aub)t{I81$d zgQqnj)Sr4nQwk3 zsx<@PoHs5Qw-dY7HgbUxivOfBUYzM0*o10*bEA0>&y=26oRJIFyp2p}`eBpWY-n0* z%Wd|kA3&Zp=D_nc=fQa%nWx|;=sj893DHBJkBH6u6hbDO4SR18IoLT$4BX+6HLre< zLy3Fphte)mVPuBx)(pkwq#+^q; z_Lb#uEccIa$5k9dX1=T$4lU^X2joJB{PBBhQ?BIRN4`SvYfevS#M~%KB3-IfX8q!; zavAU11Y2zts2w%{OjEM3v2d9&Zou*aD4abbQFMR5nDHnR#u{Pad2*Y;k~VfzRV)lY zlE6&7rf$@>jFdXy)^k=NDStAb+d*Fe{ZZ+$(lY;pL;}toJ~O`g8FEu==Aoud^HvBamK(~(zkM|*#@TlU=3aQ zm_)nC_EuSwMS5B7kPU!DIYrZ8>>}avDN6lv-(_}vIE~9yEi~sj*BN59~u0 zPH;%8d@QRFErWcbpz9@8|2GjVYdLxc4^eW7n(4{k1BMbcj5!IU8oqH9qe8)ir0m9I z^g?mT4EK zB3Xe|={EkAh{`|qlWr&E7CBX?X;hL;66vK81)x<>#>z0p3YP!eB$Bx*MZ`gpkdSh5&v#wA@ zA+!7=W(x38B{p22Zz2U1UBAbH<&FRSl#2~xv?vbE;P=`>yDA9!L&Caw0rYES4KX4ez*8`?J=ls?!9m9Zp$ zBeQp(epZ`ID09W~J==jj3|%21UTtMWFtytVbvdpOwde@|l-8f-xG|y-DLfAYO7khC zW2ChhN!+IEWhxl$S2SE=i3?b09r}qxw~|UIDKd4wtF6DxBL!J$l1eq{C9*gfnZj6A z<5}{JGZu-Mc_Y_rsBl673@S)pO)zdVAS7f{M81Z9g8)#qEk>N0*GLsinBK}!gu5La zKuym?n51LZ2P(FdjY7iB?k)9xPtZ~==#2bkC7bTtD*BpRi^Sy#+}p_5H>DMucwyr| zD*bQYLKu@o6pEQxa;G+u!o_QWa#~c-mj^pec2kj!k2H+ZBrZlVE}b%Kq&{FE8r3mq zI`X<~#S_I_3Ar}joC2P$-Xi_6qtO-{H0S9@{t8`BVA4uyamjF-b3nBgzTTwvz$)nR zpueF~nhB7e%b#UR4r1zYanFU)s4R{iVJp6S{u^sXe+n(Xk;Nb{4rq|XlxB%oBT!hJK#$&pO~=$5PpDP@N*&?cphQ(M5fz|8 zI41rJ10W{Jg=R>(xdFpP9=8}%=Fm=qU(t$axCyb0LpdkOfa_XsZ3+>~e&aYX6kV6_ z-0?Z*`JdGYYwa<9gD_fd!HxdTFg*k(4uqyvrL+2_LHTW z4#5}>pls{UUsqk%h1b(mCIC~BOs4;b-|uVny4E{V?9%@o<9M~D}bb!P^JfB zrWJT*`thHfm~dFqQ*-<4>uhWa@LajGQ0e1w&|>ftV2H&*LWO83%;o_9iSKWwqVYk* z2?FWas=GBSGq>N-ev4435vzy9iG!#N?~0!bA(B=&W4Zc=Jt$5?DpyM5ihc2inL|2# z%-9I6?W`%oIzC#)zcF+@N}BLCAJB@weBC^p`d=-s$>2~saPBW^0vcagC+iiM)gvlL zlKG0}pj?!0X-{U5d(LsrUsdHkV?rLPHQtWMwxWR^F@>NiZxJD}GGnG8Ogal9cVU5q zwu#%HCN*=JwO5ylMYe7il{|DX6n~xkR>U776sw~z5X;Kp{_^sIAG<9~5smT!T0e+%>Z@&3PENp)yUy}JK%gN* zD}W&~UzmqubSW>YYMeCR9~PGV5^$t6E&T;&PJ*8$EU)YwUX$0p)oI2&{Ln-@avPNeSg4a&$9YI`;aJbZDTq+00VtYH9 zQx<00oO9m1zo3$3z?pnI@$Xm8T{Ez-E_I^;O*^~Wtd&|{&bq=RMAWQ?$;-YrV{tRQHk-tmt#A8LU#O#xkz#Kjv`5HxYim)4_+wSL|*T6=eQQPYPj~>A-u9VO@8=9ZIAy zcnK!@Uts&a*4I4i*TmLLB0!!ax>@t(YX9jNlf&M>upM}s_}nD>v$~Vx4w#LT2_$U ztWf2d(_L77f^klUwz$RKJTK@IaI~Ss*gqEaxbQjr*TeZlR_}FxjGzLX;5NifV;}Ax z4OSaUKZ63C1uyHC1gi0mH4-5uzC7iyRSZSG08|5n#QtAb@y2_=U8lN;vvx=eLI9rw zik#^*W1f{=4tq!WO(H|E%v-_$nz5?#?^-bp1$D$O-@e|@Ka1wazzdI1UXW&>?*8H( zF&j&bQPwpHoYWgEd{`;w@hdA%P)?Is0U8eOS0B~}2nVY%oU=5z<=Nf}QX%T$be*KI zfMj^3z_NEWBlE5OX|~wfN}m0G6^LHW21Q?7Q(S-Nm*lYQMH{TrU>+ROf>!flB>01o z28}a&+}MS|hz1|k*$$~`E`F?!Nld%;Olv5u+C47*CHd5Ks&z7-P#;?W+W)4`&xs zC}01~l}eOiirBC3t#)QghT-3~$HE3zhi+c8ikqQ~26}m6-D`|*^KH^s+<@=muy5=2 zbketZ*2C`bw)vYnA-*{Kf!YGsK6LrdvyM;isyEwws*Q4*gSX8ZeiIz(Io&T}x%-z- zD!^BzaZt;qlZKiO?!rrKDk%!?fTCucZ7KC}Qr#3^S-wk(BmuDkT4|W&F3lAi67}w| z(LdP9^}03I{T}O51vOw~sSzipuFeX9vM!G9HTD(YLad_}2c5 zU~Vocg;_lY2t6JbgdDHk_&23aY6DWtYC}+3=fNa&J`h(i0-RH?cfZxG3+eaXQp8=z z?sPlRhrFDWD%wwFJnui%pJaKH4)tG>-c?+u&=vvO@tpCRt2oGl;|=YR zTK&{3mEC;v1UO-!#F!Oo-kKE?dvv-u78A> zb9Kl!!J8Q+KR@;^s-%JxY^+NhA4q%@e`$mbNO@!c;|}JikXuoY1NdbtQ?9q;W;}yQ z9mJa?C}<2@<7udz&JL_}oDTBq${h zsfICLO-0}}>05}`)B$5?-2;`a1f|7h=}k9<_2kFl(se{LU-T7$JJn(qBeML4J(Ap0 zkJ|O&(;4usNQwHKkvQsUHMN=xk;m!e=4qjG?m8+Vrbm^!G8DL1Y#2fB4c1vMBZzpF zi?)6BBC;}4Y><1<6)c-l`R}CIAkaW#5&*|jxYn;(oHr0-Jz~CjcbOw7#SGZlc=^je$Xy!r;i~AZ$C8?`Mi^W=9T(nw(`-=2|jK?HCMII zgkGc*G?5@1-m{rqIMN{NfX;XB$5_j*X9oq6552#CFc_WxjG@*{r=5+y%zf)b+3(w| zTjIR;81eey*I)Cj(TODJiK=$vpfrqe$@!hC=V`wla8TU4}@_sftKYbp`~QV z!ng0<)t&rf8C(Hx=pnKoUFV8as3Sx1`>VvQZ*tPhf!|Mka=J>nVU~D~iG~o>dz+h~ za8KspPFc*z_6Y>YH`Ac<+YbHILOM_i&+m5WDdaTyON)0Q*m~#fcj)Vwkl>mZI{sdE zzB|Q=*ByDo_N%{NDL#ymE7;9#=Et8rT#tJLYWFCX2FuE;0;0Ma_$NEBXcr(%|31Ru z-6YZ0?4*_JFCbg{QX?Z?Qp)e07wHst%#nl@AdC$XedpW<8r5?uhWOil^ZO zNZn~;qUQC+rzaxUUnQ$EJG}XFU}fu-hp%Z+N*%cHQ1eVcvAvkmdH#m?n^4@#p3L*5 z1)AahgWvAfW^E^@Tu;nsGN9%1TyJOUZ=-A!ZwK&kW%&x8urIB=BKm=S13N_f7RKb} zaBjx+kjB$IzYn<7@d$iiSL>B(*YRg}Q}q^gyWO1_+B-|H3Q$qi#ZC7g7m^W?@Mrn^Sw#~$+vdB~ z`roJQn|dAoC?_=?biz${AMM+xb)jd*vmNQ{e0=u7RqEkarj`CP~wM!uy5tpa?PgX6@-HHcOP7+H|%YfJN%g=X%$QX;O9|JDxE zxS9@bI5(xT7#+q8yLlc7$xc-0X8uzk`bNV2=|{MFAOJ#|umYBFmtP^*aru^dFHm3I z!40Kj&52gfW33;q`F=_?_#&iF6Y78ovI*L(l!UVUZRK~3k*vSj#evx^t+mq{)D_HF zI7zlGU}RME6Q<=*Tv=F*vX7s(x|xw1Mktes#j_UB%rP;XP|ZxS%d!PH<2m+1I5ssp zqE;s6j~A~;3{7cv2zt>mo|Z&spP4Iwe~ZOZW_2(DTBhOd6d;i^@iuuHaDJc?C}3Tf zxs1c4t2z25*e9bz9l(=KY_PVCEgV)MVs&A#X_|g}%zhBYbD61heLB#%wt&~)puY^h zSkhb0)^>9}SS8%H}XJ=xc+3JO|_e#80GZV!`A@L{R_cGg!5*@Xn{ z^{)P=V-M*2+e@}&@A*+|y1W0r*wem*=SM>4O#r)^tFWH3J=)5>GmdLBSQt_rlQOx1 z`}*-R^7T(&%WJerW$4FPz`%gtUFMTJv>BSS+Jxv|& zWXrqrn?*6QvD`0Q`M*dW7eJ~komYVjkAs1y0lGQhkb&M%jIA4m_E(mK=odroy$b2B z5LSz;Q5Pdlf7`yfrfY7TAZ!qi3!5EqX0r=q$iFDr@xEcfp6M6rI zzp1o2hB>mo5*oj=FazuW=Uh&ue56mhbPpZ8v^Ve0eo zF=$~xQ@3mWYV*%AV9rB`ye*+_Bu9lhO{O%+$XQ#ruAcA(@1*UFxw z)!BfiY$*3zFJj_HfxAvOQ{8q2Lv4_z_C)Fnyabs*+=H$xN}0hRNgF$ku5x!4ec26l zG^S1G@pH=G%ca0vgTE`yxNzCHahZgVcC-wpC~G*XKL{|IDCkfa6F)^bL|V@Uj45V5 z9qf0&W(0&KuBD{MEZ%74p%mGIOa?6&8-J4o90i*ky)3)a;z;tWc>$o6HvQK-CZ(A{ zanlduG$5bx%C)D)wzb2k?E?(Ng|C zqkDdmw`%)9F8a{?mBLq@;g~oPMmN}aE<86ZhlT?T;j6@223MVIcape&4>B$7`jhAl zlRCYlI@z^|Nn=euZUdH|8YQ2$IpT^|e=R#_+ZxUtoONp|-5f9Y46ejL?JpQ|?I=&h zq{}|D{BFM@f7v{;649BVfgZunPK3s4IlM{7kG@WH`rxnEj}HOzH|k_{!CrS&KkQ90{`zfwzp%n zbheb}7Y>;$Miehre%?9%`}^l$jps(xthPgY9*!1BIbK6?D~4lky=Obm*Q@4jUyA%6 z0oJ{o*%2;Vp12N!m0`31{c#p4uk!v3a#u_4YguFz`m0a)-C=9IL$z`O}T5`Tp9_dzXC`J z`oA7$G+Bx^Dy~%xSks2HRz>5YrWv+lxOB388a`G$bi}eT7};*Vu4_2=4^xeJbOHAK zea$f%w3^zkdt7t|Tx9*~ZF3v$z-I&4HLAM)ObwG+JlSO@1X6ps7a0{Yx4LKv<`Xsp zvGqIW;r!d_iA+^ZElf88n&SYTyXPoPd3+^LL#xqw%Fmtgn`cBHNmjgP_$KxHZ+CL1 z8rlS=Koo|NreWqjQgGpz0Ye3QH|7B_7vfVPMd6HAI9IKN^$~PKuim(L4CT6$_XC&f9_T%PcsiJDG!YHo9ze}Vv-hc9_qCS%F5yyUP&WQE!1Jz?8rY+@*#l3H zxcA_584>j{OTjaKHxh5)xgDhTcGCCdlKYB+<8+CAXXcS&4_ulqdQ(59YrycGp3Mdi zs-J>w(-oF}3OA%MMOQse*J_kW-6ag-?=K#$a#2+1qnjcJxx+ zZGg33HNl-y2XMWW!|GLU=V7&1{UU*T$2Y)b$bF7K^^=5}iSfHL;6K?XHsW)Qj=aOa zb>efkMn8Kk(T{VWP)U3t%;8uQJUFw}*N_rrWuIix9GJD9^DSaAXgD@1l4adj2i05% zyr}vw>tm5d2t!($L~(8#JyGhUMS25F>p;fpN*nnp{ftlE`$2ycM-n-x@Xpl4kTYJ2 zOpF7++IT~~bfUM|Ma1pk4zq+g`$xLJ`CL(MaW(rqLOS<;5T3+#7OGL!wj>Wj9SCdb z8L|J81YA-DOnF4Cj`3b%w4f*zCNBL}8pTASjL}{f8}kKOyWA+;N@@;0oK2h$&I!`fM^BBEGQ_=#0lZim533; zEPmpw)Ij(8Ji+wN^Ox0T4W?nKX%~ooE`&GJJ&ST&HQi%X)t8V$}u80>!K{p)L zezTk4>dscv8~7vd@p>MO9()e7+p(+Nm3k;kRu@u_>zwEOb`EOOa~J9D6xw4il#tFJ zS*MjkwIrW-p3x{5a=LyyjpL>6ow$-4Y>^vG$#S8PguBb)lPARVlsUBr>GRRzh;?bz z@zk}nM@xSOub;UQ-5a!Z*^{A0&@(}C5%cct%8{&bwX|%$Q|2r%HHIAga;vrbYU)W4 zvWw5-F$KwCRh@0rm9W%J8&Vl^L+Q+Z;iw0{wb{zV^eKrW-~CSmn@H?Os{7MU2=HM+ zZLgw!5^kjKDBFkNDAR?2D~5cSYSACG05%mT>WCZq7PvVEwUg`($tVOO8^I`d17l9- zFKD4AJ+nh6N2jtCCAWW|!0+(IpSl^6h5r;Uv9F0g1oVNn1lCf5@Dd*N*SNP_cM~O3 z*^H>51`$O@`N0GSh2G1})#4Ai7QfnFpu{$q!zG3_!TxO8|P{5N}y&*GNAB* zFAdXTLx49R_QRks|Sd@Kc--lk8_#h?5*=uu~kk=P{EkpSKG$0OV8bxS>_sk@Y>^Th?|+nzj>Z)OQQVmw%C6 zzKM6H1g?@$S|y$SE=gyyVGU?#Fll6t;5U(u1|I|z6 z`YK!JOR8m2T4*=Hy0o1WfF#vYI)T+)?!yNTedWR7?RB9CJi=$+?al9snY%n0usEv> z1~ww=&(V8Ac)4UnDA~B9+IGB>XT6-!Ur${8=@FH8(|`9mHoCjMq^933#LVh>SNqf{ z*yK*kDhVST`m;t8>GStgA;b9&-1Xis-EP&pT|eY1Bg|(?l=6GH$D*Fy?%#I;7oMjd zHh(X2IX(`dRM*^<1cQy2mvn~~w%!>Q*KX9;pN^?ryHI2UJqG2wTMi>caxgnP@#=M5 z@&0-_(W$N;-l-pK@bBL1ZG;_ddSh1ey5oD-twnR}LuEJYO%w+pBD~lf?yUH11&C+) z!0VcLKjqNa0`rtk4{$b9rAA8NiwAcpSIroO}wQNA z;m6#()0)Bv;xpIZ8ZB0GJndN;r3+W}g46$wV0h>V{v^2fFr8b_dU?pD*^iq2>6+|q zcG-kJ;>RH1j2fa}N9Ojqb6n?#PyR=k4myMef}bsm)4_zJ81|5@2ah8448kD`sj%Bs zF1@~XQU_t=RsFZG{oLL<;Tncx3dNHxyVTHvjEM@w%bJr+2Vp7x2Ro#~%;5#5xIX4+bioD!|*kFHE6B9UnH4BO;}cvM*5TgFYftg0?cEu4vuL+m5Qi;-_BzqzkIyNuX*kQ?%x1(X zfewof4G&#JyvqGLBkp{(k3Th~yS&FC&gWfbN4b0%Z+-P`Aa05n(C8-6G7wUkd7hE% zPNLZYAzO$m{=`!V%K*_STVl_fto-#4?~aBsf|p;g#)fbo#rz>8j!7RP!h&TgrZyP2 z7U7_FHXb}uFZ?F>ARA9R4bMz8>;!B7tLrcPe#4dAW_Sy+3oHF50e_j?3IxP)3}5Up z5SEtzNj>MC!Ah9QOznNa_fNm-PX67%V!5p-t~6FkLWP`)Qsf#JH8c)yk(F$cj7~`9 z3llkVpQEj12Ian`v*9u<=$B+Q7sjRmkl&<@`T>4uYUz@1Q^J>U@?7M^NMnOs5s05j zgG03r7Y2#MsPB9yM7u7(Qx>eF? zZ)CPRVp^`Z>6idJNt&=moAs$Hm#Z)W#pVV7cHg1FvGcUGT@gS(Q10N);1s5Ea|1rv z>)lR=Zxhvgj2YcmZ9*7jH1&eS=d=8JtmBGqRkwy*`#$RRF>cKLcI@l3v(4<>S41J# zeVgusn{LD5J2!_qNWNpl&xJdL_yIxjS6@7X$?{u7bt|N|^C6hJkAhXF`nSe`+r29K zR$6E6OVzh6I{tx(#(~<+C7&?DtG0^2I(;jDyt8b9(=)F3q1k)e^jQ(j42WYD%_QF5 z!*c3*hf~*CU0@U$x5zY&Ycbc)$jQpsW%R-F-a82`*QVlz?Szp-w5DE&#Tk5&+4w#@ zzrA~;Q@L#zE1p5Nd$E-%7L@o_qvXq8G39pKoO%P8A5HvKZFV8!Z>M?=@)_>;R(LNF zfBWPx?P*RE4D~imfOt-7sb(~-8z>yRCnR>Gn`_(skM1?yaD)Rca$FEvvJYr0t_Ugb z_u4$2moBweCWK}uOO_AFCi_F%sLQXZwtJ!ZF+G#n?ub!g()v*oKK^>%mMUA5(v4^M z&5rO}SqVksOuMeH55+gr!pKHp>;YVAeQQ(vks*X9J>_649Lo%w?XI4Vp97F%CJ2Xg z{pk7yRjnY0tfEPpeA78Iof^gvl{>HKe#UQ2t(q&B9fg-$u}XH1{9LUx^M~8hW0QxI zj$=%{C;K%zWmc^_rE_=ilxhaG86j9}8RYR&XZ4_?qD)Gp22hZJeLOj|EJob%U-k1r za)J4MF*a@!4K=NOLMigtr7#oL4ij$vv(e#$($heVfBk5MJ zJlK<9N?_DF?le++iAub^OyG|@2z=-oOP{;cBrh-hg?5&0)ch_g(}N84c^PwDaZUY4@$Ca*ykZt2}sY$ZJQ^Z7UhWi@4Oc9`GeTV9S;QPQtyL9xyw-!(M z>2Y^%+4Y3ONt3OSH&q}yYg+Pi5oiv zM0hpXCtKs_B=mam=i)11n6uU~;t1pinGd8!-f~7&ntDtY55zAn_}62OU3!HFz0`Tc z*W&t9#OZ9bf!h$D(-tLSHUfZ4Y^fj>2#|QN%gHfcSu~!%w@2Jcp_IvzfMb@oWzv9^ z)E$#ys#={(ZXugvuvh||_sXkiR_#-$nb@`4=z4opXs21WpXpoA4gR}%JyIWhl^HTB z*oTM_JZI)=Fj;=9+?9AV0;a)L_aI(4Xh{jdR#>B1ISPj2ZZUjDqY=)(Jh8xDZ+sh0 z-iRhKhBP5Kfn^Hk*sv%`L`%IJ4Hux)H~Q^5-TVT|Sf!9B)!~cMPx@ECGIHxCwnbL- zdEd&v+Y(o5omOXK*Xfy3FZmj`tAbA{f?pY#u7D#?*kBD#e7 zi}iI5b4)gOh(YMo1X$9H#YpO^Efukfbff#?zDz~{$dB}k)Q__>+2t%7=X;PT#V)I7u_ygO$tt>ia zuex~H1A)YI@YzqPAC7hBVdpfSG_~G1lqF84elk)CwY3N?6#^VauotAyKmC%L`lQnE zlZ;XgqXY4mE@ZGnX6^P0Xo9rGxEfa&aZa#;6Z@ROPs&$+NDAlsY04vivY;;Y5)|*A zLj`gv6fR+>e(Z&Q_lD5x$%}5MBk%M+-IS-r<@PnFubzV{BQw_0;FfvznR*7gDLZ2$FATic1VO z0_<$buDD{in!;?8IUA+VLNtXIzlyBRJTbq(P57oXF!N2G(nGop461WJBITn_@!ZL{ z>X{cNZ7ZQp= z;j25LkABSZhP$e0zX{P zUtBYJuKDhePScx~ErVQa6g#U`wbhP&xEKMlQIx5g5By0VM;<~-3YP4IAeg38M7X!I z?#wvWNlwkUPXgPnNJCEpPK&Glu-lhs&aj8rq;WrHaN9unS#VOhzq;q^ocmj2XgD6G z7Ey|A^7h#NbWju}-lY-RW%goPQe?+A1TO&frRaYr(i==04TKx#3*pf6M>eDJPD1FQZrxp2&qr!%tzt_Vjd^jTF+ zJwg3Hrrt3=&bZtDZqwMdlg4RmG@RJBjmF8Ov2EM7ZB1<3PGh&voOAB`|9P%=^L8%$ z_FntD);>vvO6K-JRwL=AAzXVgegyDvQ~WkggQ@0ZRUHh;RI3fK=9NJUDG02Tw1J7^ z%=eS*B$O55&Ee1rA-t`XpM`GHo?8#93fD>rol|z_h1(biE=?P(o2VdO_BwuQtH!vj zYA`-CBB!6OxFlRh$a&4M0ofgIGB-@lquaNekKE9) zeKgdTNF`~T%H}v?^U3AR=cD*!0MerZ;A)^$yQN5Qis+If4eVmu(iL_TqQ?UHpF)Jg0s zN5l2A!lNgVz+X{?JUQ&Hl@E8$ptrhz#FnK<;!&4zCy8cZsuTiRy9K?nutn{TTvu1= zFpT}|gBc>7R8#=t#ulAZD$6yaIyfWYWn+nOyItwN7C)N9@=2OyaiDyn-L`W+hdycH z=;?XK5;9m|Sp2bogtxWWHkx4HKvf@1)mjDhZhrOuux4;F5M;?Lb4q=*zG^pSwJn@! zV!_6xisTeStyY|kguKA|p?vur=&AqnrR6;zL_X%6yr-cD!ye6=ay7F211px{Fxm-* zo=yUKVGH8Pyf6)s@_mK9b8Z_ZRlIa4H2gY-exGKR{DJ@%7Onwo;dvtrn7M<*Hzg}q z#gO0wqNPGhISgl*8d(N07Y<=*WEh*15nu&qrXS+ls%hU(8>thHL~(2Cx-MZyJ>y~#%S-6i=6P`poOjr0h?CAJ+?%G0qa&vBRkFd)kj2h5V;aJ3tS z#zSniXZ=IVo$8;A6ngdALh8S12^5!uYH8|Akbj#3(ngBr8JYio|9nKj7z)kA4;Fy2 zR6+Hc2rVg{9IPJB9o1!#ke;)tV5^PZ_K}0ls?#ZZeHn-xvLdWk=Lk1}Id4?M!5Fz{ z)y(e+rOHoFJFVIcWhx}|2t_W)>iyVF?W;{L;flcapVt6SA{Csp5ZZ;3;I6^05PtWl zUoS`iu|IOO2O-(@V&Lnl$U+>^{}>+K#%1>`4r zj(hSlfwDNUV=M_QSrgwH_L&!0rB<>HTUpvWSLgr_-2T^MfV(%c3Z0R#h>%Pgxa zkzgL}Joe_`?Kg8xEzCCofz!&B0k$dYsPn3F%Sho`l|y;DDtjeX!vz$D_EflqKMD&Q zvUOKqKD|8CL+E1TbKJJ~%@7tMet`HJ&yzmoZ9c2{8v#t?$2R1VxM!zh#pg{%BPun_ zNPw+WhYNU^(0xn(APi0eyp5b&)0fJ+Ik=dW8-BE%Rcp~IL1)HGpW6vs&s{Ow`}|m= z-V1${&akx=9~k=D`k(e0|8?%XLdjKYwDt7hs!i~jd)s=WSyZjeUz=U3I&s5odmWEB zj|68uQp`w7SpV(wa66Sw)7HyseQp?5J92j+K%WY-;4{~C|AjC?8R!v{EjKN(#g3r! zvDg*%lTE;EKI3tUU9Vc7odNni_Gf_e*hfP)yDNN(rl(XcO=gVI&Sw@G@pdRM&*fmp zyTo?&~|AUp&~OYn^rfz9UQ1CyvCAn_xt;vu@?HjNN+3@-=ev> zYMep7*lE%O^THy0zI}lzm9VDfw*2IQr9`5RYg`rKQ89j%;gKK|fLExhcAngb4Ot|f zeIu@YuO>q7h3mg9>fwNDd@acesN;Uls2)jM5AJyfguk~L6@GL?K%J+#57?jn!@XdR z)3{s~1)x*Arjs6@g0vu+n{vJCDHgvBOb<`8(oiSNFh^3HYONzrnM#sMWUfq^s>h-6^feuVu$&-p#QCWd*qYyOnVoSzc8ky_pwhb`RdaxmwdLQXb% z8r`=E=e1!AxYEg|dFysw(}0sP2yLWRm37Vg4P;K~5rjEHJhTP#hiJ15jEV4{a?>l; zsi{=Irx3X41%z&!GTf%d+3tk~PllKoWSA&HZ!j<{-Xn;JF(jd6JC@g|v9Ps$-*Kdc zvvg4-1awyjBMT2I%7-$HXVLrNq)Kv?uz5He)uM^W<%EkTEyu*w!WY0+PN5|6T>F~c3EiU`PzBWh4xzz~K!2`hK-Ammgc ziJF$ie8MNe{56c*%BIyvZjX&&HOGh0JSZ~ogLLeJI+r3ctU=opr|TJ-Qd=mYo(7HK z1FjwCTxNc}_DX@^Ol&=Py9tV#6UGj!r7i=JD|u1WHCw@qw7YPbEw10d^~XF?DKbS} zfMXQrDl`TZaVv-wgC)g=nbXi|cFN1VoP*S{>J1H3_Dd`n_Vzyla|x(@zpYRwUIo}i1E4a1Zp@cD+Ly^fDg578 zY9!l>puo;MqnxW@dRqzB6N)d-H8Z6nx8MYsKD<=}7jPUwGxHOQtI9!O|#)9lHdCDPS5ke8L zMC7l`f|YzJ2gj4f^Fck(*Zk1g(NM;mDa+i=CsZ1@fNZ5d)MGhgJz!JQlFcbxtGemw z^G#rPH|~zcsG)DH?+x6|-ccsf!{PuV!MD~u9*chUC?h$e6yB)^&vG^1g98~kDqsw- zfh7q!wHVTd`vRBsz_f!e=Q#e%o?F^f4JXQY>bTQRDG%Bl8zb~i|E(ZCisiIW4na%w zj+(ym^ibpTykZy1l&KDU_Q2=g?pJdIYwd39IV_Ba)m8>eI*EdR3i1_o0$<&-9Nn?RY(8w%Q4H!9&KeR+2-4z>!1GQo?sjEss6{`HBn}%{~%+!e&KFM_V&lnOU$?- z?)kQ6MRoVqp)KpXs(D!!+SQH5YwXTFk6P~B{4cM~Y*3KgY{&ph-{VKyIg6J1;m?V4 zoRvn;XI@XS=RilWd$?VKFw$K`)Oz&n)%4@W?GNW+Ct{+tiJD`&QH(_9 zOW`d`W4nv}Yx_)(DQY7mi8-(<-yvP(b-QRFS9hAbJk6_K5u4Uf589#h-g3ny&)-JRp-=EX6%Mhshwt{Q>iRYqYOiESI$qDFNOYf=2) zOpFr1L&$kB1!i#bPV{j+6?;&(^AC+n&l}whzYY1__ePgLANf1MfbWkNq#WJf23ekS z;@oz%=^oduFuS2Rf;d+ke;{@8PeF$vU|?%#&di^A#RuE_7r zj;(}o8(^w^!T9m=Ln>t{jTYI(_SM$*Ag2;GV!f!r7~U8NSo4Th;}8&jSZsQqD6JOtl4KIPQeVH0Ca+pN zcFDnVZ+9O^UUr-ed-xW9b3Fc@x|j9uoe=sL4`ip;Km4xC|7lCXmyv89_{rm22@YWv zswq50K?rX)FIkJn0hoP@+T3vIZ%b`9Y5B;BT|UYdqBq4^`kU~a0#YN@v)+an$=DQ1 z1WK{xkde?^3F0#yZdStLVBee1t58)7)&HsRTZKc3hK7b7HJba5GZ+<&{qP!z?8W z)i((0E%azoV&1@1NexLlg*ji@t#lUqdgK_bY`#K#-rumNw;~bKRCCS&V!mBp;LeA(<9#(=l55Sf_@qj2%;r|S8)q2 z)%Beq4=WkG<3b0nV8!<3xO+i{ZoV>2t^pkpe>5ZbJeE$ebnS|y5&pHcvhs2+eRRA= zxgH1<>>rJiqdyCMV#&w1RwWg>$arZ^8EClxcMsZL9Gx~at zOD!~uL*G>$De|HQuiCU$B~?GNd@^l`_~j+`BI1uzwC-wXqL`asb693wTK;O25(wn^ zz@_k^wWM=pY7hz8yE0QBs+IOm+!Z3)YKdlM%r&3pYBMvbTwpHTl*3{A&xSh>%+UP! z2Cu_*K$Ei6#Bjt1|H7yYb9WAd$d{6k)8Mu#X%YXxu9m73B#1IUWqVuRF&X#a2qmna z!S-$w*RMT^x4tItxjf`%V1VMwZ_ej+zWi9f$4fH6OY%y|sr3upQFU}ch9Sf!dHOa@ z(1h?srjcbuVc+o2Ai)jK$B{eEfxkp<-@=SQ=;*(DQgakv^!u<34ZC$jS&ff*2L6XW zjI{Tcg;mFFgTyxcw9jpRuRpJ;pFGo;i&GD8&X`ZAqw2)@pUJhI=+_0Kf8%4e~R^v238*Wjp zz%aA}N^CxwJl5xjBzK+c%1x*2A{WX0NpsKMl%9qs>nhGUGuabcj1Z)86-pBI&~HsVtcEEpj)FjRn}@AN_|Kr5 zYW`-yxF2ZREv$k>!^&hoecnlcyC3ga97eXt8hNH}p3a_f<+lK!um>{X*Dx|R6ePfJ zU>yWc$~=y4=S2aX2jt&l(Eia7g@d3HcJg^~9hr!PQ@x#+c1OCyy64|yCmslsK9^Q; zr+w%%%1g{9b#66=V$>{C&9)=-_~O&48VBWQZLc&$_p=lKEX7(xF>}|0d#WRPHM|Ft z;@X_ZOhH$Yzn&924l~`p{Zc!;$fG_luvxz2IQ2yi$xE9STi%F0Z5yw+`u`eVCPPU2 zmvgn@WqR)jE?r(609|vCP0xj3uKV8xYRE99ixSPxaUc0 zw?C=!p~9CLMD)g=Pzsq{R~SGp_^*0u1b%+`5AZIJp))8dZxVk;t%x!sUdio?73i$N zG{!sa&M{Lj6v4~`*ZTk*y$4QeC-@m=l*@+DqLnntKYWP0&xi!Y)IXdi;#v;*2_?ml z45a`(Nq^Ek)XuPD?JBSempDPJW|3FmUJw_`SE#NvBVyb}w(lN;TEoP^yUP?6p}i_R z;x0M=sqztZCXstEMveWiEz3z+$VsH=h1gyd677qUT+&Y(Sok*mS_vKY0NVK|s0>pE z^|GX7Cc}VGRJ%dkwg>Beps%nH$50S}o}=$lEbY6ypOfPd5bw8H1%Fdshgn~oRpN}+ zb=5J^OPTq*lMajZAs&U6#1|(UqxY-uSZcTk|UH$;3zZ!uxH)bXC= zZ!|66C-DhkQ%TxOcO=2IFHABqf%-pEb^ZL1jT{d=73@s7SFG)ce*<)WQ+HdiT`%d3L;(Z(cEn%M?SwGfgS*gLUF3N2gRG|aPTZ7!=0i`MaW zSkysGg>Y8pW}j;xbm_^uzZxGN?bK6eQ!XtW-;yA6&yJCa{CEI$n4O$S62_Ld2KfG2 zy&)h$VNSF4#W(&ZZ;XD{JcK-bmNjqUDr) z7HHgcJ*BJ+^At%8$EsnxE*VBvW}U33$$fs}7uv#ssAn1kWA{lq)&1G#Y|EZz5~7W7 z)W`5VF5ArG@YXO+G3mU_F|@|j z)!%mZ_WQhNhZFpJ?L;sd=I<+_er_vl%jC5 zJd4v$+P`Ww(&7;)NToW?G*$-S%GmG$Q}1T-tD^@VQ54pV*mcM3iL3IoHVlhg7eyCQ zu2_TNNN+e>t@fJAeJoEEftI=FKM}c@nSH=ZlZ;tpvssV^dz6F{IJ`pp-?r{oI*@ks z0wuuMe~Y5UUXnB1g4{?#i=eQL2%gug$%Y5jwu(HMyhg@&ZT36dB*jp zU-+oH0||{s3oa{Yf65M@hAS2dlOr>EeYY>RCXviP+u$A-;5pJSV;wfWg!_at)q2=I zK>!QD2UN3)NZ$=J2>xPOrifGOZhq0sAIUqh#Uc^|aNAw`N*7irEJKttC=zM)&pSfV z5PP>;->M-k7wJJ1p{}b=-a}amaJ;EZMOy(bY!-k!reBJDLp-9U{3peciL#U3=svm8 zYE+p3(u8}ILBo3>kK~_wZIT8?&WUCg>l(o+`<1*b6yG>sRk#nEZVoI)v%+s|f8&}j zl^T^dbB)HIT!tz@R;WgIp<2K6J^dVn`^SelO5E^m+NYL8#>a#2vT?M;W4E-i!TU!O zN6e=kiu~(qI`@8M?-2bxbp7gi?#T0uz!yG7t=8|@nM9uGIlPyWgq;@_f6QkFG@UPQ z_6arw{Y8lZGN(GfB)qOffA2Lh{fe~k0n*E_UMhZEF9tho(vI#CSo8*Ibt4!Z13C|) zzPXRmb^k~3!etxF48p#p&y{04Op8{I3IeEc3H$hFaH?xBV}e*yj7zM(yC`itALy_5 z>gH-sMu5L}%p`-CtqX4sncgC+fybl%N`AYE_{5rE_8%uJ1}>30*nrn!Rb^2=PZ1-| zh>Qig#L8)yUs4QOyz@ocxjzzB#9(0@zEcMI{-ZWX&$fzenKE)5@QQP$dM335VB;7o zxtjFae&g={IY z*|uMV;UZf&Y0?lr7nS#|s7lt!2As00Xx~heNz*vVLQdij$oK&jYiiDaC|5+_t&esV z9{fbkTpnKHibjsaq3q5Rhnf|F)vsXKJ%V~My7U=A2-bg5W~dJOvmq~`>Nz9_=ObuP ztg=(>hRpGNrq;g5cp_xit6C5RO1rIB6Zs!&F#XNCU^orqeJa>H!_c{ zPZ%zq^B7vl2@IiaWgfH#)~5!j50atJG~HKDFq}!evvb{SEJUo~r|gAhq&t0E$XQ=Y zK`qHvf0jy{3Uku-myTpNtWP&TSr$d6nj9gWiZf0*YDsT)&)8s%?vaaA;_8aS&FtuN zkxgSK^BB$|W8w`(G+huQc0`QF%@w!!<#-z`duB(rjjVo{QXovD1XX#AtI9w0CEg7O zytQOF_WXIo6J%-=7jN0jy)Ve*VSM{ME2t|@Bpd2x_gCWkg82SEd9P+FLN3#yem|-Dm zk@_G=m=L@^5~?7b71xuUH-Bw0^dyRe#WLXG|n{(oYOq%t3D8eC*BXXzB3KZ3`d)G#xTb-bt7pY#!vj< zXJ%v7frz_o0)}%}ga9%e1{k+;`@96I?zX7dQN;)Q|V0f-Q^5=p;iG$8#0gN~&ND`gB zK#_8)c`6K6?|x?S2o7OQeFphdAo*rF(VwxWi23NArTjR(@R`yGD_u|YhUs1GlY(7} zp{KB@q1quQ^1s{`Ql5)kV}wR<*A(!vqk9VsN6MIEOX=qE8=7Lc^;CD3^gr$*F2oCl zYfDR2z)?cjM_)0(qv>?==fcAv+5<#wbx5o_s-SGutyuW3LF*y$5ths$Zewo&t-7#z zbm;HTqwJ7*bDQGuJ_jQg!8>1u2g~V*dzi7jtEs|yyqS}Kr+OCD2g$nRm7H<(+2oKf zG*F8lSAkq6jdD56Sa?JDaxm;VFD$o*;@oVr%-$`ma-@jMdHYng%u~P4ADEWphp}A~ zMR*W;k5wcD3tf~BSGWM{F2DXxvS`KHY}4udnzG+UbN7aQ&QQ7S4$r^AZzEDF82Nom zxl?u^e$>7U<36gP9#LAql*61O4nKr{FD%F`jd}nVXGW$Twt*dW+rr$`=ABgOA z=2I5d*D9BtY4@&SKxJ@qG1_#tz|3vLAL7;SMKMeMZLKx7@en&Q43-Kc#VihRM2C`z z;55A1wrY#F@P$Gd(HcWzSizvM>l0%ARiY;NPbtpkEDF$^| z|3b*BC7qy^Ji`Bk-V-Eo6YmZ@)@w*A<-%pI&w7rjVTt|!N+ z8(rKPrusg7YAp1$pN>kJlciKjSzD0uUd`0|`7L{k*v?DSlc$1cCyHJ2V_4J7gm6-l z6%HHKZQj0EO2u7EP(+rgshzdN?9RSVLO9k91sbI;Sgmg!zS(@G$nQ^va?ZrN?`(Fg z8Q|7|o!Knh_+N<~EV48Bw^jgaj~i51Eg7IWxJ-%17!U+_-DM^dPZl0^*IhVWuebnx zY?G%>Y*R#yU6~X84OU7zadTqaQFKkNsnntSl8HuKw3W1kjBpBqY`2#N{@81WXA4S| zE6lBEx2V$UC^UAg^R!|1VQ}%R0>|Mtw-sr@n-s)8CXB4!7vgBdO7P*d-;w3mcrYuK z>_vdH`}3_XNjfwl3*?12Z+IqIkmJRo2_vhq@GzUiF#e19^oxwG+-9_a(^g6TF=knR zih(In4f@I^aP@iA*F&Ync&_-Oj z=|~Z)zdA4Sekwr4(RUG_fygw!DV@kpsZ~x0Y9_jq5t)m|M$$IX@(@kp6>ds1^ChX8 zH+(LBTLt0=x(_YaRFd%A(>nZd;#28o2R$+U1{n3KxWb!-V{d=lPmuW$4z~M2qx}3} zHlNOd`!5esA7)sCL7MiS1e2`590^SMy+K54)5gFPHu&MskU~EZ!wqWMP5JJO)j*)5 zO$5N?HDQ)ES}v^eT+Zj!>}WrX#*iZ=`{3G9c?;iVXy_r9)iVT?iF5KJf@9!1`{3FI zLl29{i$b?bKXyzqcB-?3vu)nmyeM4s+j&Y+y(E7=My^18#$vC zsbunHis>MzG7W=l$Iw0&_v$TFHci{a(UaMD%lu@T1|$7k{6V3pyBI#s=5Yx_ETgF3 z^e;17T#pIX!Xn<1PihfWh1-O2%Yv%uZcvp;(Z49u9`G4>oC&K!Ae)~);qk4Z>e|;) zC?NPG`SC%_BKbCBeW%Ias5iR7L1r;T5=H|lj?>ziJVT;LD{eX7wS)Y4WYieCp}Z$4 zIgE+kpmG4V*@>VjXWdxi{674kA-BvbV+>iCUnT+ZP*6RdXEZfix$zKVq9viQzNfW% znB`J09xvvlUu4sYfDOC)p5sQS*)I0XDla!pQYZ4X#Gtg?4XZ1OkYqhOhn;aic`x7Y zUMr)o|cWxS6ZQUiJ?LG$2^SeDXR+GOTH{dCKFwKnzC7$pflrQMCawLF|^8f#abY9 zgImV0fAyVi1LZLP_v}J}$R0UX5kzP|>`(rRpB(?X^(%w-9`AVHz6&37P3J@3-}nSR zoX=^Q5yu`R(8X7<^i8T^#_5YrP|63bk*=k!4{ShE0C`O#TZ@(+a>o*rVsf>z9A&)Z zhydvsdDj8O+C}SFZ(his7EnS~a>#EBkapAS!>^iHnC%H_?x%;=LFYwM4y)7W30EQO z)GdlhJHk|Sc0_;L;_a=?N~*=ve%4xDxMTTc?L`fNISxA>MjH=#P4TITpv(Zf)-7xt zU5BsJycZ0%-H*#L4F8Fs#&z~M%?};;zkBO<*<45KR-di`6|z48m+AGbj8lLDss`?P z|B?CAvDB*c(^wxW$O8#JK|&c|T7}W<`fKemvHnR6%Sb(_CkIH(9ZBT}!Mo=B&+MwJVeW_l1e0#xC|3 z!w!?A!Q{~KbGqeJ9&kN9|aG{6G)q|bC1WJ0}wB&b#N8GKo5&oH7`mRw5 z`;dC_GFu~2lqC_>D-8@;%=7@Z!CX(VzB7#Qjd;5-mjnik>!c*%tzIfO_ooqa zdNUuOLpZtqqPpFb)u=R5|5B=iExhpxU2Y89X+XJ=ahHnyMIn}rL(vL(OTJi*n(={; zYk=cmmX23Ag@|>NGf>@(|EK_hr-gQP-Og|y60BUvfcoJu97U~5uupSiDSYisN z*%DKSLRVCfM)qPLYH8~yC9yF){GKn|Y72z)h2a=)t8vJ~*T|C5MRd8vGgA@gxD5JAk)OPE2(<;aN7llB<>bQ}ry{CP$lF5o#3E@cO!(VfC zE8^jvn`b!-7SAWC2Q$&ifK6j*5dwIl&x6Qdpl1P?5RiRWWdC&XDm^# zy$L~?dlT|N!c`qTH?~`0?O{eRnL$rVORVdgQZ_4V!dPKOPCUt=@)|J``KI>U%2*5i zlJLh(OsIOw#_Ro_HCZ%%_k;Pg46PITYQ>X1X29&15A_vzwK($B?>9X?gc!8BU1>in zDSRxg74a94f=|Hz*pI>XZi1F|Yx>Kc_v?JOHEH_l#W@4k|MsM+{z9DSSyI@xtu!1U z!MC~C5U`ai@Awl;6ih{|HaqKQVk(^7Dsz>*hD|pXljayrqLQg17hrYJ&ahtEYU{um z%Vo&Gamu7nYz3Fw4xI6(6WnrOnP(a%qBY4Jvl|G*$%SdfM-{tfS*!xFJDWVxhl#P> zOMr8{>!x}s3}}^V)Li*mRSimGw}WhXUAwZBvU--#BMMoVbmfyo_IY2it>cAVa_2x2 zN?*`?`wyZ6jh7K3OyS9ZaAA7)+_F5h3X3pkFna=%mqn$?lp+U zdATytr!Yp`K(_HWFYL}F815OAxs6mFdayh(F7|{oBa-Zc1zQd{2VM8m zgZ(fhRV_wIBH#a8c+JHKC01D_FbFN+@{8{a8X8ZHRg`(MA0mRmztGimHHV(OWs}- znIuTXFDYY4{474ims$az~;GbcNle2~6gCFtF zjVSJBHx3fb1bH|wF-!&ptvDAkE@RIzEFQJX%$8v#-Re0^ntoQK&N1NyT#$dBNRrKc zy?yZKEUu$!ol9*hx!GuhP`UgiBo3 zFB>cNB5nm-XvSL6&_L7gN?hs|2RSi64IO2ee4_`2d2RaaG7_ygo2mVt}rvSN+s z+8cXu`|au;)L>K_LRK5|cRMEz+!TR-p|Naz-;Z_e zUObp##0kxeo}1q^U@B_EiNPzTfdY*{@ zp?g)1hj4#lv$>IpCY^X1HDWhD_-6wX#N&)SS*=^DOOLOO@aHn5l1>)x|Gkx{VMm=y zU0RK@e5`YeLBilVn!(|yBMHw2d!OmT%Oi9SX58+}TShdN3!nPjyn91ZPnb?l``#$@ z`LZ%I>koAqIe8x3JKRLu@yoVMtv?$9CYEQTv#J;o7!9P7DNHgqcwEQ}UI|t1hNKDg zT;%B;)KaXVSU4a)2Bp@Al`bS60u~<3T7;4~b}DnMxElv;Z$vs60R~9D|BuEXf#+3|AnIkuu$dVsH_T^AW^qbGl|LwooJ6%q+!P zj%ZnlMzjg6AJkz=XzXihph)i*FGPH-#chI@fLLfjH`mU;ZL0>2_Z@LYDHSUY6D_yW zfCGWT(8Q@Oj2eD0oBR;QFRps#f5N)5sNjPC5!SI=v7*`bY5WUCqE;c{kptC!5Z5vp z3R0_%$Yk(-AcWBFk!I{CN*%(j70mcP^qL$gl6EEJUSZRi3|F(onflfj-nG0Pd3u~? z8PW7#6=L@#6X$YxWjCqc;1?vak}6b?p#*Fmw`>#nIUAS1F8H-LW_CLiLL0FC#THsf z<+PS^HEL};pL~uD>8aUrJWBuXiOSvdwFOFT?S%XWcwF5EQzN7j*;b_;=F+py-57QbDabMl4vEF8v?uxxHJ~GLC&JhwBG~bZ3r61q zhCO_c1{$wq5(ox6k%v`9G$G=$wLGYQa-4}dK2sNVKpfR^g_2`M6ToFUHXR7lK3s4X zey0pj3CA)u`fs)DPe~}%9UgXib0}9!(c@IANNa}02ueSc3bQ!Vh&P)eFEls| z=Ur}pTW+t$F(N?N-wbQ?qvi2deBvNpAt;j`Phz67PIIXx4{%|spahxN`6^KzuvgTG zw^i8&V;oHK&DECC;S5vqDkg(_rQG11lU_&-h3x#=YYbBX;x_^T+&irsvVY!XrT%+< zS4YG=_lR!!g<6h)vK?u0ldA=)h)9mANZmI7&7K^t!IJiB~Y znVD(U53=DI8i=jsW;=YdmWY(2l+ARWyOLt+@5qG)(l7am1m|KIl}hcD;COM{qDoVJ zf-ClM)qZ)QCAhWP$PUR9Icw#U?^kyeLf}^RKRY1?Kj1eYN-mw_pUI85ivk&NgLL6b z+BnHl^URB>F5D~|(l}>Mmb8l?(rg%2;&g_prwmdy-1-ikgcgjvqNc9Ogw^|-^0$@R z(=lhQA7gcLHj+}t`=p!l(cVHJd1&ss_ws)^cu6LJqsv3IO{4qPnR20Hr5e&;;}{?% zIrg;M5>EGnEO!%3;>@NGzAP%qDN{*oiiYn^Ivo6-q+adO`9w1yKM3m$be8vgqI$Pa zhyL-3ZSF|!l*lG$Q&pb9C>G^d?-1x^bH}GG2JS-0@#z$ADu*AbJ}$!$7h>vET)7vI zjg`!YExd%2{UkIs97)9%0EflOz3eu*a*vs?iVXjtbj@8oJxKZ_M>%2h^yRF2IrKeaA zIWv?P>ClW!m8D$j3MKRI&r*wjxaIoS4(#Hy__6Kj&UuW46s$wW#~$iAmAmusWIR6P zn8rP8FkVX^i2H-26Q(-p|MK!gH{vxL>piZkKg$~YY)j0dhKKiPgiF$fG$9L znC0K`q9L8vhTfEbMzbJ9{Frt@yZY$p;%b~oKcC8W6YSV0-%MsZ?Y1Rjp$KuxbnaLN z-Mg?Jl)1N1I1wpU)VY=r#Vj4lfJ9fyV@%cRJ>{l7VMnz6^ks$vilJ;p5?^}D3!6wUl@aaW9^g`) zMd3k@tlpwSV~0sv1Qf~b0aN+=B#c$5LYNBXP`$}4pR%212h?1RTo}>!P$L#p_%y6~ zLkh|G*!UEj z|6S5~#@YV6bdzX)A22~Z7UDHvyZUR-wKl}iT`l&haqCAF=TS;{IPT@07vtwhs3|i1 zh+(dWd~^|a1Rx$;@A~;T??`wq3o{C$j{TecrW_Y=M-w3VD=oPHzOAqxD*u%}ey7Ti zu%3c)up~LUxRj~(8ap~>J(hi4srihsgPwGhkyl9!r*DijWqD7jv#Fn#)U0XsybgCnl(ejUN~x)%r)_*ZAMyul-r=e)Is|3x2g zFUGVb%o&v%mWzcJB2k-dk7==KEVmgtjQtY=lqgZG5IXGrHy|e6M7Edw6?I!1-k7uu zFvxM(d@>KZ-SeVP)j*{{xF2AbobDqn3fY1v8&eLqN#p>!CX#8MAolAxnYO>HXL zn$Gi_(bun2GDN+pJBkj;sQO)|SW1HF+e^9Gf3zXgKuNcTMrFmR(&doDD+VX3g)Wu; zd7%4+sIj@ZpAdppx`+?y(J->WAg3;q<0K&wnlNqGU1p{@nE`-Ahl~X6>mD@NicN=0 zS3|)%)@VwH1P>)q)&${UOk(3ax3PX*&k3WeRx&Xm&j}lf)Q5mzSd1&o4>MShm>Y?f zXh+M{G^vNy+wC~!dg%DIe3595luJWUvm#>G(7uNq_4hXgbLdQ*#Cw&~QiG{z-fPe` z-oipXw|0v{=kZe{x6UbfanXEpz~pWy2CpKV8{PIDF6p zsK8;uvcTF=+tR@ZwF$y=NCB_NE2|{e7EiXQy`7nLV_$M5)J^;s{c?)%xh~gdgp7>D z5s4lIfGE*SXh&^_>FV%{{qpdGl!on2iio<$`O(TCH#E%XV7_b6hV1iW!AkG(bT-EE z%{+qK%)`MrDO_soR-pO#!2e8YjC_RF-x|V*;<8{eZC=qqiaztl3wA+v);|+uun10D zfShR)NmVzJI`gX^t{`Rp6wStK?Hx{}Ov2FdX~TF0Y&cHpUz$duQIh@(Y~8jEgQ~uD z7V*_`nDr9~TnqI{!{HBH_@}wdWRxJy?iilIXhl|%KSntThoXuIEzV=GTV{u$>-tK= zgrJ?|@Kd(MmWUygvMS}axubvt#yBmZGFIg50E9p^BlHPBzIbiJ`j9k4TCLuqWz8lI zlPY0A^N49jk_dWX7Lta&7JvZur`p)>!+0%a8(9VHC43o$N<V?UA=Brl%1%dMT z*;=C=R<ojAcZ{etNI{QTxn zMl9R|JtPu0W2MbqgLt=hSN~hFh~a<1@nf9T<V5$0!7D>4#A+e8jA47e>VB`L~#MnSohtS1wS>TmUG{kI+eiLX++4RT! zjb(5G5yvef&^0x=N%SiplKBpv_e2qR2D{zZbOoZ zOR*p2T-=Ub;oza2#q|xl*S$n~WO1ih{yOZ0Eic)KjLbm^oz5>5)ABfpM-Gt~EgHgM zQ~FZGe83C9m9l4~`TqdGKtI13Bu~W85>INIX31JISy7`#Rzs}$7RMc*Nmi4EM+EHA zYjp0ItRwLmY#g-aGQ|B>v<0J2iq+~qS>}agS)YFe4ZmmD^GP%w5@{Zf8hk>*E|(bU z01}NdFsL;llo$R&WcAJ*`Mq}&p!3u=MUfppZ(=ZJ1NIBQ6Qcwkkv+t#9#TSCkGAIWLqj0 zd|O9rZEi#cLF>#!+5sIoC_8~7@sYv~(@4(k<76DQ_Pw0M0~GqUCbJ+o$0^vN&S~GY z7Xh&_Yu5W=ew*hzxiTmYmyg|ptg>)$aBy%ai%!pFD?r+sk*Wz~u0284eZ;Zpk6Wdn zmN<~Io@Tna`HU3*9O-ca+3CskFhYgs7<8ET&dTP^lt>Wmra9~_5y!yLoGR_H?3%!PYNNNMsq zAybiJlDH_1zLuDA5e5_Tm+0sxAi1q#{H$%Eh=?;#XNXBMijx*7?Buy=@$c`MdKXcJ zVaCcpG#itI7b7wwb!3(Bm!=(No>!*CHXI2NKW8!yjyTIqS&gk9qE(TLe1l=nNO~|L z=pa$XR3(UyyweMw4x*G%l@&M6=IBXj39I=-q%$U;J&nDUsfZeoJm*Umt|!Cgk#IGt zv|?*W7Rwzubw`q?>b{WwskslatO>``t@02)vxqDU?lmtwtE}HA%jON&Fys?x!S;(o zb^n_hQF_8OG2VTO1lEpF=9fhnnhDxzF^hY1CTAw3g3Rea6jAs*IS|W;Nj7Ni!+2TJ zeb-cmf}owMxkaFLl1)*#GBp9!Nf^;_l!BUo>%k`6*xs|EqMeS}Clx`JS!ZqcP57@2 zq%F~VWx+EfNt`x-k@%!RVy|IyLT@%63ZCw-WxKR|uvHG8?IkbRR?Kqn*1NOAbDSL7 zk076e{5DAiR|e(a^09l6Ru&Ep4h{}w(dy!&8^AN(>H3lgauaTNzW=hx$TO#4y3EV& z1{wZsFI^<7P}QtWYsL`=2Mp~M%`RcqEDT|ldbOCtv=etz-qlTL*N<;U0;SG2L;6zQ zD852=HaBM2Ha~$`!$aSMK}?=L1GRb&<_twgBymD$sUjj;VBAJ>8U%zQvb4l-0O_9| zCoEzrSWEzD_n4eQ0^ImyZprZYm?)??)b@xV+afaImI;o-%wJ2sCbY)Py1`=JB0i_g z?8m9hlv%&bY&uMgby2Y}V#f?VcjVez2Z^#c;}~dxFtRl;)5guftd{T%5>8xw^vVLw zB_|gP_adzcKXE*<+gRXC_ZyW0>3ILn$bu$We2ogv6Y)tVFREA4zhHaGxDZyv8bdue z`^>-h_yk!`J-C8r7M@==T=#s|-2Va|=(2fa&r)cnjt?FYc6L-p~;G#|^@v{iyf$VD9W$33FEl<>2zM zdyrNZ4h{|u4rO63F3L>mMrbXeqUG`WEHszvOqOCt*Ou~|i8=Le+d0CvW;TLIMcOh# zTOW_2HQIayTLD|vYZ?iVx0Y)qEi!!iXi8>ncC@aeyD(O^UThZ3@|@P+6tRQF&g=rs z>M01C2~($HaOz|?=Jfp$`rx1Bix~@~X}ziwQDWw4Au1c5yq3o?<@{@ngtF zLJ>`za1QgVF!GT~jzm9E_nQXIPR7Yad}$hF+=!!$jKm-rXjtL!KQb;$l(Za~7X~#mtaBV3CTQGn1p=r^=e;dK(qUQs-8} zaW*;z>8i@Z98^1jLUFMc%qqr6)B)QhM}f4-X2J}E;QGA^xP_fSTEo;j){5-Ppp^>K z9yEe29h@MbBM9<2$Zr#^l)>Nb`!}Xfor2|;Uczes*i+Bq^*7(b`fII*v4VEwqeF8@ zD+>n)2Zyl-o^D*(&||Loiv~Q>W1lJXXGkn?sU3ahMi`o3C^?fYy0l~zNvhS1$|>l5 zEWwn&j7B8Z=-f0Q?Pm;@VO!zm(QSpvm1=Td7H+l3YIRKV*LLG3PKvf#R1$pQRcMnD z1H{Y$*F@4>FmZ_%qP9OI^p{8rC4!`d)P#~m4kJf1aptM*8N;}F#4P~y3^IKiL`eoQ zqrOQlLJ?jpBOh%%6d}nNGshnNyCk8dJCI`%vv?(W46ga4)9ed_^owQUNR(-60jGE}&C1&4!R#C}(vnrTvZ8ObPUeCckG9D2 z67Jxj;|t$C2wQ&QBRKP?KeXB(_p9IG+P~b6|J`{V92^`R92^{)1zC(+*XT?ac$)s0 z8IEZ$=jlpFM8Y-J8n*S3PN+KF#IATG6%p*jexaKZSBPZL!DcUV`#^Z1}p~HwqR`e?0jW8^E zQb=ozgb5>#0Oq-4kzxEj8Y{>OHb&u==4Y%KrW{zFrCXLvTa<8UGVu}mAw$QAvQRlP zoI5e`&IR)-HbPW+7gr*t{0dh@;LL<3RV160exwdp=t8fw)J|47;m!*~=ci2RhP zbVp%?@7iF)RVDTOM$5p}XON@HB26;ECabg6#CHb4)oAzu>Bl1Nv!0MJ3ohmpW-KJl z<~11Vf)MmnGR#S58<9Df@i;B?**ZX&t<*B%RXvjEF!RpmDFbsrYsbLGXr}{v9M-KA zxh0XEDBOaOov2*ENKH*;Sr+a5#wKQ8YEr~WHI@AbnT(oqPFkha!j2jB*hmXe?QV(` zDw}mpWJd(qL1rvaZJLpp>9DnFVaepZsl+1gGZ3f0OdQMz2exp6JgJfTZx%vU`?c6< z&N4cv#8#nP4^~e2!0C((*6*MbB$b>3{*no{J4ppkwj0`jWE-NBBsFMio}hiFEuY$q zyZ`+k+;;ar6BE=l1Y`V0A6^@4t-K-}s(~zn0RMgJ8T{NQ#B2!c0vvz#?_C)s zI5Z1px$_jerov`qtq{CN`|^}pYm5e%dDhBux?Ql6lR4|#(S%SKXZgl%g(*UlW(@Xa zXWBQVEaNo03~`*PQx0VXi+O0{yGfXU+VwR2 zTk{FGhM$mny^bC~$mpE1K(ow$uX*8lWy1`VtAnQfk~NT3fy}U3e9P4+V@RDzb7HNX z5oMM_3m;0O&I+cLe3ZRM%4h2FnzIqxy-PqBFxGNuCcPt4VGDqadbBKQn6$oXW^@Fx zl_l+5So6s&{2HXX8MdY zn8DJp8B)re>CrR8f0jQRO4lo9JX!*viz}AqHs!fPi`_rn_IG^sz#~u=Klh26i%tZcb{qaw#Vunc!*J>)s=&Gojq zo&-=(804BFN?q1*4EWGXUP@Kp;Y7tSKrFD@KSkpE_oF*A#uUR8>JPm{8A~2Wyu^n zfDWHgMh7BdK^uuGF^+`Xo#cH~F-b>E57eV9Dif8LhELN3B#1F)#w#k1Osme>v4p3X zbc@rc8j$wwjKm#P2GtjbT4j+&S+Lz=k57{I_Hgw0%vn#P5t;>O7}kB_%;WNWHKy0k zs*vc|qYf;$(`RV`v4U|3x7I^$QzJ=_vQ%12pwI-A6*R80;BsIJ$F&J>+0neH`!siL zh%eDsm-sH~G%?XjnJJppl-}v!pSD3wOsl9sCJYH$axbFAn}57F&41LVliq=@snrljHNtzf_jC!}U-a1?zH0;XQ{F zzy2K@{RqP+e()RocB{!4+a>AX;NVap=v-J$9m$-P8_&AulxKk&vn(lCGVaj`I+smb zMpgNFYJN^5;HUW({&q%wj)g|KZ;fHKwqvUijpPW%6E>$QZErc zke@~~oUAaB_024MdD(5qN^9PCRP}u=$$+{DiMq>z!s@`)f|GUZ>mY( zTznscI^-{MFB(Nal+|nE%(CE;w^o@;KUd7_sYSrp3iq5%~xmqcYE{>z|1C(KOeJZ_MA zNGnT5<7UO;reT6rQwMF?SQv5w&Gma>?<}s%wyjW`t>Rhrjb%09ys%h`xe=Z<4sLm8 zab4oJ3X;|iir5)xrR`A*!W;}!>=Hp6l{(=st>PDfjF0L24qM$7sU)U5+J4P4$$M@e zJkL|l z&*71$?!`GrKZ1v69ghpQTO9K{Xc?46;WF@18=Q`%W(=S)=N-KC{6o0FkF3)EiuY-ew!zc!wLmNis(k>wn;2Bdv!@e80V`~LjTNXAu1uqmYjiAE3 z%v#@$CbXP2jNH=Jp=d3VG;g*bS%!aBGW@)7ipbfJVb{)jUlp>_n)e-5HanWRD!b40qICJ}a_}G4h*&C_Qp3%}j;#Hll-Pl*O47e0mM!a63f1gGP68 zUYD#t!jH%0?x7$V6jjT(Lc|q1tZ1ZDqWmkwd1oAPB_+yVaaf2deHb^3wY@m0TTFhN zd?V^+QG;ZnVKbGkutJCi$C&9)kb2@!x4>_tP3ECK+z3gtVC%(D%dF=4#5)I}z@zV{ zGNURgll)$7FqAEkH96QadmPe=3U*mqLob260m^2s+^b3iRcOpI8)25PNPXz)Us~nn zdC@@fU{)s6yeP`JkB7@lf3{!vnPpj|-ZzV8KEIhXsO(^9TBA&j=H>v++mkmf!PdFJ z@^01-^BM8GB*zQ>YNk1mc4+JV^6D#n$unoE1_i;%OtV=35uCZX#FTMZWMUtt5B6a~ ze;xgG25o}J_2=kGn#Yr4*)_)#x%l2mEWXHsxb)Pc!}GC%t^bZc_v-waH?Z1@%c1a=8aZ|OqkV92aBy%K1=xA5MGy(ypxxtX zt9&MRVXWTBb1<8m+W_91JB-(74dKOi=i%A6=3uDN%$l?yM(Rhb@y8?aZB-}7TrYIp zI<1Q^TJptQ-i&m*b3`ne>1%fBStW{gFMQ+VV0XQZZyPzC3$i;zUfG zHWi-VR}Bwy%1Z_8Q7rKnG61H@2#Agt5!=RMns{?WwbLA>1e4`z)v?cbY%T8n-FY+Jk zK2THSSlxdf4&NCIwm*y%QjHBz^+s4(-IBuL9B0-J(jq*yHsGR(r5{?vkIWyflGwe< z2_#jOXFL`Ha}u6*HXK7@!rd+87_AeX8o;wqw)pbG$wWmTrfppTyUTa4}|Z(zU&W}K4o&kO-rav#z(f?083td37&ZCX*}{8w-RN1_A|KZ+~47> zoBr*)8N%T7MX~yZTVVg)H^&-skGr8)amz)&!^zj)jR#(MADFxt*8RlRIAHfrW3>s= z%`3S1g5UUV?!|*I%|?CNlGyOmpT~h;`4~PpE^sgh|Gn`79COia_}de&;XO71i?8@0 z?6}*m*nREk9i3$Ey6u*U{7yqq4!^$qS~LfS2}^twhyUP7{C)R}@Yr2{#MLitf;|>x znES$AIQ7g+aoIl}$Ny&cV)~-X;A30vh=aCY4KrT45})7UO#EXg2;)VZ`Hih{?%LnR z-+%cTpJbbZ$8WwE$DDr)?tJof%vGF3k=mY}dYs;_gix*#g4f}t6 zXY9M%j^QsG<@O$Ou{3*5q!Aftn+4~*1w`6)=ll}Wrc6R9SnBde{XA^E@gUCo)dl$d zZI9yVcQ~djxiYr=!k4lCRv*MQO$KuhS>cE@te=-KWrGxZ$k}F?DRqQ zbR*|qDe^_g3*=c~oN>}DB4K`woSzj(AIlxgB8TyAN+?vkS~&VqP)v)7$MSy~2}8QP zKBwN*L<+QT)iamKrPCuZ&mGe>>g2Q3<|vg|NS+kktMTGQ`{it^2{$e%+y2(dcBKxCk<>o8m`!?G3IOOuh-)P>=dBZYWxq+SUWYb0Vo67SGUo8^bwG19i`!rzNdJVkGYv zeV6H${`GQ>{I-(M6+vx_$6(buDTFqBhnDB0UUCj=|A~}(n--1aA|pTVgU+U3dbC3u6kezx7V2NhZ-e5t9u*XEtVsdDj!{PLYK7 zII<%jjW=EZ?>&4E{`lLYarcvRaLv)5 z#sc@BgD?NzwRpZh1M7Wq3(RCs;)WY{F+RTj5*TD2p8dno`210K;r0GS@Zk+Uf@!Zmgq#2TTYUB3 zKB0EbKG<|h)q_zI*W7elNRkBzw8{c(yV=G#^0agDsV{#A4X+W}e`ANwg?9Hp^k{ew zwi^Az&9`9}pQtR0L|vZsAbz&j!8rXX57U=l3tOzk@yI{!!?{O4gnz$t3@+Vy8T7vY z0FK=A5S;Pk5c(Ee4j*2thR6T)04_ZF5Zv?9;kag>H6S-U^8z#Yu3ABm-AUFA*sv zb&`P*WWbFFUcu{JH*LwIq@UihF`_9!y#Hxng*Hh!s(GH#*Z5)jlzh$ zpMIA;+qsgnMZS3a#hF@Kv3-_Cnf078QBE}?O5`M5?U8Y9Q#_vW8L)-XW^|A!(>qzI zRi(761Opk_K{1_SCWGm+ekorEQ-|nrS(SNIQ9;Hc(!`)bVVq1Dx1W1b6vXMlGfn@M&V{4D|0#tTfsrETVw#p3?_6!>a0et>7Bb;xX6(yEm>7$ zkFCBIh3c*dI4nid~BJim@zoEMa+R_%?StZi;J%PGcLLQ zCj8>y?_sfp7u4MB`;!wwVxc*Bc>kq;;q>f`w`x9$Rc5eCmwH z@$b7Hz#BVkf$!`$50BmaFFZSIL2S1Bp3xSBLl5A%bMD4#n2v3K@H716!{hyK=Pg`$ z*k1VIU4Ox;*KdzacUT1N#>&etqn`hK$6a{rsb}$>FMlzd!=82F75?0_j>Grf17F|n zvv}mmXK?f1?osZST5M62gRL$DFJ5y2&UMQPq-~9ZuSlZ8?xsRTYFYa>%?z`|B z-2TPAu;QOC#IJofwS_*3)6V^#Pa*>E{Nq$?_PuNI#8v0xqU~14t|Asbv>{B*x8u8C{u!=(<*zvFrd_b{XU#Nmy!fZQ`1i&q`r+W<;NZ|<1V6M|WKth)ec~;= zF>45wA(%tg7@GRgVKbmRlvKGUC=@rkV~Ic3kXn|cPBp6vVaji0Jc(r}>ug;bQ;<^q z4)z1hLM5$82a+M1C>0?uZm!8rO^X1v;BaZwdiyYW#thW``@Es}AR{T&SKI(cETJaE zu?m`VEWm3^79@FAYGiCOk=AS(;ibrX~52XpWt0 zn;qO0hp9?04{MXeSa>d(+}7^@*?SK_-HxhW{I|Z-?zz1sH#fZ(5(oi8Zwb8!C_HJl zhp0UDiHcqR`apf6Pvwb<4fR z_uSmQl5_X|_ROqVvu4ejJ!|bX1HkSf%G)PKK_|&Ppq(3YG9zDW@oz?mhMy1Uq{<*D z-<1FpMC4#2!gNpuL4XUp^2P15!^XD*k?)6ZGc#18FZn|b-tW8MLFptb{)hs<9Ok-R z%;tZt2vf~qjKa|dkJ1Osxn}j~;&zsgD56_XX?BB`lKKKujbe*6g)t;|I(qMF@){$y zI7551A_D19qiA6TNe8pgAkRCAA>Fjk78@4Q<}DVa@w3Y%qAXJMF234yfnE$s`fCt+ zr9MhDu8~vAt9hTlHw4(1iJ{6F+7=X1#^WL>J4{4bts`lGK56Xt0n-PCTBkcT)RF2Y z^Q^+-Is)s6HT|<#ZHnkIW2lE_A0CDnTeW39oUmpR&pCG!R*ZEPmAYdJGQUmVUzkTU zeI{P_Q!l{kaL4&Hw61NhEu-^ShfJA&)Zs*U-2SiPS6}l={AyIkgShRkS)BOzr{HmG zZon6A`&Yd5C7;4M=bVK{U2q|u`RqsHxaq}Gl*<&{e(c&?jK2x2T{DHw^ctLd%6+); z#xLOy-ts=&ao>Ho`PMrzmuH=royBa!0LUJ^6<>cSD`9kA3cvTuZ^U~){7GE=h;wkp$-d4X|Grn0e-_Tn(_Z(Am*B?SQTn3GpMs}9{*u8e z=_$)yeCqn!a5(2vcH=+dg)jWaxa{70aNEu~xEqQ*gtd=-8lD*Gl$#0b5H)tydfd3iyQma?{L`(4|BP0 zp@kM&Sf+5?%E|nlWivj0%MRSXcSaK`YI#6CZFlvF>;fZzg}i1jwB8mL4z}+a*OPVY z%3;FCOp!CxlL;G@^Vz)c zbMpyFD5ja5D{e)CFp&Zi&CvCCPI&{%pP<|dx{JMN_Z>QngEOvNN^kz8yQ6{lWC&KDh#6Jx%pi&;14)y zMMifsLAm&+@M2j3zuY)guk+67k{8 zB2w%XKlw}Y`=>)R)54*HYKlMVq@TD)nb5EbHm*zt^;J4rKD|qL( z9kx8;33$%Mm*T09JsyAaS6AW=$<$v~c$@n!gjzdZ{d z{OA{O)%CaF>o;73fBo7Q@h|`KA$;#|y#s&nv?0%}S^#AE`@zX4Y{9?1^LOM~5lO~S zM3@zS1r%E^E)?dz{WW}kd;Z2bemX8bdm{h+KD_1)e}%6cT!TkE`AK;4<1fPHXM7UB z^`UR~Mik!PFmXP9;QQs`vowKX2TQ9S6gwLi1J4M>4vrg#jS83F$Mth#xdiQBgF{w4)Fbdu_yAD}pw8A?A(9R%f22w!A^p`qFCbZ*}be25X~@j+C^J zS?cEBK@J6Z@i@bZHEXaocaqI!`CETs(~XU_QKjDWN|Bvj{bca~AQ#hOtXKenyPT4uHK^66n8mk{*{Tz;q2_xKk zG2F0`J2)Fi7z@eZe>%<*BF|!H0B_0YeIGtVlcTmAXNw$B-Wdmjj|Wuo%a`RaN*$O^ zXe6^$VoGx$$_PYp!@Ceu!~}CLTHr-h6oSJhOm?|n4C9?KOifH-I)Aoijl)b4Yga^I zxlY-h%tb6zvVb}n>kmdrlEF)c$5#03M41epbbvVd$6sc$tc;Em#RyBje^&Hg@pmY9 zs_ox@KvY?@_V2^N!-o-_U>Eo_Gdl}6dkD67eAkdFc#+XU*v8D3459Jd zDBEzCFb<}X%8^9?o@@Z!Hq^>ym}2=HmatTo7YwnsTwE9i zUzO=kKXW5ijCbZI*GD02TE7-Q_&qPi7q0mRzVNkg&DmMF^`;v+wp1qnP1bO zbNpGja6<=Q-M$SExYO~($E?jq(qUZppZ|(aA36n3Jn=j%H9WL)H{SQLPvXo|PQtUE z{CMohW%MuJ{XTs9OJBt|Z@DefFc)8N4laA*JBgqFtnznH z=qbx%IPbhOF!5jCz`x>qQE?tlZ#UCk%lAD?ty`ZeBLi@ z5yA3p-s{4}1Y?j|^tI-(0yT=jur<0aq_1t+I#VGHnU>~psm;b!>#L+uk2H%nsVn7| zGd3l$;rZRUR&3aaHS5=7rt8qnGBKTcbDy=Z*Ez(T*jk-!W3Uy<$z)=RB@bz3wC}=+NeyA&LS(b2D&2F7$+G!+xpn)v<6qTuQB=2xYmd=ZwgeqI6JwTAa$bI ztsuF6UzJnyHsWUTbKyncxs^|Aj;>BLBtcWUg=8v#HCsrIP{)qWQ5G7nPL@~^rDNT8 zoj5TpCObBKu8^YmEKb?tkX*&AXq`Puuj1z6gm6$GY9hrDo`*`njus!)rFo(q&E#>c zEp@X;9i$~4Wki^F`icF8x zICS`s5L$4&n-LDp%wqTM-N7Fp+^_kMLo+ite3-v<&H_WnP}!Qz9~xI-r8w)Hk)?!p zeSsMYN+!yfpPJy3=L6QW=wP&E?en^{Ivh1^h?H(W9JZWO$7hM2nyVcYh9todGV##T(LOI&OgiSPFDNSigj3hyxK$7D zGs#jYoMLZ!{rBPb-}MjPQTFl|o=e{s_f1OKZ9R;^G3Yo z$BxI=al#$juf%Wv?&wZLFUQ+{_Ht~=b@=4*n=wr{WB-@mjh}hPcW~PN8}Q*z-B)h?EpG;$%{ck^{9WPO z58~f`_szKd$uGm(fBaIs{`)V+2j6}z-uu6P8uvW;B5XbIEqwAzcVPF5^YN>fJQa_} z(!qy6^LhN#TYj%}fc@(qzYSlw_By=&mwywx_w2(9FMBF}Ab0ql5zZjH?aq602k2Mv z_P=>I{^^4s#ozt@TXM(RrFiL&{TzPh&;B3Y`5V7fI@;z3gcG0ly?FJ%-GINn;qUN@ zAHD&Xojrj&uKhBueqatKz3~6T^PX}Bwm$FG_<{G`fWP?m75It&eixp2MhD;e`c1gY zP2lX8y#}v5k;G9(lY8**zxw02`s^(@^zEB)>z-me#>?^g%Qxogdkn{I7|Uy&!B_tN zZFuvFH{vY=)Zao2Ews?Wk%!|}O_uMPU%G4e;=Beghgaz%0rBhmqAZsd4=f|odkm3g ze=j0!Vq{xx>%tc14>k5CHaMmR;`w&BEo;RzHQm*w1vwL&GiR{nD52HZa0EwqZVkoJ z8SzxL3soY@(lo0)NbAbiNX1r*9c9+W%aJygkLGG4u`KPTnYBjk~8jqz@G4@*axFf%YV3l1wDs1mhRJmbL$Crp>Q z$Qgl+q?{`AVg0m7mL&7jMTC;kJ1%%(s4^TV(v{(aEm$X)PuE*35WaT8(Se)TjZhgu5LixfZvSE4(W2>h1q3P@F zq~pLk)o=BP+(|Z5MzL`vMIRhIIE!6-_T=~KpgnkK7W)qz$jkce8Z%ZVnbXOvj8N-H zPxB+8yiUV8>l}7wk^-t*7+Q`y#M?WjJ)Ncj4U(_`FbXiL!q5onA%sn6nGdmI9S#<; zt;5p46f`UZhKVR!Oq$IH5RphM4)RFE78jh6<6&UQ2wFs_(Ib5!e(~8jJ&s3hU4vr{ z?z-)%Kfv_Vib|fvhVctuiZ{Rf7QFStH{qtQT!k;c{` zfZu)3=kTQ~K7ucet-?uXKNbJ;)!&bwdivt{^IxX^h+;rfsK3+4;7<}rB7AH5Z){?)(YJ)i$3KJL30lPJCDHtoz)}xa#UTtUBQlc*RS<55MxNi&1n3pIp<~@Jzh*4P*GHKm8bP zIq&@7e}%;!~l8j%}QJLBWIlWY?@lhc^%ib3By zLn6DUlgJ~rJ!gtLGHa?moiZmTK?zE8f(5!G7>otqBPx#|V#~DH$93%3ql8@D*mlWP zTM}JUCz(CQtyHHt>MDnsNt96fsKGvq87i(FrQ-16ZvGdxd!%AJN#LP9d&`Kl zB4ZKNxOe{{?AxC^(>h~iGmG=t&^3o<6cK5{n2vg1g~;IUOb>eO$>D@oQ5r1rc|t?^ z^05&zOOMsCyp^TJL+DMG{hDT>8Ivb^pIra`&;AI*z%6$_fYqx9 zck;dcum1_Z_pX1yeBkF^|9$wG*S!YEGVI&87w4Y5C3-gBKKQ?H{#l%S!tn!@x%>VH z%QNI2E`6{NJ{Hd10>1Y}&o0k!D;#Hc-TMFrfm2T0Ql10%FaP=R{O=RxGkZqdk%F1e z{w^N*%b&)2CJ{_~IE($ReuSlbsZw9rBe4>$P!H~bXX{$a0>B`V*WYj~{d@anz( zi^>|I?)gpI4&ch$cLMb}j|?0YOAj_|!0`Uzx@J0xz%IA>w|&0Yb-3g?P+ji3A<}@} zqLh{+^fWOn4a}#Kl-T6}DJ>~uZ9YyPwqpmu16hYlv`Lm>e8n`@ZrGT62*z@|bz$-g zhD~SJ^1RXySEp-#g684VvYe^cxtKMa(a>_n;b`}COL0|?UW%b_)R-qB z1ocI=m|&4Qp4TAavPqq3)L0$p4C{2*g&PjeNqrEhngE+{kw(;EV6&bLkg3*ECwHn` zx*z?cH|96j!haVzn_TC@eR1uYzs&r(Z${Zi#2PGmnRGh1M(d;qURq0V>&P#cthbJ15<`*u9 zq_oK=VX(@TC_qY>$ zVmkqEab2}?Wf|dDI8RsRzc;L%_71g>eJ-CR=H}**6*8DV+`I2U?mXLH%H(Wb#r9qM zaCmO6tao;{i)>~N>X|Dd(7Nyrv@mpCpp^$gWp>b(#Y(0w4FCqzZVA__IL+hqvx(?A zlCrM$XFYI7M;$&G%%{nTN~tHw#n*x9A&kz!CNq9Rn_N{~Y+Btt^~2c%WIMyAI_CkD z%H)v!(Z2#L9PfJIB*{n zj;~>%?Sragt8jb`3x$KN_-mns7FuYbg;BzJo2T)`J9m{wQY;@(8_W@3F7$)Q#%8ZA z3=T`s(WB@FH$a*jGHsajVaqKV%wydw#^%JPb)<%i8ovk0jKv|e4iDRL0zJXzH$FXG zZnx+tcan9p@HqG=I3MaQOInMo)KvNbN|TwhwL_dX)<~TqW}|VmjTu{&J&uZ5k(=j? zmm%1hBF9t@8y-h+DN1WyM-+6EqN+NS^jha63kg7KcSnLVvb{+ot1_hw*7{Af{vU{B}k^-*MLVTL;(V(*7%Y9s;A*nVlKS7dgoJd$#bKGyd#V`hc~FEXJ%=d5OwamCdPkhC8af-d zBj945iUM_UvqK5-@)JzE;ySH6E#p=f$#Y#$)VCp;FtnkQ8rwPRX6VDTZesfS=iV*ef{+4M0pv&^Pc`Byf=3=Ty^!=2QE|0 zS?egknBFEr0j?){X;MHek=KUv_I7yM8#D)?LdT z7Kx9&%qEKkv0b|Q+@{ruNv|}Zw`kRsqXEj5W#?&QX(VFEwLCi@BHJ}a3zi2|XLuRJ zu+uAlKU{T!0Khn*CReY->h&9u<-ZFjnd^k(a2(Wz7uid#X*N7JTPFIa&iv$at6VT= z$5$?2))cCf$T8={Zp;~GvO}97H`o%w7$FB-)npb!GX&l%{l~L>%tk1L5Fv879fJj*XrV45S~=3jvZ;-?Of!~X!G%VVM% zJe1VyQNZ+ruQfBN3{n>#25IHNmLZqO8Fywd@Y@hl z|9{6QKZNt;DpUj-{6AJAinGeXv;f{(w7f6&(hcsl?wl>-N=I5J)W2cX3T#@t(nl?B z&i_t5q0Dz^ri(oX50uY$?>UIw`}XF~$FOtHKFoA|tfW5|Eq9=ejRD-APUu#r_NSj=N(AYX>7&Xwgtikl- zK-pQ=ol$NEoKqpAA#r*HhNi`WA=|iQP&a-S2t1#fm#~G&UaGq>FH*OzU4df_p7`iT zmVYfAIcWQ!1q+i;{{`H9)i0oh7FuYbg@-?!xOOUclpPGe?0dg`{~lyLVC_^3SU*tX zkEMY+vKyP6tVx{Oo&0*9=Eo}g96jh6B+ZiQP%%H$cI%*N%VAkK3@kORG(Z{+nKsDt zVat_iCebBp;GtnYg5Vm^EY@0l02m1Wzy`H>rWr^gXQ$V#!;00b{9boiCVIuI8RfZd zGw4hgIx(J8&_#NVSO~x%5{FA!n(>n6LTttk_GG8qIvTyejxf!tzg=PvuWYXv)TOsE zD-)b^k?q`@N>yH^jv8aU`aq(mNxC}6BAQIQtXd{+7t5)QaI-p-s=e;gKo%)frNt7! zQF5_aP{M(tvi{!kqE1n#6V1}Y2)AC8F7nY~03!JiJ|vTK$z11m+#`zE!ve*EVDx!0>7g$)95A03`oWaR9;P`AIkbe zhcg{ghaJdVy<>YOVAC`>!Nj(0+qP}nwkLM3*qGS1ZCtT!TN6xX^E~&vyZ7#w^B43{ z-Cb2@HJM&arvgL|YO3ibVv~5Wb;*HrN@V*=PE5Il4sW>Uprprvh&#-s5DXiUA3Tvv zvZ26!;WfML^ze0p>ixslZzPgj=qKalB*kjFD%x# z(B@kuOvLLARSB${wI0L>3(LQ~{om#UfFNYeo@5#7Msk=yg{r{PUAElN_w@-4!0TM~ zL8aCH5f9bU`TWysz7cP01Iv$-syG{rK_x(;x2P&)K_if0*(~Qe5KHNh3 zY|Gtt4CkHQzx7983OnkGPPKxfg;VNX{`$z(Oy-(tH(Y9SHkPMRxPt3Cpe2q>a72o> zX{zbA&fHc8Ok^DfU%i=rb!@a8mV#qu$9*-P<8di3j)jI=y!~vjxpc&=$}jJ6e?-T* zj0x|EBWtpl9OhH=_0Zm>`4CT8Cas@0)uAW%#xl%WVfz)2A>kvTO~>#8=vNj-Q8U4w z4EMBzNW?}Xq6FZ}Q_}hh*W1sGGMg-P&)J+habsRQ`1I3C{2Pc<&oRbweZn+X$#zBK z4e%=G60{n4hS{EEK4q(0tepH9Y)CTi?H!ap!8a!sjM&aBFyntqqL9zmBET0U;r=uC zHN~b>7z!74KyMMDi}r;xiK2W^;Cax3F{Wj1#9Py*({oyJ?@)D=7(U7)T4l+Wq{}Rk z%vH~#8lu5)DmM61mS`>_Zv2oAVa_<7PK9=Yw`nP0c+!o-*t&HEtTdtX6-;kQO-9v9 zA;oSk`?ew!2Lk} z7?L;DM7OVt!YSf0lSILgP9xFk2M4;Y74oQ1Q-s|{goA@zO7K2i>t@ocsP1M}FyqZI zrCrX^T^25KcWyef2@RYE?@~AWGvPJ+=?Tm&{bzfir^7$%IwiV289J))H8f0G(w850=44cJN&3ds0m%n9Y_XF+y0gI1 z>@y@GSFQJb&eFa_Aego_O|zF1v#b8WJ^ z&_p*^#~vP0@5;@Lr>eW{dDu?lMJq(PhavL4vD?t3>kib&%`)XU=PcA9?XiP(w*6u1`@jfd2;IRN)*1FmwmZfLkalp*b`S9M zig`PDoRCD{N4mnaS##FdLK%fGo)C0=$Ob^c=1kp)puu(Op*@Y`I1J8E=kp@gZZnK) zhwAg(x$cAXbgHstgzMP)U&QOdfpvx#!W?RZURa&Rwbq7^NMvJL2oEdYLMRI+p`I`a zplzyU7{At2(`fjp`DPaIfJ65;W>aE!Jv;jXASJ+UEl8A4Y1$tZMpH0>H0SYnfXa*0 zu>9~k@F_`Hne&tl11B(DniGg9=WCN{FQO2Cq8Nw2EpbpW0X;npG#OF8x#Pvj-*X+f zMcWX-LeLRlAhf!O`QPy$BMqT+blRsm^hvzMfqWNM&!we)t_6r9Wb+#@L#)zrnMhvt zQttO_ktLGOVzWUrLRQ*J%XDWWXvhLZYZUQnxhU8St9?UIEWJ(MvF+{U!&4W5Ez-ud zOP8r7UKOXq@X?dZG|+qi2HVd3Zq%Bz#3qnkWwx&542xt3SWlN{*Q8Z9Jg5$6x<{{nl-)oHX!_MJp||csHa`4^4^J7*p3*(P za-*3b+SEvkpUd>S-(9Cg%Ml_QW@0W=^}dZFQ2ipEv`6UR5q&K;{w}*PE3Db+EoQX~ z4%?K)S|AB0`EdBny_c{ZOm6eex0o!5x!LN@=S^$@RtivK4V2%x+sx#323V0i###PmWl~{=qnA;Be}@l?073MB=s!GV5N1`BIUsID+niqu2p7u2?p$LD@cZC zJ42=B-|9ffdXahVorF=YG*DRA##xC@>R-llU=_BuKs2~UqTfedB{#jwLR4Grgp37v zeJ?4@I`*zMx-cUwPVf2w+iSjDL%_cg`zPbD%U%K3e^^(!-e<(;qa)8FA#gJR4YR0L zUV5;#ngK&y2G8{1Y17y%O~(90*lsBTWhX9)`Ko+}!0fb<;IO-)G*2xit>c!AMs)VX zUkNlRqume~VxtF>4^p4QvQXJ8)x-Lm9wrWUc!!5Y{G-oW!5tmk)5i*7HJ6-f3*Y62 z_dn%!w*3D9TEaHQPRXeJ8OkOD?9p0a*3TY>JrGkzZW;p@)y00lsdT12o>&N}BI3n* zG3)ckFdhGN)HM#eifWy$TFDKSp+cy)1arVc*o{fh)OGYBs#b?F>L>-JE9E-gBvWwx zhlZKNX(TmA5my{*GSN>{!c=>xb+YS01^bn7n@g(U?R#gII|U{$UTZXB2ulxcR*Ze2 z5K4Cbh-s|A8hWawejXLO1@O3p!*lUGWv?5hK5O+<2wU^hnStl>7yx6ZxEcfVIVSAdeC7W zf^|SnyUy0nQb31II`UO`2)1vF^mYGnYuItmv%>1D3&tI5%Z~BBsSixhHPWIeix+Gb z?*bd?z6$2k2%vgOn*T~zE874e!|=lSkLJN6id=B703e64ec*Y+MJoV$ zp7xN#3w#ivtkzf62-vvCWlk@<-Tj61fiSz@o7>g!XoT7IicdEbt?$ib={%}kE8qf_ zL%1qDSf~h}1WnGf$^b$t02YKk!s9dt_vpQkKOt*jKXSIs1UrulHN6>e0An}-Hw+d{ z-kO`>WfG) zytITyK|wJ;crbW%1&2T=p!d+R=Lus^2nRt=n2z{#`G4adj$Zedtf5NojOk;?MVG^S z5r;pvNFTXgU!&CIxrV&fM%WljAZhE1At=`Q4Tm41+Rr=Vb|t=*0=75z`OJ*L%D8M9 z%XK{rfqg^({KRP`4k?1WvZP{erm&+Pi9=9uLf zWOEEorLxvsBm*lYyZtd0pg~C}S4>Bq@8^g+6#<$1CE-Bf_Xbmj!yhu3IH@R z9Q(2LYnU7R57Z&4Rn|&6ibUHp2@GXYt6YZ6*A=-#p94+Vki@8@QJSX+*FG^T3oQBD zM&d%{@H+cZVd3}T8>|bDeM1iqE2N+(Gge)y4IDR3jSm8ed0vTi1!tm!H+XEQ=;Tjs z6^3n4W!!zc>>SSkuB9HR(mp&A$;`VY@{YF=;Y|w9gAI?whyAaoUcAcCIEw+VI>SKc zCoFA7q-s$`lIKwOUI!Vou%vl~dVuf;8w3k=sjryCAKM=!AIm?mk45ION~5o^Il`rw zMXqYqGE2b`$sQ6D=Fp{MTJsN^4XkDNSPy9kFtgb)TzENGe|D`z-`58m!`NwU4^-%` z9Nbk86$~}4HFydVY&8+`dR`BFWpYoS%rbH8&vMd|0>6LC77J@=C?O6}^&0qiCAf}4 z1d%=zZdDogJXGX}^HCJB;VN?{N)}vLPJK zqlxu~I;9Rn2k2BxSqz*mXU))7D;%Wj(CgL}-Y6vn6Nf|9=KKCOgCbI4rCvPs`>A7TL`QOa`%vHT@UzV+FGN zbVvERMONgt?ey0;6bo=3xPoP~#XOkv=!ax8wvVJ*LiXIliKcjLd(JvTEIw?znH``f zlhU;wyyAcL-NDx*saeK{QPO=%f{pe6BqwMZQVPNEYqoSNTD8d`Yh=3YBg~8zuqmcO z9MC_~J-~28m+tWB$^InWjuH1CB{Ln3p;J>DgayQqs1TKKnT)=GNm3}A(7w#-MNIqGJ0D!J-?1s~R@)&1lRe3#TLW-aQP zdk9p{gr!x?=a6J&4aaFA6A zbdb^ZQ+$F6&80t2x&`vo$l#Yx2fD+_0_VY(4%eBPTlsQawjlWGT@gKQ1tV|v8Jw_| z8M}3`pj3KmblKzRaaUgGS6_tT{s*n5+Zg||gKEj-gDjkUu-HzL+qxJ3-V)5|Z@t|= zlgiS}_Mr#A?sU&^nSx*XvZ@A@*B)agL&}bK6)6Y!X3G0ysj1-Bc*~VHc9_^yVBe1T z?~~~^pnOkglQX`i0qNBB=kw6|49?NmMYLJ(igx3vpMm_XQgT~Hy!=Sl>XJ6L6o9S0 z51eu-b(M&uL>8cUwX;b)d$&=HyZrW+!6@CfaCZpyW|{N_)vvDhUW!da|Imzu+Fb~w zi|VT!!%J88=loJT(SHa>d-?!;5mr4?Wd-b%v zXw*K9PyG-hS^s$Rcn3M^at5PpOP#);vz@$JVkJZ?-Oe)v@i=e>zNDO!gY>390@Eoaz&L|3l>( zLkC{H^Y{~&ofS@~O`xRLNi*g%z?|=&iB;NK!j3`BCG=e`keK4xj4ch6a!^ z!JHYpypgz)VkpU^j-_6#t7DF=>c&)J;SknBGR)j#^_8h-t_-T`giUd^iQCa8pd5Ir zeJ*sG=vBU{&jOEap#_JldBrmN-@LreC2S9mwJOf?qh!4$+8kgJO-jeK7Q-t?97OmijNZGXP&< zw;ciUG0Jr;D8$QYRoHH~gAnn0JECL#K(A@bm_xw8Vg8JFO5KcRVNtz7Y?@1rGM5U` z_^k(O9pWWeAo=$*sANb~%tZf^Ff)>U4-b(%uG2yzOgGOWg3#ify2QxGMACeyyCI#p zopj84vv*^eCH5-itqaO^1T`AO-3nBI*|**_5|kGIzcMI2pWOg_my}lVI{;$n!>_;{ zK)!cPL6GH@yn(7e^H>D31gMZ;sW*mM_9!vO#Ta^_%N3_x1-tUmzEWiK@n@zhb}L(@ zNJiN-oT=4B&!NsP3J?!&?@u%~@lp4t&<;1crT2_;F&Q)O^@)nN&t=#%wTx@q%=){n zx4_42>KvNM9X#G41|m+2FTE#;H*MtP#Hvq25afbzB(2s1Kc_U7!3x6Q>=Ys{ zB9eUmqm06mz?BS{5{EAsf>dcZge<=08fP@+myH6u|0e2t{D2j&TpD7bOu|h4hEqyc zLF}CJ=s%ZRu;&ouMAH1MDYy1di$y`nvWC|+iJ5vgDh$h4C$}$8)I1W*PQ~*Pj_|G0)$vce2F@BqUDm$l(wiN zdjj?Y8l$olcV_&DAd$lSw`I~)1c24!nY~z{ibN@n`si1^NU8Fs7zL^Aczq3JF-e>i zDh(frdpk8JoncCV$I^vZf1>#$n5ZDN!Esdj8Nzz6QzJWdmrhTTr?VTyeOl^dnO1c! zcKQ#bDQZVon$zcXXEHB05h~!tSxPfXYjw`3w5>*=?}Nn^j~mwO?OO7`>!FvP2qs@I zAn(-ZsF_REbb|FiHqgxVW(IGq=dL9qi{8A1>0xv>iZ~?0A`n~4P2+rqUoszoTs4o> zIKHAutiLUs)_but7%Cl2wo_6ceDkiNHpJm)KaTDHk4X8yRD~&e`3<>$6p?;W3qpx0 z_*HP7wXw}&(EA8p{U@f&3Q#CVi*J;8RcV9f>b!3 zJi27|Cok2=wcBVZ^^0bU=*Vu)rAI{LriOJisWCb4kj#{o7;5?=z{oQ7Ccy$1BS73m zZn@UI)n7)E1<5x5%UiCiX5#7RMJWrX6Fx>wr?1`-ZN0}?X<)%IXpw75)GJw{lWF~} zSP~(k!`RNM5t1j6N2r^5Ele1t0Psf@AeWwm89%zzoIT-OpEvqr^TFfB530=+_grY()o;U z`$D*;sGbCWr)s8Q-a33~;yDSPPSyU-86HiJAL6DYi0Fy1thYZk*lO~pY`x7Mx{|}l zvA~ZLp#$2;w%O?I_@GIREeZ*pox?58s$Xm}f)NjhvOmMY@oy9ivYWY5Gt9nPha`6@agFC zj3Za0AJegLv-I;eW%T9pDa6l_GWKJ96Q-v|N1l17*MMhdx>nSN^ws-EONgsd%qv*A zYxM0@kx9PC%s2=}J+G;0xU}=Y8uohkI?BudCWAmo>@U{7H3}G1WepQ*`}5K`iVIqo zdT0d}cOo&b#0pk-FY4O0<}*1@nrmjD+vn(D;c;L9ME3?UePQa-2#3=E?-~*Q@e=PK z>tt*fsaQG$lCSH#BEzFYlP2pSQ^ zHdj;{u|{|y3^wtn#F;?yA}Ie%08+&Ru~-HyNx;QR91HTeBW-}%xuDD+Lf+2U4YM~6 zcPpRnpB9wlEKWqS4-eoH8URs4S211Ze#$P>)6Nbx4}RMfdAIuW;W#eeONc9eu9y#x zt0Dc(SEG-eA*bzXxH3FK(&_n7V+|I9BJ6%+>)BczP^a^JH}*`aM|Ph6{NoD9yhv~O zV@PA8VqRrK{l15ZdaPQ%O2U(v^01PyR>l9;dsJS3M4q+xcVd*fL!Kv12LulHTla~k3KM%m1RhrkZ zPKNC|Rn#nuJZCm?)agy=Azx(?=jK|XOdQMQ86hp322i=6L^aX2xR&G?tLQ&!6+kco z{=ka3oaC%uFcm|CnB}-hS&5S$$a{PSXCYkXDn_SM)y@LC#@`@|c_l`#%~-3If5PJl zg*6}>;H-h1Kq#rld@pT2^Ae`(@gV(!C|nvio6@8;pM;8JAjW?t5EzbIXH^}tWpdJ- zmh2|VbnVXrUEqhubjcfqcnZh?!Nl|AJ7Dr0(&aFsKe`Fa?O3t6N!*;oeg%nkADd9j zR`8Wg`!p1_KK*D^pdIr`YTFC3rlkR-rHoB>Rt`<=$nNsSM37j?3g4bO+k zwUr3#+L|S!^=*qOcRwQO(|#J8We!-rWmHl{!LlMJ$breizxEx|hY6bwY59A5FeTj$ ztTz}@k{vqkM>dWBgKVNNF5rk3Wb-5G_nQdH|CcLv+%bm{>a4YpiQE~{b^KC#NikM` ze7-@V!|t-+KS-VzupWbcr=`a3#52xwvhKR~?Jm3~Ecn#Y6?| znD>H9Y9o8S-RkjF7||j%a4sdjqoU<|jGno82=P>C3o_Z^sDYdt2RhDC5knr{v9$6z z+x#>G-pq`>P(13946Px={o!LlF0q2*UY~~-G8^O2hU>ADUC!C6Qd~{-tBDz6yh*s7inn7$YV@R@&i+mJu{jW12 zAQSAzrjGVpx5T-GpuSkE&jQL$27rdZ95|=QF*!%0Zy5eoV;S|69FEcV*f9~rl3Jq# z9-qW`~Ix#(8F2u=jaloHg~u20*#9_E>c z<)bAwK$kn}a3wb|q|9Le%=cv<2>G(ti~qsw>c!!iaU3=_=9kL=rZ@~FQG7RfN&o~y zAO!^?*Gdg6A0qr+#XYZwSA0^I(?h3RPSvN=fdGlVRX&h(A}z|K(7Y>ciiFow-vDCWn-*4~JRj4o zN|4fr#O0yhTWvx50S!>VB{La?uQAmg$se2!_H$6{*+PdEN?$IbvXKi#ZdS;)HP;zO zx#v+<{;GQ_=Y()6()?0MV5E7>Cu6D5;Ze1O%p{MJjP2|=Akn!f7}=o*%6V_CJR<=V zw{_y4((ca*7}&D){v$}~u92RDLLK^{!=IU<-bovGJg0lW1RD1O(&m{e9}AT@h*cN^ z_0b~K76N%J3HAYq9?t|6jy%R!=bf?#!$T+bPt@x&tOc#8HR;TYlN}yo4KbdPu5!B` zt_YB*wHZn`F+=vH)aDwPXi24;LKNqM7}Tk!j>H8HJ5m?TRJsCGu}O-11g5P zT4*KjXZHzS6)U3%wTkpbkW7J;7b|$aiiEkG_TgaAGJ9^O0$AIgh%#&ZL+2vLv&*-=>@C;faKM>fy}qv-jJqt-&2CER(sCYTYjk3 z8Q7Ea`JKL2Q`&+`rr~MGtdcfv+GhsJX-ZMkGj^Q9UYMo$i5;Uy^1suQaS-JU;^wIO zqF)#Q2dz2Hy#E?&zCT|`8L#*Ct!itnIi%tk{gJF|X%pRTc|-nb8!2tva8BT+{EKbK z<@yw@`ij7s=Lar)i^*Rdxf+8*d)K{kMoJ9@%V=)sU?^UbFg}kh31OVXL<8yaI3CkY z1~*&r@9TWz$3~5LUDzTr)efk-C4T~eCC^kn+r(~JwY3MBjrsT zlF6()^*aB4Y!lT~Yvnbh4uSS6K1e;$M60HHA*8ml$?W;KOk|!(F3@m&wN|i+t#>Kv zTk6uilsSLek-C{dyN?*W$~0}2QzXS^IoWcZza(h4cNkVpZ+w|HOAPp$DLHlM-NOxt z0`2j!s3K>vW9|zSLiLch&9IrDJ&uOXzqz+>=0{S?RY>cgs{JJMJju*a$_1tAY+%-Y z4q{&bd18>&NY}2^lY?29Q=;rLTE*Cy;ia6?&3S_3+JD2xnJxK8OTLeuf5?w^qnD+! z>V`mg6K6W(bJxeLq8M}flFoK|fyQ&>LEnK>hh#$9ue0A94v|8@w1a(hGW@({cLX5H$|OD!qd9)<@&vg5qmb z>&8#0SGiDXHwa?$PUJLvG}NH8jE=NgUk4BD*k1QCwF+Cp4c|xnD;G-c0& zbp!DcGvStIyeIR!bw|+7l_0YOG&}da*W-{M>t(HU;r+`)tgjOd(NyVe+<;y&F;QjP zOjc&c)z}b@If1%jkBfzoxS)b11x>`Dr<7az z_cst^?81JneZM`1rNl#}kEFp#aJ&k1yljRj6Hu`RUR$(N1?Q6$^{R&X;5|OG8}hnj zHvU(dIgym+Imt+LMfN1wO@^x$--RTajY2s}KDBij={CQXUFHOHH?hR!Y_e;KgW|*Y z%nt}haD3U=@v!Z|1~n(?;vzfttmd(m#P_?x=DY8Ur4P`7Kw!fldO_5O&Y#(u#d}Ht z3;|lTc0vjDFV|YGIl5oHE+%;KeAci)-hHpFUR%Uo*IR_Gwo9QrO0H=hadd1lIkiFY zk|yH}hkg#8;|}UwR5{-42Mx281A<}zNI$t5TVYANTo@jK>Cjw?1l;NzM2shheW`ab zJ*aOwywg81LvpzF{V0VBQIc>u}*(Mm% zjynODV7#CRWt+4cH5kMeab(eScQRLZcDx*KYg#w)K<2LTpzA&aF#9?yQqz*2sOQzl z%r(xi6}3;dYDvprXu%7Fa2Jz*8aXp8HP_>XI7PjW?3$A}4q|=fNj7bRY6PqE2i{A= z@diponDIYirBz&+rLs(7s21ZLQhGUN@A$`n&TZ75Qu4=uOuO;sbPyi6%m`@HGwfYNrGL z_h%iV@$L@)e>KH@tiVpsJ*xu!WQ=tPFXK3f&$9-*^EQSYMV&<-R)1(k-1Icr8{byr ziUkO5rX}oH2<_i==`BZ0Po;k6)NwA;$6~MFf^7D;Se)PqKTya;$^hjE?%~UE?hV-# z>cf$XZ0^>={hW(WI7WDn%}(cfTWTho7L(EQzR=KtD>-ZhaN2h z?K`Q$(!p}1JTqcCq|y-cE{RbwBt}l@Be>t0N4$+sW|Y8`1H;=oa&=HOu`qLr4ayfE z3n_QayS%jEv)Gwj&}+PPuw`HF!B|rN*y7O_-(85m*VI5z0!*t3(9KCGmis}{FVv!5 z7^?;Rxq>t}G!Gr8o&x##OAWG1b>bCzRO-nBe{8cKm1l+HY#Coad3{BmvRpTQ)5$84 zk0<&K!|=`_o~?T__`EtTPzZ{jIXbtg$RsP@kvP6j)9Qa|kSfOp+M!GFF^4`OOa-}) zt{;EC#L_7uN!Oi23Z}7WtWnIY#vGBd6g}rCY3EUnmPb(v6CmovHE)kBppUwYKEV=@ za)zF9FHZW+#yXgN(h;DIUhc0uNS{trX_#DwRnK_Xjd0568mnf_`#7e` zl5$@uwu&9uOZre4q%4b5jDbJ)$_H7D$e}X}M37d@8d11Yb~CUKn`QA^F3w^I@?jx%xkb_V13muNB-Wg@^es zHa|&%e__s2TS8hmAZ<+xLZ<0Yxui~C=i)OR`_Xk+nPQgyN9p--XNl>GLFS3Hx0E%$ z!fF$>jjqQ!{UHQ#W$o{*Nw|eoNhGoAG^gCowK+vfrFa+lZS&vo8|*FbrVRt+hl?80 z9U*r1kz}sujk!Ir9@0}hUGPOQg-uA)A_Kz52$6r?OdHHk=c z0G3Y#+k)Io?ati~^huDwZ}$EI#*c@XD+2pU8CSG=|86*Q*q9D&=sE2ivI6$ZDQh*>0?_X}*5P1~CGQ7VihR#n$vy@_P1I_%4 zM8|GeJrt2g5O&6cZ{QAQPM)~X`Pttn@6{?YwV~Wl zUuDIj5XWUk3u)^`xCAT>L zhEIR~g>PXl7{Ux&rV)4ze zEgPEvLYE^OeUF5YOEOrS6~GB?WfjOc)dtnrUP#LoLUz)<)vF z<9nvCR9lv7Wk-LPfn{2+A&@3{_|wJ;vF$a!=~4WLy0VC~*js<$YaXHYTP!~C7wI^J z4fi-Az~k2tU;?rX4~g6n0cUef?ZZjt3aV2bUhZ`YTB1o{Hu`BT2a*Zpd3wP79p%DUP%$3(UBbl79$W zAwxDSvIwBW^|h4af^7&0Skkl7k@FgqWJuUs>^}lX>}&tvSXdy~x{R%v0@s2c6*dBO zZ+C;TZ?@z9LL#0bG(pd4K`Lu;w7DQbiXK75dLs=n$#g>!C=~9jzk@Cl->{Jvaxw#{ zD0K%!p!C4CVlQey-M}V?>)S5{hqSqh|7879{@6N;3Uf2hef)q5>`wVl9@T$@nZZKQ z#i>UBL=Vy867P$=B1vwzK*k;wc>=gZ2)0En&AO4*&_k#?%5+}3XCIdi(OfUKsHKL{ zY$%^K`-hJTc5$+GoN0H~HU8pqI5T8gdlOZRMg36O>!c|9t@0mHNT|4Zup^glp)Da0 zx*kHMt!DH?9>?$H%w=vkJbyCBZv7ETrBiv<9CS+rftQ83>2#}3f1eDl@z1|7;z_a zVsil%VFq{h{LV50oQ-|C0A*2y<5KDmfZYH!=IPP9zwwa^`wSl0>=5d?(3g9v*vm@u%)kOf zlIFdYY+kdLXAgh3tDe3<6)=JEJKQEQzVqI$^^e)aVX)c8t=!+(LCK4AFbBcR4g6o~ z18kLAkeO=cgfY@<3@pvat;azpba(uKN^?pqRYwZC0i;o=&(N|Uz0MXJjGS#gkYH}3p%kcm(Kd8 zUUS~)$GfvE>FDwnF!6Uc6%Lb zgZlKM84bH4Qh%YGKd@%TO(g-wh$Jq^ZWH zTFqld?ZT&>W3tLFkYH6MBU9NlTsFh%pOKZaB#HXS0-zIB(cbp2vkVD5E_#968S? zgs)4qnZANO5#RNb-j|NR3~uPXI-Q}mH{BU6o#zs-`>^Ovx`U`+U=q&AG2}37xJ#2! z=c+?K?qMD;Ne*VxcM)YB12xeV5t$&`?n|M3iNHOQ6gt&UCP5jGzA6{roOIKpBQz_g zEQsnnaW9sfv`pMZqsiRpVn_+P;>9MJ_) zGGz!{iNZ2i=i)K4XW-RW(56da_Y!lAN^8W}N6JzW6R58|3)11Y*o5)C^3bMyinMqW z>jl`=c(_BR3cLuXcH5EJH@i{Uw*gR)h%+Y}jx4W#J^a9BhHYpeAC;emQud>5Hzrt# zSZxG~mo(;wO_wS-N@Co#*hGs66j7CSAwxuQNU|Cee30kF9s{qjGDg9-nSixu;ne9X zxX%^RWXbE(>GCAlhi%b}Df$q|=Kob}c&2l<+zY1Xi=1)9I=01(Q};Z50VTIM58uG{ zG$3i!NTKFDYudwswDj%%Yjae>!SMb*eYDro-lm_zG$~a=;Q=>Tn%Lw5p1Ry(t<*r^ zwzUdB#)B)Wx>49K!aKW`ux5~v-9@2MH~5{jH>scTxj{Hej8Xkd!80hjRoiUSg}iej zJ^7ccDkN_aTAP?ji4AE>oYZeMcf)^?EG*vFnMMiu;TaB6AA0fQOf_K2DJy%(=E|v& zMY~BJI0m|EX1_A_5~Z$5Dr-luqwUeyy#OXG>?lUa6`$O`2j*rZEc{d{%mdZZ78iS$si}&kk)?pS_Zr7fE zcYofM+~f|x1q3V06)>QKxCaoSO#}xg*<-@y83zFDO$ME!5*FL%fvN z6fw9Hg=PffRxb}PgvGbNhYH)Vt^mUb+*@y`wyicuR#w+H-65@`l)4KeUN2Rx{6>o< z4bG)~f=Zm2C6P`>|F}RE75;*7ArZQ>^S_Zq(F-JJbO0O!8Dh4_GEG555Ne$Cxo#xO z^};~qdSx~y^2tufnyr6HMvrYXtc%i0+bpUh%!HRl zILApPCmn zj64Ua)Wt82dtKE^9X4P4l--JcGW8~S0j{~~$CaAv(g@xbuvDuyWR;~~S7SH-vg7ql zZ(~!5yMR|@qQS~7l7p+FSqePo1MCE$3waG7ED+_+JX&UuX-O?H5eDGa$!rONUkXWM z-{e3CxuvQRLD#rZBb3Da^ox2_d3z-nptojZj!)2rj~-T8$0 z2QkOGx@(&_w$s2&A;Qp^>Xhrib8c6Ju+&DgX3~EJOVq1?*^_s}fvh}B*DKqk7-=4p zo1o=+i0ERo=*D5+EnJnKGrOy#P~v>BgIx+|iuv)HZz{56tMGWJK$w&S9M=)@>XpUV z?=zUFqd}4I!2<*__f^Cz6c|JiC9R|FGRhU#);P?QxTM3J78QXhq}ay=0Jp6UD=u9i z=Iiz+d4aDLhApqD*Fz@d-c}8+^WSa6ecjjF=|vua!Rq3X^*ou{#~=dpYp=FdHpS>d zO70dJaIi&13BgVrP}--beMMCi*aJVqhikbDq{H*5#wbeI>r-%l`@ZFtwu0a9i7bvP z-gCGlvIG#~M&91l^!@*}Hdq-ONntw5-vWCu{Lgv%**^)Mecwo`W5R>nX3Xl`-!4{W ztb0?!b&= zTL*9KEl|~~S)Lmh**%MSUChAFDA4_#U*cGGiiaWCPOS!NS=i^>>^6Gn&bQim#%+YQNCP%U)X zksjSK05D8x%{w1uAE)29P6ZY|)evFu%M^xb$#M-3>b8>beQ!}_;Kio&bJ}x6A)^U< zmmFbhQ6iI5aw3og94^YEkrJi379^6$-+9+)wP|V|Cf;Kib~sq1(rytG$}6kH|Ei^K zoN`x?r7Dlsm2znycKzI0+}Wy}nbwg97sD3MnAXbKr?@hrlyDfjHBNKv$s}vU2a(z) zCY{F*_xkwH6I8NOulMV8K=FrB@VuxKBPO>W_=FZ-M#Lg*=RaYwZC$zlZV$PxaWMnR za=Xw^?eya>9d^Tc2{+PD@xkKavl+z$spM)vL%)zNyCXF)42n%%gi_qCRJV;UrTb*4 z7x7GH`xaS-=9Z+Yu)SI{H4NK3!{L4?w8^E;Z^op)cO>lh$V1YiF5Y4x$gy@4M2h~K z$+qfu^cLl@cwf$rM&B(u*=bzH{uE>P#$4O|{{Wu~mdW3Gt7qk*$G1J3!AppCLy`n` z+=4IDzLM(A+A+{OpHl0%#gtk0Bl*R2(kH!HcqI=h)FCUQ4&@+-Nf>2bmu3(_^$uLfo4cOz zWEfCk{O!IAkd5+|jAL&rD#cKXOZx2omw_3O^;NBEScH>H>YCCJA_Lz}=T{6N&IRpW zY{d2yYkVk>KhH|1O!j9)Jb_C^MFN*G1kR14ee=eA*8x%n7S<4JP+HP@LW(I?m(g zA>G+Y)>Fi!@n=~&l~PWZ(hTk$8bCUg!(~hCm1DO)KJygsPKPnu8CK*|8iT4?+kYR= zhwf>=8)JLxg|z93d72(~`DUIdXFa<#<%_?@B1E@)qH{Vd(gO90Dre>* znQ4lqyp#uu{qN2XcWdBX&O7mc@x}#V$50`?NQ~+|e+{-Gs3omNIR{&zqueF3OKP)~ z{$`*qpCG-ySuxFM!I`|0hZmp_rG_)!+GBKoL?U1%?FKp2Os)Oag=F# zpBD_b;5W%THJUf^BP|dUECDsucC*z*$g-#=ifysPX=w&Gb)Om08RFsSFuF8X?qWz_ zGY@FN7)yns2bFCF$z2;l(J?07-;RgP{uyxkndu}lWSl*jQ{RrtOPoFkIKJJDyvjh$ zmE!|v@j1?&qvenVE2>#A{9PqDYq-a zR*iRvPa!`=x)GT!p34=cdP5w#9XWkEF6e35JQ zzBNwzWv^GRyL(m}C&cI;E6}2XEG!wSljsiDx=r4xEqK<>;iDfk^o6 zOV;NwE2zHK(N4Ks48KV6sDak-n{uGQj1?ip{V58MQH1PPU-ZtPA@8-PZVD5>3JXh` zU&Y`4s!BY5ba6H?KaMbFg7{ucf3K3QCyWF~HNr?ln&6Vem>CfR?6QSK|z zsD1T7HR3{t?H~}RjqqG?dSBpXy)q`+;xfJdQ5nTO81-|wuaD)y()bq4@CAdYmpO!Y zQ__u_I_nME*kUsY!Pz+hhjQO&dqSsk;go%Gb90CB8qYZi%2d5#RB8p6r8CBq5Tc2url z1vk=1(tf?DftlVgn51oRYypNJ4`gDR-{+&tBU}1>d|!74KND6H$}eKDCxeJXOx?Jy z61D^*`EW+hvEl@oTfc8i7YD?UCu(;*qmud&sB6@JZ@z)rD6a2#MRf-)SFdfa@b~!g zuO}h9;_}QKkxnAc{YR%V?O45p99{|Cr4rGIy2>A6Mbs$*wmlzlWzP~i)X&_u%b`mPGLlAj5<39G1fzl#j{lBE26 z)$1oL8BjKzlvgu_@0X7lO~hRVL~=E;A4NyG@!E4wHM4}~-(yrUI3(VrvOBEUJE3QY zSJUUjUF5V{f975Doo7E35W8)i;rkcH`KE6v+RS-IRNBHFt0+ieE-ZoJuJy2{n^#;Z z-D&tADmgof(N1SR;#EzGmd{Zs-zk%44tn3hERu5M7yXB>`ajwt1o_RSMC!w)pkpoT zExs|HEjxJ!+?TS)Vx5gbdCmR0ZZZU$u7+!xrIjgu9(!Gs`ve&I)-bgK-rpi4i+hu` z$d>CI=Fgm)>4)65^(o6gB~`z#5(J7ziA{uC{DgYAls865ff|opc8hBHH*h3(K4}0$ z%HbTNcoUrVILv<7mB<*l>9K26QvP~M+3&x*g|%{30$KNID;kgoEq-_J#bUAv*ZPbYLHIi`LZZL_UDlGJCv%Hi?8mQn$CpkRnt4Y zpPI(yZq4uk<=3c8X0Of$e~tAA$vr9c6jzOtA6gr&!-yqMw8QCcuQ+3HO$*G$!U@*J z>=9bCMVG}Yk$ zA>v>s>)Rq|?-mr!yQdwtfV2HLBW- zHhjg-zW{PmtTw_Vq2%pzT_$%=>}h(=$V zBegI3J13t+Q;V&z1+V4_Rr<$8D`|k2VI5s8|FXd!`y=8NYXy{}NqVMAxU}{IQB5G4l<{^HCDXfgNnRtLZD z%!sVZRR*{WPalMB8}v=ON$wZya9qF)$Nj>3z34rH3faO072_f{WTJy^AI4Ca625M? z#uE^=dIz0Z}qY2tUykX`S_Ue$RPwAK;G zxwdS1u39MNjSia`A^WtJ-^jW9oOxx|SH_CU5SzNw{(_V_)mv`uxD`ITH-PG={Vgi|%SwcQfX;peW3Y-Gn-d1npJ6MQ;YVk_VmX z7>71xw>vWZcmCzx$J8pI=?2i@`a#~{+?7puBms%7sexe5V(}3bUjCGDjJemLjEei$ za6?sFA{=Mw$RKVv$?v`@^AiTM#~Gi6~PA zO&EYIL`Ht26%{|RSB8Bauiii?+2=1&^ITm7VCiDli+>T9K~&ou2vC-b-ih!_nix*t zdUqf0_Xtzb)v~Quq{PK`>v40*c$M--dDv{-Bx>%qm~K5JNv+*!=E~u*ic&8hCwa-v#3(#sIqI}r z=7B$OWW*|P0mvAwI|4wFA?!E~su~pD_4~R%QMXO%=w1X@aPW0n)D~=HW#oxvDZ|Q) z)71yZ3*V6KM0H3$Af$zNA_q!sbuE~ z(R(Ko+_ zO7jGatlLu^X?*k>^E!{PR_*Io1*2fT9(Ss)a0IFfa193IfpLzbH-gW_as+0OJ?ZNW zYtwG!d*LVani$vVq2WIUH8w(9eVdg}4vu9CBKp)$CavPIJ6<+^PWoNsb3ZxeA77C^ zR!3%$F~RVw1C(SN>M_$H_O=>wnfbhO!5py^Au@CB0u;p0Z z50iQ)GouiKC9P1U6Nlc$8tLa7*X^`z1yRAdF&;DOD~<$gE7EaxJV77e3~HM16s0m0 zRB@BVHR2eW^Zm$FPuI#$Y!$L`1LzrZ)=7BIbB%cL++vn zG+2w_yw6_I_orA1O>G&uStL;p()3^Lx%{jLULY6idyKa z!8x5l1Bu2Q>sVsjz&#VcGUL4*s5(SVux3J6O5xPJ${b;5*FMyWYgwH+sr*OecgV*I zu_eCC)EtI?J8>J08OxmouiOF2FpCL_av{?RF-r7WaU62)4TYBfzQx%}Q4 zZ)cPTAGzK#(U(kwrhJ`K11XQDxW7SgZ zFflciZFuU>WWGiT;rb8K1Fz`H!^SmEr&v5*^@jUqOy=_@vS_H;YiKk&PFwmtr6~67 zkNSz_V|bwinC`+`6X}h9i!yM28#NCba)H`MJROUqD)(byR0bSs!mnw<=4bvsRcpp}ZQnzve`3+d~%L|255@iUe4I;P`BD}J@_ zxy9w1n6sERas)@`-QCG0E9EPJc+kT~vh4K1@PpiFVDL)e)!$0=YV$ggtH=u|SI~X2 zUiMw;*yYMnZVYawW$(n!DrO+$K+^xiIq_c_)?_ zzkY)HdGl^S!_U$IPd9FTV~InMkTXc^gGqdoNgcY+cx88yN&wqNkiEPkVbfkaWFc`Q zg7sYJdq;XdaS1RK2sqlk#I;f8iwcZ*c4~o@YmW*nDt;KKWPoNo=$t`j-f7 z?Q#0ibUJ+Z`I8!XBH%LUBX))ZUEE{bf|Cgb5N_OTJ6zqDU-WskwdyuFljpi#!9ym} zvcqJnhvyE?`x3hz3n6oXjN1>vw{QXHFPr_5O-_Tr&NCrMz80}_*ZB#g<*gYX*nGjo zkSK!e;dLmyu1-`g=rx z^PFE5pG*f)er78oK*)e)>(1xR>6Z-LO$FGyumfYYqY5F7Pdgr^f_qjtiJ%&0o|K-O zq;y$h9333SrsVs~SX=@!-}~!6#66UR|Dggmj&igsj@H8*|F$3(%k*ELUgWRf?@Y;P zWaK}F5l-a&Wxd+I@-!O7n#`^^D>{;DwE@%V%nFl3*_W>4a{LCZM;k3VYv))H`u>?J zu$}TRt`SEGG^(N$5148(;O40k+a7tRd@EQzMsP%Tx+cY@*z*ePoDXuIV{IUbi4=Hf3yi_n4$1NNilSPdDLHBm3{c>UKS8D0^C27wZiy<2gt9}FM z)q)=JM;#hB<9rv*&e~M>a}BrEW+{Rc?`X8{;qRO7(`9rqXuYOx+S^5jytu|}CBIR4 z0EU`fl(Z3~leeL~f78*-c`SHrl?ks12lGi9B`u+Ul)1X@XpmbhFKPd#H5vS~p{u20 z7TuP68I)7tC?J<Ms6H1awO z+iR6jKzRY#vAMjJcq4f|n-t0hENY87)%D#i1;SRpgsJQrfgPS!$onHVZsef7O1#US zJ-b)0I(M$gdl1YucXZ>&jpwa|&A6Kq8`l?s>LJYbT^1-f_b2`IBQCImut}w2Xphjb zH=+Y`>*Dog7qH)U5z0v2w%(ufC8Ro(TJ zcZI%P4FoO&M%|h%`{0cLzlb24$P)~^! zolM+aa=DOcU-mvDyj*3yH$NdZa8sL%CGGMhH-4@qnlgbQr)Ecy5AQ6y9kSsgg_wu)hHxokXhi#~5&Opyn{Uv~hOOoE829}mf! zeFJcf?;&%Skg^WQa7k6K$J?e;^OE*Yr=g3NzJ})7HiSe84|4v!xxw75uF!+Gfu+lh zHVpIQW~F9Zd&G_VD$bpb=Yr7Y`!4Yi!nfz9%kVyj%N<5w?1fmk>$*;7Od51#$!&t{ z|B=rLJl__3-Nn8JJ8rs0Bz##MRCr0NwJ+--u`b?_e|FP3ZC_wJXpkq34%x9jW?U980OgI+Zfp`#!%{;V61>Y|O-^P~<8bfT$*=^4o zMj#cj$Uc(!JFSMmzsw&7ONvHO`x}SR%K?UX@v39>dd>yh-9X4on%rNMJ0MxFgFh`Kv}bi(_(L@ z>14NVtX4I<+xS~$N|WrLJl8;oeZ|djgtXhezCbExCqcT$Yej7+aDbv_Qdk9xkDJ(l zW5=t)9@1Vy$4r8dYB(p_Ijj5e-Q30f?JoCuK4o&oh3(rlq0dmF-Sq6aL=AkoO_!;Kqx(FsQ zp9)xT8IBm@{^hHB{tx98@9%FbA%giZ@s_l6o>ENWBjYLhqE&jW>O!D`Z+x|s(g6Ce z-H_YZi0?o~M|H6+-(U2Bgpgr(tosxE$M0_LK2l6*9h$;om{XJ65PS{5MtI3iYXkUd z0Zb{iIDtNhyZg92{^!*e(?kT0{lb2Te4sA@SVUWB_w&QF9(FIKlcBWSXJM&u7s0KN zJtQ&2OAv~14VDw*QL+vD#Xfw_BvEZeY|+PFyP?WKL8qaO^=A+xCGE5Ln-+AltxfRC zZK_+x*axAJz;AoQWlOKigHQY(xcQDLT;hphK5REhxZ1p4$hTj6ZH5O2tjWi<5C`mt zQTE1GttJGwI19W!?>W?Gu3`I}4N1gPw%cP4Dz{@@yl$gjMv1#PAl@r(4+Xu_L-tZ` z;vyTjCxS1{pcieW?Se&Dprt9JAY zz@Qx9WTYk1YK$0iG^X4io+d_8En4LYx#**Oef7VZYg$iuSi6^czjC30S{vSEi9Q{V z8IX&tm%0ptt{)MIO8#I^Jf20ub8LQj2ZqAm-DRB7*rQba*m;Zg?r2?VS0k2j>bAwlujcwjZ5V_2EBHYF{_)aSBL;mWO);C{9xU1pf zhnCCr>*k{BnFuvDCjXkNzrU?wV`Dtk2ZnD z`)66%&~k(VZkWu^=s-n9U;DzPZ>22p=8|j_#1|T(nid}&gu_^b%_C{YL(!`~_23g| zJ~FK>KU82-vH?4~kCh!_89sT{NcF?#Mi2>vF@uhx*|lH=maAt}!qJQOX;68NkDRp? zLAaFys^o5KLrCub+H;5-U1&YZP!oGW;^;gz*=CjscKDm7e|{e(a~bw6dI&QzM7-_r zyZ`ipt;$0_?aaMY7IK3lB5h^yAtWu4&NY1LAJ>;bJEcn`X2i7DrXco(-*K87am0x` z%lJ@}J+;(jzH;l#(S_VDB4w*}k< zJjcvM2R*$9?r+D_$#oS!uy{ZCo^Kt}m0QvZ>tgf#M&s9JUfiodlk1l}q)iTLIQVzu zoiU1Nvq#1jkJZj)Uh=nZ3-=4vO1#>;rt9{Ubzm>aa*)_!3Z6GCPjQ3|^XntqWtZgD ziiIfXH#_&v9$WOzGzx}z>FJGj$+5IY2w5`!4Z$D0^nYk7BUeApt(Z~0uw?`B14$Ve zy}k>TDKKc^E<~vM2)haP#p2k=crW)lC+Pi|@@^ZR=xM%+5A_2DDeLP(ifhC!$ z%;!M$bhXQK%Z-IgP6oAoaQzlRcT=S91~VU*n3B^0f(6GdNjnVpef;K|ENJrbtDu7Y zA|i5EWjW^gqJxw+WNpQ3FCOe3IUtzp+GFkMb0(|jan9t|GeT~7mxFkD$N_eXSiVWPyg0AfhF8$v;IXiv9{HNo^usIfhbB(DX3x>ePk=?1Dx8_6r0O(lT zRdm+>qsY$-yGSCUcc1af{

z^<>=T- z0-VG!FyimMw$)wU*knhC`9EwsG_A$ENYs-8JMUD563>JLaXX?bgbp-CMJ^p3caZ^u zSLB9nQ)Z6fi&63C9j7)fSqs4a97p$V*qr^|$iX)HK_IzFGeSx*$0pf*5t@%T&9;g%! zi$VtuL(Oaj9A*HKwEdsRk##2%=FO-Z7NRQS<_ERKF97eNi7+h(Z9)bNp1>uPU(Pt1v^)*@dPZ&o8@mT&< z>gU}_cJf&?4RIE-apmaqSmJOwUsF>pvhreQ42EchN*F#>(y&l9&VH`rFBf*Tc+Ern z1N+;}3Vp{!f-1fXwF3{C7?k2i+X*j3BdxzaII}p$KUe6Io$wxvhfUgp`~jc;?l>ak zI~@!%h^9UPn?H<|1K(Os=~ig`1I-`##kT~6SngzlgAlrCY>7;j{t=qzBK7tZhgN|y zG_I1Mc=hJC>v#v@MB&Y&eiHOonQbX)8r>qkH!qIIWap4L#{UKWaJyxqTOHIqn=0_qv~E zQ#NWs*}OZPyBsh$AF6z~7~?zrAtmrvcJh`sksf=v)CZfJI{EJ7kSFIMchLAx$B5*l z_JMyi({o?ZW-OCLPtq=kA{2m6XaU!Kl)bMV{xy&-SO0TJ`q*9X(_MK@f^|(`a6Yf~ zRcF_;Ks)Dza^%%k=Z@Ar7K+K7ZWU#tzKLoTrMAxT@Oz*4n%0I_D{(7qJbUk|*PO0X zt@CiO%E1yWBBq7UdESb5-n2%Fpxw(K;%oBkW;5yYr;LGw!0;uOB?R(g9zg~IYvqpH8@@=TZ z;EjHU8@~?(zny4k(JO-RQwZ+j-V;fr8s>zkp^#N=OCMxysJb^X@E^w-fGSvHjNF}6 zpt2V)QANQqx3RY~d}`9v$8CdNY4?v;#ID8Max25zL;{cE)&OT0noHITPSAzJW{=B@ z$7`Adxk(EJr|)^n<-wE)wcyHsj*x-KV)%Kc<4^qMY6~ML_ZE-q=0X*9e@^15Pjo{) zmydKNwN}XNqbQ=U)==Z9r}W{*#3}o3Gx;8`Ezs7Ti+ilq=Se8}3KSjP)$lo-TT^gA zH+@I1s@GuQrl0di=CmofI{Rp&na`@Z5 zB{lRV@x{Ar@>;)4?;JkOsh3q?_SYNOn1-sgF|rsaV1j+gX?(dykQ=I4T&9DJLokuV3}I6V{^Y+so>z* z(E8_0%IJ?}lu5SMKAETOs4n^^_36PGLFMNHta}WVnk%k4XpQEoZ>FP!Lf7ZkaekiF zzdTe{YJ@|EuKUzy@I%nzwMn5!tw-I!#c)Qmu?TX=EIXJhD}GOAOZm}DS<84r_xe|l zDAI5e8hy;5krmbAm(1{E%Px6sCjy&U!)nlc@8|AbqoKjppi&Eu`KIaUZ6Z(8s?BEN z&6iBd{>ey+-tlcoUCnfGh>uAJ?0YfDUfF@uzdtTbZ`xxZ?Vk>yc#>BGfN1v$=HUz8kggM&QKv!u58ej9Hd3oc``?>`}y@6c-dj%6__rm+hou3=7ZUIA^JV^1~;Vf*@r?3 zFLqHcoUrrX3Sc|d#_d21d^O;*9_|x(Dig4yVA6ZS@6xltxq;P{-TDH_3VtGc{nv<* z3(X$8ytm1YiWN{ceYTN^;oS_BhzLV=WCCorh7hv$J+H8xk9BBHRBBRew6(b+Rbf$x zr|#;3yh+Nh5hepp93Za`n;~rixgkE#!@{f0NyA8X3(PIXO(-^WWFzR0l6hcHeIKIh z!+CbHRz7cAOZI6zbK!!)XMo(f=^(3ElT zeuW*AyHwA8?#a5a&I>cYw9Q$(JteM+k*@*?{BNqdwveI(US|$z?f05hM&s$!Dri+>OA|`1o&6j~2HBF$sgj+P zUS&!hsIy21AqcT~<}+d;3?V}CuI*1#Tkoj$EJwvO8+GwqET&iDw6wEji0c<|mv2fZ zBo_sDm$(KI!OxO7FLmRoX`;U*qDzu&W{sOs&N9j*Jo2jwHfS=(TWanKWRk25RsK9U zEi*+9Vcatci`}MpD&ESDVu2|QvFkRa*{fO-fdfVkzetZ;P89usgmAxb8FdbJHnqL& zt++-VN^OMd0!ebgP$+)H2=$&|8`PU6wzD+jWr7eEB>E-%3(wCo+Mp4yhz9*!_~;)4 z_a`xj8?!wYqX{jS*=+HlS&Gl>6qS9SsOOK;+2*v1wCrxDEX(C&-GZYirtb}chIJ@s zWkIj1#zJ9W=>R6Q{dH(nmdH3ogBPsv?eZLmTEM$?h1hejqLp4s?Oi%QvX87|GnY-= zZCS+^%uK=4UI!(+EvCkIuGvPHseaa2Ttd5f>3_ZtxpE{9Q7dSWRv-i&H6BF{GxvhF{ymLTmi z=0uGx?Rh*VTx=y)i*2bWdh$Z%pC#gWH*OP~Z~Izqly=f z>dLzDIFSKWawX3Ve6?>D^S`VN8z4wx-1SP_4E4}HP<{==+?n(7F3dN<{J}dZiov*N z?>r^o(rdDQVdsWO(M=f~Bw|g!$<_%uD!&wSc_RwivyRkIUWvKrICX>MFjn^IR;gTU zdVTmcfm!#`?B%a4seCY&>rKM3{wbra5@UPRz?--o7Dj0s*`{hp(93P%z_~vSmJ?$w z5cl=8xMkm4eZ0>hJrZ*xbgA=BO!qAoIN*=@!N2LOCs2$~%*4q=l^zGyNx_~&o&1Dg*lCq9!YO-}B6EQ(d>y@tP| z#pYVrKvTK~+BFH$+>=_4X7;-trLl|DjY>QlrD*ewF~a^V<|6j?k_lB@o^(>Rd_2BY z-bMy4qcYy^;r=C}SHXDEAHWR*6dYFNJ450V!q41E>`54@_TbFdOsDzJUJ42w#lid? zJdW|fGTBvC_OK=tT*CS?K5IUzFn9=dh}0Wl&AgwI`}{;#aLbdYxY@~`N)aq5*j^7M z5-UErA9#5#>rT#&w+_1(ZSu|aJZ&-HtvqFmB9wc(+lfV>vRaYP<_NqLqOW~vy;QagT?1u&!{_yE78|_;h zYq;C$4_mt5(zUpsyI0)UB*_|z{bADFaSG@&UKO9lb!JAI17vBIKMC`EtC*u@$vLYK z4VKj{5X`_NC$LsgyjAWEG~L@M#Mn)15~8zB)!R~Qu`-k6-Wrce0QCFwjiuAs3H*qC zYU{fm+*OFEveVo$OVZ9=7(C-RvCa-LVUwr1RsG z1%iPSN%E2M#^Y5@x-quMh{U@4R_(u~xRS|fiGaxXLL{tUnJ?j{@WI>k;je$bCAyZl zWn)YUc77kUo5{3*$YfFT0H(X~4axH+IZWh-&)ZqoE^kXAYnF(ijPcpjul?oBN=W6B z7{U}=6PWg$%^cb(>4I=WCzq;wErM_O4ZU~Zyw?IH#BaLM7IWX=+W*P5)K%5tcikpy zT=sNz;a)tRJnWtTSAO7Poc14Fh($TxjX-7;Vv+tXx6J4Tq6ED)9BluU=)^XGOigVI zO!-p>?Zy@B@b|XH*FomqZj9R>>iG`EYtT)=3(__(?~G|l1?QBM$S!kY4{6uWIp3kB z%klSno6+TH3%t1!aY1(P1OYPoaPc=0CytT(nFL+RwBILUZo?apIk#LH8~WIyg#~o+ z`7Y94#vW`&0GqeP+mDe)N@VA0#kupm>lOFk)=gHLZnVu3b?F92Kw& z`Z^OzHqO&0AHQ+g_M6g}D--UxPCI z?S4gNciqQ0axCbDLeva(8|*{Ye~g}TD9W{@s|)}xhAsJ3a-U=sFihJB@cn&_xN``5-efY!Pzw(>*gICDFEIA-< z__kuy`^MQpy8@2W7RwydF!vrAy;TZH8E={^WyMp=y2-LZk72U@jl(g02f8{F5w-+d zb6`lW>|omkSPx5<6Z% zF$x_?#$sg(E-Gc`K4%fLTs;Sve@}{4U7IynoO+>t>BnKG{bD&o|ALZ2nXo5#j6B21 z!90ZCV3OKj=`k8t!NuGFym;_OzYe#U{bndYnE3a^xZ9Og=b9A zOhzBf<@EW@w-1MZ9LSz^`{4Td>3aLri@KkED-rxPg1<0~W$E!Nd1tYN2&WpZ#Oc^V zz^l6G^oe@A7Td?sJ$MZN_l~0p%+o=qw*4CSIXA%3o=QJ{*OMW1=V%ZcWR4niQUXl$ z5f5Z-Jl~AKH1rUt%Fv4^lz6s-%qJRs_ZVwp>pfEOV-SBXOdMoY&gl+(FN4rIJKRc2 z48q%ZDIU9|MMspc?AihWmg@LT-Os6^=bJ`hQ@6`iNGKl=UW>vOr`4yk4)z$7YN_Qzc1yo z&qm2&sL8p{B=C;9!f!|8DwvX&Z+Xnz20iHXZfZaT*obeFNZz}2u^h`sD1m(8`^s>m zMX+7ZD1oa3-3kX>T^SkP+<`B1v+gZkRt|Q2g0CMT5?;y_nZ3dO3swMdQC5xfkQf9! zwHa-|Z}cNL;0Rf(Wc9;m2bCd{_NybvN-V$WS&tFq`UOMf?R@MKOsIHEaFQC?blTl{ z$G8>w2KI0pc*y?F=llCggChI^I!$|-Jz*4ZSKhP*bU#?QF}}lt4j18j&W_*KnYo&umhsI6$> z?kBt)oCBAO#89;~VAvEN)q(2M zF~1eU-_hxLO7Y>U)f5NeNHh(Wn1*~sNUYr-+hvCr%LrQfPdX>2BIOu1C=aPyUsZlt z0d*85ev_R)xLVoR&OdAmqcCPv4;kArEeNpWiBG93&2k4@>{r)>DE>IHY;IaoC^orA z4IWlBovMc;!xMM7hK)C+9hp-mS#=_jeK%#49bNjn=b!8hiYKaS$`> zJQ!8`aRU1rnKTZKQIvog@7JGyKn@jAnPw5O9-)Og*WebYOXCSwS_{v3V>8e#h*gGg zl8x2E`BOc78P5^=ynw{iGk>+z(Ki}9%KH@a^HFzApMrCAF*NYz%M<}>pq1tK95Ot- z7Iy4CH@LP7mN6Cmk{TTfkolFAkFFd7y;PE;-6n)nAi#*6Nexb^&St4B?#m^J>^i80 zJXcc$@1MaCHg|B;*Nw~Y=r~Nq85eSF?bnzeUCUJXNeQgr)tSXezfUCbkvc<)A8fhs!)`e z+rSqA%PS-`4XF$bqc&*IWeW$40^G;aCCM?oiXHv&;o8ziWeVu|-2_GJD%k*w7aX-kjgg@ec;4cDwT~WxZ02B`p?^s=P@>nC2>HuKtvOm8w(cI9> z$|bx^TN2kzyBYqv&f_v&UtA-jOz}3r*UkC9@reHy& zL*CYAbb_N8PaS?YS zhcxc!L!6|fn;o5g)W*+{p)ep2mIa6ZIPxn6oDh#0@MtVLA?aGS^{zk=hc1)8p7ztk zPba!m?2^7us@QldhRgOK!5R=Gi#5k`8_L7L?r1V{wlhX`e|JfMyT2({(JpK6dHgmr8QDy8JLf!4 zQes&U&AD!+E}C7Qf$Yb6DWDWS3Qz%tAd_-pC3s0RJX%B zFi;Ck(OBDEO`xaKTXY6)cJdc5|GkC%@0pFHU*bf0+p?K38)wuQx6*_i~vZF<-|?4-~;twfw6zi=E4Mpo@dH0qS4a(HaE=wy-pSXrNv zY%m_YW^v>p0;j96@xsYx_swnDpDexIJRL0FJE7vQ`rSxve_+X4)b|-;JR4b7^F-lL zmv+Ik>^bHfj$MaSj5kDKI-*-lV{NLKO?`T@W}L40^q;*@ME^CQ|BTApVxl1|%loO^ zis{&FIf)i&Ig2f7`Lt~9$s);<7DK~_m-WCaggI8fAdJJ;JB~~-Cx57eE1&q#nsTM$ z?i)jjr=_io7?rIz;51Yps}L*NN~I7IG{?B}freZbTD1jFKQCEqy&vcrs`gg_SwBrN zSw7P9BQpNe`1Qt-kj<56_t$+*?`(zaG_KIY0?zS*YU+OKN=^*rPUDa`)cue!;h`eR zVV@6U_J3f9aip#mjw$e6R5(A$#i}0t5ftT(#VuyMG)l{knA-59JP$a;62{%#OOHa3 z_S_WYvd~vb0(5f6$PvM6inB)_dig0me#vQ-=OS_|{Qjpp0jW9DMm7^ulpuRFMeE4@ zBDC#Y=QqUw3wyFu&?Xsl)GJ+Y) zKu@^otD6}tiG|lE@3LiQo5Jc3ZZ#mM^!9ZfryAv2HFJw^IktWn#2E+NM)rkXs|3X> zANRq})97E6!;I<{^(~}?YEu^HfvG>NDjFzD&X$;jO1yfPXNxBEE`-TxDBb$QXe$mX zciHzp_THpVh3yUun_4E+c2h1ee*s;~xbq16x-K0WoPd5|Da|V4W0op3e3X_-1sB8j z^88d|6L*NRL9y{5+QyJqB1f0t|LGo|eWadcf= zGx!!2%-fcwkN6qn1bZongHmK>^ho5i5JBp=@wA3+Y7=A`yS-#ve{YoW$it^|=sY3} zCq!{4B)w9w4gUmGBx-a|>U|!NvuJYFB#!F>)YzQ3q4W5D$q7qphvl&obaH)Mh!iVl zMWRWS(s8nxhS0cNhi<1npW2$U{YfboMvjLj#U95FQqbHF)XGf8ND79H&6dTeH*r}h zYCUQg)4$La#^nS+4Ukjhrg4~FDkStM0;NZ~zliQ)jRlGtAQ(oNe$LtPb|g@~!*W_Z z^5ha(8fXP!7+;oZT(uZn^xgTKAt+TcZF*)COOO;y#Yu~$U(t4v_E^Rtq_7Y9@i=E? zgp_}sMq+jwBaU-EK~*~Y%T>pKE_VH?=PSS#k7=CFUXIG2a>DeG6VP$}AB61PnBI%i zXWkWq(Mo3v^L)I~y#Li+xwPt_w0Mn6Ayn96wX`BWX@*%z@}g+TUH9wiYu)Yici$OR zj$g5!ey`n%s>MU>nYRCQ*(=xX$Gogxg?nm00%_8q? zwIlg$vd|K($~%DmG(fEzwkDba_zvZ1aio0q$XmVj?u9tC#U{$dg@D}SP5#jdbZ@tCICf%f0X3b(2N zdb|!>NLhZS?V5hHukAP4(*rn2+k>!~yFy^061x?dU4GbSzdNl+V5)xf zwEx}n8H=Dm!EVUCsIdzw5ai+J#h9BOr$~fQ6qpNQi$078$6ycVhSK-a0R7d=3peyv z(`!xt&fT*3&J^yqj|iffnY@d_07~=ne^-yAkxiWSXfik<*=NN5FiIg6PXX`Dtz`3f zHiB8V(3(fA(57s+fwgv4`E506%~}3dTUT zzkZ-hEDoQz6DCu_AR8#C##NA#{58ElIg%@nwS*t@oF2Q@V3v+BJ^4LEo~r_eA8(5e zwKj-n5)427)bm1=5QFDh`%2t~o?Wtd`@W@dbeT1^=icSZK$2~GH6j_E&<7L~D!f0> z5)F196b@+(FO#{)FWIXDPF69hBvXesun>uIPwKz}LAfk)*YOF`zAoSb58buicj~`( zS#d*z@1L9fzo}jSX+=3Oxf@wtqpTBpr$&|o%b~))Yn{P> zoKQ!}Sv(h`6o+Ra`_TH|tg(z=V4o!~`nnrq#$w$s0V|t*$Q?*ndWKoin6)+Vr)D#N-5MXN){HJsfx)8F&ZF&k-VVPMhDB6Us zRveRYf6C?x-M*G(ZLY6hT|Qr~GerrM@}AO0aJ7tiAUjHnrP+5b?X>3;Xw(Q^nnq@- zAC?TcXa9rKb^%7pD$gePi70i$@_p!cvl-x0xPE(Vaw8I1Fe8y>ZV>l{8c30`|DoD- z>o%0WLq5-q!PywnN9!EZqBk)hquE#(1qf6#LQ=D%h=R_*+{4vtAs!Gm+|(69w`;SY zJ-oPfVUi=rXX)f36pP0a=AVtYbwd4x8qMMrGVdq5Ug>NOEv^QuM!bCG=s#HJvlZ_f zIz~ay@|kKU)CZj;GMFjjzuY4vg$_rXPp-_?CAhHSo++1fC)7wZp#eYYHK7z zHLsA$0DeN<9~B1@ig}{&n%e$Z${t#AYdC=j#eW1peBs51D!m{_m_1Ag;qOvf5aiobhDJj{Xf0kS8EaHh0sI4Z(hBa_K`rx zQyn)&kp*sVtKU6JpQbORGU;k}=qi_qpR)cyWzL-grOM?LQdK*CEH=iRX;~X|3!cr2 z9N5hOi*27(c4cZeqI3nx%~HCMR4w8fOFrvbx~HZFC`vSI=%!J=FLCZhW({K^q;C<7 zHPfS~5A?`8Q_PLr}^Q91^{9ZeSysvYlqE6i0yK=d4|zUgbsctZ!4im|*b>zBKlr7L2VFN13z) z2{`ISH}t`?EEAqSOe&YtW}CE`GIWz1^9q(u?B7n+GxTCt#MLIh_U}?9@4touH5Pk8f{Ys;0d@P3Qi2? zAw=H@_UTUBlQ)-a|9c+@m!HTeFLKyV?5ZtOlrdkD+?KuSranY9&O+N$?CS~#Z!CfLMrf&hl?#TvZZFQ;snlTuf5}E>pHmWgzvO| z08Pr1e@NNs=;_!S z*W&5iQnJ5&!&Xe5B4C6K6`M6Bn85s!XH*go*PBWTcoU@G54tGEtQh#Pv0=opEzIb*$JCAZ!m_DVBvkh@7}1lL`lmRYC|L%<_S) zK-v%rbPIln{w)PWZ@zEu{fVL*FLOzm1lB~c?DK4!6$kz$pF64$CM%YvKo2S%5xVj#hyV;b7v5Qmhdspr(@pWJI#Ko-M*4!p zFpekzF+Ae;UO8A_elmuep-t~+9&01q;T|?;wRYwd{$jp4E~jAM`zX{3=Z~vq2I7dQ z__m1R5%#m?arffx9^S5`aI`#Qi0T+_arPxcZsa(5>1QSdfL{+-cC>H$uq`fg4QSRj zhixPI=0k-Je{i1v#yB4)&ez8f`bzNaiVv50#OV*3pdJLBA0IIruAo{H1P;^(|Gh(! zu!p4-s6cwkO%y~o8Hp#D$_852vLw9cPO^I$Z_s;P7L%pRPpqTIU=? ze4}S)n#xVNf_nrWX#3qmh5JwN#RbNGn~+j*pAx!?3VsnLXO2WBtY<;!i)~pBa~LTpQDQya|R8K<#(kaTUuF^4W1X1P|62j zf{Br#tB$9bhf(2Ae{M>pPyV^ha~g?VUo4ReJQ2w&Z^rVP^}iy}yxUKrG`AvpNg%exw!H^STEnBDQP(rC*Um)vx9CJN2hBHn^dXbf`BgtkoDs&StaM zh9-SeOQ>gV^qRm6XVFA4(_BP1@zYsHzz_lcuI+WYCLf+O1ta23vw!&q1F00*K1nB9 zf9_#LIkTf+`Yr)NjMWKPEEh83-Zwky?l{?RGd)4oc_<<(IGsZcCe&jzTb$$jU z+f$@KSp~%kJi(&Sd$dyHe}bQVNFLbjj<8cFf<>7H!BnPT9>rBF`5hRkY}7)`+eIEF z>{-;-qvi(cB8KeT-@u1XlhL;rG9Xj}Y0`;t@KDasPQ3!Ba$hL}HlbC2E^^Q6A5174 zB12Y$BAV$RsMo_Mg+EM@MT`}zU=wr|#%O>I#qYA|c>bK}$1%y$e?uEE8`tnWJ8uq|Y7FmN_12Fi zjFb$F_mMFzXczr(%E69>VLNf6JnyWZVwPHZu>>Z(skX!-FeY%y9@i%!1A2`{gMJrd zi$l6{x&qyItIEO~UO0d(p`w!ew>+Q?W7am$fA*SMwz~R7^g_cRO`C4#Gr1A-`*pG5 zwo`WdP#nI1iq(0uY>wSE@aR3ELBpc2jiti>HF3}M&Gnk{)~RY!NC`7;4K*IKSt#Cx5kf8&doEx_+|+>= zgd5tPq3>Y(C>k$B}eK9oO#%Tg{)Y+lIG~ zPCsVmPF4r&reYK&1nE92b%?|w0*9hku?O2MQ2NL^Rpus7f*4lIrx=b2*cl-s@Okhd zTU7|9*t|SU=50FFXc>hehnF@_TbI7!*qW=0=rBF2Tw(NI=~g*PbK-cm%e3zqXeUcp zG_JmPQ#YD{n@(&g(6hdw;Qs02JPt+p*TRFBNYd%rmK z!sdI`dKy=H^1HnU^=`mL47(1LT+nE0pS$>%g;dm2u?6Tj)?I(+1UM7($iZ!o6mPiI z;Wz6~{5ymG)9Ea^3+Z1#3ORN-q5sn+O{V!kNa{2a`ZmqiIHZRI$M0W zs4HIAaHl!s2K8*S|4+PhP#pJP6uyH3!`ldh=Hu_47o1U)NcH+H0Etm8sM7&g;l(Gs z(}ijY4L$9)8}=6~LDM5Docs#yn#dN&WKJl8xFZ&O3dcFeqI7Ntd33@?@W;x;74*Y` zQ|>5yQG8`oW?X8Fhf255sApw^zf!z9cPI)%-1W}iB@*N;BIV})1=S`O{brgiSM(&C z4W9LglMN8`Z|t1|ffjK|VeOHh#|=l)1^L)Q6Ezk0g0XW$Vhw(C5v>Vjdh1Y$K2!Xd zwS03!kp@(>p8W_Vy?9K)7AQW z+Jqp77GBYBD5_zzqXAK&D8H%6p8evyyn*rZ<$iy5;lEAK`Kw3(Gz`6bw2Tc;8zP2X zKmo-`*n)$D)lQ?U$pTrj+zO3lCY1>^m|xObdMPqtS<0hcG!?c)h-SXJZ}9u5E;l?% zsJ)Q)HK{JuaAw$buImz&GyOh_w@!_?T5`DOq3bs0`<9pxc&3o9J(bg9YfZFV}jF~2g8!tYKwO7kp<23?wIP)Ch*!0Fs`Mrdf5%|Uy3zt(vjhVEY^!T zcX_S)&d9t>161~t_8ox%Oks;KaQ_-v=qi?%d+t@tY(fq>ZGLG|7MT|zeIaHJH#abL znuKCdaPX`|66^I2CDC)zggvj{!fc*=(p}Wbtfb=>jaP7TfFla5IX_*4EMX2H+zgeU zs3)3b&*@r^OSI*C(XF9C{oq~9g|^nkfhZ4FFFBAx$M=F4?I;&p53*E8S!ChBs^TkB z2ciyYTfew^NCOM-k=U$jG<5k>L5DoEkM-6GvqVYu~x&AJIg_0{gMaG1&CThSN&TUsVXKCd^iJ zVjauoDAcp%zsO3O`AZJ|&=h3$<6-q8bVj~{aO3RLJ_2C^R{$x1qc{I--3E?je}HGT zMC18en#}f(I_b7M(9cVTb$*VJBcW3apZ84n-ChBMI)3c=3UMJLx>!a=5S<2O-&_g!x* zxXBABCmNZGmT}Q=-yL#aR(%5ypb|efL{cft%KyWh)|4cdj)+6wIu{fqXz0$dWI1PJ zE%%xrzg5)wNV#{5=`vfeTt$CoW&4`ViKpG&?9Z$FW)6dvxyx@$g-M7dg*R;vN3R)7 zIG`;pnk`&yCOJ*-jM==Fa^oms?$)Y`+B`hSJ^IHQ!!F`{VK(;d*M#ica(p(XY2*R# zLP-VZ;GAm8Nb9*TrT=#fMEnYS+Ng_^n^IKZg0>~*={0AjTB`u(B(7e^4s02{idpz& zz1wrKTY?UF{VyP?hW9&P7m`M0a=5?iwbd@HT^A0o{vignwV}y1*xkhK(eHTJBuP8# zpbR%%eWnN!z&BjJDQN;DQDk@cJ>4(rfS1`Z zhamcv+`d&F@^%Xv431bld@L16F-WE#Me3B&2U*Kwp@`D~YcFmuj*Gtd-d zNpohh;!ItPP<#}q?s+_H7;pHSn+v1ZXKV}8@!?j3qT#ehj%~j=%y4!+Dt1;YxclWs zB>v@QAk5QLALdbxtF}?`2XKv&$o}4ex~DFD1*c7E*i7j7;c?}^DKo|iWV#e>cIK{v zVv!715fsWhwuscEex|E)UW!4WwTqQu`=jpH1X@~N7|L+NUleYZv$#_$Nc!fM4?VOt zp}eCN;AomdBYVyA^FvzCh4#)I&7c*>Wi@QhvGz)Z%A-0Z?$p5r()E_8=gIqSM>bM`*KuG=&TA za!UpnDU!QPrv$sT?haF51s?YU7}crdo{6!EED05b6Wd zB4!MbSoAO(zCuus`UX!>iu%4}Md} zSRztL5LAiS5k8b)F^T$Dyf_T4RG&*etE^4LN$#gb1w&J+4O60n*lx`!Z|6}2q3`5` zN35TlU^q*Y6te}p+Dbl%7n&n0v+U-Q<=G?5Ew;!}G&u9AK5^80X`GvJKmN$P1(%eF zA?_ClGj-DdLfm@cm=Ru7xwz~*%qq9{aGFp+ol8cO9CZYZh)OoglVJr@@J=2Coj}my zeLALGii5^q40k`bWn8tNDLhN&Zt1;VZ)f5h+1mk|VWqnS)1Ubii30C@NSG}Z1aUt1`BG9z?N`2;9I8{FA_`ITob-Sbm{Q49H z+CyS`jRq0M3I=&-y;m^+`^hFTc%Y{5s(~J<8K@E0SWbXWz@pS7UDOTKJ5qwi7?4OL zXMKXibvuF8g#mqg4w80@md$ZmYGG!sn=1gpNPRfrz?=n+&!dxB%D4|H;1K^Xn_}6O z>2QcK(qD2+5#atRh^c(aW`}b4=4vm;fIo2kv>nFzSR*7+962UrgO2}9dgr%^hL59g zwSR1Srg1oXz1Y{)u@0fUkYl#-hu3ZFYN$)qL9|})q!7?;7gia`x_iCy(w&u1)*EpD z<{_Y0j=)Inh}5daWA1Tm9uH}#1GTf=bl_hNZaa9_Cb|_RmT35nqq#2D580uJvbMG2 zTjlvf1>? z_LZ_InBus4gUpZKYx@zz8M6Tr2<2&;`atZXnecrYPZB%2KklU$?SlCms$x!a3ck5_ z4d&P}D1)ygD;EyC_h4i51aQ7qjfJQpRg$N_TK40{RoPYi#~{f4gp8oH((g zriZi#^%YU;QAbT8Yc&@^h*Wl2e|xi_I0~&$k12K^nkP{kUgD-+=RMd;$?P4v*Tm`J zzo2DjjUuMo94__JKZAYlQnytHYW6X0+Qj>oz>naVb-k7-*Q{?V_6$H#lpUYNBXNyz z)w9j!4M>~`JIe1lfoVTUY^)(7N&`sg{N(R_0P1f>~r{zg+fS6kG$Nr2ki)Z+hwv-bHZb!QL5FT!!uczosIPZ@- z8oZpStPqR2&kfR>=pz?b)cXCGaFk6w(Dok3f2eT7hQ55B-3YGnouXeWGyO_{tW;Xp zw|JQ~C+c%%yNb5!+{Hz7n1{_B*5lS8b9aK?VTcgfB@5UurpT1cF4p6C9m2Ss!qg1K z1!VctAyQMgY`W00X_t`H7z$BPL0vt*dUt5DImNMY6Xoh-0gT4LA6Y{~{v4U;lUuqi zywFs#DsKS#P0YhFkB&WqHrZRpLF zQgb>$=wNNsr1@O1XAVh0i{&m(^iW>w6aar zFp5Jhr74&G1Rl=lZtAH~G7|I|o%8VxUogY+2UmEu*9Xd(qoN0rxS(g+KkKe?{UQ_E zhRWER&McJbloTI(vL+GPc1|0V`0OXx}hy7EG2H6_?(Z6OROFYh<*HwAA3#ItnL*t&WFW z`>wa|Z-f-2?7NmUH_IIPBg8hHW87GZBZdwYB)L2~o7p(*MNAt%-Z=YO8bxVE+o0A6 zsdd(Ww770l+jeZ48*5})^hay>qlawxl5Bnq;zFI{iY{?S?QjPz31`X8%oV{0Uf>9i z1AErZJ+>Rt3N|*`^h*6UUBz!=0Hm?(0U9Xj$=^nTa9QO%K~q`9BjpspZwOZ?j$(d7*ZK?hBmTqLeVOfEM(M-g^#=)NiSQj~o z?WY68_&?0DW1P=N`P{RBsfKKDHp#>HP?C_D5Fkg`0iLC0 zeU6{#e8isI|1aeD5BOlwFdi;U@??I}CjcbwI+)D9$#0DP7#qfgEO4SUbMkJPo;Bx_ zV&8*v6{jxsKmG%@NdYIbh;9f-qygODSndhs_BdO zN^eX*H+As_;!)Ncw*98QocAiPc+=%4bE^jB!`ZXO0^dxNovDO{!!x3s$Dw<9j&sUA zYLTXZLNJIZ$JGP{afG`gUO!EL2?EKX_ z@_J);^u_uJAMWM7QPA!{{|G>((}qNb99|OxF|_KJl-0}M*|hIqd-LmPA?b@apN(9b zy9Mg9n=f9Dx2M-}Mh1maeVD`X&HKqz`2wE0dZM|1B0o;5AU zOgm&-XEgD8jSr0eLL-@_&`2)-cCcn?YlY*yWQ06ls>JO6(CmXNSDMo387S|f`b?GU z?p7zKx9}@7v0Eai>k}PK7p@89P(SnD$?Mv&sOg#o#E(MSweDaVSpD7coolm!fc-QZ zm>*98WudMoS#26+g2H3{|3FHfe>pT#b2eH*xT%v;=-*kEECj(oxxN*ODneOj-vVBh zwEH>_Vpvy2YdZia8>QN&37vQE6q2FCHmV|B0=-|J7x9QCej?affE1~6A^Dfc==+R( z-&kAM#6CA1TlmOS6J3Myf|65*f-hqaT~zR;;2n_gz$Nwb?=G%+%r^dBVkVWSZE;&h ziIKHi$yC3!aiVJ6Cv5PF3(mad)ZdxwS|LwKiz9-QD&rqzbJ`#3aZGHnYn2Uh;E&S1 zBQYoTH+5n$#_r_Bd?8g`3%d|2Ypx0%@JJwuTcOG%XUPm$`m?2kCZlC8Fw9DFBLw5(NPBDkUhRZQW1IiG#dT}>PM@>U%N4&mbf?vTy47%udIFV}w$l|ndW;MBP5 zYt{;O-y-%$2G|Hw$>AyqWvSWv$Mk8roPCPEr5C6j3IKiAUqWT(T$gcfJqD;yskZSL zCp3FH-4RBa3 z91KtiiQ6+8+8Sq3WC(JPn1*KL2a0u_TH1w0tun8;o!Q&7An{W8)W7IZf!3>xDT@Ge$v9wlyk;;lXw8fBF+p2Uw>ck4F;|YlN zDzQWwiPw3Gm6ukmU@tw!)Hy!#4ZribZ;+)*aWw19!7JJ6;5hal>C5cx9Ly1l5eWf5 z>rzPH)g-nqh~HYvo#ktj_Yq^HA3wOyFUeR5oy#s{KUGs^>ejp(9*oVWV4RYeLs5F*_k0%pA<>BqVJJL9J~CMHF;c~5YuiF2lfu}gJjblg z5l}|BmBBm6WNqTg$gU-~#JmxJ^*S&H$|+roePeZ;oaut9mkjuXc+AsrR5rB8a|Rg@ z{;4{&iQL|s$)7cbF)%FeD)la;xm%Qk6W*LX@jjslv6=O|>;^^e3^YS;pR)|7|`pVEx)|-j!cdTDcC` za2zFe7|xJ`sKUEKXkXv==qre>9eh8@#vYU!*A2_sj9>OD2#DX!wO6&y`u{`nFs;E? z%RE5w_-3Iy#&mEz+!;sC(n&dP=s&U8_{0}Tt-v#gNxsYYP(_c#ybTIA{FD{6_F@R? z)ND^p0P9nGcx;n1WR^eVsV!4>uJ_R;`&UFzeE~6q*A661B?1Ho+XHP+*2loM!shs! zthTvF9(a9$v3#Dog$+})J2kRc;rtjmc3^CTnF@8Cfs^@ncb*1TT)c7Z`zSCOeTy@{ zyJnGsTJTF}3JF>j3f!p&U^muiz7o>R**SK}k{ls!%3mfzKy3+1C)%mw?7@GSA$ zYqoTJKHz<~YbP42BuNWZ?qQ{b^`aV?SHbtAmhFi*L|yI+ZW7cMXf8C3pEz*$YAsD;CsCuW@535GcB2cFE%h@4ZNE0$w4;v$D(O7HlPpFTAirM?iVR3Y z^B;JSOqI)ixcZNAO$GUC`G+`6KiyJQsCgsMR!|!eSh5O`GVewn48jrfGi}2aIn9Z# zFfIX3gxx?QJ52@>yHFF`CI<{OfYmKIyde=C=bb8Lm}<{ksqSRl6l-0SO>s~R*5gYm zw5Kpo*Nvtv^N1Jx#u2>F9{$g{B0~%%BgndQlCP%sub7pD1!ZW0RKvP51&y+`xxp&q zu0I>k!LG+B_w+OMpkrayYLFO6CGTfM+%}=+u7Q*hi=#HsEP|AOj-SSgwAwmE$M5Jj z#=lVBsrtqJ71JpMe$P~>=NDj$ag{*CQe3L#rXvl1q;?Jn#03GL}fH6!%hZfEC1-BdRCALvT*4z!x&Y2s7lwqnE zJ)qHXQp$X&S+-F>5H|p#dx1;b_sAs9Xs`BfUzD~hm(KW^`s1zY$g(!IvAGX{(uObj zyWPWN>x2J|VtR=DXa_4JImBkcsQ{hbHqHN`VE#AGF`g5N$!c*!yF|-XiB1$a3}_Ep z9MI4c;obek4Kq&5Rwk7uKlBb9epP1$kY0CvM=oFA2&&*ONb24Q>JM=|{AHj`NaW(V zZQo}$W^sH8GCoFLqNxi=*L~!OW!@jPB>PJC(3ZbVdKh0s@kXSIw+4`zh04Nei(#!z zm$?KR*E>#2ti{wBzeeF2!WR}_`x`!Xat^80Y+U3b|t58SBHNyOI;jCLLF^GdVn_~zp*i6I`3B^2)+y54oy#q&5~q*S!C zsM)8D$Ju(?=%npnzjE74H&XTE*Nln?j@OAS_e+51T-Bp)eh9w`;An)V7=3Wl!Z-p$ ze@N-PBs6scrQkg+(PSzj0*w35X2P-vby1}}W%$o9m9AKc28cW+6_R9rZm=R4hL`rN zCK~e-0_$~Q943?v4Z=ui>-fj`Xvk98op856TGc+_P0~ckw^Eoc5u>Ns zvt%?Nk*R)zoR8abU>z~HzCj!RIFmKsGnjx za*Zv}*FKoet?g-Ta(K>zgXcO-lH^&x%>%uZtp|#!aeJ!Sz4*(u@6SgmfQelp+8beFKZu+6+#1dhQxsp&@QX=+BjvA>+H#rz`w#G`yDI2 z3(Mogw^eir#0;vQZuNzDsLAPqV5l&n7b^#l6dFrB^2g&w1A8>EV02d5qDjXX57Q>; z5tiiPsU3W)cE@G(FEhlDsMk9?(V=irvT~*tHqA1Fo#;*UDBzo&=Dlxa-N<$03fS^P zUG#qaWpyGZN~P(cS>6&@h&aI4JSp-Y6^ zRD9EZkdWJ~0{9^6W8$*5Es%;J=Q)Z-+WkxTwGE1}detodR+A-*Q)?)Or^b`)TmS!Y z-v7C9J;a5VZvaJ z!UDF0seIF*@x_LNj=E(8XM+TvvPu;SPdd3Q8zNLB9x1`x=KGWUa$^+N8W+~y3cQ)l zSd@{wXs&gR|} z0xu)0$}s*5Av&m<_4h@Ms)H1$V-6=Li(pZWsF|I6uh@D&2QUAmCycc=jK?R8hk0`I zkOA$ace;Tb3$}v3*$|V(xIup~Cjuy6vNtZ2YH%u9JbXpZ`XSVgXacq1i)U72LLMAq zFP*0V@PxW2VepQ{Y%S};V$;c1(nuy#j|_-m6qN^r{l2ZrRxN!xTZ!!rA@-864SF`& zW>tYbj8g!u?)wdu%_Mqwz=_{d$Viwfmao(T&S&aXnbr|rmdyihpH`u@G%O)R6{;q0 zq`DzHqw-Php|oO!>mOhveBnew^tZ|_@}tmXj(MKdcQak-eeG2s&Tx1tHQ$J`L($NW zGle)*EehHki*=cFI3G-F<867}!-8P^o8cxPrg4;|30wNP-j6BADO6d&x1JJX9? z6G=|4^~F?c-dPy81fT83a&5sx#iS4;FBPhtu8oL$+CrzG|H=JtL~Ld3Cy9LTaT`q@vwl!7YgwX$9f}9g(PN=1274cj|>83 zz-00kwvXPf!GKKJk*RG{*pTAlXo}E7Av6Yo)u@Dm@uG=C9lqDC+(9ctl44?nQt2(@ zIGKgy$*BAlcsTYou*bMd%@=kJU}4dlY%8(k9rbmjCCv-9^E8c56#^X1`60J!NAj6Z z_n`Sw&x38Xr4=hzH70#OG@rfedXIo=1$#Qt%6Q5E2yqer}-85Axo$I0YO_T!mvHc#DsU*f8LJ9L%yIbD01(5`=G3P$b zno>*8pR&cE{dSiju?ePZjpqQpZiW4BE+B?rreUvp?fD7EDYU7h>r3OuY$Q|ThQd-a zJi3UCR~98O3w2WdAMR{b=Lzxo7{qc*yze>#7jzvGRYC3gc=sRfe8@&+i&DH{vsN1z z({8y^GeJNnXLaJnQ%I37ZM8SElBi=x)WM_iNlR&?lBoi*?7*=`4~dN{f#WR zYyFG+s{lp4Y-XqbMiEfxuNeOb`ciuW%%KV(j1)e*s6Lzlo?3Y=Teay@o2>N2&s;)% z3vQ4UzxiI z;(M*#xu(ARk<-kvbh(ynqq*loAx_D!FHx8Ezd$g=XF+)M)$BCE#NOQfq<#?e1>-~- z$GAP&ogp<(w_mkjXk$8wH;8NE{D;S{T{!oDYoB_SahJWN&KMX`Ox;{doZngeb}+cA zl_}d8Jw%2~CP5KRn&mzEIs5cObw?IwdqdtSdpX5}Ph+|zyO9p+pm48PpjI>0wm}!EKs)p6wbr&D zAp)G~pyEiwxrxHd^?Xm=>hiquWB8!klZy zl9}ytjg6&o{*tu5V-mW`do^a~k+xJK7PhHxl5=ZcfKa3dbFi&wW{+Q@X1Fzvht!otQ-!vuX<6o!%5 z+P>p8yZ*TQvrs;Xj_DKDZg=|&yc`0ft)2NFY|qADH8-`@n9_=Y05gpsouO**;vEj_ z3$`*-l2l4Lw=*_2iM2%ew#v=q@fpfG)x-rA3}V>DaoOmdZ>F9BGKC;;DcIuI0!%iR zY@uOA_C0k(CyWxxTyrXqTGGv%;yt|2k$PMhP#z zUQ<^R|95?FZ518W3iX}gM1e7Vi1f$!ReUc`OJBpbYsenA1l@L9>!pXpOZN&+|8Kph zdvDAAupW_;Z7PW1AE_@s2OZ|S_?BpjIYi6wkw=T!wvB8w+qRW2gu|;gt+APz5nm&L z2JXCj7tT;bo;=2K-pg9$e*+1kcw;K{c#&Sk#@8s@Y%t!GSPNe8*Z{<fR+7eIYD7p&`U!C2O`(n+7ekq6wblxo`5>kvbQKIt>6BDvF$zBglhKq(B+vcm2h zB5Fsvj@XX`vJIu9uuV-N&CqX+4zy|Rw-P~<-~V~3`pMDZr+s;GC3sLfEqCr_`lf~- zUk+%h3zK*IjG9V|$=@~UA?;&2eR3mcF5W4lSsD`QvqaK_Yd&w`Rv0DahD9~V7}_?& z$Ci3@rFE|P7I5wEqE9Gak6JIWzYzylrMe$1*tAJe6XM-!~%=~ z*jiaW)Fk}qtg;t%OX1OgSlK^o+$1@#8sTu@U>Do-wu4jF@b8 z3)&Xd%Onp?TUW5iGROKcQ7t{B9lXg-7qR}4A=>^b?3NHdPe-GB(y7w*?ZxpIIroHi zGA)Exlu2@F43z}+>Fk|2?>E)-x_@?t`T99%Mo*MXYQJ|!ILH%ahRZhnN3aJw)rzO2 z@8gy9$}6??Sb|mC4V+2k*F%0=sFrIEqrU_sVC(!U?RWHtKc-?kD+Adh+oVHpZY+}N2*#(u9T%xGsfhujjeVN zn$3UFOr-mqhH*~CATO5+EAoAS`QGCnY~am}BmeVGVC&PCcj-OdEyHaN&Mem+KJymh zx{_93>UO&oy1__ID;Y1m|$ne|05ngXFGrOHhX&FU5o%ayB@jj~a z&oC#17kLK#t)DlF&Td})a>qZ40hf~cp9fHRykqfBi-~FznJnMEM*@l?hQu}zmx%rn zu0(lAGdK3=naBk1KjXt@cQMpXb)F^H^1e*ceM~xW=l>x4Rd+Df`5@v6C5WUy-;P*1 z-2Z$NDxa2#+9?&>>TqA`h7&&wFm8v3yT3(UWr?HS{dVtt;T2kkd!O}OJvw;kU}q3U zNN4K{wH~fsxAeVk%~PCeOu&Vl9EVmYSfo8|F{5c<$_iT$2A|eA)=0eruuxR$vf4`G z81?c5cCHfGmpHOya%mnkxfWp@MC&$GdpN41wOldBIY(SAe!2uN5RGO%e+O6wRp+5plR=~|D>>Ff&1G0f>Cq3 zF9^%W=X&m|S79;?S;=Chnfm6AJhl=lYRE!!I#L}-xgzz;>z~wzO9eYcS2=9Cm5iJt zXtlbeJv(zBFvc}H_H=>bux{KHFcKE&wqtlh5m8M{6UoG{imQat;Fxv7X|@ecmjG+& zLtr{Wv#|(X^4@3=fU&~6;8%;U+?U9yL1!s>8gDTWorwNIl7Ix?t^WlH6YJaes@r26 zu={!S?LCUmrJ(@fKeBKtglM?6JGG0=!Nh05rgL^?3TnSg!Y~6@*L4L!0+iA_eEi!t zz1NBIs73EiNm<^LYt3T>D@(;ksjy?Cc2er*Q^JBRT)#YHh4J zX34wH`gGg5gq-pMq!4rsGdL>&X_jY@f0y)r47BYd9k_c)=`g4WxVT*Z3>B)*H*r7D zkFVR2k6JGyq8IVq?{=(cp@1oLSTnTPa39egWRJprNBw*5meus`lOota-G8v2=UP42N&|=dfAJS-^|7&$Rs|pPdsVwIxoHZRiIWB{!9VAkm95 zcSQ<=PCz=FrRh`_PnxWDovB3n(?**!D?2;8uY20Z1Pq~*SF6n$2>9jt}vu;oqpEO86UtsgF zQ)v#bIEs^;%p-OInetJl&LW#&N@o|rqiVD;6{URKH1}RI?Ts+@#Gyg$hgr1tsbaGb zn9PP}@uYVo&KJU@`8+&s5ht;yl=fJ)p!oc#h3V60dOF&$pZT#i@W?*oixzC86j*G$e>`4QmjIEoP%U3_S8^cdA@efG70R~JWYm9UPkO?~~Y|`+zBQl)>}CF{M1ORUAm#LCJTaf}vU!ku@-r#0`Q{ z{x&XD`3@8S{n%k?w5MSBB-eR__6~Pg9bGb+Cjys`Ti$!KAzuYQ6I?QSw1?A~JY0l3i2Ac&@vp0OQa= zlMiz$_f%$Es<<6brO|l42@kx?w|p5`M*@f)nkJ8m#?yA`J08yn zaR9oX;rwK(vDDhS41+E!F9_w1sL)|S2BXDo^n-NX*1@H9DMDuJpW}R`@vz_s8L2E$ z{F}W{2T=-IL>;3fZWzv#!j1xLnW=Q5tXRDY+svPdy|!KtzrF5$U}Rb+IChf6ow<_} z8CcoLLBE=Xv-&F&$0K$6k&v7(*)^@bSMxQJ5I0f(%GX)PcsM*V3fW2Qu_6p|JziUP zA~ik>e}aOUe3A05ZThPs4>|PEImAeJk`)0$cX1435mtU*j5%hD9Y2ucSr}7%mwt+l2qix0;a{lU<1;|Oh_fd(2VK__+@ zgU8weJI9J&Oc2bNJ(}bYx)0P@=OtxqZ|frB1Sh)UG1jvXCrp@8F_7xSrETK2Ok5LI z;%g;kV)UMT)PSAd06GVE^-s_RyFM$49?jv)7p&!p=JUh}tNNjlYKW|fMm_K_*H>3s zt@_^80o8jb1_tVxDa^b6=KS5j+R$=~Xmiw1@_xd3mzhEx6m~bEZU*SkGBP^i>;-Kj z`v`VTXCGFKur_2)7V&BmGx5cy89Tv3y3+n2_H2j^)Y`Jh*yAK02@iTg3r#V-!T6cj zaWZk^eCxO$%Z&ne60?Rkci!8R_KV~aIc4Yz9qYHt?5g|VlQQIQjOgk@tW zUtx5+&lMSsrs-nEh{(>QX02Q*Z)*=ulLSE&8#Vc-V1+D~E)qgK958i9FM^c~<<$;G zZ!!)eY2d;qyCqd5txn-F?9MP$JgOQuQYJY8HqH)sgR(djh!mG^6Nq#NJpJrE|L&MY z=O~l!l&PSx@T1NHP1(!YIpshxiuv00VpZ}{7U?@%&cr~?0ZWxyB44i*GPQL`fZbK5 zD=8e85jS(v_t7AP>^*e!Rx0c| zvRivic@Pwi%8_PBUPc&hr(KZA;%{4v>^omV7@Hy}l`w`)ln>cA6zu0xHiS-1v(nuz zgq+Am^AFReLlchMQ4T60T>n1b=NbY^eo`e|>%g>a4JCtzGHHQRZv86iNwO7^wryfTTf_=Lao$lV3 zM<~L7gRE_jLnQr{m|mdp&9d^j<&J7B`C1&q*!kV|-zqD@+b)hA<>-!WaPh*?j^P_+ zZ1a(0ApO17ah7en!Q4(E#u2q-D}>tEk;p3|J>EbJt5>h?=_K22x7{Wr)5TS!?FL2O z1r7bfN?i8E597xV9fa4vW(=GmXX%b!w|Yj-^Exo^Ywu3T2u-G%Si8~eZO zS6DUvcYNvD+hfsTC*i8x>6pu|!xduFaPGn z_}*Kei^n}`XY8`qQ}BvUT!1?azVSOQ#AjdoOg#2cJ9WzVH2nLQ|AYs5?bl0R&`bU_ z-b1+j8?VPR_SpqH?Y2J-JN{ER-x5>Q%Q+|E_0K&RkKSb`?7GjB@sf9Z9lyI<7~$*X z;CJGbufGY0@3#wfec2CiPbZtzx15j9zVQWk%Km#`mt7x?L!S3~eEMuB$4gH;4!a)u z3H)_zH7@hJ++jH2QM+Kby&sQfANOJW|Fb7LouyOe~Z1@!wRNj-}7e{D& zS1&;)l@qwg8-2vS6#XM}ugsa*h$K(qWhanp@1jVSp?Aw3D|=+#vH!ismzNEZ8j+1+ zPG5|@My5@JfXWmjm98M=M%+o}YOgZy)&yd^X5e4M zDxizgD~B`Ob63RIqz-&ae@`Fe|`Gx#lhbYeoX>FV|JtOu&n|^^q!az^QlG*0*(oxp- z-z6)5w~fFu5_K8!?tKjsmn&rodBgJ=)wa|xr1fL(Nqwf|N8u_H!4c;iRcUs{qixEg zcaC|ib)4jtlMnk&X+|}VC|>zYS@||BM)likf;{d-LMLh~#CKLeoZdS|WQ!v$@&GUeHF}TkYKaq1TQCdPlNGbQGJFOL=lI4 zIlQ16QV5y$<#}W)4}yX+@%^hxV`a_P)v?=|RAOH>jsv&d5cB62ACeu{0R|g+)6OpH z0EKU)WZEP-$bRF{3{JuwsCSaCK}Sg4Q?t)}cx1#m4I|whw@upyUH=eTkM0nLbB2}Q z1uNf+Gb}iH@V*bGoGKH^!ferj4!}#^z!he3_M(p^C6L8o@6Bzmp?S#XR z+ygUj{x)89*h}$_lfI90{&X{zwsVM`MriKj52hJpo_4)=BFv zKX@aKe%Jrtj_qHJcYpG;`0%m2;Labv568a$=eXbWL(9+qBEEL_zIfID`v~6jgbmSJ zeKo#(+)MGEpFW63zvBJ)*oR(+r_Q?qUpW3Ky#InFeTwNa{QhG{<7FQ{3ripUa=h<9 z-;0;;GmZ=Y`&b8?lD`EBDaPqN7;oU#F72Cb=9r*Bv-iW8Kdj-Dy#+TrP|GmvP zuvX*uU;74b-~V;^@PD0%gK$3n^VlPB>{nOfDR2EReDYn-z&cl)g15Zmd$^??%JslG zU%{z(8s7S`kK*`8-H+4W{Zc&h4L`x$Bj1hx{=^A*EdQ$GMEM}jyx-}b`_6qYj(YVM zaK-#1aN>tQigzEiJ0AS$dvWyfU&nREIn}=X$N1Pcm*I&gejJ~C_p`C#-~R{idF`ih z>8fGu_Oj35zmD1g!?X?#I`M1x`Ujqgg{c_u{rJUuj=~$ib`>@};zWGnv;T!R9TmFj9>H_yy}>b;}6SR zJ>GlvyYP}%pM>9zJ|6%6fsf$5$Lx+JKkGP2kNFfXHJ-cn9Y4Y6|F?ywyx~Lm@GJMh z>=nPq$NueA`1J3l;qkBgFh29&@5EuVevi+*?ln01Z{wK0{~Ph8_dX394Gm%QXa5Jj z{?)hR3F~$Gm|K2~H@@TqeD~(<@ZxuW6d&n0D!07(yLj_U-i*`k@W*O*(iBI93=dD) z^sa#h8ff4V0yN-dCu!+r!@H&Jg+ImF>+=n|(&jDHQ#hl&w zf+*M%^xpk)Q&oyc);wVIA`>^6zg804dIY-8?7CT#(Z?OK7~9_?rcsqFBArVH(%2-U z3LmP z+-cKifb={Wgr;xol##8IV|$$3#TI7mlMzC(yCiAIq=lJJrFP25v52bOTdhj|S)7DQ zg3=JKsx34WscQO3$`f5SJW0cWSH#v%uk4L6ag0fx36llg=nX)9W@ziB?vi-Df$C|s zUS+XSv$J`nSCnB-8y+S3b|aKC=~G+}FHGIhi(V_H-}!OQ5NA-8oj{~o6h_a;4kURQ zc7^G;oqSqxu*f;QVOy?YxYH)k;{iF|6$GCilHT|Hf%>H4i=)lhDhY4J^zX^f;F*FF zkUmoG8LlP2Z8|cv_9sY07E8PXqvRR;PS>E6_s+N;3$#1^krE1P>Jz3ODDYIBqJH2f z>3t5_atNLl*&_nwctHd#O0)0G$>1i-e@^)6bC1HH145xra0{+bk2a57{UmL`)IV9g zu-p!L+B^b2`zy2*;YU{uO$0NRH8}IKC8vJoF}j^@tuEP~lve(=nDEvS<^W{-?!Q(Ux`@bU<3< zNas{s%$O=O~b>W*09^*TgtpB03a+qGfGmzAZ{lgpz8 zLj(F8ual(rqjrHZU zH=2cm-|=O9_&M`S5jt$MyK%^Ir{g!5+=t_~osUhQ^9h`~>phsW!`4{0JYjZsJapmd zc;_X*#Z}`^#Xged<}bm=PI?1&@*~w{=X?NP`r{}L{p45h!KckDaUc4`?Xco$FT{6F z`32texaVU19%9OO{S=@7_O+Pt#E;`E|9J%Fmjpf;k6Lsx{y1kkRu*!9!I$x+OULk- zcbts>K4$Z>T_66`T{?fBkFR|8Te#w|6S1=^C^mTd8}W`8?B0pf#`d@W0zZ5I_1Np9 z@5BopTdXL36juKFG`#kgf5P9!UV=?MZA04}iMPJtS=hW&_5wEXJSmMV#== zojZ6Qi*4^Z7e9aB<@odU<9OQci}AzHo{HPHe+^Fi>}#<@$&06A|2enf3GX@uKe+5D zynPQT+#($P;dkJLn-okv02|+WF`o6si}CBlZS1k_-q>%^`e?OQV$psFV87fq%4i-Q z|GppMe_u6%McZyzmK*yG;gZu{g`fZS3aon3rWo<%p7HoM;iIqKAH|-^gZF6TvWwn? zi+*((RzLSiSb5%8@$GAdu=l&aj8DFFVX32@`Q)v!;;FB~spC^oFWsQkzx)mDi#MJ8 zK^!`-Am#`hwEq2g@_W9EubllV?D_P2@Pp6(1h;MUJbd{}@4@5BEt*fqfg9Y9r@rkQ z_`;e0hA%v8rbo0ZUj4a`;-w43d9?-J_^s3Mobk=EXu*u~&12X58%}@0H}Ts`@4@je z+yVRTyF*8oe}QR>_QwJH72hZu!=z>if;2cV?2!J9-M?{l2wkMnv8L>nTNoP_bKGd#wJxE+m7GG zK4uL*I#EpNW>k4$AuTHqj7GU4aOR!RXXaZIgk0*GsZT+7C6!YmbdnJMz?U;v;YdYI8qQn2QVmcj0La~ zI2qLte-5M<#zesSRlS3@&6>RPZFP+iD_Gleyn$g7IGxi`QT;0wX@pEzuFT!~lWs(% zX&*T-WsWi@SgiMw5!MOer9qu5O#0m=;hj1c2kOs!?H_cwz~0T|^NqHu zQ(O)hCCVO&oZ+1AE=!$`;&>#}OGI^-0XDrXXL@D%1`?C-$QCYctn8PeuqV7KpHSY% z&NBE8D6R`6G9>B6Wn~?Jg0n0=v7y7z%ZMC}E;=g>BC{$IIlW@a9kC*LDrJ%kF6o%j zA4DbN@ExighO7$AzVPxc%XXM!=bZoTWKJ;mhQv=_rqXpkQ5Yq6^jDT>Mqd8^w3@m9nMcoWSon+25LA0wzEOAr_N$S0MgdL^EF zHVZ4@z7JT|A^Yzlvd^=$he};}d5xMcn{kWCh~Mefc|Xz~$0l><;PTrZa^D4|sNnUj zT?DMVXZ&G?bTCJ#Ynf{s?!5C(eBu+I!0&$dJAW?y3je=o%q_kSP% z^SYfp!5d(kt>dSHEiec<_ z@MD8hjpkslquzwQd_I4@{4aQ*wH+RJ;HFS?({{l@`_9Lge{co;Hl)9%!Sra;0&|x3KZTO))AzXUxa^j-zO7`SK3c@g{-@xwhY8BOvn}7B-ocfpRu=ti+@b@b( z$4%pmjaIJ8k7n9;;quFG#rX2Yc>lpW;QcnJ)2Xa?8*{k2j3@1c(itDt&d@U@!IEXeaz)P;fs;9UzeLyZb^<_V{>#C(6I(0N zJi3kTyN&-dVS~<7YqOP!9}Uha6#YSiIwg_r^o4JNNi;^4E#B@+wrsJUW$P8KBG9mqCntD*!9^O6)5b1nhB{imgk0u76#r4vvZIinCiE zx`ur~1ih4Jt{_tbQ|2hMAVz;y&$->{<2~`dVe3vK<0Ny+wdHYf(EA+vem%C4oB`4~ zvMAcQ5KR7GtfK%OY-@+Ume;p`}VG!d^=cN6*d}t;{i`X}-kTvSF zEwFSVzD~t4$EMzj%4nH9q%LJ=nR_3M=EX6ZkEA$+eWiMzsi&pYa?Y-{mto_DE2O{e>7yc@c9>8M(29!0a*WtXX5i`oQc1^W+!Y=My66O^RNP!{`Zl1>F004W``V( zr|kU%9PrGS;lOXc3?KVz4;qSocz6fA{EHvQa~8xs42`abg?%{(Slf7)D6oCA&!KFS zl<3Q~4{mHSdf?mf!?z#ccXSD~Fni--N75>#agAX7T72V}=i@*AJQw>N_H;b@=*da|Z{`)PQ?v)_VqT93lh zo^detd&ZOSf@l63A3X5~T~fKshcb#o?5TUx%mivVZyD z1X*EUC>F}OL&Th&I%gew_(EsYub1-fRsNN9h_Vw4n*NkNtc94 zNrIzRoMmbU;i|e2+El+-Rl$_W!?w+E4|#@ajKkeCbKCFyvFGN){oUI-o<`$Am z1Wq&U3U&c{E}6CCM&h4TZ$A*7=)?miP9f!q#humRxkNTBjZZx?^=B$svyvp$KCT)5c}XYc0Ysipv+8^L_oY^k-Mlu`CeJzJA)`zMp6M*@2NK!0lygB zDHkWATL~&7IU3sfTpXKK7|e>*iOOI*vft>uaVIYIcJ*aXIG*RHakqh0WW$xjbje7?h)#Cj2D9HIOD>T4PMQ7om=9~a@0PKT zD`5=#?KAf2!n6BMnZ%)h*XzTvjv>rFn+^@xbW{|Sbg=Ear8k4ln%WE4tW>OUCCH>*4uFKA#cT* z4;3*Pt5>bAZENj2euURP;b1)d9cSV`8)@aexNm8vc1CBE$ME$g=xUt(v%g{W-fza& zzwmy%;pH#D;RkPu)`Q$5;Se_8c?Znl+i=T+8)Ccdx5xIywe4Iix#oJ@i_x&dsS6Bm zw+nWhHipZ8`D;^-rTE=f-;a-;@>|^59>Ny8?u2#P*Wj1Gx;5;gTJ=}_^5Q#zO?Spl z>rbI9PFsYXw;96No%e&b@@4K^3vmmsymcjprVTQT*9M=3_N^DkIIgvFX@xx9w2pw_Wy||HCIA>dxgY7n4fg7&56YY^v zmt^{S*kr*1tT*G4t1la9pn(R~4%Cbt?VKKDOfwYj-Z0E+Xtv>D?j8Ns_Z$r5M9KGz zD0xSjIQC*aF~v{mlR09rWdvK7omaM?lRTe~b94nh#Ku=jc-M+El!=timu$gdF3Ti) zaeWw>Ffw^XG|R>DUCTj;Cvy~st5Je8IM?v8~Gq}CnE!qtulF!9`87PPsTY%;zWY46B?{8`<4$^W)j&#apdB3w2H;J z9K=yYp?pQ*&aT~3>|rwZAj@JWEYtcRV%bn&F()XZ_E5za%c;pn={03Ar>TWFL3Y!8 z<#*MDl&1-m2?t+WJtph)85s_)s3e5bSX;9n|?3bwvF+rh8{LD zleyU3JuzyBCQfiki$;Pc4eP}Ro0j6JDas1&E;wz2;%;>}xiE!CF9wgW(??;4RZBIm z`pY5AlAUB_h%OqVNVZItJBCDQlzFv$zwP3v^MqtSaxY}$T)Hi4#u$_@AKhycT;@kYe?_-A+*H}qdaEUml^Q-JFJ)c?d#tDI$O${kf_$*n zzjP+j*}1>=Xi4FBlpdz@^@=^LHiGF;e5dE*nvE$s@bMHtcDV&QV!h+qiZ7d~OA+Sa zEJSp2geYc;dUszwX?wbCgCd%M;Nr|lLA2PdMHL;IjVmNa@k~HvAc}|!j^Pv-QIlmw zXUE#Z;4`ty`V>V&wVfFQ*@X{j4w`>Sa;PgZ2&BE*@Ban;Bo!`gBQUY}JJvDs%^4cS zf!l0|pI&}5R%3?Oc`-*O?i@>XiF?P|a=gr#5YkYf%KdiI!o!YGjioyVjSeX9q(b9l zy;$MjaywjX8&n>;_|hKOu97l$X&cfnh^|sG>)hL>vRhs@+Av2bn0DRvx=M79>=1+M zDgUQML1!58bGur@;IDW$t_sDSUEVJHu{K6JCfm6)i|)Q~k`BQ-?1{~!ywcXJf-tXa zzkqy;{8xhF*hPUK{NM+8-t(S^$%G&N@P|0^$Ro?=#fukXpMCb}J8f&>5qRI1cEdyV zG{~_(;ES*O0{*=FtMKXLpNidQwsGr^UWLQo@q6s}?o;vgqqeLV`CFSl14lpkD|qAo zy$#P>dI_HS*sU;o#m)HrPk)57ZkdAvKX5oY{v6!diy+zv3pbsH@jv|-U-Fk4Ffn#<#2cLf5EAg&7Uy4Jv7{<-#os3WY@OtdUZgU58RlzZPL=8$9n-Ps4ZK za57%=8pd(Y+8ygHy$nA*>5I4k&%u{Z{~$J+)(;}WtPSR4CSQV!e)v7?wB*rv+~an@ zT+?V<>n_B?IgB%Z_GNr)(Gl1RH{rr>ehI%B!$2_SkeA~5TmJ%I{rD^J#wEw#kOdFn z(vA%OhUytNS@nY1>tIf695-D26Z~wi=i$&@W@DW>gt2SR$B)n50Y@Cvzx>hACHT~_ z@4_w5e+=f_egRJT(#2T4<4x4{x`mgGgj@4X?Oe{-#hu|c!+IXY=HSA=gwD;lT$Gr&;zWiy}VdmZV?KeM#um5R%9QU15al(2n-2UU^aroPR zi|yX=KRD&+tyK@r*8d2{V_oktlUjf!&=#WVU) zC=-|BIXbMZL5)^alfA{CE1W(kwnLGH385c=`x)whS}> ztKb}DHj|Nos1RJ2%G1($ZgG@nOXidIEeCUhgvfh|RJWUE(m>{>Vq+kx)N)!{%gJ2a zZc<;`PmQe$nRp>1ir(v|L||;n6gSzZ#?3oYqe@0Dl>iES@7#umhA}iWgTWKqGuha|5xw_h_&g+yC6tXVosB&T z#%>zy%hdwI6dWclDzw7aL#%aJKTRRO9nGo35%s{`<3u~Tl1SF3o^ytUa#S;Ajs&a^ z$hDj_Q^fX|N(<9KRBiJnOyj2uF0JnGwHPyP&8a?}D0te%&ZqpP?)5y$@Gu>{D1xrd z55iD2>Ptt#rXgsDz`p;d(m|yr`nbRGznxUGG)hn`(59~s+SBDF%7Q}#jU)KdRT1K( zV3TN&Bh31NZurt|wz*wpqD*Bqf{O<=9;7hfn}9TpIJaU)Q7EHO!785!^sA_vU1T=Br$|z1)2r@RGrz=uPC>RQqeo3siydV8NVZ8?jvL2y9UTT0nKH3#AJ3=JxV4JV zC}WN_NE}{8l=y`r{vun7xV~bA!2!QIXJRtNpOywuLLx=ku?~pJUo5g?>WI=Vlr&Ru zuBle_!nbm4HMU%L2KL-?ef;LS`_Y=#v99uDeM>1LT!yaDY&d!wsJ0cuNlMD(K{3-f zeIImqsV7>lmRTIpX5h&h&-X2C`Uq3)ZV)Rv2F5?f!NCUd-zsD82n!U;!L8x|b@l0< zi``&DrL&C6En>xjg<=s%c~n`aiiTQFD%wfW%T;CWL7yqtvt_FF#Nm#QP9^ugoty=j|c-{-#(uX)nD@%~@+NIPv89RHPXVD2YAjqiNrJ^1mxwu+Lk*fv?Q}1Wx+?m+;v z+hgB<|2*FI>U}z)9T?pa$DRC5%>Cpiamu$ofU_PL!us3pio=D{X?I` z55N3=oISb)4nFSvc=J`S!CQV=muPb81)FvpZZAC(@BHpbc-zO;!S1KL7|(yrvv9!& zPse|r$e4fbr}~sX!nD2Lg#UQ-1$ggA--YX!uY+y&e-%!8*Xyv)EEm51ll}wW{@g-* z>C~q@twT3Y=Is**5fSJSMe>k4V z0^G2hM^K5Jv$a$~7vvg#Kpk=3`st5ljBS_(ACs*%bEn9eB~Bn`8-a#-3u%P2%$sdG z`y6bhfsqvRt%9#gYv6);HulDed>*79h&S_O=rO#EWQgLs1zSIZHO@L7Cc)W^X#&r6 z^_FyswJjH2;!IE}p{7qu8}V8O>hX?}t7Wbsa}_hP5q}@`&-T8@@S(5!lp<9D4<>4L zB8ZYH9$IF1khc`u9Yz2Uc2H5GfPy0>e1H$IyR87TIzl=tX(&eHmRQti-8Krx>=;wU z2)`q(-ZMQ}FsPzPd1ak6A&zrATIXd@YVi&#pTegLb;#PIhmJp|BeL``pxp(TGD<@2 z=n_Yn;Y0e(GU@X?MZN>J@_}eYfOT|f*~>Ceqz80$1;TDJ=`c)gVdD|Z`%E2#P6ztC zYzAY_-oS0nDi7lGdAC?rId-K&TJfVdB8c_T8t>1G(&M7_?D3(K)McBa!&r9J4yi7QUEgO6k4gSdE4qAsjpIdMaFV-{^$u0uj z9DcMa`o<4#${Ht(cf2mAU2z+3S+W|f;i2#itTh6wFXDWKVH~vphHVw8n}y737Ebh# z;%3)4g0_-XcEYjd}75`Dju=6s_BTH_#g-?ltk1bOy?eYAedsqzCMu=$6 z$TfHd3FDZ4r7fZW-GPmB0ErDLoeO7jGxjn0O$jxYa!pThTt6-AC2>*y71=h%uU@vr zigc<2Cjj-xzmC@QU0dvb1fWkxS=l0VuI?Ilg_ni_X_zsmXq?J(iKNwWl1=Yi(=gt4 zOXp+*1YcR`6`&1(ht zmJ3~J;bJBtWkLu@o$k3^C)v0_#VHiU=RtRyaV1Vrv=UziyltZl?K!o_klG2gBytht0|-Yiim^WIN({x} zBrXik#HdS&Zp-Ab9sNN23AOq}Fd znzrgSLBj@Dh_7v1`hn~~Kxl~?vte$v;$)RoXsE#r*m9hOlSfC7L(5tQ(VFFV&LAZx z-LW#{^yV?q9bq2}BcgjXO2v&{9{N%JTM3CW4 znMU-d?@O^JI;VjKCJ$EJ_;=ho?J;=uJ~Pok0}V9LKm!f@YXA=vgOWF9BuhD55@vRb zXu1|+V+~c)*?ET=@qIX_>8K{H$s5i z_L53tn*gL}^>@84i}fC7;@0&cIh|>rxkuc(f_9^|Caz}LLe!AfgqH)tAj?qJ40JFM z3%UB5kY5$<>NdO!tH^pe8Pd-6eA5BbzJcZ7P)AAk>E_S$mFc{5$Y3&Vs9#tv^$D zaYu%z4lCt|>eHq(?|nS^XMY>SapzxyKb8+RRgjj0BRLTRcqN_5KP{u>9jA)V8tBco zY$kI&W-P9mI*FoHUi2p+p%Zoqs1oWFm$_;%=hSR16lJ00h28@u63oH`?|g9To1@(_ z+>NL-^Ga;W|0FAAl!SR~l+PjeEa@_=uEgeqS{>Gy^h_cDLPp2N#<0n(Y1nJ4`QWit zVPr%=&-n~_j{AG{($-^Yz};<~*!NyD>+U_Wc@XK&tlCQ#SA?r1)tvW9VHD%_ricr} zs5GMkBux68P%dd?5(jMbfyXa#i_Ln)fOZ`0m#|QI%wq9=+*}gY_F?7kBCPGcJJ$Ax z+KsnUJU)%21xz@V19-`+T>UmYnh2JySn4wPpjb|9QV46QPkr*w4aJVHbT!~}pZi>W zS3LI%lBU4fKtC{!o36VN*yCXAH+Kq0(hW4wKm!dl(7-<)L}OYr7ph#;M2(a+_{aPutmpC}@Z%oF)4sAN!0SC&5wqf9v{sf*0z@v*sw zxh&S&l~CO?ZVD-mzPL_?yLJ5N!KavrR35wI2n+H3bC-O`Q>{;w6xh7eAQOi&aVip+ z;$oAp-&heXcrTk}$4NFi;_Slhwr7K}4S2SQT_Ljh=`%+*aBD}X#Eona(72qr$0klA z$x&R%QzA>5xfZXzYx=Ht&yx&&wRn|>{=UYxZA7$K-$Rw2aL$bMno?5)%{UlOY^oNoJ)(4`Rt+WyH2v z8?{nCdu%4hs1v?LJIgZQYsSZe)iusIUx&Lh|G>T6IRG;ivnS3y1)yn zmJ3oXeupFS@g44VDPQHcj{I_qXn;U5dl0CN!B$UFT~gOo4k{DkN)L_G1x4wD>Qygb8zG^jg-()Usyk{vE-?tL2kr8cYx~a>rQZgygyJNHz zSsj=<6S;~($qem6G(m|gjg2y)|+g@qC9E2wZ( zwftS$sC>VySa+e0J^#KeF}q_G%bus)X6E{~vP)_M?vra23c-QbqNQ4154AnMBK`1i zaq#0fbkPVUb(t0SlpjeSh^gOEcK7lz{Q35!xb?x+rSmW%JZbOWL<9diFoYdm|5IF! z1{!Fffd(3A;9mRMCJ{9iBzUb2p{_nDM(}{qk zIpz_f_o0l{_gNQ%Ek{-})adfaURIN&E~&Ns45YAASfj-KgO(%F4YmB>mJg&?xPWzL4lSl+xQrqHfVJ;dRf*xX}Mh%ak^+=pbo~kQ;YJm z${exQ7T*p_XJjnlQ(6(+kix(byZJu(Js*#hj zKS}Gv>wFokk-v{+JZUmkDP3lbNQhm3=PZTVwX^NdMPhaH5sX} zaAeD|_Ea))IpU4AW&rVb$T+djRx2R3q55_f*)nrt6l@P{>>sh1*b3p~9Wr6a(pp)x zpU^F|hq6xuy0>i$X%@+v) z_4V$3WhV%{GGg=7H2la(7CVbnsd<_z0xq<2UYs<#?MP53dcHJ$IlMxOmY1#ctk)a_ z+!jNM5s1%n4)^eFt%A?3sD}~-*!ITaN-0BCczb!!;P(4vWgM#RB$KjPzGz1$>5Xx@ z-KO%Jx=694N|6Dxrwn1Qi*wes+2u`{bIRpgYoxSP>r7XOSh@1$w>~t^C`-Yu>Dbc2 zQQK%CaWdJo)J=;8e9q8MQOrmR$Qk^@UC8Re~yr(X|*YqlKIvaQButHa1yj6niXO z2fw-gezZoWX`_>46ml9PDIhAD}j0iI|#%(rs3Ou%jlk#l(N9v z@-9f+sVe+l5SIY3Zl~k8$E8LePuMzzD_GR8l_Q-*+fBoy2 zDk$>$@P|K)1{!Fffd(3Apn(QFbR8P@n84UcY|n@j1&VHw>7<`@I_K!${*%X(f6WLx zgCfI}HF6C!{ANU}dLtSrOGY@C!@fgE@8=z)vmDBVv9Z>8I*`uok?vFl}BWqOKN-3U0IBD0j}((Bx8Sx zr_~&BL-4b)S=mMVT4qzHp|0FB35Rt<1RH+&*67o+*E^P$;H%*%t=P^gO&>8&M;L6=2gFqu#&Hz)k4lcD%qO~%1Qv2r2f zloFoQDXEH7or7B?VArpwX|iohO}1TAO`2@mZfD!r*_tNXw(Y5Q+}XA}eeZj|>pJJ3 zSkHRaTEF{d`+ctU<$6~OigB#@mB58GxJ4jgydVRnfN|7Kvi7E;59f*DIep~5w5$e_ zz&33Eh%y#-CjY2!8xKCJ!-TYOs!Zc4KP6Sr99|Afjkta+43Vu5`)EK_gVHDnf)?lM zQrTomI>%N!Tp- z4^W5L_=VG!Z59LL>%!TVgbQJA{^F1G3?5bH-Uj_jHKZhbd(l{}iPNuG{3h>ORJ7V% z?qcX9FQYT>{dDY_gquJ^n`8v>Uq?K}?pyp$a{G=_5>&v|kRjS!R^dcr+%PRMORe(} zqlC|!0>;}A=@mr4!w#EAVJ)aA!@Tp zq?g6d=hZ!ig`haU+PM)YIArX&qvGm%qvc$TA zP$JR$)W~w|s1SlcC-j`3At_c`B|F^1%(mrl7j z8aRAPrso=diuzan&YwPCjsB>KCxOm=!4W8#Xmpi1-e@ax|8)+P7|pP-$qoh$*u7;f z#L-|1ImGl~g4N{$`Gii{-xr2sG#LC&^7~c0JPYO&im~uf*u^g|q#pxTN!a;c3Bf!! zKveR)B(q4cd6cPMk>LUoQr84S-^gJ}Ge^P-QZO4CM(KJIztgCR9T!=!d)<#z(QN-1 zjEOg3HV+4u*%(v9X#N@Rxa^n&Q(9hLsG6beM=a!E%?${PV}`KZ9FXsSZ8xEyim^=f{dro>?DLBm@IqTv0A865fN^zaL9+ zERVype2`n2yEgMHYU|et>vi2pAY(p!2U4LnrN+CR{lV^JM1V<3lH-C$;Btmie*(@P z!yX?46K(DuTlo4gLOB}a%G=wX$uRyy>-pc3OAKL9jBRaLl2O0#FMuE;(RUSx*ROg= z`Bk^CtihRYzYC=VZ=Wv{25F*AufFHKcj|AXKEue9>e!a20LX1y*L3ns_mNh|mW!NNv(C z7XvG{!WS6F;zFij3FJGFgfGXZ%G1QBmo!Sy1yVWv2inZ;7^p-j+!LTiQ|$Y4dBcU! zl7ikFt5}B0&UnNe~f01EdQWdn?HLM}}Kboig&h>_aa2Q2P5PC0%0vFO_d| zrbie$cv{7efK@QnCuCn$=`zad0bmW8^nyr+LlWRC0d$ z|0oAj`Gg}F+KIhz4|WehPO%C*Eh&27AqIKYP zfl3+`oc~p7@bwrVjkoNyLq`C(&Z&>XwQ=($C7NgWcWq3>#FvC?)fuQcxoW1!yyX08 zhJ_cEM0m<3IJzU_rm7Oq*3Z}+0=M#pW;3Yv9Q~|mLlE0ggkCT z)&J)$WC%iZqH-!Zrix3q&a%~9ZvcP;1tTthWm|vg~K$S z!hXA@>_)`=yCqbYwN9qA%hz+z&Via0Vhw;Naj|Q>gUY0jO1Q-YqNv%j@~$+ww8FXe zk(Aq653zU9pVzRjindl-MbPh`1o0xKa$_~VHgaDvh7NH>?o0ert9Jq^k}=CroHW=9 zDUX94eRAFh;%zjFa5V#cSQFH^cZdLFBqf}*$f7a>GTr~OF5bVLXI8wD)v>1E2OVMW zm>L(~iAmEIX80}m8ce$WaOuHJjwe%!>Fks*_O*G5IooNK#iMzPw`3WzdBq5aYArXD z39dumy^5HW`j%oNKve?Un{pV8iWU0@IujVcR^XT*nGLa@9&Z`$;yGiMBdDC}9u!F9 z)=*E?-`oiM8SE&>&nYigsyoH>kk!tG9v+iKqcHUJWmwGuowXR@qSS4|mfxA4KoCF~ zVbz!HZWe~IREU7@5L9*J?UPDHYL0BFFb%)Y-;*u7qS*EpXa8FJS#H%cAJ|q08ZtUG z7E#YGK~`2r6|nPnY@yrz(Nfl3+V>?qJ!!@(g4i&Ak!Q*V9yw zq*ZGdu1qAWw*$dqlxN>7n4_FkRc!B@0q6J!QWiQRQK?Cub-8cn}RS5i83rkMT&c}y0lPqkbj5A$YHcuyrg!uZ%c{7 zLv;h6tfFzmFq@m?f4bIL!O%tc(%6M`E!d~@5-TYFa>Eclkg1nu&x#%ckIjY^(y zVor535#~y(SM<44ku|RUNNoKpz$$ZE)O@`C|LJ`&KdF4>^_eoT)Lgyw-*$%wjB=%7 zSQlEgqDxtuEAxg!i=EpCU&rD|edEU;b^$lAju|DE8x$g}tB+ zjngj$x60vPt+g8rx3e%07Dh&>$HdyN1z0I4^;ulex*5U+@aVJ-a|h9FFyQWg#X=R8 z2C=Pp2mbmT{wz!RCMAvLE4|q2wfv<$=+Q2iV&;VR_)MncO-qyT#}fIprUF4}S9)H)gkb&0fWhm~KW3!#jC@(gk&*7YJe>k2Z(u z1XCeDPn}XJ)^$9oG}gciJF7_u(Xx;B^U7R$*Z`j%&$Q1H<`^r^y??Kz{S?TGxTt>z zv-l#`p~lU^ZUM_rAmWB}u7c@iO=SY||rPnejVKvcaV%73ZMBdea2 z2JuZy&tZ-=(AEra{Tr9+*-(}aF`eH>@Oi8W38k>!Y=PSqa4)KF_Mee@%FohNomsA~Xr)C-Br>#NRvwCi zXF{ngQ@Jt&H{54)ZCXGI*2PNGWVprXPvvJqusPOLZC~=@{ncKJ?r+c!V1sEnFOZcH zIS!Y0wB(>}a8AC{@aq*7UPEB?RF$*;|L$P^XCbL9vX1&srtW$Dsc}DUdN>{p+aU{K! z_G6(ZEmYByG)cFR$_R|lOD_;l4)J@5z^2AwMzm}X~$1F?kqmTqkUa{$v9PShU zZg+KW;9m~*Xjg5UfQlR0Mz(K|7BnbV`$!~FY{drO<#3`WpR!FvEZ2doJX=KgQI#Zil$iy=K>DAX@ih z%bFWI?~DHWEt`>BYR>7RYZtX`u)toI?0J!IKUtEF-ZuV&z3yL<UkwKW2(ED zq6Wo)VnvJS1Ci3uR&a0vze-{5TXBvRfD)cUVaK8HKu_JVhDc@ZI|zmSndvr(j;$mP zBF6sa0h#`%srb|rRv5Zh$0ch4;SUkszWOOO?TtAea`v%V%O)hH@%h+I(A^fpp0Y$! zlskr1OH=+8Vd{G@YEuw_c{=uVI3i7ak;6j8^It`Z8p7Z{l;10DQ53Fe8U<>hx*84r z;~2W3jt-F_-kJc(>~~s&;DjG~>w%JT6#Bz@I|imak?iZ1CRg#CNjbg+ z_!cZhjxYekc&h>>Te%Zd z7$E9q+(u-oc0oP|8Ni@37EK62(6z7rbG5k91rxh~UY7;>NiE|^gn(N)H!t^G*^++^ zH3_>kGT@hegG&4siL!aPUTpb#Un$ft zA>@eG{;M!BGcxFPB#qRwq`3enNLakGEiy0Y31f`$RQ+e{##Nw0-{)llGaf z>&n^8p-n~ekt=AYhiXSEb{Ub4vhfJGQ+Ck_qu=s?_t;bZ(0{sidHDW$0q5lxokuR@ zzk`y-CY51aHop8n*8-Q-2uX6+bg`{GaAF8B91%o8^0>InQ3iRfVdf;|B6NlSC$P-6h|JvzBza%>pvr>B+2gc=X5a@x=@17<0c40n zxj%e(!}3whF5bh0?!us56~5(&j$3ezDx`Fw7PAuUkj@WXV9K}Bc;}5Qc+r_mD{+4R zL27I-N(!H=`h9RK_g~zmSudlD3#UxwcSMxfHVr>u%eep+AxtlVu@Pe#Y!5Ko0NZv^x57O{Y)*Rw$ z3(H#0o!*RS1|0L?x$A(oe3mo*?TkjW(bX}QJUl~%Q@HDwQBtV69%XXUzmuk0*#*hXQ-3Y6Y!0gKK>?0{vUWAsI*@+y;z6fO)QCWygp*!;*FmGwvYX|xf? zwPFA7{;JgUO=hQu5@U`h&z{ zL#}GG#tRJ%MI#K4<~Y=K5_Fil9z(!na<=g5B6wBVrEjuf04z`LD%+Yu)-LLz(eLWG+GKHl}Gmu7SCJ zvNeaO-|9ZgW@GEd`y=6we}xCB4slWFwP&9Mg5A|E`j`!WC=gu;BnUsjDYKwoRwEJE zcEjFGz0y^+cE*ThKJ|LM*y%W(3GB&@TUYBvU#&L>Ib}QV?zUM2h7UR2$JEFl51@zY zz`ke~uU9r5+oDXpQ`X0P+bnCI=MN71c2t{}3=*}Rc|J=#j~6I!@T(nLy6*efJ~A!D zdCU!GhVF0i?M9x(j6*5lsLc0kx~#W#`OWL@Zo+D>jj1%YO)5Dl3m`LMMOY_KDFnhYF<7TpB zq?1J;#nV=^dbD{NwZ$xDu2|i=X^RSmtQ#6)ft(sW8;MioYB&7kvGKz#$dqL@QskYP)pOWQ!0gb^_!jtie-CSW-Dy!^k5mm z`jlqR8jSF3FDvdu&V5fRRLc`4?7g~*RMie{G=GTYobA!{Qj<${mKfG;CmcHv_~M%i zM{)5Y2}YQM9~0N;=ZF3(vSttf!Vp@x`-MXJ@MSc%ZC)ISF+!e6tA+8s$g zQ0oXanNTk9;}0tbfRx+_(_H|K|C3_m)l_G*_jO@bCU6#usiCt6CMccl$qNy1^Y^(Z zX-qxxMF~2Te#oH3spqcAP8>OtH0j(ViZ`UdB!7^ngm|WJBVgqT&yDveIusCT|GTU4 zZJ>9rzG^=(o`o|ep4QTEt}fO(BXoAUDYae;M1-cv-3f25-urUpdiBPAt}_L}c@D;z zsspru@%0AGak@2T)wnl?B45WY5-W%17Iw0UyZ2TCWDKMpt#|!L5U(L8-}IE>6^Buw zRoDkj_!A5*w#aO_cB+8Jr(Hc|g-hGVtBd`_u^WWa)t%7IC$%qhR}a?MK}{#36ltS`YEt)EPiv(}OTG?d$1~xnH@nE+adc@5?W?snn}_ zl0+o9uqBqUNo@5K(R8ry$V;>S(Hd*L)L$GWmL}&^X??|lpIkzZMex{5w7S>_p#Y&*< zz&^|QV9?y?s&6a!X9QSbOQpmZ?;KXwQ&c=Mr0uwX?`q9NN=I+9fk04zr(Dwsx~LP- zK}~m9NZfna1VKsyVa45lz z(3pJJcT5)%)u96IOqV^$@4T+VWE5A1Y85Sgc{-+u0Q7LgOdX!d)xvxZMWcATgkFNu ztkqf|Du!zLX04(|{@=3Kgwsij*+y}&Tu1asZA6lZoWZ=kBLx*vgJ&Rhgn=bOHZM80 zI5K}8^N*VHs1Z*7cx90J4+*#x0z6{(SCf;4NC$&QayN-|hpZRi#<{yTXF5wD5tkN> zU&oVhgSa@~PCtNT3eShKN0@0qOCZ7&q^#^KK1b<8=EeWpf#V5`X|2Y2vCh}MzJBt3 z`E1bl3vsAR#bY-AfCz1#=jpd78L6%4*W}?kC2uocZDNOCepmCpv>*#<@+HGz&CI?) z|2hH8)DH_y!*hl#yX-tcVx6YBY{|91B|<6()n{yCOhR+9Oe%U#Ytxu@E9d`i6w3JC z#SBg8PFv1k-`(%-G<;{C)0Pcq$4;t-kjS-n#9$_R8T4DAmlzFg+U%$dyjiNcd=WE= z>N@#yfFuKr2Orp)-vSAaerxk=M}ck5|sGGcPmQEvVA7IJU z4`O3%!*>H#$F8FY;ZJXzdS>0{*IyoF@_Jf!o&h$U^n!~o*wrbV7l`}@rsen$y1Vz~ z=t**-pjHK;<$1S9LAJhae0GHDzMs;CwQ3Stv4flH4+gVyFG9iF1YPDenj06K*Ka~^ zdwVTc8w+Vo8`z*TKsKw8-N|XZ4}1d;GLN@tmgiXOK%0O^hc}Dw&HOyz zywGo0puE_ybJDe^OJ0C5R{tN(_*?2`Imrw1`O3!~F^usO*f%`Z_low^`!&LS=&gA3 z4BUbk!gPK?;zcyIz8T>@-<}h}5Js<0@@;zMi}sl-GqTrEmxhK@m%fVnco?%=eRd5v zFKj1*udQv2cnPEzo$Gzr4OkGg?}w9LDbcYVM$rp$`gm~GaetC^|8i4v_b##N&q?_u zc$tqllFH`6E6ept|LQdReju9oHDSTG{JaIzJm)@2ZXFCPtmFZ?XA1DS_)*`3sJq+k z7Z?t9#&h3<=vN<-x!-HfnDd>Ju-@zN_0~VAyiXFrL$+STVLK=-BtozMP#iA0hIcr^ z>>`dJ%SYNA?-fZ%9mLc zp`6W^USg%uav7ro+pJ;gZ^#Qea zlB4-ZBv|aMEJ&QV5tC?Iz;E)a86BjpFUwq+OO(i_2$3>hyf$jhiqQA>>ROOe+ecsf zyrgKF*yUn7FjwOnwTD=(Y$>-!#HXd}5M*18f{^Z=kU8lMGl!K+8L`{LT~=CMe{|E3 z!nWcOl&(S@B0iDl<^(k|UDY0E7C;w7C`&Ku!~8S$)_gqdDO z$8Yi_t{@6t)nh6kRhz~QotLF?(<8o%_ORfSC>S#??l*=Yw-P}_b{xs1@PHgYcOM#u zb}-hXiobjs{JoxX6d3bn5VlZ0Og4LN-{1l+Vhf^M9>u&v3z)J|T@tQZj#C@`5#**_ zN72C*-#32`;&xp(VceIYbLD9ib{$l8`{v&uHR?;I9?UeeUo+l~I=ExS>0}z-P~Z-ik^YmA44P6=EdFJ}=Y7gQ3=OW5n7XpsY z9^2y<*v#+)rxTf~>k60Ob`{29YczMza;Zw>yWx2CGm9MWlQ;eHIWyr)5!X&5(;5of z`#ogVZE}=DsxYtX`o(2xtNak)!kt8p-_dF9R)}hg9NY@6EpYM6dsAp5AoaWr^C0(H zsKvSTqC52!4J>%H+G1m3-?0e>M`HkeC|&Vhkh<>EKYEkLmDjm~&vI|;JAy&?JKUlR-*3oZ z4}3eG7cXvWfb1!9tnX9u^!BiyJ_-!cooB}r((q=f_F9xv*Q3WPIHp|qhB$^ix0x>` z=f)??=SE}L!;wSoap(!Pvh@`3npy9srlW3lgx zsP=)l*YRbPdwENE2Wb3psk!4MFgjh#bTDt{>V|i4@q=gFTEAM`k?(;U7Qkq~Apwk; zcg2nqmnqdgH|cMe=kh_KoV~$!lLGbdbWl6 zZ!`JpXWdH#UH$Nysz1m5lBT}}65}6U&YTiTxq}LRsnjX`wln<12S|()Cl;rYnlDP& ze;j4E+2#324p19c3F~6v>!R591P_HWyO?ScLB5t}>Yz5=Xis4j<=r&#+E!|No#&)= z>@_kMsoo+`lPzl>SD$CIYVB7Gz`(omSP6(2SM^D@?`OQuGApJj2|j+Wf;D%oRNL2L zMw$~zHhV*DOYSpz5FV*5sT5Tv(YAe@rZ#;hCzQsI-w5hAk#iD+F}7D)Y(u_;=Z43X zcbkv{DZ-^bZX$8;2DzotuPfuc-{{`EZE{9UopHa5ozJ71JKU1t0y->Ul4a!;g0#vW zXpfX$U7i#jxvnwKIN3aw$n*%}Xq{OiHgiibucK97KqgcjDZeHRyN<_z%KaV6C6}HkL)%b|A+@ztE>2SMi|n)a^x=RA_X`6 zSmv^d#Ey|_j?QbKj%HUXcqR5@8UrVUpF~#s8XyAh)B5(2PR$J*Ass>d5m(H`E!~L- zk+%ge7%8d#6ratcrv=fjn;pbhgE!9NpI4#e&g3PNd@gdxE_5o(R!Z+kI**;u0MCQA zIkWu?S=Fk(6MuI4JlQK@-MpH{#T%^4nGQ*;emN8R^f#T7`_bO6i zkt(CX4?r_7B^Yj?Gi_R4b+erX)Bt^*&2zZdZad$G@&Rh4%2Ne2kfR5a`_w}qDbDj; z1oJfBslUc}QN}n3Dx&TdgS7lDjvTvuPS1Hew}I@U@_8ekxeL&@45o>YghCEsG*0Ho zh8xk?*i(37tx);v(iiV^Uq0ojdyMm?s3l^pgg3^ z>AL>JeX`Q({@UI74d$YQ2ivAe;GXx@l>7X!*zm!H5AD%c$MI7uVsUV=xfdn?y=vD) z(*)WxAiT4e@9D6f?t5B_p{ZIFkL|^HSVcdX%7~FAb}^uObCdxe!GY|z2xW3xAzXPa znCNv{ak)0O3f`Oab3?|>1c-+_Zm&S5QBWE+3+L|Fiqk_?<4nCFsZ8Y~`!fycX&gSd z?EFaeX48EWmZGNV(}EYAHt)BoTO)7ShV@Vgwfzv&!{fQNJa&8+ggUhy2$=|BJe5(M zxnA6^_?>v>eit|+Ph;@J*>4X}?nC4H{=?@js0f_v*s(m@h1|~Ld{^aBRY%-AymyT+ zPM5C|O#Q7wyg1!_HxiHQ4WgHSi*19h*(dUj(m1SnL-}mIR!*1GIE*nX5%rtb?hHD1 zLF(HcFm}s;b;2^);~z{g9vd%awFVGt4W(OW{UiOpH|qV22INyNTYI$VwMjEf7?w&>%fXR~b8B4JhOFxYeUpR)~vZ3D_zNd2^3 zcSAvVHi<(RCkR)<%qXt(Hn!9QQk;buo~`j!g&wmd4aZT!zpI4I&jaBrfBX-X$@d-nxGA<}t6Sop6a{g-4CBwMaYQs{5PS2Ax885oQW0I}NVrh8QG9G3C4{xmw+q4L>lP&_~RoZkKG&@ACfD>`;B z9gb7HiZ~~3ZCP_I^Yoy{#Iu!;_&XEW|MIU_r8hGvS4I=FdUSQD(VcGkZAnwWWQ=f@ zhvRU&{#NJ6MkxX-4jbBSE{(2%}xH2R3ejsY7U*68z zUZvP!gsX>1yi5Cv9+mtz&Q!x5t<)6{f5Zv%2xsMHov2ap@I{{_Ptt-o*~gZ*X;xEc z{OnZ2x9Roci0>$U%1%Xod+fb=%zo(^V~>xwFEcbr4FxMx)x?-!Y3u55ZvWB^n2qns zoFIc;U|<bk;~0)?I?oegcH{4IK?fM94gXHFE|g*U9Unxn@L zRR;w1D5@D0mqf^aY*a_arXtut3@!;@)E8si{$KH8>Yzt)HC^s7h&=wKj`>CLEW&== zXYL~A$+{V{yxG*HsC3m}G080qTFTrIIKgMdQQ2FK!GtuK?&A@m0oYm|aC2 zCc(&2i+qsk`d%nQ2RcFJ7df$K&HB~Kbx;%@9H zdqaBfA=la27}3mA|Fiv^m_e>}lnp!GRGT50olVQ+XLFMb9`Wi&-=7kF!_r~vzt`#> zk)zjrsRZwuZjfYmG#ZTv3Bbyyb{PxGBv__hrgx$46Za<>Ex|50XZ|rC4{j|-Q=Ipp zzc0_MT7LS39*?<~@xc63FY}8?u2UdGb$ZjlBgUbDU223v#NZ&^Z{5!C|UUhJRwUQe@x zwj=n6gP$N71S(SMtDg@$GP#xr^FSE^>1@2n;|n2)9*!&jMIQ>0RgA8Yr@Gosn$OXg zbhq?Bu1}L#z&Es}f85%?$|1t@n&+7qO`B26tMWnrAVP->$z?)w+0te2PiGFlDL2<( zwb$vFdFdDBIBJ8fH|8)+9GAA9Q|5zm$$dFMJwi+l6d+S)XN533hLg2BJj(HF#ul?8 z$0YtCMxVEU58<+pV`H<>#)nYaxiI|#ktQ?*O@L<{6eGO<7Rd;r4MO4^$Q!BJk3rou z2;vZCnM_L0EM|M)ZD(TTbc@ZYJnI4JpP(ZlmNw>1tH9BydWXA6+2#lY);-RK{QLEX zN=(XmR62&!vg<8B{MM1eM|T=j`Gy3agnDz?gXx<;5m2@-399&pPoZ+Gw&;cE!%hsm zQE};2^`tdybrr##@uSodvOJB?%c+xcG@ZXOA@8sCEVdj z(^UbPc1*0sZ4%LxBVN77M*ucI*&c^nl;*xhiBq zmc`kZTPS|GkfPSg^eevDj4k(`YkUv9Ypm9M{5}{|G$%Igumm5E@H&1=NG&^|K=SkS z)g6>@a4b8L)1t+#q)!JPB0L`M%2hh|l?R_ObuT}^lU?pG)qqdj zAexAmFv7`&+YjWAd5Nnx{nsxCwjIhc@-R}?=X&m=Cn#daPWkbg#~oXR51ToC){6k? zDjm(!Dg2`#32VlS&UOts+};|5oJCxBxT^MhIYj$s70j;YFwbkcXl<|fjjjjc23Iil ziOwgw>TQqMeLr7c1Sgt043`k@6~3M*nO0M znCnj>z4BCsMG&$FWiioz)8sqCyqS8+fAH6=5zPP_qzwsDBsMBOP}V*!t=f-t-8k>-~l08}euNiZoNyJq^?SE)ko3jZErn7+^C5 zOi~Nt&*WDkfKw)nU^Q8Nlyqn|kVl7a8Tlv-wsa*4%8Wvv7<=Tf|2O)o`UG`dOo7!t z8agg7SF-}!;X`U^eY~a|d`3;ME;W=a(!0V=WJfBvUn^p2f-F5~?0{PXQQ+8BbQibZ zlcmU(m}lt}I>1h!Sb(fb5!Y5cI!MG#uS)+$TO)jXPm0B>==siK7#XX#yW6@?G)^>{ z?X_9jK0^_s%Exi^x$!agRiFFrxz8T6j6Go~xbM@D@EvDqmj+sQS!#%-4TAC03}gnO zubW?5^XWgAF9lzb0ZUxK+8TyC&ik369EtR`|ESJTnZ}1)l~)|J2(3;IDC3 z57^0>-Z`@-9A`$>QLCFrm%-~q$Ph&)pb znckQh>(HH067vK>WmX1H@`di22(n4X@7n_tNk7s<^wxAU)37*O7;}E(efVcIs5cUe zZtTEZ;6$_KdW_DnySJ6Is{3`1iTkvse~dq>0|Eaz$k3+NLK_k6%;4*E7K6KCrr2s- z;lKEaNqX^U-dX|cMi8Xf1Bse4w=$-o5o!${_0|9%)Qj4FJ{9_UCx%1U?GDql2Nf{^ z%=Yz@%rCvxfIHj$a@h{drH^y=%F|D52WT#I>98@ zsnf_>M(kUzAGa%R7n=FUt0O&^$JDxw@`RQr)p>tgz|`G=!JUAc5nkxpAMaOWoy+Wb zhfh7^W=z<0pMAFvZIw>O(e$n=k^V&sABv7#`-#aZA^z8ffzi&9qzZiL#bmN7> z`j(~Jx!Q)-2NxvtC7p~^O@98;pQ9*c9npO*wY5nwtTBoC?}RaikrG!b@_rb{AKyJ0 zvyprXrEA>V3=XyP$Esl=kD(Sr9{^Cid3SQ1Gq|;NVxqT#Ezq{4dD0Blp7El&YeMBj zC7B&xXWNBA%liBm71!boeNshDglSJL*=XScXogjcSSjbE2)Tq;0GYLaf)?OH52zQ2 zGFN$^tlmHXuknDwE6X`3XKW}%BQG7}1xnq66?TAgLjf2Zg2iX?+rBfqb<94NrIo6e zGtt{%@j*&TvMYk_f_O5YWd8x_DFHFNk zaa)+)+SBZF;3d@{^I zUD33>3SrcG=NRfFM$p06zkL)`_>m{6_B5MP;Lu{;vrSX2P-%i`Qf<6Yyl()qDbaS< z$$82MPBe{g40OQjVCde46cLmQk6o4Jsd0xSLi<~hsoS(BwXTWF9*cH)~CJt$i=ouv}G z9#04ja)v&mGcB#Ing0y;rvDp!^KyWy>bB-N*PI17R1glY{6~MhTxWVrpZS~m(@4%} zafnl7+x}Uk08qYf2c|^D%ZoFKuaWC!t1;UdQNBTZTzbK0OIP^5`&I7Sy(c?m%H7c< zANy8ojt4{<-plEa&j;Q97dq|;W7GCAGAEmwk*oF{P!G;oH2tf@(NuO$BvS%=d@YyN zQGgSMrLEYH2M+JO_JghCFfF31w6M;c4kk0bD`W4oV!r{G=C#N{zs@h<_h+6K`%J2> zOu(lM6q%+?Qv0hh_AsBK&j#f_b%#$djs0 zA~yz2h@4uw9EZyx4ez0)t9-e1`>s1P9hWPVtA*T+@E8 z`u(w0X%RlT9XRk{l*u*tRYr{vp|@Kz{~bHV9IT(kHZY^VdOrxe}}W3-~iK| zcdzwszx=YCD`Kl@6(zBN-jPV<^Kn_ZU&i(SjJe9Pr zSA3A~wL1fEwu2v`7~8kh);#-7xnGi)c9L@SKj(RP)ZL<-fly(DF*p~k@ZGP^G%b&e z#pEk)Z}|F8(;ov%zD{n7y~EP)kzidugjl})J#P0!j>k9f!8RO|5OnNnL34duuH(Hj zNvEOF|DCdk{2Wd8T9OBu=$25`f8l)aWhBZ^m6W`&_B;Y?J~w6g@_b;cll5JBFN`|DvXVQPCr7Z@Nk9YUw+)I5A|*M2ulOXh zp|9_j{$0XSL=8WKc@vTrS;v=V3lK>wb!&)ccoRbcIR0oJdN?CL(pg6dw` zLc=@NoHhQJo663rk)`o&QvZVYps$vxe9v^CymRWDa45yO2Wl9e>S?{yUAQD513CGT zr_GqA{sAAq^j_jK*gY^V{J~#ZRO?2}3?{^FMcpARojXcotn#Re0;5dXT~L*uVg#+> zk(Yk^r(3y;&-!q?QqVZ57xowBkKlzeR2j*H{aA-Y!5js@O-fTHBQTZysLnp@1$$RqzS`!^iK=Z@@ZCelQD!)@X>v1U1;56e&HozSmB znU3G^MPP^yUAQ=d^n+h*o;ds-*5CsQ=V1ApOevMszgLzrin{%oRn4NKved5MyGbZ< z83H_^v4*>66z}PAIaoUTFJE;{ zffgezbwbp6m$I&grc7)@8g$8ZHv?5oO#5iGI+_*}HT1bJ zkBAQR|8}RhH_c>G9cB>@pvqSFvg1dv#&~yrVg0pn9vJ<-j|c_06QH{DCoj*j&S`j# zWo;1v+wovJ-Mix7XUWgYt99*uG*_t6<^7bT3pJ6>1|ur^<`)zrZnoLmof9Mk?nH$V zJR!9aP{!pBUM{!q@#yY`IyrU0MP3KwxD|fRyPMjLSL3y>!ft$lY}35eJJcGXG4~$C zKwca32_jmDss0L6zkVh^041YlD-m(?%|6JnSxn;~XB^P0X}*1`{|?7hrR6`|wMory zJ9}CukDuNR>8i~gO5p3oImLg&|GIDgV6ez2Kdi{a{RKfh8+F}j(4)oV>E8WS4`EAB zUS1iR2`^NCgE!Chp!5aInzs0S zTAc4FKJ%cQ+0bK`CKhioEDv2mJ6ZG7Jy6XRu|6dA6r3w|&7buZU@G`RrsMm<+~l(z zb+t`p7lM~`aCS}L8-!4u9wCtX8L2D&97$l?g;*|qAggci1u{GUoKwIytF|x`N0*1G z-H)17vHCk>FZ)Ih{jq&c#B3xTkLHha&DBHL62wu(_5z*c(hWYamG zg4?zi%l%PN?{IEk-8*KR12ne*urYR;vk|s{)zUP#R=Mro`j=a7?fv@g8QWmHpBJjH zR)zGV+TD%$pYbHN2IWD#1xLNr+s>*PU2v`&t;!F6FIZE&H}pCVqb}|S>k>Q55<&>E zT5i)-vEnRZml_Ua(85UJwFP2YPukh``I9qn(V2-G|)fqeRXtO(=3P zI;QqevEA_G&XXvNN0P_fWo$WLP;D(7tmp7a@N`0T)mcKoXX;h`RHU8jK60Nn-%Y?Z z2K@)15Yba=o~5}#lMWeH%M=3OK#eIrbLYcoqu^w z_xWY)`GT17je!=Kl?~_cAkrcOk#`Yx+oReg_*Sy$!O`9PjQ=|J)&4h*%J?hMzR!N{ zR(yIWAty-GZ%S(35s8TZXSZ;<%dudZC{pxI0!rw-j?Qp?+{_9Bw2XDLC zcuGu$2P%5JBE&4_#;$SO@Z827M_iv>v0HZ19R6zTaYE5Wd4nst^>@4FjIm&c((*g>(YTT5Z) z=Z*`{|6T(0bmZ^kk8u;rHU1A%?--tG6LpEk?wB1LPi)(^ZQHihv2EK{Y=?5Lm_w4SlhPbL)H3cc%bViUay0 zP<)f@wv606nZZt0H?dn^F?WZTxvhJ&%fk6SN4R=4%S6!O669701#KY{HIdGeVp6918U8oNV#(N^o^GW+{kIL&t0A z*IJRwuYNf>)c1@Db2g)g>@4!G~eX92IQYcTH_spMv}&nnzm5aS^78EN!}?$ngdJZ40s zu7qseBk6Ex1c7$E&rP?+6ns+ilaBwB`JEVRJUgYvdyr*~iRYQeNuymtnSl3OF}on- zCH<8BP4TXgvZ2Si-_=4l$l^*acZ2XaQ=Ney{C`9|vIKZ;pSY7Bq`#Hi@6BE^3@En# z;lT}G7DVuNNUDime8g?B_4o~Dd9Jvc*1}aWit;}@o?nYjN;1!7SRok2~Ty5Eo3zy1oxFyrSk7L7Xvd=H{-B3ilBf|>$ z&Gp1CLv&e4C`5PT6>x<4?8xb3MM4z8Il>q-JhLp6Ip3tNXb3RStC?WDu8fAAZ&;2c zhZkMdC6eb~q_a!f4bg-7{G~C(!l4Htfz_Wk8I-Wg9$5YXoUWv&RR*1U15vHj$bqt zfdX}%rw*GRIVZ<#s)oK?NzVhDglQG0SC3&akK2ye7`>WOmTt zS~HludgB^KJU%!1ToO!8b+N=o{E8~DqM0sWa-gMeJK7<(ctT^Z0pBB(DVW+snFznx zQ+UW21RI(gH;kY?`Ceo`3ky<<$$;IwUSx_C6P^-ht9`sBg27$Mo!0`OUN`zBlSbrx zIXG{q+TmmJW&)_Sk&yZBpUULRJsygfumL_1eFDOHYmEoiqBjF)OoJvEE&rc`>_45$ zc=)?f^&hmM#xU^1JX>fL!PwRxX(#6|yQ}D4X5Mk$q~)!|S|15H(uLyCak!%|P>^Ji zQ2B<4z?{dlhD%o$JCU$@KD0;T(-m+d4Z{@_!+Dae3E9_*cw)UO1`=o~w~DxU6Vnhu z4F!bQShtc2Hq=X~K=?E(hCKf@}*8Ik=9BEVq+rpdzJkh`FCKw@pYvDf9?+)=OwLmTZI*Nx`TiX=W z)HuHqWBn4ENw^(WohBSkv!O*Vk}nR6|qT&a|FThY@>pUsnJ1g z@*3QIt#iBfEJ2!zW|UgmGH)0lHIuw0&A=+p9B=x*sl!x5tH2)?n%zC7slg)X4rI6e z#r8UTq3JL%k2)N&PTa~{I8^>6su{eQ z>vdOz%uIb;>jd9Dds^(>glRn~K8JOs)z9QZ9qBV8%lKKlRA}e~xcw;Zrglwa0O3tOw<%tr_KED55F(r7Y+; zuP9*75OIK8G?_ns4)^Dr4Ex*5&-cikkf;howIt8@TZU$@c9F3P;@5B`K$EeJp9RYI zN_(Hc{g`jT2?@%B603RmtIhbJZ;=msJohQbws{_IY;H1!)ANtu@_3*g-ZFJc+@d|q z-A`wxNiTJH`aO7po!4osgPL7b%&+0s)X?v-yrIlE7jx=$2-B1#VLI)YYH55%S_`hy z2YZ(5y>WqOxg-KMV~OPWhRjsr9M$m zhoM>Y9!4MC;Vz*i42Gkc%9va?6OT2|%=RxkwQ0gdG0F%t6%yrZz%+q+0bdoZwx@vB zq%chb<=hri=$$H7ctLm12h`+I%=OWzPwDp$c_2crsAoQnpH5x03!QD@9B(dxp##K8 z#~>B#GfYqh{dB@`U78^gqNT0`%=oVuwj8*zzc_yA!2Nku129?jn|BfSz~y_Y ziJ5NbG~Ph9YK=2vm2ZO13o&v#j_RoMYizF7rVM9+tQ^#s6c(7Zl(OG_w7DBKZ9H(F&B9hy zU~|Wt>-&8*w=utc!?`03zf4gtOy@|c=$F@p9l=+VuUz0`!aui&n?rV$ydo9U>l+lm zZ~WM8^98uXx#AnDGLH7*8v4o|SPa~buS##zrl}>|GDnGZQ+KIBE|u?tN)t^)3Y#2~ zNk;W(v?0}p9e`fJL5JI$j)jVR7LJ!y`_q7wpX<63luiV3EU5!CWeA1PRHVjFr<8yL ziTU`At5BG%9@=K#YT98JX0NPoeUFa8OZLVuY-oUYzG14iTtiB?scLZPAj#1j*v+~!=)Cc`3^ea`@hnDg(JwJt0zv(RQjK#1;xY*bPJU^ zv>q_PY@-C}_hTo};Yc|8TNurW**@m0=B5Eqna~to4Wm?A7TE1TC86iV#YQK`ftd4~ zGK9V`Q|WZWic@|8HF;|2^LRj1Kb@^jig?1r%r@M5f*(DZKXHRy{Np@wjEY4JdZEg%3q|H%4u`q9(>SS9~4(EFYs{u!EOVKV4faydj}SmhpGTg$uP zkS_-ZJR)m-kSv?y;$0--89p!E{B%w1w6Wu6A=Ixnv?WgdosDXDCozq~Ebz>5C`Hq9 z$Z zoAO_jxaE5Y9mc?#tBl*f>mOL2+i8dN2sPS1`7Zfg8aEO3WIAcIT4|-f;%qM=7_no2 z3^FnO@kAg#JhI5aArhd-l%n_yANZ3%oQy*tVvY?HiUaP2j3#VrqDX7Zxw*&ue*?dM`pio3qiyZwz_{ImSvaUrGPTQer(#t3iiU)BlsLX` znQN|Eg!ZN!_0>{~3we!~}t7;P*}A8LpYS1--86v(G7ma4OF-K&l_+ z5#yqMM2h1UgPSl~>0twFOK!IRA+*nzA>qdFmdX3562JHO_+?HZ;8v;2fpE@m?``#L zaCW!g2m6}gKQ_z%Uh*~vTmsUuSrt3R?dx`C8aCe|%nUoR!Zy)-SuVc>+&6XV$3Bhp zX{`_~+9p<<>2IN~_AvrF9FyZM0s04Ww>*|mRpG4D*lWj~@5kCb%)_Uq)y_2$AEpIa zOB<8h&uChJH;$$pcO*qZ-=YK6`Mz1F{^HSHAIkRQd?j9Ms9G;eq=3u$ z_0wz|miFS@>#SC?^OxVtxo23`Hi;5A7O{P_G-EToxyPRDP3%AV3}q#r*wl?H|6b|4 zXlde>8@dZ=66Smxc<6kQiEQ+Eyp=4^5#eNj_wM~veD`LHSYpzCJ-Chi5MMVMm|Yk&SC<~e1kK3GTLBPKcHT*r`t0f)r04|fes~6s{qp!X} zQSRx?xVjA1S4Dk88 zj-@t+U|!Nlkj9thfz-w^I|sq7;eb2nHY(!!y6SP6dmSaFa2i9S3il&*FsR;5RT&O4 z-oQb%4aZSFxd++Hu3Ixw(?#C~AES zwtvw4*~2WqB%w{5Q!Q&ttstk&v&mY!etT#6sWkA`eO0Qfz1i$Cgm`4_EUR4csD+Q} znJVz{LrnzQjjYwS4ATlvRC}ilw{LmdfpJZ#bbeJEH-1viPChLr@QWb{2tCfB36~Gc zd4EzD&hmS;A)PS$ox$Jy_wccI(C)PWpEI~_m#5P|j`@<^m(2_vRWsf|Z>CqBelaiH z*iwYuH~Hz@APsrh8G(HeP8op8^eFKrA6w>M8jdeN=&A+$92{C3HDG(;eUBs?&!@Dw z_Hjj87GbG>;mT;_^K&-bk`sSofo#K0i-b5g5^CBT2FqSWg^POQg8j_Ikh!a_qx>TDkA z5?-b_H8-mpN4=7{@%HnP&n9q2T@L7SJ1Uix_?)SCVjSp`(14m964aW#@bKY&a%y0m zqdlsMJ|Nk=L88ujaE-D$ajugN^^S;v_><{f$lk|>^5vT z8iFUufhtwJ&kBctbH@;d-A^*bEjq=i6y}^ewK8G=(B+90@mUam)(5OV0E_cK z{(Qex+VHurPwA$;;~jGxGDrZL2^(b--v%JW)z9?VJBfz`lRV&lAY19GQSOP)kjZoj zw0>FyaWBi&Faw2D=oar%qH2CpgMq3u`>FC&mJwgpfAnwDc{>vlb>A(iv?g2`|IG-t za~m8Wv1w5{_gkm=*%_Bx-(pU#=GOVmzXX*I8b(=8d3?Qb#yIceP2wuiODG16x$YMC z$kpF3d;4#xV=M3vj(Ib><-9+9*t#BAUPQs>$*Z^4ar8{8?PgoqnODT3ezr7|M9Wc% zP(;--yaKwLL&;o3zOQ&Az&{~73uLg8kAvwm@8X99h>_}b1TIx8?MSijmo6yT>FU(v zuP^=!$@1ANdIK*|_aydOgPw%ikmJW<@@{!&jzN3xc=zkje)#uhldj~?o@qs8{%d}x z5X|rcVjEmDC0M4I!h2E4O&;j zeMigoMf~T~&?HnD<6oH4&A_2V%r*=iZbHYWc6Vj`4qrp8tTNFBX z!Zq0S8Ab;IOAROe4?#Z{4{-zE-R;K(pPLc|et+@uLv@OIc9IUv0j?Oe2rBuqDBp$1 zWeg&7C|yFAA^U^ufTzr|?(|tjL z91m)$f7?;0hH(Y-Rr5`sX4)!U+Iz;h`nDCzX5-0?w>))OWxD0{R-=W*cE5^eW_{mE z581ssiET1jJoWe!6>YsrS8;JjGIFiUTBhi$3%)oE@CFoaKc z4J;1N&wNTY18^AmZa|`IRB(9?;6ReW_xTsgFw)5|rv8UCu62+J01#5i3@jd)|S2o`EG!JzL6s z)=LLV0e&fG@Yepa#>2IOG4fhJkMzS<&HbmIwne_bRILg|%^=|D@dH{Cx&Y^52j8W! zK1=pO2_i4p6+@S@dLUHTt9TaBMJm*J>a2@=4hP5#202BpfETh-z)146-Fv;SLo3qg z2O_>76(?MRqfsti^HlO4kDrtXj8|=4Qia$!pz=f8738XjjZ>5sp{Xu%rM@I32+{fl zvqDix?jxH<=whsJN8t~zXOl6%S^wl69bQk1@0=@GSG|w7=YJyG_Pm!m@EbtwM;WL3 zIC{La4#v9!4;(KnnJV75zi>Z3{6h2u zN?-ileL3bN_+KFG{^wlYZb7xU+@1a8ys2xb3?=xw~>w6aMu0w3R~sd_aE$#1z`ptS1EZB8v69qM#y-cbZ-7I%s z0!_F#&@aXpth{ZI4BH!4sd_OCkv9;7j6Nckf5Xz z&_2<>foQSCp&;gDbA3jJ>BYbFu@jNpA;`RVu4h8~F5h0}d<4F!_$YWGY2m+02W|Bg zS$_YEIp;IJb3M@%|IuiBx zP@54RLeawk71llSu10Sj`C!uGVV>U9OP)f0{Kz4&xRg)-L2%UQ11O6a263IFSqNWY zQi)MgtdK8&sAo=*)6SluZ zeNAmKy#Mr=_OT$0uXZhN5xBD;pQ8x$O7TlyvK>wqOm;fmd*8P{;x$o)h;@dS1Ug=L zobS`S%oWZ_wNgJU;duHj!;sg*v|xeSmeT4|_VKQi#{p-oS~~j_FT{^#is91XRLDuu zCa?>=sI0sVDqFeiho{h5wdZd+3~9tC-(8x#%q;v4gAfbqY28yD8Nw803@6@EN4dP) z(2XF;&p5%q(#P7tQ0+9IR7j1rJzuO2)DRwJQXTIlt$Vg-72qXxRTV+ajw6NgG&Ie= zKKv{BLo?XfA#9at1vF)ah=y!krf9U)bxR?+NM(U&p>+^Cusi4RCO*;GHRmjw^x>- z59CDs{57}ohsV~*=9IXGxv*^>$z3hHiF9m8))mv6+ckHoHki9}BXfw#?-v_-N+M+zQ^{s4hw?)La|kqSr{P&F=%n_qXzHkb{e}jL zi*DdZ-+h$mp-~AMV@>v@drP;Qc)R^pffcj`x=#7@QQB}Y*h!w?46AZF0Au#MtJpNf zsY@SHG)%HUw5qNGjpy>>KNmi)MNqO|g+lrs{66-G2(o+l-Ie}5)F4FJqgXh3HW^ut z)T)e%|E92YS2TC9uG;Rn8NLGHExr9mX5+`DdeI`>eWr}C-Bj0bZO?=EZPE{_b@mu{ z?(BNNH9Jqd2;W}`Z-DLdtK`c-c?%jR7u{X&vXE|TnVL^ns((OhgP6_xgFw`*FziC{GAYxv2bnm4H<=^ToWlB zaJH9I2pQ(%jeuC$>7lt!u(RAf%KiB0>yhL?o3>sJtq0N+0F(ccX9haQs{Fy$Fg$lJ zocX2E+xkOT16%`>>QFrUxsK1=>6Bk!s(%w|I`_TlM7VK(#eL-ggz&W&YRO5uA?Z*M zv5+DoygT09ib*}vEr(ZXE)}JZBm}0P1D!|wi0<_gmZ#Kw;Cs!MNupGZlJS_2WBCqt zFvCLd{LEQM(9~BiH85FwYB?yU2khK{LpL@gDDFqR1T;1t7AhN54kgNWxNSOC=^fmd z*mI9y>!L2S!YC}LIhmbCK)4VGu0X2#HML^KfMQ;ix;#r*=b<3B_M=c#;q@Y}IL{%;oNma3x-Sz1RE$FrD!I4}YMuu?ab+_LH%~X) zSKJ`8I#>k;T{$S6)sYDIORl&y$it$DR6W#?b)(+;q)h9sEYGC-^Sf2K+yB9F{&)4; zM07veLW$oy)pfkYrc5xaWS9Bc&gOmy^0=7hat}bbhC?ahhxB4*IHh(~!|zs{vi!UQ zOaZ9KbXSEPRUoL5uSOiew;+_#iyU@Zi6M)}4>jC94+HeGjh%G1{!rh4W0@J2*)E zsKeN0t)Z;|K8{Q53XNE)jY?Nsrix3I2FXxCNXBcJsj&o;`i2Ir^?8(ZkN-3NGCLr= zUq1{$m8qWp_U$pzYBbsxQQT-auj@Gdft7ZMv~W}>EhC9(0ALWyWkY z_WjGX1!5f83^e{}j^;3)x$aF5f>+ZD(8Wp=1CBorhXJBHX~)!Ej6i7G+o4Zc16iH- z-2JtCZ7adhe?#v*$hUg7n2nDVBGC;@Vr=E?GFc;?otYA zs{LUtBDE}su(ImebFiLQf9TeZlw!rmlNQP|lZe`M>N4VkbO~!FQ0&i}p$20wl8p~3 zM;P>RtDonu&GG-BLH3TTIa=Q@VMy`Kj|R1lQEONDlH`QLx`L1l;h>y`7hCN=GbaX? za!LAccvgIdAib%4hZ3V2II>7DbQ6--JT5zDH`*-FV(Kbnhl7npVNPUoGwtLC|M7V>WnNcTT2 zCFuzh0>H={#Qi*Qd9!xjhpT2;e^(9P@|O-{!1X5_8xgkJMp=zcXXSOtprNK>Yyphz zt@2O6tex->liueVJt2o+!|E_p>!Wfdp5Urp3wSoGx<I6JSOPys+HZ`E(YN}d7 zc$r~Z_-sDJ_Ht1<$W4NA6ec+2qI-<6n{@e!a%U1^WOlQhWp=wCelAw$1wemI7AO45 zxqo!pWPG`(td=1FR)rJUn*B&I2)&9#iEzrbb*`m9ClKgsJ;~|{dd}5b*gNKlF;2eK z%lvcguC9(!+fr1+tnR_AT{{esb3Vd(F4~)ra|Unu3c?7~{kua&bjkk60&;{SKKp;$ z;D3$BERJHbGxOh!p_tbD3z1KPsADHYzWIm~-?bCIfFA!Ki$ekqKlz&`6U zUrbdBcM`1Aha?0lWLkez*;QFSp%V-?ZRd?NMQ9^=pf4cY>6<(M3^!Gt(mIioc>Ot_ zVuqs_fPl12n@%HW+}6WG?|YLEIk7aO5rDHcTH5sm`K8~`kzeC(uVjEi{kIuu9q_Yz z1@Uv}tBb~drKe;$H@&|jh%9YZ-J)qX9Z_lqHzAlWaa3fL2vxB{RElX4Zam6*mpM!x zokYOsMgO_>5_PAh(&w$^Pv>`m*C;Ev9{-;dqmuAnf7Wo79Bb779Bj)O%y#|y9JBk? zjp67P)P!L&DK<~Kh|-XIGUkZ=C-U6MrBUr(ekBsWl8Ac?*X!6t>$TVVodx`hm$PhN zZTI)KnU)rz6f{*|+oyiaN#Hu3aXy456W&8uu9a6qrP&@wxNWfMS$)M=nNT4^2+qP0 zkwE#QtnYDR3Jxmg0(p^HJ_VHSwwV~~Uxd@ZQ3XQcn3Hr~xQ}G0gajIL0TsI*ns1j-8Lzolz?hrz; zmKQQxZc|>IKU)Xiri$AN3L(XR`$U6dng7B|@6t)>}L;ceZ4)N)5-Py+{9uOpo#X7Hpdo26xe4?!Zt9U3|9jKu=d=B^?wQuXnwHdC~Qf zSaF$|BHdORjS?sz@L3MGwhE+|&y^0|iZ7dSeUfq;#ggENAO-pTQ-oy@k)bk~t@07H z9~&cm{sg1(5Kx(S^M?wB8(&vy`Ny+^e+8<3%|6voU z)yTu59VqsqTb#b*BTVRLDp5{Jxnd#Q-iO|Vrz8k4-u0Z~zCR%UmAcx^5XJRd?>EI@ zpJ>op^<$aBT61=6FM8xm9(zpL2o1zcf1ym z)Zgl;GdlVoSeZT2;kFFTb7hjTu`RjR2q ziGg&^+fhRinsE-=J4cU?jHq`B|V^Jnma;-y4?R2?$z4izC12it?qzbOvy7%SUeJT`rE9K5P zPgcAp-UmcnUsNG|VETDAadL=o`MqiZ_isyjKS7UJrX*txgTQ+K(gO)~UIgJiJDPDS z=F=#biQ6=Mn+XkU_aY3u^AKaDeteCM(+^7j2-43I)3{2XjcHf~%w%*HZz#Jt3AA)AYB&w5S9-#o?m zKM~b^`M-EJJ35O+eY=W?Xh_viZD%H*vvqQX#CHF{X`LXuZh!_5!y$@hxuyvx^Q`HGY-R8hhq^YvlmPd1-vRWd#rH zS(f-c?F=Fq`u=kJUG9%PlTKP?i7EBy!|1lJ!)8$Qbq2;@aMp_*elWLVB;V*QqbNNV z=?_xAdA&_IW>a7V4x9jTDuq+(1Y$T@-o)F9B2&{F;HOVm@W9Od48g)&_&Z1%xBu^e zmwj!o6S7v~cPy8%OKrv_` zjGyq!l=8QSHn_Oyvz-=<{eY`8y6?dldB>ANlL*+6LvjgkF3DOZblHMw|bo zkrZ06LW+BeP=9^>S(8V~aoMWHHGIM`*(yyRak7Ec?yHH^nUM#fMeX*TP#{g??$SJU z<73Vs3WiahRC7wZ2cPN*aSoqv&N+}7TS^Q^l)&}Yd8qoHv-m;BuOK8f!E24y)^xNj z1AbDUTvw}r*50U>b8jwCk1D0o#KC))r*Fo+*%4pRCR7V!rv!rg4H0ZlGgJ2z1gb7@ zviC#&kfQ?+Tcg$UpCU5qP9~C@fbLFS)6h$qC|{J5Mx}{{Xc}*JCOq*Wj!V38FDeoZ-ddUnUs`30 zRxJl9TTwL2tg3dNimg(xT@dqP8+DzRW$PvD+V5Fe zKF0SMYut6#6pf>3^M-aZAwlA$LHeB+(OlA6U`|cM*g8qKnrpwdW9ynMr+(nk+)YY?qp~PaK%bEWHSZOiU>Zr<4 zm35upz{-(V_yvlGo)#_Tt?lNzT)V;TmS0giPfHc=BrK22IW-f!Oqc7SV1TOz0^bas?eVxtx8>5TQ zT*aTQH0jmAob{M+)E2m^M^TtU3SIhyU7@=9;rjrcs^H*OoiJsPosyLT z$x=80nYz`Ot=#oZO8|&HVCpTfuQExkhTi)=raRRduGtMRYva|oNaH^SAe;pvPU)El zV13dr(he@FdewNwY}c8I;quy{&n;%9MAHDqE^lq!J8Gd)1f0wcmlQ8OsjK_0-$|~> zl~z=>W#tJ?~3i8-u4^;TBG1lY`P#8_AF-Hjzz1#XYg6~mA_Y`vXg_&9I3zs z=+D5Bp^B|@P2ZKpz!%g%+F}g(6XiHWk&Dn@I|=fS>}p!8Tv=3n2x=&v_N}Sv8X#W$r!K`)_tdqih&BdGLTUs} zoCQjycY`8&Xg>GH!+4;)Y{T~L#UIx_@(g`1q5O}xbliNM;sdd2S*04r)S%0D=Q3p; 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 qx4x&MbFuU|4f(u_YLXw6~uU%8FD17 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 z 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%0DE9e%?YX=o)NT`A1FCins7Mat+?B5nn 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

hEBRZJh11PSP*w?)c3qPay9& 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

7l-g{boQ(on2{=u(7pZ~ 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�~fM12+E~gdVs^QO2W3!l#A1u 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

^M1I5gxHqfxCR<-WglfNk|9ck)9jN|mY;V-r^E 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 diff --git a/third_party/astrolabe/screenshots/02-semantic-search-with-plot.png b/third_party/astrolabe/screenshots/02-semantic-search-with-plot.png deleted file mode 100644 index 3dcd3868e74059e1dc2590d62a55b38f9b09a7d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208705 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

X)-MnC}VbI~3emSoi%^EpC~%SKZ5+>T!c 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 oQ}%3{$1(1D{7xjJxYe+##> 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%0A^8(3(WW8^xBudBT85Pku$7uGG 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 Ok&{xEtP(f+{{I2QakEGO diff --git a/third_party/astrolabe/screenshots/03-chunk-viewer-open.png b/third_party/astrolabe/screenshots/03-chunk-viewer-open.png deleted file mode 100644 index 6d36e1ab9bcb99c9c398c4a4fc4f751bdf2d9cb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 223095 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°s9&u*Dfs}Fic7h)k{aezL@N8$eQEdS`kz>Ql? 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�<8U)q;lpsSP?Du7Q5G?5@^7MX2v?KEyXB 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%0Aw z_cMLRun;*tq-zQ|vY(Kr)8ATktOEc*HP-F)*nTWHz=YPhzmGUj*Gu(9L3+=mR2vXc zhq|oEfDMy@NilS^fm4y_iQuC&PuwenJ-QVS5Ul;sp1oD&S1nBTbu>sp zL@{grfFXP5C&s=!{cZ4HC*y+%K{W*@13niD+}a{>{zcF4iNIGC~q4cVI%tRSbs^tIsHx51Ry|m@)^X*%kG1I}3yQpcRqmYx1PmET^7`2rv z9PNs+nR+KQ_8F8umC>u;hb3tNa-9Zne6KKGe+k!S%(s@l?SSHezZ97fUnuXDStF zTDN$M*1cM_LHrFVHPQD!4H{i&6VLm6v=xBLSSxYZG00M<2eQ2421hVda9+c-VIRmQ z_?r3~iVb$O#A+Y>6kjI{7Xd*Ua^+i?OM`GGIY-^p#`bfSn(>doGFgC1lrni&%XI#2 zBp8KQkb)~tfm5-Lah%NEJMs%uHw3I^zUmT}pX%*;_|{4O;;F81td>d{`OPqGifpU( zEMU1Q)Q8buJi(0*q`fzs^Z?X^>0I<2FjKatE}dJNG^2ij77flYMH(@#5)jT5v&I<4 zPAo77tx67IKe&kHq4ml&4Fo`ry9?Sdn(gf%F znrv)sKkx`>NUNlw=#P5TcyZvFs0TO?c2ysR$r_bcQ2SCBQ3hV*0QDt*(+HCl)qAk8 zltH;U<+_kXWz~QZ15m*GUyg2sP}#TDPo@%+m)GeZP~Pay{-{tk2g1Wz`I%=8Hy3m; z9w7z8MlE8E>xiyp+?@lJdg@Bg==yi%l$dO;z-63BOMeKE_C+1r{=!o<)vH>~JvnvZ zX?srS`lqig4DtaTPL(DX?w&m^bLpNxB#T%yMwUq?KZ$BRFJbIEpL|1$g)yIT^Jd9S ztlQn7E53O3kgx4r%jMms*N={QNB(L3ei9*$M==HACK(b@SemDq>@lpy{XljjCZOYO z5gL(mh_TNO&od>6T=A!!f3#Y>w~%BE2!hY!xHRE^Mgk8uja7=^p9KkAd?5q#A&Azw zl2;C-2J;O&^-%u{G{lh6OU^)*Oe(-QZH!UqGupCDCUm^w_& zr?Q~R^t?;EYuRei@?2?jr-k6b)noL!`iQ^F#RCtRgG{Yr1P(2#h4OUk%kN;K3upvf907c z$4uNdBq|9?7}idwwq}69>1NYD zP59`324dGe<~GlkdI~lZAjw~f{G(2?jPu#s+WzSxZ=c|GFvM6)rLnK%B8R%eFYm*r zY!RpV&6+<5#t9FV?ItkCu3}Sg*3Ge zSwD^4xk|%CdX0nQK_z*37#r{5Ctv}GAUEz+)Mjg3o>JNJynx92%(m2C3VF?Csnv7F zCAGj#K?C!YozF2^(%PCp(KG34N*1z{9NT66nzyBQjp;z^dkgq1_y+sZWn(YU+7*?H zMqi4Z=SG1tG>ypLlFSn>$289593v!$)KqcO!4ZkO-8=B(Nq2Z|c9s?N60_K}H_gD| z_lnHml&-I+p{*j>Lybe_sru||2T1GZR9;qmsTJA9@HZ3&1b#I8fUkBb`Kv&IA(tQUfB_=Ad%C*5Kv+55nF=X%#>I?1$* zaKl(5@w9QQZSR>I)ZxQ;Hnk1oiM~S47==aFmQiTQUL+v>Q3oZ^g<2T6Zta)JcmC{# z3I;MQYi~4}5W0}cUuFSI9NHM$c-U7ZKd{=IS;+ZW#S;KteTBP?(3*QNU}XHU-q1Sm z!32@tW=>(iR|=TDo*cVkTptjlb}^CLq5!w5MLYpamm#CJnPQCrU@?(LUEz~^`H+_@Z<6i4kx|hOUfa` zW5$+2T-)JK{GU1TEXGgjwuaE6MlziH&C29Fy9}5O1;Iu4jy)Rq?IV*=Zt%ueDz~VZ z^@i9Yj7I#PNaqt>q%;{f$_}H{qA)+UC&26Y70k~&IcJlT0}8oaud7k9&_misj*uX) z(oRto1clVLx4tO5LR7x5vsSCEL_1`7?n#UPY4C2trSI$#j*r>ST7K=M|Ix~ttY&6& z!ngt~fB?~A*Ya%9)r3qO>tdmE6Nl>hQo^O{Vsjk*b&48{_d4lc332*RQFVVcdji@J zpY4g_inHU?^^1-`=asEoMl8dz^ak`{Y7v&FA@l6PBDD#acy}P(68Wa}6CY9S&DKL| z>wnchVAB&tt3AqIv4HJ1%zzOhzvN>k1RRY>B!ACLp2(7$7=<-NC>ly8eLxu zjDj092^pzG{%oFg)1$Eg=(}nysNH3dwlUytU-9^em|!Q{ zzg9y%`&U^=Xk5jF$guwngJ;^}U~PA$SHfwQ)ho(dCWE2GJ83pj^qZ1NdsBVIt}l}+k^$N7{0tg( z0EzmyzVxx*is0OsnnjX^4Gtqr`-$M7H}tbxMZvI7A}5ONINMw-!T|Z(ff}e(ZS-MI zLH0ki?grZVz$a9HKo+gq)y8HUl9mm)W;I~eeBbGkpqe!V^Q8VG8chGmmL(z!VLze) z6B$kkUiM>7_ej;_X1nt4OO^LdS>fX0I9SRCdV>BUN|Y`0G!4lMGdu&D?8K=Ry9&y>1)Vqs!Gq*W1Mgs=M zaja{d$jE&X|DG#2#XA}8hTLp=UY&Zzw1*KKOv$o(s08R8CzoaZ`{U;d7-d_b_Lpo} zM`gCc%>73>#E!442zf+C{&%s<9r-j^-Wv-v5$Rdz4*oInRFT2C;}-W1m?c2N@?Cq* ze~bO}=*JI&O{evyjTiGf3`PKn+G%uspF#NYxk&F8!(XP0o-~WC!-wvBMH{a%P|hGe z&h7k~+rc-A^x+En8&+uMf1X`)1!SwYAm(7kmH`tCe_IFMyqgoUsz%I?%l+GH`)bQ5 zK;K{bVAuMT%%(JLR*f`G2^aZbd!#n~1+wO5@y~G7LjU>)#D1nR1?X>2pxPi(eLQiY)w>{sv62iT|y#oER;(vIG|IgSB>070bRFAS9u - - - - - - - - - -

-
-

{{ t('astrolabe', 'Semantic Search') }}

-

- {{ t('astrolabe', 'Search your indexed content using semantic similarity. Find documents by meaning, not just keywords.') }} -

-
- - -
-
- - - - - - - {{ t('astrolabe', 'Search') }} - -
- - - - - {{ showAdvanced ? t('astrolabe', 'Hide advanced') : t('astrolabe', 'Advanced options') }} - - - -
-
-
- -
- - {{ docType.label }} - -
-
- -
- - -
- -
- - -
-
-
-
- - -
- - {{ t('astrolabe', 'Searching...') }} -
- - - - {{ error }} - - - -
- - -
-
-

{{ t('astrolabe', 'Index Status') }}

-

- {{ t('astrolabe', 'View the status of your vector index and sync progress.') }} -

-
- -
- - {{ t('astrolabe', 'Loading status...') }} -
- - - {{ statusError }} - - -
-
-
- {{ t('astrolabe', 'Sync Status') }} -
-
- {{ vectorStatus.status }} -
-
- -
-
- {{ t('astrolabe', 'Indexed Documents') }} -
-
- {{ vectorStatus.indexed_documents || 0 }} -
-
- -
-
- {{ t('astrolabe', 'Pending Documents') }} -
-
- {{ vectorStatus.pending_documents || 0 }} -
-
- -
-
- {{ t('astrolabe', 'Last Sync') }} -
-
- {{ vectorStatus.last_sync_time }} -
-
-
- - - - {{ t('astrolabe', 'Refresh') }} - -
- - - -
-
- -
-

- - {{ viewerTitle }} - - - {{ viewerTitle }} -

- - - -
- - -
- -
- - {{ t('astrolabe', 'Loading content...') }} -
- - - - - - -
- - - -
-
- - - - - - - - diff --git a/third_party/astrolabe/src/adminSettings.js b/third_party/astrolabe/src/adminSettings.js deleted file mode 100644 index ab2feed..0000000 --- a/third_party/astrolabe/src/adminSettings.js +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Admin settings page Vue app for Astrolabe. - * - * Mounts the AdminSettings Vue component for async loading - * and improved UX. - */ - -import { createApp } from 'vue' -import { translate as t, translatePlural as n } from '@nextcloud/l10n' -import AdminSettings from './components/admin/AdminSettings.vue' - -const app = createApp(AdminSettings) - -// Add translation methods globally -app.config.globalProperties.t = t -app.config.globalProperties.n = n - -app.mount('#astrolabe-admin-settings') diff --git a/third_party/astrolabe/src/components/MarkdownViewer.vue b/third_party/astrolabe/src/components/MarkdownViewer.vue deleted file mode 100644 index 3c0b36a..0000000 --- a/third_party/astrolabe/src/components/MarkdownViewer.vue +++ /dev/null @@ -1,172 +0,0 @@ - - - - - diff --git a/third_party/astrolabe/src/components/PDFViewer.vue b/third_party/astrolabe/src/components/PDFViewer.vue deleted file mode 100644 index e4081a1..0000000 --- a/third_party/astrolabe/src/components/PDFViewer.vue +++ /dev/null @@ -1,183 +0,0 @@ - - - - - diff --git a/third_party/astrolabe/src/components/admin/AdminSettings.vue b/third_party/astrolabe/src/components/admin/AdminSettings.vue deleted file mode 100644 index 8c38926..0000000 --- a/third_party/astrolabe/src/components/admin/AdminSettings.vue +++ /dev/null @@ -1,695 +0,0 @@ - - - - - diff --git a/third_party/astrolabe/src/main.js b/third_party/astrolabe/src/main.js deleted file mode 100644 index f28d460..0000000 --- a/third_party/astrolabe/src/main.js +++ /dev/null @@ -1,11 +0,0 @@ -import { createApp } from 'vue' -import { translate as t, translatePlural as n } from '@nextcloud/l10n' -import App from './App.vue' - -const app = createApp(App) - -// Add translation methods globally -app.config.globalProperties.t = t -app.config.globalProperties.n = n - -app.mount('#astrolabe') diff --git a/third_party/astrolabe/src/personalSettings.js b/third_party/astrolabe/src/personalSettings.js deleted file mode 100644 index 12c1427..0000000 --- a/third_party/astrolabe/src/personalSettings.js +++ /dev/null @@ -1,124 +0,0 @@ -/** - * Personal settings page JavaScript for Astrolabe. - * - * Loads styles for the personal settings page and handles form interactions. - */ - -import './styles/settings.css' - -// Wait for DOM to be ready -document.addEventListener('DOMContentLoaded', function() { - // Helper function to show error notifications - function showError(message) { - if (typeof OC !== 'undefined' && OC.Notification) { - OC.Notification.showTemporary(message, { type: 'error' }) - } else { - alert(message) - } - } - - function showSuccess(message) { - if (typeof OC !== 'undefined' && OC.Notification) { - OC.Notification.showTemporary(message, { type: 'success' }) - } else { - alert(message) - } - } - - // App password form with error handling - const appPasswordForm = document.getElementById('mcp-app-password-form') - if (appPasswordForm) { - appPasswordForm.addEventListener('submit', async function(e) { - e.preventDefault() - const submitButton = document.getElementById('mcp-save-app-password-button') - const originalText = submitButton.textContent - - try { - submitButton.disabled = true - submitButton.textContent = t('astrolabe', 'Saving...') - - const formData = new FormData(appPasswordForm) - const response = await fetch(appPasswordForm.action, { - method: 'POST', - body: formData, - }) - - const result = await response.json() - - if (response.ok && result.success) { - showSuccess(t('astrolabe', 'Background sync access successfully provisioned!')) - setTimeout(() => window.location.reload(), 1000) - } else { - showError(result.error || t('astrolabe', 'Failed to save app password. Please check that it is valid.')) - } - } catch (error) { - console.error('App password provisioning error:', error) - showError(t('astrolabe', 'Unable to connect to server. Please check that the MCP server is running and try again.')) - } finally { - submitButton.disabled = false - submitButton.textContent = originalText - } - }) - } - - // Revoke form confirmation - const revokeForm = document.getElementById('mcp-revoke-form') - if (revokeForm) { - revokeForm.addEventListener('submit', function(e) { - if (!confirm(t('astrolabe', 'Are you sure you want to disable indexing? Your content will be removed from semantic search.'))) { - e.preventDefault() - } - }) - } - - // Disconnect form confirmation - const disconnectForm = document.getElementById('mcp-disconnect-form') - if (disconnectForm) { - disconnectForm.addEventListener('submit', function(e) { - if (!confirm(t('astrolabe', 'Are you sure you want to disconnect from Astrolabe? You will need to re-authorize to use semantic search.'))) { - e.preventDefault() - } - }) - } - - // Revoke background access form with error handling - const revokeBackgroundForm = document.getElementById('mcp-revoke-background-form') - if (revokeBackgroundForm) { - revokeBackgroundForm.addEventListener('submit', async function(e) { - e.preventDefault() - - if (!confirm(t('astrolabe', 'Are you sure you want to revoke background sync access? The MCP server will no longer be able to access your Nextcloud data for background operations.'))) { - return - } - - const submitButton = revokeBackgroundForm.querySelector('button[type="submit"]') - const originalText = submitButton.textContent - - try { - submitButton.disabled = true - submitButton.textContent = t('astrolabe', 'Revoking...') - - const formData = new FormData(revokeBackgroundForm) - const response = await fetch(revokeBackgroundForm.action, { - method: 'POST', - body: formData, - }) - - const result = await response.json() - - if (response.ok && result.success) { - showSuccess(t('astrolabe', 'Background sync access revoked successfully.')) - setTimeout(() => window.location.reload(), 1000) - } else { - showError(result.error || t('astrolabe', 'Failed to revoke background sync access.')) - } - } catch (error) { - console.error('Revoke error:', error) - showError(t('astrolabe', 'Unable to connect to server. Your access may already be revoked, or the server may be down.')) - } finally { - submitButton.disabled = false - submitButton.textContent = originalText - } - }) - } -}) diff --git a/third_party/astrolabe/src/styles/settings.css b/third_party/astrolabe/src/styles/settings.css deleted file mode 100644 index 69a2f71..0000000 --- a/third_party/astrolabe/src/styles/settings.css +++ /dev/null @@ -1,290 +0,0 @@ -/** - * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors - * SPDX-License-Identifier: AGPL-3.0-or-later - * - * Astrolabe settings styles - * Relies on Nextcloud's core .section class for layout - */ - -/* Info tables */ -.mcp-info-table { - width: 100%; - border-collapse: collapse; - margin: calc(var(--default-grid-baseline) * 3) 0; -} - -.mcp-info-table tr { - border-bottom: 1px solid var(--color-border); -} - -.mcp-info-table tr:last-child { - border-bottom: none; -} - -.mcp-info-table td { - padding: calc(var(--default-grid-baseline) * 2) 0; - vertical-align: top; -} - -.mcp-info-table td:first-child { - width: 200px; - color: var(--color-text-maxcontrast); - font-weight: 600; - padding-inline-end: calc(var(--default-grid-baseline) * 4); -} - -.mcp-info-table td:last-child { - color: var(--color-main-text); -} - -/* Status badges */ -.badge { - display: inline-flex; - align-items: center; - gap: calc(var(--default-grid-baseline) * 1.5); - padding: calc(var(--default-grid-baseline) * 1.5) calc(var(--default-grid-baseline) * 3); - border-radius: calc(var(--border-radius-element) * 1.5); - font-size: 13px; - font-weight: 600; -} - -.badge-success { - background: var(--color-success); - color: var(--color-success-text); -} - -.badge-warning { - background: var(--color-warning); - color: var(--color-warning-text); -} - -.badge-neutral { - background: var(--color-background-dark); - color: var(--color-text-maxcontrast); -} - -.badge-info { - background: var(--color-primary-element); - color: var(--color-primary-element-text); -} - -/* Input groups */ -.mcp-input-group { - display: flex; - gap: calc(var(--default-grid-baseline) * 2); - align-items: stretch; - margin-top: calc(var(--default-grid-baseline) * 2); -} - -.mcp-input-group input[type='password'], -.mcp-input-group input[type='text'] { - flex: 1; - font-family: monospace; -} - -/* Revoke/warning sections */ -.mcp-revoke-section { - margin-top: calc(var(--default-grid-baseline) * 4); - padding: calc(var(--default-grid-baseline) * 4); - background: var(--color-warning); - border-radius: var(--border-radius-element); - border-inline-start: calc(var(--default-grid-baseline)) solid var(--color-warning-text); -} - -/* Feature lists */ -.mcp-feature-list { - list-style: none; - padding: 0; - margin: calc(var(--default-grid-baseline) * 3) 0; -} - -.mcp-feature-list li { - display: flex; - gap: calc(var(--default-grid-baseline) * 3); - padding: calc(var(--default-grid-baseline) * 2) 0; - align-items: start; -} - -.mcp-feature-list .icon { - flex-shrink: 0; - width: 24px; - height: 24px; - opacity: 0.7; -} - -.mcp-feature-list div { - flex: 1; -} - -.mcp-feature-list strong { - display: block; - font-weight: 600; - margin-bottom: calc(var(--default-grid-baseline)); -} - -.mcp-feature-list p { - margin: 0; - color: var(--color-text-maxcontrast); -} - -/* Responsive tables */ -@media (max-width: 768px) { - .mcp-info-table td:first-child, - .mcp-info-table td:last-child { - display: block; - width: 100%; - } - - .mcp-info-table td:first-child { - padding-bottom: calc(var(--default-grid-baseline)); - } - - .mcp-info-table td:last-child { - padding-top: calc(var(--default-grid-baseline)); - } -} - -/* Admin settings forms */ -.mcp-settings-form { - max-width: 600px; -} - -.mcp-form-group { - margin-bottom: calc(var(--default-grid-baseline) * 5); -} - -.mcp-form-group label { - display: block; - font-weight: 600; - margin-bottom: calc(var(--default-grid-baseline) * 2); -} - -.mcp-range { - width: 100%; - margin-top: calc(var(--default-grid-baseline) * 2); - accent-color: var(--color-primary-element); -} - -.mcp-form-actions { - display: flex; - align-items: center; - gap: calc(var(--default-grid-baseline) * 4); - margin-top: calc(var(--default-grid-baseline) * 6); - padding-top: calc(var(--default-grid-baseline) * 5); - border-top: 1px solid var(--color-border); -} - -/* Webhook preset cards */ -.mcp-preset-grid { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); - gap: calc(var(--default-grid-baseline) * 4); - margin: calc(var(--default-grid-baseline) * 4) 0; -} - -.mcp-preset-card { - background: var(--color-background-dark); - border-radius: var(--border-radius-container); - padding: calc(var(--default-grid-baseline) * 4); - border: 2px solid transparent; - transition: border-color var(--animation-slow), box-shadow var(--animation-slow); -} - -.mcp-preset-card:hover { - border-color: var(--color-border-dark); - box-shadow: 0 2px 8px var(--color-box-shadow); -} - -.mcp-preset-header { - display: flex; - justify-content: space-between; - align-items: center; - margin-bottom: calc(var(--default-grid-baseline) * 3); -} - -.mcp-preset-header h4 { - margin: 0; - font-weight: 600; -} - -.mcp-preset-status { - padding: calc(var(--default-grid-baseline)) calc(var(--default-grid-baseline) * 2.5); - border-radius: calc(var(--border-radius-element) * 1.5); - font-size: 11px; - font-weight: 600; - text-transform: uppercase; -} - -.mcp-status-enabled { - background: var(--color-success); - color: var(--color-success-text); -} - -.mcp-status-disabled { - background: var(--color-background-darker); - color: var(--color-text-maxcontrast); -} - -.mcp-preset-description { - color: var(--color-text-maxcontrast); - margin-bottom: calc(var(--default-grid-baseline) * 3); -} - -.mcp-preset-meta { - display: flex; - justify-content: space-between; - align-items: center; - padding-top: calc(var(--default-grid-baseline) * 3); - border-top: 1px solid var(--color-border); - margin-bottom: calc(var(--default-grid-baseline) * 3); - font-size: 12px; - color: var(--color-text-maxcontrast); -} - -.mcp-preset-actions { - display: flex; - gap: calc(var(--default-grid-baseline) * 2); -} - -.mcp-preset-toggle { - flex: 1; - padding: calc(var(--default-grid-baseline) * 2) calc(var(--default-grid-baseline) * 4); - border-radius: var(--border-radius-element); - font-size: 13px; - font-weight: 600; - cursor: pointer; - transition: all var(--animation-quick); - border: none; -} - -.mcp-preset-toggle.primary { - background: var(--color-primary-element); - color: var(--color-primary-element-text); -} - -.mcp-preset-toggle.primary:hover:not(:disabled) { - background: var(--color-primary-element-hover); -} - -.mcp-preset-toggle.secondary { - background: var(--color-background-darker); - color: var(--color-main-text); - border: 1px solid var(--color-border); -} - -.mcp-preset-toggle.secondary:hover:not(:disabled) { - background: var(--color-background-hover); - border-color: var(--color-border-dark); -} - -.mcp-preset-toggle:disabled { - opacity: 0.6; - cursor: not-allowed; -} - -.mcp-loading { - text-align: center; - padding: calc(var(--default-grid-baseline) * 5); - color: var(--color-text-maxcontrast); - font-style: italic; -} diff --git a/third_party/astrolabe/stylelint.config.cjs b/third_party/astrolabe/stylelint.config.cjs deleted file mode 100644 index ff8f902..0000000 --- a/third_party/astrolabe/stylelint.config.cjs +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - extends: '@nextcloud/stylelint-config', -} diff --git a/third_party/astrolabe/templates/index.php b/third_party/astrolabe/templates/index.php deleted file mode 100644 index 8059c60..0000000 --- a/third_party/astrolabe/templates/index.php +++ /dev/null @@ -1,13 +0,0 @@ - - -
diff --git a/third_party/astrolabe/templates/settings/admin.php b/third_party/astrolabe/templates/settings/admin.php deleted file mode 100644 index cbe1e79..0000000 --- a/third_party/astrolabe/templates/settings/admin.php +++ /dev/null @@ -1,15 +0,0 @@ - - -
- -
diff --git a/third_party/astrolabe/templates/settings/error.php b/third_party/astrolabe/templates/settings/error.php deleted file mode 100644 index 6f31e49..0000000 --- a/third_party/astrolabe/templates/settings/error.php +++ /dev/null @@ -1,51 +0,0 @@ - - -
-
-

- - -

- - -

t('Details:')); ?>

-

- - - -

t('Server URL:')); ?>

-

- - - -

- - -

t('Troubleshooting Steps:')); ?>

-
    -
  1. t('Verify the MCP server is running and accessible')); ?>
  2. -
  3. t('Check that mcp_server_url in config.php is correct')); ?>
  4. -
  5. t('Ensure mcp_server_api_key matches the server configuration')); ?>
  6. -
  7. t('Check firewall rules and network connectivity')); ?>
  8. -
  9. t('Review MCP server logs for errors')); ?>
  10. -
- -

- - t('View Documentation')); ?> - -

-
-
diff --git a/third_party/astrolabe/templates/settings/oauth-required.php b/third_party/astrolabe/templates/settings/oauth-required.php deleted file mode 100644 index 0443d50..0000000 --- a/third_party/astrolabe/templates/settings/oauth-required.php +++ /dev/null @@ -1,117 +0,0 @@ - - -
-

t('Astrolabe')); ?>

-

t('AI-powered semantic search across your Nextcloud content.')); ?>

-
- - -
-

t('Session Expired')); ?>

-

-
- - -
-

t('Enable Semantic Search')); ?>

- - -

- t('Your authorization has expired. Please sign in again to continue using semantic search.')); ?> -

- -

- t('To search your content by meaning, Astrolabe needs permission to index your Nextcloud data.')); ?> -

- - -

- t('What happens next?')); ?> -

- -
    -
  1. t('Sign in to confirm your identity')); ?>
  2. -
  3. t('Grant permission to index your content')); ?>
  4. -
  5. t('Your content will be indexed for semantic search')); ?>
  6. -
  7. t('Start searching with natural language')); ?>
  8. -
- -

t('Content to be Indexed')); ?>

- -
    -
  • - -
    - t('Notes & Files')); ?> -

    t('Your notes and documents will be searchable by meaning')); ?>

    -
    -
  • -
  • - -
    - t('Calendar & Tasks')); ?> -

    t('Find events and tasks with natural language queries')); ?>

    -
    -
  • -
  • - -
    - t('Deck Cards')); ?> -

    t('Search across your Deck boards and cards')); ?>

    -
    -
  • -
- - - -

- t('You can disable indexing at any time from this settings page.')); ?> -

-
- -
-

t('About Astrolabe')); ?>

- -

- t('Astrolabe enables semantic search - finding content by meaning rather than exact keywords. Ask questions like "meeting notes from last week" or "recipes with chicken" to find relevant documents.')); ?> -

- -

- t('Your content is processed to understand its meaning, enabling powerful natural language search across all your Nextcloud data.')); ?> -

- - -
diff --git a/third_party/astrolabe/templates/settings/personal.php b/third_party/astrolabe/templates/settings/personal.php deleted file mode 100644 index 9efdd7a..0000000 --- a/third_party/astrolabe/templates/settings/personal.php +++ /dev/null @@ -1,303 +0,0 @@ -getURLGenerator(); - -script('astrolabe', 'astrolabe-personalSettings'); -style('astrolabe', 'astrolabe-main'); // All CSS bundled into main -?> - -
-

t('Astrolabe')); ?>

-

t('AI-powered semantic search across your Nextcloud content. Find documents by meaning, not just keywords.')); ?>

-
- -
-

t('Service Status')); ?>

- - - - - - - - - -
t('Service URL')); ?>
t('Version')); ?>
-
- -
-

t('Background Sync Access')); ?>

- - - - -
-

- - - t('Active')); ?> - -

- - - - - - - - - - - - - - - - - - - - - - -
t('Credential Type')); ?> - - t('App Password')); ?> - - t('OAuth Refresh Token')); ?> - -
t('Provisioned At')); ?>
t('Provisioned At')); ?>
t('Indexed Content')); ?>
- -
- -
- - -

- t('This will revoke background sync access. The MCP server will no longer be able to access your Nextcloud data for background operations.')); ?> -

-
- -
- - -

- t('This will stop background indexing and remove your content from semantic search. You can re-enable it at any time.')); ?> -

-
- -
-
- - - - -

- t('To use semantic search, you need to complete two setup steps:')); ?> -

- - -
-

- - t('Complete')); ?> - - t('Required')); ?> - - t('Step 1: Authorize Search Access')); ?> -

-

- t('Authorize Astrolabe to perform searches on your behalf.')); ?> -

- - - - t('Authorize')); ?> - - -

t('Search access authorized.')); ?>

- -
- - -
-

- - t('Complete')); ?> - - t('Required')); ?> - - t('Step 2: Enable Background Indexing')); ?> -

-

- t('Provide an app password to allow background indexing of your content.')); ?> -

- -
-

- - t('Generate app password in Security settings')); ?> - -

- -
- -
- - -
-

- t('The app password will be validated and securely encrypted before storage.')); ?> -

-
-
- -

t('Background indexing enabled.')); ?>

- -
- - - -

- t('Enable background sync to allow the MCP server to access your Nextcloud data for background operations like content indexing.')); ?> -

- -
-

t('Option 1: OAuth Refresh Token (Recommended for Future)')); ?>

-

- t('When Nextcloud fully supports OAuth for app APIs. Currently waiting for upstream PR to merge.')); ?> -

- - - t('Authorize via OAuth')); ?> - -
- -
-

t('Option 2: App Password (Works Today - Recommended)')); ?>

-

- t('Generate an app password in Security settings and provide it below. This is the recommended interim solution.')); ?> -

- -
-

t('Step 1:')); ?> - - t('Generate app password in Security settings')); ?> - -

- -

t('Step 2:')); ?> t('Enter the app password below:')); ?>

- -
- -
- - -
-

- t('The app password will be validated and securely encrypted before storage.')); ?> -

-
-
-
- - -
- - -
-

t('Identity Provider Profile')); ?>

- - $value): ?> - - - - - -
- - - - - -
-
- - - -
-

t('Search Your Content')); ?>

-

t('Use natural language to search across your Notes, Files, Calendar, and Deck cards. Ask questions like "meeting notes from last week" or "recipes with chicken".')); ?>

- - - t('Open Astrolabe')); ?> - -
- -
-

t('Semantic Search')); ?>

-

- t('Semantic search is not enabled on this server. Contact your administrator to enable this feature.')); ?> -

-
- - -
-

t('Manage Connection')); ?>

-

t('You are connected to the Astrolabe service.')); ?>

- -
-
- - -

- t('This will disconnect from the Astrolabe service. You will need to re-authorize to use semantic search features.')); ?> -

-
-
-
diff --git a/third_party/astrolabe/tests/bootstrap.php b/third_party/astrolabe/tests/bootstrap.php deleted file mode 100644 index 6acece4..0000000 --- a/third_party/astrolabe/tests/bootstrap.php +++ /dev/null @@ -1,9 +0,0 @@ - - - - . - - - - ../appinfo - ../lib - - - diff --git a/third_party/astrolabe/tests/unit/BackgroundJob/RefreshUserTokensTest.php b/third_party/astrolabe/tests/unit/BackgroundJob/RefreshUserTokensTest.php deleted file mode 100644 index d467841..0000000 --- a/third_party/astrolabe/tests/unit/BackgroundJob/RefreshUserTokensTest.php +++ /dev/null @@ -1,635 +0,0 @@ -timeFactory = $this->createMock(ITimeFactory::class); - $this->tokenStorage = $this->createMock(McpTokenStorage::class); - $this->tokenRefresher = $this->createMock(IdpTokenRefresher::class); - $this->logger = $this->createMock(LoggerInterface::class); - - $this->job = new RefreshUserTokens( - $this->timeFactory, - $this->tokenStorage, - $this->tokenRefresher, - $this->logger - ); - } - - /** - * Set up default withTokenLock behavior that executes the callback. - * Call this in tests that need the lock to succeed. - */ - private function setupDefaultLockBehavior(): void { - $this->tokenStorage->method('withTokenLock') - ->willReturnCallback(fn ($userId, $callback) => $callback()); - } - - // ========================================================================= - // Constructor Tests - // ========================================================================= - - public function testConstructorSetsInterval(): void { - // Use reflection to access the protected interval property - $reflection = new \ReflectionClass($this->job); - $property = $reflection->getProperty('interval'); - $property->setAccessible(true); - - $this->assertEquals(900, $property->getValue($this->job)); - } - - // ========================================================================= - // run() Method Tests - // ========================================================================= - - public function testRunWithNoUsers(): void { - $this->tokenStorage->method('getAllUsersWithTokens') - ->willReturn([]); - - $this->logger->expects($this->exactly(2)) - ->method('info') - ->willReturnCallback(function (string $message) { - static $callCount = 0; - $callCount++; - if ($callCount === 1) { - $this->assertStringContainsString('Starting', $message); - } else { - $this->assertStringContainsString('total=0', $message); - $this->assertStringContainsString('refreshed=0, failed=0, skipped=0', $message); - } - }); - - // Call run() via reflection since it's protected - $this->invokeRun(); - } - - public function testRunWithMultipleUsersAndMixedResults(): void { - $this->setupDefaultLockBehavior(); - - $this->tokenStorage->method('getAllUsersWithTokens') - ->willReturn(['alice', 'bob', 'charlie']); - - // Alice: token with plenty of time (skipped) - // Bob: token near expiry with refresh token (refreshed) - // Charlie: token near expiry without refresh token (failed) - $this->tokenStorage->method('getUserToken') - ->willReturnCallback(function (string $userId) { - $now = time(); - return match ($userId) { - 'alice' => [ - 'access_token' => 'alice-token', - 'refresh_token' => 'alice-refresh', - 'expires_at' => $now + 3600, // 1 hour remaining (>50% of default lifetime) - 'issued_at' => $now, - ], - 'bob' => [ - 'access_token' => 'bob-token', - 'refresh_token' => 'bob-refresh', - 'expires_at' => $now + 100, // ~100s remaining (<50% of default lifetime) - 'issued_at' => $now - 3500, - ], - 'charlie' => [ - 'access_token' => 'charlie-token', - // No refresh_token - 'expires_at' => $now + 100, - 'issued_at' => $now - 3500, - ], - default => null, - }; - }); - - // Bob's refresh should succeed - $this->tokenRefresher->method('refreshAccessToken') - ->with('bob-refresh') - ->willReturn([ - 'access_token' => 'bob-new-token', - 'refresh_token' => 'bob-new-refresh', - 'expires_in' => 3600, - ]); - - $this->tokenStorage->expects($this->once()) - ->method('storeUserToken') - ->with( - 'bob', - 'bob-new-token', - 'bob-new-refresh', - $this->anything(), - $this->anything() - ); - - $this->logger->expects($this->exactly(2)) - ->method('info') - ->willReturnCallback(function (string $message) { - static $callCount = 0; - $callCount++; - if ($callCount === 2) { - $this->assertStringContainsString('total=3', $message); - $this->assertStringContainsString('refreshed=1, failed=1, skipped=1', $message); - } - }); - - $this->invokeRun(); - } - - public function testRunProcessesUsersInBatches(): void { - $this->setupDefaultLockBehavior(); - - // Simulate 150 users processed in 2 batches (100 + 50) - $batch1 = array_map(fn ($i) => "user{$i}", range(1, 100)); - $batch2 = array_map(fn ($i) => "user{$i}", range(101, 150)); - - $callCount = 0; - $this->tokenStorage->method('getAllUsersWithTokens') - ->willReturnCallback(function (int $limit, int $offset) use (&$callCount, $batch1, $batch2) { - $callCount++; - // First call: offset 0, return 100 users (full batch) - if ($offset === 0) { - $this->assertEquals(100, $limit); - return $batch1; - } - // Second call: offset 100, return 50 users (partial batch = last) - if ($offset === 100) { - $this->assertEquals(100, $limit); - return $batch2; - } - // Should not be called again - $this->fail("Unexpected getAllUsersWithTokens call with offset $offset"); - }); - - // All tokens have plenty of time (all skipped) - $this->tokenStorage->method('getUserToken') - ->willReturnCallback(function (string $userId) { - $now = time(); - return [ - 'access_token' => "{$userId}-token", - 'refresh_token' => "{$userId}-refresh", - 'expires_at' => $now + 3600, - 'issued_at' => $now, - ]; - }); - - $this->tokenRefresher->expects($this->never()) - ->method('refreshAccessToken'); - - $this->logger->expects($this->exactly(2)) - ->method('info') - ->willReturnCallback(function (string $message) { - static $infoCallCount = 0; - $infoCallCount++; - if ($infoCallCount === 2) { - $this->assertStringContainsString('total=150', $message); - $this->assertStringContainsString('refreshed=0, failed=0, skipped=150', $message); - } - }); - - $this->invokeRun(); - - // Verify getAllUsersWithTokens was called exactly twice (2 batches) - $this->assertEquals(2, $callCount); - } - - // ========================================================================= - // refreshUserTokenIfNeeded() Tests - // ========================================================================= - - public function testRefreshSkippedWhenTokenHasPlentyOfTime(): void { - $now = time(); - $this->tokenStorage->method('getUserToken') - ->with('testuser') - ->willReturn([ - 'access_token' => 'valid-token', - 'refresh_token' => 'refresh-token', - 'expires_at' => $now + 3600, // 1 hour remaining - 'issued_at' => $now, - ]); - - $this->tokenRefresher->expects($this->never()) - ->method('refreshAccessToken'); - - $result = $this->invokeRefreshUserTokenIfNeeded('testuser'); - - $this->assertEquals('skipped', $result); - } - - public function testRefreshTriggeredWhenTokenNearExpiry(): void { - $this->setupDefaultLockBehavior(); - - $now = time(); - $this->tokenStorage->method('getUserToken') - ->with('testuser') - ->willReturn([ - 'access_token' => 'expiring-token', - 'refresh_token' => 'refresh-token', - 'expires_at' => $now + 300, // 5 min remaining (< 50% of 3600s) - 'issued_at' => $now - 3300, // Issued 55 min ago - ]); - - $this->tokenRefresher->expects($this->once()) - ->method('refreshAccessToken') - ->with('refresh-token') - ->willReturn([ - 'access_token' => 'new-token', - 'refresh_token' => 'new-refresh-token', - 'expires_in' => 3600, - ]); - - $this->tokenStorage->expects($this->once()) - ->method('storeUserToken'); - - $result = $this->invokeRefreshUserTokenIfNeeded('testuser'); - - $this->assertEquals('refreshed', $result); - } - - public function testRefreshFailsWhenNoRefreshToken(): void { - $this->setupDefaultLockBehavior(); - - $now = time(); - $this->tokenStorage->method('getUserToken') - ->with('testuser') - ->willReturn([ - 'access_token' => 'expiring-token', - // No refresh_token - 'expires_at' => $now + 100, - 'issued_at' => $now - 3500, - ]); - - $this->logger->expects($this->once()) - ->method('warning') - ->with($this->stringContains('no refresh token')); - - $this->tokenRefresher->expects($this->never()) - ->method('refreshAccessToken'); - - $result = $this->invokeRefreshUserTokenIfNeeded('testuser'); - - $this->assertEquals('failed', $result); - } - - public function testRefreshFailsWhenRefresherReturnsNull(): void { - $this->setupDefaultLockBehavior(); - - $now = time(); - $this->tokenStorage->method('getUserToken') - ->with('testuser') - ->willReturn([ - 'access_token' => 'expiring-token', - 'refresh_token' => 'invalid-refresh', - 'expires_at' => $now + 100, - 'issued_at' => $now - 3500, - ]); - - $this->tokenRefresher->expects($this->once()) - ->method('refreshAccessToken') - ->with('invalid-refresh') - ->willReturn(null); - - $this->logger->expects($this->once()) - ->method('warning') - ->with($this->stringContains('Refresh returned null')); - - // Should NOT delete token - let on-demand refresh handle cleanup - $this->tokenStorage->expects($this->never()) - ->method('deleteUserToken'); - - $result = $this->invokeRefreshUserTokenIfNeeded('testuser'); - - $this->assertEquals('failed', $result); - } - - public function testRefreshUsesIssuedAtForLifetimeCalculation(): void { - $this->setupDefaultLockBehavior(); - - $now = time(); - // Token with custom lifetime: issued 50 min ago, expires in 10 min (total 60 min) - // 10/60 = 16.7% remaining, which is < 50%, so should refresh - $this->tokenStorage->method('getUserToken') - ->with('testuser') - ->willReturn([ - 'access_token' => 'token', - 'refresh_token' => 'refresh', - 'expires_at' => $now + 600, // 10 min remaining - 'issued_at' => $now - 3000, // 50 min ago, total lifetime 60 min - ]); - - $this->tokenRefresher->expects($this->once()) - ->method('refreshAccessToken') - ->willReturn([ - 'access_token' => 'new-token', - 'refresh_token' => 'new-refresh', - 'expires_in' => 3600, - ]); - - $result = $this->invokeRefreshUserTokenIfNeeded('testuser'); - - $this->assertEquals('refreshed', $result); - } - - public function testRefreshUsesDefaultLifetimeWhenNoIssuedAt(): void { - $this->setupDefaultLockBehavior(); - - $now = time(); - // Token without issued_at, uses default 3600s lifetime - // 300s remaining / 3600s = 8.3% remaining, which is < 50%, so should refresh - $this->tokenStorage->method('getUserToken') - ->with('testuser') - ->willReturn([ - 'access_token' => 'token', - 'refresh_token' => 'refresh', - 'expires_at' => $now + 300, // 5 min remaining - // No issued_at - ]); - - $this->tokenRefresher->expects($this->once()) - ->method('refreshAccessToken') - ->willReturn([ - 'access_token' => 'new-token', - 'refresh_token' => 'new-refresh', - 'expires_in' => 3600, - ]); - - $result = $this->invokeRefreshUserTokenIfNeeded('testuser'); - - $this->assertEquals('refreshed', $result); - } - - public function testRefreshStoresNewTokenWithIssuedAt(): void { - $this->setupDefaultLockBehavior(); - - $now = time(); - $this->tokenStorage->method('getUserToken') - ->with('testuser') - ->willReturn([ - 'access_token' => 'old-token', - 'refresh_token' => 'old-refresh', - 'expires_at' => $now + 100, - 'issued_at' => $now - 3500, - ]); - - $this->tokenRefresher->expects($this->once()) - ->method('refreshAccessToken') - ->willReturn([ - 'access_token' => 'new-token', - 'refresh_token' => 'new-refresh', - 'expires_in' => 3600, - ]); - - // Verify storeUserToken is called with issued_at parameter - $this->tokenStorage->expects($this->once()) - ->method('storeUserToken') - ->with( - 'testuser', - 'new-token', - 'new-refresh', - $this->greaterThan($now), // expires_at = now + 3600 - $this->greaterThanOrEqual($now) // issued_at = now - ); - - $result = $this->invokeRefreshUserTokenIfNeeded('testuser'); - - $this->assertEquals('refreshed', $result); - } - - public function testRefreshKeepsOldRefreshTokenIfNotRotated(): void { - $this->setupDefaultLockBehavior(); - - $now = time(); - $this->tokenStorage->method('getUserToken') - ->with('testuser') - ->willReturn([ - 'access_token' => 'old-token', - 'refresh_token' => 'original-refresh', - 'expires_at' => $now + 100, - 'issued_at' => $now - 3500, - ]); - - // IdP returns new access token but no new refresh token (no rotation) - $this->tokenRefresher->expects($this->once()) - ->method('refreshAccessToken') - ->willReturn([ - 'access_token' => 'new-token', - // No refresh_token in response - 'expires_in' => 3600, - ]); - - // Should use the original refresh token - $this->tokenStorage->expects($this->once()) - ->method('storeUserToken') - ->with( - 'testuser', - 'new-token', - 'original-refresh', // Original refresh token preserved - $this->anything(), - $this->anything() - ); - - $result = $this->invokeRefreshUserTokenIfNeeded('testuser'); - - $this->assertEquals('refreshed', $result); - } - - public function testRefreshHandlesException(): void { - $this->setupDefaultLockBehavior(); - - $now = time(); - $this->tokenStorage->method('getUserToken') - ->with('testuser') - ->willReturn([ - 'access_token' => 'token', - 'refresh_token' => 'refresh', - 'expires_at' => $now + 100, - 'issued_at' => $now - 3500, - ]); - - $this->tokenRefresher->expects($this->once()) - ->method('refreshAccessToken') - ->willThrowException(new \Exception('Network error')); - - $this->logger->expects($this->once()) - ->method('error') - ->with($this->stringContains('Failed to refresh')); - - $result = $this->invokeRefreshUserTokenIfNeeded('testuser'); - - $this->assertEquals('failed', $result); - } - - public function testRefreshSkippedWhenNoToken(): void { - $this->tokenStorage->method('getUserToken') - ->with('testuser') - ->willReturn(null); - - $this->tokenRefresher->expects($this->never()) - ->method('refreshAccessToken'); - - $result = $this->invokeRefreshUserTokenIfNeeded('testuser'); - - $this->assertEquals('skipped', $result); - } - - // ========================================================================= - // Locking Tests - // ========================================================================= - - public function testRefreshSkippedWhenLockCannotBeAcquired(): void { - $now = time(); - $this->tokenStorage->method('getUserToken') - ->with('testuser') - ->willReturn([ - 'access_token' => 'expiring-token', - 'refresh_token' => 'refresh-token', - 'expires_at' => $now + 100, // ~100s remaining (< 50% of default) - 'issued_at' => $now - 3500, - ]); - - // Lock acquisition fails (on-demand refresh is holding it) - $this->tokenStorage->expects($this->once()) - ->method('withTokenLock') - ->willThrowException(new LockedException('astrolabe/oauth/tokens/testuser')); - - // Token refresher should NOT be called when lock fails - $this->tokenRefresher->expects($this->never()) - ->method('refreshAccessToken'); - - $this->logger->expects($this->once()) - ->method('debug') - ->with($this->stringContains('Lock held for user testuser')); - - $result = $this->invokeRefreshUserTokenIfNeeded('testuser'); - - $this->assertEquals('skipped', $result); - } - - public function testRefreshUsesLockForTokenRefresh(): void { - $now = time(); - $this->tokenStorage->method('getUserToken') - ->with('testuser') - ->willReturn([ - 'access_token' => 'expiring-token', - 'refresh_token' => 'refresh-token', - 'expires_at' => $now + 100, - 'issued_at' => $now - 3500, - ]); - - // withTokenLock is called and executes the callback - $this->tokenStorage->expects($this->once()) - ->method('withTokenLock') - ->with('testuser', $this->isInstanceOf(\Closure::class)) - ->willReturnCallback(function ($userId, $callback) { - return $callback(); - }); - - $this->tokenRefresher->expects($this->once()) - ->method('refreshAccessToken') - ->with('refresh-token') - ->willReturn([ - 'access_token' => 'new-token', - 'refresh_token' => 'new-refresh-token', - 'expires_in' => 3600, - ]); - - $this->tokenStorage->expects($this->once()) - ->method('storeUserToken'); - - $result = $this->invokeRefreshUserTokenIfNeeded('testuser'); - - $this->assertEquals('refreshed', $result); - } - - public function testRefreshSkippedWhenTokenAlreadyRefreshedWhileWaitingForLock(): void { - $now = time(); - - // First call (before lock): token is expiring - // Calls inside lock callback: token is now fresh - $callCount = 0; - $this->tokenStorage->method('getUserToken') - ->with('testuser') - ->willReturnCallback(function () use (&$callCount, $now) { - $callCount++; - if ($callCount === 1) { - // First check: token is expiring - return [ - 'access_token' => 'expiring-token', - 'refresh_token' => 'refresh-token', - 'expires_at' => $now + 100, - 'issued_at' => $now - 3500, - ]; - } - // Inside lock: token was already refreshed - return [ - 'access_token' => 'already-refreshed-token', - 'refresh_token' => 'new-refresh-token', - 'expires_at' => $now + 3600, // Fresh token - 'issued_at' => $now, - ]; - }); - - // withTokenLock is called and executes the callback - $this->tokenStorage->expects($this->once()) - ->method('withTokenLock') - ->willReturnCallback(function ($userId, $callback) { - return $callback(); - }); - - // Token refresher should NOT be called since token is already fresh - $this->tokenRefresher->expects($this->never()) - ->method('refreshAccessToken'); - - $this->logger->expects($this->once()) - ->method('debug') - ->with($this->stringContains('already refreshed')); - - $result = $this->invokeRefreshUserTokenIfNeeded('testuser'); - - $this->assertEquals('skipped', $result); - } - - // ========================================================================= - // Helper Methods - // ========================================================================= - - /** - * Invoke the protected run() method. - */ - private function invokeRun(): void { - $reflection = new \ReflectionClass($this->job); - $method = $reflection->getMethod('run'); - $method->setAccessible(true); - $method->invoke($this->job, null); - } - - /** - * Invoke the private refreshUserTokenIfNeeded() method. - */ - private function invokeRefreshUserTokenIfNeeded(string $userId): string { - $reflection = new \ReflectionClass($this->job); - $method = $reflection->getMethod('refreshUserTokenIfNeeded'); - $method->setAccessible(true); - return $method->invoke($this->job, $userId); - } -} diff --git a/third_party/astrolabe/tests/unit/Service/IdpTokenRefresherTest.php b/third_party/astrolabe/tests/unit/Service/IdpTokenRefresherTest.php deleted file mode 100644 index 37c7096..0000000 --- a/third_party/astrolabe/tests/unit/Service/IdpTokenRefresherTest.php +++ /dev/null @@ -1,429 +0,0 @@ -config = $this->createMock(IConfig::class); - $this->clientService = $this->createMock(IClientService::class); - $this->httpClient = $this->createMock(IClient::class); - $this->logger = $this->createMock(LoggerInterface::class); - $this->mcpServerClient = $this->createMock(McpServerClient::class); - - $this->clientService->method('newClient')->willReturn($this->httpClient); - - $this->refresher = new IdpTokenRefresher( - $this->config, - $this->clientService, - $this->logger, - $this->mcpServerClient - ); - } - - // ========================================================================= - // getNextcloudBaseUrl() tests - // ========================================================================= - - /** - * @dataProvider provideBaseUrlTestCases - */ - public function testGetNextcloudBaseUrl(string $configValue, string $expected): void { - $this->config->method('getSystemValue') - ->with('astrolabe_internal_url', '') - ->willReturn($configValue); - - // Use reflection to test private method - $reflection = new \ReflectionClass($this->refresher); - $method = $reflection->getMethod('getNextcloudBaseUrl'); - $method->setAccessible(true); - - $result = $method->invoke($this->refresher); - - $this->assertEquals($expected, $result); - } - - /** - * Provides test cases for getNextcloudBaseUrl(). - * - * @return array - */ - public static function provideBaseUrlTestCases(): array { - return [ - 'default - no config' => ['', 'http://localhost'], - 'custom internal url' => ['http://web:8080', 'http://web:8080'], - 'custom url with trailing slash' => ['http://web:8080/', 'http://web:8080'], - 'kubernetes service' => ['http://nextcloud.default.svc:80', 'http://nextcloud.default.svc:80'], - 'https internal url' => ['https://internal.example.com', 'https://internal.example.com'], - ]; - } - - // ========================================================================= - // refreshAccessToken() tests - // ========================================================================= - - public function testRefreshAccessTokenFailsWithoutClientSecret(): void { - $this->config->method('getSystemValue') - ->willReturnMap([ - ['astrolabe_client_secret', '', ''], - ]); - - $this->logger->expects($this->once()) - ->method('warning') - ->with($this->stringContains('no client secret configured')); - - $result = $this->refresher->refreshAccessToken('test-refresh-token'); - - $this->assertNull($result); - } - - public function testRefreshAccessTokenFailsWithoutMcpServerUrl(): void { - $this->config->method('getSystemValue') - ->willReturnMap([ - ['astrolabe_client_secret', '', 'test-secret'], - ['mcp_server_url', '', ''], - ]); - - $this->logger->expects($this->once()) - ->method('error') - ->with( - $this->stringContains('Token refresh failed'), - $this->callback(fn ($ctx) => str_contains($ctx['error'], 'MCP server URL not configured')) - ); - - $result = $this->refresher->refreshAccessToken('test-refresh-token'); - - $this->assertNull($result); - } - - public function testRefreshAccessTokenWithInternalNextcloudOidc(): void { - // Setup config - $this->config->method('getSystemValue') - ->willReturnMap([ - ['astrolabe_client_secret', '', 'test-secret'], - ['mcp_server_url', '', 'http://mcp-server:8000'], - ['astrolabe_internal_url', '', ''], - ]); - - $this->mcpServerClient->method('getClientId') - ->willReturn('test-client-id'); - - // Mock MCP server status response (no external IdP configured) - $statusResponse = $this->createMock(IResponse::class); - $statusResponse->method('getBody') - ->willReturn(json_encode([ - 'version' => '1.0.0', - 'auth_mode' => 'multi_user_oauth', - // No 'oidc.discovery_url' = use internal Nextcloud OIDC - ])); - - // Mock token endpoint response - $tokenResponse = $this->createMock(IResponse::class); - $tokenResponse->method('getBody') - ->willReturn(json_encode([ - 'access_token' => 'new-access-token', - 'refresh_token' => 'new-refresh-token', - 'expires_in' => 3600, - 'token_type' => 'Bearer', - ])); - - // Setup HTTP client to return appropriate responses - $this->httpClient->method('get') - ->with('http://mcp-server:8000/api/v1/status') - ->willReturn($statusResponse); - - $this->httpClient->method('post') - ->with( - 'http://localhost/apps/oidc/token', - $this->callback(function ($options) { - // Verify the POST body contains expected parameters - $body = $options['body'] ?? ''; - return str_contains($body, 'grant_type=refresh_token') - && str_contains($body, 'client_id=test-client-id') - && str_contains($body, 'client_secret=test-secret') - && str_contains($body, 'refresh_token=test-refresh-token'); - }) - ) - ->willReturn($tokenResponse); - - $result = $this->refresher->refreshAccessToken('test-refresh-token'); - - $this->assertNotNull($result); - $this->assertEquals('new-access-token', $result['access_token']); - $this->assertEquals('new-refresh-token', $result['refresh_token']); - $this->assertEquals(3600, $result['expires_in']); - } - - public function testRefreshAccessTokenWithExternalIdp(): void { - // Setup config - $this->config->method('getSystemValue') - ->willReturnMap([ - ['astrolabe_client_secret', '', 'test-secret'], - ['mcp_server_url', '', 'http://mcp-server:8000'], - ]); - - $this->mcpServerClient->method('getClientId') - ->willReturn('test-client-id'); - - // Mock MCP server status response (external IdP configured) - $statusResponse = $this->createMock(IResponse::class); - $statusResponse->method('getBody') - ->willReturn(json_encode([ - 'version' => '1.0.0', - 'auth_mode' => 'multi_user_oauth', - 'oidc' => [ - 'discovery_url' => 'https://keycloak.example.com/realms/test/.well-known/openid-configuration', - ], - ])); - - // Mock OIDC discovery response - $discoveryResponse = $this->createMock(IResponse::class); - $discoveryResponse->method('getBody') - ->willReturn(json_encode([ - 'issuer' => 'https://keycloak.example.com/realms/test', - 'token_endpoint' => 'https://keycloak.example.com/realms/test/protocol/openid-connect/token', - 'authorization_endpoint' => 'https://keycloak.example.com/realms/test/protocol/openid-connect/auth', - ])); - - // Mock token endpoint response - $tokenResponse = $this->createMock(IResponse::class); - $tokenResponse->method('getBody') - ->willReturn(json_encode([ - 'access_token' => 'keycloak-access-token', - 'refresh_token' => 'keycloak-refresh-token', - 'expires_in' => 300, - 'token_type' => 'Bearer', - ])); - - // Setup HTTP client calls in order - $this->httpClient->method('get') - ->willReturnCallback(function ($url) use ($statusResponse, $discoveryResponse) { - if (str_contains($url, 'status')) { - return $statusResponse; - } - if (str_contains($url, '.well-known/openid-configuration')) { - return $discoveryResponse; - } - throw new \Exception("Unexpected URL: $url"); - }); - - $this->httpClient->method('post') - ->with( - 'https://keycloak.example.com/realms/test/protocol/openid-connect/token', - $this->anything() - ) - ->willReturn($tokenResponse); - - $result = $this->refresher->refreshAccessToken('test-refresh-token'); - - $this->assertNotNull($result); - $this->assertEquals('keycloak-access-token', $result['access_token']); - $this->assertEquals('keycloak-refresh-token', $result['refresh_token']); - $this->assertEquals(300, $result['expires_in']); - } - - public function testRefreshAccessTokenFailsOnMissingRefreshTokenInResponse(): void { - // Setup config - $this->config->method('getSystemValue') - ->willReturnMap([ - ['astrolabe_client_secret', '', 'test-secret'], - ['mcp_server_url', '', 'http://mcp-server:8000'], - ['astrolabe_internal_url', '', ''], - ]); - - $this->mcpServerClient->method('getClientId') - ->willReturn('test-client-id'); - - // Mock MCP server status response - $statusResponse = $this->createMock(IResponse::class); - $statusResponse->method('getBody') - ->willReturn(json_encode(['version' => '1.0.0'])); - - // Mock token response WITHOUT refresh_token (token rotation failure) - $tokenResponse = $this->createMock(IResponse::class); - $tokenResponse->method('getBody') - ->willReturn(json_encode([ - 'access_token' => 'new-access-token', - // Missing refresh_token! - 'expires_in' => 3600, - ])); - - $this->httpClient->method('get')->willReturn($statusResponse); - $this->httpClient->method('post')->willReturn($tokenResponse); - - $this->logger->expects($this->once()) - ->method('error') - ->with( - $this->stringContains('No refresh token in response'), - $this->anything() - ); - - $result = $this->refresher->refreshAccessToken('test-refresh-token'); - - $this->assertNull($result); - } - - public function testRefreshAccessTokenHandlesHttpException(): void { - // Setup config - $this->config->method('getSystemValue') - ->willReturnMap([ - ['astrolabe_client_secret', '', 'test-secret'], - ['mcp_server_url', '', 'http://mcp-server:8000'], - ]); - - // HTTP client throws exception - $this->httpClient->method('get') - ->willThrowException(new \Exception('Connection refused')); - - $this->logger->expects($this->once()) - ->method('error') - ->with( - $this->stringContains('Token refresh failed'), - $this->callback(fn ($ctx) => str_contains($ctx['error'], 'Connection refused')) - ); - - $result = $this->refresher->refreshAccessToken('test-refresh-token'); - - $this->assertNull($result); - } - - public function testRefreshAccessTokenHandlesInvalidStatusResponse(): void { - // Setup config - $this->config->method('getSystemValue') - ->willReturnMap([ - ['astrolabe_client_secret', '', 'test-secret'], - ['mcp_server_url', '', 'http://mcp-server:8000'], - ]); - - // Mock invalid JSON response - $statusResponse = $this->createMock(IResponse::class); - $statusResponse->method('getBody') - ->willReturn('not valid json'); - - $this->httpClient->method('get')->willReturn($statusResponse); - - $this->logger->expects($this->once()) - ->method('error') - ->with( - $this->stringContains('Token refresh failed'), - $this->callback(fn ($ctx) => str_contains($ctx['error'], 'Invalid status response')) - ); - - $result = $this->refresher->refreshAccessToken('test-refresh-token'); - - $this->assertNull($result); - } - - public function testRefreshAccessTokenHandlesInvalidDiscoveryResponse(): void { - // Setup config - $this->config->method('getSystemValue') - ->willReturnMap([ - ['astrolabe_client_secret', '', 'test-secret'], - ['mcp_server_url', '', 'http://mcp-server:8000'], - ]); - - $this->mcpServerClient->method('getClientId') - ->willReturn('test-client-id'); - - // Mock MCP server status response with external IdP - $statusResponse = $this->createMock(IResponse::class); - $statusResponse->method('getBody') - ->willReturn(json_encode([ - 'oidc' => [ - 'discovery_url' => 'https://keycloak.example.com/.well-known/openid-configuration', - ], - ])); - - // Mock invalid discovery response (missing token_endpoint) - $discoveryResponse = $this->createMock(IResponse::class); - $discoveryResponse->method('getBody') - ->willReturn(json_encode([ - 'issuer' => 'https://keycloak.example.com', - // Missing token_endpoint! - ])); - - $this->httpClient->method('get') - ->willReturnCallback(function ($url) use ($statusResponse, $discoveryResponse) { - if (str_contains($url, 'status')) { - return $statusResponse; - } - return $discoveryResponse; - }); - - $this->logger->expects($this->once()) - ->method('error') - ->with( - $this->stringContains('Token refresh failed'), - $this->callback(fn ($ctx) => str_contains($ctx['error'], 'Invalid OIDC discovery response')) - ); - - $result = $this->refresher->refreshAccessToken('test-refresh-token'); - - $this->assertNull($result); - } - - public function testRefreshAccessTokenHandlesInvalidTokenResponse(): void { - // Setup config - $this->config->method('getSystemValue') - ->willReturnMap([ - ['astrolabe_client_secret', '', 'test-secret'], - ['mcp_server_url', '', 'http://mcp-server:8000'], - ['astrolabe_internal_url', '', ''], - ]); - - $this->mcpServerClient->method('getClientId') - ->willReturn('test-client-id'); - - // Mock MCP server status response - $statusResponse = $this->createMock(IResponse::class); - $statusResponse->method('getBody') - ->willReturn(json_encode(['version' => '1.0.0'])); - - // Mock token response without access_token - $tokenResponse = $this->createMock(IResponse::class); - $tokenResponse->method('getBody') - ->willReturn(json_encode([ - 'error' => 'invalid_grant', - 'error_description' => 'Refresh token expired', - ])); - - $this->httpClient->method('get')->willReturn($statusResponse); - $this->httpClient->method('post')->willReturn($tokenResponse); - - $this->logger->expects($this->once()) - ->method('error') - ->with( - $this->stringContains('Token refresh failed'), - $this->callback(fn ($ctx) => str_contains($ctx['error'], 'Invalid token response')) - ); - - $result = $this->refresher->refreshAccessToken('test-refresh-token'); - - $this->assertNull($result); - } -} diff --git a/third_party/astrolabe/tests/unit/Service/McpTokenStorageTest.php b/third_party/astrolabe/tests/unit/Service/McpTokenStorageTest.php deleted file mode 100644 index d2bc761..0000000 --- a/third_party/astrolabe/tests/unit/Service/McpTokenStorageTest.php +++ /dev/null @@ -1,829 +0,0 @@ -config = $this->createMock(IConfig::class); - $this->crypto = $this->createMock(ICrypto::class); - $this->db = $this->createMock(IDBConnection::class); - $this->logger = $this->createMock(LoggerInterface::class); - $this->lockingProvider = $this->createMock(ILockingProvider::class); - - $this->storage = new McpTokenStorage( - $this->config, - $this->crypto, - $this->db, - $this->logger, - $this->lockingProvider - ); - } - - // ========================================================================= - // OAuth Token Storage Tests - // ========================================================================= - - public function testStoreUserToken(): void { - $userId = 'testuser'; - $accessToken = 'access-token-123'; - $refreshToken = 'refresh-token-456'; - $expiresAt = time() + 3600; - - $this->crypto->expects($this->once()) - ->method('encrypt') - ->with($this->callback(function (string $json) use ($accessToken, $refreshToken, $expiresAt) { - $data = json_decode($json, true); - return $data['access_token'] === $accessToken - && $data['refresh_token'] === $refreshToken - && $data['expires_at'] === $expiresAt - && isset($data['issued_at']); // issued_at should be set (defaults to time()) - })) - ->willReturn('encrypted-data'); - - $this->config->expects($this->once()) - ->method('setUserValue') - ->with($userId, 'astrolabe', 'oauth_tokens', 'encrypted-data'); - - $this->storage->storeUserToken($userId, $accessToken, $refreshToken, $expiresAt); - } - - public function testGetUserTokenReturnsTokenData(): void { - $userId = 'testuser'; - $tokenData = [ - 'access_token' => 'access-token-123', - 'refresh_token' => 'refresh-token-456', - 'expires_at' => time() + 3600, - ]; - - $this->config->method('getUserValue') - ->with($userId, 'astrolabe', 'oauth_tokens', '') - ->willReturn('encrypted-data'); - - $this->crypto->method('decrypt') - ->with('encrypted-data') - ->willReturn(json_encode($tokenData)); - - $result = $this->storage->getUserToken($userId); - - $this->assertEquals($tokenData, $result); - } - - public function testGetUserTokenReturnsNullWhenNoTokenStored(): void { - $userId = 'testuser'; - - $this->config->method('getUserValue') - ->with($userId, 'astrolabe', 'oauth_tokens', '') - ->willReturn(''); - - $result = $this->storage->getUserToken($userId); - - $this->assertNull($result); - } - - public function testGetUserTokenReturnsNullOnDecryptionFailure(): void { - $userId = 'testuser'; - - $this->config->method('getUserValue') - ->willReturn('encrypted-data'); - - $this->crypto->method('decrypt') - ->willThrowException(new \Exception('Decryption failed')); - - $result = $this->storage->getUserToken($userId); - - $this->assertNull($result); - } - - public function testDeleteUserToken(): void { - $userId = 'testuser'; - - $this->config->expects($this->once()) - ->method('deleteUserValue') - ->with($userId, 'astrolabe', 'oauth_tokens'); - - $this->storage->deleteUserToken($userId); - } - - // ========================================================================= - // Token Expiration Tests - // ========================================================================= - - public function testIsExpiredReturnsTrueWhenNoExpiresAt(): void { - $token = ['access_token' => 'test']; - - $this->assertTrue($this->storage->isExpired($token)); - } - - public function testIsExpiredReturnsTrueWhenExpired(): void { - $token = [ - 'access_token' => 'test', - 'expires_at' => time() - 100, // Expired 100 seconds ago - ]; - - $this->assertTrue($this->storage->isExpired($token)); - } - - public function testIsExpiredReturnsTrueWhenAboutToExpire(): void { - $token = [ - 'access_token' => 'test', - 'expires_at' => time() + 30, // Expires in 30 seconds (within 60s buffer) - ]; - - $this->assertTrue($this->storage->isExpired($token)); - } - - public function testIsExpiredReturnsFalseWhenValid(): void { - $token = [ - 'access_token' => 'test', - 'expires_at' => time() + 3600, // Expires in 1 hour - ]; - - $this->assertFalse($this->storage->isExpired($token)); - } - - // ========================================================================= - // getAccessToken with Refresh Callback Tests - // ========================================================================= - - public function testGetAccessTokenReturnsNullWhenNoToken(): void { - $userId = 'testuser'; - - $this->config->method('getUserValue') - ->willReturn(''); - - $result = $this->storage->getAccessToken($userId); - - $this->assertNull($result); - } - - public function testGetAccessTokenReturnsTokenWhenValid(): void { - $userId = 'testuser'; - $tokenData = [ - 'access_token' => 'valid-access-token', - 'refresh_token' => 'refresh-token', - 'expires_at' => time() + 3600, // Valid for 1 hour - ]; - - $this->config->method('getUserValue') - ->willReturn('encrypted-data'); - - $this->crypto->method('decrypt') - ->willReturn(json_encode($tokenData)); - - $result = $this->storage->getAccessToken($userId); - - $this->assertEquals('valid-access-token', $result); - } - - public function testGetAccessTokenRefreshesExpiredToken(): void { - $userId = 'testuser'; - $expiredTokenData = [ - 'access_token' => 'expired-access-token', - 'refresh_token' => 'old-refresh-token', - 'expires_at' => time() - 100, // Expired - ]; - - $newTokenData = [ - 'access_token' => 'new-access-token', - 'refresh_token' => 'new-refresh-token', - 'expires_in' => 3600, - ]; - - // First call returns expired token, subsequent calls for storing new token - $this->config->method('getUserValue') - ->willReturn('encrypted-data'); - - $this->crypto->method('decrypt') - ->willReturn(json_encode($expiredTokenData)); - - // Encrypt is called when storing the new token - $this->crypto->method('encrypt') - ->willReturn('new-encrypted-data'); - - $this->config->expects($this->once()) - ->method('setUserValue') - ->with($userId, 'astrolabe', 'oauth_tokens', 'new-encrypted-data'); - - // Refresh callback - $refreshCallback = function (string $refreshToken) use ($newTokenData) { - $this->assertEquals('old-refresh-token', $refreshToken); - return $newTokenData; - }; - - $result = $this->storage->getAccessToken($userId, $refreshCallback); - - $this->assertEquals('new-access-token', $result); - } - - public function testGetAccessTokenReturnsNullWhenRefreshFailsAndDeletesToken(): void { - $userId = 'testuser'; - $expiredTokenData = [ - 'access_token' => 'expired-access-token', - 'refresh_token' => 'old-refresh-token', - 'expires_at' => time() - 100, // Expired - ]; - - $this->config->method('getUserValue') - ->willReturn('encrypted-data'); - - $this->crypto->method('decrypt') - ->willReturn(json_encode($expiredTokenData)); - - // Expect stale token to be deleted when refresh fails - $this->config->expects($this->once()) - ->method('deleteUserValue') - ->with($userId, 'astrolabe', 'oauth_tokens'); - - // Refresh callback returns null (failure) - $refreshCallback = fn (string $refreshToken) => null; - - $result = $this->storage->getAccessToken($userId, $refreshCallback); - - $this->assertNull($result); - } - - public function testGetAccessTokenReturnsNullWhenExpiredAndNoCallbackAndDeletesToken(): void { - $userId = 'testuser'; - $expiredTokenData = [ - 'access_token' => 'expired-access-token', - 'refresh_token' => 'old-refresh-token', - 'expires_at' => time() - 100, // Expired - ]; - - $this->config->method('getUserValue') - ->willReturn('encrypted-data'); - - $this->crypto->method('decrypt') - ->willReturn(json_encode($expiredTokenData)); - - // Expect stale token to be deleted when expired with no callback - $this->config->expects($this->once()) - ->method('deleteUserValue') - ->with($userId, 'astrolabe', 'oauth_tokens'); - - // No refresh callback provided - $result = $this->storage->getAccessToken($userId, null); - - $this->assertNull($result); - } - - // ========================================================================= - // Token Refresh Locking Tests - // ========================================================================= - - public function testGetAccessTokenAcquiresLockWhenRefreshing(): void { - $userId = 'testuser'; - $expiredTokenData = [ - 'access_token' => 'expired-access-token', - 'refresh_token' => 'old-refresh-token', - 'expires_at' => time() - 100, // Expired - ]; - - $newTokenData = [ - 'access_token' => 'new-access-token', - 'refresh_token' => 'new-refresh-token', - 'expires_in' => 3600, - ]; - - $this->config->method('getUserValue') - ->willReturn('encrypted-data'); - - $this->crypto->method('decrypt') - ->willReturn(json_encode($expiredTokenData)); - - $this->crypto->method('encrypt') - ->willReturn('new-encrypted-data'); - - // Verify lock is acquired and released - $this->lockingProvider->expects($this->once()) - ->method('acquireLock') - ->with('astrolabe/oauth/tokens/testuser', ILockingProvider::LOCK_EXCLUSIVE); - - $this->lockingProvider->expects($this->once()) - ->method('releaseLock') - ->with('astrolabe/oauth/tokens/testuser', ILockingProvider::LOCK_EXCLUSIVE); - - $refreshCallback = fn (string $refreshToken) => $newTokenData; - - $result = $this->storage->getAccessToken($userId, $refreshCallback); - - $this->assertEquals('new-access-token', $result); - } - - public function testGetAccessTokenReturnsStaleTokenOnLockedException(): void { - $userId = 'testuser'; - $expiredTokenData = [ - 'access_token' => 'expired-access-token', - 'refresh_token' => 'old-refresh-token', - 'expires_at' => time() - 100, // Expired - ]; - - $this->config->method('getUserValue') - ->willReturn('encrypted-data'); - - $this->crypto->method('decrypt') - ->willReturn(json_encode($expiredTokenData)); - - // Lock acquisition fails - $this->lockingProvider->expects($this->once()) - ->method('acquireLock') - ->willThrowException(new LockedException('astrolabe/oauth/tokens/testuser')); - - // Refresh callback should NOT be called when lock fails - $refreshCallbackCalled = false; - $refreshCallback = function (string $refreshToken) use (&$refreshCallbackCalled) { - $refreshCallbackCalled = true; - return ['access_token' => 'new-token', 'expires_in' => 3600]; - }; - - $result = $this->storage->getAccessToken($userId, $refreshCallback); - - // Should return stale token instead of failing - $this->assertEquals('expired-access-token', $result); - $this->assertFalse($refreshCallbackCalled); - } - - public function testGetAccessTokenSkipsRefreshWhenTokenAlreadyRefreshedWhileWaitingForLock(): void { - $userId = 'testuser'; - $expiredTokenData = [ - 'access_token' => 'expired-access-token', - 'refresh_token' => 'old-refresh-token', - 'expires_at' => time() - 100, // Expired - ]; - - // After lock is acquired, token appears fresh (another process refreshed it) - $freshTokenData = [ - 'access_token' => 'fresh-access-token', - 'refresh_token' => 'fresh-refresh-token', - 'expires_at' => time() + 3600, // Valid for 1 hour - ]; - - $callCount = 0; - $this->config->method('getUserValue') - ->willReturn('encrypted-data'); - - // First call returns expired, subsequent calls return fresh - $this->crypto->method('decrypt') - ->willReturnCallback(function () use (&$callCount, $expiredTokenData, $freshTokenData) { - $callCount++; - return $callCount === 1 - ? json_encode($expiredTokenData) - : json_encode($freshTokenData); - }); - - $this->lockingProvider->expects($this->once()) - ->method('acquireLock'); - - $this->lockingProvider->expects($this->once()) - ->method('releaseLock'); - - // Refresh callback should NOT be called since token is already fresh - $refreshCallbackCalled = false; - $refreshCallback = function (string $refreshToken) use (&$refreshCallbackCalled) { - $refreshCallbackCalled = true; - return ['access_token' => 'new-token', 'expires_in' => 3600]; - }; - - $result = $this->storage->getAccessToken($userId, $refreshCallback); - - $this->assertEquals('fresh-access-token', $result); - $this->assertFalse($refreshCallbackCalled); - } - - public function testGetAccessTokenNoLockRequiredWhenNotExpired(): void { - $userId = 'testuser'; - $validTokenData = [ - 'access_token' => 'valid-access-token', - 'refresh_token' => 'refresh-token', - 'expires_at' => time() + 3600, // Valid for 1 hour - ]; - - $this->config->method('getUserValue') - ->willReturn('encrypted-data'); - - $this->crypto->method('decrypt') - ->willReturn(json_encode($validTokenData)); - - // Lock should NOT be acquired for valid tokens - $this->lockingProvider->expects($this->never()) - ->method('acquireLock'); - - $this->lockingProvider->expects($this->never()) - ->method('releaseLock'); - - $result = $this->storage->getAccessToken($userId); - - $this->assertEquals('valid-access-token', $result); - } - - // ========================================================================= - // App Password Storage Tests (Multi-User Basic Auth) - // ========================================================================= - - public function testStoreBackgroundSyncPassword(): void { - $userId = 'testuser'; - $appPassword = 'app-password-secret'; - - $this->crypto->expects($this->once()) - ->method('encrypt') - ->with($appPassword) - ->willReturn('encrypted-password'); - - // Expect three setUserValue calls: password, type, timestamp - $this->config->expects($this->exactly(3)) - ->method('setUserValue') - ->willReturnCallback(function ($uid, $app, $key, $value) use ($userId) { - $this->assertEquals($userId, $uid); - $this->assertEquals('astrolabe', $app); - $this->assertContains($key, [ - 'background_sync_password', - 'background_sync_type', - 'background_sync_provisioned_at' - ]); - return null; - }); - - $this->storage->storeBackgroundSyncPassword($userId, $appPassword); - } - - public function testGetBackgroundSyncPasswordReturnsPassword(): void { - $userId = 'testuser'; - $appPassword = 'app-password-secret'; - - $this->config->method('getUserValue') - ->with($userId, 'astrolabe', 'background_sync_password', '') - ->willReturn('encrypted-password'); - - $this->crypto->method('decrypt') - ->with('encrypted-password') - ->willReturn($appPassword); - - $result = $this->storage->getBackgroundSyncPassword($userId); - - $this->assertEquals($appPassword, $result); - } - - public function testGetBackgroundSyncPasswordReturnsNullWhenNotSet(): void { - $userId = 'testuser'; - - $this->config->method('getUserValue') - ->with($userId, 'astrolabe', 'background_sync_password', '') - ->willReturn(''); - - $result = $this->storage->getBackgroundSyncPassword($userId); - - $this->assertNull($result); - } - - public function testGetBackgroundSyncPasswordReturnsNullOnDecryptionFailure(): void { - $userId = 'testuser'; - - $this->config->method('getUserValue') - ->willReturn('encrypted-password'); - - $this->crypto->method('decrypt') - ->willThrowException(new \Exception('Decryption failed')); - - $result = $this->storage->getBackgroundSyncPassword($userId); - - $this->assertNull($result); - } - - public function testDeleteBackgroundSyncPassword(): void { - $userId = 'testuser'; - - // Expect three deleteUserValue calls - $this->config->expects($this->exactly(3)) - ->method('deleteUserValue') - ->willReturnCallback(function ($uid, $app, $key) use ($userId) { - $this->assertEquals($userId, $uid); - $this->assertEquals('astrolabe', $app); - $this->assertContains($key, [ - 'background_sync_password', - 'background_sync_type', - 'background_sync_provisioned_at' - ]); - return null; - }); - - $this->storage->deleteBackgroundSyncPassword($userId); - } - - // ========================================================================= - // Background Sync Access Check Tests - // ========================================================================= - - public function testHasBackgroundSyncAccessReturnsTrueWithOAuthToken(): void { - $userId = 'testuser'; - $tokenData = [ - 'access_token' => 'access-token', - 'refresh_token' => 'refresh-token', - 'expires_at' => time() + 3600, - ]; - - $this->config->method('getUserValue') - ->willReturnCallback(function ($uid, $app, $key, $default) use ($tokenData) { - if ($key === 'oauth_tokens') { - return 'encrypted-oauth-data'; - } - return $default; - }); - - $this->crypto->method('decrypt') - ->willReturn(json_encode($tokenData)); - - $result = $this->storage->hasBackgroundSyncAccess($userId); - - $this->assertTrue($result); - } - - public function testHasBackgroundSyncAccessReturnsTrueWithAppPassword(): void { - $userId = 'testuser'; - - $this->config->method('getUserValue') - ->willReturnCallback(function ($uid, $app, $key, $default) { - if ($key === 'oauth_tokens') { - return ''; // No OAuth tokens - } - if ($key === 'background_sync_password') { - return 'encrypted-password'; - } - return $default; - }); - - $this->crypto->method('decrypt') - ->willReturn('decrypted-app-password'); - - $result = $this->storage->hasBackgroundSyncAccess($userId); - - $this->assertTrue($result); - } - - public function testHasBackgroundSyncAccessReturnsFalseWithNeither(): void { - $userId = 'testuser'; - - $this->config->method('getUserValue') - ->willReturn(''); // No tokens or passwords - - $result = $this->storage->hasBackgroundSyncAccess($userId); - - $this->assertFalse($result); - } - - // ========================================================================= - // Background Sync Type Tests - // ========================================================================= - - public function testGetBackgroundSyncTypeReturnsAppPassword(): void { - $userId = 'testuser'; - - $this->config->method('getUserValue') - ->willReturnCallback(function ($uid, $app, $key, $default) { - if ($key === 'background_sync_type') { - return 'app_password'; - } - return $default; - }); - - $result = $this->storage->getBackgroundSyncType($userId); - - $this->assertEquals('app_password', $result); - } - - public function testGetBackgroundSyncTypeFallsBackToOAuth(): void { - $userId = 'testuser'; - $tokenData = [ - 'access_token' => 'access-token', - 'refresh_token' => 'refresh-token', - 'expires_at' => time() + 3600, - ]; - - $this->config->method('getUserValue') - ->willReturnCallback(function ($uid, $app, $key, $default) { - if ($key === 'background_sync_type') { - return ''; // Type not explicitly set - } - if ($key === 'oauth_tokens') { - return 'encrypted-oauth-data'; - } - return $default; - }); - - $this->crypto->method('decrypt') - ->willReturn(json_encode($tokenData)); - - $result = $this->storage->getBackgroundSyncType($userId); - - $this->assertEquals('oauth', $result); - } - - public function testGetBackgroundSyncTypeReturnsNullWhenNotProvisioned(): void { - $userId = 'testuser'; - - $this->config->method('getUserValue') - ->willReturn(''); - - $result = $this->storage->getBackgroundSyncType($userId); - - $this->assertNull($result); - } - - // ========================================================================= - // Background Sync Provisioned Timestamp Tests - // ========================================================================= - - public function testGetBackgroundSyncProvisionedAtReturnsTimestamp(): void { - $userId = 'testuser'; - $timestamp = time(); - - $this->config->method('getUserValue') - ->with($userId, 'astrolabe', 'background_sync_provisioned_at', '') - ->willReturn((string)$timestamp); - - $result = $this->storage->getBackgroundSyncProvisionedAt($userId); - - $this->assertEquals($timestamp, $result); - } - - public function testGetBackgroundSyncProvisionedAtReturnsNullWhenNotSet(): void { - $userId = 'testuser'; - - $this->config->method('getUserValue') - ->with($userId, 'astrolabe', 'background_sync_provisioned_at', '') - ->willReturn(''); - - $result = $this->storage->getBackgroundSyncProvisionedAt($userId); - - $this->assertNull($result); - } - - // ========================================================================= - // getAllUsersWithTokens Tests - // ========================================================================= - - public function testGetAllUsersWithTokensReturnsUserIds(): void { - $qb = $this->createMock(IQueryBuilder::class); - $expr = $this->createMock(IExpressionBuilder::class); - $result = $this->createMock(IResult::class); - - // Chain builder methods - $qb->method('select')->willReturnSelf(); - $qb->method('from')->willReturnSelf(); - $qb->method('where')->willReturnSelf(); - $qb->method('andWhere')->willReturnSelf(); - $qb->method('expr')->willReturn($expr); - $qb->method('createNamedParameter')->willReturnArgument(0); - $qb->method('executeQuery')->willReturn($result); - - // Mock expression builder - $expr->method('eq')->willReturn('mocked_condition'); - - // Mock result set with multiple users - $result->method('fetch')->willReturnOnConsecutiveCalls( - ['userid' => 'admin'], - ['userid' => 'alice'], - ['userid' => 'bob'], - false // End of results - ); - $result->expects($this->once())->method('closeCursor'); - - $this->db->method('getQueryBuilder')->willReturn($qb); - - $userIds = $this->storage->getAllUsersWithTokens(); - - $this->assertEquals(['admin', 'alice', 'bob'], $userIds); - } - - public function testGetAllUsersWithTokensReturnsEmptyArrayWhenNoTokens(): void { - $qb = $this->createMock(IQueryBuilder::class); - $expr = $this->createMock(IExpressionBuilder::class); - $result = $this->createMock(IResult::class); - - // Chain builder methods - $qb->method('select')->willReturnSelf(); - $qb->method('from')->willReturnSelf(); - $qb->method('where')->willReturnSelf(); - $qb->method('andWhere')->willReturnSelf(); - $qb->method('expr')->willReturn($expr); - $qb->method('createNamedParameter')->willReturnArgument(0); - $qb->method('executeQuery')->willReturn($result); - - // Mock expression builder - $expr->method('eq')->willReturn('mocked_condition'); - - // Mock empty result set - $result->method('fetch')->willReturn(false); - $result->expects($this->once())->method('closeCursor'); - - $this->db->method('getQueryBuilder')->willReturn($qb); - - $userIds = $this->storage->getAllUsersWithTokens(); - - $this->assertEquals([], $userIds); - } - - public function testGetAllUsersWithTokensWithLimitAndOffset(): void { - $qb = $this->createMock(IQueryBuilder::class); - $expr = $this->createMock(IExpressionBuilder::class); - $result = $this->createMock(IResult::class); - - // Chain builder methods - $qb->method('select')->willReturnSelf(); - $qb->method('from')->willReturnSelf(); - $qb->method('where')->willReturnSelf(); - $qb->method('andWhere')->willReturnSelf(); - $qb->method('expr')->willReturn($expr); - $qb->method('createNamedParameter')->willReturnArgument(0); - $qb->method('executeQuery')->willReturn($result); - - // Verify setMaxResults and setFirstResult are called with correct values - $qb->expects($this->once()) - ->method('setMaxResults') - ->with(50) - ->willReturnSelf(); - $qb->expects($this->once()) - ->method('setFirstResult') - ->with(100) - ->willReturnSelf(); - - // Mock expression builder - $expr->method('eq')->willReturn('mocked_condition'); - - // Mock result set - $result->method('fetch')->willReturnOnConsecutiveCalls( - ['userid' => 'user1'], - ['userid' => 'user2'], - false - ); - $result->expects($this->once())->method('closeCursor'); - - $this->db->method('getQueryBuilder')->willReturn($qb); - - $userIds = $this->storage->getAllUsersWithTokens(50, 100); - - $this->assertEquals(['user1', 'user2'], $userIds); - } - - public function testGetAllUsersWithTokensWithZeroLimitDoesNotSetMaxResults(): void { - $qb = $this->createMock(IQueryBuilder::class); - $expr = $this->createMock(IExpressionBuilder::class); - $result = $this->createMock(IResult::class); - - // Chain builder methods - $qb->method('select')->willReturnSelf(); - $qb->method('from')->willReturnSelf(); - $qb->method('where')->willReturnSelf(); - $qb->method('andWhere')->willReturnSelf(); - $qb->method('expr')->willReturn($expr); - $qb->method('createNamedParameter')->willReturnArgument(0); - $qb->method('executeQuery')->willReturn($result); - - // setMaxResults should NOT be called when limit is 0 - $qb->expects($this->never()) - ->method('setMaxResults'); - - // setFirstResult should NOT be called when offset is 0 - $qb->expects($this->never()) - ->method('setFirstResult'); - - // Mock expression builder - $expr->method('eq')->willReturn('mocked_condition'); - - // Mock result set - $result->method('fetch')->willReturn(false); - $result->expects($this->once())->method('closeCursor'); - - $this->db->method('getQueryBuilder')->willReturn($qb); - - $this->storage->getAllUsersWithTokens(0, 0); - } -} diff --git a/third_party/astrolabe/tests/unit/bootstrap.php b/third_party/astrolabe/tests/unit/bootstrap.php deleted file mode 100644 index a0d0e46..0000000 --- a/third_party/astrolabe/tests/unit/bootstrap.php +++ /dev/null @@ -1,13 +0,0 @@ - - - - . - - - - ../../lib - - - diff --git a/third_party/astrolabe/vendor-bin/cs-fixer/composer.json b/third_party/astrolabe/vendor-bin/cs-fixer/composer.json deleted file mode 100644 index dc131e7..0000000 --- a/third_party/astrolabe/vendor-bin/cs-fixer/composer.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "require-dev": { - "nextcloud/coding-standard": "^1.2" - }, - "config": { - "platform": { - "php": "8.1" - } - } -} diff --git a/third_party/astrolabe/vendor-bin/cs-fixer/composer.lock b/third_party/astrolabe/vendor-bin/cs-fixer/composer.lock deleted file mode 100644 index 62f4f6e..0000000 --- a/third_party/astrolabe/vendor-bin/cs-fixer/composer.lock +++ /dev/null @@ -1,171 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", - "This file is @generated automatically" - ], - "content-hash": "59bdbac023efd7059e30cfd98dc00b94", - "packages": [], - "packages-dev": [ - { - "name": "kubawerlos/php-cs-fixer-custom-fixers", - "version": "v3.35.1", - "source": { - "type": "git", - "url": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers.git", - "reference": "2a35f80ae24ca77443a7af1599c3a3db1b6bd395" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/kubawerlos/php-cs-fixer-custom-fixers/zipball/2a35f80ae24ca77443a7af1599c3a3db1b6bd395", - "reference": "2a35f80ae24ca77443a7af1599c3a3db1b6bd395", - "shasum": "" - }, - "require": { - "ext-filter": "*", - "ext-tokenizer": "*", - "friendsofphp/php-cs-fixer": "^3.87", - "php": "^7.4 || ^8.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.6.24 || ^10.5.51 || ^11.5.32" - }, - "type": "library", - "autoload": { - "psr-4": { - "PhpCsFixerCustomFixers\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Kuba Werłos", - "email": "werlos@gmail.com" - } - ], - "description": "A set of custom fixers for PHP CS Fixer", - "support": { - "issues": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers/issues", - "source": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers/tree/v3.35.1" - }, - "funding": [ - { - "url": "https://github.com/kubawerlos", - "type": "github" - } - ], - "time": "2025-09-28T18:43:35+00:00" - }, - { - "name": "nextcloud/coding-standard", - "version": "v1.4.0", - "source": { - "type": "git", - "url": "https://github.com/nextcloud/coding-standard.git", - "reference": "8e06808c1423e9208d63d1bd205b9a38bd400011" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nextcloud/coding-standard/zipball/8e06808c1423e9208d63d1bd205b9a38bd400011", - "reference": "8e06808c1423e9208d63d1bd205b9a38bd400011", - "shasum": "" - }, - "require": { - "kubawerlos/php-cs-fixer-custom-fixers": "^3.22", - "php": "^8.0", - "php-cs-fixer/shim": "^3.17" - }, - "type": "library", - "autoload": { - "psr-4": { - "Nextcloud\\CodingStandard\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Christoph Wurst", - "email": "christoph@winzerhof-wurst.at" - } - ], - "description": "Nextcloud coding standards for the php cs fixer", - "keywords": [ - "dev" - ], - "support": { - "issues": "https://github.com/nextcloud/coding-standard/issues", - "source": "https://github.com/nextcloud/coding-standard/tree/v1.4.0" - }, - "time": "2025-06-19T12:27:27+00:00" - }, - { - "name": "php-cs-fixer/shim", - "version": "v3.92.0", - "source": { - "type": "git", - "url": "https://github.com/PHP-CS-Fixer/shim.git", - "reference": "79e39b0d57adfd84c402d7b171b925d1e638597f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/shim/zipball/79e39b0d57adfd84c402d7b171b925d1e638597f", - "reference": "79e39b0d57adfd84c402d7b171b925d1e638597f", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-tokenizer": "*", - "php": "^7.4 || ^8.0" - }, - "replace": { - "friendsofphp/php-cs-fixer": "self.version" - }, - "suggest": { - "ext-dom": "For handling output formats in XML", - "ext-mbstring": "For handling non-UTF8 characters." - }, - "bin": [ - "php-cs-fixer", - "php-cs-fixer.phar" - ], - "type": "application", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Dariusz Rumiński", - "email": "dariusz.ruminski@gmail.com" - } - ], - "description": "A tool to automatically fix PHP code style", - "support": { - "issues": "https://github.com/PHP-CS-Fixer/shim/issues", - "source": "https://github.com/PHP-CS-Fixer/shim/tree/v3.92.0" - }, - "time": "2025-12-12T10:29:50+00:00" - } - ], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": {}, - "prefer-stable": false, - "prefer-lowest": false, - "platform": {}, - "platform-dev": {}, - "platform-overrides": { - "php": "8.1" - }, - "plugin-api-version": "2.6.0" -} diff --git a/third_party/astrolabe/vendor-bin/openapi-extractor/composer.json b/third_party/astrolabe/vendor-bin/openapi-extractor/composer.json deleted file mode 100644 index 8ddb85d..0000000 --- a/third_party/astrolabe/vendor-bin/openapi-extractor/composer.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "require-dev": { - "nextcloud/openapi-extractor": "v1.8.7" - }, - "config": { - "platform": { - "php": "8.1" - } - } -} diff --git a/third_party/astrolabe/vendor-bin/openapi-extractor/composer.lock b/third_party/astrolabe/vendor-bin/openapi-extractor/composer.lock deleted file mode 100644 index d82d0ba..0000000 --- a/third_party/astrolabe/vendor-bin/openapi-extractor/composer.lock +++ /dev/null @@ -1,247 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", - "This file is @generated automatically" - ], - "content-hash": "384d95db63f1a0aae08a0ae123ecf4bb", - "packages": [], - "packages-dev": [ - { - "name": "adhocore/cli", - "version": "v1.9.4", - "source": { - "type": "git", - "url": "https://github.com/adhocore/php-cli.git", - "reference": "474dc3d7ab139796be98b104d891476e3916b6f4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/adhocore/php-cli/zipball/474dc3d7ab139796be98b104d891476e3916b6f4", - "reference": "474dc3d7ab139796be98b104d891476e3916b6f4", - "shasum": "" - }, - "require": { - "php": ">=8.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.0" - }, - "type": "library", - "autoload": { - "files": [ - "src/functions.php" - ], - "psr-4": { - "Ahc\\Cli\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jitendra Adhikari", - "email": "jiten.adhikary@gmail.com" - } - ], - "description": "Command line interface library for PHP", - "keywords": [ - "argument-parser", - "argv-parser", - "cli", - "cli-action", - "cli-app", - "cli-color", - "cli-option", - "cli-writer", - "command", - "console", - "console-app", - "php-cli", - "php8", - "stream-input", - "stream-output" - ], - "support": { - "issues": "https://github.com/adhocore/php-cli/issues", - "source": "https://github.com/adhocore/php-cli/tree/v1.9.4" - }, - "funding": [ - { - "url": "https://paypal.me/ji10", - "type": "custom" - }, - { - "url": "https://github.com/adhocore", - "type": "github" - } - ], - "time": "2025-05-11T13:23:54+00:00" - }, - { - "name": "nextcloud/openapi-extractor", - "version": "v1.8.7", - "source": { - "type": "git", - "url": "https://github.com/nextcloud-releases/openapi-extractor.git", - "reference": "230f61925c362779652b0038a1314ce5f931e853" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nextcloud-releases/openapi-extractor/zipball/230f61925c362779652b0038a1314ce5f931e853", - "reference": "230f61925c362779652b0038a1314ce5f931e853", - "shasum": "" - }, - "require": { - "adhocore/cli": "^1.7", - "ext-simplexml": "*", - "nikic/php-parser": "^5.0", - "php": "^8.1", - "phpstan/phpdoc-parser": "^2.1" - }, - "require-dev": { - "nextcloud/coding-standard": "^1.4.0", - "nextcloud/ocp": "dev-master", - "rector/rector": "^2.2.8" - }, - "bin": [ - "bin/generate-spec", - "bin/merge-specs" - ], - "type": "library", - "autoload": { - "psr-4": { - "OpenAPIExtractor\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "AGPL-3.0-or-later" - ], - "description": "A tool for extracting OpenAPI specifications from Nextcloud source code", - "support": { - "issues": "https://github.com/nextcloud-releases/openapi-extractor/issues", - "source": "https://github.com/nextcloud-releases/openapi-extractor/tree/v1.8.7" - }, - "time": "2025-12-02T09:52:06+00:00" - }, - { - "name": "nikic/php-parser", - "version": "v5.7.0", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82", - "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "ext-json": "*", - "ext-tokenizer": "*", - "php": ">=7.4" - }, - "require-dev": { - "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^9.0" - }, - "bin": [ - "bin/php-parse" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nikita Popov" - } - ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], - "support": { - "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.7.0" - }, - "time": "2025-12-06T11:56:16+00:00" - }, - { - "name": "phpstan/phpdoc-parser", - "version": "2.3.0", - "source": { - "type": "git", - "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/1e0cd5370df5dd2e556a36b9c62f62e555870495", - "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495", - "shasum": "" - }, - "require": { - "php": "^7.4 || ^8.0" - }, - "require-dev": { - "doctrine/annotations": "^2.0", - "nikic/php-parser": "^5.3.0", - "php-parallel-lint/php-parallel-lint": "^1.2", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^2.0", - "phpstan/phpstan-phpunit": "^2.0", - "phpstan/phpstan-strict-rules": "^2.0", - "phpunit/phpunit": "^9.6", - "symfony/process": "^5.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "PHPStan\\PhpDocParser\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "PHPDoc parser with support for nullable, intersection and generic types", - "support": { - "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.0" - }, - "time": "2025-08-30T15:50:23+00:00" - } - ], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": {}, - "prefer-stable": false, - "prefer-lowest": false, - "platform": {}, - "platform-dev": {}, - "platform-overrides": { - "php": "8.1" - }, - "plugin-api-version": "2.9.0" -} diff --git a/third_party/astrolabe/vendor-bin/phpunit/composer.json b/third_party/astrolabe/vendor-bin/phpunit/composer.json deleted file mode 100644 index fe8b171..0000000 --- a/third_party/astrolabe/vendor-bin/phpunit/composer.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "require-dev": { - "phpunit/phpunit": "^10.5" - }, - "config": { - "platform": { - "php": "8.1" - } - } -} diff --git a/third_party/astrolabe/vendor-bin/phpunit/composer.lock b/third_party/astrolabe/vendor-bin/phpunit/composer.lock deleted file mode 100644 index 66efdef..0000000 --- a/third_party/astrolabe/vendor-bin/phpunit/composer.lock +++ /dev/null @@ -1,1691 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", - "This file is @generated automatically" - ], - "content-hash": "fb78960ff7e774a72d424270c4bd3d90", - "packages": [], - "packages-dev": [ - { - "name": "myclabs/deep-copy", - "version": "1.13.4", - "source": { - "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a", - "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "conflict": { - "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3 <3.2.2" - }, - "require-dev": { - "doctrine/collections": "^1.6.8", - "doctrine/common": "^2.13.3 || ^3.2.2", - "phpspec/prophecy": "^1.10", - "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" - }, - "type": "library", - "autoload": { - "files": [ - "src/DeepCopy/deep_copy.php" - ], - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Create deep copies (clones) of your objects", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" - ], - "support": { - "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4" - }, - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", - "type": "tidelift" - } - ], - "time": "2025-08-01T08:46:24+00:00" - }, - { - "name": "nikic/php-parser", - "version": "v5.7.0", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82", - "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "ext-json": "*", - "ext-tokenizer": "*", - "php": ">=7.4" - }, - "require-dev": { - "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^9.0" - }, - "bin": [ - "bin/php-parse" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nikita Popov" - } - ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], - "support": { - "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.7.0" - }, - "time": "2025-12-06T11:56:16+00:00" - }, - { - "name": "phar-io/manifest", - "version": "2.0.4", - "source": { - "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "54750ef60c58e43759730615a392c31c80e23176" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", - "reference": "54750ef60c58e43759730615a392c31c80e23176", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-libxml": "*", - "ext-phar": "*", - "ext-xmlwriter": "*", - "phar-io/version": "^3.0.1", - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "support": { - "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.4" - }, - "funding": [ - { - "url": "https://github.com/theseer", - "type": "github" - } - ], - "time": "2024-03-03T12:33:53+00:00" - }, - { - "name": "phar-io/version", - "version": "3.2.1", - "source": { - "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Library for handling version information and constraints", - "support": { - "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.2.1" - }, - "time": "2022-02-21T01:04:05+00:00" - }, - { - "name": "phpunit/php-code-coverage", - "version": "10.1.16", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "7e308268858ed6baedc8704a304727d20bc07c77" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/7e308268858ed6baedc8704a304727d20bc07c77", - "reference": "7e308268858ed6baedc8704a304727d20bc07c77", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-libxml": "*", - "ext-xmlwriter": "*", - "nikic/php-parser": "^4.19.1 || ^5.1.0", - "php": ">=8.1", - "phpunit/php-file-iterator": "^4.1.0", - "phpunit/php-text-template": "^3.0.1", - "sebastian/code-unit-reverse-lookup": "^3.0.0", - "sebastian/complexity": "^3.2.0", - "sebastian/environment": "^6.1.0", - "sebastian/lines-of-code": "^2.0.2", - "sebastian/version": "^4.0.1", - "theseer/tokenizer": "^1.2.3" - }, - "require-dev": { - "phpunit/phpunit": "^10.1" - }, - "suggest": { - "ext-pcov": "PHP extension that provides line coverage", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "10.1.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.16" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-08-22T04:31:57+00:00" - }, - { - "name": "phpunit/php-file-iterator", - "version": "4.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a95037b6d9e608ba092da1b23931e537cadc3c3c", - "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "phpunit/phpunit": "^10.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.1.0" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-08-31T06:24:48+00:00" - }, - { - "name": "phpunit/php-invoker", - "version": "4.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", - "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "ext-pcntl": "*", - "phpunit/phpunit": "^10.0" - }, - "suggest": { - "ext-pcntl": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Invoke callables with a timeout", - "homepage": "https://github.com/sebastianbergmann/php-invoker/", - "keywords": [ - "process" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-invoker/issues", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:56:09+00:00" - }, - { - "name": "phpunit/php-text-template", - "version": "3.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/0c7b06ff49e3d5072f057eb1fa59258bf287a748", - "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "phpunit/phpunit": "^10.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-08-31T14:07:24+00:00" - }, - { - "name": "phpunit/php-timer", - "version": "6.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/e2a2d67966e740530f4a3343fe2e030ffdc1161d", - "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "phpunit/phpunit": "^10.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "6.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:57:52+00:00" - }, - { - "name": "phpunit/phpunit", - "version": "10.5.63", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "33198268dad71e926626b618f3ec3966661e4d90" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/33198268dad71e926626b618f3ec3966661e4d90", - "reference": "33198268dad71e926626b618f3ec3966661e4d90", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.13.4", - "phar-io/manifest": "^2.0.4", - "phar-io/version": "^3.2.1", - "php": ">=8.1", - "phpunit/php-code-coverage": "^10.1.16", - "phpunit/php-file-iterator": "^4.1.0", - "phpunit/php-invoker": "^4.0.0", - "phpunit/php-text-template": "^3.0.1", - "phpunit/php-timer": "^6.0.0", - "sebastian/cli-parser": "^2.0.1", - "sebastian/code-unit": "^2.0.0", - "sebastian/comparator": "^5.0.5", - "sebastian/diff": "^5.1.1", - "sebastian/environment": "^6.1.0", - "sebastian/exporter": "^5.1.4", - "sebastian/global-state": "^6.0.2", - "sebastian/object-enumerator": "^5.0.0", - "sebastian/recursion-context": "^5.0.1", - "sebastian/type": "^4.0.0", - "sebastian/version": "^4.0.1" - }, - "suggest": { - "ext-soap": "To be able to generate mocks based on WSDL files" - }, - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "10.5-dev" - } - }, - "autoload": { - "files": [ - "src/Framework/Assert/Functions.php" - ], - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.63" - }, - "funding": [ - { - "url": "https://phpunit.de/sponsors.html", - "type": "custom" - }, - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", - "type": "tidelift" - } - ], - "time": "2026-01-27T05:48:37+00:00" - }, - { - "name": "sebastian/cli-parser", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/c34583b87e7b7a8055bf6c450c2c77ce32a24084", - "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "phpunit/phpunit": "^10.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for parsing CLI options", - "homepage": "https://github.com/sebastianbergmann/cli-parser", - "support": { - "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-03-02T07:12:49+00:00" - }, - { - "name": "sebastian/code-unit", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "a81fee9eef0b7a76af11d121767abc44c104e503" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/a81fee9eef0b7a76af11d121767abc44c104e503", - "reference": "a81fee9eef0b7a76af11d121767abc44c104e503", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "phpunit/phpunit": "^10.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the PHP code units", - "homepage": "https://github.com/sebastianbergmann/code-unit", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0.0" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:58:43+00:00" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", - "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "phpunit/phpunit": "^10.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:59:15+00:00" - }, - { - "name": "sebastian/comparator", - "version": "5.0.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "55dfef806eb7dfeb6e7a6935601fef866f8ca48d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55dfef806eb7dfeb6e7a6935601fef866f8ca48d", - "reference": "55dfef806eb7dfeb6e7a6935601fef866f8ca48d", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-mbstring": "*", - "php": ">=8.1", - "sebastian/diff": "^5.0", - "sebastian/exporter": "^5.0" - }, - "require-dev": { - "phpunit/phpunit": "^10.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "5.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/comparator/issues", - "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/sebastian/comparator", - "type": "tidelift" - } - ], - "time": "2026-01-24T09:25:16+00:00" - }, - { - "name": "sebastian/complexity", - "version": "3.2.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "68ff824baeae169ec9f2137158ee529584553799" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799", - "reference": "68ff824baeae169ec9f2137158ee529584553799", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=8.1" - }, - "require-dev": { - "phpunit/phpunit": "^10.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.2-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for calculating the complexity of PHP code units", - "homepage": "https://github.com/sebastianbergmann/complexity", - "support": { - "issues": "https://github.com/sebastianbergmann/complexity/issues", - "security": "https://github.com/sebastianbergmann/complexity/security/policy", - "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-12-21T08:37:17+00:00" - }, - { - "name": "sebastian/diff", - "version": "5.1.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c41e007b4b62af48218231d6c2275e4c9b975b2e", - "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "phpunit/phpunit": "^10.0", - "symfony/process": "^6.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "5.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/diff/issues", - "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/5.1.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-03-02T07:15:17+00:00" - }, - { - "name": "sebastian/environment", - "version": "6.1.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "8074dbcd93529b357029f5cc5058fd3e43666984" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/8074dbcd93529b357029f5cc5058fd3e43666984", - "reference": "8074dbcd93529b357029f5cc5058fd3e43666984", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "phpunit/phpunit": "^10.0" - }, - "suggest": { - "ext-posix": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "6.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "https://github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/environment/issues", - "security": "https://github.com/sebastianbergmann/environment/security/policy", - "source": "https://github.com/sebastianbergmann/environment/tree/6.1.0" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-03-23T08:47:14+00:00" - }, - { - "name": "sebastian/exporter", - "version": "5.1.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "0735b90f4da94969541dac1da743446e276defa6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/0735b90f4da94969541dac1da743446e276defa6", - "reference": "0735b90f4da94969541dac1da743446e276defa6", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "php": ">=8.1", - "sebastian/recursion-context": "^5.0" - }, - "require-dev": { - "phpunit/phpunit": "^10.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "5.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "https://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/exporter/issues", - "security": "https://github.com/sebastianbergmann/exporter/security/policy", - "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter", - "type": "tidelift" - } - ], - "time": "2025-09-24T06:09:11+00:00" - }, - { - "name": "sebastian/global-state", - "version": "6.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", - "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "sebastian/object-reflector": "^3.0", - "sebastian/recursion-context": "^5.0" - }, - "require-dev": { - "ext-dom": "*", - "phpunit/phpunit": "^10.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "6.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Snapshotting of global state", - "homepage": "https://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/global-state/issues", - "security": "https://github.com/sebastianbergmann/global-state/security/policy", - "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-03-02T07:19:19+00:00" - }, - { - "name": "sebastian/lines-of-code", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0", - "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=8.1" - }, - "require-dev": { - "phpunit/phpunit": "^10.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for counting the lines of code in PHP source code", - "homepage": "https://github.com/sebastianbergmann/lines-of-code", - "support": { - "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-12-21T08:38:20+00:00" - }, - { - "name": "sebastian/object-enumerator", - "version": "5.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/202d0e344a580d7f7d04b3fafce6933e59dae906", - "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "sebastian/object-reflector": "^3.0", - "sebastian/recursion-context": "^5.0" - }, - "require-dev": { - "phpunit/phpunit": "^10.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "5.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0.0" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T07:08:32+00:00" - }, - { - "name": "sebastian/object-reflector", - "version": "3.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "24ed13d98130f0e7122df55d06c5c4942a577957" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/24ed13d98130f0e7122df55d06c5c4942a577957", - "reference": "24ed13d98130f0e7122df55d06c5c4942a577957", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "phpunit/phpunit": "^10.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0.0" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T07:06:18+00:00" - }, - { - "name": "sebastian/recursion-context", - "version": "5.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "47e34210757a2f37a97dcd207d032e1b01e64c7a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/47e34210757a2f37a97dcd207d032e1b01e64c7a", - "reference": "47e34210757a2f37a97dcd207d032e1b01e64c7a", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "phpunit/phpunit": "^10.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "5.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "https://github.com/sebastianbergmann/recursion-context", - "support": { - "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context", - "type": "tidelift" - } - ], - "time": "2025-08-10T07:50:56+00:00" - }, - { - "name": "sebastian/type", - "version": "4.0.0", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/type.git", - "reference": "462699a16464c3944eefc02ebdd77882bd3925bf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf", - "reference": "462699a16464c3944eefc02ebdd77882bd3925bf", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "phpunit/phpunit": "^10.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the types of the PHP type system", - "homepage": "https://github.com/sebastianbergmann/type", - "support": { - "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/4.0.0" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T07:10:45+00:00" - }, - { - "name": "sebastian/version", - "version": "4.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17", - "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "support": { - "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/4.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-07T11:34:05+00:00" - }, - { - "name": "theseer/tokenizer", - "version": "1.3.1", - "source": { - "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "b7489ce515e168639d17feec34b8847c326b0b3c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c", - "reference": "b7489ce515e168639d17feec34b8847c326b0b3c", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - } - ], - "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "support": { - "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.3.1" - }, - "funding": [ - { - "url": "https://github.com/theseer", - "type": "github" - } - ], - "time": "2025-11-17T20:03:58+00:00" - } - ], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": {}, - "prefer-stable": false, - "prefer-lowest": false, - "platform": {}, - "platform-dev": {}, - "platform-overrides": { - "php": "8.1" - }, - "plugin-api-version": "2.9.0" -} diff --git a/third_party/astrolabe/vendor-bin/psalm/composer.json b/third_party/astrolabe/vendor-bin/psalm/composer.json deleted file mode 100644 index 553d5af..0000000 --- a/third_party/astrolabe/vendor-bin/psalm/composer.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "require-dev": { - "vimeo/psalm": "^5.23" - }, - "config": { - "platform": { - "php": "8.1" - } - } -} diff --git a/third_party/astrolabe/vendor-bin/psalm/composer.lock b/third_party/astrolabe/vendor-bin/psalm/composer.lock deleted file mode 100644 index c1b8b07..0000000 --- a/third_party/astrolabe/vendor-bin/psalm/composer.lock +++ /dev/null @@ -1,2122 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", - "This file is @generated automatically" - ], - "content-hash": "32bf499f5e7a4c18979304cf254c2878", - "packages": [], - "packages-dev": [ - { - "name": "amphp/amp", - "version": "v2.6.5", - "source": { - "type": "git", - "url": "https://github.com/amphp/amp.git", - "reference": "d7dda98dae26e56f3f6fcfbf1c1f819c9a993207" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/amphp/amp/zipball/d7dda98dae26e56f3f6fcfbf1c1f819c9a993207", - "reference": "d7dda98dae26e56f3f6fcfbf1c1f819c9a993207", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "require-dev": { - "amphp/php-cs-fixer-config": "dev-master", - "amphp/phpunit-util": "^1", - "ext-json": "*", - "jetbrains/phpstorm-stubs": "^2019.3", - "phpunit/phpunit": "^7 | ^8 | ^9", - "react/promise": "^2", - "vimeo/psalm": "^3.12" - }, - "type": "library", - "autoload": { - "files": [ - "lib/functions.php", - "lib/Internal/functions.php" - ], - "psr-4": { - "Amp\\": "lib" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Daniel Lowrey", - "email": "rdlowrey@php.net" - }, - { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" - }, - { - "name": "Bob Weinand", - "email": "bobwei9@hotmail.com" - }, - { - "name": "Niklas Keller", - "email": "me@kelunik.com" - } - ], - "description": "A non-blocking concurrency framework for PHP applications.", - "homepage": "https://amphp.org/amp", - "keywords": [ - "async", - "asynchronous", - "awaitable", - "concurrency", - "event", - "event-loop", - "future", - "non-blocking", - "promise" - ], - "support": { - "irc": "irc://irc.freenode.org/amphp", - "issues": "https://github.com/amphp/amp/issues", - "source": "https://github.com/amphp/amp/tree/v2.6.5" - }, - "funding": [ - { - "url": "https://github.com/amphp", - "type": "github" - } - ], - "time": "2025-09-03T19:41:28+00:00" - }, - { - "name": "amphp/byte-stream", - "version": "v1.8.2", - "source": { - "type": "git", - "url": "https://github.com/amphp/byte-stream.git", - "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/amphp/byte-stream/zipball/4f0e968ba3798a423730f567b1b50d3441c16ddc", - "reference": "4f0e968ba3798a423730f567b1b50d3441c16ddc", - "shasum": "" - }, - "require": { - "amphp/amp": "^2", - "php": ">=7.1" - }, - "require-dev": { - "amphp/php-cs-fixer-config": "dev-master", - "amphp/phpunit-util": "^1.4", - "friendsofphp/php-cs-fixer": "^2.3", - "jetbrains/phpstorm-stubs": "^2019.3", - "phpunit/phpunit": "^6 || ^7 || ^8", - "psalm/phar": "^3.11.4" - }, - "type": "library", - "autoload": { - "files": [ - "lib/functions.php" - ], - "psr-4": { - "Amp\\ByteStream\\": "lib" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Aaron Piotrowski", - "email": "aaron@trowski.com" - }, - { - "name": "Niklas Keller", - "email": "me@kelunik.com" - } - ], - "description": "A stream abstraction to make working with non-blocking I/O simple.", - "homepage": "https://amphp.org/byte-stream", - "keywords": [ - "amp", - "amphp", - "async", - "io", - "non-blocking", - "stream" - ], - "support": { - "issues": "https://github.com/amphp/byte-stream/issues", - "source": "https://github.com/amphp/byte-stream/tree/v1.8.2" - }, - "funding": [ - { - "url": "https://github.com/amphp", - "type": "github" - } - ], - "time": "2024-04-13T18:00:56+00:00" - }, - { - "name": "composer/pcre", - "version": "3.3.2", - "source": { - "type": "git", - "url": "https://github.com/composer/pcre.git", - "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e", - "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e", - "shasum": "" - }, - "require": { - "php": "^7.4 || ^8.0" - }, - "conflict": { - "phpstan/phpstan": "<1.11.10" - }, - "require-dev": { - "phpstan/phpstan": "^1.12 || ^2", - "phpstan/phpstan-strict-rules": "^1 || ^2", - "phpunit/phpunit": "^8 || ^9" - }, - "type": "library", - "extra": { - "phpstan": { - "includes": [ - "extension.neon" - ] - }, - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Pcre\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "PCRE wrapping library that offers type-safe preg_* replacements.", - "keywords": [ - "PCRE", - "preg", - "regex", - "regular expression" - ], - "support": { - "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.3.2" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2024-11-12T16:29:46+00:00" - }, - { - "name": "composer/semver", - "version": "3.4.4", - "source": { - "type": "git", - "url": "https://github.com/composer/semver.git", - "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/198166618906cb2de69b95d7d47e5fa8aa1b2b95", - "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95", - "shasum": "" - }, - "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^1.11", - "symfony/phpunit-bridge": "^3 || ^7" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Semver\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "http://www.naderman.de" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - }, - { - "name": "Rob Bast", - "email": "rob.bast@gmail.com", - "homepage": "http://robbast.nl" - } - ], - "description": "Semver library that offers utilities, version constraint parsing and validation.", - "keywords": [ - "semantic", - "semver", - "validation", - "versioning" - ], - "support": { - "irc": "ircs://irc.libera.chat:6697/composer", - "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.4.4" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - } - ], - "time": "2025-08-20T19:15:30+00:00" - }, - { - "name": "composer/xdebug-handler", - "version": "3.0.5", - "source": { - "type": "git", - "url": "https://github.com/composer/xdebug-handler.git", - "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef", - "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", - "shasum": "" - }, - "require": { - "composer/pcre": "^1 || ^2 || ^3", - "php": "^7.2.5 || ^8.0", - "psr/log": "^1 || ^2 || ^3" - }, - "require-dev": { - "phpstan/phpstan": "^1.0", - "phpstan/phpstan-strict-rules": "^1.1", - "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" - }, - "type": "library", - "autoload": { - "psr-4": { - "Composer\\XdebugHandler\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "John Stevenson", - "email": "john-stevenson@blueyonder.co.uk" - } - ], - "description": "Restarts a process without Xdebug.", - "keywords": [ - "Xdebug", - "performance" - ], - "support": { - "irc": "ircs://irc.libera.chat:6697/composer", - "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.5" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2024-05-06T16:37:16+00:00" - }, - { - "name": "dnoegel/php-xdg-base-dir", - "version": "v0.1.1", - "source": { - "type": "git", - "url": "https://github.com/dnoegel/php-xdg-base-dir.git", - "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", - "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" - }, - "type": "library", - "autoload": { - "psr-4": { - "XdgBaseDir\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "implementation of xdg base directory specification for php", - "support": { - "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues", - "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1" - }, - "time": "2019-12-04T15:06:13+00:00" - }, - { - "name": "doctrine/deprecations", - "version": "1.1.5", - "source": { - "type": "git", - "url": "https://github.com/doctrine/deprecations.git", - "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", - "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "conflict": { - "phpunit/phpunit": "<=7.5 || >=13" - }, - "require-dev": { - "doctrine/coding-standard": "^9 || ^12 || ^13", - "phpstan/phpstan": "1.4.10 || 2.1.11", - "phpstan/phpstan-phpunit": "^1.0 || ^2", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12", - "psr/log": "^1 || ^2 || ^3" - }, - "suggest": { - "psr/log": "Allows logging deprecations via PSR-3 logger implementation" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Deprecations\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", - "homepage": "https://www.doctrine-project.org/", - "support": { - "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.5" - }, - "time": "2025-04-07T20:06:18+00:00" - }, - { - "name": "felixfbecker/advanced-json-rpc", - "version": "v3.2.1", - "source": { - "type": "git", - "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", - "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/b5f37dbff9a8ad360ca341f3240dc1c168b45447", - "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447", - "shasum": "" - }, - "require": { - "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", - "php": "^7.1 || ^8.0", - "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0" - }, - "require-dev": { - "phpunit/phpunit": "^7.0 || ^8.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "AdvancedJsonRpc\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "ISC" - ], - "authors": [ - { - "name": "Felix Becker", - "email": "felix.b@outlook.com" - } - ], - "description": "A more advanced JSONRPC implementation", - "support": { - "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues", - "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.1" - }, - "time": "2021-06-11T22:34:44+00:00" - }, - { - "name": "felixfbecker/language-server-protocol", - "version": "v1.5.3", - "source": { - "type": "git", - "url": "https://github.com/felixfbecker/php-language-server-protocol.git", - "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/a9e113dbc7d849e35b8776da39edaf4313b7b6c9", - "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "require-dev": { - "phpstan/phpstan": "*", - "squizlabs/php_codesniffer": "^3.1", - "vimeo/psalm": "^4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "LanguageServerProtocol\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "ISC" - ], - "authors": [ - { - "name": "Felix Becker", - "email": "felix.b@outlook.com" - } - ], - "description": "PHP classes for the Language Server Protocol", - "keywords": [ - "language", - "microsoft", - "php", - "server" - ], - "support": { - "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", - "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.3" - }, - "time": "2024-04-30T00:40:11+00:00" - }, - { - "name": "fidry/cpu-core-counter", - "version": "1.3.0", - "source": { - "type": "git", - "url": "https://github.com/theofidry/cpu-core-counter.git", - "reference": "db9508f7b1474469d9d3c53b86f817e344732678" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/db9508f7b1474469d9d3c53b86f817e344732678", - "reference": "db9508f7b1474469d9d3c53b86f817e344732678", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "fidry/makefile": "^0.2.0", - "fidry/php-cs-fixer-config": "^1.1.2", - "phpstan/extension-installer": "^1.2.0", - "phpstan/phpstan": "^2.0", - "phpstan/phpstan-deprecation-rules": "^2.0.0", - "phpstan/phpstan-phpunit": "^2.0", - "phpstan/phpstan-strict-rules": "^2.0", - "phpunit/phpunit": "^8.5.31 || ^9.5.26", - "webmozarts/strict-phpunit": "^7.5" - }, - "type": "library", - "autoload": { - "psr-4": { - "Fidry\\CpuCoreCounter\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Théo FIDRY", - "email": "theo.fidry@gmail.com" - } - ], - "description": "Tiny utility to get the number of CPU cores.", - "keywords": [ - "CPU", - "core" - ], - "support": { - "issues": "https://github.com/theofidry/cpu-core-counter/issues", - "source": "https://github.com/theofidry/cpu-core-counter/tree/1.3.0" - }, - "funding": [ - { - "url": "https://github.com/theofidry", - "type": "github" - } - ], - "time": "2025-08-14T07:29:31+00:00" - }, - { - "name": "netresearch/jsonmapper", - "version": "v4.5.0", - "source": { - "type": "git", - "url": "https://github.com/cweiske/jsonmapper.git", - "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8e76efb98ee8b6afc54687045e1b8dba55ac76e5", - "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-pcre": "*", - "ext-reflection": "*", - "ext-spl": "*", - "php": ">=7.1" - }, - "require-dev": { - "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0 || ~10.0", - "squizlabs/php_codesniffer": "~3.5" - }, - "type": "library", - "autoload": { - "psr-0": { - "JsonMapper": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "OSL-3.0" - ], - "authors": [ - { - "name": "Christian Weiske", - "email": "cweiske@cweiske.de", - "homepage": "http://github.com/cweiske/jsonmapper/", - "role": "Developer" - } - ], - "description": "Map nested JSON structures onto PHP classes", - "support": { - "email": "cweiske@cweiske.de", - "issues": "https://github.com/cweiske/jsonmapper/issues", - "source": "https://github.com/cweiske/jsonmapper/tree/v4.5.0" - }, - "time": "2024-09-08T10:13:13+00:00" - }, - { - "name": "nikic/php-parser", - "version": "v4.19.5", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "51bd93cc741b7fc3d63d20b6bdcd99fdaa359837" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/51bd93cc741b7fc3d63d20b6bdcd99fdaa359837", - "reference": "51bd93cc741b7fc3d63d20b6bdcd99fdaa359837", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": ">=7.1" - }, - "require-dev": { - "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" - }, - "bin": [ - "bin/php-parse" - ], - "type": "library", - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nikita Popov" - } - ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], - "support": { - "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.5" - }, - "time": "2025-12-06T11:45:25+00:00" - }, - { - "name": "phpdocumentor/reflection-common", - "version": "2.2.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-2.x": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ], - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", - "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" - }, - "time": "2020-06-27T09:03:43+00:00" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "5.6.5", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "90614c73d3800e187615e2dd236ad0e2a01bf761" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/90614c73d3800e187615e2dd236ad0e2a01bf761", - "reference": "90614c73d3800e187615e2dd236ad0e2a01bf761", - "shasum": "" - }, - "require": { - "doctrine/deprecations": "^1.1", - "ext-filter": "*", - "php": "^7.4 || ^8.0", - "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.7", - "phpstan/phpdoc-parser": "^1.7|^2.0", - "webmozart/assert": "^1.9.1" - }, - "require-dev": { - "mockery/mockery": "~1.3.5 || ~1.6.0", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-mockery": "^1.1", - "phpstan/phpstan-webmozart-assert": "^1.2", - "phpunit/phpunit": "^9.5", - "psalm/phar": "^5.26" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - }, - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.5" - }, - "time": "2025-11-27T19:50:05+00:00" - }, - { - "name": "phpdocumentor/type-resolver", - "version": "1.12.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "92a98ada2b93d9b201a613cb5a33584dde25f195" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/92a98ada2b93d9b201a613cb5a33584dde25f195", - "reference": "92a98ada2b93d9b201a613cb5a33584dde25f195", - "shasum": "" - }, - "require": { - "doctrine/deprecations": "^1.0", - "php": "^7.3 || ^8.0", - "phpdocumentor/reflection-common": "^2.0", - "phpstan/phpdoc-parser": "^1.18|^2.0" - }, - "require-dev": { - "ext-tokenizer": "*", - "phpbench/phpbench": "^1.2", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-phpunit": "^1.1", - "phpunit/phpunit": "^9.5", - "rector/rector": "^0.13.9", - "vimeo/psalm": "^4.25" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-1.x": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "support": { - "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.12.0" - }, - "time": "2025-11-21T15:09:14+00:00" - }, - { - "name": "phpstan/phpdoc-parser", - "version": "2.3.0", - "source": { - "type": "git", - "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/1e0cd5370df5dd2e556a36b9c62f62e555870495", - "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495", - "shasum": "" - }, - "require": { - "php": "^7.4 || ^8.0" - }, - "require-dev": { - "doctrine/annotations": "^2.0", - "nikic/php-parser": "^5.3.0", - "php-parallel-lint/php-parallel-lint": "^1.2", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^2.0", - "phpstan/phpstan-phpunit": "^2.0", - "phpstan/phpstan-strict-rules": "^2.0", - "phpunit/phpunit": "^9.6", - "symfony/process": "^5.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "PHPStan\\PhpDocParser\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "PHPDoc parser with support for nullable, intersection and generic types", - "support": { - "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.0" - }, - "time": "2025-08-30T15:50:23+00:00" - }, - { - "name": "psr/container", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", - "shasum": "" - }, - "require": { - "php": ">=7.4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ], - "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/2.0.2" - }, - "time": "2021-11-05T16:47:00+00:00" - }, - { - "name": "psr/log", - "version": "3.0.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", - "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", - "shasum": "" - }, - "require": { - "php": ">=8.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "support": { - "source": "https://github.com/php-fig/log/tree/3.0.2" - }, - "time": "2024-09-11T13:17:53+00:00" - }, - { - "name": "sebastian/diff", - "version": "5.1.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c41e007b4b62af48218231d6c2275e4c9b975b2e", - "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "require-dev": { - "phpunit/phpunit": "^10.0", - "symfony/process": "^6.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "5.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/diff/issues", - "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/5.1.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-03-02T07:15:17+00:00" - }, - { - "name": "spatie/array-to-xml", - "version": "3.4.3", - "source": { - "type": "git", - "url": "https://github.com/spatie/array-to-xml.git", - "reference": "7b9202dccfe18d4e3a13303156d6bbcc1c61dabf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/spatie/array-to-xml/zipball/7b9202dccfe18d4e3a13303156d6bbcc1c61dabf", - "reference": "7b9202dccfe18d4e3a13303156d6bbcc1c61dabf", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "php": "^8.0" - }, - "require-dev": { - "mockery/mockery": "^1.2", - "pestphp/pest": "^1.21", - "spatie/pest-plugin-snapshots": "^1.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Spatie\\ArrayToXml\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "homepage": "https://freek.dev", - "role": "Developer" - } - ], - "description": "Convert an array to xml", - "homepage": "https://github.com/spatie/array-to-xml", - "keywords": [ - "array", - "convert", - "xml" - ], - "support": { - "source": "https://github.com/spatie/array-to-xml/tree/3.4.3" - }, - "funding": [ - { - "url": "https://spatie.be/open-source/support-us", - "type": "custom" - }, - { - "url": "https://github.com/spatie", - "type": "github" - } - ], - "time": "2025-11-27T09:08:26+00:00" - }, - { - "name": "symfony/console", - "version": "v6.4.30", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "1b2813049506b39eb3d7e64aff033fd5ca26c97e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/1b2813049506b39eb3d7e64aff033fd5ca26c97e", - "reference": "1b2813049506b39eb3d7e64aff033fd5ca26c97e", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^5.4|^6.0|^7.0" - }, - "conflict": { - "symfony/dependency-injection": "<5.4", - "symfony/dotenv": "<5.4", - "symfony/event-dispatcher": "<5.4", - "symfony/lock": "<5.4", - "symfony/process": "<5.4" - }, - "provide": { - "psr/log-implementation": "1.0|2.0|3.0" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/event-dispatcher": "^5.4|^6.0|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/lock": "^5.4|^6.0|^7.0", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|^6.0|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/var-dumper": "^5.4|^6.0|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Eases the creation of beautiful and testable command line interfaces", - "homepage": "https://symfony.com", - "keywords": [ - "cli", - "command-line", - "console", - "terminal" - ], - "support": { - "source": "https://github.com/symfony/console/tree/v6.4.30" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-12-05T13:47:41+00:00" - }, - { - "name": "symfony/deprecation-contracts", - "version": "v3.6.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62", - "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" - }, - "branch-alias": { - "dev-main": "3.6-dev" - } - }, - "autoload": { - "files": [ - "function.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-09-25T14:21:43+00:00" - }, - { - "name": "symfony/filesystem", - "version": "v6.4.30", - "source": { - "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "441c6b69f7222aadae7cbf5df588496d5ee37789" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/441c6b69f7222aadae7cbf5df588496d5ee37789", - "reference": "441c6b69f7222aadae7cbf5df588496d5ee37789", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.8" - }, - "require-dev": { - "symfony/process": "^5.4|^6.4|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides basic utilities for the filesystem", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.4.30" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-11-26T14:43:45+00:00" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.33.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", - "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "provide": { - "ext-ctype": "*" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-09-09T11:45:10+00:00" - }, - { - "name": "symfony/polyfill-intl-grapheme", - "version": "v1.33.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/380872130d3a5dd3ace2f4010d95125fde5d5c70", - "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's grapheme_* functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "grapheme", - "intl", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.33.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-06-27T09:58:17+00:00" - }, - { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.33.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "3833d7255cc303546435cb650316bff708a1c75c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", - "reference": "3833d7255cc303546435cb650316bff708a1c75c", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's Normalizer class and related functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.33.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-09-09T11:45:10+00:00" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.33.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493", - "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493", - "shasum": "" - }, - "require": { - "ext-iconv": "*", - "php": ">=7.2" - }, - "provide": { - "ext-mbstring": "*" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/polyfill", - "name": "symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-12-23T08:48:59+00:00" - }, - { - "name": "symfony/service-contracts", - "version": "v3.6.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/45112560a3ba2d715666a509a0bc9521d10b6c43", - "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/container": "^1.1|^2.0", - "symfony/deprecation-contracts": "^2.5|^3" - }, - "conflict": { - "ext-psr": "<1.1|>=2" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" - }, - "branch-alias": { - "dev-main": "3.6-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Service\\": "" - }, - "exclude-from-classmap": [ - "/Test/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to writing services", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.6.1" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-07-15T11:30:57+00:00" - }, - { - "name": "symfony/string", - "version": "v6.4.30", - "source": { - "type": "git", - "url": "https://github.com/symfony/string.git", - "reference": "50590a057841fa6bf69d12eceffce3465b9e32cb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/50590a057841fa6bf69d12eceffce3465b9e32cb", - "reference": "50590a057841fa6bf69d12eceffce3465b9e32cb", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.0", - "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "symfony/translation-contracts": "<2.5" - }, - "require-dev": { - "symfony/http-client": "^5.4|^6.0|^7.0", - "symfony/intl": "^6.2|^7.0", - "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^5.4|^6.0|^7.0" - }, - "type": "library", - "autoload": { - "files": [ - "Resources/functions.php" - ], - "psr-4": { - "Symfony\\Component\\String\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", - "homepage": "https://symfony.com", - "keywords": [ - "grapheme", - "i18n", - "string", - "unicode", - "utf-8", - "utf8" - ], - "support": { - "source": "https://github.com/symfony/string/tree/v6.4.30" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-11-21T18:03:05+00:00" - }, - { - "name": "vimeo/psalm", - "version": "5.26.1", - "source": { - "type": "git", - "url": "https://github.com/vimeo/psalm.git", - "reference": "d747f6500b38ac4f7dfc5edbcae6e4b637d7add0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/d747f6500b38ac4f7dfc5edbcae6e4b637d7add0", - "reference": "d747f6500b38ac4f7dfc5edbcae6e4b637d7add0", - "shasum": "" - }, - "require": { - "amphp/amp": "^2.4.2", - "amphp/byte-stream": "^1.5", - "composer-runtime-api": "^2", - "composer/semver": "^1.4 || ^2.0 || ^3.0", - "composer/xdebug-handler": "^2.0 || ^3.0", - "dnoegel/php-xdg-base-dir": "^0.1.1", - "ext-ctype": "*", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-simplexml": "*", - "ext-tokenizer": "*", - "felixfbecker/advanced-json-rpc": "^3.1", - "felixfbecker/language-server-protocol": "^1.5.2", - "fidry/cpu-core-counter": "^0.4.1 || ^0.5.1 || ^1.0.0", - "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", - "nikic/php-parser": "^4.17", - "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0", - "sebastian/diff": "^4.0 || ^5.0 || ^6.0", - "spatie/array-to-xml": "^2.17.0 || ^3.0", - "symfony/console": "^4.1.6 || ^5.0 || ^6.0 || ^7.0", - "symfony/filesystem": "^5.4 || ^6.0 || ^7.0" - }, - "conflict": { - "nikic/php-parser": "4.17.0" - }, - "provide": { - "psalm/psalm": "self.version" - }, - "require-dev": { - "amphp/phpunit-util": "^2.0", - "bamarni/composer-bin-plugin": "^1.4", - "brianium/paratest": "^6.9", - "ext-curl": "*", - "mockery/mockery": "^1.5", - "nunomaduro/mock-final-classes": "^1.1", - "php-parallel-lint/php-parallel-lint": "^1.2", - "phpstan/phpdoc-parser": "^1.6", - "phpunit/phpunit": "^9.6", - "psalm/plugin-mockery": "^1.1", - "psalm/plugin-phpunit": "^0.18", - "slevomat/coding-standard": "^8.4", - "squizlabs/php_codesniffer": "^3.6", - "symfony/process": "^4.4 || ^5.0 || ^6.0 || ^7.0" - }, - "suggest": { - "ext-curl": "In order to send data to shepherd", - "ext-igbinary": "^2.0.5 is required, used to serialize caching data" - }, - "bin": [ - "psalm", - "psalm-language-server", - "psalm-plugin", - "psalm-refactor", - "psalter" - ], - "type": "project", - "extra": { - "branch-alias": { - "dev-1.x": "1.x-dev", - "dev-2.x": "2.x-dev", - "dev-3.x": "3.x-dev", - "dev-4.x": "4.x-dev", - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psalm\\": "src/Psalm/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Matthew Brown" - } - ], - "description": "A static analysis tool for finding errors in PHP applications", - "keywords": [ - "code", - "inspection", - "php", - "static analysis" - ], - "support": { - "docs": "https://psalm.dev/docs", - "issues": "https://github.com/vimeo/psalm/issues", - "source": "https://github.com/vimeo/psalm" - }, - "time": "2024-09-08T18:53:08+00:00" - }, - { - "name": "webmozart/assert", - "version": "1.12.1", - "source": { - "type": "git", - "url": "https://github.com/webmozarts/assert.git", - "reference": "9be6926d8b485f55b9229203f962b51ed377ba68" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/9be6926d8b485f55b9229203f962b51ed377ba68", - "reference": "9be6926d8b485f55b9229203f962b51ed377ba68", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "ext-date": "*", - "ext-filter": "*", - "php": "^7.2 || ^8.0" - }, - "suggest": { - "ext-intl": "", - "ext-simplexml": "", - "ext-spl": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.10-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], - "support": { - "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.12.1" - }, - "time": "2025-10-29T15:56:20+00:00" - } - ], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": {}, - "prefer-stable": false, - "prefer-lowest": false, - "platform": {}, - "platform-dev": {}, - "platform-overrides": { - "php": "8.1" - }, - "plugin-api-version": "2.6.0" -} diff --git a/third_party/astrolabe/vendor-bin/rector/composer.json b/third_party/astrolabe/vendor-bin/rector/composer.json deleted file mode 100644 index a266a58..0000000 --- a/third_party/astrolabe/vendor-bin/rector/composer.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "require-dev": { - "rector/rector": "^1.2" - } -} diff --git a/third_party/astrolabe/vendor-bin/rector/composer.lock b/third_party/astrolabe/vendor-bin/rector/composer.lock deleted file mode 100644 index eda7387..0000000 --- a/third_party/astrolabe/vendor-bin/rector/composer.lock +++ /dev/null @@ -1,131 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", - "This file is @generated automatically" - ], - "content-hash": "eb58f3061bde78d58fa424c73947025f", - "packages": [], - "packages-dev": [ - { - "name": "phpstan/phpstan", - "version": "1.12.32", - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/2770dcdf5078d0b0d53f94317e06affe88419aa8", - "reference": "2770dcdf5078d0b0d53f94317e06affe88419aa8", - "shasum": "" - }, - "require": { - "php": "^7.2|^8.0" - }, - "conflict": { - "phpstan/phpstan-shim": "*" - }, - "bin": [ - "phpstan", - "phpstan.phar" - ], - "type": "library", - "autoload": { - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "PHPStan - PHP Static Analysis Tool", - "keywords": [ - "dev", - "static analysis" - ], - "support": { - "docs": "https://phpstan.org/user-guide/getting-started", - "forum": "https://github.com/phpstan/phpstan/discussions", - "issues": "https://github.com/phpstan/phpstan/issues", - "security": "https://github.com/phpstan/phpstan/security/policy", - "source": "https://github.com/phpstan/phpstan-src" - }, - "funding": [ - { - "url": "https://github.com/ondrejmirtes", - "type": "github" - }, - { - "url": "https://github.com/phpstan", - "type": "github" - } - ], - "time": "2025-09-30T10:16:31+00:00" - }, - { - "name": "rector/rector", - "version": "1.2.10", - "source": { - "type": "git", - "url": "https://github.com/rectorphp/rector.git", - "reference": "40f9cf38c05296bd32f444121336a521a293fa61" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/40f9cf38c05296bd32f444121336a521a293fa61", - "reference": "40f9cf38c05296bd32f444121336a521a293fa61", - "shasum": "" - }, - "require": { - "php": "^7.2|^8.0", - "phpstan/phpstan": "^1.12.5" - }, - "conflict": { - "rector/rector-doctrine": "*", - "rector/rector-downgrade-php": "*", - "rector/rector-phpunit": "*", - "rector/rector-symfony": "*" - }, - "suggest": { - "ext-dom": "To manipulate phpunit.xml via the custom-rule command" - }, - "bin": [ - "bin/rector" - ], - "type": "library", - "autoload": { - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Instant Upgrade and Automated Refactoring of any PHP code", - "keywords": [ - "automation", - "dev", - "migration", - "refactoring" - ], - "support": { - "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/1.2.10" - }, - "funding": [ - { - "url": "https://github.com/tomasvotruba", - "type": "github" - } - ], - "time": "2024-11-08T13:59:10+00:00" - } - ], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": {}, - "prefer-stable": false, - "prefer-lowest": false, - "platform": {}, - "platform-dev": {}, - "plugin-api-version": "2.6.0" -} diff --git a/third_party/astrolabe/vite.config.js b/third_party/astrolabe/vite.config.js deleted file mode 100644 index e8f1239..0000000 --- a/third_party/astrolabe/vite.config.js +++ /dev/null @@ -1,43 +0,0 @@ -import { defineConfig } from 'vite' -import vue from '@vitejs/plugin-vue' -import { resolve } from 'path' -import { readFileSync } from 'fs' - -// Read app info from info.xml for @nextcloud/vue -const infoXml = readFileSync(resolve(__dirname, 'appinfo/info.xml'), 'utf-8') -const appName = infoXml.match(/([^<]+)<\/id>/)?.[1] || 'astrolabe' -const appVersion = infoXml.match(/([^<]+)<\/version>/)?.[1] || '' - -export default defineConfig({ - plugins: [vue()], - define: { - appName: JSON.stringify(appName), - appVersion: JSON.stringify(appVersion), - }, - build: { - outDir: '.', - emptyOutDir: false, - cssCodeSplit: false, // Bundle all CSS into entry points (Nextcloud doesn't load CSS chunks) - rollupOptions: { - input: { - 'astrolabe-main': resolve(__dirname, 'src/main.js'), - 'astrolabe-adminSettings': resolve(__dirname, 'src/adminSettings.js'), - 'astrolabe-personalSettings': resolve(__dirname, 'src/personalSettings.js'), - }, - output: { - entryFileNames: 'js/[name].mjs', - chunkFileNames: 'js/[name]-[hash].chunk.mjs', - assetFileNames: (assetInfo) => { - // With cssCodeSplit:false, all CSS goes to a single file - // Name it astrolabe-main.css to match Nextcloud's Util::addStyle expectation - if (assetInfo.name && assetInfo.name.endsWith('.css')) { - return 'css/astrolabe-main.css'; - } - return 'js/[name][extname]'; - }, - }, - }, - sourcemap: true, - minify: 'terser', - }, -}) diff --git a/third_party/astrolabe/webpack.js b/third_party/astrolabe/webpack.js deleted file mode 100644 index 49ae69e..0000000 --- a/third_party/astrolabe/webpack.js +++ /dev/null @@ -1,27 +0,0 @@ -const webpackConfig = require('@nextcloud/webpack-vue-config') -const ESLintPlugin = require('eslint-webpack-plugin') -const StyleLintPlugin = require('stylelint-webpack-plugin') -const path = require('path') - -webpackConfig.entry = { - main: { import: path.join(__dirname, 'src', 'main.js'), filename: 'main.js' }, -} - -webpackConfig.plugins.push( - new ESLintPlugin({ - extensions: ['js', 'vue'], - files: 'src', - }), -) -webpackConfig.plugins.push( - new StyleLintPlugin({ - files: 'src/**/*.{css,scss,vue}', - }), -) - -webpackConfig.module.rules.push({ - test: /\.svg$/i, - type: 'asset/source', -}) - -module.exports = webpackConfig From 08d37a65976b188c664d5e29968dd462345e24f3 Mon Sep 17 00:00:00 2001 From: Chris Coutinho Date: Thu, 12 Feb 2026 23:16:50 +0100 Subject: [PATCH 2/4] docs: clean up astrolabe references after extraction MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove astrolabe-specific docs and sections that belong in the astrolabe repo. Update remaining references to point to the astrolabe repo where appropriate. - Fix .gitmodules SSH → HTTPS URL for astrolabe submodule - Remove bump-version.yml stale "astrolabe" scope comment - Delete blog-introducing-astrolabe.md (moved to astrolabe repo) - Remove "Astrolabe Background Token Refresh" section from auth-flows.md - Replace "Astrolabe User Setup" section in authentication.md with link - Remove "Astrolabe Internal URL" section from configuration.md - Remove "Webhook Presets (via Astrolabe UI)" from webhook guide Co-Authored-By: Claude Opus 4.6 --- .github/workflows/bump-version.yml | 2 +- .gitmodules | 2 +- docs/auth-flows.md | 39 ------ docs/authentication.md | 47 +------ docs/blog-introducing-astrolabe.md | 206 ----------------------------- docs/configuration.md | 22 --- docs/webhook-management-guide.md | 22 +-- 7 files changed, 5 insertions(+), 335 deletions(-) delete mode 100644 docs/blog-introducing-astrolabe.md diff --git a/.github/workflows/bump-version.yml b/.github/workflows/bump-version.yml index 6015efd..6b79224 100644 --- a/.github/workflows/bump-version.yml +++ b/.github/workflows/bump-version.yml @@ -71,7 +71,7 @@ jobs: fi } - # Bump MCP server (default - all commits except helm/astrolabe scopes) + # Bump MCP server (default - all commits except helm scope) echo "Checking MCP server for version bump..." # Get the most recent MCP tag diff --git a/.gitmodules b/.gitmodules index 768b7a1..711cea6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -6,4 +6,4 @@ url = https://github.com/cbcoutinho/notes [submodule "third_party/astrolabe"] path = third_party/astrolabe - url = git@github.com:cbcoutinho/astrolabe.git + url = https://github.com/cbcoutinho/astrolabe diff --git a/docs/auth-flows.md b/docs/auth-flows.md index 051bd8d..d164751 100644 --- a/docs/auth-flows.md +++ b/docs/auth-flows.md @@ -356,45 +356,6 @@ Not applicable. Smithery deployments don't integrate with Astrolabe. --- -## Astrolabe Background Token Refresh - -The Astrolabe Nextcloud app includes a background job that proactively refreshes OAuth tokens before expiration. - -``` -Nextcloud Cron Astrolabe MCP Server IdP - │ │ │ - │── Run RefreshUserTokens ───▶│ │ - │ (every 15 minutes) │ │ - │ │── Get all user tokens ────▶│ - │ │ (from preferences) │ - │ │ │ - │ [For each user] │ │ - │ │── Check expiry ───────────▶│ - │ │ refresh if <50% lifetime │ - │ │ │ - │ │── Acquire user lock ──────▶│ - │ │ (prevent race condition) │ - │ │ │ - │ │── Token refresh request ──▶│ - │ │ grant_type=refresh_token │ - │ │◀── New tokens ─────────────│ - │ │ │ - │ │── Store new tokens ───────▶│ - │ │ (with issued_at) │ - │◀── Job complete ────────────│ │ -``` - -**Key characteristics:** -- Runs every 15 minutes via Nextcloud cron -- Refreshes when <50% of token lifetime remains -- Uses locking to prevent race conditions with on-demand refresh -- Stores `issued_at` timestamp for accurate lifetime calculation -- Batch processing (100 users at a time) for memory efficiency - -**Implementation:** `third_party/astrolabe/lib/BackgroundJob/RefreshUserTokens.php` - ---- - ## Configuration Quick Reference ### Single-User BasicAuth diff --git a/docs/authentication.md b/docs/authentication.md index ef48fe8..20c210b 100644 --- a/docs/authentication.md +++ b/docs/authentication.md @@ -225,52 +225,7 @@ NEXTCLOUD_OIDC_CLIENT_SECRET= ### Astrolabe User Setup (Hybrid Mode) -When Astrolabe connects to an MCP server running in hybrid mode, users must complete a **two-step credential setup**: - -#### Step 1: OAuth Authorization (Search Access) - -**Purpose**: Allows Astrolabe to call MCP server APIs on the user's behalf. - -**Flow**: -1. User opens Astrolabe Personal Settings in Nextcloud -2. Clicks "Authorize" button -3. Redirected to Astrolabe's OAuth controller (`/apps/astrolabe/oauth/initiate`) -4. OAuth controller discovers IdP from MCP server's `/api/v1/status` endpoint -5. User authenticates with Identity Provider (Nextcloud OIDC or external IdP) -6. Tokens stored in Nextcloud user config (`McpTokenStorage`) -7. Astrolabe can now perform semantic searches via MCP API - -**Technical Details**: -- Token audience: MCP server -- Token storage: Nextcloud app config (`oc_preferences`) -- Used for: `/api/v1/search`, `/api/v1/status` (authenticated endpoints) - -#### Step 2: App Password (Background Indexing) - -**Purpose**: Allows MCP server to access Nextcloud content for background sync. - -**Flow**: -1. User generates app password in Nextcloud Security settings -2. Enters app password in Astrolabe Personal Settings -3. App password validated against Nextcloud and stored (encrypted) -4. MCP server can now index user's content in the background - -**Technical Details**: -- Credential type: Nextcloud app password -- Token storage: MCP server's refresh token database -- Used for: Background indexing, content sync to vector database - -#### Why Two Credentials? - -| Direction | Auth Method | Purpose | -|-----------|-------------|---------| -| Astrolabe → MCP Server | OAuth Bearer Token | User searches, settings management | -| MCP Server → Nextcloud | BasicAuth (App Password) | Background content indexing | - -The separation ensures: -- **Security**: Each credential has limited scope -- **Audit Trail**: OAuth tokens identify users; app passwords enable background ops -- **User Control**: Users explicitly grant each type of access +For Astrolabe-specific user setup instructions in hybrid mode, see the [Astrolabe documentation](https://github.com/cbcoutinho/astrolabe/blob/master/docs/user-setup-hybrid-mode.md). ### See Also - [OAuth Architecture](oauth-architecture.md) - Progressive Consent (Flow 2) details diff --git a/docs/blog-introducing-astrolabe.md b/docs/blog-introducing-astrolabe.md deleted file mode 100644 index c66bd0c..0000000 --- a/docs/blog-introducing-astrolabe.md +++ /dev/null @@ -1,206 +0,0 @@ -# Introducing Astrolabe: Navigate Your Data Universe in Nextcloud - -Your Nextcloud instance holds years of notes, projects, recipes, contacts, and documents. But when you need to find something, you're stuck typing exact keywords and hoping for the best. Search "car repair" and miss that note titled "Vehicle maintenance tips." Search "meeting agenda" and overlook the calendar event called "Team sync." Traditional keyword search demands that you remember exactly how you wrote things down. - -What if your search could understand what you *mean*, not just what you type? - -Meet **Astrolabe**—a Nextcloud app that brings AI-powered semantic search to your self-hosted cloud. Named after the ancient navigational instrument that helped travelers chart courses by the stars, Astrolabe helps you navigate your personal knowledge by mapping the semantic connections between your documents. - -## The Astrolabe Metaphor - -The astrolabe was one of humanity's most elegant scientific instruments—an analog computer for solving problems related to time and the position of celestial bodies. Its theoretical foundation traces back to **Hipparchus of Nicaea** (c. 190–120 BCE), who discovered the stereographic projection that allows a three-dimensional celestial sphere to be represented on a flat surface. Later Greek scholars like **Theon of Alexandria** and his daughter **Hypatia** refined it into a practical instrument, and during the Islamic Golden Age, astronomers in Baghdad, Damascus, and Cordoba perfected its design and applications. - -For nearly two millennia, astrolabes served astronomers, navigators, scholars, and religious officials across the Greek, Byzantine, Islamic, and medieval European worlds. These instruments allowed users to determine time, find celestial positions, calculate daylight hours, identify constellations, and even determine the direction of Mecca for prayer—all without complex calculations. The astrolabe made the vast complexity of the heavens understandable and navigable. - -**Astrolabe** (the app) does the same for your data. Every document, note, and calendar event becomes a point of light in your personal data universe. The app maps their semantic relationships—their meaning, not just their words—and suddenly the connections become visible. Documents cluster by topic, related ideas sit nearby, and you can navigate this landscape as naturally as medieval scholars once read the stars. Where the original astrolabe projected the celestial sphere onto brass, this one projects your knowledge into explorable semantic space. - -## Semantic Search: Find Meaning, Not Just Keywords - -The core feature of Astrolabe is semantic search. Instead of matching exact keywords, it understands the concepts in your query and finds related content. - -**What this looks like in practice:** - -| You Search For | Traditional Search Finds | Astrolabe Also Finds | -|----------------|--------------------------|----------------------| -| "car repair" | Documents containing "car repair" | Notes about "vehicle maintenance," "fixing the truck" | -| "team planning" | Documents with "team planning" | Calendar events titled "Q2 kickoff," Deck cards about "project roadmap" | -| "pasta recipes" | Documents with "pasta recipes" | Notes about "Italian cooking," "homemade noodles," "carbonara tips" | - -This works across multiple Nextcloud apps: Notes, Files (including PDFs with OCR), Deck cards, Calendar events, Contacts, and News/RSS items. One search bar, all your content, understood by meaning. - -### Hybrid Search: Best of Both Worlds - -Sometimes you want exact matches ("PROJ-2024-001"), sometimes you want semantic understanding ("that project from last year about authentication"). Astrolabe's hybrid search combines both approaches: - -- **Semantic search** uses embeddings to find conceptually related content -- **BM25 keyword search** finds exact matches and important terms -- **Reciprocal Rank Fusion (RRF)** intelligently merges the results - -You can adjust the balance or switch modes entirely depending on your needs. - -![Unified Search Integration](https://github.com/cbcoutinho/nextcloud-mcp-server/blob/master/third_party/astrolabe/screenshots/01-unified-search-astrolabe.png?raw=1) -*Astrolabe results appear alongside traditional search in Nextcloud's unified search bar* - -## Visualize Your Data Universe - -Beyond search, Astrolabe includes an interactive 3D visualization that shows your documents positioned in semantic space. Similar documents cluster together. Topics form constellations. You can rotate, zoom, and explore. - -This isn't just eye candy—it's a practical tool for knowledge discovery: - -- **Find forgotten connections**: Search for your current project and watch as related documents from months ago light up nearby -- **Spot topic clusters**: See how your notes naturally group by subject -- **Explore the unknown**: Click on points near your search results to discover content you didn't know was related - -The visualization uses Principal Component Analysis (PCA) to project high-dimensional embeddings (768 dimensions) down to 3D space while preserving the relationships between documents. We implemented a lightweight, custom PCA specifically for this—no heavyweight ML libraries required. - -![3D Vector Visualization](https://github.com/cbcoutinho/nextcloud-mcp-server/blob/master/third_party/astrolabe/screenshots/02-semantic-search-with-plot.png?raw=1) -*Documents cluster by semantic similarity. The query point (red) shows your search, and related documents cluster nearby* - -## Power Your AI Agents - -Astrolabe isn't just for humans—it's for your AI assistants too. - -The backend runs a **Model Context Protocol (MCP)** server, which means AI tools like Claude Desktop, Cursor, or custom agents can connect directly to your Nextcloud data. Your AI assistant can: - -- Search your notes semantically ("Find everything related to the Kubernetes migration") -- Retrieve document content for context -- Get AI-generated answers with citations from your documents (RAG) - -The critical point: **your data never leaves your infrastructure**. The MCP server runs on your hardware. Your AI assistant sends queries, the server returns results, and you maintain full control. No documents uploaded to third-party services. - -### Retrieval-Augmented Generation (RAG) - -Ask a question, and Astrolabe can retrieve relevant documents and have your AI synthesize an answer—complete with citations: - -``` -You: "What were the main issues we had deploying to production last month?" - -Astrolabe finds: 3 relevant notes, 2 Deck cards, 1 calendar event - -AI generates: "Based on your documents, there were three main issues: -1. Database migration timeout (see Note: 'Prod deploy 2024-01-15') -2. SSL certificate renewal (see Deck card: 'Ops Tasks') -3. Resource limits on the new pods (see Note: 'K8s troubleshooting') -``` - -This uses MCP's sampling capability—the server doesn't run its own LLM. Instead, it asks your client's AI to generate the response. You choose the model, you control the costs. - -## Under the Hood - -For the technically curious, here's how Astrolabe works: - -### Embedding Providers - -Astrolabe supports multiple backends for generating semantic embeddings: - -- **Amazon Bedrock**: Enterprise-grade, Titan embeddings -- **OpenAI**: Direct OpenAI API or compatible endpoints (including GitHub Models) -- **Ollama**: Self-hosted, privacy-focused, runs entirely on your hardware - -The system auto-detects available providers based on environment variables and falls back gracefully. Deploy Ollama on your server for full privacy, or use Bedrock for enterprise scale—same codebase, zero code changes. - -### Background Indexing - -Documents are indexed automatically via webhooks. When you create or edit a note, Nextcloud fires an event, and the MCP server processes it in the background. No manual sync required. - -The indexing pipeline: -1. **Scanner** detects changes via ETags and modification timestamps -2. **Queue** manages backpressure (up to 10k pending documents) -3. **Worker pool** processes embeddings concurrently (configurable, default 3 workers) -4. **Qdrant** stores vectors for fast similarity search - -### Lightweight by Design - -We deliberately avoided heavyweight dependencies: - -- **Custom PCA**: No scikit-learn, just efficient eigendecomposition -- **In-process async**: No separate message queues or worker processes—just anyio TaskGroups -- **Plugin architecture**: New apps (Notes, Calendar, etc.) are simple scanner/processor implementations - -This means Astrolabe runs comfortably alongside your Nextcloud on modest hardware. - -``` -┌──────────────┐ ┌─────────────┐ ┌─────────┐ -│ Nextcloud │────▶│ MCP Server │────▶│ Qdrant │ -│ (Astrolabe) │◀────│ (Python) │◀────│ (Vectors)│ -└──────────────┘ └─────────────┘ └─────────┘ - │ │ - │ OAuth/Token │ Embeddings - ▼ ▼ - ┌────────┐ ┌──────────┐ - │ User │ │ Ollama/ │ - │Browser │ │ Bedrock │ - └────────┘ └──────────┘ -``` - -## Getting Started - -### Requirements - -- Nextcloud 31 or 32 -- MCP server instance (Docker recommended) -- Vector database (Qdrant, included in Docker setup) -- Embedding provider (Ollama for self-hosted, or cloud options) - -### Quick Setup - -1. **Install the Astrolabe app** from the Nextcloud App Store (or manually) - -2. **Start the MCP server** (Docker Compose makes this easy): - ```bash - docker compose up -d mcp qdrant ollama - ``` - -3. **Configure the connection** in your Nextcloud `config.php`: - ```php - 'astrolabe' => [ - 'mcp_server_url' => 'http://localhost:8000', - ], - ``` - -4. **Authorize access** in Settings → Personal → Astrolabe - -5. **Start searching** using Nextcloud's unified search bar - -For detailed setup instructions, including OAuth configuration and embedding provider options, see the [documentation](https://github.com/cbcoutinho/nextcloud-mcp-server). - -## What Can You Index? - -Astrolabe currently supports: - -| App | What Gets Indexed | -|-----|-------------------| -| **Notes** | Full text and metadata | -| **Files** | PDFs (with OCR), DOCX, text files | -| **Deck** | Card titles and descriptions | -| **Calendar** | Event titles, descriptions, and details | -| **Contacts** | Names, notes, and contact information | -| **News** | RSS/Atom feed articles | - -Each result shows the document type, relevance score, and a direct link to the source. For large documents, it shows which chunk (section) matched. - -![Chunk Viewer](https://github.com/cbcoutinho/nextcloud-mcp-server/blob/master/third_party/astrolabe/screenshots/03-chunk-viewer-open.png?raw=1) -*Click a result to see the matching chunk in context* - -## Who Is This For? - -**Researchers and students**: Find all notes related to your thesis topic, even when you used different terminology across semesters. Discover connections between papers you read months apart. - -**Teams and organizations**: Surface institutional knowledge that would otherwise stay buried. New team members can search for concepts instead of knowing exactly what to look for. - -**Developers**: Connect your AI coding assistant to your Nextcloud. Give it access to project notes, meeting records, and documentation without copy-pasting context. - -**Personal knowledge managers**: Discover forgotten documents related to your current work. Watch your knowledge base evolve over time through the visualization. - -## Try It Out - -Astrolabe is open source (AGPL) and ready to use. Your data universe has been waiting in the dark—it's time to turn on the lights. - -- **Install**: [Nextcloud App Store](https://apps.nextcloud.com/apps/astrolabe) -- **Source**: [GitHub](https://github.com/cbcoutinho/nextcloud-mcp-server) -- **Documentation**: [Setup Guide](https://github.com/cbcoutinho/nextcloud-mcp-server/tree/master/docs) -- **Issues**: [Report bugs or request features](https://github.com/cbcoutinho/nextcloud-mcp-server/issues) - ---- - -*Astrolabe is maintained by [Chris Coutinho](https://github.com/cbcoutinho). Contributions welcome.* diff --git a/docs/configuration.md b/docs/configuration.md index 208ba6f..f29fbdd 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -531,28 +531,6 @@ docker-compose up --- -## Astrolabe Internal URL - -The Astrolabe Nextcloud app may need to make internal HTTP requests to the local web server (e.g., for OAuth token refresh). By default, it uses `http://localhost` which works for standard Docker containers where PHP and Apache run together. - -| Variable | Description | Default | -|----------|-------------|---------| -| `astrolabe_internal_url` | Internal URL for server-to-server requests within container | `http://localhost` | - -**When to configure:** -- Custom container setups where the internal web server is not on `localhost:80` -- Kubernetes deployments with service discovery -- Multi-container setups with separate web server containers - -**Example (Nextcloud config.php):** -```php -'astrolabe_internal_url' => 'http://web-server.internal:8080', -``` - -**Note:** This is for internal PHP-to-Apache requests, NOT for external client URLs. The default (`http://localhost`) works for standard Docker containers where PHP and Apache run together. - ---- - ## Loading Environment Variables After creating your `.env` file, load the environment variables: diff --git a/docs/webhook-management-guide.md b/docs/webhook-management-guide.md index 74b9ffd..0d6dc54 100644 --- a/docs/webhook-management-guide.md +++ b/docs/webhook-management-guide.md @@ -11,7 +11,7 @@ This guide explains how to enable and disable webhooks for vector sync in each M Before enabling webhooks, ensure: 1. **Nextcloud 30+** with `webhook_listeners` app enabled -2. **Astrolabe app** installed in Nextcloud (provides settings UI and credentials API) +2. **[Astrolabe app](https://github.com/cbcoutinho/astrolabe)** installed in Nextcloud (provides settings UI and credentials API) 3. **MCP server** accessible from Nextcloud via HTTP(S) 4. **Vector sync enabled** on the MCP server @@ -261,24 +261,6 @@ php occ webhook_listeners:add --event "OCA\Tables\Event\RowUpdatedEvent" --uri " php occ webhook_listeners:add --event "OCA\Tables\Event\RowDeletedEvent" --uri "$MCP_URL/webhooks/nextcloud" ``` -## Webhook Presets (via Astrolabe UI) - -The Astrolabe app provides preset webhook configurations that can be enabled/disabled via the Admin settings UI: - -| Preset | Events Covered | -|--------|----------------| -| `notes_sync` | File create/update/delete for .md files | -| `calendar_sync` | Calendar object events | -| `tables_sync` | Tables row events | -| `forms_sync` | Forms submission events | -| `files_sync` | All file events (optional, high volume) | - -**Enable Presets:** -1. Navigate to **Nextcloud Settings → Astrolabe** (Admin settings) -2. Toggle desired presets in "Webhook Configuration" - -**Note:** Presets require the MCP server's management API to be accessible. The API uses OAuth bearer tokens from the user's session. - ## Security Considerations ### Webhook Authentication @@ -327,7 +309,7 @@ SELECT * FROM oc_webhook_listeners; -- Check OAuth clients SELECT id, name, token_type FROM oc_oidc_clients WHERE dcr = 1; --- Check user credentials in Astrolabe +-- Check user credentials stored by Astrolabe app SELECT userid, configkey FROM oc_preferences WHERE appid = 'astrolabe'; ``` From 49c5439686240b4697e84f7ee7ce762e4eb5c22b Mon Sep 17 00:00:00 2001 From: Chris Coutinho Date: Sun, 15 Feb 2026 15:54:08 +0100 Subject: [PATCH 3/4] docs: annotate astrolabe integration tests as cross-system interface tests Add cross-system interface test annotations to the 5 astrolabe test files, clarifying they test the MCP server's integration with the Astrolabe Nextcloud app (installed from the app store, source now in a separate repo). Co-Authored-By: Claude Opus 4.6 --- .../integration/test_astrolabe_multi_user_background_sync.py | 5 +++++ tests/integration/test_astrolabe_plotly_visualization.py | 5 +++++ tests/integration/test_astrolabe_settings_buttons.py | 5 +++++ tests/integration/test_astrolabe_token_refresh.py | 5 +++++ .../server/oauth/test_astrolabe_multi_server_integration.py | 5 +++++ 5 files changed, 25 insertions(+) diff --git a/tests/integration/test_astrolabe_multi_user_background_sync.py b/tests/integration/test_astrolabe_multi_user_background_sync.py index 5640f25..0a3c56a 100644 --- a/tests/integration/test_astrolabe_multi_user_background_sync.py +++ b/tests/integration/test_astrolabe_multi_user_background_sync.py @@ -1,5 +1,10 @@ """Integration test for multi-user Astrolabe background sync enablement. +Cross-system interface test: Tests the MCP server's integration with the +Astrolabe Nextcloud app, which is installed from the Nextcloud app store via +app-hooks/post-installation/20-install-astrolabe-app.sh. Astrolabe source +lives in a separate repository (https://github.com/cbcoutinho/astrolabe). + This test verifies that multiple users can independently: 1. Log in to Nextcloud 2. Generate an app password in Security settings diff --git a/tests/integration/test_astrolabe_plotly_visualization.py b/tests/integration/test_astrolabe_plotly_visualization.py index 2a9a93b..e633bfe 100644 --- a/tests/integration/test_astrolabe_plotly_visualization.py +++ b/tests/integration/test_astrolabe_plotly_visualization.py @@ -1,5 +1,10 @@ """Integration test for Astrolabe Plotly 3D visualization with multi-user BasicAuth mode. +Cross-system interface test: Tests the MCP server's integration with the +Astrolabe Nextcloud app, which is installed from the Nextcloud app store via +app-hooks/post-installation/20-install-astrolabe-app.sh. Astrolabe source +lives in a separate repository (https://github.com/cbcoutinho/astrolabe). + This test verifies that: 1. User can provision background sync access via app password 2. Content created via MCP tools is indexed by vector sync diff --git a/tests/integration/test_astrolabe_settings_buttons.py b/tests/integration/test_astrolabe_settings_buttons.py index e93ea7f..a8c279e 100644 --- a/tests/integration/test_astrolabe_settings_buttons.py +++ b/tests/integration/test_astrolabe_settings_buttons.py @@ -1,5 +1,10 @@ """Integration tests for Astrolabe personal settings page buttons. +Cross-system interface test: Tests the MCP server's integration with the +Astrolabe Nextcloud app, which is installed from the Nextcloud app store via +app-hooks/post-installation/20-install-astrolabe-app.sh. Astrolabe source +lives in a separate repository (https://github.com/cbcoutinho/astrolabe). + Tests the button functionality on /settings/user/astrolabe: 1. Disable Indexing button (POST to /apps/astrolabe/api/revoke) 2. Disconnect button (POST to /apps/astrolabe/oauth/disconnect) diff --git a/tests/integration/test_astrolabe_token_refresh.py b/tests/integration/test_astrolabe_token_refresh.py index 069c49e..f2ff82e 100644 --- a/tests/integration/test_astrolabe_token_refresh.py +++ b/tests/integration/test_astrolabe_token_refresh.py @@ -1,5 +1,10 @@ """Integration tests for Astrolabe token refresh flow. +Cross-system interface test: Tests the MCP server's integration with the +Astrolabe Nextcloud app, which is installed from the Nextcloud app store via +app-hooks/post-installation/20-install-astrolabe-app.sh. Astrolabe source +lives in a separate repository (https://github.com/cbcoutinho/astrolabe). + Tests the token refresh mechanism between Astrolabe (Nextcloud app) and the MCP server backend in a multi-user basic auth deployment. diff --git a/tests/server/oauth/test_astrolabe_multi_server_integration.py b/tests/server/oauth/test_astrolabe_multi_server_integration.py index da8a207..f393d34 100644 --- a/tests/server/oauth/test_astrolabe_multi_server_integration.py +++ b/tests/server/oauth/test_astrolabe_multi_server_integration.py @@ -1,5 +1,10 @@ """Test Astrolabe integration with multiple MCP server deployments. +Cross-system interface test: Tests the MCP server's integration with the +Astrolabe Nextcloud app, which is installed from the Nextcloud app store via +app-hooks/post-installation/20-install-astrolabe-app.sh. Astrolabe source +lives in a separate repository (https://github.com/cbcoutinho/astrolabe). + This test suite verifies that the Astrolabe app can be dynamically configured to connect to different MCP server deployments (mcp-oauth, mcp-keycloak, etc.). From 3be229a4875497ac2b3358cd8ae94727a4d9940b Mon Sep 17 00:00:00 2001 From: Chris Coutinho Date: Mon, 16 Feb 2026 00:17:38 +0100 Subject: [PATCH 4/4] refactor: remove stale astrolabe references from commitizen config Remove astrolabe tag filtering and commit scope exclusions from pyproject.toml now that Astrolabe lives in its own repository. Co-Authored-By: Claude Opus 4.6 --- pyproject.toml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 91401a9..e67ff05 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -98,13 +98,12 @@ version_files = [ # Ignore tags from other components ignored_tag_formats = [ "nextcloud-mcp-server-*", # Helm chart tags - "astrolabe-v*", # Astrolabe tags ] -# Filter commits by scope (all scopes except helm and astrolabe) +# Filter commits by scope (all scopes except helm) [tool.commitizen.customize] -changelog_pattern = "^(feat|fix|docs|refactor|perf|test|build|ci|chore)(?!\\((?:helm|astrolabe)\\))(\\([^)]+\\))?(!)?:" -schema_pattern = "^(feat|fix|docs|refactor|perf|test|build|ci|chore)(?!\\((?:helm|astrolabe)\\))(\\([^)]+\\))?(!)?:\\s.+" +changelog_pattern = "^(feat|fix|docs|refactor|perf|test|build|ci|chore)(?!\\((?:helm)\\))(\\([^)]+\\))?(!)?:" +schema_pattern = "^(feat|fix|docs|refactor|perf|test|build|ci|chore)(?!\\((?:helm)\\))(\\([^)]+\\))?(!)?:\\s.+" [tool.ruff.lint] extend-select = ["I"]