about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.git-blame-ignore-revs4
-rw-r--r--.github/CODEOWNERS4
-rw-r--r--.github/workflows/basic-eval.yml2
-rw-r--r--.github/workflows/check-by-name.yml12
-rw-r--r--.github/workflows/manual-nixos.yml2
-rw-r--r--.github/workflows/manual-nixpkgs.yml2
-rw-r--r--.mailmap1
-rw-r--r--CONTRIBUTING.md9
-rw-r--r--doc/build-helpers/testers.chapter.md76
-rw-r--r--doc/default.nix10
-rw-r--r--doc/doc-support/python-interpreter-table.nix63
-rw-r--r--doc/hooks/waf.section.md4
-rw-r--r--doc/languages-frameworks/dotnet.section.md1
-rw-r--r--doc/languages-frameworks/python.section.md11
-rw-r--r--lib/cli.nix11
-rw-r--r--lib/fixed-points.nix152
-rw-r--r--lib/licenses.nix11
-rw-r--r--lib/tests/misc.nix21
-rw-r--r--maintainers/maintainer-list.nix177
-rwxr-xr-xmaintainers/scripts/kde/collect-missing-deps.py8
-rw-r--r--maintainers/scripts/luarocks-packages.csv1
-rw-r--r--maintainers/scripts/pluginupdate.py2
-rw-r--r--maintainers/team-list.nix11
-rw-r--r--nixos/doc/manual/release-notes/rl-2111.section.md2
-rw-r--r--nixos/doc/manual/release-notes/rl-2211.section.md2
-rw-r--r--nixos/doc/manual/release-notes/rl-2405.section.md82
-rw-r--r--nixos/doc/manual/release-notes/rl-2411.section.md11
-rw-r--r--nixos/lib/test-driver/test_driver/logger.py3
-rw-r--r--nixos/maintainers/scripts/ec2/README.md35
-rwxr-xr-xnixos/maintainers/scripts/ec2/create-amis.sh368
-rw-r--r--nixos/modules/config/no-x-libs.nix7
-rw-r--r--nixos/modules/hardware/video/nvidia.nix2
-rw-r--r--nixos/modules/installer/netboot/netboot.nix3
-rw-r--r--nixos/modules/module-list.nix6
-rw-r--r--nixos/modules/programs/less.nix4
-rw-r--r--nixos/modules/programs/pantheon-tweaks.nix17
-rw-r--r--nixos/modules/programs/steam.nix41
-rw-r--r--nixos/modules/programs/wayland/hyprland.nix100
-rw-r--r--nixos/modules/programs/wayland/hyprlock.nix25
-rw-r--r--nixos/modules/programs/wayland/lib.nix12
-rw-r--r--nixos/modules/programs/wayland/river.nix58
-rw-r--r--nixos/modules/programs/wayland/sway.nix178
-rw-r--r--nixos/modules/programs/wayland/wayland-session.nix31
-rw-r--r--nixos/modules/rename.nix8
-rw-r--r--nixos/modules/services/backup/borgbackup.nix2
-rw-r--r--nixos/modules/services/cluster/rke2/default.nix311
-rw-r--r--nixos/modules/services/continuous-integration/hydra/default.nix2
-rw-r--r--nixos/modules/services/desktop-managers/lomiri.nix8
-rw-r--r--nixos/modules/services/games/archisteamfarm.nix7
-rw-r--r--nixos/modules/services/hardware/kanata.nix23
-rw-r--r--nixos/modules/services/hardware/nvidia-container-toolkit/default.nix8
-rw-r--r--nixos/modules/services/home-automation/ebusd.nix2
-rw-r--r--nixos/modules/services/home-automation/wyoming/faster-whisper.nix3
-rw-r--r--nixos/modules/services/home-automation/wyoming/openwakeword.nix3
-rw-r--r--nixos/modules/services/home-automation/wyoming/piper.nix3
-rw-r--r--nixos/modules/services/mail/stalwart-mail.nix35
-rw-r--r--nixos/modules/services/misc/devpi-server.nix8
-rw-r--r--nixos/modules/services/misc/invidious-router.nix2
-rw-r--r--nixos/modules/services/misc/ollama.nix33
-rw-r--r--nixos/modules/services/misc/portunus.nix4
-rw-r--r--nixos/modules/services/misc/snapper.nix2
-rw-r--r--nixos/modules/services/monitoring/grafana.nix100
-rw-r--r--nixos/modules/services/networking/kea.nix3
-rw-r--r--nixos/modules/services/networking/oink.nix84
-rw-r--r--nixos/modules/services/networking/ssh/sshd.nix19
-rw-r--r--nixos/modules/services/networking/wireguard.nix10
-rw-r--r--nixos/modules/services/security/bitwarden-directory-connector-cli.nix1
-rw-r--r--nixos/modules/services/security/oauth2-proxy-nginx.nix18
-rw-r--r--nixos/modules/services/system/dbus.nix8
-rw-r--r--nixos/modules/services/video/frigate.nix4
-rw-r--r--nixos/modules/services/wayland/hypridle.nix26
-rw-r--r--nixos/modules/services/web-apps/firefly-iii.nix91
-rw-r--r--nixos/modules/services/web-apps/nextjs-ollama-llm-ui.nix87
-rw-r--r--nixos/modules/system/boot/resolved.nix143
-rw-r--r--nixos/modules/system/boot/systemd/sysusers.nix21
-rw-r--r--nixos/tests/all-tests.nix3
-rw-r--r--nixos/tests/ayatana-indicators.nix8
-rw-r--r--nixos/tests/firefly-iii.nix97
-rw-r--r--nixos/tests/gnome-extensions.nix5
-rw-r--r--nixos/tests/grafana/provision/default.nix41
-rw-r--r--nixos/tests/lomiri.nix16
-rw-r--r--nixos/tests/ollama.nix8
-rw-r--r--nixos/tests/openssh.nix12
-rw-r--r--nixos/tests/rke2/default.nix13
-rw-r--r--nixos/tests/rke2/multi-node.nix176
-rw-r--r--nixos/tests/rke2/single-node.nix75
-rw-r--r--nixos/tests/stalwart-mail.nix12
-rw-r--r--nixos/tests/systemd-resolved.nix75
-rw-r--r--nixos/tests/teleport.nix1
-rw-r--r--nixos/tests/web-apps/nextjs-ollama-llm-ui.nix22
-rw-r--r--pkgs/applications/accessibility/espeakup/default.nix2
-rw-r--r--pkgs/applications/audio/amarok/default.nix16
-rw-r--r--pkgs/applications/audio/cardinal/default.nix4
-rw-r--r--pkgs/applications/audio/g4music/default.nix4
-rw-r--r--pkgs/applications/audio/ledfx/default.nix6
-rw-r--r--pkgs/applications/audio/lsp-plugins/default.nix4
-rw-r--r--pkgs/applications/audio/mixxx/default.nix6
-rw-r--r--pkgs/applications/audio/mpdevil/default.nix56
-rw-r--r--pkgs/applications/audio/pyradio/default.nix4
-rw-r--r--pkgs/applications/audio/spotify-player/default.nix6
-rw-r--r--pkgs/applications/audio/tidal-hifi/default.nix4
-rw-r--r--pkgs/applications/audio/waylyrics/default.nix6
-rw-r--r--pkgs/applications/blockchains/besu/default.nix27
-rw-r--r--pkgs/applications/blockchains/ledger-live-desktop/default.nix4
-rw-r--r--pkgs/applications/blockchains/optimism/default.nix6
-rw-r--r--pkgs/applications/blockchains/polkadot/default.nix2
-rw-r--r--pkgs/applications/display-managers/lemurs/default.nix3
-rw-r--r--pkgs/applications/editors/ed/generic.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/elpa-devel-generated.nix494
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix210
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix59
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json2915
-rwxr-xr-xpkgs/applications/editors/emacs/elisp-packages/update-from-overlay.flake.sh9
-rw-r--r--pkgs/applications/editors/gnome-builder/default.nix12
-rw-r--r--pkgs/applications/editors/tijolo/default.nix35
-rw-r--r--pkgs/applications/editors/tijolo/shards.nix41
-rw-r--r--pkgs/applications/editors/vim/common.nix4
-rw-r--r--pkgs/applications/editors/vim/plugins/deprecated.json6
-rw-r--r--pkgs/applications/editors/vim/plugins/generated.nix1363
-rw-r--r--pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix227
-rw-r--r--pkgs/applications/editors/vim/plugins/overrides.nix9
-rw-r--r--pkgs/applications/editors/vim/plugins/vim-plugin-names4
-rw-r--r--pkgs/applications/editors/vscode/extensions/default.nix6
-rw-r--r--pkgs/applications/editors/vscode/extensions/ms-vscode.cpptools/default.nix21
-rw-r--r--pkgs/applications/editors/vscode/extensions/myriad-dreamin.tinymist/default.nix6
-rw-r--r--pkgs/applications/emulators/box64/default.nix4
-rw-r--r--pkgs/applications/emulators/retroarch/hashes.json78
-rw-r--r--pkgs/applications/emulators/ruffle/default.nix86
-rw-r--r--pkgs/applications/emulators/sameboy/default.nix4
-rw-r--r--pkgs/applications/gis/qgis/unwrapped-ltr.nix4
-rw-r--r--pkgs/applications/gis/qgis/unwrapped.nix4
-rw-r--r--pkgs/applications/graphics/ImageMagick/default.nix5
-rw-r--r--pkgs/applications/graphics/f3d/default.nix8
-rw-r--r--pkgs/applications/graphics/figma-linux/default.nix4
-rw-r--r--pkgs/applications/graphics/gnome-obfuscate/default.nix6
-rw-r--r--pkgs/applications/graphics/komikku/default.nix4
-rw-r--r--pkgs/applications/graphics/paraview/default.nix12
-rw-r--r--pkgs/applications/graphics/paraview/dont-redefine-strlcat.patch28
-rw-r--r--pkgs/applications/graphics/rnote/default.nix2
-rw-r--r--pkgs/applications/misc/1password-gui/default.nix18
-rw-r--r--pkgs/applications/misc/1password/default.nix10
-rw-r--r--pkgs/applications/misc/corectrl/default.nix4
-rw-r--r--pkgs/applications/misc/flashprint/default.nix4
-rw-r--r--pkgs/applications/misc/gmnitohtml/default.nix10
-rw-r--r--pkgs/applications/misc/gnome-firmware/default.nix4
-rw-r--r--pkgs/applications/misc/gpxsee/default.nix4
-rw-r--r--pkgs/applications/misc/gum/default.nix6
-rw-r--r--pkgs/applications/misc/kiln/default.nix6
-rw-r--r--pkgs/applications/misc/oxker/default.nix6
-rw-r--r--pkgs/applications/misc/pagefind/default.nix1
-rw-r--r--pkgs/applications/misc/pdfslicer/default.nix4
-rw-r--r--pkgs/applications/misc/phoc/default.nix2
-rw-r--r--pkgs/applications/misc/remnote/default.nix63
-rw-r--r--pkgs/applications/misc/slippy/default.nix5
-rw-r--r--pkgs/applications/misc/twitch-chat-downloader/default.nix15
-rw-r--r--pkgs/applications/misc/uni/default.nix6
-rwxr-xr-xpkgs/applications/misc/waylock/update.nu5
-rw-r--r--pkgs/applications/networking/blocky/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/brave/default.nix12
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.nix20
-rw-r--r--pkgs/applications/networking/browsers/floorp/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/netsurf/libparserutils.nix5
-rw-r--r--pkgs/applications/networking/browsers/palemoon/bin.nix2
-rw-r--r--pkgs/applications/networking/browsers/polypane/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/argo/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/argocd/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/atlantis/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/atmos/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/civo/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/gatekeeper/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/helm/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/helmfile/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/k3sup/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kubebuilder/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kubecm/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kubecolor/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kubectl-klock/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kubeseal/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kubeshark/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kyverno/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/pachyderm/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/rke2/default.nix42
-rw-r--r--pkgs/applications/networking/cluster/roxctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/stern/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/temporal-cli/default.nix10
-rw-r--r--pkgs/applications/networking/cluster/terraform/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/tftui/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/zarf/default.nix6
-rw-r--r--pkgs/applications/networking/coreth/default.nix6
-rw-r--r--pkgs/applications/networking/dyndns/dyndnsc/default.nix72
-rw-r--r--pkgs/applications/networking/flexget/default.nix4
-rw-r--r--pkgs/applications/networking/gns3/server.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/chatty/default.nix14
-rw-r--r--pkgs/applications/networking/instant-messengers/discord/default.nix28
-rw-r--r--pkgs/applications/networking/instant-messengers/element/pin.nix10
-rw-r--r--pkgs/applications/networking/instant-messengers/feishu/default.nix103
-rw-r--r--pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/twitch-tui/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/zoom-us/default.nix12
-rw-r--r--pkgs/applications/networking/irc/tiny/default.nix5
-rw-r--r--pkgs/applications/networking/irc/weechat/default.nix8
-rw-r--r--pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix9
-rw-r--r--pkgs/applications/networking/iroh/default.nix6
-rw-r--r--pkgs/applications/networking/juju/default.nix29
-rw-r--r--pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/evolution/evolution-ews/hardcode-gsettings.patch8
-rw-r--r--pkgs/applications/networking/mailreaders/evolution/evolution/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/mutt/default.nix18
-rw-r--r--pkgs/applications/networking/nextdns/default.nix4
-rw-r--r--pkgs/applications/networking/protonmail-bridge/default.nix4
-rw-r--r--pkgs/applications/networking/remote/dayon/default.nix4
-rw-r--r--pkgs/applications/networking/sync/celeste/default.nix5
-rw-r--r--pkgs/applications/networking/sync/desync/default.nix6
-rw-r--r--pkgs/applications/networking/sync/rsync/default.nix3
-rw-r--r--pkgs/applications/networking/sync/wdt/default.nix6
-rw-r--r--pkgs/applications/networking/syncplay/default.nix6
-rw-r--r--pkgs/applications/office/espanso/Cargo.lock1104
-rw-r--r--pkgs/applications/office/espanso/default.nix67
-rw-r--r--pkgs/applications/office/espanso/inject-wx-on-darwin.patch223
-rw-r--r--pkgs/applications/office/mendeley/default.nix4
-rw-r--r--pkgs/applications/office/morgen/default.nix4
-rw-r--r--pkgs/applications/office/p3x-onenote/default.nix4
-rw-r--r--pkgs/applications/office/qownnotes/default.nix4
-rw-r--r--pkgs/applications/office/treesheets/default.nix6
-rw-r--r--pkgs/applications/office/zk/default.nix8
-rw-r--r--pkgs/applications/radio/chirp/default.nix6
-rw-r--r--pkgs/applications/radio/cloudlog/default.nix4
-rw-r--r--pkgs/applications/radio/qlog/default.nix4
-rw-r--r--pkgs/applications/radio/quisk/default.nix4
-rw-r--r--pkgs/applications/radio/sdrangel/default.nix4
-rw-r--r--pkgs/applications/science/biology/last/default.nix4
-rw-r--r--pkgs/applications/science/biology/sratoolkit/default.nix2
-rw-r--r--pkgs/applications/science/logic/cbmc/0001-Do-not-download-sources-in-cmake.patch14
-rw-r--r--pkgs/applications/science/logic/cbmc/default.nix8
-rw-r--r--pkgs/applications/science/logic/hol_light/default.nix22
-rw-r--r--pkgs/applications/science/math/fricas/default.nix19
-rw-r--r--pkgs/applications/science/math/gretl/default.nix4
-rw-r--r--pkgs/applications/science/math/sage/sage-src.nix11
-rw-r--r--pkgs/applications/science/math/sage/sagedoc.nix4
-rw-r--r--pkgs/applications/science/misc/boinc/default.nix4
-rw-r--r--pkgs/applications/science/misc/openrefine/default.nix20
-rw-r--r--pkgs/applications/science/misc/snakemake/default.nix4
-rw-r--r--pkgs/applications/science/networking/sumo/default.nix4
-rw-r--r--pkgs/applications/system/glances/default.nix4
-rw-r--r--pkgs/applications/terminal-emulators/kitty/default.nix6
-rw-r--r--pkgs/applications/version-management/commitizen/default.nix4
-rw-r--r--pkgs/applications/version-management/gerrit/default.nix4
-rw-r--r--pkgs/applications/version-management/gfold/default.nix6
-rw-r--r--pkgs/applications/version-management/git-delete-merged-branches/default.nix4
-rw-r--r--pkgs/applications/version-management/git-machete/default.nix4
-rw-r--r--pkgs/applications/version-management/git-mit/default.nix6
-rw-r--r--pkgs/applications/version-management/git/default.nix5
-rw-r--r--pkgs/applications/version-management/gitea/default.nix4
-rw-r--r--pkgs/applications/version-management/gitkraken/default.nix18
-rw-r--r--pkgs/applications/version-management/gitoxide/default.nix6
-rw-r--r--pkgs/applications/video/kodi/addons/controller-topology-project/default.nix8
-rw-r--r--pkgs/applications/video/kodi/addons/invidious/default.nix3
-rw-r--r--pkgs/applications/video/kodi/addons/orftvthek/default.nix4
-rw-r--r--pkgs/applications/video/lightworks/default.nix6
-rw-r--r--pkgs/applications/video/makemkv/default.nix6
-rw-r--r--pkgs/applications/video/media-downloader/default.nix4
-rw-r--r--pkgs/applications/video/mpv/scripts/modernx-zydezu.nix4
-rw-r--r--pkgs/applications/video/mpv/scripts/mpvacious.nix4
-rw-r--r--pkgs/applications/video/mpv/scripts/videoclip.nix6
-rw-r--r--pkgs/applications/video/ustreamer/default.nix15
-rw-r--r--pkgs/applications/virtualization/nixpacks/default.nix6
-rw-r--r--pkgs/applications/virtualization/qemu/default.nix16
-rw-r--r--pkgs/applications/virtualization/qemu/remove-ui-cocoa-use-safe-area-insets.patch14
-rw-r--r--pkgs/applications/virtualization/qemu/revert-ui-cocoa-add-clipboard-support.patch10
-rw-r--r--pkgs/applications/virtualization/qemu/revert-ui-cocoa-use-the-standard-about-panel.patch145
-rw-r--r--pkgs/applications/virtualization/singularity/packages.nix6
-rw-r--r--pkgs/applications/virtualization/tart/default.nix4
-rw-r--r--pkgs/applications/window-managers/hyprwm/hyprland/default.nix11
-rw-r--r--pkgs/applications/window-managers/hyprwm/hyprland/plugins.nix19
-rw-r--r--pkgs/applications/window-managers/hyprwm/hyprpaper/default.nix4
-rw-r--r--pkgs/applications/window-managers/jay/default.nix6
-rw-r--r--pkgs/build-support/deterministic-uname/default.nix2
-rw-r--r--pkgs/build-support/deterministic-uname/deterministic-uname.sh2
-rw-r--r--pkgs/build-support/dotnet/build-dotnet-module/default.nix4
-rw-r--r--pkgs/build-support/dotnet/build-dotnet-module/hooks/default.nix55
-rw-r--r--pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-build-hook.sh2
-rw-r--r--pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-check-hook.sh2
-rw-r--r--pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-configure-hook.sh4
-rw-r--r--pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-install-hook.sh4
-rw-r--r--pkgs/build-support/php/builders/default.nix1
-rw-r--r--pkgs/build-support/php/builders/v1/build-composer-project.nix7
-rw-r--r--pkgs/build-support/php/builders/v1/build-composer-repository.nix5
-rw-r--r--pkgs/build-support/php/builders/v1/build-composer-with-plugin.nix161
-rw-r--r--pkgs/build-support/php/builders/v1/hooks/composer-install-hook.sh2
-rw-r--r--pkgs/build-support/php/builders/v1/hooks/composer-repository-hook.sh2
-rw-r--r--pkgs/build-support/php/builders/v1/hooks/composer-with-plugin-vendor-hook.sh93
-rw-r--r--pkgs/build-support/php/builders/v1/hooks/default.nix15
-rw-r--r--pkgs/build-support/php/builders/v1/hooks/php-script-utils.bash15
-rw-r--r--pkgs/build-support/php/pkgs/composer-local-repo-plugin.nix116
-rw-r--r--pkgs/build-support/php/pkgs/composer-phar.nix2
-rw-r--r--pkgs/build-support/rust/hooks/cargo-build-hook.sh2
-rw-r--r--pkgs/build-support/rust/hooks/cargo-check-hook.sh2
-rw-r--r--pkgs/build-support/rust/hooks/cargo-nextest-hook.sh2
-rw-r--r--pkgs/build-support/rust/hooks/maturin-build-hook.sh2
-rw-r--r--pkgs/build-support/setup-hooks/strip.sh16
-rw-r--r--pkgs/build-support/src-only/default.nix2
-rw-r--r--pkgs/build-support/testers/default.nix4
-rw-r--r--pkgs/build-support/testers/lychee.nix69
-rw-r--r--pkgs/build-support/testers/test/default.nix2
-rw-r--r--pkgs/by-name/_6/_64gram/package.nix4
-rw-r--r--pkgs/by-name/ab/ablog/package.nix (renamed from pkgs/applications/misc/ablog/default.nix)16
-rw-r--r--pkgs/by-name/am/amber-lang/package.nix49
-rw-r--r--pkgs/by-name/an/anytype/package.nix4
-rw-r--r--pkgs/by-name/ap/api-linter/package.nix6
-rw-r--r--pkgs/by-name/ar/arc-browser/package.nix4
-rw-r--r--pkgs/by-name/ar/ark-pixel-font/limit-builds.patch34
-rw-r--r--pkgs/by-name/ar/ark-pixel-font/package.nix10
-rw-r--r--pkgs/by-name/as/ast-grep/package.nix6
-rw-r--r--pkgs/by-name/ay/ayatana-indicator-datetime/package.nix4
-rw-r--r--pkgs/by-name/ay/ayatana-indicator-display/package.nix124
-rw-r--r--pkgs/by-name/ay/ayatana-indicator-messages/package.nix4
-rw-r--r--pkgs/by-name/ay/ayatana-indicator-power/package.nix4
-rw-r--r--pkgs/by-name/ay/ayatana-indicator-sound/package.nix125
-rw-r--r--pkgs/by-name/ba/basedpyright/package-lock.json193
-rw-r--r--pkgs/by-name/ba/basedpyright/package.nix89
-rw-r--r--pkgs/by-name/bc/bcachefs-tools/fix-encrypted-boot.patch92
-rw-r--r--pkgs/by-name/bc/bcachefs-tools/package.nix (renamed from pkgs/tools/filesystems/bcachefs-tools/default.nix)18
-rw-r--r--pkgs/by-name/be/beekeeper-studio/package.nix4
-rw-r--r--pkgs/by-name/be/bend/package.nix9
-rw-r--r--pkgs/by-name/bi/bicep/deps.nix126
-rw-r--r--pkgs/by-name/bi/bicep/package.nix4
-rwxr-xr-xpkgs/by-name/bi/bicep/updater.sh9
-rw-r--r--pkgs/by-name/bi/bitwarden-cli/package.nix6
-rw-r--r--pkgs/by-name/bm/bmake/package.nix1
-rw-r--r--pkgs/by-name/bo/boehmgc/package.nix5
-rw-r--r--pkgs/by-name/bo/bombsquad/package.nix36
-rw-r--r--pkgs/by-name/bo/boogie/package.nix4
-rw-r--r--pkgs/by-name/bp/bpftrace/package.nix2
-rw-r--r--pkgs/by-name/bq/bqn/001-libbqn-path.patch (renamed from pkgs/development/interpreters/bqn/mlochbaum-bqn/001-libbqn-path.patch)0
-rw-r--r--pkgs/by-name/bq/bqn/package.nix (renamed from pkgs/development/interpreters/bqn/mlochbaum-bqn/default.nix)46
-rw-r--r--pkgs/by-name/br/bruno/package.nix4
-rw-r--r--pkgs/by-name/bt/btrfs-assistant/package.nix4
-rw-r--r--pkgs/by-name/bu/bunbun/package.nix5
-rw-r--r--pkgs/by-name/c2/c2patool/package.nix6
-rw-r--r--pkgs/by-name/ca/caligula/package.nix6
-rw-r--r--pkgs/by-name/ca/cano/package.nix6
-rw-r--r--pkgs/by-name/ca/castero/package.nix5
-rw-r--r--pkgs/by-name/ca/castxml/package.nix7
-rw-r--r--pkgs/by-name/ch/ch341eeprom/package.nix34
-rw-r--r--pkgs/by-name/cl/clash-verge-rev/package.nix4
-rw-r--r--pkgs/by-name/cm/cmake/007-darwin-bsd-ps-abspath.diff41
-rw-r--r--pkgs/by-name/cm/cmake/package.nix15
-rw-r--r--pkgs/by-name/co/codeberg-cli/package.nix1
-rw-r--r--pkgs/by-name/co/connman/package.nix1
-rw-r--r--pkgs/by-name/co/cosmic-icons/package.nix6
-rw-r--r--pkgs/by-name/cp/cppitertools/package.nix99
-rw-r--r--pkgs/by-name/cr/crunchy-cli/Cargo.lock17
-rw-r--r--pkgs/by-name/cr/crunchy-cli/package.nix5
-rw-r--r--pkgs/by-name/cs/csvlens/package.nix6
-rw-r--r--pkgs/by-name/cu/cups-kyocera-3500-4500/package.nix86
-rw-r--r--pkgs/by-name/da/davis/package.nix4
-rw-r--r--pkgs/by-name/db/dbeaver-bin/package.nix6
-rwxr-xr-xpkgs/by-name/db/dbeaver-bin/update.sh25
-rw-r--r--pkgs/by-name/db/dbqn/package.nix (renamed from pkgs/development/interpreters/bqn/dzaima-bqn/default.nix)2
-rw-r--r--pkgs/by-name/de/dependabot-cli/package.nix1
-rw-r--r--pkgs/by-name/dr/dreamchess/package.nix71
-rw-r--r--pkgs/by-name/dt/dtools/package.nix1
-rw-r--r--pkgs/by-name/du/duckstation/001-fix-test-inclusion.diff (renamed from pkgs/applications/emulators/duckstation/001-fix-test-inclusion.diff)0
-rw-r--r--pkgs/by-name/du/duckstation/002-hardcode-vars.diff (renamed from pkgs/applications/emulators/duckstation/002-hardcode-vars.diff)0
-rw-r--r--pkgs/by-name/du/duckstation/package.nix (renamed from pkgs/applications/emulators/duckstation/default.nix)39
-rw-r--r--pkgs/by-name/du/duckstation/shaderc-patched.nix21
-rw-r--r--pkgs/by-name/du/dumbpipe/package.nix6
-rw-r--r--pkgs/by-name/ek/eksctl/package.nix6
-rw-r--r--pkgs/by-name/el/element-call/name.patch10
-rw-r--r--pkgs/by-name/el/element-call/package.json129
-rw-r--r--pkgs/by-name/el/element-call/package.nix58
-rw-r--r--pkgs/by-name/er/errands/package.nix11
-rw-r--r--pkgs/by-name/es/esbuild-config/package.nix5
-rw-r--r--pkgs/by-name/es/espflash/package.nix6
-rw-r--r--pkgs/by-name/fa/fastfetch/package.nix4
-rw-r--r--pkgs/by-name/fc/fcast-client/package.nix37
-rw-r--r--pkgs/by-name/fe/felix-fm/package.nix (renamed from pkgs/applications/file-managers/felix-fm/default.nix)19
-rw-r--r--pkgs/by-name/ff/ff2mpv-rust/package.nix6
-rw-r--r--pkgs/by-name/ff/fflogs/package.nix4
-rw-r--r--pkgs/by-name/fi/files-cli/package.nix6
-rw-r--r--pkgs/by-name/fi/firefly-iii/package.nix8
-rw-r--r--pkgs/by-name/fi/firefoxpwa/package.nix4
-rw-r--r--pkgs/by-name/fl/flarectl/package.nix6
-rw-r--r--pkgs/by-name/fl/flashmq/package.nix4
-rw-r--r--pkgs/by-name/fl/flawz/package.nix57
-rw-r--r--pkgs/by-name/fo/font-manager/package.nix (renamed from pkgs/applications/misc/font-manager/default.nix)18
-rw-r--r--pkgs/by-name/fo/fooyin/package.nix4
-rw-r--r--pkgs/by-name/fo/forgejo/package.nix8
-rw-r--r--pkgs/by-name/fr/francis/package.nix4
-rw-r--r--pkgs/by-name/fu/furmark/package.nix4
-rw-r--r--pkgs/by-name/fw/fwupd/package.nix4
-rw-r--r--pkgs/by-name/fz/fzf-make/package.nix6
-rw-r--r--pkgs/by-name/g3/g3kb-switch/package.nix4
-rw-r--r--pkgs/by-name/ga/gamescope/package.nix4
-rw-r--r--pkgs/by-name/gh/gh-eco/package.nix45
-rw-r--r--pkgs/by-name/gh/ghciwatch/package.nix6
-rw-r--r--pkgs/by-name/gi/githooks/package.nix3
-rw-r--r--pkgs/by-name/gi/github-desktop/package.nix2
-rw-r--r--pkgs/by-name/gn/gnome-monitor-config/package.nix48
-rw-r--r--pkgs/by-name/go/gobang/package.nix40
-rw-r--r--pkgs/by-name/go/gobang/update-sqlx.patch1553
-rw-r--r--pkgs/by-name/go/google-chrome/package.nix4
-rw-r--r--pkgs/by-name/gp/gpt4all/package.nix22
-rw-r--r--pkgs/by-name/gr/graphite-cli/package-lock.json29
-rw-r--r--pkgs/by-name/gr/graphite-cli/package.nix6
-rw-r--r--pkgs/by-name/gr/grype/package.nix5
-rw-r--r--pkgs/by-name/ha/havn/package.nix37
-rw-r--r--pkgs/by-name/hd/hdos/package.nix64
-rwxr-xr-xpkgs/by-name/hd/hdos/update.sh7
-rw-r--r--pkgs/by-name/hi/hieroglyphic/Cargo.lock1448
-rw-r--r--pkgs/by-name/hi/hieroglyphic/package.nix18
-rw-r--r--pkgs/by-name/hi/hifile/package.nix4
-rw-r--r--pkgs/by-name/ho/home-manager/package.nix6
-rw-r--r--pkgs/by-name/hy/hyprcursor/package.nix4
-rw-r--r--pkgs/by-name/hy/hyprlang/package.nix4
-rw-r--r--pkgs/by-name/hy/hyprwayland-scanner/package.nix4
-rw-r--r--pkgs/by-name/ia/ianny/package.nix6
-rw-r--r--pkgs/by-name/ic/icewm/package.nix4
-rw-r--r--pkgs/by-name/ic/icloudpd/package.nix7
-rw-r--r--pkgs/by-name/id/ideamaker/mimetypes.xml25
-rw-r--r--pkgs/by-name/id/ideamaker/package.nix225
-rw-r--r--pkgs/by-name/im/imgbrd-grabber/package.nix (renamed from pkgs/applications/graphics/imgbrd-grabber/default.nix)102
-rw-r--r--pkgs/by-name/im/imhex/package.nix1
-rw-r--r--pkgs/by-name/im/immich-go/package.nix4
-rw-r--r--pkgs/by-name/in/inja/package.nix46
-rw-r--r--pkgs/by-name/in/inja/simple-cmake-test/CMakeLists.txt5
-rw-r--r--pkgs/by-name/in/inja/simple-cmake-test/default.nix27
-rw-r--r--pkgs/by-name/in/inja/simple-cmake-test/main.cpp8
-rw-r--r--pkgs/by-name/in/inotify-info/package.nix6
-rw-r--r--pkgs/by-name/in/intune-portal/package.nix4
-rw-r--r--pkgs/by-name/ja/jailer/package.nix6
-rw-r--r--pkgs/by-name/ja/jan/package.nix4
-rw-r--r--pkgs/by-name/ja/jasper/package.nix4
-rw-r--r--pkgs/by-name/jn/jnv/package.nix6
-rw-r--r--pkgs/by-name/jq/jq-zsh-plugin/package.nix44
-rw-r--r--pkgs/by-name/ju/junest/package.nix33
-rw-r--r--pkgs/by-name/ka/kanidm/package.nix5
-rw-r--r--pkgs/by-name/ka/karmor/package.nix6
-rw-r--r--pkgs/by-name/ki/kikit/solidpython/default.nix4
-rw-r--r--pkgs/by-name/ko/koboldcpp/package.nix154
-rw-r--r--pkgs/by-name/ko/kor/package.nix6
-rw-r--r--pkgs/by-name/ks/ks/package.nix30
-rw-r--r--pkgs/by-name/ku/kube-state-metrics/package.nix32
-rw-r--r--pkgs/by-name/ky/kyverno-chainsaw/package.nix4
-rw-r--r--pkgs/by-name/la/labwc-tweaks-gtk/package.nix8
-rw-r--r--pkgs/by-name/la/laravel/composer.lock3764
-rw-r--r--pkgs/by-name/la/laravel/package.nix36
-rw-r--r--pkgs/by-name/le/lefthook/package.nix6
-rw-r--r--pkgs/by-name/le/less/package.nix3
-rw-r--r--pkgs/by-name/le/letterpress/package.nix85
-rw-r--r--pkgs/by-name/li/libbfio/package.nix1
-rw-r--r--pkgs/by-name/li/libcamera/package.nix12
-rw-r--r--pkgs/by-name/li/libclipboard/package.nix38
-rw-r--r--pkgs/by-name/li/libcpuid/package.nix2
-rw-r--r--pkgs/by-name/li/libdjinterop/package.nix4
-rw-r--r--pkgs/by-name/li/libeduvpn-common/package.nix4
-rw-r--r--pkgs/by-name/li/libewf-legacy/package.nix1
-rw-r--r--pkgs/by-name/li/libiconv-darwin/package.nix1
-rw-r--r--pkgs/by-name/li/libideviceactivation/package.nix55
-rw-r--r--pkgs/by-name/li/libitl/package.nix32
-rw-r--r--pkgs/by-name/li/libmsgraph/package.nix13
-rw-r--r--pkgs/by-name/li/libpkgconf/package.nix4
-rw-r--r--pkgs/by-name/li/libui-ng/package.nix6
-rw-r--r--pkgs/by-name/li/licensure/package.nix6
-rw-r--r--pkgs/by-name/li/lightningcss/package.nix12
-rw-r--r--pkgs/by-name/li/limine/package.nix4
-rw-r--r--pkgs/by-name/li/lint-staged/package.nix6
-rw-r--r--pkgs/by-name/li/live555/package.nix36
-rw-r--r--pkgs/by-name/lk/lk-jwt-service/package.nix30
-rw-r--r--pkgs/by-name/ll/llm-ls/package.nix6
-rw-r--r--pkgs/by-name/lm/lmstudio/darwin.nix4
-rw-r--r--pkgs/by-name/lm/lmstudio/linux.nix2
-rw-r--r--pkgs/by-name/lm/lmstudio/package.nix4
-rw-r--r--pkgs/by-name/lo/logiops/package.nix4
-rw-r--r--pkgs/by-name/ls/lse/package.nix40
-rw-r--r--pkgs/by-name/lu/lunar-client/package.nix4
-rw-r--r--pkgs/by-name/lx/lxd-ui/package.nix4
-rw-r--r--pkgs/by-name/ma/maa-assistant-arknights/fastdeploy-ppocr.nix8
-rw-r--r--pkgs/by-name/ma/maa-assistant-arknights/package.nix21
-rw-r--r--pkgs/by-name/ma/maa-assistant-arknights/pin.json8
-rw-r--r--pkgs/by-name/ma/majima/package.nix16
-rw-r--r--pkgs/by-name/ma/malwoverview/package.nix2
-rw-r--r--pkgs/by-name/ma/marge-bot/package.nix9
-rw-r--r--pkgs/by-name/ma/mariadb-connector-java/package.nix4
-rw-r--r--pkgs/by-name/ma/matrix-commander-rs/package.nix31
-rw-r--r--pkgs/by-name/ma/matrix-media-repo/package.nix68
-rw-r--r--pkgs/by-name/ma/matrix-media-repo/synapse-import-u+x.patch22
-rw-r--r--pkgs/by-name/ma/matugen/package.nix2
-rw-r--r--pkgs/by-name/me/mediasynclite/package.nix54
-rw-r--r--pkgs/by-name/me/meson/007-Allow-building-via-ninja-12.patch190
-rw-r--r--pkgs/by-name/me/meson/007-freebsd-pkgconfig-path.patch15
-rw-r--r--pkgs/by-name/me/meson/package.nix14
-rw-r--r--pkgs/by-name/me/meson/setup-hook.sh2
-rw-r--r--pkgs/by-name/mi/mini-calc/package.nix6
-rw-r--r--pkgs/by-name/mi/misconfig-mapper/package.nix4
-rw-r--r--pkgs/by-name/ml/mlx42/package.nix1
-rw-r--r--pkgs/by-name/mo/mods/package.nix (renamed from pkgs/tools/misc/mods/default.nix)22
-rw-r--r--pkgs/by-name/mo/mommy/package.nix1
-rw-r--r--pkgs/by-name/mp/mpack/CVE-2011-4919.patch (renamed from pkgs/tools/networking/mpack/CVE-2011-4919.patch)0
-rw-r--r--pkgs/by-name/mp/mpack/build-fix.patch (renamed from pkgs/tools/networking/mpack/build-fix.patch)0
-rw-r--r--pkgs/by-name/mp/mpack/package.nix (renamed from pkgs/tools/networking/mpack/default.nix)25
-rw-r--r--pkgs/by-name/mp/mpack/sendmail-via-execvp.diff (renamed from pkgs/tools/networking/mpack/sendmail-via-execvp.diff)0
-rw-r--r--pkgs/by-name/my/myks/package.nix4
-rw-r--r--pkgs/by-name/na/namespace-cli/package.nix4
-rw-r--r--pkgs/by-name/ne/nekoray/package.nix1
-rw-r--r--pkgs/by-name/ne/neovide/package.nix10
-rw-r--r--pkgs/by-name/ne/neovide/skia-externals.json12
-rw-r--r--pkgs/by-name/ne/neovim-unwrapped/package.nix25
-rw-r--r--pkgs/by-name/ne/neovim-unwrapped/treesitter-parsers.nix42
-rwxr-xr-xpkgs/by-name/ne/neovim-unwrapped/update-treesitter-parsers.py8
-rw-r--r--pkgs/by-name/ne/nextjs-ollama-llm-ui/0001-update-nextjs.patch879
-rw-r--r--pkgs/by-name/ne/nextjs-ollama-llm-ui/0002-use-local-google-fonts.patch20
-rw-r--r--pkgs/by-name/ne/nextjs-ollama-llm-ui/0003-add-standalone-output.patch16
-rw-r--r--pkgs/by-name/ne/nextjs-ollama-llm-ui/package.nix101
-rw-r--r--pkgs/by-name/ne/nezha-agent/package.nix6
-rw-r--r--pkgs/by-name/ni/nimble/lock.json26
-rw-r--r--pkgs/by-name/ni/nimble/package.nix60
-rw-r--r--pkgs/by-name/ni/ninja/package.nix (renamed from pkgs/development/tools/build-managers/ninja/default.nix)31
-rw-r--r--pkgs/by-name/ni/ninja/setup-hook.sh (renamed from pkgs/development/tools/build-managers/ninja/setup-hook.sh)0
-rw-r--r--pkgs/by-name/ni/nix-janitor/package.nix43
-rw-r--r--pkgs/by-name/no/node-hp-scan-to/package.nix6
-rw-r--r--pkgs/by-name/no/nomacs/package.nix5
-rw-r--r--pkgs/by-name/no/normcap/package.nix4
-rw-r--r--pkgs/by-name/nu/nuclei-templates/package.nix4
-rw-r--r--pkgs/by-name/oh/oh-my-posh/package.nix6
-rw-r--r--pkgs/by-name/oi/oink/package.nix30
-rw-r--r--pkgs/by-name/om/omnictl/package.nix6
-rw-r--r--pkgs/by-name/op/opensnitch/package.nix2
-rw-r--r--pkgs/by-name/op/openturns/package.nix1
-rw-r--r--pkgs/by-name/op/openvas-scanner/package.nix4
-rw-r--r--pkgs/by-name/pa/pacu/package.nix4
-rw-r--r--pkgs/by-name/pa/pantheon-tweaks/package.nix (renamed from pkgs/desktops/pantheon/third-party/pantheon-tweaks/default.nix)20
-rw-r--r--pkgs/by-name/pa/patch2pr/package.nix6
-rw-r--r--pkgs/by-name/pd/pdpmake/package.nix4
-rw-r--r--pkgs/by-name/pe/peergos/package.nix4
-rw-r--r--pkgs/by-name/pe/perf_data_converter/package.nix2
-rw-r--r--pkgs/by-name/pe/perl-debug-adapter/package.nix1
-rw-r--r--pkgs/by-name/ph/phpdocumentor/package.nix6
-rw-r--r--pkgs/by-name/ph/physac/package.nix47
-rw-r--r--pkgs/by-name/pi/pinact/package.nix6
-rw-r--r--pkgs/by-name/pl/plattenalbum/package.nix60
-rw-r--r--pkgs/by-name/pm/pm2/package.nix6
-rw-r--r--pkgs/by-name/pm/pmbootstrap/package.nix (renamed from pkgs/tools/misc/pmbootstrap/default.nix)32
-rw-r--r--pkgs/by-name/po/poptracker/package.nix10
-rw-r--r--pkgs/by-name/pr/pretix/package.nix16
-rw-r--r--pkgs/by-name/pr/pretix/plugins/pages.nix4
-rw-r--r--pkgs/by-name/pr/pretix/plugins/passbook.nix4
-rw-r--r--pkgs/by-name/pr/proto/package.nix6
-rw-r--r--pkgs/by-name/py/pyprland/package.nix4
-rw-r--r--pkgs/by-name/py/pyright/package.nix8
-rw-r--r--pkgs/by-name/qc/qcm/package.nix4
-rw-r--r--pkgs/by-name/qu/quarkus/package.nix4
-rw-r--r--pkgs/by-name/r0/r0vm/package.nix59
-rw-r--r--pkgs/by-name/ra/rasm/package.nix30
-rw-r--r--pkgs/by-name/ra/raygui/package.nix47
-rw-r--r--pkgs/by-name/rc/rcu/package.nix1
-rw-r--r--pkgs/by-name/re/reactphysics3d/package.nix2
-rw-r--r--pkgs/by-name/re/recoverdm/package.nix1
-rw-r--r--pkgs/by-name/re/redict/package.nix2
-rw-r--r--pkgs/by-name/re/regal/package.nix6
-rw-r--r--pkgs/by-name/re/renode-dts2repl/package.nix6
-rw-r--r--pkgs/by-name/re/reproxy/package.nix6
-rw-r--r--pkgs/by-name/re/rerun/package.nix2
-rw-r--r--pkgs/by-name/ri/river/build.zig.zon.nix34
-rw-r--r--pkgs/by-name/ri/river/package.nix (renamed from pkgs/applications/window-managers/river/default.nix)22
-rwxr-xr-xpkgs/by-name/ri/river/update.nu8
-rw-r--r--pkgs/by-name/ro/roave-backward-compatibility-check/package.nix37
-rw-r--r--pkgs/by-name/sa/samrewritten/package.nix2
-rw-r--r--pkgs/by-name/sa/sarasa-gothic/package.nix4
-rw-r--r--pkgs/by-name/sc/scion/package.nix1
-rwxr-xr-xpkgs/by-name/se/segger-jlink/package.nix10
-rw-r--r--pkgs/by-name/se/sendme/package.nix6
-rw-r--r--pkgs/by-name/se/sequoia-wot/package.nix90
-rw-r--r--pkgs/by-name/sg/sgfutils/package.nix4
-rw-r--r--pkgs/by-name/sh/share-preview/package.nix66
-rw-r--r--pkgs/by-name/sh/shopware-cli/package.nix6
-rw-r--r--pkgs/by-name/si/signal-backup-deduplicator/package.nix38
-rw-r--r--pkgs/by-name/si/silicon/package.nix1
-rw-r--r--pkgs/by-name/sk/sketchybar-app-font/package.nix8
-rw-r--r--pkgs/by-name/sl/slumber/package.nix6
-rw-r--r--pkgs/by-name/sm/smile/package.nix18
-rw-r--r--pkgs/by-name/sm/smplayer/package.nix (renamed from pkgs/applications/video/smplayer/default.nix)28
-rw-r--r--pkgs/by-name/so/soju/package.nix (renamed from pkgs/applications/networking/soju/default.nix)8
-rw-r--r--pkgs/by-name/so/sonarlint-ls/package.nix118
-rw-r--r--pkgs/by-name/sp/spicetify-cli/package.nix24
-rw-r--r--pkgs/by-name/sp/spirit/package.nix8
-rw-r--r--pkgs/by-name/sq/squeezelite/package.nix (renamed from pkgs/applications/audio/squeezelite/default.nix)96
-rwxr-xr-xpkgs/by-name/sq/squeezelite/update.sh (renamed from pkgs/applications/audio/squeezelite/update.sh)0
-rw-r--r--pkgs/by-name/st/stackit-cli/package.nix6
-rw-r--r--pkgs/by-name/st/stackql/package.nix48
-rw-r--r--pkgs/by-name/st/stalwart-mail/package.nix8
-rw-r--r--pkgs/by-name/st/steampipe/package.nix4
-rw-r--r--pkgs/by-name/st/stirling-pdf/package.nix6
-rw-r--r--pkgs/by-name/st/streamrip/package.nix77
-rw-r--r--pkgs/by-name/st/streamrip/patches/ensure-the-default-config-file-is-writable.patch26
-rw-r--r--pkgs/by-name/st/sttr/package.nix4
-rw-r--r--pkgs/by-name/st/stylance-cli/package.nix6
-rw-r--r--pkgs/by-name/su/surrealdb/package.nix6
-rw-r--r--pkgs/by-name/su/surrealist/package.nix2
-rw-r--r--pkgs/by-name/sv/svelte-language-server/package-lock.json1943
-rw-r--r--pkgs/by-name/sv/svelte-language-server/package.nix34
-rwxr-xr-xpkgs/by-name/sv/svelte-language-server/update.sh30
-rw-r--r--pkgs/by-name/sw/swaylock/package.nix2
-rw-r--r--pkgs/by-name/sy/syft/package.nix6
-rw-r--r--pkgs/by-name/sy/symfony-cli/package.nix6
-rw-r--r--pkgs/by-name/te/televido/package.nix59
-rw-r--r--pkgs/by-name/te/templ/package.nix4
-rw-r--r--pkgs/by-name/te/tenv/package.nix6
-rw-r--r--pkgs/by-name/te/tetrio-desktop/tetrio-plus.nix2
-rw-r--r--pkgs/by-name/te/textlint-plugin-latex2e/package.nix37
-rw-r--r--pkgs/by-name/te/textlint-plugin-latex2e/test.tex4
-rw-r--r--pkgs/by-name/te/textlint-rule-abbr-within-parentheses/package.nix79
-rw-r--r--pkgs/by-name/te/textlint-rule-abbr-within-parentheses/test.md1
-rw-r--r--pkgs/by-name/te/textlint-rule-alex/package.nix34
-rw-r--r--pkgs/by-name/te/textlint-rule-alex/test.md1
-rw-r--r--pkgs/by-name/te/textlint-rule-common-misspellings/package.nix135
-rw-r--r--pkgs/by-name/te/textlint-rule-common-misspellings/test.md1
-rw-r--r--pkgs/by-name/te/textlint-rule-diacritics/package.nix36
-rw-r--r--pkgs/by-name/te/textlint-rule-diacritics/test.md1
-rw-r--r--pkgs/by-name/te/textlint-rule-en-max-word-count/package.nix79
-rw-r--r--pkgs/by-name/te/textlint-rule-en-max-word-count/test.md1
-rw-r--r--pkgs/by-name/te/textlint-rule-max-comma/package.nix79
-rw-r--r--pkgs/by-name/te/textlint-rule-max-comma/test.md1
-rw-r--r--pkgs/by-name/te/textlint-rule-no-start-duplicated-conjunction/package.nix79
-rw-r--r--pkgs/by-name/te/textlint-rule-no-start-duplicated-conjunction/test.md3
-rw-r--r--pkgs/by-name/te/textlint-rule-period-in-list-item/package.nix79
-rw-r--r--pkgs/by-name/te/textlint-rule-period-in-list-item/test.md1
-rw-r--r--pkgs/by-name/te/textlint-rule-preset-ja-technical-writing/package.nix72
-rw-r--r--pkgs/by-name/te/textlint-rule-preset-ja-technical-writing/test.md1
-rw-r--r--pkgs/by-name/te/textlint-rule-stop-words/package.nix36
-rw-r--r--pkgs/by-name/te/textlint-rule-stop-words/test.md1
-rw-r--r--pkgs/by-name/te/textlint-rule-terminology/package.nix36
-rw-r--r--pkgs/by-name/te/textlint-rule-terminology/test.md1
-rw-r--r--pkgs/by-name/te/textlint-rule-unexpanded-acronym/package.nix79
-rw-r--r--pkgs/by-name/te/textlint-rule-unexpanded-acronym/test.md1
-rw-r--r--pkgs/by-name/te/textlint-rule-write-good/package.nix79
-rw-r--r--pkgs/by-name/te/textlint-rule-write-good/test.md1
-rw-r--r--pkgs/by-name/te/textlint/package.nix136
-rw-r--r--pkgs/by-name/te/textlint/remove-workspaces.patch19
-rw-r--r--pkgs/by-name/ti/tinymist/Cargo.lock12
-rw-r--r--pkgs/by-name/ti/tinymist/package.nix10
-rw-r--r--pkgs/by-name/tp/tpnote/package.nix1
-rw-r--r--pkgs/by-name/tr/tracexec/package.nix6
-rw-r--r--pkgs/by-name/tr/trealla/package.nix75
-rw-r--r--pkgs/by-name/tu/turtle/package.nix78
-rw-r--r--pkgs/by-name/ty/typstyle/package.nix8
-rw-r--r--pkgs/by-name/un/undbx/package.nix1
-rw-r--r--pkgs/by-name/un/unison-fsmonitor/package.nix6
-rw-r--r--pkgs/by-name/uv/uv/Cargo.lock87
-rw-r--r--pkgs/by-name/uv/uv/package.nix40
-rw-r--r--pkgs/by-name/ve/vencord/package-lock.json167
-rw-r--r--pkgs/by-name/ve/vencord/package.nix8
-rw-r--r--pkgs/by-name/vi/vim-startuptime/package.nix39
-rw-r--r--pkgs/by-name/vi/vinegar/package.nix64
-rw-r--r--pkgs/by-name/vu/vunnel/package.nix4
-rw-r--r--pkgs/by-name/wa/waf/hook.nix2
-rw-r--r--pkgs/by-name/wa/waf/setup-hook.sh4
-rw-r--r--pkgs/by-name/wa/warp-terminal/versions.json8
-rw-r--r--pkgs/by-name/wa/wayfreeze/package.nix33
-rw-r--r--pkgs/by-name/wa/waylock/build.zig.zon.nix20
-rw-r--r--pkgs/by-name/wa/waylock/package.nix (renamed from pkgs/applications/misc/waylock/default.nix)41
-rwxr-xr-xpkgs/by-name/wa/waylock/update.nu8
-rw-r--r--pkgs/by-name/we/webcord-vencord/package.nix4
-rw-r--r--pkgs/by-name/wi/wildcard/package.nix64
-rw-r--r--pkgs/by-name/wi/wiper/package.nix34
-rw-r--r--pkgs/by-name/wi/wiremock/package.nix4
-rw-r--r--pkgs/by-name/wl/wldash/0001-Update-Cargo.lock.patch25
-rw-r--r--pkgs/by-name/wl/wldash/0002-Update-fontconfig.patch112
-rw-r--r--pkgs/by-name/wl/wldash/package.nix77
-rw-r--r--pkgs/by-name/wo/woof-doom/package.nix51
-rw-r--r--pkgs/by-name/ya/yamlscript/package.nix4
-rw-r--r--pkgs/by-name/ze/zed-editor/Cargo.lock454
-rw-r--r--pkgs/by-name/ze/zed-editor/package.nix16
-rw-r--r--pkgs/by-name/ze/zesarux/package.nix1
-rw-r--r--pkgs/by-name/zs/zsh-wd/package.nix37
-rw-r--r--pkgs/data/fonts/iosevka/default.nix6
-rw-r--r--pkgs/data/fonts/monocraft/default.nix14
-rw-r--r--pkgs/data/icons/whitesur-icon-theme/default.nix4
-rw-r--r--pkgs/data/misc/hackage/pin.json8
-rw-r--r--pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix4
-rw-r--r--pkgs/data/themes/nordic/default.nix34
-rw-r--r--pkgs/data/themes/qogir/default.nix4
-rw-r--r--pkgs/desktops/deepin/go-package/dde-daemon/default.nix19
-rw-r--r--pkgs/desktops/deepin/library/dtk6core/default.nix6
-rw-r--r--pkgs/desktops/gnome/apps/file-roller/default.nix4
-rw-r--r--pkgs/desktops/gnome/apps/gnome-maps/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/evince/default.nix12
-rw-r--r--pkgs/desktops/gnome/core/evolution-data-server/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch16
-rw-r--r--pkgs/desktops/gnome/core/gnome-control-center/default.nix2
-rw-r--r--pkgs/desktops/gnome/core/gnome-initial-setup/default.nix14
-rw-r--r--pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/gnome-shell/default.nix11
-rw-r--r--pkgs/desktops/gnome/core/gnome-software/default.nix12
-rw-r--r--pkgs/desktops/gnome/core/gnome-terminal/default.nix10
-rw-r--r--pkgs/desktops/gnome/core/gucharmap/default.nix12
-rw-r--r--pkgs/desktops/gnome/core/mutter/default.nix10
-rw-r--r--pkgs/desktops/gnome/core/nautilus/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/rygel/default.nix14
-rw-r--r--pkgs/desktops/gnome/extensions/extensionOverrides.nix22
-rw-r--r--pkgs/desktops/gnome/extensions/extensionOverridesPatches/mullvadindicator_at_pobega.github.com.patch25
-rw-r--r--pkgs/desktops/gnome/extensions/extensionOverridesPatches/system-monitor_at_gnome-shell-extensions.gcampax.github.com.patch25
-rw-r--r--pkgs/desktops/gnome/extensions/extensions.json497
-rw-r--r--pkgs/desktops/gnome/games/aisleriot/default.nix10
-rw-r--r--pkgs/desktops/gnome/misc/geary/default.nix4
-rw-r--r--pkgs/desktops/lomiri/applications/lomiri/default.nix2
-rw-r--r--pkgs/desktops/lomiri/services/lomiri-indicator-network/default.nix3
-rw-r--r--pkgs/desktops/lomiri/services/telephony-service/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-calculator/default.nix4
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix4
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix11
-rw-r--r--pkgs/desktops/pantheon/default.nix6
-rw-r--r--pkgs/desktops/pantheon/desktop/gala/default.nix7
-rw-r--r--pkgs/desktops/pantheon/third-party/pantheon-tweaks/fix-paths.patch13
-rw-r--r--pkgs/development/ada-modules/gprbuild/default.nix2
-rw-r--r--pkgs/development/beam-modules/elixir-ls/default.nix5
-rw-r--r--pkgs/development/compilers/adoptopenjdk-bin/jdk15-darwin.nix8
-rw-r--r--pkgs/development/compilers/adoptopenjdk-bin/jdk15-linux.nix8
-rw-r--r--pkgs/development/compilers/adoptopenjdk-bin/jdk16-darwin.nix8
-rw-r--r--pkgs/development/compilers/adoptopenjdk-bin/jdk16-linux.nix8
-rw-r--r--pkgs/development/compilers/ccl/default.nix2
-rw-r--r--pkgs/development/compilers/corretto/11.nix11
-rw-r--r--pkgs/development/compilers/corretto/17.nix22
-rw-r--r--pkgs/development/compilers/corretto/19.nix7
-rw-r--r--pkgs/development/compilers/corretto/21.nix4
-rw-r--r--pkgs/development/compilers/edk2/default.nix11
-rw-r--r--pkgs/development/compilers/erg/default.nix6
-rw-r--r--pkgs/development/compilers/gcc/all.nix4
-rw-r--r--pkgs/development/compilers/ghc/common-hadrian.nix1
-rw-r--r--pkgs/development/compilers/ghc/common-make-native-bignum.nix74
-rw-r--r--pkgs/development/compilers/ghdl/default.nix1
-rw-r--r--pkgs/development/compilers/gleam/default.nix8
-rw-r--r--pkgs/development/compilers/gnu-smalltalk/0000-fix_mkorder.patch21
-rw-r--r--pkgs/development/compilers/gnu-smalltalk/default.nix6
-rw-r--r--pkgs/development/compilers/go/1.22.nix8
-rw-r--r--pkgs/development/compilers/hvm/default.nix9
-rw-r--r--pkgs/development/compilers/ispc/default.nix2
-rw-r--r--pkgs/development/compilers/jetbrains-jdk/default.nix10
-rw-r--r--pkgs/development/compilers/kotlin/default.nix4
-rw-r--r--pkgs/development/compilers/llvm/16/compiler-rt/asan-offset.patch11
-rw-r--r--pkgs/development/compilers/llvm/16/compiler-rt/freebsd-i386.patch21
-rw-r--r--pkgs/development/compilers/llvm/18/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/common/compiler-rt/default.nix8
-rw-r--r--pkgs/development/compilers/llvm/common/libcxx/default.nix6
-rw-r--r--pkgs/development/compilers/llvm/common/llvm/default.nix86
-rw-r--r--pkgs/development/compilers/lobster/default.nix4
-rw-r--r--pkgs/development/compilers/ocaml/ber-metaocaml.nix1
-rw-r--r--pkgs/development/compilers/openjdk/11.nix6
-rw-r--r--pkgs/development/compilers/openjdk/16.nix11
-rw-r--r--pkgs/development/compilers/openjdk/17.nix6
-rw-r--r--pkgs/development/compilers/openjdk/18.nix9
-rw-r--r--pkgs/development/compilers/openjdk/19.nix12
-rw-r--r--pkgs/development/compilers/openjdk/20.nix6
-rw-r--r--pkgs/development/compilers/openjdk/8.nix4
-rw-r--r--pkgs/development/compilers/openjdk/meta.nix4
-rw-r--r--pkgs/development/compilers/openjdk/openjfx/11.nix4
-rw-r--r--pkgs/development/compilers/openjdk/openjfx/17.nix6
-rw-r--r--pkgs/development/compilers/openjdk/openjfx/19.nix3
-rw-r--r--pkgs/development/compilers/openjdk/openjfx/20.nix21
-rw-r--r--pkgs/development/compilers/openjdk/openjfx/21.nix10
-rw-r--r--pkgs/development/compilers/openjdk/openjfx/22.nix9
-rw-r--r--pkgs/development/compilers/rasm/default.nix34
-rw-r--r--pkgs/development/compilers/rust/cargo-auditable.nix5
-rw-r--r--pkgs/development/compilers/rust/rustc.nix6
-rwxr-xr-xpkgs/development/compilers/semeru-bin/generate-sources.py4
-rw-r--r--pkgs/development/compilers/semeru-bin/jdk-darwin.nix8
-rw-r--r--pkgs/development/compilers/semeru-bin/jdk-linux.nix8
-rw-r--r--pkgs/development/compilers/semeru-bin/sources.json240
-rw-r--r--pkgs/development/compilers/solc/default.nix1
-rw-r--r--pkgs/development/compilers/souffle/default.nix2
-rw-r--r--pkgs/development/compilers/vala/default.nix2
-rw-r--r--pkgs/development/coq-modules/graph-theory/default.nix4
-rw-r--r--pkgs/development/coq-modules/mathcomp-infotheo/default.nix2
-rw-r--r--pkgs/development/haskell-modules/cabal2nix-unstable.nix6
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix19
-rw-r--r--pkgs/development/haskell-modules/configuration-darwin.nix8
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix2
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix4
-rw-r--r--pkgs/development/haskell-modules/configuration-ghcjs.nix2
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml6
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml2
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml8
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix2296
-rw-r--r--pkgs/development/interpreters/bqn/cbqn/cbqn-bytecode.nix35
-rw-r--r--pkgs/development/interpreters/bqn/cbqn/default.nix108
-rw-r--r--pkgs/development/interpreters/bqn/cbqn/replxx.nix37
-rw-r--r--pkgs/development/interpreters/bqn/cbqn/singeli.nix37
-rw-r--r--pkgs/development/interpreters/bqn/cbqn/sources.nix60
-rw-r--r--pkgs/development/interpreters/emilua/default.nix12
-rw-r--r--pkgs/development/interpreters/gauche/default.nix2
-rw-r--r--pkgs/development/interpreters/lfe/2.1.nix2
-rw-r--r--pkgs/development/interpreters/lua-5/default.nix2
-rw-r--r--pkgs/development/interpreters/luajit/2.0.nix11
-rw-r--r--pkgs/development/interpreters/luajit/2.1.nix8
-rw-r--r--pkgs/development/interpreters/php/generic.nix2
-rw-r--r--pkgs/development/interpreters/python/cpython/default.nix20
-rw-r--r--pkgs/development/interpreters/ruby/rubygems/default.nix4
-rw-r--r--pkgs/development/interpreters/s9fes/default.nix4
-rw-r--r--pkgs/development/interpreters/wasmer/default.nix6
-rw-r--r--pkgs/development/interpreters/wasmtime/default.nix21
-rw-r--r--pkgs/development/libraries/CoinMP/0001-change-more-reinterpret_cast-from-NULL-to-C-cast-see.patch95
-rw-r--r--pkgs/development/libraries/CoinMP/0001-use-static_cast-for-static-cast-fixes-319.patch25
-rw-r--r--pkgs/development/libraries/CoinMP/0002-change-reinterpret_cast-of-NULL-to-C-style-case-fixe.patch26
-rw-r--r--pkgs/development/libraries/CoinMP/default.nix18
-rw-r--r--pkgs/development/libraries/SDL2/default.nix4
-rw-r--r--pkgs/development/libraries/abseil-cpp/202111.nix1
-rw-r--r--pkgs/development/libraries/allegro/5.nix1
-rw-r--r--pkgs/development/libraries/apr/default.nix2
-rw-r--r--pkgs/development/libraries/assimp/default.nix4
-rw-r--r--pkgs/development/libraries/aubio/default.nix1
-rw-r--r--pkgs/development/libraries/audio/libopenmpt/default.nix4
-rw-r--r--pkgs/development/libraries/aws-c-auth/default.nix4
-rw-r--r--pkgs/development/libraries/boost/1.75.nix2
-rw-r--r--pkgs/development/libraries/boost/1.77.nix2
-rw-r--r--pkgs/development/libraries/boost/1.78.nix2
-rw-r--r--pkgs/development/libraries/boost/1.79.nix2
-rw-r--r--pkgs/development/libraries/boost/1.80.nix2
-rw-r--r--pkgs/development/libraries/boost/1.81.nix2
-rw-r--r--pkgs/development/libraries/boost/1.82.nix2
-rw-r--r--pkgs/development/libraries/boost/1.83.nix2
-rw-r--r--pkgs/development/libraries/boost/1.84.nix2
-rw-r--r--pkgs/development/libraries/boost/1.85.nix2
-rw-r--r--pkgs/development/libraries/c-ares/default.nix4
-rw-r--r--pkgs/development/libraries/cairo/default.nix2
-rw-r--r--pkgs/development/libraries/cereal/1.3.2.nix1
-rw-r--r--pkgs/development/libraries/ceres-solver/default.nix1
-rw-r--r--pkgs/development/libraries/cmocka/default.nix2
-rw-r--r--pkgs/development/libraries/cogl/default.nix1
-rw-r--r--pkgs/development/libraries/crocoddyl/default.nix1
-rw-r--r--pkgs/development/libraries/dbxml/default.nix2
-rw-r--r--pkgs/development/libraries/drogon/default.nix2
-rw-r--r--pkgs/development/libraries/duckdb/default.nix2
-rw-r--r--pkgs/development/libraries/editline/default.nix2
-rw-r--r--pkgs/development/libraries/egl-wayland/default.nix1
-rw-r--r--pkgs/development/libraries/enet/default.nix4
-rw-r--r--pkgs/development/libraries/exiv2/default.nix1
-rw-r--r--pkgs/development/libraries/expat/default.nix2
-rw-r--r--pkgs/development/libraries/fcgi/default.nix2
-rw-r--r--pkgs/development/libraries/fcl/default.nix2
-rw-r--r--pkgs/development/libraries/fmt/default.nix2
-rw-r--r--pkgs/development/libraries/folks/default.nix10
-rw-r--r--pkgs/development/libraries/fox/default.nix1
-rw-r--r--pkgs/development/libraries/fuzzylite/default.nix1
-rw-r--r--pkgs/development/libraries/gdbm/default.nix4
-rw-r--r--pkgs/development/libraries/gdcm/default.nix4
-rw-r--r--pkgs/development/libraries/gdk-pixbuf/default.nix11
-rw-r--r--pkgs/development/libraries/geoclue/default.nix1
-rw-r--r--pkgs/development/libraries/geos/3.11.nix5
-rw-r--r--pkgs/development/libraries/gettext/default.nix7
-rw-r--r--pkgs/development/libraries/giflib/default.nix1
-rw-r--r--pkgs/development/libraries/glib/default.nix18
-rw-r--r--pkgs/development/libraries/globalarrays/default.nix2
-rw-r--r--pkgs/development/libraries/gnome-online-accounts/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/bad/default.nix13
-rw-r--r--pkgs/development/libraries/gstreamer/base/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/core/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/devtools/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/ges/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/good/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/libav/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/rs/default.nix3
-rw-r--r--pkgs/development/libraries/gstreamer/rtsp-server/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/ugly/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/vaapi/default.nix4
-rw-r--r--pkgs/development/libraries/gtk/3.x.nix4
-rw-r--r--pkgs/development/libraries/gtk/4.x.nix4
-rw-r--r--pkgs/development/libraries/gvfs/default.nix15
-rw-r--r--pkgs/development/libraries/hpp-fcl/default.nix1
-rw-r--r--pkgs/development/libraries/java/commons/fileupload/default.nix4
-rw-r--r--pkgs/development/libraries/jemalloc/default.nix6
-rw-r--r--pkgs/development/libraries/jose/default.nix4
-rw-r--r--pkgs/development/libraries/kde-frameworks/baloo.nix1
-rw-r--r--pkgs/development/libraries/kde-frameworks/knewstuff/default.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/krunner.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/purpose.nix2
-rw-r--r--pkgs/development/libraries/kerberos/krb5.nix5
-rw-r--r--pkgs/development/libraries/ldb/default.nix4
-rw-r--r--pkgs/development/libraries/level-zero/default.nix10
-rw-r--r--pkgs/development/libraries/libadwaita/default.nix4
-rw-r--r--pkgs/development/libraries/libbladeRF/default.nix2
-rw-r--r--pkgs/development/libraries/libbluray/default.nix2
-rw-r--r--pkgs/development/libraries/libcdr/default.nix2
-rw-r--r--pkgs/development/libraries/libcxxrt/default.nix6
-rw-r--r--pkgs/development/libraries/libdigidocpp/default.nix2
-rw-r--r--pkgs/development/libraries/libev/default.nix4
-rw-r--r--pkgs/development/libraries/libevdev/default.nix2
-rw-r--r--pkgs/development/libraries/libewf/default.nix2
-rw-r--r--pkgs/development/libraries/libfaketime/default.nix5
-rw-r--r--pkgs/development/libraries/libffi/3.3.nix3
-rw-r--r--pkgs/development/libraries/libffi/default.nix3
-rw-r--r--pkgs/development/libraries/libgdiplus/default.nix2
-rw-r--r--pkgs/development/libraries/libgeotiff/default.nix4
-rw-r--r--pkgs/development/libraries/libgpg-error/default.nix4
-rw-r--r--pkgs/development/libraries/libgtop/default.nix12
-rw-r--r--pkgs/development/libraries/libmd/default.nix2
-rw-r--r--pkgs/development/libraries/libopenshot-audio/default.nix1
-rw-r--r--pkgs/development/libraries/libopus/default.nix1
-rw-r--r--pkgs/development/libraries/libplacebo/default.nix9
-rw-r--r--pkgs/development/libraries/libraspberrypi/default.nix1
-rw-r--r--pkgs/development/libraries/librsvg/default.nix6
-rw-r--r--pkgs/development/libraries/libschrift/default.nix2
-rw-r--r--pkgs/development/libraries/libshumate/default.nix21
-rw-r--r--pkgs/development/libraries/libssh2/default.nix6
-rw-r--r--pkgs/development/libraries/libtiff/default.nix7
-rw-r--r--pkgs/development/libraries/libuninameslist/default.nix4
-rw-r--r--pkgs/development/libraries/libunwind/default.nix2
-rw-r--r--pkgs/development/libraries/libusb1/default.nix1
-rw-r--r--pkgs/development/libraries/libvncserver/default.nix1
-rw-r--r--pkgs/development/libraries/libwpe/default.nix3
-rw-r--r--pkgs/development/libraries/libwpe/fdo.nix3
-rw-r--r--pkgs/development/libraries/libxcrypt/default.nix6
-rw-r--r--pkgs/development/libraries/libxml2/default.nix11
-rw-r--r--pkgs/development/libraries/lmdb/default.nix4
-rw-r--r--pkgs/development/libraries/lzo/default.nix4
-rw-r--r--pkgs/development/libraries/malcontent/default.nix1
-rw-r--r--pkgs/development/libraries/matio/default.nix4
-rw-r--r--pkgs/development/libraries/mediastreamer/msopenh264.nix1
-rw-r--r--pkgs/development/libraries/mesa/default.nix1
-rw-r--r--pkgs/development/libraries/minizip-ng/default.nix1
-rw-r--r--pkgs/development/libraries/minizip/default.nix2
-rw-r--r--pkgs/development/libraries/mlib/default.nix4
-rw-r--r--pkgs/development/libraries/monocypher/default.nix2
-rw-r--r--pkgs/development/libraries/motif/default.nix26
-rw-r--r--pkgs/development/libraries/mpdecimal/default.nix4
-rw-r--r--pkgs/development/libraries/mtxclient/default.nix1
-rw-r--r--pkgs/development/libraries/ncurses/default.nix19
-rw-r--r--pkgs/development/libraries/nghttp2/default.nix6
-rw-r--r--pkgs/development/libraries/nghttp3/default.nix4
-rw-r--r--pkgs/development/libraries/ntirpc/default.nix4
-rw-r--r--pkgs/development/libraries/opencascade-occt/default.nix1
-rw-r--r--pkgs/development/libraries/opencv/3.x.nix5
-rw-r--r--pkgs/development/libraries/openfec/default.nix7
-rw-r--r--pkgs/development/libraries/openxr-loader/default.nix4
-rw-r--r--pkgs/development/libraries/pcre2/default.nix3
-rw-r--r--pkgs/development/libraries/physics/geant4/default.nix2
-rw-r--r--pkgs/development/libraries/physics/rivet/default.nix2
-rw-r--r--pkgs/development/libraries/pipewire/default.nix4
-rw-r--r--pkgs/development/libraries/plasma-wayland-protocols/default.nix4
-rw-r--r--pkgs/development/libraries/polkit/default.nix6
-rw-r--r--pkgs/development/libraries/polkit/elogind.patch66
-rw-r--r--pkgs/development/libraries/popt/default.nix3
-rw-r--r--pkgs/development/libraries/proj/default.nix1
-rw-r--r--pkgs/development/libraries/protobuf/27.nix6
-rw-r--r--pkgs/development/libraries/protobufc/default.nix8
-rw-r--r--pkgs/development/libraries/python-qt/default.nix1
-rw-r--r--pkgs/development/libraries/qt-5/5.15/default.nix4
-rw-r--r--pkgs/development/libraries/qt-5/5.15/qtwebengine-ninja-1.12.patch11
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtwebengine.nix2
-rw-r--r--pkgs/development/libraries/qt-6/default.nix1
-rw-r--r--pkgs/development/libraries/range-v3/default.nix2
-rw-r--r--pkgs/development/libraries/readline/8.2.nix2
-rw-r--r--pkgs/development/libraries/rnnoise-plugin/default.nix4
-rw-r--r--pkgs/development/libraries/rocksdb/default.nix5
-rw-r--r--pkgs/development/libraries/rubberband/default.nix4
-rw-r--r--pkgs/development/libraries/s2n-tls/default.nix4
-rw-r--r--pkgs/development/libraries/science/math/libamplsolver/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/zn_poly/default.nix1
-rw-r--r--pkgs/development/libraries/sentry-native/default.nix4
-rw-r--r--pkgs/development/libraries/spandsp/3.nix9
-rw-r--r--pkgs/development/libraries/spandsp/default.nix9
-rw-r--r--pkgs/development/libraries/sqlite/default.nix2
-rw-r--r--pkgs/development/libraries/symengine/default.nix4
-rw-r--r--pkgs/development/libraries/talloc/default.nix4
-rw-r--r--pkgs/development/libraries/tbb/2020_3.nix1
-rw-r--r--pkgs/development/libraries/tdb/default.nix4
-rw-r--r--pkgs/development/libraries/tdlib/default.nix6
-rw-r--r--pkgs/development/libraries/tevent/default.nix4
-rw-r--r--pkgs/development/libraries/tk/8.6.nix1
-rw-r--r--pkgs/development/libraries/tpm2-tss/default.nix4
-rw-r--r--pkgs/development/libraries/umockdev/default.nix5
-rw-r--r--pkgs/development/libraries/vte/default.nix4
-rw-r--r--pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix12
-rw-r--r--pkgs/development/libraries/xgboost/default.nix34
-rw-r--r--pkgs/development/libraries/xsimd/default.nix35
-rw-r--r--pkgs/development/libraries/xsimd/disable-exp10-test.patch36
-rw-r--r--pkgs/development/libraries/xsimd/disable-polar-test.patch38
-rw-r--r--pkgs/development/libraries/xsimd/disable-test_error_gamma-test.patch36
-rw-r--r--pkgs/development/libraries/xsimd/fix-atan-test.patch19
-rw-r--r--pkgs/development/libraries/xsimd/fix-darwin-exp10-implementation.patch22
-rw-r--r--pkgs/development/libraries/xtensor/default.nix31
-rw-r--r--pkgs/development/libraries/xtensor/remove-failing-test_xinfo.patch12
-rw-r--r--pkgs/development/libraries/zziplib/default.nix1
-rw-r--r--pkgs/development/lua-modules/generated-packages.nix21
-rw-r--r--pkgs/development/lua-modules/overrides.nix13
-rw-r--r--pkgs/development/mobile/androidenv/ndk-bundle/default.nix6
-rw-r--r--pkgs/development/mobile/genymotion/default.nix4
-rw-r--r--pkgs/development/node-packages/aliases.nix15
-rw-r--r--pkgs/development/node-packages/main-programs.nix1
-rw-r--r--pkgs/development/node-packages/node-packages.json15
-rw-r--r--pkgs/development/node-packages/node-packages.nix1473
-rw-r--r--pkgs/development/ocaml-modules/bap/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/bisect_ppx/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/bistro/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/bytestring/default.nix45
-rw-r--r--pkgs/development/ocaml-modules/colors/default.nix35
-rw-r--r--pkgs/development/ocaml-modules/config/default.nix27
-rw-r--r--pkgs/development/ocaml-modules/eio/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/eio/linux.nix2
-rw-r--r--pkgs/development/ocaml-modules/eio/main.nix2
-rw-r--r--pkgs/development/ocaml-modules/eio/posix.nix2
-rw-r--r--pkgs/development/ocaml-modules/git/unix.nix4
-rw-r--r--pkgs/development/ocaml-modules/gluon/default.nix42
-rw-r--r--pkgs/development/ocaml-modules/httpaf/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/libc/default.nix26
-rw-r--r--pkgs/development/ocaml-modules/minttea/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/piqi-ocaml/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/pyml/default.nix1
-rw-r--r--pkgs/development/ocaml-modules/rio/default.nix30
-rw-r--r--pkgs/development/ocaml-modules/riot/default.nix30
-rw-r--r--pkgs/development/ocaml-modules/spices/default.nix34
-rw-r--r--pkgs/development/ocaml-modules/uring/default.nix1
-rw-r--r--pkgs/development/perl-modules/Bio-BigFile/default.nix2
-rw-r--r--pkgs/development/php-packages/apcu/default.nix2
-rw-r--r--pkgs/development/php-packages/composer-local-repo-plugin/composer.lock72
-rw-r--r--pkgs/development/php-packages/composer-local-repo-plugin/default.nix33
-rw-r--r--pkgs/development/php-packages/composer/default.nix76
-rw-r--r--pkgs/development/php-packages/cyclonedx-php-composer/composer.lock571
-rw-r--r--pkgs/development/php-packages/cyclonedx-php-composer/default.nix33
-rw-r--r--pkgs/development/php-packages/mongodb/default.nix4
-rw-r--r--pkgs/development/php-packages/phpstan/default.nix6
-rw-r--r--pkgs/development/python-modules/accelerate/default.nix1
-rw-r--r--pkgs/development/python-modules/aiocache/default.nix9
-rw-r--r--pkgs/development/python-modules/aioitertools/default.nix1
-rw-r--r--pkgs/development/python-modules/aioquic/default.nix16
-rw-r--r--pkgs/development/python-modules/aiorecollect/default.nix1
-rw-r--r--pkgs/development/python-modules/aiosasl/default.nix13
-rw-r--r--pkgs/development/python-modules/aioshutil/default.nix22
-rw-r--r--pkgs/development/python-modules/aioswitcher/default.nix4
-rw-r--r--pkgs/development/python-modules/aioxmpp/default.nix40
-rw-r--r--pkgs/development/python-modules/amazon-kclpy/default.nix40
-rw-r--r--pkgs/development/python-modules/amcrest/default.nix15
-rw-r--r--pkgs/development/python-modules/ansible/default.nix4
-rw-r--r--pkgs/development/python-modules/apricot-select/default.nix20
-rw-r--r--pkgs/development/python-modules/argh/default.nix1
-rw-r--r--pkgs/development/python-modules/asteval/default.nix4
-rw-r--r--pkgs/development/python-modules/asyncwhois/default.nix4
-rw-r--r--pkgs/development/python-modules/atlassian-python-api/default.nix4
-rw-r--r--pkgs/development/python-modules/autopep8/default.nix1
-rw-r--r--pkgs/development/python-modules/awkward-cpp/default.nix10
-rw-r--r--pkgs/development/python-modules/awkward/default.nix10
-rw-r--r--pkgs/development/python-modules/aws-encryption-sdk/default.nix10
-rw-r--r--pkgs/development/python-modules/awscrt/default.nix4
-rw-r--r--pkgs/development/python-modules/ax/default.nix7
-rw-r--r--pkgs/development/python-modules/bambi/default.nix2
-rw-r--r--pkgs/development/python-modules/bash-kernel/default.nix1
-rw-r--r--pkgs/development/python-modules/bc-detect-secrets/default.nix4
-rw-r--r--pkgs/development/python-modules/bluetooth-sensor-state-data/default.nix27
-rw-r--r--pkgs/development/python-modules/boltztrap2/default.nix13
-rw-r--r--pkgs/development/python-modules/boto3-stubs/default.nix4
-rw-r--r--pkgs/development/python-modules/boto3/default.nix4
-rw-r--r--pkgs/development/python-modules/botocore/default.nix4
-rw-r--r--pkgs/development/python-modules/broadbean/default.nix1
-rw-r--r--pkgs/development/python-modules/bugsnag/default.nix4
-rw-r--r--pkgs/development/python-modules/caio/default.nix7
-rw-r--r--pkgs/development/python-modules/camelot/default.nix2
-rw-r--r--pkgs/development/python-modules/cartopy/default.nix1
-rw-r--r--pkgs/development/python-modules/casbin/default.nix4
-rw-r--r--pkgs/development/python-modules/cf-xarray/default.nix4
-rw-r--r--pkgs/development/python-modules/chromadb/default.nix3
-rw-r--r--pkgs/development/python-modules/circus/default.nix54
-rw-r--r--pkgs/development/python-modules/clarabel/default.nix6
-rw-r--r--pkgs/development/python-modules/cleanlab/default.nix47
-rw-r--r--pkgs/development/python-modules/clickgen/default.nix4
-rw-r--r--pkgs/development/python-modules/clickhouse-connect/default.nix4
-rw-r--r--pkgs/development/python-modules/cnvkit/default.nix1
-rw-r--r--pkgs/development/python-modules/color-operations/default.nix51
-rw-r--r--pkgs/development/python-modules/craft-parts/default.nix4
-rw-r--r--pkgs/development/python-modules/curio/default.nix1
-rw-r--r--pkgs/development/python-modules/cyclonedx-python-lib/default.nix4
-rw-r--r--pkgs/development/python-modules/dask-expr/default.nix2
-rw-r--r--pkgs/development/python-modules/datasets/default.nix1
-rw-r--r--pkgs/development/python-modules/datashape/default.nix16
-rw-r--r--pkgs/development/python-modules/deepdiff/default.nix1
-rw-r--r--pkgs/development/python-modules/deezer-python/default.nix18
-rw-r--r--pkgs/development/python-modules/django-cryptography/default.nix1
-rw-r--r--pkgs/development/python-modules/django-import-export/default.nix4
-rw-r--r--pkgs/development/python-modules/django-js-reverse/default.nix1
-rw-r--r--pkgs/development/python-modules/django-modeltranslation/default.nix4
-rw-r--r--pkgs/development/python-modules/django-nose/default.nix32
-rw-r--r--pkgs/development/python-modules/django-oauth-toolkit/default.nix4
-rw-r--r--pkgs/development/python-modules/django-pattern-library/default.nix1
-rw-r--r--pkgs/development/python-modules/django-ratelimit/default.nix56
-rw-r--r--pkgs/development/python-modules/django-silk/default.nix1
-rw-r--r--pkgs/development/python-modules/django/5.nix1
-rw-r--r--pkgs/development/python-modules/docker-py/default.nix37
-rw-r--r--pkgs/development/python-modules/docker/default.nix31
-rw-r--r--pkgs/development/python-modules/dot2tex/default.nix1
-rw-r--r--pkgs/development/python-modules/dploot/default.nix4
-rw-r--r--pkgs/development/python-modules/ds4drv/default.nix12
-rw-r--r--pkgs/development/python-modules/dtw-python/default.nix4
-rw-r--r--pkgs/development/python-modules/duckdb-engine/default.nix4
-rw-r--r--pkgs/development/python-modules/ecos/default.nix27
-rw-r--r--pkgs/development/python-modules/ed25519/default.nix1
-rw-r--r--pkgs/development/python-modules/elastic-apm/default.nix4
-rw-r--r--pkgs/development/python-modules/elastic-transport/default.nix4
-rw-r--r--pkgs/development/python-modules/elasticsearch8/default.nix14
-rw-r--r--pkgs/development/python-modules/elkm1-lib/default.nix1
-rw-r--r--pkgs/development/python-modules/envisage/default.nix1
-rw-r--r--pkgs/development/python-modules/envoy-reader/default.nix1
-rw-r--r--pkgs/development/python-modules/faraday-agent-parameters-types/default.nix10
-rw-r--r--pkgs/development/python-modules/faraday-plugins/default.nix14
-rw-r--r--pkgs/development/python-modules/faster-fifo/default.nix12
-rw-r--r--pkgs/development/python-modules/fastparquet/default.nix50
-rw-r--r--pkgs/development/python-modules/fido2/default.nix27
-rw-r--r--pkgs/development/python-modules/flask-babel/default.nix1
-rw-r--r--pkgs/development/python-modules/flax/default.nix12
-rw-r--r--pkgs/development/python-modules/fontbakery/default.nix1
-rw-r--r--pkgs/development/python-modules/fontfeatures/default.nix1
-rw-r--r--pkgs/development/python-modules/foolscap/default.nix20
-rw-r--r--pkgs/development/python-modules/geodatasets/default.nix54
-rw-r--r--pkgs/development/python-modules/gmpy2/default.nix16
-rw-r--r--pkgs/development/python-modules/goodwe/default.nix4
-rw-r--r--pkgs/development/python-modules/gophish/default.nix65
-rw-r--r--pkgs/development/python-modules/graph-tool/default.nix8
-rw-r--r--pkgs/development/python-modules/griffe/default.nix4
-rw-r--r--pkgs/development/python-modules/gssapi/default.nix3
-rw-r--r--pkgs/development/python-modules/gst-python/default.nix4
-rw-r--r--pkgs/development/python-modules/ha-philipsjs/default.nix15
-rw-r--r--pkgs/development/python-modules/hdbscan/default.nix1
-rw-r--r--pkgs/development/python-modules/heatzypy/default.nix4
-rw-r--r--pkgs/development/python-modules/herepy/default.nix4
-rw-r--r--pkgs/development/python-modules/httpauth/default.nix4
-rw-r--r--pkgs/development/python-modules/huggingface-hub/default.nix10
-rw-r--r--pkgs/development/python-modules/hypothesis/default.nix26
-rw-r--r--pkgs/development/python-modules/hyppo/default.nix18
-rw-r--r--pkgs/development/python-modules/ics/default.nix20
-rw-r--r--pkgs/development/python-modules/import-expression/default.nix24
-rw-r--r--pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix1
-rw-r--r--pkgs/development/python-modules/intake-parquet/default.nix17
-rw-r--r--pkgs/development/python-modules/jsonargparse/default.nix4
-rw-r--r--pkgs/development/python-modules/kivy/default.nix1
-rw-r--r--pkgs/development/python-modules/langchain-community/default.nix48
-rw-r--r--pkgs/development/python-modules/langchain-core/default.nix56
-rw-r--r--pkgs/development/python-modules/langchain-text-splitters/default.nix36
-rw-r--r--pkgs/development/python-modules/langchain/default.nix16
-rw-r--r--pkgs/development/python-modules/langsmith/default.nix4
-rw-r--r--pkgs/development/python-modules/latex2pydata/default.nix34
-rw-r--r--pkgs/development/python-modules/ledgerblue/default.nix4
-rw-r--r--pkgs/development/python-modules/ledgerwallet/default.nix1
-rw-r--r--pkgs/development/python-modules/libpysal/default.nix86
-rw-r--r--pkgs/development/python-modules/libvirt/default.nix14
-rw-r--r--pkgs/development/python-modules/life360/default.nix17
-rw-r--r--pkgs/development/python-modules/litellm/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-core/default.nix10
-rw-r--r--pkgs/development/python-modules/llama-index-embeddings-gemini/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-embeddings-google/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-embeddings-openai/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-llms-ollama/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-llms-openai/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-readers-file/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-readers-s3/default.nix4
-rw-r--r--pkgs/development/python-modules/losant-rest/default.nix4
-rw-r--r--pkgs/development/python-modules/mahotas/default.nix1
-rw-r--r--pkgs/development/python-modules/manifestoo-core/default.nix4
-rw-r--r--pkgs/development/python-modules/mapclassify/default.nix58
-rw-r--r--pkgs/development/python-modules/marimo/default.nix6
-rw-r--r--pkgs/development/python-modules/mdx-truly-sane-lists/default.nix1
-rw-r--r--pkgs/development/python-modules/microsoft-kiota-abstractions/default.nix4
-rw-r--r--pkgs/development/python-modules/minio/default.nix4
-rw-r--r--pkgs/development/python-modules/mizani/default.nix4
-rw-r--r--pkgs/development/python-modules/mkdocstrings-python/default.nix4
-rw-r--r--pkgs/development/python-modules/mne-python/default.nix33
-rw-r--r--pkgs/development/python-modules/model-checker/default.nix4
-rw-r--r--pkgs/development/python-modules/morecantile/default.nix54
-rw-r--r--pkgs/development/python-modules/mpi4py/default.nix1
-rw-r--r--pkgs/development/python-modules/msoffcrypto-tool/default.nix4
-rw-r--r--pkgs/development/python-modules/mutag/default.nix29
-rw-r--r--pkgs/development/python-modules/netapp-ontap/default.nix21
-rw-r--r--pkgs/development/python-modules/nibe/default.nix10
-rw-r--r--pkgs/development/python-modules/nose-exclude/default.nix29
-rw-r--r--pkgs/development/python-modules/notifications-python-client/default.nix4
-rw-r--r--pkgs/development/python-modules/okonomiyaki/default.nix2
-rw-r--r--pkgs/development/python-modules/ome-zarr/default.nix4
-rw-r--r--pkgs/development/python-modules/openai/default.nix4
-rw-r--r--pkgs/development/python-modules/opensfm/default.nix1
-rw-r--r--pkgs/development/python-modules/oras/default.nix4
-rw-r--r--pkgs/development/python-modules/orjson/default.nix6
-rw-r--r--pkgs/development/python-modules/oslo-db/default.nix4
-rw-r--r--pkgs/development/python-modules/oslo-log/default.nix4
-rw-r--r--pkgs/development/python-modules/osqp/default.nix4
-rw-r--r--pkgs/development/python-modules/owslib/default.nix20
-rw-r--r--pkgs/development/python-modules/panel/default.nix4
-rw-r--r--pkgs/development/python-modules/parso/default.nix1
-rw-r--r--pkgs/development/python-modules/pdfplumber/default.nix6
-rw-r--r--pkgs/development/python-modules/peaqevcore/default.nix4
-rw-r--r--pkgs/development/python-modules/pgmpy/default.nix9
-rw-r--r--pkgs/development/python-modules/pins/default.nix8
-rw-r--r--pkgs/development/python-modules/pipdeptree/default.nix4
-rw-r--r--pkgs/development/python-modules/plugp100/default.nix51
-rw-r--r--pkgs/development/python-modules/plugwise/default.nix4
-rw-r--r--pkgs/development/python-modules/plux/default.nix1
-rw-r--r--pkgs/development/python-modules/plyer/default.nix1
-rw-r--r--pkgs/development/python-modules/ppscore/default.nix8
-rw-r--r--pkgs/development/python-modules/proxy-py/default.nix1
-rw-r--r--pkgs/development/python-modules/psrpcore/default.nix2
-rw-r--r--pkgs/development/python-modules/ptpython/default.nix4
-rw-r--r--pkgs/development/python-modules/publicsuffixlist/default.nix4
-rw-r--r--pkgs/development/python-modules/py-sr25519-bindings/default.nix1
-rw-r--r--pkgs/development/python-modules/pyahocorasick/default.nix1
-rw-r--r--pkgs/development/python-modules/pyannote-metrics/default.nix41
-rw-r--r--pkgs/development/python-modules/pybids/default.nix4
-rw-r--r--pkgs/development/python-modules/pycaption/default.nix4
-rw-r--r--pkgs/development/python-modules/pydeconz/default.nix22
-rw-r--r--pkgs/development/python-modules/pyecowitt/default.nix16
-rw-r--r--pkgs/development/python-modules/pyedimax/default.nix17
-rw-r--r--pkgs/development/python-modules/pyenvisalink/default.nix4
-rw-r--r--pkgs/development/python-modules/pyexploitdb/default.nix4
-rw-r--r--pkgs/development/python-modules/pyfireservicerota/default.nix1
-rw-r--r--pkgs/development/python-modules/pygeos/default.nix48
-rw-r--r--pkgs/development/python-modules/pyinfra/default.nix1
-rw-r--r--pkgs/development/python-modules/pyiqvia/default.nix1
-rw-r--r--pkgs/development/python-modules/pykdl/default.nix2
-rw-r--r--pkgs/development/python-modules/pylast/default.nix13
-rw-r--r--pkgs/development/python-modules/pymongo-inmemory/default.nix5
-rw-r--r--pkgs/development/python-modules/pyogrio/default.nix75
-rw-r--r--pkgs/development/python-modules/pyopencl/default.nix2
-rw-r--r--pkgs/development/python-modules/pypck/default.nix6
-rw-r--r--pkgs/development/python-modules/pypdf/default.nix23
-rw-r--r--pkgs/development/python-modules/pyquil/default.nix13
-rw-r--r--pkgs/development/python-modules/pyregion/default.nix1
-rw-r--r--pkgs/development/python-modules/pyrtlsdr/default.nix1
-rw-r--r--pkgs/development/python-modules/pyrympro/default.nix39
-rw-r--r--pkgs/development/python-modules/pyside6/default.nix6
-rw-r--r--pkgs/development/python-modules/pyside6/qt-6.7.1.patch87
-rw-r--r--pkgs/development/python-modules/pysigma/default.nix5
-rw-r--r--pkgs/development/python-modules/pystac/default.nix53
-rw-r--r--pkgs/development/python-modules/pystray/default.nix18
-rw-r--r--pkgs/development/python-modules/pyswitchbot/default.nix10
-rw-r--r--pkgs/development/python-modules/pytest-astropy-header/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-httpbin/default.nix14
-rw-r--r--pkgs/development/python-modules/pytest-test-utils/default.nix13
-rw-r--r--pkgs/development/python-modules/pytest-testinfra/default.nix4
-rw-r--r--pkgs/development/python-modules/python-daemon/default.nix2
-rw-r--r--pkgs/development/python-modules/python-fontconfig/default.nix17
-rw-r--r--pkgs/development/python-modules/python-ironicclient/default.nix14
-rw-r--r--pkgs/development/python-modules/python-mapnik/default.nix1
-rw-r--r--pkgs/development/python-modules/python-swiftclient/default.nix4
-rw-r--r--pkgs/development/python-modules/python-twitter/default.nix14
-rw-r--r--pkgs/development/python-modules/python-u2flib-server/default.nix1
-rw-r--r--pkgs/development/python-modules/pythran/default.nix1
-rw-r--r--pkgs/development/python-modules/pytransportnswv2/default.nix4
-rw-r--r--pkgs/development/python-modules/pytubefix/default.nix28
-rw-r--r--pkgs/development/python-modules/pyvis/default.nix1
-rw-r--r--pkgs/development/python-modules/pyvo/default.nix1
-rw-r--r--pkgs/development/python-modules/pywlroots/default.nix4
-rw-r--r--pkgs/development/python-modules/pyxnat/default.nix32
-rw-r--r--pkgs/development/python-modules/qcs-api-client/default.nix6
-rw-r--r--pkgs/development/python-modules/qcs-sdk-python/Cargo.lock24
-rw-r--r--pkgs/development/python-modules/qcs-sdk-python/default.nix6
-rw-r--r--pkgs/development/python-modules/qgrid/default.nix17
-rw-r--r--pkgs/development/python-modules/qiskit-aer/default.nix3
-rw-r--r--pkgs/development/python-modules/qtile-extras/default.nix6
-rw-r--r--pkgs/development/python-modules/qtile/default.nix24
-rw-r--r--pkgs/development/python-modules/quantile-forest/default.nix4
-rw-r--r--pkgs/development/python-modules/quil/default.nix10
-rw-r--r--pkgs/development/python-modules/raylib-python-cffi/default.nix57
-rw-r--r--pkgs/development/python-modules/raylib-python-cffi/fix_pyray_builder.patch61
-rw-r--r--pkgs/development/python-modules/requests-file/default.nix18
-rw-r--r--pkgs/development/python-modules/requests/default.nix5
-rw-r--r--pkgs/development/python-modules/resend/default.nix4
-rw-r--r--pkgs/development/python-modules/rich-rst/default.nix4
-rw-r--r--pkgs/development/python-modules/rio-tiler/default.nix65
-rw-r--r--pkgs/development/python-modules/rioxarray/default.nix57
-rw-r--r--pkgs/development/python-modules/riscv-config/default.nix1
-rw-r--r--pkgs/development/python-modules/rollbar/default.nix1
-rw-r--r--pkgs/development/python-modules/rpy2/default.nix1
-rw-r--r--pkgs/development/python-modules/ruyaml/default.nix1
-rw-r--r--pkgs/development/python-modules/sanic/default.nix1
-rw-r--r--pkgs/development/python-modules/scalene/default.nix1
-rw-r--r--pkgs/development/python-modules/scikit-fmm/default.nix34
-rw-r--r--pkgs/development/python-modules/scikit-hep-testdata/default.nix4
-rw-r--r--pkgs/development/python-modules/scikit-misc/default.nix1
-rw-r--r--pkgs/development/python-modules/scikits-samplerate/default.nix40
-rw-r--r--pkgs/development/python-modules/scipy/default.nix10
-rw-r--r--pkgs/development/python-modules/scipy/pocketfft-aligned_alloc.patch30
-rw-r--r--pkgs/development/python-modules/scp/default.nix4
-rw-r--r--pkgs/development/python-modules/scrapy/default.nix40
-rw-r--r--pkgs/development/python-modules/shiboken2/default.nix3
-rw-r--r--pkgs/development/python-modules/shiboken6/default.nix12
-rw-r--r--pkgs/development/python-modules/single-version/default.nix1
-rw-r--r--pkgs/development/python-modules/slicer/default.nix1
-rw-r--r--pkgs/development/python-modules/sparklines/default.nix6
-rw-r--r--pkgs/development/python-modules/sparse/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-ditaa/default.nix42
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-openapi/default.nix1
-rw-r--r--pkgs/development/python-modules/sqlalchemy-utils/default.nix1
-rw-r--r--pkgs/development/python-modules/sqlite-utils/default.nix1
-rw-r--r--pkgs/development/python-modules/strawberry-graphql/default.nix30
-rw-r--r--pkgs/development/python-modules/streamlit/default.nix4
-rw-r--r--pkgs/development/python-modules/stripe/default.nix8
-rw-r--r--pkgs/development/python-modules/svgelements/default.nix17
-rw-r--r--pkgs/development/python-modules/syncedlyrics/default.nix6
-rw-r--r--pkgs/development/python-modules/tableaudocumentapi/default.nix19
-rw-r--r--pkgs/development/python-modules/tabula-py/default.nix4
-rw-r--r--pkgs/development/python-modules/tappy/default.nix18
-rw-r--r--pkgs/development/python-modules/tencentcloud-sdk-python/default.nix4
-rw-r--r--pkgs/development/python-modules/teslajsonpy/default.nix4
-rw-r--r--pkgs/development/python-modules/testcontainers/default.nix14
-rw-r--r--pkgs/development/python-modules/thrift/default.nix12
-rw-r--r--pkgs/development/python-modules/tokenizers/default.nix6
-rw-r--r--pkgs/development/python-modules/tokenlib/default.nix27
-rw-r--r--pkgs/development/python-modules/tololib/default.nix1
-rw-r--r--pkgs/development/python-modules/trainer/default.nix9
-rw-r--r--pkgs/development/python-modules/transformers/default.nix12
-rw-r--r--pkgs/development/python-modules/truststore/default.nix16
-rw-r--r--pkgs/development/python-modules/twilio/default.nix4
-rw-r--r--pkgs/development/python-modules/types-aiobotocore-packages/default.nix1421
-rw-r--r--pkgs/development/python-modules/types-aiobotocore/default.nix89
-rwxr-xr-xpkgs/development/python-modules/types-aiobotocore/update.sh45
-rw-r--r--pkgs/development/python-modules/types-requests/default.nix4
-rw-r--r--pkgs/development/python-modules/typing-extensions/default.nix4
-rw-r--r--pkgs/development/python-modules/uarray/default.nix1
-rw-r--r--pkgs/development/python-modules/unstructured/default.nix4
-rw-r--r--pkgs/development/python-modules/urwid-mitmproxy/default.nix3
-rw-r--r--pkgs/development/python-modules/velbus-aio/default.nix8
-rw-r--r--pkgs/development/python-modules/visions/default.nix70
-rw-r--r--pkgs/development/python-modules/vllm/default.nix1
-rw-r--r--pkgs/development/python-modules/vnoise/default.nix35
-rw-r--r--pkgs/development/python-modules/watchdog/default.nix1
-rw-r--r--pkgs/development/python-modules/weatherflow4py/default.nix54
-rw-r--r--pkgs/development/python-modules/webssh/default.nix9
-rw-r--r--pkgs/development/python-modules/webssh/remove-typo-in-test-case.patch18
-rw-r--r--pkgs/development/python-modules/wled/default.nix27
-rw-r--r--pkgs/development/python-modules/xdis/default.nix2
-rw-r--r--pkgs/development/python-modules/xtensor-python/default.nix10
-rw-r--r--pkgs/development/python-modules/xyzservices/default.nix12
-rw-r--r--pkgs/development/python-modules/yara-python/default.nix13
-rw-r--r--pkgs/development/python-modules/ydata-profiling/default.nix103
-rw-r--r--pkgs/development/python-modules/ytmusicapi/default.nix4
-rw-r--r--pkgs/development/python-modules/zconfig/default.nix7
-rw-r--r--pkgs/development/python-modules/zipfile2/default.nix2
-rw-r--r--pkgs/development/python-modules/zipstream/default.nix26
-rw-r--r--pkgs/development/r-modules/default.nix37
-rw-r--r--pkgs/development/r-modules/patches/immunotation.patch47
-rw-r--r--pkgs/development/rocm-modules/5/rocm-runtime/default.nix4
-rw-r--r--pkgs/development/rocm-modules/6/rocm-runtime/default.nix4
-rw-r--r--pkgs/development/ruby-modules/bundler/default.nix4
-rw-r--r--pkgs/development/ruby-modules/gem-config/default.nix2
-rw-r--r--pkgs/development/tools/aapt/default.nix6
-rw-r--r--pkgs/development/tools/algolia-cli/default.nix4
-rw-r--r--pkgs/development/tools/analysis/checkov/default.nix5
-rw-r--r--pkgs/development/tools/analysis/checkstyle/default.nix4
-rw-r--r--pkgs/development/tools/analysis/frama-c/default.nix2
-rw-r--r--pkgs/development/tools/analysis/radare2/default.nix1
-rw-r--r--pkgs/development/tools/analysis/rr/default.nix2
-rw-r--r--pkgs/development/tools/analysis/stylelint/default.nix6
-rw-r--r--pkgs/development/tools/analysis/tflint-plugins/tflint-ruleset-google.nix6
-rw-r--r--pkgs/development/tools/analysis/valgrind/default.nix29
-rw-r--r--pkgs/development/tools/bazel-gazelle/default.nix4
-rw-r--r--pkgs/development/tools/bearer/default.nix6
-rw-r--r--pkgs/development/tools/build-managers/alire/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix6
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_5/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_6/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/bazel/buildtools/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/bear/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/bloop/default.nix6
-rw-r--r--pkgs/development/tools/build-managers/buck2/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/buck2/hashes.json10
-rw-r--r--pkgs/development/tools/build-managers/gnumake/default.nix3
-rw-r--r--pkgs/development/tools/build-managers/moon/default.nix6
-rw-r--r--pkgs/development/tools/build-managers/msbuild/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/scala-cli/sources.json10
-rw-r--r--pkgs/development/tools/build-managers/xmake/default.nix4
-rw-r--r--pkgs/development/tools/buildah/default.nix4
-rw-r--r--pkgs/development/tools/capnproto-java/default.nix2
-rw-r--r--pkgs/development/tools/check-jsonschema/default.nix4
-rw-r--r--pkgs/development/tools/cloud-nuke/default.nix6
-rw-r--r--pkgs/development/tools/cloudsmith-cli/default.nix59
-rw-r--r--pkgs/development/tools/coder/default.nix20
-rw-r--r--pkgs/development/tools/continuous-integration/buildbot/master.nix4
-rw-r--r--pkgs/development/tools/continuous-integration/buildbot/pkg.nix2
-rw-r--r--pkgs/development/tools/continuous-integration/buildbot/plugins.nix22
-rw-r--r--pkgs/development/tools/continuous-integration/buildbot/worker.nix2
-rw-r--r--pkgs/development/tools/ctlptl/default.nix8
-rw-r--r--pkgs/development/tools/database/apgdiff/default.nix34
-rw-r--r--pkgs/development/tools/database/clickhouse-backup/default.nix4
-rw-r--r--pkgs/development/tools/database/dblab/default.nix4
-rw-r--r--pkgs/development/tools/database/gobang/default.nix35
-rw-r--r--pkgs/development/tools/database/liquibase/default.nix4
-rw-r--r--pkgs/development/tools/database/sqlfluff/default.nix4
-rw-r--r--pkgs/development/tools/database/vitess/default.nix6
-rw-r--r--pkgs/development/tools/devpod/default.nix4
-rw-r--r--pkgs/development/tools/earthly/default.nix6
-rw-r--r--pkgs/development/tools/esbuild/netlify.nix1
-rw-r--r--pkgs/development/tools/extism-cli/default.nix6
-rw-r--r--pkgs/development/tools/firebase-tools/default.nix6
-rw-r--r--pkgs/development/tools/fsautocomplete/default.nix4
-rw-r--r--pkgs/development/tools/fsautocomplete/deps.nix24
-rw-r--r--pkgs/development/tools/ginkgo/default.nix4
-rw-r--r--pkgs/development/tools/goimports-reviser/default.nix4
-rw-r--r--pkgs/development/tools/golangci-lint/default.nix6
-rw-r--r--pkgs/development/tools/goperf/default.nix8
-rw-r--r--pkgs/development/tools/initool/default.nix4
-rw-r--r--pkgs/development/tools/jaq/default.nix6
-rw-r--r--pkgs/development/tools/jql/default.nix6
-rw-r--r--pkgs/development/tools/language-servers/fortls/default.nix4
-rw-r--r--pkgs/development/tools/language-servers/neocmakelsp/default.nix6
-rw-r--r--pkgs/development/tools/language-servers/vhdl-ls/default.nix6
-rw-r--r--pkgs/development/tools/melange/default.nix6
-rw-r--r--pkgs/development/tools/micronaut/default.nix4
-rw-r--r--pkgs/development/tools/misc/astyle/default.nix4
-rw-r--r--pkgs/development/tools/misc/automake/automake-1.16.x.nix4
-rw-r--r--pkgs/development/tools/misc/binutils/default.nix15
-rw-r--r--pkgs/development/tools/misc/blackfire/default.nix12
-rw-r--r--pkgs/development/tools/misc/blackfire/php-probe.nix32
-rw-r--r--pkgs/development/tools/misc/coreboot-toolchain/default.nix6
-rw-r--r--pkgs/development/tools/misc/coreboot-toolchain/stable.nix12
-rw-r--r--pkgs/development/tools/misc/ctags/wrapped.nix146
-rw-r--r--pkgs/development/tools/misc/dejagnu/default.nix4
-rw-r--r--pkgs/development/tools/misc/gdb/default.nix2
-rw-r--r--pkgs/development/tools/misc/gnum4/default.nix9
-rw-r--r--pkgs/development/tools/misc/jcli/default.nix2
-rw-r--r--pkgs/development/tools/misc/libtool/libtool2.nix5
-rw-r--r--pkgs/development/tools/misc/lttng-ust/generic.nix2
-rw-r--r--pkgs/development/tools/misc/nix-bisect/default.nix1
-rw-r--r--pkgs/development/tools/misc/pkg-config/default.nix11
-rw-r--r--pkgs/development/tools/misc/sccache/default.nix6
-rw-r--r--pkgs/development/tools/misc/terser/default.nix6
-rw-r--r--pkgs/development/tools/misc/texinfo/common.nix7
-rw-r--r--pkgs/development/tools/misc/texlab/default.nix8
-rw-r--r--pkgs/development/tools/misc/ttags/default.nix6
-rw-r--r--pkgs/development/tools/mongosh/package-lock.json2188
-rw-r--r--pkgs/development/tools/mongosh/source.json8
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix4
-rw-r--r--pkgs/development/tools/ocaml/ocsigen-i18n/default.nix20
-rw-r--r--pkgs/development/tools/okteto/default.nix4
-rw-r--r--pkgs/development/tools/ols/default.nix6
-rw-r--r--pkgs/development/tools/opcr-policy/default.nix6
-rw-r--r--pkgs/development/tools/rain/default.nix6
-rw-r--r--pkgs/development/tools/reindeer/default.nix4
-rw-r--r--pkgs/development/tools/rubyfmt/default.nix2
-rw-r--r--pkgs/development/tools/ruff/Cargo.lock3698
-rw-r--r--pkgs/development/tools/ruff/default.nix17
-rw-r--r--pkgs/development/tools/rust/cargo-binstall/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-chef/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-component/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-cyclonedx/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-dist/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-local-registry/default.nix5
-rw-r--r--pkgs/development/tools/rust/cargo-mobile2/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-ndk/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-nextest/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-pgrx/buildPgrxExtension.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-public-api/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-readme/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-shuttle/Cargo.lock3656
-rw-r--r--pkgs/development/tools/rust/cargo-shuttle/default.nix7
-rw-r--r--pkgs/development/tools/rust/cargo-tauri/default.nix6
-rw-r--r--pkgs/development/tools/rust/sqlx-cli/default.nix6
-rw-r--r--pkgs/development/tools/sentry-cli/default.nix6
-rw-r--r--pkgs/development/tools/supabase-cli/default.nix6
-rw-r--r--pkgs/development/tools/teller/default.nix75
-rw-r--r--pkgs/development/tools/twilio-cli/default.nix4
-rw-r--r--pkgs/development/tools/viceroy/default.nix6
-rw-r--r--pkgs/development/tools/wasmedge/default.nix4
-rw-r--r--pkgs/development/tools/xqilla/default.nix15
-rw-r--r--pkgs/development/web/bun/default.nix10
-rw-r--r--pkgs/development/web/edge-runtime/Cargo.lock7117
-rw-r--r--pkgs/development/web/edge-runtime/default.nix43
-rw-r--r--pkgs/development/web/edge-runtime/librusty_v8.nix10
-rw-r--r--pkgs/development/web/flyctl/default.nix11
-rw-r--r--pkgs/development/web/insomnia/default.nix151
-rw-r--r--pkgs/development/web/nodejs/v18.nix2
-rw-r--r--pkgs/games/chiaki4deck/default.nix4
-rw-r--r--pkgs/games/fheroes2/default.nix4
-rw-r--r--pkgs/games/hmcl/default.nix4
-rw-r--r--pkgs/games/instawow/default.nix4
-rw-r--r--pkgs/games/minetest/default.nix5
-rw-r--r--pkgs/games/nile/default.nix6
-rw-r--r--pkgs/games/openttd/default.nix8
-rw-r--r--pkgs/games/shattered-pixel-dungeon/default.nix4
-rw-r--r--pkgs/games/shattered-pixel-dungeon/experienced-pixel-dungeon.nix6
-rw-r--r--pkgs/games/shattered-pixel-dungeon/shorter-pixel-dungeon.nix6
-rw-r--r--pkgs/games/steam/fhsenv.nix5
-rw-r--r--pkgs/games/vintagestory/default.nix4
-rw-r--r--pkgs/kde/default.nix2
-rw-r--r--pkgs/kde/gear/accessibility-inspector/default.nix4
-rw-r--r--pkgs/kde/gear/akonadi-search/default.nix2
-rw-r--r--pkgs/kde/gear/angelfish/default.nix2
-rw-r--r--pkgs/kde/gear/audex/default.nix10
-rw-r--r--pkgs/kde/gear/bovo/default.nix3
-rw-r--r--pkgs/kde/gear/calindori/default.nix8
-rw-r--r--pkgs/kde/gear/default.nix6
-rw-r--r--pkgs/kde/gear/francis/default.nix9
-rw-r--r--pkgs/kde/gear/kalm/default.nix4
-rw-r--r--pkgs/kde/gear/katomic/default.nix8
-rw-r--r--pkgs/kde/gear/kblackbox/default.nix3
-rw-r--r--pkgs/kde/gear/kbounce/default.nix3
-rw-r--r--pkgs/kde/gear/kdepim-addons/default.nix2
-rw-r--r--pkgs/kde/gear/kfourinline/default.nix2
-rw-r--r--pkgs/kde/gear/kjumpingcube/default.nix3
-rw-r--r--pkgs/kde/gear/klickety/default.nix8
-rw-r--r--pkgs/kde/gear/klines/default.nix8
-rw-r--r--pkgs/kde/gear/kmines/default.nix8
-rw-r--r--pkgs/kde/gear/knavalbattle/default.nix8
-rw-r--r--pkgs/kde/gear/kolf/default.nix8
-rw-r--r--pkgs/kde/gear/kollision/default.nix8
-rw-r--r--pkgs/kde/gear/kreversi/default.nix3
-rw-r--r--pkgs/kde/gear/krfb/default.nix18
-rw-r--r--pkgs/kde/gear/krfb/fix-build-with-qt-6.7.1.diff51
-rw-r--r--pkgs/kde/gear/ksudoku/default.nix3
-rw-r--r--pkgs/kde/gear/kubrick/default.nix3
-rw-r--r--pkgs/kde/gear/lskat/default.nix3
-rw-r--r--pkgs/kde/gear/picmi/default.nix3
-rw-r--r--pkgs/kde/gear/skanpage/default.nix2
-rw-r--r--pkgs/kde/gear/skladnik/default.nix4
-rw-r--r--pkgs/kde/gear/spectacle/default.nix3
-rw-r--r--pkgs/kde/generated/licenses.json74
-rw-r--r--pkgs/kde/generated/sources/frameworks.json12
-rw-r--r--pkgs/kde/generated/sources/gear.json1500
-rw-r--r--pkgs/kde/misc/kio-extras-kf5/default.nix (renamed from pkgs/kde/gear/kio-extras-kf5/default.nix)11
-rw-r--r--pkgs/kde/misc/pulseaudio-qt/default.nix4
-rw-r--r--pkgs/misc/autotiling/default.nix4
-rw-r--r--pkgs/misc/cups/default.nix4
-rw-r--r--pkgs/misc/ghostscript/default.nix8
-rw-r--r--pkgs/misc/jackaudio/default.nix2
-rw-r--r--pkgs/misc/rich-cli/default.nix71
-rw-r--r--pkgs/misc/seafile-shared/default.nix4
-rw-r--r--pkgs/os-specific/bsd/freebsd/lib/install-wrapper.sh1
-rw-r--r--pkgs/os-specific/darwin/raycast/default.nix44
-rw-r--r--pkgs/os-specific/darwin/utm/default.nix4
-rw-r--r--pkgs/os-specific/linux/anbox/default.nix3
-rw-r--r--pkgs/os-specific/linux/busybox/default.nix4
-rw-r--r--pkgs/os-specific/linux/ell/default.nix4
-rw-r--r--pkgs/os-specific/linux/kernel-headers/default.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/common-config.nix12
-rw-r--r--pkgs/os-specific/linux/kernel/hardened/patches.json80
-rw-r--r--pkgs/os-specific/linux/kernel/kernels-org.json36
-rw-r--r--pkgs/os-specific/linux/kernel/linux-libre.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rt-5.10.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rt-6.1.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rt-6.6.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/manual-config.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/zen-kernels.nix8
-rw-r--r--pkgs/os-specific/linux/kexec-tools/default.nix5
-rw-r--r--pkgs/os-specific/linux/lttng-modules/default.nix4
-rw-r--r--pkgs/os-specific/linux/multipath-tools/default.nix22
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/libxnvctrl-build-shared-3xx.patch24
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/libxnvctrl-build-shared.patch21
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/settings.nix11
-rw-r--r--pkgs/os-specific/linux/pcm/default.nix4
-rw-r--r--pkgs/os-specific/linux/rt-tests/default.nix4
-rw-r--r--pkgs/os-specific/linux/sd-switch/default.nix16
-rw-r--r--pkgs/os-specific/linux/systemd/default.nix10
-rw-r--r--pkgs/os-specific/linux/util-linux/default.nix24
-rw-r--r--pkgs/os-specific/windows/default.nix4
-rw-r--r--pkgs/os-specific/windows/mcfgthreads/pre_gcc_13.nix24
-rw-r--r--pkgs/pkgs-lib/formats.nix5
-rw-r--r--pkgs/pkgs-lib/formats/hocon/default.nix1
-rw-r--r--pkgs/pkgs-lib/formats/java-properties/default.nix3
-rw-r--r--pkgs/pkgs-lib/formats/libconfig/default.nix1
-rw-r--r--pkgs/servers/adguardhome/bins.nix28
-rw-r--r--pkgs/servers/adguardhome/default.nix2
-rw-r--r--pkgs/servers/apcupsd/default.nix2
-rw-r--r--pkgs/servers/brickd/default.nix2
-rw-r--r--pkgs/servers/computing/slurm/default.nix4
-rw-r--r--pkgs/servers/dns/dnsdist/default.nix2
-rw-r--r--pkgs/servers/dns/knot-resolver/default.nix3
-rw-r--r--pkgs/servers/dns/pdns/default.nix2
-rw-r--r--pkgs/servers/freeradius/default.nix2
-rw-r--r--pkgs/servers/ftp/vsftpd/default.nix2
-rw-r--r--pkgs/servers/geospatial/geoserver/default.nix6
-rw-r--r--pkgs/servers/gopher/gofish/default.nix2
-rw-r--r--pkgs/servers/gpm/default.nix2
-rw-r--r--pkgs/servers/headphones/default.nix4
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix10
-rw-r--r--pkgs/servers/home-assistant/custom-lovelace-modules/android-tv-card/default.nix6
-rw-r--r--pkgs/servers/home-assistant/default.nix6
-rw-r--r--pkgs/servers/home-assistant/stubs.nix4
-rw-r--r--pkgs/servers/http/angie/default.nix10
-rw-r--r--pkgs/servers/http/apache-modules/mod_tile/default.nix2
-rw-r--r--pkgs/servers/http/dufs/default.nix6
-rw-r--r--pkgs/servers/http/gatling/default.nix2
-rw-r--r--pkgs/servers/http/hiawatha/default.nix2
-rw-r--r--pkgs/servers/http/lwan/default.nix2
-rw-r--r--pkgs/servers/http/nginx/generic.nix18
-rw-r--r--pkgs/servers/http/webfs/default.nix2
-rw-r--r--pkgs/servers/icecast/default.nix2
-rw-r--r--pkgs/servers/icecream/default.nix2
-rw-r--r--pkgs/servers/identd/nullidentdmod/default.nix2
-rw-r--r--pkgs/servers/identd/oidentd/default.nix2
-rw-r--r--pkgs/servers/irc/charybdis/default.nix2
-rw-r--r--pkgs/servers/irc/ngircd/default.nix2
-rw-r--r--pkgs/servers/jellyfin/default.nix38
-rw-r--r--pkgs/servers/jellyfin/web.nix19
-rw-r--r--pkgs/servers/klipper/default.nix6
-rw-r--r--pkgs/servers/kwakd/default.nix2
-rw-r--r--pkgs/servers/ldap/389/default.nix19
-rw-r--r--pkgs/servers/ldap/lldap/default.nix2
-rw-r--r--pkgs/servers/limesurvey/default.nix2
-rw-r--r--pkgs/servers/mail/nullmailer/default.nix2
-rw-r--r--pkgs/servers/mail/postgrey/default.nix2
-rw-r--r--pkgs/servers/mail/postsrsd/default.nix2
-rw-r--r--pkgs/servers/mail/rspamd/default.nix10
-rw-r--r--pkgs/servers/mail/smtprelay/default.nix6
-rw-r--r--pkgs/servers/mail/sympa/default.nix2
-rw-r--r--pkgs/servers/matrix-synapse/sliding-sync/default.nix4
-rw-r--r--pkgs/servers/minio/default.nix6
-rw-r--r--pkgs/servers/monitoring/buildkite-agent-metrics/default.nix6
-rw-r--r--pkgs/servers/monitoring/consul-alerts/default.nix2
-rw-r--r--pkgs/servers/monitoring/fusion-inventory/default.nix2
-rw-r--r--pkgs/servers/monitoring/grafana-image-renderer/default.nix6
-rw-r--r--pkgs/servers/monitoring/grafana-image-renderer/package.json15
-rw-r--r--pkgs/servers/monitoring/grafana/default.nix21
-rw-r--r--pkgs/servers/monitoring/grafana/plugins/grafana-oncall-app/default.nix13
-rw-r--r--pkgs/servers/monitoring/grafana/plugins/plugins.nix1
-rw-r--r--pkgs/servers/monitoring/lcdproc/default.nix2
-rw-r--r--pkgs/servers/monitoring/munin/default.nix2
-rw-r--r--pkgs/servers/monitoring/nagios/default.nix2
-rw-r--r--pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix4
-rw-r--r--pkgs/servers/monitoring/plugins/esxi.nix2
-rw-r--r--pkgs/servers/monitoring/plugins/labs_consol_de.nix2
-rw-r--r--pkgs/servers/monitoring/plugins/wmiplus/default.nix2
-rw-r--r--pkgs/servers/monitoring/zabbix/agent.nix2
-rw-r--r--pkgs/servers/monitoring/zabbix/proxy.nix2
-rw-r--r--pkgs/servers/monitoring/zabbix/server.nix2
-rw-r--r--pkgs/servers/monitoring/zabbix/web.nix2
-rw-r--r--pkgs/servers/nats-server/default.nix6
-rw-r--r--pkgs/servers/nextcloud/default.nix8
-rw-r--r--pkgs/servers/nextcloud/notify_push.nix12
-rw-r--r--pkgs/servers/nextcloud/packages/27.json54
-rw-r--r--pkgs/servers/nextcloud/packages/28.json66
-rw-r--r--pkgs/servers/nextcloud/packages/29.json76
-rw-r--r--pkgs/servers/nextcloud/packages/nextcloud-apps.json1
-rw-r--r--pkgs/servers/nfs-ganesha/default.nix4
-rw-r--r--pkgs/servers/nosql/redis/default.nix4
-rw-r--r--pkgs/servers/osmocom/libosmo-sccp/default.nix4
-rw-r--r--pkgs/servers/osmocom/libosmoabis/default.nix4
-rw-r--r--pkgs/servers/osmocom/osmo-ggsn/default.nix4
-rw-r--r--pkgs/servers/osmocom/osmo-sgsn/default.nix6
-rw-r--r--pkgs/servers/photofield/default.nix15
-rw-r--r--pkgs/servers/pleroma/default.nix4
-rw-r--r--pkgs/servers/redpanda/default.nix4
-rw-r--r--pkgs/servers/samba/4.x.nix2
-rw-r--r--pkgs/servers/search/sphinxsearch/default.nix2
-rw-r--r--pkgs/servers/sftpgo/default.nix2
-rw-r--r--pkgs/servers/sickbeard/sickgear.nix4
-rw-r--r--pkgs/servers/silc-server/default.nix2
-rw-r--r--pkgs/servers/spicedb/default.nix6
-rw-r--r--pkgs/servers/sql/mariadb/default.nix2
-rw-r--r--pkgs/servers/sql/mssql/jdbc/default.nix4
-rw-r--r--pkgs/servers/sql/mysql/8.0.x.nix2
-rw-r--r--pkgs/servers/sql/mysql/jdbc/default.nix2
-rw-r--r--pkgs/servers/sql/percona-server/lts.nix2
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_similarity.nix2
-rw-r--r--pkgs/servers/sql/postgresql/ext/postgis.nix2
-rw-r--r--pkgs/servers/swego/default.nix24
-rw-r--r--pkgs/servers/tailscale/default.nix11
-rw-r--r--pkgs/servers/tautulli/default.nix6
-rw-r--r--pkgs/servers/teleport/13/Cargo.lock1956
-rw-r--r--pkgs/servers/teleport/13/default.nix17
-rw-r--r--pkgs/servers/teleport/14/Cargo.lock18
-rw-r--r--pkgs/servers/teleport/14/default.nix10
-rw-r--r--pkgs/servers/teleport/15/Cargo.lock48
-rw-r--r--pkgs/servers/teleport/15/default.nix10
-rw-r--r--pkgs/servers/teleport/default.nix1
-rw-r--r--pkgs/servers/teleport/generic.nix4
-rw-r--r--pkgs/servers/traefik/default.nix6
-rw-r--r--pkgs/servers/ums/default.nix2
-rw-r--r--pkgs/servers/uwsgi/default.nix2
-rw-r--r--pkgs/servers/web-apps/discourse/asserts_patch-package_from_path.patch13
-rw-r--r--pkgs/servers/web-apps/discourse/assets_rake_command.patch18
-rw-r--r--pkgs/servers/web-apps/discourse/default.nix74
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock20
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix68
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock18
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix44
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile2
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile.lock8
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/gemset.nix8
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock2
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/prebuild-theme-transpiler.patch21
-rw-r--r--pkgs/servers/web-apps/discourse/rubyEnv/Gemfile49
-rw-r--r--pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock331
-rw-r--r--pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix536
-rw-r--r--pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch13
-rwxr-xr-xpkgs/servers/web-apps/discourse/update.py53
-rw-r--r--pkgs/servers/web-apps/dokuwiki/default.nix2
-rw-r--r--pkgs/servers/web-apps/engelsystem/default.nix2
-rw-r--r--pkgs/servers/web-apps/freshrss/default.nix4
-rw-r--r--pkgs/servers/web-apps/hedgedoc/default.nix14
-rw-r--r--pkgs/servers/web-apps/lemmy/server.nix3
-rw-r--r--pkgs/servers/web-apps/wordpress/generic.nix2
-rw-r--r--pkgs/servers/web-apps/wordpress/packages/thirdparty.nix37
-rw-r--r--pkgs/servers/x11/xorg/overrides.nix3
-rw-r--r--pkgs/servers/xmpp/ejabberd/default.nix2
-rw-r--r--pkgs/shells/bash/5.nix7
-rw-r--r--pkgs/shells/bash/bash-completion/default.nix7
-rw-r--r--pkgs/shells/carapace/default.nix2
-rw-r--r--pkgs/shells/dash/default.nix2
-rw-r--r--pkgs/shells/fish/default.nix2
-rw-r--r--pkgs/shells/jush/default.nix29
-rw-r--r--pkgs/shells/liquidprompt/default.nix33
-rw-r--r--pkgs/shells/murex/default.nix2
-rw-r--r--pkgs/shells/zsh/grml-zsh-config/default.nix2
-rw-r--r--pkgs/shells/zsh/zsh-abbr/default.nix4
-rw-r--r--pkgs/tools/admin/aliyun-cli/default.nix4
-rw-r--r--pkgs/tools/admin/awscli/default.nix2
-rw-r--r--pkgs/tools/admin/awslogs/default.nix17
-rwxr-xr-xpkgs/tools/admin/azure-cli/commit-update-hunks.sh19
-rw-r--r--pkgs/tools/admin/azure-cli/extensions-generated.nix173
-rw-r--r--pkgs/tools/admin/azure-cli/extensions-manual.nix3
-rw-r--r--pkgs/tools/admin/drawterm/default.nix6
-rw-r--r--pkgs/tools/admin/granted/default.nix4
-rw-r--r--pkgs/tools/admin/meshcentral/default.nix8
-rw-r--r--pkgs/tools/admin/meshcentral/package.json9
-rw-r--r--pkgs/tools/admin/meshcentral/yarn.lock2053
-rw-r--r--pkgs/tools/admin/pulumi-bin/data.nix322
-rw-r--r--pkgs/tools/admin/qovery-cli/default.nix6
-rw-r--r--pkgs/tools/admin/salt/default.nix4
-rw-r--r--pkgs/tools/admin/trivy/default.nix6
-rw-r--r--pkgs/tools/archivers/gnutar/default.nix5
-rw-r--r--pkgs/tools/archivers/sharutils/default.nix3
-rw-r--r--pkgs/tools/archivers/zip/default.nix2
-rw-r--r--pkgs/tools/archivers/zip/fix-time.h-not-included.patch10
-rw-r--r--pkgs/tools/compression/bzip2/default.nix2
-rw-r--r--pkgs/tools/compression/gzip/default.nix5
-rw-r--r--pkgs/tools/compression/upx/default.nix4
-rw-r--r--pkgs/tools/compression/xz/default.nix6
-rw-r--r--pkgs/tools/filesystems/btrfs-progs/default.nix10
-rw-r--r--pkgs/tools/filesystems/e2fsprogs/default.nix24
-rw-r--r--pkgs/tools/filesystems/exfatprogs/default.nix4
-rw-r--r--pkgs/tools/filesystems/gcsfuse/default.nix6
-rw-r--r--pkgs/tools/filesystems/xfsprogs/default.nix4
-rw-r--r--pkgs/tools/graphics/gfxreconstruct/default.nix4
-rw-r--r--pkgs/tools/graphics/gifski/default.nix5
-rw-r--r--pkgs/tools/graphics/mangohud/default.nix14
-rw-r--r--pkgs/tools/graphics/mangohud/hardcode-dependencies.patch7
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix17
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix4
-rw-r--r--pkgs/tools/inputmethods/keymapper/default.nix8
-rw-r--r--pkgs/tools/misc/bartib/default.nix3
-rw-r--r--pkgs/tools/misc/calamares-nixos-extensions/default.nix4
-rw-r--r--pkgs/tools/misc/coreboot-utils/default.nix10
-rw-r--r--pkgs/tools/misc/coreutils/default.nix11
-rw-r--r--pkgs/tools/misc/coreutils/fix-mix-flags-deps-libintl.patch49
-rw-r--r--pkgs/tools/misc/esphome/default.nix4
-rw-r--r--pkgs/tools/misc/ethtool/default.nix4
-rw-r--r--pkgs/tools/misc/faketty/default.nix6
-rw-r--r--pkgs/tools/misc/file/default.nix4
-rw-r--r--pkgs/tools/misc/findutils/default.nix3
-rw-r--r--pkgs/tools/misc/fluent-bit/default.nix4
-rw-r--r--pkgs/tools/misc/foma/default.nix33
-rw-r--r--pkgs/tools/misc/gh-dash/default.nix4
-rw-r--r--pkgs/tools/misc/gh-eco/default.nix33
-rw-r--r--pkgs/tools/misc/goreleaser/default.nix6
-rw-r--r--pkgs/tools/misc/hunt/default.nix6
-rw-r--r--pkgs/tools/misc/ili2c/default.nix2
-rw-r--r--pkgs/tools/misc/kalker/default.nix5
-rw-r--r--pkgs/tools/misc/lazydocker/default.nix4
-rw-r--r--pkgs/tools/misc/license-generator/default.nix6
-rw-r--r--pkgs/tools/misc/mrtg/default.nix10
-rw-r--r--pkgs/tools/misc/nvimpager/default.nix17
-rw-r--r--pkgs/tools/misc/plantuml-server/default.nix4
-rw-r--r--pkgs/tools/misc/plantuml/default.nix4
-rw-r--r--pkgs/tools/misc/pouf/default.nix5
-rw-r--r--pkgs/tools/misc/svtplay-dl/default.nix4
-rw-r--r--pkgs/tools/misc/tmux-mem-cpu-load/default.nix4
-rw-r--r--pkgs/tools/misc/trash-cli/default.nix8
-rw-r--r--pkgs/tools/misc/ttyplot/default.nix4
-rw-r--r--pkgs/tools/misc/you-get/default.nix4
-rw-r--r--pkgs/tools/misc/yt-dlp/default.nix4
-rw-r--r--pkgs/tools/networking/cfspeedtest/default.nix6
-rw-r--r--pkgs/tools/networking/croc/default.nix5
-rw-r--r--pkgs/tools/networking/croc/test-local-relay.nix7
-rw-r--r--pkgs/tools/networking/curl/default.nix7
-rw-r--r--pkgs/tools/networking/dae/default.nix6
-rw-r--r--pkgs/tools/networking/edgedb/0001-dynamically-patchelf-binaries.patch8
-rw-r--r--pkgs/tools/networking/edgedb/Cargo.lock1919
-rw-r--r--pkgs/tools/networking/edgedb/default.nix76
-rw-r--r--pkgs/tools/networking/eternal-terminal/default.nix4
-rw-r--r--pkgs/tools/networking/flannel/default.nix6
-rw-r--r--pkgs/tools/networking/lychee/default.nix13
-rw-r--r--pkgs/tools/networking/lychee/tests/fail-emptyDirectory.nix28
-rw-r--r--pkgs/tools/networking/lychee/tests/fail.nix21
-rw-r--r--pkgs/tools/networking/lychee/tests/network.nix66
-rw-r--r--pkgs/tools/networking/lychee/tests/ok.nix12
-rw-r--r--pkgs/tools/networking/minio-client/default.nix6
-rw-r--r--pkgs/tools/networking/miniupnpc/default.nix14
-rw-r--r--pkgs/tools/networking/modemmanager/default.nix32
-rw-r--r--pkgs/tools/networking/oneshot/default.nix4
-rw-r--r--pkgs/tools/networking/sish/default.nix4
-rw-r--r--pkgs/tools/networking/xray/default.nix6
-rw-r--r--pkgs/tools/networking/zerotierone/default.nix13
-rw-r--r--pkgs/tools/package-management/emplace/default.nix6
-rw-r--r--pkgs/tools/package-management/lix/common.nix3
-rw-r--r--pkgs/tools/package-management/nix/common.nix3
-rw-r--r--pkgs/tools/package-management/nix/default.nix13
-rw-r--r--pkgs/tools/package-management/pdm/default.nix8
-rw-r--r--pkgs/tools/package-management/protontricks/default.nix3
-rw-r--r--pkgs/tools/security/cnquery/default.nix6
-rw-r--r--pkgs/tools/security/cnspec/default.nix6
-rw-r--r--pkgs/tools/security/faraday-agent-dispatcher/default.nix17
-rw-r--r--pkgs/tools/security/ghidra/build.nix54
-rw-r--r--pkgs/tools/security/ghidra/with-extensions.nix8
-rw-r--r--pkgs/tools/security/govulncheck/default.nix6
-rw-r--r--pkgs/tools/security/himitsu/default.nix4
-rw-r--r--pkgs/tools/security/httpx/default.nix6
-rw-r--r--pkgs/tools/security/jwt-cli/default.nix6
-rw-r--r--pkgs/tools/security/jwt-hack/default.nix23
-rw-r--r--pkgs/tools/security/kubescape/default.nix6
-rw-r--r--pkgs/tools/security/kubestroyer/default.nix6
-rw-r--r--pkgs/tools/security/metasploit/Gemfile2
-rw-r--r--pkgs/tools/security/metasploit/Gemfile.lock104
-rw-r--r--pkgs/tools/security/metasploit/default.nix4
-rw-r--r--pkgs/tools/security/metasploit/gemset.nix160
-rw-r--r--pkgs/tools/security/nitrokey-app2/default.nix34
-rw-r--r--pkgs/tools/security/nuclei/default.nix6
-rw-r--r--pkgs/tools/security/oauth2c/default.nix6
-rw-r--r--pkgs/tools/security/rng-tools/default.nix4
-rw-r--r--pkgs/tools/security/ruler/default.nix18
-rw-r--r--pkgs/tools/security/secp256k1/default.nix4
-rw-r--r--pkgs/tools/security/semgrep/common.nix12
-rw-r--r--pkgs/tools/security/sherlock/default.nix6
-rw-r--r--pkgs/tools/security/smbmap/default.nix23
-rw-r--r--pkgs/tools/security/ssh-audit/default.nix7
-rw-r--r--pkgs/tools/security/trufflehog/default.nix6
-rw-r--r--pkgs/tools/security/uncover/default.nix6
-rw-r--r--pkgs/tools/security/vault-medusa/default.nix6
-rw-r--r--pkgs/tools/security/wapiti/default.nix78
-rw-r--r--pkgs/tools/security/yaralyzer/default.nix33
-rw-r--r--pkgs/tools/system/java-service-wrapper/default.nix4
-rw-r--r--pkgs/tools/system/jsvc/default.nix4
-rw-r--r--pkgs/tools/text/ansifilter/default.nix2
-rw-r--r--pkgs/tools/text/crowdin-cli/default.nix4
-rw-r--r--pkgs/tools/text/difftastic/Cargo.lock1254
-rw-r--r--pkgs/tools/text/difftastic/default.nix28
-rw-r--r--pkgs/tools/text/diffutils/default.nix4
-rw-r--r--pkgs/tools/text/gawk/default.nix5
-rw-r--r--pkgs/tools/text/gnugrep/default.nix5
-rw-r--r--pkgs/tools/text/gnused/default.nix4
-rw-r--r--pkgs/tools/text/kdiff3/default.nix4
-rw-r--r--pkgs/tools/text/markdownlint-cli/default.nix6
-rw-r--r--pkgs/tools/text/mdbook-admonish/default.nix6
-rw-r--r--pkgs/tools/text/mdbook-i18n-helpers/default.nix6
-rw-r--r--pkgs/tools/text/mdbook-katex/default.nix6
-rw-r--r--pkgs/tools/text/percollate/default.nix8
-rw-r--r--pkgs/tools/text/sad/default.nix6
-rw-r--r--pkgs/tools/text/teip/default.nix5
-rw-r--r--pkgs/tools/typesetting/tex/tetex/default.nix5
-rw-r--r--pkgs/tools/typesetting/tex/texpresso/default.nix4
-rw-r--r--pkgs/tools/typesetting/tex/texpresso/tectonic.nix4
-rw-r--r--pkgs/tools/video/bento4/default.nix6
-rw-r--r--pkgs/tools/wayland/shotman/default.nix6
-rw-r--r--pkgs/top-level/aliases.nix25
-rw-r--r--pkgs/top-level/all-packages.nix138
-rw-r--r--pkgs/top-level/beam-packages.nix16
-rw-r--r--pkgs/top-level/linux-kernels.nix1
-rw-r--r--pkgs/top-level/ocaml-packages.nix14
-rw-r--r--pkgs/top-level/perl-packages.nix4
-rw-r--r--pkgs/top-level/php-packages.nix6
-rw-r--r--pkgs/top-level/python-aliases.nix6
-rw-r--r--pkgs/top-level/python-packages.nix64
-rw-r--r--pkgs/top-level/ruby-packages.nix4
1875 files changed, 52735 insertions, 24134 deletions
diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs
index 3ce4c34c30f32..f079fba5eaac3 100644
--- a/.git-blame-ignore-revs
+++ b/.git-blame-ignore-revs
@@ -109,6 +109,10 @@ fb0e5be84331188a69b3edd31679ca6576edb75a
 # postgresql: move packages.nix to ext/default.nix
 719034f6f6749d624faa28dff259309fc0e3e730
 
+# php ecosystem: reformat with nixfmt-rfc-style
+75ae7621330ff8db944ce4dff4374e182d5d151f
+c759efa5e7f825913f9a69ef20f025f50f56dc4d
+
 # pkgs/os-specific/bsd: Reformat with nixfmt-rfc-style 2024-03-01
 3fe3b055adfc020e6a923c466b6bcd978a13069a
 
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 47d5d399f1983..e78e7ab2bdef8 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -306,8 +306,8 @@ nixos/modules/services/networking/networkmanager.nix @Janik-Haag
 /pkgs/applications/networking/cluster/terraform-providers @zowoq
 
 # Forgejo
-nixos/modules/services/misc/forgejo.nix      @bendlas @emilylange
-pkgs/applications/version-management/forgejo @bendlas @emilylange
+nixos/modules/services/misc/forgejo.nix @adamcstephens @bendlas @emilylange
+pkgs/by-name/fo/forgejo/package.nix     @adamcstephens @bendlas @emilylange
 
 # Dotnet
 /pkgs/build-support/dotnet                  @IvarWithoutBones
diff --git a/.github/workflows/basic-eval.yml b/.github/workflows/basic-eval.yml
index 1f787397f2611..a5ada7a6e210f 100644
--- a/.github/workflows/basic-eval.yml
+++ b/.github/workflows/basic-eval.yml
@@ -20,7 +20,7 @@ jobs:
     steps:
     - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
     - uses: cachix/install-nix-action@8887e596b4ee1134dae06b98d573bd674693f47c # v26
-    - uses: cachix/cachix-action@18cf96c7c98e048e10a83abd92116114cd8504be # v14
+    - uses: cachix/cachix-action@ad2ddac53f961de1989924296a1f236fcfbaa4fc # v15
       with:
         # This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
         name: nixpkgs-ci
diff --git a/.github/workflows/check-by-name.yml b/.github/workflows/check-by-name.yml
index e857c88f746d3..ce7802f4aa8ee 100644
--- a/.github/workflows/check-by-name.yml
+++ b/.github/workflows/check-by-name.yml
@@ -14,16 +14,16 @@ on:
     # While `edited` is also triggered when the PR title/body is changed,
     # this PR action is fairly quick, and PR's don't get edited that often,
     # so it shouldn't be a problem
+    # There is a feature request for adding a `base_changed` event:
+    # https://github.com/orgs/community/discussions/35058
     types: [opened, synchronize, reopened, edited]
 
 permissions: {}
 
-# Create a check-by-name concurrency group based on the pull request number. if
-# an event triggers a run on the same PR while a previous run is still in
-# progress, the previous run will be canceled and the new one will start.
-concurrency:
-  group: check-by-name-${{ github.event.pull_request.number }}
-  cancel-in-progress: true
+# We don't use a concurrency group here, because the action is triggered quite often (due to the PR edit
+# trigger), and contributers would get notified on any canceled run.
+# There is a feature request for supressing notifications on concurrency-canceled runs:
+# https://github.com/orgs/community/discussions/13015
 
 jobs:
   check:
diff --git a/.github/workflows/manual-nixos.yml b/.github/workflows/manual-nixos.yml
index a72b1adfeac03..f841fcadc5005 100644
--- a/.github/workflows/manual-nixos.yml
+++ b/.github/workflows/manual-nixos.yml
@@ -22,7 +22,7 @@ jobs:
         with:
           # explicitly enable sandbox
           extra_nix_config: sandbox = true
-      - uses: cachix/cachix-action@18cf96c7c98e048e10a83abd92116114cd8504be # v14
+      - uses: cachix/cachix-action@ad2ddac53f961de1989924296a1f236fcfbaa4fc # v15
         with:
           # This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
           name: nixpkgs-ci
diff --git a/.github/workflows/manual-nixpkgs.yml b/.github/workflows/manual-nixpkgs.yml
index 52aefa8472ed2..7b2cef0e108b5 100644
--- a/.github/workflows/manual-nixpkgs.yml
+++ b/.github/workflows/manual-nixpkgs.yml
@@ -24,7 +24,7 @@ jobs:
         with:
           # explicitly enable sandbox
           extra_nix_config: sandbox = true
-      - uses: cachix/cachix-action@18cf96c7c98e048e10a83abd92116114cd8504be # v14
+      - uses: cachix/cachix-action@ad2ddac53f961de1989924296a1f236fcfbaa4fc # v15
         with:
           # This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
           name: nixpkgs-ci
diff --git a/.mailmap b/.mailmap
index ba9bcefb55e1c..ce432f161b878 100644
--- a/.mailmap
+++ b/.mailmap
@@ -10,6 +10,7 @@ Robert Hensing <robert@roberthensing.nl> <roberth@users.noreply.github.com>
 Sandro Jäckel <sandro.jaeckel@gmail.com>
 Sandro Jäckel <sandro.jaeckel@gmail.com> <sandro.jaeckel@sap.com>
 superherointj <5861043+superherointj@users.noreply.github.com>
+Tomodachi94 <tomodachi94@protonmail.com> Tomo <68489118+Tomodachi94@users.noreply.github.com>
 Vladimír Čunát <v@cunat.cz> <vcunat@gmail.com>
 Vladimír Čunát <v@cunat.cz> <vladimir.cunat@nic.cz>
 Yifei Sun <ysun@hey.com> StepBroBD <Hi@StepBroBD.com>
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 3623246f6871b..23a826d9a7b7e 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -330,7 +330,14 @@ Container system, boot system and library changes are some examples of the pull
 ## How to merge pull requests
 [pr-merge]: #how-to-merge-pull-requests
 
-The *Nixpkgs committers* are people who have been given
+To streamline automated updates, leverage the nixpkgs-merge-bot by simply commenting `@NixOS/nixpkgs-merge-bot merge`. The bot will verify if the following conditions are met, refusing to merge otherwise:
+
+- the commenter that issued the command should be among the package maintainers;
+- the package should reside in `pkgs/by-name`.
+
+Further, nixpkgs-merge-bot will ensure all ofBorg checks (except the Darwin-related ones) are successfully completed before merging the pull request. Should the checks still be underway, the bot patiently waits for ofBorg to finish before attempting the merge again.
+
+For other pull requests, the *Nixpkgs committers* are people who have been given
 permission to merge.
 
 It is possible for community members that have enough knowledge and experience on a special topic to contribute by merging pull requests.
diff --git a/doc/build-helpers/testers.chapter.md b/doc/build-helpers/testers.chapter.md
index b734cbbbd4e29..80d293cf1c70c 100644
--- a/doc/build-helpers/testers.chapter.md
+++ b/doc/build-helpers/testers.chapter.md
@@ -40,6 +40,82 @@ If the `moduleNames` argument is omitted, `hasPkgConfigModules` will use `meta.p
 
 :::
 
+## `lycheeLinkCheck` {#tester-lycheeLinkCheck}
+
+Check a packaged static site's links with the [`lychee` package](https://search.nixos.org/packages?show=lychee&type=packages&query=lychee).
+
+You may use Nix to reproducibly build static websites, such as for software documentation.
+Some packages will install documentation in their `out` or `doc` outputs, or maybe you have dedicated package where you've made your static site reproducible by running a generator, such as [Hugo](https://gohugo.io/) or [mdBook](https://rust-lang.github.io/mdBook/), in a derivation.
+
+If you have a static site that can be built with Nix, you can use `lycheeLinkCheck` to check that the hyperlinks in your site are correct, and do so as part of your Nix workflow and CI.
+
+:::{.example #ex-lycheelinkcheck}
+
+# Check hyperlinks in the `nix` documentation
+
+```nix
+testers.lycheeLinkCheck {
+  site = nix.doc + "/share/doc/nix/manual";
+}
+```
+
+:::
+
+### Return value {#tester-lycheeLinkCheck-return}
+
+This tester produces a package that does not produce useful outputs, but only succeeds if the hyperlinks in your site are correct. The build log will list the broken links.
+
+It has two modes:
+
+- Build the returned derivation; its build process will check that internal hyperlinks are correct. This runs in the sandbox, so it will not check external hyperlinks, but it is quick and reliable.
+
+- Invoke the `.online` attribute with [`nix run`](https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-run) ([experimental](https://nixos.org/manual/nix/stable/contributing/experimental-features#xp-feature-nix-command)). This runs outside the sandbox, and checks that both internal and external hyperlinks are correct.
+  Example:
+
+  ```shell
+  nix run nixpkgs#lychee.tests.ok.online
+  ```
+
+### Inputs {#tester-lycheeLinkCheck-inputs}
+
+`site` (path or derivation) {#tester-lycheeLinkCheck-param-site}
+
+: The path to the files to check.
+
+`remap` (attribe set, optional) {#tester-lycheeLinkCheck-param-remap}
+
+: An attribute set where the attribute names are regular expressions.
+  The values should be strings, derivations, or path values.
+
+  In the returned check's default configuration, external URLs are only checked when you run the `.online` attribute.
+
+  By adding remappings, you can check offline that URLs to external resources are correct, by providing a stand-in from the file system.
+
+  Before checking the existence of a URL, the regular expressions are matched and replaced by their corresponding values.
+
+  Example:
+
+  ```nix
+  {
+    "https://nix\\.dev/manual/nix/[a-z0-9.-]*" = "${nix.doc}/share/doc/nix/manual";
+    "https://nixos\\.org/manual/nix/(un)?stable" = "${emptyDirectory}/placeholder-to-disallow-old-nix-docs-urls";
+  }
+  ```
+
+  Store paths in the attribute values are automatically prefixed with `file://`, because lychee requires this for paths in the file system.
+  If this is a problem, or if you need to control the order in which replacements are performed, use `extraConfig.remap` instead.
+
+`extraConfig` (attribute set) {#tester-lycheeLinkCheck-param-extraConfig}
+
+: Extra configuration to pass to `lychee` in its [configuration file](https://github.com/lycheeverse/lychee/blob/master/lychee.example.toml).
+  It is automatically [translated](https://nixos.org/manual/nixos/stable/index.html#sec-settings-nix-representable) to TOML.
+
+  Example: `{ "include_verbatim" = true; }`
+
+`lychee` (derivation, optional) {#tester-lycheeLinkCheck-param-lychee}
+
+: The `lychee` package to use.
+
 ## `testVersion` {#tester-testVersion}
 
 Checks that the output from running a command contains the specified version string in it as a whole word.
diff --git a/doc/default.nix b/doc/default.nix
index ca4091dc222cc..14c828b02a061 100644
--- a/doc/default.nix
+++ b/doc/default.nix
@@ -105,7 +105,15 @@ in pkgs.stdenv.mkDerivation {
     ln -s ${optionsDoc.optionsJSON}/share/doc/nixos/options.json ./config-options.json
   '';
 
-  buildPhase = ''
+  buildPhase = let
+    pythonInterpreterTable = pkgs.callPackage ./doc-support/python-interpreter-table.nix {};
+    pythonSection = with lib.strings; replaceStrings
+      [ "@python-interpreter-table@" ]
+      [ pythonInterpreterTable ]
+      (readFile ./languages-frameworks/python.section.md);
+  in ''
+    cp ${builtins.toFile "python.section.md" pythonSection} ./languages-frameworks/python.section.md
+
     cat \
       ./functions/library.md.in \
       ${lib-docs}/index.md \
diff --git a/doc/doc-support/python-interpreter-table.nix b/doc/doc-support/python-interpreter-table.nix
new file mode 100644
index 0000000000000..6f2b3422f6727
--- /dev/null
+++ b/doc/doc-support/python-interpreter-table.nix
@@ -0,0 +1,63 @@
+# For debugging, run in this directory:
+#     nix eval --impure --raw --expr 'import ./python-interpreter-table.nix {}'
+{ pkgs ? (import ../.. { config = { }; overlays = []; }) }:
+let
+  lib = pkgs.lib;
+  inherit (lib.attrsets) attrNames filterAttrs;
+  inherit (lib.lists) elem filter map naturalSort reverseList;
+  inherit (lib.strings) concatStringsSep;
+
+  isPythonInterpreter = name:
+    /* NB: Package names that don't follow the regular expression:
+      - `python-cosmopolitan` is not part of `pkgs.pythonInterpreters`.
+      - `_prebuilt` interpreters are used for bootstrapping internally.
+      - `python3Minimal` contains python packages, left behind conservatively.
+      - `rustpython` lacks `pythonVersion` and `implementation`.
+    */
+    (lib.strings.match "(pypy|python)([[:digit:]]*)" name) != null;
+
+  interpreterName = pname:
+    let
+      cuteName = {
+        cpython = "CPython";
+        pypy = "PyPy";
+      };
+      interpreter = pkgs.${pname};
+    in
+    "${cuteName.${interpreter.implementation}} ${interpreter.pythonVersion}";
+
+  interpreters = reverseList (naturalSort (
+    filter isPythonInterpreter (attrNames pkgs.pythonInterpreters)
+  ));
+
+  aliases = pname:
+    attrNames (
+      filterAttrs (name: value:
+        isPythonInterpreter name
+        && name != pname
+        && interpreterName name == interpreterName pname
+      ) pkgs
+    );
+
+  result = map (pname: {
+    inherit pname;
+    aliases = aliases pname;
+    interpreter = interpreterName pname;
+  }) interpreters;
+
+  toMarkdown = data:
+    let
+      line = package: ''
+        | ${package.pname} | ${join ", " package.aliases or [ ]} | ${package.interpreter} |
+      '';
+    in
+    join "" (map line data);
+
+  join = lib.strings.concatStringsSep;
+
+in
+''
+  | Package | Aliases | Interpeter |
+  |---------|---------|------------|
+  ${toMarkdown result}
+''
diff --git a/doc/hooks/waf.section.md b/doc/hooks/waf.section.md
index fa027d87a94d7..b58887b6b6471 100644
--- a/doc/hooks/waf.section.md
+++ b/doc/hooks/waf.section.md
@@ -20,10 +20,6 @@ If `wafPath` doesn't exist, then `wafHook` will copy the `waf` provided from Nix
 
 Controls the flags passed to waf tool during build and install phases. For settings specific to build or install phases, use `wafBuildFlags` or `wafInstallFlags` respectively.
 
-#### `dontAddWafCrossFlags` {#dont-add-waf-cross-flags}
-
-When set to `true`, don't add cross compilation flags during configure phase.
-
 #### `dontUseWafConfigure` {#dont-use-waf-configure}
 
 When set to true, don't use the predefined `wafConfigurePhase`.
diff --git a/doc/languages-frameworks/dotnet.section.md b/doc/languages-frameworks/dotnet.section.md
index a4e9d6cf9a6c6..36c20a9e9c507 100644
--- a/doc/languages-frameworks/dotnet.section.md
+++ b/doc/languages-frameworks/dotnet.section.md
@@ -117,7 +117,6 @@ For more detail about managing the `deps.nix` file, see [Generating and updating
 * `useDotnetFromEnv` will change the binary wrapper so that it uses the .NET from the environment. The runtime specified by `dotnet-runtime` is given as a fallback in case no .NET is installed in the user's environment. This is most useful for .NET global tools and LSP servers, which often extend the .NET CLI and their runtime should match the users' .NET runtime.
 * `dotnet-sdk` is useful in cases where you need to change what dotnet SDK is being used. You can also set this to the result of `dotnetSdkPackages.combinePackages`, if the project uses multiple SDKs to build.
 * `dotnet-runtime` is useful in cases where you need to change what dotnet runtime is being used. This can be either a regular dotnet runtime, or an aspnetcore.
-* `dotnet-test-sdk` is useful in cases where unit tests expect a different dotnet SDK. By default, this is set to the `dotnet-sdk` attribute.
 * `testProjectFile` is useful in cases where the regular project file does not contain the unit tests. It gets restored and build, but not installed. You may need to regenerate your nuget lockfile after setting this. Note that if set, only tests from this project are executed.
 * `disabledTests` is used to disable running specific unit tests. This gets passed as: `dotnet test --filter "FullyQualifiedName!={}"`, to ensure compatibility with all unit test frameworks.
 * `dotnetRestoreFlags` can be used to pass flags to `dotnet restore`.
diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md
index 6fcae4b6520d9..4c4ecf0fa278d 100644
--- a/doc/languages-frameworks/python.section.md
+++ b/doc/languages-frameworks/python.section.md
@@ -4,16 +4,7 @@
 
 ### Interpreters {#interpreters}
 
-| Package    | Aliases         | Interpreter |
-|------------|-----------------|-------------|
-| python27   | python2, python | CPython 2.7 |
-| python39   |                 | CPython 3.9 |
-| python310  |                 | CPython 3.10 |
-| python311  | python3         | CPython 3.11 |
-| python312  |                 | CPython 3.12 |
-| python313  |                 | CPython 3.13 |
-| pypy27     | pypy2, pypy     | PyPy2.7 |
-| pypy39     | pypy3           | PyPy 3.9 |
+@python-interpreter-table@
 
 The Nix expressions for the interpreters can be found in
 `pkgs/development/interpreters/python`.
diff --git a/lib/cli.nix b/lib/cli.nix
index fcffacb5ea996..311037c519a65 100644
--- a/lib/cli.nix
+++ b/lib/cli.nix
@@ -90,7 +90,16 @@ rec {
     mkOption ?
       k: v: if v == null
             then []
-            else [ (mkOptionName k) (lib.generators.mkValueStringDefault {} v) ]
+            else if optionValueSeparator == null then
+              [ (mkOptionName k) (lib.generators.mkValueStringDefault {} v) ]
+            else
+              [ "${mkOptionName k}${optionValueSeparator}${lib.generators.mkValueStringDefault {} v}" ],
+
+    # how to separate an option from its flag;
+    # by default, there is no separator, so option `-c` and value `5`
+    # would become ["-c" "5"].
+    # This is useful if the command requires equals, for example, `-c=5`.
+    optionValueSeparator ? null
     }:
     options:
       let
diff --git a/lib/fixed-points.nix b/lib/fixed-points.nix
index 3bd18fdd2a5a9..2a31b44f27c17 100644
--- a/lib/fixed-points.nix
+++ b/lib/fixed-points.nix
@@ -1,6 +1,6 @@
 { lib, ... }:
 rec {
-  /*
+  /**
     `fix f` computes the fixed point of the given function `f`. In other words, the return value is `x` in `x = f x`.
 
     `f` must be a lazy function.
@@ -63,27 +63,52 @@ rec {
     See [`extends`](#function-library-lib.fixedPoints.extends) for an example use case.
     There `self` is also often called `final`.
 
-    Type: fix :: (a -> a) -> a
 
-    Example:
-      fix (self: { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; })
-      => { bar = "bar"; foo = "foo"; foobar = "foobar"; }
+    # Inputs
 
-      fix (self: [ 1 2 (elemAt self 0 + elemAt self 1) ])
-      => [ 1 2 3 ]
+    `f`
+
+    : 1\. Function argument
+
+    # Type
+
+    ```
+    fix :: (a -> a) -> a
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.fixedPoints.fix` usage example
+
+    ```nix
+    fix (self: { foo = "foo"; bar = "bar"; foobar = self.foo + self.bar; })
+    => { bar = "bar"; foo = "foo"; foobar = "foobar"; }
+
+    fix (self: [ 1 2 (elemAt self 0 + elemAt self 1) ])
+    => [ 1 2 3 ]
+    ```
+
+    :::
   */
   fix = f: let x = f x; in x;
 
-  /*
+  /**
     A variant of `fix` that records the original recursive attribute set in the
     result, in an attribute named `__unfix__`.
 
     This is useful in combination with the `extends` function to
     implement deep overriding.
+
+
+    # Inputs
+
+    `f`
+
+    : 1\. Function argument
   */
   fix' = f: let x = f x // { __unfix__ = f; }; in x;
 
-  /*
+  /**
     Return the fixpoint that `f` converges to when called iteratively, starting
     with the input `x`.
 
@@ -92,7 +117,22 @@ rec {
     0
     ```
 
-    Type: (a -> a) -> a -> a
+
+    # Inputs
+
+    `f`
+
+    : 1\. Function argument
+
+    `x`
+
+    : 2\. Function argument
+
+    # Type
+
+    ```
+    (a -> a) -> a -> a
+    ```
   */
   converge = f: x:
     let
@@ -102,7 +142,7 @@ rec {
       then x
       else converge f x';
 
-  /*
+  /**
     Extend a function using an overlay.
 
     Overlays allow modifying and extending fixed-point functions, specifically ones returning attribute sets.
@@ -217,32 +257,50 @@ rec {
     ```
     :::
 
-    Type:
-      extends :: (Attrs -> Attrs -> Attrs) # The overlay to apply to the fixed-point function
-              -> (Attrs -> Attrs) # A fixed-point function
-              -> (Attrs -> Attrs) # The resulting fixed-point function
 
-    Example:
-      f = final: { a = 1; b = final.a + 2; }
+    # Inputs
+
+    `overlay`
 
-      fix f
-      => { a = 1; b = 3; }
+    : The overlay to apply to the fixed-point function
 
-      fix (extends (final: prev: { a = prev.a + 10; }) f)
-      => { a = 11; b = 13; }
+    `f`
 
-      fix (extends (final: prev: { b = final.a + 5; }) f)
-      => { a = 1; b = 6; }
+    : The fixed-point function
 
-      fix (extends (final: prev: { c = final.a + final.b; }) f)
-      => { a = 1; b = 3; c = 4; }
+    # Type
+
+    ```
+    extends :: (Attrs -> Attrs -> Attrs) # The overlay to apply to the fixed-point function
+            -> (Attrs -> Attrs) # A fixed-point function
+            -> (Attrs -> Attrs) # The resulting fixed-point function
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.fixedPoints.extends` usage example
+
+    ```nix
+    f = final: { a = 1; b = final.a + 2; }
+
+    fix f
+    => { a = 1; b = 3; }
+
+    fix (extends (final: prev: { a = prev.a + 10; }) f)
+    => { a = 11; b = 13; }
+
+    fix (extends (final: prev: { b = final.a + 5; }) f)
+    => { a = 1; b = 6; }
+
+    fix (extends (final: prev: { c = final.a + final.b; }) f)
+    => { a = 1; b = 3; c = 4; }
+    ```
+
+    :::
   */
   extends =
-    # The overlay to apply to the fixed-point function
     overlay:
-    # The fixed-point function
     f:
-    # Wrap with parenthesis to prevent nixdoc from rendering the `final` argument in the documentation
     # The result should be thought of as a function, the argument of that function is not an argument to `extends` itself
     (
       final:
@@ -252,10 +310,29 @@ rec {
       prev // overlay final prev
     );
 
-  /*
+  /**
     Compose two extending functions of the type expected by 'extends'
     into one where changes made in the first are available in the
     'super' of the second
+
+
+    # Inputs
+
+    `f`
+
+    : 1\. Function argument
+
+    `g`
+
+    : 2\. Function argument
+
+    `final`
+
+    : 3\. Function argument
+
+    `prev`
+
+    : 4\. Function argument
   */
   composeExtensions =
     f: g: final: prev:
@@ -263,7 +340,7 @@ rec {
           prev' = prev // fApplied;
       in fApplied // g final prev';
 
-  /*
+  /**
     Compose several extending functions of the type expected by 'extends' into
     one where changes made in preceding functions are made available to
     subsequent ones.
@@ -276,7 +353,7 @@ rec {
   composeManyExtensions =
     lib.foldr (x: y: composeExtensions x y) (final: prev: {});
 
-  /*
+  /**
     Create an overridable, recursive attribute set. For example:
 
     ```
@@ -298,9 +375,20 @@ rec {
   */
   makeExtensible = makeExtensibleWithCustomName "extend";
 
-  /*
+  /**
     Same as `makeExtensible` but the name of the extending attribute is
     customized.
+
+
+    # Inputs
+
+    `extenderName`
+
+    : 1\. Function argument
+
+    `rattrs`
+
+    : 2\. Function argument
   */
   makeExtensibleWithCustomName = extenderName: rattrs:
     fix' (self: (rattrs self) // {
diff --git a/lib/licenses.nix b/lib/licenses.nix
index 7d2a22bc25a47..8dbdf27fa845a 100644
--- a/lib/licenses.nix
+++ b/lib/licenses.nix
@@ -902,6 +902,17 @@ in mkLicense lset) ({
     free = false;
   };
 
+  ncbiPd = {
+    spdxId = "NCBI-PD";
+    fullname = "NCBI Public Domain Notice";
+    # Due to United States copyright law, anything with this "license" does not have a copyright in the
+    # jurisdiction of the United States. However, other jurisdictions may assign the United States
+    # government copyright to the work, and the license explicitly states that in such a case, no license
+    # is granted. This is nonfree and nonredistributable in most jurisdictions other than the United States.
+    free = false;
+    redistributable = false;
+  };
+
   ncsa = {
     spdxId = "NCSA";
     fullName = "University of Illinois/NCSA Open Source License";
diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix
index 6774939023d20..408ea54162938 100644
--- a/lib/tests/misc.nix
+++ b/lib/tests/misc.nix
@@ -1639,6 +1639,27 @@ runTests {
     ];
   };
 
+  testToGNUCommandLineSeparator = {
+    expr = cli.toGNUCommandLine { optionValueSeparator = "="; } {
+      data = builtins.toJSON { id = 0; };
+      X = "PUT";
+      retry = 3;
+      retry-delay = null;
+      url = [ "https://example.com/foo" "https://example.com/bar" ];
+      silent = false;
+      verbose = true;
+    };
+
+    expected = [
+      "-X=PUT"
+      "--data={\"id\":0}"
+      "--retry=3"
+      "--url=https://example.com/foo"
+      "--url=https://example.com/bar"
+      "--verbose"
+    ];
+  };
+
   testToGNUCommandLineShell = {
     expr = cli.toGNUCommandLineShell {} {
       data = builtins.toJSON { id = 0; };
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 1409fb743964c..1281af8fc69fe 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -272,6 +272,12 @@
     githubId = 381298;
     name = "9R";
   };
+  _9yokuro = {
+    email = "xzstd099@protonmail.com";
+    github = "9yokuro";
+    githubId = 119095935;
+    name = "9yokuro";
+  };
   A1ca7raz = {
     email = "aya@wtm.moe";
     github = "A1ca7raz";
@@ -1168,12 +1174,30 @@
     githubId = 858965;
     name = "Andrew Morsillo";
   };
+  amyipdev = {
+    email = "amy@amyip.net";
+    github = "amyipdev";
+    githubId = 46307646;
+    name = "Amy Parker";
+    keys = [{
+      fingerprint = "7786 034B D521 49F5 1B0A  2A14 B112 2F04 E962 DDC5";
+    }];
+  };
   amz-x = {
     email = "mail@amz-x.com";
     github = "amz-x";
     githubId = 18249234;
     name = "Christopher Crouse";
   };
+  anas = {
+    email = "anas.elgarhy.dev@gmail.com";
+    github = "0x61nas";
+    githubId = 44965145;
+    name = "Anas Elgarhy";
+    keys = [{
+      fingerprint = "E10B D192 9231 08C7 3C35 7EC3 83E0 3DC6 F383 4086";
+    }];
+  };
   AnatolyPopov = {
     email = "aipopov@live.ru";
     github = "AnatolyPopov";
@@ -1787,6 +1811,12 @@
     githubId = 816777;
     name = "Ashley Gillman";
   };
+  ashgoldofficial = {
+    email = "ashley.goldwater@gmail.com";
+    github = "ASHGOLDOFFICIAL";
+    githubId = 104313094;
+    name = "Andrey Shaat";
+  };
   ashkitten = {
     email = "ashlea@protonmail.com";
     github = "ashkitten";
@@ -1876,6 +1906,12 @@
       fingerprint = "BF47 81E1 F304 1ADF 18CE  C401 DE16 C7D1 536D A72F";
     }];
   };
+  astronaut0212 = {
+    email = "goatastronaut0212@proton.me";
+    github = "goatastronaut0212";
+    githubId = 119769817;
+    name = "goatastronaut0212";
+  };
   astsmtl = {
     email = "astsmtl@yandex.ru";
     github = "astsmtl";
@@ -2029,6 +2065,12 @@
     githubId = 1217745;
     name = "Aldwin Vlasblom";
   };
+  aveltras = {
+    email = "romain.viallard@outlook.fr";
+    github = "aveltras";
+    githubId = 790607;
+    name = "Romain Viallard";
+  };
   averagebit = {
     email = "averagebit@pm.me";
     github = "averagebit";
@@ -3717,6 +3759,15 @@
     github = "ciferkey";
     githubId = 101422;
   };
+  cig0 = {
+    name = "Martín Cigorraga";
+    email = "cig0.github@gmail.com";
+    github = "cig0";
+    githubId = 394089;
+    keys = [{
+      fingerprint = "1828 B459 DB9A 7EE2 03F4 7E6E AFBE ACC5 5D93 84A0";
+    }];
+  };
   cigrainger = {
     name = "Christopher Grainger";
     email = "chris@amplified.ai";
@@ -3762,6 +3813,12 @@
     githubId = 136485;
     name = "Chad Jablonski";
   };
+  cjshearer = {
+    email = "cjshearer@live.com";
+    github = "cjshearer";
+    githubId = 7173077;
+    name = "Cody Shearer";
+  };
   ck3d = {
     email = "ck3d@gmx.de";
     github = "ck3d";
@@ -3796,6 +3853,15 @@
     githubId = 199180;
     name = "Claes Wallin";
   };
+  clebs = {
+    email = "borja.clemente@gmail.com";
+    github = "clebs";
+    githubId = 1059661;
+    name = "Borja Clemente";
+    keys = [{
+      fingerprint = "C4E1 58BD FD33 3C77 B6C7  178E 2539 757E F64C 60DD";
+    }];
+  };
   cleeyv = {
     email = "cleeyv@riseup.net";
     github = "cleeyv";
@@ -4568,9 +4634,14 @@
     github = "DataHearth";
     githubId = 28595242;
     name = "DataHearth";
-    keys = [{
-      fingerprint = "A129 2547 0298 BFEE 7EE0  92B3 946E 2D0C 410C 7B3D";
-    }];
+    keys = [
+      {
+        fingerprint = "A129 2547 0298 BFEE 7EE0 92B3 946E 2D0C 410C 7B3D";
+      }
+      {
+        fingerprint = "FFC4 92C1 5320 B05D 0F8D 7D58 ABF6 737C 6339 6D35";
+      }
+    ];
   };
   davegallant = {
     name = "Dave Gallant";
@@ -7731,6 +7802,14 @@
       fingerprint = "7FC7 98AB 390E 1646 ED4D  8F1F 797F 6238 68CD 00C2";
     }];
   };
+  greaka = {
+    email = "git@greaka.de";
+    github = "greaka";
+    githubId = 2805834;
+    name = "Greaka";
+    keys =
+      [{ fingerprint = "6275 FB5C C9AC 9D85 FF9E  44C5 EE92 A5CD C367 118C"; }];
+  };
   greg = {
     email = "greg.hellings@gmail.com";
     github = "greg-hellings";
@@ -9351,6 +9430,12 @@
     githubId = 2377;
     name = "Jonathan del Strother";
   };
+  jdev082 = {
+    email = "jdev0894@gmail.com";
+    github = "jdev082";
+    githubId = 92550746;
+    name = "jdev082";
+  };
   jdreaver = {
     email = "johndreaver@gmail.com";
     github = "jdreaver";
@@ -9963,6 +10048,12 @@
     githubId = 8580434;
     name = "Jonny Bolton";
   };
+  jonochang = {
+    name = "Jono Chang";
+    email = "j.g.chang@gmail.com";
+    github = "jonochang";
+    githubId = 13179;
+  };
   jonringer = {
     email = "jonringer117@gmail.com";
     matrix = "@jonringer:matrix.org";
@@ -10158,7 +10249,7 @@
     githubId = 27734541;
   };
   jtbx = {
-    email = "jtbx@duck.com";
+    email = "jeremy@baxters.nz";
     name = "Jeremy Baxter";
     github = "jtbx";
     githubId = 92071952;
@@ -11920,6 +12011,14 @@
     githubId = 10626;
     name = "Andreas Wagner";
   };
+  lpostula = {
+    email = "lois@postu.la";
+    github = "loispostula";
+    githubId = 1423612;
+    name = "Loïs Postula";
+    keys =
+      [{ fingerprint = "0B4A E7C7 D3B7 53F5 3B3D  774C 3819 3C6A 09C3 9ED1"; }];
+  };
   lrewega = {
     email = "lrewega@c32.ca";
     github = "lrewega";
@@ -12415,6 +12514,11 @@
     githubId = 18661391;
     name = "Malte Janz";
   };
+  malteneuss = {
+    github = "malteneuss";
+    githubId = 5301202;
+    name = "Malte Neuss";
+  };
   malte-v = {
     email = "nixpkgs@mal.tc";
     github = "malte-v";
@@ -12845,6 +12949,12 @@
       fingerprint = "1DE4 424D BF77 1192 5DC4  CF5E 9AED 8814 81D8 444E";
     }];
   };
+  maxstrid = {
+    email = "mxwhenderson@gmail.com";
+    github = "maxstrid";
+    githubId = 115441224;
+    name = "Maxwell Henderson";
+  };
   maxux = {
     email = "root@maxux.net";
     github = "maxux";
@@ -13018,6 +13128,12 @@
     githubId = 14259816;
     name = "Abin Simon";
   };
+  me-and = {
+    name = "Adam Dinwoodie";
+    email = "nix.thunder.wayne@post.dinwoodie.org";
+    github = "me-and";
+    githubId = 1397507;
+  };
   meatcar = {
     email = "nixpkgs@denys.me";
     github = "meatcar";
@@ -15940,6 +16056,12 @@
     githubId = 43863;
     name = "Philip Taron";
   };
+  philtaken = {
+    email = "philipp.herzog@protonmail.com";
+    github = "philtaken";
+    githubId = 13309623;
+    name = "Philipp Herzog";
+  };
   phip1611 = {
     email = "phip1611@gmail.com";
     github = "phip1611";
@@ -16658,6 +16780,12 @@
     github = "PhilippWoelfel";
     githubId = 19400064;
   };
+  pyle = {
+    name = "Adam Pyle";
+    email = "adam@pyle.dev";
+    github = "pyle";
+    githubId = 7279609;
+  };
   pyrolagus = {
     email = "pyrolagus@gmail.com";
     github = "PyroLagus";
@@ -17066,6 +17194,15 @@
     githubId = 52847440;
     name = "Ryan Burns";
   };
+  rconybea = {
+    email = "n1xpkgs@hushmail.com";
+    github = "rconybea";
+    githubId = 8570969;
+    name = "Roland Conybeare";
+    keys = [{
+      fingerprint = "bw5Cr/4ul1C2UvxopphbZbFI1i5PCSnOmPID7mJ/Ogo";
+    }];
+  };
   rdnetto = {
     email = "rdnetto@gmail.com";
     github = "rdnetto";
@@ -17639,8 +17776,12 @@
   RossComputerGuy = {
     name = "Tristan Ross";
     email = "tristan.ross@midstall.com";
+    matrix = "@rosscomputerguy:matrix.org";
     github = "RossComputerGuy";
     githubId = 19699320;
+    keys = [{
+      fingerprint = "FD5D F7A8 85BB 378A 0157  5356 B09C 4220 3566 9AF8";
+    }];
   };
   rostan-t = {
     name = "Rostan Tabet";
@@ -18405,6 +18546,11 @@
     github = "sei40kr";
     githubId = 11665236;
   };
+  seineeloquenz = {
+    name = "Alexander Linder";
+    github = "SeineEloquenz";
+    githubId = 34923333;
+  };
   seirl = {
     name = "Antoine Pietri";
     email = "antoine.pietri1@gmail.com";
@@ -19707,12 +19853,6 @@
     githubId = 36031171;
     name = "Supa";
   };
-  superbo = {
-    email = "supernbo@gmail.com";
-    github = "SuperBo";
-    githubId = 2666479;
-    name = "Y Nguyen";
-  };
   superherointj = {
     email = "sergiomarcelo@yandex.com";
     github = "superherointj";
@@ -20697,6 +20837,12 @@
     githubId = 858790;
     name = "Tobias Mayer";
   };
+  tobz619 = {
+    email = "toloke@yahoo.co.uk";
+    github = "tobz619";
+    githubId = 93312805;
+    name = "Tobi Oloke";
+  };
   tochiaha = {
     email = "tochiahan@proton.me";
     github = "Tochiaha";
@@ -20748,11 +20894,14 @@
     name = "Tomkoid";
   };
   tomodachi94 = {
-    email = "tomodachi94+nixpkgs@protonmail.com";
+    email = "tomodachi94@protonmail.com";
     matrix = "@tomodachi94:matrix.org";
     github = "tomodachi94";
     githubId = 68489118;
     name = "Tomodachi94";
+    keys = [{
+      fingerprint = "B208 D6E5 B8ED F47D 5687  627B 2E27 5F21 C4D5 54A3";
+    }];
   };
   tomsiewert = {
     email = "tom@siewert.io";
@@ -22835,6 +22984,12 @@
     githubId = 3248;
     name = "zimbatm";
   };
+  zimeg = {
+    email = "zim@o526.net";
+    github = "zimeg";
+    githubId = 18134219;
+    name = "zimeg";
+  };
   Zimmi48 = {
     email = "theo.zimmermann@telecom-paris.fr";
     github = "Zimmi48";
diff --git a/maintainers/scripts/kde/collect-missing-deps.py b/maintainers/scripts/kde/collect-missing-deps.py
index 9625da71c3e51..3ec1411986c85 100755
--- a/maintainers/scripts/kde/collect-missing-deps.py
+++ b/maintainers/scripts/kde/collect-missing-deps.py
@@ -80,6 +80,11 @@ OK_MISSING_BY_PACKAGE = {
     "plasma-desktop": {
         "scim",  # upstream is dead, not packaged in Nixpkgs
     },
+    "poppler-qt6": {
+        "gobject-introspection-1.0",  # we don't actually want to build the GTK variant
+        "gdk-pixbuf-2.0",
+        "gtk+-3.0",
+    },
     "powerdevil": {
         "DDCUtil",  # cursed, intentionally disabled
     },
@@ -87,6 +92,9 @@ OK_MISSING_BY_PACKAGE = {
         "Qt6Qml",  # tests only
         "Qt6Quick",
     },
+    "skladnik": {
+        "POVRay",  # too expensive to rerender all the assets
+    },
     "syntax-highlighting": {
         "XercesC",  # only used for extra validation at build time
     }
diff --git a/maintainers/scripts/luarocks-packages.csv b/maintainers/scripts/luarocks-packages.csv
index 0091e93b7d58c..23497e6d80d7d 100644
--- a/maintainers/scripts/luarocks-packages.csv
+++ b/maintainers/scripts/luarocks-packages.csv
@@ -112,6 +112,7 @@ nvim-nio,,,,,,mrcjkb
 pathlib.nvim,,,,,,
 penlight,,,,,,alerque
 plenary.nvim,https://raw.githubusercontent.com/nvim-lua/plenary.nvim/master/plenary.nvim-scm-1.rockspec,,,,5.1,
+psl,,,,0.3,,
 rapidjson,,,,,,
 rest.nvim,,,,,5.1,teto
 rocks.nvim,,,,,,mrcjkb
diff --git a/maintainers/scripts/pluginupdate.py b/maintainers/scripts/pluginupdate.py
index 239f529f9eaa3..8ae86e2e93a49 100644
--- a/maintainers/scripts/pluginupdate.py
+++ b/maintainers/scripts/pluginupdate.py
@@ -108,7 +108,7 @@ class Repo:
 
     @property
     def name(self):
-        return self.uri.split("/")[-1]
+        return self.uri.strip("/").split("/")[-1]
 
     @property
     def branch(self):
diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix
index e0c1629a6f23a..61c3d7873411b 100644
--- a/maintainers/team-list.nix
+++ b/maintainers/team-list.nix
@@ -236,7 +236,6 @@ with lib.maintainers; {
     members = [
       cole-h
       grahamc
-      hoverbear
     ];
     scope = "Group registration for packages maintained by Determinate Systems.";
     shortName = "Determinate Systems employees";
@@ -345,6 +344,16 @@ with lib.maintainers; {
     shortName = "freedesktop.org packaging";
   };
 
+  fslabs = {
+    # Verify additions to this team with at least one already existing member of the team.
+    members = [
+      greaka
+      lpostula
+    ];
+    scope = "Group registration for packages maintained by Foresight Spatial Labs.";
+    shortName = "Foresight Spatial Labs employees";
+  };
+
   gcc = {
     members = [
       synthetica
diff --git a/nixos/doc/manual/release-notes/rl-2111.section.md b/nixos/doc/manual/release-notes/rl-2111.section.md
index 8edf4fd35e4fb..4143f440f2890 100644
--- a/nixos/doc/manual/release-notes/rl-2111.section.md
+++ b/nixos/doc/manual/release-notes/rl-2111.section.md
@@ -146,7 +146,7 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 - [touchegg](https://github.com/JoseExposito/touchegg), a multi-touch gesture recognizer. Available as [services.touchegg](#opt-services.touchegg.enable).
 
-- [pantheon-tweaks](https://github.com/pantheon-tweaks/pantheon-tweaks), an unofficial system settings panel for Pantheon. Available as [programs.pantheon-tweaks](#opt-programs.pantheon-tweaks.enable).
+- [pantheon-tweaks](https://github.com/pantheon-tweaks/pantheon-tweaks), an unofficial system settings panel for Pantheon. Available as `programs.pantheon-tweaks`.
 
 - [joycond](https://github.com/DanielOgorchock/joycond), a service that uses `hid-nintendo` to provide nintendo joycond pairing and better nintendo switch pro controller support.
 
diff --git a/nixos/doc/manual/release-notes/rl-2211.section.md b/nixos/doc/manual/release-notes/rl-2211.section.md
index 77cb6c9baadbc..4630b0987436c 100644
--- a/nixos/doc/manual/release-notes/rl-2211.section.md
+++ b/nixos/doc/manual/release-notes/rl-2211.section.md
@@ -366,7 +366,7 @@ In addition to numerous new and upgraded packages, this release includes the fol
       __Note:__ secrets from these files will be leaked into the store unless you use a
       [**file**-provider or env-var](https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#file-provider) for secrets!
 
-    - [services.grafana.provision.notifiers](#opt-services.grafana.provision.notifiers) is not affected by this change because
+    - `services.grafana.provision.notifiers` is not affected by this change because
       this feature is deprecated by Grafana and will probably be removed in Grafana 10.
       It's recommended to use `services.grafana.provision.alerting.contactPoints` instead.
 
diff --git a/nixos/doc/manual/release-notes/rl-2405.section.md b/nixos/doc/manual/release-notes/rl-2405.section.md
index 484cc4a3b6725..caf8a4f261120 100644
--- a/nixos/doc/manual/release-notes/rl-2405.section.md
+++ b/nixos/doc/manual/release-notes/rl-2405.section.md
@@ -22,13 +22,13 @@ In addition to numerous new and upgraded packages, this release has the followin
 
   This makes `nix run nixpkgs#hello` and `nix-build '<nixpkgs>' -A hello` work out of the box with no added configuration, reusing dependencies already on the system.
 
-  This may be undesirable if nix commands are not going to be run on the built system since it adds nixpkgs to the system closure. For such closure-size-constrained non-interactive systems, this setting should be disabled.
+  This may be undesirable if Nix commands are not going to be run on the built system since it adds nixpkgs to the system closure. For such closure-size-constrained non-interactive systems, this setting should be disabled.
 
-  To disable this, set [nixpkgs.flake.setNixPath](#opt-nixpkgs.flake.setNixPath) and [nixpkgs.flake.setFlakeRegistry](#opt-nixpkgs.flake.setFlakeRegistry) to false.
+  To disable it, set [nixpkgs.flake.setNixPath](#opt-nixpkgs.flake.setNixPath) and [nixpkgs.flake.setFlakeRegistry](#opt-nixpkgs.flake.setFlakeRegistry) to false.
 
 - NixOS AMIs are now uploaded regularly to a new AWS Account.
   Instructions on how to use them can be found on <https://nixos.github.io/amis>.
-  We are working on integration the data into the NixOS homepage.
+  We are working on integrating the data into the NixOS homepage.
   The list in `nixos/modules/virtualisation/amazon-ec2-amis.nix` will stop
   being updated and will be removed in the future.
 
@@ -45,9 +45,9 @@ In addition to numerous new and upgraded packages, this release has the followin
 - Lomiri (formerly known as Unity8) desktop mode, using Mir 2.x to function as a Wayland compositor, is now available and can be installed with `services.desktopManager.lomiri.enable = true`. Note that some core applications, services and indicators have yet to be packaged, and some functions may remain incomplete, but the base experience should be there.
 
 - MATE has been updated to 1.28.
-  - To properly support panel plugins built with Wayland (in-process) support, we are introducing `services.xserver.desktopManager.mate.extraPanelApplets` option, please use that for installing panel applets.
-  - Similarly, please use `services.xserver.desktopManager.mate.extraCajaExtensions` option for installing Caja extensions.
-  - To use the Wayland session, enable `services.xserver.desktopManager.mate.enableWaylandSession`. This is opt-in for now as it is in early stage and introduces a new set of Wayfire closure. Due to [known issues with LightDM](https://github.com/canonical/lightdm/issues/63), we suggest using SDDM for display manager.
+  - To properly support panel plugins built with Wayland (in-process) support, we are introducing the `services.xserver.desktopManager.mate.extraPanelApplets` option, please use that for installing panel applets.
+  - Similarly, please use the `services.xserver.desktopManager.mate.extraCajaExtensions` option for installing Caja extensions.
+  - To use the Wayland session, enable `services.xserver.desktopManager.mate.enableWaylandSession`. This is opt-in for now as it is in early an stage and introduces a new set of Wayfire closures. Due to [known issues with LightDM](https://github.com/canonical/lightdm/issues/63), we suggest using SDDM as the display manager.
 
 - Plasma 6 is now available and can be installed with `services.xserver.desktopManager.plasma6.enable = true;`. Plasma 5 will likely be deprecated in the next release (24.11). Note that Plasma 6 runs as Wayland by default, and the X11 session needs to be explicitly selected if necessary.
 
@@ -65,7 +65,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 - [armagetronad](https://wiki.armagetronad.org), a mid-2000s 3D lightcycle game widely played at iD Tech Camps. You can define multiple servers using `services.armagetronad.<server>.enable`.
 
 - [BenchExec](https://github.com/sosy-lab/benchexec), a framework for reliable benchmarking and resource measurement, available as [programs.benchexec](#opt-programs.benchexec.enable),
-  As well as related programs
+  as well as related programs
   [CPU Energy Meter](https://github.com/sosy-lab/cpu-energy-meter), available as [programs.cpu-energy-meter](#opt-programs.cpu-energy-meter.enable), and
   [PQoS Wrapper](https://gitlab.com/sosy-lab/software/pqos-wrapper), available as [programs.pqos-wrapper](#opt-programs.pqos-wrapper.enable).
 
@@ -111,7 +111,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - [Jottacloud Command-line Tool](https://docs.jottacloud.com/en/articles/1436834-jottacloud-command-line-tool), a CLI for the [Jottacloud](https://jottacloud.com/) cloud storage provider. Available as [services.jotta-cli](#opt-services.jotta-cli.enable).
 
-- [keto](https://www.ory.sh/keto/), a permission & access control server, the first open source implementation of ["Zanzibar: Google's Consistent, Global Authorization System"](https://research.google/pubs/zanzibar-googles-consistent-global-authorization-system/).
+- [keto](https://www.ory.sh/keto/), a permission & access control server, the first open source implementation of [*Zanzibar: Google's Consistent, Global Authorization System*](https://research.google/pubs/zanzibar-googles-consistent-global-authorization-system/).
 
 - [manticoresearch](https://manticoresearch.com), easy to use open source fast database for search. Available as [services.manticore](#opt-services.manticore.enable).
 
@@ -135,8 +135,12 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - [nh](https://github.com/viperML/nh), yet another Nix CLI helper. Available as [programs.nh](#opt-programs.nh.enable).
 
+- [oink](https://github.com/rlado/oink), a dynamic DNS client for Porkbun. Available as [services.oink](#opt-services.oink.enable).
+
 - [ollama](https://ollama.ai), server for running large language models locally.
 
+- [nextjs-ollama-llm-ui](https://github.com/jakobhoeg/nextjs-ollama-llm-ui), light-weight frontend server to chat with Ollama models through a web app.
+
 - [ownCloud Infinite Scale Stack](https://owncloud.com/infinite-scale-4-0/), a modern and scalable rewrite of ownCloud.
 
 - [PhotonVision](https://photonvision.org/), a free, fast, and easy-to-use computer vision solution for the FIRST® Robotics Competition.
@@ -149,7 +153,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - [private-gpt](https://github.com/zylon-ai/private-gpt), a service to interact with your documents using the power of LLMs, 100% privately, no data leaks. Available as [services.private-gpt](#opt-services.private-gpt.enable).
 
-- [Prometheus DNSSEC Exporter](https://github.com/chrj/prometheus-dnssec-exporter), check for validity and expiration in DNSSEC signatures and expose metrics for Prometheus. Available as [services.prometheus.exporters.dnssec](#opt-services.prometheus.exporters.dnssec.enable).
+- [Prometheus DNSSEC Exporter](https://github.com/chrj/prometheus-dnssec-exporter): check for validity and expiration in DNSSEC signatures and expose metrics for Prometheus. Available as [services.prometheus.exporters.dnssec](#opt-services.prometheus.exporters.dnssec.enable).
 
 - [prometheus-nats-exporter](https://github.com/nats-io/prometheus-nats-exporter), a Prometheus exporter for NATS. Available as [services.prometheus.exporters.nats](#opt-services.prometheus.exporters.nats.enable).
 
@@ -201,6 +205,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - [your_spotify](https://github.com/Yooooomi/your_spotify), a self hosted Spotify tracking dashboard. Available as [services.your_spotify](#opt-services.your_spotify.enable)
 
+- [RKE2](https://github.com/rancher/rke2), also known as RKE Government, is Rancher's next-generation Kubernetes distribution. Available as [services.rke2](#opt-services.rke2.enable).
+
 ## Backward Incompatibilities {#sec-release-24.05-incompatibilities}
 
 <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
@@ -227,7 +233,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - `chromium` and `ungoogled-chromium` had a long-standing issue regarding Widevine DRM handling in nixpkgs fixed.
   `chromium` now no longer automatically downloads Widevine when encountering DRM protected content.
-  To be able to play DRM protected content in `chromium` now, you have to explicitly opt-in as originally intended using `chromium.override { enableWideVine = true; }`.
+  To be able to play DRM protected content in `chromium`, you now have to explicitly opt-in as originally intended using `chromium.override { enableWideVine = true; }`.
   This override was added almost 10 years ago.
 
 - `craftos-pc` package has been updated to v2.8, which includes [breaking changes](https://github.com/MCJack123/craftos2/releases/tag/v2.8).
@@ -253,13 +259,13 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
   such as tensorflow. The original runfile-based `cudatoolkit` is still
   available as `cudatoolkit-legacy-runfile`.
 
-- `cudaPackages.nsight_systems` now has most vendored third party-libraries removed, though we now only ship it for `cudaPackages_11_8` and later, due to outdated dependencies. Users comfortable with the vendored dependencies may use `overrideAttrs` to amend the `postPatch` phase and the `meta.broken` correspondingly. Alternatively, one could package the deprecated `boost170` locally, as required for `cudaPackages_11_4.nsight_systems`.
+- `cudaPackages.nsight_systems` now has most vendored third-party libraries removed, though we now only ship it for `cudaPackages_11_8` and later, due to outdated dependencies. Users comfortable with the vendored dependencies may use `overrideAttrs` to amend the `postPatch` phase and the `meta.broken` correspondingly. Alternatively, one could package the deprecated `boost170` locally, as required for `cudaPackages_11_4.nsight_systems`.
 
 - `cudaPackages.autoFixElfFiles` has been deprecated for `pkgs.autoFixElfFiles`. Functionality has not changed, but the setuphook has been renamed and moved to the top-level package scope.
 
 - `davfs2`'s `services.davfs2.extraConfig` setting has been deprecated and converted to the free-form type option named `services.davfs2.settings` according to RFC42.
 
-- `dwarf-fortress` has been updated to version 50, and its derivations continue to menace with spikes of Nix and bash [TODO what does this mean?]. Version 50 is identical to the version on Steam, but without the paid elements like tilepacks.
+- `dwarf-fortress` has been updated to version 50, which is identical to the version on Steam, but without the paid elements like tilepacks.
   dfhack and Dwarf Therapist still work, and older versions are still packaged in case you'd like to roll back. Note that DF 50 saves will not be compatible with DF 0.47 and earlier.
   See [Bay 12 Games](http://www.bay12games.com/dwarves/) for more details on what's new in Dwarf Fortress.
 
@@ -269,14 +275,14 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - `erlang-ls` package no longer ships the `els_dap` binary as of v0.51.0.
 
-- `erlang_node_short_name`, `erlang_node_name`, `port` and `options` configuration parameters are gone, and have been replaced with an `environment` parameter.
+- `erlang_node_short_name`, `erlang_node_name`: `port` and `options` configuration parameters are gone, and have been replaced with an `environment` parameter.
     Use the appropriate [environment variables](https://hexdocs.pm/livebook/readme.html#environment-variables) inside `environment` to configure the service instead.
 
 - `firefox-devedition`, `firefox-beta`, `firefox-esr` executable file names for now match their package names, which is consistent with the `firefox-*-bin` packages. The desktop entries are also updated so that you can have multiple editions of firefox in your app launcher.
 
-- `gauge` now supports installing plugins using nix. For the old imperative approach, switch to `gauge-unwrapped`.
+- `gauge` now supports installing plugins using Nix. For the old imperative approach, switch to `gauge-unwrapped`.
   You can load plugins from an existing gauge manifest file using `gauge.fromManifest ./path/to/manifest.json` or
-  specify plugins in nix using `gauge.withPlugins (p: with p; [ js html-report xml-report ])`.
+  specify plugins in Nix using `gauge.withPlugins (p: with p; [ js html-report xml-report ])`.
 
 - `gitea` has been updated to 1.21, which introduces several breaking changes, including:
   - Custom themes and other assets that were previously stored in `custom/public/*` now belong in `custom/public/assets/*`
@@ -302,7 +308,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - `himalaya` has been updated to v1.0.0-beta.4, which introduces breaking changes. Check out the [release note](https://github.com/soywod/himalaya/releases/tag/v1.0.0-beta.4) for details.
 
-- `halloy` has been updated to 2024.5, which introduced a breaking change by switching the config format from YAML to TOML. See https://github.com/squidowl/halloy/releases/tag/2024.5 for details.
+- `halloy` has been updated to 2024.5, which introduced a breaking change by switching the config format from YAML to TOML. See <https://github.com/squidowl/halloy/releases/tag/2024.5> for details.
 
 - `hvm` was updated to version 2.
 
@@ -310,7 +316,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - `idris2` was updated to v0.7.0. This version introduces breaking changes. Check out the [changelog](https://github.com/idris-lang/Idris2/blob/v0.7.0/CHANGELOG.md#v070) for details.
 
-- `inetutils` now has a lower priority to avoid shadowing the commonly used `util-linux`. If one wishes to restore the default priority, simply use `lib.setPrio 5 inetutils` or override with `meta.priority = 5`.
+- `inetutils` now has a lower priority to avoid shadowing the commonly-used `util-linux`. If one wishes to restore the default priority, simply use `lib.setPrio 5 inetutils` or override with `meta.priority = 5`.
 
 - `jdt-language-server` package now uses upstream's provided python wrapper instead of our own custom wrapper. This results in the following breaking and notable changes:
 
@@ -322,7 +328,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - `julia` environments can now be built with arbitrary packages from the ecosystem using the `.withPackages` function. For example: `julia.withPackages ["Plots"]`.
 
-- `k3s` has been updated to version [v1.30](https://github.com/k3s-io/k3s/releases/tag/v1.30.0%2Bk3s1), previous supported versions are available under release specific names (e.g. k3s_1_27, k3s_1_28, and k3s_1_29) and present to help you migrate to the latest supported version. See [changelog and upgrade notes](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.30.md#changelog-since-v1290) for more information.
+- `k3s` has been updated to version [v1.30](https://github.com/k3s-io/k3s/releases/tag/v1.30.0%2Bk3s1), previous supported versions are available under release-specific names (e.g. k3s_1_27, k3s_1_28, and k3s_1_29) in order to help you migrate to the latest supported version. See [changelog and upgrade notes](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.30.md#changelog-since-v1290) for more information.
 
 - `k9s` was updated to v0.31. There have been various breaking changes in the config file format,
   check out the changelog of [v0.29](https://github.com/derailed/k9s/releases/tag/v0.29.0),
@@ -336,12 +342,12 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - `livebook` package is now built as a `mix release` instead of an `escript`.
   This means that configuration now has to be done using [environment variables](https://hexdocs.pm/livebook/readme.html#environment-variables) instead of command line arguments.
-  This has the further implication that the `livebook` service configuration has changed.
+  This has the further consequence that the `livebook` service configuration has changed.
 
 - `lua` interpreters default LUA_PATH and LUA_CPATH are not overriden by nixpkgs
   anymore, we patch LUA_ROOT instead which is more respectful to upstream.
 
-- `luarocks-packages-updater`'s .csv format used to define lua packages to be updated, has changed: `src` (URL of a git repository) has now become `rockspec` (URL of a rockspec) to remove ambiguity regarding which rockspec to use and simplify implementation.
+- `luarocks-packages-updater`'s .csv format, used to define lua packages to be updated, has changed: `src` (URL of a git repository) has now become `rockspec` (URL of a rockspec) to remove ambiguity regarding which rockspec to use and simplify implementation.
 
 - `mkosi` was updated to v22. Parts of the user interface have changed. Consult the
   release notes of [v19](https://github.com/systemd/mkosi/releases/tag/v19),
@@ -351,7 +357,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - `mongodb-4_4` has been removed as it has reached end of life. Consequently, `unifi7` and `unifi8` now use MongoDB 5.0 by default.
 
-- `mongodb-5_0` and newer requires a cpu with the avx instruction set to run.
+- `mongodb-5_0` and newer requires a cpu with the AVX instruction set to run.
 
 - `neo4j` has been updated to version 5. You may want to read the [release notes for Neo4j 5](https://neo4j.com/release-notes/database/neo4j-5/).
 
@@ -371,7 +377,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
   `CONFIG_FILE_NAME` includes `bpf_pinning`, `ematch_map`, `group`, `nl_protos`, `rt_dsfield`, `rt_protos`, `rt_realms`, `rt_scopes`, and `rt_tables`.
 
 - `nextcloud26` has been removed since it's not maintained anymore by upstream. The latest available version of Nextcloud is now v29 (available as `pkgs.nextcloud29`). The installation logic is as follows:
-  - If [`services.nextcloud.package`](#opt-services.nextcloud.package) is specified explicitly, this package will be installed (**recommended**)
+  - If [`services.nextcloud.package`](#opt-services.nextcloud.package) is specified explicitly, this package will be installed (**recommended**).
   - If [`system.stateVersion`](#opt-system.stateVersion) is >=24.05, `pkgs.nextcloud29` will be installed by default.
   - If [`system.stateVersion`](#opt-system.stateVersion) is >=23.11, `pkgs.nextcloud27` will be installed by default.
   - Please note that an upgrade from v27 (or older) to v29 directly is not possible. Please upgrade to `nextcloud28` (or earlier) first. Nextcloud prohibits skipping major versions while upgrading. You can upgrade by declaring [`services.nextcloud.package = pkgs.nextcloud28;`](options.html#opt-services.nextcloud.package).
@@ -408,7 +414,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 - `pipewire` and `wireplumber` modules have removed support for using
 `environment.etc."pipewire/..."` and `environment.etc."wireplumber/..."`.
 Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for PipeWire and
-`services.pipewire.wireplumber.configPackages` for WirePlumber instead."
+`services.pipewire.wireplumber.configPackages` for WirePlumber instead.
 
 - `power.ups` now generates `upsd.conf`, `upsd.users` and `upsmon.conf` automatically from a set of new configuration options. This breaks compatibility with existing `power.ups` setups where these files were created manually. Back up these files before upgrading NixOS.
 
@@ -440,7 +446,7 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
 - `frr` was updated to 10.0, which introduces the default of `enforce-first-as` for BGP. Please disable again if needed.
 
 - `services.aria2.rpcSecret` has been replaced with `services.aria2.rpcSecretFile`.
-  This was done so that secrets aren't stored in the world-readable nix store.
+  This was done so that secrets aren't stored in the world-readable Nix store.
   To migrate, you will have to create a file with the same exact string, and change
   your module options to point to that file. For example, `services.aria2.rpcSecret =
   "mysecret"` becomes `services.aria2.rpcSecretFile = "/path/to/secret_file"`
@@ -452,7 +458,7 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
 - `services.frp.settings` now generates the frp configuration file in TOML format as [recommended by upstream](https://github.com/fatedier/frp#configuration-files), instead of the legacy INI format. This has also introduced other changes in the configuration file structure and options:
   - The `settings.common` section in the configuration is no longer valid and all the options form inside it now go directly under `settings`.
   - Configuration option names have been changed from snake_case to camelCase. For example: `server_addr` becomes `serverAddr`, `server_port` becomes `serverPort` etc.
-  - Proxies are now defined with a new option `settings.proxies` which takes a list of proxies.
+  - Proxies are now defined with a new option, `settings.proxies`, which takes a list of proxies.
   - Consult the [upstream documentation](https://github.com/fatedier/frp#example-usage) for more details on the changes.
 
 - `services.hledger-web.capabilities` options has been replaced by a new option `services.hledger-web.allow`.
@@ -512,13 +518,11 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
   - to get previous behaviour of upstream defaults, set it to `null`
   - default value has changed from `[]` to `null`, in order to preserve default behaviour
 
-can now be used to disable the upstream fallback servers entirely by setting it to an empty list. To get the previous behaviour of the upstream defaults set it to null, the new default, instead.
-
 - `services.vikunja` systemd service now uses `vikunja` as dynamic user instead of `vikunja-api`. Database users might need to be changed.
 
 - `services.vikunja.setupNginx` setting has been removed. Users now need to set up the webserver configuration on their own with a proxy pass to the vikunja service.
 
-- `services.vmagent` module deprecates `dataDir`, `group` and `user` setting in favor of systemd provided CacheDirectory and DynamicUser.
+- `services.vmagent` module deprecates `dataDir`, `group` and `user` settings in favor of the systemd-provided CacheDirectory and DynamicUser.
 
 - `services.vmagent.remoteWriteUrl` setting has been renamed to `services.vmagent.remoteWrite.url` and now defaults to `null`.
 
@@ -540,9 +544,9 @@ can now be used to disable the upstream fallback servers entirely by setting it
 
   - Remove swap policy. This helps prevent killing processes when user's swap is small.
 
-  - Expand the memory pressure policy to `system.slice`, `user-.slice`, and all user owned slices. Reference: [commit](https://src.fedoraproject.org/rpms/systemd/c/7665e1796f915dedbf8e014f0a78f4f576d609bb).
+  - Expand the memory pressure policy to `system.slice`, `user-.slice`, and all user-owned slices. Reference: [commit](https://src.fedoraproject.org/rpms/systemd/c/7665e1796f915dedbf8e014f0a78f4f576d609bb).
 
-  - `systemd.oomd.enableUserServices` is renamed to `systemd.oomd.enableUserSlices`.
+  - Rename `systemd.oomd.enableUserServices` to `systemd.oomd.enableUserSlices`.
 
 - `systemd.sysusers.enable` option was added. If enabled, users and
   groups are created with systemd-sysusers instead of with a custom perl script.
@@ -571,11 +575,11 @@ can now be used to disable the upstream fallback servers entirely by setting it
 
 - `xxd` has been moved from `vim` default output to its own output to reduce closure size. The canonical way to reference it across all platforms is `unixtools.xxd`.
 
-- `youtrack` is bumped to 2023.3. The update is not performed automatically, it requires manual interaction. See the YouTrack section in the manual for details.
+- `youtrack` was bumped to 2023.3. The update is not performed automatically, it requires manual interaction. See the YouTrack section in the manual for details.
 
 - Ada packages (libraries and tools) have been moved into the `gnatPackages` scope. `gnatPackages` uses the default GNAT compiler, `gnat12Packages` and `gnat13Packages` use the respective matching compiler version.
 
-- Paths provided as `restartTriggers` and `reloadTriggers` for systemd units will now be copied into the nix store to make the behavior consistent.
+- Paths provided as `restartTriggers` and `reloadTriggers` for systemd units will now be copied into the Nix store to make the behavior consistent.
   Previously, `restartTriggers = [ ./config.txt ]`, if defined in a flake, would trigger a restart when any part of the flake changed; and if not defined in a flake, would never trigger a restart even if the contents of `config.txt` changed.
 
 - A warning has been added for services that are
@@ -615,16 +619,16 @@ can now be used to disable the upstream fallback servers entirely by setting it
 
 - `castopod` has some migration actions to be taken in case of a S3 setup. Some new features may also need some manual migration actions. See [https://code.castopod.org/adaures/castopod/-/releases](https://code.castopod.org/adaures/castopod/-/releases) for more information.
 
-- `cinnamon` has been updated to 6.0. Please beware that the [Wayland session](https://blog.linuxmint.com/?p=4591) is still experimental in this release and could potentially [affect Xorg sessions](https://blog.linuxmint.com/?p=4639). We suggest a reboot when switching between sessions.
+- `cinnamon` has been updated to 6.0. Please be aware that the [Wayland session](https://blog.linuxmint.com/?p=4591) is still experimental in this release and could potentially [affect Xorg sessions](https://blog.linuxmint.com/?p=4639). We suggest a reboot when switching between sessions.
 
-- `documentation.man.mandoc` now uses `MANPATH` by defaultwas to set the directories where mandoc will search for manual pages.
+- `documentation.man.mandoc` now, by default, uses `MANPATH` to set the directories where mandoc will search for manual pages.
   This enables mandoc to find manual pages in Nix profiles. To set the manual search paths via the `mandoc.conf` configuration file like before, use `documentation.man.mandoc.settings.manpath` instead.
 
 - `drbd` out-of-tree Linux kernel driver has been added in version 9.2.7. With it the DRBD 9.x features can be used instead of the 8.x features provided by the 8.4.11 in-tree driver.
 
 - `garage` has been updated to v1.x.x. Users should read the [upstream release notes](https://git.deuxfleurs.fr/Deuxfleurs/garage/releases/tag/v1.0.0) and follow the documentation when changing over their `services.garage.package` and performing this manual upgrade.
 
-- `hardware.pulseaudio` module now sets permission of pulse user home directory to 755 when running in "systemWide" mode. It fixes [issue 114399](https://github.com/NixOS/nixpkgs/issues/114399).
+- `hardware.pulseaudio` module now sets permissions of pulse user home directory to 755 when running in systemWide mode. It fixes [issue 114399](https://github.com/NixOS/nixpkgs/issues/114399).
 
 - `kavita` has been updated to 0.8.0, requiring a manual forced library scan on all libraries for migration. Refer to upstream's [release notes](https://github.com/Kareadita/Kavita/releases/tag/v0.8.0) for details.
 
@@ -632,7 +636,7 @@ can now be used to disable the upstream fallback servers entirely by setting it
 
 - `libass` now uses the native CoreText backend on Darwin, which may fix subtitle rendering issues with `mpv`, `ffmpeg`, etc.
 
-- `libjxl` version bumped from 0.8.2 to 0.9.1 [dropped support for the butteraugli API](https://github.com/libjxl/libjxl/pull/2576). You will no longer be able to set `enableButteraugli` on `libaom`.
+- `libjxl` version was bumped from 0.8.2 to 0.9.1 [dropped support for the butteraugli API](https://github.com/libjxl/libjxl/pull/2576). You will no longer be able to set `enableButteraugli` on `libaom`.
 
 - [`lilypond`](https://lilypond.org/index.html) and [`denemo`](https://www.denemo.org) are now compiled with Guile 3.0.
 
@@ -645,9 +649,9 @@ can now be used to disable the upstream fallback servers entirely by setting it
 
 - `mpich` now requires `withPm` to be a list, e.g. `"hydra:gforker"` becomes `[ "hydra" "gforker" ]`.
 
-- `nextcloud-setup.service` no longer changes the group of each file & directory inside `/var/lib/nextcloud/{config,data,store-apps}` if one of these directories has the wrong owner group. This was part of transitioning the group used for `/var/lib/nextcloud`, but isn't necessary anymore.
+- `nextcloud-setup.service` no longer changes the group of each file and directory inside `/var/lib/nextcloud/{config,data,store-apps}` if one of these directories has the wrong owner group. This was part of transitioning the group used for `/var/lib/nextcloud`, but isn't necessary anymore.
 
-- `oils-for-unix`, the oil shell's c++ version is now available. The python version is still available as `oil`.
+- `oils-for-unix`, the oil shell's C++ version is now available. The Python version is still available as `oil`.
 
 - `pkgsExtraHardening`, a new top-level package set, was added. This is a set of packages built with stricter hardening flags - those that have not yet received enough testing to be applied universally, those that are more likely to cause build failures or those that have drawbacks to their use (e.g. performance or required hardware features).
 
@@ -716,7 +720,7 @@ can now be used to disable the upstream fallback servers entirely by setting it
 - `services.zfs.zed.enableMail` now uses the global `sendmail` wrapper defined by an email module
   (such as msmtp or Postfix). It no longer requires using a special ZFS build with email support.
 
-- `sonarr` version bumped to from 3.0.10 to 4.0.3. Consequently existing config database files will be upgraded automatically, but note that some old apparently-working configs [might actually be corrupt and fail to upgrade cleanly](https://forums.sonarr.tv/t/sonarr-v4-released/33089).
+- `sonarr` version was bumped to from 3.0.10 to 4.0.3. Consequently existing config database files will be upgraded automatically, but note that some old apparently-working configs [might actually be corrupt and fail to upgrade cleanly](https://forums.sonarr.tv/t/sonarr-v4-released/33089).
 
 - `stdenv`: The `--replace` flag in `substitute`, `substituteInPlace`, `substituteAll`, `substituteAllStream`, and `substituteStream` is now deprecated if favor of the new `--replace-fail`, `--replace-warn` and `--replace-quiet`. The deprecated `--replace` equates to `--replace-warn`.
 
diff --git a/nixos/doc/manual/release-notes/rl-2411.section.md b/nixos/doc/manual/release-notes/rl-2411.section.md
index 530ca68e0c77c..2338cf6e6fee9 100644
--- a/nixos/doc/manual/release-notes/rl-2411.section.md
+++ b/nixos/doc/manual/release-notes/rl-2411.section.md
@@ -12,7 +12,16 @@
 
 ## Backward Incompatibilities {#sec-release-24.11-incompatibilities}
 
-- Create the first release note entry in this section!
+- `nginx` package no longer includes `gd` and `geoip` dependencies. For enabling it, override `nginx` package with the optionals `withImageFilter` and `withGeoIP`.
+
+- `nvimpager` was updated to version 0.13.0, which changes the order of user and
+  nvimpager settings: user commands in `-c` and `--cmd` now override the
+  respective default settings because they are executed later.
+
+- Legacy package `stalwart-mail_0_6` was dropped, please note the
+  [manual upgrade process](https://github.com/stalwartlabs/mail-server/blob/main/UPGRADING.md)
+  before changing the package to `pkgs.stalwart-mail` in
+  [`services.stalwart-mail.package`](#opt-services.stalwart-mail.package).
 
 ## Other Notable Changes {#sec-release-24.11-notable-changes}
 
diff --git a/nixos/lib/test-driver/test_driver/logger.py b/nixos/lib/test-driver/test_driver/logger.py
index 6fb8a3cf4e5de..484829254b812 100644
--- a/nixos/lib/test-driver/test_driver/logger.py
+++ b/nixos/lib/test-driver/test_driver/logger.py
@@ -53,7 +53,6 @@ class AbstractLogger(ABC):
 
 
 class JunitXMLLogger(AbstractLogger):
-
     class TestCaseState:
         def __init__(self) -> None:
             self.stdout = ""
@@ -227,7 +226,7 @@ class XMLLogger(AbstractLogger):
     def __init__(self, outfile: str) -> None:
         self.logfile_handle = codecs.open(outfile, "wb")
         self.xml = XMLGenerator(self.logfile_handle, encoding="utf-8")
-        self.queue: "Queue[Dict[str, str]]" = Queue()
+        self.queue: Queue[dict[str, str]] = Queue()
 
         self._print_serial_logs = True
 
diff --git a/nixos/maintainers/scripts/ec2/README.md b/nixos/maintainers/scripts/ec2/README.md
index 1328109d464a3..eb2c9088d5a2c 100644
--- a/nixos/maintainers/scripts/ec2/README.md
+++ b/nixos/maintainers/scripts/ec2/README.md
@@ -1,7 +1,36 @@
 # Amazon images
 
-* The `create-amis.sh` script will be replaced by https://github.com/NixOS/amis which will regularly upload AMIs per NixOS channel bump.
+AMIs are regularly uploaded from Hydra. This automation lives in
+https://github.com/NixOS/amis
 
-* @arianvp is planning to drop zfs support
-* @arianvp is planning to rewrite the image builder to use the repart-based image builder.
 
+## How to upload an AMI for testing
+
+If you want to upload an AMI from changes in a local nixpkgs checkout.
+
+```bash
+nix-build nixos/release.nix -A amazonImage
+
+export AWS_REGION=us-west-2
+export AWS_PROFILE=my-profile
+nix run nixpkgs#upload-ami -- --image-info ./result/nix-support/image-info.json
+```
+
+## How to build your own NixOS config into an AMI
+
+I suggest looking at https://github.com/nix-community/nixos-generators for a user-friendly interface.
+
+```bash
+nixos-generate -c ./my-config.nix -f amazon
+
+export AWS_REGION=us-west-2
+export AWS_PROFILE=my-profile
+nix run github:NixOS/amis#upload-ami -- --image-info ./result/nix-support/image-info.json
+```
+
+## Roadmap
+
+* @arianvp is planning to drop zfs support unless someone else picks it up
+* @arianvp is planning to rewrite the image builder to use the repart-based image builder.
+* @arianvp is planning to perhaps rewrite `upload-ami` to use coldnsap
+* @arianvp is planning to move `upload-ami` tooling into nixpkgs once it has stabilized. And only keep the Github Action in separate repo
diff --git a/nixos/maintainers/scripts/ec2/create-amis.sh b/nixos/maintainers/scripts/ec2/create-amis.sh
deleted file mode 100755
index d182c5c2a4794..0000000000000
--- a/nixos/maintainers/scripts/ec2/create-amis.sh
+++ /dev/null
@@ -1,368 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -p awscli -p jq -p qemu -i bash
-# shellcheck shell=bash
-#
-# Future Deprecation?
-# This entire thing should probably be replaced with a generic terraform config
-
-# Uploads and registers NixOS images built from the
-# <nixos/release.nix> amazonImage attribute. Images are uploaded and
-# registered via a home region, and then copied to other regions.
-
-# The home region requires an s3 bucket, and an IAM role named "vmimport"
-# (by default) with access to the S3 bucket. The name can be
-# configured with the "service_role_name" variable. Configuration of the
-# vmimport role is documented in
-# https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html
-
-# set -x
-set -euo pipefail
-
-var () { true; }
-
-# configuration
-var ${state_dir:=$HOME/amis/ec2-images}
-var ${home_region:=eu-west-1}
-var ${bucket:=nixos-amis}
-var ${service_role_name:=vmimport}
-
-# Output of the command:
-# $ nix-shell -I nixpkgs=. -p awscli --run 'aws ec2 describe-regions --region us-east-1 --all-regions --query "Regions[].{Name:RegionName}" --output text | sort | sed -e s/^/\ \ /'
-var ${regions:=
-  af-south-1
-  ap-east-1
-  ap-northeast-1
-  ap-northeast-2
-  ap-northeast-3
-  ap-south-1
-  ap-south-2
-  ap-southeast-1
-  ap-southeast-2
-  ap-southeast-3
-  ap-southeast-4
-  ca-central-1
-  eu-central-1
-  eu-central-2
-  eu-north-1
-  eu-south-1
-  eu-south-2
-  eu-west-1
-  eu-west-2
-  eu-west-3
-  il-central-1
-  me-central-1
-  me-south-1
-  sa-east-1
-  us-east-1
-  us-east-2
-  us-west-1
-  us-west-2
-}
-
-regions=($regions)
-
-log() {
-    echo "$@" >&2
-}
-
-if [ "$#" -ne 1 ]; then
-    log "Usage: ./upload-amazon-image.sh IMAGE_OUTPUT"
-    exit 1
-fi
-
-# result of the amazon-image from nixos/release.nix
-store_path=$1
-
-if [ ! -e "$store_path" ]; then
-    log "Store path: $store_path does not exist, fetching..."
-    nix-store --realise "$store_path"
-fi
-
-if [ ! -d "$store_path" ]; then
-    log "store_path: $store_path is not a directory. aborting"
-    exit 1
-fi
-
-read_image_info() {
-    if [ ! -e "$store_path/nix-support/image-info.json" ]; then
-        log "Image missing metadata"
-        exit 1
-    fi
-    jq -r "$1" "$store_path/nix-support/image-info.json"
-}
-
-# We handle a single image per invocation, store all attributes in
-# globals for convenience.
-zfs_disks=$(read_image_info .disks)
-is_zfs_image=
-if jq -e .boot <<< "$zfs_disks"; then
-  is_zfs_image=1
-  zfs_boot=".disks.boot"
-fi
-image_label="$(read_image_info .label)${is_zfs_image:+-ZFS}"
-image_system=$(read_image_info .system)
-image_files=( $(read_image_info ".disks.root.file") )
-
-image_logical_bytes=$(read_image_info "${zfs_boot:-.disks.root}.logical_bytes")
-
-if [[ -n "$is_zfs_image" ]]; then
-  image_files+=( $(read_image_info .disks.boot.file) )
-fi
-
-# Derived attributes
-
-image_logical_gigabytes=$(((image_logical_bytes-1)/1024/1024/1024+1)) # Round to the next GB
-
-case "$image_system" in
-    aarch64-linux)
-        amazon_arch=arm64
-        ;;
-    x86_64-linux)
-        amazon_arch=x86_64
-        ;;
-    *)
-        log "Unknown system: $image_system"
-        exit 1
-esac
-
-image_name="NixOS-${image_label}-${image_system}"
-image_description="NixOS ${image_label} ${image_system}"
-
-log "Image Details:"
-log " Name: $image_name"
-log " Description: $image_description"
-log " Size (gigabytes): $image_logical_gigabytes"
-log " System: $image_system"
-log " Amazon Arch: $amazon_arch"
-
-read_state() {
-    local state_key=$1
-    local type=$2
-
-    cat "$state_dir/$state_key.$type" 2>/dev/null || true
-}
-
-write_state() {
-    local state_key=$1
-    local type=$2
-    local val=$3
-
-    mkdir -p "$state_dir"
-    echo "$val" > "$state_dir/$state_key.$type"
-}
-
-wait_for_import() {
-    local region=$1
-    local task_id=$2
-    local state snapshot_id
-    log "Waiting for import task $task_id to be completed"
-    while true; do
-        read -r state message snapshot_id < <(
-            aws ec2 describe-import-snapshot-tasks --region "$region" --import-task-ids "$task_id" | \
-                jq -r '.ImportSnapshotTasks[].SnapshotTaskDetail | "\(.Status) \(.StatusMessage) \(.SnapshotId)"'
-        )
-        log " ... state=$state message=$message snapshot_id=$snapshot_id"
-        case "$state" in
-            active)
-                sleep 10
-                ;;
-            completed)
-                echo "$snapshot_id"
-                return
-                ;;
-            *)
-                log "Unexpected snapshot import state: '${state}'"
-                log "Full response: "
-                aws ec2 describe-import-snapshot-tasks --region "$region" --import-task-ids "$task_id" >&2
-                exit 1
-                ;;
-        esac
-    done
-}
-
-wait_for_image() {
-    local region=$1
-    local ami_id=$2
-    local state
-    log "Waiting for image $ami_id to be available"
-
-    while true; do
-        read -r state < <(
-            aws ec2 describe-images --image-ids "$ami_id" --region "$region" | \
-                jq -r ".Images[].State"
-        )
-        log " ... state=$state"
-        case "$state" in
-            pending)
-                sleep 10
-                ;;
-            available)
-                return
-                ;;
-            *)
-                log "Unexpected AMI state: '${state}'"
-                exit 1
-                ;;
-        esac
-    done
-}
-
-
-make_image_public() {
-    local region=$1
-    local ami_id=$2
-
-    wait_for_image "$region" "$ami_id"
-
-    log "Making image $ami_id public"
-
-    aws ec2 modify-image-attribute \
-        --image-id "$ami_id" --region "$region" --launch-permission 'Add={Group=all}' >&2
-}
-
-upload_image() {
-    local region=$1
-
-    for image_file in "${image_files[@]}"; do
-        local aws_path=${image_file#/}
-
-        if [[ -n "$is_zfs_image" ]]; then
-            local suffix=${image_file%.*}
-            suffix=${suffix##*.}
-        fi
-
-        local state_key="$region.$image_label${suffix:+.${suffix}}.$image_system"
-        local task_id
-        task_id=$(read_state "$state_key" task_id)
-        local snapshot_id
-        snapshot_id=$(read_state "$state_key" snapshot_id)
-        local ami_id
-        ami_id=$(read_state "$state_key" ami_id)
-
-        if [ -z "$task_id" ]; then
-            log "Checking for image on S3"
-            if ! aws s3 ls --region "$region" "s3://${bucket}/${aws_path}" >&2; then
-                log "Image missing from aws, uploading"
-                aws s3 cp --region "$region" "$image_file" "s3://${bucket}/${aws_path}" >&2
-            fi
-
-            log "Importing image from S3 path s3://$bucket/$aws_path"
-
-            task_id=$(aws ec2 import-snapshot --role-name "$service_role_name" --disk-container "{
-              \"Description\": \"nixos-image-${image_label}-${image_system}\",
-              \"Format\": \"vhd\",
-              \"UserBucket\": {
-                  \"S3Bucket\": \"$bucket\",
-                  \"S3Key\": \"$aws_path\"
-              }
-            }" --region "$region" | jq -r '.ImportTaskId')
-
-            write_state "$state_key" task_id "$task_id"
-        fi
-
-        if [ -z "$snapshot_id" ]; then
-            snapshot_id=$(wait_for_import "$region" "$task_id")
-            write_state "$state_key" snapshot_id "$snapshot_id"
-        fi
-    done
-
-    if [ -z "$ami_id" ]; then
-        log "Registering snapshot $snapshot_id as AMI"
-
-        local block_device_mappings=(
-            "DeviceName=/dev/xvda,Ebs={SnapshotId=$snapshot_id,VolumeSize=$image_logical_gigabytes,DeleteOnTermination=true,VolumeType=gp3}"
-        )
-
-        if [[ -n "$is_zfs_image" ]]; then
-            local root_snapshot_id=$(read_state "$region.$image_label.root.$image_system" snapshot_id)
-
-            local root_image_logical_bytes=$(read_image_info ".disks.root.logical_bytes")
-            local root_image_logical_gigabytes=$(((root_image_logical_bytes-1)/1024/1024/1024+1)) # Round to the next GB
-
-            block_device_mappings+=(
-                "DeviceName=/dev/xvdb,Ebs={SnapshotId=$root_snapshot_id,VolumeSize=$root_image_logical_gigabytes,DeleteOnTermination=true,VolumeType=gp3}"
-            )
-        fi
-
-
-        local extra_flags=(
-            --root-device-name /dev/xvda
-            --sriov-net-support simple
-            --ena-support
-            --virtualization-type hvm
-        )
-
-        block_device_mappings+=("DeviceName=/dev/sdb,VirtualName=ephemeral0")
-        block_device_mappings+=("DeviceName=/dev/sdc,VirtualName=ephemeral1")
-        block_device_mappings+=("DeviceName=/dev/sdd,VirtualName=ephemeral2")
-        block_device_mappings+=("DeviceName=/dev/sde,VirtualName=ephemeral3")
-
-        ami_id=$(
-            aws ec2 register-image \
-                --name "$image_name" \
-                --description "$image_description" \
-                --region "$region" \
-                --architecture $amazon_arch \
-                --block-device-mappings "${block_device_mappings[@]}" \
-                --boot-mode $(read_image_info .boot_mode) \
-                "${extra_flags[@]}" \
-                | jq -r '.ImageId'
-              )
-
-        write_state "$state_key" ami_id "$ami_id"
-    fi
-
-    [[ -v PRIVATE ]] || make_image_public "$region" "$ami_id"
-
-    echo "$ami_id"
-}
-
-copy_to_region() {
-    local region=$1
-    local from_region=$2
-    local from_ami_id=$3
-
-    state_key="$region.$image_label.$image_system"
-    ami_id=$(read_state "$state_key" ami_id)
-
-    if [ -z "$ami_id" ]; then
-        log "Copying $from_ami_id to $region"
-        ami_id=$(
-            aws ec2 copy-image \
-                --region "$region" \
-                --source-region "$from_region" \
-                --source-image-id "$from_ami_id" \
-                --name "$image_name" \
-                --description "$image_description" \
-                | jq -r '.ImageId'
-              )
-
-        write_state "$state_key" ami_id "$ami_id"
-    fi
-
-    [[ -v PRIVATE ]] || make_image_public "$region" "$ami_id"
-
-    echo "$ami_id"
-}
-
-upload_all() {
-    home_image_id=$(upload_image "$home_region")
-    jq -n \
-       --arg key "$home_region.$image_system" \
-       --arg value "$home_image_id" \
-       '$ARGS.named'
-
-    for region in "${regions[@]}"; do
-        if [ "$region" = "$home_region" ]; then
-            continue
-        fi
-        copied_image_id=$(copy_to_region "$region" "$home_region" "$home_image_id")
-
-        jq -n \
-           --arg key "$region.$image_system" \
-           --arg value "$copied_image_id" \
-           '$ARGS.named'
-    done
-}
-
-upload_all | jq --slurp from_entries
diff --git a/nixos/modules/config/no-x-libs.nix b/nixos/modules/config/no-x-libs.nix
index 1d7976cef36a2..87b6fea92ba4a 100644
--- a/nixos/modules/config/no-x-libs.nix
+++ b/nixos/modules/config/no-x-libs.nix
@@ -46,18 +46,20 @@ with lib;
       graphviz = super.graphviz-nox;
       gst_all_1 = super.gst_all_1 // {
         gst-plugins-bad = super.gst_all_1.gst-plugins-bad.override { guiSupport = false; };
-        gst-plugins-base = super.gst_all_1.gst-plugins-base.override { enableWayland = false; enableX11 = false; };
+        gst-plugins-base = super.gst_all_1.gst-plugins-base.override { enableGl = false; enableWayland = false; enableX11 = false; };
         gst-plugins-good = super.gst_all_1.gst-plugins-good.override { enableWayland = false; enableX11 = false; gtkSupport = false; qt5Support = false; qt6Support = false; };
+        gst-plugins-rs = super.gst_all_1.gst-plugins-rs.override { withGtkPlugins = false; };
       };
       imagemagick = super.imagemagick.override { libX11Support = false; libXtSupport = false; };
       imagemagickBig = super.imagemagickBig.override { libX11Support = false; libXtSupport = false; };
       intel-vaapi-driver = super.intel-vaapi-driver.override { enableGui = false; };
       libdevil = super.libdevil-nox;
       libextractor = super.libextractor.override { gtkSupport = false; };
+      libplacebo = super.libplacebo.override { vulkanSupport = false; };
       libva = super.libva-minimal;
       limesuite = super.limesuite.override { withGui = false; };
       mc = super.mc.override { x11Support = false; };
-      mpv-unwrapped = super.mpv-unwrapped.override { sdl2Support = false; x11Support = false; waylandSupport = false; };
+      mpv-unwrapped = super.mpv-unwrapped.override { drmSupport = false; screenSaverSupport = false; sdl2Support = false; vulkanSupport = false; waylandSupport = false; x11Support = false; };
       msmtp = super.msmtp.override { withKeyring = false; };
       mupdf = super.mupdf.override { enableGL = false; enableX11 = false; };
       neofetch = super.neofetch.override { x11Support = false; };
@@ -70,6 +72,7 @@ with lib;
       networkmanager-vpnc = super.networkmanager-vpnc.override { withGnome = false; };
       pango = super.pango.override { x11Support = false; };
       pinentry-curses = super.pinentry-curses.override { withLibsecret = false; };
+      pinentry-tty = super.pinentry-tty.override { withLibsecret = false; };
       pipewire = super.pipewire.override { vulkanSupport = false; x11Support = false; };
       pythonPackagesExtensions = super.pythonPackagesExtensions ++ [
         (python-final: python-prev: {
diff --git a/nixos/modules/hardware/video/nvidia.nix b/nixos/modules/hardware/video/nvidia.nix
index 3caec769400cb..949b1e346269e 100644
--- a/nixos/modules/hardware/video/nvidia.nix
+++ b/nixos/modules/hardware/video/nvidia.nix
@@ -285,7 +285,7 @@ in
             KERNEL=="nvidia_uvm", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidia-uvm-tools c $$(grep nvidia-uvm /proc/devices | cut -d \  -f 1) 1'"
           '';
           hardware.opengl = {
-            extraPackages = [ nvidia_x11.out ];
+            extraPackages = [ nvidia_x11.out nvidia_x11.settings.libXNVCtrl ];
             extraPackages32 = [ nvidia_x11.lib32 ];
           };
           environment.systemPackages = [ nvidia_x11.bin ];
diff --git a/nixos/modules/installer/netboot/netboot.nix b/nixos/modules/installer/netboot/netboot.nix
index c88a53393d13f..2228766aca963 100644
--- a/nixos/modules/installer/netboot/netboot.nix
+++ b/nixos/modules/installer/netboot/netboot.nix
@@ -39,7 +39,8 @@ with lib;
 
     # !!! Hack - attributes expected by other modules.
     environment.systemPackages = [ pkgs.grub2_efi ]
-      ++ (lib.optionals (pkgs.stdenv.hostPlatform.system != "aarch64-linux") [pkgs.grub2 pkgs.syslinux]);
+      ++ (lib.optionals (lib.meta.availableOn pkgs.stdenv.hostPlatform pkgs.syslinux)
+        [pkgs.grub2 pkgs.syslinux]);
 
     fileSystems."/" = mkImageMediaOverride
       { fsType = "tmpfs";
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 70482bffed56e..159696be8b6d0 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -249,7 +249,6 @@
   ./programs/oblogout.nix
   ./programs/oddjobd.nix
   ./programs/openvpn3.nix
-  ./programs/pantheon-tweaks.nix
   ./programs/partition-manager.nix
   ./programs/plotinus.nix
   ./programs/pqos-wrapper.nix
@@ -293,6 +292,7 @@
   ./programs/virt-manager.nix
   ./programs/wavemon.nix
   ./programs/wayland/cardboard.nix
+  ./programs/wayland/hyprlock.nix
   ./programs/wayland/hyprland.nix
   ./programs/wayland/labwc.nix
   ./programs/wayland/river.nix
@@ -418,6 +418,7 @@
   ./services/cluster/kubernetes/scheduler.nix
   ./services/cluster/pacemaker/default.nix
   ./services/cluster/patroni/default.nix
+  ./services/cluster/rke2/default.nix
   ./services/cluster/spark/default.nix
   ./services/computing/boinc/client.nix
   ./services/computing/foldingathome/client.nix
@@ -1109,6 +1110,7 @@
   ./services/networking/ocserv.nix
   ./services/networking/ofono.nix
   ./services/networking/oidentd.nix
+  ./services/networking/oink.nix
   ./services/networking/onedrive.nix
   ./services/networking/openconnect.nix
   ./services/networking/openvpn.nix
@@ -1325,6 +1327,7 @@
   ./services/video/unifi-video.nix
   ./services/video/v4l2-relayd.nix
   ./services/wayland/cage.nix
+  ./services/wayland/hypridle.nix
   ./services/web-apps/akkoma.nix
   ./services/web-apps/alps.nix
   ./services/web-apps/anuko-time-tracker.nix
@@ -1399,6 +1402,7 @@
   ./services/web-apps/netbox.nix
   ./services/web-apps/nextcloud.nix
   ./services/web-apps/nextcloud-notify_push.nix
+  ./services/web-apps/nextjs-ollama-llm-ui.nix
   ./services/web-apps/nexus.nix
   ./services/web-apps/nifi.nix
   ./services/web-apps/node-red.nix
diff --git a/nixos/modules/programs/less.nix b/nixos/modules/programs/less.nix
index c904fc2089aa3..50ea1586f6880 100644
--- a/nixos/modules/programs/less.nix
+++ b/nixos/modules/programs/less.nix
@@ -35,6 +35,8 @@ in
       # therefore also enables this module
       enable = lib.mkEnableOption "less, a file pager";
 
+      package = lib.mkPackageOption pkgs "less" { };
+
       configFile = lib.mkOption {
         type = lib.types.nullOr lib.types.path;
         default = null;
@@ -110,7 +112,7 @@ in
 
   config = lib.mkIf cfg.enable {
 
-    environment.systemPackages = [ pkgs.less ];
+    environment.systemPackages = [ cfg.package ];
 
     environment.variables = {
       LESSKEYIN_SYSTEM = builtins.toString lessKey;
diff --git a/nixos/modules/programs/pantheon-tweaks.nix b/nixos/modules/programs/pantheon-tweaks.nix
deleted file mode 100644
index b7258e2eb4bfe..0000000000000
--- a/nixos/modules/programs/pantheon-tweaks.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-{
-  meta = {
-    maintainers = lib.teams.pantheon.members;
-  };
-
-  ###### interface
-  options = {
-    programs.pantheon-tweaks.enable = lib.mkEnableOption "Pantheon Tweaks, an unofficial system settings panel for Pantheon";
-  };
-
-  ###### implementation
-  config = lib.mkIf config.programs.pantheon-tweaks.enable {
-    services.xserver.desktopManager.pantheon.extraSwitchboardPlugs = [ pkgs.pantheon-tweaks ];
-  };
-}
diff --git a/nixos/modules/programs/steam.nix b/nixos/modules/programs/steam.nix
index d76863aff83be..5138588dbd3e5 100644
--- a/nixos/modules/programs/steam.nix
+++ b/nixos/modules/programs/steam.nix
@@ -4,6 +4,8 @@ let
   cfg = config.programs.steam;
   gamescopeCfg = config.programs.gamescope;
 
+  extraCompatPaths = lib.makeSearchPathOutput "steamcompattool" "" cfg.extraCompatPackages;
+
   steam-gamescope = let
     exports = builtins.attrValues (builtins.mapAttrs (n: v: "export ${n}=${v}") cfg.gamescopeSession.env);
   in
@@ -42,7 +44,7 @@ in {
       '';
       apply = steam: steam.override (prev: {
         extraEnv = (lib.optionalAttrs (cfg.extraCompatPackages != [ ]) {
-          STEAM_EXTRA_COMPAT_TOOLS_PATHS = lib.makeSearchPathOutput "steamcompattool" "" cfg.extraCompatPackages;
+          STEAM_EXTRA_COMPAT_TOOLS_PATHS = extraCompatPaths;
         }) // (lib.optionalAttrs cfg.extest.enable {
           LD_PRELOAD = "${pkgs.pkgsi686Linux.extest}/lib/libextest.so";
         }) // (prev.extraEnv or {});
@@ -53,6 +55,7 @@ in {
             then [ package ] ++ extraPackages
             else [ package32 ] ++ extraPackages32;
         in prevLibs ++ additionalLibs;
+        extraPkgs = p: (cfg.extraPackages ++ lib.optionals (prev ? extraPkgs) (prev.extraPkgs p));
       } // lib.optionalAttrs (cfg.gamescopeSession.enable && gamescopeCfg.capSysNice)
       {
         buildFHSEnv = pkgs.buildFHSEnv.override {
@@ -69,6 +72,19 @@ in {
       '';
     };
 
+    extraPackages = lib.mkOption {
+      type = lib.types.listOf lib.types.package;
+      default = [ ];
+      example = lib.literalExpression ''
+        with pkgs; [
+          gamescope
+        ]
+      '';
+      description = ''
+        Additional packages to add to the Steam environment.
+      '';
+    };
+
     extraCompatPackages = lib.mkOption {
       type = lib.types.listOf lib.types.package;
       default = [ ];
@@ -86,6 +102,19 @@ in {
       '';
     };
 
+    fontPackages = lib.mkOption {
+      type = lib.types.listOf lib.types.package;
+      # `fonts.packages` is a list of paths now, filter out which are not packages
+      default = builtins.filter lib.types.package.check config.fonts.packages;
+      defaultText = lib.literalExpression "builtins.filter lib.types.package.check config.fonts.packages";
+      example = lib.literalExpression "with pkgs; [ source-han-sans ]";
+      description = ''
+        Font packages to use in Steam.
+
+        Defaults to system fonts, but could be overridden to use other fonts — useful for users who would like to customize CJK fonts used in Steam. According to the [upstream issue](https://github.com/ValveSoftware/steam-for-linux/issues/10422#issuecomment-1944396010), Steam only follows the per-user fontconfig configuration.
+      '';
+    };
+
     remotePlay.openFirewall = lib.mkOption {
       type = lib.types.bool;
       default = false;
@@ -139,6 +168,11 @@ in {
       Load the extest library into Steam, to translate X11 input events to
       uinput events (e.g. for using Steam Input on Wayland)
     '';
+
+    protontricks = {
+      enable = lib.mkEnableOption "protontricks, a simple wrapper for running Winetricks commands for Proton-enabled games";
+      package = lib.mkPackageOption pkgs "protontricks" { };
+    };
   };
 
   config = lib.mkIf cfg.enable {
@@ -158,6 +192,8 @@ in {
       };
     };
 
+    programs.steam.extraPackages = cfg.fontPackages;
+
     programs.gamescope.enable = lib.mkDefault cfg.gamescopeSession.enable;
     services.displayManager.sessionPackages = lib.mkIf cfg.gamescopeSession.enable [ gamescopeSessionFile ];
 
@@ -169,7 +205,8 @@ in {
     environment.systemPackages = [
       cfg.package
       cfg.package.run
-    ] ++ lib.optional cfg.gamescopeSession.enable steam-gamescope;
+    ] ++ lib.optional cfg.gamescopeSession.enable steam-gamescope
+    ++ lib.optional cfg.protontricks.enable (cfg.protontricks.package.override { inherit extraCompatPaths; });
 
     networking.firewall = lib.mkMerge [
       (lib.mkIf (cfg.remotePlay.openFirewall || cfg.localNetworkGameTransfers.openFirewall) {
diff --git a/nixos/modules/programs/wayland/hyprland.nix b/nixos/modules/programs/wayland/hyprland.nix
index c963429f2e2a9..f5ca741f94328 100644
--- a/nixos/modules/programs/wayland/hyprland.nix
+++ b/nixos/modules/programs/wayland/hyprland.nix
@@ -1,46 +1,41 @@
-{ config
-, lib
-, pkgs
-, ...
-}:
+{ config, lib, pkgs, ... }:
+
 let
   cfg = config.programs.hyprland;
 
-  finalPortalPackage = cfg.portalPackage.override {
-    hyprland = cfg.finalPackage;
-  };
+  wayland-lib = import ./lib.nix { inherit lib; };
 in
 {
   options.programs.hyprland = {
-    enable = lib.mkEnableOption null // {
-      description = ''
-        Whether to enable Hyprland, the dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
-
-        You can manually launch Hyprland by executing {command}`Hyprland` on a TTY.
-
-        A configuration file will be generated in {file}`~/.config/hypr/hyprland.conf`.
-        See <https://wiki.hyprland.org> for more information.
+    enable = lib.mkEnableOption ''
+      Hyprland, the dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
+      You can manually launch Hyprland by executing {command}`Hyprland` on a TTY.
+      A configuration file will be generated in {file}`~/.config/hypr/hyprland.conf`.
+      See <https://wiki.hyprland.org> for more information'';
+
+    package = lib.mkPackageOption pkgs "hyprland" {
+      extraDescription = ''
+        If the package is not overridable with `enableXWayland`, then the module option
+        {option}`xwayland` will have no effect.
       '';
-    };
-
-    package = lib.mkPackageOption pkgs "hyprland" { };
-
-    finalPackage = lib.mkOption {
-      type = lib.types.package;
-      readOnly = true;
-      default = cfg.package.override {
+    } // {
+      apply = p: wayland-lib.genFinalPackage p {
         enableXWayland = cfg.xwayland.enable;
       };
-      defaultText = lib.literalExpression
-        "`programs.hyprland.package` with applied configuration";
-      description = ''
-        The Hyprland package after applying configuration.
-      '';
     };
 
-    portalPackage = lib.mkPackageOption pkgs "xdg-desktop-portal-hyprland" { };
+    portalPackage = lib.mkPackageOption pkgs "xdg-desktop-portal-hyprland" {
+      extraDescription = ''
+        If the package is not overridable with `hyprland`, then the Hyprland package
+        used by the portal may differ from the one set in the module option {option}`package`.
+      '';
+    } // {
+      apply = p: wayland-lib.genFinalPackage p {
+        hyprland = cfg.package;
+      };
+    };
 
-    xwayland.enable = lib.mkEnableOption ("XWayland") // { default = true; };
+    xwayland.enable = lib.mkEnableOption "XWayland" // { default = true; };
 
     systemd.setPath.enable = lib.mkEnableOption null // {
       default = true;
@@ -53,33 +48,30 @@ in
     };
   };
 
-  config = lib.mkIf cfg.enable {
-    environment.systemPackages = [ cfg.finalPackage ];
-
-    fonts.enableDefaultPackages = lib.mkDefault true;
-    hardware.opengl.enable = lib.mkDefault true;
+  config = lib.mkIf cfg.enable (lib.mkMerge [
+    {
+      environment.systemPackages = [ cfg.package ];
 
-    programs = {
-      dconf.enable = lib.mkDefault true;
-      xwayland.enable = lib.mkDefault cfg.xwayland.enable;
-    };
-
-    security.polkit.enable = true;
+      # To make a Hyprland session available if a display manager like SDDM is enabled:
+      services.displayManager.sessionPackages = [ cfg.package ];
 
-    services.displayManager.sessionPackages = [ cfg.finalPackage ];
+      xdg.portal = {
+        extraPortals = [ cfg.portalPackage ];
+        configPackages = lib.mkDefault [ cfg.package ];
+      };
 
-    xdg.portal = {
-      enable = lib.mkDefault true;
-      extraPortals = [ finalPortalPackage ];
-      configPackages = lib.mkDefault [ cfg.finalPackage ];
-    };
+      systemd = lib.mkIf cfg.systemd.setPath.enable {
+        user.extraConfig = ''
+          DefaultEnvironment="PATH=$PATH:/run/current-system/sw/bin:/etc/profiles/per-user/%u/bin:/run/wrappers/bin"
+        '';
+      };
+    }
 
-    systemd = lib.mkIf cfg.systemd.setPath.enable {
-      user.extraConfig = ''
-        DefaultEnvironment="PATH=$PATH:/run/current-system/sw/bin:/etc/profiles/per-user/%u/bin:/run/wrappers/bin"
-      '';
-    };
-  };
+    (import ./wayland-session.nix {
+      inherit lib pkgs;
+      xwayland = cfg.xwayland.enable;
+    })
+  ]);
 
   imports = [
     (lib.mkRemovedOptionModule
diff --git a/nixos/modules/programs/wayland/hyprlock.nix b/nixos/modules/programs/wayland/hyprlock.nix
new file mode 100644
index 0000000000000..6c60765e80cc7
--- /dev/null
+++ b/nixos/modules/programs/wayland/hyprlock.nix
@@ -0,0 +1,25 @@
+{ lib, pkgs, config, ... }:
+
+let
+  cfg = config.programs.hyprlock;
+in
+{
+  options.programs.hyprlock = {
+    enable = lib.mkEnableOption "hyprlock, Hyprland's GPU-accelerated screen locking utility";
+    package = lib.mkPackageOption pkgs "hyprlock" { };
+  };
+
+  config = lib.mkIf cfg.enable {
+    environment.systemPackages = [
+      cfg.package
+    ];
+
+    # Hyprlock needs Hypridle systemd service to be running to detect idle time
+    services.hypridle.enable = true;
+
+    # Hyprlock needs PAM access to authenticate, else it fallbacks to su
+    security.pam.services.hyprlock = {};
+  };
+
+  meta.maintainers = with lib.maintainers; [ johnrtitor ];
+}
diff --git a/nixos/modules/programs/wayland/lib.nix b/nixos/modules/programs/wayland/lib.nix
new file mode 100644
index 0000000000000..0f275d3f18c56
--- /dev/null
+++ b/nixos/modules/programs/wayland/lib.nix
@@ -0,0 +1,12 @@
+{ lib }:
+
+{
+  genFinalPackage = pkg: args:
+    let
+      expectedArgs = with lib;
+        lib.naturalSort (lib.attrNames args);
+      existingArgs = with lib;
+        naturalSort (intersectLists expectedArgs (attrNames (functionArgs pkg.override)));
+    in
+      if existingArgs != expectedArgs then pkg else pkg.override args;
+}
diff --git a/nixos/modules/programs/wayland/river.nix b/nixos/modules/programs/wayland/river.nix
index 6f8bafb155064..0980bd28cf828 100644
--- a/nixos/modules/programs/wayland/river.nix
+++ b/nixos/modules/programs/wayland/river.nix
@@ -1,37 +1,40 @@
-{
-  config,
-  pkgs,
-  lib,
-  ...
-}:
+{ config, lib, pkgs, ... }:
+
 let
   cfg = config.programs.river;
-in {
+
+  wayland-lib = import ./lib.nix { inherit lib; };
+in
+{
   options.programs.river = {
     enable = lib.mkEnableOption "river, a dynamic tiling Wayland compositor";
 
     package = lib.mkPackageOption pkgs "river" {
       nullable = true;
       extraDescription = ''
+        If the package is not overridable with `xwaylandSupport`, then the module option
+        {option}`xwayland` will have no effect.
+
         Set to `null` to not add any River package to your path.
         This should be done if you want to use the Home Manager River module to install River.
       '';
+    } // {
+      apply = p: if p == null then null else
+        wayland-lib.genFinalPackage p {
+          xwaylandSupport = cfg.xwayland.enable;
+        };
     };
 
+    xwayland.enable = lib.mkEnableOption "XWayland" // { default = true; };
+
     extraPackages = lib.mkOption {
       type = with lib.types; listOf package;
-      default = with pkgs; [
-        swaylock
-        foot
-        dmenu
-      ];
+      default = with pkgs; [ swaylock foot dmenu ];
       defaultText = lib.literalExpression ''
         with pkgs; [ swaylock foot dmenu ];
       '';
       example = lib.literalExpression ''
-        with pkgs; [
-          termite rofi light
-        ]
+        with pkgs; [ termite rofi light ]
       '';
       description = ''
         Extra packages to be installed system wide. See
@@ -41,19 +44,22 @@ in {
     };
   };
 
-  config =
-    lib.mkIf cfg.enable (lib.mkMerge [
-      {
-        environment.systemPackages = lib.optional (cfg.package != null) cfg.package ++ cfg.extraPackages;
+  config = lib.mkIf cfg.enable (lib.mkMerge [
+    {
+      environment.systemPackages = lib.optional (cfg.package != null) cfg.package ++ cfg.extraPackages;
+
+      # To make a river session available if a display manager like SDDM is enabled:
+      services.displayManager.sessionPackages = lib.optional (cfg.package != null) cfg.package;
 
-        # To make a river session available if a display manager like SDDM is enabled:
-        services.displayManager.sessionPackages = lib.optionals (cfg.package != null) [ cfg.package ];
+      # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050913
+      xdg.portal.config.river.default = lib.mkDefault [ "wlr" "gtk" ];
+    }
 
-        # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050913
-        xdg.portal.config.river.default = lib.mkDefault [ "wlr" "gtk" ];
-      }
-      (import ./wayland-session.nix { inherit lib pkgs; })
-    ]);
+    (import ./wayland-session.nix {
+      inherit lib pkgs;
+      xwayland = cfg.xwayland.enable;
+    })
+  ]);
 
   meta.maintainers = with lib.maintainers; [ GaetanLepage ];
 }
diff --git a/nixos/modules/programs/wayland/sway.nix b/nixos/modules/programs/wayland/sway.nix
index cec634b6b0338..31821a84a5bd7 100644
--- a/nixos/modules/programs/wayland/sway.nix
+++ b/nixos/modules/programs/wayland/sway.nix
@@ -1,52 +1,11 @@
-{ config, pkgs, lib, ... }:
+{ config, lib, pkgs, ... }:
 
 let
   cfg = config.programs.sway;
 
-  wrapperOptions = lib.types.submodule {
-    options =
-      let
-        mkWrapperFeature  = default: description: lib.mkOption {
-          type = lib.types.bool;
-          inherit default;
-          example = !default;
-          description = "Whether to make use of the ${description}";
-        };
-      in {
-        base = mkWrapperFeature true ''
-          base wrapper to execute extra session commands and prepend a
-          dbus-run-session to the sway command.
-        '';
-        gtk = mkWrapperFeature false ''
-          wrapGAppsHook wrapper to execute sway with required environment
-          variables for GTK applications.
-        '';
-    };
-  };
-
-  genFinalPackage = pkg:
-    let
-      expectedArgs = lib.naturalSort [
-        "extraSessionCommands"
-        "extraOptions"
-        "withBaseWrapper"
-        "withGtkWrapper"
-        "isNixOS"
-      ];
-      existedArgs = with lib;
-        naturalSort
-        (intersectLists expectedArgs (attrNames (functionArgs pkg.override)));
-    in if existedArgs != expectedArgs then
-      pkg
-    else
-      pkg.override {
-        extraSessionCommands = cfg.extraSessionCommands;
-        extraOptions = cfg.extraOptions;
-        withBaseWrapper = cfg.wrapperFeatures.base;
-        withGtkWrapper = cfg.wrapperFeatures.gtk;
-        isNixOS = true;
-      };
-in {
+  wayland-lib = import ./lib.nix { inherit lib; };
+in
+{
   options.programs.sway = {
     enable = lib.mkEnableOption ''
       Sway, the i3-compatible tiling Wayland compositor. You can manually launch
@@ -55,28 +14,36 @@ in {
       <https://github.com/swaywm/sway/wiki> and
       "man 5 sway" for more information'';
 
-    package = lib.mkOption {
-      type = with lib.types; nullOr package;
-      default = pkgs.sway;
-      apply = p: if p == null then null else genFinalPackage p;
-      defaultText = lib.literalExpression "pkgs.sway";
-      description = ''
-        Sway package to use. If the package does not contain the override arguments
-        `extraSessionCommands`, `extraOptions`, `withBaseWrapper`, `withGtkWrapper`,
-        `isNixOS`, then the module options {option}`wrapperFeatures`,
-        {option}`wrapperFeatures` and {option}`wrapperFeatures` will have no effect.
-        Set to `null` to not add any Sway package to your path. This should be done if
-        you want to use the Home Manager Sway module to install Sway.
+    package = lib.mkPackageOption pkgs "sway" {
+      nullable = true;
+      extraDescription = ''
+        If the package is not overridable with `extraSessionCommands`, `extraOptions`,
+        `withBaseWrapper`, `withGtkWrapper`, `enableXWayland` and `isNixOS`,
+        then the module options {option}`wrapperFeatures`, {option}`extraSessionCommands`,
+        {option}`extraOptions` and {option}`xwayland` will have no effect.
+
+        Set to `null` to not add any Sway package to your path.
+        This should be done if you want to use the Home Manager Sway module to install Sway.
       '';
+    } // {
+      apply = p: if p == null then null else
+        wayland-lib.genFinalPackage p {
+          extraSessionCommands = cfg.extraSessionCommands;
+          extraOptions = cfg.extraOptions;
+          withBaseWrapper = cfg.wrapperFeatures.base;
+          withGtkWrapper = cfg.wrapperFeatures.gtk;
+          enableXWayland = cfg.xwayland.enable;
+          isNixOS = true;
+        };
     };
 
-    wrapperFeatures = lib.mkOption {
-      type = wrapperOptions;
-      default = { };
-      example = { gtk = true; };
-      description = ''
-        Attribute set of features to enable in the wrapper.
-      '';
+    wrapperFeatures = {
+      base = lib.mkEnableOption ''
+        the base wrapper to execute extra session commands and prepend a
+        dbus-run-session to the sway command'' // { default = true; };
+      gtk = lib.mkEnableOption ''
+        the wrapGAppsHook wrapper to execute sway with required environment
+        variables for GTK applications'';
     };
 
     extraSessionCommands = lib.mkOption {
@@ -114,19 +81,16 @@ in {
       '';
     };
 
+    xwayland.enable = lib.mkEnableOption "XWayland" // { default = true; };
+
     extraPackages = lib.mkOption {
       type = with lib.types; listOf package;
-      default = with pkgs; [
-        swaylock swayidle foot dmenu wmenu
-      ];
+      default = with pkgs; [ swaylock swayidle foot dmenu wmenu ];
       defaultText = lib.literalExpression ''
         with pkgs; [ swaylock swayidle foot dmenu wmenu ];
       '';
       example = lib.literalExpression ''
-        with pkgs; [
-          i3status i3status-rust
-          termite rofi light
-        ]
+        with pkgs; [ i3status i3status-rust termite rofi light ]
       '';
       description = ''
         Extra packages to be installed system wide. See
@@ -135,46 +99,50 @@ in {
         for a list of useful software.
       '';
     };
-
   };
 
-  config = lib.mkIf cfg.enable
-    (lib.mkMerge [
-      {
-        assertions = [
-          {
-            assertion = cfg.extraSessionCommands != "" -> cfg.wrapperFeatures.base;
-            message = ''
-              The extraSessionCommands for Sway will not be run if
-              wrapperFeatures.base is disabled.
-            '';
-          }
-        ];
-
-        environment = {
-          systemPackages = lib.optional (cfg.package != null) cfg.package ++ cfg.extraPackages;
-          # Needed for the default wallpaper:
-          pathsToLink = lib.optionals (cfg.package != null) [ "/share/backgrounds/sway" ];
-          etc = {
-            "sway/config.d/nixos.conf".source = pkgs.writeText "nixos.conf" ''
-              # Import the most important environment variables into the D-Bus and systemd
-              # user environments (e.g. required for screen sharing and Pinentry prompts):
-              exec dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP
-            '';
-          } // lib.optionalAttrs (cfg.package != null) {
-            "sway/config".source = lib.mkOptionDefault "${cfg.package}/etc/sway/config";
-          };
+  config = lib.mkIf cfg.enable (lib.mkMerge [
+    {
+      assertions = [
+        {
+          assertion = cfg.extraSessionCommands != "" -> cfg.wrapperFeatures.base;
+          message = ''
+            The extraSessionCommands for Sway will not be run if wrapperFeatures.base is disabled.
+          '';
+        }
+      ];
+
+      environment = {
+        systemPackages = lib.optional (cfg.package != null) cfg.package ++ cfg.extraPackages;
+
+        # Needed for the default wallpaper:
+        pathsToLink = lib.optional (cfg.package != null) "/share/backgrounds/sway";
+
+        etc = {
+          "sway/config.d/nixos.conf".source = pkgs.writeText "nixos.conf" ''
+            # Import the most important environment variables into the D-Bus and systemd
+            # user environments (e.g. required for screen sharing and Pinentry prompts):
+            exec dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP
+          '';
+        } // lib.optionalAttrs (cfg.package != null) {
+          "sway/config".source = lib.mkOptionDefault "${cfg.package}/etc/sway/config";
         };
+      };
+
+      programs.gnupg.agent.pinentryPackage = lib.mkDefault pkgs.pinentry-gnome3;
 
-        programs.gnupg.agent.pinentryPackage = lib.mkDefault pkgs.pinentry-gnome3;
+      # To make a Sway session available if a display manager like SDDM is enabled:
+      services.displayManager.sessionPackages = lib.optional (cfg.package != null) cfg.package;
 
-        # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050913
-        xdg.portal.config.sway.default = lib.mkDefault [ "wlr" "gtk" ];
+      # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050913
+      xdg.portal.config.sway.default = lib.mkDefault [ "wlr" "gtk" ];
+    }
 
-        # To make a Sway session available if a display manager like SDDM is enabled:
-        services.displayManager.sessionPackages = lib.optionals (cfg.package != null) [ cfg.package ]; }
-      (import ./wayland-session.nix { inherit lib pkgs; })
-    ]);
+    (import ./wayland-session.nix {
+      inherit lib pkgs;
+      xwayland = cfg.xwayland.enable;
+    })
+  ]);
 
   meta.maintainers = with lib.maintainers; [ primeos colemickens ];
 }
diff --git a/nixos/modules/programs/wayland/wayland-session.nix b/nixos/modules/programs/wayland/wayland-session.nix
index 47ee0788e0f38..e9c12da156abc 100644
--- a/nixos/modules/programs/wayland/wayland-session.nix
+++ b/nixos/modules/programs/wayland/wayland-session.nix
@@ -1,23 +1,18 @@
-{ lib, pkgs, ... }: {
-    security = {
-      polkit.enable = true;
-      pam.services.swaylock = {};
-    };
+{ lib, pkgs, xwayland ? true }:
 
-    hardware.opengl.enable = lib.mkDefault true;
-    fonts.enableDefaultPackages = lib.mkDefault true;
+{
+  security = {
+    polkit.enable = true;
+    pam.services.swaylock = {};
+  };
 
-    programs = {
-      dconf.enable = lib.mkDefault true;
-      xwayland.enable = lib.mkDefault true;
-    };
+  hardware.opengl.enable = lib.mkDefault true;
+  fonts.enableDefaultPackages = lib.mkDefault true;
 
-    xdg.portal = {
-      enable = lib.mkDefault true;
+  programs = {
+    dconf.enable = lib.mkDefault true;
+    xwayland.enable = lib.mkDefault xwayland;
+  };
 
-      extraPortals = [
-        # For screen sharing
-        pkgs.xdg-desktop-portal-wlr
-      ];
-    };
+  xdg.portal.wlr.enable = lib.mkDefault true;
 }
diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index 01985995a651d..d4661a19188c8 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -40,12 +40,16 @@ in
     (mkRemovedOptionModule [ "networking" "vpnc" ] "Use environment.etc.\"vpnc/service.conf\" instead.")
     (mkRemovedOptionModule [ "networking" "wicd" ] "The corresponding package was removed from nixpkgs.")
     (mkRemovedOptionModule [ "programs" "gnome-documents" ] "The corresponding package was removed from nixpkgs.")
+    (mkRemovedOptionModule [ "programs" "pantheon-tweaks" ] ''
+      pantheon-tweaks is no longer a switchboard plugin but an independent app,
+      adding the package to environment.systemPackages is sufficient.
+    '')
     (mkRemovedOptionModule [ "programs" "tilp2" ] "The corresponding package was removed from nixpkgs.")
     (mkRemovedOptionModule [ "programs" "way-cooler" ] ("way-cooler is abandoned by its author: " +
       "https://way-cooler.org/blog/2020/01/09/way-cooler-post-mortem.html"))
     (mkRemovedOptionModule [ "security" "hideProcessInformation" ] ''
-        The hidepid module was removed, since the underlying machinery
-        is broken when using cgroups-v2.
+      The hidepid module was removed, since the underlying machinery
+      is broken when using cgroups-v2.
     '')
     (mkRemovedOptionModule [ "services" "baget" "enable" ] "The baget module was removed due to the upstream package being unmaintained.")
     (mkRemovedOptionModule [ "services" "beegfs" ] "The BeeGFS module has been removed")
diff --git a/nixos/modules/services/backup/borgbackup.nix b/nixos/modules/services/backup/borgbackup.nix
index 04f971008073e..a3c0715c9e607 100644
--- a/nixos/modules/services/backup/borgbackup.nix
+++ b/nixos/modules/services/backup/borgbackup.nix
@@ -361,7 +361,7 @@ in {
             type = types.bool;
             example = true;
             description = ''
-              Set the `persistentTimer` option for the
+              Set the `Persistent` option for the
               {manpage}`systemd.timer(5)`
               which triggers the backup immediately if the last trigger
               was missed (e.g. if the system was powered down).
diff --git a/nixos/modules/services/cluster/rke2/default.nix b/nixos/modules/services/cluster/rke2/default.nix
new file mode 100644
index 0000000000000..9ddbd299fdf8d
--- /dev/null
+++ b/nixos/modules/services/cluster/rke2/default.nix
@@ -0,0 +1,311 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+  cfg = config.services.rke2;
+in
+{
+  imports = [ ];
+
+  options.services.rke2 = {
+    enable = mkEnableOption "rke2";
+
+    package = mkPackageOption pkgs "rke2" { };
+
+    role = mkOption {
+      type = types.enum [ "server" "agent" ];
+      description = ''
+        Whether rke2 should run as a server or agent.
+
+        If it's a server:
+
+        - By default it also runs workloads as an agent.
+        - any optionals is allowed.
+
+        If it's an agent:
+
+        - `serverAddr` is required.
+        - `token` or `tokenFile` is required.
+        - `agentToken` or `agentTokenFile` or `disable` or `cni` are not allowed.
+      '';
+      default = "server";
+    };
+
+    configPath = mkOption {
+      type = types.path;
+      description = "Load configuration from FILE.";
+      default = "/etc/rancher/rke2/config.yaml";
+    };
+
+    debug = mkOption {
+      type = types.bool;
+      description = "Turn on debug logs.";
+      default = false;
+    };
+
+    dataDir = mkOption {
+      type = types.path;
+      description = "The folder to hold state in.";
+      default = "/var/lib/rancher/rke2";
+    };
+
+    token = mkOption {
+      type = types.str;
+      description = ''
+        Shared secret used to join a server or agent to a cluster.
+
+        > WARNING: This option will expose store your token unencrypted world-readable in the nix store.
+        If this is undesired use the `tokenFile` option instead.
+      '';
+      default = "";
+    };
+
+    tokenFile = mkOption {
+      type = types.nullOr types.path;
+      description = "File path containing rke2 token to use when connecting to the server.";
+      default = null;
+    };
+
+    disable = mkOption {
+      type = types.listOf types.str;
+      description = "Do not deploy packaged components and delete any deployed components.";
+      default = [ ];
+    };
+
+    nodeName = mkOption {
+      type = types.nullOr types.str;
+      description = "Node name.";
+      default = null;
+    };
+
+    nodeLabel = mkOption {
+      type = types.listOf types.str;
+      description = "Registering and starting kubelet with set of labels.";
+      default = [ ];
+    };
+
+    nodeTaint = mkOption {
+      type = types.listOf types.str;
+      description = "Registering kubelet with set of taints.";
+      default = [ ];
+    };
+
+    nodeIP = mkOption {
+      type = types.nullOr types.str;
+      description = "IPv4/IPv6 addresses to advertise for node.";
+      default = null;
+    };
+
+    agentToken = mkOption {
+      type = types.str;
+      description = ''
+        Shared secret used to join agents to the cluster, but not servers.
+
+        > **WARNING**: This option will expose store your token unencrypted world-readable in the nix store.
+        If this is undesired use the `agentTokenFile` option instead.
+      '';
+      default = "";
+    };
+
+    agentTokenFile = mkOption {
+      type = types.nullOr types.path;
+      description = "File path containing rke2 agent token to use when connecting to the server.";
+      default = null;
+    };
+
+    serverAddr = mkOption {
+      type = types.str;
+      description = "The rke2 server to connect to, used to join a cluster.";
+      example = "https://10.0.0.10:6443";
+      default = "";
+    };
+
+    selinux = mkOption {
+      type = types.bool;
+      description = "Enable SELinux in containerd.";
+      default = false;
+    };
+
+    cni = mkOption {
+      type = types.enum [ "none" "canal" "cilium" "calico" "flannel" ];
+      description = ''
+        CNI Plugins to deploy, one of `none`, `calico`, `canal`, `cilium` or `flannel`.
+
+        All CNI plugins get installed via a helm chart after the main components are up and running
+        and can be [customized by modifying the helm chart options](https://docs.rke2.io/helm).
+
+        [Learn more about RKE2 and CNI plugins](https://docs.rke2.io/networking/basic_network_options)
+
+        > **WARNING**: Flannel support in RKE2 is currently experimental.
+      '';
+      default = "canal";
+    };
+
+    cisHardening = mkOption {
+      type = types.bool;
+      description = ''
+        Enable CIS Hardening for RKE2.
+
+        It will set the configurations and controls required to address Kubernetes benchmark controls
+        from the Center for Internet Security (CIS).
+
+        Learn more about [CIS Hardening for RKE2](https://docs.rke2.io/security/hardening_guide).
+
+        > **NOTICE**:
+        >
+        > You may need restart the `systemd-sysctl` muaually by:
+        >
+        > ```shell
+        > sudo systemctl restart systemd-sysctl
+        > ```
+      '';
+      default = false;
+    };
+
+    extraFlags = mkOption {
+      type = types.listOf types.str;
+      description = ''
+        Extra flags to pass to the rke2 service/agent.
+
+        Here you can find all the available flags:
+
+        - [Server Configuration Reference](https://docs.rke2.io/reference/server_config)
+        - [Agent Configuration Reference](https://docs.rke2.io/reference/linux_agent_config)
+      '';
+      example = [ "--disable-kube-proxy" "--cluster-cidr=10.24.0.0/16" ];
+      default = [ ];
+    };
+
+    environmentVars = mkOption {
+      type = types.attrsOf types.str;
+      description = ''
+        Environment variables for configuring the rke2 service/agent.
+
+        Here you can find all the available environment variables:
+
+        - [Server Configuration Reference](https://docs.rke2.io/reference/server_config)
+        - [Agent Configuration Reference](https://docs.rke2.io/reference/linux_agent_config)
+
+        Besides the options above, you can also active environment variables by edit/create those files:
+
+        - `/etc/default/rke2`
+        - `/etc/sysconfig/rke2`
+        - `/usr/local/lib/systemd/system/rke2.env`
+      '';
+      # See: https://github.com/rancher/rke2/blob/master/bundle/lib/systemd/system/rke2-server.env#L1
+      default = {
+        HOME = "/root";
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    assertions = [
+      {
+        assertion = cfg.role == "agent" -> (builtins.pathExists cfg.configPath || cfg.serverAddr != "");
+        message = "serverAddr or configPath (with 'server' key) should be set if role is 'agent'";
+      }
+      {
+        assertion = cfg.role == "agent" -> (builtins.pathExists cfg.configPath || cfg.tokenFile != null || cfg.token != "");
+        message = "token or tokenFile or configPath (with 'token' or 'token-file' keys) should be set if role is 'agent'";
+      }
+      {
+        assertion = cfg.role == "agent" -> ! (cfg.agentTokenFile != null || cfg.agentToken != "");
+        message = "agentToken or agentTokenFile should be set if role is 'agent'";
+      }
+      {
+        assertion = cfg.role == "agent" -> ! (cfg.disable != [ ]);
+        message = "disable should not be set if role is 'agent'";
+      }
+      {
+        assertion = cfg.role == "agent" -> ! (cfg.cni != "canal");
+        message = "cni should not be set if role is 'agent'";
+      }
+    ];
+
+    environment.systemPackages = [ config.services.rke2.package ];
+    # To configure NetworkManager to ignore calico/flannel related network interfaces.
+    # See: https://docs.rke2.io/known_issues#networkmanager
+    environment.etc."NetworkManager/conf.d/rke2-canal.conf" = {
+      enable = config.networking.networkmanager.enable;
+      text = ''
+        [keyfile]
+        unmanaged-devices=interface-name:cali*;interface-name:flannel*
+      '';
+    };
+    # See: https://docs.rke2.io/security/hardening_guide#set-kernel-parameters
+    boot.kernel.sysctl = mkIf cfg.cisHardening {
+      "vm.panic_on_oom" = 0;
+      "vm.overcommit_memory" = 1;
+      "kernel.panic" = 10;
+      "kernel.panic_on_oops" = 1;
+    };
+
+    systemd.services.rke2 = {
+      description = "Rancher Kubernetes Engine v2";
+      documentation = [ "https://github.com/rancher/rke2#readme" ];
+      after = [ "network-online.target" ];
+      wants = [ "network-online.target" ];
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = {
+        Type = if cfg.role == "agent" then "exec" else "notify";
+        EnvironmentFile = [
+          "-/etc/default/%N"
+          "-/etc/sysconfig/%N"
+          "-/usr/local/lib/systemd/system/%N.env"
+        ];
+        Environment = mapAttrsToList (k: v: "${k}=${v}") cfg.environmentVars;
+        KillMode = "process";
+        Delegate = "yes";
+        LimitNOFILE = 1048576;
+        LimitNPROC = "infinity";
+        LimitCORE = "infinity";
+        TasksMax = "infinity";
+        TimeoutStartSec = 0;
+        Restart = "always";
+        RestartSec = "5s";
+        ExecStartPre = [
+          # There is a conflict between RKE2 and `nm-cloud-setup.service`. This service add a routing table that
+          # interfere with the CNI plugin's configuration. This script checks if the service is enabled and if so,
+          # failed the RKE2 start.
+          # See: https://github.com/rancher/rke2/issues/1053
+          (pkgs.writeScript "check-nm-cloud-setup.sh" ''
+            #! ${pkgs.runtimeShell}
+            set -x
+            ! /run/current-system/systemd/bin/systemctl is-enabled --quiet nm-cloud-setup.service
+          '')
+          "-${pkgs.kmod}/bin/modprobe br_netfilter"
+          "-${pkgs.kmod}/bin/modprobe overlay"
+        ];
+        ExecStart = "${cfg.package}/bin/rke2 '${cfg.role}' ${escapeShellArgs (
+             (optional (cfg.configPath != "/etc/rancher/rke2/config.yaml") "--config=${cfg.configPath}")
+          ++ (optional cfg.debug "--debug")
+          ++ (optional (cfg.dataDir != "/var/lib/rancher/rke2") "--data-dir=${cfg.dataDir}")
+          ++ (optional (cfg.token != "") "--token=${cfg.token}")
+          ++ (optional (cfg.tokenFile != null) "--token-file=${cfg.tokenFile}")
+          ++ (optionals (cfg.role == "server" && cfg.disable != [ ]) (map (d: "--disable=${d}") cfg.disable))
+          ++ (optional (cfg.nodeName != null) "--node-name=${cfg.nodeName}")
+          ++ (optionals (cfg.nodeLabel != [ ]) (map (l: "--node-label=${l}") cfg.nodeLabel))
+          ++ (optionals (cfg.nodeTaint != [ ]) (map (t: "--node-taint=${t}") cfg.nodeTaint))
+          ++ (optional (cfg.nodeIP != null) "--node-ip=${cfg.nodeIP}")
+          ++ (optional (cfg.role == "server" && cfg.agentToken != "") "--agent-token=${cfg.agentToken}")
+          ++ (optional (cfg.role == "server" && cfg.agentTokenFile != null) "--agent-token-file=${cfg.agentTokenFile}")
+          ++ (optional (cfg.serverAddr != "") "--server=${cfg.serverAddr}")
+          ++ (optional cfg.selinux "--selinux")
+          ++ (optional (cfg.role == "server" && cfg.cni != "canal") "--cni=${cfg.cni}")
+          ++ (optional cfg.cisHardening "--profile=${if cfg.package.version >= "1.25" then "cis-1.23" else "cis-1.6"}")
+          ++ cfg.extraFlags
+        )}";
+        ExecStopPost = let
+          killProcess = pkgs.writeScript "kill-process.sh" ''
+            #! ${pkgs.runtimeShell}
+            /run/current-system/systemd/bin/systemd-cgls /system.slice/$1 | \
+            ${pkgs.gnugrep}/bin/grep -Eo '[0-9]+ (containerd|kubelet)' | \
+            ${pkgs.gawk}/bin/awk '{print $1}' | \
+            ${pkgs.findutils}/bin/xargs -r ${pkgs.util-linux}/bin/kill
+          '';
+        in "-${killProcess} %n";
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/continuous-integration/hydra/default.nix b/nixos/modules/services/continuous-integration/hydra/default.nix
index 23f07eb64b92d..b516c3d6192cb 100644
--- a/nixos/modules/services/continuous-integration/hydra/default.nix
+++ b/nixos/modules/services/continuous-integration/hydra/default.nix
@@ -335,7 +335,7 @@ in
           mkdir -m 0700 -p ${baseDir}/queue-runner
           mkdir -m 0750 -p ${baseDir}/build-logs
           mkdir -m 0750 -p ${baseDir}/runcommand-logs
-          chown hydra-queue-runner.hydra \
+          chown hydra-queue-runner:hydra \
             ${baseDir}/queue-runner \
             ${baseDir}/build-logs \
             ${baseDir}/runcommand-logs
diff --git a/nixos/modules/services/desktop-managers/lomiri.nix b/nixos/modules/services/desktop-managers/lomiri.nix
index 0a1b86096e765..214ec17e0dc43 100644
--- a/nixos/modules/services/desktop-managers/lomiri.nix
+++ b/nixos/modules/services/desktop-managers/lomiri.nix
@@ -34,10 +34,11 @@ in {
         morph-browser
         qtmir # not having its desktop file for Xwayland available causes any X11 application to crash the session
         suru-icon-theme
-        telephony-service
+        # telephony-service # currently broken: https://github.com/NixOS/nixpkgs/pull/314043
       ]);
     };
 
+    hardware.pulseaudio.enable = lib.mkDefault true;
     networking.networkmanager.enable = lib.mkDefault true;
 
     systemd.packages = with pkgs.lomiri; [
@@ -71,11 +72,14 @@ in {
       enable = true;
       packages = (with pkgs; [
         ayatana-indicator-datetime
+        ayatana-indicator-display
         ayatana-indicator-messages
         ayatana-indicator-power
         ayatana-indicator-session
+      ] ++ lib.optionals (config.hardware.pulseaudio.enable || config.services.pipewire.pulse.enable) [
+        ayatana-indicator-sound
       ]) ++ (with pkgs.lomiri; [
-        telephony-service
+        # telephony-service # currently broken: https://github.com/NixOS/nixpkgs/pull/314043
       ] ++ lib.optionals config.networking.networkmanager.enable [
         lomiri-indicator-network
       ]);
diff --git a/nixos/modules/services/games/archisteamfarm.nix b/nixos/modules/services/games/archisteamfarm.nix
index 33898f8387e99..c9c41d6f4eb5e 100644
--- a/nixos/modules/services/games/archisteamfarm.nix
+++ b/nixos/modules/services/games/archisteamfarm.nix
@@ -164,8 +164,11 @@ in
   };
 
   config = lib.mkIf cfg.enable {
-    # TODO: drop with 24.11
-    services.archisteamfarm.dataDir = lib.mkIf (lib.versionAtLeast config.system.stateVersion "24.05") (lib.mkDefault "/var/lib/asf");
+    services.archisteamfarm = {
+      # TODO: drop with 24.11
+      dataDir = lib.mkIf (lib.versionAtLeast config.system.stateVersion "24.05") (lib.mkDefault "/var/lib/asf");
+      settings.IPC = lib.mkIf (!cfg.web-ui.enable) false;
+    };
 
     users = {
       users.archisteamfarm = {
diff --git a/nixos/modules/services/hardware/kanata.nix b/nixos/modules/services/hardware/kanata.nix
index 46af3e36b9859..60fb33881f256 100644
--- a/nixos/modules/services/hardware/kanata.nix
+++ b/nixos/modules/services/hardware/kanata.nix
@@ -7,7 +7,7 @@ let
 
   upstreamDoc = "See [the upstream documentation](https://github.com/jtroo/kanata/blob/main/docs/config.adoc) and [example config files](https://github.com/jtroo/kanata/tree/main/cfg_samples) for more information.";
 
-  keyboard = {
+  keyboard = { name, config, ... }: {
     options = {
       devices = mkOption {
         type = types.listOf types.str;
@@ -48,6 +48,21 @@ let
           ${upstreamDoc}
         '';
       };
+      configFile = mkOption {
+        type = types.path;
+        default = mkConfig name config;
+        defaultText =
+          "A config file generated by values from other kanata module options.";
+        description = ''
+          The config file.
+
+          By default, it is generated by values from other kanata
+          module options.
+
+          You can also set it to your own full config file which
+          overrides all other kanata module options.  ${upstreamDoc}
+        '';
+      };
       extraArgs = mkOption {
         type = types.listOf types.str;
         default = [ ];
@@ -85,6 +100,10 @@ let
 
       ${keyboard.config}
     '';
+    # Only the config file generated by this module is checked.  A
+    # user-provided one is not checked because it may not be available
+    # at build time.  I think this is a good balance between module
+    # complexity and functionality.
     checkPhase = ''
       ${getExe cfg.package} --cfg "$target" --check --debug
     '';
@@ -96,7 +115,7 @@ let
       Type = "notify";
       ExecStart = ''
         ${getExe cfg.package} \
-          --cfg ${mkConfig name keyboard} \
+          --cfg ${keyboard.configFile} \
           --symlink-path ''${RUNTIME_DIRECTORY}/${name} \
           ${optionalString (keyboard.port != null) "--port ${toString keyboard.port}"} \
           ${utils.escapeSystemdExecArgs keyboard.extraArgs}
diff --git a/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix b/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix
index 6c6bc667e6498..bd12667a56474 100644
--- a/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix
+++ b/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix
@@ -69,14 +69,18 @@
     virtualisation.docker.daemon.settings = lib.mkIf
       (config.hardware.nvidia-container-toolkit.enable &&
        (lib.versionAtLeast config.virtualisation.docker.package.version "25")) {
-      features.cdi = true;
-    };
+         features.cdi = true;
+       };
 
     hardware.nvidia-container-toolkit.mounts = let
       nvidia-driver = config.hardware.nvidia.package;
     in (lib.mkMerge [
       [{ hostPath = pkgs.addDriverRunpath.driverLink;
          containerPath = pkgs.addDriverRunpath.driverLink; }
+       { hostPath = "${lib.getLib nvidia-driver}/etc";
+         containerPath = "${lib.getLib nvidia-driver}/etc"; }
+       { hostPath = "${lib.getLib nvidia-driver}/share";
+         containerPath = "${lib.getLib nvidia-driver}/share"; }
        { hostPath = "${lib.getLib pkgs.glibc}/lib";
          containerPath = "${lib.getLib pkgs.glibc}/lib"; }
        { hostPath = "${lib.getLib pkgs.glibc}/lib64";
diff --git a/nixos/modules/services/home-automation/ebusd.nix b/nixos/modules/services/home-automation/ebusd.nix
index ac9ec06639c13..f5c5479e8eaff 100644
--- a/nixos/modules/services/home-automation/ebusd.nix
+++ b/nixos/modules/services/home-automation/ebusd.nix
@@ -138,7 +138,7 @@ in
       after = [ "network.target" ];
       serviceConfig = {
         ExecStart = let
-          args = cli.toGNUCommandLineShell { } (foldr (a: b: a // b) { } [
+          args = cli.toGNUCommandLineShell { optionValueSeparator = "="; } (foldr (a: b: a // b) { } [
             {
               inherit (cfg) device port configpath scanconfig readonly;
               foreground = true;
diff --git a/nixos/modules/services/home-automation/wyoming/faster-whisper.nix b/nixos/modules/services/home-automation/wyoming/faster-whisper.nix
index d0fca6a41c7b6..45664103665f7 100644
--- a/nixos/modules/services/home-automation/wyoming/faster-whisper.nix
+++ b/nixos/modules/services/home-automation/wyoming/faster-whisper.nix
@@ -113,6 +113,9 @@ in
       nameValuePair "wyoming-faster-whisper-${server}" {
         inherit (options) enable;
         description = "Wyoming faster-whisper server instance ${server}";
+        wants = [
+          "network-online.target"
+        ];
         after = [
           "network-online.target"
         ];
diff --git a/nixos/modules/services/home-automation/wyoming/openwakeword.nix b/nixos/modules/services/home-automation/wyoming/openwakeword.nix
index 856a4ef7366d0..f9848970bf734 100644
--- a/nixos/modules/services/home-automation/wyoming/openwakeword.nix
+++ b/nixos/modules/services/home-automation/wyoming/openwakeword.nix
@@ -108,6 +108,9 @@ in
   config = mkIf cfg.enable {
     systemd.services."wyoming-openwakeword" = {
       description = "Wyoming openWakeWord server";
+      wants = [
+        "network-online.target"
+      ];
       after = [
         "network-online.target"
       ];
diff --git a/nixos/modules/services/home-automation/wyoming/piper.nix b/nixos/modules/services/home-automation/wyoming/piper.nix
index 5b5f898d7ca35..a26fe8e84f609 100644
--- a/nixos/modules/services/home-automation/wyoming/piper.nix
+++ b/nixos/modules/services/home-automation/wyoming/piper.nix
@@ -117,6 +117,9 @@ in
       nameValuePair "wyoming-piper-${server}" {
         inherit (options) enable;
         description = "Wyoming Piper server instance ${server}";
+        wants = [
+          "network-online.target"
+        ];
         after = [
           "network-online.target"
         ];
diff --git a/nixos/modules/services/mail/stalwart-mail.nix b/nixos/modules/services/mail/stalwart-mail.nix
index c69a2ca400bae..68606698e59f1 100644
--- a/nixos/modules/services/mail/stalwart-mail.nix
+++ b/nixos/modules/services/mail/stalwart-mail.nix
@@ -7,28 +7,12 @@ let
   configFormat = pkgs.formats.toml { };
   configFile = configFormat.generate "stalwart-mail.toml" cfg.settings;
   dataDir = "/var/lib/stalwart-mail";
-  stalwartAtLeast = versionAtLeast cfg.package.version;
 
 in {
   options.services.stalwart-mail = {
     enable = mkEnableOption "the Stalwart all-in-one email server";
 
-    package = mkOption {
-      type = types.package;
-      description = ''
-        Which package to use for the Stalwart mail server.
-
-        ::: {.note}
-        Upgrading from version 0.6.0 to version 0.7.0 or higher requires manual
-        intervention. See <https://github.com/stalwartlabs/mail-server/blob/main/UPGRADING.md>
-        for upgrade instructions.
-        :::
-      '';
-      default = pkgs.stalwart-mail_0_6;
-      defaultText = lib.literalExpression "pkgs.stalwart-mail_0_6";
-      example = lib.literalExpression "pkgs.stalwart-mail";
-      relatedPackages = [ "stalwart-mail_0_6" "stalwart-mail" ];
-    };
+    package = mkPackageOption pkgs "stalwart-mail" { };
 
     settings = mkOption {
       inherit (configFormat) type;
@@ -44,17 +28,6 @@ in {
 
   config = mkIf cfg.enable {
 
-    warnings = lib.optionals (!stalwartAtLeast "0.7.0") [
-      ''
-        Versions of stalwart-mail < 0.7.0 will get deprecated in NixOS 24.11.
-        Please set services.stalwart-mail.package to pkgs.stalwart-mail to
-        upgrade to the latest version.
-        Please note that upgrading to version >= 0.7 requires manual
-        intervention, see <https://github.com/stalwartlabs/mail-server/blob/main/UPGRADING.md>
-        for upgrade instructions.
-      ''
-    ];
-
     # Default config: all local
     services.stalwart-mail.settings = {
       global.tracing.method = mkDefault "stdout";
@@ -70,7 +43,9 @@ in {
       storage.lookup = mkDefault "db";
       storage.blob = mkDefault "blob";
       resolver.type = mkDefault "system";
-      resolver.public-suffix = mkDefault ["https://publicsuffix.org/list/public_suffix_list.dat"];
+      resolver.public-suffix = lib.mkDefault [
+        "file://${pkgs.publicsuffix-list}/share/publicsuffix/public_suffix_list.dat"
+      ];
     };
 
     systemd.services.stalwart-mail = {
@@ -136,6 +111,6 @@ in {
   };
 
   meta = {
-    maintainers = with maintainers; [ happysalada pacien ];
+    maintainers = with maintainers; [ happysalada pacien onny ];
   };
 }
diff --git a/nixos/modules/services/misc/devpi-server.nix b/nixos/modules/services/misc/devpi-server.nix
index 0234db4bc2c5b..92c0c6206c8b3 100644
--- a/nixos/modules/services/misc/devpi-server.nix
+++ b/nixos/modules/services/misc/devpi-server.nix
@@ -74,8 +74,9 @@ in
       # have 0600 permissions.
       preStart =
         ''
-          cp ${cfg.secretFile} ${runtimeDir}/${secretsFileName}
-          chmod 0600 ${runtimeDir}/*${secretsFileName}
+          ${optionalString (!isNull cfg.secretFile)
+            "install -Dm 0600 \${CREDENTIALS_DIRECTORY}/devpi-secret ${runtimeDir}/${secretsFileName}"
+          }
 
           if [ -f ${serverDir}/.nodeinfo ]; then
             # already initialized the package index, exit gracefully
@@ -85,6 +86,9 @@ in
         + strings.optionalString cfg.replica "--role=replica --master-url=${cfg.primaryUrl}";
 
       serviceConfig = {
+        LoadCredential = lib.mkIf (! isNull cfg.secretFile) [
+          "devpi-secret:${cfg.secretFile}"
+        ];
         Restart = "always";
         ExecStart =
           let
diff --git a/nixos/modules/services/misc/invidious-router.nix b/nixos/modules/services/misc/invidious-router.nix
index 33da7e96b5235..4a08f0bcb8dcb 100644
--- a/nixos/modules/services/misc/invidious-router.nix
+++ b/nixos/modules/services/misc/invidious-router.nix
@@ -8,7 +8,7 @@
   settingsFormat = pkgs.formats.yaml {};
   configFile = settingsFormat.generate "config.yaml" cfg.settings;
 in {
-  meta.maintainers = [lib.maintainers.s1ls];
+  meta.maintainers = [lib.maintainers.sils];
 
   options.services.invidious-router = {
     enable = lib.mkEnableOption "Enables the invidious-router service";
diff --git a/nixos/modules/services/misc/ollama.nix b/nixos/modules/services/misc/ollama.nix
index c0341984aa351..6f00dbfa75312 100644
--- a/nixos/modules/services/misc/ollama.nix
+++ b/nixos/modules/services/misc/ollama.nix
@@ -11,6 +11,11 @@ let
   };
 in
 {
+  imports = [
+    (lib.mkRemovedOptionModule [ "services" "ollama" "listenAddress" ]
+      "Use `services.ollama.host` and `services.ollama.port` instead.")
+  ];
+
   options = {
     services.ollama = {
       enable = lib.mkEnableOption "ollama server for local large language models";
@@ -64,12 +69,20 @@ in
           See also `services.ollama.sandbox`.
         '';
       };
-      listenAddress = lib.mkOption {
+      host = lib.mkOption {
         type = types.str;
-        default = "127.0.0.1:11434";
-        example = "0.0.0.0:11111";
+        default = "127.0.0.1";
+        example = "0.0.0.0";
+        description = ''
+          The host address which the ollama server HTTP interface listens to.
+        '';
+      };
+      port = lib.mkOption {
+        type = types.nullOr types.ints.u16;
+        default = 11434;
+        example = 11111;
         description = ''
-          The address which the ollama server HTTP interface binds and listens to.
+          Which port the ollama server listens to. Set to `null` to not specify a port.
         '';
       };
       acceleration = lib.mkOption {
@@ -80,9 +93,9 @@ in
           What interface to use for hardware acceleration.
 
           - `null`: default behavior
-            if `nixpkgs.config.rocmSupport` is enabled, uses `"rocm"`
-            if `nixpkgs.config.cudaSupport` is enabled, uses `"cuda"`
-            otherwise defaults to `false`
+            - if `nixpkgs.config.rocmSupport` is enabled, uses `"rocm"`
+            - if `nixpkgs.config.cudaSupport` is enabled, uses `"cuda"`
+            - otherwise defaults to `false`
           - `false`: disable GPU, only use CPU
           - `"rocm"`: supported by most modern AMD GPUs
           - `"cuda"`: supported by most modern NVIDIA GPUs
@@ -114,7 +127,11 @@ in
       environment = cfg.environmentVariables // {
         HOME = cfg.home;
         OLLAMA_MODELS = cfg.models;
-        OLLAMA_HOST = cfg.listenAddress;
+        OLLAMA_HOST =
+          if cfg.port == null then
+            cfg.host
+          else
+            "${cfg.host}:${toString cfg.port}";
       };
       serviceConfig = {
         ExecStart = "${lib.getExe ollamaPackage} serve";
diff --git a/nixos/modules/services/misc/portunus.nix b/nixos/modules/services/misc/portunus.nix
index bdb35da788e3a..335806b261a23 100644
--- a/nixos/modules/services/misc/portunus.nix
+++ b/nixos/modules/services/misc/portunus.nix
@@ -98,6 +98,10 @@ in
 
           The OIDC secret must be set as the `DEX_CLIENT_''${id}` environment variable
           in the [](#opt-services.dex.environmentFile) setting.
+
+          ::: {.note}
+          Make sure the id only contains characters that are allowed in an environment variable name, e.g. no -.
+          :::
         '';
       };
 
diff --git a/nixos/modules/services/misc/snapper.nix b/nixos/modules/services/misc/snapper.nix
index 33207ac2b5bd5..a42fca5b60289 100644
--- a/nixos/modules/services/misc/snapper.nix
+++ b/nixos/modules/services/misc/snapper.nix
@@ -108,7 +108,7 @@ in
       type = types.bool;
       example = true;
       description = ''
-        Set the `persistentTimer` option for the
+        Set the `Persistent` option for the
         {manpage}`systemd.timer(5)`
         which triggers the snapshot immediately if the last trigger
         was missed (e.g. if the system was powered down).
diff --git a/nixos/modules/services/monitoring/grafana.nix b/nixos/modules/services/monitoring/grafana.nix
index 9d453c5394824..32919950adc1e 100644
--- a/nixos/modules/services/monitoring/grafana.nix
+++ b/nixos/modules/services/monitoring/grafana.nix
@@ -47,13 +47,6 @@ let
   datasourceFileOrDir = mkProvisionCfg "datasource" "datasources" cfg.provision.datasources;
   dashboardFileOrDir = mkProvisionCfg "dashboard" "providers" cfg.provision.dashboards;
 
-  notifierConfiguration = {
-    apiVersion = 1;
-    notifiers = cfg.provision.notifiers;
-  };
-
-  notifierFileOrDir = pkgs.writeText "notifier.yaml" (builtins.toJSON notifierConfiguration);
-
   generateAlertingProvisioningYaml = x:
     if (cfg.provision.alerting."${x}".path == null)
     then provisioningSettingsFormat.generate "${x}.yaml" cfg.provision.alerting."${x}".settings
@@ -74,10 +67,9 @@ let
     fi
   '';
   provisionConfDir = pkgs.runCommand "grafana-provisioning" { nativeBuildInputs = [ pkgs.xorg.lndir ]; } ''
-    mkdir -p $out/{alerting,datasources,dashboards,notifiers,plugins}
+    mkdir -p $out/{alerting,datasources,dashboards,plugins}
     ${ln { src = datasourceFileOrDir;    dir = "datasources"; filename = "datasource"; }}
     ${ln { src = dashboardFileOrDir;     dir = "dashboards";  filename = "dashboard"; }}
-    ${ln { src = notifierFileOrDir;      dir = "notifiers";   filename = "notifier"; }}
     ${ln { src = rulesFileOrDir;         dir = "alerting";    filename = "rules"; }}
     ${ln { src = contactPointsFileOrDir; dir = "alerting";    filename = "contactPoints"; }}
     ${ln { src = policiesFileOrDir;      dir = "alerting";    filename = "policies"; }}
@@ -161,73 +153,13 @@ let
       };
     };
   };
-
-  grafanaTypes.notifierConfig = types.submodule {
-    options = {
-      name = mkOption {
-        type = types.str;
-        default = "default";
-        description = "Notifier name.";
-      };
-      type = mkOption {
-        type = types.enum [ "dingding" "discord" "email" "googlechat" "hipchat" "kafka" "line" "teams" "opsgenie" "pagerduty" "prometheus-alertmanager" "pushover" "sensu" "sensugo" "slack" "telegram" "threema" "victorops" "webhook" ];
-        description = "Notifier type.";
-      };
-      uid = mkOption {
-        type = types.str;
-        description = "Unique notifier identifier.";
-      };
-      org_id = mkOption {
-        type = types.int;
-        default = 1;
-        description = "Organization ID.";
-      };
-      org_name = mkOption {
-        type = types.str;
-        default = "Main Org.";
-        description = "Organization name.";
-      };
-      is_default = mkOption {
-        type = types.bool;
-        description = "Is the default notifier.";
-        default = false;
-      };
-      send_reminder = mkOption {
-        type = types.bool;
-        default = true;
-        description = "Should the notifier be sent reminder notifications while alerts continue to fire.";
-      };
-      frequency = mkOption {
-        type = types.str;
-        default = "5m";
-        description = "How frequently should the notifier be sent reminders.";
-      };
-      disable_resolve_message = mkOption {
-        type = types.bool;
-        default = false;
-        description = "Turn off the message that sends when an alert returns to OK.";
-      };
-      settings = mkOption {
-        type = types.nullOr types.attrs;
-        default = null;
-        description = "Settings for the notifier type.";
-      };
-      secure_settings = mkOption {
-        type = types.nullOr types.attrs;
-        default = null;
-        description = ''
-          Secure settings for the notifier type. Please note that the contents of this option
-          will end up in a world-readable Nix store. Use the file provider
-          pointing at a reasonably secured file in the local filesystem
-          to work around that. Look at the documentation for details:
-          <https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#file-provider>
-        '';
-      };
-    };
-  };
 in
 {
   imports = [
+    (mkRemovedOptionModule [ "services" "grafana" "provision" "notifiers" ] ''
+      Notifiers (services.grafana.provision.notifiers) were removed in Grafana 11.
+    '')
+
     (mkRenamedOptionModule [ "services" "grafana" "protocol" ] [ "services" "grafana" "settings" "server" "protocol" ])
     (mkRenamedOptionModule [ "services" "grafana" "addr" ] [ "services" "grafana" "settings" "server" "http_addr" ])
     (mkRenamedOptionModule [ "services" "grafana" "port" ] [ "services" "grafana" "settings" "server" "http_port" ])
@@ -1256,15 +1188,6 @@ in
         };
       };
 
-
-      notifiers = mkOption {
-        description = "Grafana notifier configuration.";
-        default = [ ];
-        type = types.listOf grafanaTypes.notifierConfig;
-        apply = x: map _filter x;
-      };
-
-
       alerting = {
         rules = {
           path = mkOption {
@@ -1746,12 +1669,6 @@ in
             Use file provider or an env-var instead.
           '';
 
-        # Warn about deprecated notifiers.
-        deprecatedNotifiers = optional (cfg.provision.notifiers != [ ]) ''
-          Notifiers are deprecated upstream and will be removed in Grafana 11.
-          Use `services.grafana.provision.alerting.contactPoints` instead.
-        '';
-
         # Ensure that `secureJsonData` of datasources provisioned via `datasources.settings`
         # only uses file/env providers.
         secureJsonDataWithoutFileProvider = optional
@@ -1770,15 +1687,10 @@ in
             Declarations in the `secureJsonData`-block of a datasource will be leaked to the
             Nix store unless a file-provider or an env-var is used!
           '';
-
-        notifierSecureSettingsWithoutFileProvider = optional
-          (any (x: x.secure_settings != null) cfg.provision.notifiers)
-          "Notifier secure settings will be stored as plaintext in the Nix store! Use file provider instead.";
       in
       passwordWithoutFileProvider
-      ++ deprecatedNotifiers
       ++ secureJsonDataWithoutFileProvider
-      ++ notifierSecureSettingsWithoutFileProvider;
+      ;
 
     environment.systemPackages = [ cfg.package ];
 
diff --git a/nixos/modules/services/networking/kea.nix b/nixos/modules/services/networking/kea.nix
index 66173c145d16a..11add600b66fb 100644
--- a/nixos/modules/services/networking/kea.nix
+++ b/nixos/modules/services/networking/kea.nix
@@ -278,6 +278,9 @@ in
         "https://kea.readthedocs.io/en/kea-${package.version}/arm/agent.html"
       ];
 
+      wants = [
+        "network-online.target"
+      ];
       after = [
         "network-online.target"
         "time-sync.target"
diff --git a/nixos/modules/services/networking/oink.nix b/nixos/modules/services/networking/oink.nix
new file mode 100644
index 0000000000000..cd0fdf172331d
--- /dev/null
+++ b/nixos/modules/services/networking/oink.nix
@@ -0,0 +1,84 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.oink;
+  makeOinkConfig = attrs: (pkgs.formats.json { }).generate
+    "oink.json" (mapAttrs' (k: v: nameValuePair (toLower k) v) attrs);
+  oinkConfig = makeOinkConfig {
+    global = cfg.settings;
+    domains = cfg.domains;
+  };
+in
+{
+  options.services.oink = {
+    enable = mkEnableOption "Oink, a dynamic DNS client for Porkbun";
+    package = mkPackageOption pkgs "oink" { };
+    settings = {
+      apiKey = mkOption {
+        type = types.str;
+        description = "API key to use when modifying DNS records.";
+      };
+      secretApiKey = mkOption {
+        type = types.str;
+        description = "Secret API key to use when modifying DNS records.";
+      };
+      interval = mkOption {
+        # https://github.com/rlado/oink/blob/v1.1.1/src/main.go#L364
+        type = types.ints.between 60 172800; # 48 hours
+        default = 900;
+        description = "Seconds to wait before sending another request.";
+      };
+      ttl = mkOption {
+        type = types.ints.between 600 172800;
+        default = 600;
+        description = ''
+          The TTL ("Time to Live") value to set for your DNS records.
+
+          The TTL controls how long in seconds your records will be cached
+          for. A smaller value will allow the record to update quicker.
+        '';
+      };
+    };
+    domains = mkOption {
+      type = with types; listOf (attrsOf anything);
+      default = [];
+      example = [
+        {
+          domain = "nixos.org";
+          subdomain = "";
+          ttl = 1200;
+        }
+        {
+          domain = "nixos.org";
+          subdomain = "hydra";
+        }
+      ];
+      description = ''
+        List of attribute sets containing configuration for each domain.
+
+        Each attribute set must have two attributes, one named *domain*
+        and another named *subdomain*. The domain attribute must specify
+        the root domain that you want to configure, and the subdomain
+        attribute must specify its subdomain if any. If you want to
+        configure the root domain rather than a subdomain, leave the
+        subdomain attribute as an empty string.
+
+        Additionally, you can use attributes from *services.oink.settings*
+        to override settings per-domain.
+
+        Every domain listed here *must* have API access enabled in
+        Porkbun's control panel.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.oink = {
+      description = "Dynamic DNS client for Porkbun";
+      wantedBy = [ "multi-user.target" ];
+      script = "${cfg.package}/bin/oink -c ${oinkConfig}";
+    };
+  };
+}
diff --git a/nixos/modules/services/networking/ssh/sshd.nix b/nixos/modules/services/networking/ssh/sshd.nix
index 0fdb708bf052f..d877a80798cd8 100644
--- a/nixos/modules/services/networking/ssh/sshd.nix
+++ b/nixos/modules/services/networking/ssh/sshd.nix
@@ -5,11 +5,11 @@ with lib;
 let
 
   # The splicing information needed for nativeBuildInputs isn't available
-  # on the derivations likely to be used as `cfgc.package`.
+  # on the derivations likely to be used as `cfg.package`.
   # This middle-ground solution ensures *an* sshd can do their basic validation
   # on the configuration.
   validationPackage = if pkgs.stdenv.buildPlatform == pkgs.stdenv.hostPlatform
-    then cfgc.package
+    then cfg.package
     else pkgs.buildPackages.openssh;
 
   # dont use the "=" operator
@@ -169,6 +169,13 @@ in
         '';
       };
 
+      package = mkOption {
+        type = types.package;
+        default = config.programs.ssh.package;
+        defaultText = literalExpression "programs.ssh.package";
+        description = "OpenSSH package to use for sshd.";
+      };
+
       startWhenNeeded = mkOption {
         type = types.bool;
         default = false;
@@ -544,8 +551,8 @@ in
       };
     users.groups.sshd = {};
 
-    services.openssh.moduliFile = mkDefault "${cfgc.package}/etc/ssh/moduli";
-    services.openssh.sftpServerExecutable = mkDefault "${cfgc.package}/libexec/sftp-server";
+    services.openssh.moduliFile = mkDefault "${cfg.package}/etc/ssh/moduli";
+    services.openssh.sftpServerExecutable = mkDefault "${cfg.package}/libexec/sftp-server";
 
     environment.etc = authKeysFiles // authPrincipalsFiles //
       { "ssh/moduli".source = cfg.moduliFile;
@@ -559,7 +566,7 @@ in
             wantedBy = optional (!cfg.startWhenNeeded) "multi-user.target";
             after = [ "network.target" ];
             stopIfChanged = false;
-            path = [ cfgc.package pkgs.gawk ];
+            path = [ cfg.package pkgs.gawk ];
             environment.LD_LIBRARY_PATH = nssModulesPath;
 
             restartTriggers = optionals (!cfg.startWhenNeeded) [
@@ -593,7 +600,7 @@ in
             serviceConfig =
               { ExecStart =
                   (optionalString cfg.startWhenNeeded "-") +
-                  "${cfgc.package}/bin/sshd " + (optionalString cfg.startWhenNeeded "-i ") +
+                  "${cfg.package}/bin/sshd " + (optionalString cfg.startWhenNeeded "-i ") +
                   "-D " +  # don't detach into a daemon process
                   "-f /etc/ssh/sshd_config";
                 KillMode = "process";
diff --git a/nixos/modules/services/networking/wireguard.nix b/nixos/modules/services/networking/wireguard.nix
index 3f68af3a86c96..81abae2c9303d 100644
--- a/nixos/modules/services/networking/wireguard.nix
+++ b/nixos/modules/services/networking/wireguard.nix
@@ -80,6 +80,15 @@ let
         description = "Commands called at the end of the interface setup.";
       };
 
+      preShutdown = mkOption {
+        example = literalExpression ''"''${pkgs.iproute2}/bin/ip netns del foo"'';
+        default = "";
+        type = with types; coercedTo (listOf str) (concatStringsSep "\n") lines;
+        description = ''
+          Commands called before shutting down the interface.
+        '';
+      };
+
       postShutdown = mkOption {
         example = literalExpression ''"''${pkgs.openresolv}/bin/resolvconf -d wg0"'';
         default = "";
@@ -497,6 +506,7 @@ let
         '';
 
         postStop = ''
+          ${values.preShutdown}
           ${ipPostMove} link del dev "${name}"
           ${values.postShutdown}
         '';
diff --git a/nixos/modules/services/security/bitwarden-directory-connector-cli.nix b/nixos/modules/services/security/bitwarden-directory-connector-cli.nix
index d21322caf4c33..fef4a88648979 100644
--- a/nixos/modules/services/security/bitwarden-directory-connector-cli.nix
+++ b/nixos/modules/services/security/bitwarden-directory-connector-cli.nix
@@ -260,6 +260,7 @@ in {
         description = "Sync timer for Bitwarden Directory Connector";
         wantedBy = ["timers.target"];
         after = ["network-online.target"];
+        wants = ["network-online.target"];
         timerConfig = {
           OnCalendar = cfg.interval;
           Unit = "bitwarden-directory-connector-cli.service";
diff --git a/nixos/modules/services/security/oauth2-proxy-nginx.nix b/nixos/modules/services/security/oauth2-proxy-nginx.nix
index 07192e7287b05..44bf56233e95e 100644
--- a/nixos/modules/services/security/oauth2-proxy-nginx.nix
+++ b/nixos/modules/services/security/oauth2-proxy-nginx.nix
@@ -83,6 +83,15 @@ in
   } ++ (lib.mapAttrsToList (vhost: conf: {
     virtualHosts.${vhost} = {
       locations = {
+        "/".extraConfig = ''
+          # pass information via X-User and X-Email headers to backend, requires running with --set-xauthrequest flag
+          proxy_set_header X-User  $user;
+          proxy_set_header X-Email $email;
+
+          # if you enabled --cookie-refresh, this is needed for it to work with auth_request
+          add_header Set-Cookie $auth_cookie;
+        '';
+
         "/oauth2/auth" = let
           maybeQueryArg = name: value:
             if value == null then null
@@ -102,6 +111,7 @@ in
             proxy_pass_request_body           off;
           '';
         };
+
         "@redirectToAuth2ProxyLogin" = {
           return = "307 https://${cfg.domain}/oauth2/start?rd=$scheme://$host$request_uri";
           extraConfig = ''
@@ -114,16 +124,10 @@ in
         auth_request /oauth2/auth;
         error_page 401 = @redirectToAuth2ProxyLogin;
 
-        # pass information via X-User and X-Email headers to backend,
-        # requires running with --set-xauthrequest flag
+        # set variables being used in locations."/".extraConfig
         auth_request_set $user   $upstream_http_x_auth_request_user;
         auth_request_set $email  $upstream_http_x_auth_request_email;
-        proxy_set_header X-User  $user;
-        proxy_set_header X-Email $email;
-
-        # if you enabled --cookie-refresh, this is needed for it to work with auth_request
         auth_request_set $auth_cookie $upstream_http_set_cookie;
-        add_header Set-Cookie $auth_cookie;
       '';
     };
   }) cfg.virtualHosts)));
diff --git a/nixos/modules/services/system/dbus.nix b/nixos/modules/services/system/dbus.nix
index 26f4eba707f92..d84136125f934 100644
--- a/nixos/modules/services/system/dbus.nix
+++ b/nixos/modules/services/system/dbus.nix
@@ -128,10 +128,14 @@ in
         contents."/etc/dbus-1".source = pkgs.makeDBusConf {
           inherit (cfg) apparmor;
           suidHelper = "/bin/false";
-          serviceDirectories = [ pkgs.dbus ];
+          serviceDirectories = [ pkgs.dbus config.boot.initrd.systemd.package ];
         };
         packages = [ pkgs.dbus ];
-        storePaths = [ "${pkgs.dbus}/bin/dbus-daemon" ];
+        storePaths = [
+          "${pkgs.dbus}/bin/dbus-daemon"
+          "${config.boot.initrd.systemd.package}/share/dbus-1/system-services"
+          "${config.boot.initrd.systemd.package}/share/dbus-1/system.d"
+        ];
         targets.sockets.wants = [ "dbus.socket" ];
       };
     })
diff --git a/nixos/modules/services/video/frigate.nix b/nixos/modules/services/video/frigate.nix
index 0e6bde447c033..c3ec4a3c76c34 100644
--- a/nixos/modules/services/video/frigate.nix
+++ b/nixos/modules/services/video/frigate.nix
@@ -427,10 +427,6 @@ in
         PrivateTmp = true;
         CacheDirectory = "frigate";
         CacheDirectoryMode = "0750";
-
-        BindPaths = [
-          "/migrations:${cfg.package}/share/frigate/migrations:ro"
-        ];
       };
     };
   };
diff --git a/nixos/modules/services/wayland/hypridle.nix b/nixos/modules/services/wayland/hypridle.nix
new file mode 100644
index 0000000000000..5442802df9871
--- /dev/null
+++ b/nixos/modules/services/wayland/hypridle.nix
@@ -0,0 +1,26 @@
+{ lib, pkgs, config, ... }:
+
+let
+  cfg = config.services.hypridle;
+in
+{
+  options.services.hypridle = {
+    enable = lib.mkEnableOption "hypridle, Hyprland's idle daemon";
+    package = lib.mkPackageOption pkgs "hypridle" { };
+  };
+
+  config = lib.mkIf cfg.enable {
+    environment.systemPackages = [
+      cfg.package
+    ];
+
+    systemd.user.services.hypridle = {
+      description = "Hypridle idle daemon";
+      wantedBy = [ "graphical-session.target" ];
+      partOf = [ "graphical-session.target" ];
+      script = lib.getExe cfg.package;
+    };
+  };
+
+  meta.maintainers = with lib.maintainers; [ johnrtitor ];
+}
diff --git a/nixos/modules/services/web-apps/firefly-iii.nix b/nixos/modules/services/web-apps/firefly-iii.nix
index b0024ce09c38e..6b383139c8911 100644
--- a/nixos/modules/services/web-apps/firefly-iii.nix
+++ b/nixos/modules/services/web-apps/firefly-iii.nix
@@ -3,8 +3,8 @@
 let
   inherit (lib) optionalString mkDefault mkIf mkOption mkEnableOption literalExpression;
   inherit (lib.types) nullOr attrsOf oneOf str int bool path package enum submodule;
-  inherit (lib.strings) concatMapStringsSep removePrefix toShellVars removeSuffix hasSuffix;
-  inherit (lib.attrsets) attrValues genAttrs filterAttrs mapAttrs' nameValuePair;
+  inherit (lib.strings) concatLines removePrefix toShellVars removeSuffix hasSuffix;
+  inherit (lib.attrsets) mapAttrsToList attrValues genAttrs filterAttrs mapAttrs' nameValuePair;
   inherit (builtins) isInt isString toString typeOf;
 
   cfg = config.services.firefly-iii;
@@ -21,18 +21,10 @@ let
     (filterAttrs (n: v: hasSuffix "_FILE" n) cfg.settings);
   env-nonfile-values = filterAttrs (n: v: ! hasSuffix "_FILE" n) cfg.settings;
 
-  envfile = pkgs.writeText "firefly-iii-env" ''
-    ${toShellVars env-file-values}
-    ${toShellVars env-nonfile-values}
-  '';
-
   fileenv-func = ''
-    cp --no-preserve=mode ${envfile} /tmp/firefly-iii-env
-    ${concatMapStringsSep "\n"
-      (n: "${pkgs.replace-secret}/bin/replace-secret ${n} ${n} /tmp/firefly-iii-env")
-      (attrValues env-file-values)}
     set -a
-    . /tmp/firefly-iii-env
+    ${toShellVars env-nonfile-values}
+    ${concatLines (mapAttrsToList (n: v: "${n}=\"$(< ${v})\"") env-file-values)}
     set +a
   '';
 
@@ -41,15 +33,13 @@ let
 
     ${optionalString (cfg.settings.DB_CONNECTION == "sqlite")
       "touch ${cfg.dataDir}/storage/database/database.sqlite"}
-    ${artisan} migrate --seed --no-interaction --force
-    ${artisan} firefly-iii:decrypt-all
+    ${artisan} package:discover
     ${artisan} firefly-iii:upgrade-database
-    ${artisan} firefly-iii:correct-database
-    ${artisan} firefly-iii:report-integrity
     ${artisan} firefly-iii:laravel-passport-keys
     ${artisan} cache:clear
-
-    mv /tmp/firefly-iii-env /run/phpfpm/firefly-iii-env
+    ${artisan} view:cache
+    ${artisan} route:cache
+    ${artisan} config:cache
   '';
 
   commonServiceConfig = {
@@ -146,6 +136,7 @@ in {
 
     virtualHost = mkOption {
       type = str;
+      default = "localhost";
       description = ''
         The hostname at which you wish firefly-iii to be served. If you have
         enabled nginx using `services.firefly-iii.enableNginx` then this will
@@ -170,14 +161,15 @@ in {
     };
 
     settings = mkOption {
+      default = {};
       description = ''
         Options for firefly-iii configuration. Refer to
         <https://github.com/firefly-iii/firefly-iii/blob/main/.env.example> for
         details on supported values. All <option>_FILE values supported by
         upstream are supported here.
 
-        APP_URL will be set by `services.firefly-iii.virtualHost`, do not
-        redefine it here.
+        APP_URL will be the same as `services.firefly-iii.virtualHost` if the
+        former is unset in `services.firefly-iii.settings`.
       '';
       example = literalExpression ''
         {
@@ -192,7 +184,6 @@ in {
           DB_PASSWORD_FILE = "/var/secrets/firefly-iii-mysql-password.txt;
         }
       '';
-      default = {};
       type = submodule {
         freeformType = attrsOf (oneOf [str int bool]);
         options = {
@@ -216,9 +207,9 @@ in {
           };
           DB_PORT = mkOption {
             type = nullOr int;
-            default = if cfg.settings.DB_CONNECTION == "sqlite" then null
+            default = if cfg.settings.DB_CONNECTION == "pgsql" then 5432
                       else if cfg.settings.DB_CONNECTION == "mysql" then 3306
-                      else 5432;
+                      else null;
             defaultText = ''
               `null` if DB_CONNECTION is "sqlite", `3306` if "mysql", `5432` if "pgsql"
             '';
@@ -227,6 +218,21 @@ in {
               this value to be filled.
             '';
           };
+          DB_HOST = mkOption {
+            type = str;
+            default = if cfg.settings.DB_CONNECTION == "pgsql" then "/run/postgresql"
+                      else "localhost";
+            defaultText = ''
+              "localhost" if DB_CONNECTION is "sqlite" or "mysql", "/run/postgresql" if "pgsql".
+            '';
+            description = ''
+              The machine which hosts your database. This is left at the
+              default value for "mysql" because we use the "DB_SOCKET" option
+              to connect to a unix socket instead. "pgsql" requires that the
+              unix socket location be specified here instead of at "DB_SOCKET".
+              This option does not affect "sqlite".
+            '';
+          };
           APP_KEY_FILE = mkOption {
             type = path;
             description = ''
@@ -235,6 +241,20 @@ in {
               /dev/urandom | base64)" > /path/to/key-file`.
             '';
           };
+          APP_URL = mkOption {
+            type = str;
+            default = if cfg.virtualHost == "localhost" then "http://${cfg.virtualHost}"
+                      else "https://${cfg.virtualHost}";
+            defaultText = ''
+              http(s)://''${config.services.firefly-iii.virtualHost}
+            '';
+            description = ''
+              The APP_URL used by firefly-iii internally. Please make sure this
+              URL matches the external URL of your Firefly III installation. It
+              is used to validate specific requests and to generate URLs in
+              emails.
+            '';
+          };
         };
       };
     };
@@ -242,12 +262,6 @@ in {
 
   config = mkIf cfg.enable {
 
-    services.firefly-iii = {
-      settings = {
-        APP_URL = cfg.virtualHost;
-      };
-    };
-
     services.phpfpm.pools.firefly-iii = {
       inherit user group;
       phpPackage = cfg.package.phpPackage;
@@ -262,29 +276,27 @@ in {
       } // cfg.poolConfig;
     };
 
-    systemd.services.phpfpm-firefly-iii.serviceConfig = {
-      EnvironmentFile = "/run/phpfpm/firefly-iii-env";
-      ExecStartPost = "${pkgs.coreutils}/bin/rm /run/phpfpm/firefly-iii-env";
-    };
-
     systemd.services.firefly-iii-setup = {
+      after = [ "postgresql.service" "mysql.service" ];
       requiredBy = [ "phpfpm-firefly-iii.service" ];
       before = [ "phpfpm-firefly-iii.service" ];
       serviceConfig = {
         ExecStart = firefly-iii-maintenance;
         RuntimeDirectory = "phpfpm";
         RuntimeDirectoryPreserve = true;
+        RemainAfterExit = true;
       } // commonServiceConfig;
       unitConfig.JoinsNamespaceOf = "phpfpm-firefly-iii.service";
+      restartTriggers = [ cfg.package ];
     };
 
     systemd.services.firefly-iii-cron = {
+      after = [ "firefly-iii-setup.service" "postgresql.service" "mysql.service" ];
+      wants = [ "firefly-iii-setup.service" ];
       description = "Daily Firefly III cron job";
-      script = ''
-        ${fileenv-func}
-        ${artisan} firefly-iii:cron
-      '';
-      serviceConfig = commonServiceConfig;
+      serviceConfig = {
+        ExecStart = "${artisan} firefly-iii:cron";
+      } // commonServiceConfig;
     };
 
     systemd.timers.firefly-iii-cron = {
@@ -295,6 +307,7 @@ in {
         Persistent = true;
       };
       wantedBy = [ "timers.target" ];
+      restartTriggers = [ cfg.package ];
     };
 
     services.nginx = mkIf cfg.enableNginx {
diff --git a/nixos/modules/services/web-apps/nextjs-ollama-llm-ui.nix b/nixos/modules/services/web-apps/nextjs-ollama-llm-ui.nix
new file mode 100644
index 0000000000000..d58210c8d9610
--- /dev/null
+++ b/nixos/modules/services/web-apps/nextjs-ollama-llm-ui.nix
@@ -0,0 +1,87 @@
+{
+  config,
+  pkgs,
+  lib,
+  ...
+}:
+let
+  cfg = config.services.nextjs-ollama-llm-ui;
+  # we have to override the URL to a Ollama service here, because it gets baked into the web app.
+  nextjs-ollama-llm-ui = cfg.package.override { ollamaUrl = "https://ollama.lambdablob.com"; };
+in
+{
+  options = {
+    services.nextjs-ollama-llm-ui = {
+      enable = lib.mkEnableOption ''
+        Simple Ollama web UI service; an easy to use web frontend for a Ollama backend service.
+        Run state-of-the-art AI large language models (LLM) similar to ChatGPT locally with privacy
+        on your personal computer.
+        This service is stateless and doesn't store any data on the server; all data is kept
+        locally in your web browser.
+        See https://github.com/jakobhoeg/nextjs-ollama-llm-ui.
+
+        Required: You need the Ollama backend service running by having
+        "services.nextjs-ollama-llm-ui.ollamaUrl" point to the correct url.
+        You can host such a backend service with NixOS through "services.ollama".
+      '';
+      package = lib.mkPackageOption pkgs "nextjs-ollama-llm-ui" { };
+
+      hostname = lib.mkOption {
+        type = lib.types.str;
+        default = "127.0.0.1";
+        example = "ui.example.org";
+        description = ''
+          The hostname under which the Ollama UI interface should be accessible.
+          By default it uses localhost/127.0.0.1 to be accessible only from the local machine.
+          Change to "0.0.0.0" to make it directly accessible from the local network.
+
+          Note: You should keep it at 127.0.0.1 and only serve to the local
+          network or internet from a (home) server behind a reverse-proxy and secured encryption.
+          See https://wiki.nixos.org/wiki/Nginx for instructions on how to set up a reverse-proxy.
+        '';
+      };
+
+      port = lib.mkOption {
+        type = lib.types.port;
+        default = 3000;
+        example = 3000;
+        description = ''
+          The port under which the Ollama UI interface should be accessible.
+        '';
+      };
+
+      ollamaUrl = lib.mkOption {
+        type = lib.types.str;
+        default = "127.0.0.1:11434";
+        example = "https://ollama.example.org";
+        description = ''
+          The address (including host and port) under which we can access the Ollama backend server.
+          !Note that if the the UI service is running under a domain "https://ui.example.org",
+          the Ollama backend service must allow "CORS" requests from this domain, e.g. by adding
+          "services.ollama.environment.OLLAMA_ORIGINS = [ ... "https://ui.example.org" ];"!
+        '';
+      };
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    systemd.services = {
+
+      nextjs-ollama-llm-ui = {
+        wantedBy = [ "multi-user.target" ];
+        description = "Nextjs Ollama LLM Ui.";
+        after = [ "network.target" ];
+        environment = {
+          HOSTNAME = cfg.hostname;
+          PORT = toString cfg.port;
+          NEXT_PUBLIC_OLLAMA_URL = cfg.ollamaUrl;
+        };
+        serviceConfig = {
+          ExecStart = "${lib.getExe nextjs-ollama-llm-ui}";
+          DynamicUser = true;
+        };
+      };
+    };
+  };
+  meta.maintainers = with lib.maintainers; [ malteneuss ];
+}
diff --git a/nixos/modules/system/boot/resolved.nix b/nixos/modules/system/boot/resolved.nix
index 64a15179438fe..b658a7a2dc05e 100644
--- a/nixos/modules/system/boot/resolved.nix
+++ b/nixos/modules/system/boot/resolved.nix
@@ -7,6 +7,20 @@ let
   dnsmasqResolve = config.services.dnsmasq.enable &&
                    config.services.dnsmasq.resolveLocalQueries;
 
+  resolvedConf = ''
+    [Resolve]
+    ${optionalString (config.networking.nameservers != [])
+      "DNS=${concatStringsSep " " config.networking.nameservers}"}
+    ${optionalString (cfg.fallbackDns != null)
+      "FallbackDNS=${concatStringsSep " " cfg.fallbackDns}"}
+    ${optionalString (cfg.domains != [])
+      "Domains=${concatStringsSep " " cfg.domains}"}
+    LLMNR=${cfg.llmnr}
+    DNSSEC=${cfg.dnssec}
+    DNSOverTLS=${cfg.dnsovertls}
+    ${config.services.resolved.extraConfig}
+  '';
+
 in
 {
 
@@ -126,60 +140,87 @@ in
       '';
     };
 
-  };
-
-  config = mkIf cfg.enable {
-
-    assertions = [
-      { assertion = !config.networking.useHostResolvConf;
-        message = "Using host resolv.conf is not supported with systemd-resolved";
-      }
-    ];
-
-    users.users.systemd-resolve.group = "systemd-resolve";
-
-    # add resolve to nss hosts database if enabled and nscd enabled
-    # system.nssModules is configured in nixos/modules/system/boot/systemd.nix
-    # added with order 501 to allow modules to go before with mkBefore
-    system.nssDatabases.hosts = (mkOrder 501 ["resolve [!UNAVAIL=return]"]);
-
-    systemd.additionalUpstreamSystemUnits = [
-      "systemd-resolved.service"
-    ];
-
-    systemd.services.systemd-resolved = {
-      wantedBy = [ "multi-user.target" ];
-      aliases = [ "dbus-org.freedesktop.resolve1.service" ];
-      restartTriggers = [ config.environment.etc."systemd/resolved.conf".source ];
-    };
-
-    environment.etc = {
-      "systemd/resolved.conf".text = ''
-        [Resolve]
-        ${optionalString (config.networking.nameservers != [])
-          "DNS=${concatStringsSep " " config.networking.nameservers}"}
-        ${optionalString (cfg.fallbackDns != null)
-          "FallbackDNS=${concatStringsSep " " cfg.fallbackDns}"}
-        ${optionalString (cfg.domains != [])
-          "Domains=${concatStringsSep " " cfg.domains}"}
-        LLMNR=${cfg.llmnr}
-        DNSSEC=${cfg.dnssec}
-        DNSOverTLS=${cfg.dnsovertls}
-        ${config.services.resolved.extraConfig}
+    boot.initrd.services.resolved.enable = mkOption {
+      default = config.boot.initrd.systemd.network.enable;
+      defaultText = "config.boot.initrd.systemd.network.enable";
+      description = ''
+        Whether to enable resolved for stage 1 networking.
+        Uses the toplevel 'services.resolved' options for 'resolved.conf'
       '';
-
-      # symlink the dynamic stub resolver of resolv.conf as recommended by upstream:
-      # https://www.freedesktop.org/software/systemd/man/systemd-resolved.html#/etc/resolv.conf
-      "resolv.conf".source = "/run/systemd/resolve/stub-resolv.conf";
-    } // optionalAttrs dnsmasqResolve {
-      "dnsmasq-resolv.conf".source = "/run/systemd/resolve/resolv.conf";
     };
 
-    # If networkmanager is enabled, ask it to interface with resolved.
-    networking.networkmanager.dns = "systemd-resolved";
-
-    networking.resolvconf.package = pkgs.systemd;
-
   };
 
+  config = mkMerge [
+    (mkIf cfg.enable {
+
+      assertions = [
+        { assertion = !config.networking.useHostResolvConf;
+          message = "Using host resolv.conf is not supported with systemd-resolved";
+        }
+      ];
+
+      users.users.systemd-resolve.group = "systemd-resolve";
+
+      # add resolve to nss hosts database if enabled and nscd enabled
+      # system.nssModules is configured in nixos/modules/system/boot/systemd.nix
+      # added with order 501 to allow modules to go before with mkBefore
+      system.nssDatabases.hosts = (mkOrder 501 ["resolve [!UNAVAIL=return]"]);
+
+      systemd.additionalUpstreamSystemUnits = [
+        "systemd-resolved.service"
+      ];
+
+      systemd.services.systemd-resolved = {
+        wantedBy = [ "sysinit.target" ];
+        aliases = [ "dbus-org.freedesktop.resolve1.service" ];
+        restartTriggers = [ config.environment.etc."systemd/resolved.conf".source ];
+      };
+
+      environment.etc = {
+        "systemd/resolved.conf".text = resolvedConf;
+
+        # symlink the dynamic stub resolver of resolv.conf as recommended by upstream:
+        # https://www.freedesktop.org/software/systemd/man/systemd-resolved.html#/etc/resolv.conf
+        "resolv.conf".source = "/run/systemd/resolve/stub-resolv.conf";
+      } // optionalAttrs dnsmasqResolve {
+        "dnsmasq-resolv.conf".source = "/run/systemd/resolve/resolv.conf";
+      };
+
+      # If networkmanager is enabled, ask it to interface with resolved.
+      networking.networkmanager.dns = "systemd-resolved";
+
+      networking.resolvconf.package = pkgs.systemd;
+
+    })
+
+    (mkIf config.boot.initrd.services.resolved.enable {
+
+      assertions = [
+        {
+          assertion = config.boot.initrd.systemd.enable;
+          message = "'boot.initrd.services.resolved.enable' can only be enabled with systemd stage 1.";
+        }
+      ];
+
+      boot.initrd.systemd = {
+        contents = {
+          "/etc/tmpfiles.d/resolv.conf".text =
+            "L /etc/resolv.conf - - - - /run/systemd/resolve/stub-resolv.conf";
+          "/etc/systemd/resolved.conf".text = resolvedConf;
+        };
+
+        additionalUpstreamUnits = ["systemd-resolved.service"];
+        users.systemd-resolve = {};
+        groups.systemd-resolve = {};
+        storePaths = ["${config.boot.initrd.systemd.package}/lib/systemd/systemd-resolved"];
+        services.systemd-resolved = {
+          wantedBy = ["sysinit.target"];
+          aliases = [ "dbus-org.freedesktop.resolve1.service" ];
+        };
+      };
+
+    })
+  ];
+
 }
diff --git a/nixos/modules/system/boot/systemd/sysusers.nix b/nixos/modules/system/boot/systemd/sysusers.nix
index de70009705973..476251e140456 100644
--- a/nixos/modules/system/boot/systemd/sysusers.nix
+++ b/nixos/modules/system/boot/systemd/sysusers.nix
@@ -12,7 +12,7 @@ let
     ${lib.concatLines (lib.mapAttrsToList
       (username: opts:
         let
-          uid = if opts.uid == null then "-" else toString opts.uid;
+          uid = if opts.uid == null then "/var/lib/nixos/uid/${username}" else toString opts.uid;
         in
           ''u ${username} ${uid}:${opts.group} "${opts.description}" ${opts.home} ${utils.toShellPath opts.shell}''
       )
@@ -21,7 +21,7 @@ let
 
     # Groups
     ${lib.concatLines (lib.mapAttrsToList
-      (groupname: opts: ''g ${groupname} ${if opts.gid == null then "-" else toString opts.gid}'') userCfg.groups)
+      (groupname: opts: ''g ${groupname} ${if opts.gid == null then "/var/lib/nixos/gid/${groupname}" else toString opts.gid}'') userCfg.groups)
     }
 
     # Group membership
@@ -106,6 +106,23 @@ in
             };
           })
           (lib.filterAttrs (_username: opts: opts.home != "/var/empty") userCfg.users);
+
+        # Create uid/gid marker files for those without an explicit id
+        tmpfiles.settings.nixos-uid = lib.mapAttrs'
+          (username: opts: lib.nameValuePair "/var/lib/nixos/uid/${username}" {
+            f = {
+              user = username;
+            };
+          })
+          (lib.filterAttrs (_username: opts: opts.uid == null) userCfg.users);
+
+        tmpfiles.settings.nixos-gid = lib.mapAttrs'
+          (groupname: opts: lib.nameValuePair "/var/lib/nixos/gid/${groupname}" {
+            f = {
+              group = groupname;
+            };
+          })
+          (lib.filterAttrs (_groupname: opts: opts.gid == null) userCfg.groups);
       })
 
       (lib.mkIf config.users.mutableUsers {
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index 8146a9b86026f..a2408a43ecc92 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -616,6 +616,7 @@ in {
   # TODO: put in networking.nix after the test becomes more complete
   networkingProxy = handleTest ./networking-proxy.nix {};
   nextcloud = handleTest ./nextcloud {};
+  nextjs-ollama-llm-ui = runTest ./web-apps/nextjs-ollama-llm-ui.nix;
   nexus = handleTest ./nexus.nix {};
   # TODO: Test nfsv3 + Kerberos
   nfs3 = handleTest ./nfs { version = 3; };
@@ -799,6 +800,7 @@ in {
   restic-rest-server = handleTest ./restic-rest-server.nix {};
   restic = handleTest ./restic.nix {};
   retroarch = handleTest ./retroarch.nix {};
+  rke2 = handleTestOn ["aarch64-linux" "x86_64-linux"] ./rke2 {};
   rkvm = handleTest ./rkvm {};
   robustirc-bridge = handleTest ./robustirc-bridge.nix {};
   roundcube = handleTest ./roundcube.nix {};
@@ -930,6 +932,7 @@ in {
   systemd-oomd = handleTest ./systemd-oomd.nix {};
   systemd-portabled = handleTest ./systemd-portabled.nix {};
   systemd-repart = handleTest ./systemd-repart.nix {};
+  systemd-resolved = handleTest ./systemd-resolved.nix {};
   systemd-shutdown = handleTest ./systemd-shutdown.nix {};
   systemd-sysupdate = runTest ./systemd-sysupdate.nix;
   systemd-sysusers-mutable = runTest ./systemd-sysusers-mutable.nix;
diff --git a/nixos/tests/ayatana-indicators.nix b/nixos/tests/ayatana-indicators.nix
index 13a0982a142bb..ccb1e059a6973 100644
--- a/nixos/tests/ayatana-indicators.nix
+++ b/nixos/tests/ayatana-indicators.nix
@@ -28,12 +28,14 @@ in {
       enable = true;
       packages = with pkgs; [
         ayatana-indicator-datetime
+        ayatana-indicator-display
         ayatana-indicator-messages
         ayatana-indicator-power
         ayatana-indicator-session
+        ayatana-indicator-sound
       ] ++ (with pkgs.lomiri; [
         lomiri-indicator-network
-        telephony-service
+        # telephony-service # currently broken: https://github.com/NixOS/nixpkgs/pull/314043
       ]);
     };
 
@@ -41,6 +43,8 @@ in {
 
     services.accounts-daemon.enable = true; # messages
 
+    hardware.pulseaudio.enable = true; # sound
+
     # Lomiri-ish setup for Lomiri indicators
     # TODO move into a Lomiri module, once the package set is far enough for the DE to start
 
@@ -92,7 +96,7 @@ in {
 
     # Now check if all indicators were brought up successfully, and kill them for later
   '' + (runCommandOverAyatanaIndicators (service: let serviceExec = builtins.replaceStrings [ "." ] [ "-" ] service; in ''
-    machine.succeed("pgrep -u ${user} -f ${serviceExec}")
+    machine.wait_until_succeeds("pgrep -u ${user} -f ${serviceExec}")
     machine.succeed("pkill -f ${serviceExec}")
   '')) + ''
 
diff --git a/nixos/tests/firefly-iii.nix b/nixos/tests/firefly-iii.nix
index c93d799320a48..2373ba8360264 100644
--- a/nixos/tests/firefly-iii.nix
+++ b/nixos/tests/firefly-iii.nix
@@ -1,14 +1,19 @@
-import ./make-test-python.nix ({ lib, pkgs, ... }: {
+import ./make-test-python.nix ({ lib, ... }:
+
+let
+  db-pass = "Test2Test2";
+  app-key = "TestTestTestTestTestTestTestTest";
+in
+{
   name = "firefly-iii";
   meta.maintainers = [ lib.maintainers.savyajha ];
 
-  nodes.machine = { config, ... }: {
+  nodes.fireflySqlite = { config, ... }: {
     environment.etc = {
-      "firefly-iii-appkey".text = "TestTestTestTestTestTestTestTest";
+      "firefly-iii-appkey".text = app-key;
     };
     services.firefly-iii = {
       enable = true;
-      virtualHost = "http://localhost";
       enableNginx = true;
       settings = {
         APP_KEY_FILE = "/etc/firefly-iii-appkey";
@@ -18,9 +23,87 @@ import ./make-test-python.nix ({ lib, pkgs, ... }: {
     };
   };
 
+  nodes.fireflyPostgresql = { config, pkgs, ... }: {
+    environment.etc = {
+      "firefly-iii-appkey".text = app-key;
+      "postgres-pass".text = db-pass;
+    };
+    services.firefly-iii = {
+      enable = true;
+      enableNginx = true;
+      settings = {
+        APP_KEY_FILE = "/etc/firefly-iii-appkey";
+        LOG_CHANNEL = "stdout";
+        SITE_OWNER = "mail@example.com";
+        DB_CONNECTION = "pgsql";
+        DB_DATABASE = "firefly";
+        DB_USERNAME = "firefly";
+        DB_PASSWORD_FILE = "/etc/postgres-pass";
+      };
+    };
+
+    services.postgresql = {
+      enable = true;
+      package = pkgs.postgresql_15;
+      authentication = ''
+        local all postgres peer
+        local firefly firefly password
+      '';
+      initialScript = pkgs.writeText "firefly-init.sql" ''
+        CREATE USER "firefly" WITH LOGIN PASSWORD '${db-pass}';
+        CREATE DATABASE "firefly" WITH OWNER "firefly";
+        CREATE SCHEMA AUTHORIZATION firefly;
+      '';
+    };
+  };
+
+  nodes.fireflyMysql = { config, pkgs, ... }: {
+    environment.etc = {
+      "firefly-iii-appkey".text = app-key;
+      "mysql-pass".text = db-pass;
+    };
+    services.firefly-iii = {
+      enable = true;
+      enableNginx = true;
+      settings = {
+        APP_KEY_FILE = "/etc/firefly-iii-appkey";
+        LOG_CHANNEL = "stdout";
+        SITE_OWNER = "mail@example.com";
+        DB_CONNECTION = "mysql";
+        DB_DATABASE = "firefly";
+        DB_USERNAME = "firefly";
+        DB_PASSWORD_FILE = "/etc/mysql-pass";
+        DB_SOCKET = "/run/mysqld/mysqld.sock";
+      };
+    };
+
+    services.mysql = {
+      enable = true;
+      package = pkgs.mariadb;
+      initialScript = pkgs.writeText "firefly-init.sql" ''
+        create database firefly DEFAULT CHARACTER SET utf8mb4;
+        create user 'firefly'@'localhost' identified by '${db-pass}';
+        grant all on firefly.* to 'firefly'@'localhost';
+      '';
+      settings.mysqld.character-set-server = "utf8mb4";
+    };
+  };
+
   testScript = ''
-    machine.wait_for_unit("phpfpm-firefly-iii.service")
-    machine.wait_for_unit("nginx.service")
-    machine.succeed("curl -fvvv -Ls http://localhost/ | grep 'Firefly III'")
+    fireflySqlite.wait_for_unit("phpfpm-firefly-iii.service")
+    fireflySqlite.wait_for_unit("nginx.service")
+    fireflySqlite.succeed("curl -fvvv -Ls http://localhost/ | grep 'Firefly III'")
+    fireflySqlite.succeed("curl -fvvv -Ls http://localhost/v1/js/app.js")
+    fireflySqlite.succeed("systemctl start firefly-iii-cron.service")
+    fireflyPostgresql.wait_for_unit("phpfpm-firefly-iii.service")
+    fireflyPostgresql.wait_for_unit("nginx.service")
+    fireflyPostgresql.wait_for_unit("postgresql.service")
+    fireflyPostgresql.succeed("curl -fvvv -Ls http://localhost/ | grep 'Firefly III'")
+    fireflyPostgresql.succeed("systemctl start firefly-iii-cron.service")
+    fireflyMysql.wait_for_unit("phpfpm-firefly-iii.service")
+    fireflyMysql.wait_for_unit("nginx.service")
+    fireflyMysql.wait_for_unit("mysql.service")
+    fireflyMysql.succeed("curl -fvvv -Ls http://localhost/ | grep 'Firefly III'")
+    fireflyMysql.succeed("systemctl start firefly-iii-cron.service")
   '';
 })
diff --git a/nixos/tests/gnome-extensions.nix b/nixos/tests/gnome-extensions.nix
index 51ccabd7e6a65..332cf44b0ed4f 100644
--- a/nixos/tests/gnome-extensions.nix
+++ b/nixos/tests/gnome-extensions.nix
@@ -84,7 +84,6 @@ import ./make-test-python.nix (
       "dash-to-dock"
       "dash-to-panel"
       "ddterm"
-      "emoji-selector"
       "gsconnect"
       "system-monitor-next"
       "desktop-icons-ng-ding"
@@ -138,11 +137,11 @@ import ./make-test-python.nix (
             # Enable and optionally disable
 
             machine.succeed(f"${run "gnome-extensions enable {extension}"}")
-            checkState("ENABLED", extension)
+            checkState("ACTIVE", extension)
 
             if disable:
                 machine.succeed(f"${run "gnome-extensions disable {extension}"}")
-                checkState("DISABLED", extension)
+                checkState("INACTIVE", extension)
     ''
     + lib.concatLines (map (e: ''checkExtension("${e}", False)'') alwaysOnExtensions)
     + lib.concatLines (map (e: ''checkExtension("${e}", True)'') testExtensions)
diff --git a/nixos/tests/grafana/provision/default.nix b/nixos/tests/grafana/provision/default.nix
index d33d16ce12099..f9dd8b2961ac7 100644
--- a/nixos/tests/grafana/provision/default.nix
+++ b/nixos/tests/grafana/provision/default.nix
@@ -1,7 +1,7 @@
 import ../../make-test-python.nix ({ lib, pkgs, ... }:
 
 let
-  inherit (lib) mkMerge nameValuePair maintainers;
+  inherit (lib) mkMerge maintainers;
 
   baseGrafanaConf = {
     services.grafana = {
@@ -33,35 +33,6 @@ let
   };
 
   extraNodeConfs = {
-    provisionLegacyNotifiers = {
-      services.grafana.provision = {
-        datasources.settings = {
-          apiVersion = 1;
-          datasources = [{
-            name = "Test Datasource";
-            type = "testdata";
-            access = "proxy";
-            uid = "test_datasource";
-          }];
-        };
-        dashboards.settings = {
-          apiVersion = 1;
-          providers = [{
-            name = "default";
-            options.path = "/var/lib/grafana/dashboards";
-          }];
-        };
-        notifiers = [{
-          uid = "test_notifiers";
-          name = "Test Notifiers";
-          type = "email";
-          settings = {
-            singleEmail = true;
-            addresses = "test@test.com";
-          };
-        }];
-      };
-    };
     provisionNix = {
       services.grafana.provision = {
         datasources.settings = {
@@ -242,15 +213,5 @@ in {
             machine.succeed(
                 "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/v1/provisioning/mute-timings | grep Test\ Mute\ Timing"
             )
-
-    with subtest("Successful notifiers provision"):
-        provisionLegacyNotifiers.wait_for_unit("grafana.service")
-        provisionLegacyNotifiers.wait_for_open_port(3000)
-        print(provisionLegacyNotifiers.succeed(
-            "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/alert-notifications/uid/test_notifiers"
-        ))
-        provisionLegacyNotifiers.succeed(
-            "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/alert-notifications/uid/test_notifiers | grep Test\ Notifiers"
-        )
   '';
 })
diff --git a/nixos/tests/lomiri.nix b/nixos/tests/lomiri.nix
index 3f20aae441351..99f04a303be31 100644
--- a/nixos/tests/lomiri.nix
+++ b/nixos/tests/lomiri.nix
@@ -290,7 +290,7 @@ in {
     # There's a test app we could use that also displays their contents, but it's abit inconsistent.
     with subtest("ayatana indicators work"):
         mouse_click(735, 0) # the cog in the top-right, for the session indicator
-        machine.wait_for_text(r"(Notifications|Battery|Time|Date|System)")
+        machine.wait_for_text(r"(Notifications|Rotation|Battery|Sound|Time|Date|System)")
         machine.screenshot("indicators_open")
 
         # Indicator order within the menus *should* be fixed based on per-indicator order setting
@@ -298,13 +298,25 @@ in {
         machine.send_key("left")
         machine.send_key("left")
         machine.send_key("left")
+        machine.send_key("left")
+        machine.send_key("left")
         # Notifications are usually empty, nothing to check there
 
-        with subtest("lomiri indicator network works"):
+        with subtest("ayatana indicator display works"):
             # We start on this, don't go right
+            machine.wait_for_text("Lock")
+            machine.screenshot("indicators_display")
+
+        with subtest("lomiri indicator network works"):
+            machine.send_key("right")
             machine.wait_for_text(r"(Flight|Wi-Fi)")
             machine.screenshot("indicators_network")
 
+        with subtest("ayatana indicator sound works"):
+            machine.send_key("right")
+            machine.wait_for_text(r"(Silent|Volume)")
+            machine.screenshot("indicators_sound")
+
         with subtest("ayatana indicator power works"):
             machine.send_key("right")
             machine.wait_for_text(r"(Charge|Battery settings)")
diff --git a/nixos/tests/ollama.nix b/nixos/tests/ollama.nix
index 4b21f445cdbd3..30e475553eb1a 100644
--- a/nixos/tests/ollama.nix
+++ b/nixos/tests/ollama.nix
@@ -1,10 +1,10 @@
 import ./make-test-python.nix ({ pkgs, lib, ... }:
 let
-  mainPort = "11434";
-  altPort = "11435";
+  mainPort = 11434;
+  altPort = 11435;
 
   curlRequest = port: request:
-    "curl http://127.0.0.1:${port}/api/generate -d '${builtins.toJSON request}'";
+    "curl http://127.0.0.1:${toString port}/api/generate -d '${builtins.toJSON request}'";
 
   prompt = {
     model = "tinydolphin";
@@ -38,7 +38,7 @@ in
 
     altAddress = { ... }: {
       services.ollama.enable = true;
-      services.ollama.listenAddress = "127.0.0.1:${altPort}";
+      services.ollama.port = altPort;
     };
   };
 
diff --git a/nixos/tests/openssh.nix b/nixos/tests/openssh.nix
index 140723a2df810..3929522a39e73 100644
--- a/nixos/tests/openssh.nix
+++ b/nixos/tests/openssh.nix
@@ -111,11 +111,11 @@ in {
     server-no-openssl =
       { ... }:
       {
-        programs.ssh.package = pkgs.opensshPackages.openssh.override {
-          linkOpenssl = false;
-        };
         services.openssh = {
           enable = true;
+          package = pkgs.opensshPackages.openssh.override {
+            linkOpenssl = false;
+          };
           hostKeys = [
             { type = "ed25519"; path = "/etc/ssh/ssh_host_ed25519_key"; }
           ];
@@ -136,11 +136,11 @@ in {
     server-no-pam =
       { pkgs, ... }:
       {
-        programs.ssh.package = pkgs.opensshPackages.openssh.override {
-          withPAM = false;
-        };
         services.openssh = {
           enable = true;
+          package = pkgs.opensshPackages.openssh.override {
+            withPAM = false;
+          };
           settings = {
             UsePAM = false;
           };
diff --git a/nixos/tests/rke2/default.nix b/nixos/tests/rke2/default.nix
new file mode 100644
index 0000000000000..e8a5f382b735f
--- /dev/null
+++ b/nixos/tests/rke2/default.nix
@@ -0,0 +1,13 @@
+{ system ? builtins.currentSystem
+, pkgs ? import ../../.. { inherit system; }
+, lib ? pkgs.lib
+}:
+let
+  allRKE2 = lib.filterAttrs (n: _: lib.strings.hasPrefix "rke2" n) pkgs;
+in
+{
+  # Run a single node rke2 cluster and verify a pod can run
+  singleNode = lib.mapAttrs (_: rke2: import ./single-node.nix { inherit system pkgs rke2; }) allRKE2;
+  # Run a multi-node rke2 cluster and verify pod networking works across nodes
+  multiNode = lib.mapAttrs (_: rke2: import ./multi-node.nix { inherit system pkgs rke2; }) allRKE2;
+}
diff --git a/nixos/tests/rke2/multi-node.nix b/nixos/tests/rke2/multi-node.nix
new file mode 100644
index 0000000000000..ddf0b60f6fba4
--- /dev/null
+++ b/nixos/tests/rke2/multi-node.nix
@@ -0,0 +1,176 @@
+import ../make-test-python.nix ({ pkgs, lib, rke2, ... }:
+  let
+    pauseImage = pkgs.dockerTools.streamLayeredImage {
+      name = "test.local/pause";
+      tag = "local";
+      contents = pkgs.buildEnv {
+        name = "rke2-pause-image-env";
+        paths = with pkgs; [ tini bashInteractive coreutils socat ];
+      };
+      config.Entrypoint = [ "/bin/tini" "--" "/bin/sleep" "inf" ];
+    };
+    # A daemonset that responds 'server' on port 8000
+    networkTestDaemonset = pkgs.writeText "test.yml" ''
+      apiVersion: apps/v1
+      kind: DaemonSet
+      metadata:
+        name: test
+        labels:
+          name: test
+      spec:
+        selector:
+          matchLabels:
+            name: test
+        template:
+          metadata:
+            labels:
+              name: test
+          spec:
+            containers:
+            - name: test
+              image: test.local/pause:local
+              imagePullPolicy: Never
+              resources:
+                limits:
+                  memory: 20Mi
+              command: ["socat", "TCP4-LISTEN:8000,fork", "EXEC:echo server"]
+    '';
+    tokenFile = pkgs.writeText "token" "p@s$w0rd";
+    agentTokenFile = pkgs.writeText "agent-token" "p@s$w0rd";
+  in
+  {
+    name = "${rke2.name}-multi-node";
+    meta.maintainers = rke2.meta.maintainers;
+
+    nodes = {
+      server1 = { pkgs, ... }: {
+        networking.firewall.enable = false;
+        networking.useDHCP = false;
+        networking.defaultGateway = "192.168.1.1";
+        networking.interfaces.eth1.ipv4.addresses = pkgs.lib.mkForce [
+          { address = "192.168.1.1"; prefixLength = 24; }
+        ];
+
+        virtualisation.memorySize = 1536;
+        virtualisation.diskSize = 4096;
+
+        services.rke2 = {
+          enable = true;
+          role = "server";
+          inherit tokenFile;
+          inherit agentTokenFile;
+          nodeName = "${rke2.name}-server1";
+          package = rke2;
+          nodeIP = "192.168.1.1";
+          disable = [
+            "rke2-coredns"
+            "rke2-metrics-server"
+            "rke2-ingress-nginx"
+          ];
+          extraFlags = [
+            "--cluster-reset"
+          ];
+        };
+      };
+
+      server2 = { pkgs, ... }: {
+        networking.firewall.enable = false;
+        networking.useDHCP = false;
+        networking.defaultGateway = "192.168.1.2";
+        networking.interfaces.eth1.ipv4.addresses = pkgs.lib.mkForce [
+          { address = "192.168.1.2"; prefixLength = 24; }
+        ];
+
+        virtualisation.memorySize = 1536;
+        virtualisation.diskSize = 4096;
+
+        services.rke2 = {
+          enable = true;
+          role = "server";
+          serverAddr = "https://192.168.1.1:6443";
+          inherit tokenFile;
+          inherit agentTokenFile;
+          nodeName = "${rke2.name}-server2";
+          package = rke2;
+          nodeIP = "192.168.1.2";
+          disable = [
+            "rke2-coredns"
+            "rke2-metrics-server"
+            "rke2-ingress-nginx"
+          ];
+        };
+      };
+
+      agent1 = { pkgs, ... }: {
+        networking.firewall.enable = false;
+        networking.useDHCP = false;
+        networking.defaultGateway = "192.168.1.3";
+        networking.interfaces.eth1.ipv4.addresses = pkgs.lib.mkForce [
+          { address = "192.168.1.3"; prefixLength = 24; }
+        ];
+
+        virtualisation.memorySize = 1536;
+        virtualisation.diskSize = 4096;
+
+        services.rke2 = {
+          enable = true;
+          role = "agent";
+          tokenFile = agentTokenFile;
+          serverAddr = "https://192.168.1.2:6443";
+          nodeName = "${rke2.name}-agent1";
+          package = rke2;
+          nodeIP = "192.168.1.3";
+        };
+      };
+    };
+
+    testScript = let
+      kubectl = "${pkgs.kubectl}/bin/kubectl --kubeconfig=/etc/rancher/rke2/rke2.yaml";
+      ctr = "${pkgs.containerd}/bin/ctr -a /run/k3s/containerd/containerd.sock";
+      jq = "${pkgs.jq}/bin/jq";
+      ping = "${pkgs.iputils}/bin/ping";
+    in ''
+      machines = [server1, server2, agent1]
+
+      for machine in machines:
+          machine.start()
+          machine.wait_for_unit("rke2")
+
+      # wait for the agent to show up
+      server1.succeed("${kubectl} get node ${rke2.name}-agent1")
+
+      for machine in machines:
+          machine.succeed("${pauseImage} | ${ctr} image import -")
+
+      server1.succeed("${kubectl} cluster-info")
+      server1.wait_until_succeeds("${kubectl} get serviceaccount default")
+
+      # Now create a pod on each node via a daemonset and verify they can talk to each other.
+      server1.succeed("${kubectl} apply -f ${networkTestDaemonset}")
+      server1.wait_until_succeeds(
+          f'[ "$(${kubectl} get ds test -o json | ${jq} .status.numberReady)" -eq {len(machines)} ]'
+      )
+
+      # Get pod IPs
+      pods = server1.succeed("${kubectl} get po -o json | ${jq} '.items[].metadata.name' -r").splitlines()
+      pod_ips = [
+          server1.succeed(f"${kubectl} get po {n} -o json | ${jq} '.status.podIP' -cr").strip() for n in pods
+      ]
+
+      # Verify each server can ping each pod ip
+      for pod_ip in pod_ips:
+          server1.succeed(f"${ping} -c 1 {pod_ip}")
+          agent1.succeed(f"${ping} -c 1 {pod_ip}")
+
+      # Verify the pods can talk to each other
+      resp = server1.wait_until_succeeds(f"${kubectl} exec {pods[0]} -- socat TCP:{pod_ips[1]}:8000 -")
+      assert resp.strip() == "server"
+      resp = server1.wait_until_succeeds(f"${kubectl} exec {pods[1]} -- socat TCP:{pod_ips[0]}:8000 -")
+      assert resp.strip() == "server"
+
+      # Cleanup
+      server1.succeed("${kubectl} delete -f ${networkTestDaemonset}")
+      for machine in machines:
+          machine.shutdown()
+    '';
+  })
diff --git a/nixos/tests/rke2/single-node.nix b/nixos/tests/rke2/single-node.nix
new file mode 100644
index 0000000000000..5a512eacca0f1
--- /dev/null
+++ b/nixos/tests/rke2/single-node.nix
@@ -0,0 +1,75 @@
+import ../make-test-python.nix ({ pkgs, lib, rke2, ... }:
+  let
+    pauseImage = pkgs.dockerTools.streamLayeredImage {
+      name = "test.local/pause";
+      tag = "local";
+      contents = pkgs.buildEnv {
+        name = "rke2-pause-image-env";
+        paths = with pkgs; [ tini (hiPrio coreutils) busybox ];
+      };
+      config.Entrypoint = [ "/bin/tini" "--" "/bin/sleep" "inf" ];
+    };
+    testPodYaml = pkgs.writeText "test.yaml" ''
+      apiVersion: v1
+      kind: Pod
+      metadata:
+        name: test
+      spec:
+        containers:
+        - name: test
+          image: test.local/pause:local
+          imagePullPolicy: Never
+          command: ["sh", "-c", "sleep inf"]
+    '';
+  in
+  {
+    name = "${rke2.name}-single-node";
+    meta.maintainers = rke2.meta.maintainers;
+
+    nodes.machine = { pkgs, ... }: {
+      networking.firewall.enable = false;
+      networking.useDHCP = false;
+      networking.defaultGateway = "192.168.1.1";
+      networking.interfaces.eth1.ipv4.addresses = pkgs.lib.mkForce [
+        { address = "192.168.1.1"; prefixLength = 24; }
+      ];
+
+      virtualisation.memorySize = 1536;
+      virtualisation.diskSize = 4096;
+
+      services.rke2 = {
+        enable = true;
+        role = "server";
+        package = rke2;
+        nodeIP = "192.168.1.1";
+        disable = [
+          "rke2-coredns"
+          "rke2-metrics-server"
+          "rke2-ingress-nginx"
+        ];
+        extraFlags = [
+          "--cluster-reset"
+        ];
+      };
+    };
+
+    testScript = let
+      kubectl = "${pkgs.kubectl}/bin/kubectl --kubeconfig=/etc/rancher/rke2/rke2.yaml";
+      ctr = "${pkgs.containerd}/bin/ctr -a /run/k3s/containerd/containerd.sock";
+    in ''
+      start_all()
+
+      machine.wait_for_unit("rke2")
+      machine.succeed("${kubectl} cluster-info")
+      machine.wait_until_succeeds(
+        "${pauseImage} | ${ctr} -n k8s.io image import -"
+      )
+
+      machine.wait_until_succeeds("${kubectl} get serviceaccount default")
+      machine.succeed("${kubectl} apply -f ${testPodYaml}")
+      machine.succeed("${kubectl} wait --for 'condition=Ready' pod/test")
+      machine.succeed("${kubectl} delete -f ${testPodYaml}")
+
+      machine.shutdown()
+    '';
+  })
diff --git a/nixos/tests/stalwart-mail.nix b/nixos/tests/stalwart-mail.nix
index 581090cd70f48..173b4fce4ad5d 100644
--- a/nixos/tests/stalwart-mail.nix
+++ b/nixos/tests/stalwart-mail.nix
@@ -18,8 +18,8 @@ in import ./make-test-python.nix ({ lib, ... }: {
         server.hostname = domain;
 
         certificate."snakeoil" = {
-          cert = "file://${certs.${domain}.cert}";
-          private-key = "file://${certs.${domain}.key}";
+          cert = "%{file:${certs.${domain}.cert}}%";
+          private-key = "%{file:${certs.${domain}.key}}%";
         };
 
         server.tls = {
@@ -40,8 +40,6 @@ in import ./make-test-python.nix ({ lib, ... }: {
           };
         };
 
-        resolver.public-suffix = [ ];  # do not fetch from web in sandbox
-
         session.auth.mechanisms = "[plain]";
         session.auth.directory = "'in-memory'";
         storage.directory = "in-memory";
@@ -53,13 +51,13 @@ in import ./make-test-python.nix ({ lib, ... }: {
           type = "memory";
           principals = [
             {
-              type = "individual";
+              class = "individual";
               name = "alice";
               secret = "foobar";
               email = [ "alice@${domain}" ];
             }
             {
-              type = "individual";
+              class = "individual";
               name = "bob";
               secret = "foobar";
               email = [ "bob@${domain}" ];
@@ -117,6 +115,6 @@ in import ./make-test-python.nix ({ lib, ... }: {
   '';
 
   meta = {
-    maintainers = with lib.maintainers; [ happysalada pacien ];
+    maintainers = with lib.maintainers; [ happysalada pacien onny ];
   };
 })
diff --git a/nixos/tests/systemd-resolved.nix b/nixos/tests/systemd-resolved.nix
new file mode 100644
index 0000000000000..3eedc17f4b34f
--- /dev/null
+++ b/nixos/tests/systemd-resolved.nix
@@ -0,0 +1,75 @@
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
+  name = "systemd-resolved";
+  meta.maintainers = [ lib.maintainers.elvishjerricco ];
+
+  nodes.server = { lib, config, ... }: let
+    exampleZone = pkgs.writeTextDir "example.com.zone" ''
+      @ SOA ns.example.com. noc.example.com. 2019031301 86400 7200 3600000 172800
+      @       A       ${(lib.head config.networking.interfaces.eth1.ipv4.addresses).address}
+      @       AAAA    ${(lib.head config.networking.interfaces.eth1.ipv6.addresses).address}
+    '';
+  in {
+    networking.firewall.enable = false;
+    networking.useDHCP = false;
+
+    networking.interfaces.eth1.ipv6.addresses = lib.mkForce [
+      { address = "fd00::1"; prefixLength = 64; }
+    ];
+
+    services.knot = {
+      enable = true;
+      settings = {
+        server.listen = [
+          "0.0.0.0@53"
+          "::@53"
+        ];
+        template.default.storage = exampleZone;
+        zone."example.com".file = "example.com.zone";
+      };
+    };
+  };
+
+  nodes.client = { nodes, ... }: let
+    inherit (lib.head nodes.server.networking.interfaces.eth1.ipv4.addresses) address;
+  in {
+    networking.nameservers = [ address ];
+    networking.interfaces.eth1.ipv6.addresses = lib.mkForce [
+      { address = "fd00::2"; prefixLength = 64; }
+    ];
+    services.resolved.enable = true;
+    services.resolved.fallbackDns = [ ];
+    networking.useNetworkd = true;
+    networking.useDHCP = false;
+    systemd.network.networks."40-eth0".enable = false;
+
+    testing.initrdBackdoor = true;
+    boot.initrd = {
+      systemd.enable = true;
+      systemd.initrdBin = [ pkgs.iputils ];
+      network.enable = true;
+      services.resolved.enable = true;
+    };
+  };
+
+  testScript = { nodes, ... }: let
+    address4 = (lib.head nodes.server.networking.interfaces.eth1.ipv4.addresses).address;
+    address6 = (lib.head nodes.server.networking.interfaces.eth1.ipv6.addresses).address;
+  in ''
+    start_all()
+    server.wait_for_unit("multi-user.target")
+
+    def test_client():
+        query = client.succeed("resolvectl query example.com")
+        assert "${address4}" in query
+        assert "${address6}" in query
+        client.succeed("ping -4 -c 1 example.com")
+        client.succeed("ping -6 -c 1 example.com")
+
+    client.wait_for_unit("initrd.target")
+    test_client()
+    client.switch_root()
+
+    client.wait_for_unit("multi-user.target")
+    test_client()
+  '';
+})
diff --git a/nixos/tests/teleport.nix b/nixos/tests/teleport.nix
index 2fb347155759a..3621cce0599e1 100644
--- a/nixos/tests/teleport.nix
+++ b/nixos/tests/teleport.nix
@@ -9,7 +9,6 @@ with import ../lib/testing-python.nix { inherit system pkgs; };
 let
   packages = with pkgs; {
     "default" = teleport;
-    "13" = teleport_13;
     "14" = teleport_14;
   };
 
diff --git a/nixos/tests/web-apps/nextjs-ollama-llm-ui.nix b/nixos/tests/web-apps/nextjs-ollama-llm-ui.nix
new file mode 100644
index 0000000000000..3bb9d1e62aefe
--- /dev/null
+++ b/nixos/tests/web-apps/nextjs-ollama-llm-ui.nix
@@ -0,0 +1,22 @@
+{ lib, ... }:
+
+{
+  name = "nextjs-ollama-llm-ui";
+  meta.maintainers = with lib.maintainers; [ malteneuss ];
+
+  nodes.machine =
+    { pkgs, ... }:
+    {
+      services.nextjs-ollama-llm-ui = {
+        enable = true;
+        port = 8080;
+      };
+    };
+
+  testScript = ''
+    # Ensure the service is started and reachable
+    machine.wait_for_unit("nextjs-ollama-llm-ui.service")
+    machine.wait_for_open_port(8080)
+    machine.succeed("curl --fail http://127.0.0.1:8080")
+  '';
+}
diff --git a/pkgs/applications/accessibility/espeakup/default.nix b/pkgs/applications/accessibility/espeakup/default.nix
index a0adef6aa935e..c35cc483ea99c 100644
--- a/pkgs/applications/accessibility/espeakup/default.nix
+++ b/pkgs/applications/accessibility/espeakup/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     owner = "linux-speakup";
     repo = "espeakup";
     rev = "v${version}";
-    sha256 = "0lmjwafvfxy07zn18v3dzjwwpnid2xffgvy2dzlwkbns8gb60ds2";
+    hash = "sha256-Qjdg1kParsnpb8Lv51wXLdrLufxtbBTsP8B3t53islI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/amarok/default.nix b/pkgs/applications/audio/amarok/default.nix
index e48e27b5cc699..405e0464b333f 100644
--- a/pkgs/applications/audio/amarok/default.nix
+++ b/pkgs/applications/audio/amarok/default.nix
@@ -1,23 +1,23 @@
-{ mkDerivation, fetchurl, lib
+{ stdenv, fetchurl, lib
 , extra-cmake-modules, kdoctools
 , qca-qt5, qjson, qtquickcontrols2, qtscript, qtwebengine
 , karchive, kcmutils, kconfig, kdnssd, kguiaddons, kinit, kirigami2, knewstuff, knotifyconfig, ktexteditor, kwindowsystem
-, fftw, phonon, plasma-framework, threadweaver, breeze-icons
+, fftw, phonon, plasma-framework, threadweaver, breeze-icons, wrapQtAppsHook
 , curl, ffmpeg, gdk-pixbuf, libaio, liblastfm, libmtp, loudmouth, lzo, lz4, mariadb-embedded, pcre, snappy, taglib, taglib_extras
 }:
 
-mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "amarok";
-  version = "2.9.71";
+  version = "3.0.0";
 
   src = fetchurl {
-    url = "mirror://kde/unstable/${pname}/${version}/${pname}-${version}.tar.xz";
-    sha256 = "0kz8wixjmy4yxq2gk11ybswryxb6alfymd3bzcar9xinscllhh3a";
+    url = "mirror://kde/stable/amarok/${finalAttrs.version}/amarok-${finalAttrs.version}.tar.xz";
+    sha256 = "sha256-FKh2eDBfrXagodrKVVpndf+mQuXrvMzs2R9JcJOZLBw=";
   };
 
   outputs = [ "out" "doc" ];
 
-  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapQtAppsHook ];
 
   propagatedBuildInputs = [
     qca-qt5 qjson qtquickcontrols2 qtscript qtwebengine
@@ -35,4 +35,4 @@ mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ peterhoeg ];
   };
-}
+})
diff --git a/pkgs/applications/audio/cardinal/default.nix b/pkgs/applications/audio/cardinal/default.nix
index 33ad843db529d..a3ac82f8fbaf8 100644
--- a/pkgs/applications/audio/cardinal/default.nix
+++ b/pkgs/applications/audio/cardinal/default.nix
@@ -27,11 +27,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cardinal";
-  version = "24.04";
+  version = "24.05";
 
   src = fetchurl {
     url = "https://github.com/DISTRHO/Cardinal/releases/download/${version}/cardinal+deps-${version}.tar.xz";
-    hash = "sha256-vowDdHAXVZ+HSMoQsvJdzghsJzH+OrSpx6MxPRAgtJA=";
+    hash = "sha256-ZUJI5utUtST+idlL7WKBIs850EpK98cnmO47g8/iZcI=";
   };
 
   prePatch = ''
diff --git a/pkgs/applications/audio/g4music/default.nix b/pkgs/applications/audio/g4music/default.nix
index 0cc1987c356d0..e27d6852c6b23 100644
--- a/pkgs/applications/audio/g4music/default.nix
+++ b/pkgs/applications/audio/g4music/default.nix
@@ -15,14 +15,14 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "g4music";
-  version = "3.5.2";
+  version = "3.6";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "neithern";
     repo = "g4music";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-ljSXTEp+f4HMXhGWDGHdX6whm90Vo5KWOQunU2hHwo8=";
+    hash = "sha256-RDz3QwjbzYS4JllxpSA59cs2S3dNTmNcOoxu4JFC8oM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/ledfx/default.nix b/pkgs/applications/audio/ledfx/default.nix
index bcbe1bc397d3e..f45c7dc3af558 100644
--- a/pkgs/applications/audio/ledfx/default.nix
+++ b/pkgs/applications/audio/ledfx/default.nix
@@ -6,12 +6,12 @@
 
 python3.pkgs.buildPythonPackage rec {
   pname = "ledfx";
-  version = "2.0.96";
+  version = "2.0.99";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-nvPHAnoD5j1rneeuMufQkXj8YWXau2zJYug+Avpe87I=";
+    hash = "sha256-pwrAVcIwZ3RDYFMDk80q5aVSqLTQ5weZqgB3GRRu2ig=";
   };
 
   pythonRelaxDeps = true;
@@ -58,6 +58,7 @@ python3.pkgs.buildPythonPackage rec {
     sounddevice
     stupidartnet
     uvloop
+    vnoise
     voluptuous
     zeroconf
   ];
@@ -71,5 +72,6 @@ python3.pkgs.buildPythonPackage rec {
     changelog = "https://github.com/LedFx/LedFx/blob/${version}/CHANGELOG.rst";
     license = licenses.gpl3Only;
     maintainers = teams.c3d2.members;
+    mainProgram = "ledfx";
   };
 }
diff --git a/pkgs/applications/audio/lsp-plugins/default.nix b/pkgs/applications/audio/lsp-plugins/default.nix
index 89cd9b6ff329b..56b508df7f6f6 100644
--- a/pkgs/applications/audio/lsp-plugins/default.nix
+++ b/pkgs/applications/audio/lsp-plugins/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "lsp-plugins";
-  version = "1.2.15";
+  version = "1.2.16";
 
   src = fetchurl {
     url = "https://github.com/sadko4u/${pname}/releases/download/${version}/${pname}-src-${version}.tar.gz";
-    sha256 = "sha256-krku+jFGOvLwixNGd+0jBzE/17k/OU0zAePLhnxd864=";
+    sha256 = "sha256-w2BUIF44z78syLroQk2asVXA5bt9P9POiuwxpnlkc8o=";
   };
 
   outputs = [ "out" "dev" "doc" ];
diff --git a/pkgs/applications/audio/mixxx/default.nix b/pkgs/applications/audio/mixxx/default.nix
index 0ebc6c604bdc9..0f65d5cea8c7c 100644
--- a/pkgs/applications/audio/mixxx/default.nix
+++ b/pkgs/applications/audio/mixxx/default.nix
@@ -57,13 +57,13 @@
 
 mkDerivation rec {
   pname = "mixxx";
-  version = "2.4.0";
+  version = "2.4.1";
 
   src = fetchFromGitHub {
     owner = "mixxxdj";
     repo = "mixxx";
     rev = version;
-    hash = "sha256-JSWUzerm7D6AKq6g/9eRrt3EE2movRdM+VLUg07sLHo=";
+    hash = "sha256-BOdXgA+z3sFE4ngAEhSbp1gDbsti1STJY2Yy6Hp+zTE=";
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapGAppsHook3 ];
@@ -147,7 +147,7 @@ mkDerivation rec {
     description = "Digital DJ mixing software";
     mainProgram = "mixxx";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ goibhniu bfortz ];
+    maintainers = with maintainers; [ goibhniu bfortz benley ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/audio/mpdevil/default.nix b/pkgs/applications/audio/mpdevil/default.nix
deleted file mode 100644
index 3ca2a0e661526..0000000000000
--- a/pkgs/applications/audio/mpdevil/default.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-{ lib, fetchFromGitHub
-, pkg-config, meson ,ninja
-, python3Packages
-, gdk-pixbuf, glib, gobject-introspection, gtk3
-, libnotify
-, wrapGAppsHook3 }:
-
-python3Packages.buildPythonApplication rec {
-  pname = "mpdevil";
-  version = "1.11.0";
-
-  src = fetchFromGitHub {
-    owner = "SoongNoonien";
-    repo = pname;
-    rev = "refs/tags/v${version}";
-    sha256 = "sha256-ooNZSsVtIeueqgj9hR9OZp08qm8gGokiq8IU3U/ZV5w=";
-  };
-
-  format = "other";
-
-  nativeBuildInputs = [
-    glib.dev gobject-introspection gtk3 pkg-config meson ninja wrapGAppsHook3
-  ];
-
-  buildInputs = [
-    gdk-pixbuf glib libnotify
-  ];
-
-  propagatedBuildInputs = with python3Packages; [
-    beautifulsoup4 distutils-extra mpd2 notify-py pygobject3 requests
-  ];
-
-  postInstall = ''
-    glib-compile-schemas $out/share/glib-2.0/schemas
-  '';
-
-  preFixup = ''
-    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
-  '';
-
-  # Prevent double wrapping.
-  dontWrapGApps = true;
-  # Otherwise wrapGAppsHook3 do not pick up the dependencies correctly.
-  strictDeps = false;
-  # There aren't any checks.
-  doCheck = false;
-
-  meta = with lib; {
-    description = "A simple music browser for MPD";
-    homepage = "https://github.com/SoongNoonien/mpdevil";
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ apfelkuchen6 ];
-    mainProgram = "mpdevil";
-  };
-}
diff --git a/pkgs/applications/audio/pyradio/default.nix b/pkgs/applications/audio/pyradio/default.nix
index 45cec01bd6985..7f6d3c87e5ba6 100644
--- a/pkgs/applications/audio/pyradio/default.nix
+++ b/pkgs/applications/audio/pyradio/default.nix
@@ -6,13 +6,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "pyradio";
-  version = "0.9.3.6";
+  version = "0.9.3.7";
 
   src = fetchFromGitHub {
     owner = "coderholic";
     repo = "pyradio";
     rev = "refs/tags/${version}";
-    hash = "sha256-As4xjwJtEKlnFuBigC7nN0kAPe0+99rE9KZ0F6i7qIQ=";
+    hash = "sha256-NwDVytD6nIM++ixGmLh02FIE+hLKHBwwD3aEAXVZn7I=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/spotify-player/default.nix b/pkgs/applications/audio/spotify-player/default.nix
index e0bc35858b047..73712208c8583 100644
--- a/pkgs/applications/audio/spotify-player/default.nix
+++ b/pkgs/applications/audio/spotify-player/default.nix
@@ -33,16 +33,16 @@ assert lib.assertOneOf "withAudioBackend" withAudioBackend [ "" "alsa" "pulseaud
 
 rustPlatform.buildRustPackage rec {
   pname = "spotify-player";
-  version = "0.18.1";
+  version = "0.18.2";
 
   src = fetchFromGitHub {
     owner = "aome510";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-3nPESnBWaxWjWMvRG7gbXt8FzuPlx2soOonCKom+tzA=";
+    hash = "sha256-bLUPQgqSsE9tF5YiFj5B+Ylyy96DhWFNjwqXbQ9H8uc=";
   };
 
-  cargoHash = "sha256-9HroNMHvmNjGPnEO4kTDalHBXe5MH7btEwk6maLh05E=";
+  cargoHash = "sha256-rptGA7J63rHdmxuPIguhZYYs8tZbpidJ0fXroBBoEIM=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/applications/audio/tidal-hifi/default.nix b/pkgs/applications/audio/tidal-hifi/default.nix
index 744508f404d9b..85cf351904919 100644
--- a/pkgs/applications/audio/tidal-hifi/default.nix
+++ b/pkgs/applications/audio/tidal-hifi/default.nix
@@ -36,11 +36,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "tidal-hifi";
-  version = "5.12.0";
+  version = "5.13.0";
 
   src = fetchurl {
     url = "https://github.com/Mastermindzh/tidal-hifi/releases/download/${finalAttrs.version}/tidal-hifi_${finalAttrs.version}_amd64.deb";
-    sha256 = "sha256-DwUKoDaXA99ILxlyay5dRL/ewnzyqSSR6fxPxkr8X34=";
+    sha256 = "sha256-d7JAvpZKdhG9BzCdfwyPlmXcqE49heVLskusaB0uOhg=";
   };
 
   nativeBuildInputs = [ autoPatchelfHook dpkg makeWrapper ];
diff --git a/pkgs/applications/audio/waylyrics/default.nix b/pkgs/applications/audio/waylyrics/default.nix
index a7be3babf5626..5d209e5a61ef0 100644
--- a/pkgs/applications/audio/waylyrics/default.nix
+++ b/pkgs/applications/audio/waylyrics/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "waylyrics";
-  version = "0.3.8";
+  version = "0.3.9";
 
   src = fetchFromGitHub {
     owner = "waylyrics";
     repo = "waylyrics";
     rev = "v${version}";
-    hash = "sha256-ZOz8LkMznSX/7nSu7IpZ8kVemo2AuRLOgrS3WWg+BXU=";
+    hash = "sha256-RLqBjN5haZKjbTK8U2Y62IY+D9lR3NaHK3erAcauhzE=";
   };
 
-  cargoHash = "sha256-mURcz3i98qlsn/rzZjeJncyVX5xsuqWY2/PcNA6WAWQ=";
+  cargoHash = "sha256-yEoYPG362rloCXVO23/qR8vbmxHv2hot3AhYgJknrOY=";
 
   nativeBuildInputs = [ pkg-config wrapGAppsHook4 ];
   buildInputs = [ openssl dbus ];
diff --git a/pkgs/applications/blockchains/besu/default.nix b/pkgs/applications/blockchains/besu/default.nix
index f599c44b5a62a..d897cb0fe716a 100644
--- a/pkgs/applications/blockchains/besu/default.nix
+++ b/pkgs/applications/blockchains/besu/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv, fetchurl, makeWrapper, jre }:
+{ lib, stdenv, fetchurl, makeWrapper, jemalloc, jre, runCommand, testers }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: rec {
   pname = "besu";
   version = "24.1.2";
 
@@ -9,6 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-CC24z0+2dSeqDddX5dJUs7SX9QJ8Iyh/nAp0pqdDvwg=";
   };
 
+  buildInputs = lib.optionals stdenv.isLinux [ jemalloc ];
   nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
@@ -16,9 +17,27 @@ stdenv.mkDerivation rec {
     cp -r bin $out/
     mkdir -p $out/lib
     cp -r lib $out/
-    wrapProgram $out/bin/${pname} --set JAVA_HOME "${jre}"
+    wrapProgram $out/bin/${pname} \
+      --set JAVA_HOME "${jre}" \
+      --suffix ${if stdenv.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH"} : ${lib.makeLibraryPath buildInputs}
   '';
 
+  passthru.tests = {
+    version = testers.testVersion {
+      package = finalAttrs.finalPackage;
+      version = "v${version}";
+    };
+    jemalloc = runCommand "${pname}-test-jemalloc"
+      {
+        nativeBuildInputs = [ finalAttrs.finalPackage ];
+        meta.platforms = with lib.platforms; linux;
+      } ''
+      # Expect to find this string in the output, ignore other failures.
+      (besu 2>&1 || true) | grep -q "# jemalloc: ${jemalloc.version}"
+      mkdir $out
+    '';
+  };
+
   meta = with lib; {
     description = "An enterprise-grade Java-based, Apache 2.0 licensed Ethereum client";
     homepage = "https://www.hyperledger.org/projects/besu";
@@ -27,4 +46,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     maintainers = with maintainers; [ mmahut ];
   };
-}
+})
diff --git a/pkgs/applications/blockchains/ledger-live-desktop/default.nix b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
index 462ae649510a1..36344bf1a6e15 100644
--- a/pkgs/applications/blockchains/ledger-live-desktop/default.nix
+++ b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
@@ -2,11 +2,11 @@
 
 let
   pname = "ledger-live-desktop";
-  version = "2.80.0";
+  version = "2.81.2";
 
   src = fetchurl {
     url = "https://download.live.ledger.com/${pname}-${version}-linux-x86_64.AppImage";
-    hash = "sha256-mtvLrA2wQM1om9En16/4AQFeddcRDoEyOwrefo5tOkk=";
+    hash = "sha256-dnlIIOOYmCN209avQFMcoekB7nJpc2dJnS2OBI+dq7E=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/applications/blockchains/optimism/default.nix b/pkgs/applications/blockchains/optimism/default.nix
index fcd5245d095d4..624f08b9a9349 100644
--- a/pkgs/applications/blockchains/optimism/default.nix
+++ b/pkgs/applications/blockchains/optimism/default.nix
@@ -6,19 +6,19 @@
 
 buildGoModule rec {
   pname = "optimism";
-  version = "1.7.4";
+  version = "1.7.6";
 
   src = fetchFromGitHub {
     owner = "ethereum-optimism";
     repo = "optimism";
     rev = "op-node/v${version}";
-    hash = "sha256-220fnMJDgvdGJtN0XkKtqNP94KfbmN5qhghfjHJaAxQ=";
+    hash = "sha256-LpkmNJqPe73qbTNvqxlDDTh9hD/H39ll3Rn2NEFEcg8=";
     fetchSubmodules = true;
   };
 
   subPackages = [ "op-node/cmd" "op-proposer/cmd" "op-batcher/cmd" ];
 
-  vendorHash = "sha256-yG910xpk2MHCD2LHh7aD09KMCux1X252fOHCsyUc/ks=";
+  vendorHash = "sha256-2eVwGWw/z6ct3PA8fC0rBwkNaICd20llVE/9essF95Q=";
 
   buildInputs = [
     libpcap
diff --git a/pkgs/applications/blockchains/polkadot/default.nix b/pkgs/applications/blockchains/polkadot/default.nix
index 190bfc28d1327..0e71ddb7ba3bd 100644
--- a/pkgs/applications/blockchains/polkadot/default.nix
+++ b/pkgs/applications/blockchains/polkadot/default.nix
@@ -82,8 +82,6 @@ rustPlatform.buildRustPackage rec {
   # available for `rustc-wasm32`
   WASM_BUILD_STD = 0;
 
-  # NOTE: we need to force lld otherwise rust-lld is not found for wasm32 target
-  CARGO_TARGET_WASM32_UNKNOWN_UNKNOWN_LINKER = "lld";
   OPENSSL_NO_VENDOR = 1;
   PROTOC = "${protobuf}/bin/protoc";
   ROCKSDB_LIB_DIR = "${rocksdb}/lib";
diff --git a/pkgs/applications/display-managers/lemurs/default.nix b/pkgs/applications/display-managers/lemurs/default.nix
index a83b6c271448e..a480b4fbd8a84 100644
--- a/pkgs/applications/display-managers/lemurs/default.nix
+++ b/pkgs/applications/display-managers/lemurs/default.nix
@@ -19,9 +19,6 @@ rustPlatform.buildRustPackage rec {
 
   cargoHash = "sha256-uuHPJe+1VsnLRGbHtgTMrib6Tk359cwTDVfvtHnDToo=";
 
-  # Fixes a lock issue
-  preConfigure = "cargo update --offline";
-
   buildInputs = [
     linux-pam
   ];
diff --git a/pkgs/applications/editors/ed/generic.nix b/pkgs/applications/editors/ed/generic.nix
index 70ec6badf25ec..70ffdb4c4af93 100644
--- a/pkgs/applications/editors/ed/generic.nix
+++ b/pkgs/applications/editors/ed/generic.nix
@@ -13,12 +13,14 @@
 , stdenv
 , fetchurl
 , lzip
+, runtimeShellPackage
 }:
 
 stdenv.mkDerivation {
   inherit pname version src patches;
 
   nativeBuildInputs = [ lzip ];
+  buildInputs = [ runtimeShellPackage ];
 
   configureFlags = [
     "CC=${stdenv.cc.targetPrefix}cc"
diff --git a/pkgs/applications/editors/emacs/elisp-packages/elpa-devel-generated.nix b/pkgs/applications/editors/emacs/elisp-packages/elpa-devel-generated.nix
index fd0ec451ec93f..8d25c1ec2c2f1 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/elpa-devel-generated.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/elpa-devel-generated.nix
@@ -345,10 +345,10 @@
       elpaBuild {
         pname = "auctex";
         ename = "auctex";
-        version = "14.0.4.0.20240427.91120";
+        version = "14.0.5.0.20240519.95252";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/auctex-14.0.4.0.20240427.91120.tar";
-          sha256 = "1qp2vgmna7fi66qdi4flgvl0l4cpz516klkx2rcd6wixvhyc53rx";
+          url = "https://elpa.gnu.org/devel/auctex-14.0.5.0.20240519.95252.tar";
+          sha256 = "0nb8djks4lpbkmsm4v8v6rnhh1wplcnarfc80fi7mglw26cls1lq";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -490,10 +490,10 @@
       elpaBuild {
         pname = "beframe";
         ename = "beframe";
-        version = "1.0.1.0.20240224.51508";
+        version = "1.1.1.0.20240522.34215";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/beframe-1.0.1.0.20240224.51508.tar";
-          sha256 = "105axrl2m6x5gc523ai9lna89jf44n2na337brxqn1jflnnpdh43";
+          url = "https://elpa.gnu.org/devel/beframe-1.1.1.0.20240522.34215.tar";
+          sha256 = "1ws11ynbcgi37sbh6p3nilq9ca26694qzqvd1h4dk0lb815b66l4";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -593,10 +593,10 @@
       elpaBuild {
         pname = "boxy";
         ename = "boxy";
-        version = "1.1.4.0.20240326.215209";
+        version = "1.1.4.0.20240505.204058";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/boxy-1.1.4.0.20240326.215209.tar";
-          sha256 = "077q9xxrsd98r4h9xj4djgiwfw34bjx3w0mhnbip2p57xknjjr46";
+          url = "https://elpa.gnu.org/devel/boxy-1.1.4.0.20240505.204058.tar";
+          sha256 = "18sgxarymy65vjzb94jjd0npxfd7920xlw49py5lc2y8d508p3rf";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -613,10 +613,10 @@
       elpaBuild {
         pname = "boxy-headings";
         ename = "boxy-headings";
-        version = "2.1.5.0.20240326.215829";
+        version = "2.1.6.0.20240505.204122";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/boxy-headings-2.1.5.0.20240326.215829.tar";
-          sha256 = "0zh5g1k2nql8jyg9ws0spsbhzwfa28f6qxs9krihp5qgz8kihn2p";
+          url = "https://elpa.gnu.org/devel/boxy-headings-2.1.6.0.20240505.204122.tar";
+          sha256 = "1m3k25j5z7q1gz2bbmyjkh79rq2b4350zz6csb2l0l8s4g1yddph";
         };
         packageRequires = [ boxy emacs org ];
         meta = {
@@ -700,10 +700,10 @@
       elpaBuild {
         pname = "bufferlo";
         ename = "bufferlo";
-        version = "0.6.0.20240105.200601";
+        version = "0.8.0.20240516.162426";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/bufferlo-0.6.0.20240105.200601.tar";
-          sha256 = "02iqarvq8b2siivbv878f2yzkm5law15idnbi5wv72v5pc2hxrjk";
+          url = "https://elpa.gnu.org/devel/bufferlo-0.8.0.20240516.162426.tar";
+          sha256 = "1w4vw1f5qmgv9207wpgmw5ahq4kans5dh775l213vzh32s6cdxx1";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -767,10 +767,10 @@
       elpaBuild {
         pname = "cape";
         ename = "cape";
-        version = "1.5.0.20240411.220758";
+        version = "1.5.0.20240517.221612";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/cape-1.5.0.20240411.220758.tar";
-          sha256 = "0mbw0azs2a33ywq1iqqvm2r5pyhpl1qfjkzmqv473n7qm658gkfg";
+          url = "https://elpa.gnu.org/devel/cape-1.5.0.20240517.221612.tar";
+          sha256 = "1gxk070lf204hp62zlxqkc0h8k7ml6sywms1m8kadbl650dl8fdc";
         };
         packageRequires = [ compat emacs ];
         meta = {
@@ -927,6 +927,25 @@
           license = lib.licenses.free;
         };
       }) {};
+    colorful-mode = callPackage ({ compat
+                                 , elpaBuild
+                                 , emacs
+                                 , fetchurl
+                                 , lib }:
+      elpaBuild {
+        pname = "colorful-mode";
+        ename = "colorful-mode";
+        version = "1.0.0.0.20240427.103837";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/devel/colorful-mode-1.0.0.0.20240427.103837.tar";
+          sha256 = "1ggasm3b678rnh96l4bynlbqciwsznsrljhxsi9ifak4xb3zlg8s";
+        };
+        packageRequires = [ compat emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/colorful-mode.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     comint-mime = callPackage ({ elpaBuild
                                , emacs
                                , fetchurl
@@ -969,10 +988,10 @@
       elpaBuild {
         pname = "company";
         ename = "company";
-        version = "0.10.2.0.20240311.194338";
+        version = "0.10.2.0.20240514.232026";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/company-0.10.2.0.20240311.194338.tar";
-          sha256 = "1bmf7xa7pwfmwqrdz3sjnbbaqr472n6f2n8mz5qrzc4y09xl8i0r";
+          url = "https://elpa.gnu.org/devel/company-0.10.2.0.20240514.232026.tar";
+          sha256 = "10sh1pi3wb38r5v6vka0g3dxsmp3yr6p2iqrr3icqrx8mbz2mhvz";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1045,10 +1064,10 @@
       elpaBuild {
         pname = "compat";
         ename = "compat";
-        version = "29.1.4.5.0.20240401.110429";
+        version = "29.1.4.5.0.20240520.101243";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/compat-29.1.4.5.0.20240401.110429.tar";
-          sha256 = "1mbkvl2fcdcnc8jriwn61z0aim0llg7rgb9rh12rq8djrinw1r5d";
+          url = "https://elpa.gnu.org/devel/compat-29.1.4.5.0.20240520.101243.tar";
+          sha256 = "0ik2qlvkd414fs2zpks7bfdylcwpchx0mw2d5932156k3bchm0ib";
         };
         packageRequires = [ emacs seq ];
         meta = {
@@ -1060,10 +1079,10 @@
       elpaBuild {
         pname = "consult";
         ename = "consult";
-        version = "1.5.0.20240420.92954";
+        version = "1.6.0.20240517.91901";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/consult-1.5.0.20240420.92954.tar";
-          sha256 = "1cg72m5aqvh7apdv3j4fhm232168vi0iddx3n9w42jwmhsxxq7fr";
+          url = "https://elpa.gnu.org/devel/consult-1.6.0.20240517.91901.tar";
+          sha256 = "0nyx7dncdqv40cfwzy2hfi4f23mph6q41yz5d04r0mzachpbh5zg";
         };
         packageRequires = [ compat emacs ];
         meta = {
@@ -1071,6 +1090,26 @@
           license = lib.licenses.free;
         };
       }) {};
+    consult-denote = callPackage ({ consult
+                                  , denote
+                                  , elpaBuild
+                                  , emacs
+                                  , fetchurl
+                                  , lib }:
+      elpaBuild {
+        pname = "consult-denote";
+        ename = "consult-denote";
+        version = "0.0.0.0.20240521.82207";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/devel/consult-denote-0.0.0.0.20240521.82207.tar";
+          sha256 = "1yj93195gzjgwfms6k2chwbhq3w14vpab7r9dq24gjxcgb3f63w3";
+        };
+        packageRequires = [ consult denote emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/consult-denote.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     consult-hoogle = callPackage ({ elpaBuild
                                   , emacs
                                   , fetchurl
@@ -1131,10 +1170,10 @@
       elpaBuild {
         pname = "corfu";
         ename = "corfu";
-        version = "1.3.0.20240413.92757";
+        version = "1.3.0.20240514.120535";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/corfu-1.3.0.20240413.92757.tar";
-          sha256 = "0qf5nvg70sb313mv1m1mycipf182lz8c0y2rsacniqzykvqhbv74";
+          url = "https://elpa.gnu.org/devel/corfu-1.3.0.20240514.120535.tar";
+          sha256 = "0nqq690pnjx7dlab6ba1y1n8m6bhbwm1yl7iqzv8php9j4bxyd20";
         };
         packageRequires = [ compat emacs ];
         meta = {
@@ -1166,10 +1205,10 @@
       elpaBuild {
         pname = "counsel";
         ename = "counsel";
-        version = "0.14.2.0.20240413.191055";
+        version = "0.14.2.0.20240520.132838";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/counsel-0.14.2.0.20240413.191055.tar";
-          sha256 = "14iphwfpmbmg44f1gx54y3ks920z3p86mfvg99h86yy817wb73pl";
+          url = "https://elpa.gnu.org/devel/counsel-0.14.2.0.20240520.132838.tar";
+          sha256 = "1xpvkyljahcjf84f4b40ivax1i06vyyyhlj3v7x0g90qjl6ba2cr";
         };
         packageRequires = [ emacs ivy swiper ];
         meta = {
@@ -1315,10 +1354,10 @@
       elpaBuild {
         pname = "dape";
         ename = "dape";
-        version = "0.10.0.0.20240427.142238";
+        version = "0.11.1.0.20240518.161137";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/dape-0.10.0.0.20240427.142238.tar";
-          sha256 = "0d2mn565l5ag023z1yqg5nj0fj0iraf5yifh54pyl6cnz7ipmcj3";
+          url = "https://elpa.gnu.org/devel/dape-0.11.1.0.20240518.161137.tar";
+          sha256 = "1v359ilhbpsvyvr7x1c9lj2hadsblp2lxd7vwsqx87bf1ls2cpzi";
         };
         packageRequires = [ emacs jsonrpc ];
         meta = {
@@ -1345,10 +1384,10 @@
       elpaBuild {
         pname = "dash";
         ename = "dash";
-        version = "2.19.1.0.20240405.94636";
+        version = "2.19.1.0.20240510.132708";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/dash-2.19.1.0.20240405.94636.tar";
-          sha256 = "0s1wqxjv1xdhd251zpk52wlglcc5apbhdhld30vmb7c9bq9288xw";
+          url = "https://elpa.gnu.org/devel/dash-2.19.1.0.20240510.132708.tar";
+          sha256 = "1m16w781gzsjim087jj8n42kn1lrvkplsigbsx0l7fd6hqagyl2k";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1408,10 +1447,10 @@
       elpaBuild {
         pname = "denote";
         ename = "denote";
-        version = "2.3.5.0.20240427.91057";
+        version = "2.3.5.0.20240520.93621";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/denote-2.3.5.0.20240427.91057.tar";
-          sha256 = "0xa0jxd6fbd2ayhaaxn1rnimi35pipgidx9l6v19swal0yk08kf4";
+          url = "https://elpa.gnu.org/devel/denote-2.3.5.0.20240520.93621.tar";
+          sha256 = "12mxsadpikjp3315cd20cp59r9f3g9jznkljp2yc3bkkjfrbjz5v";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1460,10 +1499,10 @@
       elpaBuild {
         pname = "devdocs";
         ename = "devdocs";
-        version = "0.6.1.0.20240329.73808";
+        version = "0.6.1.0.20240428.71147";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/devdocs-0.6.1.0.20240329.73808.tar";
-          sha256 = "1q4n5r5ki8f7qksr18w273l7qw8c38snn6d842kxwp9zg2417i8x";
+          url = "https://elpa.gnu.org/devel/devdocs-0.6.1.0.20240428.71147.tar";
+          sha256 = "0pvv4rvr14rc51gxb20zbyh42ijpq37dsmlzdsk8ypbfbgz3jw1s";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1518,10 +1557,10 @@
       elpaBuild {
         pname = "diff-hl";
         ename = "diff-hl";
-        version = "1.9.2.0.20240401.235744";
+        version = "1.9.2.0.20240505.211034";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/diff-hl-1.9.2.0.20240401.235744.tar";
-          sha256 = "1ilmi9a5g2h3xw49kiavr6pwp091i6j3qd7yxyixvw15ygvc6mi8";
+          url = "https://elpa.gnu.org/devel/diff-hl-1.9.2.0.20240505.211034.tar";
+          sha256 = "0mbxas2mx0pyvs3ccpp6ss2q8j7n5mva1ngg004fdhp8br8qknhn";
         };
         packageRequires = [ cl-lib emacs ];
         meta = {
@@ -1621,10 +1660,10 @@
       elpaBuild {
         pname = "dired-preview";
         ename = "dired-preview";
-        version = "0.1.1.0.20240425.180328";
+        version = "0.2.0.0.20240507.55800";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/dired-preview-0.1.1.0.20240425.180328.tar";
-          sha256 = "1wn8k1wr126nw22sczjrhkxwsjnbhr08ym01sy8d4422wif0l4as";
+          url = "https://elpa.gnu.org/devel/dired-preview-0.2.0.0.20240507.55800.tar";
+          sha256 = "1m7zgmjhw86yrhj5chci73rbgky3ybzni5j6xvwpxqxl6g41ph04";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1732,10 +1771,10 @@
       elpaBuild {
         pname = "drepl";
         ename = "drepl";
-        version = "0.2.0.20240421.84519";
+        version = "0.3.0.20240511.124331";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/drepl-0.2.0.20240421.84519.tar";
-          sha256 = "1kxxj0dd9yj168gaq89hm1sqajv8p8y7mgpqrxsqbz2hg6p568af";
+          url = "https://elpa.gnu.org/devel/drepl-0.3.0.20240511.124331.tar";
+          sha256 = "0xfmna8a8nh48ir9nl5gv4y03kqsvrzars74lza5k0cdsslga4gr";
         };
         packageRequires = [ comint-mime emacs ];
         meta = {
@@ -1866,10 +1905,10 @@
       elpaBuild {
         pname = "eev";
         ename = "eev";
-        version = "20240309.0.20240325.4057";
+        version = "20240513.0.20240517.104050";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/eev-20240309.0.20240325.4057.tar";
-          sha256 = "0h6b69ykrdkzhqkv8b0qjanpfkcw4408kcxlv672h3i660w9jj0j";
+          url = "https://elpa.gnu.org/devel/eev-20240513.0.20240517.104050.tar";
+          sha256 = "03bdj2f3y5xj33vq7mgxb8s0n05b5qnrsbak2xqjv2bgfky08dmq";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1884,10 +1923,10 @@
       elpaBuild {
         pname = "ef-themes";
         ename = "ef-themes";
-        version = "1.6.1.0.20240427.83621";
+        version = "1.7.0.0.20240510.44643";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/ef-themes-1.6.1.0.20240427.83621.tar";
-          sha256 = "1pjq8yblcmk4mp83bqcnb154rq8dbn8qn6q394wzzwnn6kv08ay2";
+          url = "https://elpa.gnu.org/devel/ef-themes-1.7.0.0.20240510.44643.tar";
+          sha256 = "0iygfxy4h74nd2glx7kb4faw4b0f2gpfakdwi1icfkkn021kr781";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1895,7 +1934,8 @@
           license = lib.licenses.free;
         };
       }) {};
-    eglot = callPackage ({ eldoc
+    eglot = callPackage ({ compat
+                         , eldoc
                          , elpaBuild
                          , emacs
                          , external-completion
@@ -1905,16 +1945,18 @@
                          , lib
                          , project
                          , seq
+                         , track-changes
                          , xref }:
       elpaBuild {
         pname = "eglot";
         ename = "eglot";
-        version = "1.17.0.20240423.182809";
+        version = "1.17.0.20240518.213720";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/eglot-1.17.0.20240423.182809.tar";
-          sha256 = "129ibvdqcv7jablim041x55vm4awyvcjk295nrrffryzbb75fgi9";
+          url = "https://elpa.gnu.org/devel/eglot-1.17.0.20240518.213720.tar";
+          sha256 = "10hpsip9ai41pxh5a32dwh9z90h2lrjvd3jh666zl3m11g906iwh";
         };
         packageRequires = [
+          compat
           eldoc
           emacs
           external-completion
@@ -1922,6 +1964,7 @@
           jsonrpc
           project
           seq
+          track-changes
           xref
         ];
         meta = {
@@ -1987,10 +2030,10 @@
       elpaBuild {
         pname = "elisp-benchmarks";
         ename = "elisp-benchmarks";
-        version = "1.14.0.20240404.94558";
+        version = "1.16.0.20240518.180006";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/elisp-benchmarks-1.14.0.20240404.94558.tar";
-          sha256 = "1lfpwwm9114x7431pc12kppb0mgia1zd4b5pnfpvqyk3159xx40v";
+          url = "https://elpa.gnu.org/devel/elisp-benchmarks-1.16.0.20240518.180006.tar";
+          sha256 = "1pc3qs0j8hh68lbh4lqyf2xkahiylpqaaac3cpvard0wdp9b4wsr";
         };
         packageRequires = [];
         meta = {
@@ -2002,10 +2045,10 @@
       elpaBuild {
         pname = "ellama";
         ename = "ellama";
-        version = "0.9.1.0.20240415.73018";
+        version = "0.9.4.0.20240517.145740";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/ellama-0.9.1.0.20240415.73018.tar";
-          sha256 = "1fcw0ll24bj32mjjb952in5shnyxz63gdkg80njy89s2bknw1ra1";
+          url = "https://elpa.gnu.org/devel/ellama-0.9.4.0.20240517.145740.tar";
+          sha256 = "0qb849ij6v7d8kk9mkx7nbk24d1dh32kydjddxykyn64xixw79kc";
         };
         packageRequires = [ emacs llm spinner ];
         meta = {
@@ -2110,10 +2153,10 @@
       elpaBuild {
         pname = "emms";
         ename = "emms";
-        version = "19.0.20240414.193332";
+        version = "19.0.20240512.173549";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/emms-19.0.20240414.193332.tar";
-          sha256 = "03jxpxgrlr1amxix4skfyag5pl6xvls011rcjjx1ka5sjdvnygvp";
+          url = "https://elpa.gnu.org/devel/emms-19.0.20240512.173549.tar";
+          sha256 = "13y0g21giswhhysm5252q1rb066a3sap4z51j4cprmwhj282zglj";
         };
         packageRequires = [ cl-lib nadvice seq ];
         meta = {
@@ -2179,10 +2222,10 @@
       elpaBuild {
         pname = "erc";
         ename = "erc";
-        version = "5.6snapshot0.20240419.135452";
+        version = "5.6snapshot0.20240518.154805";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/erc-5.6snapshot0.20240419.135452.tar";
-          sha256 = "1yx1k6r6fg77r6h7bvi1v205mnxmw8qjqr96k4dh73a7ik972vmh";
+          url = "https://elpa.gnu.org/devel/erc-5.6snapshot0.20240518.154805.tar";
+          sha256 = "0hscaz2nn08zv54gr2xfcg4pf66hycjsz31v603mbqyzgx6538hl";
         };
         packageRequires = [ compat emacs ];
         meta = {
@@ -2214,10 +2257,10 @@
       elpaBuild {
         pname = "ess";
         ename = "ess";
-        version = "24.1.1.0.20240426.115232";
+        version = "24.1.1.0.20240516.81354";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/ess-24.1.1.0.20240426.115232.tar";
-          sha256 = "1rskraim68fibf568f07r62h14ni45wvzifn21qyfcvv8slb63jd";
+          url = "https://elpa.gnu.org/devel/ess-24.1.1.0.20240516.81354.tar";
+          sha256 = "0r4kk65sd8kzdm11c7dz1m4qicjv6zg36r7gdg2mzpl0ym33g8aj";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2311,10 +2354,10 @@
       elpaBuild {
         pname = "exwm";
         ename = "exwm";
-        version = "0.28.0.20240403.140839";
+        version = "0.28.0.20240517.92828";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/exwm-0.28.0.20240403.140839.tar";
-          sha256 = "1hyf2m1inifvxzv6y2wmrfylp9vrb130nj1pvpy169miw2n50vzm";
+          url = "https://elpa.gnu.org/devel/exwm-0.28.0.20240517.92828.tar";
+          sha256 = "0d65091s706ajfqi9kp3m6k9hvlwhab6f484fs5v14c9rvspy1pa";
         };
         packageRequires = [ emacs xelb ];
         meta = {
@@ -2432,10 +2475,10 @@
       elpaBuild {
         pname = "flymake";
         ename = "flymake";
-        version = "1.3.7.0.20240422.65418";
+        version = "1.3.7.0.20240503.61639";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/flymake-1.3.7.0.20240422.65418.tar";
-          sha256 = "0gq3x3ssvsccwjajd3w835dd1zvlakj7gxdn6b1fqj46rkyi60vw";
+          url = "https://elpa.gnu.org/devel/flymake-1.3.7.0.20240503.61639.tar";
+          sha256 = "0qrdjynam3nvhm5qwjks308r28f8wlgsfdmdw4d7sb4xqyr2mzrz";
         };
         packageRequires = [ eldoc emacs project ];
         meta = {
@@ -2855,10 +2898,10 @@
       elpaBuild {
         pname = "gtags-mode";
         ename = "gtags-mode";
-        version = "1.5.0.20240425.21931";
+        version = "1.6.0.20240511.23214";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/gtags-mode-1.5.0.20240425.21931.tar";
-          sha256 = "13gdalm2n75yifpfy2wsbf47l6q4rklvd4akszn423nmcl9bnb8x";
+          url = "https://elpa.gnu.org/devel/gtags-mode-1.6.0.20240511.23214.tar";
+          sha256 = "0wi1pfvx7wrd8jfnhlim2zp4k2n96c6prl42f8asbvq1rgi5qh1p";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3008,10 +3051,10 @@
       elpaBuild {
         pname = "hyperbole";
         ename = "hyperbole";
-        version = "9.0.2pre0.20240420.120926";
+        version = "9.0.2pre0.20240519.180059";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/hyperbole-9.0.2pre0.20240420.120926.tar";
-          sha256 = "1mr05p3lhz1xnivl8mqhzdw9qrh0klasjisl75gn14n7l233nir7";
+          url = "https://elpa.gnu.org/devel/hyperbole-9.0.2pre0.20240519.180059.tar";
+          sha256 = "0i5h57a2ng28ijwds7ddy5ay8dkkgg817p35ig51mjrk7ljz6w2n";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3019,6 +3062,23 @@
           license = lib.licenses.free;
         };
       }) {};
+    idlwave = callPackage ({ elpaBuild
+                           , fetchurl
+                           , lib }:
+      elpaBuild {
+        pname = "idlwave";
+        ename = "idlwave";
+        version = "6.5.0.0.20240430.163614";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/devel/idlwave-6.5.0.0.20240430.163614.tar";
+          sha256 = "165lbvhrvrd1szvqns6pd7wmr9zxszzvq3lqz11qg20didi6sngr";
+        };
+        packageRequires = [];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/idlwave.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     ilist = callPackage ({ elpaBuild, fetchurl, lib }:
       elpaBuild {
         pname = "ilist";
@@ -3107,10 +3167,10 @@
       elpaBuild {
         pname = "ivy";
         ename = "ivy";
-        version = "0.14.2.0.20240405.203954";
+        version = "0.14.2.0.20240519.163855";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/ivy-0.14.2.0.20240405.203954.tar";
-          sha256 = "02mkfciafhdc9b41s0kv07l9z77zyq7a2j1ljdiwbmcbkdis028p";
+          url = "https://elpa.gnu.org/devel/ivy-0.14.2.0.20240519.163855.tar";
+          sha256 = "1r1b5znx1dzwpz903sm85sm2yp03yp4mvds782j8lngl46r5ibsr";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3270,10 +3330,10 @@
       elpaBuild {
         pname = "jinx";
         ename = "jinx";
-        version = "1.6.0.20240415.42305";
+        version = "1.7.0.20240515.101640";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/jinx-1.6.0.20240415.42305.tar";
-          sha256 = "12jvkb9nis5kin7ii7aan7b2d8cd5q1f9qpp6g506m18gdi12f48";
+          url = "https://elpa.gnu.org/devel/jinx-1.7.0.20240515.101640.tar";
+          sha256 = "1ghp16kmplj9kj92867xsv3bnl6f0w95xl8hgjxbck4krj8k6is5";
         };
         packageRequires = [ compat emacs ];
         meta = {
@@ -3566,16 +3626,16 @@
           license = lib.licenses.free;
         };
       }) {};
-    llm = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+    llm = callPackage ({ elpaBuild, emacs, fetchurl, lib, plz }:
       elpaBuild {
         pname = "llm";
         ename = "llm";
-        version = "0.12.3.0.20240331.11827";
+        version = "0.15.0.0.20240518.145931";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/llm-0.12.3.0.20240331.11827.tar";
-          sha256 = "0nc9p0cjxzmfrxrir45lj6yyqwpaw30rdgbhw5dl83shnps4fi58";
+          url = "https://elpa.gnu.org/devel/llm-0.15.0.0.20240518.145931.tar";
+          sha256 = "0dzvgq7lvlg62rzv9p62r5m0gm5glwd37mnw3sf6w5h3jfnkpzv0";
         };
-        packageRequires = [ emacs ];
+        packageRequires = [ emacs plz ];
         meta = {
           homepage = "https://elpa.gnu.org/packages/llm.html";
           license = lib.licenses.free;
@@ -3798,10 +3858,10 @@
       elpaBuild {
         pname = "mct";
         ename = "mct";
-        version = "1.0.0.0.20240320.41315";
+        version = "1.0.0.0.20240429.72524";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/mct-1.0.0.0.20240320.41315.tar";
-          sha256 = "02rifid9g3q6a92xp1xpkmmm00awhxfk573lbapcl473sjy5dwfp";
+          url = "https://elpa.gnu.org/devel/mct-1.0.0.0.20240429.72524.tar";
+          sha256 = "07nb0y0ld6x2j5g1a0sjm5ihck41xkk55p5hm5279ddjklcp8p6a";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3947,10 +4007,10 @@
       elpaBuild {
         pname = "modus-themes";
         ename = "modus-themes";
-        version = "4.4.0.0.20240427.84336";
+        version = "4.4.0.0.20240505.33119";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/modus-themes-4.4.0.0.20240427.84336.tar";
-          sha256 = "003kzj9s22qyzvavzh9q0x5dh6jg3n8ykvbihkx5hw16ar7cxmgg";
+          url = "https://elpa.gnu.org/devel/modus-themes-4.4.0.0.20240505.33119.tar";
+          sha256 = "1y637n8cll4932hyi16gnzpjqypwgwxbyq8mfhgjbz26663nksxs";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -4116,10 +4176,10 @@
       elpaBuild {
         pname = "nano-modeline";
         ename = "nano-modeline";
-        version = "1.0.1.0.20240318.92455";
+        version = "1.1.0.0.20240429.102433";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/nano-modeline-1.0.1.0.20240318.92455.tar";
-          sha256 = "14n5gmbpnbcrj2h2c12s35pdb93r1hflklpnv0bh5gpla154f6ln";
+          url = "https://elpa.gnu.org/devel/nano-modeline-1.1.0.0.20240429.102433.tar";
+          sha256 = "0jlaqkrqn2x4fhlz57c94586xjqi1sb89p6py4j5r00669djwhrf";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -4220,10 +4280,10 @@
       elpaBuild {
         pname = "notmuch-indicator";
         ename = "notmuch-indicator";
-        version = "1.1.0.0.20240117.25556";
+        version = "1.2.0.0.20240511.94138";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/notmuch-indicator-1.1.0.0.20240117.25556.tar";
-          sha256 = "003pq429x6yjqv4hw7ryigqmpzrk5frwmlk1ar35z9n83xsnl128";
+          url = "https://elpa.gnu.org/devel/notmuch-indicator-1.2.0.0.20240511.94138.tar";
+          sha256 = "0f1bq1mbjiy1akqml3fb85xz5923j3w2dz4p6yij3kfb5cks42d1";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -4393,10 +4453,10 @@
       elpaBuild {
         pname = "org";
         ename = "org";
-        version = "9.7pre0.20240426.150943";
+        version = "9.7pre0.20240521.135840";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/org-9.7pre0.20240426.150943.tar";
-          sha256 = "0n7d6zrwvrism7blfdri19mvrhcc71cga7qwbvpnq0a9mamv1ypy";
+          url = "https://elpa.gnu.org/devel/org-9.7pre0.20240521.135840.tar";
+          sha256 = "06j7kjbpd390i0kqvvnlkpdzqkwiicbdgjymif338l0qx2kl4sg5";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -4412,10 +4472,10 @@
       elpaBuild {
         pname = "org-contacts";
         ename = "org-contacts";
-        version = "1.1.0.20240410.112834";
+        version = "1.1.0.20240521.114436";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/org-contacts-1.1.0.20240410.112834.tar";
-          sha256 = "0mns2fkzn1yc968k2nc4y5gys1m7dbcj67mdb8vfj54iwdkw316z";
+          url = "https://elpa.gnu.org/devel/org-contacts-1.1.0.20240521.114436.tar";
+          sha256 = "0srbl81ngk24c9kf991ps2j53kpqriwgs8ld4lfcqmxzclr5y8iv";
         };
         packageRequires = [ emacs org ];
         meta = {
@@ -4470,10 +4530,10 @@
       elpaBuild {
         pname = "org-modern";
         ename = "org-modern";
-        version = "1.2.0.20240327.153104";
+        version = "1.2.0.20240515.193202";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/org-modern-1.2.0.20240327.153104.tar";
-          sha256 = "0gkkcvjbjyr5h8idafc0lppjwdr84y860800ns7z894i89iy01li";
+          url = "https://elpa.gnu.org/devel/org-modern-1.2.0.20240515.193202.tar";
+          sha256 = "05mbgm95rlcv5liswlckd26izz5p3a6mkcfnz60widnilfmza9k6";
         };
         packageRequires = [ compat emacs ];
         meta = {
@@ -4508,10 +4568,10 @@
       elpaBuild {
         pname = "org-real";
         ename = "org-real";
-        version = "1.0.8.0.20240328.105118";
+        version = "1.0.9.0.20240505.204156";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/org-real-1.0.8.0.20240328.105118.tar";
-          sha256 = "018bhg886mhv5wzvahvi36bpmh6lpgfahs2dxcrhlb5jqaf8kj50";
+          url = "https://elpa.gnu.org/devel/org-real-1.0.9.0.20240505.204156.tar";
+          sha256 = "05z8kycyqcfj0w18mnqys54wnlwa9yijlb5c0h86fqbhr7shbjmp";
         };
         packageRequires = [ boxy emacs org ];
         meta = {
@@ -4546,10 +4606,10 @@
       elpaBuild {
         pname = "org-transclusion";
         ename = "org-transclusion";
-        version = "1.3.2.0.20240420.151651";
+        version = "1.4.0.0.20240520.170949";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/org-transclusion-1.3.2.0.20240420.151651.tar";
-          sha256 = "0izvaxis7yc2zfxff3dzsc27r8s4kl65x97rjxhz0cp3iqfsb91x";
+          url = "https://elpa.gnu.org/devel/org-transclusion-1.4.0.0.20240520.170949.tar";
+          sha256 = "15i8my50y1m44rhk06rfs6bwlc3mavb73bjysg3wp1j132m2dcrl";
         };
         packageRequires = [ emacs org ];
         meta = {
@@ -4834,6 +4894,44 @@
           license = lib.licenses.free;
         };
       }) {};
+    plz-event-source = callPackage ({ elpaBuild
+                                    , emacs
+                                    , fetchurl
+                                    , lib
+                                    , plz }:
+      elpaBuild {
+        pname = "plz-event-source";
+        ename = "plz-event-source";
+        version = "0.1pre0.20240501.111443";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/devel/plz-event-source-0.1pre0.20240501.111443.tar";
+          sha256 = "1bygbgzvyc6k8bqrnl5gwdbjmlrdh25fmf7n0rllfz4b055cdj6a";
+        };
+        packageRequires = [ emacs plz ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/plz-event-source.html";
+          license = lib.licenses.free;
+        };
+      }) {};
+    plz-media-type = callPackage ({ elpaBuild
+                                  , emacs
+                                  , fetchurl
+                                  , lib
+                                  , plz }:
+      elpaBuild {
+        pname = "plz-media-type";
+        ename = "plz-media-type";
+        version = "0.1pre0.20240501.111146";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/devel/plz-media-type-0.1pre0.20240501.111146.tar";
+          sha256 = "0l2zgxgi48rvzs79qq2bjmp7bg2qhd3709rpyzfkv77gigcjwqj6";
+        };
+        packageRequires = [ emacs plz ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/plz-media-type.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     plz-see = callPackage ({ elpaBuild, emacs, fetchurl, lib, plz }:
       elpaBuild {
         pname = "plz-see";
@@ -4936,10 +5034,10 @@
       elpaBuild {
         pname = "posframe";
         ename = "posframe";
-        version = "1.4.3.0.20240426.60433";
+        version = "1.4.3.0.20240507.14806";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/posframe-1.4.3.0.20240426.60433.tar";
-          sha256 = "1j5l16z765wz5qs1x49vpkmj1cbxbsa69wlrf19r4qc7b6gijzm5";
+          url = "https://elpa.gnu.org/devel/posframe-1.4.3.0.20240507.14806.tar";
+          sha256 = "08jhv15hwrdjgdzl6d8xwdmx46afwlpd6yz3h5k7y7lhbnlc5jkp";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -4987,10 +5085,10 @@
       elpaBuild {
         pname = "project";
         ename = "project";
-        version = "0.10.0.0.20240415.22959";
+        version = "0.10.0.0.20240512.175655";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/project-0.10.0.0.20240415.22959.tar";
-          sha256 = "0clz75455r6pzjcj9jbpqgi201plmm4094nz7s19xmq1ifll9pzy";
+          url = "https://elpa.gnu.org/devel/project-0.10.0.0.20240512.175655.tar";
+          sha256 = "1228kpfyj3zd1bz8xjv257mhhxgvrj8d67saxgfxix3y62fhb2wc";
         };
         packageRequires = [ emacs xref ];
         meta = {
@@ -5032,10 +5130,10 @@
       elpaBuild {
         pname = "pulsar";
         ename = "pulsar";
-        version = "1.0.1.0.20240117.25720";
+        version = "1.0.1.0.20240429.64508";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/pulsar-1.0.1.0.20240117.25720.tar";
-          sha256 = "09qq4cribybn86s6dz77rbmazzl3c88305brkiza2pn2cg10g8xw";
+          url = "https://elpa.gnu.org/devel/pulsar-1.0.1.0.20240429.64508.tar";
+          sha256 = "1ak3vphfw0rsm4rrqyg72zjjwm68ypwxbbif8fz31rnsp0n66f8n";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -5047,10 +5145,10 @@
       elpaBuild {
         pname = "pyim";
         ename = "pyim";
-        version = "5.3.3.0.20240407.80210";
+        version = "5.3.4.0.20240508.25615";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/pyim-5.3.3.0.20240407.80210.tar";
-          sha256 = "1vk0q0wczr9yiwm89kljdlsil7plr2z0cr5sw48fxy4dzgjdjkfb";
+          url = "https://elpa.gnu.org/devel/pyim-5.3.4.0.20240508.25615.tar";
+          sha256 = "0p079girx795fvqswdjh8l5mwdyndanfcsvb1qvj2klq063y1vv5";
         };
         packageRequires = [ async emacs xr ];
         meta = {
@@ -5079,10 +5177,10 @@
       elpaBuild {
         pname = "python";
         ename = "python";
-        version = "0.28.0.20240427.62346";
+        version = "0.28.0.20240518.202234";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/python-0.28.0.20240427.62346.tar";
-          sha256 = "1knzsgi2g40b9ba5s81653h913mlsh71y83b8qc71v9l16lgy1fg";
+          url = "https://elpa.gnu.org/devel/python-0.28.0.20240518.202234.tar";
+          sha256 = "0nk9rdr62c9j27gbjz3z6ri35aw026pmj6lhqvn6j9ci8ijif3yf";
         };
         packageRequires = [ compat emacs seq ];
         meta = {
@@ -5409,10 +5507,10 @@
       elpaBuild {
         pname = "relint";
         ename = "relint";
-        version = "1.24.0.20240401.74454";
+        version = "1.24.0.20240510.91500";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/relint-1.24.0.20240401.74454.tar";
-          sha256 = "07q0571ks81al09xl1ms52rznp6y7scvlnh2ax1nj67f3jmikzcd";
+          url = "https://elpa.gnu.org/devel/relint-1.24.0.20240510.91500.tar";
+          sha256 = "171dnhya0ij5lapn9h2d8ssxx163lwgasvfssd07739171h07389";
         };
         packageRequires = [ emacs xr ];
         meta = {
@@ -5895,10 +5993,10 @@
       elpaBuild {
         pname = "spacious-padding";
         ename = "spacious-padding";
-        version = "0.4.1.0.20240311.74539";
+        version = "0.5.0.0.20240429.82953";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/spacious-padding-0.4.1.0.20240311.74539.tar";
-          sha256 = "1xgnplcvp73fpyi9rx5wbn0hjbcv65vlrb7dqkgjc0chaivp4dgm";
+          url = "https://elpa.gnu.org/devel/spacious-padding-0.5.0.0.20240429.82953.tar";
+          sha256 = "0k5w5d9prlasvv6074nxl8782mbhhvccpkc1zjrp228frkbgfpmi";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -5993,10 +6091,10 @@
       elpaBuild {
         pname = "srht";
         ename = "srht";
-        version = "0.4.0.20231117.115741";
+        version = "0.4.0.20240506.104337";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/srht-0.4.0.20231117.115741.tar";
-          sha256 = "03wyfx0zhgfpbhwyxrbd6mj0465m82910l77r12gsg1vbk78l4l0";
+          url = "https://elpa.gnu.org/devel/srht-0.4.0.20240506.104337.tar";
+          sha256 = "1fs6av8l3v4vvzxxhd20rzwrwh8dkk1d1x21jkjx8nczj2jydwb0";
         };
         packageRequires = [ emacs plz transient ];
         meta = {
@@ -6029,10 +6127,10 @@
       elpaBuild {
         pname = "standard-themes";
         ename = "standard-themes";
-        version = "2.0.1.0.20240427.84421";
+        version = "2.0.1.0.20240520.83250";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/standard-themes-2.0.1.0.20240427.84421.tar";
-          sha256 = "09vmyjm148r1ajxlsrdqrgi988a2px5dn5z9k0l3lg88a38rxgz6";
+          url = "https://elpa.gnu.org/devel/standard-themes-2.0.1.0.20240520.83250.tar";
+          sha256 = "08lb47hilg5dniqxlxp773s16m0shqmglcrf1qdm48ddg05911gx";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -6062,10 +6160,10 @@
       elpaBuild {
         pname = "substitute";
         ename = "substitute";
-        version = "0.2.1.0.20240117.30048";
+        version = "0.3.1.0.20240522.34122";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/substitute-0.2.1.0.20240117.30048.tar";
-          sha256 = "1vkjg3w12r7j3dl5jx5wha412lknns37535vjd4x6xgk2rs3yvh0";
+          url = "https://elpa.gnu.org/devel/substitute-0.3.1.0.20240522.34122.tar";
+          sha256 = "02n78x82sl7i0xzpp1468i1bwm9kic2ycc9vvhymxalpiylc3iqq";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -6126,10 +6224,10 @@
       elpaBuild {
         pname = "svg-tag-mode";
         ename = "svg-tag-mode";
-        version = "0.3.2.0.20240122.120925";
+        version = "0.3.2.0.20240429.105240";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/svg-tag-mode-0.3.2.0.20240122.120925.tar";
-          sha256 = "17qixxhy889l2v17pw3b2qrk2g6x4a7yfh0bzxfhlizq10sy24hz";
+          url = "https://elpa.gnu.org/devel/svg-tag-mode-0.3.2.0.20240429.105240.tar";
+          sha256 = "0isp9zcyx9dqb0nah1b990nikwiaxm5lvqlbya9v1rcb3fbvf9hc";
         };
         packageRequires = [ emacs svg-lib ];
         meta = {
@@ -6145,10 +6243,10 @@
       elpaBuild {
         pname = "swiper";
         ename = "swiper";
-        version = "0.14.2.0.20240405.204232";
+        version = "0.14.2.0.20240520.120545";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/swiper-0.14.2.0.20240405.204232.tar";
-          sha256 = "1b5dn8v6rm6m7b2agdxf50jkmrfx6ac8fnwyqabr3zzcshpl6ixm";
+          url = "https://elpa.gnu.org/devel/swiper-0.14.2.0.20240520.120545.tar";
+          sha256 = "1wcxf1d3kn19yq3gk4d4fqs7p61i1rm316glzlcksny6rp2f1sma";
         };
         packageRequires = [ emacs ivy ];
         meta = {
@@ -6449,10 +6547,10 @@
       elpaBuild {
         pname = "track-changes";
         ename = "track-changes";
-        version = "1.1.0.20240419.221900";
+        version = "1.2.0.20240505.172329";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/track-changes-1.1.0.20240419.221900.tar";
-          sha256 = "16xvkp3fq89jbf87phk6yl9cbfmmgb8r376hh08kwrsmbpaz6bd2";
+          url = "https://elpa.gnu.org/devel/track-changes-1.2.0.20240505.172329.tar";
+          sha256 = "1mvgwrrqfa3yix9lrsx4mb6zqaydjjqc69nh9lyrcgi54819jlvh";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -6537,10 +6635,10 @@
       elpaBuild {
         pname = "transient";
         ename = "transient";
-        version = "0.6.0.0.20240414.135949";
+        version = "0.6.0.0.20240509.184906";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/transient-0.6.0.0.20240414.135949.tar";
-          sha256 = "1rf1zszrfd02n4ky8n72sqzwb3zk16j92plflfc2wdrzaw9k2mmr";
+          url = "https://elpa.gnu.org/devel/transient-0.6.0.0.20240509.184906.tar";
+          sha256 = "1axy5ccwd4n63saaf10af182r2k3j8x4vbyhxa81rdv73ndr652g";
         };
         packageRequires = [ compat emacs seq ];
         meta = {
@@ -6715,10 +6813,10 @@
       elpaBuild {
         pname = "urgrep";
         ename = "urgrep";
-        version = "0.4.2snapshot0.20240310.204507";
+        version = "0.5.1snapshot0.20240511.180511";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/urgrep-0.4.2snapshot0.20240310.204507.tar";
-          sha256 = "173ql2ng8blfw4y7nbfgjmzpgvw0xabb1sk2c1mis6k36ali851w";
+          url = "https://elpa.gnu.org/devel/urgrep-0.5.1snapshot0.20240511.180511.tar";
+          sha256 = "03dpbsmx11r14mi6vlh4phknmxlayxng2rfphv8q7wn4cvgv18q2";
         };
         packageRequires = [ compat emacs project ];
         meta = {
@@ -6786,10 +6884,10 @@
       elpaBuild {
         pname = "use-package";
         ename = "use-package";
-        version = "2.4.5.0.20240330.124921";
+        version = "2.4.5.0.20240518.103045";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/use-package-2.4.5.0.20240330.124921.tar";
-          sha256 = "0jc1389g63bsy2w2fkw332vpwqrm5xci8skqf7mkg39y8nj2j0fw";
+          url = "https://elpa.gnu.org/devel/use-package-2.4.5.0.20240518.103045.tar";
+          sha256 = "0zh4vb5h2733glbj3izflw0laxvf2y34cm924jpgyrjkz66ld6wc";
         };
         packageRequires = [ bind-key emacs ];
         meta = {
@@ -6950,10 +7048,10 @@
       elpaBuild {
         pname = "vertico";
         ename = "vertico";
-        version = "1.8.0.20240424.195903";
+        version = "1.8.0.20240511.204721";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/vertico-1.8.0.20240424.195903.tar";
-          sha256 = "0yhk9cp3qlan2vci31an1d3c4mqz2ckbs7xhs12qk6vich66yshk";
+          url = "https://elpa.gnu.org/devel/vertico-1.8.0.20240511.204721.tar";
+          sha256 = "0gd68x98dghqa7da0ybah2w27bxipal262n9d6rpdhxb361cmpca";
         };
         packageRequires = [ compat emacs ];
         meta = {
@@ -7155,10 +7253,10 @@
       elpaBuild {
         pname = "which-key";
         ename = "which-key";
-        version = "3.6.0.0.20240423.92028";
+        version = "3.6.0.0.20240501.85118";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/which-key-3.6.0.0.20240423.92028.tar";
-          sha256 = "0bx47186nrsfbjcfci7qfx3s874q4wvys6imkr4k0i9mmfnchvaa";
+          url = "https://elpa.gnu.org/devel/which-key-3.6.0.0.20240501.85118.tar";
+          sha256 = "080i7b37fzvf020q4dqxy0dr8na0qqaymv8bd048yrw70wcrlz0w";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -7184,6 +7282,24 @@
           license = lib.licenses.free;
         };
       }) {};
+    window-tool-bar = callPackage ({ elpaBuild
+                                   , emacs
+                                   , fetchurl
+                                   , lib }:
+      elpaBuild {
+        pname = "window-tool-bar";
+        ename = "window-tool-bar";
+        version = "0.2.0.20240519.64147";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/devel/window-tool-bar-0.2.0.20240519.64147.tar";
+          sha256 = "1z5fdlrrjdx0lhfwzahnlqxg75fy9abrj3izc8mfwy5j1bkrym6m";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/window-tool-bar.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     windower = callPackage ({ elpaBuild
                             , emacs
                             , fetchurl
@@ -7275,10 +7391,10 @@
       elpaBuild {
         pname = "wrap-search";
         ename = "wrap-search";
-        version = "4.14.11.0.20240427.191832";
+        version = "4.16.13.0.20240517.214404";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/wrap-search-4.14.11.0.20240427.191832.tar";
-          sha256 = "0286jkxhzn6x2jbvwlrknni3fdf9h2a2mi96kkasy91bph3snx2a";
+          url = "https://elpa.gnu.org/devel/wrap-search-4.16.13.0.20240517.214404.tar";
+          sha256 = "14rk7gyab0m19z0rhrpqcfdqrdrbz9v5zw36rkn5qxzrpv6cw7hq";
         };
         packageRequires = [];
         meta = {
@@ -7365,10 +7481,10 @@
       elpaBuild {
         pname = "xref";
         ename = "xref";
-        version = "1.6.3.0.20240328.32323";
+        version = "1.6.3.0.20240518.3950";
         src = fetchurl {
-          url = "https://elpa.gnu.org/devel/xref-1.6.3.0.20240328.32323.tar";
-          sha256 = "04rxbfzvz4z3q04r3817vrkx7w6kspdmpyl30h9v37vmwyxw722j";
+          url = "https://elpa.gnu.org/devel/xref-1.6.3.0.20240518.3950.tar";
+          sha256 = "0k60vvhpw5bzbs3qv28sip7dl2p44m8bczx54ff32klgfwpk06zk";
         };
         packageRequires = [ emacs ];
         meta = {
diff --git a/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix b/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix
index 88d511c6a3841..b1145baf3781e 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix
@@ -295,10 +295,10 @@
       elpaBuild {
         pname = "auctex";
         ename = "auctex";
-        version = "14.0.4";
+        version = "14.0.5";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/auctex-14.0.4.tar";
-          sha256 = "14rfv7xlwdqp42dilmpg11d58q8pzw15fv01hq80iv9kyzsfvxd7";
+          url = "https://elpa.gnu.org/packages/auctex-14.0.5.tar";
+          sha256 = "0sycj6ad5jazmsxq37hsnvbywkpj66lrw3d3mxqr1wqkb67cdd3k";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -430,10 +430,10 @@
       elpaBuild {
         pname = "beframe";
         ename = "beframe";
-        version = "1.0.1";
+        version = "1.1.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/beframe-1.0.1.tar";
-          sha256 = "1p8zglpdcss0p307i4h2zpqbsiipmgmk0a2fx6j9w3lx0zgaf2xj";
+          url = "https://elpa.gnu.org/packages/beframe-1.1.1.tar";
+          sha256 = "0xx2zvgjilivi6nnr2x9bwwcifinj66j6r07wxjawqkrsknyypas";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -535,10 +535,10 @@
       elpaBuild {
         pname = "boxy-headings";
         ename = "boxy-headings";
-        version = "2.1.5";
+        version = "2.1.6";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/boxy-headings-2.1.5.tar";
-          sha256 = "0w3cy2r8iqsb79r33lllj08v719hq0xniq5pbr9sl8kn2raxcjhr";
+          url = "https://elpa.gnu.org/packages/boxy-headings-2.1.6.tar";
+          sha256 = "0wnks9a4agvqjivp9myl8zcdq6rj7hh5ig73f8qv5imar0i76izc";
         };
         packageRequires = [ boxy emacs org ];
         meta = {
@@ -614,10 +614,10 @@
       elpaBuild {
         pname = "bufferlo";
         ename = "bufferlo";
-        version = "0.6";
+        version = "0.8";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/bufferlo-0.6.tar";
-          sha256 = "0gvg1mag8ngjmjl4d6zr99k7mq368l1m6dxy9mk6icgxm3sqr1yk";
+          url = "https://elpa.gnu.org/packages/bufferlo-0.8.tar";
+          sha256 = "0ypd611xmjsir24nv8gr19pq7f1n0gbgq9yzvfy3m6k97gpw2jzq";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -820,6 +820,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    colorful-mode = callPackage ({ compat, elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "colorful-mode";
+        ename = "colorful-mode";
+        version = "1.0.0";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/colorful-mode-1.0.0.tar";
+          sha256 = "1gmbrb5z3rmw0fjrdymfbcx74szcy963dx53ksykvfd9355azj3x";
+        };
+        packageRequires = [ compat emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/colorful-mode.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     comint-mime = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "comint-mime";
@@ -937,10 +952,10 @@
       elpaBuild {
         pname = "consult";
         ename = "consult";
-        version = "1.5";
+        version = "1.6";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/consult-1.5.tar";
-          sha256 = "1gx4cjrcaq5dn3rrd2dm30jz07zrnddf0y33qi0dmiqlsyg7l9qw";
+          url = "https://elpa.gnu.org/packages/consult-1.6.tar";
+          sha256 = "00wsv6dvlyf7ygi586pdyhgp7f5ic2qqyqjz3g2g8hmgya5javdb";
         };
         packageRequires = [ compat emacs ];
         meta = {
@@ -948,6 +963,26 @@
           license = lib.licenses.free;
         };
       }) {};
+    consult-denote = callPackage ({ consult
+                                  , denote
+                                  , elpaBuild
+                                  , emacs
+                                  , fetchurl
+                                  , lib }:
+      elpaBuild {
+        pname = "consult-denote";
+        ename = "consult-denote";
+        version = "0.0.0";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/consult-denote-0.0.0.tar";
+          sha256 = "191qf8knrmimam98jv8kgrl6mfrnwpdmw160s5qw6wcik7j4z6kv";
+        };
+        packageRequires = [ consult denote emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/consult-denote.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     consult-hoogle = callPackage ({ elpaBuild
                                   , emacs
                                   , fetchurl
@@ -1166,10 +1201,10 @@
       elpaBuild {
         pname = "dape";
         ename = "dape";
-        version = "0.10.0";
+        version = "0.11.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/dape-0.10.0.tar";
-          sha256 = "1x6mbis4vmghp3vf4pxyzdp68nnrraw9ayx3gzbp1bvcmr62qdig";
+          url = "https://elpa.gnu.org/packages/dape-0.11.1.tar";
+          sha256 = "0i04wwklypzxh78gwd9zjxjm3lwi2sn7qpqnlgd6n8hhcigyzhp0";
         };
         packageRequires = [ emacs jsonrpc ];
         meta = {
@@ -1442,10 +1477,10 @@
       elpaBuild {
         pname = "dired-preview";
         ename = "dired-preview";
-        version = "0.1.1";
+        version = "0.2.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/dired-preview-0.1.1.tar";
-          sha256 = "08c9bvsdb7w9ggav9yrpz12nf9zlq4h1zq8ssdf9pwrx2nzy06p7";
+          url = "https://elpa.gnu.org/packages/dired-preview-0.2.0.tar";
+          sha256 = "15l01javijjjjc9bycljgshg9jv3clmfnsisy7f3caqxq78sb61l";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1547,10 +1582,10 @@
       elpaBuild {
         pname = "drepl";
         ename = "drepl";
-        version = "0.2";
+        version = "0.3";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/drepl-0.2.tar";
-          sha256 = "1vf61d6iihpnr3h4cyxksd64qj8rw2a9ihjm3krvjmigxr2r6awx";
+          url = "https://elpa.gnu.org/packages/drepl-0.3.tar";
+          sha256 = "0dy8xvx5nwibiyhddm6nhcw384vhkhsbbxcs4hah0yxwajfm8yds";
         };
         packageRequires = [ comint-mime emacs ];
         meta = {
@@ -1667,10 +1702,10 @@
       elpaBuild {
         pname = "eev";
         ename = "eev";
-        version = "20240309";
+        version = "20240513";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/eev-20240309.tar";
-          sha256 = "0nn6jdc37n2nx3i97ljl5a37dwxv5qx12ar15yr702hbsgaxyfa5";
+          url = "https://elpa.gnu.org/packages/eev-20240513.tar";
+          sha256 = "133blp5696f2adxqny5kyylr6s3n3vixs0ak1n3i58sqb0krp2pj";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1682,10 +1717,10 @@
       elpaBuild {
         pname = "ef-themes";
         ename = "ef-themes";
-        version = "1.6.1";
+        version = "1.7.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/ef-themes-1.6.1.tar";
-          sha256 = "0wkiqjnqnxwzskpxam44qxxz13fbpgnf17c1qrin8ad8i9b49bvq";
+          url = "https://elpa.gnu.org/packages/ef-themes-1.7.0.tar";
+          sha256 = "0d6rpwk1z9sc1yzfc4d4icb43pqwvdfvqap1m4r4aajvc5kasq1v";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1781,10 +1816,10 @@
       elpaBuild {
         pname = "elisp-benchmarks";
         ename = "elisp-benchmarks";
-        version = "1.14";
+        version = "1.16";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/elisp-benchmarks-1.14.tar";
-          sha256 = "050wja4axngnxggfxhg4b4lcbf1q674zr933r9qkc3ww731f42qa";
+          url = "https://elpa.gnu.org/packages/elisp-benchmarks-1.16.tar";
+          sha256 = "0v5db89z6hirvixgjwyz3a9dkx6xf486hy51sprvslki706m08p2";
         };
         packageRequires = [];
         meta = {
@@ -1796,10 +1831,10 @@
       elpaBuild {
         pname = "ellama";
         ename = "ellama";
-        version = "0.9.1";
+        version = "0.9.4";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/ellama-0.9.1.tar";
-          sha256 = "1kyylhavqa2wsgjgqybg25aiz0fyw4njpady2k2xhry5jw9i78vs";
+          url = "https://elpa.gnu.org/packages/ellama-0.9.4.tar";
+          sha256 = "12l8k7dwcdgndy0zbdgkhx94y46fkzwjrbwlgj9922zbk38nnz46";
         };
         packageRequires = [ emacs llm spinner ];
         meta = {
@@ -2592,10 +2627,10 @@
       elpaBuild {
         pname = "gtags-mode";
         ename = "gtags-mode";
-        version = "1.5";
+        version = "1.6";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/gtags-mode-1.5.tar";
-          sha256 = "15jmynzm2xrvb410vka3jzzdcxbsm3vkihz27yzym708jb0bd8ji";
+          url = "https://elpa.gnu.org/packages/gtags-mode-1.6.tar";
+          sha256 = "1r3ih44kzkrx9bmfl8ri2yv90b7g4nhb0vvdnz1ba3f44x15ppjx";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2964,10 +2999,10 @@
       elpaBuild {
         pname = "jinx";
         ename = "jinx";
-        version = "1.6";
+        version = "1.7";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/jinx-1.6.tar";
-          sha256 = "0jy2g587930d4jqi4asrci3411bby9j6wrxczyskacvjs41vqyip";
+          url = "https://elpa.gnu.org/packages/jinx-1.7.tar";
+          sha256 = "13snfsrwdbn23fdwpk42xp24x8bskl8sgsbq51nr896smjp2x3b4";
         };
         packageRequires = [ compat emacs ];
         meta = {
@@ -3246,16 +3281,16 @@
           license = lib.licenses.free;
         };
       }) {};
-    llm = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+    llm = callPackage ({ elpaBuild, emacs, fetchurl, lib, plz }:
       elpaBuild {
         pname = "llm";
         ename = "llm";
-        version = "0.12.3";
+        version = "0.15.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/llm-0.12.3.tar";
-          sha256 = "19c3i8jfhvc0zqha2mlynk16ws4wgc1hdjrp7gp290bacvr560vg";
+          url = "https://elpa.gnu.org/packages/llm-0.15.0.tar";
+          sha256 = "1y3gs8zsng87wmlkx5az396hci4xyn0ww7cbaavisqbrxam51qvj";
         };
-        packageRequires = [ emacs ];
+        packageRequires = [ emacs plz ];
         meta = {
           homepage = "https://elpa.gnu.org/packages/llm.html";
           license = lib.licenses.free;
@@ -3745,10 +3780,10 @@
       elpaBuild {
         pname = "nano-modeline";
         ename = "nano-modeline";
-        version = "1.0.1";
+        version = "1.1.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/nano-modeline-1.0.1.tar";
-          sha256 = "0frvg9zy9i8qqb6il0csxmgxsd373n696kwz1xqq28jikvhzkwyy";
+          url = "https://elpa.gnu.org/packages/nano-modeline-1.1.0.tar";
+          sha256 = "1x4b4j82vzbi1mhbs9bwgw41hcagnfk56kswjk928i179pnkr0cx";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3839,10 +3874,10 @@
       elpaBuild {
         pname = "notmuch-indicator";
         ename = "notmuch-indicator";
-        version = "1.1.0";
+        version = "1.2.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/notmuch-indicator-1.1.0.tar";
-          sha256 = "1g30hzb238w9cnxqw8w7gw5l8sl4rx122napmm9rx974hdk3zk9k";
+          url = "https://elpa.gnu.org/packages/notmuch-indicator-1.2.0.tar";
+          sha256 = "1n525slxs0l5nbila1sy62fz384yz7f54nrq1ixdlq0j3czgh9kz";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -4004,10 +4039,10 @@
       elpaBuild {
         pname = "org";
         ename = "org";
-        version = "9.6.28";
+        version = "9.6.30";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/org-9.6.28.tar";
-          sha256 = "1slh28vjwhb65q0630p1syv6ampdsqgrdmisyj4f328g3j2brpkw";
+          url = "https://elpa.gnu.org/packages/org-9.6.30.tar";
+          sha256 = "0h2p7gjiys5ch68y35l6bpw9pp852vprmfzi0dk86z1wkilhycip";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -4094,10 +4129,10 @@
       elpaBuild {
         pname = "org-real";
         ename = "org-real";
-        version = "1.0.8";
+        version = "1.0.9";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/org-real-1.0.8.tar";
-          sha256 = "03g12czy833yzj7idkharsbl2zd1ajnsf7ay8qxqljwqrz8m91gw";
+          url = "https://elpa.gnu.org/packages/org-real-1.0.9.tar";
+          sha256 = "0g19pgg7rqijb6q1vpifvpzl2gyc13a42q1n23x3kawl2srhcjp2";
         };
         packageRequires = [ boxy emacs org ];
         meta = {
@@ -4124,10 +4159,10 @@
       elpaBuild {
         pname = "org-transclusion";
         ename = "org-transclusion";
-        version = "1.3.2";
+        version = "1.4.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/org-transclusion-1.3.2.tar";
-          sha256 = "14w9n10s6nh3nylkx3xzbqjb9pp4dja85agh0h2bzlbkaq4j7vij";
+          url = "https://elpa.gnu.org/packages/org-transclusion-1.4.0.tar";
+          sha256 = "0ci6xja3jkj1a9f76sf3780gcjrdpbds2y2bwba3b55fjmr1fscl";
         };
         packageRequires = [ emacs org ];
         meta = {
@@ -4544,10 +4579,10 @@
       elpaBuild {
         pname = "pyim";
         ename = "pyim";
-        version = "5.3.3";
+        version = "5.3.4";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/pyim-5.3.3.tar";
-          sha256 = "03khpd3skv7ijmnn721dvila8x6pvg9pl4p7djyz8m59xgvv55dp";
+          url = "https://elpa.gnu.org/packages/pyim-5.3.4.tar";
+          sha256 = "0axi8vizr2pdswdnnkr409k926h9k7w3c18nbmb9j3pfc32inkjs";
         };
         packageRequires = [ async emacs xr ];
         meta = {
@@ -5314,10 +5349,10 @@
       elpaBuild {
         pname = "spacious-padding";
         ename = "spacious-padding";
-        version = "0.4.1";
+        version = "0.5.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/spacious-padding-0.4.1.tar";
-          sha256 = "0w9f19sxpbaagwxfnsg3qmk95v8vnkfcyd3l6i9ns9ww26sb2fgl";
+          url = "https://elpa.gnu.org/packages/spacious-padding-0.5.0.tar";
+          sha256 = "0x5bsyd6b1d3bzrsrpf9nvw7xj5ch114m2dilq64bg8y2db3452z";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -5449,10 +5484,10 @@
       elpaBuild {
         pname = "substitute";
         ename = "substitute";
-        version = "0.2.1";
+        version = "0.3.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/substitute-0.2.1.tar";
-          sha256 = "09cqxfp9az6cckh0bq1155g6xh9rjn0ppjyc6879ihx6ba61li53";
+          url = "https://elpa.gnu.org/packages/substitute-0.3.1.tar";
+          sha256 = "0038kkn6v2w3asg9abwary2cacr9wbw90wdvq7q9wyk1818cygff";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -5788,10 +5823,10 @@
       elpaBuild {
         pname = "track-changes";
         ename = "track-changes";
-        version = "1.1";
+        version = "1.2";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/track-changes-1.1.tar";
-          sha256 = "04srqkpyc6l3s95jyf2p5pqqf1z67i7k89334r6ybqj1l91h2prn";
+          url = "https://elpa.gnu.org/packages/track-changes-1.2.tar";
+          sha256 = "0al6a1xjs6p2pn6z976pnmfqz2x5xcz99b5gkdzz90ywbn7018m4";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -6013,10 +6048,10 @@
       elpaBuild {
         pname = "urgrep";
         ename = "urgrep";
-        version = "0.4.1";
+        version = "0.5.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/urgrep-0.4.1.tar";
-          sha256 = "046096vk8d5xy33icv4s0s101lrx3xan9ppvh77rqxd95gglhgap";
+          url = "https://elpa.gnu.org/packages/urgrep-0.5.0.tar";
+          sha256 = "14vga04hf03hj1ilcpl3qblmb7mhl9j0qwkq2whbc50p98avkhqi";
         };
         packageRequires = [ compat emacs project ];
         meta = {
@@ -6449,6 +6484,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    window-tool-bar = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "window-tool-bar";
+        ename = "window-tool-bar";
+        version = "0.2";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/window-tool-bar-0.2.tar";
+          sha256 = "191v21rrw1j560512mjn1s1avhirk1awy746xajjra8lb1ywnxw7";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/window-tool-bar.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     windower = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "windower";
@@ -6533,10 +6583,10 @@
       elpaBuild {
         pname = "wrap-search";
         ename = "wrap-search";
-        version = "4.14.11";
+        version = "4.16.13";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/wrap-search-4.14.11.tar";
-          sha256 = "07x6fcig69d3hmcmvpj75h605j8sfjwmd4z1yd4rb6np60dh42ff";
+          url = "https://elpa.gnu.org/packages/wrap-search-4.16.13.tar";
+          sha256 = "0h5wlvmxq1rcmkhmaan3118w5480xx1gblg73lsfhxnj2xkmhrbi";
         };
         packageRequires = [];
         meta = {
diff --git a/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix b/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix
index d9cb7b0aa5cec..762359a47e275 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix
@@ -64,10 +64,10 @@
       elpaBuild {
         pname = "annotate";
         ename = "annotate";
-        version = "2.2.1";
+        version = "2.2.2";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/annotate-2.2.1.tar";
-          sha256 = "04k42bc3jbna3jipcpsj31lhcj1cqabak4pmllz9c0jf1z74hx94";
+          url = "https://elpa.nongnu.org/nongnu/annotate-2.2.2.tar";
+          sha256 = "0hrb7kjzhgy46hxaa77rv5ilsdsv6zxpawnkx4viw5jq0v5s4fl6";
         };
         packageRequires = [];
         meta = {
@@ -736,10 +736,10 @@
       elpaBuild {
         pname = "editorconfig";
         ename = "editorconfig";
-        version = "0.10.1";
+        version = "0.11.0";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/editorconfig-0.10.1.tar";
-          sha256 = "1xv2yfs8v2bcf9nvbchdw8lxryfnhy3zh0n6vnxyxnbx2590qa9s";
+          url = "https://elpa.nongnu.org/nongnu/editorconfig-0.11.0.tar";
+          sha256 = "0adzm6fhx5vgg20qy9f7cqpnx938mp1ls91y5cw71pjm9ihs2cyv";
         };
         packageRequires = [ emacs nadvice ];
         meta = {
@@ -1525,6 +1525,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    gptel = callPackage ({ compat, elpaBuild, emacs, fetchurl, lib, transient }:
+      elpaBuild {
+        pname = "gptel";
+        ename = "gptel";
+        version = "0.8.6";
+        src = fetchurl {
+          url = "https://elpa.nongnu.org/nongnu/gptel-0.8.6.tar";
+          sha256 = "1ds0i32bdmdi5w68cjxm9xlg0m9n29yr4hl6sqi8gn3kgswfx1sb";
+        };
+        packageRequires = [ compat emacs transient ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/gptel.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     graphql-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "graphql-mode";
@@ -1989,16 +2004,20 @@
           license = lib.licenses.free;
         };
       }) {};
-    macrostep = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
+    macrostep = callPackage ({ cl-lib ? null
+                             , compat
+                             , elpaBuild
+                             , fetchurl
+                             , lib }:
       elpaBuild {
         pname = "macrostep";
         ename = "macrostep";
-        version = "0.9.2";
+        version = "0.9.4";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/macrostep-0.9.2.tar";
-          sha256 = "0ij216575987fi4l4305h5xnvic21lizybkyq5mx67zvhcq75yfs";
+          url = "https://elpa.nongnu.org/nongnu/macrostep-0.9.4.tar";
+          sha256 = "01n3qhxfjd9vg93ddrhnm275v24ih5qczkphc232m0csswxghpdk";
         };
-        packageRequires = [ cl-lib ];
+        packageRequires = [ cl-lib compat ];
         meta = {
           homepage = "https://elpa.gnu.org/packages/macrostep.html";
           license = lib.licenses.free;
@@ -2073,10 +2092,10 @@
       elpaBuild {
         pname = "mastodon";
         ename = "mastodon";
-        version = "1.0.12";
+        version = "1.0.21";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/mastodon-1.0.12.tar";
-          sha256 = "1kmzlz9sb7vkyw84kmpg39zj2hhyrvpb0g6h54ikrxccbn8g22s2";
+          url = "https://elpa.nongnu.org/nongnu/mastodon-1.0.21.tar";
+          sha256 = "1qlpkg28q4iyvjjzv8b40b8q7ni7rc94lj5akgzxbzw4avpp1217";
         };
         packageRequires = [ emacs persist request ];
         meta = {
@@ -2696,10 +2715,10 @@
       elpaBuild {
         pname = "racket-mode";
         ename = "racket-mode";
-        version = "1.0.20240419.71343";
+        version = "1.0.20240514.112412";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/racket-mode-1.0.20240419.71343.tar";
-          sha256 = "152cm66y4pk5ggr7rbj9pzf2w0c6adkh1dd3cjwmq96mpxydx2na";
+          url = "https://elpa.nongnu.org/nongnu/racket-mode-1.0.20240514.112412.tar";
+          sha256 = "1ysjq9jvkm8qibj0z6j4q90sx19xyz9z9qzdlci9mw872r21ak9h";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3570,10 +3589,10 @@
       elpaBuild {
         pname = "xah-fly-keys";
         ename = "xah-fly-keys";
-        version = "25.1.20240423172921";
+        version = "25.6.20240521220424";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/xah-fly-keys-25.1.20240423172921.tar";
-          sha256 = "00h6bmfl4mpx44j1phvijffzlqm1xs2gfprmpwbghc29p5lbd2pj";
+          url = "https://elpa.nongnu.org/nongnu/xah-fly-keys-25.6.20240521220424.tar";
+          sha256 = "029hy3qmf6nvibbq9w2b964gzbw99lja595h4g1y5zzyrgzqrhrn";
         };
         packageRequires = [ emacs ];
         meta = {
diff --git a/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json b/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json
index b21538281143a..9dd51bcbc5a47 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json
+++ b/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json
@@ -451,40 +451,6 @@
   }
  },
  {
-  "ename": "ac-cider",
-  "commit": "e8adefaf2e284ef91baec3dbd3e10c868de69926",
-  "sha256": "1dszpb706h34miq2bxqyq1ycbran5ax36vcniwp8vvhgcjsw5sz6",
-  "fetcher": "github",
-  "repo": "clojure-emacs/ac-cider",
-  "unstable": {
-   "version": [
-    20161006,
-    719
-   ],
-   "deps": [
-    "auto-complete",
-    "cider",
-    "cl-lib"
-   ],
-   "commit": "d8670939bbf88079263d5ace2b8bc04cf325be36",
-   "sha256": "01g1h2j0rfih8v0yvvr5gjh3abcj2mz3jmfbis8a60ivmngab732"
-  },
-  "stable": {
-   "version": [
-    0,
-    2,
-    3
-   ],
-   "deps": [
-    "auto-complete",
-    "cider",
-    "cl-lib"
-   ],
-   "commit": "4be034e5f82421b0a836ec7ff45815c67caffcee",
-   "sha256": "12s7wy7fyk5z9q287j871gcsrvj90f4c81h39p66d99jw0cl93qj"
-  }
- },
- {
   "ename": "ac-clang",
   "commit": "a6ff6bbfa11f08647bf17afe75bfb4dcafd86683",
   "sha256": "08yaaiva6j98rqn9d4wfc0yrjh1nifbnj2rz342q863n76fybbxv",
@@ -1721,11 +1687,11 @@
   "repo": "brownts/ada-ts-mode",
   "unstable": {
    "version": [
-    20240426,
-    256
+    20240506,
+    1140
    ],
-   "commit": "a0c001fd768b062089127b09c838ca51b8214360",
-   "sha256": "1j2hid05fnzd3q5z89xib70n4w530ifpqqlhv0jhg70npwj7pny7"
+   "commit": "3f83ab4c99cf13cf4693dde29eb1e950bbbb6595",
+   "sha256": "1jqsv7f24j39kbh4msvsfm0sv90k20fnw9r1wvmbgi8m7xgdhgzv"
   }
  },
  {
@@ -3031,11 +2997,11 @@
   "repo": "franburstall/amsreftex",
   "unstable": {
    "version": [
-    20240210,
-    1109
+    20240512,
+    1746
    ],
-   "commit": "d64705a7a252be2554b717a38252d8999b0c1504",
-   "sha256": "1q9d93v9zxcs8yngl5liqq3gngl04lnjnka34x8iqbknrl55mzd0"
+   "commit": "c508b05536a04ee153a9947f025d24930c52209a",
+   "sha256": "1a99xm0rwb6cmx8dl0mrc8h50f7ssf3xz3n6cc4xagj2b6135jia"
   }
  },
  {
@@ -3289,21 +3255,17 @@
  },
  {
   "ename": "anki-editor",
-  "commit": "8155d649e4b129d0c72da6bb2b1aac66c8483491",
-  "sha256": "18c5p82llq11vg1svqvbjrcnm7695nbbc6pwwl9jdjplasar585l",
+  "commit": "d5680d254b73eea91a113e152401255b7d3bf7c0",
+  "sha256": "012q9kw6xwcyyaha1wfnbqiysy3475mfbcd6bkji9fvdzps6np1b",
   "fetcher": "github",
-  "repo": "louietan/anki-editor",
+  "repo": "anki-editor/anki-editor",
   "unstable": {
    "version": [
-    20190922,
-    1223
-   ],
-   "deps": [
-    "dash",
-    "request"
+    20240514,
+    1944
    ],
-   "commit": "084ffad14fa700ad1ba95d8cbfe4a8f6052e2408",
-   "sha256": "0zjd5yid333shvjm4zy3p7zdpa09xcl96gc4wvi2paxjad6iqhwz"
+   "commit": "32d81be1d8305c5ccde12c7d0b29845d4f831888",
+   "sha256": "1chlj0igxk2mmmdvmw3qahp3pz9ra6yabm4711xhlnx7zj028lkc"
   }
  },
  {
@@ -3384,14 +3346,14 @@
   "repo": "noctuid/annalist.el",
   "unstable": {
    "version": [
-    20190929,
-    207
+    20240501,
+    1201
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "08df07e4530953a2c0b1aa553adcab37b7b614b0",
-   "sha256": "1jlb5w4972l8m2aa18q2l6arfpm65g4nk21dn1yi8c9dbpk2g67c"
+   "commit": "e1ef5dad75fa502d761f70d9ddf1aeb1c423f41d",
+   "sha256": "1di8wknirx3ql9bqp940yy5p07n2x82wgqyvfmdxblagh7pcp8a8"
   },
   "stable": {
    "version": [
@@ -3414,11 +3376,11 @@
   "repo": "bastibe/annotate.el",
   "unstable": {
    "version": [
-    20240326,
-    1828
+    20240509,
+    1144
    ],
-   "commit": "3a27be3aa024d314da84c89cb86af58dbf3a2cb9",
-   "sha256": "02rv530xhcxlgqlj0cywcg3r2yhgv055fr9d3fa82g6nq364qf03"
+   "commit": "bc82194ca5b10a05cab4169f6eacc5c18af61ec0",
+   "sha256": "0vzvy7bxp6pb42x16jms7sw2l1mp7m0xfz3xk55hwyxfz8rh66gp"
   },
   "stable": {
    "version": [
@@ -3833,11 +3795,11 @@
   "repo": "radian-software/apheleia",
   "unstable": {
    "version": [
-    20240413,
-    2257
+    20240517,
+    2228
    ],
-   "commit": "66bf5195b4e922f23a9d573f2823daeb63e7ed5b",
-   "sha256": "0yqks35q9vv7qymwx96b9smmg7dpb12lacclq63ypfhkwakd2wgg"
+   "commit": "61766b50b24fa16be519d77795dc63522e04dce8",
+   "sha256": "1zichs8b1kczzb63r1pwyiqzav7c0x8sxdvg0inv02w5wq96r2wc"
   },
   "stable": {
    "version": [
@@ -4008,11 +3970,11 @@
   "repo": "waymondo/apropospriate-theme",
   "unstable": {
    "version": [
-    20230925,
-    114
+    20240517,
+    1823
    ],
-   "commit": "ac2e16d23528dbc4efe1844f54366b9392d20ae6",
-   "sha256": "1rv0bj09lyylc3pq7vyg2y0pgpnx0lzmbvfjvpslmprb9vhfqbdg"
+   "commit": "84ee370da4c19db8051761b1b64bbdc8e1c7dc73",
+   "sha256": "13zccq7q1rwhb671f3501j75gy676n611khhzdqxizsgy2mb72nz"
   },
   "stable": {
    "version": [
@@ -4554,11 +4516,11 @@
   "repo": "contrapunctus/async-backup",
   "unstable": {
    "version": [
-    20220131,
-    1438
+    20230412,
+    1534
    ],
-   "commit": "6ddb39fe77d66cdef48b87cb0d0554ad7d132308",
-   "sha256": "14clnfjn4wwi0kza5d98d2iv9sjfnxs28cabm9psjvi239lx0f9d"
+   "commit": "d07a7bd4a5c3332a8a585680d67925385c595927",
+   "sha256": "09vhgczs3xx23srdqjnnxw9vqhrnjy5w04dl9hp22jvbd1z1nzbc"
   }
  },
  {
@@ -4815,26 +4777,26 @@
   "repo": "tsuu32/auctex-cluttex",
   "unstable": {
    "version": [
-    20220730,
-    1100
+    20240519,
+    1303
    ],
    "deps": [
     "auctex"
    ],
-   "commit": "f4012ac86e612eac7662c62afd946e59b3b405bd",
-   "sha256": "163p1x5zrw39cq2l7vf4zf8283a0bsg9wfs25yvs77dlgsvzvb5c"
+   "commit": "1a940892dcbe3e4874d2d60db92de1cb34a1b773",
+   "sha256": "02pllfdx68l694ic6w6lgdvjlqfgnk5bv4jlcrcfiw9n65js4ay0"
   },
   "stable": {
    "version": [
     0,
-    2,
+    3,
     0
    ],
    "deps": [
     "auctex"
    ],
-   "commit": "4e05ad8976f352e67d56d9a479a4a570dfe7ba73",
-   "sha256": "0zgd7yascqn2dwjd20f1v962q7b24wibla5fwnbl9df1x36asqhs"
+   "commit": "1a940892dcbe3e4874d2d60db92de1cb34a1b773",
+   "sha256": "02pllfdx68l694ic6w6lgdvjlqfgnk5bv4jlcrcfiw9n65js4ay0"
   }
  },
  {
@@ -5870,14 +5832,14 @@
   "repo": "erjoalgo/autobuild",
   "unstable": {
    "version": [
-    20230906,
-    1629
+    20240430,
+    1600
    ],
    "deps": [
     "selcand"
    ],
-   "commit": "593a5138ded2793bdc0ff5681bf7af2e2a50ca67",
-   "sha256": "0sgcg5a05zcf3s6c9my3jw7z7mqrfdk1fsclkrhdl1qk89h24cvz"
+   "commit": "4760f6ea843d5d15c3fcf7cbf6b69153b61739fa",
+   "sha256": "1viywj3r0znxflyg8fgdcz4jiv598b02jl8097sp02s49jv3vqaz"
   },
   "stable": {
    "version": [
@@ -6083,27 +6045,27 @@
   "repo": "oantolin/embark",
   "unstable": {
    "version": [
-    20231208,
-    459
+    20240419,
+    452
    ],
    "deps": [
     "avy",
     "embark"
    ],
-   "commit": "47b0c75d4bf4f72a7af839667c877c80bd493cdb",
-   "sha256": "14alpanynww6z7yxxyiiy24c0p4pq1argsb0pmqavq25mdxgn4v2"
+   "commit": "195add1f1ccd1059472c9df7334c97c4d155425e",
+   "sha256": "1361jvwr3wjbpmq6dfkrhhhv9vrmqpkp1j18syp311g6h8hzi3hg"
   },
   "stable": {
    "version": [
     1,
-    0
+    1
    ],
    "deps": [
     "avy",
     "embark"
    ],
-   "commit": "47b0c75d4bf4f72a7af839667c877c80bd493cdb",
-   "sha256": "14alpanynww6z7yxxyiiy24c0p4pq1argsb0pmqavq25mdxgn4v2"
+   "commit": "195add1f1ccd1059472c9df7334c97c4d155425e",
+   "sha256": "1361jvwr3wjbpmq6dfkrhhhv9vrmqpkp1j18syp311g6h8hzi3hg"
   }
  },
  {
@@ -6226,11 +6188,11 @@
   "repo": "nverno/awk-ts-mode",
   "unstable": {
    "version": [
-    20231130,
-    12
+    20240517,
+    1251
    ],
-   "commit": "9cd2b2ad05d85e05be9da7275077697223d79878",
-   "sha256": "0skx2sc575g4w2g4xy340j0i7a6rhxl18xxrg1i42mdiy1k5h3bc"
+   "commit": "343d19c5b3c99f1a665d0c6bddb7b18278306b06",
+   "sha256": "1vnnn8gg6i5gszqa128j7m22dlcpzh6c66xv6mvqcva2l1vkx8d8"
   }
  },
  {
@@ -8058,20 +8020,26 @@
   "repo": "liuyinz/binky.el",
   "unstable": {
    "version": [
-    20240428,
-    352
+    20240519,
+    732
    ],
-   "commit": "d5717053910f1d66f16c22a3d8834b43a507575e",
-   "sha256": "1z8yv4xvg2rvc9djkcp72r8b8x0bd26sp2zrfd780wcw4rar6ada"
+   "deps": [
+    "dash"
+   ],
+   "commit": "f2fe74321f87dfe46421a7a7aaaec30b7f831059",
+   "sha256": "17h4jypfhlc7wbw3k7mr8l9hz3f5ji77xxi80i6p7mj5613j26fc"
   },
   "stable": {
    "version": [
+    2,
     1,
-    4,
-    2
+    0
+   ],
+   "deps": [
+    "dash"
    ],
-   "commit": "d692f3a3551ae412b0b3fc71d14b7d3991255084",
-   "sha256": "0a5jjzbywgq6yh0489690mv6x5h6dsfc1dv7dqaq92h7mi8w1d3c"
+   "commit": "f2fe74321f87dfe46421a7a7aaaec30b7f831059",
+   "sha256": "17h4jypfhlc7wbw3k7mr8l9hz3f5ji77xxi80i6p7mj5613j26fc"
   }
  },
  {
@@ -8082,8 +8050,8 @@
   "repo": "SqrtMinusOne/biome",
   "unstable": {
    "version": [
-    20240426,
-    1407
+    20240519,
+    1037
    ],
    "deps": [
     "compat",
@@ -8091,8 +8059,8 @@
     "request",
     "transient"
    ],
-   "commit": "804a0576f5c87c167c61f00d037581688ab806be",
-   "sha256": "0izip46biwsmyc862jz4k9dlc27ilmcxdw7nb3wjsc98hsd72512"
+   "commit": "6c5d786219741e10332304566d4a18db3eddae2b",
+   "sha256": "0jr2zwzddf6hhmarj9z9dhfcpa7dkid36qy5fms0ncin8bdccl28"
   }
  },
  {
@@ -8345,15 +8313,15 @@
   "repo": "Artawower/blamer.el",
   "unstable": {
    "version": [
-    20240320,
-    2028
+    20240512,
+    1514
    ],
    "deps": [
     "async",
     "posframe"
    ],
-   "commit": "ab7d19c2ee54424d3ffc853982fe875ad47b6e7f",
-   "sha256": "127rnzwf64br0p2i3mjkzfdcjhpwn873ln1gcbhanls6sgka2ahl"
+   "commit": "4cc2e6daaecf84c8dd00792f86724413423293a6",
+   "sha256": "1xyx1gls4d9xzlfwr0xkbblk8mzk3xhwbdqlag1xxdqnd1z96n5n"
   },
   "stable": {
    "version": [
@@ -9173,11 +9141,11 @@
   "repo": "Michael-Allan/Breccia.Emacs",
   "unstable": {
    "version": [
-    20240425,
-    2224
+    20240507,
+    504
    ],
-   "commit": "fd8c536bb24cc58447213f8cada94f96ccf036dc",
-   "sha256": "0rlgxkv8grsyxl9k8jmlnmaakzzw4jnmm48y29sg50mjaj219gf7"
+   "commit": "dafb49308796f75db802e2d23596dfd3fb7e37b0",
+   "sha256": "1fb20vhszf7la1skzy093m6kl3q3akicirbpdp0vhd3xs47jzk1h"
   }
  },
  {
@@ -10704,8 +10672,8 @@
   "repo": "chenyanming/calibredb.el",
   "unstable": {
    "version": [
-    20240331,
-    409
+    20240507,
+    456
    ],
    "deps": [
     "dash",
@@ -10715,8 +10683,8 @@
     "s",
     "transient"
    ],
-   "commit": "b526095e4b1c7866958fe53518eb897a8c87a19b",
-   "sha256": "0092v35yv63ijqaqwjp368kw295f07p1vc2hlqx4fgarsz6kc71n"
+   "commit": "8ca1b5262f0f0e4a0e295efc2c14db00333e9a85",
+   "sha256": "0f3fqgl8kqb1r3dcfd9fn0sh68ky2l13mmd6hqib7lmg4lf7aljz"
   },
   "stable": {
    "version": [
@@ -10738,10 +10706,10 @@
  },
  {
   "ename": "call-graph",
-  "commit": "a6acf099e2510c82b4b03e2f35051afc3d28af45",
-  "sha256": "0cklr79gqqrb94jq8aq65wqriamay78vv9sd3jrvp86ixl3ig5xc",
+  "commit": "1206dea4f7040221775b315fd1e858448ca3dde6",
+  "sha256": "05gzsps5sr8id03imrhvwvns1c97r5kxfjdy3bns6a772n6danxn",
   "fetcher": "github",
-  "repo": "beacoder/call-graph",
+  "repo": "emacsattic/call-graph",
   "unstable": {
    "version": [
     20230222,
@@ -10883,14 +10851,14 @@
   "repo": "minad/cape",
   "unstable": {
    "version": [
-    20240411,
-    2207
+    20240517,
+    2216
    ],
    "deps": [
     "compat"
    ],
-   "commit": "bf22aa6ce0ffca1a1a77b693dddcd05eddc386f0",
-   "sha256": "1ah0nwib2k46467j0fhq9kckx7cqnjgwpdb7zk9jw8rbrjlndcpw"
+   "commit": "a71e5c96564163837810b96bd34322b42f6e4d9c",
+   "sha256": "0rwkn8p8p7axrh46x9cp3f90n5ic0dpm409pjn627s9sbz0j2vkj"
   },
   "stable": {
    "version": [
@@ -11268,6 +11236,30 @@
   }
  },
  {
+  "ename": "casual-dired",
+  "commit": "ee1942517d15e34316ce3d9cc60d22e41556e232",
+  "sha256": "1g3vrlfl9482rcx1bmqbprf921ywz5dbcm685yxmfbr2fwbbgad5",
+  "fetcher": "github",
+  "repo": "kickingvegas/casual-dired",
+  "unstable": {
+   "version": [
+    20240517,
+    2348
+   ],
+   "commit": "d49c5c84d222ff8db2038d1f25b32c607a46c8b6",
+   "sha256": "0rn71abqr198ww6v6fi813dnb4lgi1nsmgk7vw482znnd4jyw937"
+  },
+  "stable": {
+   "version": [
+    1,
+    1,
+    2
+   ],
+   "commit": "d49c5c84d222ff8db2038d1f25b32c607a46c8b6",
+   "sha256": "0rn71abqr198ww6v6fi813dnb4lgi1nsmgk7vw482znnd4jyw937"
+  }
+ },
+ {
   "ename": "catmacs",
   "commit": "e62e45ea234a574ed602f27c3c6bc240bcd4fa43",
   "sha256": "0ym1szmq9ib75yiyy5jw647fcs7gg0d5dkskqc293pg81qf3im50",
@@ -11608,15 +11600,15 @@
   "repo": "ema2159/centaur-tabs",
   "unstable": {
    "version": [
-    20240411,
-    2153
+    20240521,
+    2204
    ],
    "deps": [
     "cl-lib",
     "powerline"
    ],
-   "commit": "24d90efc72754cd1197a0c2f14d18e7c90dd2b4f",
-   "sha256": "03j73jhda6pbw203w21zk7w97fv5isr6fdbip40h9id7f112vhaw"
+   "commit": "3346b23545932c73c4c88a4cdb54778ecff95443",
+   "sha256": "1p2jllqv6d5xh1j06y9844msww56ldinnil8c1zd9jd4q6jsvnrz"
   },
   "stable": {
    "version": [
@@ -11836,7 +11828,7 @@
   "repo": "worr/cfn-mode",
   "unstable": {
    "version": [
-    20240421,
+    20240519,
     805
    ],
    "deps": [
@@ -11844,8 +11836,8 @@
     "s",
     "yaml-mode"
    ],
-   "commit": "3aa78685b9158022f49da43821c0888f377fa213",
-   "sha256": "0jarry76dzhn9zh41bfzyinibifzcxbzs8vmkdlpd0d97npcdxjh"
+   "commit": "6ef789934d6b9b78cdbe5c90703f4afead736ead",
+   "sha256": "04hynyv60g9y3z76zlwvgfqmm4i9450skxhx0r8bw9m8yf04841i"
   },
   "stable": {
    "version": [
@@ -11935,11 +11927,11 @@
   "repo": "GrammarSoft/cg3",
   "unstable": {
    "version": [
-    20240419,
-    1148
+    20240430,
+    2040
    ],
-   "commit": "913974345a9fce9e6ac76934ed535df7e44d47d6",
-   "sha256": "183agf7njdg1zcrclfpa84izwwy230730anz3cz1rr0r77cqvmgv"
+   "commit": "06fb61345a4f3aae4bda74f3dfe261b1ec9d902d",
+   "sha256": "1bvbwk79wd13gvfa99ngz2z00b6wc2w8fh1py27zk024hxqbhf3v"
   },
   "stable": {
    "version": [
@@ -11974,23 +11966,26 @@
   "repo": "positron-solutions/champagne",
   "unstable": {
    "version": [
-    20231229,
-    947
+    20240515,
+    310
    ],
    "deps": [
     "posframe"
    ],
-   "commit": "2106273c47f898006a799f0c5e35922af4b41f54",
-   "sha256": "1cmbbnqjbg5sw3svvr99dk6lrmiir6yy8cvz69bl3r7ga6cpiacv"
+   "commit": "42ef0451e4abe800f047583c4c3b04e51b29d5ee",
+   "sha256": "1ja4n1kgkz6ri4x903rrgvdi9nhgkzvggm8w8i8ib5hcby3ln591"
   },
   "stable": {
    "version": [
     0,
-    2,
-    0
+    3,
+    2
    ],
-   "commit": "31092b7f487e872d208dcaecdc24b5438b78f6a0",
-   "sha256": "0nynrg58nl03fxwyalwqw2s694y1jf4as0qcswhi3i2k9c6679d0"
+   "deps": [
+    "posframe"
+   ],
+   "commit": "42ef0451e4abe800f047583c4c3b04e51b29d5ee",
+   "sha256": "1ja4n1kgkz6ri4x903rrgvdi9nhgkzvggm8w8i8ib5hcby3ln591"
   }
  },
  {
@@ -12106,14 +12101,14 @@
   "repo": "xenodium/chatgpt-shell",
   "unstable": {
    "version": [
-    20240402,
-    2216
+    20240517,
+    2003
    ],
    "deps": [
     "shell-maker"
    ],
-   "commit": "42cf53ba7d43e0622e8c4c57ef8f635e1248182b",
-   "sha256": "1lg3ymw6vsxkk8vpkbyia5l3xl2bgsk2xsw5n5nrhax9qs3axh1b"
+   "commit": "910b0ad5cdb633f6be64f88596219a7eb58af226",
+   "sha256": "1mqdgsy1l9lc94cg1q8gzm7phc3f4rafk39cjlf5i9a1wai7f7p6"
   }
  },
  {
@@ -12124,15 +12119,15 @@
   "repo": "kimim/chatu",
   "unstable": {
    "version": [
-    20240425,
-    1349
+    20240518,
+    615
    ],
    "deps": [
     "org",
     "plantuml-mode"
    ],
-   "commit": "3175ac95de1a1dc75ff5be1bf3a2e80e0abd5229",
-   "sha256": "0wf63z7ang91gzqqh0d2a5h41zdvm9xkblkkz0ldp4ppk8wpggkg"
+   "commit": "f813f0bc926346fbd8151d2ae7079119d4657abb",
+   "sha256": "1xg5mcxsjlkayls1zknqgx3niwwrbrvj5dpmx68sljjwz4j8b8y5"
   }
  },
  {
@@ -12764,8 +12759,8 @@
   "repo": "clojure-emacs/cider",
   "unstable": {
    "version": [
-    20240424,
-    1919
+    20240522,
+    1030
    ],
    "deps": [
     "clojure-mode",
@@ -12776,8 +12771,8 @@
     "spinner",
     "transient"
    ],
-   "commit": "1cd6ab7b7cb4a7e079a273600c4d28307c3aba40",
-   "sha256": "1hcj1fwp2433j3vfmzyv8sh4icg6rsk70av6prrg4adqwzgvhh7m"
+   "commit": "5a477c58dca86cbee723ddb2d0670689f53c47ed",
+   "sha256": "075ikfwrn3n0czzlj2233y7d0ljal8hwzab1vqhfl100q61j0hrj"
   },
   "stable": {
    "version": [
@@ -13110,29 +13105,30 @@
   "repo": "pprevos/citar-denote",
   "unstable": {
    "version": [
-    20240424,
-    2023
+    20240520,
+    2325
    ],
    "deps": [
     "citar",
     "dash",
     "denote"
    ],
-   "commit": "6e236e9100d1401cd7c628c5f799badded77967d",
-   "sha256": "0yqjigf4qj296q15dkq0qpwab9a80fn5rafb192ykh5qg8sbhc2v"
+   "commit": "1c62db7107b1ff9de5f87a03d9ac1973c4bbb0ec",
+   "sha256": "0140a7zxs479na6p94g9rsxg7sp08jx7ri4y1h764wxwfvl8qf8c"
   },
   "stable": {
    "version": [
     2,
-    0
+    2,
+    1
    ],
    "deps": [
     "citar",
     "dash",
     "denote"
    ],
-   "commit": "0c68a4f74f5dcfc23ef03b211658a2ccc5d9aa3b",
-   "sha256": "0g476awbrdws7k7smk1qasz15df20zilx3wqbi3wj0i1q2dbsi8z"
+   "commit": "4586e030445ff40a4939fe0ecc1aae667825052d",
+   "sha256": "0rsi2j4gfznpyvf3z1p1xxl0zxfbddha4ig4d30svwnq2maxri7r"
   }
  },
  {
@@ -13207,8 +13203,8 @@
   "repo": "andras-simonyi/citeproc-el",
   "unstable": {
    "version": [
-    20240307,
-    1412
+    20240513,
+    1309
    ],
    "deps": [
     "compat",
@@ -13220,8 +13216,8 @@
     "s",
     "string-inflection"
    ],
-   "commit": "cb2d3e72116e626133703aa9875d680442249abe",
-   "sha256": "1jlyxq0hk6wrprpjlq8cgs14hzl8lxgdkyfl1c9lnwcr3c7iijrd"
+   "commit": "fed285385c1a8c0248890cd591f64a0e2598334d",
+   "sha256": "19m3q2izbgzvaimk9z38zznj1602vmr8y93c2sfrkyssjb4rmxfy"
   },
   "stable": {
    "version": [
@@ -13289,11 +13285,11 @@
   "repo": "universal-ctags/citre",
   "unstable": {
    "version": [
-    20240425,
-    1635
+    20240508,
+    1154
    ],
-   "commit": "a78cf13d5c3c1c0275b332da5888cd0973de70fe",
-   "sha256": "0fjv9s8x533dmy4vnz2k56ydwydjiak8hp4mk9yvcnam5j1vi51v"
+   "commit": "fe670ff2410fe4cd59cdce8ef1b947deefa71879",
+   "sha256": "1fancp1z955z2clnr9rh6iqpg6cisama9drx51356n4afv60q9pv"
   },
   "stable": {
    "version": [
@@ -14083,11 +14079,11 @@
   "repo": "clojure-emacs/clojure-mode",
   "unstable": {
    "version": [
-    20240304,
-    559
+    20240516,
+    525
    ],
-   "commit": "3792e08b76aa7fdae18938e1966ea140b9817a9a",
-   "sha256": "12zq6026s4yq6dbx1jy9g2fxy8ia2lm8ifx4qmnrfhcbscaj841l"
+   "commit": "faee3efbb1e940af0e5777514923c8dea567f87d",
+   "sha256": "1d3pwwwwzfaqbynpmkpnmfmf2gh7nviy8nc18m0nm9g27i9x3wk4"
   },
   "stable": {
    "version": [
@@ -14461,10 +14457,10 @@
    "version": [
     3,
     29,
-    2
+    3
    ],
-   "commit": "d3190d6a730207a56ef2144566468975167a811e",
-   "sha256": "0yjk4kqrln8smz457dxansfl69zyikr5015xm23xa4g7x1rihkgg"
+   "commit": "b39fb31bf411c3925bd937f8cffbc471c2588c34",
+   "sha256": "1bwa80zrqyav0bxpq6b9vrjijbfn5g52vqhzvy70g7bp3jbp6vzm"
   }
  },
  {
@@ -14532,11 +14528,11 @@
   "repo": "tumashu/cnfonts",
   "unstable": {
    "version": [
-    20240426,
-    601
+    20240430,
+    536
    ],
-   "commit": "d81b1d5932fbbed509f4b011eb14d2e0e1e73971",
-   "sha256": "0whkwxi6720rgv22w2xnb4ji092x4hrh4fabbnlm6dvf85g16mqn"
+   "commit": "1f57d4f64f50e4dbc7ab4d963278b746f904c454",
+   "sha256": "1jrrpmlagncv46pyq10182bi7mcqy85iy46nw33fskaswypxhwji"
   },
   "stable": {
    "version": [
@@ -14933,14 +14929,14 @@
   "repo": "ankurdave/color-identifiers-mode",
   "unstable": {
    "version": [
-    20240218,
-    1801
+    20240505,
+    2245
    ],
    "deps": [
     "dash"
    ],
-   "commit": "6cb50ae7e61189f55387e5350c20651e081d613c",
-   "sha256": "10miij6w40jki1ii9y05ks9wgzzmpiz3qd6mpicc5c9i83cm0d1j"
+   "commit": "8e189b03ad602cc457308934fbb91b2dc8f286df",
+   "sha256": "1dhikxir170ssrl8l8qwgg5f9kk391y0wmaa9dw2v20y2jvhpvzh"
   },
   "stable": {
    "version": [
@@ -15076,11 +15072,11 @@
   "repo": "purcell/color-theme-sanityinc-tomorrow",
   "unstable": {
    "version": [
-    20240406,
-    1456
+    20240429,
+    949
    ],
-   "commit": "42b24a3fa3fbdcb36cd2936a38abe142cda65294",
-   "sha256": "103l62ma6vgq5p15jn125fz4f42s3aghg3l48vh5ngcb9y6w5ip0"
+   "commit": "5f3b2039eda57e9e4501f8decab5808d9edf98eb",
+   "sha256": "11vpha0nmcxh7b1cp27778sacjzccp87b6db3mnsir5mbnxyhfx4"
   },
   "stable": {
    "version": [
@@ -15520,11 +15516,11 @@
   "repo": "company-mode/company-mode",
   "unstable": {
    "version": [
-    20240311,
-    1943
+    20240428,
+    2258
    ],
-   "commit": "b0a522ac5bf8ba3d2f4f22e3aa846a4f82978a16",
-   "sha256": "11ghdfbyg8fvi79l0xvaqhpnzlnjfl3ng517pb2h37hp2cyy8b5i"
+   "commit": "32f030a4c79bbf082cc21ec21b2cf8ba9dfa22cc",
+   "sha256": "19y5s4jxz62ak9q3cq66d1gijpbv9bkxazm4qyglsk9ayjz03q43"
   },
   "stable": {
    "version": [
@@ -15802,26 +15798,26 @@
   "repo": "redguardtoo/company-ctags",
   "unstable": {
    "version": [
-    20211211,
-    338
+    20240511,
+    856
    ],
    "deps": [
     "company"
    ],
-   "commit": "313508ba5d4f1e4b5d5d554faaa74076201c3248",
-   "sha256": "0hf7lq6rcs6xhmgpc8bwk115rykyfvakcjqpanlsh5m3fdswjq03"
+   "commit": "2e079a634afa5687bdb004e3883ac0671a222401",
+   "sha256": "1ilinm5kih3kiljvdbh9x84w8vwcplyas3k8j6x1j6v4gj4k16gn"
   },
   "stable": {
    "version": [
     0,
-    0,
-    7
+    1,
+    1
    ],
    "deps": [
     "company"
    ],
-   "commit": "313508ba5d4f1e4b5d5d554faaa74076201c3248",
-   "sha256": "0hf7lq6rcs6xhmgpc8bwk115rykyfvakcjqpanlsh5m3fdswjq03"
+   "commit": "2e079a634afa5687bdb004e3883ac0671a222401",
+   "sha256": "1ilinm5kih3kiljvdbh9x84w8vwcplyas3k8j6x1j6v4gj4k16gn"
   }
  },
  {
@@ -16106,16 +16102,16 @@
   "repo": "jcs-elpa/company-fuzzy",
   "unstable": {
    "version": [
-    20240101,
-    943
+    20240519,
+    904
    ],
    "deps": [
     "company",
     "ht",
     "s"
    ],
-   "commit": "059e3e0893a2b3c0ad4bf27b6963e7547b97b5d4",
-   "sha256": "02n4y3zj7hypqhlki1kh2iha794449p9jyhj1rmr3bqidg2f73ig"
+   "commit": "ae4dbb00d91fae8f13e236093d99c7e4d0d8fa73",
+   "sha256": "1akl4d83lydq1sjp56kfwwv4zya0awpvm8ifw7sj4f1fmvkz8awr"
   },
   "stable": {
    "version": [
@@ -17472,11 +17468,11 @@
   "repo": "mohkale/compile-multi",
   "unstable": {
    "version": [
-    20240421,
-    1100
+    20240507,
+    1829
    ],
-   "commit": "fab41595a704260a295544aecbecb16896824e88",
-   "sha256": "14zswpaymzsrc1xcd4xamnydy4hi7fk0inryh6gyqwkgzkzkshf2"
+   "commit": "1fbd38806c70ebe8ebfec49cc7606284396a31e6",
+   "sha256": "138wayb49ywjgxdc19xlv7gr5is0yc9jwaxrxhjp1jj9mjidy1x0"
   },
   "stable": {
    "version": [
@@ -17495,14 +17491,14 @@
   "repo": "mohkale/compile-multi",
   "unstable": {
    "version": [
-    20240421,
-    1100
+    20240506,
+    1319
    ],
    "deps": [
     "all-the-icons-completion"
    ],
-   "commit": "fab41595a704260a295544aecbecb16896824e88",
-   "sha256": "14zswpaymzsrc1xcd4xamnydy4hi7fk0inryh6gyqwkgzkzkshf2"
+   "commit": "4f9cc1d3c448ecc496540a65578191733c09b0fd",
+   "sha256": "0q95fs78wz63s3lldh7h8l4gqmk67dlwg2kkiyl8f4byp77cf0p4"
   },
   "stable": {
    "version": [
@@ -17555,17 +17551,17 @@
   "repo": "mkcms/compiler-explorer.el",
   "unstable": {
    "version": [
-    20240425,
-    2138
+    20240517,
+    1816
    ],
    "deps": [
     "eldoc",
     "map",
-    "request",
+    "plz",
     "seq"
    ],
-   "commit": "fcf17db156877e35be589dbc82dd6d5736038961",
-   "sha256": "1bqcxr33jrd5jk2z77asn64sscb034pki2vs9c57vlqas4dwyb8r"
+   "commit": "ca01cbfa5941750f3cf2232f00e28032ef7f9bce",
+   "sha256": "05yzp9gch1hw10xgk742zdgky0vbbqhyn6fzxj2n6ilwaslcnprh"
   },
   "stable": {
    "version": [
@@ -17856,6 +17852,29 @@
   }
  },
  {
+  "ename": "conner",
+  "commit": "0fe4a5498ca9860d8b06d48f643e87d32f416f84",
+  "sha256": "1cxmpdlp3rq1is79hx917nh2kbg200n9w2l1laakas38y3rd43ag",
+  "fetcher": "github",
+  "repo": "tralph3/conner",
+  "unstable": {
+   "version": [
+    20240512,
+    1717
+   ],
+   "commit": "d8dabaab32e39b01500841b7465076c6ad73c3b9",
+   "sha256": "1iw787gp2r7ab3xc8s6brsdc7a8cg5g2vsjlb1qhir6zmyz5y5dz"
+  },
+  "stable": {
+   "version": [
+    0,
+    4
+   ],
+   "commit": "05de24bdac7c424d88eabd7cd0307f9b8bcc2aa3",
+   "sha256": "1s2dnbmfic0v2i9inp95a7psrwiajrpjc99b59rxaqqk5qwpf8hm"
+  }
+ },
+ {
   "ename": "constant-theme",
   "commit": "35763febad20f29320d459394f810668db6c3353",
   "sha256": "13m4r37gscnqg3qmb0rs2r8sslp0irm7n4p6p496mmvljvjmpv6b",
@@ -17878,25 +17897,25 @@
   "repo": "minad/consult",
   "unstable": {
    "version": [
-    20240420,
-    929
+    20240516,
+    2240
    ],
    "deps": [
     "compat"
    ],
-   "commit": "8989c7a5c5035f9e3429f85f1006d0c6cb5d5e8d",
-   "sha256": "0zrxs4134csg7ygrlq800mpa7xs3z6z547l28jv3c5v2s2ls1k97"
+   "commit": "80407622f323669c735737272ecbc3b602434b77",
+   "sha256": "0rrxyds14a3c1f96q3hx92hm4axl66cgghrvc3j745s257macx0y"
   },
   "stable": {
    "version": [
     1,
-    5
+    6
    ],
    "deps": [
     "compat"
    ],
-   "commit": "d8888bb67f881a3c4855c9ce7224de18a7dc3901",
-   "sha256": "0wgc30vinc62vppakwyxzfqpxqm0nl3srz4d42xs873i5bsczkab"
+   "commit": "6eba1a3fa8e13681091a30b2490a03bdce5f243a",
+   "sha256": "1c6skqx5aqkb0mfnm5zw4mvzcrcr34zcd5jz3ypgb5483nv9kp3c"
   }
  },
  {
@@ -18035,14 +18054,14 @@
   "repo": "karthink/consult-dir",
   "unstable": {
    "version": [
-    20230725,
-    2338
+    20240506,
+    236
    ],
    "deps": [
     "consult"
    ],
-   "commit": "3268ec3f7194c086ecfbd2863e029f42d91b77c1",
-   "sha256": "12mp2c7mx60l758c4gjnx4lv37fp1b8ifagak8l2dcmg2rm7kxd4"
+   "commit": "15891383f34d43acc5bb82bda92239b1f54cf178",
+   "sha256": "1jq931w66iawc1rf01n9mfmnxwvrv2zc711nwnmykdv6ynd636dm"
   },
   "stable": {
    "version": [
@@ -18265,16 +18284,16 @@
   "repo": "gagbo/consult-lsp",
   "unstable": {
    "version": [
-    20230209,
-    714
+    20240507,
+    2105
    ],
    "deps": [
     "consult",
     "f",
     "lsp-mode"
    ],
-   "commit": "f8db3252c0daa41225ba4ed1c0d178b281cd3e90",
-   "sha256": "0hbavrwxa8mhgijh0wn517fns07ng84q6vya9bvblcx8pq9qw6z0"
+   "commit": "68583913168bf66fd4d542b2517a2dcab19c447c",
+   "sha256": "1g3z2f5j2qvzlszn9f4qnbiggn9scaydkgifx2a4pc0ak4zs1m2s"
   },
   "stable": {
    "version": [
@@ -18298,16 +18317,16 @@
   "repo": "mclear-tools/consult-notes",
   "unstable": {
    "version": [
-    20240306,
-    1529
+    20240516,
+    1423
    ],
    "deps": [
     "consult",
     "dash",
     "s"
    ],
-   "commit": "652d0281b81becac643efe96386facf23e1dee01",
-   "sha256": "0ka4mr4gg2nmkg0fr7i9dq3f3jmq9m16wbzjk5w9x5yxhh9rymx2"
+   "commit": "c97420c8e91aaae214be7de897eb7eb9b7843520",
+   "sha256": "0nf06al179p3g7n0zvcxkwhq1ygakg4n554a1w8f6k00m1syslsh"
   }
  },
  {
@@ -18541,6 +18560,30 @@
   }
  },
  {
+  "ename": "context-transient",
+  "commit": "eae3d8f214a0967fd5bc1d48e45e27a639f61e0d",
+  "sha256": "1kgyd202db6wgkygmpjqa2w7f8qbhd4z5wymr615zvw1qal3407q",
+  "fetcher": "github",
+  "repo": "licht1stein/context-transient.el",
+  "unstable": {
+   "version": [
+    20240507,
+    1534
+   ],
+   "commit": "efd8343f46f9fb2a1ee391c0292fb35d4f91b107",
+   "sha256": "0fmp011hnarc73b3zicknwfvql5a2q7ijmy63p0qnw735c9xcjvr"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    0
+   ],
+   "commit": "efd8343f46f9fb2a1ee391c0292fb35d4f91b107",
+   "sha256": "0fmp011hnarc73b3zicknwfvql5a2q7ijmy63p0qnw735c9xcjvr"
+  }
+ },
+ {
   "ename": "contextual",
   "commit": "7325c1a705d07d6916d55a1fc2bb7012e22504fd",
   "sha256": "0zsyshy2n17zmk3l2shpd4ci9l0xwyx3bmv0psqlpcd0zcjdsfdv",
@@ -18982,15 +19025,15 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20240413,
-    1905
+    20240520,
+    1323
    ],
    "deps": [
     "ivy",
     "swiper"
    ],
-   "commit": "28ac6c7e32ec0b90803fd35f8d1f04ed0fe2e6a5",
-   "sha256": "1zyxm69ld137k9qnjmn87a2qh9qls1phycfcr3h5p3a0d0ackgd6"
+   "commit": "8133016ab1b37da233e6daaab471e40abf0f7ba9",
+   "sha256": "0yswdy8yxqs2vpmrskrl6lx7y6m891x5y09gk01kr9ww7zy7wklc"
   },
   "stable": {
    "version": [
@@ -21291,8 +21334,8 @@
   "repo": "emacs-lsp/dap-mode",
   "unstable": {
    "version": [
-    20240424,
-    1359
+    20240514,
+    1617
    ],
    "deps": [
     "bui",
@@ -21305,8 +21348,8 @@
     "posframe",
     "s"
    ],
-   "commit": "22af181d627577968f03213ba59d02458d3e734a",
-   "sha256": "1q360xhnmfnjgrkmzq69p2wc0rphz7fsbjzgn3hjw0a8kv3jsq0y"
+   "commit": "11431a26bc4c8ca92b097dbdbcbdc9e3d7fb5583",
+   "sha256": "1m77dwy1p7jy41v7gjqk9w7jy6sh3blg2qrlw22f3y1d6n0h3lvs"
   },
   "stable": {
    "version": [
@@ -21563,11 +21606,11 @@
   "repo": "magnars/dash.el",
   "unstable": {
    "version": [
-    20240405,
-    946
+    20240510,
+    1327
    ],
-   "commit": "885332bbc4582b08d4f24526250876f3a7569067",
-   "sha256": "1v700mlwwas57kqnp1hqv0ln0cqv44nlcp7lv9c4rha7q5gzmikz"
+   "commit": "1de9dcb83eacfb162b6d9a118a4770b1281bcd84",
+   "sha256": "1nkz7m2yllvin3aynnp1wldjzasah9rv4nlydcxxh5qx4ws3dpka"
   },
   "stable": {
    "version": [
@@ -22094,11 +22137,11 @@
   "url": "https://salsa.debian.org/emacsen-team/debian-el.git",
   "unstable": {
    "version": [
-    20240404,
-    541
+    20240519,
+    1104
    ],
-   "commit": "7bbbf575f0ce11cb4b6acd89e56000ae388b1413",
-   "sha256": "1s2jqqmmnwcf8bx6vn1754ji5kgdwzcm5hi5j0s4rj1yl9s9jnd4"
+   "commit": "a76a38cf0af5625b38e1d298bbfa3ae5a2a1ebc9",
+   "sha256": "0k3r9a9qsi380m4j53j4irfv591irg9w2i0pqk1c8fv3rwxrdiq5"
   },
   "stable": {
    "version": [
@@ -22640,15 +22683,15 @@
   "repo": "pprevos/denote-explore",
   "unstable": {
    "version": [
-    20240426,
-    450
+    20240512,
+    113
    ],
    "deps": [
     "dash",
     "denote"
    ],
-   "commit": "9e1a5162dbec751fe62ce4b99bcb0e5024f39f94",
-   "sha256": "06yhh543piflgx8ql70wmsz56g8a7nja66n7s48rwq7d7pxb6znq"
+   "commit": "7073ef97758fbcf953557efa15da9226283ff6b0",
+   "sha256": "151ba0mhq61y2iwic5645rh4agklp1rg3618xcc7r76b4078fybs"
   }
  },
  {
@@ -22884,11 +22927,11 @@
   "repo": "blahgeek/emacs-devdocs-browser",
   "unstable": {
    "version": [
-    20240414,
-    1251
+    20240511,
+    306
    ],
-   "commit": "d4ebae6b12ba13393270278a75b053d53af3ac54",
-   "sha256": "08rrhi7d29h8mzvi7wd4ikj5k7g1kscys709l8aaiq1mxf0nhxj8"
+   "commit": "0655b89651458777354a3b89c1d486e0fda1928d",
+   "sha256": "1yamaqscprvrwvgxm5q0bgjmdd31jg86z4zd2mp62xq5mqhg9ncj"
   }
  },
  {
@@ -23139,14 +23182,14 @@
   "repo": "dgutov/diff-hl",
   "unstable": {
    "version": [
-    20240401,
-    2357
+    20240505,
+    2110
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "09a0f8fcc7e6ce3f49dca64cdfab898d6762f2a4",
-   "sha256": "1kszgnp6nrsx8sphk5lnnkvymb5p17djvgpc3433dwjic6rz97ml"
+   "commit": "11f3113e790526d5ee00f61f8e7cd0d01e323b2e",
+   "sha256": "1a6hqb0258kdskixcwacq41d7x71rlpwwapmbpd9ds8w6dj5vi40"
   },
   "stable": {
    "version": [
@@ -23262,15 +23305,15 @@
   "repo": "pkryger/difftastic.el",
   "unstable": {
    "version": [
-    20240423,
-    1553
+    20240429,
+    2057
    ],
    "deps": [
     "compat",
     "magit"
    ],
-   "commit": "56ec9ba861b132a96220837d711f6e79c26c268d",
-   "sha256": "1qdiph2wkx7anrpfilxpk9cdzjx6ig0pwzswh9prppdk3flyw5qb"
+   "commit": "90b9b223bfc39786f6fcf266cdc1cb982bdc37aa",
+   "sha256": "1z7q6rr3cnp6fpx0439hbk22g1kl84xa6k3pbxm4mph2cqw536jm"
   }
  },
  {
@@ -23304,20 +23347,20 @@
   "repo": "retroj/digistar-mode",
   "unstable": {
    "version": [
-    20240220,
-    1600
+    20240515,
+    1529
    ],
-   "commit": "178cb58a3a52d22168f641a5436addf0904d5c45",
-   "sha256": "16mn9g5gxv6g3dcphiyxpwhkn042zkhi6w8941r7f0mc238msnp3"
+   "commit": "546adaccb1f90d6947c2c80c2fab4933f40bc274",
+   "sha256": "16a4x0zxrhs2c4k7v3qhinbxayx213mb8b84jrs21sq7whfad63d"
   },
   "stable": {
    "version": [
     0,
     9,
-    9
+    13
    ],
-   "commit": "178cb58a3a52d22168f641a5436addf0904d5c45",
-   "sha256": "16mn9g5gxv6g3dcphiyxpwhkn042zkhi6w8941r7f0mc238msnp3"
+   "commit": "a0f0756b132202fadf487d689d3c4312f480d2a7",
+   "sha256": "0i055f0kvm4ymq9a7ad4zg2kzw4gf60db0kcg5q8gmlsri7ppsl2"
   }
  },
  {
@@ -25876,16 +25919,16 @@
   "repo": "seagle0128/doom-modeline",
   "unstable": {
    "version": [
-    20240425,
-    609
+    20240510,
+    144
    ],
    "deps": [
     "compat",
     "nerd-icons",
     "shrink-path"
    ],
-   "commit": "150b5bf8da8050e5db1193f827c33b16a5d8dd3f",
-   "sha256": "13zfwww73x5ax7vql7fhgyzwwx0xhkh1fs9b6x746nbyl3p5vnnl"
+   "commit": "65d0bd83eb7c393092e032c24b882f3ba19b4899",
+   "sha256": "1w657ss91f00kb3gghi9rs0a8cw2bszvik4yjzn6cj7m8ji3k3qi"
   },
   "stable": {
    "version": [
@@ -26581,16 +26624,16 @@
   "repo": "jacktasia/dumb-jump",
   "unstable": {
    "version": [
-    20240114,
-    354
+    20240514,
+    702
    ],
    "deps": [
     "dash",
     "popup",
     "s"
    ],
-   "commit": "ede6a04187e79a29ef31d14760ac0d8d4c5f4cc5",
-   "sha256": "1ly7xsfliyw38hqh862p6m37mxl460k4zq1fy3xs0jz9q3ak84iq"
+   "commit": "3c2ab8dfff3a10d3c5f2efd69cfbc81fb5dbbd39",
+   "sha256": "0q37akv7xnwq14a7zn7cjr3njkkkl7vfrkkr0di8bw9p6dyvwqw4"
   },
   "stable": {
    "version": [
@@ -26776,11 +26819,11 @@
   "repo": "xenodium/dwim-shell-command",
   "unstable": {
    "version": [
-    20240414,
-    1607
+    20240520,
+    1732
    ],
-   "commit": "3dc879fa4c473d1f7c0929ebb0cebcbe729553cc",
-   "sha256": "0axj93kfimhn7kywpnv7394gaw9rz402lixmwqyka85f1rcw3dzc"
+   "commit": "c20a474ba8fc0ad73a1b30aeb99502cbfc709c0b",
+   "sha256": "0lj8rkvpns4fpdmwriax0i5yijqraji1vjbdc6scyvpmdmsqd3p1"
   }
  },
  {
@@ -27510,28 +27553,28 @@
   "repo": "swflint/emacs-universal-sidecar",
   "unstable": {
    "version": [
-    20240115,
-    1727
+    20240428,
+    1852
    ],
    "deps": [
     "ebdb",
     "universal-sidecar"
    ],
-   "commit": "9050eaea7946e613a4b9ecd9dd1462614699edb1",
-   "sha256": "169n0d4hsx9azch1w14wlmilm411hb7v0564xrcwww5w145jrs9m"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   },
   "stable": {
    "version": [
     1,
-    5,
-    2
+    6,
+    0
    ],
    "deps": [
     "ebdb",
     "universal-sidecar"
    ],
-   "commit": "9050eaea7946e613a4b9ecd9dd1462614699edb1",
-   "sha256": "169n0d4hsx9azch1w14wlmilm411hb7v0564xrcwww5w145jrs9m"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   }
  },
  {
@@ -27575,15 +27618,15 @@
   "repo": "joostkremers/ebib",
   "unstable": {
    "version": [
-    20240426,
-    642
+    20240430,
+    1436
    ],
    "deps": [
     "compat",
     "parsebib"
    ],
-   "commit": "4055e30872e642f746633bab96c3383836d61e68",
-   "sha256": "072dbc7wm9mwcbfw0a9957izamk2amcqag53p4n32r3cdn9v94zk"
+   "commit": "2f2d39d1953fa10d7c3dad6a4611d8ec0d489aba",
+   "sha256": "0x40cwcibl3dsyxmqn3yhsbw5pyisx5yypjy6qm7hzi6r2wxgvzr"
   },
   "stable": {
    "version": [
@@ -27607,8 +27650,8 @@
   "repo": "swflint/emacs-universal-sidecar",
   "unstable": {
    "version": [
-    20240320,
-    1935
+    20240428,
+    1852
    ],
    "deps": [
     "citeproc",
@@ -27616,22 +27659,23 @@
     "universal-sidecar",
     "universal-sidecar-citeproc"
    ],
-   "commit": "e38aa3fbf570ab1eef3bf0441e5be59586672377",
-   "sha256": "11kbbv6s4qinx0l95f7j6ic40ykfcjpmz6wsl8jx9fdqrlh9b91w"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   },
   "stable": {
    "version": [
     1,
-    5,
-    2
+    6,
+    0
    ],
    "deps": [
     "citeproc",
+    "ebib",
     "universal-sidecar",
     "universal-sidecar-citeproc"
    ],
-   "commit": "9050eaea7946e613a4b9ecd9dd1462614699edb1",
-   "sha256": "169n0d4hsx9azch1w14wlmilm411hb7v0564xrcwww5w145jrs9m"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   }
  },
  {
@@ -27687,11 +27731,11 @@
   "repo": "benzanol/echo-bar.el",
   "unstable": {
    "version": [
-    20240307,
-    741
+    20240521,
+    326
    ],
-   "commit": "71ef563df7f1b85cfe64854b6e40bb353a281cc5",
-   "sha256": "1hgnmyphzww9gq6ww3x0xckn25rb26dlkbh22vf23566yhq1s993"
+   "commit": "0e221754cb40406609ae5c79ac294683850638e1",
+   "sha256": "0cwpphdj78g6w4an58qrf3mbqji0lm6cfzkz099pcppg17ljz4h4"
   }
  },
  {
@@ -28149,26 +28193,26 @@
   "repo": "editorconfig/editorconfig-emacs",
   "unstable": {
    "version": [
-    20240318,
-    2049
+    20240512,
+    1958
    ],
    "deps": [
     "nadvice"
    ],
-   "commit": "6b85f0475f01ff97f3233acb68e2646d2ca32a91",
-   "sha256": "1c78vv29sq8hk59mw7ir3wqrwz5gl9nd7gf3dgla6kdfw6ba3783"
+   "commit": "6ac848e380322bb52d6f70a032e12f70d60daab1",
+   "sha256": "08fl3jg2vklyczqdz3ifaa0j4zkq7siz0m141lzcq5rahi7c65g6"
   },
   "stable": {
    "version": [
     0,
-    10,
-    1
+    11,
+    0
    ],
    "deps": [
     "nadvice"
    ],
-   "commit": "ed760770ed5397120b3d68b69afc0778c48d3a47",
-   "sha256": "1hwqhfm32sg4y0l0yn7378vjb6icgd92lkazy2z6dmnks5sbz0a3"
+   "commit": "f1531bab5b57e40759167b7e5db49acbbc09972f",
+   "sha256": "0bqwmh4lcnbn5gcn38qg4jjfs9bfkbr4dj4dafglgds6a5lhznws"
   }
  },
  {
@@ -28567,16 +28611,16 @@
   "repo": "fsharp/emacs-fsharp-mode",
   "unstable": {
    "version": [
-    20230324,
-    1942
+    20240514,
+    1923
    ],
    "deps": [
     "eglot",
     "fsharp-mode",
     "jsonrpc"
    ],
-   "commit": "0ce19f272949f9ed335ab7a9fd9454c01f07eb8f",
-   "sha256": "1qy1g4nka6k083n0zmas6cq9bkcpij10xyzac0lfilggkr4hqz1w"
+   "commit": "677d78c4d6cb574086408082dedbcaef04a85359",
+   "sha256": "0by1ln0raa89dj2jng6kak69b7nzr3ic090wrg4gg6mqky5qbm5n"
   },
   "stable": {
    "version": [
@@ -28600,27 +28644,27 @@
   "repo": "yveszoundi/eglot-java",
   "unstable": {
    "version": [
-    20240322,
-    239
+    20240501,
+    922
    ],
    "deps": [
     "eglot",
     "jsonrpc"
    ],
-   "commit": "d09a4204ece16a5be4ddea71476ef87e565733bd",
-   "sha256": "1dl751frdhvk9474m885m1k5fka0rbpsnawgjb3qfmg4zi2v053v"
+   "commit": "492282d653c91b07ec10b30eb8a05cbfdc4017c7",
+   "sha256": "1h1psfx2pjx8jhxi86s0qwqk5prvn9s8nz4adxyvb5nx0329d351"
   },
   "stable": {
    "version": [
     1,
-    34
+    35
    ],
    "deps": [
     "eglot",
     "jsonrpc"
    ],
-   "commit": "d09a4204ece16a5be4ddea71476ef87e565733bd",
-   "sha256": "1dl751frdhvk9474m885m1k5fka0rbpsnawgjb3qfmg4zi2v053v"
+   "commit": "492282d653c91b07ec10b30eb8a05cbfdc4017c7",
+   "sha256": "1h1psfx2pjx8jhxi86s0qwqk5prvn9s8nz4adxyvb5nx0329d351"
   }
  },
  {
@@ -28901,15 +28945,15 @@
   "repo": "ahyatt/ekg",
   "unstable": {
    "version": [
-    20240320,
-    242
+    20240506,
+    419
    ],
    "deps": [
     "llm",
     "triples"
    ],
-   "commit": "8f050a65837d6d3ec4ea3ba7539541518d061539",
-   "sha256": "0hd5d7kiw8qbdpgxkv6zpknp799g61cqdjsi7jlgmj1dznryrxz6"
+   "commit": "c23f6672fa1075d11e942dffc1c37701731b94f0",
+   "sha256": "0s0cdvifxiz0r4widbcqlg19mcnxkhpcbgibi0c4p9n1iaqc1bfp"
   },
   "stable": {
    "version": [
@@ -29443,20 +29487,20 @@
   "repo": "emacs-eldev/eldev",
   "unstable": {
    "version": [
-    20240427,
-    1730
+    20240511,
+    2039
    ],
-   "commit": "089fc7f172bea0d1aae63f5595ced02c6486b2dd",
-   "sha256": "0n9l74vcwydwpc7ignqppskppnnhlgqf2cfcsr3a1bsw6x0rcw26"
+   "commit": "5153b5a747aaadb51ac14f3963e3ffbf59273e74",
+   "sha256": "183pa9sxg0qg0kd75vgll7xfaplpkrlj077vdqhh5qcciikhqhla"
   },
   "stable": {
    "version": [
     1,
-    9,
+    10,
     1
    ],
-   "commit": "4da05948a10f1d7297ee80907e1412de76170b51",
-   "sha256": "1v0jwzwq0xpih8m4aymz90fdfvypkiqczh0ip5jg4kcvzikliw3f"
+   "commit": "56335373099a6e2d3756fe5b7cce539d91c43bd3",
+   "sha256": "1qir0wagqb8yhmkb12zzadl146w952p3q92bpffd0hq0y6gcp2n5"
   }
  },
  {
@@ -29692,20 +29736,20 @@
   "repo": "swflint/electric-ospl-mode",
   "unstable": {
    "version": [
-    20240319,
-    1842
+    20240428,
+    1829
    ],
-   "commit": "e5283062fdf66aa2d664059b307839bf94413055",
-   "sha256": "0l60xc2l1ms8hzf5v5vk9spvdicqkvpkskwg07i3p00p2ldns0v8"
+   "commit": "deab4493530ab4bb2112c18d8ca6ccc652e24a63",
+   "sha256": "1l8d2yjg7rq67vwd0mq8lnfbvwvdp707nm856m9ns3j7jbhpzf9a"
   },
   "stable": {
    "version": [
     3,
-    1,
-    2
+    2,
+    0
    ],
-   "commit": "e5283062fdf66aa2d664059b307839bf94413055",
-   "sha256": "0l60xc2l1ms8hzf5v5vk9spvdicqkvpkskwg07i3p00p2ldns0v8"
+   "commit": "deab4493530ab4bb2112c18d8ca6ccc652e24a63",
+   "sha256": "1l8d2yjg7rq67vwd0mq8lnfbvwvdp707nm856m9ns3j7jbhpzf9a"
   }
  },
  {
@@ -30064,15 +30108,15 @@
   "repo": "karthink/elfeed-tube",
   "unstable": {
    "version": [
-    20240123,
-    1825
+    20240511,
+    418
    ],
    "deps": [
     "aio",
     "elfeed"
    ],
-   "commit": "92c66d6adcebe0588ccf811616decf7ef8a8ac65",
-   "sha256": "1mz2mk9vzdpj0x6dv1grkz03algrsf62kfqrlhnww60vnzqi6i3r"
+   "commit": "1f5ad2cc26d6290eb77dd36716e5887cb2cd617c",
+   "sha256": "1c0nxzqhldn59hgalvx24r7wn0s641jv6akv8vra6m8qwarw9ksk"
   },
   "stable": {
    "version": [
@@ -30584,28 +30628,28 @@
   "repo": "s-kostyaev/ellama",
   "unstable": {
    "version": [
-    20240415,
-    730
+    20240517,
+    1457
    ],
    "deps": [
     "llm",
     "spinner"
    ],
-   "commit": "6e6ec8e28b8ce32ff207b1b026aaaeddc1bd8239",
-   "sha256": "1nwwqvl91c65r45yxa2dcl4a41r3ahw6294h79riya48nrp8kn54"
+   "commit": "fddc1022b5e16e356d6f65ddac51bd2ccf25209c",
+   "sha256": "0pkhm4kz6wrad3vwk9xf8876sz3fc9m7bypffzfa7wg0ivz547jk"
   },
   "stable": {
    "version": [
     0,
     9,
-    1
+    4
    ],
    "deps": [
     "llm",
     "spinner"
    ],
-   "commit": "6e6ec8e28b8ce32ff207b1b026aaaeddc1bd8239",
-   "sha256": "1nwwqvl91c65r45yxa2dcl4a41r3ahw6294h79riya48nrp8kn54"
+   "commit": "fddc1022b5e16e356d6f65ddac51bd2ccf25209c",
+   "sha256": "0pkhm4kz6wrad3vwk9xf8876sz3fc9m7bypffzfa7wg0ivz547jk"
   }
  },
  {
@@ -31347,15 +31391,15 @@
   "repo": "emacscollective/elx",
   "unstable": {
    "version": [
-    20240415,
-    1535
+    20240506,
+    1556
    ],
    "deps": [
     "compat",
     "llama"
    ],
-   "commit": "4b3b0af5b8d1e530a1a8fc44af650886b23918b1",
-   "sha256": "17c4lq6flzx0nsjcmdpaq8isdz73d337d9nv8fqb1719shniq2cm"
+   "commit": "9db9f8dcc595717d82943fef66f554a4b40aff0b",
+   "sha256": "1cn4qya2miky1bwiwdkbp6kykcf5syy3hb7vfz5jlld4i9ckc23c"
   },
   "stable": {
    "version": [
@@ -31379,11 +31423,11 @@
   "repo": "tecosaur/emacs-everywhere",
   "unstable": {
    "version": [
-    20240416,
-    749
+    20240509,
+    1715
    ],
-   "commit": "8868b9e371d3d09add67022e46b3e4db0a0c22a0",
-   "sha256": "0viss80p4sls6qqi9hcdzzx5gibf4s27rqv1nfcdxibw2j1ici95"
+   "commit": "0b731ca6da351ba40953d090acf69e81757d437b",
+   "sha256": "0y5p0lvggjhv37fvr2li16x4kxf8y6nab8l38bdrmws34cip54cz"
   }
  },
  {
@@ -31724,13 +31768,13 @@
   "stable": {
    "version": [
     1,
-    0
+    1
    ],
    "deps": [
     "compat"
    ],
-   "commit": "47b0c75d4bf4f72a7af839667c877c80bd493cdb",
-   "sha256": "14alpanynww6z7yxxyiiy24c0p4pq1argsb0pmqavq25mdxgn4v2"
+   "commit": "195add1f1ccd1059472c9df7334c97c4d155425e",
+   "sha256": "1361jvwr3wjbpmq6dfkrhhhv9vrmqpkp1j18syp311g6h8hzi3hg"
   }
  },
  {
@@ -31755,15 +31799,15 @@
   "stable": {
    "version": [
     1,
-    0
+    1
    ],
    "deps": [
     "compat",
     "consult",
     "embark"
    ],
-   "commit": "47b0c75d4bf4f72a7af839667c877c80bd493cdb",
-   "sha256": "14alpanynww6z7yxxyiiy24c0p4pq1argsb0pmqavq25mdxgn4v2"
+   "commit": "195add1f1ccd1059472c9df7334c97c4d155425e",
+   "sha256": "1361jvwr3wjbpmq6dfkrhhhv9vrmqpkp1j18syp311g6h8hzi3hg"
   }
  },
  {
@@ -31950,16 +31994,16 @@
   "url": "https://git.savannah.gnu.org/git/emms.git",
   "unstable": {
    "version": [
-    20240414,
-    1933
+    20240512,
+    1735
    ],
    "deps": [
     "cl-lib",
     "nadvice",
     "seq"
    ],
-   "commit": "01110352afecd160165041bee55a63e959f66835",
-   "sha256": "0hz0yf49l6lq897lvfrv8pzkm7k6frnkqxr28800yhb7d6hcd3ix"
+   "commit": "c86ede13e80ad573f52e46de54fd24a97e2faa88",
+   "sha256": "04zw0al519n1xiyy15lzf1mv65d2fip5ha46h8lj03psl777bc4x"
   },
   "stable": {
    "version": [
@@ -32361,15 +32405,15 @@
   "repo": "isamert/empv.el",
   "unstable": {
    "version": [
-    20240423,
-    2355
+    20240517,
+    1701
    ],
    "deps": [
     "compat",
     "s"
    ],
-   "commit": "d9ab5d355c2e92c2c4e709d6945e6fab25069ccb",
-   "sha256": "0khj0xz3g5f0xa6qac7xyi2rjbm48l3wlk01q3x6fznccn5ch6wx"
+   "commit": "c7313288e350de7331779c0b37a8298980f6ff57",
+   "sha256": "00w59r7ycpv7819kbyjcvpiif9kzqh7k5nk1nfy2wgs1saxkg8ln"
   },
   "stable": {
    "version": [
@@ -32665,14 +32709,14 @@
   "repo": "purcell/envrc",
   "unstable": {
    "version": [
-    20240415,
-    1016
+    20240517,
+    1633
    ],
    "deps": [
     "inheritenv"
    ],
-   "commit": "8571bf94b6a63ffd9a84100106602f88ba186854",
-   "sha256": "03mjws4fp00g5smivs1iz0r78mmd5sgj1g4xyi8aq21mpv5rd2m0"
+   "commit": "4405f6e7b2e300aa91211bd505364d8f01667c97",
+   "sha256": "0jkydssnmljj8d29h15gar90r5cgin8qnlwampf2af26zfxxgq3v"
   },
   "stable": {
    "version": [
@@ -33524,21 +33568,19 @@
   "repo": "erlang/otp",
   "unstable": {
    "version": [
-    20240418,
-    631
+    20240517,
+    1225
    ],
-   "commit": "5df3992d695da4d7e8777cf7605279ce9d131f1c",
-   "sha256": "1zn34znba898b4kyrr2v88rbxlh709biff7z99llrvaxl0id6q3k"
+   "commit": "601a012837ea0a5c8095bf24223132824177124d",
+   "sha256": "1vaczg52wb4nzkm3py6b2ndxq1fb7nr3n41sn9wc16v4r8nq35b1"
   },
   "stable": {
    "version": [
     27,
-    0,
-    -1,
-    3
+    0
    ],
-   "commit": "5df3992d695da4d7e8777cf7605279ce9d131f1c",
-   "sha256": "1zn34znba898b4kyrr2v88rbxlh709biff7z99llrvaxl0id6q3k"
+   "commit": "601a012837ea0a5c8095bf24223132824177124d",
+   "sha256": "1vaczg52wb4nzkm3py6b2ndxq1fb7nr3n41sn9wc16v4r8nq35b1"
   }
  },
  {
@@ -33946,14 +33988,14 @@
   "repo": "SqrtMinusOne/eshell-atuin",
   "unstable": {
    "version": [
-    20240409,
-    932
+    20240519,
+    2200
    ],
    "deps": [
     "compat"
    ],
-   "commit": "1b71d4c18039bc3b46095adb557f6987caab4a43",
-   "sha256": "0mkv3460prgjx8pcfvfnavcd6h93f4cd4lqv0k7mynjiq57qy8np"
+   "commit": "b8bff27bbd7d4e7c28770d6f88d8ebcb1b965a9e",
+   "sha256": "0rqjljiwb1j345a4y2md44dbk6qpicz02cbzrbpfbi0a937y0222"
   }
  },
  {
@@ -34182,11 +34224,11 @@
   "repo": "akreisher/eshell-syntax-highlighting",
   "unstable": {
    "version": [
-    20240416,
-    102
+    20240509,
+    241
    ],
-   "commit": "070b33c20a907d973f41c0be1dcfd1335b8aa1e0",
-   "sha256": "0r4n6v9rlfmibrld1axbvxdll2j4c8vrp4glfpziglak1j764ifc"
+   "commit": "1198fd658d317747eb606a50c7767fef579af324",
+   "sha256": "1j2qfaw2jrd9gpn7a0i0wd5hjqgzj3akgkayrw73bh285iz19fm6"
   },
   "stable": {
    "version": [
@@ -34540,11 +34582,11 @@
   "repo": "emacs-ess/ESS",
   "unstable": {
    "version": [
-    20240410,
-    1836
+    20240516,
+    811
    ],
-   "commit": "8030e29de88c1f234184278e9839d7a78d3ddc6c",
-   "sha256": "1xx4srd4qmc0plh3lr1ar0qpamwh41wabrxrjg2205d1dxrqv0wp"
+   "commit": "f307097eac4d182986ed200924f92f14210a7c46",
+   "sha256": "08cnnmzj0da0vwv8m4cszhk0yy347pmqjmld7cvzn9xvqpghkmxv"
   },
   "stable": {
    "version": [
@@ -35156,11 +35198,11 @@
   "repo": "beacoder/everlasting-scratch",
   "unstable": {
    "version": [
-    20230105,
-    507
+    20240430,
+    1713
    ],
-   "commit": "1b7dac779501dcd988552aa6455a5be89e8b0562",
-   "sha256": "0hpv7a7jjs0shs7cda8q1bigwjb31miqbf8f4wr2swmjhh15w7h8"
+   "commit": "1837142ae14fdfd4d634434ceff966b348826259",
+   "sha256": "15509mjlk382yws41gb90xqn9g06agjpd6c8b8ps4ykmswm6ad5h"
   },
   "stable": {
    "version": [
@@ -35179,15 +35221,15 @@
   "repo": "emacs-evil/evil",
   "unstable": {
    "version": [
-    20240421,
-    1915
+    20240521,
+    954
    ],
    "deps": [
     "cl-lib",
     "goto-chg"
    ],
-   "commit": "fe44a565e6806dba4c298a76eb8800063016ec2d",
-   "sha256": "0xx73x82q26zgj33agmdzf4z4wk2m88f91wry071k8ja0qd9n5hc"
+   "commit": "0b134d3bbf73c93f5fed2bb89a35f408a9d627ed",
+   "sha256": "1nrvrb520wpphbhj1ck7jz2ks55yd7bkzycbjzbh534zax1nri93"
   },
   "stable": {
    "version": [
@@ -35871,6 +35913,36 @@
   }
  },
  {
+  "ename": "evil-lispops",
+  "commit": "3c3707521cf3967a452161961f1bce8d0dc83b08",
+  "sha256": "0iq7bacjdsbvzm10mif94amfnb5q00cpxklfz64cnwg3srgiaxfd",
+  "fetcher": "github",
+  "repo": "precompute/evil-lispops",
+  "unstable": {
+   "version": [
+    20240428,
+    1356
+   ],
+   "deps": [
+    "evil"
+   ],
+   "commit": "372b52df1a45fcea6c9461e7909cfdbb1db822a9",
+   "sha256": "1rvp5w1n13b9g4r0f6081w15rd52f46291i0ip0zxcz5q31szcg6"
+  },
+  "stable": {
+   "version": [
+    0,
+    10,
+    2
+   ],
+   "deps": [
+    "evil"
+   ],
+   "commit": "372b52df1a45fcea6c9461e7909cfdbb1db822a9",
+   "sha256": "1rvp5w1n13b9g4r0f6081w15rd52f46291i0ip0zxcz5q31szcg6"
+  }
+ },
+ {
   "ename": "evil-lispy",
   "commit": "f752bec984b45890e4d74ddd76cbadb0b3bf2942",
   "sha256": "07xkijnsww6060b6x88x5jwaw49ndz2dmaa6cbw78l28s4xgpnhc",
@@ -37691,16 +37763,17 @@
   "repo": "ananthakumaran/exunit.el",
   "unstable": {
    "version": [
-    20240401,
-    1344
+    20240502,
+    431
    ],
    "deps": [
     "f",
+    "project",
     "s",
     "transient"
    ],
-   "commit": "3b63d8835398ccadbcec080c8c1e00cd638b62b0",
-   "sha256": "0ci0x6jzw2ah3hm362r73wj3vipv1f01pybag29znmdvqfg95flb"
+   "commit": "b6134ce920a4bbc561f65fac1d1bf37206d97505",
+   "sha256": "1r28j6n373g85rrlwbx0z7mmjz76q9a9fs74grsl5rdjrpab57cn"
   }
  },
  {
@@ -38145,11 +38218,11 @@
   "repo": "WJCFerguson/emacs-faff-theme",
   "unstable": {
    "version": [
-    20240416,
-    2057
+    20240520,
+    1303
    ],
-   "commit": "9b8ff139442b29a16a437c367f201f263bbb884c",
-   "sha256": "103npmlln3c394fkacapx17zjyw4niwqqn8c768gij0ny4k0qfg4"
+   "commit": "452546431e3bef05fbf8914f6d41b8b7a3557bf3",
+   "sha256": "1dikgq84xfv2hq340f9m2nvhn4h09sv9py0sm3214nfssn6z4a55"
   },
   "stable": {
    "version": [
@@ -38705,11 +38778,11 @@
   "repo": "technomancy/fennel-mode",
   "unstable": {
    "version": [
-    20240425,
-    129
+    20240502,
+    1555
    ],
-   "commit": "dd7a320b1582b726d011f4fca24d36614b5ffba8",
-   "sha256": "0f19c55slndp0vdhbwx7s2cz54a26vvyy7knxd2nrhl6wnrazhma"
+   "commit": "b07a726f4d8b6e7f69fdf7f2105abfa5707680dc",
+   "sha256": "129s957d4g288x75x1ixb4i8g6nbf2y032jj4minzhn51627cy88"
   },
   "stable": {
    "version": [
@@ -39185,11 +39258,11 @@
   "repo": "thisirs/find-temp-file",
   "unstable": {
    "version": [
-    20221119,
-    1350
+    20240512,
+    1635
    ],
-   "commit": "601e39b052c66df4cd928cf7e308dd6a54769a99",
-   "sha256": "0mlzrwiv9m8404lx576gkig8icmp7v2fk36x7z1zw2r4vi6r0qc1"
+   "commit": "76414b6ba8660905675ec8969f5db0adb270bb80",
+   "sha256": "0shsazfr3r5a3ar6d6bj394vck5k21mda9isp40apba541bbvr5k"
   }
  },
  {
@@ -39426,11 +39499,11 @@
   "repo": "LemonBreezes/emacs-fish-completion",
   "unstable": {
    "version": [
-    20240405,
-    2052
+    20240518,
+    1403
    ],
-   "commit": "807628cc4b0f7a07b6e512f7c7825a78ee5c73fc",
-   "sha256": "12rs6l3w08smp37p18365bj4as1i3jrwl54zbrxw2navjyqmp11m"
+   "commit": "1256f137a2039805d4e87f8e6c11a162ed019587",
+   "sha256": "0l2axq9hnz41wz7nj730s7qlgj7zig03xpmzhbyja1av84jndpvi"
   },
   "stable": {
    "version": [
@@ -40405,14 +40478,14 @@
   "repo": "worr/cfn-mode",
   "unstable": {
    "version": [
-    20231030,
-    1003
+    20240512,
+    2341
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "0eb3dd630391e4d8a26e09c9032cfb9f4bd71e08",
-   "sha256": "1nrhybhpkv3rvks1vqzahfjg0vva76kakd99wpdqsa60ylb5i4jw"
+   "commit": "b26a95a219aa700256b22fd026cace57bce1701b",
+   "sha256": "1vcapcym8baf9xfk572s8xfds440lp88wg3zlzghxsfbim4w9ddx"
   },
   "stable": {
    "version": [
@@ -45163,8 +45236,8 @@
   "repo": "magit/forge",
   "unstable": {
    "version": [
-    20240423,
-    2033
+    20240519,
+    1510
    ],
    "deps": [
     "closql",
@@ -45179,8 +45252,8 @@
     "transient",
     "yaml"
    ],
-   "commit": "b54c8610a48c092aec8adde289cb9ba52ff7e23c",
-   "sha256": "1akx3qf3kfyc21bhg1pdlp92ncnx95wdhsqaj45haqjalad9a0zp"
+   "commit": "d3b14f2cb6740d18827ed713715908b517e4a899",
+   "sha256": "058g4gi3p3r70h1bdpphbg65xwggq4azyw70wgq30b9q13v90lkh"
   },
   "stable": {
    "version": [
@@ -45250,15 +45323,15 @@
   "repo": "lassik/emacs-format-all-the-code",
   "unstable": {
    "version": [
-    20240205,
-    2153
+    20240511,
+    1811
    ],
    "deps": [
     "inheritenv",
     "language-id"
    ],
-   "commit": "1f4a69811b4b6a00c74fa2566ef731b17b9a2ed1",
-   "sha256": "1p8bh96yksbpajx2pqxjc4vf7nfncwc3mvh1fcj8afw53g72is8m"
+   "commit": "c5ddfc5f3317eaa2a7541a818a0fce961e5e61dd",
+   "sha256": "0br35g9pyif8qws2x9nzn9p3l7ajqsni94japmrwsd943fqixzl0"
   },
   "stable": {
    "version": [
@@ -45398,14 +45471,14 @@
   "repo": "rnkn/fountain-mode",
   "unstable": {
    "version": [
-    20240329,
-    229
+    20240520,
+    307
    ],
    "deps": [
     "seq"
    ],
-   "commit": "b25315fed996cf1d41cc2d612dacc62b3e95f928",
-   "sha256": "15r0pzdmimm72jx26zgdxf7fwwcppl45vvh33xx5wnhqzd140hwn"
+   "commit": "7e10f27dd5d9a5d18e08a5454321e961167dfbf7",
+   "sha256": "0z7lf948l4yn8znir2nca2bd38c6wqcgihf6cx603j1q7ipfxnwb"
   },
   "stable": {
    "version": [
@@ -46557,11 +46630,11 @@
   "repo": "gvol/gap-mode",
   "unstable": {
    "version": [
-    20240126,
-    359
+    20240430,
+    210
    ],
-   "commit": "b816fcf70840887461764ebdbb34c8b37dd42ba2",
-   "sha256": "0w5g7hfcbi32bs42rqbzskb1a3pwr4qv02c948xdik7bs0nnjgyd"
+   "commit": "09b4082b6e28141537696bb832c8ecc975ec57d8",
+   "sha256": "16gl5y1m6b7s5f5ap7sk0xf51vziqkgzajw6817bcg9ih5lbf8z9"
   }
  },
  {
@@ -46626,11 +46699,11 @@
   "repo": "godotengine/emacs-gdscript-mode",
   "unstable": {
    "version": [
-    20240424,
-    2157
+    20240509,
+    1523
    ],
-   "commit": "2737f1c68cbeba38d34e5728c9fc2cd69e9a8f88",
-   "sha256": "0q8diqv5qcn7xxb42wl5mva8a51l0rhxsbm248walqdrrb0l9jk3"
+   "commit": "32086df83335ce0e5120b21b80cf7996edb2232e",
+   "sha256": "1w4bkqg17abxzpcb4w5askspps6zcq503544qnj1j97fmc2zmvha"
   },
   "stable": {
    "version": [
@@ -46785,14 +46858,14 @@
   "repo": "emacs-geiser/chibi",
   "unstable": {
    "version": [
-    20211204,
-    1938
+    20240521,
+    2252
    ],
    "deps": [
     "geiser"
    ],
-   "commit": "5a6a5a580ea45cd4974df21629a8d50cbe3d6e99",
-   "sha256": "071m2cvwanra9rd8vmybw8xd4k9a23x02cyy12f7qyjy5fp9s968"
+   "commit": "2502fed1349c2703eea528b74bcc980ad6bceab8",
+   "sha256": "1j8vld3s653af8jyvdb3sl16ix3al4fxprawgi3r9rrvrai2wz22"
   },
   "stable": {
    "version": [
@@ -47544,16 +47617,16 @@
   "repo": "magit/ghub",
   "unstable": {
    "version": [
-    20240415,
-    1555
+    20240507,
+    1647
    ],
    "deps": [
     "compat",
     "let-alist",
     "treepy"
    ],
-   "commit": "e0a65456098c5e0f2cf2724d071e9033f7b0bf3a",
-   "sha256": "0kxvd5bfwddcikm4xd82n24pm2mx7i4hqi5ikaypdav2hlp9s0x5"
+   "commit": "1df5298c3c4d26ec3720dc6c31f8bfd07858f8a9",
+   "sha256": "1ag8jkc9kkq6rikz19gv2m2hj85f37zwdxxnx16825hf1q9xcjpk"
   },
   "stable": {
    "version": [
@@ -47658,6 +47731,30 @@
   }
  },
  {
+  "ename": "girly-notebook-theme",
+  "commit": "984f419a8f77855487ab178fbb94c048d5a8a6b9",
+  "sha256": "00vwb2fz24h8pzvp062iq32gmv6bswy6320m19c6nl123vkmsck0",
+  "fetcher": "github",
+  "repo": "melissaboiko/girly-notebook-theme",
+  "unstable": {
+   "version": [
+    20240513,
+    1344
+   ],
+   "commit": "e27603d5afb2b60714b8acef61f3477d11c34e00",
+   "sha256": "11spfigfnc3yp1vzqxaq6i0pc02shigfy8zvw8cyxqs6cpglbywr"
+  },
+  "stable": {
+   "version": [
+    1,
+    2,
+    1
+   ],
+   "commit": "e27603d5afb2b60714b8acef61f3477d11c34e00",
+   "sha256": "11spfigfnc3yp1vzqxaq6i0pc02shigfy8zvw8cyxqs6cpglbywr"
+  }
+ },
+ {
   "ename": "gist",
   "commit": "cae2ac3513e371a256be0f1a7468e38e686c2487",
   "sha256": "053fl8aw0ram9wsabzvmlm5w2klwd2pgcn2w9r1yqfs4xqja5sd3",
@@ -47879,26 +47976,28 @@
   "repo": "liuyinz/git-cliff.el",
   "unstable": {
    "version": [
-    20240407,
-    940
+    20240517,
+    1042
    ],
    "deps": [
+    "dash",
     "transient"
    ],
-   "commit": "b217b0576798767cc0a96343ba43adca3c04f760",
-   "sha256": "03bbm924i10h0chly5za991qplkp15dphgksnhni4i30k5s8znkb"
+   "commit": "90db86c1a600fc319e7c8172839bfe18c3e4221b",
+   "sha256": "0i0gdcs9lh7jm5sjwss0gadl7k645rns67va5d9xahzvfz1qkzb9"
   },
   "stable": {
    "version": [
     0,
-    6,
+    7,
     0
    ],
    "deps": [
+    "dash",
     "transient"
    ],
-   "commit": "6715b76f0734aa730958e87555b63b59c80585ff",
-   "sha256": "1795zwcic7imh7ybzjvbybyqrnnfh887y1bvn95wyywqrjrkk22m"
+   "commit": "14be943b04c1a0e9a0771bc6fc748d0e961af825",
+   "sha256": "00bis5dk15wrmccd1pla87z2cbr5fgqg6gqjvkn7iry73sax8c61"
   }
  },
  {
@@ -47942,16 +48041,16 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20240415,
-    1544
+    20240520,
+    1135
    ],
    "deps": [
     "compat",
     "transient",
     "with-editor"
    ],
-   "commit": "68075aff58e7ae5c852b9eabb69df454267deeaf",
-   "sha256": "16l6gm5kh739d3pclyqgfkc0kqf97zl03hzgx5iqadbx8gpcvzxg"
+   "commit": "22fd8f8594202a0679ccc2f7d02bca44d48b8039",
+   "sha256": "1ddx82j2j8sf9w7vc9jqa8fm54slprz4jyg3bxmsh6qb0y7n3yni"
   },
   "stable": {
    "version": [
@@ -49403,27 +49502,28 @@
   "url": "https://git.thanosapollo.org/gnosis",
   "unstable": {
    "version": [
-    20240417,
-    1322
+    20240517,
+    334
    ],
    "deps": [
     "compat",
     "emacsql"
    ],
-   "commit": "ad7b3563cb0b63afdb3ee14ada8e282c3a65b72e",
-   "sha256": "1mvf9wq8mwxl5vvnhgsgi6ahw45cg1sihgknb59pp38mg33yarxv"
+   "commit": "b9c6c04e33ad2f541ab116dda9e460f21034a8eb",
+   "sha256": "0h9jjag7ip4rgwr3if9rjlglsp7fiklx52685d527gkv6wqqd5a7"
   },
   "stable": {
    "version": [
     0,
     2,
-    0
+    5
    ],
    "deps": [
+    "compat",
     "emacsql"
    ],
-   "commit": "3433d348e214cff704c2bef1a855c0ea655ad32b",
-   "sha256": "0y59cc330348yjfw346smc3fha7r0l7zxppydllax31hmx3g4k7d"
+   "commit": "b9c6c04e33ad2f541ab116dda9e460f21034a8eb",
+   "sha256": "0h9jjag7ip4rgwr3if9rjlglsp7fiklx52685d527gkv6wqqd5a7"
   }
  },
  {
@@ -50329,11 +50429,11 @@
   "repo": "lorniu/go-translate",
   "unstable": {
    "version": [
-    20240313,
-    356
+    20240522,
+    333
    ],
-   "commit": "377375c87f64e7d069c8fc310ccfefd8771226f3",
-   "sha256": "1p5acy25ap0lpnv178xrkz2lyjppsfss8vcqarjpvd1hv40wfv5m"
+   "commit": "8cc1f9d013fd99d5bec8b862f8acb249c9104e7e",
+   "sha256": "15z86y5dvwdcds6w6vl1bv6j4rakc5a4gzawbacpb8wz25nbbigx"
   },
   "stable": {
    "version": [
@@ -50958,7 +51058,7 @@
    "version": [
     0,
     37,
-    1
+    2
    ],
    "deps": [
     "dash",
@@ -50966,8 +51066,8 @@
     "magit-popup",
     "s"
    ],
-   "commit": "bf28314d9e3287ad1674f80d8a80d2245c0159ae",
-   "sha256": "1v02h68s1fir6s7y3zjq0s8gmg5qkac637yf3mv68lglb9cwqjll"
+   "commit": "9a1b3c8fdfd0fcbe460b3546ef1fba26905e6bd0",
+   "sha256": "1bcakhih2c3ql2npq4v8bsq88dknbk8658b94hbfhy16an81l2zn"
   }
  },
  {
@@ -51121,28 +51221,52 @@
   "repo": "karthink/gptel",
   "unstable": {
    "version": [
-    20240428,
-    314
+    20240520,
+    1943
    ],
    "deps": [
     "compat",
     "transient"
    ],
-   "commit": "306fe3bd8c2933b48a871976161a7030c7e5b9f8",
-   "sha256": "0zdjzjv6znfzdrjdpkvnhbrb2dkqf9kgg4z2hgl2wmx4lkwnvcdx"
+   "commit": "3bce2caa5dc773d1b1fce53e8453d2e1ce534b8b",
+   "sha256": "1v6pvla6kv9ym3vkd37k2hkn71ycgh4av933ipjqycy1zrwb968i"
   },
   "stable": {
    "version": [
     0,
     8,
-    5
+    6
    ],
    "deps": [
     "compat",
     "transient"
    ],
-   "commit": "45aae4f721e37139a57420273b6e4252229141d0",
-   "sha256": "1w9sji73dixch1b5i420j44qb3jd0zknpypz46g33pbyhg9xwqln"
+   "commit": "cdb07d0d2bb6a4fe6d6a620aa4eec98f70fe6f78",
+   "sha256": "1k3mq0xjxdbwbhssd16yh6hfg3jpm9qqx4q4jc2igisjja75nmrv"
+  }
+ },
+ {
+  "ename": "gpx",
+  "commit": "4c77f84fd928654cee560b238c35240d1b984366",
+  "sha256": "196zdi3f1mi8dr2sigv66hlrxz9n2klgipl7izb9fqkvxv9g3xi2",
+  "fetcher": "github",
+  "repo": "mkcms/gpx-mode",
+  "unstable": {
+   "version": [
+    20240513,
+    1737
+   ],
+   "commit": "b79baf93040fb5c89e803848e8aff31331ea03b8",
+   "sha256": "0ffqzihh1c874bj53hdgjcvwhkmp2pdmcl6rmzjv1m9ijxhxnjmj"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    0
+   ],
+   "commit": "b79baf93040fb5c89e803848e8aff31331ea03b8",
+   "sha256": "0ffqzihh1c874bj53hdgjcvwhkmp2pdmcl6rmzjv1m9ijxhxnjmj"
   }
  },
  {
@@ -51923,14 +52047,14 @@
   "repo": "greduan/emacs-theme-gruvbox",
   "unstable": {
    "version": [
-    20230921,
-    120
+    20240515,
+    553
    ],
    "deps": [
     "autothemer"
    ],
-   "commit": "9ee1159acd15ee014d5643cdaa4e00e06efa6d63",
-   "sha256": "1nm0rspn7d53ymcmgvnk69rnlzcqn87m332dncwzj9d2f4mz1l6b"
+   "commit": "3388a96d8e59c120bc243c1f90c614237f6ac3b5",
+   "sha256": "0r0yqa47zlwr9bv9m84dq3vl43k1gk5hlclcg40v4wqkiiyhwbvw"
   },
   "stable": {
    "version": [
@@ -52462,11 +52586,11 @@
   "repo": "idlip/haki",
   "unstable": {
    "version": [
-    20240412,
-    1016
+    20240501,
+    1610
    ],
-   "commit": "a564a4feab9e1bd7f022128934ed55c83d120b69",
-   "sha256": "0f3mhvfmvjmkr0lncykkv95n8v5c8nygq209c4b76kwbap06lhcb"
+   "commit": "e076785ca936b723751b8957c5d5eab8dde12346",
+   "sha256": "17ypcl68d2f3m0nqma80g1mrbj50wbf4ljl02xl518y0i9cix50a"
   }
  },
  {
@@ -53279,16 +53403,16 @@
   "repo": "emacs-helm/helm",
   "unstable": {
    "version": [
-    20240425,
-    825
+    20240521,
+    1457
    ],
    "deps": [
     "helm-core",
     "popup",
     "wfnames"
    ],
-   "commit": "753563ee010e865f3f0fd9d491c2052eb1347fd8",
-   "sha256": "103pnnki9338ahgz1z2jfl5fyix19mvlsq0cvgn1pnd7h75v14r9"
+   "commit": "c65a9039b6574183aa3f3e0b647c85470c002339",
+   "sha256": "0m0b6gb393q60cha19wm0xsry6rihqyp2v6yqcrbmhjr4qbsmni6"
   },
   "stable": {
    "version": [
@@ -54172,14 +54296,14 @@
   "repo": "emacs-helm/helm",
   "unstable": {
    "version": [
-    20240411,
-    1719
+    20240518,
+    1434
    ],
    "deps": [
     "async"
    ],
-   "commit": "6ae44dba0cb72a3a6950cbe36d104db9c69dfb49",
-   "sha256": "01lqwqjgg1m7ixm160z88cv6mbacs1vxbkvzcgns0lspxckvl1b1"
+   "commit": "ba2eb552353635222f14984b8a2f4456b4ac62e2",
+   "sha256": "15nb9dd59fbzmq2b78pnb9iy1d2q6bdnq6xxsmpycqr10kbmsv1p"
   },
   "stable": {
    "version": [
@@ -58275,6 +58399,21 @@
   }
  },
  {
+  "ename": "hide-secrets",
+  "commit": "7a61ad9493fde6c950919111d14798f10bc637d6",
+  "sha256": "182az3wqbi72sz63vvjyv1niqn1bbgjxjax4hrbfpn4ls9f2sb5b",
+  "fetcher": "gitlab",
+  "repo": "ostseepinguin1/hide-secrets-el",
+  "unstable": {
+   "version": [
+    20240512,
+    1933
+   ],
+   "commit": "e774f3fdacd875707fde25e32f8760e54a440689",
+   "sha256": "14jlh6x6pp43rw4q88xfz527zaj4r4mbydxyqr9hw6m3ihhq0vq2"
+  }
+ },
+ {
   "ename": "hidepw",
   "commit": "f2ee7663bcedaffa935b8379cc77168035cb1f14",
   "sha256": "0qnvlcjldg1mcb5ilcy538sbf294glrx5g1a7vbmspdm3wby7lna",
@@ -58707,14 +58846,26 @@
   "repo": "Lindydancer/highlight2clipboard",
   "unstable": {
    "version": [
-    20151020,
-    1840
+    20240516,
+    1942
+   ],
+   "deps": [
+    "htmlize"
+   ],
+   "commit": "6564fafd09a9c676b4d393f2260a0c73daac7257",
+   "sha256": "1xi8cmf33k7vjqk8p3h1b26fsmdwimlb030sw6ifq4r7nd6bamz1"
+  },
+  "stable": {
+   "version": [
+    0,
+    0,
+    3
    ],
    "deps": [
     "htmlize"
    ],
-   "commit": "6ce58a060d9c5843ccb8c79ec2bba7858c68ac15",
-   "sha256": "06nnqry36ncqacfzd8yvc4q59bwk3vgf9a14rkpph2hk2rfvq2m6"
+   "commit": "6564fafd09a9c676b4d393f2260a0c73daac7257",
+   "sha256": "1xi8cmf33k7vjqk8p3h1b26fsmdwimlb030sw6ifq4r7nd6bamz1"
   }
  },
  {
@@ -60096,11 +60247,11 @@
   "url": "https://git.savannah.gnu.org/git/hyperbole.git",
   "unstable": {
    "version": [
-    20240420,
-    1609
+    20240519,
+    1800
    ],
-   "commit": "31c60562fc3b2c23719b2c617be8a65bc5d128ff",
-   "sha256": "18k4n5z33275p4idh3r5i1ym148lvnv4r88pqbwh2zb9wg4z1y1c"
+   "commit": "61937530ea3713b37ed34b8ad62331a507ccf8c6",
+   "sha256": "0i6h8m04njp9vwzibm2ja299lrgygw222mgknf773dys3bdnf7pm"
   }
  },
  {
@@ -60111,8 +60262,8 @@
   "repo": "ushin/hyperdrive.el",
   "unstable": {
    "version": [
-    20240424,
-    1953
+    20240522,
+    627
    ],
    "deps": [
     "compat",
@@ -60122,8 +60273,8 @@
     "taxy-magit-section",
     "transient"
    ],
-   "commit": "3d509c7a5998511c2951eedcd236e5939c8c0fc5",
-   "sha256": "0z3ybggny7b7n3fnl4kpg4fgzqh4pdn0v55lsbrbfibvszhbfwxs"
+   "commit": "f32525eea6032d3422a4419fe65d6c32eb359b8b",
+   "sha256": "0rs5ij0z82f2aiq5lrr0rkp33cxx2wb149mb2mrjczwrqm9riwbn"
   },
   "stable": {
    "version": [
@@ -61853,11 +62004,11 @@
   "repo": "jcs-elpa/indent-control",
   "unstable": {
    "version": [
-    20240303,
-    2359
+    20240512,
+    503
    ],
-   "commit": "4ede831b8680946f8e4a6cafd4f522c464160c00",
-   "sha256": "0pjd6mdhf5x9nkm2g5bqgav6ii15gs8d74kj3bigqkfv0m3q5s53"
+   "commit": "bf4863c9f7d1d5cadf47b78bebbafc5431361597",
+   "sha256": "0rkbsy5bc2kfvx4wiig5rnjw69lpi57lgcpp04810sngskima4sj"
   },
   "stable": {
    "version": [
@@ -62162,11 +62313,11 @@
   "repo": "nonsequitur/inf-ruby",
   "unstable": {
    "version": [
-    20240310,
-    1803
+    20240509,
+    143
    ],
-   "commit": "b88ff8bd5fe2e468de611b0211842634beaeb5da",
-   "sha256": "1qq5dnaj7nyhllg6kx7h2fgk8bisvn35kc4i2d4xsgpsf11293wp"
+   "commit": "1dcaa0aad2eec23582263f934005140ddf70f52c",
+   "sha256": "1rxxn0329c3xvcn931rwb2chfzxm2m9zi2zq6kvgi5bwq2p5b53q"
   },
   "stable": {
    "version": [
@@ -62471,25 +62622,26 @@
   "repo": "chaosemer/init-dir",
   "unstable": {
    "version": [
-    20240326,
-    2204
+    20240521,
+    349
    ],
    "deps": [
     "benchmark-init"
    ],
-   "commit": "5f351041b0f81bfbf81437ce1d39bbd37de9319d",
-   "sha256": "0nb8y9jyrig1217pfddbcfsdfbvqchs8fvyi0hic283c2lygycsy"
+   "commit": "fd3da1d7a4caf337eebf53de5cd6f5cadad00537",
+   "sha256": "1jpdjvkhjrnkcb12w6297hpdiw5vbnw67zby0fmsjz86rjwx08dy"
   },
   "stable": {
    "version": [
     0,
-    2
+    2,
+    1
    ],
    "deps": [
     "benchmark-init"
    ],
-   "commit": "5f351041b0f81bfbf81437ce1d39bbd37de9319d",
-   "sha256": "0nb8y9jyrig1217pfddbcfsdfbvqchs8fvyi0hic283c2lygycsy"
+   "commit": "fd3da1d7a4caf337eebf53de5cd6f5cadad00537",
+   "sha256": "1jpdjvkhjrnkcb12w6297hpdiw5vbnw67zby0fmsjz86rjwx08dy"
   }
  },
  {
@@ -63055,10 +63207,10 @@
   "unstable": {
    "version": [
     20240428,
-    218
+    852
    ],
-   "commit": "f1a7c5d464a937ec87c23a4a0bb41207eab07adf",
-   "sha256": "0ia0d3qw34l04phl75injihgi3i6m0299d1kj0wvdvm6b8ah5cnz"
+   "commit": "98a7dd345c20db85a5477272148d6fb7801ac651",
+   "sha256": "0wdyv5i5p4banp100x7y6cldbg7dvrzsyj7z8pldyi4d6iardxy2"
   }
  },
  {
@@ -63591,11 +63743,11 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20240405,
-    2019
+    20240519,
+    1636
    ],
-   "commit": "a38bc60eb78e38304d1183d98d4fc76671263ee1",
-   "sha256": "0vi26fpm6pyhi7475pgs73prrb0yw4k6nss02b7536p2pjnaxckq"
+   "commit": "6a98b006f140b588490c24c5f794aac4250bf300",
+   "sha256": "054wjara59jjqrhr7hq0h4h3f3k6gvbx6m8066s5hryvi1ij2p4y"
   },
   "stable": {
    "version": [
@@ -64531,15 +64683,15 @@
   "repo": "emacs-jabber/emacs-jabber",
   "unstable": {
    "version": [
-    20240306,
-    524
+    20240522,
+    1532
    ],
    "deps": [
     "fsm",
     "srv"
    ],
-   "commit": "633cb73633143ec093c291af94b008f456037e8b",
-   "sha256": "1agbcbqvfdh0933b1rzsnmv27kfr8ns3202bgpqhnnvpn2dmp448"
+   "commit": "02372a6673372779571b524319e08b84241e87c6",
+   "sha256": "0ps998w5z0qs676l29ag47mrrsg9k2g7pgl7fbfc0crbi2ivzj2a"
   }
  },
  {
@@ -65328,25 +65480,25 @@
   "repo": "minad/jinx",
   "unstable": {
    "version": [
-    20240415,
-    423
+    20240515,
+    1016
    ],
    "deps": [
     "compat"
    ],
-   "commit": "77cac7f240f45d6c4836e844bd68151c7f863298",
-   "sha256": "0paid82g8q7spbi4qb10vbg8izjw7347psybfpww4q0fsjjn6hhj"
+   "commit": "3c36f1eb31713869ffbdbf55971671efa4f01966",
+   "sha256": "04f9yd710rrn1v5b44jaackrnc7f6ywy4r5j5ig12gkddbx3r29i"
   },
   "stable": {
    "version": [
     1,
-    6
+    7
    ],
    "deps": [
     "compat"
    ],
-   "commit": "f4abad42cd0bdcff62ac325a644cb8faad186a4b",
-   "sha256": "0kl9jpd6a68q1s3lc74jkx0nsk66lpwg7zx61a5h0w0m410l1g1q"
+   "commit": "3c36f1eb31713869ffbdbf55971671efa4f01966",
+   "sha256": "04f9yd710rrn1v5b44jaackrnc7f6ywy4r5j5ig12gkddbx3r29i"
   }
  },
  {
@@ -65482,11 +65634,11 @@
   "repo": "Michael-Allan/Java_Mode_Tamed",
   "unstable": {
    "version": [
-    20240425,
-    1650
+    20240508,
+    951
    ],
-   "commit": "7c88ff37c2a957a5d07be7a1c878b3325b55f719",
-   "sha256": "1fkf605g0g2vp9ls3g7n4fkwy9p24iyr4k02rfwfqj2m04gzzhws"
+   "commit": "4a0bcf5a8f86e26ce76df0ea984c316e63df13f3",
+   "sha256": "11ka3hcfzh7dzk37zb7lblyq6r5k2f4dpn8c1nkiyzamchbfg4df"
   }
  },
  {
@@ -66388,11 +66540,11 @@
   "repo": "llemaitre19/jtsx",
   "unstable": {
    "version": [
-    20240418,
-    2018
+    20240519,
+    1546
    ],
-   "commit": "32dec6d5d5725a7fe2d50537e46c224349008896",
-   "sha256": "1g82cfkkv7vjsk29bfjjwjhwark1h371pzrfqnrm5sfpyn1h3nxv"
+   "commit": "7bbf02f046e375c23fe5a90eb0a9557e843eba41",
+   "sha256": "1x7w6g535la7fs05v2xil4bggif7j9f3qphc49fz9ay6q6rfsc84"
   },
   "stable": {
    "version": [
@@ -66430,11 +66582,11 @@
   "repo": "JuliaEditorSupport/julia-emacs",
   "unstable": {
    "version": [
-    20240409,
-    1316
+    20240506,
+    1205
    ],
-   "commit": "60f23fea669add4a1624573eb6383f4180f5a6c9",
-   "sha256": "0lsypckp0ghdbqbrw4m9dgq3w8bmyn15mv6iiya9f84bm6r60dn2"
+   "commit": "d360ad5285b8a0be1818fd6c2b4307c34e468c6e",
+   "sha256": "0gxj3qn4jmggb2bh7bmykb62g29m24g8k11jx481pf56qn2g3rc2"
   },
   "stable": {
    "version": [
@@ -66501,8 +66653,8 @@
   "repo": "gcv/julia-snail",
   "unstable": {
    "version": [
-    20240428,
-    522
+    20240521,
+    22
    ],
    "deps": [
     "dash",
@@ -66511,8 +66663,8 @@
     "s",
     "spinner"
    ],
-   "commit": "a63ee2a61efd6af2d6a597bfa40cc98630406a8e",
-   "sha256": "15qqhpbak60bskws5hc6k02089vyzrhivj91jykzi38jzz3vy808"
+   "commit": "f7784c50078332aeeb8e388bf5b8f13042b7406b",
+   "sha256": "0cds08nyr7px5mbna2gbmv6a82hc1my45illdgswf7k67jby46zr"
   },
   "stable": {
    "version": [
@@ -66569,25 +66721,25 @@
   "repo": "shg/julia-vterm.el",
   "unstable": {
    "version": [
-    20230815,
-    2318
+    20240514,
+    724
    ],
    "deps": [
     "vterm"
    ],
-   "commit": "6d67b618a6f2714d283095b088b12859fb663df9",
-   "sha256": "02al9s2fb9a1nf6s31szbh0pxw32rljj8fpmx9bs132c54x79ph8"
+   "commit": "2298cd42d354f069adbb7bb06b3b15222e5f54a2",
+   "sha256": "0r0anwzar8rwiwzwg637nshj59mssiipbilcc6kvxr73ffviy127"
   },
   "stable": {
    "version": [
     0,
-    22
+    25
    ],
    "deps": [
     "vterm"
    ],
-   "commit": "e4d1c28935c47429442ddfcd735cb8d8c2d8db66",
-   "sha256": "0q11f5f7j7rwzd4n1r84cfzx8cw631h4nfykjqrm5zbgkc9zmfd0"
+   "commit": "5e94f761be563db1f537ce37508ffa2cc33fc567",
+   "sha256": "01hvb5b884rv7q3mng8l71iwikzinvbwns41na30l0rqpzljcqs7"
   }
  },
  {
@@ -67126,11 +67278,11 @@
   "repo": "meritamen/emacs-kanagawa-theme",
   "unstable": {
    "version": [
-    20240424,
-    308
+    20240501,
+    38
    ],
-   "commit": "dca0ee1e2978eb82b37c777d894dc447faa70619",
-   "sha256": "0ac5as108lsc89pggda52jskf110jx1mvdir5rmdpzrl9fdkacix"
+   "commit": "3ac33b6a4c7c7ad751ec8f264aa05f135b5d953d",
+   "sha256": "0dbdv64yzhrhhzg0asxnabzhv1jhcihmkby3ilw8hgls0w0r24c0"
   }
  },
  {
@@ -67205,15 +67357,15 @@
   "repo": "ogdenwebb/emacs-kaolin-themes",
   "unstable": {
    "version": [
-    20240217,
-    2054
+    20240507,
+    1430
    ],
    "deps": [
     "autothemer",
     "cl-lib"
    ],
-   "commit": "b03749c914b1319caccce4cf96630e3fba5335f5",
-   "sha256": "15246nsiwdfy5zl5iml4qxslz8p7k9lrzdr7p6bn71afk721vz5y"
+   "commit": "ba7a003d7aa5d4681a8464f4dec6ab4e9fb271d2",
+   "sha256": "1x0hrl0klfgvm7l2lcqr15apjsy9pfqzbk54idmk7yfk6mz9pr2c"
   },
   "stable": {
    "version": [
@@ -67404,8 +67556,8 @@
   "repo": "jinnovation/kele.el",
   "unstable": {
    "version": [
-    20240415,
-    2325
+    20240428,
+    2141
    ],
    "deps": [
     "async",
@@ -67417,8 +67569,8 @@
     "s",
     "yaml"
    ],
-   "commit": "8f3c4515ae55376f49d2be338d876686a34d121d",
-   "sha256": "16c7787aspgki933h6393142hxlxz97wcnvg8l4w9c763i5fkqxr"
+   "commit": "ee667b6581113be21e7d24935cf8a431eb382432",
+   "sha256": "038zqsgbg4j7mrhw7rf61qp0bja2m675rhxk6y8bbnvkva8z24w9"
   },
   "stable": {
    "version": [
@@ -67955,28 +68107,28 @@
   "repo": "khoj-ai/khoj",
   "unstable": {
    "version": [
-    20240427,
-    1312
+    20240501,
+    1100
    ],
    "deps": [
     "dash",
     "transient"
    ],
-   "commit": "12258f02d7c526bc1c91afddbce165f78c3e8a7a",
-   "sha256": "1g863m2h3xss2aq3xqvh271rjrgzdld7p3qhglc6xz1qn6pvv41g"
+   "commit": "bc8b92a77dc40c93a5fdf6639f367d814339bbad",
+   "sha256": "195b9xnlmnlnnl84app8kqbacvlxfxr3li393p43wp5inqsajg2h"
   },
   "stable": {
    "version": [
     1,
-    11,
-    1
+    12,
+    0
    ],
    "deps": [
     "dash",
     "transient"
    ],
-   "commit": "12258f02d7c526bc1c91afddbce165f78c3e8a7a",
-   "sha256": "1g863m2h3xss2aq3xqvh271rjrgzdld7p3qhglc6xz1qn6pvv41g"
+   "commit": "bc8b92a77dc40c93a5fdf6639f367d814339bbad",
+   "sha256": "195b9xnlmnlnnl84app8kqbacvlxfxr3li393p43wp5inqsajg2h"
   }
  },
  {
@@ -68412,11 +68564,11 @@
   "repo": "bricka/emacs-kotlin-ts-mode",
   "unstable": {
    "version": [
-    20240417,
-    838
+    20240513,
+    1429
    ],
-   "commit": "a8747af6465b384941ce8f199bdfecb3d0c09812",
-   "sha256": "044i01kvpilvj6f8h4xn9a0kkpbmq724adphj51pvibv736w4k4s"
+   "commit": "786b7eacb6c10b7a4e0c0537264264f299632679",
+   "sha256": "02b854m19f86l5g2j3gc7gb2w9834fm7c6rhjkrc5blwj8i3janm"
   }
  },
  {
@@ -68840,8 +68992,8 @@
   "repo": "isamert/lab.el",
   "unstable": {
    "version": [
-    20240404,
-    736
+    20240517,
+    1837
    ],
    "deps": [
     "async-await",
@@ -68852,8 +69004,8 @@
     "request",
     "s"
    ],
-   "commit": "ca6a02c567adb562305d0887140d631e2d6f01f6",
-   "sha256": "02q2w84rpq0cl7crl6k875wj5g1gq5w1kqlr2whq3jwv1ajfcyg1"
+   "commit": "fec1d5ad4e09c89c7260dc440f2dce6692b1ec0f",
+   "sha256": "0gfkxxdqli97x81pcxj1p3w1z6q5w7sn7q636hycrj97v3rdv8br"
   },
   "stable": {
    "version": [
@@ -69133,11 +69285,11 @@
   "repo": "lassik/emacs-language-id",
   "unstable": {
    "version": [
-    20240325,
-    1223
+    20240510,
+    1342
    ],
-   "commit": "c05a566ab5c938b31873b24d698c3d9ff0948ea9",
-   "sha256": "01rhxsbsn4ilkc9z2556lmpzvnx2d2a2xzmxq3932sd55al98whg"
+   "commit": "435114f208b97e97aa1576ef1966a33d90cad01b",
+   "sha256": "1gwdiyvzm3dz1dj5l763f1v68bb15g5qfmy5b9p58695l5hi135z"
   },
   "stable": {
    "version": [
@@ -70403,11 +70555,11 @@
   "repo": "merrickluo/liberime",
   "unstable": {
    "version": [
-    20230113,
-    556
+    20240515,
+    255
    ],
-   "commit": "cc9eb9812fd6f68e78ed6a0c0a85da7a18765753",
-   "sha256": "11c2wj00wwbdxqkzl60sd77cp43rja5v8hrvhrvhg75v62kawva2"
+   "commit": "c5839f541763f661a4d46784f3f14adad28ee2b0",
+   "sha256": "1h4q0nmckfwl2cmp1kaj83ac2lzpdwq7m3r8q722zd05lvnm145v"
   },
   "stable": {
    "version": [
@@ -71347,15 +71499,15 @@
   "repo": "sulami/literate-calc-mode.el",
   "unstable": {
    "version": [
-    20240402,
-    808
+    20240513,
+    1200
    ],
    "deps": [
     "dash",
     "s"
    ],
-   "commit": "ceddadc4f130626d3430fc8c5cfff71628221a60",
-   "sha256": "1chs7kpfwjl65p0m4zlgx3lhsixlis9bg3lilmlhw65436y7nl8s"
+   "commit": "5e8ce01ff3d85ff81f366724330026d68449bc19",
+   "sha256": "1jfd2d2qzk6cprwynmk6v5409hgrgl310zv5vbgapq06j49gzriq"
   }
  },
  {
@@ -71621,11 +71773,11 @@
   "repo": "tarsius/llama",
   "unstable": {
    "version": [
-    20240415,
-    1539
+    20240520,
+    1947
    ],
-   "commit": "40d671b35e51afbc0d690f33c965d322375c4b27",
-   "sha256": "1khnl8z1hf7qrwmxikkdmxhb9fp1ngbr6x3lh2n4nrr5kinmqf3c"
+   "commit": "cea812d16129749deb524771e615a4a831604a83",
+   "sha256": "1wlc1m9w5s03w91i132yzxbd93pdfnxsf0pq56pfsl6xvrqbj82k"
   },
   "stable": {
    "version": [
@@ -71648,14 +71800,14 @@
   "repo": "kurnevsky/llama-cpp.el",
   "unstable": {
    "version": [
-    20231228,
-    2043
+    20240511,
+    1039
    ],
    "deps": [
     "dash"
    ],
-   "commit": "e876c05eca8ffadc39d3c5013c2581f1e9f8f94f",
-   "sha256": "0pxhz02k7kswv37j45rrcssc29xnk3x738p9ysvybldbix5pbq9h"
+   "commit": "5cea3698aa63921b21888f126cae4f3ebc1baa39",
+   "sha256": "05vma524dyn9q4rcvz0fpdji6p8wxjriaga6ay39qxppxg54c1v3"
   }
  },
  {
@@ -72339,8 +72491,8 @@
   "repo": "emacs-lsp/lsp-dart",
   "unstable": {
    "version": [
-    20240401,
-    1646
+    20240520,
+    1834
    ],
    "deps": [
     "dap-mode",
@@ -72352,8 +72504,8 @@
     "lsp-mode",
     "lsp-treemacs"
    ],
-   "commit": "ee476aa9bb891873943bb4f9dc4b729921c2de37",
-   "sha256": "1k5h8x4fk6n71hhi8sc5wqasfkf0887hh787n8xdfmkhxc9gids3"
+   "commit": "1f52e81c9371055ff9188117ace81f009d1c79f2",
+   "sha256": "18wvsbszdxgmjvpj6b32scg0g8lj54cm3fz725zph44brm98v391"
   },
   "stable": {
    "version": [
@@ -72546,8 +72698,8 @@
   "repo": "emacs-lsp/lsp-java",
   "unstable": {
    "version": [
-    20230922,
-    1154
+    20240501,
+    1928
    ],
    "deps": [
     "dap-mode",
@@ -72559,8 +72711,8 @@
     "request",
     "treemacs"
    ],
-   "commit": "449673da7221a30f1b1756cedcc48b9a2b52a51e",
-   "sha256": "1y1dr9nk50ji48z91gd1drfxqkq2189shria83cclm0lna45zfy1"
+   "commit": "37c95ef7e992001250d893277acfccf4af0099b4",
+   "sha256": "172mp8na5w3dc7k6rl543dar85siz15vlhqidinim8hg9c4v6xqz"
   },
   "stable": {
    "version": [
@@ -72735,8 +72887,8 @@
   "repo": "emacs-lsp/lsp-metals",
   "unstable": {
    "version": [
-    20240413,
-    851
+    20240508,
+    627
    ],
    "deps": [
     "dap-mode",
@@ -72749,8 +72901,8 @@
     "scala-mode",
     "treemacs"
    ],
-   "commit": "01060e9df33bb077ba6bb56ccfebc140aef8f8f3",
-   "sha256": "0whjz5vh9xf35nvr5an52d7qsf2ayr2pfwvr37qhz1rjg0rv2kzd"
+   "commit": "fa4072cbe7a7061cdb218b9a3619979f7facba0e",
+   "sha256": "0zwf5x80y54vdpvglnbk2rrwiabl82hiingig70z99a3707lxx3k"
   },
   "stable": {
    "version": [
@@ -72780,8 +72932,8 @@
   "repo": "emacs-lsp/lsp-mode",
   "unstable": {
    "version": [
-    20240427,
-    2141
+    20240514,
+    1430
    ],
    "deps": [
     "dash",
@@ -72792,8 +72944,8 @@
     "markdown-mode",
     "spinner"
    ],
-   "commit": "32bf5aa458f2bafb318a34bed64cb3f681aa0b51",
-   "sha256": "1a1g0b4yrwqqj8kpvmpqsjdrshk1kyhy54d9yhpfj4f4gghmay2f"
+   "commit": "62e1f68c1f2363f7ebe8f1c2762e472f3b5de46a",
+   "sha256": "17r4jg0i9df74bbphi4809l3q3mqy462syw5msf0sjv7k0f5fml0"
   },
   "stable": {
    "version": [
@@ -73205,16 +73357,16 @@
   "repo": "emacs-lsp/lsp-ui",
   "unstable": {
    "version": [
-    20240424,
-    412
+    20240514,
+    1943
    ],
    "deps": [
     "dash",
     "lsp-mode",
     "markdown-mode"
    ],
-   "commit": "a59fb5d02eaa97908a06cfc07156de73458c8ae8",
-   "sha256": "1fy172s224ddpdilqflbd3dhs3s6xb2gash6a5svw3lp92mwdnl9"
+   "commit": "00f1fecdfb41c30428734cf27e492f26f46627fb",
+   "sha256": "1zpmszary67g9wvkjrm1i7ilcmmdbbzp7liq47xii4k78y9dj55l"
   },
   "stable": {
    "version": [
@@ -73605,14 +73757,15 @@
   "repo": "emacsorphanage/macrostep",
   "unstable": {
    "version": [
-    20240328,
-    2134
+    20240513,
+    2203
    ],
    "deps": [
-    "cl-lib"
+    "cl-lib",
+    "compat"
    ],
-   "commit": "e28d0a028f702d2dbf9a33ab691c3459268ed35e",
-   "sha256": "0gw2429mgivvjjpx149m26i6yiayhs9s9g8lx5r64kccdci1xrl1"
+   "commit": "4939d88779761e8b5461b4cf73f86600172987db",
+   "sha256": "03lriwibv3r8prkg8rih8p80ykxqg9hvax88bg64mdx2jv9l4ygb"
   },
   "stable": {
    "version": [
@@ -73735,14 +73888,14 @@
   "repo": "roadrunner1776/magik",
   "unstable": {
    "version": [
-    20240409,
-    1410
+    20240521,
+    1419
    ],
    "deps": [
     "compat"
    ],
-   "commit": "7540f14d3d62856313b5cbebefcfd813784ee77b",
-   "sha256": "1rbidw6scix7wcx09wfjhnln1ar5b9f1bdj9k7mfjcvb46mmaczq"
+   "commit": "51ec2d21e4d68fc549d2022f86a882e090541ec3",
+   "sha256": "1mxpwx1n537gjhb09h8d8mnf8ra5qlcnn13260447xk7z620sh8l"
   },
   "stable": {
    "version": [
@@ -73765,8 +73918,8 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20240426,
-    2118
+    20240522,
+    204
    ],
    "deps": [
     "compat",
@@ -73777,8 +73930,8 @@
     "transient",
     "with-editor"
    ],
-   "commit": "49ba535f526266b69fcaf7442acfa59ad8473caf",
-   "sha256": "0mcy3sndpajhg95ivr8cl5jsk7pnfc4zhjwyjxsj6yqqc77rw92h"
+   "commit": "f9268a959828d0c6ab26171dd2fb1ffc55e5ae70",
+   "sha256": "1xghq21qqjb2b31i75rd7j0h4fk7242vhbq976q1hls5j7a7x2mr"
   },
   "stable": {
    "version": [
@@ -73887,6 +74040,40 @@
   }
  },
  {
+  "ename": "magit-file-icons",
+  "commit": "d3d921177674e531d53df5b6205ea6a426491186",
+  "sha256": "0qcw8mr78mc7bpyzxcix23cvk89fkd8f9ykj7qaxixgizfcmgyhj",
+  "fetcher": "github",
+  "repo": "gekoke/magit-file-icons",
+  "unstable": {
+   "version": [
+    20240520,
+    216
+   ],
+   "deps": [
+    "el-patch",
+    "magit",
+    "nerd-icons"
+   ],
+   "commit": "d85fad81e74a9b6ce9fd7ab341f265d5a181d2a8",
+   "sha256": "1q03a4zzb2nvxgm84jj3wm4067hp2n4894xmxhc98w981vli41qm"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    2
+   ],
+   "deps": [
+    "el-patch",
+    "magit",
+    "nerd-icons"
+   ],
+   "commit": "33458112ae3701a82a02a4b88dd52baef48ababe",
+   "sha256": "1whx00jp2rgad2f3zir7qmhjpspsx6zs2hk8wlkv4hlsv9s1knpa"
+  }
+ },
+ {
   "ename": "magit-filenotify",
   "commit": "ca5541d2ce3553e9ade2c1ec1c0d78103dfd0c4d",
   "sha256": "1ihk5yi6psqkccpi2bq2h70kn7k874zl7wcinjaq21lirk4z7bvn",
@@ -73955,15 +74142,15 @@
   "repo": "emacsorphanage/magit-gerrit",
   "unstable": {
    "version": [
-    20231002,
-    1538
+    20240514,
+    1139
    ],
    "deps": [
     "magit",
     "transient"
    ],
-   "commit": "9b6c476a4a5e715d68081dda45312f7e2bedd484",
-   "sha256": "0gs6zhgywjikxr1lkbbih1ayxl4i4w82vsfg0yqsj6cdbi6r109c"
+   "commit": "46fe81c76fd2d3e5e97207cd1d951f22ecb16573",
+   "sha256": "16xb13mamx0rnlsxg4xs0nc1xif59rw3xa22y7fz4897cjyrlp84"
   },
   "stable": {
    "version": [
@@ -74288,15 +74475,15 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20240426,
-    1325
+    20240508,
+    2349
    ],
    "deps": [
     "compat",
     "dash"
    ],
-   "commit": "fef45b274ecb4dc0448bd34dac26f7eaff621e59",
-   "sha256": "1mh6lj5w52id5v7bl0j5789cbg5kirz1r76g5xrby6grk3zln942"
+   "commit": "855d924969eb6231d62ab446f727c9f7ad5c4913",
+   "sha256": "0x13wwm6f93qvaqq7qlx97ahvbvgkqf2xdq7vjn6wm9h2mdkw4hh"
   },
   "stable": {
    "version": [
@@ -74428,8 +74615,8 @@
   "repo": "alphapapa/magit-todos",
   "unstable": {
    "version": [
-    20240421,
-    1131
+    20240519,
+    247
    ],
    "deps": [
     "async",
@@ -74441,8 +74628,8 @@
     "s",
     "transient"
    ],
-   "commit": "f73921e484dbae056e84080c743dffd241cb6bf3",
-   "sha256": "0axy2pnvs7n091cfvsr54a4px5vxj5pbi0lzqak3n4zpzw0vdf0r"
+   "commit": "501c8db90ab59f8b619618b9d10db2a32a113727",
+   "sha256": "19p54cnh105k06d63avbqwq8bbnk4hl5ff5vgq3lcx005qvmpc43"
   },
   "stable": {
    "version": [
@@ -75258,11 +75445,11 @@
   "repo": "jrblevin/markdown-mode",
   "unstable": {
    "version": [
-    20240318,
-    1307
+    20240501,
+    1057
    ],
-   "commit": "fd6c5508f979ab526e024a591eaec963712cb211",
-   "sha256": "15vip2y7lgypnipyabrq1qlqwg6s3365gsfij3bipxbnx2p9n1p1"
+   "commit": "0cdebc833ed9b98baf9f260ed12b1e36b0ca0e89",
+   "sha256": "09v1vkj02l58kz74rqh3vdfy75gi48pvcaz99k9i54wncy61bv5j"
   },
   "stable": {
    "version": [
@@ -75603,28 +75790,28 @@
   "repo": "martianh/mastodon.el",
   "unstable": {
    "version": [
-    20240327,
-    1353
+    20240521,
+    1721
    ],
    "deps": [
     "persist",
     "request"
    ],
-   "commit": "d54aa9aa3e4276b9519ff9123e9dc0c123d9dd3b",
-   "sha256": "096zsjlqx2cv4zq607f9n7mr60d5avhfczf3nxsa8wkjsj97qrlh"
+   "commit": "49def07b3d9b6f0718ef9402a3808ca01557245e",
+   "sha256": "158a5hqhmz1dvdg7rcrdikbsqli8gc1kwks6gvbji2qb99zcd8x6"
   },
   "stable": {
    "version": [
     1,
     0,
-    19
+    21
    ],
    "deps": [
     "persist",
     "request"
    ],
-   "commit": "d54aa9aa3e4276b9519ff9123e9dc0c123d9dd3b",
-   "sha256": "096zsjlqx2cv4zq607f9n7mr60d5avhfczf3nxsa8wkjsj97qrlh"
+   "commit": "49def07b3d9b6f0718ef9402a3808ca01557245e",
+   "sha256": "158a5hqhmz1dvdg7rcrdikbsqli8gc1kwks6gvbji2qb99zcd8x6"
   }
  },
  {
@@ -75658,16 +75845,16 @@
   "repo": "matsievskiysv/math-preview",
   "unstable": {
    "version": [
-    20230425,
-    1820
+    20240519,
+    740
    ],
    "deps": [
     "dash",
     "json",
     "s"
    ],
-   "commit": "620de35fc8cf940eba5a567767eac2288708d8cb",
-   "sha256": "0ni08900p0pbajw143iw0b7a62qiqcm9b6jy7pqgpn437vydjx1z"
+   "commit": "7c12235c7f8bb1af0e712a8bfa77f1f2635d964a",
+   "sha256": "0ia9ca9nlq7wjzwk7h1q0kw00avifmc86v0yimn04p21zv3bg45n"
   },
   "stable": {
    "version": [
@@ -75762,11 +75949,11 @@
   "url": "https://git.code.sf.net/p/matlab-emacs/src",
   "unstable": {
    "version": [
-    20240418,
-    1949
+    20240521,
+    1748
    ],
-   "commit": "005954382db3df9c41585701467cedffe48b2ff4",
-   "sha256": "018m24csl0d3p8987m7dhb2d3wjkb4r9agxfww31gaszc4bdaar5"
+   "commit": "a78b368387c85437f8de187acf0a2b1cbeeacc3f",
+   "sha256": "1aw1xm0dawppzr8vjnry6rigvxx204h1msrxjxsvnljr4xr9i40h"
   }
  },
  {
@@ -76247,11 +76434,11 @@
   "repo": "gvol/emacs-memento-mori",
   "unstable": {
    "version": [
-    20240407,
-    1417
+    20240429,
+    327
    ],
-   "commit": "7cc2e89511c1c131789737b4c9daeee0147916f0",
-   "sha256": "1chf40k3gf1gzqlcivl8ry6nwaps7b9cbkmy10pviaslwijifyzh"
+   "commit": "424dc591b3dd8fe7f2f3ddef1baa647aa2b0cc7e",
+   "sha256": "1drsc9akr48q5bxrw43fs2lqjp5cdf2nxvng0nvr5v4xvckd1a9x"
   },
   "stable": {
    "version": [
@@ -76830,11 +77017,11 @@
   "repo": "kazu-yamamoto/Mew",
   "unstable": {
    "version": [
-    20240427,
-    946
+    20240515,
+    152
    ],
-   "commit": "82c531e328ca1073e4d4115ca844ba9f0859c4a1",
-   "sha256": "0xbbdz6yac4qkz1w0ljip9g7knlpp8mhsi6y9pczww1hg05kqlcb"
+   "commit": "6eedf619d726aa11f23962e406331b7aba8ac82c",
+   "sha256": "0rp1zfrh6mdv107fz2d75cgayi18397k53dy40d6jxszbcq32x7v"
   },
   "stable": {
    "version": [
@@ -77105,6 +77292,35 @@
   }
  },
  {
+  "ename": "mindstream",
+  "commit": "0381cf3e8bfc3209686e9fd827adfbf3bcf624a5",
+  "sha256": "1ayy8bmj9nk98bpgmmskpj76b5dmdifd2qmkn88mjiq2ahkxjj17",
+  "fetcher": "github",
+  "repo": "countvajhula/mindstream",
+  "unstable": {
+   "version": [
+    20240519,
+    1715
+   ],
+   "deps": [
+    "magit"
+   ],
+   "commit": "ae8b10b077d71de5e8ad966e03527e8d55b3e18d",
+   "sha256": "17f68h5ibn3klcfj570fprx7n9q59x8wjwdbzzhry2c7g9ay94nl"
+  },
+  "stable": {
+   "version": [
+    1,
+    0
+   ],
+   "deps": [
+    "magit"
+   ],
+   "commit": "f95e7fc2c6d529533709ae63a55e8ace9287ec0b",
+   "sha256": "08m5qlfbl0ilf0z0s6n3lgmjzwc5gh650jmxgl7a6rlzgw3rrh6a"
+  }
+ },
+ {
   "ename": "minesweeper",
   "commit": "d3828ad7599d13728b5571b882344c3ada434b85",
   "sha256": "061l7xh7vjg5krz5lskj2jvrnsv2qq4bwg0qkkysmy4zp9f3m5iq",
@@ -77145,26 +77361,28 @@
   "repo": "liuyinz/mini-echo.el",
   "unstable": {
    "version": [
-    20240418,
-    1047
+    20240518,
+    849
    ],
    "deps": [
+    "dash",
     "hide-mode-line"
    ],
-   "commit": "adeb402f5e508424960b6165d596b25fd6a6d756",
-   "sha256": "0jcac2p3ml17q6fsf8jaxc0nx17jjj3z1zvcsqv0k2r53ya8k41x"
+   "commit": "4e2918225bea7fa7d232260bd0b2de48df68c6f8",
+   "sha256": "1bccmx0sd7qjfgd1p8yskw12phxc89arbiz064xk9jcl1cxaz57x"
   },
   "stable": {
    "version": [
     0,
-    8,
-    0
+    9,
+    2
    ],
    "deps": [
+    "dash",
     "hide-mode-line"
    ],
-   "commit": "9e01966d56514aa1fe9b7cc281da390ab33532d1",
-   "sha256": "0q4hvbypnjg5q1szwki2md45r5kkdxrr4zxqh57y7d53idjzhpnf"
+   "commit": "f0feae3bbd0becd79ea086d4a1b811162470b162",
+   "sha256": "1wz5ssp480zlfxdvgywxx72gkf7mldrd4gxah18ys09yycawa0hi"
   }
  },
  {
@@ -77535,6 +77753,38 @@
   }
  },
  {
+  "ename": "mise",
+  "commit": "46ca1d980230fdc13454d9011b5e6c55f047027c",
+  "sha256": "00haka75iildiq554pdq7zsn5pw88xw0glaa05dvahy3n3p5k61b",
+  "fetcher": "github",
+  "repo": "liuyinz/mise.el",
+  "unstable": {
+   "version": [
+    20240514,
+    452
+   ],
+   "deps": [
+    "dash",
+    "inheritenv"
+   ],
+   "commit": "cb19405eba3cfd679a5e3ac75c8c4c1146b16015",
+   "sha256": "0h0xkps9m1g7q21hij23rli7jq1ygzc74h8fn9am9rmj4dgy5dkg"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    0
+   ],
+   "deps": [
+    "dash",
+    "inheritenv"
+   ],
+   "commit": "e2db0d204890721e372ed89deb554d9a75385486",
+   "sha256": "02j067pyqf2xx48qg383wvhk267pj9wd6ckv1azsa20cm713bph4"
+  }
+ },
+ {
   "ename": "mistty",
   "commit": "8a66484b8aff8298222e70466f8f9b09b31bc598",
   "sha256": "1xymccwmffccf5b5a29mmhwymmllmkd4nbmxk52g7c81xrwnrcnb",
@@ -77542,11 +77792,11 @@
   "repo": "szermatt/mistty",
   "unstable": {
    "version": [
-    20231122,
-    2029
+    20240429,
+    1645
    ],
-   "commit": "d51d6d995db42377d225169ec8ad200cbbfca401",
-   "sha256": "0534s8d565y9sgqxf531xnj4lc67wsixpgg5x630rxaf5b8dwzcy"
+   "commit": "bf68d5b52d9dfae68c83340cabea2681057e82ea",
+   "sha256": "0a95xjlhb1963cqqxcikf4k31mxkbbksnfbnnmrc5zl63b9ykpww"
   },
   "stable": {
    "version": [
@@ -77864,20 +78114,20 @@
   "repo": "DCsunset/modaled",
   "unstable": {
    "version": [
-    20240330,
-    1956
+    20240511,
+    1540
    ],
-   "commit": "01ef8befac15f77f1b9129bade37e78b6bf7d612",
-   "sha256": "1nza8pff0adj6sp20wr3yb8a7jdlklwk49qwamb09pal3lidq7pf"
+   "commit": "c7259e3e91fc8de4f17b2de9c83a12e855ae7932",
+   "sha256": "1vqfz3dcwlcmla8smwwn9r3kp859d10946zgab9y2x8zzidz7702"
   },
   "stable": {
    "version": [
     0,
     8,
-    3
+    4
    ],
-   "commit": "01ef8befac15f77f1b9129bade37e78b6bf7d612",
-   "sha256": "1nza8pff0adj6sp20wr3yb8a7jdlklwk49qwamb09pal3lidq7pf"
+   "commit": "c7259e3e91fc8de4f17b2de9c83a12e855ae7932",
+   "sha256": "1vqfz3dcwlcmla8smwwn9r3kp859d10946zgab9y2x8zzidz7702"
   }
  },
  {
@@ -78139,11 +78389,11 @@
   "repo": "protesilaos/modus-themes",
   "unstable": {
    "version": [
-    20240427,
-    843
+    20240505,
+    331
    ],
-   "commit": "56bd9c8f32b4179e4207f553f8656934c0076a85",
-   "sha256": "0id7b9gl1cl2w2q921fx1gvmh9dsvll9r93k0yszn6v3hf98sjpm"
+   "commit": "d2762db19ed48bd0cbba61c41940be479760a35e",
+   "sha256": "1y8z4yfnqic9gg2nm0rqldhwkfz134zxv1x57x3jh9k04p1nblc1"
   },
   "stable": {
    "version": [
@@ -78163,11 +78413,11 @@
   "repo": "kuanyui/moe-theme.el",
   "unstable": {
    "version": [
-    20240417,
-    1111
+    20240430,
+    1601
    ],
-   "commit": "0fb1274cb29863597e627757230feedf7d90482c",
-   "sha256": "015wi8nx18705yqrkgrvk52rsb2nyv91c04wyx6imwfvfp2vh52d"
+   "commit": "6df0d99a1a2006b218282f15d84609b88478ca7a",
+   "sha256": "1rshp0n9nhnapp2glds6zrnp2l4nv93s0kxb8iqjr5n6a9x6m68y"
   },
   "stable": {
    "version": [
@@ -78501,14 +78751,14 @@
   "repo": "tarsius/moody",
   "unstable": {
    "version": [
-    20240415,
-    1545
+    20240520,
+    1715
    ],
    "deps": [
     "compat"
    ],
-   "commit": "28abaf874b87b6d6c09ef1ab63856de4ed743974",
-   "sha256": "033wg9qfw2rklinvii6dqpqcdg0agxsn2njq3ywq0xwwldhmms6p"
+   "commit": "1faf8c16073bb62ade53906eef549ed8ac79ae70",
+   "sha256": "1jbly23pr5lhgd9i6c0619v9pfrppk6614czf0wvz8ibkgdwsk2c"
   },
   "stable": {
    "version": [
@@ -79433,20 +79683,20 @@
   "repo": "mkcms/mu4e-overview",
   "unstable": {
    "version": [
-    20240330,
-    1441
+    20240521,
+    1445
    ],
-   "commit": "758ea4b3945fa377ae33e45f8213280d38e0551d",
-   "sha256": "0qdxsfsambbrb3dbch4pyjm9k59cbjlzkx9075aipdi8nl0nvygf"
+   "commit": "51327c894721680633292a43a4e610542b4eceb3",
+   "sha256": "1pxapgihcf5c8ycmqzd2gysm0v6r0pw41kbym4xdwyqr6alhz94a"
   },
   "stable": {
    "version": [
     0,
     4,
-    0
+    1
    ],
-   "commit": "758ea4b3945fa377ae33e45f8213280d38e0551d",
-   "sha256": "0qdxsfsambbrb3dbch4pyjm9k59cbjlzkx9075aipdi8nl0nvygf"
+   "commit": "11e16c36aaa14da777a068761055b57c49168f1e",
+   "sha256": "0hi2waz0bwzsq3sk6x7zdx7qn3dns82rphpnfd9r7cqyqjlmzy74"
   }
  },
  {
@@ -79555,8 +79805,8 @@
   "repo": "mihaiolteanu/mugur",
   "unstable": {
    "version": [
-    20231024,
-    755
+    20240517,
+    504
    ],
    "deps": [
     "anaphora",
@@ -79564,8 +79814,8 @@
     "dash",
     "s"
    ],
-   "commit": "9d55e6eac893abfc0a2622d6ac2a791ce5b23fbb",
-   "sha256": "1571bxz6jjdpxdcmv3aisd87pwrr46z0pljql45n9lsvs01liyr3"
+   "commit": "7fe7f6a9dd80389fcd9754e9191192e697a88882",
+   "sha256": "010jns9id9gxggxgd2d3wpjag1nf8ahqmq57a3mdmfrr1lnvvxzi"
   },
   "stable": {
    "version": [
@@ -81037,11 +81287,11 @@
   "repo": "rainstormstudio/nerd-icons.el",
   "unstable": {
    "version": [
-    20240412,
-    1831
+    20240520,
+    1050
    ],
-   "commit": "fb395120e9de33b276d16caaccaefd98d4340b92",
-   "sha256": "0iyjd18b3v730ixz5ayr72m4z8p6vv5m0nplpndl0s7a7ypdm9l9"
+   "commit": "5ed32f43f2e92ac2600d0ff823ec75e4476cc53e",
+   "sha256": "0x0zipfdm6w861kmw3jjjsc1jqxdw0ggpylvwxbgbspfngl83awj"
   },
   "stable": {
    "version": [
@@ -81512,11 +81762,11 @@
   "repo": "nickel-lang/nickel-mode",
   "unstable": {
    "version": [
-    20230707,
-    1228
+    20240514,
+    1236
    ],
-   "commit": "8b7828892341bbca789723d487546905ca443dc3",
-   "sha256": "06327va6dybljw4qvz7p30qndnwl18nblai04y689p8x4a69kgxq"
+   "commit": "71441281e66500e978e10eb44d58e33a28f55b4e",
+   "sha256": "02rnh6fjvhn5jkridax4x4fmvv74hm1d183s5g8avpjzmyisgmyc"
   }
  },
  {
@@ -81682,10 +81932,10 @@
    "version": [
     1,
     12,
-    0
+    1
    ],
-   "commit": "65d0dfcbbea6b8ca7d8a3a0f673ecb522379e43c",
-   "sha256": "0jlqqbhmzhlwfhf1axdi3qm6gd1l66s66dw9cn83h9akgvpjf0vv"
+   "commit": "2daa09ba270b0a43e1929d29b073348aa985dfaa",
+   "sha256": "00033jmh30z2vjxs40hjfnn74inlfwzn412l26wi2nzg63wnwgj5"
   }
  },
  {
@@ -81840,20 +82090,20 @@
   "repo": "nix-community/nix-ts-mode",
   "unstable": {
    "version": [
-    20231107,
-    1639
+    20240514,
+    1605
    ],
-   "commit": "2dddc6e9ca33be211675afca3896fd661fc38a0c",
-   "sha256": "1a7l7r44v1ysz63k6dzn8sqbn90yaqp36crjzl3q56j8lx5f8rih"
+   "commit": "49d890e86a4597911366208930af6457ce1d46e7",
+   "sha256": "1s2kcm8rg35cl3vgbqny0ac2l00nqj5xdpll4z0is7zbhib74ll5"
   },
   "stable": {
    "version": [
     0,
     1,
-    2
+    4
    ],
-   "commit": "670023ec3d4e2f667a387a27990b4879e06ef60b",
-   "sha256": "0rwimbq6mp3z2xhhp535ysq44rcljc8swvaxsgfr5zvidpl2xh43"
+   "commit": "49d890e86a4597911366208930af6457ce1d46e7",
+   "sha256": "1s2kcm8rg35cl3vgbqny0ac2l00nqj5xdpll4z0is7zbhib74ll5"
   }
  },
  {
@@ -83020,10 +83270,10 @@
  },
  {
   "ename": "number",
-  "commit": "49d56b297ab729695249143dd65d3c67543cfcc6",
-  "sha256": "1nwcdv5ibirxx3sqadh6mnpj40ni3wna7wnjh343mx38dk2dzncf",
+  "commit": "a84d58f0dfdf5f58205fb79d6d52d00637f443aa",
+  "sha256": "1qf0v4s8jgpk2biqhscnxvn24hwh6pd1aw9k90jmgn7rd5nb979v",
   "fetcher": "github",
-  "repo": "chrisdone/number",
+  "repo": "emacsattic/number",
   "unstable": {
    "version": [
     20170901,
@@ -83315,6 +83565,24 @@
   }
  },
  {
+  "ename": "ob-acl2",
+  "commit": "7055689bfc0c4cbacbb69d801cb30b12d5fd3f27",
+  "sha256": "1fwgry16y55xsz99pp5yxv1lbjfcpgp184kwsnm2k7bvvmnh4yqz",
+  "fetcher": "github",
+  "repo": "tani/ob-acl2",
+  "unstable": {
+   "version": [
+    20240505,
+    1844
+   ],
+   "deps": [
+    "org"
+   ],
+   "commit": "db6b274de3cd16e17b5b525c94bf3ad9cc279970",
+   "sha256": "1995n8ha605sq60dml8m0lcrgv2gqbdhd8hihgrxs2wp18y7nhqx"
+  }
+ },
+ {
   "ename": "ob-ada-spark",
   "commit": "4f04564c778f9d404f50381c895a75f22361dae3",
   "sha256": "0iyyhq8xvjs3a263xdmnba7gx8lzwgqbsqk64dcr2bcrpqiia9f8",
@@ -84087,26 +84355,27 @@
   "repo": "shg/ob-julia-vterm.el",
   "unstable": {
    "version": [
-    20230815,
-    2332
+    20240514,
+    328
    ],
    "deps": [
     "julia-vterm",
     "queue"
    ],
-   "commit": "22f8825185231654397ae31e2a586ec39f98ab6f",
-   "sha256": "1pvb602lrgrncbzqly9ga0rzxvlypysqzp2njf808jipdd9b2bja"
+   "commit": "e1aae4f54cd06f33c63a16d88df4856947f46201",
+   "sha256": "04hknkcqkfn5bfbxx9mx1naczjxnk1aalhyqvra6m7p1n832mvqm"
   },
   "stable": {
    "version": [
     0,
-    2
+    5
    ],
    "deps": [
-    "julia-vterm"
+    "julia-vterm",
+    "queue"
    ],
-   "commit": "5893d75cdb9e687b98b99b3675165f4edf0083a6",
-   "sha256": "12ya7dn7fd0szm6pi68f7h4cyb5cy56cfs43nl9f4v8v2qvlyh5y"
+   "commit": "e1aae4f54cd06f33c63a16d88df4856947f46201",
+   "sha256": "04hknkcqkfn5bfbxx9mx1naczjxnk1aalhyqvra6m7p1n832mvqm"
   }
  },
  {
@@ -85182,26 +85451,26 @@
   "repo": "oer/oer-reveal",
   "unstable": {
    "version": [
-    20240414,
-    1312
+    20240513,
+    956
    ],
    "deps": [
     "org-re-reveal"
    ],
-   "commit": "4a8000a196e663be9fec61d0e6fed27814945086",
-   "sha256": "1rcydba1si626bqdh6j8537lnivyvr201dw7dmrxvkqpk9q6v1xy"
+   "commit": "08c44d4fd212a7433ad2f863299b5c1bdd87e23f",
+   "sha256": "19c7qx8lyiysm59fnlvzgj53phs8x0k36wwyvm845h42azrhha9k"
   },
   "stable": {
    "version": [
     4,
     24,
-    3
+    7
    ],
    "deps": [
     "org-re-reveal"
    ],
-   "commit": "4a8000a196e663be9fec61d0e6fed27814945086",
-   "sha256": "1rcydba1si626bqdh6j8537lnivyvr201dw7dmrxvkqpk9q6v1xy"
+   "commit": "08c44d4fd212a7433ad2f863299b5c1bdd87e23f",
+   "sha256": "19c7qx8lyiysm59fnlvzgj53phs8x0k36wwyvm845h42azrhha9k"
   }
  },
  {
@@ -85252,16 +85521,16 @@
   "repo": "tarsius/ol-notmuch",
   "unstable": {
    "version": [
-    20240415,
-    1546
+    20240503,
+    1711
    ],
    "deps": [
     "compat",
     "notmuch",
     "org"
    ],
-   "commit": "05f3fc9ea77d32892726c94cd7a876733890da91",
-   "sha256": "1jbwi4vpvcl7zzbx5rjmpmxp1mh1lxbprgxryqmj5mync0gx3a0k"
+   "commit": "f176ad73496ee086688ec5eeafcfff9372a833bc",
+   "sha256": "0gychpz53nhrrbs9w67400hbpyxp3q5jmhpj84fnqhnmf9q2dmnz"
   },
   "stable": {
    "version": [
@@ -85358,11 +85627,11 @@
   "repo": "rnkn/olivetti",
   "unstable": {
    "version": [
-    20231104,
-    538
+    20240519,
+    914
    ],
-   "commit": "1f8b3d5cb155f7497083001037a09a972befab21",
-   "sha256": "1v5f0glp0ggmmzzhaxlijc58w4ip1nlik9lx7rcl6symsqcmqmq1"
+   "commit": "5a7bd951d6135ff7ee3b45086308c14abce0936f",
+   "sha256": "1hww0900rfvfj43bn86ybzyc745js1xabp2whqd6dxajiklynky1"
   },
   "stable": {
    "version": [
@@ -85970,20 +86239,20 @@
   "repo": "danielfleischer/opensub",
   "unstable": {
    "version": [
-    20240405,
-    750
+    20240501,
+    1946
    ],
-   "commit": "2e3d55fd1ebc909caa81b06f3323d123ec557d03",
-   "sha256": "1bw3sp5i9zanrkgkwd69rc11ay3pmk5x42ifgyvg08ql7zlghxx2"
+   "commit": "22cc8ef1e119c3cc5f605ca5be4cf680745c503a",
+   "sha256": "1v7cn4j43xzdwgpn9103bv057n5pmd9yrdvciv3lwz85dqimlp9a"
   },
   "stable": {
    "version": [
     0,
-    2,
+    3,
     0
    ],
-   "commit": "2e3d55fd1ebc909caa81b06f3323d123ec557d03",
-   "sha256": "1bw3sp5i9zanrkgkwd69rc11ay3pmk5x42ifgyvg08ql7zlghxx2"
+   "commit": "22cc8ef1e119c3cc5f605ca5be4cf680745c503a",
+   "sha256": "1v7cn4j43xzdwgpn9103bv057n5pmd9yrdvciv3lwz85dqimlp9a"
   }
  },
  {
@@ -86237,26 +86506,26 @@
   "repo": "rksm/org-ai",
   "unstable": {
    "version": [
-    20240103,
-    235
+    20240517,
+    1114
    ],
    "deps": [
     "websocket"
    ],
-   "commit": "329bebaf90f013a54449806e6e65f2fab04cee1f",
-   "sha256": "104w41syib8dyysf4k551yrrw0s3cfn1w9dk9336zf2cz9n33svx"
+   "commit": "fdcff489ef11bbc4b54c87b34a97bcc02f3994d4",
+   "sha256": "1j6rr8kn10j9wxqwhs4yd9k4fzjf2rz545if23xwqlg6ca39l16x"
   },
   "stable": {
    "version": [
     0,
     4,
-    3
+    7
    ],
    "deps": [
     "websocket"
    ],
-   "commit": "329bebaf90f013a54449806e6e65f2fab04cee1f",
-   "sha256": "104w41syib8dyysf4k551yrrw0s3cfn1w9dk9336zf2cz9n33svx"
+   "commit": "44e1298fd1b6ca9466f13ab6aadb08be6bde0b12",
+   "sha256": "0bag3ysg94l8dbvn7qnpyv2cd9f164aipmvkmxpvrgw4xl41lcqw"
   }
  },
  {
@@ -86629,6 +86898,29 @@
   }
  },
  {
+  "ename": "org-bookmarks",
+  "commit": "f5f6d68cdd49cea0f9baa7457a945df4ca530a8f",
+  "sha256": "1781jkbq16bxgjf86gnaprdpxrmzcqm6b2dc2nza7ycg300md7sg",
+  "fetcher": "git",
+  "url": "https://repo.or.cz/org-bookmarks.git",
+  "unstable": {
+   "version": [
+    20240520,
+    16
+   ],
+   "commit": "774b2cad8b77920e5ea2089d7dd11c8ccab4a471",
+   "sha256": "0z2703qjwbvivpqxqdxjb7rzv3yrcxvzksrpm768wdazvrk7gq9b"
+  },
+  "stable": {
+   "version": [
+    1,
+    1
+   ],
+   "commit": "cdd57bf2aee9a26883312a2c5e48701e4b60802f",
+   "sha256": "04ydqa930b4xkk67i1ql59man08pc9y6l3nx3bpsi6va2djh0zjz"
+  }
+ },
+ {
   "ename": "org-bookmarks-extractor",
   "commit": "75eb7d9f514db21c776f90ac856ea747b1060036",
   "sha256": "1bzwmqm23h8vsp3bskzwg9hzpvqbs4lznqs3wyn9zqxsv9h80fb5",
@@ -87079,14 +87371,14 @@
   "url": "https://repo.or.cz/org-contacts.git",
   "unstable": {
    "version": [
-    20240410,
-    1128
+    20240521,
+    1144
    ],
    "deps": [
     "org"
    ],
-   "commit": "0ff9a6dae6c1b67f0da0c63bc75b8c1063eac85d",
-   "sha256": "00ds6zyraf2nzj73mr3ncq2p9dn1b39cddqwj0fsglk3hlwg7d87"
+   "commit": "722bc2ec91ca66a33f6b57cd02010f4fdbf542a9",
+   "sha256": "0750kckr7qfwnz5c3vr0s0d4nnfx3dshpgj19wh9yijq92v6q6mf"
   }
  },
  {
@@ -88064,16 +88356,16 @@
   "repo": "beacoder/org-ivy-search",
   "unstable": {
    "version": [
-    20231213,
-    857
+    20240430,
+    1713
    ],
    "deps": [
     "beacon",
     "ivy",
     "org"
    ],
-   "commit": "aeff31203c4c407d3f921124b6798ffd04772a11",
-   "sha256": "0rdbka4c0vfnpcvy1s08pk7qk4g9q651wlfhqqv5fmzm7gm9ylrq"
+   "commit": "2ec41a54f3849e783cfb16eddcfd310097ed6d5e",
+   "sha256": "08y2hzx5444cf16q44hyb53zna0yklp7jxjrj63cqvlyjgxx37pz"
   }
  },
  {
@@ -88227,30 +88519,29 @@
   "repo": "gizmomogwai/org-kanban",
   "unstable": {
    "version": [
-    20220723,
-    1216
+    20240430,
+    944
    ],
    "deps": [
     "dash",
-    "org",
     "s"
    ],
-   "commit": "e78deb03880ae89d6bceae6563ef1383526233a1",
-   "sha256": "006y8glnd3h5nmcb0fdq650xnknhi5n74v7adk1maf26r8rpc6vy"
+   "commit": "e316be6a4f64c4869b911d2cbdc4673a0e398a5f",
+   "sha256": "10hczqx620vhf93y61rf4hliqpasrw3r12sxsh6z03x2zv6jhl0s"
   },
   "stable": {
    "version": [
     0,
     6,
-    5
+    6
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "e78deb03880ae89d6bceae6563ef1383526233a1",
-   "sha256": "006y8glnd3h5nmcb0fdq650xnknhi5n74v7adk1maf26r8rpc6vy"
+   "commit": "83d5a657d4c190c62663c9b2357105002795b2e3",
+   "sha256": "1ma1grcwjfkps3chs1f0md33hkkl4bj7s9apws61anr2yfcj5j7k"
   }
  },
  {
@@ -88584,14 +88875,14 @@
   "repo": "minad/org-modern",
   "unstable": {
    "version": [
-    20240428,
-    741
+    20240515,
+    1932
    ],
    "deps": [
     "compat"
    ],
-   "commit": "a06443c1d0251decada41a3bdca30f712cf9a96e",
-   "sha256": "18q7xab693ql68vlpxbn066pn7yshrmmqi6m0r2v4193mhlffflr"
+   "commit": "ea829ce4b3ac035808d411b1a088e0947d75f554",
+   "sha256": "1igv0ph5nk0b6bav5fndgl5jrnf20hml0vkx81ia1amhv7isbiax"
   },
   "stable": {
    "version": [
@@ -88659,11 +88950,11 @@
   "repo": "unhammer/org-mru-clock",
   "unstable": {
    "version": [
-    20230704,
-    850
+    20240522,
+    826
    ],
-   "commit": "66fe744df9100efc4ec68089f7d0ce56a0d38b8b",
-   "sha256": "03xb95qxsr86xv3g0x36dlrm5sidd9fhnfxawjiqkj02bpp9by1n"
+   "commit": "198beb2089ea5e457dd13e8ac64d775eeff8fd89",
+   "sha256": "06v5hjbj3ikch68wnqqcf5h3ihjp5ki5p8z58ql5v5rl3yrgr5pq"
   },
   "stable": {
    "version": [
@@ -88837,15 +89128,15 @@
   "repo": "org-noter/org-noter",
   "unstable": {
    "version": [
-    20240207,
-    2329
+    20240509,
+    1756
    ],
    "deps": [
     "cl-lib",
     "org"
    ],
-   "commit": "9e4f57957b8f54db20a4e13bf8d6b32e004ab3e8",
-   "sha256": "13i6xq1rq2dz9c41h97c69fziqvvjjw8nzh45qc35fyc53zqdphl"
+   "commit": "68646b685a0d8c02419234922a9e2d885d6419df",
+   "sha256": "17kgy2b89cc0v3q49pgrp6x46f2908v6vscxg4pczf6zc83rmwzp"
   }
  },
  {
@@ -89469,15 +89760,15 @@
   "repo": "oer/org-re-reveal",
   "unstable": {
    "version": [
-    20240421,
-    716
+    20240430,
+    1155
    ],
    "deps": [
     "htmlize",
     "org"
    ],
-   "commit": "81cf9dfd3be4480bbaa6d0b6452ea38e8d4e45c0",
-   "sha256": "1qbp198xg8pkd9zdvapq8bdsxilgqqync8m3r1csg8nz8lbpkk1b"
+   "commit": "ceb5420fd5200c3b4165ffc71360d5388dba7d29",
+   "sha256": "1ibdcjma6km680ckygd55plwjn5aagf1bfw1sa4374715k4r7722"
   },
   "stable": {
    "version": [
@@ -89648,8 +89939,8 @@
   "repo": "jkitchin/org-ref",
   "unstable": {
    "version": [
-    20240426,
-    1644
+    20240509,
+    1211
    ],
    "deps": [
     "avy",
@@ -89665,8 +89956,8 @@
     "request",
     "s"
    ],
-   "commit": "feaf7ea25cefaa347e6d593bf3a56064b92f16d6",
-   "sha256": "0ksyrc3wcbw965mpg6avd2qawksbz745lyqh15hlsmx70q0rvs02"
+   "commit": "e435bc60228b985806ea7ea0856ceef1e5262c83",
+   "sha256": "1d13p33aypa3jip4xs5lx6vsimv7xg0m766nm35xapbmjjfihjkv"
   },
   "stable": {
    "version": [
@@ -89882,8 +90173,8 @@
   "repo": "ahmed-shariff/org-roam-ql",
   "unstable": {
    "version": [
-    20240226,
-    1311
+    20240503,
+    1845
    ],
    "deps": [
     "magit-section",
@@ -89892,13 +90183,13 @@
     "s",
     "transient"
    ],
-   "commit": "2bd7c59ce1216b5d76e2a067be2f25807cd4d831",
-   "sha256": "05cjwqqsflw42mgz4ca1l73z35jwv3y1nlba4spwbsmp3p2nigls"
+   "commit": "f628fef081394f159f196f4350132aecb3edb8cc",
+   "sha256": "1ssxvy6y79f035whk9b8jg1vqsy6vymgq9yrzbxv06g5vsggvlh5"
   },
   "stable": {
    "version": [
     0,
-    1
+    2
    ],
    "deps": [
     "magit-section",
@@ -89907,8 +90198,8 @@
     "s",
     "transient"
    ],
-   "commit": "b45260649453779c87688f5dae4041a338c53744",
-   "sha256": "12bdadwwj69bbv676jb706ik9slp7rwb5mhrbsl0plmwq9mv6ii6"
+   "commit": "f628fef081394f159f196f4350132aecb3edb8cc",
+   "sha256": "1ssxvy6y79f035whk9b8jg1vqsy6vymgq9yrzbxv06g5vsggvlh5"
   }
  },
  {
@@ -89919,8 +90210,8 @@
   "repo": "ahmed-shariff/org-roam-ql",
   "unstable": {
    "version": [
-    20230902,
-    613
+    20240503,
+    1845
    ],
    "deps": [
     "org-ql",
@@ -89929,13 +90220,13 @@
     "s",
     "transient"
    ],
-   "commit": "31b7de04430e2e989564cc58d82c2b92f2383ee4",
-   "sha256": "1wj6ark2a4lk2f95y6d7hf3m8calm98ws3mvdm6x459rnfmgx78a"
+   "commit": "f628fef081394f159f196f4350132aecb3edb8cc",
+   "sha256": "1ssxvy6y79f035whk9b8jg1vqsy6vymgq9yrzbxv06g5vsggvlh5"
   },
   "stable": {
    "version": [
     0,
-    1
+    2
    ],
    "deps": [
     "org-ql",
@@ -89944,8 +90235,8 @@
     "s",
     "transient"
    ],
-   "commit": "b45260649453779c87688f5dae4041a338c53744",
-   "sha256": "12bdadwwj69bbv676jb706ik9slp7rwb5mhrbsl0plmwq9mv6ii6"
+   "commit": "f628fef081394f159f196f4350132aecb3edb8cc",
+   "sha256": "1ssxvy6y79f035whk9b8jg1vqsy6vymgq9yrzbxv06g5vsggvlh5"
   }
  },
  {
@@ -89994,11 +90285,11 @@
   "repo": "LionyxML/ros",
   "unstable": {
    "version": [
-    20220320,
-    1705
+    20240512,
+    452
    ],
-   "commit": "70e0f33ee027ca1dce68351ad14a9e47a452fc17",
-   "sha256": "0qjfb2fllzkh1d0jprxdsvg6fcrrhc7wc2lg0kffp5vwmfv7m3db"
+   "commit": "50e16f5031d281458bd574f07aad16c0d1d18663",
+   "sha256": "0i84ik1rwmp77575vk6kq9cmv0cfh9iy43wcmcv5zgvyw57878kl"
   }
  },
  {
@@ -91205,6 +91496,40 @@
   }
  },
  {
+  "ename": "org-web-track",
+  "commit": "25771b652e4d2e73dfe3c50fec31c1f606855692",
+  "sha256": "0h44zagzkr1d857im39q6yn9pxcqc57kkkagn33smxp6xl0hv5gh",
+  "fetcher": "github",
+  "repo": "p-snow/org-web-track",
+  "unstable": {
+   "version": [
+    20240424,
+    756
+   ],
+   "deps": [
+    "enlive",
+    "request"
+   ],
+   "commit": "92e97112aa63cbe14f7727b157eb3c11239bf86c",
+   "sha256": "1ni3l38zh2lzr2ri7vh6khp9c6fn4hafgc6234y707ysniz9dryx"
+  },
+  "stable": {
+   "version": [
+    0,
+    0,
+    1
+   ],
+   "deps": [
+    "enlive",
+    "org",
+    "org-agenda",
+    "request"
+   ],
+   "commit": "dab6a42982ad290564b09d2c1c3dbe3c63295964",
+   "sha256": "1v6zj6hkhn5xjq318vs5yhsdg6mgaw4qjd9fgi2fps7ry79drzf3"
+  }
+ },
+ {
   "ename": "org-wild-notifier",
   "commit": "114552a24f73f13b253e3db4885039b680f6ef33",
   "sha256": "1lmpa614jnkpmfg3m1d2wjn9w0zig3gwd02n3dyjn23n71fiyhkp",
@@ -91763,11 +92088,11 @@
   "repo": "Artawower/orgnote.el",
   "unstable": {
    "version": [
-    20231211,
-    2104
+    20240516,
+    1842
    ],
-   "commit": "0919f9fd05b83870b8a7073eb94f77199e681241",
-   "sha256": "1p23qas9kdycp0l634a74a6h039ccg6f6maqqdi49kp9mwlsd1p9"
+   "commit": "0b6ab72bede2fa757758016ae69db2cc8332fa2d",
+   "sha256": "0g05x2ns54c4vyx1rxspi8x7b1q5z8cib4k7qlm5wnbblccmbvk3"
   },
   "stable": {
    "version": [
@@ -93783,14 +94108,14 @@
   "repo": "purcell/package-lint",
   "unstable": {
    "version": [
-    20240330,
-    1458
+    20240507,
+    1722
    ],
    "deps": [
     "let-alist"
    ],
-   "commit": "17e4ab20dd3e36fa540007b4f4047170c23bdb10",
-   "sha256": "1xr7sq7pvvdw9prf2vds048s5s7fq1s0cxs21sxdc54sszy17nsg"
+   "commit": "cb8b0ddaa14cafe9e4ab9a81b2ad47319fd54f27",
+   "sha256": "0rq1205jnm6rf1zgsccfbf649qdzrlf8rh21qszwb367q9vawfm9"
   },
   "stable": {
    "version": [
@@ -94495,20 +94820,26 @@
   "repo": "justinbarclay/parinfer-rust-mode",
   "unstable": {
    "version": [
-    20240419,
-    415
+    20240506,
+    816
    ],
-   "commit": "823188f3d8d1f00693c3d1d754e58ad95ad0a8dd",
-   "sha256": "0cfn4na6xrapc096yyqs0kw8ni7ls49fds9k92ahlr67919m437v"
+   "deps": [
+    "track-changes"
+   ],
+   "commit": "d3bfb2745cc0858e2741dc2a2f00a86f456656ec",
+   "sha256": "0q60hj9300wiz1kr5x1r3zqhfk97ndyzj2ks49y1r5klmp9w5l9a"
   },
   "stable": {
    "version": [
     0,
-    8,
-    6
+    9,
+    0
+   ],
+   "deps": [
+    "track-changes"
    ],
-   "commit": "39f588e3f58ef1a8a301c031f831b8f74fbb3ec1",
-   "sha256": "1pr4dqzawgqid2aws31zxnlf3363bgnj7djav324b5q2xic5qfy7"
+   "commit": "d3bfb2745cc0858e2741dc2a2f00a86f456656ec",
+   "sha256": "0q60hj9300wiz1kr5x1r3zqhfk97ndyzj2ks49y1r5klmp9w5l9a"
   }
  },
  {
@@ -95395,15 +95726,15 @@
   "repo": "vedang/pdf-tools",
   "unstable": {
    "version": [
-    20240411,
-    1703
+    20240429,
+    407
    ],
    "deps": [
     "let-alist",
     "tablist"
    ],
-   "commit": "94e9f20a78f64a83daf641891923681a52d03919",
-   "sha256": "0gz20v97aaf7mny029xwypnagy6cm20hh4slcsfhcd0s9dvdqfsl"
+   "commit": "30b50544e55b8dbf683c2d932d5c33ac73323a16",
+   "sha256": "1ci9g8aj77a34pgp21d768pglfw1h0dcw68d61xxlzwrrclzfhgx"
   },
   "stable": {
    "version": [
@@ -95427,15 +95758,15 @@
   "repo": "kimim/pdf-view-pagemark",
   "unstable": {
    "version": [
-    20230901,
-    2245
+    20240518,
+    626
    ],
    "deps": [
     "pdf-tools",
     "posframe"
    ],
-   "commit": "5a044bead5855c5fd46a691fee01dc931c959cab",
-   "sha256": "1miwmnrijkmzjrfnigag3dvyp68h8d2516zp1xsp368n392y1gc2"
+   "commit": "a746cf8b86d030ebfc61bb2ff10c0e16b5d195c6",
+   "sha256": "12srnrkscf840g447mdc487ds061rhwv26rd2w9mj57mgxndqxzm"
   }
  },
  {
@@ -95623,11 +95954,11 @@
   "repo": "mpwang/perfect-margin",
   "unstable": {
    "version": [
-    20240111,
-    1158
+    20240512,
+    1120
    ],
-   "commit": "bd15823219c93261536966b4dc65c1ae45a404cf",
-   "sha256": "1z1f9fkzaryqfrgszjd2s16xi2s9mlzdpl9nsb7c049n8xh0611i"
+   "commit": "d2973b0dc44b086353a2920a66fec0fcc1b3b60a",
+   "sha256": "15m60851pzfm4kiql0w1l7h8y5cyhcxmfzan86wswcxhssyi7673"
   }
  },
  {
@@ -96083,19 +96414,25 @@
   "repo": "emarsden/pg-el",
   "unstable": {
    "version": [
-    20240414,
-    1912
+    20240520,
+    1322
    ],
-   "commit": "4b71a337fedf16678e546fa8d1df0ea496762f40",
-   "sha256": "0m1pcabz5mxxxsk0ixw8388q9fkbydkj64mnzn371a9jxdl16b0v"
+   "deps": [
+    "peg"
+   ],
+   "commit": "0f20a0051ab898ea53903284c47a4703555380ca",
+   "sha256": "0ynv154yhb878aqcjg1fv7zfvfrp839n8ys4wqp7gqhdqdwrf68h"
   },
   "stable": {
    "version": [
     0,
-    32
+    34
    ],
-   "commit": "4b71a337fedf16678e546fa8d1df0ea496762f40",
-   "sha256": "0m1pcabz5mxxxsk0ixw8388q9fkbydkj64mnzn371a9jxdl16b0v"
+   "deps": [
+    "peg"
+   ],
+   "commit": "0f20a0051ab898ea53903284c47a4703555380ca",
+   "sha256": "0ynv154yhb878aqcjg1fv7zfvfrp839n8ys4wqp7gqhdqdwrf68h"
   }
  },
  {
@@ -97260,6 +97597,30 @@
   }
  },
  {
+  "ename": "pkl-mode",
+  "commit": "0380195d1ed91de7aad8b1d0620d978eac43e47f",
+  "sha256": "1ffm7p4y353wpfv62zj9rc8n0qgcivm0nivn9qsn138af32hkhh2",
+  "fetcher": "github",
+  "repo": "sin-ack/pkl-mode",
+  "unstable": {
+   "version": [
+    20240422,
+    1529
+   ],
+   "commit": "c57fe374a9c57eee6432d0b449e410ab8dc40a89",
+   "sha256": "0wmaydx4lvanqr27i1bs4lxhxviyvwf9fzih8hra1qm21n54bw11"
+  },
+  "stable": {
+   "version": [
+    1,
+    0,
+    3
+   ],
+   "commit": "c57fe374a9c57eee6432d0b449e410ab8dc40a89",
+   "sha256": "0wmaydx4lvanqr27i1bs4lxhxviyvwf9fzih8hra1qm21n54bw11"
+  }
+ },
+ {
   "ename": "plain-org-wiki",
   "commit": "6b515386c3969b8d79e14b506bc0d9e1ec3097c4",
   "sha256": "0m0mm0ki92561axm89mwc6vcx9rwdb7ai9hlvgnhf40k94s97lz6",
@@ -98045,32 +98406,34 @@
   "repo": "mavit/poly-ansible",
   "unstable": {
    "version": [
-    20240418,
-    1123
+    20240520,
+    1500
    ],
    "deps": [
     "ansible",
     "ansible-doc",
     "jinja2-mode",
-    "polymode"
+    "polymode",
+    "yaml-mode"
    ],
-   "commit": "5c4423671c051db26a48de72773abdf2395bb6aa",
-   "sha256": "0fmbxhn8cbfdad37m1jssm1jblia0b4fzdv89lrz0k5wqyzlkz4g"
+   "commit": "187ad18b7c03eb2b286b4d49eb36572bb7847d57",
+   "sha256": "0980z444419pk7xgic6g5vvi30yibxfimd0rp0zznrshmc9xxra8"
   },
   "stable": {
    "version": [
     0,
     4,
-    0
+    1
    ],
    "deps": [
     "ansible",
     "ansible-doc",
     "jinja2-mode",
-    "polymode"
+    "polymode",
+    "yaml-mode"
    ],
-   "commit": "5c4423671c051db26a48de72773abdf2395bb6aa",
-   "sha256": "0fmbxhn8cbfdad37m1jssm1jblia0b4fzdv89lrz0k5wqyzlkz4g"
+   "commit": "187ad18b7c03eb2b286b4d49eb36572bb7847d57",
+   "sha256": "0980z444419pk7xgic6g5vvi30yibxfimd0rp0zznrshmc9xxra8"
   }
  },
  {
@@ -98826,11 +99189,11 @@
   "repo": "tumashu/posframe",
   "unstable": {
    "version": [
-    20240426,
-    604
+    20240507,
+    148
    ],
-   "commit": "468ac1ab50d7e0feae2c06f12596bbc169f2abe4",
-   "sha256": "10q76iggl3hpdhwzm48kadn129i2567fjnpxid8kxmqffk712k8y"
+   "commit": "f4e9e509ba96ceb3c2b2b054957291607fb52651",
+   "sha256": "0hz7jgpsg3adgwg2qqgd9vy1mhbkr3c9rsy0zx5kmn42npdcf4az"
   },
   "stable": {
    "version": [
@@ -99820,6 +100183,30 @@
   }
  },
  {
+  "ename": "project-butler",
+  "commit": "bb78b814f378e58997f2032fc79a41dfb1442a2c",
+  "sha256": "0jdk3fax67f1prly0g8s3kb4fg1hjqyjcajhalzg1x2cxvwwbz70",
+  "fetcher": "codeberg",
+  "repo": "jabbo/project-butler",
+  "unstable": {
+   "version": [
+    20240520,
+    943
+   ],
+   "commit": "1cf28f5e5e584bac2411662405c96f13d43179f9",
+   "sha256": "129m9mhpfsghk5gwvqjn7zblncj3wd2n3b46mcj0j20qqbkmbblr"
+  },
+  "stable": {
+   "version": [
+    0,
+    3,
+    0
+   ],
+   "commit": "1cf28f5e5e584bac2411662405c96f13d43179f9",
+   "sha256": "129m9mhpfsghk5gwvqjn7zblncj3wd2n3b46mcj0j20qqbkmbblr"
+  }
+ },
+ {
   "ename": "project-explorer",
   "commit": "c2e5d686b8a18c7a17965ff6c5af8f5817b7ab31",
   "sha256": "076lzmyi1n7yrgdgyh9qinq271qk6k64x0msbzarihr3p4psrn8m",
@@ -100291,8 +100678,8 @@
   "repo": "mohkale/projection",
   "unstable": {
    "version": [
-    20240421,
-    1410
+    20240517,
+    2023
    ],
    "deps": [
     "compat",
@@ -100300,8 +100687,8 @@
     "project",
     "s"
    ],
-   "commit": "d0aa74fbe08d7e28b95a0d2006399565f51655ef",
-   "sha256": "1j02vy7s10c8ddhfclj66xfnk34rb5paf2hzjm9lnpn4krif64wm"
+   "commit": "c6df3b19204113642ee14a87598d65c03688f0fa",
+   "sha256": "1f78nq135waqgkr5z9m5gxhplb2spbkap0diykb6h9j8l6g8xij7"
   }
  },
  {
@@ -100331,15 +100718,15 @@
   "repo": "mohkale/projection",
   "unstable": {
    "version": [
-    20240316,
-    2222
+    20240517,
+    2021
    ],
    "deps": [
     "compile-multi",
     "projection"
    ],
-   "commit": "dc489480a6e4be82e570266202144730b3ddde5f",
-   "sha256": "198jlknm3za6n1wp1ns5vbw5554xfrdqdaayhrgqr3f8cil2y0vh"
+   "commit": "68f2387219f2627506f5e345e9be04bd11aa0e65",
+   "sha256": "0785a47xirwk7q2159gmlibg3rkl54z211xykr0bld2jj73g0jyc"
   }
  },
  {
@@ -100525,11 +100912,11 @@
   "repo": "ProofGeneral/PG",
   "unstable": {
    "version": [
-    20240425,
-    939
+    20240513,
+    720
    ],
-   "commit": "6cace58d0d632c4eafa18959319a484fb5c07238",
-   "sha256": "128ixkmfjs4g83r00fvj7wp0azgmmabkhhhv8mqqm7zbj9rii611"
+   "commit": "55e133360c1b66b834f9ae2c4478d2c81b2d33ef",
+   "sha256": "00r3zyrc08j5a5np0xc6jkzvlpjxnax7dg2br8h85hk3fml2gihf"
   },
   "stable": {
    "version": [
@@ -100810,15 +101197,15 @@
   "repo": "thierryvolpiatto/psession",
   "unstable": {
    "version": [
-    20231117,
-    1648
+    20240515,
+    1449
    ],
    "deps": [
     "async",
     "cl-lib"
    ],
-   "commit": "5fdca68ca4bf4fafaf3aa438401ec611bc430782",
-   "sha256": "1696cqk9p06n9b8jqn37qb5y15slvfljsp5yxvahmscfcfnjfqs3"
+   "commit": "5a5b11df882339b4474ab0cc6dd847aaab6a84b6",
+   "sha256": "1cgx1k9vgq8avpjr1ig87wf6mv042504bf770x46dba3zswwy98z"
   },
   "stable": {
    "version": [
@@ -101650,28 +102037,28 @@
   "repo": "tumashu/pyim",
   "unstable": {
    "version": [
-    20230908,
-    39
+    20240508,
+    256
    ],
    "deps": [
     "async",
     "xr"
    ],
-   "commit": "64067b20ce0e964b1342b378180f24a1d4503797",
-   "sha256": "0fggdwxrvnc8aqyp9zibzs53sdhqhamkv55chf8qklqcg19ghn6a"
+   "commit": "f22c20f2e6af55b3a758defabe4c842fb94cde2b",
+   "sha256": "0bnlz5bja6gg619sldlwqzdy1pccmcsxkk4g91njp7d8670xc241"
   },
   "stable": {
    "version": [
     5,
     3,
-    3
+    4
    ],
    "deps": [
     "async",
     "xr"
    ],
-   "commit": "64067b20ce0e964b1342b378180f24a1d4503797",
-   "sha256": "0fggdwxrvnc8aqyp9zibzs53sdhqhamkv55chf8qklqcg19ghn6a"
+   "commit": "f22c20f2e6af55b3a758defabe4c842fb94cde2b",
+   "sha256": "0bnlz5bja6gg619sldlwqzdy1pccmcsxkk4g91njp7d8670xc241"
   }
  },
  {
@@ -101965,15 +102352,15 @@
   "repo": "wbolster/emacs-python-black",
   "unstable": {
    "version": [
-    20230313,
-    1037
+    20240520,
+    729
    ],
    "deps": [
     "dash",
     "reformatter"
    ],
-   "commit": "0714b0007c0b620f88ed9cc91035caea43f3d75f",
-   "sha256": "17jaw7pcgb27sq1aklq0hqb827152vvmbxdxrrgwsfag6ccw75pr"
+   "commit": "4da1519345b3d5c513d82ef0d39536dd9c626d42",
+   "sha256": "0haxkpjggf91ahy6zl4qzpv7l9chi9yd0c0a054y3kjpvn64axqd"
   },
   "stable": {
    "version": [
@@ -102012,16 +102399,16 @@
   "repo": "wbolster/emacs-python-coverage",
   "unstable": {
    "version": [
-    20211224,
-    1420
+    20240509,
+    856
    ],
    "deps": [
     "dash",
     "s",
     "xml+"
    ],
-   "commit": "a341615af03dbe3ce0ac9b63cf43dc01c1ae5ebe",
-   "sha256": "1k5air9sgg95jl949lwf9hz8i4ivy646mnm4pc37wsxkh4g46wqh"
+   "commit": "7f130066460ab8a58c2667d9f76a3e2c168e0759",
+   "sha256": "0dxc09422nqpwdcvh90j41631198dxsxc6np1hhs5m6qf3fjsx1m"
   }
  },
  {
@@ -102175,11 +102562,11 @@
   "repo": "python-mode-devs/python-mode",
   "unstable": {
    "version": [
-    20231218,
-    645
+    20240520,
+    1744
    ],
-   "commit": "9678f77d0d0ab3d672374c4457b5a02ce49cd206",
-   "sha256": "10k1n6pmhy7ia60h1i2c4mzavlam8hqymq22w6r372pasfdp0x89"
+   "commit": "5279a81ecaa9fc535915c58336c96baf3f2aa8b1",
+   "sha256": "0vhi7rlpd696244xl2kvlmqkq94cqwrhd6cvg8hfz6b4v1bbdf4r"
   },
   "stable": {
    "version": [
@@ -102902,11 +103289,11 @@
   "repo": "greghendershott/racket-mode",
   "unstable": {
    "version": [
-    20240418,
-    1446
+    20240514,
+    1524
    ],
-   "commit": "d5f4007fd2c2604673125035f4852dce1b639b33",
-   "sha256": "0di1xb89i6r9lxc86ny53f7w7pqqd0r21qrf663jkjxlakhbwjzk"
+   "commit": "d2cff2b7f210846108875c7eccb1b5ab98bceb74",
+   "sha256": "0gxjm594k1i0xiavmk27z9mv9qh5q4k5h3ih198pm637k31ziviy"
   }
  },
  {
@@ -103132,11 +103519,11 @@
   "repo": "Raku/raku-mode",
   "unstable": {
    "version": [
-    20210927,
-    1227
+    20240429,
+    1007
    ],
-   "commit": "4ee9045eeb90f7831d7c0ee2e4adfcd957f712be",
-   "sha256": "0z8yclpb67x0k7x4ai13wvpc6w6s9z6kkib6a1lm4jpp4gyyraqw"
+   "commit": "14f9b9bba08c0bbb7f3895380d0b1a9feb7a168d",
+   "sha256": "03r858crkxfp2nswsk81ajr8ynqm501a3l6qmbmlk57pb1p2a1py"
   },
   "stable": {
    "version": [
@@ -103195,11 +103582,11 @@
   "repo": "kakakaya/random-splash-image",
   "unstable": {
    "version": [
-    20151003,
-    130
+    20240501,
+    1550
    ],
-   "commit": "907e2db5ceff781ac7f4dbdd65fe71736c36aa22",
-   "sha256": "1z25xmz8pl3rsfahw6ay8wx5wbnlxabnzr2dq20m0i5jyci8lqll"
+   "commit": "05a5cdb8315577536de5e425f6ef6cbb994c6282",
+   "sha256": "1kjkgg577v2ddwkh3zvghyw8zr7lkzg51qiwdzf722p5ml5afnf4"
   }
  },
  {
@@ -105297,26 +105684,26 @@
   "repo": "swflint/retraction-viewer",
   "unstable": {
    "version": [
-    20240419,
-    1316
+    20240509,
+    1440
    ],
    "deps": [
     "plz"
    ],
-   "commit": "280fbb60c44a184e0060640966ad9ddc80602e21",
-   "sha256": "0a9zrlhb943ni4bqc9ma8f2wx0y7vp51jmmf8b0kgy82yx8m6blq"
+   "commit": "e8ab96e5a95a93849b912e2684b9776c685ac4bd",
+   "sha256": "10kyj2jjykbzi2afyqg57w1pkf310155zjb3hzl6nm6h844gnhji"
   },
   "stable": {
    "version": [
     1,
     0,
-    4
+    6
    ],
    "deps": [
     "plz"
    ],
-   "commit": "87efb813a0dd3b320299d771779e68efe4344cf0",
-   "sha256": "0kmhmak47c9ffi0wc21k1qrq8gxgdzv064s38vzfw67781d6mi8a"
+   "commit": "e8ab96e5a95a93849b912e2684b9776c685ac4bd",
+   "sha256": "10kyj2jjykbzi2afyqg57w1pkf310155zjb3hzl6nm6h844gnhji"
   }
  },
  {
@@ -105327,28 +105714,28 @@
   "repo": "swflint/retraction-viewer",
   "unstable": {
    "version": [
-    20240419,
-    837
+    20240509,
+    1440
    ],
    "deps": [
     "retraction-viewer",
     "universal-sidecar"
    ],
-   "commit": "87efb813a0dd3b320299d771779e68efe4344cf0",
-   "sha256": "0kmhmak47c9ffi0wc21k1qrq8gxgdzv064s38vzfw67781d6mi8a"
+   "commit": "e8ab96e5a95a93849b912e2684b9776c685ac4bd",
+   "sha256": "10kyj2jjykbzi2afyqg57w1pkf310155zjb3hzl6nm6h844gnhji"
   },
   "stable": {
    "version": [
     1,
     0,
-    4
+    6
    ],
    "deps": [
     "retraction-viewer",
     "universal-sidecar"
    ],
-   "commit": "87efb813a0dd3b320299d771779e68efe4344cf0",
-   "sha256": "0kmhmak47c9ffi0wc21k1qrq8gxgdzv064s38vzfw67781d6mi8a"
+   "commit": "e8ab96e5a95a93849b912e2684b9776c685ac4bd",
+   "sha256": "10kyj2jjykbzi2afyqg57w1pkf310155zjb3hzl6nm6h844gnhji"
   }
  },
  {
@@ -105751,6 +106138,21 @@
   }
  },
  {
+  "ename": "ride-mode",
+  "commit": "07536aeb9581da1ffbe25cc4e7d6d5d056062cf7",
+  "sha256": "0yhqg5qnkl4rz2b524md7z8x5b80ck2mgcdhwh5dr5wfqc72sbnl",
+  "fetcher": "github",
+  "repo": "deadblackclover/ride-mode",
+  "unstable": {
+   "version": [
+    20240511,
+    1623
+   ],
+   "commit": "b693e5c33090530d2ea9d792fa148ea983f8607f",
+   "sha256": "1iwb941ld1rfshdq11km561xr75a3n63cw70h6x8wyb6iqdwbwk3"
+  }
+ },
+ {
   "ename": "right-click-context",
   "commit": "f6963fc11d697b95ebbdaf7fe27c91a6229d08b6",
   "sha256": "189nkxkc7lr2fm5qgmylmz6xv6mpphslj4fgpmr8ynnx9z3nxms2",
@@ -106052,11 +106454,11 @@
   "repo": "jgkamat/rmsbolt",
   "unstable": {
    "version": [
-    20240301,
-    1749
+    20240507,
+    47
    ],
-   "commit": "1aeeadf7114316b9949e3c212a883ca95c3ddab0",
-   "sha256": "01nhxmildizza26vkf20qvmhh7n5g1sl7vyn7i1dwpi74334in64"
+   "commit": "32604147643dbfebe499ea8a4b139cc68acd2746",
+   "sha256": "07l5c1apdck8a73z4mh3r7jpwz1c97p4i6qz1lg5ygmr1wnhpncy"
   }
  },
  {
@@ -106067,14 +106469,14 @@
   "repo": "dgutov/robe",
   "unstable": {
    "version": [
-    20240327,
-    308
+    20240509,
+    155
    ],
    "deps": [
     "inf-ruby"
    ],
-   "commit": "e8c86ee553589ff03418102426420b5049d4a044",
-   "sha256": "070r79mdydhv6l7mia7xshzmp0jgvkfjvnpgg361m5xs92mprxfr"
+   "commit": "6bc8a07fc483407971de0966d367a11006b3ab80",
+   "sha256": "144cdg0wp53g4rsmr5ps4r9fhqr686qvikf2pcyi0idyx7dcsaij"
   },
   "stable": {
    "version": [
@@ -107055,11 +107457,11 @@
   "repo": "rust-lang/rust-mode",
   "unstable": {
    "version": [
-    20240415,
-    936
+    20240520,
+    749
    ],
-   "commit": "e54bbae8c4c2af580b5721ad5ac151f2ad19293e",
-   "sha256": "1vzgyizvn3p7f1p8awnlm4n2fh7b6j3cs636zyqpqck32x4pdqda"
+   "commit": "d00d83d3a207a5b7c2994392b2781f627e3159ce",
+   "sha256": "08b4aj8achz3rl311m5p98sdgnh96ggfmia4qp2l147vd1a23r93"
   },
   "stable": {
    "version": [
@@ -107308,16 +107710,16 @@
   "repo": "sagemath/sage-shell-mode",
   "unstable": {
    "version": [
-    20231013,
-    1408
+    20240504,
+    726
    ],
    "deps": [
     "cl-lib",
     "deferred",
     "let-alist"
    ],
-   "commit": "2f069323cb722c608405a3621d8185f4b7130fc3",
-   "sha256": "16mchj8glijkn1ycqzgkc424ij1gxa9qp6dhkhgrskqcyjgxxaly"
+   "commit": "4291700e981a2105d55fa56382ba25046d3d268d",
+   "sha256": "1dch7cwwslffgnzp1djlhz6a792ci42p4bvazxd9lqzhzal0rsbb"
   },
   "stable": {
    "version": [
@@ -107684,14 +108086,14 @@
   "repo": "openscad/emacs-scad-mode",
   "unstable": {
    "version": [
-    20240224,
-    1251
+    20240429,
+    1628
    ],
    "deps": [
     "compat"
    ],
-   "commit": "1bae3dab16adf1f0d47befcc6d2b63a50af87231",
-   "sha256": "137kn3ilbl6gnq6jc21mzhlc7vyy9nvr3qf0p6f1hmdixm2cbyr7"
+   "commit": "8b830727c343bf762d9469b413f0c2a4c1996fe2",
+   "sha256": "07rk69b0sbcwh4mjpapzv93awwl4w5n0q73915rrxifqf6n3bjsp"
   },
   "stable": {
    "version": [
@@ -107748,6 +108150,21 @@
   }
  },
  {
+  "ename": "scala-repl",
+  "commit": "68a9875d9551ef6003f8ed853489b164cf1e71b5",
+  "sha256": "0cdw913dsvyzflhbijy0n1rwh5hq3ghfcinmpkn6i3y2j5dk4agh",
+  "fetcher": "github",
+  "repo": "sheepduke/scala-repl.el",
+  "unstable": {
+   "version": [
+    20240427,
+    1456
+   ],
+   "commit": "679bdf663e0b32a5a285d6f98daa2e3d5de60289",
+   "sha256": "1qvx7p58fr2v0vpxarliacw97dlw839av4n8chn3g18cw34k7ir0"
+  }
+ },
+ {
   "ename": "scala-ts-mode",
   "commit": "0dce6a06d842251ca42c515bcdd5c8e4b63424b6",
   "sha256": "0x3ip9x72jbn56ddvjxd0qggq5bcp1bdvyy36nx51czlvz8vw4gf",
@@ -108035,14 +108452,11 @@
   "repo": "zk-phi/scratch-palette",
   "unstable": {
    "version": [
-    20210306,
-    427
-   ],
-   "deps": [
-    "popwin"
+    20240516,
+    1817
    ],
-   "commit": "e4642ed8a2b744ba48a8e11ca83861f8e4b9c5b3",
-   "sha256": "1cvcsj6ayhfwdpp2mb75ja8bif33z085dip76bvyqliwjnjl2sgn"
+   "commit": "6b344af6b33b6b0bfd08e213dd0d43b714f7a5e9",
+   "sha256": "0a09lxfj49m1x894byqb6bgcbckiasaxka5r6g2n4rmk7hpj1rmq"
   }
  },
  {
@@ -108468,11 +108882,11 @@
   "repo": "erjoalgo/selcand",
   "unstable": {
    "version": [
-    20230628,
-    733
+    20240430,
+    1408
    ],
-   "commit": "b6fc231a784df570df0f817d34f926f141a65126",
-   "sha256": "1hh0y9qy19kvq29z5zrjpk2lll2iydl16dhl88kapfprmv9mrli2"
+   "commit": "6baa1771eacbcfe7ec854362bed17baea865424e",
+   "sha256": "0df2h0ahzp6zqvg104dp8cq3nc6q7wg0v4v7mac0mpibgd35j0qq"
   },
   "stable": {
    "version": [
@@ -109956,14 +110370,14 @@
   "repo": "xuchunyang/shr-tag-pre-highlight.el",
   "unstable": {
    "version": [
-    20200626,
-    1047
+    20240515,
+    1420
    ],
    "deps": [
     "language-detection"
    ],
-   "commit": "931c447bc0d6c134ddc9657c664eeee33afbc54d",
-   "sha256": "09gcprqhl1ds4k407rlsjqr9y56a9wvjkli70wrf2l7w3dcm4qq0"
+   "commit": "af8ae8d558d1e26d276130c100e02746278ce037",
+   "sha256": "1ncmgziclhj3694kzq6qwsrafzcpn6a5r6fwbcjnjk6z9dahisq8"
   },
   "stable": {
    "version": [
@@ -110110,14 +110524,14 @@
   "repo": "cask/shut-up",
   "unstable": {
    "version": [
-    20210403,
-    1249
+    20240429,
+    605
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "ff6f06f3b080ee833a25a22da8cb5b96e911dc77",
-   "sha256": "1kghm1vwy38k9l4a4jjabhqi49v4p27abk82q6yfpm304ygw816v"
+   "commit": "ed62a7fefdf04c81346061016f1bc69ca045aaf6",
+   "sha256": "1wrxdkgsr7rrz0h6kl6a68r1f1nn098p1cmg4693yaam5pl8lscf"
   },
   "stable": {
    "version": [
@@ -110140,11 +110554,11 @@
   "repo": "riscy/shx-for-emacs",
   "unstable": {
    "version": [
-    20221224,
-    2230
+    20240512,
+    1515
    ],
-   "commit": "b99d16f36bc278d668d8428c4bc9af77064c336a",
-   "sha256": "1wkqnc5n8if8fsh7f3bdr5nzn6dbj1nzdxlmnz8nflmx4g32fp6v"
+   "commit": "ae32d2f6917e16c8feb8b7372267449179abd608",
+   "sha256": "1gkfh5zhcxi9xwffc8ydbn6879h20ddfwvk6279dysg15gasb551"
   },
   "stable": {
    "version": [
@@ -110263,14 +110677,14 @@
   "repo": "emacs-sideline/sideline",
   "unstable": {
    "version": [
-    20240404,
-    900
+    20240521,
+    31
    ],
    "deps": [
     "ht"
    ],
-   "commit": "c1729b2b9d2ca6b37bf605ca2271e570f30316f0",
-   "sha256": "0ck92g14fhhi1xg76na8ck8ivv5wx5igh898wzr5p6qx92mv5hf7"
+   "commit": "31ef3c21d99785e7a066ad8c188ddcd2b478b5fe",
+   "sha256": "17qflpmc7kwn0cikysardxda25wanmax55hc6ifwgcp330wp4742"
   },
   "stable": {
    "version": [
@@ -110322,16 +110736,16 @@
   "repo": "emacs-sideline/sideline-flycheck",
   "unstable": {
    "version": [
-    20240402,
-    2255
+    20240509,
+    742
    ],
    "deps": [
     "flycheck",
     "ht",
     "sideline"
    ],
-   "commit": "212b8193becc012d39ccb1e68abf0e19f68764f4",
-   "sha256": "0g6i9ql35w9p3k941g2n9rj0md7j1snr6dpm9y4sid8fbyxvs1f2"
+   "commit": "f809e627e433bd9a58471e4dea1ed50305eef7f2",
+   "sha256": "0z0152cnkb8bwc3j0gi1zyasvwxc7anlrj2qr0zj6pbxyl61k5m3"
   },
   "stable": {
    "version": [
@@ -110355,14 +110769,14 @@
   "repo": "emacs-sideline/sideline-flymake",
   "unstable": {
    "version": [
-    20240309,
-    1112
+    20240509,
+    742
    ],
    "deps": [
     "sideline"
    ],
-   "commit": "e6a9ae69fc048f8eaacbf653e7136678dbef4597",
-   "sha256": "08mng3wqlrflnywiy8m29psk9sks32niy3xgzxrawkkidfv79m9p"
+   "commit": "06e84875022a5645ece8f4c2c8b56aa5f003c65d",
+   "sha256": "10gk7l93c13z8mpvd598x06bhv8zz21157madxdw1f7jarkssqh7"
   },
   "stable": {
    "version": [
@@ -110854,8 +111268,8 @@
   "repo": "magit/sisyphus",
   "unstable": {
    "version": [
-    20240415,
-    1548
+    20240506,
+    1558
    ],
    "deps": [
     "compat",
@@ -110863,8 +111277,8 @@
     "llama",
     "magit"
    ],
-   "commit": "38285f880302b9a2363085d816d6cd660ff7d17d",
-   "sha256": "0vkyfc9rbc22x7a7qy8i3w97a8p65qvjz5jxiqbh2vldp57hx5f7"
+   "commit": "db9b36065faf149fef214248bdba1d90492cd2e9",
+   "sha256": "0czzvnchviwszgdpq1s3j2m9881a7dxh7hdd7hg7ay9ab18j0f1i"
   },
   "stable": {
    "version": [
@@ -111155,11 +111569,11 @@
   "repo": "slim-template/emacs-slim",
   "unstable": {
    "version": [
-    20170728,
-    1348
+    20240513,
+    2118
    ],
-   "commit": "3636d18ab1c8b316eea71c4732eb44743e2ded87",
-   "sha256": "1sqylm6ipmlh9249mmwfb16b4pv94cvzdwvi3zakdpz713phyjw5"
+   "commit": "8c92169817f2fa59255f547f0a9fb4fbb8309db9",
+   "sha256": "051clmalyyvbqq2gj1b69mymx34c46wsk02k6izp6igfnjf4isjv"
   },
   "stable": {
    "version": [
@@ -111178,14 +111592,14 @@
   "repo": "slime/slime",
   "unstable": {
    "version": [
-    20240427,
-    406
+    20240516,
+    319
    ],
    "deps": [
     "macrostep"
    ],
-   "commit": "c2e45e7004743fdd8620e2fea67f30a17b6a558a",
-   "sha256": "1f8i31b2b21v5r0awahhjqn499agalqnzy8lyp3wj91r0pbsqn1f"
+   "commit": "5ced74ab35d91f6be7d8fa10e1098aaae6b749e3",
+   "sha256": "0bq0vi22mr43l64q501hkv11sp58bmn8hgxmc61if0xc1rlcs68v"
   },
   "stable": {
    "version": [
@@ -111433,11 +111847,11 @@
   "repo": "joaotavora/sly",
   "unstable": {
    "version": [
-    20240413,
-    2145
+    20240501,
+    1118
    ],
-   "commit": "0ebe705c08af7126e0b2ce66a33fc7d23864b193",
-   "sha256": "1a7xi627dqm9zvhj5ky50h7z4nkcr54xal05mgq8hf9r0c8xba9g"
+   "commit": "ba40c8f054ec3b7040a6c36a1ef3e9596b936421",
+   "sha256": "0qhnn09pinrdjbkgl89xhgbrji2gagq05rrknklybklyvik851l6"
   },
   "stable": {
    "version": [
@@ -113599,11 +114013,11 @@
   "repo": "condy0919/spdx.el",
   "unstable": {
    "version": [
-    20240425,
-    103
+    20240522,
+    104
    ],
-   "commit": "28801aa911d43bb0b2545f83781a3c629266fd72",
-   "sha256": "15a26n645snjr92vp46pyv1pbkskb8arvvfb6hi8sy8m4vxc1bm3"
+   "commit": "448e0e5e491e2447da2590ff216675e083d910ff",
+   "sha256": "160h11025fkxg734ri944l2jndfpmg9mlar0jy8aqk3bys3mc85i"
   }
  },
  {
@@ -113641,11 +114055,11 @@
   "repo": "brailcom/speechd-el",
   "unstable": {
    "version": [
-    20240427,
-    2112
+    20240513,
+    1716
    ],
-   "commit": "64218c59f1636af6a0cb3690bf0bedae1dd17442",
-   "sha256": "1m7bfbk1iwdqa9dnf1b0isbl7pj3msxx4j6grr4d4pzb4hqphbfl"
+   "commit": "ac7497e394bf7d46e0b2c27570f5507f6a50a157",
+   "sha256": "1y8r75sl28kll8r6qzqnbri18j2kgvqfh73yi9kszld5zz8d95mp"
   }
  },
  {
@@ -114365,11 +114779,11 @@
   "repo": "srfi-explorations/emacs-srfi",
   "unstable": {
    "version": [
-    20240425,
-    1823
+    20240507,
+    58
    ],
-   "commit": "75b5b3e9b49bb450c1245ba7d7627ecb27baa53d",
-   "sha256": "0xaa2wa8p3606gclw2myj57sglii150dq9w26qisvhxym3i97r4k"
+   "commit": "7d3584b0b887a3bedebe5fd829fa7623c1d730fc",
+   "sha256": "13652cn287d17jfvj37a14iy3awisibmrm7dglivm8hcjlkaj9fg"
   },
   "stable": {
    "version": [
@@ -114837,20 +115251,20 @@
   "repo": "stacked-git/stgit",
   "unstable": {
    "version": [
-    20240407,
-    2229
+    20240505,
+    2218
    ],
-   "commit": "9afe502c74f51ed7d4e794da11c01e25718b0f64",
-   "sha256": "1sa9pndfjsja0gk7jc8vlfpzmahpvbqpb8b1dx6cl0568w13s1b5"
+   "commit": "e2b799d7bd39f69b66b54d556e345699dee740d6",
+   "sha256": "1x1f0qrwk5nxcqlyk6ga0mh919pa5fgs72dpr86fh778vraadw2d"
   },
   "stable": {
    "version": [
     2,
     4,
-    6
+    7
    ],
-   "commit": "9afe502c74f51ed7d4e794da11c01e25718b0f64",
-   "sha256": "1sa9pndfjsja0gk7jc8vlfpzmahpvbqpb8b1dx6cl0568w13s1b5"
+   "commit": "e2b799d7bd39f69b66b54d556e345699dee740d6",
+   "sha256": "1x1f0qrwk5nxcqlyk6ga0mh919pa5fgs72dpr86fh778vraadw2d"
   }
  },
  {
@@ -114940,15 +115354,15 @@
   "repo": "beacoder/stock-tracker",
   "unstable": {
    "version": [
-    20230625,
-    524
+    20240430,
+    247
    ],
    "deps": [
     "async",
     "dash"
    ],
-   "commit": "cdffcaa6bb75c450a511a31d0c69e30a4edd562d",
-   "sha256": "0dmg2zh92la3qw9swzn4pz3qmn0qs6rd84dihf43v9r2682nrqb7"
+   "commit": "7004467c995e0104cad874361669e6b395b3da48",
+   "sha256": "03f27qmmfdqj4khjgs611222lc38s80fjimfggg4641rzqgxqq4h"
   },
   "stable": {
    "version": [
@@ -115766,14 +116180,14 @@
   "repo": "rougier/svg-tag-mode",
   "unstable": {
    "version": [
-    20240122,
-    1209
+    20240429,
+    1052
    ],
    "deps": [
     "svg-lib"
    ],
-   "commit": "f01307dd7720ed952355db0a552ae555c13ced13",
-   "sha256": "13fyg7wn2rzf19ni2niv868rp2iqm1ckqyg0rc99sbgz5i2qdzcw"
+   "commit": "a152bc90a7c9dc17112893a19ddf91078b909057",
+   "sha256": "12spnrblv3h7yzc0cpk0xj6sbcfcq2y4j3mg7a16m2nhafw2kn0y"
   }
  },
  {
@@ -116133,14 +116547,14 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20240405,
-    1642
+    20240520,
+    1202
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "e0b1a6c224afb652d11b315913b8ad0c3ca8ecbc",
-   "sha256": "06370wzd058lx1k9dl76zzs0r9nycnlggfxxdw2691q8ypjqbd7q"
+   "commit": "c8808d88c633fdd00f7671fee054954f3a7598b8",
+   "sha256": "14f5kfs3sj699397pz6w59pyv9qhw8jbswyq0964k483570n4skp"
   },
   "stable": {
    "version": [
@@ -116444,11 +116858,11 @@
   "repo": "liushihao456/symbols-outline.el",
   "unstable": {
    "version": [
-    20231229,
-    941
+    20240517,
+    819
    ],
-   "commit": "af4cba0c409a38e25eb572687a3a6848953ef868",
-   "sha256": "0jqw0p3cmjjbgsihnk49v88v7ypbxmpcsl4wb3cs83n2c4qgd11y"
+   "commit": "bfebe73b1322cdc32353375b55f5f56aad85fb57",
+   "sha256": "0gnmqw3gdgjqb0vfzl2vi3zvk89mnx2yxq8sdz7rn4y8hbyxsmh0"
   }
  },
  {
@@ -117577,16 +117991,16 @@
   "repo": "zevlg/telega.el",
   "unstable": {
    "version": [
-    20240410,
-    928
+    20240515,
+    2217
    ],
    "deps": [
     "rainbow-identifiers",
     "transient",
     "visual-fill-column"
    ],
-   "commit": "d73e02dfe41580ff2d93a6c6feb2af254087bbf6",
-   "sha256": "1jg9l1dkiji5mqhbbfmgi0p4gdzw0m8hf7k4imnn61046llar8q0"
+   "commit": "3d2e5ee323366906b00d8ed40e818d41e82b73e5",
+   "sha256": "117mck96hd0ai0ra7kv8kv78v88vms55ac64dqbrqndiwna4c6sl"
   },
   "stable": {
    "version": [
@@ -117666,14 +118080,14 @@
   "repo": "caramelhooves/teleport.el",
   "unstable": {
    "version": [
-    20240101,
-    1358
+    20240501,
+    740
    ],
    "deps": [
     "dash"
    ],
-   "commit": "d8fa80e7f548287279c9620e26c354e68b1559af",
-   "sha256": "1b301mkvbr22bzj0hm0v0mr9ahw7491rl7l6374kiq4l8rlyp54g"
+   "commit": "7a99ec17e5c1d3bab3bc842e045b06ea335c97b9",
+   "sha256": "15kns3478xvwnn0dl883swh7x7k043b71zrv3gk0jazh60vn3q6j"
   }
  },
  {
@@ -117746,14 +118160,14 @@
   "repo": "Crandel/tempel-collection",
   "unstable": {
    "version": [
-    20240404,
-    1026
+    20240507,
+    805
    ],
    "deps": [
     "tempel"
    ],
-   "commit": "e87b1fee9554f9bc7415df053c8d8c9f03c13955",
-   "sha256": "1j762811nlnimzvsmv6h1l3mpsd8wxa2ay48n73wxj3cv8qxz82r"
+   "commit": "cf2594313a41f6a29205e378411ebb10e9d764c3",
+   "sha256": "1zq17avwf9mfgr5jq9fnvx4c25a2mfr2wf3ip1ix5n3700z48ry7"
   }
  },
  {
@@ -118415,15 +118829,15 @@
   "repo": "johannes-mueller/test-cockpit.el",
   "unstable": {
    "version": [
-    20240220,
-    2058
+    20240519,
+    1747
    ],
    "deps": [
     "projectile",
     "toml"
    ],
-   "commit": "11c23ddb9284b21a1072c37f168574096ee3bd2f",
-   "sha256": "0lg3f03a0bh6crffms1qfs7vlp32cg3rjhr1phmghcxdcm8xj4ca"
+   "commit": "2b836e5f954059210b6efaecebfe5fd7c72e726c",
+   "sha256": "0f62xly0pvsfqnkzm0yfflbd54mljbfc6jzp8kqk8w8598j548ak"
   }
  },
  {
@@ -118684,11 +119098,11 @@
   "repo": "monkeyjunglejuice/matrix-emacs-theme",
   "unstable": {
    "version": [
-    20240422,
-    919
+    20240429,
+    920
    ],
-   "commit": "2e373d5de799ef2546d6905949aa9ef21da5eea4",
-   "sha256": "15bf21y0sfsy1wpyazfcwr9cqs2vvmhwr2j2p37a2fiadrv27da4"
+   "commit": "d0c7fd3584c07952de26a5ae44ca6159f1960bb7",
+   "sha256": "0vhmmya0dayjsmvyxiyh1sf3hmdxdgv8qcfx7ffh385saqpqifkd"
   }
  },
  {
@@ -118908,21 +119322,21 @@
   "repo": "facebook/fbthrift",
   "unstable": {
    "version": [
-    20240421,
-    1632
+    20240519,
+    1631
    ],
-   "commit": "a1067af97a4a6070f4247657faf66ff25c1caffd",
-   "sha256": "0kjxyhr0kbw8dzd79gdj32srn5avnp4650ws1iy8q9rrppya9rr5"
+   "commit": "8baf3aed99934494267647ee8f309f9d712d4325",
+   "sha256": "0svd697slkv6k46byvca8b9l4vkxgikyxanik78iwpz52mmgpc88"
   },
   "stable": {
    "version": [
     2024,
-    4,
-    22,
+    5,
+    20,
     0
    ],
-   "commit": "a1067af97a4a6070f4247657faf66ff25c1caffd",
-   "sha256": "0kjxyhr0kbw8dzd79gdj32srn5avnp4650ws1iy8q9rrppya9rr5"
+   "commit": "8baf3aed99934494267647ee8f309f9d712d4325",
+   "sha256": "0svd697slkv6k46byvca8b9l4vkxgikyxanik78iwpz52mmgpc88"
   }
  },
  {
@@ -120333,15 +120747,15 @@
   "repo": "magit/transient",
   "unstable": {
    "version": [
-    20240421,
-    1737
+    20240509,
+    1849
    ],
    "deps": [
     "compat",
     "seq"
    ],
-   "commit": "2dd0102ec3df901d421fc338e5c768467cc54ecf",
-   "sha256": "02qhhm37pmqpm51hn7sz7wn34x1vwixxka2fvlllq1vbmvzxinp6"
+   "commit": "3d395d643b1476b07c6c3d7217f5b2ad2c0b425e",
+   "sha256": "1vrnxd95dmf6v6nzvzcf4nxz4sag9qwl1hj2ciiffl2d420shjsh"
   },
   "stable": {
    "version": [
@@ -120791,14 +121205,14 @@
   "repo": "erickgnavar/tree-sitter-ispell.el",
   "unstable": {
    "version": [
-    20230205,
-    533
+    20240522,
+    1356
    ],
    "deps": [
     "tree-sitter"
    ],
-   "commit": "d8c33c05f689c2cab36b8a9856811f18a4ab7c59",
-   "sha256": "19i2hv6zy9797dz4b6xrwlkci5fdq4v2mxd55li2bpd6sgga28ns"
+   "commit": "960e68d6c4a296e5ecf10d27bfd8bac42ba4a2ed",
+   "sha256": "1v0v6m5g03ydv38a9465nx3i5qfi106macwd5s63rllx88m395xg"
   }
  },
  {
@@ -120809,26 +121223,26 @@
   "repo": "emacs-tree-sitter/tree-sitter-langs",
   "unstable": {
    "version": [
-    20240425,
-    231
+    20240519,
+    717
    ],
    "deps": [
     "tree-sitter"
    ],
-   "commit": "ace4624f78ddb6c29e4efa904c6dd8636fad53fe",
-   "sha256": "1kaklazmr26gh6ff8p7r2xs1pc40ajwlhhinsbnl52prz3bc7702"
+   "commit": "6ce3de71c21a55ffe33ecdead57fff290a5d07df",
+   "sha256": "1i36zfww14zjxlcq8gkwj5346356zfcx6ldi59bp9c7vvi2gavg8"
   },
   "stable": {
    "version": [
     0,
     12,
-    182
+    196
    ],
    "deps": [
     "tree-sitter"
    ],
-   "commit": "f75e8c1b4aa6c13d4b9a48545993d66a1d7e2eb1",
-   "sha256": "0zvz1kmx145g73wh2zjvrswcl9iiqlq59dlwf88p93n7wzk2ivbg"
+   "commit": "6ce3de71c21a55ffe33ecdead57fff290a5d07df",
+   "sha256": "1i36zfww14zjxlcq8gkwj5346356zfcx6ldi59bp9c7vvi2gavg8"
   }
  },
  {
@@ -120905,8 +121319,8 @@
   "repo": "Alexander-Miller/treemacs",
   "unstable": {
    "version": [
-    20240229,
-    2108
+    20240518,
+    932
    ],
    "deps": [
     "ace-window",
@@ -120918,8 +121332,8 @@
     "pfuture",
     "s"
    ],
-   "commit": "8c6df39f01a4d47fda2cc943645fa067f771b748",
-   "sha256": "12jfivx5gqayv8n2q08f7inwqmxck51q0r9nxgb1m1kzi5vdisqp"
+   "commit": "923fbbdea57b27ed3293079b13846206add85d9d",
+   "sha256": "1dw8igrag918c9s2pz80nmri09kxay10v617zafg91kdqzpnwgyy"
   },
   "stable": {
    "version": [
@@ -121243,11 +121657,11 @@
   "repo": "renzmann/treesit-auto",
   "unstable": {
    "version": [
-    20240420,
-    1457
+    20240511,
+    1425
    ],
-   "commit": "ecd898c4879614bf36d84a77c08a10aca25c3841",
-   "sha256": "190sv2ig3lisp2yiwy38ng8k9ckhpgjga5njnf88qnyp3r44bvcc"
+   "commit": "016bd286a1ba4628f833a626f8b9d497882ecdf3",
+   "sha256": "03bvam7cpxqp4idhd235n76qdqhsbgw7m2lphy8qqwslbmcq23m4"
   },
   "stable": {
    "version": [
@@ -121864,11 +122278,11 @@
   "repo": "emacs-typescript/typescript.el",
   "unstable": {
    "version": [
-    20230116,
-    1533
+    20240507,
+    617
    ],
-   "commit": "4fcb4594819caf472ae42ea068a1c7795cf07f46",
-   "sha256": "12vw5mjl8d4cfv0z46180llmwdwfqrfp88p1fvgp2viizwmw03ym"
+   "commit": "1cf78d7ef8e0a1684a2cf265539c54ccff4068c0",
+   "sha256": "1f2sba6ld55w6mdbwwz4kqfp2rsgmbdm88apxjfglsa5nlh7g50b"
   },
   "stable": {
    "version": [
@@ -122911,26 +123325,26 @@
   "repo": "swflint/emacs-universal-sidecar",
   "unstable": {
    "version": [
-    20240130,
-    2120
+    20240429,
+    1525
    ],
    "deps": [
     "magit-section"
    ],
-   "commit": "d7a30e53fdda44a07160ef438ae1068178f23785",
-   "sha256": "0zhafx5rk6221whi167j6vvlld7wwnd7capzdflv3x8d5jbhy87k"
+   "commit": "e16f5974c77e7126cd5c9b7448116ee94a6a1e72",
+   "sha256": "0n0ndahcamfqz9wrj1l43xr8q5lc03k204ny95mwlnahq27z9qsm"
   },
   "stable": {
    "version": [
     1,
-    5,
-    2
+    6,
+    0
    ],
    "deps": [
     "magit-section"
    ],
-   "commit": "9050eaea7946e613a4b9ecd9dd1462614699edb1",
-   "sha256": "169n0d4hsx9azch1w14wlmilm411hb7v0564xrcwww5w145jrs9m"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   }
  },
  {
@@ -122941,26 +123355,26 @@
   "repo": "swflint/emacs-universal-sidecar",
   "unstable": {
    "version": [
-    20240115,
-    1727
+    20240428,
+    1852
    ],
    "deps": [
     "citeproc"
    ],
-   "commit": "9050eaea7946e613a4b9ecd9dd1462614699edb1",
-   "sha256": "169n0d4hsx9azch1w14wlmilm411hb7v0564xrcwww5w145jrs9m"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   },
   "stable": {
    "version": [
     1,
-    5,
-    2
+    6,
+    0
    ],
    "deps": [
     "citeproc"
    ],
-   "commit": "9050eaea7946e613a4b9ecd9dd1462614699edb1",
-   "sha256": "169n0d4hsx9azch1w14wlmilm411hb7v0564xrcwww5w145jrs9m"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   }
  },
  {
@@ -122971,30 +123385,30 @@
   "repo": "swflint/emacs-universal-sidecar",
   "unstable": {
    "version": [
-    20240115,
-    1727
+    20240428,
+    1852
    ],
    "deps": [
     "bibtex-completion",
     "elfeed",
     "universal-sidecar"
    ],
-   "commit": "9050eaea7946e613a4b9ecd9dd1462614699edb1",
-   "sha256": "169n0d4hsx9azch1w14wlmilm411hb7v0564xrcwww5w145jrs9m"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   },
   "stable": {
    "version": [
     1,
-    5,
-    2
+    6,
+    0
    ],
    "deps": [
     "bibtex-completion",
     "elfeed",
     "universal-sidecar"
    ],
-   "commit": "9050eaea7946e613a4b9ecd9dd1462614699edb1",
-   "sha256": "169n0d4hsx9azch1w14wlmilm411hb7v0564xrcwww5w145jrs9m"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   }
  },
  {
@@ -123005,30 +123419,30 @@
   "repo": "swflint/emacs-universal-sidecar",
   "unstable": {
    "version": [
-    20240115,
-    1727
+    20240428,
+    1852
    ],
    "deps": [
     "elfeed",
     "elfeed-score",
     "universal-sidecar"
    ],
-   "commit": "9050eaea7946e613a4b9ecd9dd1462614699edb1",
-   "sha256": "169n0d4hsx9azch1w14wlmilm411hb7v0564xrcwww5w145jrs9m"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   },
   "stable": {
    "version": [
     1,
-    5,
-    2
+    6,
+    0
    ],
    "deps": [
     "elfeed",
     "elfeed-score",
     "universal-sidecar"
    ],
-   "commit": "9050eaea7946e613a4b9ecd9dd1462614699edb1",
-   "sha256": "169n0d4hsx9azch1w14wlmilm411hb7v0564xrcwww5w145jrs9m"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   }
  },
  {
@@ -123039,28 +123453,28 @@
   "repo": "swflint/emacs-universal-sidecar",
   "unstable": {
    "version": [
-    20240115,
-    1727
+    20240428,
+    1852
    ],
    "deps": [
     "org-roam",
     "universal-sidecar"
    ],
-   "commit": "9050eaea7946e613a4b9ecd9dd1462614699edb1",
-   "sha256": "169n0d4hsx9azch1w14wlmilm411hb7v0564xrcwww5w145jrs9m"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   },
   "stable": {
    "version": [
     1,
-    5,
-    2
+    6,
+    0
    ],
    "deps": [
     "org-roam",
     "universal-sidecar"
    ],
-   "commit": "9050eaea7946e613a4b9ecd9dd1462614699edb1",
-   "sha256": "169n0d4hsx9azch1w14wlmilm411hb7v0564xrcwww5w145jrs9m"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   }
  },
  {
@@ -124548,13 +124962,13 @@
   "repo": "minad/vertico",
   "unstable": {
    "version": [
-    20240424,
-    1959
+    20240511,
+    2047
    ],
    "deps": [
     "compat"
    ],
-   "commit": "1def56a1e678ff9a8eeafafda9c474a5fbb097c4",
+   "commit": "ba650a7ab90d66686ba787937ac9e71f749c598e",
    "sha256": "0cxaqlg0mllrnf7zx7j6rdmx3x42s9b2marisi7zwfiymsnbgarr"
   },
   "stable": {
@@ -124577,16 +124991,16 @@
   "repo": "radian-software/prescient.el",
   "unstable": {
    "version": [
-    20240226,
-    204
+    20240505,
+    2249
    ],
    "deps": [
     "compat",
     "prescient",
     "vertico"
    ],
-   "commit": "c39bf07c56b427bf41aafd7d20eaef5cf3c312b5",
-   "sha256": "0pfc0ycp4cr9zwkjv3rqfkwkx8p52ad7aq2c60j0qwp3yd0cghc4"
+   "commit": "0765418e4362099db8788fcb745ce9b7602aa001",
+   "sha256": "1194racjqb6m2npsdyzbyf77ajrw8qkaq87ciy2z9fxxmzgwj84w"
   },
   "stable": {
    "version": [
@@ -125271,11 +125685,11 @@
   "repo": "emacs-vs/vs-dark-theme",
   "unstable": {
    "version": [
-    20240410,
-    216
+    20240521,
+    2336
    ],
-   "commit": "26fb8e1dee98fd8d423abc35655859e1098325ee",
-   "sha256": "0ixa8kk4m0bg03qcahli8pp6srcavggkrfncyqg5igf8wg7d1wy5"
+   "commit": "d0d9fb57582677fc1f9a4a1467ec3f6470aff0d6",
+   "sha256": "03qy8d7vbnkx2ssfby7kgdjmz691rqw4vlikhpb37xkmhsqa0w0d"
   },
   "stable": {
    "version": [
@@ -125294,11 +125708,11 @@
   "repo": "emacs-vs/vs-light-theme",
   "unstable": {
    "version": [
-    20240410,
-    216
+    20240521,
+    2340
    ],
-   "commit": "0ede987bac1c8dbeb07990a75e70b63cf9baf7e2",
-   "sha256": "0y5p2jbcjby0hrnhh2z99j27wsvkk8lrwdq2krd5188ssj66ca17"
+   "commit": "bc0250f261c066f576fa13112dcfbb10a4e5c6ef",
+   "sha256": "1ys5xhll909zfx02hf2gqbwcf3jcq83b5xxvajrr6xxqwa4mk9h3"
   },
   "stable": {
    "version": [
@@ -125371,11 +125785,11 @@
   "repo": "akermu/emacs-libvterm",
   "unstable": {
    "version": [
-    20240325,
-    1551
+    20240520,
+    231
    ],
-   "commit": "ae4ae1aef2fcae98a37aad83f2a6aeeaeacedd4f",
-   "sha256": "180fa3ihcgp9f6gnp9z34cpc1k8ai75kmdagb4rc9qqb4z8lp9i2"
+   "commit": "df057b1af2bb89a1deb288086f13be296af42090",
+   "sha256": "11j89pldhmw9v2g1sqcg4piniijz4wzgmim1jv46iwnaiwzw20fi"
   }
  },
  {
@@ -126341,26 +126755,26 @@
   "repo": "pzel/weblio",
   "unstable": {
    "version": [
-    20210718,
-    1410
+    20240514,
+    1005
    ],
    "deps": [
     "request"
    ],
-   "commit": "2b4b0c206440b5c63960214feacfceb0c26231c7",
-   "sha256": "1iy1finnxqjbdivzyn7crpnha87mq1fmd98pkx2r8sk551nfw35s"
+   "commit": "952d085fd814b139562ef947c7dcabc31f92341d",
+   "sha256": "1v36x3iyav5i28zp5b1899071xlxawq6ml642258bilhaba2j37a"
   },
   "stable": {
    "version": [
     0,
-    3,
-    4
+    4,
+    0
    ],
    "deps": [
     "request"
    ],
-   "commit": "2b4b0c206440b5c63960214feacfceb0c26231c7",
-   "sha256": "1iy1finnxqjbdivzyn7crpnha87mq1fmd98pkx2r8sk551nfw35s"
+   "commit": "952d085fd814b139562ef947c7dcabc31f92341d",
+   "sha256": "1v36x3iyav5i28zp5b1899071xlxawq6ml642258bilhaba2j37a"
   }
  },
  {
@@ -126841,11 +127255,11 @@
   "repo": "justbur/emacs-which-key",
   "unstable": {
    "version": [
-    20240423,
-    1320
+    20240501,
+    1251
    ],
-   "commit": "ba323d6712d54806aa82847d017e94eafcf99d6f",
-   "sha256": "1ainrah6qnn9qvjcfgx133v4rvvyq15iy7kvi2rmbxxlfj5x6y1i"
+   "commit": "1e89fa000e9ba9549f15ef57abccd118d5f2fe1a",
+   "sha256": "01g5fgrbdgzh302ah7pqdrf98hxgah40140jjwfrx3mwcdicj7f1"
   },
   "stable": {
    "version": [
@@ -127417,15 +127831,15 @@
   "repo": "bmag/emacs-purpose",
   "unstable": {
    "version": [
-    20210628,
-    715
+    20240504,
+    1017
    ],
    "deps": [
     "imenu-list",
     "let-alist"
    ],
-   "commit": "bb462f12f836414425edac32ebd069b4fd5b98d4",
-   "sha256": "1cw513mh3gyl21qpmgwqjgpi8kwddmd4n69l4ax5a5pv3vvwrcx9"
+   "commit": "776c5ef8fe2f0da0f9885526e3556af0f5736600",
+   "sha256": "0w23mljzw314nbr63wzl8m04ii1zjbl5gxgvmr9g8mfq848brsbf"
   },
   "stable": {
    "version": [
@@ -127925,15 +128339,28 @@
   "repo": "swflint/emacs-universal-sidecar",
   "unstable": {
    "version": [
-    20240323,
-    1901
+    20240428,
+    1852
    ],
    "deps": [
     "compat",
     "universal-sidecar"
    ],
-   "commit": "b67153c880284db0ed9864370b16287fd855fb54",
-   "sha256": "0irbpsfndggi1fmwsnqdr6nky4b9xbiila5rxkbrr28y2r6bxsck"
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
+  },
+  "stable": {
+   "version": [
+    1,
+    6,
+    0
+   ],
+   "deps": [
+    "compat",
+    "universal-sidecar"
+   ],
+   "commit": "4c78015d10caba9c700e6e6b582004ae1c1d5344",
+   "sha256": "0s48sbvqchaakz3nyn8qjwdy4yjdfq6wbjshwdp6ix1ykm5xd0h4"
   }
  },
  {
@@ -128337,14 +128764,14 @@
   "repo": "cjennings/emacs-wttrin",
   "unstable": {
    "version": [
-    20240422,
-    1633
+    20240521,
+    2004
    ],
    "deps": [
     "xterm-color"
    ],
-   "commit": "9b98fedc44b1ddcebaa48df2975493b37797c2fb",
-   "sha256": "180amp1n0qdn6m6vlzg0ddfxfqf37fjaswfxdxn03298j0jgzw14"
+   "commit": "5655b5fd438622581f84eb84c8880f20e11b87ed",
+   "sha256": "1mna2jahwv6kyr832jba4ch3xwx618v4dwhwaxxchv9hzgxpf38g"
   },
   "stable": {
    "version": [
@@ -128622,6 +129049,30 @@
   }
  },
  {
+  "ename": "xkb-mode",
+  "commit": "e2eedab31d075174dcc0151cc063927430462923",
+  "sha256": "1jd7gw9c01fmp1d3bh1ilnrcmrb0l1v6i18pw33fjnr4788v2m5s",
+  "fetcher": "github",
+  "repo": "captainflasmr/xkb-mode",
+  "unstable": {
+   "version": [
+    20240506,
+    904
+   ],
+   "commit": "b1de5233dc12749a97ad6a63d86b921bf1e33d3b",
+   "sha256": "0lhmr10k8vszfmq6s0x2vilxf15chci0lhf3990jwnl0y8x08i33"
+  },
+  "stable": {
+   "version": [
+    0,
+    2,
+    0
+   ],
+   "commit": "b1de5233dc12749a97ad6a63d86b921bf1e33d3b",
+   "sha256": "0lhmr10k8vszfmq6s0x2vilxf15chci0lhf3990jwnl0y8x08i33"
+  }
+ },
+ {
   "ename": "xkcd",
   "commit": "855ea20024b606314f8590129259747cac0bcc97",
   "sha256": "0gy2952zg1rq5gl10x7iwbchz5jibfcvikd3chifqbmil80wh6b5",
@@ -128882,14 +129333,14 @@
   "repo": "js-emacs/xref-js2",
   "unstable": {
    "version": [
-    20240417,
-    1454
+    20240504,
+    1449
    ],
    "deps": [
     "js2-mode"
    ],
-   "commit": "db816e926302293c134d1260322b0553953a43e2",
-   "sha256": "0wsi4ix44h0vzjbw25iga4ghk5l06398l7fpv75iayyspmnl6gxq"
+   "commit": "e215af9eedac69b40942fff9d5514704f9f4d43e",
+   "sha256": "0ngry3ncs6cixxxbb361ifrp2z466j4gw2d381n3siva1vvwcdqi"
   },
   "stable": {
    "version": [
@@ -129327,26 +129778,26 @@
   "repo": "zkry/yaml-pro",
   "unstable": {
    "version": [
-    20240313,
-    307
+    20240520,
+    1215
    ],
    "deps": [
     "yaml"
    ],
-   "commit": "775c0a4b82c79da0eb91620fb0cbbf6c8642815b",
-   "sha256": "16l1nmi9rizrcmx53xc8yr4y6lw5cg26hnwbw6l38i9nzhklx23n"
+   "commit": "d57cbd84ad0afd0fd3168e3d0e6cb5969b610b39",
+   "sha256": "1h6a6na77xfm88qcly6nc1r6bmf5l9aihjdyajfagfdms1wh8qf3"
   },
   "stable": {
    "version": [
     1,
-    0,
+    1,
     0
    ],
    "deps": [
     "yaml"
    ],
-   "commit": "c5d4d7eb3d2221dea7ee8c04286f1272806929c1",
-   "sha256": "0b0s3c7h3l94743qqpx16djn4d6xsrb59yhmz3fr7afrysp7d77q"
+   "commit": "d57cbd84ad0afd0fd3168e3d0e6cb5969b610b39",
+   "sha256": "1h6a6na77xfm88qcly6nc1r6bmf5l9aihjdyajfagfdms1wh8qf3"
   }
  },
  {
@@ -129612,14 +130063,14 @@
   "repo": "AndreaCrotti/yasnippet-snippets",
   "unstable": {
    "version": [
-    20240221,
-    1621
+    20240507,
+    943
    ],
    "deps": [
     "yasnippet"
    ],
-   "commit": "e6ec9f1822913cea7dc67cde6aeb8f2625980950",
-   "sha256": "0jvpsqbfl5ax2jzc30hkhd7z9l98ncnaqnpl72lws8iknhjnd29k"
+   "commit": "6fafad13bb4689600285d9e38c61958dd63c356d",
+   "sha256": "0p38k8a3l9vpph1g2a6wz40y30wb2nhp770rv8947bxzjc5xc0gf"
   },
   "stable": {
    "version": [
@@ -130575,14 +131026,14 @@
   "repo": "ymherklotz/emacs-zettelkasten",
   "unstable": {
    "version": [
-    20230108,
-    1724
+    20240517,
+    1319
    ],
    "deps": [
     "s"
    ],
-   "commit": "cc4d69c302a46b8f802a1871aae091df1f3398ba",
-   "sha256": "16an3pym99r0w6810zw1m1jydb7zvk01mw55zxl64kjc37zdlckr"
+   "commit": "6a33faf7b4231b03d056099a1aff40bbeee6e720",
+   "sha256": "0y67wpkivv947v0hi1n32azb8l9avxy7ss51psyyl5bnpzynxhxa"
   },
   "stable": {
    "version": [
diff --git a/pkgs/applications/editors/emacs/elisp-packages/update-from-overlay.flake.sh b/pkgs/applications/editors/emacs/elisp-packages/update-from-overlay.flake.sh
new file mode 100755
index 0000000000000..6f8e4d058c733
--- /dev/null
+++ b/pkgs/applications/editors/emacs/elisp-packages/update-from-overlay.flake.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env nix
+#! nix shell nixpkgs#bash nixpkgs#curl nixpkgs#nix nixpkgs#coreutils --command bash
+set -xeuo pipefail
+
+# Since flakes are not stable yet, we can't suppose everyone is using them.
+# Therefore, the original ./update-from-overlay should not be modified.
+# So, let's create a wrapper!
+
+source ./update-from-overlay
diff --git a/pkgs/applications/editors/gnome-builder/default.nix b/pkgs/applications/editors/gnome-builder/default.nix
index f0e7b272f8a73..f2d138489224b 100644
--- a/pkgs/applications/editors/gnome-builder/default.nix
+++ b/pkgs/applications/editors/gnome-builder/default.nix
@@ -40,15 +40,15 @@
 , xvfb-run
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-builder";
-  version = "46.1";
+  version = "46.2";
 
   outputs = [ "out" "devdoc" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-lhaWbVIqLIUCizPAm605cudp6fkK91VNXnGDfb3HiHE=";
+    url = "mirror://gnome/sources/gnome-builder/${lib.versions.major finalAttrs.version}/gnome-builder-${finalAttrs.version}.tar.xz";
+    hash = "sha256-DIV7iQA7JHh/Kx0qrhLSdaB0xmhLSIA7SMACdtk3GWM=";
   };
 
   patches = [
@@ -154,7 +154,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru.updateScript = gnome.updateScript {
-    packageName = pname;
+    packageName = "gnome-builder";
   };
 
   meta = with lib; {
@@ -175,4 +175,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     mainProgram = "gnome-builder";
   };
-}
+})
diff --git a/pkgs/applications/editors/tijolo/default.nix b/pkgs/applications/editors/tijolo/default.nix
index 2b76d492924be..ff198df57fe82 100644
--- a/pkgs/applications/editors/tijolo/default.nix
+++ b/pkgs/applications/editors/tijolo/default.nix
@@ -2,34 +2,49 @@
 , lib
 , fetchFromGitHub
 , crystal
-, vte
+, vte-gtk4
 , libgit2
+, gtk4
+, libadwaita
 , editorconfig-core-c
-, gtksourceview4
-, wrapGAppsHook3
+, gtksourceview5
+, wrapGAppsHook4
+, gobject-introspection
 , desktopToDarwinBundle
 }:
+
 crystal.buildCrystalPackage rec {
   pname = "tijolo";
-  version = "0.7.4";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "hugopl";
     repo = "tijolo";
     rev = "v${version}";
-    hash = "sha256-3TfXvRVP3lu43qF3RWCHnZ3czTaSl5EzrhuTlpnMfKo=";
+    hash = "sha256-+sRcS5bVH6WLmSDLiPw608OB6OjBVwLqWxGT5Y6caBc=";
   };
 
-  nativeBuildInputs = [ wrapGAppsHook3 ]
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace-fail "shards install" "true"
+  '';
+
+  shardsFile = ./shards.nix;
+  copyShardDeps = true;
+
+  preBuild = ''
+    cd lib/gi-crystal && shards build -Dpreview_mt --release --no-debug
+    cd ../.. && mkdir bin/ && cp lib/gi-crystal/bin/gi-crystal bin/
+  '';
+
+  nativeBuildInputs = [ wrapGAppsHook4 gobject-introspection ]
     ++ lib.optionals stdenv.isDarwin [ desktopToDarwinBundle ];
-  buildInputs = [ vte libgit2 gtksourceview4 editorconfig-core-c ];
+  buildInputs = [ gtk4 libadwaita vte-gtk4 libgit2 gtksourceview5 editorconfig-core-c ];
 
   buildTargets = [ "all" ];
   doCheck = false;
 
-  shardsFile = ./shards.nix;
-
-  installTargets = [ "install" "install-fonts"];
+  installTargets = [ "install" "post-install" "install-fonts"];
   doInstallCheck = false;
 
   meta = with lib; {
diff --git a/pkgs/applications/editors/tijolo/shards.nix b/pkgs/applications/editors/tijolo/shards.nix
index 480251e777552..360778119e285 100644
--- a/pkgs/applications/editors/tijolo/shards.nix
+++ b/pkgs/applications/editors/tijolo/shards.nix
@@ -1,27 +1,42 @@
 {
-  compiled_license = {
-    url = "https://github.com/elorest/compiled_license.git";
-    rev = "v1.2.2";
-    sha256 = "1f412r6m31cc093lcw31m2rp5s3y7vh6q3wc3xh9b8vccvmj21p7";
-  };
   fzy = {
     url = "https://github.com/hugopl/fzy.git";
     rev = "v0.5.5";
     sha256 = "1zk95m43ymx9ilwr6iw9l44nkmp4sas28ib0dkr07hkhgrkw68sv";
   };
-  gobject = {
-    url = "https://github.com/jhass/crystal-gobject.git";
-    rev = "v0.10.0";
-    sha256 = "02cc3486ifbffdbvgl75ylwn47gpfb2j0srz92jx5yz1d596x746";
+  gi-crystal = {
+    url = "https://github.com/hugopl/gi-crystal.git";
+    rev = "v0.22.2";
+    sha256 = "0bpa1f8iaf97z2kbgjc7nc8km7nd7bppiwna319lm2hvm8m5pw15";
+  };
+  gtk4 = {
+    url = "https://github.com/hugopl/gtk4.cr.git";
+    rev = "v0.16.1";
+    sha256 = "1cqkbh072y70l8g0p040vf50k920p32ry1larnwn9mqabd74jwaj";
+  };
+  harfbuzz = {
+    url = "https://github.com/hugopl/harfbuzz.cr.git";
+    rev = "v0.2.0";
+    sha256 = "06wgqxwyib5416yp53j2iwcbr3bl4jjxb1flm7z103l365par694";
+  };
+  libadwaita = {
+    url = "https://github.com/geopjr/libadwaita.cr.git";
+    rev = "cffabb56e911d2a90c53c2fd14d6bd08bf5ac446";
+    sha256 = "0gcq04vgxg0vff9fcalgzq9phq0y76diihkzhlfn91bdxwkx7rl3";
+  };
+  pango = {
+    url = "https://github.com/hugopl/pango.cr.git";
+    rev = "v0.3.1";
+    sha256 = "0xlf127flimnll875mcq92q7xsi975rrgdpcpmnrwllhdhfx9qmv";
   };
   toml = {
     url = "https://github.com/crystal-community/toml.cr.git";
     rev = "v0.7.0";
     sha256 = "0vznx2irvx6m8w6chdf9ms72n2w0cf2m5cwh0cjmp1jz9y3xwv7z";
   };
-  version_from_shard = {
-    url = "https://github.com/hugopl/version_from_shard.git";
-    rev = "v1.2.5";
-    sha256 = "0xizj0q4rd541rwjbx04cjifc2gfx4l5v6q2y7gmd0ndjmkgb8ik";
+  vte = {
+    url = "https://github.com/hugopl/vte.cr.git";
+    rev = "v0.1.0";
+    sha256 = "18x2l9cm8czhwpdfng3rz00kn07c49y0555kf2j5l2wb0g05snh3";
   };
 }
diff --git a/pkgs/applications/editors/vim/common.nix b/pkgs/applications/editors/vim/common.nix
index 8b38e1c6e6e4a..eb5b49a443450 100644
--- a/pkgs/applications/editors/vim/common.nix
+++ b/pkgs/applications/editors/vim/common.nix
@@ -1,6 +1,6 @@
 { lib, fetchFromGitHub }:
 rec {
-  version = "9.1.0377";
+  version = "9.1.0412";
 
   outputs = [ "out" "xxd" ];
 
@@ -8,7 +8,7 @@ rec {
     owner = "vim";
     repo = "vim";
     rev = "v${version}";
-    hash = "sha256-cfN/QbnpWIQmLtpXWPc1JnaaX+J10ietObN/B9lE1F0=";
+    hash = "sha256-uLdXFZ8eW+iMXrvkaEkArZmRfAiyORaEZxFFPt0TrdI=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/editors/vim/plugins/deprecated.json b/pkgs/applications/editors/vim/plugins/deprecated.json
index 2158caac1bb0d..09e8bcb216a60 100644
--- a/pkgs/applications/editors/vim/plugins/deprecated.json
+++ b/pkgs/applications/editors/vim/plugins/deprecated.json
@@ -8,11 +8,11 @@
         "new": "cmp-tmux"
     },
     "fern-vim": {
-        "date": "2024-05-17",
+        "date": "2024-05-28",
         "new": "vim-fern"
     },
     "gina-vim": {
-        "date": "2024-05-17",
+        "date": "2024-05-28",
         "new": "vim-gina"
     },
     "gist-vim": {
@@ -60,7 +60,7 @@
         "new": "vim-suda"
     },
     "vim-fsharp": {
-        "date": "2024-05-17",
+        "date": "2024-05-28",
         "new": "zarchive-vim-fsharp"
     },
     "vim-jade": {
diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix
index d6089e70b84d6..d63856025ebc6 100644
--- a/pkgs/applications/editors/vim/plugins/generated.nix
+++ b/pkgs/applications/editors/vim/plugins/generated.nix
@@ -65,24 +65,24 @@ final: prev:
 
   CopilotChat-nvim = buildVimPlugin {
     pname = "CopilotChat.nvim";
-    version = "2024-05-08";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "CopilotC-Nvim";
       repo = "CopilotChat.nvim";
-      rev = "af18fa2fbc765ddf9bacd22e15c974642f20d19b";
-      sha256 = "16s0sj1qydz56xc1ydgnm9q6qndrj535c86113ji8nsgxs29gk1k";
+      rev = "05775613be29d908fa8001e2ea82bf44beb618cb";
+      sha256 = "0hc7gm09hmsda1r10yv618pr2h9jr0maaigk833jc92m4i4md29b";
     };
     meta.homepage = "https://github.com/CopilotC-Nvim/CopilotChat.nvim/";
   };
 
   Coqtail = buildVimPlugin {
     pname = "Coqtail";
-    version = "2024-05-06";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "whonore";
       repo = "Coqtail";
-      rev = "60d5fef9e8f272ca9dd40d68dd692fb448a5f606";
-      sha256 = "0acwav5f9hrjcwg3lw2l8dhh9y5yqcd0af8wkimzryfa1k7vqxiq";
+      rev = "8cacc5e0994f1ee5abec4f699b66dbf0799e8f3c";
+      sha256 = "17p7hn0zaqckywc5davdniz75vsgbhww0kyphsrrai52qpky86fl";
     };
     meta.homepage = "https://github.com/whonore/Coqtail/";
   };
@@ -137,12 +137,12 @@ final: prev:
 
   Ionide-vim = buildVimPlugin {
     pname = "Ionide-vim";
-    version = "2024-03-26";
+    version = "2024-05-24";
     src = fetchFromGitHub {
       owner = "ionide";
       repo = "Ionide-vim";
-      rev = "d94dd8f0e34fe230bd84d930f63732619163ab6e";
-      sha256 = "1cyd8yysspcw552ws6zn1zpf1dgyhxjr8n8plikr0mh05jzqzv01";
+      rev = "00099c3cf53cba28a1d8084ab8d21639c62bd747";
+      sha256 = "1c3fzc87468zcl2fk6av0fl848sp82wpr9rdc4yc3l33p2mxqqy9";
     };
     meta.homepage = "https://github.com/ionide/Ionide-vim/";
   };
@@ -185,24 +185,24 @@ final: prev:
 
   LazyVim = buildVimPlugin {
     pname = "LazyVim";
-    version = "2024-05-16";
+    version = "2024-05-28";
     src = fetchFromGitHub {
       owner = "LazyVim";
       repo = "LazyVim";
-      rev = "07923f3701af23504bb09bf6cc11c4fb0a1894e7";
-      sha256 = "1ggnx9gw4x6cis570djvpmk21cnfixay2b1k2c3gs7vxmfivh0lj";
+      rev = "a3011c91d4dfb64a4e9a9cb0928efefb0a25c4b7";
+      sha256 = "08gzg1wipdqzg993qmda7w37xhbv3i0lszhy44zv7b3pak8jrzj1";
     };
     meta.homepage = "https://github.com/LazyVim/LazyVim/";
   };
 
   LeaderF = buildVimPlugin {
     pname = "LeaderF";
-    version = "2024-05-13";
+    version = "2024-05-28";
     src = fetchFromGitHub {
       owner = "Yggdroot";
       repo = "LeaderF";
-      rev = "25218c5ff71e2569155a23a757fbc0d79b3a5608";
-      sha256 = "1kja577s73qkpx2i5qaqwv37mhn3i24zm436j4apcy03048hmlmx";
+      rev = "ffe392d35d377d4655b8f7af2b24955af1d13433";
+      sha256 = "0b3cih2kiy5lpbi35m94dzjw2xmv5z2a5ijjhgd7jwlwz5dcjix7";
     };
     meta.homepage = "https://github.com/Yggdroot/LeaderF/";
   };
@@ -317,12 +317,12 @@ final: prev:
 
   SchemaStore-nvim = buildVimPlugin {
     pname = "SchemaStore.nvim";
-    version = "2024-05-14";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "b0o";
       repo = "SchemaStore.nvim";
-      rev = "3c32d6a7bc56d56d4e3cc16fb21b59465a527aeb";
-      sha256 = "0z4s60ahpm7scqqajli95jcjafcza37wwjh8lzhlydc2zy7xg4z0";
+      rev = "931f9f3b7b60ec976159cb01b4a40da3829ac2fd";
+      sha256 = "10qzfz0r72sp26fa9kvfa2qvswkkdl0q891gp648zjsqrz4gmykq";
     };
     meta.homepage = "https://github.com/b0o/SchemaStore.nvim/";
   };
@@ -534,12 +534,12 @@ final: prev:
 
   aerial-nvim = buildVimPlugin {
     pname = "aerial.nvim";
-    version = "2024-05-16";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "aerial.nvim";
-      rev = "97a838ccc03ba010a667cba49d9820f6823f4d51";
-      sha256 = "0pkbyiskvqpnl5d6lr60agdqn52skx87x5jdzflni087wxffr0ag";
+      rev = "bd5f141a547c082e9c1644026f38590407dad659";
+      sha256 = "1102hsq09mydcm66lbqgj9v7jkgs6s2i3d6x1za5vy0akqzxg6zj";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/stevearc/aerial.nvim/";
@@ -715,12 +715,12 @@ final: prev:
 
   astrotheme = buildVimPlugin {
     pname = "astrotheme";
-    version = "2024-05-08";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "AstroNvim";
       repo = "astrotheme";
-      rev = "7e47b7900229365bc0dca2a2eee2acc62dfc9dc3";
-      sha256 = "14gjl0w921c3bgl4hcvv1px42j1z7i2bsqh91lps33r18sj3x833";
+      rev = "2bcd030c93489a02aab6cff2288e49adb0c84fad";
+      sha256 = "0gmj86y9lf824yyvck1qfd61a98p9y0rgw1ncpw9ck4s33903r4j";
     };
     meta.homepage = "https://github.com/AstroNvim/astrotheme/";
   };
@@ -823,12 +823,12 @@ final: prev:
 
   asyncrun-vim = buildVimPlugin {
     pname = "asyncrun.vim";
-    version = "2024-05-13";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "skywind3000";
       repo = "asyncrun.vim";
-      rev = "4261fa97f4a5429ec4bf5cfeaba74159c7e74f12";
-      sha256 = "18ib7d5bk2hgb7jyyw1ypskp6hrgawwbsnq7zlm811sxz5jiv045";
+      rev = "182c636909cfd41e1d72e1278a7db6a4e5271b81";
+      sha256 = "0mbr0abpwj45bnc3riv3mgfj9ic3xjbxkgwmkzjrr42zw208rki5";
     };
     meta.homepage = "https://github.com/skywind3000/asyncrun.vim/";
   };
@@ -859,12 +859,12 @@ final: prev:
 
   aurora = buildVimPlugin {
     pname = "aurora";
-    version = "2024-03-20";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "ray-x";
       repo = "aurora";
-      rev = "f712bacedb99b862f558540a1d67ec5b7dcee30b";
-      sha256 = "13ip7kz9di88cind0c6zbl78bjcmyadlh36fdk1j8zfxilh406s8";
+      rev = "fe84aed4bcf6648381adbe1f81ccf3aec752fa45";
+      sha256 = "0knj1xvffmnh6h97jz3ypfhikc89wgfyfwz98qld9z3k2c83k4ln";
     };
     meta.homepage = "https://github.com/ray-x/aurora/";
   };
@@ -919,12 +919,12 @@ final: prev:
 
   auto-session = buildVimPlugin {
     pname = "auto-session";
-    version = "2024-04-14";
+    version = "2024-05-21";
     src = fetchFromGitHub {
       owner = "rmagatti";
       repo = "auto-session";
-      rev = "9e0a169b6fce8791278abbd110717b921afe634d";
-      sha256 = "0d1rbdsrlprr8dsw948i352c8564hglh56vwg80qxqib2ssfxvy2";
+      rev = "af2219b9fa99c1d7ac409bd9eac094c459d3f52d";
+      sha256 = "16qs3xqlfcdcrd9phyf180hhcp28cc4z2lsg68zr3jhdlyls6yxj";
     };
     meta.homepage = "https://github.com/rmagatti/auto-session/";
   };
@@ -979,12 +979,12 @@ final: prev:
 
   awesome-vim-colorschemes = buildVimPlugin {
     pname = "awesome-vim-colorschemes";
-    version = "2023-05-06";
+    version = "2024-05-18";
     src = fetchFromGitHub {
       owner = "rafi";
       repo = "awesome-vim-colorschemes";
-      rev = "4b2787b8894c4a70c42d15c2808d7cf278cb6abb";
-      sha256 = "1nldzigjx57q0kgqgrp57h8nb0n88yf1nj0snarqpbpg05d395gm";
+      rev = "ae5e02298c8de6a5aa98fe4d29a21874cfcc3619";
+      sha256 = "0rjrv4dh6cr1ppgp7jmxhp00xrjmzv536zf479jwpn1qngmnr6bd";
     };
     meta.homepage = "https://github.com/rafi/awesome-vim-colorschemes/";
   };
@@ -1039,24 +1039,24 @@ final: prev:
 
   bamboo-nvim = buildVimPlugin {
     pname = "bamboo.nvim";
-    version = "2024-05-15";
+    version = "2024-05-21";
     src = fetchFromGitHub {
       owner = "ribru17";
       repo = "bamboo.nvim";
-      rev = "2ca4ac5ddf80c0171469ec8d74fce036c98be458";
-      sha256 = "1jcfwds6395i89scxkzd75cmgz99kcqrk73ic3z5k27vn6n59n8m";
+      rev = "df5718b0c3da5c7afa30861ae8ccbed33cf226cf";
+      sha256 = "1zgqbfq5xzrqkk67slcsrpi3vidlchkpqhjjlsxw3ixva5c39gcn";
     };
     meta.homepage = "https://github.com/ribru17/bamboo.nvim/";
   };
 
   barbar-nvim = buildVimPlugin {
     pname = "barbar.nvim";
-    version = "2024-05-15";
+    version = "2024-05-28";
     src = fetchFromGitHub {
       owner = "romgrk";
       repo = "barbar.nvim";
-      rev = "5880baa3bf6b262ee3c465519fce3e71a6045dec";
-      sha256 = "0rk6l5vhxnryiy42rdykpqs5i9jh2g1bk19s674br5rsiwzmrml5";
+      rev = "d181f2cfd4b828f9c6f1e10e69c68241de59f54f";
+      sha256 = "1qxhi60h5vy3ygm66i18122ib1xr01l8m6jn43bfav6x74jdr3si";
     };
     meta.homepage = "https://github.com/romgrk/barbar.nvim/";
   };
@@ -1075,12 +1075,12 @@ final: prev:
 
   base16-nvim = buildVimPlugin {
     pname = "base16-nvim";
-    version = "2024-04-18";
+    version = "2024-05-23";
     src = fetchFromGitHub {
       owner = "RRethy";
       repo = "base16-nvim";
-      rev = "eec6882101dd189117f79c5d18d389d20cfc0415";
-      sha256 = "060cm7071gr3vpizd7iinpgk50igsqrgcrffa0ali2r6mdhxcwd7";
+      rev = "6ac181b5733518040a33017dde654059cd771b7c";
+      sha256 = "0q47jbh6abn2hql9ghi9ayx3l8pdrdcdrnf4qfk7cp0v1bl7y48r";
     };
     meta.homepage = "https://github.com/RRethy/base16-nvim/";
   };
@@ -1099,12 +1099,12 @@ final: prev:
 
   base46 = buildVimPlugin {
     pname = "base46";
-    version = "2024-05-14";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "nvchad";
       repo = "base46";
-      rev = "a2bd5e8896fc7b6110e62dc4efdb3bf0f077baed";
-      sha256 = "1h30781h2iykwiknchil0zp0p2lyzdi5vkz363l74q1hq7gb38pc";
+      rev = "b48abead2b70aa1671ce604dc781f8fb2036a133";
+      sha256 = "047az8akpd9lh2gsic4xy5knjhczix91zj71372qwqpjmjlg543f";
     };
     meta.homepage = "https://github.com/nvchad/base46/";
   };
@@ -1303,12 +1303,12 @@ final: prev:
 
   bufferline-nvim = buildVimPlugin {
     pname = "bufferline.nvim";
-    version = "2024-04-22";
+    version = "2024-05-24";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "bufferline.nvim";
-      rev = "73540cb95f8d95aa1af3ed57713c6720c78af915";
-      sha256 = "0z3fg5zff1gng6wzsbj56sbbvmq9f30y6bzzkd9kjrfzsml6cybc";
+      rev = "99337f63f0a3c3ab9519f3d1da7618ca4f91cffe";
+      sha256 = "00rvijzj17449zmsiqwp8ybcsdd84frny3kl3b7wm57bbiis9w7h";
     };
     meta.homepage = "https://github.com/akinsho/bufferline.nvim/";
   };
@@ -1387,12 +1387,12 @@ final: prev:
 
   chadtree = buildVimPlugin {
     pname = "chadtree";
-    version = "2024-05-10";
+    version = "2024-05-21";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "chadtree";
-      rev = "28ec469ed46c6366dbda7f3a4f57b204d7bf8e49";
-      sha256 = "1f9bmaj0lhiwzig0g36gbsy3mkq2lmcqx762h4z3kn1acci3dlk1";
+      rev = "274f1c738136f2af95ab6cdfbd4a87f204cf513c";
+      sha256 = "1vnjadm5shfc7fhhg92h3x31zhxfcfvv2mms594dw2igadyy1n8h";
     };
     meta.homepage = "https://github.com/ms-jpq/chadtree/";
   };
@@ -1447,12 +1447,12 @@ final: prev:
 
   citruszest-nvim = buildVimPlugin {
     pname = "citruszest.nvim";
-    version = "2024-04-29";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "zootedb0t";
       repo = "citruszest.nvim";
-      rev = "44c7ef5568f5377f3d9b5a8b7b267c015ea3205c";
-      sha256 = "10d5ia00q5wfycnvyxfn5hffy2n5jk4igjm5859i56i11pl0qmsa";
+      rev = "e45e611577d6dc6b4f55e4e72bc2842d440a6197";
+      sha256 = "0y22n0y0si9sbi8ryp0w1gv2h9f8dr3ji8nlb8zjrnfmvmrclm9n";
     };
     meta.homepage = "https://github.com/zootedb0t/citruszest.nvim/";
   };
@@ -1471,12 +1471,12 @@ final: prev:
 
   clangd_extensions-nvim = buildVimPlugin {
     pname = "clangd_extensions.nvim";
-    version = "2024-05-04";
+    version = "2024-05-18";
     src = fetchFromGitHub {
       owner = "p00f";
       repo = "clangd_extensions.nvim";
-      rev = "430a8f56605cb1d0ed9876301d6e9bf675195e16";
-      sha256 = "1gqbl3s963dmz0bldxl99sg7zvqgmcfz3x1g8i5whaqqx3ig82m3";
+      rev = "f36d788f05cfb73d4fd2e606e6ad15f8b842124f";
+      sha256 = "14fz35fqnim3imv0bkhx106vbbfiimrlw57z13s97v7vqr4ij7xg";
     };
     meta.homepage = "https://github.com/p00f/clangd_extensions.nvim/";
   };
@@ -1543,12 +1543,12 @@ final: prev:
 
   cmake-tools-nvim = buildVimPlugin {
     pname = "cmake-tools.nvim";
-    version = "2024-05-12";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "Civitasv";
       repo = "cmake-tools.nvim";
-      rev = "b221c5973ca520b0f079e16cd9919a8d944f7890";
-      sha256 = "0whqznv233hn8241h0nv5r30qcnlzf6ziqxpjcdsxp97s1vcg1pi";
+      rev = "131540d8015a63511904570e7205eefa49aa74a7";
+      sha256 = "0mzdd2kl5lgsb6dip85988ncp2pqdfl1jqixgakvf2vqgb11xijn";
     };
     meta.homepage = "https://github.com/Civitasv/cmake-tools.nvim/";
   };
@@ -1567,14 +1567,13 @@ final: prev:
 
   cmp-async-path = buildVimPlugin {
     pname = "cmp-async-path";
-    version = "2024-02-02";
-    src = fetchFromGitHub {
-      owner = "FelipeLema";
-      repo = "cmp-async-path";
-      rev = "9d581eec5acf812316913565c135b0d1ee2c9a71";
-      sha256 = "0dv00zsgyjqk98cnxkmc4hjqgsm5mhjg4q2j7xkwz17kq59fiv26";
+    version = "2024-03-25";
+    src = fetchgit {
+      url = "https://codeberg.org/FelipeLema/cmp-async-path/";
+      rev = "7df7f3721c45aac26b6e0474087538f4681c9c7a";
+      sha256 = "15k6q1hfv9bggzz8vh9pd5mz9vay2cr6xp7bb4iqhahsgyr9c99d";
     };
-    meta.homepage = "https://github.com/FelipeLema/cmp-async-path/";
+    meta.homepage = "https://codeberg.org/FelipeLema/cmp-async-path/";
   };
 
   cmp-beancount = buildVimPlugin {
@@ -1603,12 +1602,12 @@ final: prev:
 
   cmp-calc = buildVimPlugin {
     pname = "cmp-calc";
-    version = "2023-08-18";
+    version = "2024-05-18";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "cmp-calc";
-      rev = "ce91d14d2e7a8b3f6ad86d85e34d41c1ae6268d9";
-      sha256 = "1vcwkrr7v04m0m3brppcppcfazw6awxxpann4rp9j1x62nbi60ld";
+      rev = "5947b412da67306c5b68698a02a846760059be2e";
+      sha256 = "0bbi7b06fcpn9qwap6p44p1r0msnszdl6japn0izgk13853lb3ac";
     };
     meta.homepage = "https://github.com/hrsh7th/cmp-calc/";
   };
@@ -1843,12 +1842,12 @@ final: prev:
 
   cmp-nvim-lsp = buildVimPlugin {
     pname = "cmp-nvim-lsp";
-    version = "2023-12-10";
+    version = "2024-05-17";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "cmp-nvim-lsp";
-      rev = "5af77f54de1b16c34b23cba810150689a3a90312";
-      sha256 = "03q0v6wgi1lphcfjjdsc26zhnmj3ab9xxsiyp1adl3s1ybv22jzz";
+      rev = "39e2eda76828d88b773cc27a3f61d2ad782c922d";
+      sha256 = "13zcw6c7zppvbsjlr8yj3vml6ayalvhjbbqszljmn1f9hmkpwg89";
     };
     meta.homepage = "https://github.com/hrsh7th/cmp-nvim-lsp/";
   };
@@ -1867,12 +1866,12 @@ final: prev:
 
   cmp-nvim-lsp-signature-help = buildVimPlugin {
     pname = "cmp-nvim-lsp-signature-help";
-    version = "2023-02-03";
+    version = "2024-05-17";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "cmp-nvim-lsp-signature-help";
-      rev = "3d8912ebeb56e5ae08ef0906e3a54de1c66b92f1";
-      sha256 = "0bkviamzpkw6yv4cyqa9pqm1g2gsvzk87v8xc4574yf86jz5hg68";
+      rev = "031e6ba70b0ad5eee49fd2120ff7a2e325b17fa7";
+      sha256 = "08ipis3agyiaiqn91lq6imsnwyhqpadah7aj1v47v12ycy923cxl";
     };
     meta.homepage = "https://github.com/hrsh7th/cmp-nvim-lsp-signature-help/";
   };
@@ -1903,12 +1902,12 @@ final: prev:
 
   cmp-nvim-ultisnips = buildVimPlugin {
     pname = "cmp-nvim-ultisnips";
-    version = "2023-07-05";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "quangnguyen30192";
       repo = "cmp-nvim-ultisnips";
-      rev = "24bca5c3e137b28cd87442d4fc51a2b312dd99cc";
-      sha256 = "0frkj8xv1jm96klsff4x2hbqbbyxbfz9iaxq3wx1bldhdb71r88r";
+      rev = "ae00afe981c9d58619b84a8c511826dd89705f4b";
+      sha256 = "0xsz80d6yf020xf576lc7y91x7by53f70yarradfz4dgsj9brscm";
     };
     meta.homepage = "https://github.com/quangnguyen30192/cmp-nvim-ultisnips/";
   };
@@ -2227,12 +2226,12 @@ final: prev:
 
   coc-nvim = buildVimPlugin {
     pname = "coc.nvim";
-    version = "2024-05-06";
+    version = "2024-05-17";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc.nvim";
-      rev = "ad6b31032f4eb4c407dfc30c3de94e67571ecc07";
-      sha256 = "0jyymnlj3qs4f6ilmq2wxj3ghxq0iand4am0d70i81s7izw26wcg";
+      rev = "f1ffb8d9b336ec6fe2ea0bd68ffeff5b77150e43";
+      sha256 = "10c92m0rf1dqqhbw4nvm3v3z4sxm3q07xcg8jpi6vpwjgviqhrxa";
     };
     meta.homepage = "https://github.com/neoclide/coc.nvim/";
   };
@@ -2263,12 +2262,12 @@ final: prev:
 
   codeium-vim = buildVimPlugin {
     pname = "codeium.vim";
-    version = "2024-05-03";
+    version = "2024-05-23";
     src = fetchFromGitHub {
       owner = "Exafunction";
       repo = "codeium.vim";
-      rev = "9406f13cf3eaa08318b76746bd105a04506cab27";
-      sha256 = "083qfmiskr0xahi5c8h46qkrsy4bahcy63rf74g315wwfcv491vz";
+      rev = "289eb724e5d6fab2263e94a1ad6e54afebefafb2";
+      sha256 = "1cc3w0d4dd73ymz8bdq7b7c26k1zymbsa4cjlqbzlv94kkilyfdc";
     };
     meta.homepage = "https://github.com/Exafunction/codeium.vim/";
   };
@@ -2441,6 +2440,18 @@ final: prev:
     meta.homepage = "https://github.com/krady21/compiler-explorer.nvim/";
   };
 
+  compiler-nvim = buildVimPlugin {
+    pname = "compiler.nvim";
+    version = "2024-05-27";
+    src = fetchFromGitHub {
+      owner = "Zeioth";
+      repo = "compiler.nvim";
+      rev = "1cf17971b21415d634fe4c8af791f0b1b4d3a727";
+      sha256 = "0rzm7pvgdsfbxxhz8n78xv8ys3l51fb8szxyfmgbbpqpp84jj77d";
+    };
+    meta.homepage = "https://github.com/Zeioth/compiler.nvim/";
+  };
+
   completion-buffers = buildVimPlugin {
     pname = "completion-buffers";
     version = "2021-01-17";
@@ -2503,24 +2514,24 @@ final: prev:
 
   conflict-marker-vim = buildVimPlugin {
     pname = "conflict-marker.vim";
-    version = "2022-11-01";
+    version = "2024-05-20";
     src = fetchFromGitHub {
       owner = "rhysd";
       repo = "conflict-marker.vim";
-      rev = "11a4d42244755505b66b15cd4496a150432eb5e3";
-      sha256 = "00sdnhr7fnj27sdjj88cypbw5zp264z290a0xfyp9gbmdnz1nlgx";
+      rev = "62742b2ffe7a433988759c67b5c5a22eff74a14b";
+      sha256 = "1fg99ry73p1kxms30dfgf1pfmmi31rvrdhh839qrk1d82w8mf9vz";
     };
     meta.homepage = "https://github.com/rhysd/conflict-marker.vim/";
   };
 
   conform-nvim = buildVimPlugin {
     pname = "conform.nvim";
-    version = "2024-05-16";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "conform.nvim";
-      rev = "00f9d91391b04b1935e2f15948bd96cc111e7d3a";
-      sha256 = "0ydckbdj7zps3i04hb5cx5ddzxy5g1pc022i6zfrpfs0yqv9jjiv";
+      rev = "f3b930db4964d60e255c8f9e37b7f2218dfc08cb";
+      sha256 = "0xw2b1i2vn73l5381gh2vnw8jhxbazvfc158r8zmwys75byfg50b";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/stevearc/conform.nvim/";
@@ -2528,12 +2539,12 @@ final: prev:
 
   conjure = buildVimPlugin {
     pname = "conjure";
-    version = "2024-03-11";
+    version = "2024-05-24";
     src = fetchFromGitHub {
       owner = "Olical";
       repo = "conjure";
-      rev = "dfb9f75010a181c090ab905b2a2b4180aea20f15";
-      sha256 = "0swwnb5sr3j5yx77f94ymdc1jpv1nyi0qj9l402qzz5dc4pi2mp6";
+      rev = "e97e0db338f76f943f3043089000252adbecc966";
+      sha256 = "1lzbkfgvn956dcnc0l2zl910r39hfrpxqrx7l09fhv9d91lqn6w4";
     };
     meta.homepage = "https://github.com/Olical/conjure/";
   };
@@ -2588,12 +2599,12 @@ final: prev:
 
   copilot-vim = buildVimPlugin {
     pname = "copilot.vim";
-    version = "2024-05-10";
+    version = "2024-05-18";
     src = fetchFromGitHub {
       owner = "github";
       repo = "copilot.vim";
-      rev = "dfa657c80c915a6a3eb6d9010046a0576ad25a37";
-      sha256 = "0jf0hljpg5yl26qazz3xpg7hcdv3ywjw81s4g2b42wsrwsmafzsf";
+      rev = "25feddf8e3aa79f0573c8f43ddb13c44c530cfa5";
+      sha256 = "1rrfgcvwy9z521509hn0pj9mw2lxa8sh4izdsvlgbl6k0synx2i4";
     };
     meta.homepage = "https://github.com/github/copilot.vim/";
   };
@@ -2636,24 +2647,24 @@ final: prev:
 
   coq_nvim = buildVimPlugin {
     pname = "coq_nvim";
-    version = "2024-04-26";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "coq_nvim";
-      rev = "23ab6c20039a43bb21ce1c586ef0eece026c68bd";
-      sha256 = "0ng4z0600fsbg7ln72305vyvhn7fd4rj0xzi1n7f57avhqvc4lpr";
+      rev = "055d7aa94d14eabf16656e6d9e433ad81bc96b94";
+      sha256 = "08kqb3kljrmjl3lhma6xg7a2mr5hg64wi87a3phrpfg448aa2rhn";
     };
     meta.homepage = "https://github.com/ms-jpq/coq_nvim/";
   };
 
   cornelis = buildVimPlugin {
     pname = "cornelis";
-    version = "2024-04-17";
+    version = "2024-05-17";
     src = fetchFromGitHub {
       owner = "isovector";
       repo = "cornelis";
-      rev = "c97b4817034a927dcadb22294cf97a88087a935f";
-      sha256 = "03wkq7jly9syv7kqsf66hdq8p7fqk6a240azcys9fsak797nbs1a";
+      rev = "06d6020eed1a3520bb2887337dd5b27b1755968b";
+      sha256 = "020ykz38y5mgz1m6njscgd4pksdfx1sryl1ws950l833dhhzdzc0";
     };
     meta.homepage = "https://github.com/isovector/cornelis/";
   };
@@ -2780,12 +2791,12 @@ final: prev:
 
   cyberdream-nvim = buildVimPlugin {
     pname = "cyberdream.nvim";
-    version = "2024-05-15";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "scottmckendry";
       repo = "cyberdream.nvim";
-      rev = "c7aa987f31abf4fc58fa1eafd917a337759e5d69";
-      sha256 = "1f227s9sp4lx5vgfr568p5vnchrgr9vbsgsxl94rvjpc10vkbjyz";
+      rev = "9eb7c63091d7369eba9015e9c656ca644ba6a3a4";
+      sha256 = "1mwx1ag0na59isqz2x18nf8d49w3g2zhrx9gxw7hkym0gagwfln9";
     };
     meta.homepage = "https://github.com/scottmckendry/cyberdream.nvim/";
   };
@@ -2816,36 +2827,36 @@ final: prev:
 
   dashboard-nvim = buildVimPlugin {
     pname = "dashboard-nvim";
-    version = "2024-05-05";
+    version = "2024-05-17";
     src = fetchFromGitHub {
       owner = "nvimdev";
       repo = "dashboard-nvim";
-      rev = "a0a78099658c7d4be3714f657b18ca8285d5d106";
-      sha256 = "1vfzh9dsfggchxsyypkl8njdapmy5vhd0kwihvv32997x2sh1qks";
+      rev = "5182c09ac8085dc73b78ad0ea9f5479c9a866fc4";
+      sha256 = "102dvafbn7dcgsxidm1668dqakb8qkpglygd715l5gbx7d3hgd4q";
     };
     meta.homepage = "https://github.com/nvimdev/dashboard-nvim/";
   };
 
   debugprint-nvim = buildVimPlugin {
     pname = "debugprint.nvim";
-    version = "2024-05-16";
+    version = "2024-05-21";
     src = fetchFromGitHub {
       owner = "andrewferrier";
       repo = "debugprint.nvim";
-      rev = "1a77a32dda9ba25000118c82aa9146b780dfb540";
-      sha256 = "048bvdz06f1hxmix3nhjj5dwynhaazg6895mnd1lj3m8z3rfs9gh";
+      rev = "375e992064637e6db6da29caab0f90715a5d4d5a";
+      sha256 = "1cd7psb7wgy9lz5pgbfp1csbdg98p4cp07yyhlxxw3r41fc6al54";
     };
     meta.homepage = "https://github.com/andrewferrier/debugprint.nvim/";
   };
 
   deepwhite-nvim = buildVimPlugin {
     pname = "deepwhite.nvim";
-    version = "2024-03-25";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "Verf";
       repo = "deepwhite.nvim";
-      rev = "264cf7a2e881b806edd379342cffba3da38fbc07";
-      sha256 = "1xjqqvn7ijc6gcifm972gflx36zf542wqyphs3hkxyx0h2ngfix9";
+      rev = "f1db7888f0a7cf84d6d802c17c074bccca0a72a5";
+      sha256 = "1zjs2h6kln346sw2p7msrqv6h451i8b4n7kbmdjncvxmf8b9jw1l";
     };
     meta.homepage = "https://github.com/Verf/deepwhite.nvim/";
   };
@@ -3190,12 +3201,12 @@ final: prev:
 
   dhall-vim = buildVimPlugin {
     pname = "dhall-vim";
-    version = "2024-05-08";
+    version = "2024-05-18";
     src = fetchFromGitHub {
       owner = "vmchale";
       repo = "dhall-vim";
-      rev = "c1790ded928a57abba9ebc8f46cf57a52733af04";
-      sha256 = "05jd65bxclgmb97hyg9akcz4zw7n81wh53a1dp7rxvannbxzd6db";
+      rev = "bd9fd99f21dbc7174fb728a21d04e073ef7dd930";
+      sha256 = "15g06ddnljvi9c9n8sk6n50bb1sh7qq1d1q2xwqh59846n14sh31";
     };
     meta.homepage = "https://github.com/vmchale/dhall-vim/";
   };
@@ -3226,24 +3237,24 @@ final: prev:
 
   dial-nvim = buildVimPlugin {
     pname = "dial.nvim";
-    version = "2023-11-30";
+    version = "2024-05-18";
     src = fetchFromGitHub {
       owner = "monaqa";
       repo = "dial.nvim";
-      rev = "27eb570085db2ef44bff4f620d3806039184651c";
-      sha256 = "1f7ycdn9y27lz6925aqcjfhdyp1rab845dnc665cyzl5rai3kpsj";
+      rev = "7af2daaaf933b0617ded0f78b49f4d5fc45f9f64";
+      sha256 = "131h6qpnzdgq72z4wkf3pm1xm848iyhbkim3689l0x950z1f56n1";
     };
     meta.homepage = "https://github.com/monaqa/dial.nvim/";
   };
 
   diffview-nvim = buildVimPlugin {
     pname = "diffview.nvim";
-    version = "2023-11-20";
+    version = "2024-05-24";
     src = fetchFromGitHub {
       owner = "sindrets";
       repo = "diffview.nvim";
-      rev = "3dc498c9777fe79156f3d32dddd483b8b3dbd95f";
-      sha256 = "1zvgm0icmc4z48vnd6pn7pvl6sg89mm4symr0rwiix8s942nfiyw";
+      rev = "1ec7b56b959dab18f7030f541c33ae60e18a6f88";
+      sha256 = "1nq6yprjp3y43cks26qmrdgpwnzk43lqdf1piamih4bz4g0yqamh";
     };
     meta.homepage = "https://github.com/sindrets/diffview.nvim/";
   };
@@ -3322,24 +3333,24 @@ final: prev:
 
   dressing-nvim = buildVimPlugin {
     pname = "dressing.nvim";
-    version = "2024-05-16";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "dressing.nvim";
-      rev = "572314728cb1ce012e825fd66331f52c94acac12";
-      sha256 = "1i65g5qlk2i16d74frpwra8m8cvvcwj6d1hncd2gdk1h4pssxgyc";
+      rev = "3c38ac861e1b8d4077ff46a779cde17330b29f3a";
+      sha256 = "00rg3wibv8bl61amf68776pd1pbm2nn043pcdqbgjhrsf3x3axh1";
     };
     meta.homepage = "https://github.com/stevearc/dressing.nvim/";
   };
 
   dropbar-nvim = buildVimPlugin {
     pname = "dropbar.nvim";
-    version = "2024-05-16";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "Bekaboo";
       repo = "dropbar.nvim";
-      rev = "9fc10fa1a34ec3e55b470962e4e94644611bd209";
-      sha256 = "135qc6ix0kav0knq4y5843525z5kh1rs2d56k71rk9986kb4vlk1";
+      rev = "2b546383bdf4daa254ac70c760ee1e5524bc60b1";
+      sha256 = "0x52s0s0skqim321frhi9kd9h0d391fngmrc25bgn47s4wkfkp38";
     };
     meta.homepage = "https://github.com/Bekaboo/dropbar.nvim/";
   };
@@ -3358,12 +3369,12 @@ final: prev:
 
   edge = buildVimPlugin {
     pname = "edge";
-    version = "2024-05-15";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "edge";
-      rev = "896dbba0bf99b0cc2764c55a170958c9b0e78595";
-      sha256 = "11i9xgg3yl1ccra8bdqjdrkha2gjk2hmxqdb98gzkg20yhqb12q4";
+      rev = "605c70fac8985bd6ac137839571f1323b4a067a9";
+      sha256 = "1f2z1w87yls127szy5m0xvnkdcp5snynv07x8j1i22338rwcrvln";
     };
     meta.homepage = "https://github.com/sainnhe/edge/";
   };
@@ -3419,24 +3430,24 @@ final: prev:
 
   efmls-configs-nvim = buildVimPlugin {
     pname = "efmls-configs-nvim";
-    version = "2024-05-07";
+    version = "2024-05-21";
     src = fetchFromGitHub {
       owner = "creativenull";
       repo = "efmls-configs-nvim";
-      rev = "f477186ecc12ac025a9948d17edc69242e1ee96b";
-      sha256 = "0mgljq23h4phk5r6dnkyijyv54j71h2cgvxjg4c8lgnqvas0cksl";
+      rev = "eb2be5b24dbf7200a80bcd5c64bc63afbc8ae86f";
+      sha256 = "1k7spx8iagmklrbb3l6dmj217j8110nja03dhpz52znzsir5vlpj";
     };
     meta.homepage = "https://github.com/creativenull/efmls-configs-nvim/";
   };
 
   elixir-tools-nvim = buildVimPlugin {
     pname = "elixir-tools.nvim";
-    version = "2024-05-02";
+    version = "2024-05-23";
     src = fetchFromGitHub {
       owner = "elixir-tools";
       repo = "elixir-tools.nvim";
-      rev = "51eddb03a7a8c9f00d6415b356a4d3b75d8e75b6";
-      sha256 = "1fckakkqgagn7n6wr92333acxy7wi3c7ny6y1pxr88nigzb5p9sk";
+      rev = "815cf0b0aab0421f8490199c0dd7442d22a7c1b7";
+      sha256 = "0b8ikabwh8lpmvb1n1w29vq322ibcld8rk4dpbfalqbrz4gzy8hi";
     };
     meta.homepage = "https://github.com/elixir-tools/elixir-tools.nvim/";
   };
@@ -3504,24 +3515,24 @@ final: prev:
 
   eva01-vim = buildVimPlugin {
     pname = "eva01.vim";
-    version = "2024-03-26";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "hachy";
       repo = "eva01.vim";
-      rev = "93ae0d296459ed124c288990001848b3956339fa";
-      sha256 = "166i51ic1xnp3lxmipa7sgrwcfcma30sc66ymg96dccrv0p3k0ig";
+      rev = "54412cbd92e74f43f4fc4479d12726f09723ce55";
+      sha256 = "1gimw4sjnkkr9lw6951fx0ksaii64jc3mfc071dzj0ildrn323w8";
     };
     meta.homepage = "https://github.com/hachy/eva01.vim/";
   };
 
   everforest = buildVimPlugin {
     pname = "everforest";
-    version = "2024-05-15";
+    version = "2024-05-23";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "everforest";
-      rev = "090cc3aa2e9ed0533625821191404bb7802da19e";
-      sha256 = "0wbifby4k2wkh5glsnxx4da4rx3mv3lfv8ff3nnchnxjfnbk9gnl";
+      rev = "3e5ec2550d0179fdc5b7ab3739730c71a4f3e5a0";
+      sha256 = "0mi79727qhk89a51zlqc2sskzh3asxva0l62qv0d9m4ilzri3lr1";
     };
     meta.homepage = "https://github.com/sainnhe/everforest/";
   };
@@ -3600,12 +3611,12 @@ final: prev:
 
   feline-nvim = buildVimPlugin {
     pname = "feline.nvim";
-    version = "2024-04-29";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "freddiehaddad";
       repo = "feline.nvim";
-      rev = "b43be71ebc3ff0e451a627b47751fd7747dc15fb";
-      sha256 = "0j5a6nsjv4nsrhvwlbnrm7cys94k62kx4450famb07b8q7miwi72";
+      rev = "8bc28b94a16304aad2f53b8c3653b14803748c28";
+      sha256 = "0xwzzcfbp9g7kxni5wpq621dfbv4cif9daz5brpcgh7nqd5zh76z";
     };
     meta.homepage = "https://github.com/freddiehaddad/feline.nvim/";
   };
@@ -3648,12 +3659,12 @@ final: prev:
 
   fidget-nvim = buildNeovimPlugin {
     pname = "fidget.nvim";
-    version = "2024-04-04";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "j-hui";
       repo = "fidget.nvim";
-      rev = "1ba38e4cbb24683973e00c2e36f53ae64da38ef5";
-      sha256 = "0g0z1g1nmrjmg9298vg2ski6m41f1yhpas8kr9mi8pa6ibk4m63x";
+      rev = "ef99df04a1c53a453602421bc0f756997edc8289";
+      sha256 = "1j0s31k8dszb0sq46c492hj27w0ag2zmxy75y8204f3j80dkz68s";
     };
     meta.homepage = "https://github.com/j-hui/fidget.nvim/";
   };
@@ -3684,12 +3695,12 @@ final: prev:
 
   firenvim = buildVimPlugin {
     pname = "firenvim";
-    version = "2024-05-12";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "glacambre";
       repo = "firenvim";
-      rev = "fc72687977e1c34259c42f0e408655cf2638760d";
-      sha256 = "18q5lby9hlhbd1z2bpnm9s2vrfz88g19rq78hx10d1vp3f576jla";
+      rev = "cf4ff99033640b5ec33890bcdc892ddc436ed8e5";
+      sha256 = "0gg6jj94bb7inq9hkqd49kbzv0aakd4qb5qyvnbfch4jzjg4d2v6";
     };
     meta.homepage = "https://github.com/glacambre/firenvim/";
   };
@@ -3805,12 +3816,12 @@ final: prev:
 
   flutter-tools-nvim = buildVimPlugin {
     pname = "flutter-tools.nvim";
-    version = "2024-04-19";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "flutter-tools.nvim";
-      rev = "f04131d6b2c82c2a7624a8843642d6269b50b437";
-      sha256 = "0i8nincmm9jnq36hhgmygq2101993mabya61mmjgpcf96dl1mdwj";
+      rev = "990a1349c29f7d474a0cd51355aba773ccc9deea";
+      sha256 = "1qn6b6hmyscxiczwp1k530l1k165wlnqxjk820737d27l451c5vm";
     };
     meta.homepage = "https://github.com/akinsho/flutter-tools.nvim/";
   };
@@ -3853,12 +3864,12 @@ final: prev:
 
   friendly-snippets = buildVimPlugin {
     pname = "friendly-snippets";
-    version = "2024-05-16";
+    version = "2024-05-28";
     src = fetchFromGitHub {
       owner = "rafamadriz";
       repo = "friendly-snippets";
-      rev = "dd2fd1281d4b22e7b4a5bfafa3e142d958e251f2";
-      sha256 = "06w5m39zbkbqr85cj32dn44n11z4yji4k9iij722fci9cp66g2wl";
+      rev = "d0610077b6129cf9f7f78afbe3a1425d60f6e2f1";
+      sha256 = "0vdyrbpcivc07g5invcs8mh8wq9fxhb1kp8c2flj8gnlmg83bd1h";
     };
     meta.homepage = "https://github.com/rafamadriz/friendly-snippets/";
   };
@@ -3901,12 +3912,12 @@ final: prev:
 
   fuzzy-nvim = buildVimPlugin {
     pname = "fuzzy.nvim";
-    version = "2024-05-16";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "tzachar";
       repo = "fuzzy.nvim";
-      rev = "e29d96b5fab9bb9f613c86bd54ea9b7ef2de61bb";
-      sha256 = "1z7ksmhyg6dch7hf4257fvvyqfwzw4q6na1gy01irf379f89xlm2";
+      rev = "68608f6a232f7e73ccf81437bf12108128f15bd4";
+      sha256 = "1sw0w4dq0pq6dxs3rg2jkl64lk6hj1fqkndq4i5b35sxda1i27mq";
     };
     meta.homepage = "https://github.com/tzachar/fuzzy.nvim/";
   };
@@ -3961,24 +3972,24 @@ final: prev:
 
   fzf-lua = buildNeovimPlugin {
     pname = "fzf-lua";
-    version = "2024-05-14";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "ibhagwan";
       repo = "fzf-lua";
-      rev = "e412b1b0db62ccfccee41d994da87923eb2d8abd";
-      sha256 = "0vsq389n73inzlc4gy98025jbpjhwkzc2gwj3y15x03sqpvj2mvn";
+      rev = "b92220ec838c195eb1c711daa69c905b1d7b8d8c";
+      sha256 = "0hsppxwwm6zzsh414pwdc0xcrgz8cz8xb2ya9z1b0g8dlcwkkjsj";
     };
     meta.homepage = "https://github.com/ibhagwan/fzf-lua/";
   };
 
   fzf-vim = buildVimPlugin {
     pname = "fzf.vim";
-    version = "2024-05-14";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "fzf.vim";
-      rev = "3656cbb9ef2e3955d1e60bb63be5e2413c0950d7";
-      sha256 = "0m2frn1ybslphwysmkmp8qx69panpmxjsss4jn1gf2knw1cmdkp0";
+      rev = "0a80e43f9027ec64213d602dbb0b22d65a072ca8";
+      sha256 = "1bir6rwdfmz55npf79m2ipfsznzkx075sns7kdqlbq9z8r2swldb";
     };
     meta.homepage = "https://github.com/junegunn/fzf.vim/";
   };
@@ -4069,12 +4080,12 @@ final: prev:
 
   git-conflict-nvim = buildVimPlugin {
     pname = "git-conflict.nvim";
-    version = "2024-01-22";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "git-conflict.nvim";
-      rev = "4c8e252b87d54d944c1e56bfb477f78b6fdaf661";
-      sha256 = "0rv8z3nd150j9ffw12l40cyzvw0q0066kqvj4fr3v2d8ja48kzhg";
+      rev = "5a8b94276bbd9c18ecb0763061b101217cecba9d";
+      sha256 = "0ga7xf7mv9sf297y2lpnd2nf15wrmh6j08hk1f7qrvnr4i4d181h";
     };
     meta.homepage = "https://github.com/akinsho/git-conflict.nvim/";
   };
@@ -4141,12 +4152,12 @@ final: prev:
 
   gitsigns-nvim = buildNeovimPlugin {
     pname = "gitsigns.nvim";
-    version = "2024-05-06";
+    version = "2024-05-28";
     src = fetchFromGitHub {
       owner = "lewis6991";
       repo = "gitsigns.nvim";
-      rev = "805610a9393fa231f2c2b49cb521bfa413fadb3d";
-      sha256 = "0cxcq40i84l1jblvvn913hiz9qik62g0iij097prxgz2jx66lvdz";
+      rev = "af3fdad8ddcadbdad835975204f6503310526fd9";
+      sha256 = "1j66lxqx6rz6k77xgm92npswra4s5hd69adpks75zsmd7crlsnfq";
     };
     meta.homepage = "https://github.com/lewis6991/gitsigns.nvim/";
   };
@@ -4201,12 +4212,12 @@ final: prev:
 
   go-nvim = buildVimPlugin {
     pname = "go.nvim";
-    version = "2024-05-13";
+    version = "2024-05-24";
     src = fetchFromGitHub {
       owner = "ray-x";
       repo = "go.nvim";
-      rev = "db45cc91cf1bedb5fe5640cf71c452d43a87595a";
-      sha256 = "1g22fg37clakkg4013s48223k1rf9knicmld0adbsi7hx6cizbz4";
+      rev = "1423d5d0820eeefc97d6cdaf3ae8b554676619cc";
+      sha256 = "1vv601j1d9cf2r8zbx02j8wrbvx9mghxgk74bn2hy1wr8mkj9a8s";
     };
     meta.homepage = "https://github.com/ray-x/go.nvim/";
   };
@@ -4297,12 +4308,12 @@ final: prev:
 
   grapple-nvim = buildVimPlugin {
     pname = "grapple.nvim";
-    version = "2024-04-28";
+    version = "2024-05-18";
     src = fetchFromGitHub {
       owner = "cbochs";
       repo = "grapple.nvim";
-      rev = "493f174a1ace3f2d55ba2191129e43b3875b9124";
-      sha256 = "0b55kkvjsw176510gic7jm2ym6nvllaz4wi91fihmmhdp7k9s988";
+      rev = "7aedc261b05a6c030397c4bc26416efbe746ebf1";
+      sha256 = "0cc5qxgm4v2z5p2q3famwi3k7qw8x11mzlhryd95g32p90f8m5ba";
     };
     meta.homepage = "https://github.com/cbochs/grapple.nvim/";
   };
@@ -4357,60 +4368,60 @@ final: prev:
 
   gruvbox-material = buildVimPlugin {
     pname = "gruvbox-material";
-    version = "2024-05-15";
+    version = "2024-05-24";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "gruvbox-material";
-      rev = "8f504421acd991b786ae6796176a1c5878221052";
-      sha256 = "0nx7z1as9fcr8bq6q2n9wx7cw78acsvi0qc3sdcklfw5scrmpn3l";
+      rev = "848b4de6ab014d689d5c20790afebd7c32c1581b";
+      sha256 = "04ya5ad1qbxrn3v67cx8916k7mk1kp0zjp0cdvfbzd0xxvw6c861";
     };
     meta.homepage = "https://github.com/sainnhe/gruvbox-material/";
   };
 
   gruvbox-material-nvim = buildVimPlugin {
     pname = "gruvbox-material.nvim";
-    version = "2024-05-11";
+    version = "2024-05-23";
     src = fetchFromGitHub {
       owner = "f4z3r";
       repo = "gruvbox-material.nvim";
-      rev = "186bfd9fc87ada2e408158bc0f72799b46370add";
-      sha256 = "0a19dsjhx50fpl2apwwllpvc9bznigc4f41lhyb0ydldi6x0rg13";
+      rev = "0ecaa68ace7862ff7e0b28371965a760be99e673";
+      sha256 = "1azqb5hpjww6sxvwbk5l0q1lzf0dm7ymp665pw93qxxlaijasllr";
     };
     meta.homepage = "https://github.com/f4z3r/gruvbox-material.nvim/";
   };
 
   gruvbox-nvim = buildVimPlugin {
     pname = "gruvbox.nvim";
-    version = "2024-05-07";
+    version = "2024-05-18";
     src = fetchFromGitHub {
       owner = "ellisonleao";
       repo = "gruvbox.nvim";
-      rev = "c442515506caa166118e157980f62a9ac24fa8c3";
-      sha256 = "07yp690ybjknlczbdglhrb9mdalf13s9pf190kv20a2yx8ipj1yq";
+      rev = "96a8ec336fb48a11cefbd57508888361431aac26";
+      sha256 = "11hs9xnhdp21g8s2zm18l13c74nmhap2g31c2va4s5y650d5kf04";
     };
     meta.homepage = "https://github.com/ellisonleao/gruvbox.nvim/";
   };
 
   guard-collection = buildVimPlugin {
     pname = "guard-collection";
-    version = "2024-05-10";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "nvimdev";
       repo = "guard-collection";
-      rev = "78df199510b9c8e2a1da0cdf71a01c4f6009a47d";
-      sha256 = "01y36ra8xrlr2s7lbxz5zw923rdhrnqwg0aa2hbpza7adwx8q0s0";
+      rev = "dfc07dccb865263a22907f9e1783306a8c6f1fd1";
+      sha256 = "1h1p1fy47cmf9k6x81cjgjh6176ik6kfs65kf57nrqwml0sp23zn";
     };
     meta.homepage = "https://github.com/nvimdev/guard-collection/";
   };
 
   guard-nvim = buildVimPlugin {
     pname = "guard.nvim";
-    version = "2024-02-10";
+    version = "2024-05-17";
     src = fetchFromGitHub {
       owner = "nvimdev";
       repo = "guard.nvim";
-      rev = "4ffdefe0f181ea7e449f60fe94ccc967220181c5";
-      sha256 = "0apv9jii9lw1rk84qycxgyfddcri9y5i3zkf2mpd1jhl1czw7iyb";
+      rev = "0dca2a98e9aa67ca8ffdf6ca170fcbe050f53406";
+      sha256 = "0imgrp0ilcr2v4qix0pcf0d2fi3hamz5w0gp3c4afxc8lx7i2z36";
     };
     meta.homepage = "https://github.com/nvimdev/guard.nvim/";
   };
@@ -4453,12 +4464,12 @@ final: prev:
 
   hardhat-nvim = buildVimPlugin {
     pname = "hardhat.nvim";
-    version = "2024-05-12";
+    version = "2024-05-21";
     src = fetchFromGitHub {
       owner = "TheSnakeWitcher";
       repo = "hardhat.nvim";
-      rev = "65657641b66d58ec5f3d165d6d76ac06e373e189";
-      sha256 = "0kxbdic7ssdan57ni3bs008jv01mb531i3xbdpcnbzk7i83mhh6r";
+      rev = "6cdda17ff53c947b96e563c26fd81005d95f3328";
+      sha256 = "01wccn69wgv979wksmwhkan0zy1z2rc0miz1613c52kyw6fdkcq9";
     };
     meta.homepage = "https://github.com/TheSnakeWitcher/hardhat.nvim/";
   };
@@ -4477,11 +4488,11 @@ final: prev:
 
   hare-vim = buildVimPlugin {
     pname = "hare.vim";
-    version = "2024-05-12";
+    version = "2024-05-24";
     src = fetchgit {
       url = "https://git.sr.ht/~sircmpwn/hare.vim";
-      rev = "188309129ac77590113f13d6f0da28c3f6f4d494";
-      sha256 = "0rz1hx3zljs3g5namlyzafvl12vi164vq3mqj02zd04hmm1rsr0b";
+      rev = "e0d38c0563224aa7b0101f64640788691f6c15b9";
+      sha256 = "1csc5923acy7awgix0qfkal39v4shzw5vyvw56vkmazvc8n8rqs6";
     };
     meta.homepage = "https://git.sr.ht/~sircmpwn/hare.vim";
   };
@@ -4500,36 +4511,36 @@ final: prev:
 
   haskell-scope-highlighting-nvim = buildVimPlugin {
     pname = "haskell-scope-highlighting.nvim";
-    version = "2023-04-29";
+    version = "2024-05-23";
     src = fetchFromGitHub {
       owner = "kiyoon";
       repo = "haskell-scope-highlighting.nvim";
-      rev = "ffeda85bae909816cbbf9d061aea9115cf8166f2";
-      sha256 = "sha256-f0y6rU0IqN8RZ7d1iyvHot2zLQ0yt4JOZhpdhlGZrqc=";
+      rev = "8d882e6710865217394cf1cad5fc9e2becd6d6f6";
+      sha256 = "1a7mnb8a0a4v3gyw7padwbqchxmjnygbvvr5m2cixlmb01ahs9ap";
     };
     meta.homepage = "https://github.com/kiyoon/haskell-scope-highlighting.nvim/";
   };
 
   haskell-snippets-nvim = buildVimPlugin {
     pname = "haskell-snippets.nvim";
-    version = "2024-05-13";
+    version = "2024-05-20";
     src = fetchFromGitHub {
       owner = "mrcjkb";
       repo = "haskell-snippets.nvim";
-      rev = "b00139b127f775f481f434bf9c60957185c74e4c";
-      sha256 = "03y9d1nk9v8q1hwcrjg4h47c5vglj6rzv4mjawbgid6mxh8gmsy8";
+      rev = "46462fe142521bd5719412dc9d740c2e54a9186e";
+      sha256 = "14cqvs09yk1b9dk8k0l322kxqahr5hzv7iiz72pjfjjk888dhdr2";
     };
     meta.homepage = "https://github.com/mrcjkb/haskell-snippets.nvim/";
   };
 
   haskell-tools-nvim = buildNeovimPlugin {
     pname = "haskell-tools.nvim";
-    version = "2024-05-13";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "MrcJkb";
       repo = "haskell-tools.nvim";
-      rev = "81115b0c1007e7cc2986b72c6efaa726d6deab06";
-      sha256 = "0sg3ckr3xamapz9wq4wdvrdngvgj25plcdja4bg8ik1l6rpwjigm";
+      rev = "25bf71d959d05545421ee6947262a15e7bdbe113";
+      sha256 = "1mkl4vigsbacimv66xj294w4fm88milr66ja6l7abal0rgg7hjqq";
     };
     meta.homepage = "https://github.com/MrcJkb/haskell-tools.nvim/";
   };
@@ -4584,12 +4595,12 @@ final: prev:
 
   heirline-nvim = buildVimPlugin {
     pname = "heirline.nvim";
-    version = "2024-05-12";
+    version = "2024-05-21";
     src = fetchFromGitHub {
       owner = "rebelot";
       repo = "heirline.nvim";
-      rev = "c52391dc4428d503f65e6bcb1533e6334f22a136";
-      sha256 = "0hplfmqy9gx21ifqyj23ydq7zsm9v0kfhhqb4s9bjb1djx9209j4";
+      rev = "0d797435e54645a5f98bad7ad6046aac1ef95c1e";
+      sha256 = "0payyx0j0s4wgk5xvczdnjqkj5nymlhw4f7hcw3sl9m334vnxshb";
     };
     meta.homepage = "https://github.com/rebelot/heirline.nvim/";
   };
@@ -4632,11 +4643,11 @@ final: prev:
 
   himalaya-vim = buildVimPlugin {
     pname = "himalaya-vim";
-    version = "2024-05-15";
+    version = "2024-05-27";
     src = fetchgit {
       url = "https://git.sr.ht/~soywod/himalaya-vim";
-      rev = "7d839d4ddb24b76fff748ebabf8a538c8cf79953";
-      sha256 = "1yrnyrc03csm1dx6cjsj8k5q3jyhk2cjfpc2rsh8l11gpin37s5h";
+      rev = "cea041c927a04a841aea53abcedd4a0d153d4ca8";
+      sha256 = "0yrilhvqklfbfknkdskywf95mfhbr9rfjs2gmppnzgfs7fg6jn63";
     };
     meta.homepage = "https://git.sr.ht/~soywod/himalaya-vim";
   };
@@ -4691,24 +4702,24 @@ final: prev:
 
   hop-nvim = buildVimPlugin {
     pname = "hop.nvim";
-    version = "2024-04-25";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "smoka7";
       repo = "hop.nvim";
-      rev = "6ff23501a1fd1c75c91dfd99ff5befcfdb02c11d";
-      sha256 = "0a621aljh16apa8vc6nf4l4h2h7amxdwx5hqw3fmiipxc9g9cczr";
+      rev = "036462a345792279c58f2f6445756efab706f04a";
+      sha256 = "0das4rci4p3zfmjxkm8rax5pwp81bvssz0cnyzgjqjbzxfijd6px";
     };
     meta.homepage = "https://github.com/smoka7/hop.nvim/";
   };
 
   hotpot-nvim = buildVimPlugin {
     pname = "hotpot.nvim";
-    version = "2024-04-04";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "rktjmp";
       repo = "hotpot.nvim";
-      rev = "5c96b423a6663c91c47d6184f810acf1dacf4615";
-      sha256 = "136jawqxirrs130ka15hnbwlgplrkisahcv91v4avcbr46rx09d6";
+      rev = "7f53e1d4fdc907e808999c83ad3592e336398add";
+      sha256 = "0kn3jmzicpp2r6q3p1bdv2yw32b8rpilzafs25hpryanyngbswmk";
     };
     meta.homepage = "https://github.com/rktjmp/hotpot.nvim/";
   };
@@ -4811,12 +4822,12 @@ final: prev:
 
   image-nvim = buildNeovimPlugin {
     pname = "image.nvim";
-    version = "2024-05-14";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "3rd";
       repo = "image.nvim";
-      rev = "b979fa1194443c97dd8cb6053a4cec163c9048f5";
-      sha256 = "0x1v1flsghf3v78mfsnkcp03d45i10c668imkxqs9zylsxmpnrpf";
+      rev = "645f997d171ea3d2505986a0519755600a26f02f";
+      sha256 = "1b530b17l0zcd0cjyjxfp9bck4wxdbaach5djzhc15jhx8616jdf";
     };
     meta.homepage = "https://github.com/3rd/image.nvim/";
   };
@@ -4895,12 +4906,12 @@ final: prev:
 
   indent-blankline-nvim = buildVimPlugin {
     pname = "indent-blankline.nvim";
-    version = "2024-03-14";
+    version = "2024-05-23";
     src = fetchFromGitHub {
       owner = "lukas-reineke";
       repo = "indent-blankline.nvim";
-      rev = "3d08501caef2329aba5121b753e903904088f7e6";
-      sha256 = "09p7y9d08sb1fqpy84yga39cf9misir6wx3rby67v2pl3i01k7sy";
+      rev = "d98f537c3492e87b6dc6c2e3f66ac517528f406f";
+      sha256 = "0zb52msar7hl38xmi3pvjsynjabqyv2rsajrzdx46wqp018v971b";
     };
     meta.homepage = "https://github.com/lukas-reineke/indent-blankline.nvim/";
   };
@@ -5015,12 +5026,12 @@ final: prev:
 
   iron-nvim = buildVimPlugin {
     pname = "iron.nvim";
-    version = "2024-05-16";
+    version = "2024-05-17";
     src = fetchFromGitHub {
       owner = "Vigemus";
       repo = "iron.nvim";
-      rev = "0525058037bb0a600cb0850cb5f5b440f631b826";
-      sha256 = "0ylada692n1q2djscir70qqyxqpw3g6m5al4d3pmhnhabara5262";
+      rev = "c993d018d11829528b0fe91eb9ba412e453071ea";
+      sha256 = "04pc9m1zw02b1yz3j2ldw78asvcr9hfyx1sdx7zxb4pcx8l6i2p5";
     };
     meta.homepage = "https://github.com/Vigemus/iron.nvim/";
   };
@@ -5124,12 +5135,12 @@ final: prev:
 
   jsonfly-nvim = buildVimPlugin {
     pname = "jsonfly.nvim";
-    version = "2024-05-12";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "Myzel394";
       repo = "jsonfly.nvim";
-      rev = "5a2a67bff2f8e3347dea82bd74d25bfe248bf637";
-      sha256 = "18lmrccnhl2czbffnjk2z5n7pprjlk11vjvjw1jry8lgicfhvxv8";
+      rev = "ddbc0849cb2618b6bbb4d5a807985954f859da8e";
+      sha256 = "13rdviwxb9ppnz35a42l7mg2x9lkgahp8r4sc4hcff4vczj8rg5d";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/Myzel394/jsonfly.nvim/";
@@ -5137,12 +5148,12 @@ final: prev:
 
   julia-vim = buildVimPlugin {
     pname = "julia-vim";
-    version = "2024-04-23";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "JuliaEditorSupport";
       repo = "julia-vim";
-      rev = "16b0cc336eb1b74205396a7677940d88976e2365";
-      sha256 = "0r34z1c760h86axrihxg5fhz945710p29j8xc0xdr2lyv2d17kdn";
+      rev = "7946ce330b6287c9293aece5b14feafa1125779e";
+      sha256 = "0j80pvv3k21zqx0bik257xmmj4a7cjx3d1fp787k1gksr7zcxpby";
     };
     meta.homepage = "https://github.com/JuliaEditorSupport/julia-vim/";
   };
@@ -5161,12 +5172,12 @@ final: prev:
 
   kanagawa-nvim = buildVimPlugin {
     pname = "kanagawa.nvim";
-    version = "2024-04-29";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "rebelot";
       repo = "kanagawa.nvim";
-      rev = "860e4f80df71221d18bf2cd9ef1deb4d364274d2";
-      sha256 = "1cmlv5r9ckihk0y496lr5zy2baks2qxkvfnd0l49bv3rp9zfbym1";
+      rev = "08ed29989834f5f2606cb1ef9d5b24c5ea7b8fa5";
+      sha256 = "1whdsamsl0qss92hmby1q8ch6r6hvfsz87kv4gr1aqpi51vdxyrn";
     };
     meta.homepage = "https://github.com/rebelot/kanagawa.nvim/";
   };
@@ -5281,12 +5292,12 @@ final: prev:
 
   lazy-nvim = buildVimPlugin {
     pname = "lazy.nvim";
-    version = "2024-05-16";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "lazy.nvim";
-      rev = "05240b41548c4245a04d34ee54f789e824129991";
-      sha256 = "1if5nq5z329l815nzrqs383ycck9s3hm5mhvz2ar001alszg4azc";
+      rev = "24fa2a97085ca8a7220b5b078916f81e316036fd";
+      sha256 = "1x1470s79nailpad1hyd9mnfd823aw58mgh6crh6xm8xj54mxcy6";
     };
     meta.homepage = "https://github.com/folke/lazy.nvim/";
   };
@@ -5305,12 +5316,12 @@ final: prev:
 
   lean-nvim = buildVimPlugin {
     pname = "lean.nvim";
-    version = "2024-04-09";
+    version = "2024-05-28";
     src = fetchFromGitHub {
       owner = "Julian";
       repo = "lean.nvim";
-      rev = "2828898ad6f6ac6c1c9f404d72bd3d56546b0c72";
-      sha256 = "16wxih5nhdybzrm04z18cjwhjvdxq3yjdsq02v7q4kxwkbz5sy1a";
+      rev = "91377b346a78ad2f5cfe8c65dc5126a7e1c538e8";
+      sha256 = "08iq8qrkjm4g3b72j5kw864lhsiw0lpcvs984cdzpil3jf1dibwg";
     };
     meta.homepage = "https://github.com/Julian/lean.nvim/";
   };
@@ -5341,24 +5352,24 @@ final: prev:
 
   leap-nvim = buildVimPlugin {
     pname = "leap.nvim";
-    version = "2024-05-14";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "ggandor";
       repo = "leap.nvim";
-      rev = "b1ecfb63c0b8babfd0dcd6b5ca6de37bbf3526cd";
-      sha256 = "0sp3zbxl3lq80aw7k64cnkbr1m6liq41spgykjx07js32pwzw4mx";
+      rev = "5d10692be460f9e8a42d34cf98a012e3e18b23bf";
+      sha256 = "0v1w48bsfhzdpkjm8idsk3iwac4iw9dpl6p90n78zh0sgj94d773";
     };
     meta.homepage = "https://github.com/ggandor/leap.nvim/";
   };
 
   legendary-nvim = buildVimPlugin {
     pname = "legendary.nvim";
-    version = "2024-05-10";
+    version = "2024-05-24";
     src = fetchFromGitHub {
       owner = "mrjones2014";
       repo = "legendary.nvim";
-      rev = "33108b19edadee8c2758f6bc574cc8335fdf89fb";
-      sha256 = "1w9zchqpbf3nvdxdx7xv5wy4my8xknnxwgcf3hvlycvxsg001xxd";
+      rev = "c1345db98e4c6e6e80d528384f3b5acbcb90bc40";
+      sha256 = "11gz5zb46y851kbgvrx6ndwxvl52xdmm7dyy7bddxarp7s5n7zlh";
     };
     meta.homepage = "https://github.com/mrjones2014/legendary.nvim/";
   };
@@ -5533,12 +5544,12 @@ final: prev:
 
   lir-nvim = buildVimPlugin {
     pname = "lir.nvim";
-    version = "2024-03-15";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "tamago324";
       repo = "lir.nvim";
-      rev = "7a9d45de08fecd23a04aca1f96688d744830029e";
-      sha256 = "17pvzsk1w50bdl9ddrgylck7sam41vvz4x4pm5jkxc4bs7vvffd8";
+      rev = "5b1a927cfee45845d7d4450a1e8f2f63cf0baaac";
+      sha256 = "0c5b4lrk8d37nmybavbv0pmr10162kpgpzslxjag3q30ljxnspwp";
     };
     meta.homepage = "https://github.com/tamago324/lir.nvim/";
   };
@@ -5617,12 +5628,12 @@ final: prev:
 
   llm-nvim = buildVimPlugin {
     pname = "llm.nvim";
-    version = "2024-02-22";
+    version = "2024-05-24";
     src = fetchFromGitHub {
       owner = "huggingface";
       repo = "llm.nvim";
-      rev = "51b76dac9c33c0122adfe28daf52ceaa31c4aa02";
-      sha256 = "07i1ixbiby4c81lkydwvygz6vxs1xhqnwzcsad3xzcaz7zdl00kx";
+      rev = "32346410239bc8eb212d586131832833d301aed0";
+      sha256 = "0w4bjp1lzvs4ind68xp0y059izr2yiq3c9h0r2fixn2s3ds403di";
     };
     meta.homepage = "https://github.com/huggingface/llm.nvim/";
   };
@@ -5665,12 +5676,12 @@ final: prev:
 
   lsp-overloads-nvim = buildVimPlugin {
     pname = "lsp-overloads.nvim";
-    version = "2024-04-13";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "Issafalcon";
       repo = "lsp-overloads.nvim";
-      rev = "be3486a501fdda84ea91a0949178b75e8476030d";
-      sha256 = "097vn7y6gal2fimpvvqm70jz6im3pnb370dxvc7zmw1yrr3zjhc4";
+      rev = "78f4cf53ff72a234d7903c1d41872c8b21c6007b";
+      sha256 = "03791qzm3qv2gw176bwki4dmizjy3myzdm2c62y4hjafx4y9mn8d";
     };
     meta.homepage = "https://github.com/Issafalcon/lsp-overloads.nvim/";
   };
@@ -5701,12 +5712,12 @@ final: prev:
 
   lsp-zero-nvim = buildVimPlugin {
     pname = "lsp-zero.nvim";
-    version = "2024-05-08";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "VonHeikemen";
       repo = "lsp-zero.nvim";
-      rev = "f12d50716e8e59ea9f5cf484eac6968c33a95917";
-      sha256 = "07dsgbgqmdlv2lv498lwzb8vq7fl4hdlr4psym6ilssmqjc6xkx2";
+      rev = "16de3b18c5f7b6230d89b8e64ce9a4801b6f8d08";
+      sha256 = "1z39f3qagyhrm90hz4pilbqnbyncpxgzsx236yw9mdgfqni912ms";
     };
     meta.homepage = "https://github.com/VonHeikemen/lsp-zero.nvim/";
   };
@@ -5725,23 +5736,23 @@ final: prev:
 
   lsp_lines-nvim = buildVimPlugin {
     pname = "lsp_lines.nvim";
-    version = "2024-03-09";
+    version = "2024-05-19";
     src = fetchgit {
       url = "https://git.sr.ht/~whynothugo/lsp_lines.nvim";
-      rev = "6f3defec73f7c87939e800e9afa5d0571b19b401";
-      sha256 = "1bkvghdj53wak8c0s293vzl788z96cz2p5c61qh2bdzh6qpn55d2";
+      rev = "7d9e2748b61bff6ebba6e30adbc7173ccf21c055";
+      sha256 = "1w1nmh3nkci7w1apk0mx5sdwlgi4ilkgx3cgxl79iv5bwwyfdjs2";
     };
     meta.homepage = "https://git.sr.ht/~whynothugo/lsp_lines.nvim";
   };
 
   lsp_signature-nvim = buildVimPlugin {
     pname = "lsp_signature.nvim";
-    version = "2024-05-10";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "ray-x";
       repo = "lsp_signature.nvim";
-      rev = "aed5d1162b0f07bb3af34bedcc5f70a2b6466ed8";
-      sha256 = "11x1mv3bzg7d9k2s69766p7abrzbdnv4knj6yx06b6vngdk2x03z";
+      rev = "529e8861d0410389f0163a5e5c2199d4a4ef5bf6";
+      sha256 = "0w620hqpscllmcg0m4gdgsr863vp21dzc4kp21m9pkdhf7hfh1p0";
     };
     meta.homepage = "https://github.com/ray-x/lsp_signature.nvim/";
   };
@@ -5772,12 +5783,12 @@ final: prev:
 
   lspsaga-nvim = buildVimPlugin {
     pname = "lspsaga.nvim";
-    version = "2024-05-16";
+    version = "2024-05-28";
     src = fetchFromGitHub {
       owner = "nvimdev";
       repo = "lspsaga.nvim";
-      rev = "9b33a6c2a2cc53f3b3897623b5a650916c8c2345";
-      sha256 = "0wql9wv51aqwazkl6i7373hdddzjr5zpdw2injjvdg9fhxb0g738";
+      rev = "59d4648c3d4b40f316c3db852b3758c66ff6ca03";
+      sha256 = "0icxbfimckby5yznhlsqs4v1sgzc797mqbzsgfn0q7hj67hszr8m";
     };
     meta.homepage = "https://github.com/nvimdev/lspsaga.nvim/";
   };
@@ -5820,12 +5831,12 @@ final: prev:
 
   luasnip = buildNeovimPlugin {
     pname = "luasnip";
-    version = "2024-05-16";
+    version = "2024-05-24";
     src = fetchFromGitHub {
       owner = "l3mon4d3";
       repo = "luasnip";
-      rev = "78296bfabf756dbb6c7134aa219e75564dddf40f";
-      sha256 = "14z095b95qaxvpaz22pfls4by59fdxqjbkkv7ggjhhhhf0y3by94";
+      rev = "878ace11983444d865a72e1759dbcc331d1ace4c";
+      sha256 = "1fh58pchyx74pnlpnynv9g2k40n3j6h4h5m4s84c1ch2zznix5i8";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/l3mon4d3/luasnip/";
@@ -5833,12 +5844,12 @@ final: prev:
 
   luatab-nvim = buildVimPlugin {
     pname = "luatab.nvim";
-    version = "2021-12-05";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "alvarosevilla95";
       repo = "luatab.nvim";
-      rev = "79d53c11bd77274b49b50f1d6fdb10529d7354b7";
-      sha256 = "0cn244bh82b52pysimvqwl0spj6jadxb673jw6mnmd52nlv634f5";
+      rev = "d771888a061db83f1338fbca827bde4a19658c22";
+      sha256 = "1wqvnp273warkvrpbbprz3ndwpfddiwq40hl4qr76l3zacyqhkhb";
     };
     meta.homepage = "https://github.com/alvarosevilla95/luatab.nvim/";
   };
@@ -5903,6 +5914,18 @@ final: prev:
     meta.homepage = "https://github.com/iamcco/markdown-preview.nvim/";
   };
 
+  markdown-nvim = buildVimPlugin {
+    pname = "markdown.nvim";
+    version = "2024-04-23";
+    src = fetchFromGitHub {
+      owner = "tadmccorkle";
+      repo = "markdown.nvim";
+      rev = "951b7b567668608d60637d2c9e97f4baea5fdbbe";
+      sha256 = "1n8521s77c1a2gz3di5k2v6apkssyja4xsks2f9p3fkm78lr447b";
+    };
+    meta.homepage = "https://github.com/tadmccorkle/markdown.nvim/";
+  };
+
   markid = buildVimPlugin {
     pname = "markid";
     version = "2023-10-18";
@@ -5929,12 +5952,12 @@ final: prev:
 
   mason-lspconfig-nvim = buildVimPlugin {
     pname = "mason-lspconfig.nvim";
-    version = "2024-05-11";
+    version = "2024-05-18";
     src = fetchFromGitHub {
       owner = "williamboman";
       repo = "mason-lspconfig.nvim";
-      rev = "9ae570e206360e47d30b4c35a4550c165f4ea7b7";
-      sha256 = "147dhkrqz8fiwpafayk0ww685ncijjzxxd21nf93lagra9rx2l75";
+      rev = "a4caa0d083aab56f6cd5acf2d42331b74614a585";
+      sha256 = "18acw47f0mzddgh77i3y4ma7l13hr5z2wh2zkvi3r9bxnyv1dyw1";
     };
     meta.homepage = "https://github.com/williamboman/mason-lspconfig.nvim/";
   };
@@ -5977,12 +6000,12 @@ final: prev:
 
   material-nvim = buildVimPlugin {
     pname = "material.nvim";
-    version = "2024-04-04";
+    version = "2024-05-17";
     src = fetchFromGitHub {
       owner = "marko-cerovac";
       repo = "material.nvim";
-      rev = "772e41a7f33743224f30799a3a887dc7dd853f8d";
-      sha256 = "0knb5d6z1hjzn3ib0nznv54rpyyk0ms6g2na59apmcwdqh1wyz6a";
+      rev = "b6407868026175fda8b2e3dfdc524a3c60222a23";
+      sha256 = "0iz9d8a20w0jdv1d9lslwpcz7w6rj6n9gdqmlcic8744rcgkqqm2";
     };
     meta.homepage = "https://github.com/marko-cerovac/material.nvim/";
   };
@@ -6073,12 +6096,12 @@ final: prev:
 
   mini-nvim = buildVimPlugin {
     pname = "mini.nvim";
-    version = "2024-05-12";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "echasnovski";
       repo = "mini.nvim";
-      rev = "c333187fcc76d7e772dac32c2a440a949fe34be4";
-      sha256 = "1mdqavyq7aar03c1za5z4ca7zgpb2knyy8zz0xlcxjz67q093zcr";
+      rev = "b0b435873375c4341f2ecbcb95e9e645abe0d679";
+      sha256 = "1pwvnij3y6nk39al3401kppbxj99p88v6dfwax59fmmjls1rnlyh";
     };
     meta.homepage = "https://github.com/echasnovski/mini.nvim/";
   };
@@ -6109,12 +6132,12 @@ final: prev:
 
   mkdnflow-nvim = buildVimPlugin {
     pname = "mkdnflow.nvim";
-    version = "2024-04-25";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "jakewvincent";
       repo = "mkdnflow.nvim";
-      rev = "4c8890890426d57f20fc6d459c7631e0bbb50975";
-      sha256 = "1vwqg20d83gcfjwmay6yz96n4qnjlampkw58i9r03s0k3kwyik28";
+      rev = "ff300eb9a36e156e0f9d5f134d11c1a84870d7b3";
+      sha256 = "1s7dkvcrxjjrxm5nficc6bbw63gkfz6j2hpgi87kd83rd5s98n5n";
     };
     meta.homepage = "https://github.com/jakewvincent/mkdnflow.nvim/";
   };
@@ -6145,12 +6168,12 @@ final: prev:
 
   modus-themes-nvim = buildVimPlugin {
     pname = "modus-themes.nvim";
-    version = "2024-05-14";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "miikanissi";
       repo = "modus-themes.nvim";
-      rev = "bed70e9562d83852f40e4b5b0bd92b4fd9d4323c";
-      sha256 = "1jbwl34x6hn7y7smz4kww6y4as7qykcfd99y8jhp8af1b8c7rjzs";
+      rev = "4b3c2d0cafa20e63abb89ed08176611117262993";
+      sha256 = "1pd2mggmg3i2bnslilpvs9ppbi9kb040yjvis6dlazyfghq8s2rx";
     };
     meta.homepage = "https://github.com/miikanissi/modus-themes.nvim/";
   };
@@ -6181,12 +6204,12 @@ final: prev:
 
   monokai-pro-nvim = buildVimPlugin {
     pname = "monokai-pro.nvim";
-    version = "2024-04-09";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "loctvl842";
       repo = "monokai-pro.nvim";
-      rev = "aafde73a622435891d36b411d8623e705ead6293";
-      sha256 = "14cdrkglg0swn5nfs23z0j7jpf5gjdm1cgz1arhi1afi8dx8cr6g";
+      rev = "2bad2a92fe0ff6c8581d33a853a1b17592b83239";
+      sha256 = "0kbr165ifkn3g131chmn6c4ishfsjikninndscpcp8dq0gv81d4h";
     };
     meta.homepage = "https://github.com/loctvl842/monokai-pro.nvim/";
   };
@@ -6481,12 +6504,12 @@ final: prev:
 
   neo-tree-nvim = buildVimPlugin {
     pname = "neo-tree.nvim";
-    version = "2024-05-15";
+    version = "2024-05-21";
     src = fetchFromGitHub {
       owner = "nvim-neo-tree";
       repo = "neo-tree.nvim";
-      rev = "6e20108c4a8128782f534f5fe90c757b44212ef6";
-      sha256 = "0awbglyhf9jqn7zpxbbmpb7ch85jc5l1lj6axi3amrz9866wdcfs";
+      rev = "29f7c215332ba95e470811c380ddbce2cebe2af4";
+      sha256 = "070b25vbnniwi8xc8a6q1pkv9b2jwsqlxz4x6p0sbjn9q9viv0ql";
     };
     meta.homepage = "https://github.com/nvim-neo-tree/neo-tree.nvim/";
   };
@@ -6505,12 +6528,12 @@ final: prev:
 
   neoconf-nvim = buildVimPlugin {
     pname = "neoconf.nvim";
-    version = "2024-05-16";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "neoconf.nvim";
-      rev = "f5717f0ff26189e6a7bc9c3ae705d9e6cff20a99";
-      sha256 = "099rhngmw5vqnh0jkgkbrnc5apvh06jqg3khrsap3m1s2snw5799";
+      rev = "4e204e0d423e70293b81ba1655ed17e1f3c97986";
+      sha256 = "0zji4fnrmq402xy66ga01vhf14jawkjr9jsdiwd7q7jg95bzqdhk";
     };
     meta.homepage = "https://github.com/folke/neoconf.nvim/";
   };
@@ -6577,12 +6600,12 @@ final: prev:
 
   neogit = buildVimPlugin {
     pname = "neogit";
-    version = "2024-05-16";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "NeogitOrg";
       repo = "neogit";
-      rev = "9040f6face04f93e6903f25f038d67550fc9027b";
-      sha256 = "1sdkn3aapqd5kgbgm1gyam7fc46xzvq4f2ivayrdx9jln61pp8y5";
+      rev = "b2c96fe2c590f299f47618a791a4abe190ca6467";
+      sha256 = "0941kw0a2y4q9wiyx015iz9k1shg7fk7pxrqk5q4f4f8z1nfrknz";
     };
     meta.homepage = "https://github.com/NeogitOrg/neogit/";
   };
@@ -6649,36 +6672,36 @@ final: prev:
 
   neorg = buildVimPlugin {
     pname = "neorg";
-    version = "2024-05-13";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "nvim-neorg";
       repo = "neorg";
-      rev = "1dbaa207d4fe077bd0a11870990c24f2fff0be5d";
-      sha256 = "1dffb9kb3jr5ffjfx351d2lymr8dywm3vm3z74542p5swmi5nbcx";
+      rev = "aa47d93cc71e540b400a9718bff1e6af3b1db8c9";
+      sha256 = "03f551nknypx0p0sn378w4zilid2zsb6zz3ac5nbccsrjlsar9c1";
     };
     meta.homepage = "https://github.com/nvim-neorg/neorg/";
   };
 
   neorg-telescope = buildVimPlugin {
     pname = "neorg-telescope";
-    version = "2024-04-19";
+    version = "2024-05-21";
     src = fetchFromGitHub {
       owner = "nvim-neorg";
       repo = "neorg-telescope";
-      rev = "92c1c6064429c74505de8e5d84a6dc8488a6f8e3";
-      sha256 = "0varnp4wm1sp9mr8yglj2kb5wl8cdf4q9ymxf3szvbv2xw1bbnb2";
+      rev = "6069bf428fac56f8c028864eb1bf8beb668fca09";
+      sha256 = "15hzcvsn401snv32zrh8im616xkw6bl3fv2bsharsz57pbksn7yd";
     };
     meta.homepage = "https://github.com/nvim-neorg/neorg-telescope/";
   };
 
   neoscroll-nvim = buildVimPlugin {
     pname = "neoscroll.nvim";
-    version = "2024-04-30";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "karb94";
       repo = "neoscroll.nvim";
-      rev = "e78657719485c5663b88e5d96ffcfb6a2fe3eec0";
-      sha256 = "19f7q9d0gx1g08c4cyd66c4ldznzgrzi632kv7z0cbk58hisac3d";
+      rev = "a731f66f1d39ec6175fd201c5bf849e54abda99c";
+      sha256 = "1f9f5gqn1kbrhwfblqcsjacm7y17qai931xmrlny7hqlv1c6a26i";
     };
     meta.homepage = "https://github.com/karb94/neoscroll.nvim/";
   };
@@ -6721,12 +6744,12 @@ final: prev:
 
   neotest = buildNeovimPlugin {
     pname = "neotest";
-    version = "2024-04-28";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "nvim-neotest";
       repo = "neotest";
-      rev = "5caac5cc235d495a2382bc2980630ef36ac87032";
-      sha256 = "1i1d6m17wf3p76nm75jk4ayd4zyhslmqi2pc7j8qx87391mnz2c4";
+      rev = "6f35d797882c6ce0ab7c87dc86561512dc3d7aba";
+      sha256 = "1i9isk9pivypifwp8gxp6d0q36xbrhddap79w9mbfgbncyzrwghf";
     };
     meta.homepage = "https://github.com/nvim-neotest/neotest/";
   };
@@ -6770,12 +6793,12 @@ final: prev:
 
   neotest-dotnet = buildVimPlugin {
     pname = "neotest-dotnet";
-    version = "2024-04-13";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "Issafalcon";
       repo = "neotest-dotnet";
-      rev = "3844d16706d7655f4c84387bdb68eb8fb0155ef2";
-      sha256 = "0dh66m1yyzzsrcxrhaydqm7ymqspggnd345c8mfjprp7312x3yc5";
+      rev = "4cbf726f4ac0d6fee3cf3a7e6cc52e1a171b9e8c";
+      sha256 = "0g3q4f18i6a3vjhxp7axgjch0g2x7mf82qa3cz2wbnii54pqvzs2";
     };
     meta.homepage = "https://github.com/Issafalcon/neotest-dotnet/";
   };
@@ -6807,12 +6830,12 @@ final: prev:
 
   neotest-go = buildVimPlugin {
     pname = "neotest-go";
-    version = "2024-05-07";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "nvim-neotest";
       repo = "neotest-go";
-      rev = "27c80deab9cf5cb30b20ee407b3a6c7285518128";
-      sha256 = "11d8x7kqb4bxjwc4wdhxv5672i6svyj3k52p44711vlbcfal44j5";
+      rev = "92950ad7be2ca02a41abca5c6600ff6ffaf5b5d6";
+      sha256 = "0wmxiv06zjjsr2fzp20p8lynn8wxqlx86r6zycan8v6kgs2vljh4";
     };
     meta.homepage = "https://github.com/nvim-neotest/neotest-go/";
   };
@@ -6831,12 +6854,12 @@ final: prev:
 
   neotest-gtest = buildVimPlugin {
     pname = "neotest-gtest";
-    version = "2024-05-13";
+    version = "2024-05-21";
     src = fetchFromGitHub {
       owner = "alfaix";
       repo = "neotest-gtest";
-      rev = "20c24948d52b63aee948bf8db2c82da90f580330";
-      sha256 = "1zrj3lcx8wai3nihrw59b8b03x9nw7725nafz3ls0923j6d6j6ys";
+      rev = "081787a082abc0a14d53b3baff4aa5964045d204";
+      sha256 = "10dfb9jc95zp2vk0avw8g3s0gqxi1nnsgcll8bqfdb545ag82w2x";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/alfaix/neotest-gtest/";
@@ -6844,24 +6867,24 @@ final: prev:
 
   neotest-haskell = buildVimPlugin {
     pname = "neotest-haskell";
-    version = "2024-05-13";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "MrcJkb";
       repo = "neotest-haskell";
-      rev = "febce450a3faf6f0fa012a43afe8b3086bd2eee6";
-      sha256 = "0dbz3wn7qdnpjlshkwq4x6wyzpj6p764hhjrrg0hamanhq1lqn8g";
+      rev = "bcdb1dfae72930b1f581cf6d7e3f99848df6d3f0";
+      sha256 = "07grifk655fi3n7khrgfpc7xd7rpsfcjlhh6z2zn471sdpr1j3gd";
     };
     meta.homepage = "https://github.com/MrcJkb/neotest-haskell/";
   };
 
   neotest-java = buildVimPlugin {
     pname = "neotest-java";
-    version = "2024-05-08";
+    version = "2024-05-24";
     src = fetchFromGitHub {
       owner = "rcasia";
       repo = "neotest-java";
-      rev = "d0058e2f389cdcd7b0682aea76300a2fc1b9f0b7";
-      sha256 = "05q5flyls4pgk8rzvjdqw0igw45wz23ny61kyjh0ag2b3zky1y34";
+      rev = "154c937b9bd8613b943a27b989813f0532fd80ed";
+      sha256 = "1n3c1lribbzq1w1h08qh51f3173bzganyf45aagb8rq2wdkm5r89";
     };
     meta.homepage = "https://github.com/rcasia/neotest-java/";
   };
@@ -7024,12 +7047,12 @@ final: prev:
 
   neovim-ayu = buildVimPlugin {
     pname = "neovim-ayu";
-    version = "2024-04-05";
+    version = "2024-05-23";
     src = fetchFromGitHub {
       owner = "Shatur";
       repo = "neovim-ayu";
-      rev = "e03beacbc51f1a985d7a4b69828fd7612a4151e0";
-      sha256 = "1yf3j0lqcsng1ksq5wb1l8pcw6r9f6apzn6y2w5j431sm2by5jw4";
+      rev = "d7a2b754c9f9be3c30e14a53d6cfda3e111edd24";
+      sha256 = "12q27pddnmf4hy8nr9gp79f9hszavc87vvg1n2vq2g8cq00m2hxw";
     };
     meta.homepage = "https://github.com/Shatur/neovim-ayu/";
   };
@@ -7144,12 +7167,12 @@ final: prev:
 
   nfnl = buildVimPlugin {
     pname = "nfnl";
-    version = "2024-03-31";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "Olical";
       repo = "nfnl";
-      rev = "d6b33ae7376dda6f26cca8365d9beaf66f43c410";
-      sha256 = "1m6zdzkaynja934bzdqhw78zc58j70c00l6c8yh04iaxn41vi155";
+      rev = "982bff3c583c994d064a8887190b57ceb11db073";
+      sha256 = "132n6mcz039siwiw136d87iv3qn2cvqcijw30430vnd9kfa3qpi6";
     };
     meta.homepage = "https://github.com/Olical/nfnl/";
   };
@@ -7168,12 +7191,12 @@ final: prev:
 
   night-owl-nvim = buildVimPlugin {
     pname = "night-owl.nvim";
-    version = "2024-05-02";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "oxfist";
       repo = "night-owl.nvim";
-      rev = "42b85926978c8cba6ed4a57c84a530449e59904b";
-      sha256 = "03fzkrs4qigrbc0rmj6zgfniyng6779hr0811x7i3r747b8p7ksz";
+      rev = "e5cb68885e38af4c6e4a44bdab255606b832d8dd";
+      sha256 = "1hl30ffz3l77v48fmhykfcy9gm6zp619j3rych4r2aaa0fdvilc0";
     };
     meta.homepage = "https://github.com/oxfist/night-owl.nvim/";
   };
@@ -7228,12 +7251,12 @@ final: prev:
 
   nlsp-settings-nvim = buildVimPlugin {
     pname = "nlsp-settings.nvim";
-    version = "2024-05-16";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "tamago324";
       repo = "nlsp-settings.nvim";
-      rev = "103e764d3e733b89375cb7f877a5b70b0e0e125f";
-      sha256 = "10pw7c8fhqljdi65xpn19iwxfsbd4gfd0nxzyqjxa4xl3w9dyywk";
+      rev = "a3ba8ac15d104b9bef1117c3eb5910118e03a3b3";
+      sha256 = "09nbhs85i2y882yp09zn0bviw48pj8478dhabxyb8hhldc78p08v";
     };
     meta.homepage = "https://github.com/tamago324/nlsp-settings.nvim/";
   };
@@ -7264,12 +7287,12 @@ final: prev:
 
   no-neck-pain-nvim = buildVimPlugin {
     pname = "no-neck-pain.nvim";
-    version = "2024-05-15";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "shortcuts";
       repo = "no-neck-pain.nvim";
-      rev = "7c38c67fec5a29d9f4e9a59546a67dd2a26b5ff1";
-      sha256 = "0w365j4a480w0sw22h8aa5i6lisnmj2q33q0gdfbg3hx9swskmrr";
+      rev = "741ad26c4acc45f2164a3933f7825b0e555b724d";
+      sha256 = "04yfraal84zin7gvhfrx9v5359m3s3gvrxydw7xp5rz2rvsraqn3";
     };
     meta.homepage = "https://github.com/shortcuts/no-neck-pain.nvim/";
   };
@@ -7288,24 +7311,24 @@ final: prev:
 
   noice-nvim = buildVimPlugin {
     pname = "noice.nvim";
-    version = "2024-05-16";
+    version = "2024-05-23";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "noice.nvim";
-      rev = "2c49d4a7fdeaca930bb08a8239bdf5bccc26507b";
-      sha256 = "0slxiq7s1b0iars3p59bp2krk2zf2wr95qz9paa1jdkc6i7azzmf";
+      rev = "f119045f38792ad5311e5f9be7a879e4c1a95fe0";
+      sha256 = "1bmd15snawndhw2h1bzsph598lc6cyhkpclshfgw0hf8a26hbf0s";
     };
     meta.homepage = "https://github.com/folke/noice.nvim/";
   };
 
   none-ls-nvim = buildVimPlugin {
     pname = "none-ls.nvim";
-    version = "2024-05-14";
+    version = "2024-05-24";
     src = fetchFromGitHub {
       owner = "nvimtools";
       repo = "none-ls.nvim";
-      rev = "10c976d633862b9fe16171f5f5f17732bc54e19f";
-      sha256 = "1xvvfqbxl1v4yls156wwx36qzjdipxs0whqzgsps27984fpvwpci";
+      rev = "60f5f80686f5a272ed3281a7d4962cb54dc5348e";
+      sha256 = "1199c37ca4y44k5p18gr5vh57v2ga6gbhw3d1j6f1fsipxpvz2xj";
     };
     meta.homepage = "https://github.com/nvimtools/none-ls.nvim/";
   };
@@ -7360,12 +7383,12 @@ final: prev:
 
   nui-nvim = buildNeovimPlugin {
     pname = "nui.nvim";
-    version = "2024-05-06";
+    version = "2024-05-18";
     src = fetchFromGitHub {
       owner = "MunifTanjim";
       repo = "nui.nvim";
-      rev = "a3597dc88b53489d3fddbddbbd13787355253bb0";
-      sha256 = "1sg0b1vq6cggxw9vif7slp2362rw5xz2a0snhhmzz1frd2ckr72v";
+      rev = "b1b3dcd6ed8f355c78bad3d395ff645be5f8b6ae";
+      sha256 = "0i4pf0rrdyc0s41x0cfzvy1q5dxg3q0gl2wzmzir8ra27m2ma595";
     };
     meta.homepage = "https://github.com/MunifTanjim/nui.nvim/";
   };
@@ -7396,12 +7419,12 @@ final: prev:
 
   nvchad = buildVimPlugin {
     pname = "nvchad";
-    version = "2024-05-03";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "nvchad";
       repo = "nvchad";
-      rev = "156eeef8ecae812acd79d5eb58070d734a6202c6";
-      sha256 = "1jpsiqkgml1x81vc0x2d94k3a3xwbmp7s5wnh9rfdnrrwc6zv5pq";
+      rev = "0496016e188e294ba09dde41914b83800a9fa9ca";
+      sha256 = "14avsp94s866i183v3jd27a6sfvy36insj6ravn6mahgawjmimfk";
     };
     meta.homepage = "https://github.com/nvchad/nvchad/";
   };
@@ -7444,12 +7467,12 @@ final: prev:
 
   nvim-autopairs = buildVimPlugin {
     pname = "nvim-autopairs";
-    version = "2024-05-16";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "windwp";
       repo = "nvim-autopairs";
-      rev = "b0b79e42a28f09719a7da9534c3731fa37319d9b";
-      sha256 = "0xaaazahwc4f5d1vb8g0y4gz70wqc65gihf7512r8llw3c5diix9";
+      rev = "c15de7e7981f1111642e7e53799e1211d4606cb9";
+      sha256 = "0nd175qdh4fr0qjvdj7fa89lxhzdrf6ilc5r5vajzbfmbj72lh30";
     };
     meta.homepage = "https://github.com/windwp/nvim-autopairs/";
   };
@@ -7516,12 +7539,12 @@ final: prev:
 
   nvim-cmp = buildNeovimPlugin {
     pname = "nvim-cmp";
-    version = "2024-05-12";
+    version = "2024-05-17";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "nvim-cmp";
-      rev = "24122371810089d390847d8ba66325c1f1aa64c0";
-      sha256 = "0s4va3b06agy070fkqghx460q20jddvni14gbvjdvgkaf56xn8f3";
+      rev = "5260e5e8ecadaf13e6b82cf867a909f54e15fd07";
+      sha256 = "1ld6xs2mby4kyq3c6b88hcn3mw0x2yhzmgc8xm65ap59dafxy58s";
     };
     meta.homepage = "https://github.com/hrsh7th/nvim-cmp/";
   };
@@ -7540,12 +7563,12 @@ final: prev:
 
   nvim-cokeline = buildVimPlugin {
     pname = "nvim-cokeline";
-    version = "2024-03-20";
+    version = "2024-05-18";
     src = fetchFromGitHub {
       owner = "willothy";
       repo = "nvim-cokeline";
-      rev = "32929480b1753a5c2a99435e891da9be1e61e0b9";
-      sha256 = "0p3gliqn62fzfjkx25ny2yf4514x4a4nli2qgh5ccz4di9nfw5vf";
+      rev = "8145048ae68e05f31979c13b0adf7aa99f04f4c0";
+      sha256 = "1wjsgqinfrhcgcpb6vgp03h9dsc2xwpdvfbmsrgdz5b1mvwy2x8m";
     };
     meta.homepage = "https://github.com/willothy/nvim-cokeline/";
   };
@@ -7636,24 +7659,24 @@ final: prev:
 
   nvim-dap = buildVimPlugin {
     pname = "nvim-dap";
-    version = "2024-05-16";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-dap";
-      rev = "5a2f7121869394502521c52b2bc581ab22c69447";
-      sha256 = "17z6p952a5f027cpvrc0yi65784nc832hjdyv25igf3x1l6bd6ai";
+      rev = "922ebc75c2fa9305e36402fbd8c984c8638770a0";
+      sha256 = "0icaw880k3ah5p7gs6kbyhf94m6brpd6191sbi0bqd0r5lbsyf5v";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-dap/";
   };
 
   nvim-dap-go = buildVimPlugin {
     pname = "nvim-dap-go";
-    version = "2024-05-02";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "leoluz";
       repo = "nvim-dap-go";
-      rev = "5faf165f5062187320eaf9d177c3c1f647adc22e";
-      sha256 = "1ml1ln2psdb14bgrpa2zpalgqhimj0qzd28cnkzhhsdg49a19hyk";
+      rev = "a0c5a2b991d7e9304a9a032cf177e22a4b0acda1";
+      sha256 = "1msz8fiwsvjdda870k2y85plb4wg7xs3fh5w7hg8iwgmx6ykxh07";
     };
     meta.homepage = "https://github.com/leoluz/nvim-dap-go/";
   };
@@ -7672,24 +7695,24 @@ final: prev:
 
   nvim-dap-ui = buildVimPlugin {
     pname = "nvim-dap-ui";
-    version = "2024-04-28";
+    version = "2024-05-20";
     src = fetchFromGitHub {
       owner = "rcarriga";
       repo = "nvim-dap-ui";
-      rev = "5934302d63d1ede12c0b22b6f23518bb183fc972";
-      sha256 = "0qzbny9dlra0dyfhg4ljywrsnrq373xa9mzawj8nck3kbiv3ia6v";
+      rev = "334cf3038c4756e6ab999cbac67c847fb654c190";
+      sha256 = "0q4w7pnl0f8dqkg5wsyk6hkwf26llp69yajgvm3aylpavhnb5a55";
     };
     meta.homepage = "https://github.com/rcarriga/nvim-dap-ui/";
   };
 
   nvim-dap-virtual-text = buildVimPlugin {
     pname = "nvim-dap-virtual-text";
-    version = "2024-04-05";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "theHamsta";
       repo = "nvim-dap-virtual-text";
-      rev = "3e8e207513e6ef520894950acd76b79902714103";
-      sha256 = "1jsb5l4vda1qgsf8qpnz18gniw1fliia5hgap0l7xl40syvcczzm";
+      rev = "d7c695ea39542f6da94ee4d66176f5d660ab0a77";
+      sha256 = "1hqnwq2hy7qn62qxp204c9mx6japjhd6q8sfac0kfvzgw49v3khi";
     };
     meta.homepage = "https://github.com/theHamsta/nvim-dap-virtual-text/";
   };
@@ -7780,12 +7803,12 @@ final: prev:
 
   nvim-highlight-colors = buildVimPlugin {
     pname = "nvim-highlight-colors";
-    version = "2024-04-19";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "brenoprata10";
       repo = "nvim-highlight-colors";
-      rev = "432dc7a817a4973041f02b418169667c491f60fd";
-      sha256 = "1x2791sbifpwk3rzakggja7gr7s4icainaqyhg2x587vw26739cc";
+      rev = "582064092cff170331064b7d198a5b97cb261fca";
+      sha256 = "0krkwmcivlf7v6168n03w5sg5xgifb8ybj6f8y8wrknakp144lig";
     };
     meta.homepage = "https://github.com/brenoprata10/nvim-highlight-colors/";
   };
@@ -7828,12 +7851,12 @@ final: prev:
 
   nvim-jdtls = buildVimPlugin {
     pname = "nvim-jdtls";
-    version = "2024-05-16";
+    version = "2024-05-24";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-jdtls";
-      rev = "29255ea26dfb51ef0213f7572bff410f1afb002d";
-      sha256 = "1h3hdl99mb5r8mslcp7s78abyrrjjhmkndbif8c5iah7wmfnyq2c";
+      rev = "10691312d51c5485c656a71258b55d3798d3fb3e";
+      sha256 = "0v74cnhbmvpwq66srx0zj0gi3505kixph7ylf81sfl9dkryvf13q";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-jdtls/";
   };
@@ -7911,12 +7934,12 @@ final: prev:
 
   nvim-lint = buildVimPlugin {
     pname = "nvim-lint";
-    version = "2024-05-16";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-lint";
-      rev = "1f98d6c863f91706369d74aeb2eb3f02b2e96861";
-      sha256 = "1g5zryga6pjg5hm5475qszl3rd8s5iahds8qc2rjvqjkrh20h05h";
+      rev = "e19842a05aae484957ad20710444757bc0a61d63";
+      sha256 = "1w74a9biz4ca7fsfkyyxzkldirf7ihk2rcg53xb43wjchzgvm49g";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-lint/";
   };
@@ -7947,12 +7970,12 @@ final: prev:
 
   nvim-lspconfig = buildVimPlugin {
     pname = "nvim-lspconfig";
-    version = "2024-05-16";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "nvim-lspconfig";
-      rev = "cee94b22adc96582d9136f85fb3b076feda8825c";
-      sha256 = "1gz5vwb0hdqaxi2xh9dl87rf1yc10xinh3w83vd02cr9h88n5qv0";
+      rev = "d70633830acf605ec03d9728698d9e7232442eb4";
+      sha256 = "0bmy62prgmvczc0b0sd0w752gyzw7x0qpizpwmifrrqmj5nxhc6n";
     };
     meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
   };
@@ -7995,24 +8018,24 @@ final: prev:
 
   nvim-luapad = buildVimPlugin {
     pname = "nvim-luapad";
-    version = "2022-12-11";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "rafcamlet";
       repo = "nvim-luapad";
-      rev = "a5b3d6aa1fe5fe75e6124927392a9d3a60a0ecce";
-      sha256 = "05b2wnw9p5wpcc85fh40ddw90ls4k0mcmpa5rcadhy5c4xaf3q2h";
+      rev = "176686eb616a5ada5dfc748f2b5109194bbe8a71";
+      sha256 = "1rqyzf6nfcs8kdyjgm3rw76ns4sqrhl5lhfyx2h7rj9j8pncchh7";
     };
     meta.homepage = "https://github.com/rafcamlet/nvim-luapad/";
   };
 
   nvim-metals = buildVimPlugin {
     pname = "nvim-metals";
-    version = "2024-05-02";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "scalameta";
       repo = "nvim-metals";
-      rev = "c6268555d0b471262af78818f11a086ddf30688b";
-      sha256 = "1bzq2ybqhpsi0f7z14d2kvgn84xfj7zv7n2jpgk1ki0jsdw396xg";
+      rev = "1b87e6bfa4174b5fbaee9ca7ec79d8eae8df7f18";
+      sha256 = "13yi6wby4ybdh536ghjsvp2svzszzc08wi2lxx9rsqcm22aah0sm";
     };
     meta.homepage = "https://github.com/scalameta/nvim-metals/";
   };
@@ -8031,12 +8054,12 @@ final: prev:
 
   nvim-navbuddy = buildVimPlugin {
     pname = "nvim-navbuddy";
-    version = "2024-03-24";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "SmiteshP";
       repo = "nvim-navbuddy";
-      rev = "f34237e8a41ebc6e2716af2ebf49854d8c5289c8";
-      sha256 = "12cm863ny6i9raqmxr7mql1wglxnm3rvmfa8v4dpjr5c64bg758i";
+      rev = "f22bac988f2dd073601d75ba39ea5636ab6e38cb";
+      sha256 = "034pmg403y0y1fxnb1jv291mr016bx1vn68y543v6v4dpbdlr7di";
     };
     meta.homepage = "https://github.com/SmiteshP/nvim-navbuddy/";
   };
@@ -8067,12 +8090,12 @@ final: prev:
 
   nvim-nio = buildNeovimPlugin {
     pname = "nvim-nio";
-    version = "2024-05-02";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "nvim-neotest";
       repo = "nvim-nio";
-      rev = "8765cbc4d0c629c8158a5341e1b4305fd93c3a90";
-      sha256 = "0drzp2fyancyz57k8nkwc1bd7bksy1f8bpy92njiccpdflwhkyjm";
+      rev = "632024157d01e8bc48fd7df6a7de8ffe3fdd4f3a";
+      sha256 = "1j8v5scqsjp2wmigssqnajiz405jdc9l232d3s5xw5z6xr7fxxsi";
     };
     meta.homepage = "https://github.com/nvim-neotest/nvim-nio/";
   };
@@ -8091,12 +8114,12 @@ final: prev:
 
   nvim-notify = buildVimPlugin {
     pname = "nvim-notify";
-    version = "2024-02-17";
+    version = "2024-05-17";
     src = fetchFromGitHub {
       owner = "rcarriga";
       repo = "nvim-notify";
-      rev = "5371f4bfc1f6d3adf4fe9d62cd3a9d44356bfd15";
-      sha256 = "1daf6qhm9p0smcqi8w6vr8agnvyv9ra3z7f0ijlcab8qgqwhz5n4";
+      rev = "d333b6f167900f6d9d42a59005d82919830626bf";
+      sha256 = "0000a56y6xp2hzb5pf0in9336s9r29w590kxqdxdl5gfpz08f763";
     };
     meta.homepage = "https://github.com/rcarriga/nvim-notify/";
   };
@@ -8115,12 +8138,12 @@ final: prev:
 
   nvim-osc52 = buildVimPlugin {
     pname = "nvim-osc52";
-    version = "2024-05-13";
+    version = "2024-05-24";
     src = fetchFromGitHub {
       owner = "ojroques";
       repo = "nvim-osc52";
-      rev = "42361eee0d4f23937d9abb9864eaedeeaaed5bf7";
-      sha256 = "01ibiyrsc7d58vf6w2cdhcf3vfkfyqcws3w6sdqy9rwlmvamb14k";
+      rev = "04cfaba1865ae5c53b6f887c3ca7304973824fb2";
+      sha256 = "0rfn4lxbk3pwlnsa7ldcg3qh4zcapci9fr20gp56c6zcdjwayn3i";
     };
     meta.homepage = "https://github.com/ojroques/nvim-osc52/";
   };
@@ -8139,12 +8162,12 @@ final: prev:
 
   nvim-pqf = buildVimPlugin {
     pname = "nvim-pqf";
-    version = "2024-05-13";
+    version = "2024-05-20";
     src = fetchFromGitHub {
       owner = "yorickpeterse";
       repo = "nvim-pqf";
-      rev = "8de182d1b2b677ad6ba264e15b6230f74881e96d";
-      sha256 = "0ifpvr6jrzk2yhi80x2fsrlr1ha86n6wrwb3p813fif9pmxnbq8v";
+      rev = "148ee2ca8b06d83fd9bf6f9b9497724ad39a07d6";
+      sha256 = "10h5zk7qkj9m640bjncrmf40jlajfrmvgcbxkc1y6hpgymyzalg5";
     };
     meta.homepage = "https://github.com/yorickpeterse/nvim-pqf/";
   };
@@ -8187,12 +8210,12 @@ final: prev:
 
   nvim-scrollview = buildVimPlugin {
     pname = "nvim-scrollview";
-    version = "2024-03-20";
+    version = "2024-05-17";
     src = fetchFromGitHub {
       owner = "dstein64";
       repo = "nvim-scrollview";
-      rev = "5a7eb7e6c1b921761615b57a6140d73b1cc2b034";
-      sha256 = "00bciq19ry0bm05grlissw1x5nkwi1f6bm0lzw4kmm2zk3zb903n";
+      rev = "9257c3f3ebf7608a8711caf44f878d87cd40395d";
+      sha256 = "1nppzm8v7akpz38f9zr22m2281hdxvhxiy8a46kprrhw2030j4k1";
     };
     meta.homepage = "https://github.com/dstein64/nvim-scrollview/";
   };
@@ -8209,6 +8232,18 @@ final: prev:
     meta.homepage = "https://github.com/s1n7ax/nvim-search-and-replace/";
   };
 
+  nvim-snippets = buildVimPlugin {
+    pname = "nvim-snippets";
+    version = "2024-05-28";
+    src = fetchFromGitHub {
+      owner = "garymjr";
+      repo = "nvim-snippets";
+      rev = "70f0b3ed2ec24b2b18a34ab6eb07ea6df09f61c5";
+      sha256 = "0aqdmg8x3y4w9sz9adq68ck6dvizmm4ycqdzkpx9lg53y0003dc9";
+    };
+    meta.homepage = "https://github.com/garymjr/nvim-snippets/";
+  };
+
   nvim-snippy = buildVimPlugin {
     pname = "nvim-snippy";
     version = "2024-05-01";
@@ -8247,24 +8282,24 @@ final: prev:
 
   nvim-spectre = buildVimPlugin {
     pname = "nvim-spectre";
-    version = "2024-04-29";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "nvim-pack";
       repo = "nvim-spectre";
-      rev = "4651801ba37a9407b7257287aec45b6653ffc5e9";
-      sha256 = "0xna3g63ypagl4jxv9m0kfjzlqnhnlhzjm1gapgmmrzbcb9m3ml3";
+      rev = "366f46fdd4a1593cc237aea13d5ef113739a472c";
+      sha256 = "sha256-JS0kfM+uxwC/z8bdkdkaC+MAJIyvlvXsi3BDJuBxADA=";
     };
     meta.homepage = "https://github.com/nvim-pack/nvim-spectre/";
   };
 
   nvim-spider = buildVimPlugin {
     pname = "nvim-spider";
-    version = "2024-04-27";
+    version = "2024-05-17";
     src = fetchFromGitHub {
       owner = "chrisgrieser";
       repo = "nvim-spider";
-      rev = "76819082ef964db1f67f92454e18ad28ae34b37b";
-      sha256 = "1g0c3lids9kww2awsz0ykgvwm7945a9nvxg96iads735hfwc7p49";
+      rev = "b2f2af0563bb631864cab262d483118f3610e662";
+      sha256 = "0r26bs48wcya37q2bfn598cirkgrpsv6g7fyysjlm8z065nxysap";
     };
     meta.homepage = "https://github.com/chrisgrieser/nvim-spider/";
   };
@@ -8319,36 +8354,36 @@ final: prev:
 
   nvim-tree-lua = buildVimPlugin {
     pname = "nvim-tree.lua";
-    version = "2024-05-14";
+    version = "2024-05-28";
     src = fetchFromGitHub {
       owner = "nvim-tree";
       repo = "nvim-tree.lua";
-      rev = "2bc725a3ebc23f0172fb0ab4d1134b81bcc13812";
-      sha256 = "11snxarz0af9fa8n387l9lzwhfbnp5q0va21kc203ski7c9w18b2";
+      rev = "5a87ffe35c4739ffb6b62052572583ad277a20ae";
+      sha256 = "0rcva685c1wc7pwwyngcvw5rbyipgfd7s2n5qqdifj0lciswngxf";
     };
     meta.homepage = "https://github.com/nvim-tree/nvim-tree.lua/";
   };
 
   nvim-treesitter = buildVimPlugin {
     pname = "nvim-treesitter";
-    version = "2024-05-16";
+    version = "2024-05-28";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter";
-      rev = "8012b55eee65eba1d1ee4df0a186d30e72dcbe65";
-      sha256 = "1lwr83l5xn2mfka3pajfsh1cmxzdpysspmv2cab6ams9bn8w4jwf";
+      rev = "ea2b137f35fb1e87a6471ec311805920fdf45745";
+      sha256 = "0vrsjlzxb092ivvk8wiffci84880mh8lnhycgzld2xkxy615nyc1";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
   };
 
   nvim-treesitter-context = buildVimPlugin {
     pname = "nvim-treesitter-context";
-    version = "2024-05-16";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter-context";
-      rev = "6d076414ffedd80411cb0260da8da2788e816e33";
-      sha256 = "0a5dgb81iy8jikcvd8ixvicp84wifzkwp47dpm1vpjyvwamj2jvv";
+      rev = "f62bfe19e0fbc13ae95649dfb3cf22f4ff85b683";
+      sha256 = "1py73iaqp2mlr64f024sny0ybp9i01h6rvpx70qpfbbvmf5m53hi";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-context/";
   };
@@ -8391,12 +8426,12 @@ final: prev:
 
   nvim-treesitter-textobjects = buildVimPlugin {
     pname = "nvim-treesitter-textobjects";
-    version = "2024-05-15";
+    version = "2024-05-23";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter-textobjects";
-      rev = "84cc9ed772f1fee2f47c1e076f518829583d8347";
-      sha256 = "0z08c1yz3sn4cdijj9k61zjrny8wp7q1gq1jz9knwg327slm0syd";
+      rev = "3557e41418b4a6c5b85d5d64abe94c9c50fa9b14";
+      sha256 = "111ywl75bpfmfrawnw2rrjlvrd2amyh6ivac0w8xlh38x5l06ncy";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/";
   };
@@ -8415,36 +8450,36 @@ final: prev:
 
   nvim-ts-autotag = buildVimPlugin {
     pname = "nvim-ts-autotag";
-    version = "2024-02-07";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "windwp";
       repo = "nvim-ts-autotag";
-      rev = "531f48334c422222aebc888fd36e7d109cb354cd";
-      sha256 = "1azlkqjvdnam4plm98a23j21swwlk1lvpa7cj3cpvi8q6wi09wkh";
+      rev = "8ae54b90e36ef1fc5267214b30c2cbff71525fe4";
+      sha256 = "0j09kqkscdpyq3vpm7driz3016y4d93s7hy0bjspw7x23maqwbl3";
     };
     meta.homepage = "https://github.com/windwp/nvim-ts-autotag/";
   };
 
   nvim-ts-context-commentstring = buildVimPlugin {
     pname = "nvim-ts-context-commentstring";
-    version = "2024-05-07";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "joosepalviste";
       repo = "nvim-ts-context-commentstring";
-      rev = "0bdccb9c67a42a5e2d99384dc9bfa29b1451528f";
-      sha256 = "0b4cx7k53w3cjfnp6nyvvpi1dnnpdp4j67sszsra61fk8pyqp4w2";
+      rev = "cb064386e667def1d241317deed9fd1b38f0dc2e";
+      sha256 = "13xyrzp9gfbnrxp6v7xxpiwyk18rnw5pn3vw01f0xvnpfsqfz3w4";
     };
     meta.homepage = "https://github.com/joosepalviste/nvim-ts-context-commentstring/";
   };
 
   nvim-ufo = buildVimPlugin {
     pname = "nvim-ufo";
-    version = "2024-04-03";
+    version = "2024-05-20";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "nvim-ufo";
-      rev = "a5390706f510d39951dd581f6d2a972741b3fa26";
-      sha256 = "0fyc504ay04402gk1vly0lz8fa5yyfmix16zsvl29grw6rpjacvp";
+      rev = "65dda6360879f6ffe0278163b9192a573a0d2a08";
+      sha256 = "0msbj4d506xb5sr8x1pjqk5radhlzrdnc1xnbxk5wbl0vvli5rxn";
     };
     meta.homepage = "https://github.com/kevinhwang91/nvim-ufo/";
   };
@@ -8463,12 +8498,12 @@ final: prev:
 
   nvim-web-devicons = buildVimPlugin {
     pname = "nvim-web-devicons";
-    version = "2024-05-13";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "nvim-tree";
       repo = "nvim-web-devicons";
-      rev = "e37bb1feee9e7320c76050a55443fa843b4b6f83";
-      sha256 = "0kxj9xj94zln8ah2i0r09p0c8prn0rs1vwgf5dvmjn3j8m4x3nnn";
+      rev = "b77921fdc44833c994fdb389d658ccbce5490c16";
+      sha256 = "1zn4qn6xz0pn3wcxd1x4j1cw7h41qkvw02qjmil71sjrsnffqrky";
     };
     meta.homepage = "https://github.com/nvim-tree/nvim-web-devicons/";
   };
@@ -8547,12 +8582,12 @@ final: prev:
 
   obsidian-nvim = buildVimPlugin {
     pname = "obsidian.nvim";
-    version = "2024-05-08";
+    version = "2024-05-23";
     src = fetchFromGitHub {
       owner = "epwalsh";
       repo = "obsidian.nvim";
-      rev = "2e1f03416583232899dc1b6e27673da5e705abef";
-      sha256 = "1c3zxz60g7jgm3cd9xhzp73qa218b1z6rfiaf9n4wcbzb88c8scl";
+      rev = "0890a3f4e1711d98b5aa78bf40d2c5b81ef3c39f";
+      sha256 = "0aj8mzlb4ki8f1fz77jcksmw22mw5l26cjad9i1hnqfcc0zbgfj7";
     };
     meta.homepage = "https://github.com/epwalsh/obsidian.nvim/";
   };
@@ -8595,12 +8630,12 @@ final: prev:
 
   oil-nvim = buildVimPlugin {
     pname = "oil.nvim";
-    version = "2024-05-16";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "oil.nvim";
-      rev = "9e3a02252dc5686f374f79f50a13cfe7547c05af";
-      sha256 = "04wqq3s4mwz1f5v85iyh6wx43q4sfj5iqhg82krs7n4rq9nh3r4s";
+      rev = "2cb39e838e9dcd8b374f09a3a87a2e5ec9d372f6";
+      sha256 = "0m75vs3xijv2b27q6zh95jhs0fy4qpc488aqcpmjamgpp7nakhly";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/stevearc/oil.nvim/";
@@ -8632,12 +8667,12 @@ final: prev:
 
   omnisharp-extended-lsp-nvim = buildVimPlugin {
     pname = "omnisharp-extended-lsp.nvim";
-    version = "2024-03-31";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "Hoffs";
       repo = "omnisharp-extended-lsp.nvim";
-      rev = "6e0aa6465f8fa8ac6c833f6ac4713adfee0202a0";
-      sha256 = "1i8dx4k4k7d1p713sinxnvm259pir4yz41kfnaaa1bpfwzfm3jsp";
+      rev = "f872cfa38b30a34e179fb028f68588d09bd44114";
+      sha256 = "1xlnfr9vdvxhz09njz2lgyiww10fcg79vzm372zqw99dcqr9jm4p";
     };
     meta.homepage = "https://github.com/Hoffs/omnisharp-extended-lsp.nvim/";
   };
@@ -8692,12 +8727,12 @@ final: prev:
 
   onedarkpro-nvim = buildVimPlugin {
     pname = "onedarkpro.nvim";
-    version = "2024-05-13";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "olimorris";
       repo = "onedarkpro.nvim";
-      rev = "5cf25dd6db58c6eb1cec47ad333e2b76051f8562";
-      sha256 = "1yrns9y6dmfbg4hdv2v78izbwdnxxy9i6pnympkvihlpbqdshqar";
+      rev = "13c3244b2520a832989d797d69436df7d27e20b9";
+      sha256 = "121wyddlriik7qpci5lwhcnmd5qlj6gfmsqdj9m4475l8qik5nq7";
     };
     meta.homepage = "https://github.com/olimorris/onedarkpro.nvim/";
   };
@@ -8776,12 +8811,12 @@ final: prev:
 
   orgmode = buildVimPlugin {
     pname = "orgmode";
-    version = "2024-05-14";
+    version = "2024-05-28";
     src = fetchFromGitHub {
       owner = "nvim-orgmode";
       repo = "orgmode";
-      rev = "8ec0bcc6f6476d246159f738081256c97a7a9b2c";
-      sha256 = "17glhwnkb7k96ihh3p3w8pjnprc2lrhlhrrb6v9m5azbhsjy7ysg";
+      rev = "46c839b5a69f2c0bc5da25b10946a971767c84db";
+      sha256 = "1bag3506whplls8b7xbal04vhw0hkbafs11l9v28sybjj58xa207";
     };
     meta.homepage = "https://github.com/nvim-orgmode/orgmode/";
   };
@@ -8800,36 +8835,36 @@ final: prev:
 
   otter-nvim = buildVimPlugin {
     pname = "otter.nvim";
-    version = "2024-05-11";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "jmbuhr";
       repo = "otter.nvim";
-      rev = "5cd161f28835fada50d99c89dc05041565a27bdb";
-      sha256 = "18vl93j93s9i22ybw3vl129kvhz8382yg8b1r1m0xnfyiklpkzg5";
+      rev = "083407ae9405b414ac4828e19f9b1e9f0e1ac102";
+      sha256 = "1y27r8ha63ws9gncv0ajskhn73jqj1hd30avlfc89qvbbyh74h0b";
     };
     meta.homepage = "https://github.com/jmbuhr/otter.nvim/";
   };
 
   outline-nvim = buildVimPlugin {
     pname = "outline.nvim";
-    version = "2024-05-02";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "hedyhli";
       repo = "outline.nvim";
-      rev = "dbd836893fb99cfc33119d7c4abbdb700210f54b";
-      sha256 = "1sy82vh9629wwyvc1j3q0vqfj7vichw90kl4vsa087v8sfn8r35z";
+      rev = "139e363dd5a44f66a51041264aabe3884df4dd98";
+      sha256 = "1ikzqia4ncsg80qghzj6jhm931kiaii804jz95hvm3wzgmx1700k";
     };
     meta.homepage = "https://github.com/hedyhli/outline.nvim/";
   };
 
   overseer-nvim = buildVimPlugin {
     pname = "overseer.nvim";
-    version = "2024-05-16";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "overseer.nvim";
-      rev = "7a9b654df4b3b246d05fff857f32e9fb8ddfb013";
-      sha256 = "1qp5vkswgl3cz7qcnsl8dywwwcg8561dqhyp08zd2ifj933r1b5j";
+      rev = "31f309692c9dd9162d3f63b5456a7932799c347c";
+      sha256 = "0714xsfnvcw53znpa6zdhng837pqbjxdplws61lsydwcaazrxl55";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/stevearc/overseer.nvim/";
@@ -8945,12 +8980,12 @@ final: prev:
 
   persisted-nvim = buildVimPlugin {
     pname = "persisted.nvim";
-    version = "2024-05-07";
+    version = "2024-05-17";
     src = fetchFromGitHub {
       owner = "olimorris";
       repo = "persisted.nvim";
-      rev = "1e9fd63e25bdbb5dbb6b8b10f817b2446977146c";
-      sha256 = "1y61izajz6p2b1vfa20f3j5rl1fjbfmbzny3ywkfai4dsnrks8yi";
+      rev = "b77d244a77a46013fbf7e59d45d84d58df294dc1";
+      sha256 = "108w4azi6zbj9h28dcibh7m28ig8bxi3f11psqi7561bfncgj0wv";
     };
     meta.homepage = "https://github.com/olimorris/persisted.nvim/";
   };
@@ -9053,12 +9088,12 @@ final: prev:
 
   plenary-nvim = buildNeovimPlugin {
     pname = "plenary.nvim";
-    version = "2024-04-25";
+    version = "2024-05-20";
     src = fetchFromGitHub {
       owner = "nvim-lua";
       repo = "plenary.nvim";
-      rev = "08e301982b9a057110ede7a735dd1b5285eb341f";
-      sha256 = "03x9mxxqscahs3plml9pw0q6yacyiz6nvw4pcbpqlcqj99f0qbdz";
+      rev = "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683";
+      sha256 = "0n2p8krzwiw682f0yb6n8faamffpp336rjy50pbqf3jmc6czd5z4";
     };
     meta.homepage = "https://github.com/nvim-lua/plenary.nvim/";
   };
@@ -9343,11 +9378,11 @@ final: prev:
 
   rainbow-delimiters-nvim = buildVimPlugin {
     pname = "rainbow-delimiters.nvim";
-    version = "2024-05-11";
+    version = "2024-05-24";
     src = fetchgit {
       url = "https://gitlab.com/HiPhish/rainbow-delimiters.nvim";
-      rev = "dd1156723eb8483e4403eb8765bbdff456b6981d";
-      sha256 = "1cj3hylb73wqgllr5wnqjlzlwqr9s4f5yb4g4s2lra4g7a08grxj";
+      rev = "849803e0a687c6ef7c9a0d305bd4d441017b8abf";
+      sha256 = "1njwqlq6dlz7jqjfi3q1g6scxk2ahyknycmg7d05hlh82qz94y80";
     };
     meta.homepage = "https://gitlab.com/HiPhish/rainbow-delimiters.nvim";
   };
@@ -9606,12 +9641,12 @@ final: prev:
 
   rustaceanvim = buildNeovimPlugin {
     pname = "rustaceanvim";
-    version = "2024-05-16";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "mrcjkb";
       repo = "rustaceanvim";
-      rev = "50c09f3afa35d3b32e09ac1b155e95c53a98b8e8";
-      sha256 = "0ws8c2bpnhkvgslpa95llydn60kyh7qg66y6a7h9g89mwxda0m6v";
+      rev = "691901d6e241382261c1a99da4e8180e5563d8af";
+      sha256 = "055xc2s9a6p0i71v90rdqq17i5ai52zf1hgl61jrbx7bfy847f2v";
     };
     meta.homepage = "https://github.com/mrcjkb/rustaceanvim/";
   };
@@ -9702,12 +9737,12 @@ final: prev:
 
   searchbox-nvim = buildVimPlugin {
     pname = "searchbox.nvim";
-    version = "2024-04-26";
+    version = "2024-05-17";
     src = fetchFromGitHub {
       owner = "VonHeikemen";
       repo = "searchbox.nvim";
-      rev = "6cf79dc53794b06a95791a034341f1332e04dd58";
-      sha256 = "138wazdwncgknh4jmaa22i7q8fa8qgc18085xykfvbcf9ljvi0ya";
+      rev = "5cbf11fbaa24da8810f467736cef7dde2410dfb2";
+      sha256 = "01nqlfw4l9zncqip5xwvlisqgmqxlkrz6pvgvgiv7p7vbj2kxg1n";
     };
     meta.homepage = "https://github.com/VonHeikemen/searchbox.nvim/";
   };
@@ -9774,12 +9809,12 @@ final: prev:
 
   sg-nvim = buildVimPlugin {
     pname = "sg.nvim";
-    version = "2024-03-14";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "sourcegraph";
       repo = "sg.nvim";
-      rev = "8d7735bfb810d919806da1e1c4f839fbc6ecccfe";
-      sha256 = "1wb6k3zyk5xa2s6v9x5kly9wv6hi4mpw9630fkyj0ixc4z67y4j9";
+      rev = "8bdd4d19da2268072708d5fe18fda9c23e16509d";
+      sha256 = "03qkd7xxi4q7mw1sgnsa9pmkk8012ndg9ij5ssw8l689v5dx6377";
     };
     meta.homepage = "https://github.com/sourcegraph/sg.nvim/";
   };
@@ -9847,12 +9882,12 @@ final: prev:
 
   smart-splits-nvim = buildVimPlugin {
     pname = "smart-splits.nvim";
-    version = "2024-05-14";
+    version = "2024-05-24";
     src = fetchFromGitHub {
       owner = "mrjones2014";
       repo = "smart-splits.nvim";
-      rev = "2846aee230e2dd0a3b8912d8eba86dae7d1d16b2";
-      sha256 = "0xaqvin1gcr4a4nmssaazaqnvp7mmhnrl4kz1raw1nn8krww9rj2";
+      rev = "c29547c7f144adc3387f2717626422e6b0027a08";
+      sha256 = "0ajxrcp2mrpr6yx66aiggjhli2v60rqs9dpgpmd084nnpv45rrjn";
     };
     meta.homepage = "https://github.com/mrjones2014/smart-splits.nvim/";
   };
@@ -9931,12 +9966,12 @@ final: prev:
 
   sonokai = buildVimPlugin {
     pname = "sonokai";
-    version = "2024-05-15";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "sonokai";
-      rev = "d638deba408349ccb60bf5278ff7f23ff52b164a";
-      sha256 = "141mcy6l56am1hzawdbpjmvj82mp8zbpgkdwmq9wfclawmhfdqqh";
+      rev = "da5b10020b9ca960f5a0296ab59ccc44f0d7718e";
+      sha256 = "0a9622acsq7dghdz6aind03sl679x2wrz5579yc9vvwwirinafgl";
     };
     meta.homepage = "https://github.com/sainnhe/sonokai/";
   };
@@ -10088,12 +10123,12 @@ final: prev:
 
   srcery-vim = buildVimPlugin {
     pname = "srcery-vim";
-    version = "2024-03-26";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "srcery-colors";
       repo = "srcery-vim";
-      rev = "7439a86e19714adaf1d4ae2c69ada19d5c779526";
-      sha256 = "1s237nky24ijr732dylyag86fkng5a93jv36makbq4sqr2b1icl9";
+      rev = "0f358d938aecfd3bcc1617ed354a94575ad455b5";
+      sha256 = "08ria5wrg0my9pz3laahr8vilfcbrxncf000pmgvlazp4297vgy5";
     };
     meta.homepage = "https://github.com/srcery-colors/srcery-vim/";
   };
@@ -10136,12 +10171,12 @@ final: prev:
 
   staline-nvim = buildVimPlugin {
     pname = "staline.nvim";
-    version = "2024-05-16";
+    version = "2024-05-20";
     src = fetchFromGitHub {
       owner = "tamton-aquib";
       repo = "staline.nvim";
-      rev = "2bda31da08c620adce08df8359bd402044399340";
-      sha256 = "17wkf3j7nyjk4ch88hkgb68lyr34z0kk9qhmk7n4h673jhn2lh34";
+      rev = "bb2b05b1407c6350a8ae45337609b43ed578fcc7";
+      sha256 = "1r88gdjmc4qpxa35s0735v3pv3k97iw4b3k5iizp5w7lk2h07b6z";
     };
     meta.homepage = "https://github.com/tamton-aquib/staline.nvim/";
   };
@@ -10316,12 +10351,12 @@ final: prev:
 
   switch-vim = buildVimPlugin {
     pname = "switch.vim";
-    version = "2023-08-22";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "AndrewRadev";
       repo = "switch.vim";
-      rev = "68d269301181835788dcdcb6d5bca337fb954395";
-      sha256 = "0llpr59wgagr1mvaml80pqbci025phgdfn84zn82s1mmgaa4xjl3";
+      rev = "21defb202ebb8406b8ed63183a43ea026f2645b3";
+      sha256 = "0ph3khcw62rj6xnkjnjv4w63y1dz0w4qv56b5m3c6gd4aiv6wash";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/AndrewRadev/switch.vim/";
@@ -10353,12 +10388,12 @@ final: prev:
 
   tabby-nvim = buildVimPlugin {
     pname = "tabby.nvim";
-    version = "2024-03-28";
+    version = "2024-05-20";
     src = fetchFromGitHub {
       owner = "nanozuki";
       repo = "tabby.nvim";
-      rev = "67d374290efc6108a7a5017c3405c0dbb4c8b92d";
-      sha256 = "0pwml4adsknfrnl7wrd2dkb1pzgcvwggi03c02p3pyrk5hnhgx70";
+      rev = "a57286c76cd7336940f8221f3df486a4dd26673f";
+      sha256 = "1v1gkhm1l8y89c6p4cnk1b0l8x954rmzcgqdrjd2gp729ff83i9p";
     };
     meta.homepage = "https://github.com/nanozuki/tabby.nvim/";
   };
@@ -10414,12 +10449,12 @@ final: prev:
 
   tabout-nvim = buildVimPlugin {
     pname = "tabout.nvim";
-    version = "2024-04-27";
+    version = "2024-05-18";
     src = fetchFromGitHub {
       owner = "abecodes";
       repo = "tabout.nvim";
-      rev = "26cf934f872e2fbfab55d572c5eb7dad0e82238e";
-      sha256 = "157zglv8l9qdkralyddnfi6zavr3km6wcxk2x4hs5vg1pi60v8qa";
+      rev = "3d7fbc7f5e91ef0f96b4d787c78ad9f8820de3ec";
+      sha256 = "1v5bjy8d4y5yiyccijdqcsw61dvvbqdd7c54cvc5v0l5rlhbp20d";
     };
     meta.homepage = "https://github.com/abecodes/tabout.nvim/";
   };
@@ -10571,12 +10606,12 @@ final: prev:
 
   telescope-coc-nvim = buildVimPlugin {
     pname = "telescope-coc.nvim";
-    version = "2024-04-08";
+    version = "2024-05-18";
     src = fetchFromGitHub {
       owner = "fannheyward";
       repo = "telescope-coc.nvim";
-      rev = "55ca0d6960eb1c32f9f7967fa71926f7bad484a8";
-      sha256 = "0yzw9k406q1ixascqw8maw9raqny6cc0cp1idmdsrp8dnvl954v8";
+      rev = "0819a790dc95336ce2a954513434a76bb76c41c7";
+      sha256 = "06njpa3i8wp73snjgih04ba6mny2m7inkfivl9pic1izcp4r61a6";
     };
     meta.homepage = "https://github.com/fannheyward/telescope-coc.nvim/";
   };
@@ -10607,12 +10642,12 @@ final: prev:
 
   telescope-frecency-nvim = buildVimPlugin {
     pname = "telescope-frecency.nvim";
-    version = "2024-05-01";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-frecency.nvim";
-      rev = "6b6565e6584c86ca501bdac485cbdc2ca64556e4";
-      sha256 = "0rmj6sk7yz5qmn6mdpcww2lgsq9q4x7r166a8lhwlm8ch3lddcf6";
+      rev = "8783a062f76ffa2c328fa98288a404f478d78908";
+      sha256 = "11l67p7w72xr8vxrwnzm7glanh9cpg33ah3r6x1syaq63l9b0s72";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-frecency.nvim/";
   };
@@ -10668,12 +10703,12 @@ final: prev:
 
   telescope-live-grep-args-nvim = buildVimPlugin {
     pname = "telescope-live-grep-args.nvim";
-    version = "2023-12-15";
+    version = "2024-05-20";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-live-grep-args.nvim";
-      rev = "731a046da7dd3adff9de871a42f9b7fb85f60f47";
-      sha256 = "0sczw6b6vk01cdncyfq6svasrfrisbxd3valsxy0qrv768h2sqwl";
+      rev = "4122e146d199c0d6d1cfb359c76bc1250d522460";
+      sha256 = "0z0yvgxn6shp9az5vfb8yfy3ly5xy4gbp5zqk54z9xpavqnim4kb";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-live-grep-args.nvim/";
   };
@@ -10692,12 +10727,12 @@ final: prev:
 
   telescope-manix = buildNeovimPlugin {
     pname = "telescope-manix";
-    version = "2024-05-12";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "MrcJkb";
       repo = "telescope-manix";
-      rev = "bfffb3a8cf1c0a4e615622c400fe13de973fe96b";
-      sha256 = "0ghrnb76ls1wnmjw525n9d203fc4y17azs8d6mcms4wf7kx7k4ag";
+      rev = "487f66ef0522163f9cefc95a874587f438f9db65";
+      sha256 = "0340dx3gix5cbrcap8npg47ij9751gbk42av5ppki6zwdcdb0205";
     };
     meta.homepage = "https://github.com/MrcJkb/telescope-manix/";
   };
@@ -10837,12 +10872,12 @@ final: prev:
 
   telescope-nvim = buildNeovimPlugin {
     pname = "telescope.nvim";
-    version = "2024-05-16";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope.nvim";
-      rev = "52f500110bcf9190b44b4d8640162adc86772ec4";
-      sha256 = "0l3vd9xabwx40rqmmwzj1sgnn62z0gg174yl2gl7k2w935nj707z";
+      rev = "2df52609a1632de5d77a0b2416db6ad9cf32e463";
+      sha256 = "0dl7hlziz7yvr3p8bnzfvdd85a2khgm3dy3s2674p6rvkwwq7cmw";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope.nvim/";
   };
@@ -11065,12 +11100,12 @@ final: prev:
 
   todo-comments-nvim = buildVimPlugin {
     pname = "todo-comments.nvim";
-    version = "2024-03-27";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "todo-comments.nvim";
-      rev = "a7e39ae9e74f2c8c6dc4eea6d40c3971ae84752d";
-      sha256 = "1z6d0cc0vjl504var8p4l6wshbs5i447wg7y7rmk6i4kb39m94q4";
+      rev = "e1549807066947818113a7d7ed48f637e49620d3";
+      sha256 = "16ih348appcdvg7cd62232gv700z1jz1zj3khnfh98h7d9x796k4";
     };
     meta.homepage = "https://github.com/folke/todo-comments.nvim/";
   };
@@ -11090,24 +11125,24 @@ final: prev:
 
   toggleterm-nvim = buildVimPlugin {
     pname = "toggleterm.nvim";
-    version = "2024-04-22";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "toggleterm.nvim";
-      rev = "066cccf48a43553a80a210eb3be89a15d789d6e6";
-      sha256 = "1z058jxwcynwyw6fnkjsqdpnmbl9pa956fnm1x4w96hy00d5pklq";
+      rev = "fee58a0473fd92b28c34f8f724e4918b15ba30a3";
+      sha256 = "1iavy1182n0fwiv6rr6i9lb2kyqbw1fg49fy782nsbmkr25b7kc7";
     };
     meta.homepage = "https://github.com/akinsho/toggleterm.nvim/";
   };
 
   tokyonight-nvim = buildVimPlugin {
     pname = "tokyonight.nvim";
-    version = "2024-05-16";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "tokyonight.nvim";
-      rev = "634015fff1457ed66cf5364213a2bbbc51a82d6c";
-      sha256 = "0fk0afw5d8nwpz1244c0d6sk8hjk63swapwrxcxk0c1f12qc364l";
+      rev = "0fae425aaab04a5f97666bd431b96f2f19c36935";
+      sha256 = "1rhbvnhlg6a3hsyw6dw7gfp6skgpp1ciz97cjg782l94mz94lv35";
     };
     meta.homepage = "https://github.com/folke/tokyonight.nvim/";
   };
@@ -11150,12 +11185,12 @@ final: prev:
 
   treesj = buildVimPlugin {
     pname = "treesj";
-    version = "2024-04-22";
+    version = "2024-05-28";
     src = fetchFromGitHub {
       owner = "Wansmer";
       repo = "treesj";
-      rev = "e1e82ab4237619d342c7102c9f13d4b9833bfd39";
-      sha256 = "1sfrcafs9i69rsy1m3ng2qfibs5bncsfbggz3apsdyv6vxnzw28m";
+      rev = "f98deb33805485b56a8d44d1a27d16874af00d7f";
+      sha256 = "0w20crwgnf2l8hl71hq1drif2czc2yhbac2m50lgrf6nk8s7x4i9";
     };
     meta.homepage = "https://github.com/Wansmer/treesj/";
   };
@@ -11186,12 +11221,12 @@ final: prev:
 
   triptych-nvim = buildVimPlugin {
     pname = "triptych.nvim";
-    version = "2024-05-06";
+    version = "2024-05-18";
     src = fetchFromGitHub {
       owner = "simonmclean";
       repo = "triptych.nvim";
-      rev = "41dada0eb0f7c2b9d504df952be8535afab33115";
-      sha256 = "1h4hg5fxhvswcldh6lfn5sx8xbqn6kfzwk206c7xdqid1c4rcvw8";
+      rev = "3bdc03f5f479e8d0e848625a7b0da0369e8057e7";
+      sha256 = "1rx309bdwjfhqc6bzbyw6acv2qj8w2xbva41dyd7gbq8hkzjbyka";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/simonmclean/triptych.nvim/";
@@ -11199,12 +11234,12 @@ final: prev:
 
   trouble-nvim = buildVimPlugin {
     pname = "trouble.nvim";
-    version = "2024-03-29";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "trouble.nvim";
-      rev = "b9cf677f20bb2faa2dacfa870b084e568dca9572";
-      sha256 = "1507s1s19n3p6p8r77sqswjqgrm5p8q37d1syq2j7cl0zbckp14h";
+      rev = "a8264a65a0b894832ea642844f5b7c30112c458f";
+      sha256 = "18s7mvxy6r3r861japvlvz31hn7n49vl7jr00jw4302ihcinlxqg";
     };
     meta.homepage = "https://github.com/folke/trouble.nvim/";
   };
@@ -11283,12 +11318,12 @@ final: prev:
 
   typescript-vim = buildVimPlugin {
     pname = "typescript-vim";
-    version = "2024-04-30";
+    version = "2024-05-21";
     src = fetchFromGitHub {
       owner = "leafgarland";
       repo = "typescript-vim";
-      rev = "eb4d90d3e449b4a3c1a17f56e4429ff4e0a6b3a6";
-      sha256 = "0nczd6x91i1p56ndkw3m5lhcq3madqcyffzb3avr9zqwlmw36aas";
+      rev = "8d169e16b5487771f6568125d4c63e6086e524d9";
+      sha256 = "042dnb5y8v3xb5nz564snicxkxalki1zm32y09imkskfkv588l52";
     };
     meta.homepage = "https://github.com/leafgarland/typescript-vim/";
   };
@@ -11319,12 +11354,12 @@ final: prev:
 
   ultimate-autopair-nvim = buildVimPlugin {
     pname = "ultimate-autopair.nvim";
-    version = "2024-05-06";
+    version = "2024-05-24";
     src = fetchFromGitHub {
       owner = "altermo";
       repo = "ultimate-autopair.nvim";
-      rev = "042587c63b2b2776a83337748d53dba8b67ec545";
-      sha256 = "1636jwzim6v3sf2jfrbvc1p5x38ddhjfsssq2v31a3rzkyv74qg3";
+      rev = "f7c0ebca6a11316b19c0e1d31b42761c7f3ce1f4";
+      sha256 = "02da3fi4551ncq6pdjr33cnis126y1w3i0gmv8rcff8a3gqia4pw";
     };
     meta.homepage = "https://github.com/altermo/ultimate-autopair.nvim/";
   };
@@ -11367,12 +11402,12 @@ final: prev:
 
   unison = buildVimPlugin {
     pname = "unison";
-    version = "2024-05-16";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "unisonweb";
       repo = "unison";
-      rev = "faa7b92c6f1d05d20b3ba7249e5c2dd3a76c19c1";
-      sha256 = "05nimvwjyg2sphgfv2xq6wggl54frh7lrgsxv7jg1c9w1lmg6z77";
+      rev = "5732d9a822750486e9227b25c3b32e72c7d6e351";
+      sha256 = "18kb2pnfs4fy247a23fz4nszx1inv51sf3caxhniwhmn8dpanl5k";
     };
     meta.homepage = "https://github.com/unisonweb/unison/";
   };
@@ -11391,12 +11426,12 @@ final: prev:
 
   urlview-nvim = buildVimPlugin {
     pname = "urlview.nvim";
-    version = "2023-10-29";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "axieax";
       repo = "urlview.nvim";
-      rev = "7d622e11adbc2cac5bba62345ade9b6672d564a4";
-      sha256 = "1cqzvbglqjy4563p4q08lsy3yhbsvn8i2davjlgplxvnvb76i68d";
+      rev = "9206224f6cfe62b35d5ae5610e225c6d0a6436d3";
+      sha256 = "0kinddnmxh4jdirmhdvzwmnw57vjn1gc6vc9bqaak14zxdk6lc9l";
     };
     meta.homepage = "https://github.com/axieax/urlview.nvim/";
   };
@@ -11799,24 +11834,24 @@ final: prev:
 
   vim-agda = buildVimPlugin {
     pname = "vim-agda";
-    version = "2023-06-30";
+    version = "2024-05-17";
     src = fetchFromGitHub {
       owner = "msuperdock";
       repo = "vim-agda";
-      rev = "36d6b9f2fd8b2bdc9cd70fad74298db09b694a57";
-      sha256 = "149250pc0y44zqi1ya7kmkk0q4q78zmhpb7vannm4rk990sj0xjq";
+      rev = "884cd77ade0170fed10c8179e4b2f5d0760d38a2";
+      sha256 = "1n2874y6qdlsnpi06pw6gi3fib30njldj6k21knn8h3isib74msw";
     };
     meta.homepage = "https://github.com/msuperdock/vim-agda/";
   };
 
   vim-airline = buildVimPlugin {
     pname = "vim-airline";
-    version = "2024-04-24";
+    version = "2024-05-20";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline";
-      rev = "ff0f9a45a5d81d2c8aa67601c264b18c4fe26b15";
-      sha256 = "1bw6xfc4l41g3rmvyvyxvvq3iyjb0adn5yfamaxi3jkamgc09ik3";
+      rev = "16c1638f93f93fad41da8cb6eef2bcd8eed0a57a";
+      sha256 = "13pxm4mh1sar6332z7w0cimbdcm5hg8yi7p86byg8hp1wwpm0g91";
     };
     meta.homepage = "https://github.com/vim-airline/vim-airline/";
   };
@@ -12303,12 +12338,12 @@ final: prev:
 
   vim-code-dark = buildVimPlugin {
     pname = "vim-code-dark";
-    version = "2024-04-11";
+    version = "2024-05-21";
     src = fetchFromGitHub {
       owner = "tomasiser";
       repo = "vim-code-dark";
-      rev = "05d7843412c4fb7d1bdafefd04462ac4db841f0f";
-      sha256 = "1ycb94cdady4x1bv957zcndrsk16ia54q5kg1k8r8x0ir0gclmac";
+      rev = "4624dc223bf574aa9a731c2383c579847303c380";
+      sha256 = "10pnwfid1v8l7qsj2v1394318h28ipg723rxd4pgkbqnmsvdw8vw";
     };
     meta.homepage = "https://github.com/tomasiser/vim-code-dark/";
   };
@@ -12519,12 +12554,12 @@ final: prev:
 
   vim-dadbod = buildVimPlugin {
     pname = "vim-dadbod";
-    version = "2024-05-01";
+    version = "2024-05-21";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-dadbod";
-      rev = "37523ffe0849b51db07fa7f48430c2aca5420a0e";
-      sha256 = "0lcdpmppy4h0q700z9jkn3k5w0kpfv4kg87mvr4wmzh4pcxac5gh";
+      rev = "fb30422b7bee7e2fa4205a4d226f01477f4fc593";
+      sha256 = "197ashg0yyiphw149z2c766l5gdzyvhy252sbp7j9gj2ncrglms9";
     };
     meta.homepage = "https://github.com/tpope/vim-dadbod/";
   };
@@ -12543,12 +12578,12 @@ final: prev:
 
   vim-dadbod-ui = buildVimPlugin {
     pname = "vim-dadbod-ui";
-    version = "2024-05-15";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "kristijanhusak";
       repo = "vim-dadbod-ui";
-      rev = "ac28346e964c1b814b19942903c379d57aea82f3";
-      sha256 = "125kbkk5ib3nc1a2nki6mkf2zwh9i179n59ri1dzpx0whs1q4m9w";
+      rev = "0dc68d9225a70d42f8645049482e090c1a8dce25";
+      sha256 = "1wmx9wrcffik5b73q9g9gdhm4h84h62s5acwz9rxzwf24amdg1y3";
     };
     meta.homepage = "https://github.com/kristijanhusak/vim-dadbod-ui/";
   };
@@ -13023,12 +13058,12 @@ final: prev:
 
   vim-flog = buildVimPlugin {
     pname = "vim-flog";
-    version = "2024-01-24";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "rbong";
       repo = "vim-flog";
-      rev = "6289ab2e237ceeefdbcc7eb584b63d144bf88d94";
-      sha256 = "0l085wk1plzxg3hxj9gjqg9ws8b43g2wbzjralzfj0r3py7icnb5";
+      rev = "2f0836128cac9368176a564b237382d1766723f0";
+      sha256 = "1nwxia9dcj7kqai1ig3a1z1bkzk6dx56bdr1g070kn5pli7w051b";
     };
     meta.homepage = "https://github.com/rbong/vim-flog/";
   };
@@ -13083,12 +13118,12 @@ final: prev:
 
   vim-fugitive = buildVimPlugin {
     pname = "vim-fugitive";
-    version = "2024-05-15";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fugitive";
-      rev = "19ca61c78c86a2ce6a425aee9b1c6664e5149ea6";
-      sha256 = "0k9q0ms0vm58dyrbgm21bp9ryx3jf1ns53jznd1yq8kh7mrcmppi";
+      rev = "4f59455d2388e113bd510e85b310d15b9228ca0d";
+      sha256 = "0q2ymynp6xjha14g52i01in1lqkhkdvcjl93fp2zqjzcg5pns8wz";
     };
     meta.homepage = "https://github.com/tpope/vim-fugitive/";
   };
@@ -13407,12 +13442,12 @@ final: prev:
 
   vim-helm = buildVimPlugin {
     pname = "vim-helm";
-    version = "2024-02-05";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "towolf";
       repo = "vim-helm";
-      rev = "86cc6766db60b8cc5731068d0c2111dee1f2b328";
-      sha256 = "0b7fxf43v8px2d4vfhj1b8d2scrr6h8dr9hfg6y7k1yk9jainsy9";
+      rev = "9425cf68d2a73d2efbfd05ab3e8b80ffb5a08802";
+      sha256 = "13yl8bj6ysd2c0vnjck6l3999c2nlz29c1awhjib0abfz6m3fi02";
     };
     meta.homepage = "https://github.com/towolf/vim-helm/";
   };
@@ -13576,12 +13611,12 @@ final: prev:
 
   vim-illuminate = buildVimPlugin {
     pname = "vim-illuminate";
-    version = "2024-04-18";
+    version = "2024-05-17";
     src = fetchFromGitHub {
       owner = "RRethy";
       repo = "vim-illuminate";
-      rev = "e522e0dd742a83506db0a72e1ced68c9c130f185";
-      sha256 = "0l9306c3867r6dqn4272kkzql63pwfaibhdwisjlc7pcv9wzah53";
+      rev = "5eeb7951fc630682c322e88a9bbdae5c224ff0aa";
+      sha256 = "0g86iv1mndcalrizdhl3z8ryj19jnqv139jwijpzyfk8gi677lhd";
     };
     meta.homepage = "https://github.com/RRethy/vim-illuminate/";
   };
@@ -13841,12 +13876,12 @@ final: prev:
 
   vim-just = buildVimPlugin {
     pname = "vim-just";
-    version = "2024-05-01";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "NoahTheDuke";
       repo = "vim-just";
-      rev = "a621ede3bcf551144358c112ba1f4e6c2e84e092";
-      sha256 = "1ih2jd14faq80jdxrz42pdmcnz3k5pl4h5hn90x03w1m14bkpmxz";
+      rev = "c78416aebe147ac7db304c26b32a52dae5985f6e";
+      sha256 = "0v3wdwzfrfsaric95hdinz2bsa37x0z2k22ryyqcblj3jxvkllw0";
     };
     meta.homepage = "https://github.com/NoahTheDuke/vim-just/";
   };
@@ -13877,12 +13912,12 @@ final: prev:
 
   vim-lastplace = buildVimPlugin {
     pname = "vim-lastplace";
-    version = "2024-04-23";
+    version = "2024-05-18";
     src = fetchFromGitHub {
       owner = "farmergreg";
       repo = "vim-lastplace";
-      rev = "cf0abc5f89c88f0c5219abe89334a8a3ef91fefd";
-      sha256 = "1c8wgq1w8dg32l8hga695wdisb7m42nl3nzpwx5ywfr1vjwl6ah3";
+      rev = "e58cb0df716d3c88605ae49db5c4741db8b48aa9";
+      sha256 = "07h25bq42vilrf6wv31p5i22293m0x4x5aa35agnm668bppabwgb";
     };
     meta.homepage = "https://github.com/farmergreg/vim-lastplace/";
   };
@@ -14105,12 +14140,12 @@ final: prev:
 
   vim-lsp-settings = buildVimPlugin {
     pname = "vim-lsp-settings";
-    version = "2024-05-01";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "mattn";
       repo = "vim-lsp-settings";
-      rev = "54ade15279bc11eea0780bf06d191e6e97c3ea5d";
-      sha256 = "0hcfr8bvxp442sls8iyw43gc9k7kwh3y47v777smz3als89pi76f";
+      rev = "a962acf04ada9ba97862fa962cce19d8f6d15d0b";
+      sha256 = "041xmylk730nlnqvn7b56j8w99qi4c612ppcpin7byp0j4c4c6rb";
     };
     meta.homepage = "https://github.com/mattn/vim-lsp-settings/";
   };
@@ -14238,12 +14273,12 @@ final: prev:
 
   vim-matchup = buildVimPlugin {
     pname = "vim-matchup";
-    version = "2024-02-24";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "andymass";
       repo = "vim-matchup";
-      rev = "2d660e4aa7c566014c667af2cda0458043527902";
-      sha256 = "0a5527gmwf0chdn91s2s8pa7iny3qa5a88c413g4vwch12mn2vrj";
+      rev = "ff3bea611696f5cfdfe61a939149daadff41f2af";
+      sha256 = "1v966r775wlpkh2gm1rj6g1f7c78mbi3s5i374rwbp8y8ls8grdd";
     };
     meta.homepage = "https://github.com/andymass/vim-matchup/";
   };
@@ -14274,12 +14309,12 @@ final: prev:
 
   vim-merginal = buildVimPlugin {
     pname = "vim-merginal";
-    version = "2024-02-28";
+    version = "2024-05-17";
     src = fetchFromGitHub {
       owner = "idanarye";
       repo = "vim-merginal";
-      rev = "8c4a549235a226805f86539b810259356c4bfc22";
-      sha256 = "1fpxlgp57wc5zmm3n9r974w4d282148hspjyp8iw1gf1jxgf20jc";
+      rev = "9ae2f12132d3ab8871d9dd6f8371149e826b7818";
+      sha256 = "01inqqwzf0f9ck9av4bm3jz4s32lr1dljk2nwdmwkdhrjizrvy5s";
     };
     meta.homepage = "https://github.com/idanarye/vim-merginal/";
   };
@@ -14346,12 +14381,12 @@ final: prev:
 
   vim-monokai-tasty = buildVimPlugin {
     pname = "vim-monokai-tasty";
-    version = "2024-01-08";
+    version = "2024-05-23";
     src = fetchFromGitHub {
       owner = "patstockwell";
       repo = "vim-monokai-tasty";
-      rev = "57c67feac63158a232c43aee2f463a994029b699";
-      sha256 = "0fslz2jhnhyda9in9wjvw8ab47aa5d9zzc5l8g53jkqbn7r13kpc";
+      rev = "539c1784bf8e6ace2656885336eeb0fa47cf918a";
+      sha256 = "0v355n4x4maf8ln8rbc8fnwlssdrn7a36d8jzpb4sn67brn3xqx6";
     };
     meta.homepage = "https://github.com/patstockwell/vim-monokai-tasty/";
   };
@@ -14766,12 +14801,12 @@ final: prev:
 
   vim-paper = buildVimPlugin {
     pname = "vim-paper";
-    version = "2024-04-16";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "yorickpeterse";
       repo = "vim-paper";
-      rev = "790c31c56ce510cc0c0f777090be4140fe130d1d";
-      sha256 = "1w958a6ga1a6518f5cr1nag6vkkxh92hqcv5k6f7410xm7fqdya6";
+      rev = "01b79707c2144f9c845057da2e7d6ec024e15c76";
+      sha256 = "1wqq97h25mqy4dzc8795rq6ic52lz2fhndxwhyqm765ldyxxhlwl";
     };
     meta.homepage = "https://github.com/yorickpeterse/vim-paper/";
   };
@@ -15438,12 +15473,12 @@ final: prev:
 
   vim-slime = buildVimPlugin {
     pname = "vim-slime";
-    version = "2024-05-15";
+    version = "2024-05-22";
     src = fetchFromGitHub {
       owner = "jpalardy";
       repo = "vim-slime";
-      rev = "0e1d0a43ddf4b9f06c1bc1da149f9408fedcc2e0";
-      sha256 = "16asnwpza7jrhh2sgcsnv6l4brbccfxf6ka44fsm1lgrp0m5gncx";
+      rev = "ca59df2570e1a12f9ddfa90b6118df4d87453fcd";
+      sha256 = "06c2j7a97al2pyj2immjba3h7bv0ldlw7dly3halikxn01qdznr9";
     };
     meta.homepage = "https://github.com/jpalardy/vim-slime/";
   };
@@ -15606,12 +15641,12 @@ final: prev:
 
   vim-spirv = buildVimPlugin {
     pname = "vim-spirv";
-    version = "2024-05-16";
+    version = "2024-05-28";
     src = fetchFromGitHub {
       owner = "kbenzie";
       repo = "vim-spirv";
-      rev = "0111c3f1738d210c25b6c1bbe7a60c0fb487895a";
-      sha256 = "1hviir5g12yhr9vvyb2nff35hymp1nqnywqq72cb6ys1qg6vsnsw";
+      rev = "b23b5e227e080cfeb60d557571e55e9a574ff40c";
+      sha256 = "1sqkpr78b3a9h1vky2lf2486s2bj0nynryybi0wb0x8ijv978mkd";
     };
     meta.homepage = "https://github.com/kbenzie/vim-spirv/";
   };
@@ -15847,12 +15882,12 @@ final: prev:
 
   vim-test = buildVimPlugin {
     pname = "vim-test";
-    version = "2024-04-20";
+    version = "2024-05-21";
     src = fetchFromGitHub {
       owner = "vim-test";
       repo = "vim-test";
-      rev = "eb5bd18d58a859e7d55d732d37e4e2b94fa50275";
-      sha256 = "0v4yi5h8w06vkcl13zhl8hmb79d1g1rc4wrbwj86rxcq7yj490vk";
+      rev = "4d5d49ca9a402066cbb1c85b8348874f109d8565";
+      sha256 = "1da620jvx9pddkmg9lmcbqpvhbqazcf5p766vkxll0dy1x9zyvv0";
     };
     meta.homepage = "https://github.com/vim-test/vim-test/";
   };
@@ -15991,12 +16026,12 @@ final: prev:
 
   vim-tmux-navigator = buildVimPlugin {
     pname = "vim-tmux-navigator";
-    version = "2024-04-13";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "christoomey";
       repo = "vim-tmux-navigator";
-      rev = "a26954a585b02a2ac02f87145e204f8798a7cbc2";
-      sha256 = "01nqxcsn2w24w33d0c4k2w5xyxb0xxvwn7a3pxlzv4i1k36nyaz9";
+      rev = "5b3c701686fb4e6629c100ed32e827edf8dad01e";
+      sha256 = "0kcrz2hlv672v0967n7zz1f5xl8vh41nmps0pvms9bplw1p5nzx3";
     };
     meta.homepage = "https://github.com/christoomey/vim-tmux-navigator/";
   };
@@ -16507,12 +16542,12 @@ final: prev:
 
   vimfiler-vim = buildVimPlugin {
     pname = "vimfiler.vim";
-    version = "2023-05-18";
+    version = "2024-05-20";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "vimfiler.vim";
-      rev = "1c1d2b4f9e70c0b48bcf11bf51c482b8a2d776a8";
-      sha256 = "136rlz18dx7m8k1sdq3r7pww5dipkzq7b21figh03fmcvrrdk74w";
+      rev = "69d5bc6070d5b3ff4e73719d970bae50a71d2c67";
+      sha256 = "1qi8yiq270bkwhkism0ld80dab66l11zzhy7kmzvmaz2fxzglvp3";
     };
     meta.homepage = "https://github.com/Shougo/vimfiler.vim/";
   };
@@ -16688,12 +16723,12 @@ final: prev:
 
   vscode-nvim = buildVimPlugin {
     pname = "vscode.nvim";
-    version = "2024-05-09";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "Mofiqul";
       repo = "vscode.nvim";
-      rev = "1a2cb491a962acf3bbf53c6d0a61b4ec76012570";
-      sha256 = "1mjsy9g2hkrzhy6bhrphpiz3nr8wr4l7jxacbz224jm7x1i2zn1l";
+      rev = "ff3926901d4160886f707a8a70b5c2e82979a7c4";
+      sha256 = "0x8930yals2cwbyw4vssfhb39pvrwpq90ysh1aczcyivrajm24ir";
     };
     meta.homepage = "https://github.com/Mofiqul/vscode.nvim/";
   };
@@ -16772,12 +16807,12 @@ final: prev:
 
   wiki-vim = buildVimPlugin {
     pname = "wiki.vim";
-    version = "2024-05-16";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "wiki.vim";
-      rev = "2cdd5e5a73dd2fe54935b929aa802c39264b552e";
-      sha256 = "1qqkyy6s1367xss7rj7rssz0m7h2bh76nml0i7nv7f88rclgrsh8";
+      rev = "1082e36a878bcc93924ecdade1e82a801d369765";
+      sha256 = "08jyjdynn6x09nq0gphr6n9avqs7s8aifgf65vpqfys84yn2ns78";
     };
     meta.homepage = "https://github.com/lervag/wiki.vim/";
   };
@@ -16880,12 +16915,12 @@ final: prev:
 
   wrapping-nvim = buildVimPlugin {
     pname = "wrapping.nvim";
-    version = "2024-04-07";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "andrewferrier";
       repo = "wrapping.nvim";
-      rev = "d1ac69c0db82ff0c7540088a0f91d74ad7378c3d";
-      sha256 = "0cmvgmynr3jkp9ikygrn773f3j8n6580ajvv29p8lzg6h5pvafdc";
+      rev = "3a823200c297885b70515fa8d974e1763c578e26";
+      sha256 = "1srk34zppj7lyw69yh5w7014s1mh5bdn7k74yacifwrwnwwdxj5n";
     };
     meta.homepage = "https://github.com/andrewferrier/wrapping.nvim/";
   };
@@ -16940,24 +16975,24 @@ final: prev:
 
   yanky-nvim = buildVimPlugin {
     pname = "yanky.nvim";
-    version = "2024-05-15";
+    version = "2024-05-28";
     src = fetchFromGitHub {
       owner = "gbprod";
       repo = "yanky.nvim";
-      rev = "ec4353355d4eabef451d16d46a3e0535176b81aa";
-      sha256 = "04wgkw03xxlwy1cvjrvdssfw7v5q1alb2wbk0nawhca5rv27r2p4";
+      rev = "79338563e85a868e59cda02c51b54d90a5514a12";
+      sha256 = "1m99c6gq0nxjdywx6q741v788rppagr2jgqqaaz9sdjd1a12pj47";
     };
     meta.homepage = "https://github.com/gbprod/yanky.nvim/";
   };
 
   yats-vim = buildVimPlugin {
     pname = "yats.vim";
-    version = "2024-02-08";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "HerringtonDarkholme";
       repo = "yats.vim";
-      rev = "6927af6e3e45d0ce585684be5681bada0ffcc3a7";
-      sha256 = "0vfcbsm77kmxs6876kac28ncjlp96hqwaj5sgjxkk5jx8077jq0p";
+      rev = "1c6d78191995fbba4be594e9941938af015f2e11";
+      sha256 = "02rgnbgjmkf8niw27k0m8m0fh7ydbdy5f9zdi1zfiqxfznhik3qx";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/HerringtonDarkholme/yats.vim/";
@@ -17025,12 +17060,12 @@ final: prev:
 
   zenbones-nvim = buildVimPlugin {
     pname = "zenbones.nvim";
-    version = "2024-03-30";
+    version = "2024-05-21";
     src = fetchFromGitHub {
       owner = "mcchrish";
       repo = "zenbones.nvim";
-      rev = "453ec69d82d644ee6998a3464da49d0261df9f80";
-      sha256 = "006y9abl1l01ja6fr59gpxwybha9h0pda8160fwxciichynkld32";
+      rev = "5746d0277439fe264108a2ecace83f09f1b57e1f";
+      sha256 = "0wkc3flhb961q7h09zy8lbq9j851s6fx159bc7gbipx4p33l80kb";
     };
     meta.homepage = "https://github.com/mcchrish/zenbones.nvim/";
   };
@@ -17073,12 +17108,12 @@ final: prev:
 
   zk-nvim = buildVimPlugin {
     pname = "zk-nvim";
-    version = "2024-04-14";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "zk-org";
       repo = "zk-nvim";
-      rev = "e2b6d62b18a88249016bf917d4e5bb0e417ac974";
-      sha256 = "16mmrl34f1bsr1dfl1drg62wwycc23n9w0qczmqz7ylpgb6k8i02";
+      rev = "66b9b490e930fb77f93a2a0c64e0da9a5144fd0a";
+      sha256 = "1qqyaps2gcbw6dlxchiapbypl4f2igb3s6mln1hsf92wqajimykl";
     };
     meta.homepage = "https://github.com/zk-org/zk-nvim/";
   };
@@ -17109,12 +17144,12 @@ final: prev:
 
   catppuccin-nvim = buildVimPlugin {
     pname = "catppuccin-nvim";
-    version = "2024-05-08";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "catppuccin";
       repo = "nvim";
-      rev = "d97387aea8264f484bb5d5e74f2182a06c83e0d8";
-      sha256 = "1wybci6cjadjd5z0wkx2jmwb9ir72s4g4qrd9qsjl2qjfiaf26k9";
+      rev = "5215ea59df6d0a7e27da9a5cd1165e06d1b04cbe";
+      sha256 = "13kghcr5krv7hbd8p11rjpd0im8cz1jy11m8gsj0259wbbxx4csh";
     };
     meta.homepage = "https://github.com/catppuccin/nvim/";
   };
@@ -17157,12 +17192,12 @@ final: prev:
 
   gbprod-nord = buildVimPlugin {
     pname = "gbprod-nord";
-    version = "2024-04-02";
+    version = "2024-05-21";
     src = fetchFromGitHub {
       owner = "gbprod";
       repo = "nord.nvim";
-      rev = "a6f4979566e44a69ddc80c9df73e960af1ab1840";
-      sha256 = "1fykygiq7izp19ylppvsw5v1i1rmy6x6abc5sjlls6wmcgz5dsvn";
+      rev = "c707723cf0c0f19a409a6190209d51d6ec057943";
+      sha256 = "14d1l8a6g0fflkqs2ks2fgawxl1qqhx36izxvz5yacz1yqz63dnb";
     };
     meta.homepage = "https://github.com/gbprod/nord.nvim/";
   };
@@ -17205,12 +17240,12 @@ final: prev:
 
   nightfly = buildVimPlugin {
     pname = "nightfly";
-    version = "2024-04-20";
+    version = "2024-05-19";
     src = fetchFromGitHub {
       owner = "bluz71";
       repo = "vim-nightfly-colors";
-      rev = "a54ba6131c4e5feb47176efb78b1f93501df1572";
-      sha256 = "1ajnyr7lwhmpjzdwni0hzgd46x64kgdgb3x0qjmvw2q456vs1fap";
+      rev = "06c4ee680519f01ee6e61b891647feefc72da42e";
+      sha256 = "1v25cxhy8jc4qa3cjch8xlkxn0b5437hf28ap4v30i45klv2r068";
     };
     meta.homepage = "https://github.com/bluz71/vim-nightfly-colors/";
   };
@@ -17229,12 +17264,12 @@ final: prev:
 
   nvchad-ui = buildVimPlugin {
     pname = "nvchad-ui";
-    version = "2024-05-08";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "nvchad";
       repo = "ui";
-      rev = "4f507775f3935a39d994e7a1d3688e30f7fb8713";
-      sha256 = "0lrxhbcdmy2xpwwdxg9dyh954y7xxb8zc75b2lxf5z8lmpxi3ccp";
+      rev = "b23a4dea45107305513e3c407179199cc2f1945e";
+      sha256 = "14kn4zrkmqc50g13q2hp9gk8y19dxzk99y0iardc8sfphc03mwrz";
     };
     meta.homepage = "https://github.com/nvchad/ui/";
   };
@@ -17277,12 +17312,12 @@ final: prev:
 
   rose-pine = buildVimPlugin {
     pname = "rose-pine";
-    version = "2024-05-14";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "rose-pine";
       repo = "neovim";
-      rev = "b6fe88c3282cf9f117a3e836d761c2d78d02f417";
-      sha256 = "1fwwp7szzz2yp4z5hngqn8ll8765xv0nlhgcb75yj257kz7x5lq1";
+      rev = "87aa437172357ad8f916942bca249ceadc6c68b1";
+      sha256 = "0zyj66wi3fw6qsy35xwlv0g9x8yr4142ggf372mq4ivd3z8p344s";
     };
     meta.homepage = "https://github.com/rose-pine/neovim/";
   };
@@ -17335,17 +17370,5 @@ final: prev:
     meta.homepage = "https://github.com/jhradilek/vim-snippets/";
   };
 
-  compiler-nvim = buildVimPlugin {
-    pname = "compiler-nvim";
-    version = "2024-04-26";
-    src = fetchFromGitHub {
-      owner = "Zeioth";
-      repo = "compiler.nvim";
-      rev = "cb14acd32ba9ea09d01bbe3493aefdc59b68965c";
-      sha256 = "sha256-YZyT5B0nk9LxaEA5ntuKPs7yf/Ix7zs3f6N3UOc9AIU=";
-    };
-    meta.homepage = "https://github.com/Zeioth/compiler.nvim/";
-  };
-
 
 }
diff --git a/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix b/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix
index 06bf0213761b5..171edf18e7c00 100644
--- a/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix
+++ b/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix
@@ -5,12 +5,12 @@
 {
   ada = buildGrammar {
     language = "ada";
-    version = "0.0.0+rev=ba0894e";
+    version = "0.0.0+rev=e8e2515";
     src = fetchFromGitHub {
       owner = "briot";
       repo = "tree-sitter-ada";
-      rev = "ba0894efa03beb70780156b91e28c716b7a4764d";
-      hash = "sha256-30yCHcO9LdZ9VKQpObWRfk49M5tC85IZvutXgzGwTjQ=";
+      rev = "e8e2515465cc2d7c444498e68bdb9f1d86767f95";
+      hash = "sha256-qfuVoh3R418F1FMN6CTXNnCaAk5gQj5lI/NoaJgnkW8=";
     };
     meta.homepage = "https://github.com/briot/tree-sitter-ada";
   };
@@ -180,14 +180,25 @@
     };
     meta.homepage = "https://gitlab.com/gabmus/tree-sitter-blueprint.git";
   };
+  bp = buildGrammar {
+    language = "bp";
+    version = "0.0.0+rev=2326d70";
+    src = fetchFromGitHub {
+      owner = "ambroisie";
+      repo = "tree-sitter-bp";
+      rev = "2326d709fb9cf73cf124fdbc803c267f851721a4";
+      hash = "sha256-h9T8tfS2K85N9NLwYj6tu2MHPj4YyG/UBYoezfWuEyI=";
+    };
+    meta.homepage = "https://github.com/ambroisie/tree-sitter-bp";
+  };
   c = buildGrammar {
     language = "c";
-    version = "0.0.0+rev=82fb86a";
+    version = "0.0.0+rev=00ed08f";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-c";
-      rev = "82fb86aa544843bd17a9f0f3dc16edf645a34349";
-      hash = "sha256-wiCgRSrJodNq7WVQTIDsQ6K/ZrgnSFdGG9kDegu6zGs=";
+      rev = "00ed08f1a6c18141bfd7a81638e4d239a0bb55cc";
+      hash = "sha256-ucbHLS2xyGo1uyKZv/K1HNXuMo4GpTY327cgdVS9F3c=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-c";
   };
@@ -237,12 +248,12 @@
   };
   clojure = buildGrammar {
     language = "clojure";
-    version = "0.0.0+rev=3a1ace9";
+    version = "0.0.0+rev=f4236d4";
     src = fetchFromGitHub {
       owner = "sogaiu";
       repo = "tree-sitter-clojure";
-      rev = "3a1ace906c151dd631cf6f149b5083f2b60e6a9e";
-      hash = "sha256-pLOCUReklkRt9t5kalDrOAlE9U7a2O8sXaZFjYhagcg=";
+      rev = "f4236d4da8aa92bc105d9c118746474c608e6af7";
+      hash = "sha256-UlK6D/xnuPFL/Cu5W7hBMQ/zbodFwrS1CeJDjVpZFpo=";
     };
     meta.homepage = "https://github.com/sogaiu/tree-sitter-clojure";
   };
@@ -314,12 +325,12 @@
   };
   cpp = buildGrammar {
     language = "cpp";
-    version = "0.0.0+rev=2369fa9";
+    version = "0.0.0+rev=d29fbff";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-cpp";
-      rev = "2369fa991eba294e9238e28280ffcd58132f94bc";
-      hash = "sha256-reDeaGf7jDaNzPW7ivvq3n9Tl/SuZYs/O/d93whHa7U=";
+      rev = "d29fbff09a8c9ff4f3074de2595dfca12cb33da9";
+      hash = "sha256-3akSuQltFMF6I32HwRU08+Hcl9ojxPGk2ZuOX3gAObw=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-cpp";
   };
@@ -492,12 +503,12 @@
   };
   earthfile = buildGrammar {
     language = "earthfile";
-    version = "0.0.0+rev=cc99a3f";
+    version = "0.0.0+rev=336001d";
     src = fetchFromGitHub {
       owner = "glehmann";
       repo = "tree-sitter-earthfile";
-      rev = "cc99a3f5e4281b63fdd63dca4750e808fd52628f";
-      hash = "sha256-wOKNkNoNw2Stv+8zhVAX2No8Y060Kri/j5iytJvviUc=";
+      rev = "336001d79dd62668088bc6fe6d72a774a449fa2d";
+      hash = "sha256-DOsW62ZgjUZhm1LNOkW2lR1JA6NUqi239x5zIARt4NM=";
     };
     meta.homepage = "https://github.com/glehmann/tree-sitter-earthfile";
   };
@@ -515,12 +526,12 @@
   };
   eds = buildGrammar {
     language = "eds";
-    version = "0.0.0+rev=fde6202";
+    version = "0.0.0+rev=5517bdb";
     src = fetchFromGitHub {
       owner = "uyha";
       repo = "tree-sitter-eds";
-      rev = "fde62029d4c715562230070b9af51a9500c2ce10";
-      hash = "sha256-E+VDOAnmbyUXzwhu+j2DXXBpuiI/d9gZdGsikAboLP4=";
+      rev = "5517bdb90c90703df49579a4b04689a614780be2";
+      hash = "sha256-dOWHqvnNe/RfCp4QbIThHaX2gUMCiY3DU2crzOxIo/g=";
     };
     meta.homepage = "https://github.com/uyha/tree-sitter-eds";
   };
@@ -592,12 +603,12 @@
   };
   erlang = buildGrammar {
     language = "erlang";
-    version = "0.0.0+rev=868306b";
+    version = "0.0.0+rev=98ea1f9";
     src = fetchFromGitHub {
       owner = "WhatsApp";
       repo = "tree-sitter-erlang";
-      rev = "868306b033f5163658e8777940da68d61afad5cb";
-      hash = "sha256-9QRYYKSy7riZfUVSnYzTIGH0tznU90Q1nYwe7DDr284=";
+      rev = "98ea1f9c957b2ad520415eecb5a5b406e931101e";
+      hash = "sha256-9CpVwtTy5vojZABc97KZt2P8vBOZFAw3ZFRp43WOqEc=";
     };
     meta.homepage = "https://github.com/WhatsApp/tree-sitter-erlang";
   };
@@ -834,12 +845,12 @@
   };
   glsl = buildGrammar {
     language = "glsl";
-    version = "0.0.0+rev=8c9fb41";
+    version = "0.0.0+rev=33a16b6";
     src = fetchFromGitHub {
       owner = "theHamsta";
       repo = "tree-sitter-glsl";
-      rev = "8c9fb41836dc202bbbcf0e2369f256055786dedb";
-      hash = "sha256-aUM0gisdoV3A9lWSjn21wXIBI8ZrKI/5IffAaf917e4=";
+      rev = "33a16b6ff4d7206a16f2dc96c40e149c657db65f";
+      hash = "sha256-qblDE+NIlJR5wyprvY6G3kG0uFzqWaQZmxN/hDnjNAs=";
     };
     meta.homepage = "https://github.com/theHamsta/tree-sitter-glsl";
   };
@@ -911,12 +922,12 @@
   };
   gotmpl = buildGrammar {
     language = "gotmpl";
-    version = "0.0.0+rev=17144a7";
+    version = "0.0.0+rev=9d3f6e5";
     src = fetchFromGitHub {
       owner = "ngalaiko";
       repo = "tree-sitter-go-template";
-      rev = "17144a77be0acdecebd9d557398883569fed41de";
-      hash = "sha256-aB8MTTKzxV9+66goNfFRI39wzuBiGECAc8HvAQzIv80=";
+      rev = "9d3f6e526dd074b9edae9070b7bb778f00e87a5b";
+      hash = "sha256-ndd85YVO2brK7JVBFOg6bbKV66qVPjo4DVi7GaT/eZA=";
     };
     meta.homepage = "https://github.com/ngalaiko/tree-sitter-go-template";
   };
@@ -1043,12 +1054,12 @@
   };
   helm = buildGrammar {
     language = "helm";
-    version = "0.0.0+rev=17144a7";
+    version = "0.0.0+rev=9d3f6e5";
     src = fetchFromGitHub {
       owner = "ngalaiko";
       repo = "tree-sitter-go-template";
-      rev = "17144a77be0acdecebd9d557398883569fed41de";
-      hash = "sha256-aB8MTTKzxV9+66goNfFRI39wzuBiGECAc8HvAQzIv80=";
+      rev = "9d3f6e526dd074b9edae9070b7bb778f00e87a5b";
+      hash = "sha256-ndd85YVO2brK7JVBFOg6bbKV66qVPjo4DVi7GaT/eZA=";
     };
     location = "dialects/helm";
     meta.homepage = "https://github.com/ngalaiko/tree-sitter-go-template";
@@ -1066,12 +1077,12 @@
   };
   hlsl = buildGrammar {
     language = "hlsl";
-    version = "0.0.0+rev=feea0ff";
+    version = "0.0.0+rev=a84e8d4";
     src = fetchFromGitHub {
       owner = "theHamsta";
       repo = "tree-sitter-hlsl";
-      rev = "feea0ff6eccda8be958c133985dca8977db3d887";
-      hash = "sha256-VIrNt9pjNtwVbQKZGPota5blxbPGGEhdiRYtPNU/XtA=";
+      rev = "a84e8d4f675d0006f7c07f6c7bcea2fca04cdb6e";
+      hash = "sha256-9UpcYchmtLwlH1YCGfsWnMt7tQ/560lKIzqSgPWovdc=";
     };
     meta.homepage = "https://github.com/theHamsta/tree-sitter-hlsl";
   };
@@ -1165,12 +1176,12 @@
   };
   idl = buildGrammar {
     language = "idl";
-    version = "0.0.0+rev=006a526";
+    version = "0.0.0+rev=b5b53e2";
     src = fetchFromGitHub {
       owner = "cathaysia";
       repo = "tree-sitter-idl";
-      rev = "006a5266d771cab57da58a6ade483ebd3075638d";
-      hash = "sha256-NV7VojLenoq7RDyN1HMuyZFjcQhZeC6OtRz/y4bAe58=";
+      rev = "b5b53e2ca0521b98277d5e4b109f0b0e362e850e";
+      hash = "sha256-zgjTZWTBchKDYgubQX5SIblbflCVh9Tv9R//ohzZFKw=";
     };
     meta.homepage = "https://github.com/cathaysia/tree-sitter-idl";
   };
@@ -1187,12 +1198,12 @@
   };
   inko = buildGrammar {
     language = "inko";
-    version = "0.0.0+rev=4cef9aa";
+    version = "0.0.0+rev=234c87b";
     src = fetchFromGitHub {
       owner = "inko-lang";
       repo = "tree-sitter-inko";
-      rev = "4cef9aa4980606311b906b2f2b8c6cf791c60396";
-      hash = "sha256-NnZ5sSNwVVsx1I8eacvTl+1Vn/PL3NsrlFNPHQMUP6I=";
+      rev = "234c87be1dac20f766ddf6f486a7bde2a4bc5594";
+      hash = "sha256-7BADt6NjH9chOzCDtJSLjBZaRqeLvOH006q0hI4pZaI=";
     };
     meta.homepage = "https://github.com/inko-lang/tree-sitter-inko";
   };
@@ -1209,12 +1220,12 @@
   };
   janet_simple = buildGrammar {
     language = "janet_simple";
-    version = "0.0.0+rev=51271e2";
+    version = "0.0.0+rev=f3d6e09";
     src = fetchFromGitHub {
       owner = "sogaiu";
       repo = "tree-sitter-janet-simple";
-      rev = "51271e260346878e1a1aa6c506ce6a797b7c25e2";
-      hash = "sha256-QXH/s0mB9kDKuYYB+Pa+nPjArt4pjcsLXCHP4I3nGwU=";
+      rev = "f3d6e09cc47e76833f23f83b2c59ea0878660953";
+      hash = "sha256-5LGAb5zsjaMlFFhLRNFOeZuGXxJ6btwfeduQqsDTRng=";
     };
     meta.homepage = "https://github.com/sogaiu/tree-sitter-janet-simple";
   };
@@ -1231,12 +1242,12 @@
   };
   javascript = buildGrammar {
     language = "javascript";
-    version = "0.0.0+rev=e88537c";
+    version = "0.0.0+rev=a5de24d";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-javascript";
-      rev = "e88537c2703546f3f0887dd3f16898e1749cdba5";
-      hash = "sha256-/poR9qMfjWKJW6aw0s6VjNh7fkf/HvUJNZIeZ1YEwVM=";
+      rev = "a5de24dc7939cb07a758f8d89c089cfdb6f479aa";
+      hash = "sha256-jsdY9Pd9WqZuBYtk088mx1bRQadC6D2/tGGVY+ZZ0J4=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-javascript";
   };
@@ -1452,12 +1463,12 @@
   };
   liquidsoap = buildGrammar {
     language = "liquidsoap";
-    version = "0.0.0+rev=a9b8012";
+    version = "0.0.0+rev=14feafa";
     src = fetchFromGitHub {
       owner = "savonet";
       repo = "tree-sitter-liquidsoap";
-      rev = "a9b8012366eab7d0c28bbda5f75a847be931008f";
-      hash = "sha256-n8kT4bxRSp3EOJwsm0S4kKYq6Iln1vvvho/di4N0lRs=";
+      rev = "14feafa91630afb1ab9988cf9b738b7ea29f3f89";
+      hash = "sha256-FERYGF9D163b6S/YBwHwkrUM2qRkEKOViSDRa61OjtQ=";
     };
     meta.homepage = "https://github.com/savonet/tree-sitter-liquidsoap";
   };
@@ -1507,12 +1518,12 @@
   };
   luau = buildGrammar {
     language = "luau";
-    version = "0.0.0+rev=5b088fa";
+    version = "0.0.0+rev=5aa9b88";
     src = fetchFromGitHub {
       owner = "amaanq";
       repo = "tree-sitter-luau";
-      rev = "5b088fac748f2666a315cafd1638a214388eb23e";
-      hash = "sha256-m0xHQu9nxjyrCMza9Aw/kRK8Rlhtc2DRbtyyFtMZkJU=";
+      rev = "5aa9b88a8e3327276ec6e72de997f04ac80b1ae4";
+      hash = "sha256-7cxnELiCmLOPecca3U2CN1F4CUSbL8upxAn0PxwU6dM=";
     };
     meta.homepage = "https://github.com/amaanq/tree-sitter-luau";
   };
@@ -1608,12 +1619,12 @@
   };
   mlir = buildGrammar {
     language = "mlir";
-    version = "0.0.0+rev=a708e9b";
+    version = "0.0.0+rev=00c32d8";
     src = fetchFromGitHub {
       owner = "artagnon";
       repo = "tree-sitter-mlir";
-      rev = "a708e9b3f3d7f2fc85ac3fd1d4317c51b101eab0";
-      hash = "sha256-ITimvcYGqPUrqg3Z9EyfhEznzME2TKBOJpr0Fbc3OoE=";
+      rev = "00c32d8562dc957b187da110a3443307962b8da8";
+      hash = "sha256-cyd9n1ydIEoBL+hnRiCSEC2S9H1hrWZlMCxVbxWyazI=";
     };
     generate = true;
     meta.homepage = "https://github.com/artagnon/tree-sitter-mlir";
@@ -1642,12 +1653,12 @@
   };
   nickel = buildGrammar {
     language = "nickel";
-    version = "0.0.0+rev=58baf89";
+    version = "0.0.0+rev=5247873";
     src = fetchFromGitHub {
       owner = "nickel-lang";
       repo = "tree-sitter-nickel";
-      rev = "58baf89db8fdae54a84bcf22c80ff10ee3f929ed";
-      hash = "sha256-WuY6X1mnXdjiy4joIcY8voK2sqICFf0GvudulZ9lwqg=";
+      rev = "52478738c5a072ab3ad62c74db5d0902dab064cd";
+      hash = "sha256-4GA34VO/t6y29IOrmuXNZg6H1+wUs3rMal9+s8rmoHI=";
     };
     meta.homepage = "https://github.com/nickel-lang/tree-sitter-nickel";
   };
@@ -1777,12 +1788,12 @@
   };
   odin = buildGrammar {
     language = "odin";
-    version = "0.0.0+rev=f25b8c5";
+    version = "0.0.0+rev=d37b8f2";
     src = fetchFromGitHub {
       owner = "amaanq";
       repo = "tree-sitter-odin";
-      rev = "f25b8c5201c1480dc0c8c4155a059a79a5a40719";
-      hash = "sha256-720CY0OKlq1P+9g0VHQ6l0lTBjGy/tYiolL8e2ahd8o=";
+      rev = "d37b8f24f653378b268ec18404e9c14ad355b128";
+      hash = "sha256-QZn+XgVQXEaMZF4XkMfS4bHf/tQIersI8982JQyiXms=";
     };
     meta.homepage = "https://github.com/amaanq/tree-sitter-odin";
   };
@@ -1832,35 +1843,35 @@
   };
   perl = buildGrammar {
     language = "perl";
-    version = "0.0.0+rev=d4ebabd";
+    version = "0.0.0+rev=309cb8d";
     src = fetchFromGitHub {
       owner = "tree-sitter-perl";
       repo = "tree-sitter-perl";
-      rev = "d4ebabd45bcb053fcc7f6688b5c8ed80c7ae7a32";
-      hash = "sha256-0WnI0L6Tuy3FD4XxCZR1HcQyo5uv0VXhK8eqopCAS+A=";
+      rev = "309cb8d33bcfd0a81050b21be08f9eb3f2fe2138";
+      hash = "sha256-eMmU6qkg9ZVjtxaW1tSPhqsPe2WX3/frPfqMxXCziyo=";
     };
     meta.homepage = "https://github.com/tree-sitter-perl/tree-sitter-perl";
   };
   php = buildGrammar {
     language = "php";
-    version = "0.0.0+rev=27afeb0";
+    version = "0.0.0+rev=b38c535";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-php";
-      rev = "27afeb02e49ff30acd17b67897b1c0114561a38c";
-      hash = "sha256-PnxjmaC9FPhHlhbhDR+VIbzf5K7Pon7V0pLMymvqoKo=";
+      rev = "b38c53537769df05871643c9688c264074fb6076";
+      hash = "sha256-PWAuWTi2sXeGYes6p6mLi3Mx2Nu+xLuc86NLZrEyK00=";
     };
     location = "php";
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
   };
   php_only = buildGrammar {
     language = "php_only";
-    version = "0.0.0+rev=27afeb0";
+    version = "0.0.0+rev=b38c535";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-php";
-      rev = "27afeb02e49ff30acd17b67897b1c0114561a38c";
-      hash = "sha256-PnxjmaC9FPhHlhbhDR+VIbzf5K7Pon7V0pLMymvqoKo=";
+      rev = "b38c53537769df05871643c9688c264074fb6076";
+      hash = "sha256-PWAuWTi2sXeGYes6p6mLi3Mx2Nu+xLuc86NLZrEyK00=";
     };
     location = "php_only";
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
@@ -2099,12 +2110,12 @@
   };
   query = buildGrammar {
     language = "query";
-    version = "0.0.0+rev=d25e8d1";
+    version = "0.0.0+rev=f767fb0";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "tree-sitter-query";
-      rev = "d25e8d183f319497b8b22a2a1585975b020da722";
-      hash = "sha256-c4ttg5UXtRlUdtljQwczoBSR/oX+rnj5gUqR8EIYMKQ=";
+      rev = "f767fb0ac5e711b6d44c5e0c8d1f349687a86ce0";
+      hash = "sha256-snr0ze1VCaAf448mHkrB9qbWTMvjSlPdVl2VtesMIHI=";
     };
     meta.homepage = "https://github.com/nvim-treesitter/tree-sitter-query";
   };
@@ -2132,12 +2143,12 @@
   };
   rasi = buildGrammar {
     language = "rasi";
-    version = "0.0.0+rev=43196d9";
+    version = "0.0.0+rev=6c9bbcf";
     src = fetchFromGitHub {
       owner = "Fymyte";
       repo = "tree-sitter-rasi";
-      rev = "43196d934a9a6ab3c7093a8683efd0111bb03db1";
-      hash = "sha256-7zhQ5wGm0FFyuTiBVN2KgvUTw8G6fwUGR8HKJ69kR+c=";
+      rev = "6c9bbcfdf5f0f553d9ebc01750a3aa247a37b8aa";
+      hash = "sha256-sPrIVgGGaBaXeqHNxjcdJ/S2FvxyV6rD9UPKU/tpspw=";
     };
     meta.homepage = "https://github.com/Fymyte/tree-sitter-rasi";
   };
@@ -2198,12 +2209,12 @@
   };
   requirements = buildGrammar {
     language = "requirements";
-    version = "0.0.0+rev=8666a4d";
+    version = "0.0.0+rev=360c6a6";
     src = fetchFromGitHub {
       owner = "ObserverOfTime";
       repo = "tree-sitter-requirements";
-      rev = "8666a4dfeb3107144398158bc3dd7a3f59d89ccb";
-      hash = "sha256-M+/I0pn79Juk8LRB6LLRAyA3R5zcm6rIoR4viT9SW0c=";
+      rev = "360c6a6b31076a482663806f7a8241de9cad6b4e";
+      hash = "sha256-wqaFpT/4Gq8mWoORcZeGah18VunvKlgr8gCgHQvEF6E=";
     };
     meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-requirements";
   };
@@ -2264,12 +2275,12 @@
   };
   ruby = buildGrammar {
     language = "ruby";
-    version = "0.0.0+rev=788a63c";
+    version = "0.0.0+rev=dc2d7d6";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-ruby";
-      rev = "788a63ca1b7619288980aaafd37d890ee2469421";
-      hash = "sha256-FvLSj0lTNNabneXrDH7/HQq4mcTLvBwhkPW/Pf48JWc=";
+      rev = "dc2d7d6b50f9975bc3c35bbec0ba11b2617b736b";
+      hash = "sha256-HV/hJwftBTCj9WomIcLB6n0LcQRHAzlQsJBNOxu6XJo=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-ruby";
   };
@@ -2331,12 +2342,12 @@
   };
   slang = buildGrammar {
     language = "slang";
-    version = "0.0.0+rev=6858753";
+    version = "0.0.0+rev=989bfe5";
     src = fetchFromGitHub {
       owner = "theHamsta";
       repo = "tree-sitter-slang";
-      rev = "68587530d86aaeb1f1cb17fdada795281cdd0556";
-      hash = "sha256-hWMfiwQEd39WKifIM6NhbXnoKI5zPIGxU2GBvfdjQ9s=";
+      rev = "989bfe5ae69e7bad13454b8f52e4ab0c343d8ded";
+      hash = "sha256-1/8cFxmWHENzrTB7p//DRaZ1pw8WdPe6V2HNj+105Kc=";
     };
     meta.homepage = "https://github.com/theHamsta/tree-sitter-slang";
   };
@@ -2386,12 +2397,12 @@
   };
   solidity = buildGrammar {
     language = "solidity";
-    version = "0.0.0+rev=b5a23ea";
+    version = "0.0.0+rev=1c94fe3";
     src = fetchFromGitHub {
       owner = "JoranHonig";
       repo = "tree-sitter-solidity";
-      rev = "b5a23ead0f69d38b5c9a630f52f5c129132c16ed";
-      hash = "sha256-xOW5C/Bcx2xg/6MPYulQkolWGwyQ+htRKvTnkFnqzOE=";
+      rev = "1c94fe3d5351dfcff3551ec1f49614cbf758e444";
+      hash = "sha256-8UWFIqvd2L0BpVBF/7XLcOyGq5xDd2kJbzfzMpzEZbU=";
     };
     meta.homepage = "https://github.com/JoranHonig/tree-sitter-solidity";
   };
@@ -2421,12 +2432,12 @@
   };
   sourcepawn = buildGrammar {
     language = "sourcepawn";
-    version = "0.0.0+rev=4c62065";
+    version = "0.0.0+rev=227656e";
     src = fetchFromGitHub {
       owner = "nilshelmig";
       repo = "tree-sitter-sourcepawn";
-      rev = "4c62065c4136873ef42a9efe128380cbe7ae4f64";
-      hash = "sha256-cJDEBX821nJnGQLfZ/Me/PDdX5cQuJYzhrJZOLfl+sk=";
+      rev = "227656e72a5f0d430bb82a467bc8078f078bba84";
+      hash = "sha256-EfvOwLMxTeY8wH0cVxltELiujxRDoOfCGno2Omrk7vw=";
     };
     meta.homepage = "https://github.com/nilshelmig/tree-sitter-sourcepawn";
   };
@@ -2476,12 +2487,12 @@
   };
   starlark = buildGrammar {
     language = "starlark";
-    version = "0.0.0+rev=b31a616";
+    version = "0.0.0+rev=018d0e0";
     src = fetchFromGitHub {
       owner = "amaanq";
       repo = "tree-sitter-starlark";
-      rev = "b31a616aac5d05f927f3f9dd809789db7805b632";
-      hash = "sha256-AVQNg7Ck2x1+5asFqJHQ3sdNKJrLVeck9fsgNMBU3x8=";
+      rev = "018d0e09d9d0f0dd6740a37682b8ee4512e8b2ac";
+      hash = "sha256-Qp7FvREjO+FP7ovj6UE8JA3Se8W46iGxNrmmSsruOdA=";
     };
     meta.homepage = "https://github.com/amaanq/tree-sitter-starlark";
   };
@@ -2542,12 +2553,12 @@
   };
   swift = buildGrammar {
     language = "swift";
-    version = "0.0.0+rev=c9c669b";
+    version = "0.0.0+rev=26354dd";
     src = fetchFromGitHub {
       owner = "alex-pinkus";
       repo = "tree-sitter-swift";
-      rev = "c9c669b4513479e07a0ff44cf14f72351959ac21";
-      hash = "sha256-OyT7jkGTuNG7eQrQvZRI49ipu+MMXTOz/1O7r42MaOk=";
+      rev = "26354ddec08c7efde4fa16bd29429f3310d2e2c5";
+      hash = "sha256-PhBqMo99SrOttdDx1AG8N/t3uFG1Tylb6ADNHyLyjJk=";
     };
     generate = true;
     meta.homepage = "https://github.com/alex-pinkus/tree-sitter-swift";
@@ -2632,12 +2643,12 @@
   };
   templ = buildGrammar {
     language = "templ";
-    version = "0.0.0+rev=d631f60";
+    version = "0.0.0+rev=cf84ea5";
     src = fetchFromGitHub {
       owner = "vrischmann";
       repo = "tree-sitter-templ";
-      rev = "d631f60287c0904770bc41aa865e249594b52422";
-      hash = "sha256-rANNbNlybga+IGNfclMGX0On48sQ3WTWvw3bnhxKsZk=";
+      rev = "cf84ea53e2e2531f23009d676ac206090c1e2392";
+      hash = "sha256-CQ11t4beqkjhtZktrawuavgQPSFzbwJrU/aSbPsqBPA=";
     };
     meta.homepage = "https://github.com/vrischmann/tree-sitter-templ";
   };
@@ -2688,12 +2699,12 @@
   };
   tlaplus = buildGrammar {
     language = "tlaplus";
-    version = "0.0.0+rev=ef18145";
+    version = "0.0.0+rev=200f9da";
     src = fetchFromGitHub {
       owner = "tlaplus-community";
       repo = "tree-sitter-tlaplus";
-      rev = "ef18145e7f985f592ad41b04004b24a590f58b71";
-      hash = "sha256-y/AtFMj4aKwjiahYWk63U9BEMpnq7LUQDnPrXsun3kI=";
+      rev = "200f9dab6b23f3b9bb8f67fc811221517f56c373";
+      hash = "sha256-oIyZ+x0bRnxVAQGiuPgFXjHwZ/MSdC9Ge52cG3oYS3E=";
     };
     meta.homepage = "https://github.com/tlaplus-community/tree-sitter-tlaplus";
   };
@@ -2979,12 +2990,12 @@
   };
   wgsl_bevy = buildGrammar {
     language = "wgsl_bevy";
-    version = "0.0.0+rev=59d5fbd";
+    version = "0.0.0+rev=1e12c79";
     src = fetchFromGitHub {
       owner = "theHamsta";
       repo = "tree-sitter-wgsl-bevy";
-      rev = "59d5fbd562c0e17c45312f49485098cce467f5ac";
-      hash = "sha256-4Df7UEHjoIQv4pSdxLlw9c1k0BwnVNRbZ8x/Ky0Q4DE=";
+      rev = "1e12c7925c41bb09818d86e30cd78644fde7d31a";
+      hash = "sha256-7pntsp8mqXyQK+81FefZv32GNlJsnOWIhvJ9o6Q4FUQ=";
     };
     meta.homepage = "https://github.com/theHamsta/tree-sitter-wgsl-bevy";
   };
@@ -3068,12 +3079,12 @@
   };
   zathurarc = buildGrammar {
     language = "zathurarc";
-    version = "0.0.0+rev=e9e8de0";
+    version = "0.0.0+rev=5918bf1";
     src = fetchFromGitHub {
       owner = "Freed-Wu";
       repo = "tree-sitter-zathurarc";
-      rev = "e9e8de071ab79ed1f6e3365f05fcf890b6d85a2f";
-      hash = "sha256-yQyoqRGLVSs3bcfUrQNJllWcufROgo1M+jS/ba7OIgo=";
+      rev = "5918bf1785662c43a841b0b6a27a129337ec3a23";
+      hash = "sha256-JxnS2teVY5cjhb6C/Z+ds9MRmRP/MjaqA08hdVx4Lms=";
     };
     meta.homepage = "https://github.com/Freed-Wu/tree-sitter-zathurarc";
   };
diff --git a/pkgs/applications/editors/vim/plugins/overrides.nix b/pkgs/applications/editors/vim/plugins/overrides.nix
index 37fbd0448208d..4b0b3391df041 100644
--- a/pkgs/applications/editors/vim/plugins/overrides.nix
+++ b/pkgs/applications/editors/vim/plugins/overrides.nix
@@ -1089,21 +1089,20 @@
         inherit (old) version src;
         sourceRoot = "${old.src.name}/spectre_oxi";
 
-        cargoHash = "sha256-seBq1zJNzNVfCQckIHq7rHI/Y8MyxP88cee3NO7NYgo=";
-
+        cargoHash = "sha256-4XAQFKsTM5IxNld1TIC0i861i/3uPjwsDWoW7ZbHfXg=";
 
         preCheck = ''
           mkdir tests/tmp/
         '';
       };
     in
-    (lib.optionalAttrs stdenv.isLinux {
+    {
       dependencies = with self;
         [ plenary-nvim ];
       postInstall = ''
         ln -s ${spectre_oxi}/lib/libspectre_oxi.* $out/lua/spectre_oxi.so
       '';
-    }));
+    });
 
   nvim-teal-maker = super.nvim-teal-maker.overrideAttrs {
     postPatch = ''
@@ -1225,7 +1224,7 @@
         pname = "sg-nvim-rust";
         inherit (old) version src;
 
-        cargoHash = "sha256-iGNLk3ckm90i5m05V/va+hO9RMiOUKL19dkszoUCwlU=";
+        cargoHash = "sha256-dqa5Rd3NeOSqv18F1QdkrWEypJ0bvVwIDwrMOyBVsDM=";
 
         nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/applications/editors/vim/plugins/vim-plugin-names b/pkgs/applications/editors/vim/plugins/vim-plugin-names
index 7637b8d34ef25..96365ee1f5e8b 100644
--- a/pkgs/applications/editors/vim/plugins/vim-plugin-names
+++ b/pkgs/applications/editors/vim/plugins/vim-plugin-names
@@ -130,7 +130,7 @@ https://github.com/laytan/cloak.nvim/,HEAD,
 https://github.com/asheq/close-buffers.vim/,HEAD,
 https://github.com/Civitasv/cmake-tools.nvim/,,
 https://github.com/winston0410/cmd-parser.nvim/,,
-https://github.com/FelipeLema/cmp-async-path/,HEAD,
+https://codeberg.org/FelipeLema/cmp-async-path/,,
 https://github.com/crispgm/cmp-beancount/,HEAD,
 https://github.com/hrsh7th/cmp-buffer/,,
 https://github.com/hrsh7th/cmp-calc/,,
@@ -495,6 +495,7 @@ https://github.com/mkasa/lushtags/,,
 https://github.com/WhiteBlackGoose/magma-nvim-goose/,HEAD,
 https://github.com/winston0410/mark-radar.nvim/,HEAD,
 https://github.com/iamcco/markdown-preview.nvim/,,
+https://github.com/tadmccorkle/markdown.nvim/,HEAD,
 https://github.com/David-Kunz/markid/,HEAD,
 https://github.com/chentoast/marks.nvim/,,
 https://github.com/williamboman/mason-lspconfig.nvim/,HEAD,
@@ -691,6 +692,7 @@ https://github.com/olrtg/nvim-rename-state/,HEAD,
 https://github.com/petertriho/nvim-scrollbar/,HEAD,
 https://github.com/dstein64/nvim-scrollview/,,
 https://github.com/s1n7ax/nvim-search-and-replace/,HEAD,
+https://github.com/garymjr/nvim-snippets/,,
 https://github.com/dcampos/nvim-snippy/,HEAD,
 https://github.com/ishan9299/nvim-solarized-lua/,,
 https://github.com/lucidph3nx/nvim-sops/,HEAD,
diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix
index d46f2a3effd4e..5f3bb150e6439 100644
--- a/pkgs/applications/editors/vscode/extensions/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/default.nix
@@ -3094,7 +3094,7 @@ let
         };
         meta = {
           description = "Open any folder or repository inside a Docker container.";
-          downloadPage = "Use a container as your development environment";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers";
           homepage = "https://code.visualstudio.com/docs/devcontainers/containers";
           license = lib.licenses.unfree;
           maintainers = [ lib.maintainers.anthonyroussel ];
@@ -3913,8 +3913,8 @@ let
         mktplcRef = {
           name = "code-spell-checker";
           publisher = "streetsidesoftware";
-          version = "3.0.1";
-          hash = "sha256-KeYE6/yO2n3RHPjnJOnOyHsz4XW81y9AbkSC/I975kQ=";
+          version = "4.0.0";
+          hash = "sha256-RUQQV+r1JNUuLxIRfi9IaOtpBubySNPL5a5Vy6bA+q4=";
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/streetsidesoftware.code-spell-checker/changelog";
diff --git a/pkgs/applications/editors/vscode/extensions/ms-vscode.cpptools/default.nix b/pkgs/applications/editors/vscode/extensions/ms-vscode.cpptools/default.nix
index 0e23614a166d7..61b079b190b79 100644
--- a/pkgs/applications/editors/vscode/extensions/ms-vscode.cpptools/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/ms-vscode.cpptools/default.nix
@@ -73,6 +73,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
     stdenv.cc.cc.lib
   ];
 
+  dontAutoPatchelf = true;
+
   postPatch = ''
     mv ./package.json ./package_orig.json
 
@@ -87,18 +89,27 @@ vscode-utils.buildVscodeMarketplaceExtension {
     touch "./install.lock"
 
     # Clang-format from nix package.
-    mv ./LLVM/ ./LLVM_orig
+    rm -rf ./LLVM
     mkdir "./LLVM/"
     find "${clang-tools}" -mindepth 1 -maxdepth 1 | xargs ln -s -t "./LLVM"
 
     # Patching binaries
-    chmod +x bin/cpptools bin/cpptools-srv bin/cpptools-wordexp debugAdapters/bin/OpenDebugAD7
+    chmod +x bin/cpptools bin/cpptools-srv bin/cpptools-wordexp bin/libc.so debugAdapters/bin/OpenDebugAD7
     patchelf --replace-needed liblttng-ust.so.0 liblttng-ust.so.1 ./debugAdapters/bin/libcoreclrtraceptprovider.so
   '';
 
-  postFixup = lib.optionalString gdbUseFixed ''
-    wrapProgram $out/share/vscode/extensions/ms-vscode.cpptools/debugAdapters/bin/OpenDebugAD7 --prefix PATH : ${lib.makeBinPath [ gdb ]}
-  '';
+  postFixup =
+    ''
+      autoPatchelf $out/share/vscode/extensions/ms-vscode.cpptools/debugAdapters
+
+      # cpptools* are distributed by the extension and need to be run through the distributed musl interpretter
+      patchelf --set-interpreter $out/share/vscode/extensions/ms-vscode.cpptools/bin/libc.so $out/share/vscode/extensions/ms-vscode.cpptools/bin/cpptools
+      patchelf --set-interpreter $out/share/vscode/extensions/ms-vscode.cpptools/bin/libc.so $out/share/vscode/extensions/ms-vscode.cpptools/bin/cpptools-srv
+      patchelf --set-interpreter $out/share/vscode/extensions/ms-vscode.cpptools/bin/libc.so $out/share/vscode/extensions/ms-vscode.cpptools/bin/cpptools-wordexp
+    ''
+    + lib.optionalString gdbUseFixed ''
+      wrapProgram $out/share/vscode/extensions/ms-vscode.cpptools/debugAdapters/bin/OpenDebugAD7 --prefix PATH : ${lib.makeBinPath [ gdb ]}
+    '';
 
   meta = {
     description = "The C/C++ extension adds language support for C/C++ to Visual Studio Code, including features such as IntelliSense and debugging.";
diff --git a/pkgs/applications/editors/vscode/extensions/myriad-dreamin.tinymist/default.nix b/pkgs/applications/editors/vscode/extensions/myriad-dreamin.tinymist/default.nix
index 21a412b91e31d..8bb08893f8dbf 100644
--- a/pkgs/applications/editors/vscode/extensions/myriad-dreamin.tinymist/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/myriad-dreamin.tinymist/default.nix
@@ -10,10 +10,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
   mktplcRef = {
     name = "tinymist";
     publisher = "myriad-dreamin";
-    # Please update the corresponding binary (tinymist) when updating
-    # this extension.
-    version = "0.11.9";
-    hash = "sha256-h49SI/KoA5sbLIkJreZoux7mTIhGZ7HqtgE1EAh3vYM=";
+    inherit (tinymist) version;
+    hash = "sha256-etPjbmcBhS1dgq5wEoRIekZlRxYoC6KrsV/+owjHu4I=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/emulators/box64/default.nix b/pkgs/applications/emulators/box64/default.nix
index 19653ea73060c..6d15889ee50c8 100644
--- a/pkgs/applications/emulators/box64/default.nix
+++ b/pkgs/applications/emulators/box64/default.nix
@@ -14,13 +14,13 @@ assert withDynarec -> (stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isRi
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "box64";
-  version = "0.2.6";
+  version = "0.2.8";
 
   src = fetchFromGitHub {
     owner = "ptitSeb";
     repo = "box64";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-eKYnBuaEWRb6kDGFvuG+xM70LbUAcJ6Zcr6hPHqi9Do=";
+    hash = "sha256-P+m+JS3THh3LWMZYW6BQ7QyNWlBuL+hMcUtUbpMHzis=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/emulators/retroarch/hashes.json b/pkgs/applications/emulators/retroarch/hashes.json
index a7655cb9bb3c3..e27eafce9d517 100644
--- a/pkgs/applications/emulators/retroarch/hashes.json
+++ b/pkgs/applications/emulators/retroarch/hashes.json
@@ -85,10 +85,10 @@
         "src": {
             "owner": "libretro",
             "repo": "beetle-psx-libretro",
-            "rev": "1743ca1a97cc90eac463def2e6118602b3d230c0",
-            "hash": "sha256-0ViuIo+iEIthRayJQeedOo2L+uTsJQh6PTJ21zlC/f0="
+            "rev": "f7d733b935be185da633be660c73d8f91d6c6883",
+            "hash": "sha256-hX56CqsWkxNlaSzOtaemIWEO0Ov9InmcLmRUJjtn4FQ="
         },
-        "version": "unstable-2024-05-17"
+        "version": "unstable-2024-05-24"
     },
     "beetle-saturn": {
         "fetcher": "fetchFromGitHub",
@@ -287,31 +287,31 @@
         "src": {
             "owner": "libretro",
             "repo": "fbneo",
-            "rev": "312473be86f25e1a0456d4bb9d12462d90d59131",
-            "hash": "sha256-QU+ZG1onr3BtXZAUT9o5LypFozZsAF6biTj05sKtV+s="
+            "rev": "4e0738a16d64adb4c468db4144ec3b51f9217660",
+            "hash": "sha256-Se7QLJ1YVbEcwLOrKwTKTS6rgBw5Q9B4T2J40IgvOk0="
         },
-        "version": "unstable-2024-05-20"
+        "version": "unstable-2024-05-28"
     },
     "fceumm": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "libretro",
             "repo": "libretro-fceumm",
-            "rev": "aebea8783652bc75b21b9d2dcb28cedf1fa78e8a",
-            "hash": "sha256-4ux8pI2d8djkwY0M+h5tlXrLGIDHnMFiFqAWKrZAsxA="
+            "rev": "0dc5915f0ba10d4bb63b35fbfa57b81a3dd0955e",
+            "hash": "sha256-fLgJ3EWOaHMpBxPqhjcyYKuwVzIiAmKhk0KUmUswlmY="
         },
-        "version": "unstable-2024-04-06"
+        "version": "unstable-2024-05-27"
     },
     "flycast": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "flyinghead",
             "repo": "flycast",
-            "rev": "0fa3e9a37b37d2ab200a910ff2a5736ca8c57a1b",
-            "hash": "sha256-c2cDQ2MSsP/rUrX89Mj5Gplb0WS2EjjOBCNd5QFbuHw=",
+            "rev": "90896368b80531e492fede0e17c54f7e6855a13b",
+            "hash": "sha256-7JhHpNYxC6oNyvLCMmBie0pkPgWJ9hxfeYRxmmgpBso=",
             "fetchSubmodules": true
         },
-        "version": "unstable-2024-05-21"
+        "version": "unstable-2024-05-27"
     },
     "fmsx": {
         "fetcher": "fetchFromGitHub",
@@ -358,10 +358,10 @@
         "src": {
             "owner": "libretro",
             "repo": "Genesis-Plus-GX",
-            "rev": "58cf8471e3aa09ac4cb4c4b2dc5fdf3d1d54d626",
-            "hash": "sha256-y1pVoKrIV5n2wKoUIkUEor2CKTx9CyvkDagkByuFeiE="
+            "rev": "d2f1241b8665b525f95506afb5f079167f2b1ab6",
+            "hash": "sha256-DtnPtXYdxQ5XB6Og+XYpN1uRHJR3B1EpVsdCN3V8YZg="
         },
-        "version": "unstable-2024-05-17"
+        "version": "unstable-2024-05-25"
     },
     "gpsp": {
         "fetcher": "fetchFromGitHub",
@@ -429,20 +429,20 @@
         "src": {
             "owner": "libretro",
             "repo": "mame2003-libretro",
-            "rev": "cb2c76b2185c6600d1985b041eae001c674ffc08",
-            "hash": "sha256-HBDJsYEC4G/wELYe8IGfq+9Hv2Sx+v52YxYfLQRZ+ns="
+            "rev": "73e97290df6d3c4148c73e849a1f274ae1571da2",
+            "hash": "sha256-osVwOUFygdsxHXKx5eg3TxJeRBiv3PmXMlAO0x/p1EY="
         },
-        "version": "unstable-2024-05-21"
+        "version": "unstable-2024-05-27"
     },
     "mame2003-plus": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "libretro",
             "repo": "mame2003-plus-libretro",
-            "rev": "97dfe652dba01872bc5dd5d13a0dfb6588286adf",
-            "hash": "sha256-BQoc8y0eJkK8PpPqHjQ8qKp8/xrjl789bxNy+RdU3Sc="
+            "rev": "7e0673fb35f716a5c0aab601c23118f8a2c4f7d2",
+            "hash": "sha256-6tzUIyrmsGIXY1MiikcP6cfeVrvx+3LxhHBBKvyDRPU="
         },
-        "version": "unstable-2024-05-21"
+        "version": "unstable-2024-05-28"
     },
     "mame2010": {
         "fetcher": "fetchFromGitHub",
@@ -652,32 +652,32 @@
         "src": {
             "owner": "jpd002",
             "repo": "Play-",
-            "rev": "0efd17e79dc470c86cd1363a93130888c1e7a528",
-            "hash": "sha256-+f1xOSqKUJmM0bhtsPR9zk6mybo2HOXLURtYVb6qBGU=",
+            "rev": "5b80de936ee267b5bfcbaf3a25f8307d718e09d6",
+            "hash": "sha256-ATTNivOCLp0Ze1RJfO7YWZzw7foPz/6OjVoa/4P3M4E=",
             "fetchSubmodules": true
         },
-        "version": "unstable-2024-05-17"
+        "version": "unstable-2024-05-27"
     },
     "ppsspp": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "hrydgard",
             "repo": "ppsspp",
-            "rev": "1a01e4fd2e1ad1a6c5a7a1511ddeb495f525ae9e",
-            "hash": "sha256-MWXfHbWQXi/UflOV4zchrBVdh+Nt04HnvoTbpLNyq/Q=",
+            "rev": "e69870033ef07831ecea1e68ff8ac49da1dd7fff",
+            "hash": "sha256-L9NfESAHjCzdRzNoyzPZ0CJXZ8VguD91SVDlSSGGx0I=",
             "fetchSubmodules": true
         },
-        "version": "unstable-2024-05-21"
+        "version": "unstable-2024-05-28"
     },
     "prboom": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "libretro",
             "repo": "libretro-prboom",
-            "rev": "ab05295d81fed2bb9db9f68a7ceeec7a544191d8",
-            "hash": "sha256-ekVVxYg+Uet3pfir6P7PwI87p5XF2ATbFbux1t38ETs="
+            "rev": "9d412db570d3291829b308e6d1ac17f04acdda17",
+            "hash": "sha256-50Nl8IyaQRLOQtTRYhJFwTH8ojMxNVVn/c+oGCeJts0="
         },
-        "version": "unstable-2024-05-07"
+        "version": "unstable-2024-05-23"
     },
     "prosystem": {
         "fetcher": "fetchFromGitHub",
@@ -694,10 +694,10 @@
         "src": {
             "owner": "libretro",
             "repo": "libretro-uae",
-            "rev": "3432007d28ef173707e2b32bd931932e5b74085d",
-            "hash": "sha256-spkl8A4mijM4uSpFojAFiYZl7tetWpCBKCDMUM8byUU="
+            "rev": "4493a194dd42e593914c26952ee8cb4ba750f596",
+            "hash": "sha256-uSnxx85+AX/15UvyOOiVApKT5I9SjKITfi5Osd4nBSE="
         },
-        "version": "unstable-2024-05-20"
+        "version": "unstable-2024-05-25"
     },
     "quicknes": {
         "fetcher": "fetchFromGitHub",
@@ -754,10 +754,10 @@
         "src": {
             "owner": "snes9xgit",
             "repo": "snes9x",
-            "rev": "738e53989e29c912eba3be4656df18cecc76e69b",
-            "hash": "sha256-riz4WBK/Qrw6QuIyi6ylNdDBxYOq1SsltC7/GAunZbM="
+            "rev": "a277d7f9e88fa377f9cc6f26c1f6008d0499d36e",
+            "hash": "sha256-8fdBgQeZAEyKnBInOeqsaIw20ztn5eeU34+CnoM+xng="
         },
-        "version": "unstable-2024-05-19"
+        "version": "unstable-2024-05-26"
     },
     "snes9x2002": {
         "fetcher": "fetchFromGitHub",
@@ -814,10 +814,10 @@
         "src": {
             "owner": "libretro",
             "repo": "swanstation",
-            "rev": "6a0cc4a1cf3b8a89150160f631f477c36dc6e559",
-            "hash": "sha256-YciqQW5Q9NYbzdsWeYc92CDWBaXT3HZmDsd3WkqPYzo="
+            "rev": "d5169ed204838b622551c82b3c20df376324870f",
+            "hash": "sha256-ixLd2xdy6r5irNEhBDbdMpvRR7clnHr1LrTywuqkr84="
         },
-        "version": "unstable-2024-05-21"
+        "version": "unstable-2024-05-27"
     },
     "tgbdual": {
         "fetcher": "fetchFromGitHub",
diff --git a/pkgs/applications/emulators/ruffle/default.nix b/pkgs/applications/emulators/ruffle/default.nix
index e538def0d47c5..ed19110f4ee8a 100644
--- a/pkgs/applications/emulators/ruffle/default.nix
+++ b/pkgs/applications/emulators/ruffle/default.nix
@@ -6,6 +6,7 @@
   pkg-config,
   python3,
   rustPlatform,
+  stdenv,
   lib,
   wayland,
   xorg,
@@ -18,6 +19,7 @@
   gsettings-desktop-schemas,
   glib,
   libxkbcommon,
+  darwin,
 }:
 
 let
@@ -34,56 +36,62 @@ rustPlatform.buildRustPackage {
     hash = "sha256-WfoYQku1NFhvWyqeSVKtsMMEyUA97YFD7cvdn4XYIPI=";
   };
 
-  nativeBuildInputs = [
-    glib
-    gsettings-desktop-schemas
-    jre_minimal
-    makeWrapper
-    pkg-config
-    python3
-    wrapGAppsHook3
-  ];
+  nativeBuildInputs =
+    [ jre_minimal ]
+    ++ lib.optionals stdenv.isLinux [
+      glib
+      gsettings-desktop-schemas
+      makeWrapper
+      pkg-config
+      python3
+      wrapGAppsHook3
+    ]
+    ++ lib.optionals stdenv.isDarwin [ rustPlatform.bindgenHook ];
 
-  buildInputs = [
-    alsa-lib
-    cairo
-    gtk3
-    openssl
-    wayland
-    xorg.libX11
-    xorg.libXcursor
-    xorg.libXrandr
-    xorg.libXi
-    xorg.libxcb
-    xorg.libXrender
-    vulkan-loader
-    udev
-  ];
+  buildInputs =
+    lib.optionals stdenv.isLinux [
+      alsa-lib
+      cairo
+      gtk3
+      openssl
+      wayland
+      xorg.libX11
+      xorg.libXcursor
+      xorg.libXrandr
+      xorg.libXi
+      xorg.libxcb
+      xorg.libXrender
+      vulkan-loader
+      udev
+    ]
+    ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.AppKit ];
 
   dontWrapGApps = true;
 
-  preFixup = ''
+  preFixup = lib.optionalString stdenv.isLinux ''
     patchelf $out/bin/ruffle_desktop \
       --add-needed libxkbcommon-x11.so \
       --add-needed libwayland-client.so \
       --add-rpath ${libxkbcommon}/lib:${wayland}/lib
   '';
 
-  postFixup = ''
-    # This name is too generic
-    mv $out/bin/exporter $out/bin/ruffle_exporter
+  postFixup =
+    ''
+      # This name is too generic
+      mv $out/bin/exporter $out/bin/ruffle_exporter
+    ''
+    + lib.optionalString stdenv.isLinux ''
+      vulkanWrapperArgs+=(
+        --prefix LD_LIBRARY_PATH ':' ${vulkan-loader}/lib
+      )
 
-    vulkanWrapperArgs+=(
-      --prefix LD_LIBRARY_PATH ':' ${vulkan-loader}/lib
-    )
+      wrapProgram $out/bin/ruffle_exporter \
+        "''${vulkanWrapperArgs[@]}"
 
-    wrapProgram $out/bin/ruffle_exporter \
-      "''${vulkanWrapperArgs[@]}"
-
-    wrapProgram $out/bin/ruffle_desktop \
-      "''${vulkanWrapperArgs[@]}" \
-      "''${gappsWrapperArgs[@]}"
-  '';
+      wrapProgram $out/bin/ruffle_desktop \
+        "''${vulkanWrapperArgs[@]}" \
+        "''${gappsWrapperArgs[@]}"
+    '';
 
   cargoBuildFlags = [ "--workspace" ];
 
@@ -109,7 +117,7 @@ rustPlatform.buildRustPackage {
       govanify
       jchw
     ];
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
     mainProgram = "ruffle_desktop";
   };
 }
diff --git a/pkgs/applications/emulators/sameboy/default.nix b/pkgs/applications/emulators/sameboy/default.nix
index 643092b0a06b7..d723eaecc20c5 100644
--- a/pkgs/applications/emulators/sameboy/default.nix
+++ b/pkgs/applications/emulators/sameboy/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sameboy";
-  version = "0.16.3";
+  version = "0.16.5";
 
   src = fetchFromGitHub {
     owner = "LIJI32";
     repo = "SameBoy";
     rev = "v${version}";
-    sha256 = "sha256-sQWmuF1dQgvW9WyOxgxaupTUcde3KzzYiGv+v1N5ssk=";
+    sha256 = "sha256-w/l+L/Gs2ERzXLiGFrNKHBTGBLdr+2zn1ZYRHUtZcHg=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/gis/qgis/unwrapped-ltr.nix b/pkgs/applications/gis/qgis/unwrapped-ltr.nix
index bc0033746b19f..f76f82856055c 100644
--- a/pkgs/applications/gis/qgis/unwrapped-ltr.nix
+++ b/pkgs/applications/gis/qgis/unwrapped-ltr.nix
@@ -77,14 +77,14 @@ let
     urllib3
   ];
 in mkDerivation rec {
-  version = "3.34.6";
+  version = "3.34.7";
   pname = "qgis-ltr-unwrapped";
 
   src = fetchFromGitHub {
     owner = "qgis";
     repo = "QGIS";
     rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
-    hash = "sha256-eWd8oIINWVN5Dt6s4bc1RtQbytFd0foPgIcd/N2hsMw=";
+    hash = "sha256-6fIBmIoCVo0AtkjC4Vn3jMjz93gZmvkFAgo+KnasyXo=";
   };
 
   passthru = {
diff --git a/pkgs/applications/gis/qgis/unwrapped.nix b/pkgs/applications/gis/qgis/unwrapped.nix
index 0cea5f998009f..19fcb5344445a 100644
--- a/pkgs/applications/gis/qgis/unwrapped.nix
+++ b/pkgs/applications/gis/qgis/unwrapped.nix
@@ -78,14 +78,14 @@ let
     urllib3
   ];
 in mkDerivation rec {
-  version = "3.36.2";
+  version = "3.36.3";
   pname = "qgis-unwrapped";
 
   src = fetchFromGitHub {
     owner = "qgis";
     repo = "QGIS";
     rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
-    hash = "sha256-/8mpzl/6UpjrMVjae2nqpS2DBRCq86rE+B3INzoRz8g=";
+    hash = "sha256-uPyW/zzoyyd3SXvP+h9joJEv9DjRNJSaorx1rNmAaFQ=";
   };
 
   passthru = {
diff --git a/pkgs/applications/graphics/ImageMagick/default.nix b/pkgs/applications/graphics/ImageMagick/default.nix
index c15af9d94fb28..608e7bc506123 100644
--- a/pkgs/applications/graphics/ImageMagick/default.nix
+++ b/pkgs/applications/graphics/ImageMagick/default.nix
@@ -135,7 +135,10 @@ stdenv.mkDerivation (finalAttrs: {
     inherit nixos-icons;
     inherit (perlPackages) ImageMagick;
     inherit (python3.pkgs) img2pdf;
-    pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
+    pkg-config = testers.hasPkgConfigModules {
+      package = finalAttrs.finalPackage;
+      version = lib.head (lib.splitString "-" finalAttrs.version);
+    };
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/graphics/f3d/default.nix b/pkgs/applications/graphics/f3d/default.nix
index 3b45ca987f1a2..dd893ba9a976e 100644
--- a/pkgs/applications/graphics/f3d/default.nix
+++ b/pkgs/applications/graphics/f3d/default.nix
@@ -10,13 +10,14 @@
 , libGL
 , Cocoa
 , OpenGL
+, withManual ? !stdenv.isDarwin
 }:
 
 stdenv.mkDerivation rec {
   pname = "f3d";
   version = "2.4.0";
 
-  outputs = [ "out" "man" ];
+  outputs = [ "out" ] ++ lib.optionals withManual [ "man" ];
 
   src = fetchFromGitHub {
     owner = "f3d-app";
@@ -27,8 +28,11 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     cmake
+  ] ++ lib.optionals withManual [
+    # manpage
     help2man
     gzip
+  ] ++ lib.optionals stdenv.hostPlatform.isElf [
     # https://github.com/f3d-app/f3d/pull/1217
     autoPatchelfHook
   ];
@@ -41,7 +45,7 @@ stdenv.mkDerivation rec {
     "-DCMAKE_INSTALL_LIBDIR=lib"
     "-DCMAKE_INSTALL_INCLUDEDIR=include"
     "-DCMAKE_INSTALL_BINDIR=bin"
-
+  ] ++ lib.optionals withManual [
     "-DF3D_LINUX_GENERATE_MAN=ON"
   ];
 
diff --git a/pkgs/applications/graphics/figma-linux/default.nix b/pkgs/applications/graphics/figma-linux/default.nix
index 6c794c9706bb2..55583cd188090 100644
--- a/pkgs/applications/graphics/figma-linux/default.nix
+++ b/pkgs/applications/graphics/figma-linux/default.nix
@@ -10,11 +10,11 @@
 with lib;
 stdenv.mkDerivation (finalAttrs: {
   pname = "figma-linux";
-  version = "0.11.3";
+  version = "0.11.4";
 
   src = fetchurl {
     url = "https://github.com/Figma-Linux/figma-linux/releases/download/v${finalAttrs.version}/figma-linux_${finalAttrs.version}_linux_amd64.deb";
-    hash = "sha256-9UfyCqgsg9XAFyZ7V7TogkQou4x+ixFUfjXZ1/qlDmA=";
+    hash = "sha256-ukUsNgWOtIRe54vsmRdI62syjIPwSsgNV7kITCw0YUQ=";
   };
 
   nativeBuildInputs = [ autoPatchelfHook dpkg wrapGAppsHook3 ];
diff --git a/pkgs/applications/graphics/gnome-obfuscate/default.nix b/pkgs/applications/graphics/gnome-obfuscate/default.nix
index 49499f7d7322e..1a091929b3e49 100644
--- a/pkgs/applications/graphics/gnome-obfuscate/default.nix
+++ b/pkgs/applications/graphics/gnome-obfuscate/default.nix
@@ -20,20 +20,20 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-obfuscate";
-  version = "0.0.9";
+  version = "0.0.10";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = "Obfuscate";
     rev = finalAttrs.version;
-    hash = "sha256-aUhzact437V/bSsG2Ddu2mC03LbyXFg+hJiuGy5NQfQ=";
+    hash = "sha256-/Plvvn1tle8t/bsPcsamn5d81CqnyGCyGYPF6j6U5NI=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit (finalAttrs) src;
     name = "${finalAttrs.pname}-${finalAttrs.version}";
-    hash = "sha256-HUQvdCmzjdmuJGDLtC/86yzbRimLzx+XbW29f+Ua48w=";
+    hash = "sha256-9lrxK2psdIPGsOC6p8T+3AGPrX6PjrK9mFirdJqBSMM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/komikku/default.nix b/pkgs/applications/graphics/komikku/default.nix
index bdc81a532fdc1..ffc612a33bfc7 100644
--- a/pkgs/applications/graphics/komikku/default.nix
+++ b/pkgs/applications/graphics/komikku/default.nix
@@ -19,7 +19,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "komikku";
-  version = "1.46.0";
+  version = "1.47.0";
 
   format = "other";
 
@@ -28,7 +28,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "valos";
     repo = "Komikku";
     rev = "v${version}";
-    hash = "sha256-0yobGclfZzv0S0HtqeTr4vzK5d6PTQNWMszP0B4k770=";
+    hash = "sha256-ZYQjH3NUPeq5XgCZ6L78lJpgbK69ZMf2AzztbCgbYBo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/paraview/default.nix b/pkgs/applications/graphics/paraview/default.nix
index 4fec6b2ad13c3..3394fc6825c75 100644
--- a/pkgs/applications/graphics/paraview/default.nix
+++ b/pkgs/applications/graphics/paraview/default.nix
@@ -6,13 +6,13 @@
 }:
 
 let
-  version = "5.11.2";
+  version = "5.12.0";
 
   docFiles = [
     (fetchurl {
       url = "https://www.paraview.org/paraview-downloads/download.php?submit=Download&version=v${lib.versions.majorMinor version}&type=data&os=Sources&downloadFile=ParaViewTutorial-${version}.pdf";
       name = "Tutorial.pdf";
-      hash = "sha256-KIcd5GG+1L3rbj4qdLbc+eDa5Wy4+nqiVIxfHu5Tdpg=";
+      hash = "sha256-ETA799peqP9RAjcqPBwVb8egKfQJAuIXNgso+k8o50Q=";
     })
     (fetchurl {
       url = "https://www.paraview.org/paraview-downloads/download.php?submit=Download&version=v${lib.versions.majorMinor version}&type=data&os=Sources&downloadFile=ParaViewGettingStarted-${version}.pdf";
@@ -35,7 +35,7 @@ in stdenv.mkDerivation rec {
     owner = "paraview";
     repo = "paraview";
     rev = "v${version}";
-    hash = "sha256-fe/4xxxlkal08vE971FudTnESFfGMYzuvSyAMS6HSxI=";
+    hash = "sha256-PAD48IlOU39TosjfTiDz7IjEeYEP/7F75M+8dYBIUxI=";
     fetchSubmodules = true;
   };
 
@@ -86,12 +86,6 @@ in stdenv.mkDerivation rec {
     qtsvg
   ];
 
-  patches = [
-    ./dont-redefine-strlcat.patch
-  ];
-
-  env.CXXFLAGS = "-include cstdint";
-
   postInstall = let docDir = "$out/share/paraview-${lib.versions.majorMinor version}/doc"; in
     lib.optionalString withDocs ''
       mkdir -p ${docDir};
diff --git a/pkgs/applications/graphics/paraview/dont-redefine-strlcat.patch b/pkgs/applications/graphics/paraview/dont-redefine-strlcat.patch
deleted file mode 100644
index d7e24e7d73054..0000000000000
--- a/pkgs/applications/graphics/paraview/dont-redefine-strlcat.patch
+++ /dev/null
@@ -1,28 +0,0 @@
---- a/VTK/ThirdParty/netcdf/vtknetcdf/include/vtk_netcdf_mangle.h	2023-11-27 21:11:33.562949964 +0100
-+++ b/VTK/ThirdParty/netcdf/vtknetcdf/include/vtk_netcdf_mangle.h	2023-11-27 21:11:33.562949964 +0100
-@@ -1246,7 +1246,7 @@
- #define write_numrecs vtknetcdf_write_numrecs
- 
- /* Only define strlcat conditionally, as it's provided by system headers on the BSDs. */
--#if !defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(_BSD_SOURCE)
-+#ifndef HAVE_STRLCAT
- #define strlcat vtknetcdf_strlcat
- #endif
- 
---- a/VTK/ThirdParty/netcdf/vtknetcdf/config.h.in	2023-11-27 21:10:35.113525241 +0100
-+++ b/VTK/ThirdParty/netcdf/vtknetcdf/config.h.in	2023-11-27 21:10:55.241982399 +0100
-@@ -1,7 +1,5 @@
- /* config.h.in.  Generated from configure.ac by autoheader.  */
- 
--#include "vtk_netcdf_mangle.h"
--
- /* Define if building universal (internal helper macro) */
- #cmakedefine AC_APPLE_UNIVERSAL_BUILD
- 
-@@ -621,4 +619,6 @@
- #endif
- #endif
- 
-+#include "vtk_netcdf_mangle.h"
-+
- #include "ncconfigure.h"
diff --git a/pkgs/applications/graphics/rnote/default.nix b/pkgs/applications/graphics/rnote/default.nix
index 2d60d46d612a1..1e189138eba22 100644
--- a/pkgs/applications/graphics/rnote/default.nix
+++ b/pkgs/applications/graphics/rnote/default.nix
@@ -93,5 +93,7 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dotlambda gepbird yrd ];
     platforms = platforms.unix;
+    # compiler error since 2023-11-17
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/applications/misc/1password-gui/default.nix b/pkgs/applications/misc/1password-gui/default.nix
index c151bedd29e61..965d6b487a057 100644
--- a/pkgs/applications/misc/1password-gui/default.nix
+++ b/pkgs/applications/misc/1password-gui/default.nix
@@ -9,43 +9,43 @@
 let
 
   pname = "1password";
-  version = if channel == "stable" then "8.10.30" else "8.10.30-20.BETA";
+  version = if channel == "stable" then "8.10.33" else "8.10.34-10.BETA";
 
   sources = {
     stable = {
       x86_64-linux = {
         url = "https://downloads.1password.com/linux/tar/stable/x86_64/1password-${version}.x64.tar.gz";
-        hash = "sha256-q1PKFpBgjada7jmeXZYmH8dvy2A4lwfrQ0jQSoHVNcg=";
+        hash = "sha256-njSvRi/sA7l5+XxfCpv3FY9SmCv5oPix9l2EZewZg1M=";
       };
       aarch64-linux = {
         url = "https://downloads.1password.com/linux/tar/stable/aarch64/1password-${version}.arm64.tar.gz";
-        hash = "sha256-Zv/mnykPi9PCDX44JtGi0GPrOujSmjx1BBJuEB81CwE=";
+        hash = "sha256-g4RMTlBQvJQaPD/6scYjpe7NWrL6gkjvh5b9LubTWaE=";
       };
       x86_64-darwin = {
         url = "https://downloads.1password.com/mac/1Password-${version}-x86_64.zip";
-        hash = "sha256-unC1cz5ooSdu4Csf7/daCyPdMy3/Lp3a76B7TBa/VXk=";
+        hash = "sha256-YzAYMk3SR+paIQYAZCx840u/k77soy17F15owpqRAU0=";
       };
       aarch64-darwin = {
         url = "https://downloads.1password.com/mac/1Password-${version}-aarch64.zip";
-        hash = "sha256-DS6oCdr6srF+diL68a2gOskS4x+uj1i8DtL3uaaxv/I=";
+        hash = "sha256-FlJnPMIv7mWh3dSACq01f16mB9EkVD2LOg3IIpvjwdY=";
       };
     };
     beta = {
       x86_64-linux = {
         url = "https://downloads.1password.com/linux/tar/beta/x86_64/1password-${version}.x64.tar.gz";
-        hash = "sha256-6I/3o+33sIkfyef8xGUWczaWykHPcvvAGv0xy/jCkKI=";
+        hash = "sha256-eX7D8D5KErFIQtyvg4oT+lR3A7sfRFpDMT7duigZTz0=";
       };
       aarch64-linux = {
         url = "https://downloads.1password.com/linux/tar/beta/aarch64/1password-${version}.arm64.tar.gz";
-        hash = "sha256-ph6DBBUzdUHtYCAQiA1me3bevtVPEgIxtwbgbdgQcGY=";
+        hash = "sha256-dajdeU8TtD9Dbnp2MFedAl8tuQr275cUqGAnm/VF+OE=";
       };
       x86_64-darwin = {
         url = "https://downloads.1password.com/mac/1Password-${version}-x86_64.zip";
-        hash = "sha256-XzZOj1pfoCTGMTsqZlI8hKTDRJ4w7debAPYHIIwsyyY=";
+        hash = "sha256-Dm8v7B8qDSBe1i7OJKQFn7YDPkw3Qj8YVtQkaQmdKuc=";
       };
       aarch64-darwin = {
         url = "https://downloads.1password.com/mac/1Password-${version}-aarch64.zip";
-        hash = "sha256-s+hnKhI2s6E1ZyJQxs3Wggy60LxCEr+u3tRtjTgjmZk=";
+        hash = "sha256-QSxJoVPlOQU7hbvbuVcB/kf5umRjJQuygMkXq6lE1CQ=";
       };
     };
   };
diff --git a/pkgs/applications/misc/1password/default.nix b/pkgs/applications/misc/1password/default.nix
index 71f93ae40e7a4..9ecc38a9abbbc 100644
--- a/pkgs/applications/misc/1password/default.nix
+++ b/pkgs/applications/misc/1password/default.nix
@@ -12,12 +12,12 @@ let
     if extension == "zip" then fetchzip args else fetchurl args;
 
   pname = "1password-cli";
-  version = "2.28.0";
+  version = "2.29.0";
   sources = rec {
-    aarch64-linux = fetch "linux_arm64" "sha256-rF0HWKLdLDmT5nXqZyn+nwd3DZxkP76Jm+xofvA1dpU=" "zip";
-    i686-linux = fetch "linux_386" "sha256-b9OPsZJTGoAeedj/dv88lkX2Q4p9HG585mWyl7ZfDz4=" "zip";
-    x86_64-linux = fetch "linux_amd64" "sha256-5ZiMQaQLYUR9BZroyG0o+M79cR4GQb6rDyVmIcTZh3o=" "zip";
-    aarch64-darwin = fetch "apple_universal" "sha256-5VmogWqCYMdrg9dyRt4lurPmSRdUUHt4LT3lkOEKdEI=" "pkg";
+    aarch64-linux = fetch "linux_arm64" "sha256-sBbdkoacGI/gawM4YH+BBCLDhC2B+cE4iKVGHBhwkic=" "zip";
+    i686-linux = fetch "linux_386" "sha256-TTd5juT0Aqp1+OfunXcuk0KbL6HIHQV31+1Q1e0GYMY=" "zip";
+    x86_64-linux = fetch "linux_amd64" "sha256-Bb6fNoeNxlbDfwt7Jr8BaKCmFUwSdsLQdVoCmQCNmLA=" "zip";
+    aarch64-darwin = fetch "apple_universal" "sha256-/ryklZnGhrgJggDIa8HmuDsHAXkdrWeXKCQGGVwUAAo=" "pkg";
     x86_64-darwin = aarch64-darwin;
   };
   platforms = builtins.attrNames sources;
diff --git a/pkgs/applications/misc/corectrl/default.nix b/pkgs/applications/misc/corectrl/default.nix
index a7397da8d7cf7..9240635aa5421 100644
--- a/pkgs/applications/misc/corectrl/default.nix
+++ b/pkgs/applications/misc/corectrl/default.nix
@@ -25,13 +25,13 @@
 
 stdenv.mkDerivation rec{
   pname = "corectrl";
-  version = "1.4.0";
+  version = "1.4.1";
 
   src = fetchFromGitLab {
     owner = "corectrl";
     repo = "corectrl";
     rev = "v${version}";
-    sha256 = "sha256-zTH7iSPN7VIhXvWFndOulvGnfUZ+uGWnW53WcnSW+e4=";
+    sha256 = "sha256-E2Dqe1IYXjFb/nShQX+ARZW/AWpNonRimb3yQ6/2CFw=";
   };
   patches = [
     ./polkit-dir.patch
diff --git a/pkgs/applications/misc/flashprint/default.nix b/pkgs/applications/misc/flashprint/default.nix
index affc8c5ad2be5..182e219d0e57f 100644
--- a/pkgs/applications/misc/flashprint/default.nix
+++ b/pkgs/applications/misc/flashprint/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "flashprint";
-  version = "5.8.3";
+  version = "5.8.4";
 
   src = fetchurl {
     url = "http://www.ishare3d.com/3dapp/public/FlashPrint-5/FlashPrint/flashprint5_${finalAttrs.version}_amd64.deb";
-    hash = "sha256-6vBEthQD0HM2D+l+2dwWmdU+XPJpcvZQM+2GMuaf5Pw=";
+    hash = "sha256-Gr76yG3Qz7bnbm5YerHbpb+yzqhw1LthUb4qIH03VQw=";
   };
 
   nativeBuildInputs = [ dpkg autoPatchelfHook wrapQtAppsHook ];
diff --git a/pkgs/applications/misc/gmnitohtml/default.nix b/pkgs/applications/misc/gmnitohtml/default.nix
index 837379890b4cb..a1a080ac029ec 100644
--- a/pkgs/applications/misc/gmnitohtml/default.nix
+++ b/pkgs/applications/misc/gmnitohtml/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "gmnitohtml";
-  version = "0.1.2";
+  version = "0.1.3";
 
   src = fetchFromSourcehut {
     owner = "~adnano";
     repo = pname;
     rev = version;
-    hash = "sha256-nKNSLVBBdZI5mkbEUkMv0CIOQIyH3OX+SEFf5O47DFY=";
+    hash = "sha256-9lsZgh/OyxAu1rsixD6XUgQzR1xDGOxGt0sR12zrs2M=";
   };
-  vendorHash = "sha256-Cx8x8AISRVTA4Ufd73vOVky97LX23NkizHDingr/zVk=";
+  vendorHash = "sha256-ppplXXqb2DM/AU+B+LefndrBiiTgCRNw6hEupfeWr+o=";
 
   ldflags = [ "-s" "-w" ];
 
@@ -18,11 +18,11 @@ buildGoModule rec {
   nativeBuildInputs = [ scdoc installShellFiles ];
 
   postBuild = ''
-    make gmnitohtml.1
+    make docs
   '';
 
   postInstall = ''
-    installManPage gmnitohtml.1
+    installManPage docs/gmnitohtml.1
   '';
 
   doInstallCheck = true;
diff --git a/pkgs/applications/misc/gnome-firmware/default.nix b/pkgs/applications/misc/gnome-firmware/default.nix
index 4f94a5bc7f6b9..16749bc2292d2 100644
--- a/pkgs/applications/misc/gnome-firmware/default.nix
+++ b/pkgs/applications/misc/gnome-firmware/default.nix
@@ -20,14 +20,14 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-firmware";
-  version = "45.0";
+  version = "46.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = "gnome-firmware";
     rev = version;
-    sha256 = "sha256-KVyxOl7RdL80ZiEyiT+XGa/6Ss2g+5y+LIrR9TSRE+I=";
+    sha256 = "sha256-tEMSlKsqqPMZA0Gr89+u3dmAmZ7ffQm/2i1AB93y05E=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/gpxsee/default.nix b/pkgs/applications/misc/gpxsee/default.nix
index 947c18050ea76..b6e6067875328 100644
--- a/pkgs/applications/misc/gpxsee/default.nix
+++ b/pkgs/applications/misc/gpxsee/default.nix
@@ -18,13 +18,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "gpxsee";
-  version = "13.19";
+  version = "13.20";
 
   src = fetchFromGitHub {
     owner = "tumic0";
     repo = "GPXSee";
     rev = finalAttrs.version;
-    hash = "sha256-Q/Na+uc6a+OSLvJK75MEIxgdJhg/At830SBrix38Qj8=";
+    hash = "sha256-zZjE1mXZPPda4CjkOeKtLvFZO31ta4kucpzsriR2+Nw=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/misc/gum/default.nix b/pkgs/applications/misc/gum/default.nix
index 258079f61c93d..d4a67e5f8a87d 100644
--- a/pkgs/applications/misc/gum/default.nix
+++ b/pkgs/applications/misc/gum/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gum";
-  version = "0.14.0";
+  version = "0.14.1";
 
   src = fetchFromGitHub {
     owner = "charmbracelet";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-TpLaZ/935S57K60NdgJXVY+YQEedralZMoQHWRgkH+A=";
+    hash = "sha256-rQSSbDHMSWJDSxn/SNNMaOrdZJUhQPnZutmpY9828t0=";
   };
 
-  vendorHash = "sha256-UgpOHZ/CEnGsmUTyNrhh+qDmKEplr18b/OrO2qcIhF4=";
+  vendorHash = "sha256-pkQ8UvWLIWH8gXux/dd0HLdiz7RDrmFJ8SX63Q+nNyw=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/applications/misc/kiln/default.nix b/pkgs/applications/misc/kiln/default.nix
index cafa43fa4f8cf..14cf734d9860a 100644
--- a/pkgs/applications/misc/kiln/default.nix
+++ b/pkgs/applications/misc/kiln/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "kiln";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchFromSourcehut {
     owner = "~adnano";
     repo = "kiln";
     rev = version;
-    hash = "sha256-BMYySYbV4Exl0gCUt+95FnOoIhKM1UO4cw8gCw3Zf9M=";
+    hash = "sha256-BbKd+0Dmo6RaoS0N7rQmSGJasuJb6dl43GZ7LdMBy/o=";
   };
 
   nativeBuildInputs = [ scdoc installShellFiles ];
 
-  vendorHash = "sha256-C1ueL/zmPzFbpNo5BF56/t74nwCUvb2Vu1exssPqOPE=";
+  vendorHash = "sha256-3s1+/RxOTNVFX9FnS94jLVGSr5IjZC/XucmnkxHhk5Q=";
 
   postInstall = ''
     scdoc < docs/kiln.1.scd > docs/kiln.1
diff --git a/pkgs/applications/misc/oxker/default.nix b/pkgs/applications/misc/oxker/default.nix
index 9e7c983d48018..081240b155d57 100644
--- a/pkgs/applications/misc/oxker/default.nix
+++ b/pkgs/applications/misc/oxker/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "oxker";
-  version = "0.6.3";
+  version = "0.6.4";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-L03r4PHCu+jsUC5vVSG77SR2ak/AsuVAhTd7P1WibAk=";
+    sha256 = "sha256-dBehxqr/UCXIQDMrGFN6ID+v0NYi50JTHuML3su2O0A=";
   };
 
-  cargoHash = "sha256-5UxbZZdVioy1OZCbE6qESGKVnVT6TS4VHzsKlQ8XP2c=";
+  cargoHash = "sha256-wI7yqRvaszBP4OtlWbWIZ9RLf5y7dx2KufYLaK+PWps=";
 
   meta = with lib; {
     description = "A simple tui to view & control docker containers";
diff --git a/pkgs/applications/misc/pagefind/default.nix b/pkgs/applications/misc/pagefind/default.nix
index d1ae9f68270ec..2da4e5eb7eb10 100644
--- a/pkgs/applications/misc/pagefind/default.nix
+++ b/pkgs/applications/misc/pagefind/default.nix
@@ -96,7 +96,6 @@ rustPlatform.buildRustPackage rec {
     echo entering pagefind_web...
     (
       cd pagefind_web
-      export RUSTFLAGS="-C linker=lld"
       bash ./local_build.sh
     )
 
diff --git a/pkgs/applications/misc/pdfslicer/default.nix b/pkgs/applications/misc/pdfslicer/default.nix
index d856dfaca8cb3..154a2ed837e3a 100644
--- a/pkgs/applications/misc/pdfslicer/default.nix
+++ b/pkgs/applications/misc/pdfslicer/default.nix
@@ -45,6 +45,10 @@ stdenv.mkDerivation rec {
     qpdf
   ];
 
+  CXXFLAGS =
+    # Pending upstream compatibility with GCC 13
+    lib.optional (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "13") "-Wno-changes-meaning";
+
   meta = with lib; {
     description = "A simple application to extract, merge, rotate and reorder pages of PDF documents";
     homepage = "https://junrrein.github.io/pdfslicer/";
diff --git a/pkgs/applications/misc/phoc/default.nix b/pkgs/applications/misc/phoc/default.nix
index 534556e231dec..7f75f856e7fdb 100644
--- a/pkgs/applications/misc/phoc/default.nix
+++ b/pkgs/applications/misc/phoc/default.nix
@@ -13,6 +13,7 @@
 , gnome-desktop
 , glib
 , gtk3
+, json-glib
 , wayland
 , libdrm
 , libxkbcommon
@@ -51,6 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
     gnome-desktop
     # For keybindings settings schemas
     gnome.mutter
+    json-glib
     wayland
     finalAttrs.wlroots
     xorg.xcbutilwm
diff --git a/pkgs/applications/misc/remnote/default.nix b/pkgs/applications/misc/remnote/default.nix
index 198922f1876c8..f09a0181e71fa 100644
--- a/pkgs/applications/misc/remnote/default.nix
+++ b/pkgs/applications/misc/remnote/default.nix
@@ -1,50 +1,25 @@
-{ lib, stdenv, fetchurl, appimageTools, makeDesktopItem }:
-
-stdenv.mkDerivation (finalAttrs: let
-  inherit (finalAttrs) pname version src appexec icon desktopItem;
-
-in
 {
+  lib,
+  fetchurl,
+  appimageTools,
+}:
+let
   pname = "remnote";
-  version = "1.16.4";
-
+  version = "1.16.18";
   src = fetchurl {
-    url = "https://download.remnote.io/remnote-desktop/RemNote-${version}.AppImage";
-    hash = "sha256-dgbQ0cbPq7BSQ9VwwH6+GoAxb85HDxRixfjeDJBtOrg=";
-  };
-
-  appexec = appimageTools.wrapType2 {
-    inherit pname version src;
-  };
-
-  icon = fetchurl {
-    url = "https://www.remnote.io/icon.png";
-    hash = "sha256-r5D7fNefKPdjtmV7f/88Gn3tqeEG8LGuD4nHI/sCk94=";
+    url = "https://download2.remnote.io/remnote-desktop2/RemNote-${version}.AppImage";
+    hash = "sha256-ps7Rl1oA2QOPvO2XeCY8DrWtCV9WPlX9jbhypz2ZARA=";
   };
-
-  desktopItem = makeDesktopItem {
-    type = "Application";
-    name = "remnote";
-    desktopName = "RemNote";
-    comment = "Spaced Repetition";
-    icon = "remnote";
-    exec = "remnote %u";
-    categories = [ "Office" ];
-    mimeTypes = [ "x-scheme-handler/remnote" "x-scheme-handler/rn" ];
-  };
-
-  dontUnpack = true;
-  dontConfigure = true;
-  dontBuild = true;
-
-  installPhase = ''
-    runHook preInstall
-
-    install -Dm755 ${appexec}/bin/remnote $out/bin/remnote
-    install -Dm444 "${desktopItem}/share/applications/"* -t $out/share/applications/
-    install -Dm444 ${icon} $out/share/pixmaps/remnote.png
-
-    runHook postInstall
+  appimageContents = appimageTools.extractType2 { inherit pname version src; };
+in
+appimageTools.wrapType2 {
+  inherit pname version src;
+
+  extraInstallCommands = ''
+    install -Dm444 ${appimageContents}/remnote.desktop -t $out/share/applications
+    substituteInPlace $out/share/applications/remnote.desktop \
+      --replace-fail 'Exec=AppRun --no-sandbox %U' 'Exec=remnote %u'
+    install -Dm444 ${appimageContents}/remnote.png -t $out/share/pixmaps
   '';
 
   meta = with lib; {
@@ -55,4 +30,4 @@ in
     platforms = [ "x86_64-linux" ];
     mainProgram = "remnote";
   };
-})
+}
diff --git a/pkgs/applications/misc/slippy/default.nix b/pkgs/applications/misc/slippy/default.nix
index 40de95838ad5b..cf5cd1ff0b3db 100644
--- a/pkgs/applications/misc/slippy/default.nix
+++ b/pkgs/applications/misc/slippy/default.nix
@@ -53,11 +53,6 @@ rustPlatform.buildRustPackage rec {
     darwin.apple_sdk.frameworks.Security
   ];
 
-  # Cargo.lock is outdated
-  postConfigure = ''
-    cargo metadata --offline
-  '';
-
   meta = with lib; {
     description = "Markdown slideshows in Rust";
     homepage = "https://github.com/axodotdev/slippy";
diff --git a/pkgs/applications/misc/twitch-chat-downloader/default.nix b/pkgs/applications/misc/twitch-chat-downloader/default.nix
index 459a47bfcab09..922c925cbb0c3 100644
--- a/pkgs/applications/misc/twitch-chat-downloader/default.nix
+++ b/pkgs/applications/misc/twitch-chat-downloader/default.nix
@@ -1,6 +1,6 @@
 { lib
 , buildPythonApplication
-, fetchPypi
+, fetchFromGitHub
 , iso8601
 , progressbar2
 , requests
@@ -8,15 +8,16 @@
 
 buildPythonApplication rec {
   pname = "twitch-chat-downloader";
-  version = "2.5.3";
+  version = "2.5.4";
 
   # NOTE: Using maintained fork because upstream has stopped working, and it has
   # not been updated in a while.
   # https://github.com/PetterKraabol/Twitch-Chat-Downloader/issues/142
-  src = fetchPypi {
-    inherit version;
-    pname = "tdh-tcd";
-    sha256 = "sha256-dvj0HoF/2n5aQGMOD8UYY4EZegQwThPy1XJFvXyRT4Q=";
+  src = fetchFromGitHub {
+    owner = "TheDrHax";
+    repo = "twitch-chat-downloader";
+    rev = version;
+    hash = "sha256-mV60ygrtQa9ZkJ2CImhAV59ckCJ7vJSA9cWkYE2xo1M=";
   };
 
   propagatedBuildInputs = [
@@ -34,6 +35,6 @@ buildPythonApplication rec {
     mainProgram = "tcd";
     homepage = "https://github.com/TheDrHax/Twitch-Chat-Downloader";
     license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ assistant ];
   };
 }
diff --git a/pkgs/applications/misc/uni/default.nix b/pkgs/applications/misc/uni/default.nix
index 57f88ab6eafef..5773c13ae68e8 100644
--- a/pkgs/applications/misc/uni/default.nix
+++ b/pkgs/applications/misc/uni/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "uni";
-  version = "2.6.0";
+  version = "2.7.0";
 
   src = fetchFromGitHub {
     owner = "arp242";
     repo = "uni";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Ij/jUbXl3GkeNZmGJ82i++6VkOW46YFI9m83otY6M7Q=";
+    hash = "sha256-ociPkuRtpBS+x1zSVNYk8oqAsJZGv31/TUUUlBOYhJA=";
   };
 
-  vendorHash = "sha256-88SSrGvZSs6Opi3IKSNNqptuOWMmtTQ4ZDR7ViuGugk=";
+  vendorHash = "sha256-/PvBn2RRYuVpjnrIL1xAcVqAKZuIV2KTSyVtBW1kqj4=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/applications/misc/waylock/update.nu b/pkgs/applications/misc/waylock/update.nu
deleted file mode 100755
index 514a755db1a32..0000000000000
--- a/pkgs/applications/misc/waylock/update.nu
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -i nu -p nushell common-updater-scripts
-
-let latest_tag = list-git-tags --url=https://codeberg.org/ifreund/waylock | lines | sort --natural | str replace v '' | last
-update-source-version waylock $latest_tag
diff --git a/pkgs/applications/networking/blocky/default.nix b/pkgs/applications/networking/blocky/default.nix
index 6d2bf82cbb7fb..47e16239f8445 100644
--- a/pkgs/applications/networking/blocky/default.nix
+++ b/pkgs/applications/networking/blocky/default.nix
@@ -6,20 +6,20 @@
 
 buildGoModule rec {
   pname = "blocky";
-  version = "0.23";
+  version = "0.24";
 
   src = fetchFromGitHub {
     owner = "0xERR0R";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-IB5vi+nFXbV94YFtY2eMKTgzUgX8q8i8soSrso2zaD4=";
+    hash = "sha256-K+Zdb6l2WUhxVm/gi9U2vVR69bxr2ntLyIrkwTuc0Do=";
   };
 
   # needs network connection and fails at
   # https://github.com/0xERR0R/blocky/blob/development/resolver/upstream_resolver_test.go
   doCheck = false;
 
-  vendorHash = "sha256-h1CkvI7M1kt2Ix3D8+gDl97CFElV+0/9Eram1burOaM=";
+  vendorHash = "sha256-I4UXTynulsRuu9U8tsLbPQO1MMPfUC5dAZE420sW1sU=";
 
   ldflags = [ "-s" "-w" "-X github.com/0xERR0R/blocky/util.Version=${version}" ];
 
diff --git a/pkgs/applications/networking/browsers/brave/default.nix b/pkgs/applications/networking/browsers/brave/default.nix
index acd1b4d8373f5..e63bda1235723 100644
--- a/pkgs/applications/networking/browsers/brave/default.nix
+++ b/pkgs/applications/networking/browsers/brave/default.nix
@@ -6,17 +6,17 @@ callPackage ./make-brave.nix (removeAttrs args [ "callPackage" ])
     if stdenv.isAarch64 then
       {
         pname = "brave";
-        version = "1.66.110";
-        url = "https://github.com/brave/brave-browser/releases/download/v1.66.110/brave-browser_1.66.110_arm64.deb";
-        hash = "sha256-yElWlzGdI+mopmPgXTABXncoufojHngRX88TCy3AE+E=";
+        version = "1.66.115";
+        url = "https://github.com/brave/brave-browser/releases/download/v1.66.115/brave-browser_1.66.115_arm64.deb";
+        hash = "sha256-zOrulR0a/iRYtjdFiyN0V6q0KktD7G0ZrEYSXfIwaL8=";
         platform = "aarch64-linux";
       }
     else if stdenv.isx86_64 then
       {
         pname = "brave";
-        version = "1.66.110";
-        url = "https://github.com/brave/brave-browser/releases/download/v1.66.110/brave-browser_1.66.110_amd64.deb";
-        hash = "sha256-2KtTI9QODfQR25YzXJMXJspuzCS11FpDx2L1B8DWmmc=";
+        version = "1.66.115";
+        url = "https://github.com/brave/brave-browser/releases/download/v1.66.115/brave-browser_1.66.115_amd64.deb";
+        hash = "sha256-TMQips7dyxKfYEin7QJCV0ru4NHi4j3DjLh2fmzuYeQ=";
         platform = "x86_64-linux";
       }
     else
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
index e3bf7d7c09444..facc0227abd0c 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.nix
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
@@ -1,11 +1,11 @@
 {
   stable = {
     chromedriver = {
-      hash_darwin = "sha256-DX0J3xeOK4Dy4BAjbrbu1rnIkmF8nlmy9tMaQhLsFcU=";
+      hash_darwin = "sha256-1gi+hWrVL+mBB8pHMXnX/8kzRCQqGuut/+wO/9yBABs=";
       hash_darwin_aarch64 =
-        "sha256-hRJeaeQS30srO5M1Gi43VYR/KrjNAhH0XozkEzvcbA0=";
-      hash_linux = "sha256-CcBQhIsK7mL7VNJCs6ynhrQeXPuB793DysyV1nj90mM=";
-      version = "125.0.6422.76";
+        "sha256-skYFjXBvv+2u/K770Dd3uxFYFer6GGx/EgWfAgzE9pI=";
+      hash_linux = "sha256-67rXlDJeDSpcpEhNQq0rVS2bSWPy3GXVnTo6dwKAnZU=";
+      version = "125.0.6422.78";
     };
     deps = {
       gn = {
@@ -15,8 +15,8 @@
         version = "2024-04-10";
       };
     };
-    hash = "sha256-m7WeRloS6tGH2AwhkNicpqThUQmS+9w2xFS2dbmu1vw=";
-    version = "125.0.6422.76";
+    hash = "sha256-EA8TzemtndFb8qAp4XWNjwWmNRz/P4Keh3k1Cn9qLEU=";
+    version = "125.0.6422.112";
   };
   ungoogled-chromium = {
     deps = {
@@ -27,11 +27,11 @@
         version = "2024-04-10";
       };
       ungoogled-patches = {
-        hash = "sha256-bGc8hQnuiGot0kThSAi4AFAwmvrNPs1bR7oZx2XoAGo=";
-        rev = "125.0.6422.76-1";
+        hash = "sha256-vHnXIrDdHGIe8byb41CiEWq3FPTecKg006dU7+iESKA=";
+        rev = "125.0.6422.112-1";
       };
     };
-    hash = "sha256-m7WeRloS6tGH2AwhkNicpqThUQmS+9w2xFS2dbmu1vw=";
-    version = "125.0.6422.76";
+    hash = "sha256-EA8TzemtndFb8qAp4XWNjwWmNRz/P4Keh3k1Cn9qLEU=";
+    version = "125.0.6422.112";
   };
 }
diff --git a/pkgs/applications/networking/browsers/floorp/default.nix b/pkgs/applications/networking/browsers/floorp/default.nix
index 7b015bafbb0fa..30c7d10fb025e 100644
--- a/pkgs/applications/networking/browsers/floorp/default.nix
+++ b/pkgs/applications/networking/browsers/floorp/default.nix
@@ -7,7 +7,7 @@
 
 ((buildMozillaMach rec {
   pname = "floorp";
-  packageVersion = "11.13.2";
+  packageVersion = "11.13.3";
   applicationName = "Floorp";
   binaryName = "floorp";
   branding = "browser/branding/official";
@@ -22,7 +22,7 @@
     repo = "Floorp";
     fetchSubmodules = true;
     rev = "v${packageVersion}";
-    hash = "sha256-sFtGtxk3vdR5JoZb1yiITybIfGmOYzKLb9NtbhWjBt8=";
+    hash = "sha256-9EDTVckSqv/nyDi4qjMd54I69WiqM8v6om7zQLT+pQc=";
   };
 
   extraConfigureFlags = [
diff --git a/pkgs/applications/networking/browsers/netsurf/libparserutils.nix b/pkgs/applications/networking/browsers/netsurf/libparserutils.nix
index a7db88925768e..73c8448f2604d 100644
--- a/pkgs/applications/networking/browsers/netsurf/libparserutils.nix
+++ b/pkgs/applications/networking/browsers/netsurf/libparserutils.nix
@@ -3,7 +3,7 @@
 , fetchurl
 , perl
 , buildsystem
-, iconv
+, libiconv
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -18,7 +18,8 @@ stdenv.mkDerivation (finalAttrs: {
   buildInputs = [
     perl
     buildsystem
-    iconv
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
+    libiconv
   ];
 
   makeFlags = [
diff --git a/pkgs/applications/networking/browsers/palemoon/bin.nix b/pkgs/applications/networking/browsers/palemoon/bin.nix
index 3a449623a0f61..d7ba0679e080c 100644
--- a/pkgs/applications/networking/browsers/palemoon/bin.nix
+++ b/pkgs/applications/networking/browsers/palemoon/bin.nix
@@ -215,7 +215,7 @@ stdenv.mkDerivation (finalAttrs: {
         # TODO free, redistributable? Has strict limitations on what modifications may be done & shipped by packagers
       }
     ];
-    maintainers = with maintainers; [ AndersonTorres OPNA2608 ];
+    maintainers = with maintainers; [ OPNA2608 ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     mainProgram = "palemoon";
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/browsers/polypane/default.nix b/pkgs/applications/networking/browsers/polypane/default.nix
index d00ce931a26fc..46e09803dbf70 100644
--- a/pkgs/applications/networking/browsers/polypane/default.nix
+++ b/pkgs/applications/networking/browsers/polypane/default.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "polypane";
-  version = "19.0.1";
+  version = "19.0.2";
 
   src = fetchurl {
     url = "https://github.com/firstversionist/${pname}/releases/download/v${version}/${pname}-${version}.AppImage";
     name = "${pname}-${version}.AppImage";
-    sha256 = "sha256-wy+MzuGQ1+Ayj6SgyItKdy6nldTBy3p24xWlgFwcW+0=";
+    sha256 = "sha256-MyQiq2Lo/XtmJ7D1VZXncYWq53Bu3O3WBT/PkdJuEZM=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/applications/networking/cluster/argo/default.nix b/pkgs/applications/networking/cluster/argo/default.nix
index 52012a3617090..e66bfb0a9a10b 100644
--- a/pkgs/applications/networking/cluster/argo/default.nix
+++ b/pkgs/applications/networking/cluster/argo/default.nix
@@ -34,16 +34,16 @@ let
 in
 buildGoModule rec {
   pname = "argo";
-  version = "3.5.6";
+  version = "3.5.7";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo";
     rev = "refs/tags/v${version}";
-    hash = "sha256-CcPY9eEpvDTIxilxHI+VBVVRxZy/82fi6uayBrGR/Dc=";
+    hash = "sha256-OJkC+uqOuXA6NBpVxmQAFs+N99d4Zonh9dcZnuB26Ts=";
   };
 
-  vendorHash = "sha256-ttpDGeANQyrTfRyNGFkmJFpE+nnjz8PZN+0HScBJ1yg=";
+  vendorHash = "sha256-O7Lv5RLcqB4JbdXHKXFWkg/dvids8QH619urpeACuN8=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/argocd/default.nix b/pkgs/applications/networking/cluster/argocd/default.nix
index 64cd0aaa24137..175bdfdcb90a0 100644
--- a/pkgs/applications/networking/cluster/argocd/default.nix
+++ b/pkgs/applications/networking/cluster/argocd/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "argocd";
-  version = "2.11.0";
+  version = "2.11.2";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo-cd";
     rev = "v${version}";
-    hash = "sha256-HVkR5sG3CfTW56pTB15S+w4kwbv7he9Be6RKmpu+E4E=";
+    hash = "sha256-lePMdjWq4qFQcxFZzfLyTsMwgcmjIoBmosZs5G4CWvc=";
   };
 
   proxyVendor = true; # darwin/linux hash mismatch
-  vendorHash = "sha256-c0fTUU5zXI0QDo/bAL4v6zjEp0rNvCpQFAGwpgDWDFY=";
+  vendorHash = "sha256-atgNLlHoX+KBtJcYZNqNsYBK0cVGI/k2mXvmcr6wWN4=";
 
   # Set target as ./cmd per cli-local
   # https://github.com/argoproj/argo-cd/blob/master/Makefile#L227
diff --git a/pkgs/applications/networking/cluster/atlantis/default.nix b/pkgs/applications/networking/cluster/atlantis/default.nix
index 799633712128b..0f1eb350b9fe1 100644
--- a/pkgs/applications/networking/cluster/atlantis/default.nix
+++ b/pkgs/applications/networking/cluster/atlantis/default.nix
@@ -2,20 +2,20 @@
 
 buildGoModule rec {
   pname = "atlantis";
-  version = "0.27.3";
+  version = "0.28.0";
 
   src = fetchFromGitHub {
     owner = "runatlantis";
     repo = "atlantis";
     rev = "v${version}";
-    hash = "sha256-BC4WSyKnDM9RhM+2iU9dBZLbtxDM/UoMmIDTP6DB3no=";
+    hash = "sha256-ROve0R2k65CChu1nlkObvipxi66TA2XTTRmQ8qpJLO8=";
   };
   ldflags = [
     "-X=main.version=${version}"
     "-X=main.date=1970-01-01T00:00:00Z"
   ];
 
-  vendorHash = "sha256-6Di8XLX1rOjVnIA+5kQB59aZ3qRmkjciWD0+GD9Lpzw=";
+  vendorHash = "sha256-eYS7dO9BCnn9p1HgDOt4vliPYLsR0TaNwSpUoMO6eAk=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/networking/cluster/atmos/default.nix b/pkgs/applications/networking/cluster/atmos/default.nix
index 2163adf6d5b26..9e5dc34dcef36 100644
--- a/pkgs/applications/networking/cluster/atmos/default.nix
+++ b/pkgs/applications/networking/cluster/atmos/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "atmos";
-  version = "1.72.0";
+  version = "1.73.0";
 
   src = fetchFromGitHub {
     owner = "cloudposse";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-d4TgVSXTqrzgTdpGl1uXIdEvwb0EIgzqiEjOaWYAZgk=";
+    sha256 = "sha256-rJGhDFVvlVtQboqts8+c6JYTRHC0IwrOm5BYVA20yrY=";
   };
 
-  vendorHash = "sha256-T3FvJfyGseW5vwN/mMCFEjpcpW90MG8QPkmaXJafD4s=";
+  vendorHash = "sha256-11r4ph0i05lHXKNy8iMNKqCVzeQbPtHwNPiQU7759rQ=";
 
   ldflags = [ "-s" "-w" "-X github.com/cloudposse/atmos/cmd.Version=v${version}" ];
 
diff --git a/pkgs/applications/networking/cluster/civo/default.nix b/pkgs/applications/networking/cluster/civo/default.nix
index b3443453245dc..0397fa3d08cc2 100644
--- a/pkgs/applications/networking/cluster/civo/default.nix
+++ b/pkgs/applications/networking/cluster/civo/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "civo";
-  version = "1.0.83";
+  version = "1.0.84";
 
   src = fetchFromGitHub {
     owner  = "civo";
     repo   = "cli";
     rev    = "v${version}";
-    sha256 = "sha256-jRs8RMdTq5xylcYBN59+JzXlJlTJRp7bJVMvEmvzSnc=";
+    sha256 = "sha256-LKdH9gF4GOYenjlSHQalA7EUY1Lu6Bz6oMpAkqHnkMo=";
   };
 
-  vendorHash = "sha256-NYNp4KGcVma4ltkq2SJZJOaeKS0j/X2TlUrOnptxiYE=";
+  vendorHash = "sha256-bEyknQc7TCxbWj7VsjJ2WGz65BG8HaP8ldL2kb+bbtc=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/networking/cluster/gatekeeper/default.nix b/pkgs/applications/networking/cluster/gatekeeper/default.nix
index 5ddb8409d31f6..604ee8d30010e 100644
--- a/pkgs/applications/networking/cluster/gatekeeper/default.nix
+++ b/pkgs/applications/networking/cluster/gatekeeper/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "gatekeeper";
-  version = "3.16.0";
+  version = "3.16.3";
 
   src = fetchFromGitHub {
     owner = "open-policy-agent";
     repo = "gatekeeper";
     rev = "v${version}";
-    hash = "sha256-IIqucBPuEHymfg7nLmxXMrq1aaB6SFPrczPj4BH8Zyw=";
+    hash = "sha256-G/ELuaUSlyeNcN6v1/xubF+VjvltdLKYmwlYWKzQiuw=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/networking/cluster/helm/default.nix b/pkgs/applications/networking/cluster/helm/default.nix
index 18e91c340b343..f005f317debc4 100644
--- a/pkgs/applications/networking/cluster/helm/default.nix
+++ b/pkgs/applications/networking/cluster/helm/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kubernetes-helm";
-  version = "3.15.0";
+  version = "3.15.1";
 
   src = fetchFromGitHub {
     owner = "helm";
     repo = "helm";
     rev = "v${version}";
-    sha256 = "sha256-0YBpxXM/+mU0y1lf/h3xFbF5nfbjk6D9qT10IMR9XUY=";
+    sha256 = "sha256-DTHohUkL4ophYeXSZ/acle6Ruum9IIHxnu7gvPOOaYY=";
   };
   vendorHash = "sha256-VPahAeeRz3fk1475dlCofiLVAKXMhpvspENmQmlPyPM=";
 
diff --git a/pkgs/applications/networking/cluster/helmfile/default.nix b/pkgs/applications/networking/cluster/helmfile/default.nix
index f0fa298e77862..a541f60a18ed5 100644
--- a/pkgs/applications/networking/cluster/helmfile/default.nix
+++ b/pkgs/applications/networking/cluster/helmfile/default.nix
@@ -8,16 +8,16 @@
 
 buildGo122Module rec {
   pname = "helmfile";
-  version = "0.162.0";
+  version = "0.165.0";
 
   src = fetchFromGitHub {
     owner = "helmfile";
     repo = "helmfile";
     rev = "v${version}";
-    hash = "sha256-BiouIaiYveQe0sTgvuf1R1S0qydLpoxWl958zyVFvWE=";
+    hash = "sha256-fXrfthjWaCo0p7NwP9EWa0uFeCCHInzi7h2tgawHlh0=";
   };
 
-  vendorHash = "sha256-z6UfyruXLzcH9iLgsM6Wmb1i8PWrroAbhGi2fphYBoA=";
+  vendorHash = "sha256-nWfj/E3Lg58wZ27LEI91+Ns9lj+unK6xYTEcxdAFOXI=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/k3sup/default.nix b/pkgs/applications/networking/cluster/k3sup/default.nix
index d5ac78ea5c4c6..75fcfd3888ef0 100644
--- a/pkgs/applications/networking/cluster/k3sup/default.nix
+++ b/pkgs/applications/networking/cluster/k3sup/default.nix
@@ -9,13 +9,13 @@
 
 buildGoModule rec {
   pname = "k3sup";
-  version = "0.13.0";
+  version = "0.13.5";
 
   src = fetchFromGitHub {
     owner = "alexellis";
     repo = "k3sup";
     rev = version;
-    sha256 = "sha256-GppNYNqX/YqRtCYQIe3t2x6eNJCZc/yi6F2xHvA3YXE=";
+    sha256 = "sha256-Psuv6QUzRMyZTAFX+oWdgztA+F1sm0J5MAITc3uNM1A=";
   };
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
@@ -23,7 +23,7 @@ buildGoModule rec {
   vendorHash = null;
 
   postConfigure = ''
-    substituteInPlace vendor/github.com/alexellis/go-execute/pkg/v1/exec.go \
+    substituteInPlace vendor/github.com/alexellis/go-execute/v2/exec.go \
       --replace "/bin/bash" "${bash}/bin/bash"
   '';
 
diff --git a/pkgs/applications/networking/cluster/kubebuilder/default.nix b/pkgs/applications/networking/cluster/kubebuilder/default.nix
index 7885df6af03f9..f33da76e58a0a 100644
--- a/pkgs/applications/networking/cluster/kubebuilder/default.nix
+++ b/pkgs/applications/networking/cluster/kubebuilder/default.nix
@@ -12,13 +12,13 @@
 
 buildGoModule rec {
   pname = "kubebuilder";
-  version = "3.15.0";
+  version = "3.15.1";
 
   src = fetchFromGitHub {
     owner = "kubernetes-sigs";
     repo = "kubebuilder";
     rev = "v${version}";
-    hash = "sha256-YaISsW+USP9M4Mblluo+SXSwGspiTiiPFA3VvLmhqaQ=";
+    hash = "sha256-Fc9EzzOULRfzQENHd/7aXWqLeoPjNsseqpZETNGvV6U=";
   };
 
   vendorHash = "sha256-g9QjalRLc2NUsyd7Do1PWw9oD9ATuJGMRaqSaC6AcD0=";
diff --git a/pkgs/applications/networking/cluster/kubecm/default.nix b/pkgs/applications/networking/cluster/kubecm/default.nix
index 5fe9f237b6faf..5be7992474d96 100644
--- a/pkgs/applications/networking/cluster/kubecm/default.nix
+++ b/pkgs/applications/networking/cluster/kubecm/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kubecm";
-  version = "0.28.0";
+  version = "0.29.0";
 
   src = fetchFromGitHub {
     owner = "sunny0826";
     repo = "kubecm";
     rev = "v${version}";
-    hash = "sha256-v2frNvJUvDjPhV1RCR3DHk04kYEqP6hMXeA4j3cWlss=";
+    hash = "sha256-zspAtLomgdIymP3xj3VG2rAhMJAquJCNWRdAM5wPcLg=";
   };
 
-  vendorHash = "sha256-uM9/rqu5WOXK6bqxhtmje+Zd9dtdv3qwt+Xr0SJHjPs=";
+  vendorHash = "sha256-eWKGmVkvMP/vN03pWiShPzZN0vSkhneSK48S4AVBdkM=";
   ldflags = [ "-s" "-w" "-X github.com/sunny0826/kubecm/version.Version=${version}"];
 
   doCheck = false;
diff --git a/pkgs/applications/networking/cluster/kubecolor/default.nix b/pkgs/applications/networking/cluster/kubecolor/default.nix
index 589b93cd2f725..ecd24e4afbe83 100644
--- a/pkgs/applications/networking/cluster/kubecolor/default.nix
+++ b/pkgs/applications/networking/cluster/kubecolor/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kubecolor";
-  version = "0.3.2";
+  version = "0.3.3";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-9fL1zuhQ1B8QpJXcGVxg8mqIQoM5ZhwuE000rDcrrw0=";
+    sha256 = "sha256-VGpyYc6YmRr58OSRQvWTo4f8ku8L1/gn0ilbQSotO2k=";
   };
 
   vendorHash = "sha256-Gzz+mCEMQCcLwTiGMB8/nXk7HDAEGkEapC/VOyXrn/Q=";
diff --git a/pkgs/applications/networking/cluster/kubectl-klock/default.nix b/pkgs/applications/networking/cluster/kubectl-klock/default.nix
index 06ede90ffb67c..7bb18112e7727 100644
--- a/pkgs/applications/networking/cluster/kubectl-klock/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl-klock/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "kubectl-klock";
-  version = "0.6.1";
+  version = "0.7.0";
 
   nativeBuildInputs = [ makeWrapper ];
 
@@ -10,10 +10,10 @@ buildGoModule rec {
     owner = "applejag";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-QzleoHRQ/A5ImMl43kze5ppUdiLa4n/VT02lMnaXVkg=";
+    hash = "sha256-MmsHxB15gCz2W2QLC6E7Ao+9iLyVaYJatUgPcMuL79M=";
   };
 
-  vendorHash = "sha256-smE8mdyZ8xJOevgHs4+ozS6VOlko+Whhs/37B+hIbxo=";
+  vendorHash = "sha256-lhawUcjB2EULpAFjBM4tdmDo08za2DfyZUvEPo4+LXE=";
 
   postInstall = ''
     makeWrapper $out/bin/kubectl-klock $out/bin/kubectl_complete-klock --add-flags __complete
diff --git a/pkgs/applications/networking/cluster/kubeseal/default.nix b/pkgs/applications/networking/cluster/kubeseal/default.nix
index d6a3f9826dff5..7db64aa5b36d4 100644
--- a/pkgs/applications/networking/cluster/kubeseal/default.nix
+++ b/pkgs/applications/networking/cluster/kubeseal/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kubeseal";
-  version = "0.26.2";
+  version = "0.26.3";
 
   src = fetchFromGitHub {
     owner = "bitnami-labs";
     repo = "sealed-secrets";
     rev = "v${version}";
-    sha256 = "sha256-96yaWHRfEHjXYZ9Hsh9bXk5O5viSOYhmwJ18JCbtv2U=";
+    sha256 = "sha256-2MU1/znfp2LfojfgFPovgcJbZLtqY+6O7YKZNhPIT8k=";
   };
 
-  vendorHash = "sha256-91GKy7tNKSOiJmpArgp56RXegYP7sdGpaRAxS9xwTXA=";
+  vendorHash = "sha256-B50+G29ze1jPBTlFA0nvMfh25t4Xb3YCxEkPkjxKMj0=";
 
   subPackages = [ "cmd/kubeseal" ];
 
diff --git a/pkgs/applications/networking/cluster/kubeshark/default.nix b/pkgs/applications/networking/cluster/kubeshark/default.nix
index a5fd286984c13..020c4df7f3349 100644
--- a/pkgs/applications/networking/cluster/kubeshark/default.nix
+++ b/pkgs/applications/networking/cluster/kubeshark/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kubeshark";
-  version = "52.3.0";
+  version = "52.3.59";
 
   src = fetchFromGitHub {
     owner = "kubeshark";
     repo = "kubeshark";
     rev = "v${version}";
-    hash = "sha256-7tTXhILWnYRFyKBw1Im9Q9/oqlKJAP478qiBEoTUGMc=";
+    hash = "sha256-7IpI9iyeS/2Z4QXomstT4EtNjBl6ud3g2ChC8UmkmZM=";
   };
 
-  vendorHash = "sha256-SmvO9DYOXxnmN2dmHPPOguVwEbWSH/xNLBB+idpzopo=";
+  vendorHash = "sha256-0WRmAqslZj63m+kCFKIBgoRX47ZyRuU7ZihmF6wmZy4=";
 
   ldflags = let t = "github.com/kubeshark/kubeshark"; in [
    "-s" "-w"
diff --git a/pkgs/applications/networking/cluster/kyverno/default.nix b/pkgs/applications/networking/cluster/kyverno/default.nix
index b80e2726bffc8..92c36cce4ec20 100644
--- a/pkgs/applications/networking/cluster/kyverno/default.nix
+++ b/pkgs/applications/networking/cluster/kyverno/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kyverno";
-  version = "1.12.1";
+  version = "1.12.2";
 
   src = fetchFromGitHub {
     owner = "kyverno";
     repo = "kyverno";
     rev = "v${version}";
-    hash = "sha256-2x5xLh+v1/RXG3h93Ff49pT9NwHWNx4tubnmCf0SAdY=";
+    hash = "sha256-gR/gpoldtwW0bVjWr5xwbfcKb6VJ43otWnSFrcYerII=";
   };
 
   ldflags = [
@@ -18,7 +18,7 @@ buildGoModule rec {
     "-X github.com/kyverno/kyverno/pkg/version.BuildTime=1970-01-01_00:00:00"
   ];
 
-  vendorHash = "sha256-5tBHmHfBHTsAVDk3i0z2R2amTfOvWHJutTNW2ofGZuQ=";
+  vendorHash = "sha256-sSsLs3EedStYlMYKFXIMdNHtrG8ijyu9+2MCYjjzZR4=";
 
   subPackages = [ "cmd/cli/kubectl-kyverno" ];
 
diff --git a/pkgs/applications/networking/cluster/pachyderm/default.nix b/pkgs/applications/networking/cluster/pachyderm/default.nix
index 1694359a02b24..092eeb2a9d8ef 100644
--- a/pkgs/applications/networking/cluster/pachyderm/default.nix
+++ b/pkgs/applications/networking/cluster/pachyderm/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "pachyderm";
-  version = "2.9.5";
+  version = "2.10.1";
 
   src = fetchFromGitHub {
     owner = "pachyderm";
     repo = "pachyderm";
     rev = "v${version}";
-    hash = "sha256-9ykJMK51fm36sbICyuHJR7dSRnwIHhaQV2foKOuFmz0=";
+    hash = "sha256-ok3TaQ8Vn+dDnlfJ/5n6qFTkYER/jVhFRPAqzGXp1iI=";
   };
 
-  vendorHash = "sha256-bAB2vMPHIcJaMobPukQyKiCq0Af0n4b5mjImTswGFTo=";
+  vendorHash = "sha256-AxKhxXZQ2sBvXs9C6b7WkjpNsYl6MSO/C2ttmRRtBGw=";
 
   subPackages = [ "src/server/cmd/pachctl" ];
 
diff --git a/pkgs/applications/networking/cluster/rke2/default.nix b/pkgs/applications/networking/cluster/rke2/default.nix
index 99b0998582f4e..2ac749148f0f0 100644
--- a/pkgs/applications/networking/cluster/rke2/default.nix
+++ b/pkgs/applications/networking/cluster/rke2/default.nix
@@ -1,4 +1,11 @@
-{ lib, stdenv, buildGoModule, fetchFromGitHub }:
+{ lib, stdenv, buildGoModule, fetchFromGitHub, makeWrapper, nix-update-script
+
+# Runtime dependencies
+, procps, coreutils, util-linux, ethtool, socat, iptables, bridge-utils, iproute2, kmod, lvm2
+
+# Testing dependencies
+, nixosTests, testers, rke2
+}:
 
 buildGoModule rec {
   pname = "rke2";
@@ -21,14 +28,45 @@ buildGoModule rec {
     sed -e 's/STATIC_FLAGS=.*/STATIC_FLAGS=/g' -i scripts/build-binary
   '';
 
+  nativeBuildInputs = [ makeWrapper ];
+
+  # Important utilities used by the kubelet.
+  # See: https://github.com/kubernetes/kubernetes/issues/26093#issuecomment-237202494
+  # Notice the list in that issue is stale, but as a redundancy reservation.
+  buildInputs = [
+    procps # pidof pkill
+    coreutils # uname touch env nice du
+    util-linux # lsblk fsck mkfs nsenter mount umount
+    ethtool # ethtool
+    socat # socat
+    iptables # iptables iptables-restore iptables-save
+    bridge-utils # brctl
+    iproute2 # ip tc
+    kmod # modprobe
+    lvm2 # dmsetup
+  ];
+
   buildPhase = ''
     DRONE_TAG="v${version}" ./scripts/build-binary
   '';
 
   installPhase = ''
     install -D ./bin/rke2 $out/bin/rke2
+    wrapProgram $out/bin/rke2 \
+      --prefix PATH : ${lib.makeBinPath buildInputs}
   '';
 
+  passthru.updateScript = nix-update-script { };
+
+  passthru.tests = {
+    version = testers.testVersion {
+      package = rke2;
+      version = "v${version}";
+    };
+  } // lib.optionalAttrs stdenv.isLinux {
+    inherit (nixosTests) rke2;
+  };
+
   meta = with lib; {
     homepage = "https://github.com/rancher/rke2";
     description = "RKE2, also known as RKE Government, is Rancher's next-generation Kubernetes distribution.";
@@ -36,6 +74,6 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ zimbatm zygot ];
     mainProgram = "rke2";
-    broken = stdenv.isDarwin;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/networking/cluster/roxctl/default.nix b/pkgs/applications/networking/cluster/roxctl/default.nix
index abcb6fd4299ac..abc77155eb5ce 100644
--- a/pkgs/applications/networking/cluster/roxctl/default.nix
+++ b/pkgs/applications/networking/cluster/roxctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "roxctl";
-  version = "4.3.5";
+  version = "4.4.2";
 
   src = fetchFromGitHub {
     owner = "stackrox";
     repo = "stackrox";
     rev = version;
-    sha256 = "sha256-zTZ03Qtb3ndBf1MunhYS8rzPReExzEPGxCh1JexkwuA=";
+    sha256 = "sha256-OHDQr83EQn0qjObuzldRAa9fDv1itqipkDRcKdt3kxg=";
   };
 
-  vendorHash = "sha256-Sl5eIK8PWeGi2V7q/Qm5Gfjj1A9nQPtM0BGdO6inPxk=";
+  vendorHash = "sha256-SLr7h830lZpou2FyYqqUsYzRsh/QzMgkTArAJjHzCx0=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/networking/cluster/stern/default.nix b/pkgs/applications/networking/cluster/stern/default.nix
index fd4b70de5acd8..eeacf4c0fe3aa 100644
--- a/pkgs/applications/networking/cluster/stern/default.nix
+++ b/pkgs/applications/networking/cluster/stern/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "stern";
-  version = "1.29.0";
+  version = "1.30.0";
 
   src = fetchFromGitHub {
     owner = "stern";
     repo = "stern";
     rev = "v${version}";
-    sha256 = "sha256-8Tvhul7GwVbRJqJenbYID8OY5zGzFhIormUwEtLE0Lw=";
+    sha256 = "sha256-sqRPX+NC58mQi0wvs3u3Lb81LBntaY1FzzlY1TIiz18=";
   };
 
   vendorHash = "sha256-RLcF7KfKtkwB+nWzaQb8Va9pau+TS2uE9AmJ0aFNsik=";
@@ -23,7 +23,7 @@ buildGoModule rec {
     stern = if stdenv.buildPlatform.canExecute stdenv.hostPlatform then "$out" else buildPackages.stern;
   in
     ''
-      for shell in bash zsh; do
+      for shell in bash zsh fish; do
         ${stern}/bin/stern --completion $shell > stern.$shell
         installShellCompletion stern.$shell
       done
diff --git a/pkgs/applications/networking/cluster/temporal-cli/default.nix b/pkgs/applications/networking/cluster/temporal-cli/default.nix
index 2aa978dfb0a99..fe23809bf5d3e 100644
--- a/pkgs/applications/networking/cluster/temporal-cli/default.nix
+++ b/pkgs/applications/networking/cluster/temporal-cli/default.nix
@@ -44,7 +44,7 @@ let
     doCheck = !(stdenv.isDarwin && stdenv.hostPlatform.isx86_64);
 
     preCheck = ''
-      export HOME=$(mktemp -d)
+      export HOME="$(mktemp -d)"
     '';
 
     postInstall = ''
@@ -63,16 +63,16 @@ let
 
   tctl = buildGoModule rec {
     pname = "tctl";
-    version = "1.18.0";
+    version = "1.18.1";
 
     src = fetchFromGitHub {
       owner = "temporalio";
       repo = "tctl";
       rev = "v${version}";
-      hash = "sha256-LcBKkx3mcDOrGT6yJx98CSgxbwskqGPWqOzHWOu6cig=";
+      hash = "sha256-LX4hyPme+mkNmPvrTHIT5Ow3QM8BTAB7MXSY1fa8tSk=";
     };
 
-    vendorHash = "sha256-5wCIY95mJ6+FCln4yBu+fM4ZcsxBGcXkCvxjGzt0+dM=";
+    vendorHash = "sha256-294lnUKnXNrN6fJ+98ub7LwsJ9aT+FzWCB3nryfAlCI=";
 
     inherit overrideModAttrs;
 
@@ -83,7 +83,7 @@ let
     ldflags = [ "-s" "-w" ];
 
     preCheck = ''
-      export HOME=$(mktemp -d)
+      export HOME="$(mktemp -d)"
     '';
 
     postInstall = ''
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix
index 6abdcb2bb30e6..d2a33c129310b 100644
--- a/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/pkgs/applications/networking/cluster/terraform/default.nix
@@ -166,9 +166,9 @@ rec {
   mkTerraform = attrs: pluggable (generic attrs);
 
   terraform_1 = mkTerraform {
-    version = "1.8.3";
-    hash = "sha256-4W1Cs3PAGn43eGDK15qSvN+gLdkkoFIwhejcJsCqcYA=";
-    vendorHash = "sha256-2+ctm1lJjCHITWV7BqoqgBlXKjNT4lueAt4F3UtoL9Q=";
+    version = "1.8.4";
+    hash = "sha256-YCFmjQ/xlyB0spumw8hBUmr9UVC7ZPNGrxYecFKi3aw=";
+    vendorHash = "sha256-PXA2AWq1IFmnqhhU92S9UaIYTUAAn5lsg3S7h5hBOQE=";
     patches = [ ./provider-path-0_15.patch ];
     passthru = {
       inherit plugins;
diff --git a/pkgs/applications/networking/cluster/tftui/default.nix b/pkgs/applications/networking/cluster/tftui/default.nix
index f7faea2dd1956..e72723425f66b 100644
--- a/pkgs/applications/networking/cluster/tftui/default.nix
+++ b/pkgs/applications/networking/cluster/tftui/default.nix
@@ -7,14 +7,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "tftui";
-  version = "0.13.1";
+  version = "0.13.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "idoavrah";
     repo = "terraform-tui";
     rev = "refs/tags/v${version}";
-    hash = "sha256-5eMOd+jpJh5jxthzk5JCl3vvri0PtffolSzdHY/3nbg=";
+    hash = "sha256-/y1dgQtpaIRVvhb/esJns3UPwKU1bAFHSQ8tCWzIuIw=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/applications/networking/cluster/zarf/default.nix b/pkgs/applications/networking/cluster/zarf/default.nix
index 4feb61699e568..e580dd7e6ff27 100644
--- a/pkgs/applications/networking/cluster/zarf/default.nix
+++ b/pkgs/applications/networking/cluster/zarf/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "zarf";
-  version = "0.33.2";
+  version = "0.34.0";
 
   src = fetchFromGitHub {
     owner = "defenseunicorns";
     repo = "zarf";
     rev = "v${version}";
-    hash = "sha256-BafS+++8iTVT38pneqCfAQFg15PpXOW/Bv8anmdHZTg=";
+    hash = "sha256-o3sfvzUCCW7hwNDrWH1IiRyZHkVnxffJdLS8BqzD5Ng=";
   };
 
-  vendorHash = "sha256-4AN/0OgFX+5uymN/QfOr0sZipTmszhieOPmReKciFtg=";
+  vendorHash = "sha256-Co9xKC7J0WGoaYxa+YukrP+6aOuhweZyXaH5wD97ioA=";
   proxyVendor = true;
 
   preBuild = ''
diff --git a/pkgs/applications/networking/coreth/default.nix b/pkgs/applications/networking/coreth/default.nix
index e5af4fa397ed9..519482a1cb7dd 100644
--- a/pkgs/applications/networking/coreth/default.nix
+++ b/pkgs/applications/networking/coreth/default.nix
@@ -6,19 +6,19 @@
 
 buildGoModule rec {
   pname = "coreth";
-  version = "0.13.3";
+  version = "0.13.4";
 
   src = fetchFromGitHub {
     owner = "ava-labs";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-XVACkk/DUI4AIPRSQgu0g9WHmedjqscZbcz84HIi7jY=";
+    hash = "sha256-jksJgWh2FyP2iYOgA9XiRKUpKvINfIv8ini3X36Zy9U=";
   };
 
   # go mod vendor has a bug, see: golang/go#57529
   proxyVendor = true;
 
-  vendorHash = "sha256-zqvo0hZIOyF5Bzig1hi4KRUDETNiiy1Ll/FFO9hRmYU=";
+  vendorHash = "sha256-2shBVIn/qJQlY+f0xsS9NTZkzcWEnhJpEezNYT6+8F4=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/applications/networking/dyndns/dyndnsc/default.nix b/pkgs/applications/networking/dyndns/dyndnsc/default.nix
index 6a9a57d67c3b1..930fc34603192 100644
--- a/pkgs/applications/networking/dyndns/dyndnsc/default.nix
+++ b/pkgs/applications/networking/dyndns/dyndnsc/default.nix
@@ -1,61 +1,83 @@
-{ lib, python3Packages, fetchPypi, stdenv }:
+{
+  lib,
+  stdenv,
+  python3Packages,
+  fetchPypi,
+}:
 
 python3Packages.buildPythonApplication rec {
   pname = "dyndnsc";
   version = "0.6.1";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13078d29eea2f9a4ca01f05676c3309ead5e341dab047e0d51c46f23d4b7fbb4";
+    hash = "sha256-EweNKe6i+aTKAfBWdsMwnq1eNB2rBH4NUcRvI9S3+7Q=";
   };
 
   postPatch = ''
-    substituteInPlace setup.py --replace "bottle==" "bottle>="
+    substituteInPlace setup.py \
+      --replace-fail '"pytest-runner"' ""
   '';
 
-  nativeBuildInputs = with python3Packages; [ pytest-runner ];
-  propagatedBuildInputs = with python3Packages; [
+  pythonRelaxDeps = [ "bottle" ];
+
+  build-system = with python3Packages; [ setuptools ];
+
+  nativeBuildInputs = with python3Packages; [ pythonRelaxDepsHook ];
+
+  dependencies = with python3Packages; [
     daemonocle
     dnspython
+    json-logging
     netifaces
     requests
-    json-logging
     setuptools
   ];
-  nativeCheckInputs = with python3Packages; [ bottle mock pytest-console-scripts pytestCheckHook ];
-
-  disabledTests = [
-    # dnswanip connects to an external server to discover the
-    # machine's IP address.
-    "dnswanip"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # The tests that spawn a server using Bottle cannot be run on
-    # macOS or Windows as the default multiprocessing start method
-    # on those platforms is 'spawn', which requires the code to be
-    # run to be picklable, which this code isn't.
-    # Additionaly, other start methods are unsafe and prone to failure
-    # on macOS; see https://bugs.python.org/issue33725.
-    "BottleServer"
+
+  nativeCheckInputs = with python3Packages; [
+    bottle
+    pytest-console-scripts
+    pytestCheckHook
   ];
+
+  disabledTests =
+    [
+      # dnswanip connects to an external server to discover the
+      # machine's IP address.
+      "dnswanip"
+      # AssertionError
+      "test_null_dummy"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # The tests that spawn a server using Bottle cannot be run on
+      # macOS or Windows as the default multiprocessing start method
+      # on those platforms is 'spawn', which requires the code to be
+      # run to be picklable, which this code isn't.
+      # Additionaly, other start methods are unsafe and prone to failure
+      # on macOS; see https://bugs.python.org/issue33725.
+      "BottleServer"
+    ];
   # Allow tests that bind or connect to localhost on macOS.
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
     description = "Dynamic DNS update client with support for multiple protocols";
-    mainProgram = "dyndnsc";
     longDescription = ''
       Dyndnsc is a command line client for sending updates to Dynamic
-      DNS (DDNS, DynDNS) services.  It supports multiple protocols and
-      services, and it has native support for IPv6.  The configuration
-      file allows using foreign, but compatible services.  Dyndnsc
+      DNS (DDNS, DynDNS) services. It supports multiple protocols and
+      services, and it has native support for IPv6. The configuration
+      file allows using foreign, but compatible services. Dyndnsc
       ships many different IP detection mechanisms, support for
       configuring multiple services in one place and it has a daemon
-      mode for running unattended.  It has a plugin system to provide
+      mode for running unattended. It has a plugin system to provide
       external notification services.
     '';
     homepage = "https://github.com/infothrill/python-dyndnsc";
+    changelog = "https://github.com/infothrill/python-dyndnsc/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ AluisioASG ];
+    mainProgram = "dyndnsc";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/networking/flexget/default.nix b/pkgs/applications/networking/flexget/default.nix
index b2349dff44cfd..8f65d33b429fe 100644
--- a/pkgs/applications/networking/flexget/default.nix
+++ b/pkgs/applications/networking/flexget/default.nix
@@ -6,7 +6,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "flexget";
-  version = "3.11.33";
+  version = "3.11.34";
   pyproject = true;
 
   # Fetch from GitHub in order to use `requirements.in`
@@ -14,7 +14,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "Flexget";
     repo = "Flexget";
     rev = "refs/tags/v${version}";
-    hash = "sha256-kgTlz3cUztIUKKqmUpUpEwu5qyjE0fCarG/EKJ1PoPc=";
+    hash = "sha256-g5TmjR3N/21JgXoRy56PN5A+Jbow2DFaAu0ammLtPxw=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/gns3/server.nix b/pkgs/applications/networking/gns3/server.nix
index 3e4764a145024..c6ba5fe2b93e6 100644
--- a/pkgs/applications/networking/gns3/server.nix
+++ b/pkgs/applications/networking/gns3/server.nix
@@ -47,7 +47,6 @@ python3Packages.buildPythonApplication {
     setuptools
     truststore
     yarl
-    zipstream
   ] ++ lib.optionals (pythonOlder "3.9") [
     importlib-resources
   ];
diff --git a/pkgs/applications/networking/instant-messengers/chatty/default.nix b/pkgs/applications/networking/instant-messengers/chatty/default.nix
index ea43f470e8bb6..c939412e152f0 100644
--- a/pkgs/applications/networking/instant-messengers/chatty/default.nix
+++ b/pkgs/applications/networking/instant-messengers/chatty/default.nix
@@ -15,6 +15,7 @@
 , gnome-desktop
 , gspell
 , gtk4
+, gtksourceview5
 , gst_all_1
 , json-glib
 , libgcrypt
@@ -28,17 +29,17 @@
 , plugins ? [ ]
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "chatty";
-  version = "0.8.2";
+  version = "0.8.3";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = "Chatty";
-    rev = "v${version}";
+    rev = "v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-7SdoN9JjGwELOdISJwS1Afcydp/rE2uq/tHO/UrFKNU=";
+    hash = "sha256-Ywed/8PhOgmzcka+5dyxjmWTcDBPF90LW+C2eeQmyLo=";
   };
 
   nativeBuildInputs = [
@@ -59,6 +60,7 @@ stdenv.mkDerivation rec {
     gnome-desktop
     gspell
     gtk4
+    gtksourceview5
     gst_all_1.gstreamer
     json-glib
     libgcrypt
@@ -82,9 +84,9 @@ stdenv.mkDerivation rec {
     description = "XMPP and SMS messaging via libpurple and ModemManager";
     mainProgram = "chatty";
     homepage = "https://gitlab.gnome.org/World/Chatty";
-    changelog = "https://gitlab.gnome.org/World/Chatty/-/blob/${src.rev}/NEWS";
+    changelog = "https://gitlab.gnome.org/World/Chatty/-/blob/${finalAttrs.src.rev}/NEWS";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dotlambda ];
     platforms = platforms.linux;
   };
-}
+})
diff --git a/pkgs/applications/networking/instant-messengers/discord/default.nix b/pkgs/applications/networking/instant-messengers/discord/default.nix
index 863e27823bf58..09840fbe61393 100644
--- a/pkgs/applications/networking/instant-messengers/discord/default.nix
+++ b/pkgs/applications/networking/instant-messengers/discord/default.nix
@@ -3,14 +3,14 @@ let
   versions =
     if stdenv.isLinux then {
       stable = "0.0.54";
-      ptb = "0.0.84";
-      canary = "0.0.382";
-      development = "0.0.18";
+      ptb = "0.0.85";
+      canary = "0.0.402";
+      development = "0.0.19";
     } else {
-      stable = "0.0.303";
-      ptb = "0.0.113";
-      canary = "0.0.492";
-      development = "0.0.40";
+      stable = "0.0.305";
+      ptb = "0.0.114";
+      canary = "0.0.510";
+      development = "0.0.41";
     };
   version = versions.${branch};
   srcs = rec {
@@ -21,33 +21,33 @@ let
       };
       ptb = fetchurl {
         url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
-        hash = "sha256-0bOsmy2ldZT7S4tVOkihE5eLiujXC/ugF8CKXfBXHNU=";
+        hash = "sha256-2RyilxldJX2wqKlEcrp6srj0O7UNHMxySRJD1xBfqMk=";
       };
       canary = fetchurl {
         url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
-        hash = "sha256-MXMq4V+21KPHoCUs5x1rNRbkfw6+3cF7xSSNguiqOfc=";
+        hash = "sha256-YE+sHmEkUCHLflSUgf4aotWWdzhbFyzozc3vLcJ96yA=";
       };
       development = fetchurl {
         url = "https://dl-development.discordapp.net/apps/linux/${version}/discord-development-${version}.tar.gz";
-        hash = "sha256-SoJ4/jXl0axQyeqv8CPSzM+lBsYq/QelHctRAeoscdA=";
+        hash = "sha256-RP6SUM4DW3JhddSbJX6Xg8EE4iqCkSOgBL1oa7Zwp/E=";
       };
     };
     x86_64-darwin = {
       stable = fetchurl {
         url = "https://dl.discordapp.net/apps/osx/${version}/Discord.dmg";
-        hash = "sha256-B4r0W//d3761ufQr4PAt4ZuPMrOC7Zfo8Q3lHqKxkJ0=";
+        hash = "sha256-UEKsweUvtVKXZDrdIYuo3FPSPrnY3ECIilntBs9ZrGU=";
       };
       ptb = fetchurl {
         url = "https://dl-ptb.discordapp.net/apps/osx/${version}/DiscordPTB.dmg";
-        hash = "sha256-hdT33jK0nHvY3rIh9i1eDq5j46xS9xInRxzGCUP/hi8=";
+        hash = "sha256-ahCgJ1aSLL7Mhx5Jjkeuqqlis8gqxHbIhQvlbUK2wIU=";
       };
       canary = fetchurl {
         url = "https://dl-canary.discordapp.net/apps/osx/${version}/DiscordCanary.dmg";
-        hash = "sha256-74XQu4PGW3eW4wPICGsAVlR4SQkDXJWZ1p/G7Bwq950=";
+        hash = "sha256-viWOmu1+6tpzNDN/q0kXRMo+rohOP6/L7ke2EeBEADg=";
       };
       development = fetchurl {
         url = "https://dl-development.discordapp.net/apps/osx/${version}/DiscordDevelopment.dmg";
-        hash = "sha256-uPz3uWPAqp3JeL9E+coMrb2Hc+Zn0YGF9Jw3BTKYRlw=";
+        hash = "sha256-RiGyca/zjPpENgcq9KnRh5G4YArrUOQeueUdUBgZgjo=";
       };
     };
     aarch64-darwin = x86_64-darwin;
diff --git a/pkgs/applications/networking/instant-messengers/element/pin.nix b/pkgs/applications/networking/instant-messengers/element/pin.nix
index 6c30f9a19bf69..5f86a28e465c8 100644
--- a/pkgs/applications/networking/instant-messengers/element/pin.nix
+++ b/pkgs/applications/networking/instant-messengers/element/pin.nix
@@ -1,9 +1,9 @@
 {
-  "version" = "1.11.66";
+  "version" = "1.11.67";
   "hashes" = {
-    "desktopSrcHash" = "sha256-QrFk6NIHvWgQuJz33CEU6rwmgtGZ9w3L9vqj/rdCkE8=";
-    "desktopYarnHash" = "1kin5z6cjgsljdhh5f4fq2782ld86pza6hz58rq1zwbd187nzbwz";
-    "webSrcHash" = "sha256-xWaK2tHsuZmiwp7HExX83zKL8Z0ScRCEOnfxePWk2KI=";
-    "webYarnHash" = "1ykjpsg4d4kykd6w7c0yjyg8ljpc9czzwjx7ab27i84ys6pknx3q";
+    "desktopSrcHash" = "sha256-oM4/PKydmIBp2zVbzJRbVYnklYO2IHH7ZBV4MfLxnQo=";
+    "desktopYarnHash" = "04dbsacigq5jrh7gpyxj31grwzsg58cy6d4y7k3hmcwd4gj68iid";
+    "webSrcHash" = "sha256-faJiuAmEIEkNrwjgU06XT9J2NxJrJNIsPb1K5WXR0Lc=";
+    "webYarnHash" = "14sy3by840gbxqyvhwaj5k07hvhcsj300s39qjfsg1sx9fnfzck3";
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/feishu/default.nix b/pkgs/applications/networking/instant-messengers/feishu/default.nix
index 6d89bca9e4fa0..48a6ba12d1826 100644
--- a/pkgs/applications/networking/instant-messengers/feishu/default.nix
+++ b/pkgs/applications/networking/instant-messengers/feishu/default.nix
@@ -57,44 +57,25 @@
 , wayland
 , wrapGAppsHook3
 , xdg-utils
+, writeScript
 
-# for custom command line arguments, e.g. "--use-gl=desktop"
+  # for custom command line arguments, e.g. "--use-gl=desktop"
 , commandLineArgs ? ""
 }:
 
-stdenv.mkDerivation rec {
-  version = "6.9.20";
-  pname = "feishu";
-  packageHash = "6085d1c4"; # A hash value used in the download url
-
-  src = fetchurl {
-    url = "https://sf3-cn.feishucdn.com/obj/ee-appcenter/${packageHash}/Feishu-linux_x64-${version}.deb";
-    hash = "sha256-kg5j/vWaCBUjnF983kk0ZMJ+inF5z5ctED9+ITuIn94=";
+let
+  sources = {
+    x86_64-linux = fetchurl {
+      url = "https://sf3-cn.feishucdn.com/obj/ee-appcenter/7e382fc2/Feishu-linux_x64-7.15.13.deb";
+      sha256 = "sha256-CyQmQKfyYcWqpty5LxTNqm73AVnPdm7biBwICkbBEco=";
+    };
+    aarch64-linux = fetchurl {
+      url = "https://sf3-cn.feishucdn.com/obj/ee-appcenter/4c8c2fbf/Feishu-linux_arm64-7.15.13.deb";
+      sha256 = "sha256-nxtu5xOafZ1tlN/f0+5VF2I6ISfHmPJTztOI+AQwp9c=";
+    };
   };
 
-  nativeBuildInputs = [
-    autoPatchelfHook
-    makeShellWrapper
-    dpkg
-  ];
-
-  buildInputs = [
-    gtk3
-
-    # for autopatchelf
-    alsa-lib
-    cups
-    curl
-    libXdamage
-    libXtst
-    libdrm
-    libgcrypt
-    libpulseaudio
-    libxshmfence
-    mesa
-    nspr
-    nss
-  ];
+  supportedPlatforms = [ "x86_64-linux" "aarch64-linux" ];
 
   rpath = lib.makeLibraryPath [
     alsa-lib
@@ -149,6 +130,36 @@ stdenv.mkDerivation rec {
     wayland
     xdg-utils
   ];
+in
+stdenv.mkDerivation {
+  version = "7.15.13";
+  pname = "feishu";
+
+  src = sources.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    makeShellWrapper
+    dpkg
+  ];
+
+  buildInputs = [
+    gtk3
+
+    # for autopatchelf
+    alsa-lib
+    cups
+    curl
+    libXdamage
+    libXtst
+    libdrm
+    libgcrypt
+    libpulseaudio
+    libxshmfence
+    mesa
+    nspr
+    nss
+  ];
 
   dontUnpack = true;
   installPhase = ''
@@ -189,12 +200,38 @@ stdenv.mkDerivation rec {
     ln -sf ${curl}/lib/libcurl.so $out/opt/bytedance/feishu/libcurl.so
   '';
 
+  passthru = {
+    inherit sources;
+    updateScript = writeScript "update-feishu.sh" ''
+      #!/usr/bin/env nix-shell
+      #!nix-shell -i bash -p curl jq common-updater-scripts
+
+      for platform in ${lib.escapeShellArgs supportedPlatforms}; do
+        if [ $platform = "x86_64-linux" ]; then
+          platform_id=10
+        elif [ $platform = "aarch64-linux" ]; then
+          platform_id=12
+        else
+          echo "Unsupported platform: $platform"
+          exit 1
+        fi
+        package_info=$(curl -sf "https://www.feishu.cn/api/package_info?platform=$platform_id")
+        update_link=$(echo $package_info | jq -r '.data.download_link' | sed 's/lf[0-9]*-ug-sign.feishucdn.com/sf3-cn.feishucdn.com\/obj/;s/?.*$//')
+        new_version=$(echo $package_info | jq -r '.data.version_number' | sed -n 's/.*@V//p')
+        sha256_hash=$(nix-prefetch-url $update_link)
+        sri_hash=$(nix hash to-sri --type sha256 $sha256_hash)
+        update-source-version feishu 0 ${lib.fakeSha256} --system=$platform --source-key="sources.$platform"
+        update-source-version feishu $new_version $sri_hash $update_link --system=$platform --source-key="sources.$platform"
+      done
+    '';
+  };
+
   meta = with lib; {
     description = "An all-in-one collaboration suite";
     homepage = "https://www.feishu.cn/en/";
     downloadPage = "https://www.feishu.cn/en/#en_home_download_block";
     license = licenses.unfree;
-    platforms = [ "x86_64-linux" ];
+    platforms = supportedPlatforms;
     maintainers = with maintainers; [ billhuang ];
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix b/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
index f48cea71cb6a3..c82907aa00753 100644
--- a/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "signalbackup-tools";
-  version = "20240514";
+  version = "20240521";
 
   src = fetchFromGitHub {
     owner = "bepaald";
     repo = pname;
     rev = version;
-    hash = "sha256-3coP4Bia/a2xbeHQBUq2rXPEPzWEX9hJX1kb1wh60FA=";
+    hash = "sha256-aNiOqY1qRdPQl02Pr+A9OQgh0zHJnk8XaxdapQ/TwmE=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix
index 0d46fea513518..935e11103b828 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix
@@ -15,6 +15,7 @@
 , qtsvg
 , qtimageformats
 , gtk3
+, glib-networking
 , boost
 , fmt
 , libdbusmenu
@@ -63,14 +64,14 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "telegram-desktop";
-  version = "5.0.1";
+  version = "5.0.2";
 
   src = fetchFromGitHub {
     owner = "telegramdesktop";
     repo = "tdesktop";
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-GKKlcNcFPXslyjE7u5t+VLOiEXY8RYjYvBNL+WjpeeY=";
+    hash = "sha256-RaIUk+49uNc+TycC/oV+02o5EpkbP4tSSv7DsLn+WHM=";
   };
 
   patches = [
@@ -137,6 +138,7 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals stdenv.isLinux [
     qtwayland
     gtk3
+    glib-networking
     fmt
     libdbusmenu
     alsa-lib
diff --git a/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix b/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix
index ab7168a0ed234..48ddc5d952a63 100644
--- a/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix
+++ b/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "twitch-tui";
-  version = "2.6.9";
+  version = "2.6.10";
 
   src = fetchFromGitHub {
     owner = "Xithrius";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-c5wDneX7p3kOhARaDISHFdPpo4Bs1KbRdShp2cjI6wQ=";
+    hash = "sha256-RJ/+yXbCS8DkdvblBYlxE4sStpTQcGQZXWAApdL7/2o=";
   };
 
-  cargoHash = "sha256-4kz8s5cQDSPZEyHB7+A5q+PrvSr/jAyjfLw+uhThFxQ=";
+  cargoHash = "sha256-lI0HR0iNA2C0kf+oBLxxjcOhsf70wCo3tKPMAC76EZM=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
index c6de2bc44cee1..2fe3b8b7a3f45 100644
--- a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
+++ b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -48,23 +48,23 @@ let
   # and often with different versions.  We write them on three lines
   # like this (rather than using {}) so that the updater script can
   # find where to edit them.
-  versions.aarch64-darwin = "6.0.2.33403";
-  versions.x86_64-darwin = "6.0.2.33403";
-  versions.x86_64-linux = "6.0.2.4680";
+  versions.aarch64-darwin = "6.0.11.35001";
+  versions.x86_64-darwin = "6.0.11.35001";
+  versions.x86_64-linux = "6.0.10.5325";
 
   srcs = {
     aarch64-darwin = fetchurl {
       url = "https://zoom.us/client/${versions.aarch64-darwin}/zoomusInstallerFull.pkg?archType=arm64";
       name = "zoomusInstallerFull.pkg";
-      hash = "sha256-2JQf+gvMUUBsPuiP0VKkX9UR6IqL0NK0gtG4TdugJQ4=";
+      hash = "sha256-U8CdizMicbBLrKWYSRYl8u5tD/1276HwdHlr4kVHbiQ=";
     };
     x86_64-darwin = fetchurl {
       url = "https://zoom.us/client/${versions.x86_64-darwin}/zoomusInstallerFull.pkg";
-      hash = "sha256-M6JsABqbzvj6rlHI2QyqRH6R+hQkf0yx10t4lDVppso=";
+      hash = "sha256-iAETUWviaaQeEg6/FM1GWSJ3Qyvc0zBfuqOfA6X7HpY=";
     };
     x86_64-linux = fetchurl {
       url = "https://zoom.us/client/${versions.x86_64-linux}/zoom_x86_64.pkg.tar.xz";
-      hash = "sha256-027oAblhH8EJWRXKIEs9upNvjsSFkA0wxK1t8m8nwj8=";
+      hash = "sha256-EStiiTUwSZFM9hyYXHDErlb0m6yjRwNl7O7XLXtkvjI=";
     };
   };
 
diff --git a/pkgs/applications/networking/irc/tiny/default.nix b/pkgs/applications/networking/irc/tiny/default.nix
index 4eae9c18111cf..a4bca115a0b0c 100644
--- a/pkgs/applications/networking/irc/tiny/default.nix
+++ b/pkgs/applications/networking/irc/tiny/default.nix
@@ -23,11 +23,6 @@ rustPlatform.buildRustPackage rec {
 
   cargoHash = "sha256-AhQCfLCoJU7o8s+XL3hDOPmZi9QjOxXSA9uglA1KSuY=";
 
-  # Cargo.lock is outdated
-  preConfigure = ''
-    cargo metadata --offline
-  '';
-
   nativeBuildInputs = lib.optional stdenv.isLinux pkg-config;
   buildInputs = lib.optionals dbusSupport [ dbus ]
                 ++ lib.optionals useOpenSSL [ openssl ]
diff --git a/pkgs/applications/networking/irc/weechat/default.nix b/pkgs/applications/networking/irc/weechat/default.nix
index 9c34197fdbf55..87f7dc4f655ff 100644
--- a/pkgs/applications/networking/irc/weechat/default.nix
+++ b/pkgs/applications/networking/irc/weechat/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, lib
-, ncurses, openssl, aspell, gnutls, gettext
+, ncurses, openssl, aspell, cjson, gnutls, gettext
 , zlib, curl, pkg-config, libgcrypt
 , cmake, libobjc, libresolv, libiconv
 , asciidoctor # manpages
@@ -36,14 +36,14 @@ let
   in
     assert lib.all (p: p.enabled -> ! (builtins.elem null p.buildInputs)) plugins;
     stdenv.mkDerivation rec {
-      version = "4.2.2";
+      version = "4.3.0";
       pname = "weechat";
 
       hardeningEnable = [ "pie" ];
 
       src = fetchurl {
         url = "https://weechat.org/files/src/weechat-${version}.tar.xz";
-        hash = "sha256-IJaLIsfw9Q35z2/4WY3RvQF8V1myyUWT9dnteyTruUE=";
+        hash = "sha256-Nvn5C/L2n3ejTR4NWPBsoI8PIPgmOrlAtjfnq/eWhi0=";
       };
 
       # Why is this needed? https://github.com/weechat/weechat/issues/2031
@@ -63,7 +63,7 @@ let
 
       nativeBuildInputs = [ cmake pkg-config asciidoctor ] ++ lib.optional enableTests cpputest;
       buildInputs = with lib; [
-          ncurses openssl aspell gnutls gettext zlib curl
+          ncurses openssl aspell cjson gnutls gettext zlib curl
           libgcrypt ]
         ++ optionals stdenv.isDarwin [ libobjc libresolv ]
         ++ concatMap (p: p.buildInputs) enabledPlugins
diff --git a/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix b/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix
index 3ae60816b5a00..2b572df389101 100644
--- a/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix
+++ b/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix
@@ -76,11 +76,11 @@ in buildPythonPackage {
     cp contrib/matrix_decrypt.py $out/bin/matrix_decrypt
     cp contrib/matrix_sso_helper.py $out/bin/matrix_sso_helper
     substituteInPlace $out/bin/matrix_upload \
-      --replace '/usr/bin/env -S python3' '${scriptPython}/bin/python'
+      --replace-fail '/usr/bin/env -S python3' '${scriptPython}/bin/python'
     substituteInPlace $out/bin/matrix_sso_helper \
-      --replace '/usr/bin/env -S python3' '${scriptPython}/bin/python'
+      --replace-fail '/usr/bin/env -S python3' '${scriptPython}/bin/python'
     substituteInPlace $out/bin/matrix_decrypt \
-      --replace '/usr/bin/env python3' '${scriptPython}/bin/python'
+      --replace-fail '/usr/bin/env python3' '${scriptPython}/bin/python'
 
     mkdir -p $out/${python.sitePackages}
     cp -r matrix $out/${python.sitePackages}/matrix
@@ -90,7 +90,8 @@ in buildPythonPackage {
   postFixup = ''
     addToSearchPath program_PYTHONPATH $out/${python.sitePackages}
     patchPythonScript $out/share/matrix.py
-    substituteInPlace $out/${python.sitePackages}/matrix/server.py --replace \"matrix_sso_helper\" \"$out/bin/matrix_sso_helper\"
+    substituteInPlace $out/${python.sitePackages}/matrix/server.py --replace-fail \"matrix_sso_helper\" \"$out/bin/matrix_sso_helper\"
+    substituteInPlace $out/${python.sitePackages}/matrix/uploads.py --replace-fail \"matrix_upload\" \"$out/bin/matrix_upload\"
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/networking/iroh/default.nix b/pkgs/applications/networking/iroh/default.nix
index b08291cc1ff3d..263d5e3342e83 100644
--- a/pkgs/applications/networking/iroh/default.nix
+++ b/pkgs/applications/networking/iroh/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "iroh";
-  version = "0.16.2";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "n0-computer";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-W3G6jwSaYeCx3KNAAl/z1UEOHFKHhmp+exlNbpHZuNM=";
+    hash = "sha256-CemVlw0S4UmKFopWSh1Hv2znMRN3guIBx303esK/gLw=";
   };
 
-  cargoHash = "sha256-AwTQjGRy2lCiJUhCWuyoXddEyLCQ2szbea/MJ/8SJQA=";
+  cargoHash = "sha256-LgA6gdBRLsow98nv9A5rYb/v/FGzu/LPQwftyeuKHk4=";
 
   buildInputs = lib.optionals stdenv.isDarwin (
     with darwin.apple_sdk.frameworks; [
diff --git a/pkgs/applications/networking/juju/default.nix b/pkgs/applications/networking/juju/default.nix
index 1a914a065b095..34f703b4b134f 100644
--- a/pkgs/applications/networking/juju/default.nix
+++ b/pkgs/applications/networking/juju/default.nix
@@ -1,25 +1,38 @@
-{ lib, fetchFromGitHub, buildGoModule }:
+{ lib, fetchFromGitHub, buildGoModule, installShellFiles, testers, juju }:
 
 buildGoModule rec {
   pname = "juju";
-  version = "3.3.0";
+  version = "3.5.0";
 
   src = fetchFromGitHub {
     owner = "juju";
     repo = "juju";
-    rev = "juju-${version}";
-    sha256 = "sha256-8VSSTeN4a1zvMi4L4dR3q+kWKgYq8Jg1jDvFjEBD7jI=";
+    rev = "v${version}";
+    hash = "sha256-35m6e7AWhYnCl+s/i78krYA8As14inI3os8HMBJwCJY=";
   };
 
-  vendorHash = "sha256-3hZywUpJe6g8IujbK0hcp12S6OKswLj/YYJGuPG06Es=";
-
-  # Disable tests because it attempts to use a mongodb instance
-  doCheck = false;
+  vendorHash = "sha256-4G4GspvNMVbfJJ8MfQtrhp5MRcDw0nhHvdlNdRJgpIM=";
 
   subPackages = [
     "cmd/juju"
   ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
+  # Disable tests because it attempts to use a mongodb instance
+  doCheck = false;
+
+  postInstall = ''
+    for file in etc/bash_completion.d/*; do
+      installShellCompletion --bash "$file"
+    done
+  '';
+
+  passthru.tests.version = testers.testVersion {
+    package = juju;
+    command = "HOME=\"$(mktemp -d)\" juju --version";
+  };
+
   meta = with lib; {
     description = "Open source modelling tool for operating software in the cloud";
     homepage = "https://juju.is";
diff --git a/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix b/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
index 368c9f897dc79..aa38ee7cb8d31 100644
--- a/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
+++ b/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
@@ -22,11 +22,11 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution-ews";
-  version = "3.52.1";
+  version = "3.52.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-TR9OlipFClJnADNQiaOQfZgMB2Z/q9Vmmag06Z2HSrI=";
+    hash = "sha256-qVUPG1PUdANt0jmWJ7MRjrO4QxhBztwO3yFFewlhkUE=";
   };
 
   patches = [
diff --git a/pkgs/applications/networking/mailreaders/evolution/evolution-ews/hardcode-gsettings.patch b/pkgs/applications/networking/mailreaders/evolution/evolution-ews/hardcode-gsettings.patch
index 55fcb25f1551b..b8dae30a997aa 100644
--- a/pkgs/applications/networking/mailreaders/evolution/evolution-ews/hardcode-gsettings.patch
+++ b/pkgs/applications/networking/mailreaders/evolution/evolution-ews/hardcode-gsettings.patch
@@ -1,8 +1,8 @@
 diff --git a/src/EWS/calendar/e-cal-backend-ews-utils.c b/src/EWS/calendar/e-cal-backend-ews-utils.c
-index b7c65ae..b334198 100644
+index 87b02c6..3fabca6 100644
 --- a/src/EWS/calendar/e-cal-backend-ews-utils.c
 +++ b/src/EWS/calendar/e-cal-backend-ews-utils.c
-@@ -2425,7 +2425,19 @@ e_cal_backend_ews_get_configured_evolution_icaltimezone (void)
+@@ -2484,7 +2484,19 @@ e_cal_backend_ews_get_configured_evolution_icaltimezone (void)
  		if (schema) {
  			GSettings *settings;
  
@@ -24,10 +24,10 @@ index b7c65ae..b334198 100644
  			if (g_settings_get_boolean (settings, "use-system-timezone"))
  				location = e_cal_util_get_system_timezone_location ();
 diff --git a/src/EWS/camel/camel-ews-utils.c b/src/EWS/camel/camel-ews-utils.c
-index dbd9adb..a2372a4 100644
+index 44a20d6..90d5729 100644
 --- a/src/EWS/camel/camel-ews-utils.c
 +++ b/src/EWS/camel/camel-ews-utils.c
-@@ -1553,7 +1553,18 @@ ews_utils_save_category_changes (GHashTable *old_categories, /* gchar *guid ~> C
+@@ -1554,7 +1554,18 @@ ews_utils_save_category_changes (GHashTable *old_categories, /* gchar *guid ~> C
  
  	evo_labels = g_ptr_array_new_full (5, g_free);
  
diff --git a/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix b/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
index dd7342eadc4f1..0fe2e4796efc4 100644
--- a/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
+++ b/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
@@ -44,11 +44,11 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution";
-  version = "3.52.1";
+  version = "3.52.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-aNrtER2t42GMpwjss8q0zZO6UC9a6dXnlwc8OhPinek=";
+    hash = "sha256-pIt0EtE+2sdPbAms+mdmVuahLt8AMM3cJgKawE2j5VE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/mailreaders/mutt/default.nix b/pkgs/applications/networking/mailreaders/mutt/default.nix
index 7da31db64e08a..817e3a4c99d9d 100644
--- a/pkgs/applications/networking/mailreaders/mutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/mutt/default.nix
@@ -39,13 +39,18 @@ stdenv.mkDerivation rec {
     sha256 = "0b4i00chvx6zj9pcb06x2jysmrcb2znn831lcy32cgfds6gr3nsi";
   });
 
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    perl which
+  ];
+
   buildInputs =
-    [ ncurses which perl ]
+    [ ncurses ]
     ++ lib.optional headerCache  gdbm
     ++ lib.optional sslSupport   openssl
     ++ lib.optional gssSupport   libkrb5
-    ++ lib.optional saslSupport  cyrus_sasl
-    ++ lib.optional gpgmeSupport gpgme;
+    ++ lib.optional saslSupport  cyrus_sasl;
 
   configureFlags = [
     (lib.enableFeature headerCache  "hcache")
@@ -66,9 +71,10 @@ stdenv.mkDerivation rec {
     # set by the installer, and removing the need for the group 'mail'
     # I set the value 'mailbox' because it is a default in the configure script
     "--with-homespool=mailbox"
-  ] ++ lib.optional sslSupport  "--with-ssl"
-    ++ lib.optional gssSupport  "--with-gss"
-    ++ lib.optional saslSupport "--with-sasl";
+  ] ++ lib.optional sslSupport   "--with-ssl"
+    ++ lib.optional gssSupport   "--with-gss"
+    ++ lib.optional saslSupport  "--with-sasl"
+    ++ lib.optional gpgmeSupport "--with-gpgme-prefix=${lib.getDev gpgme}";
 
   postPatch = lib.optionalString (smimeSupport || gpgmeSupport) ''
     sed -i 's#/usr/bin/openssl#${openssl}/bin/openssl#' smime_keys.pl
diff --git a/pkgs/applications/networking/nextdns/default.nix b/pkgs/applications/networking/nextdns/default.nix
index 0661a3f9db2c9..fe39929ce7b8d 100644
--- a/pkgs/applications/networking/nextdns/default.nix
+++ b/pkgs/applications/networking/nextdns/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "nextdns";
-  version = "1.43.3";
+  version = "1.43.4";
 
   src = fetchFromGitHub {
     owner = "nextdns";
     repo = "nextdns";
     rev = "v${version}";
-    sha256 = "sha256-sltTvjEfUZsmXDEyN+Zyck7oqZ+Xu8xScNnitt/0eic=";
+    sha256 = "sha256-nL+6pIH/tI/V14aKrQfwI+JJhCc/YD18U/J0SXnA9NE=";
   };
 
   vendorHash = "sha256-U5LJF1RX0ZS0PhjQTZKXrJo89WPfSZaVbgskWcYNlJY=";
diff --git a/pkgs/applications/networking/protonmail-bridge/default.nix b/pkgs/applications/networking/protonmail-bridge/default.nix
index f811ce742bdfd..2b27eef11c32f 100644
--- a/pkgs/applications/networking/protonmail-bridge/default.nix
+++ b/pkgs/applications/networking/protonmail-bridge/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "protonmail-bridge";
-  version = "3.11.0";
+  version = "3.11.1";
 
   src = fetchFromGitHub {
     owner = "ProtonMail";
     repo = "proton-bridge";
     rev = "v${version}";
-    hash = "sha256-V2PevO9jhtKMrFVlviKPwcApP4ZTRbCLVoPx0gGNosU=";
+    hash = "sha256-PM162vj1Q336fM5z6KoBgtujz9UgESIxUW3Lw8AEYTw=";
   };
 
   vendorHash = "sha256-qi6ME74pJH/wgDh0xp/Rsc9hPd3v3L/M8pBQJzNieK8=";
diff --git a/pkgs/applications/networking/remote/dayon/default.nix b/pkgs/applications/networking/remote/dayon/default.nix
index ea46ec131fbc5..d0199bb325a19 100644
--- a/pkgs/applications/networking/remote/dayon/default.nix
+++ b/pkgs/applications/networking/remote/dayon/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "dayon";
-  version = "14.0.0";
+  version = "14.0.1";
 
   src = fetchFromGitHub {
     owner = "RetGal";
     repo = "dayon";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-cUaWfOpR0sNq8cRghZVW9mTVhJ5us12/lzucxetiVkg=";
+    hash = "sha256-7XrgPrYKhaUvmXxiZLsduzrbyZRHjPSo+fg4BvlatHQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/sync/celeste/default.nix b/pkgs/applications/networking/sync/celeste/default.nix
index 1836ebd1e6d99..7eef4f4510051 100644
--- a/pkgs/applications/networking/sync/celeste/default.nix
+++ b/pkgs/applications/networking/sync/celeste/default.nix
@@ -47,11 +47,6 @@ rustPlatform.buildRustPackage rec {
     sed -i "#/bin/celeste#d" justfile
   '';
 
-  # Cargo.lock is outdated
-  preConfigure = ''
-    cargo update --offline
-  '';
-
   RUSTC_BOOTSTRAP = 1;
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/sync/desync/default.nix b/pkgs/applications/networking/sync/desync/default.nix
index e2c43315338ed..88fc9be1a9ea0 100644
--- a/pkgs/applications/networking/sync/desync/default.nix
+++ b/pkgs/applications/networking/sync/desync/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "desync";
-  version = "0.9.5";
+  version = "0.9.6";
 
   src = fetchFromGitHub {
     owner = "folbricht";
     repo = "desync";
     rev = "refs/tags/v${version}";
-    hash = "sha256-FeZhLY0fUUNNqa6qZZnh2z06+NgcAI6gY8LRR4xI5sM=";
+    hash = "sha256-TwzD9WYi4cdDPKKV2XoqkGWJ9CzIwoxeFll8LqNWf/E=";
   };
 
-  vendorHash = "sha256-1RuqlDU809mtGn0gOFH/AW6HJo1cQqt8spiLp3/FpcI=";
+  vendorHash = "sha256-CBw5FFGQgvdYoOUZ6E1F/mxqzNKOwh2IZbsh0dAsLEE=";
 
   # nix builder doesn't have access to test data; tests fail for reasons unrelated to binary being bad.
   doCheck = false;
diff --git a/pkgs/applications/networking/sync/rsync/default.nix b/pkgs/applications/networking/sync/rsync/default.nix
index 5216617bf4d1a..555fb68416b8d 100644
--- a/pkgs/applications/networking/sync/rsync/default.nix
+++ b/pkgs/applications/networking/sync/rsync/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, updateAutotoolsGnuConfigScriptsHook
 , perl
 , libiconv
 , zlib
@@ -28,7 +29,7 @@ stdenv.mkDerivation rec {
     hash = "sha256-c5nppnCMMtZ4pypjIZ6W8jvgviM25Q/RNISY0HBB35A=";
   };
 
-  nativeBuildInputs = [ perl ];
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook perl ];
 
   buildInputs = [ libiconv zlib popt ]
     ++ lib.optional enableACLs acl
diff --git a/pkgs/applications/networking/sync/wdt/default.nix b/pkgs/applications/networking/sync/wdt/default.nix
index 34eef64b9f796..ccf3e05138f70 100644
--- a/pkgs/applications/networking/sync/wdt/default.nix
+++ b/pkgs/applications/networking/sync/wdt/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation {
   pname = "wdt";
-  version = "1.27.1612021-unstable-2024-02-05";
+  version = "1.27.1612021-unstable-2024-05-21";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "wdt";
-    rev = "d94b2d5df6f1c803f9f3b8ed9247b752fa853865";
-    sha256 = "sha256-9TeJbZZq9uQ6KaEBFGDyIGcXgxi2y1aj55vxv5dAIzw=";
+    rev = "6263fee3bebc8bb0012e095723170f70b99ff67d";
+    sha256 = "sha256-CxwRfjPkR7d+Poe+8+TbBGcsK90EwupCyLqUkxUlITs=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/networking/syncplay/default.nix b/pkgs/applications/networking/syncplay/default.nix
index 4321868a0d6d3..b816da9e4b5cb 100644
--- a/pkgs/applications/networking/syncplay/default.nix
+++ b/pkgs/applications/networking/syncplay/default.nix
@@ -13,15 +13,15 @@
 
 buildPythonApplication rec {
   pname = "syncplay";
-  version = "1.7.2";
+  version = "1.7.3";
 
   format = "other";
 
   src = fetchFromGitHub {
     owner = "Syncplay";
     repo = "syncplay";
-    rev = "v${version}";
-    sha256 = "sha256-PERPE6141LXmb8fmW17Vu54Unpf9vEK+ahm6q1byRTU=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-ipo027XyN4BpMkxzXznbnaufsaG/YkHxFJYo+XWzbyE=";
   };
 
   patches = [
diff --git a/pkgs/applications/office/espanso/Cargo.lock b/pkgs/applications/office/espanso/Cargo.lock
index 82f195f1b7b7c..fcceab7b700ab 100644
--- a/pkgs/applications/office/espanso/Cargo.lock
+++ b/pkgs/applications/office/espanso/Cargo.lock
@@ -59,16 +59,16 @@ version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
 dependencies = [
- "hermit-abi",
+ "hermit-abi 0.1.18",
  "libc",
  "winapi 0.3.9",
 ]
 
 [[package]]
 name = "autocfg"
-version = "1.0.1"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "base64"
@@ -77,6 +77,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
 
 [[package]]
+name = "base64"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a"
+
+[[package]]
 name = "bitflags"
 version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -89,6 +95,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
 
 [[package]]
+name = "bitflags"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+
+[[package]]
 name = "blake2b_simd"
 version = "0.5.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -132,6 +144,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c59e7af012c713f529e7a3ee57ce9b31ddd858d4b512923602f74608b009631"
 
 [[package]]
+name = "bytemuck"
+version = "1.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15"
+dependencies = [
+ "bytemuck_derive",
+]
+
+[[package]]
+name = "bytemuck_derive"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4da9a32f3fed317401fa3c862968128267c3106685286e15d5aaa3d7389c2f60"
+dependencies = [
+ "proc-macro2",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
 name = "byteorder"
 version = "1.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -145,9 +177,9 @@ checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8"
 
 [[package]]
 name = "bzip2"
-version = "0.4.3"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6afcd980b5f3a45017c57e57a2fcccbb351cc43a356ce117ef760ef8052b89b0"
+checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8"
 dependencies = [
  "bzip2-sys",
  "libc",
@@ -166,12 +198,28 @@ dependencies = [
 
 [[package]]
 name = "calloop"
-version = "0.9.3"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf2eec61efe56aa1e813f5126959296933cf0700030e4314786c48779a66ab82"
+checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298"
 dependencies = [
+ "bitflags 2.4.1",
  "log",
- "nix 0.22.3",
+ "polling",
+ "rustix",
+ "slab",
+ "thiserror",
+]
+
+[[package]]
+name = "calloop-wayland-source"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02"
+dependencies = [
+ "calloop",
+ "rustix",
+ "wayland-backend",
+ "wayland-client",
 ]
 
 [[package]]
@@ -180,7 +228,7 @@ version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c088f2dddef283f86b023ab1ebe2301c653326834996458b2f48d29b804e9540"
 dependencies = [
- "errno",
+ "errno 0.2.7",
  "libc",
  "thiserror",
 ]
@@ -244,6 +292,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "concurrent-queue"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
 name = "console"
 version = "0.14.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -259,12 +316,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "const-sha1"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb58b6451e8c2a812ad979ed1d83378caa5e927eef2622017a45f251457c2c9d"
-
-[[package]]
 name = "const_format"
 version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -280,7 +331,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "29c36c619c422113552db4eb28cddba8faa757e33f758cc3415bd2885977b591"
 dependencies = [
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "unicode-xid 0.2.1",
 ]
 
@@ -385,13 +436,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.8"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38"
-dependencies = [
- "cfg-if 1.0.0",
- "lazy_static",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
 name = "cstr_core"
@@ -409,7 +456,7 @@ version = "0.1.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5e98e2ad1a782e33928b96fc3948e7c355e5af34ba4de7670fe8bac2a3b2006d"
 dependencies = [
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
 ]
 
@@ -420,6 +467,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35"
 
 [[package]]
+name = "cursor-icon"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991"
+
+[[package]]
+name = "dashmap"
+version = "5.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc"
+dependencies = [
+ "cfg-if 1.0.0",
+ "hashbrown 0.12.3",
+ "lock_api",
+ "once_cell",
+ "parking_lot_core",
+]
+
+[[package]]
 name = "dbus"
 version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -495,9 +561,9 @@ dependencies = [
 
 [[package]]
 name = "dlib"
-version = "0.5.0"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794"
+checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412"
 dependencies = [
  "libloading",
 ]
@@ -553,13 +619,31 @@ version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7c5f0096a91d210159eceb2ff5e1c4da18388a170e1e3ce948aac9c8fdbbf595"
 dependencies = [
- "heck",
+ "heck 0.3.2",
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
 ]
 
 [[package]]
+name = "enum-as-inner"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro2",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
 name = "errno"
 version = "0.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -571,6 +655,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "errno"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "errno-dragonfly"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -582,7 +676,7 @@ dependencies = [
 
 [[package]]
 name = "espanso"
-version = "2.1.8"
+version = "2.2.1"
 dependencies = [
  "anyhow",
  "caps",
@@ -592,7 +686,7 @@ dependencies = [
  "crossbeam",
  "dialoguer",
  "dirs 3.0.1",
- "enum-as-inner",
+ "enum-as-inner 0.3.3",
  "espanso-clipboard",
  "espanso-config",
  "espanso-detect",
@@ -615,7 +709,6 @@ dependencies = [
  "libc",
  "log",
  "log-panics",
- "maplit",
  "named_pipe",
  "notify",
  "opener",
@@ -638,8 +731,6 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "cc",
- "lazy_static",
- "lazycell",
  "log",
  "thiserror",
  "wait-timeout",
@@ -652,7 +743,7 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "dunce",
- "enum-as-inner",
+ "enum-as-inner 0.6.0",
  "glob",
  "indoc",
  "lazy_static",
@@ -674,7 +765,7 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "cc",
- "enum-as-inner",
+ "enum-as-inner 0.6.0",
  "lazy_static",
  "lazycell",
  "libc",
@@ -695,7 +786,6 @@ dependencies = [
  "html2text",
  "log",
  "markdown",
- "tempdir",
  "thiserror",
 ]
 
@@ -705,10 +795,7 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "cc",
- "lazy_static",
- "lazycell",
  "log",
- "thiserror",
  "widestring",
 ]
 
@@ -718,10 +805,9 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "cc",
- "enum-as-inner",
+ "enum-as-inner 0.6.0",
  "itertools",
  "lazy_static",
- "lazycell",
  "libc",
  "log",
  "regex",
@@ -735,7 +821,6 @@ name = "espanso-ipc"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "crossbeam",
  "log",
  "named_pipe",
  "serde",
@@ -748,7 +833,6 @@ name = "espanso-kvs"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "log",
  "serde",
  "serde_json",
  "tempdir",
@@ -759,23 +843,17 @@ dependencies = [
 name = "espanso-mac-utils"
 version = "0.1.0"
 dependencies = [
- "anyhow",
  "cc",
  "lazy_static",
- "lazycell",
- "log",
  "regex",
- "thiserror",
 ]
 
 [[package]]
 name = "espanso-match"
 version = "0.1.0"
 dependencies = [
- "anyhow",
  "log",
  "regex",
- "thiserror",
  "unicase",
 ]
 
@@ -784,17 +862,14 @@ name = "espanso-migrate"
 version = "0.1.0"
 dependencies = [
  "anyhow",
- "dunce",
  "fs_extra",
  "glob",
  "include_dir",
  "lazy_static",
- "log",
  "path-slash",
  "pretty_assertions",
  "regex",
  "tempdir",
- "tempfile",
  "test-case",
  "thiserror",
  "walkdir",
@@ -809,10 +884,8 @@ dependencies = [
  "cc",
  "glob",
  "lazy_static",
- "log",
  "regex",
  "serde",
- "serde_json",
  "thiserror",
  "winres",
  "zip",
@@ -845,10 +918,8 @@ dependencies = [
 name = "espanso-path"
 version = "0.1.0"
 dependencies = [
- "anyhow",
  "dirs 3.0.1",
  "log",
- "thiserror",
 ]
 
 [[package]]
@@ -857,7 +928,7 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "chrono",
- "enum-as-inner",
+ "enum-as-inner 0.6.0",
  "lazy_static",
  "log",
  "rand 0.8.3",
@@ -881,7 +952,7 @@ dependencies = [
  "serde_json",
  "thiserror",
  "widestring",
- "winrt-notification 0.3.1",
+ "winrt-notification 0.5.1",
 ]
 
 [[package]]
@@ -966,9 +1037,9 @@ dependencies = [
 
 [[package]]
 name = "fs_extra"
-version = "1.2.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2022715d62ab30faffd124d40b76f4134a550a87792276512b18d63272333394"
+checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
 
 [[package]]
 name = "fsevent"
@@ -1043,19 +1114,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "522de2a0fe3e380f1bc577ba0474108faf3f6b18321dbf60b3b9c39a75073377"
 
 [[package]]
-name = "futures-macro"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18e4a4b95cea4b4ccbcf1c5675ca7c4ee4e9e75eb79944d07defde18068f79bb"
-dependencies = [
- "autocfg",
- "proc-macro-hack",
- "proc-macro2",
- "quote 1.0.9",
- "syn 1.0.67",
-]
-
-[[package]]
 name = "futures-sink"
 version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1076,13 +1134,10 @@ dependencies = [
  "autocfg",
  "futures-core",
  "futures-io",
- "futures-macro",
  "futures-task",
  "memchr",
  "pin-project-lite",
  "pin-utils",
- "proc-macro-hack",
- "proc-macro-nested",
  "slab",
 ]
 
@@ -1132,9 +1187,9 @@ checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
 
 [[package]]
 name = "h2"
-version = "0.3.4"
+version = "0.3.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7f3675cfef6a30c8031cf9e6493ebdc3bb3272a3fea3923c4210d1830e6a472"
+checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
 dependencies = [
  "bytes",
  "fnv",
@@ -1151,9 +1206,15 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.11.2"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+[[package]]
+name = "hashbrown"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 
 [[package]]
 name = "heck"
@@ -1165,6 +1226,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
 name = "hermit-abi"
 version = "0.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1174,6 +1241,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "hermit-abi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+
+[[package]]
 name = "hex"
 version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1181,26 +1254,30 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
 
 [[package]]
 name = "html2text"
-version = "0.2.1"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26379dcb715e237b96102a12b505c553e2bffa74bae2e54658748d298660ef1"
+checksum = "22f0de8bd2c9fe69eb3fa29e41ae1396c9d2e1b807735acaecafb4c86888674f"
 dependencies = [
+ "dashmap",
  "html5ever",
- "markup5ever_rcdom",
+ "markup5ever",
+ "tendril",
+ "thiserror",
  "unicode-width",
+ "xml5ever",
 ]
 
 [[package]]
 name = "html5ever"
-version = "0.25.1"
+version = "0.26.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aafcf38a1a36118242d29b92e1b08ef84e67e4a5ed06e0a80be20e6a32bfed6b"
+checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7"
 dependencies = [
  "log",
  "mac",
  "markup5ever",
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
 ]
 
@@ -1212,7 +1289,7 @@ checksum = "527e8c9ac747e28542699a951517aa9a6945af506cd1f2e1b53a576c17b6cc11"
 dependencies = [
  "bytes",
  "fnv",
- "itoa",
+ "itoa 0.4.7",
 ]
 
 [[package]]
@@ -1228,9 +1305,9 @@ dependencies = [
 
 [[package]]
 name = "httparse"
-version = "1.5.1"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503"
+checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
 
 [[package]]
 name = "httpdate"
@@ -1240,9 +1317,9 @@ checksum = "6456b8a6c8f33fee7d958fcd1b60d55b11940a79e63ae87013e6d22e26034440"
 
 [[package]]
 name = "hyper"
-version = "0.14.12"
+version = "0.14.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13f67199e765030fa08fe0bd581af683f0d5bc04ea09c2b1102012c5fb90e7fd"
+checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -1253,7 +1330,7 @@ dependencies = [
  "http-body",
  "httparse",
  "httpdate",
- "itoa",
+ "itoa 1.0.6",
  "pin-project-lite",
  "socket2",
  "tokio",
@@ -1264,17 +1341,15 @@ dependencies = [
 
 [[package]]
 name = "hyper-rustls"
-version = "0.22.1"
+version = "0.23.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64"
+checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c"
 dependencies = [
- "futures-util",
+ "http",
  "hyper",
- "log",
  "rustls",
  "tokio",
  "tokio-rustls",
- "webpki",
 ]
 
 [[package]]
@@ -1321,18 +1396,18 @@ dependencies = [
  "anyhow",
  "proc-macro-hack",
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
 ]
 
 [[package]]
 name = "indexmap"
-version = "1.7.0"
+version = "2.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5"
+checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520"
 dependencies = [
- "autocfg",
- "hashbrown",
+ "equivalent",
+ "hashbrown 0.14.3",
 ]
 
 [[package]]
@@ -1395,6 +1470,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
 
 [[package]]
+name = "itoa"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+
+[[package]]
 name = "js-sys"
 version = "0.3.53"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1427,9 +1508,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
 
 [[package]]
 name = "libc"
-version = "0.2.126"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libdbus-sys"
@@ -1457,6 +1538,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3"
 
 [[package]]
+name = "linux-raw-sys"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+
+[[package]]
+name = "lock_api"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
 name = "log"
 version = "0.4.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1502,12 +1599,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "maplit"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
-
-[[package]]
 name = "markdown"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1520,9 +1611,9 @@ dependencies = [
 
 [[package]]
 name = "markup5ever"
-version = "0.10.1"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd"
+checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016"
 dependencies = [
  "log",
  "phf",
@@ -1533,18 +1624,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "markup5ever_rcdom"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f015da43bcd8d4f144559a3423f4591d69b8ce0652c905374da7205df336ae2b"
-dependencies = [
- "html5ever",
- "markup5ever",
- "tendril",
- "xml5ever",
-]
-
-[[package]]
 name = "matches"
 version = "0.1.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1558,9 +1637,18 @@ checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
 
 [[package]]
 name = "memmap2"
-version = "0.3.1"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b6c2ebff6180198788f5db08d7ce3bc1d0b617176678831a7510825973e357"
+checksum = "43a5a03cefb0d953ec0be133036f14e109412fa594edc2f77227249db66cc3ed"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memmap2"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
 dependencies = [
  "libc",
 ]
@@ -1603,7 +1691,7 @@ dependencies = [
  "kernel32-sys",
  "libc",
  "log",
- "miow 0.2.2",
+ "miow",
  "net2",
  "slab",
  "winapi 0.2.8",
@@ -1611,15 +1699,14 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.7.13"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c2bdb6314ec10835cd3293dd268473a835c02b7b352e788be788b3c6ca6bb16"
+checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9"
 dependencies = [
  "libc",
  "log",
- "miow 0.3.7",
- "ntapi",
- "winapi 0.3.9",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+ "windows-sys 0.45.0",
 ]
 
 [[package]]
@@ -1647,15 +1734,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "miow"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
-dependencies = [
- "winapi 0.3.9",
-]
-
-[[package]]
 name = "mockall"
 version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1678,7 +1756,7 @@ checksum = "5dd4234635bca06fc96c7368d038061e0aae1b00a764dc817e900dc974e3deea"
 dependencies = [
  "cfg-if 1.0.0",
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
 ]
 
@@ -1693,9 +1771,9 @@ dependencies = [
 
 [[package]]
 name = "native-tls"
-version = "0.2.8"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48ba9f7719b5a0f42f338907614285fb5fd70e53858141f69898a1fb7203b24d"
+checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
 dependencies = [
  "lazy_static",
  "libc",
@@ -1733,31 +1811,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
 
 [[package]]
-name = "nix"
-version = "0.22.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4916f159ed8e5de0082076562152a76b7a1f64a01fd9d1e0fea002c37624faf"
-dependencies = [
- "bitflags 1.2.1",
- "cc",
- "cfg-if 1.0.0",
- "libc",
- "memoffset",
-]
-
-[[package]]
-name = "nix"
-version = "0.24.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc"
-dependencies = [
- "bitflags 1.2.1",
- "cfg-if 1.0.0",
- "libc",
- "memoffset",
-]
-
-[[package]]
 name = "nom"
 version = "6.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1804,9 +1857,9 @@ dependencies = [
 
 [[package]]
 name = "ntapi"
-version = "0.3.6"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44"
+checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4"
 dependencies = [
  "winapi 0.3.9",
 ]
@@ -1836,7 +1889,7 @@ version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
 dependencies = [
- "hermit-abi",
+ "hermit-abi 0.1.18",
  "libc",
 ]
 
@@ -1871,9 +1924,9 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.8.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "opaque-debug"
@@ -1893,19 +1946,31 @@ dependencies = [
 
 [[package]]
 name = "openssl"
-version = "0.10.36"
+version = "0.10.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d9facdb76fec0b73c406f125d44d86fdad818d66fef0531eec9233ca425ff4a"
+checksum = "6b8419dc8cc6d866deb801274bba2e6f8f6108c1bb7fcc10ee5ab864931dbb45"
 dependencies = [
- "bitflags 1.2.1",
+ "bitflags 2.4.1",
  "cfg-if 1.0.0",
  "foreign-types",
  "libc",
  "once_cell",
+ "openssl-macros",
  "openssl-sys",
 ]
 
 [[package]]
+name = "openssl-macros"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c"
+dependencies = [
+ "proc-macro2",
+ "quote 1.0.35",
+ "syn 1.0.67",
+]
+
+[[package]]
 name = "openssl-probe"
 version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1913,11 +1978,10 @@ checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a"
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.66"
+version = "0.9.97"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1996d2d305e561b70d1ee0c53f1542833f4e1ac6ce9a6708b6ff2738ca67dc82"
+checksum = "c3eaad34cdd97d81de97964fc7f29e2d104f483840d906ef56daa1912338460b"
 dependencies = [
- "autocfg",
  "cc",
  "libc",
  "pkg-config",
@@ -1943,6 +2007,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "parking_lot_core"
+version = "0.9.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+dependencies = [
+ "cfg-if 1.0.0",
+ "libc",
+ "redox_syscall 0.4.1",
+ "smallvec",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
 name = "path-slash"
 version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1956,21 +2033,21 @@ checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
 
 [[package]]
 name = "phf"
-version = "0.8.0"
+version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
+checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
 dependencies = [
- "phf_shared",
+ "phf_shared 0.10.0",
 ]
 
 [[package]]
 name = "phf_codegen"
-version = "0.8.0"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815"
+checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd"
 dependencies = [
- "phf_generator",
- "phf_shared",
+ "phf_generator 0.10.0",
+ "phf_shared 0.10.0",
 ]
 
 [[package]]
@@ -1979,11 +2056,21 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526"
 dependencies = [
- "phf_shared",
+ "phf_shared 0.8.0",
  "rand 0.7.3",
 ]
 
 [[package]]
+name = "phf_generator"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
+dependencies = [
+ "phf_shared 0.10.0",
+ "rand 0.8.3",
+]
+
+[[package]]
 name = "phf_shared"
 version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1993,10 +2080,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "phf_shared"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
 name = "pin-project-lite"
-version = "0.2.7"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
 
 [[package]]
 name = "pin-utils"
@@ -2017,6 +2113,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"
 
 [[package]]
+name = "polling"
+version = "3.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0c976a60b2d7e99d6f229e414670a9b85d13ac305cc6d1e9c134de58c5aaaf6"
+dependencies = [
+ "cfg-if 1.0.0",
+ "concurrent-queue",
+ "hermit-abi 0.3.9",
+ "pin-project-lite",
+ "rustix",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "ppv-lite86"
 version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2076,18 +2187,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
 
 [[package]]
-name = "proc-macro-nested"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086"
-
-[[package]]
 name = "proc-macro2"
-version = "1.0.24"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
 dependencies = [
- "unicode-xid 0.2.1",
+ "unicode-ident",
 ]
 
 [[package]]
@@ -2097,6 +2202,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b45c49fc4f91f35bae654f85ebb3a44d60ac64f11b3166ffa609def390c732d8"
 
 [[package]]
+name = "quick-xml"
+version = "0.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
 name = "quote"
 version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2104,9 +2218,9 @@ checksum = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
 
 [[package]]
 name = "quote"
-version = "1.0.9"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
@@ -2279,6 +2393,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "redox_syscall"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+dependencies = [
+ "bitflags 1.2.1",
+]
+
+[[package]]
 name = "redox_users"
 version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2323,15 +2446,16 @@ dependencies = [
 
 [[package]]
 name = "reqwest"
-version = "0.11.4"
+version = "0.11.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "246e9f61b9bb77df069a947682be06e31ac43ea37862e244a69f177694ea6d22"
+checksum = "13293b639a097af28fc8a90f22add145a9c954e49d77da06263d58cf44d5fb91"
 dependencies = [
- "base64",
+ "base64 0.21.0",
  "bytes",
  "encoding_rs",
  "futures-core",
  "futures-util",
+ "h2",
  "http",
  "http-body",
  "hyper",
@@ -2339,24 +2463,27 @@ dependencies = [
  "hyper-tls",
  "ipnet",
  "js-sys",
- "lazy_static",
  "log",
  "mime",
  "native-tls",
+ "once_cell",
  "percent-encoding",
  "pin-project-lite",
  "rustls",
+ "rustls-pemfile",
  "serde",
+ "serde_json",
  "serde_urlencoded",
  "tokio",
  "tokio-native-tls",
  "tokio-rustls",
+ "tower-service",
  "url",
  "wasm-bindgen",
  "wasm-bindgen-futures",
  "web-sys",
  "webpki-roots",
- "winreg 0.7.0",
+ "winreg 0.10.1",
 ]
 
 [[package]]
@@ -2380,19 +2507,31 @@ version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb"
 dependencies = [
- "base64",
+ "base64 0.13.0",
  "blake2b_simd",
  "constant_time_eq",
  "crossbeam-utils",
 ]
 
 [[package]]
+name = "rustix"
+version = "0.38.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89"
+dependencies = [
+ "bitflags 2.4.1",
+ "errno 0.3.8",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "rustls"
-version = "0.19.1"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7"
+checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f"
 dependencies = [
- "base64",
  "log",
  "ring",
  "sct",
@@ -2400,6 +2539,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "rustls-pemfile"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b"
+dependencies = [
+ "base64 0.21.0",
+]
+
+[[package]]
 name = "ryu"
 version = "1.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2438,9 +2586,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
 
 [[package]]
 name = "sct"
-version = "0.6.1"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce"
+checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
 dependencies = [
  "ring",
  "untrusted",
@@ -2485,7 +2633,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9391c295d64fc0abb2c556bad848f33cb8296276b1ad2677d1ae1ace4f258f31"
 dependencies = [
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
 ]
 
@@ -2495,19 +2643,19 @@ version = "1.0.62"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ea1c6153794552ea7cf7cf63b1231a25de00ec90db326ba6264440fa08e31486"
 dependencies = [
- "itoa",
+ "itoa 0.4.7",
  "ryu",
  "serde",
 ]
 
 [[package]]
 name = "serde_urlencoded"
-version = "0.7.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "edfa57a7f8d9c1d260a549e7224100f6c43d43f9103e06dd8b4095a9b2b43ce9"
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
 dependencies = [
  "form_urlencoded",
- "itoa",
+ "itoa 1.0.6",
  "ryu",
  "serde",
 ]
@@ -2556,40 +2704,52 @@ checksum = "729a25c17d72b06c68cb47955d44fda88ad2d3e7d77e025663fdd69b93dd71a1"
 
 [[package]]
 name = "slab"
-version = "0.4.3"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f173ac3d1a7e3b28003f40de0b5ce7fe2710f9b9dc3fc38664cebee46b3b6527"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
 
 [[package]]
 name = "smallvec"
-version = "1.6.1"
+version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
 name = "smithay-client-toolkit"
-version = "0.15.4"
+version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a28f16a97fa0e8ce563b2774d1e732dd5d4025d2772c5dba0a41a0f90a29da3"
+checksum = "922fd3eeab3bd820d76537ce8f582b1cf951eceb5475c28500c7457d9d17f53a"
 dependencies = [
- "bitflags 1.2.1",
+ "bitflags 2.4.1",
+ "bytemuck",
  "calloop",
- "dlib",
- "lazy_static",
+ "calloop-wayland-source",
+ "cursor-icon",
+ "libc",
  "log",
- "memmap2",
- "nix 0.22.3",
+ "memmap2 0.9.4",
  "pkg-config",
+ "rustix",
+ "thiserror",
+ "wayland-backend",
  "wayland-client",
+ "wayland-csd-frame",
  "wayland-cursor",
  "wayland-protocols",
+ "wayland-protocols-wlr",
+ "wayland-scanner",
+ "xkbcommon",
+ "xkeysym",
 ]
 
 [[package]]
 name = "socket2"
-version = "0.4.1"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "765f090f0e423d2b55843402a07915add955e7d60657db13707a159727326cad"
+checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
 dependencies = [
  "libc",
  "winapi 0.3.9",
@@ -2602,12 +2762,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
 
 [[package]]
-name = "squote"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fccf17fd09e2455ea796d2ad267b64fa2c5cbd8701b2a93b555d2aa73449f7d"
-
-[[package]]
 name = "string_cache"
 version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2615,7 +2769,7 @@ checksum = "8ddb1139b5353f96e429e1a5e19fbaf663bddedaa06d1dbd49f82e352601209a"
 dependencies = [
  "lazy_static",
  "new_debug_unreachable",
- "phf_shared",
+ "phf_shared 0.8.0",
  "precomputed-hash",
  "serde",
 ]
@@ -2626,10 +2780,10 @@ version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f24c8e5e19d22a726626f1a5e16fe15b132dcf21d10177fa5a45ce7962996b97"
 dependencies = [
- "phf_generator",
- "phf_shared",
+ "phf_generator 0.8.0",
+ "phf_shared 0.8.0",
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
 ]
 
 [[package]]
@@ -2646,11 +2800,11 @@ checksum = "4ca6e4730f517e041e547ffe23d29daab8de6b73af4b6ae2a002108169f5e7da"
 
 [[package]]
 name = "strum"
-version = "0.20.0"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7318c509b5ba57f18533982607f24070a55d353e90d4cae30c467cdb2ad5ac5c"
+checksum = "f7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729e"
 dependencies = [
- "strum_macros 0.20.1",
+ "strum_macros 0.22.0",
 ]
 
 [[package]]
@@ -2665,13 +2819,13 @@ dependencies = [
 
 [[package]]
 name = "strum_macros"
-version = "0.20.1"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee8bc6b87a5112aeeab1f4a9f7ab634fe6cbefc4850006df31267f4cfb9e3149"
+checksum = "339f799d8b549e3744c7ac7feb216383e4005d94bdb22561b3ab8f3b808ae9fb"
 dependencies = [
- "heck",
+ "heck 0.3.2",
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
 ]
 
@@ -2693,11 +2847,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6498a9efc342871f91cc2d0d694c674368b4ceb40f62b65a7a08c3792935e702"
 dependencies = [
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "unicode-xid 0.2.1",
 ]
 
 [[package]]
+name = "syn"
+version = "2.0.48"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
+dependencies = [
+ "proc-macro2",
+ "quote 1.0.35",
+ "unicode-ident",
+]
+
+[[package]]
 name = "synom"
 version = "0.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2721,9 +2886,9 @@ dependencies = [
 
 [[package]]
 name = "sysinfo"
-version = "0.24.5"
+version = "0.28.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d80929a3b477bce3a64360ca82bfb361eacce1dcb7b1fb31e8e5e181e37c212"
+checksum = "b4c2f3ca6693feb29a89724516f016488e9aafc7f37264f898593ee4b942f31b"
 dependencies = [
  "cfg-if 1.0.0",
  "core-foundation-sys",
@@ -2796,7 +2961,7 @@ checksum = "956044ef122917dde830c19dec5f76d0670329fde4104836d62ebcb14f4865f1"
 dependencies = [
  "cfg-if 1.0.0",
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
  "version_check",
 ]
@@ -2812,22 +2977,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.23"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76cc616c6abf8c8928e2fdcc0dbfab37175edd8fb49a4641066ad1364fdab146"
+checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.23"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9be73a2caec27583d0046ef3796c3794f868a5bc813db689eed00c7631275cd1"
+checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
 dependencies = [
  "proc-macro2",
- "quote 1.0.9",
- "syn 1.0.67",
+ "quote 1.0.35",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2858,18 +3023,18 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
 
 [[package]]
 name = "tokio"
-version = "1.10.1"
+version = "1.28.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92036be488bb6594459f2e03b60e42df6f937fe6ca5c5ffdcb539c6b84dc40f5"
+checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2"
 dependencies = [
  "autocfg",
  "bytes",
  "libc",
- "memchr",
- "mio 0.7.13",
+ "mio 0.8.6",
  "num_cpus",
  "pin-project-lite",
- "winapi 0.3.9",
+ "socket2",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -2884,9 +3049,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-rustls"
-version = "0.22.0"
+version = "0.23.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6"
+checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59"
 dependencies = [
  "rustls",
  "tokio",
@@ -2895,16 +3060,16 @@ dependencies = [
 
 [[package]]
 name = "tokio-util"
-version = "0.6.7"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1caa0b0c8d94a049db56b5acf8cba99dc0623aab1b26d5b5f5e2d945846b3592"
+checksum = "cc463cd8deddc3770d20f9852143d50bf6094e640b485cb2e189a2099085ff45"
 dependencies = [
  "bytes",
  "futures-core",
  "futures-sink",
- "log",
  "pin-project-lite",
  "tokio",
+ "tracing",
 ]
 
 [[package]]
@@ -2924,22 +3089,21 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6"
 
 [[package]]
 name = "tracing"
-version = "0.1.26"
+version = "0.1.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09adeb8c97449311ccd28a427f96fb563e7fd31aabf994189879d9da2394b89d"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
 dependencies = [
- "cfg-if 1.0.0",
  "pin-project-lite",
  "tracing-core",
 ]
 
 [[package]]
 name = "tracing-core"
-version = "0.1.19"
+version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ca517f43f0fb96e0c3072ed5c275fe5eece87e8cb52f4a77b69226d3b1c9df8"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
 dependencies = [
- "lazy_static",
+ "once_cell",
 ]
 
 [[package]]
@@ -2976,6 +3140,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "246f4c42e67e7a4e3c6106ff716a5d067d4132a642840b242e357e468a2a0085"
 
 [[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
 name = "unicode-normalization"
 version = "0.1.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3099,14 +3269,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
 
 [[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
 name = "wasm-bindgen"
 version = "0.2.76"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8ce9b1b516211d33767048e5d47fa2a381ed8b76fc48d2ce4aa39877f9f183e0"
 dependencies = [
  "cfg-if 1.0.0",
- "serde",
- "serde_json",
  "wasm-bindgen-macro",
 ]
 
@@ -3120,7 +3294,7 @@ dependencies = [
  "lazy_static",
  "log",
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
  "wasm-bindgen-shared",
 ]
@@ -3143,7 +3317,7 @@ version = "0.2.76"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "44468aa53335841d9d6b6c023eaab07c0cd4bddbcfdee3e2bb1e8d2cb8069fef"
 dependencies = [
- "quote 1.0.9",
+ "quote 1.0.35",
  "wasm-bindgen-macro-support",
 ]
 
@@ -3154,7 +3328,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0195807922713af1e67dc66132c7328206ed9766af3858164fb583eedc25fbad"
 dependencies = [
  "proc-macro2",
- "quote 1.0.9",
+ "quote 1.0.35",
  "syn 1.0.67",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
@@ -3167,75 +3341,97 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "acdb075a845574a1fa5f09fd77e43f7747599301ea3417a9fbffdeedfc1f4a29"
 
 [[package]]
-name = "wayland-client"
-version = "0.29.5"
+name = "wayland-backend"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715"
+checksum = "9d50fa61ce90d76474c87f5fc002828d81b32677340112b4ef08079a9d459a40"
 dependencies = [
- "bitflags 1.2.1",
+ "cc",
  "downcast-rs",
- "libc",
- "nix 0.24.2",
+ "rustix",
  "scoped-tls",
- "wayland-commons",
- "wayland-scanner",
+ "smallvec",
  "wayland-sys",
 ]
 
 [[package]]
-name = "wayland-commons"
-version = "0.29.5"
+name = "wayland-client"
+version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902"
+checksum = "82fb96ee935c2cea6668ccb470fb7771f6215d1691746c2d896b447a00ad3f1f"
 dependencies = [
- "nix 0.24.2",
- "once_cell",
- "smallvec",
- "wayland-sys",
+ "bitflags 2.4.1",
+ "rustix",
+ "wayland-backend",
+ "wayland-scanner",
+]
+
+[[package]]
+name = "wayland-csd-frame"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e"
+dependencies = [
+ "bitflags 2.4.1",
+ "cursor-icon",
+ "wayland-backend",
 ]
 
 [[package]]
 name = "wayland-cursor"
-version = "0.29.5"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661"
+checksum = "71ce5fa868dd13d11a0d04c5e2e65726d0897be8de247c0c5a65886e283231ba"
 dependencies = [
- "nix 0.24.2",
+ "rustix",
  "wayland-client",
  "xcursor",
 ]
 
 [[package]]
 name = "wayland-protocols"
-version = "0.29.5"
+version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6"
+checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4"
 dependencies = [
- "bitflags 1.2.1",
+ "bitflags 2.4.1",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-scanner",
+]
+
+[[package]]
+name = "wayland-protocols-wlr"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6"
+dependencies = [
+ "bitflags 2.4.1",
+ "wayland-backend",
  "wayland-client",
- "wayland-commons",
+ "wayland-protocols",
  "wayland-scanner",
 ]
 
 [[package]]
 name = "wayland-scanner"
-version = "0.29.5"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53"
+checksum = "63b3a62929287001986fb58c789dce9b67604a397c15c611ad9f747300b6c283"
 dependencies = [
  "proc-macro2",
- "quote 1.0.9",
- "xml-rs 0.8.3",
+ "quick-xml",
+ "quote 1.0.35",
 ]
 
 [[package]]
 name = "wayland-sys"
-version = "0.29.5"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4"
+checksum = "15a0c8eaff5216d07f226cb7a549159267f3467b289d9a2e52fd3ef5aae2b7af"
 dependencies = [
  "dlib",
- "lazy_static",
+ "log",
  "pkg-config",
 ]
 
@@ -3251,9 +3447,9 @@ dependencies = [
 
 [[package]]
 name = "webpki"
-version = "0.21.4"
+version = "0.22.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea"
+checksum = "07ecc0cd7cac091bf682ec5efa18b1cff79d617b84181f38b3951dbe135f607f"
 dependencies = [
  "ring",
  "untrusted",
@@ -3261,9 +3457,9 @@ dependencies = [
 
 [[package]]
 name = "webpki-roots"
-version = "0.21.1"
+version = "0.22.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940"
+checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87"
 dependencies = [
  "webpki",
 ]
@@ -3319,85 +3515,239 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windows"
-version = "0.3.1"
+version = "0.24.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "426842497696b65fbfc575691d94ef65befb248ed1a8c4361e293c724e7ebe61"
+checksum = "a9f39345ae0c8ab072c0ac7fe8a8b411636aa34f89be19ddd0d9226544f13944"
 dependencies = [
- "const-sha1",
- "windows_gen",
- "windows_macros",
- "windows_winmd",
+ "windows_i686_gnu 0.24.0",
+ "windows_i686_msvc 0.24.0",
+ "windows_x86_64_gnu 0.24.0",
+ "windows_x86_64_msvc 0.24.0",
 ]
 
 [[package]]
-name = "windows_gen"
-version = "0.3.1"
+name = "windows-sys"
+version = "0.45.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77ac8f0f06b647f42ee5459a8e1ffe41795647582c5926ec3fa363a91aad7d77"
+checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
 dependencies = [
- "proc-macro2",
- "quote 1.0.9",
- "squote",
- "syn 1.0.67",
- "windows_gen_macros",
- "windows_winmd",
+ "windows-targets 0.42.2",
 ]
 
 [[package]]
-name = "windows_gen_macros"
-version = "0.3.1"
+name = "windows-sys"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23eac2169a20173b890c496f9e0e1149a92ef29fe4ba96026b72eec363b993f9"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
- "proc-macro2",
- "quote 1.0.9",
- "syn 1.0.67",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
-name = "windows_macros"
-version = "0.3.1"
+name = "windows-sys"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9edc57c944eec106c7823b425ab0fd9f90163489e50a4df747f65fcf9030e1fb"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "proc-macro2",
- "quote 1.0.9",
- "squote",
- "syn 1.0.67",
- "windows_gen",
- "windows_winmd",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
-name = "windows_winmd"
-version = "0.3.1"
+name = "windows-targets"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16d44527d04c9713312ed598f5d6ce3c453754dbfc03ddc376615be4415ffc88"
+checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
 dependencies = [
- "windows_winmd_macros",
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
 ]
 
 [[package]]
-name = "windows_winmd_macros"
-version = "0.3.1"
+name = "windows-targets"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2353f43f512938450614a176abf2b6cb31ac3b84fd71c88470fee571303e3f36"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
- "proc-macro2",
- "quote 1.0.9",
- "syn 1.0.67",
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
 ]
 
 [[package]]
-name = "winreg"
-version = "0.7.0"
+name = "windows-targets"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
 dependencies = [
- "winapi 0.3.9",
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
 ]
 
 [[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0866510a3eca9aed73a077490bbbf03e5eaac4e1fd70849d89539e5830501fd"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf0ffed56b7e9369a29078d2ab3aaeceea48eb58999d2cff3aa2494a275b95c6"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "384a173630588044205a2993b6864a2f56e5a8c1e7668c07b93ec18cf4888dc4"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bd8f062d8ca5446358159d79a90be12c543b3a965c847c8f3eedf14b321d399"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+
+[[package]]
 name = "winreg"
 version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3407,6 +3757,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "winreg"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d"
+dependencies = [
+ "winapi 0.3.9",
+]
+
+[[package]]
 name = "winres"
 version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3439,13 +3798,13 @@ dependencies = [
 
 [[package]]
 name = "winrt-notification"
-version = "0.3.1"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5ee9845acda665033013f93baec4f71ac0e60a391b530a5a83bdb966c1807ca"
+checksum = "007a0353840b23e0c6dc73e5b962ff58ed7f6bc9ceff3ce7fe6fbad8d496edf4"
 dependencies = [
- "strum 0.20.0",
+ "strum 0.22.0",
  "windows",
- "xml-rs 0.8.3",
+ "xml-rs 0.8.8",
 ]
 
 [[package]]
@@ -3468,6 +3827,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "xkbcommon"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13867d259930edc7091a6c41b4ce6eee464328c6ff9659b7e4c668ca20d4c91e"
+dependencies = [
+ "libc",
+ "memmap2 0.8.0",
+ "xkeysym",
+]
+
+[[package]]
+name = "xkeysym"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "054a8e68b76250b253f671d1268cb7f1ae089ec35e195b2efb2a4e9a836d0621"
+dependencies = [
+ "bytemuck",
+]
+
+[[package]]
 name = "xml-rs"
 version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3478,20 +3857,19 @@ dependencies = [
 
 [[package]]
 name = "xml-rs"
-version = "0.8.3"
+version = "0.8.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b07db065a5cf61a7e4ba64f29e67db906fb1787316516c4e6e5ff0fea1efcd8a"
+checksum = "4f20f14e2bd1fef6ec891d50dbb37c7290a0568a6bbd9020bf62010d02b6f80e"
 
 [[package]]
 name = "xml5ever"
-version = "0.16.1"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b1b52e6e8614d4a58b8e70cf51ec0cc21b256ad8206708bcff8139b5bbd6a59"
+checksum = "4034e1d05af98b51ad7214527730626f019682d797ba38b51689212118d8e650"
 dependencies = [
  "log",
  "mac",
  "markup5ever",
- "time",
 ]
 
 [[package]]
diff --git a/pkgs/applications/office/espanso/default.nix b/pkgs/applications/office/espanso/default.nix
index daa0114b018ca..c8883f36339e4 100644
--- a/pkgs/applications/office/espanso/default.nix
+++ b/pkgs/applications/office/espanso/default.nix
@@ -28,6 +28,7 @@
 , QTKit
 , AVKit
 , WebKit
+, System
 , waylandSupport ? false
 , x11Support ? stdenv.isLinux
 , testers
@@ -39,13 +40,13 @@ assert stdenv.isDarwin -> !x11Support;
 assert stdenv.isDarwin -> !waylandSupport;
 rustPlatform.buildRustPackage rec {
   pname = "espanso";
-  version = "2.1.8";
+  version = "2.2-unstable-2024-05-14";
 
   src = fetchFromGitHub {
     owner = "espanso";
     repo = "espanso";
-    rev = "v${version}";
-    hash = "sha256-5TUo5B1UZZARgTHbK2+520e3mGZkZ5tTez1qvZvMnxs=";
+    rev = "8daadcc949c35a7b7aa20b7f544fdcff83e2c5f7";
+    hash = "sha256-4MArENBmX6tDVLZE1O8cuJe7A0R+sLZoxBkDvIwIVZ4=";
   };
 
   cargoLock = {
@@ -55,10 +56,6 @@ rustPlatform.buildRustPackage rec {
     };
   };
 
-  cargoPatches = lib.optionals stdenv.isDarwin [
-    ./inject-wx-on-darwin.patch
-  ];
-
   nativeBuildInputs = [
     extra-cmake-modules
     pkg-config
@@ -70,7 +67,7 @@ rustPlatform.buildRustPackage rec {
   buildNoDefaultFeatures = true;
   buildFeatures = [
     "modulo"
-  ] ++ lib.optionals waylandSupport[
+  ] ++ lib.optionals waylandSupport [
     "wayland"
   ] ++ lib.optionals stdenv.isLinux [
     "vendored-tls"
@@ -96,6 +93,7 @@ rustPlatform.buildRustPackage rec {
     QTKit
     AVKit
     WebKit
+    System
   ] ++ lib.optionals waylandSupport [
     wl-clipboard
   ] ++ lib.optionals x11Support [
@@ -108,39 +106,39 @@ rustPlatform.buildRustPackage rec {
 
   postPatch = lib.optionalString stdenv.isDarwin ''
     substituteInPlace scripts/create_bundle.sh \
-      --replace target/mac/ $out/Applications/ \
-      --replace /bin/echo ${coreutils}/bin/echo
+      --replace-fail target/mac/ $out/Applications/ \
+      --replace-fail /bin/echo ${coreutils}/bin/echo
     patchShebangs scripts/create_bundle.sh
     substituteInPlace espanso/src/res/macos/Info.plist \
-      --replace "<string>espanso</string>" "<string>${placeholder "out"}/Applications/Espanso.app/Contents/MacOS/espanso</string>"
-    substituteInPlace espanso/src/res/macos/com.federicoterzi.espanso.plist \
-      --replace "<string>/Applications/Espanso.app/Contents/MacOS/espanso</string>" "<string>${placeholder "out"}/Applications/Espanso.app/Contents/MacOS/espanso</string>" \
-      --replace "<string>/usr/bin" "<string>${placeholder "out"}/bin:/usr/bin"
+      --replace-fail "<string>espanso</string>" "<string>${placeholder "out"}/Applications/Espanso.app/Contents/MacOS/espanso</string>"
     substituteInPlace espanso/src/path/macos.rs  espanso/src/path/linux.rs \
-      --replace '"/usr/local/bin/espanso"' '"${placeholder "out"}/bin/espanso"'
+      --replace-fail '"/usr/local/bin/espanso"' '"${placeholder "out"}/bin/espanso"'
   '';
 
   # Some tests require networking
   doCheck = false;
 
-  postInstall = if stdenv.isDarwin then ''
-    EXEC_PATH=$out/bin/espanso BUILD_ARCH=current ${stdenv.shell} ./scripts/create_bundle.sh
-  '' else ''
-    wrapProgram $out/bin/espanso \
-      --prefix PATH : ${lib.makeBinPath (
-        lib.optionals stdenv.isLinux [
-          libnotify
-          setxkbmap
-        ] ++ lib.optionals waylandSupport [
-          wl-clipboard
-        ] ++ lib.optionals x11Support [
-          xclip
-        ]
-      )}
-  '';
+  postInstall =
+    if stdenv.isDarwin then ''
+      EXEC_PATH=$out/bin/espanso BUILD_ARCH=current ${stdenv.shell} ./scripts/create_bundle.sh
+    '' else ''
+      wrapProgram $out/bin/espanso \
+        --prefix PATH : ${lib.makeBinPath (
+          lib.optionals stdenv.isLinux [
+            libnotify
+            setxkbmap
+          ] ++ lib.optionals waylandSupport [
+            wl-clipboard
+          ] ++ lib.optionals x11Support [
+            xclip
+          ]
+        )}
+    '';
 
   passthru.tests.version = testers.testVersion {
     package = espanso;
+    # remove when updating to a release version
+    version = "2.2.1";
   };
 
   meta = with lib; {
@@ -148,8 +146,15 @@ rustPlatform.buildRustPackage rec {
     mainProgram = "espanso";
     homepage = "https://espanso.org";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ kimat pyrox0 ];
+    maintainers = with maintainers; [ kimat pyrox0 n8henrie ];
     platforms = platforms.unix;
+    # With apple_sdk_10_12,
+    # kCFURLVolumeAvailableCapacityForImportantUsageKey
+    # is undefined.
+    # With apple_sdk_11_0, there is an issue with
+    # kColorSyncGenericGrayProfile.
+    broken = stdenv.hostPlatform.system == "x86_64-darwin";
+
 
     longDescription = ''
       Espanso detects when you type a keyword and replaces it while you're typing.
diff --git a/pkgs/applications/office/espanso/inject-wx-on-darwin.patch b/pkgs/applications/office/espanso/inject-wx-on-darwin.patch
deleted file mode 100644
index 34b7112119274..0000000000000
--- a/pkgs/applications/office/espanso/inject-wx-on-darwin.patch
+++ /dev/null
@@ -1,223 +0,0 @@
-From 6a7400c20831c5ff502c7336d6db2be743f156be Mon Sep 17 00:00:00 2001
-From: Nikola Knezevic <nikola.knezevic@imc.com>
-Date: Tue, 16 Aug 2022 22:28:46 +0200
-Subject: [PATCH] Build using system wx on darwin
-
----
- espanso-modulo/build.rs | 174 ++++------------------------------------
- 1 file changed, 17 insertions(+), 157 deletions(-)
-
-diff --git a/espanso-modulo/build.rs b/espanso-modulo/build.rs
-index b8b889a..5d972ec 100644
---- a/espanso-modulo/build.rs
-+++ b/espanso-modulo/build.rs
-@@ -156,161 +156,6 @@ fn build_native() {
-   );
- }
- 
--#[cfg(target_os = "macos")]
--fn build_native() {
--  use std::process::Command;
--
--  let project_dir =
--    PathBuf::from(std::env::var("CARGO_MANIFEST_DIR").expect("missing CARGO_MANIFEST_DIR"));
--  let wx_archive = project_dir.join("vendor").join(WX_WIDGETS_ARCHIVE_NAME);
--  if !wx_archive.is_file() {
--    panic!("could not find wxWidgets archive!");
--  }
--
--  let out_dir = if let Ok(out_path) = std::env::var(WX_WIDGETS_BUILD_OUT_DIR_ENV_NAME) {
--    println!(
--      "detected wxWidgets build output directory override: {}",
--      out_path
--    );
--    let path = PathBuf::from(out_path);
--    std::fs::create_dir_all(&path).expect("unable to create wxWidgets out dir");
--    path
--  } else {
--    PathBuf::from(std::env::var("OUT_DIR").expect("missing OUT_DIR"))
--  };
--  let out_wx_dir = out_dir.join("wx");
--  println!("wxWidgets will be compiled into: {}", out_wx_dir.display());
--
--  let target_arch = match std::env::var("CARGO_CFG_TARGET_ARCH")
--    .expect("unable to read target arch")
--    .as_str()
--  {
--    "x86_64" => "x86_64",
--    "aarch64" => "arm64",
--    arch => panic!("unsupported arch {}", arch),
--  };
--
--  let should_use_ci_m1_workaround =
--    std::env::var("CI").unwrap_or_default() == "true" && target_arch == "arm64";
--
--  if !out_wx_dir.is_dir() {
--    // Extract the wxWidgets archive
--    let wx_archive =
--      std::fs::File::open(&wx_archive).expect("unable to open wxWidgets source archive");
--    let mut archive = zip::ZipArchive::new(wx_archive).expect("unable to read wxWidgets archive");
--    archive
--      .extract(&out_wx_dir)
--      .expect("unable to extract wxWidgets source dir");
--
--    // Compile wxWidgets
--    let build_dir = out_wx_dir.join("build-cocoa");
--    std::fs::create_dir_all(&build_dir).expect("unable to create build-cocoa directory");
--
--    let mut handle = if should_use_ci_m1_workaround {
--      // Because of a configuration problem on the GitHub CI pipeline,
--      // we need to use a series of workarounds to build for M1 machines.
--      // See: https://github.com/actions/virtual-environments/issues/3288#issuecomment-830207746
--      Command::new(out_wx_dir.join("configure"))
--        .current_dir(build_dir.to_string_lossy().to_string())
--        .args(&[
--          "--disable-shared",
--          "--without-libtiff",
--          "--without-liblzma",
--          "--with-libjpeg=builtin",
--          "--with-libpng=builtin",
--          "--enable-universal-binary=arm64,x86_64",
--        ])
--        .spawn()
--        .expect("failed to execute configure")
--    } else {
--      Command::new(out_wx_dir.join("configure"))
--        .current_dir(build_dir.to_string_lossy().to_string())
--        .args(&[
--          "--disable-shared",
--          "--without-libtiff",
--          "--without-liblzma",
--          "--with-libjpeg=builtin",
--          "--with-libpng=builtin",
--          &format!("--enable-macosx_arch={}", target_arch),
--        ])
--        .spawn()
--        .expect("failed to execute configure")
--    };
--
--    if !handle
--      .wait()
--      .expect("unable to wait for configure command")
--      .success()
--    {
--      panic!("configure returned non-zero exit code!");
--    }
--
--    let mut handle = Command::new("make")
--      .current_dir(build_dir.to_string_lossy().to_string())
--      .args(&["-j8"])
--      .spawn()
--      .expect("failed to execute make");
--    if !handle
--      .wait()
--      .expect("unable to wait for make command")
--      .success()
--    {
--      panic!("make returned non-zero exit code!");
--    }
--  }
--
--  // Make sure wxWidgets is compiled
--  if !out_wx_dir.join("build-cocoa").is_dir() {
--    panic!("wxWidgets is not compiled correctly, missing 'build-cocoa/' directory")
--  }
--
--  // If using the M1 CI workaround, convert all the universal libraries to arm64 ones
--  // This is needed until https://github.com/rust-lang/rust/issues/55235 is fixed
--  if should_use_ci_m1_workaround {
--    convert_fat_libraries_to_arm(&out_wx_dir.join("build-cocoa").join("lib"));
--    convert_fat_libraries_to_arm(&out_wx_dir.join("build-cocoa"));
--  }
--
--  let config_path = out_wx_dir.join("build-cocoa").join("wx-config");
--  let cpp_flags = get_cpp_flags(&config_path);
--
--  let mut build = cc::Build::new();
--  build
--    .cpp(true)
--    .file("src/sys/form/form.cpp")
--    .file("src/sys/common/common.cpp")
--    .file("src/sys/search/search.cpp")
--    .file("src/sys/wizard/wizard.cpp")
--    .file("src/sys/wizard/wizard_gui.cpp")
--    .file("src/sys/welcome/welcome.cpp")
--    .file("src/sys/welcome/welcome_gui.cpp")
--    .file("src/sys/textview/textview.cpp")
--    .file("src/sys/textview/textview_gui.cpp")
--    .file("src/sys/troubleshooting/troubleshooting.cpp")
--    .file("src/sys/troubleshooting/troubleshooting_gui.cpp")
--    .file("src/sys/common/mac.mm");
--  build.flag("-std=c++17");
--
--  for flag in cpp_flags {
--    build.flag(&flag);
--  }
--
--  build.compile("espansomodulosys");
--
--  // Render linker flags
--
--  generate_linker_flags(&config_path);
--
--  // On (older) OSX we need to link against the clang runtime,
--  // which is hidden in some non-default path.
--  //
--  // More details at https://github.com/alexcrichton/curl-rust/issues/279.
--  if let Some(path) = macos_link_search_path() {
--    println!("cargo:rustc-link-lib=clang_rt.osx");
--    println!("cargo:rustc-link-search={}", path);
--  }
--}
--
- #[cfg(target_os = "macos")]
- fn convert_fat_libraries_to_arm(lib_dir: &Path) {
-   for entry in
-@@ -440,12 +285,17 @@ fn macos_link_search_path() -> Option<String> {
-   None
- }
- 
-+#[cfg(not(target_os = "macos"))]
-+fn macos_link_search_path() -> Option<String> {
-+    return None
-+}
-+
- // TODO: add documentation for linux
- // Install wxWidgets:
- // sudo apt install libwxgtk3.0-0v5 libwxgtk3.0-dev
- //
- // cargo run
--#[cfg(target_os = "linux")]
-+#[cfg(not(target_os = "windows"))]
- fn build_native() {
-   // Make sure wxWidgets is installed
-   // Depending on the installation package, the 'wx-config' command might also be available as 'wx-config-gtk3',
-@@ -483,7 +333,8 @@ fn build_native() {
-     .file("src/sys/textview/textview.cpp")
-     .file("src/sys/textview/textview_gui.cpp")
-     .file("src/sys/troubleshooting/troubleshooting.cpp")
--    .file("src/sys/troubleshooting/troubleshooting_gui.cpp");
-+    .file("src/sys/troubleshooting/troubleshooting_gui.cpp")
-+    .file("src/sys/common/mac.mm");
-   build.flag("-std=c++17");
- 
-   for flag in cpp_flags {
-@@ -495,6 +346,15 @@ fn build_native() {
-   // Render linker flags
- 
-   generate_linker_flags(&config_path);
-+
-+  // On (older) OSX we need to link against the clang runtime,
-+  // which is hidden in some non-default path.
-+  //
-+  // More details at https://github.com/alexcrichton/curl-rust/issues/279.
-+  if let Some(path) = macos_link_search_path() {
-+    println!("cargo:rustc-link-lib=clang_rt.osx");
-+    println!("cargo:rustc-link-search={}", path);
-+  }
- }
- 
- fn main() {
--- 
-2.37.1
-
diff --git a/pkgs/applications/office/mendeley/default.nix b/pkgs/applications/office/mendeley/default.nix
index 38c4fdb78cd83..aa31b5f55f2e1 100644
--- a/pkgs/applications/office/mendeley/default.nix
+++ b/pkgs/applications/office/mendeley/default.nix
@@ -7,13 +7,13 @@
 
 let
   pname = "mendeley";
-  version = "2.114.1";
+  version = "2.115.0";
 
   executableName = "${pname}-reference-manager";
 
   src = fetchurl {
     url = "https://static.mendeley.com/bin/desktop/mendeley-reference-manager-${version}-x86_64.AppImage";
-    hash = "sha256-bvX5onyTPc4G+9PcrSXhsfkNbU6DZ5T3ljf+r77bjKw=";
+    hash = "sha256-ir96BQQ+dlUv2aNU9iQ+jnpeLE3D3ow9RPGstREUWNA=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/applications/office/morgen/default.nix b/pkgs/applications/office/morgen/default.nix
index 5f6c9ea5c1197..4bd45374ece26 100644
--- a/pkgs/applications/office/morgen/default.nix
+++ b/pkgs/applications/office/morgen/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "morgen";
-  version = "3.4.2";
+  version = "3.4.3";
 
   src = fetchurl {
     url = "https://dl.todesktop.com/210203cqcj00tw1/versions/${version}/linux/deb";
-    hash = "sha256-N9G9yfUhKZd3dcsyBKODL6vnMqQgLk2DRQ+YZAYdPks=";
+    hash = "sha256-QxbvD18yoIidiDoU7FsCpdgYZolp8LRx93d1GTjtnfA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/p3x-onenote/default.nix b/pkgs/applications/office/p3x-onenote/default.nix
index 730a9d81b2f55..08e86d5013288 100644
--- a/pkgs/applications/office/p3x-onenote/default.nix
+++ b/pkgs/applications/office/p3x-onenote/default.nix
@@ -11,8 +11,8 @@ let
   }.${stdenv.hostPlatform.system};
 
   sha256 = {
-    aarch64-linux = "0plpwymm1bgzbzwk2689lw1fadxdwxzzn5dmayk1ayxz1k3pj9wi";
-    armv7l-linux = "1pvr8f1ccl4nyfmshn3v3jfaa5x519rsy57g4pdapffj10vpbkb8";
+    aarch64-linux = "sha256-HFuxmMo0m4UOxEQVd32LGvbFsOS8jwCCCS6K/YJIIBE=";
+    armv7l-linux = "sha256-JMgYvqkaRw5sfjbKybAkk28KT12+c19dMir2DUN7Ub0=";
     x86_64-linux = "sha256-hr/mPOrliP8Dej3DVE2+wYkb1J789WCkkY3xe9EcM44=";
   }.${stdenv.hostPlatform.system};
 
diff --git a/pkgs/applications/office/qownnotes/default.nix b/pkgs/applications/office/qownnotes/default.nix
index e417fee4a433a..3003475b22771 100644
--- a/pkgs/applications/office/qownnotes/default.nix
+++ b/pkgs/applications/office/qownnotes/default.nix
@@ -21,14 +21,14 @@
 let
   pname = "qownnotes";
   appname = "QOwnNotes";
-  version = "24.5.4";
+  version = "24.5.8";
 in
 stdenv.mkDerivation {
   inherit pname version;
 
   src = fetchurl {
     url = "https://github.com/pbek/QOwnNotes/releases/download/v${version}/qownnotes-${version}.tar.xz";
-    hash = "sha256-OxCkIN596Zzjd2ldRn7MRpSupb2fhbZH4Hwr16Mz6Fo=";
+    hash = "sha256-ciTgJxDRQdPiQuXsiesYgvwSIdtJnkzYwQhvoKYS6mo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/treesheets/default.nix b/pkgs/applications/office/treesheets/default.nix
index c0aef4fad1856..1af2bbe23c358 100644
--- a/pkgs/applications/office/treesheets/default.nix
+++ b/pkgs/applications/office/treesheets/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "treesheets";
-  version = "0-unstable-2024-05-18";
+  version = "0-unstable-2024-05-20";
 
   src = fetchFromGitHub {
     owner = "aardappel";
     repo = "treesheets";
-    rev = "dfbea81adc25e109dfe5482cc09508f612aaa84d";
-    hash = "sha256-Hh42q7soCCXY7AMTH3bLMlUJ72y3QOyC/1nFUQPMFaM=";
+    rev = "149d3377692cf5c585522f9245d9eb5dd7ddb742";
+    hash = "sha256-qqeK13EazfdQteYcBMgWQ/0F4sBaOYCUpw7BMwfoe7k=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/zk/default.nix b/pkgs/applications/office/zk/default.nix
index 6cdbb0d63af25..96429770662a1 100644
--- a/pkgs/applications/office/zk/default.nix
+++ b/pkgs/applications/office/zk/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "zk";
-  version = "0.14.0";
+  version = "0.14.1";
 
   src = fetchFromGitHub {
-    owner = "mickael-menu";
+    owner = "zk-org";
     repo = "zk";
     rev = "v${version}";
-    sha256 = "sha256-c0Grk5Bs9MOzuvWYbp+Y6cHouljUWoM3i7vFmQRFR18=";
+    sha256 = "sha256-PbF2k7b03Oo3fIWIN4BHUZJ625HUeX+htT9FTINowIs=";
   };
 
-  vendorHash = "sha256-23m0fHYJl3X2uHCFnMYID9umTjZvGFoOKTtRrerlWKg=";
+  vendorHash = "sha256-UZsJa5hmMQwe9lhrp4ey8GGTkWUF8xJW+LPWMR0qfoo=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/radio/chirp/default.nix b/pkgs/applications/radio/chirp/default.nix
index 9854fa8076efe..7b330453a2f2f 100644
--- a/pkgs/applications/radio/chirp/default.nix
+++ b/pkgs/applications/radio/chirp/default.nix
@@ -10,13 +10,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "chirp";
-  version = "0.4.0-unstable-2024-05-10";
+  version = "0.4.0-unstable-2024-05-23";
 
   src = fetchFromGitHub {
     owner = "kk7ds";
     repo = "chirp";
-    rev = "d5dc5c8e053dbcf87c8b0ccf03109c0870c22bfb";
-    hash = "sha256-Tqq1dTjtzHTgaHUAio5B8V4Bo+P8EPa3s/kG181TrCc=";
+    rev = "743c98a579018238595f6e022e38e4f97f23140d";
+    hash = "sha256-ooadPzP9UIhMHbl5v2H3eV0uZQqnNCXpwRjgbD8tFjA=";
   };
   buildInputs = [
     glib
diff --git a/pkgs/applications/radio/cloudlog/default.nix b/pkgs/applications/radio/cloudlog/default.nix
index 162c9cac96589..76ed366bce645 100644
--- a/pkgs/applications/radio/cloudlog/default.nix
+++ b/pkgs/applications/radio/cloudlog/default.nix
@@ -8,13 +8,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "cloudlog";
-  version = "2.6.12";
+  version = "2.6.13";
 
   src = fetchFromGitHub {
     owner = "magicbug";
     repo = "Cloudlog";
     rev = version;
-    hash = "sha256-djY+TqkA+YFCmUwZd1x4YeJDOS6ZtxDb4EhBmyftSzI=";
+    hash = "sha256-jhg6Rdd/QhsKZHaeE/2Rh0o0uLD5Jd+3mfXmkpbFcEM=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/radio/qlog/default.nix b/pkgs/applications/radio/qlog/default.nix
index e89b1014e528b..2f14292e66704 100644
--- a/pkgs/applications/radio/qlog/default.nix
+++ b/pkgs/applications/radio/qlog/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qlog";
-  version = "0.35.1";
+  version = "0.35.2";
 
   src = fetchFromGitHub {
     owner = "foldynl";
     repo = "QLog";
     rev = "v${version}";
-    hash = "sha256-qmTep8cwNFxgvWO6tOtk+kwjhEltjJTc0Fo4o01GzIo=";
+    hash = "sha256-3ht3/J4uJ7Nyfp0xpVDYa8GnV/EvHjf09XGSEBLRGZU=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/radio/quisk/default.nix b/pkgs/applications/radio/quisk/default.nix
index 733f908ffc44f..6593d276a51f6 100644
--- a/pkgs/applications/radio/quisk/default.nix
+++ b/pkgs/applications/radio/quisk/default.nix
@@ -8,11 +8,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "quisk";
-  version = "4.2.33";
+  version = "4.2.34";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-41eyqYxRg0crtN6qp239eHWSFPt7XuJneTAndZuS3EY=";
+    sha256 = "sha256-PwBQmL6CnDp55eLhXr3vpJXf4DcKAwzFSCnzxt5Nob4=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/radio/sdrangel/default.nix b/pkgs/applications/radio/sdrangel/default.nix
index 639fee520c85f..daf5abd644e1e 100644
--- a/pkgs/applications/radio/sdrangel/default.nix
+++ b/pkgs/applications/radio/sdrangel/default.nix
@@ -52,13 +52,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "sdrangel";
-  version = "7.20.1";
+  version = "7.21.0";
 
   src = fetchFromGitHub {
     owner = "f4exb";
     repo = "sdrangel";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-8v00JiPRCFqg+6wEZw5BrsHMvUYweigbroBHKQGOlHI=";
+    hash = "sha256-TbOGuxFFBSjva1dbZxd2oQJs6X43QWYSU6VjlXKlDfk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/science/biology/last/default.nix b/pkgs/applications/science/biology/last/default.nix
index 85fb1ca80ac65..700b2cf3b4548 100644
--- a/pkgs/applications/science/biology/last/default.nix
+++ b/pkgs/applications/science/biology/last/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "last";
-  version = "1543";
+  version = "1544";
 
   src = fetchFromGitLab {
     owner = "mcfrith";
     repo = "last";
     rev = "refs/tags/${version}";
-    hash = "sha256-APHPv7Q64JITfHsvjCThZ6hvGHerk6wjOm32KdTv4k8=";
+    hash = "sha256-jxNudfUvSqV1QUzdvG8LWtL977oho9QuOQImmwbQiIM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/science/biology/sratoolkit/default.nix b/pkgs/applications/science/biology/sratoolkit/default.nix
index a36157ed5d169..fa406716fd0f1 100644
--- a/pkgs/applications/science/biology/sratoolkit/default.nix
+++ b/pkgs/applications/science/biology/sratoolkit/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/ncbi/sra-tools";
     description = "The SRA Toolkit and SDK from NCBI is a collection of tools and libraries for using data in the INSDC Sequence Read Archives.";
-    license = licenses.publicDomain;
+    license = licenses.ncbiPd;
     maintainers = with maintainers; [ thyol ];
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/applications/science/logic/cbmc/0001-Do-not-download-sources-in-cmake.patch b/pkgs/applications/science/logic/cbmc/0001-Do-not-download-sources-in-cmake.patch
index 181214093ef8a..c209ed059e44f 100644
--- a/pkgs/applications/science/logic/cbmc/0001-Do-not-download-sources-in-cmake.patch
+++ b/pkgs/applications/science/logic/cbmc/0001-Do-not-download-sources-in-cmake.patch
@@ -1,4 +1,4 @@
-From 206084d2e08198b0b5b67733c407bd3fb74affb1 Mon Sep 17 00:00:00 2001
+From 714f5ebe9ade721abdccf58edfcddba52465cb8d Mon Sep 17 00:00:00 2001
 From: Jiajie Chen <c@jia.je>
 Date: Sun, 2 Jul 2023 22:43:27 +0800
 Subject: [PATCH] Do not download sources in cmake
@@ -8,7 +8,7 @@ Subject: [PATCH] Do not download sources in cmake
  1 file changed, 1 insertion(+), 10 deletions(-)
 
 diff --git a/src/solvers/CMakeLists.txt b/src/solvers/CMakeLists.txt
-index 8bfcf4d13c..6ba858a461 100644
+index daa0853a57..4bcbbdaa47 100644
 --- a/src/solvers/CMakeLists.txt
 +++ b/src/solvers/CMakeLists.txt
 @@ -123,16 +123,6 @@ foreach(SOLVER ${sat_impl})
@@ -16,11 +16,11 @@ index 8bfcf4d13c..6ba858a461 100644
          message(STATUS "Building solvers with cadical")
  
 -        download_project(PROJ cadical
--            URL https://github.com/arminbiere/cadical/archive/rel-1.5.3.tar.gz
--            PATCH_COMMAND patch -p1 -i ${CBMC_SOURCE_DIR}/../scripts/cadical-1.5.3-patch
+-            URL https://github.com/arminbiere/cadical/archive/rel-1.7.2.tar.gz
+-            PATCH_COMMAND patch -p1 -i ${CBMC_SOURCE_DIR}/../scripts/cadical-1.7.2-patch
 -            COMMAND cmake -E copy ${CBMC_SOURCE_DIR}/../scripts/cadical_CMakeLists.txt CMakeLists.txt
 -            COMMAND ./configure
--            URL_MD5 265b1a715000ed3c5b6de36ddd1278a0
+-            URL_MD5 be646831a017f81b300664e58deba1b5
 -        )
 -
 -        add_subdirectory(${cadical_SOURCE_DIR} ${cadical_BINARY_DIR})
@@ -32,10 +32,10 @@ index 8bfcf4d13c..6ba858a461 100644
          target_include_directories(solvers
              PUBLIC
              ${cadical_SOURCE_DIR}/src
-+	    ${cadical_INCLUDE_DIR}
++            ${cadical_INCLUDE_DIR}
          )
  
          target_link_libraries(solvers cadical)
 -- 
-2.40.1
+2.42.0
 
diff --git a/pkgs/applications/science/logic/cbmc/default.nix b/pkgs/applications/science/logic/cbmc/default.nix
index 6a878735bb3d9..dcf5b5bb37fa2 100644
--- a/pkgs/applications/science/logic/cbmc/default.nix
+++ b/pkgs/applications/science/logic/cbmc/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cbmc";
-  version = "5.91.0";
+  version = "5.95.1";
 
   src = fetchFromGitHub {
     owner = "diffblue";
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "sha256-7DzhGEDS9T6WIjGoxOw9Gf/q+tYNFJDPbQUBV3tbn/I=";
+    sha256 = "sha256-fDLSo5EeHyPTliAqFp+5mfaB0iZXIMXeMyF21fjl5k4=";
   };
 
   nativeBuildInputs = [
@@ -82,7 +82,7 @@ stdenv.mkDerivation rec {
     license = licenses.bsdOriginal;
     maintainers = with maintainers; [ jiegec ];
     platforms = platforms.unix;
-    # https://github.com/diffblue/cbmc/issues/7423
-    broken = stdenv.isLinux && stdenv.isAarch64;
+    # error: no member named 'aligned_alloc' in the global namespace
+    broken = stdenv.isDarwin && stdenv.isx86_64;
   };
 }
diff --git a/pkgs/applications/science/logic/hol_light/default.nix b/pkgs/applications/science/logic/hol_light/default.nix
index 813397ba01f93..0e3dee4b0c0ad 100644
--- a/pkgs/applications/science/logic/hol_light/default.nix
+++ b/pkgs/applications/science/logic/hol_light/default.nix
@@ -1,8 +1,12 @@
-{ lib, stdenv, runtimeShell, fetchFromGitHub, fetchpatch, ocaml, findlib, num, camlp5, camlp-streams }:
+{ lib, stdenv, runtimeShell, fetchFromGitHub, fetchpatch, ocaml, findlib, num, zarith, camlp5, camlp-streams }:
 
 let
+  use_zarith = lib.versionAtLeast ocaml.version "4.14";
   load_num =
-    lib.optionalString (num != null) ''
+    if use_zarith then ''
+      -I ${zarith}/lib/ocaml/${ocaml.version}/site-lib/zarith \
+      -I ${zarith}/lib/ocaml/${ocaml.version}/site-lib/stublibs \
+    '' else lib.optionalString (num != null) ''
       -I ${num}/lib/ocaml/${ocaml.version}/site-lib/num \
       -I ${num}/lib/ocaml/${ocaml.version}/site-lib/top-num \
       -I ${num}/lib/ocaml/${ocaml.version}/site-lib/stublibs \
@@ -22,18 +26,15 @@ let
     '';
 in
 
-lib.throwIf (lib.versionAtLeast ocaml.version "5.0")
-  "hol_light is not available for OCaml ${ocaml.version}"
-
 stdenv.mkDerivation {
   pname = "hol_light";
-  version = "unstable-2023-11-03";
+  version = "unstable-2024-05-10";
 
   src = fetchFromGitHub {
     owner = "jrh13";
     repo = "hol-light";
-    rev = "dcd765c6032f52a0c0bf21fce5da4794a823e880";
-    hash = "sha256-k2RBNDo4tc3eobKB84Y2xr0UQJvef0hv6jyFCaDCQFM=";
+    rev = "d8366986e22555c4e4c8ff49667d646d15c35f14";
+    hash = "sha256-dN9X7yQlFof759I5lxxL4DxDe8V3XAhCRaryO9NabY4=";
   };
 
   patches = [
@@ -46,7 +47,10 @@ stdenv.mkDerivation {
   strictDeps = true;
 
   nativeBuildInputs = [ ocaml findlib camlp5 ];
-  propagatedBuildInputs = [ camlp-streams num ];
+  propagatedBuildInputs = [
+    camlp-streams
+    (if use_zarith then zarith else num)
+  ];
 
   installPhase = ''
     mkdir -p "$out/lib/hol_light" "$out/bin"
diff --git a/pkgs/applications/science/math/fricas/default.nix b/pkgs/applications/science/math/fricas/default.nix
index 355238ace15ce..41dc9d66b8a74 100644
--- a/pkgs/applications/science/math/fricas/default.nix
+++ b/pkgs/applications/science/math/fricas/default.nix
@@ -1,20 +1,27 @@
-{ lib, stdenv, fetchurl, sbcl, libX11, libXpm, libICE, libSM, libXt, libXau, libXdmcp }:
+{ lib, stdenv, fetchFromGitHub, sbcl, libX11, libXpm, libICE, libSM, libXt, libXau, libXdmcp }:
 
 stdenv.mkDerivation rec {
   pname = "fricas";
-  version = "1.3.9";
+  version = "1.3.10";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/fricas/fricas/${version}/fricas-${version}-full.tar.bz2";
-    sha256 = "sha256-5RPcffM0GN0l6r8IgHJlwdxwwp2y4kIdJ5M3JnGZCzc=";
+  src = fetchFromGitHub {
+    owner = "fricas";
+    repo = "fricas";
+    rev = version;
+    sha256 = "sha256-T1xDndDnHq/hmhTWWO3Eu0733u8+C8sJMCF6pbLU2GI=";
   };
 
   buildInputs = [ sbcl libX11 libXpm libICE libSM libXt libXau libXdmcp ];
 
+  # Remove when updating to next version
+  configurePhase = ''
+    ./configure --prefix=$out --with-lisp='sbcl --dynamic-space-size 3072'
+  '';
+
   dontStrip = true;
 
   meta = {
-    homepage = "https://fricas.sourceforge.net/";
+    homepage = "https://fricas.github.io";
     description = "An advanced computer algebra system";
     license = lib.licenses.bsd3;
 
diff --git a/pkgs/applications/science/math/gretl/default.nix b/pkgs/applications/science/math/gretl/default.nix
index 552639de6c532..d99a49acd9c62 100644
--- a/pkgs/applications/science/math/gretl/default.nix
+++ b/pkgs/applications/science/math/gretl/default.nix
@@ -19,11 +19,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gretl";
-  version = "2024a";
+  version = "2024b";
 
   src = fetchurl {
     url = "mirror://sourceforge/gretl/gretl-${finalAttrs.version}.tar.xz";
-    hash = "sha256-6ha0d/n75Xf0hZM0GRHLOnM274P1h2MerB/8SHWTh+o=";
+    hash = "sha256-mkmOmKO2tiAysZhwC8kNuCXNml8NdFPfaNFykdxYFAY=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/science/math/sage/sage-src.nix b/pkgs/applications/science/math/sage/sage-src.nix
index b1c9c62a5748b..de0c2e3b1e20e 100644
--- a/pkgs/applications/science/math/sage/sage-src.nix
+++ b/pkgs/applications/science/math/sage/sage-src.nix
@@ -61,12 +61,19 @@ stdenv.mkDerivation rec {
       hash = "sha256-uCXchYx26DdxTjR1k2748KCEHPnekKS2fAM7SpyhNvM=";
     })
 
-    # https://github.com/sagemath/sage/pull/37763
+    # https://github.com/sagemath/sage/pull/37763, landed in 10.4.beta2
     (fetchpatch {
       name = "scipy-fault-tolerance.patch";
-      url = "https://github.com/sagemath/sage/commit/547d502ed56f9fd44eb5d9b4ee0824746c60fef7.diff";
+      url = "https://github.com/sagemath/sage/commit/551139c09f26a5da96b1187c3f0dd17b8d80ef84.diff";
       hash = "sha256-PR4przrZ3ieHaW2nSY7l7VhNfrUupu9yCIrXpeyoAgg=";
     })
+
+    # first two commits from https://github.com/sagemath/sage/pull/38100
+    (fetchpatch {
+      name = "sphinx-7.3-update.patch";
+      url = "https://github.com/sagemath/sage/compare/10.4.beta7...d2932e142991b442a3eee5dc4f8949e3f7e6fe5c.patch";
+      hash = "sha256-g6w0ImE0d2ocKnbGMQikcz9eI9r3/gESlA1NrQfGimk=";
+    })
   ];
 
   # Patches needed because of package updates. We could just pin the versions of
diff --git a/pkgs/applications/science/math/sage/sagedoc.nix b/pkgs/applications/science/math/sage/sagedoc.nix
index 5e2191486bf08..cbf593398ac44 100644
--- a/pkgs/applications/science/math/sage/sagedoc.nix
+++ b/pkgs/applications/science/math/sage/sagedoc.nix
@@ -24,10 +24,6 @@ stdenv.mkDerivation rec {
     export HOME="$TMPDIR/sage_home"
     mkdir -p "$HOME"
 
-    # adapted from src/doc/Makefile (doc-src target), which tries to call Sage from PATH
-    mkdir -p $SAGE_DOC_SRC_OVERRIDE/en/reference/repl
-    ${sage-with-env}/bin/sage -advanced > $SAGE_DOC_SRC_OVERRIDE/en/reference/repl/options.txt
-
     # needed to link them in the sage docs using intersphinx
     export PPLPY_DOCS=${python3.pkgs.pplpy.doc}/share/doc/pplpy
 
diff --git a/pkgs/applications/science/misc/boinc/default.nix b/pkgs/applications/science/misc/boinc/default.nix
index 6a0aafad3e914..0c559a530e089 100644
--- a/pkgs/applications/science/misc/boinc/default.nix
+++ b/pkgs/applications/science/misc/boinc/default.nix
@@ -27,14 +27,14 @@
 
 stdenv.mkDerivation rec {
   pname = "boinc";
-  version = "8.0.1";
+  version = "8.0.2";
 
   src = fetchFromGitHub {
     name = "${pname}-${version}-src";
     owner = "BOINC";
     repo = "boinc";
     rev = "client_release/${lib.versions.majorMinor version}/${version}";
-    hash = "sha256-pjk9+VRWrFIoHolIEEWlRx89hifLNeFtIi34F1OBD38=";
+    hash = "sha256-e0zEdiN3QQHj6MNGd1pfaZf3o9rOpCTmuNSJQb3sss4=";
   };
 
   nativeBuildInputs = [ libtool automake autoconf m4 pkg-config ];
diff --git a/pkgs/applications/science/misc/openrefine/default.nix b/pkgs/applications/science/misc/openrefine/default.nix
index 9f2ef0f29b31f..6a9d4be6c50b2 100644
--- a/pkgs/applications/science/misc/openrefine/default.nix
+++ b/pkgs/applications/science/misc/openrefine/default.nix
@@ -15,12 +15,12 @@ let
     inherit jdk;
   };
 
-  version = "3.7.9";
+  version = "3.8.1";
   src = fetchFromGitHub {
     owner = "openrefine";
     repo = "openrefine";
     rev = version;
-    hash = "sha256-wtg0BOGr/aJPZeFQbJSBHtTVfpcSCSHP++8AnpS8pgQ=";
+    hash = "sha256-MnFwFJdKIU7D8GQgnDvCO+P8r8h1Se/wmbt/Z3EX+3Q=";
   };
 
   npmPkg = buildNpmPackage {
@@ -29,7 +29,7 @@ let
     pname = "openrefine-npm";
     sourceRoot = "${src.name}/main/webapp";
 
-    npmDepsHash = "sha256-8GhcL4tohQ5u2HeYN6JyTMMobUOqAL8ETCLiP1SoDSk=";
+    npmDepsHash = "sha256-u9qledNFqGgMmOIsm2T8w3UoaLbb7WtksUw6xLoRgU8=";
 
     # package.json doesn't supply a version, which npm doesn't like - fix this.
     # directly referencing jq because buildNpmPackage doesn't pass
@@ -56,19 +56,11 @@ in maven'.buildMavenPackage {
     cp -r ${npmPkg} main/webapp/modules/core/3rdparty
   '';
   mvnParameters = "-DskipTests=true -pl !packaging";
-  mvnHash = "sha256-MqE+iloqzBav6E3/rf1LP5BlKhW/FBIt6+6U+S8UJWA=";
+  mvnHash = "sha256-0qsKUMV9M0ZaddR5ust8VikSrsutdxVNNezKqR+F/6M=";
 
   nativeBuildInputs = [ makeWrapper ];
 
-  installPhase = let
-    gitProperties = writeText "git.properties" (builtins.toJSON {
-      "git.build.version" = version;
-      "git.branch" = "none";
-      "git.build.time" = "1970-01-01T00:00:00+0000";
-      "git.commit.id.abbrev" = "none";
-      "git.commit.id.describe" = "none";
-    });
-  in ''
+  installPhase = ''
     mkdir -p $out/lib/server/target/lib
     cp -r server/target/lib/* $out/lib/server/target/lib/
     cp server/target/openrefine-*-server.jar $out/lib/server/target/lib/
@@ -85,8 +77,6 @@ in maven'.buildMavenPackage {
       done
     )
 
-    cp ${gitProperties} $out/lib/webapp/WEB-INF/classes/git.properties
-
     mkdir -p $out/etc
     cp refine.ini $out/etc/
 
diff --git a/pkgs/applications/science/misc/snakemake/default.nix b/pkgs/applications/science/misc/snakemake/default.nix
index 1a171f2c7db5d..56d1d7206249d 100644
--- a/pkgs/applications/science/misc/snakemake/default.nix
+++ b/pkgs/applications/science/misc/snakemake/default.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "snakemake";
-  version = "8.11.4";
+  version = "8.11.6";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "snakemake";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-nfPA2sQCeRc12A4rrlo17UPpiB8plKYbiumZjS7Yhz8=";
+    hash = "sha256-00Zh8NenBikdingmx34WYYH5SF+yazeAs+7h1/3UIJY=";
     # https://github.com/python-versioneer/python-versioneer/issues/217
     postFetch = ''
       sed -i "$out"/snakemake/_version.py -e 's#git_refnames = ".*"#git_refnames = " (tag: v${version})"#'
diff --git a/pkgs/applications/science/networking/sumo/default.nix b/pkgs/applications/science/networking/sumo/default.nix
index 956691582bda3..16ce24ca3e8a4 100644
--- a/pkgs/applications/science/networking/sumo/default.nix
+++ b/pkgs/applications/science/networking/sumo/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sumo";
-  version = "1.19.0";
+  version = "1.20.0";
 
   src = fetchFromGitHub {
     owner = "eclipse";
     repo = "sumo";
     rev = "v${lib.replaceStrings ["."] ["_"] version}";
-    sha256 = "sha256-uB7Gy0uX3LsZDeeITyjl7DN76TFJQKgsQs4RoDVfSmY=";
+    sha256 = "sha256-y/bkdDWrb1KB0EOVSJPfPVYHGp/zQ2+Shb6eLsFQRNQ=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/system/glances/default.nix b/pkgs/applications/system/glances/default.nix
index 323d7c5e81fd6..fb0ba15955268 100644
--- a/pkgs/applications/system/glances/default.nix
+++ b/pkgs/applications/system/glances/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonApplication rec {
   pname = "glances";
-  version = "3.4.0.5";
+  version = "4.0.6";
   disabled = isPyPy;
 
   src = fetchFromGitHub {
     owner = "nicolargo";
     repo = "glances";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Ho4vcmTEVja7rkgLSfNkXvnpopYupRxPL1UVlnmdGCg=";
+    hash = "sha256-FkAMsfr/bO7Chemw4hhVt2SKkSyPLECNVuOsOxKWsGE=";
   };
 
   # On Darwin this package segfaults due to mismatch of pure and impure
diff --git a/pkgs/applications/terminal-emulators/kitty/default.nix b/pkgs/applications/terminal-emulators/kitty/default.nix
index 5e31ac572cab3..708ffd8ecbbe9 100644
--- a/pkgs/applications/terminal-emulators/kitty/default.nix
+++ b/pkgs/applications/terminal-emulators/kitty/default.nix
@@ -31,20 +31,20 @@
 with python3Packages;
 buildPythonApplication rec {
   pname = "kitty";
-  version = "0.34.1";
+  version = "0.35.0";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "kovidgoyal";
     repo = "kitty";
     rev = "refs/tags/v${version}";
-    hash = "sha256-r7KZcSqREILMp0F9ajeHS5sglq/o88h2t+4BgbABjOY=";
+    hash = "sha256-d/pPoa+bY7FAjFcd+32aXKDevJRoCGA209uLZ/4WRpQ=";
   };
 
   goModules = (buildGo122Module {
     pname = "kitty-go-modules";
     inherit src version;
-    vendorHash = "sha256-HNE0MWjL0PH20Glzb0GV6+lQu/Lslx8k/+YvlLHbHww=";
+    vendorHash = "sha256-rEG3mmghvEih2swm+2gp/G9EC2YdyjaOnvq+tALC3jo=";
   }).goModules;
 
   buildInputs = [
diff --git a/pkgs/applications/version-management/commitizen/default.nix b/pkgs/applications/version-management/commitizen/default.nix
index d9dfb5af12bc8..f0cfc626c4fa7 100644
--- a/pkgs/applications/version-management/commitizen/default.nix
+++ b/pkgs/applications/version-management/commitizen/default.nix
@@ -11,7 +11,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "commitizen";
-  version = "3.26.0";
+  version = "3.27.0";
   format = "pyproject";
 
   disabled = python3.pythonOlder "3.8";
@@ -20,7 +20,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "commitizen-tools";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-tj+zH94IiFqkmkIqyNmgQgQNjvqWgCviLzfGrrCHX1k=";
+    hash = "sha256-Bfz9MBpFsbAcsyQ7CYyObE14q7UE9ZyeY1GVFb9maKk=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/applications/version-management/gerrit/default.nix b/pkgs/applications/version-management/gerrit/default.nix
index 41179dfd0bcda..e8bcdb33a95e8 100644
--- a/pkgs/applications/version-management/gerrit/default.nix
+++ b/pkgs/applications/version-management/gerrit/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gerrit";
-  version = "3.9.4";
+  version = "3.10.0";
 
   src = fetchurl {
     url = "https://gerrit-releases.storage.googleapis.com/gerrit-${version}.war";
-    hash = "sha256-pjrWXfae1momJRTfdIPalsLynAGwqp1VtX9M9uqzJwM=";
+    hash = "sha256-mlaXCRQlqg2uwzm2/Vi15K5D6lmUUscfZQk/lW1YR+s=";
   };
 
   buildCommand = ''
diff --git a/pkgs/applications/version-management/gfold/default.nix b/pkgs/applications/version-management/gfold/default.nix
index b60c38fa1d301..fb8cccdda1bde 100644
--- a/pkgs/applications/version-management/gfold/default.nix
+++ b/pkgs/applications/version-management/gfold/default.nix
@@ -11,7 +11,7 @@
 
 let
   pname = "gfold";
-  version = "4.4.1";
+  version = "4.5.0";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -20,10 +20,10 @@ rustPlatform.buildRustPackage {
     owner = "nickgerace";
     repo = pname;
     rev = version;
-    sha256 = "sha256-KKuWPitm7oD2mXPSu2rbOyzwJ9JJ23LBQIIkkPHm1w4=";
+    sha256 = "sha256-7wTU+yVp/GO1H1MbgZKO0OwqSC2jbHO0lU8aa0tHLTY=";
   };
 
-  cargoHash = "sha256-wDUOYK9e0i600UnJ0w0FPI2GhTa/QTq/2+ICiDWrmEU=";
+  cargoHash = "sha256-idzw5dfCCvujvYr7DG0oOzQUIcbACtiIZLoA4MEClzY=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     libiconv
diff --git a/pkgs/applications/version-management/git-delete-merged-branches/default.nix b/pkgs/applications/version-management/git-delete-merged-branches/default.nix
index 08d93bcf69e7d..423dc72d24ffd 100644
--- a/pkgs/applications/version-management/git-delete-merged-branches/default.nix
+++ b/pkgs/applications/version-management/git-delete-merged-branches/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "git-delete-merged-branches";
-  version = "7.4.0";
+  version = "7.4.1";
 
   src = fetchFromGitHub {
     owner = "hartwork";
     repo = pname;
     rev = "refs/tags/${version}";
-    sha256 = "sha256-17uFV3pjklqVW5ofeR54mgMh+q3uUCdqZG00Cc+4zFQ=";
+    sha256 = "sha256-1CUwac2TPU5s1uLS1zPvtXZEGCWYwm1y935jqbI173Q=";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/applications/version-management/git-machete/default.nix b/pkgs/applications/version-management/git-machete/default.nix
index a6cf657d61d70..14bce57de619c 100644
--- a/pkgs/applications/version-management/git-machete/default.nix
+++ b/pkgs/applications/version-management/git-machete/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonApplication rec {
   pname = "git-machete";
-  version = "3.25.2";
+  version = "3.25.3";
 
   src = fetchFromGitHub {
     owner = "virtuslab";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-uTbDrSR2Aqeq73PI0dghCkOQS7QPFb/I9Yrl3wIH9ZQ=";
+    hash = "sha256-2XWQK0dXJeQJsB2FUsLoOA4SIoterb1WGXqYi1JHPQY=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/applications/version-management/git-mit/default.nix b/pkgs/applications/version-management/git-mit/default.nix
index 9c8538d46b781..43d38f95a514b 100644
--- a/pkgs/applications/version-management/git-mit/default.nix
+++ b/pkgs/applications/version-management/git-mit/default.nix
@@ -10,7 +10,7 @@
 }:
 
 let
-  version = "5.12.201";
+  version = "5.12.202";
 in
 rustPlatform.buildRustPackage {
   pname = "git-mit";
@@ -20,10 +20,10 @@ rustPlatform.buildRustPackage {
     owner = "PurpleBooth";
     repo = "git-mit";
     rev = "v${version}";
-    hash = "sha256-nOzyC389bAnhTzDnBviqx7fzkJxj6Rf3FW9ysRs+rWI=";
+    hash = "sha256-f2RiOdJVGfYzMYtgA0diz67h+h7DfTfqTOIpNObNrVc=";
   };
 
-  cargoHash = "sha256-wA68UDFkgvDGOX3t3d7ZyOy4z3qx4vSvup2mRjRM9rY=";
+  cargoHash = "sha256-1xtTgIFaG2KUevxdZyu2IqgBLDgmeBMb7xCOECkieYc=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/applications/version-management/git/default.nix b/pkgs/applications/version-management/git/default.nix
index 375908863a2ab..d7f738adee514 100644
--- a/pkgs/applications/version-management/git/default.nix
+++ b/pkgs/applications/version-management/git/default.nix
@@ -29,7 +29,7 @@ assert sendEmailSupport -> perlSupport;
 assert svnSupport -> perlSupport;
 
 let
-  version = "2.44.1";
+  version = "2.45.1";
   svn = subversionClient.override { perlBindings = perlSupport; };
   gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
 in
@@ -42,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
-    hash = "sha256-e2CmJMD3AJoWuFYlBiGq/c3YXrjUS7AgYXtlJbhyYeQ=";
+    hash = "sha256-5k00Co5ieuIs+4vMZRzKC0l88en99SNzVUT/SnMvEr8=";
   };
 
   outputs = [ "out" ] ++ lib.optional withManual "doc";
@@ -374,6 +374,7 @@ stdenv.mkDerivation (finalAttrs: {
       });
       buildbot-integration = nixosTests.buildbot;
     } // tests.fetchgit;
+    updateScript = ./update.sh;
   };
 
   meta = {
diff --git a/pkgs/applications/version-management/gitea/default.nix b/pkgs/applications/version-management/gitea/default.nix
index 4b2105fda93c0..f7ef0d83c1324 100644
--- a/pkgs/applications/version-management/gitea/default.nix
+++ b/pkgs/applications/version-management/gitea/default.nix
@@ -20,12 +20,12 @@
 
 buildGoModule rec {
   pname = "gitea";
-  version = "1.21.11";
+  version = "1.22.0";
 
   # not fetching directly from the git repo, because that lacks several vendor files for the web UI
   src = fetchurl {
     url = "https://dl.gitea.com/gitea/${version}/gitea-src-${version}.tar.gz";
-    hash = "sha256-TxysXw3lVdV/hlILztM+D7wIpeqXfglAy7Ak2AxnlEM=";
+    hash = "sha256-bU4u/RsE12InXjJ2ZvIL31z9AzB7XULyV0+ytAYnyjg=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/version-management/gitkraken/default.nix b/pkgs/applications/version-management/gitkraken/default.nix
index 7a660dedad81f..69b2f9b2e7e68 100644
--- a/pkgs/applications/version-management/gitkraken/default.nix
+++ b/pkgs/applications/version-management/gitkraken/default.nix
@@ -11,32 +11,32 @@ with lib;
 
 let
   pname = "gitkraken";
-  version = "9.13.0";
+  version = "10.0.1";
 
   throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
 
   srcs = {
     x86_64-linux = fetchzip {
       url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz";
-      hash = "sha256-BBTa/MhfwTZ9YUJSGt8KocPn6f7m+W8G9yJr8I4NAtw=";
+      hash = "sha256-9xGplvSm0SVwNokO5WrEHejY5KhQfaYvIguaNR/IDM4=";
     };
 
     x86_64-darwin = fetchzip {
       url = "https://release.axocdn.com/darwin/GitKraken-v${version}.zip";
-      hash = "sha256-+1N4U5vV8XdHdtPeanjU38c8fzfY0uV0AA6exEe/FzQ=";
+      hash = "sha256-mRMHw6hAQocOFbJBC4LhmxdJ9Xd3ejGiTTwPk5XIeDc=";
     };
 
     aarch64-darwin = fetchzip {
       url = "https://release.axocdn.com/darwin-arm64/GitKraken-v${version}.zip";
-      hash = "sha256-kNX8ptDL8vvFDhH3bDU24A2xN1D+tgpzsCj/zIGqctE=";
+      hash = "sha256-qqeuhhBux6z/uytdmmaTrqz8m+IDfgmQDCdqggBgroY=";
     };
   };
 
   src = srcs.${stdenv.hostPlatform.system} or throwSystem;
 
   meta = {
-    homepage = "https://www.gitkraken.com/";
-    description = "The downright luxurious and most popular Git client for Windows, Mac & Linux";
+    homepage = "https://www.gitkraken.com/git-client";
+    description = "Simplifying Git for any OS";
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = builtins.attrNames srcs;
@@ -97,13 +97,13 @@ let
     ];
 
     desktopItems = [ (makeDesktopItem {
-      name = "GitKraken";
+      name = "GitKraken Desktop";
       exec = "gitkraken";
       icon = "gitkraken";
-      desktopName = "GitKraken";
+      desktopName = "GitKraken Desktop";
       genericName = "Git Client";
       categories = [ "Development" ];
-      comment = "Graphical Git client from Axosoft";
+      comment = "Unleash your repo";
     }) ];
 
     nativeBuildInputs = [ copyDesktopItems (wrapGAppsHook3.override { makeWrapper = makeShellWrapper; }) ];
diff --git a/pkgs/applications/version-management/gitoxide/default.nix b/pkgs/applications/version-management/gitoxide/default.nix
index 40c744e1aed44..1688160c34596 100644
--- a/pkgs/applications/version-management/gitoxide/default.nix
+++ b/pkgs/applications/version-management/gitoxide/default.nix
@@ -18,16 +18,16 @@ let
   gix = "${stdenv.hostPlatform.emulator buildPackages} $out/bin/gix";
 in rustPlatform.buildRustPackage rec {
   pname = "gitoxide";
-  version = "0.35.0";
+  version = "0.36.0";
 
   src = fetchFromGitHub {
     owner = "Byron";
     repo = "gitoxide";
     rev = "v${version}";
-    hash = "sha256-Sl7nNYoiCdTZ50tIfJcq5x9KOBkgJsb5bq09chWbyQc=";
+    hash = "sha256-HXuMcLY5BAC2dODlI6sgwCyGEBDW6ojlHRCBnIQ6P6A=";
   };
 
-  cargoHash = "sha256-G1NWRkhcmFrcHaIxQ7nzvRejPZUuZQDiNonZykkt4qM=";
+  cargoHash = "sha256-v+HVrYMPwbD0RDyxufv11KOnWGbTljpbx6ZlSJ46Olk=";
 
   nativeBuildInputs = [ cmake pkg-config installShellFiles ];
 
diff --git a/pkgs/applications/video/kodi/addons/controller-topology-project/default.nix b/pkgs/applications/video/kodi/addons/controller-topology-project/default.nix
index cfaef2bb7f98e..5b55ab9d1282f 100644
--- a/pkgs/applications/video/kodi/addons/controller-topology-project/default.nix
+++ b/pkgs/applications/video/kodi/addons/controller-topology-project/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, toKodiAddon, addonDir }:
 let
-  drv = stdenv.mkDerivation {
+  drv = stdenv.mkDerivation rec {
     pname = "controller-topology-project";
-    version = "unstable-2022-11-19";
+    version = "1.0.0";
 
     src = fetchFromGitHub {
       owner = "kodi-game";
       repo = "controller-topology-project";
-      rev = "d96894ca68678000f26f56d14aa3ceea47b1a3a8";
-      sha256 = "sha256-KfDr2bSJFey/aNO5WzoOQ8Mz0v4uitKkOesymIMZH1o=";
+      rev = "v${version}";
+      sha256 = "sha256-6g4dyR34b0YgxlzRRS2C/gY3wjlO9MMYEB2fHLSCqC4=";
     };
 
     postPatch = ''
diff --git a/pkgs/applications/video/kodi/addons/invidious/default.nix b/pkgs/applications/video/kodi/addons/invidious/default.nix
index 36ae8608837d2..b975bf48f9d4c 100644
--- a/pkgs/applications/video/kodi/addons/invidious/default.nix
+++ b/pkgs/applications/video/kodi/addons/invidious/default.nix
@@ -1,4 +1,4 @@
-{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, requests, inputstream-adaptive, inputstreamhelper }:
+{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, infotagger, requests, inputstream-adaptive, inputstreamhelper }:
 
 buildKodiAddon rec {
   pname = "invidious";
@@ -11,6 +11,7 @@ buildKodiAddon rec {
   };
 
   propagatedBuildInputs = [
+    infotagger
     requests
     inputstream-adaptive
     inputstreamhelper
diff --git a/pkgs/applications/video/kodi/addons/orftvthek/default.nix b/pkgs/applications/video/kodi/addons/orftvthek/default.nix
index 4a6b4480b0506..45bdbf213bafd 100644
--- a/pkgs/applications/video/kodi/addons/orftvthek/default.nix
+++ b/pkgs/applications/video/kodi/addons/orftvthek/default.nix
@@ -3,13 +3,13 @@
 buildKodiAddon rec {
   pname = "orftvthek";
   namespace = "plugin.video.orftvthek";
-  version = "0.12.9";
+  version = "0.12.12";
 
   src = fetchFromGitHub {
     owner = "s0faking";
     repo = namespace;
     rev = version;
-    sha256 = "sha256-bqGY9PPukn5/HJa3OqU5NM+ReeDJdVn60jXh1+2Qef8=";
+    sha256 = "sha256-4VLr4DFxioCrlq5JtiPyd7E4a+++cWgxCnRb3KPppWE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/video/lightworks/default.nix b/pkgs/applications/video/lightworks/default.nix
index f08b014273c03..ea2f0bde5e33c 100644
--- a/pkgs/applications/video/lightworks/default.nix
+++ b/pkgs/applications/video/lightworks/default.nix
@@ -27,15 +27,15 @@ let
   ];
 
   lightworks = stdenv.mkDerivation rec {
-    version = "2023.1";
-    rev = "141770";
+    version = "2023.2";
+    rev = "146240";
     pname = "lightworks";
 
     src =
       if stdenv.hostPlatform.system == "x86_64-linux" then
         fetchurl {
           url = "https://cdn.lwks.com/releases/${version}/lightworks_${version}_r${rev}.deb";
-          sha256 = "sha256-QRbghrZQbprl2wUBKNMJVBeW0Ek6nWvo4006jyPYIBg=";
+          sha256 = "sha256-sVEDCZZsY5OwuWebrhatzZiws89/tEKIdgY54PN0Ddo=";
         }
       else throw "${pname}-${version} is not supported on ${stdenv.hostPlatform.system}";
 
diff --git a/pkgs/applications/video/makemkv/default.nix b/pkgs/applications/video/makemkv/default.nix
index 261e8008f6bc0..cb568d07cbf30 100644
--- a/pkgs/applications/video/makemkv/default.nix
+++ b/pkgs/applications/video/makemkv/default.nix
@@ -15,21 +15,21 @@
 }:
 
 let
-  version = "1.17.6";
+  version = "1.17.7";
   # Using two URLs as the first one will break as soon as a new version is released
   src_bin = fetchurl {
     urls = [
       "http://www.makemkv.com/download/makemkv-bin-${version}.tar.gz"
       "http://www.makemkv.com/download/old/makemkv-bin-${version}.tar.gz"
     ];
-    sha256 = "KHZGAFAp93HTZs8OT76xf88QM0UtlVVH3q57CZm07Rs=";
+    hash = "sha256-jFvIMbyVKx+HPMhFDGTjktsLJHm2JtGA8P/JZWaJUdA=";
   };
   src_oss = fetchurl {
     urls = [
       "http://www.makemkv.com/download/makemkv-oss-${version}.tar.gz"
       "http://www.makemkv.com/download/old/makemkv-oss-${version}.tar.gz"
     ];
-    sha256 = "2dtNdyv0+QYWQrfrIu5RQKSN4scSWKuLFNlJZXpxDUM=";
+    hash = "sha256-di5VLUb57HWnxi3LfZfA/Z5qFRINDvb1oIDO4pHToO8=";
   };
 in
 mkDerivation {
diff --git a/pkgs/applications/video/media-downloader/default.nix b/pkgs/applications/video/media-downloader/default.nix
index e11b1b1b5bb25..189edf1f48f16 100644
--- a/pkgs/applications/video/media-downloader/default.nix
+++ b/pkgs/applications/video/media-downloader/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "media-downloader";
-  version = "4.6.0";
+  version = "4.7.0";
 
   src = fetchFromGitHub {
     owner = "mhogomchungu";
     repo = "media-downloader";
     rev = finalAttrs.version;
-    hash = "sha256-sl82ZnRqFE3z+EGM+m5rAy4MMrbgkY4PZgyc94x7XUI=";
+    hash = "sha256-ykPYxRgzKZrA0KwS1FoxZOkSL+7TbLgy0yLfs7Iqpf4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/video/mpv/scripts/modernx-zydezu.nix b/pkgs/applications/video/mpv/scripts/modernx-zydezu.nix
index d2832e104ada0..a5f6608bfba7f 100644
--- a/pkgs/applications/video/mpv/scripts/modernx-zydezu.nix
+++ b/pkgs/applications/video/mpv/scripts/modernx-zydezu.nix
@@ -7,14 +7,14 @@
 }:
 buildLua (finalAttrs: {
   pname = "modernx-zydezu";
-  version = "0.3.4";
+  version = "0.3.5.5";
 
   scriptPath = "modernx.lua";
   src = fetchFromGitHub {
     owner = "zydezu";
     repo = "ModernX";
     rev = finalAttrs.version;
-    hash = "sha256-XzzdJLN2DImwo8ZmH1+Q5e2YfwCh7pKyUxjtPd2AMGs=";
+    hash = "sha256-sPpVwI8w5JsP/jML0viOSqhyYBVKfxWuKbxHkX3GVug=";
   };
 
   postInstall = ''
diff --git a/pkgs/applications/video/mpv/scripts/mpvacious.nix b/pkgs/applications/video/mpv/scripts/mpvacious.nix
index 4269131f09045..659dc498f0b11 100644
--- a/pkgs/applications/video/mpv/scripts/mpvacious.nix
+++ b/pkgs/applications/video/mpv/scripts/mpvacious.nix
@@ -10,13 +10,13 @@
 
 buildLua rec {
   pname = "mpvacious";
-  version = "0.33";
+  version = "0.34";
 
   src = fetchFromGitHub {
     owner = "Ajatt-Tools";
     repo = "mpvacious";
     rev = "v${version}";
-    sha256 = "sha256-VHMXW2AzgX88EDnNshxo9Gh8mpXzRoTAq+58HKasUdo=";
+    sha256 = "sha256-YsbeMWGpRi9wUdnrMA2YQXXWQUALxDOTs+gBJ56okkI=";
   };
   passthru.updateScript = gitUpdater { rev-prefix = "v"; };
 
diff --git a/pkgs/applications/video/mpv/scripts/videoclip.nix b/pkgs/applications/video/mpv/scripts/videoclip.nix
index 6e22e1ae68d76..82f912677f14c 100644
--- a/pkgs/applications/video/mpv/scripts/videoclip.nix
+++ b/pkgs/applications/video/mpv/scripts/videoclip.nix
@@ -10,13 +10,13 @@
 }:
 buildLua {
   pname = "videoclip";
-  version = "0-unstable-2024-03-08";
+  version = "0-unstable-2024-05-26";
 
   src = fetchFromGitHub {
     owner = "Ajatt-Tools";
     repo = "videoclip";
-    rev = "0e3f2245b03e888c14c093a50261e0f54ecdf8e8";
-    hash = "sha256-Sg6LHU9OVmVx3cTs8Y0WL8wACb5BlVyeBRccoX+7BXY=";
+    rev = "4fd40d66c95905ed828ca77b7120732014b93ac5";
+    hash = "sha256-Q40a7BBY4c7I5g9HkeV6Twv/PDPBDKTlnxkILw99pxU=";
   };
 
   patchPhase =
diff --git a/pkgs/applications/video/ustreamer/default.nix b/pkgs/applications/video/ustreamer/default.nix
index 294e250f7c8e1..230012dbc5323 100644
--- a/pkgs/applications/video/ustreamer/default.nix
+++ b/pkgs/applications/video/ustreamer/default.nix
@@ -1,19 +1,24 @@
-{ lib, stdenv, fetchFromGitHub, libbsd, libevent, libjpeg }:
+{ lib, stdenv, fetchFromGitHub, libbsd, libevent, libjpeg, libdrm, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "ustreamer";
-  version = "6.4";
+  version = "6.12";
 
   src = fetchFromGitHub {
     owner = "pikvm";
     repo = "ustreamer";
     rev = "v${version}";
-    hash = "sha256-pTfct+nki1t7ltCUnxSyOkDocSr2pkoqOldkECtNfDU=";
+    hash = "sha256-iaCgPHgklk7tbhJhQmyjKggb1bMWBD+Zurgfk9sCQ3E=";
   };
 
-  buildInputs = [ libbsd libevent libjpeg ];
+  buildInputs = [ libbsd libevent libjpeg libdrm ];
 
-  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+  nativeBuildInputs = [ pkg-config ];
+
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+    "WITH_V4P=1"
+  ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/applications/virtualization/nixpacks/default.nix b/pkgs/applications/virtualization/nixpacks/default.nix
index 6d6fd23717e5f..9da8b1fc17476 100644
--- a/pkgs/applications/virtualization/nixpacks/default.nix
+++ b/pkgs/applications/virtualization/nixpacks/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nixpacks";
-  version = "1.22.0";
+  version = "1.23.0";
 
   src = fetchFromGitHub {
     owner = "railwayapp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-O2A75cjTU72DGrg4PmEogN9aANYKIZWUkXfIJXs7CwA=";
+    sha256 = "sha256-M4RZwcFiupZdePDkUWRTiTNA58siMsggTGpvHb8j88Y=";
   };
 
-  cargoHash = "sha256-FS38zqPtmtyV6oSjfxtNMe8n+LMTU1eBN6oX6CGph6k=";
+  cargoHash = "sha256-hSzDboP2YJoPPzugb0ABiogKU7lauJNML8szThB2zqg=";
 
   # skip test due FHS dependency
   doCheck = false;
diff --git a/pkgs/applications/virtualization/qemu/default.nix b/pkgs/applications/virtualization/qemu/default.nix
index 2f87cb4a473bd..c5d3a6fd75685 100644
--- a/pkgs/applications/virtualization/qemu/default.nix
+++ b/pkgs/applications/virtualization/qemu/default.nix
@@ -55,11 +55,11 @@ stdenv.mkDerivation (finalAttrs: {
     + lib.optionalString hostCpuOnly "-host-cpu-only"
     + lib.optionalString nixosTestRunner "-for-vm-tests"
     + lib.optionalString toolsOnly "-utils";
-  version = "8.2.4";
+  version = "9.0.0";
 
   src = fetchurl {
     url = "https://download.qemu.org/qemu-${finalAttrs.version}.tar.xz";
-    hash = "sha256-7PVTf+q5JkG5nXSC9VHyGV06W9NKzvnVK/v/NTpgc5c=";
+    hash = "sha256-MnCKxmww2MiSYz6paMdxwcdtWX1w3erSGg0izPOG2mk=";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ]
@@ -124,11 +124,9 @@ stdenv.mkDerivation (finalAttrs: {
     # Cocoa clipboard support only works on macOS 10.14+
     ./revert-ui-cocoa-add-clipboard-support.patch
     # Standard about panel requires AppKit and macOS 10.13+
-    (fetchpatch {
-      url = "https://gitlab.com/qemu-project/qemu/-/commit/99eb313ddbbcf73c1adcdadceba1423b691c6d05.diff";
-      sha256 = "sha256-gTRf9XENAfbFB3asYCXnw4OV4Af6VE1W56K2xpYDhgM=";
-      revert = true;
-    })
+    ./revert-ui-cocoa-use-the-standard-about-panel.patch
+    # Safe area insets require macOS 11+
+    ./remove-ui-cocoa-use-safe-area-insets.patch
     # Workaround for upstream issue with nested virtualisation: https://gitlab.com/qemu-project/qemu/-/issues/1008
     (fetchpatch {
       url = "https://gitlab.com/qemu-project/qemu/-/commit/3e4546d5bd38a1e98d4bd2de48631abf0398a3a2.diff";
@@ -239,6 +237,10 @@ stdenv.mkDerivation (finalAttrs: {
     # get-fsinfo attempts to access block devices, disallowed by sandbox
     sed -i -e '/\/qga\/get-fsinfo/d' -e '/\/qga\/blacklist/d' \
       ../tests/unit/test-qga.c
+
+    # xattrs are not allowed in the sandbox
+    substituteInPlace ../tests/qtest/virtio-9p-test.c \
+      --replace-fail mapped-xattr mapped-file
   '' + lib.optionalString stdenv.isDarwin ''
     # skip test that stalls on darwin, perhaps due to subtle differences
     # in fifo behaviour
diff --git a/pkgs/applications/virtualization/qemu/remove-ui-cocoa-use-safe-area-insets.patch b/pkgs/applications/virtualization/qemu/remove-ui-cocoa-use-safe-area-insets.patch
new file mode 100644
index 0000000000000..2a8430afaa705
--- /dev/null
+++ b/pkgs/applications/virtualization/qemu/remove-ui-cocoa-use-safe-area-insets.patch
@@ -0,0 +1,14 @@
+diff --git a/ui/cocoa.m b/ui/cocoa.m
+index 25e0db9dd0..7ce889d798 100644
+--- a/ui/cocoa.m
++++ b/ui/cocoa.m
+@@ -539,9 +539,6 @@ - (NSSize)fixAspectRatio:(NSSize)max
+ - (NSSize) screenSafeAreaSize
+ {
+     NSSize size = [[[self window] screen] frame].size;
+-    NSEdgeInsets insets = [[[self window] screen] safeAreaInsets];
+-    size.width -= insets.left + insets.right;
+-    size.height -= insets.top + insets.bottom;
+     return size;
+ }
+ 
diff --git a/pkgs/applications/virtualization/qemu/revert-ui-cocoa-add-clipboard-support.patch b/pkgs/applications/virtualization/qemu/revert-ui-cocoa-add-clipboard-support.patch
index d0e511c0403d7..c429bce03dcf6 100644
--- a/pkgs/applications/virtualization/qemu/revert-ui-cocoa-add-clipboard-support.patch
+++ b/pkgs/applications/virtualization/qemu/revert-ui-cocoa-add-clipboard-support.patch
@@ -47,7 +47,7 @@ index 660d3e0935..0e6760c360 100644
 -static QemuClipboardInfo *cbinfo;
 -static QemuEvent cbevent;
 -
- // Utility functions to run specified code block with iothread lock held
+ // Utility functions to run specified code block with the BQL held
  typedef void (^CodeBlock)(void);
  typedef bool (^BoolCodeBlock)(void);
 @@ -1799,107 +1794,6 @@ static void addRemovableDevicesMenuItems(void)
@@ -65,7 +65,7 @@ index 660d3e0935..0e6760c360 100644
 -        return;
 -    }
 -
--    with_iothread_lock(^{
+-    with_bql(^{
 -        QemuClipboardInfo *info = qemu_clipboard_info_ref(cbinfo);
 -        qemu_event_reset(&cbevent);
 -        qemu_clipboard_request(info, QEMU_CLIPBOARD_TYPE_TEXT);
@@ -73,9 +73,9 @@ index 660d3e0935..0e6760c360 100644
 -        while (info == cbinfo &&
 -               info->types[QEMU_CLIPBOARD_TYPE_TEXT].available &&
 -               info->types[QEMU_CLIPBOARD_TYPE_TEXT].data == NULL) {
--            qemu_mutex_unlock_iothread();
+-            bql_unlock();
 -            qemu_event_wait(&cbevent);
--            qemu_mutex_lock_iothread();
+-            bql_lock();
 -        }
 -
 -        if (info == cbinfo) {
@@ -186,9 +186,9 @@ index 660d3e0935..0e6760c360 100644
  }
  
 @@ -2071,12 +1952,6 @@ static void cocoa_display_init(DisplayState *ds, DisplayOptions *opts)
- 
      // register vga output callbacks
      register_displaychangelistener(&dcl);
+     [cocoaView updateUIInfo];
 -
 -    qemu_event_init(&cbevent, false);
 -    cbowner = [[QemuCocoaPasteboardTypeOwner alloc] init];
diff --git a/pkgs/applications/virtualization/qemu/revert-ui-cocoa-use-the-standard-about-panel.patch b/pkgs/applications/virtualization/qemu/revert-ui-cocoa-use-the-standard-about-panel.patch
new file mode 100644
index 0000000000000..08620da3b9632
--- /dev/null
+++ b/pkgs/applications/virtualization/qemu/revert-ui-cocoa-use-the-standard-about-panel.patch
@@ -0,0 +1,145 @@
+diff --git a/ui/cocoa.m b/ui/cocoa.m
+index 25e0db9dd0..4af0712036 100644
+--- a/ui/cocoa.m
++++ b/ui/cocoa.m
+@@ -93,6 +93,7 @@ static void cocoa_switch(DisplayChangeListener *dcl,
+ 
+ static void cocoa_refresh(DisplayChangeListener *dcl);
+ 
++static NSWindow *about_window;
+ static const DisplayChangeListenerOps dcl_ops = {
+     .dpy_name          = "cocoa",
+     .dpy_gfx_update = cocoa_update,
+@@ -1180,6 +1181,7 @@ - (void)changeDeviceMedia:(id)sender;
+ - (BOOL)verifyQuit;
+ - (void)openDocumentation:(NSString *)filename;
+ - (IBAction) do_about_menu_item: (id) sender;
++- (void)make_about_window;
+ - (void)adjustSpeed:(id)sender;
+ @end
+ 
+@@ -1227,6 +1229,8 @@ - (id) init
+         [pauseLabel setFont: [NSFont fontWithName: @"Helvetica" size: 90]];
+         [pauseLabel setTextColor: [NSColor blackColor]];
+         [pauseLabel sizeToFit];
++
++        [self make_about_window];
+     }
+     return self;
+ }
+@@ -1549,29 +1553,92 @@ - (BOOL)verifyQuit
+ /* The action method for the About menu item */
+ - (IBAction) do_about_menu_item: (id) sender
+ {
+-    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+-    char *icon_path_c = get_relocated_path(CONFIG_QEMU_ICONDIR "/hicolor/512x512/apps/qemu.png");
+-    NSString *icon_path = [NSString stringWithUTF8String:icon_path_c];
+-    g_free(icon_path_c);
+-    NSImage *icon = [[NSImage alloc] initWithContentsOfFile:icon_path];
+-    NSString *version = @"QEMU emulator version " QEMU_FULL_VERSION;
+-    NSString *copyright = @QEMU_COPYRIGHT;
+-    NSDictionary *options;
+-    if (icon) {
+-        options = @{
+-            NSAboutPanelOptionApplicationIcon : icon,
+-            NSAboutPanelOptionApplicationVersion : version,
+-            @"Copyright" : copyright,
+-        };
+-        [icon release];
+-    } else {
+-        options = @{
+-            NSAboutPanelOptionApplicationVersion : version,
+-            @"Copyright" : copyright,
+-        };
+-    }
+-    [NSApp orderFrontStandardAboutPanelWithOptions:options];
+-    [pool release];
++    [about_window makeKeyAndOrderFront: nil];
++}
++
++/* Create and display the about dialog */
++- (void)make_about_window
++{
++    /* Make the window */
++    int x = 0, y = 0, about_width = 400, about_height = 200;
++    NSRect window_rect = NSMakeRect(x, y, about_width, about_height);
++    about_window = [[NSWindow alloc] initWithContentRect:window_rect
++                    styleMask:NSWindowStyleMaskTitled | NSWindowStyleMaskClosable |
++                    NSWindowStyleMaskMiniaturizable
++                    backing:NSBackingStoreBuffered
++                    defer:NO];
++    [about_window setTitle: @"About"];
++    [about_window setReleasedWhenClosed: NO];
++    [about_window center];
++    NSView *superView = [about_window contentView];
++
++    /* Create the dimensions of the picture */
++    int picture_width = 80, picture_height = 80;
++    x = (about_width - picture_width)/2;
++    y = about_height - picture_height - 10;
++    NSRect picture_rect = NSMakeRect(x, y, picture_width, picture_height);
++
++    /* Make the picture of QEMU */
++    NSImageView *picture_view = [[NSImageView alloc] initWithFrame:
++                                                     picture_rect];
++    char *qemu_image_path_c = get_relocated_path(CONFIG_QEMU_ICONDIR "/hicolor/512x512/apps/qemu.png");
++    NSString *qemu_image_path = [NSString stringWithUTF8String:qemu_image_path_c];
++    g_free(qemu_image_path_c);
++    NSImage *qemu_image = [[NSImage alloc] initWithContentsOfFile:qemu_image_path];
++    [picture_view setImage: qemu_image];
++    [picture_view setImageScaling: NSImageScaleProportionallyUpOrDown];
++    [superView addSubview: picture_view];
++
++    /* Make the name label */
++    NSBundle *bundle = [NSBundle mainBundle];
++    if (bundle) {
++        x = 0;
++        y = y - 25;
++        int name_width = about_width, name_height = 20;
++        NSRect name_rect = NSMakeRect(x, y, name_width, name_height);
++        NSTextField *name_label = [[NSTextField alloc] initWithFrame: name_rect];
++        [name_label setEditable: NO];
++        [name_label setBezeled: NO];
++        [name_label setDrawsBackground: NO];
++        [name_label setAlignment: NSTextAlignmentCenter];
++        NSString *qemu_name = [[bundle executablePath] lastPathComponent];
++        [name_label setStringValue: qemu_name];
++        [superView addSubview: name_label];
++    }
++
++    /* Set the version label's attributes */
++    x = 0;
++    y = 50;
++    int version_width = about_width, version_height = 20;
++    NSRect version_rect = NSMakeRect(x, y, version_width, version_height);
++    NSTextField *version_label = [[NSTextField alloc] initWithFrame:
++                                                      version_rect];
++    [version_label setEditable: NO];
++    [version_label setBezeled: NO];
++    [version_label setAlignment: NSTextAlignmentCenter];
++    [version_label setDrawsBackground: NO];
++
++    /* Create the version string*/
++    NSString *version_string;
++    version_string = [[NSString alloc] initWithFormat:
++    @"QEMU emulator version %s", QEMU_FULL_VERSION];
++    [version_label setStringValue: version_string];
++    [superView addSubview: version_label];
++
++    /* Make copyright label */
++    x = 0;
++    y = 35;
++    int copyright_width = about_width, copyright_height = 20;
++    NSRect copyright_rect = NSMakeRect(x, y, copyright_width, copyright_height);
++    NSTextField *copyright_label = [[NSTextField alloc] initWithFrame:
++                                                        copyright_rect];
++    [copyright_label setEditable: NO];
++    [copyright_label setBezeled: NO];
++    [copyright_label setDrawsBackground: NO];
++    [copyright_label setAlignment: NSTextAlignmentCenter];
++    [copyright_label setStringValue: [NSString stringWithFormat: @"%s",
++                                     QEMU_COPYRIGHT]];
++    [superView addSubview: copyright_label];
+ }
+ 
+ /* Used by the Speed menu items */
diff --git a/pkgs/applications/virtualization/singularity/packages.nix b/pkgs/applications/virtualization/singularity/packages.nix
index 8711ab197fa71..eca8c914e6aae 100644
--- a/pkgs/applications/virtualization/singularity/packages.nix
+++ b/pkgs/applications/virtualization/singularity/packages.nix
@@ -9,20 +9,20 @@ let
     callPackage
       (import ./generic.nix rec {
         pname = "apptainer";
-        version = "1.3.1";
+        version = "1.3.2";
         projectName = "apptainer";
 
         src = fetchFromGitHub {
           owner = "apptainer";
           repo = "apptainer";
           rev = "refs/tags/v${version}";
-          hash = "sha256-XhJecINx8jC6pRzIoM4nC6Aunj40xL8EmYIA4UizfAY=";
+          hash = "sha256-NseigaPmRKDsBk8v7RpYf+uoEGvQHVnqOMO49kP0mQ8=";
         };
 
         # Update by running
         # nix-prefetch -E "{ sha256 }: ((import ./. { }).apptainer.override { vendorHash = sha256; }).goModules"
         # at the root directory of the Nixpkgs repository
-        vendorHash = "sha256-MXW1U13uDRAx4tqZvqsuJvoD22nEL2gcxiGaa/6zwU0=";
+        vendorHash = "sha256-W853++SSvkAYYUczbl8vnoBQZnimUdsAEXp4MCkLPBU=";
 
         extraDescription = " (previously known as Singularity)";
         extraMeta.homepage = "https://apptainer.org";
diff --git a/pkgs/applications/virtualization/tart/default.nix b/pkgs/applications/virtualization/tart/default.nix
index 921a8b7e3dbc9..7615c3da26b4e 100644
--- a/pkgs/applications/virtualization/tart/default.nix
+++ b/pkgs/applications/virtualization/tart/default.nix
@@ -10,11 +10,11 @@
 }:
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "tart";
-  version = "2.10.0";
+  version = "2.11.0";
 
   src = fetchurl {
       url = "https://github.com/cirruslabs/tart/releases/download/${finalAttrs.version}/tart-arm64.tar.gz";
-      hash = "sha256-9spBDqNm47nUZEGCCOfISjNpGx/22OtPPheB7iJTq1A=";
+      hash = "sha256-Wf6JfEOUkCpUB0qsAGqh5v/sTV+iQ2NUmXKLyLgxgV0=";
   };
   sourceRoot = ".";
 
diff --git a/pkgs/applications/window-managers/hyprwm/hyprland/default.nix b/pkgs/applications/window-managers/hyprwm/hyprland/default.nix
index 6a2721b8dab9a..decfd5d3cd03f 100644
--- a/pkgs/applications/window-managers/hyprwm/hyprland/default.nix
+++ b/pkgs/applications/window-managers/hyprwm/hyprland/default.nix
@@ -53,26 +53,23 @@ assert lib.assertMsg (!hidpiXWayland) "The option `hidpiXWayland` has been remov
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "hyprland" + lib.optionalString debug "-debug";
-  version = "0.40.0-unstable-2024-05-12";
+  version = "0.40.0-unstable-2024-05-05";
 
   src = fetchFromGitHub {
     owner = "hyprwm";
     repo = finalAttrs.pname;
     fetchSubmodules = true;
-    rev = "2ccd45a84475fab46c6fecd2fe226d3173104743";
-    hash = "sha256-nBCQuRl4sS/G/OUS+txeelFShBEgSk2OrN6kBYMHuOg=";
+    rev = "f15513309b24790099d42974274eb23f66f7c985";
+    hash = "sha256-zKOfgXPTlRqCR+EME4qjN9rgAnC3viI5KWx10dhKszw=";
   };
 
   postPatch = ''
     # Fix hardcoded paths to /usr installation
     sed -i "s#/usr#$out#" src/render/OpenGL.cpp
-
-    # Remove extra @PREFIX@ to fix pkg-config paths
-    sed -i "s#@PREFIX@/##g" hyprland.pc.in
   '';
 
   # used by version.sh
-  DATE = "2024-05-12";
+  DATE = "2024-05-05";
   HASH = finalAttrs.src.rev;
 
   depsBuildBuild = [
diff --git a/pkgs/applications/window-managers/hyprwm/hyprland/plugins.nix b/pkgs/applications/window-managers/hyprwm/hyprland/plugins.nix
index 76754dd5f0d8a..9f677165c0c97 100644
--- a/pkgs/applications/window-managers/hyprwm/hyprland/plugins.nix
+++ b/pkgs/applications/window-managers/hyprwm/hyprland/plugins.nix
@@ -3,6 +3,7 @@
 , pkg-config
 , stdenv
 , hyprland
+, fetchpatch
 }:
 let
   mkHyprlandPlugin = hyprland:
@@ -24,15 +25,27 @@ let
     hy3 = { fetchFromGitHub, cmake, hyprland }:
       mkHyprlandPlugin hyprland {
         pluginName = "hy3";
-        version = "0.39.1";
+        version = "0.40.0";
 
         src = fetchFromGitHub {
           owner = "outfoxxed";
           repo = "hy3";
-          rev = "hl0.39.1";
-          hash = "sha256-PqVld+oFziSt7VZTNBomPyboaMEAIkerPQFwNJL/Wjw=";
+          rev = "hl0.40.0";
+          hash = "sha256-Y9bIML3C5xyKKv+Yel4LUfSkScwGunOVZkg+Z1dPwHI=";
         };
 
+        patches = [
+          (fetchpatch {
+            url = "https://github.com/outfoxxed/hy3/commit/33c8d761ff1c1d2264f7549a7bcfc010929d153c.patch";
+            hash = "sha256-GcLQ38IVGB6VFMviKqWAM9ayjC2lpWekx3kqrnwsLhk=";
+          })
+
+          (fetchpatch {
+            url = "https://github.com/outfoxxed/hy3/commit/400930e0391a0e13ebbc6a3b9fe162e00aaad89a.patch";
+            hash = "sha256-DVrZSkXE4uKrAceGpUZklqrVRzV1CpNRgjpq0uOz0jk=";
+          })
+        ];
+
         nativeBuildInputs = [ cmake ];
 
         dontStrip = true;
diff --git a/pkgs/applications/window-managers/hyprwm/hyprpaper/default.nix b/pkgs/applications/window-managers/hyprwm/hyprpaper/default.nix
index 85ef07039a430..d5df6da46d658 100644
--- a/pkgs/applications/window-managers/hyprwm/hyprpaper/default.nix
+++ b/pkgs/applications/window-managers/hyprwm/hyprpaper/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "hyprpaper";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "hyprwm";
     repo = finalAttrs.pname;
     rev = "v${finalAttrs.version}";
-    hash = "sha256-mqxnaNiCVJS88Dk4V1v2wdS0RaCbOk8HFOUUbp0Uiy0=";
+    hash = "sha256-l13c8ALA7ZKDgluYA1C1OfkDGYD6e1/GR6LJnxCLRhA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/window-managers/jay/default.nix b/pkgs/applications/window-managers/jay/default.nix
index 97be1c5fe2931..e050c604fae17 100644
--- a/pkgs/applications/window-managers/jay/default.nix
+++ b/pkgs/applications/window-managers/jay/default.nix
@@ -15,16 +15,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "jay";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "mahkoh";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-cfX9KcXbBRIaYrR7c+aIQrg+mvLJIM1sEzJ0J7wshMU=";
+    sha256 = "sha256-D+dG0/MSC6LzGZBMNofU8WKVYvn52kNWunXExQPoOu8=";
   };
 
-  cargoHash = "sha256-htAXhjCBOb8qTAAKdFqTaTSefJJTFlvEBYveOokyWjs=";
+  cargoHash = "sha256-WEEAFr5lemyOfeIKC9Pvr9sYMz8rLO6k1BFgbxXJ0Pk=";
 
   SHADERC_LIB_DIR = "${lib.getLib shaderc}/lib";
 
diff --git a/pkgs/build-support/deterministic-uname/default.nix b/pkgs/build-support/deterministic-uname/default.nix
index 6d150557aa9d6..a39ff4c206c7e 100644
--- a/pkgs/build-support/deterministic-uname/default.nix
+++ b/pkgs/build-support/deterministic-uname/default.nix
@@ -30,6 +30,8 @@ substituteAll {
     then "GNU/Linux"
     else if stdenv.buildPlatform.isDarwin
     then "Darwin" # darwin isn't in host-os.m4 so where does this come from?
+    else if stdenv.buildPlatform.isFreeBSD
+    then "FreeBSD"
     else "unknown";
 
   # in os-specific/linux module packages
diff --git a/pkgs/build-support/deterministic-uname/deterministic-uname.sh b/pkgs/build-support/deterministic-uname/deterministic-uname.sh
index 31772aeee3cc1..cb6f419b03311 100644
--- a/pkgs/build-support/deterministic-uname/deterministic-uname.sh
+++ b/pkgs/build-support/deterministic-uname/deterministic-uname.sh
@@ -131,6 +131,8 @@ fi
 #  Darwin *nodename* 22.1.0 Darwin Kernel Version 22.1.0: Sun Oct  9 20:14:30 PDT 2022; root:xnu-8792.41.9~2/RELEASE_ARM64_T8103 arm64 arm Darwin
 # NixOS:
 #  Linux *nodename* 6.0.13 #1-NixOS SMP PREEMPT_DYNAMIC Wed Dec 14 10:41:06 UTC 2022 x86_64 GNU/Linux
+# FreeBSD:
+#  FreeBSD *nodename* 14.0-RELEASE FreeBSD 14.0-RELEASE #0 releng/14.0-n265380-f9716eee8ab4: Fri Nov 10 05:57:23 UTC 2023     root@releng1.nyi.freebsd.org:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64 amd64 AMD Ryzen 9 5950X 16-Core Processor             FreeBSD
 output=()
 if [[ "$all" = "1" ]]; then
     output+=("$KERNEL_NAME_VAL" "$NODENAME_VAL" "$KERNEL_RELEASE_VAL" "$KERNEL_VERSION_VAL" "$MACHINE_VAL")
diff --git a/pkgs/build-support/dotnet/build-dotnet-module/default.nix b/pkgs/build-support/dotnet/build-dotnet-module/default.nix
index 4548616c7d80e..e2ddee48cc006 100644
--- a/pkgs/build-support/dotnet/build-dotnet-module/default.nix
+++ b/pkgs/build-support/dotnet/build-dotnet-module/default.nix
@@ -84,8 +84,6 @@
 , dotnet-sdk ? dotnetCorePackages.sdk_6_0
   # The dotnet runtime to use.
 , dotnet-runtime ? dotnetCorePackages.runtime_6_0
-  # The dotnet SDK to run tests against. This can differentiate from the SDK compiled against.
-, dotnet-test-sdk ? dotnet-sdk
 , ...
 } @ args:
 
@@ -96,7 +94,7 @@ let
     else dotnet-sdk.meta.platforms;
 
   inherit (callPackage ./hooks {
-    inherit dotnet-sdk dotnet-test-sdk disabledTests nuget-source dotnet-runtime runtimeDeps buildType;
+    inherit dotnet-sdk disabledTests nuget-source dotnet-runtime runtimeDeps buildType;
     runtimeId =
       if runtimeId != null
       then runtimeId
diff --git a/pkgs/build-support/dotnet/build-dotnet-module/hooks/default.nix b/pkgs/build-support/dotnet/build-dotnet-module/hooks/default.nix
index 7012ff36a4a55..44091604f5c2c 100644
--- a/pkgs/build-support/dotnet/build-dotnet-module/hooks/default.nix
+++ b/pkgs/build-support/dotnet/build-dotnet-module/hooks/default.nix
@@ -8,7 +8,6 @@
 , makeSetupHook
 , makeWrapper
 , dotnet-sdk
-, dotnet-test-sdk
 , disabledTests
 , nuget-source
 , dotnet-runtime
@@ -22,10 +21,9 @@ let
   libraryPath = lib.makeLibraryPath runtimeDeps;
 in
 {
-  dotnetConfigureHook = callPackage ({ }:
-    makeSetupHook {
+  dotnetConfigureHook = makeSetupHook
+    {
       name = "dotnet-configure-hook";
-      propagatedBuildInputs = [ dotnet-sdk nuget-source ];
       substitutions = {
         nugetSource = nuget-source;
         dynamicLinker = "${stdenv.cc}/nix-support/dynamic-linker";
@@ -38,45 +36,47 @@ in
         ];
         inherit runtimeId;
       };
-    } ./dotnet-configure-hook.sh) { };
+    }
+    ./dotnet-configure-hook.sh;
 
-  dotnetBuildHook = callPackage ({ }:
-    makeSetupHook {
+  dotnetBuildHook = makeSetupHook
+    {
       name = "dotnet-build-hook";
-      propagatedBuildInputs = [ dotnet-sdk ];
       substitutions = {
         inherit buildType runtimeId;
       };
-    } ./dotnet-build-hook.sh) { };
+    }
+    ./dotnet-build-hook.sh;
 
-  dotnetCheckHook = callPackage ({ }:
-    makeSetupHook {
+  dotnetCheckHook = makeSetupHook
+    {
       name = "dotnet-check-hook";
-      propagatedBuildInputs = [ dotnet-test-sdk ];
       substitutions = {
         inherit buildType runtimeId libraryPath;
-        disabledTests = lib.optionalString (disabledTests != [])
-          (let
-            escapedNames = lib.lists.map (n: lib.replaceStrings [","] ["%2C"] n) disabledTests;
-            filters = lib.lists.map (n: "FullyQualifiedName!=${n}") escapedNames;
-          in
-          "${lib.concatStringsSep "&" filters}");
+        disabledTests = lib.optionalString (disabledTests != [ ])
+          (
+            let
+              escapedNames = lib.lists.map (n: lib.replaceStrings [ "," ] [ "%2C" ] n) disabledTests;
+              filters = lib.lists.map (n: "FullyQualifiedName!=${n}") escapedNames;
+            in
+            "${lib.concatStringsSep "&" filters}"
+          );
       };
-    } ./dotnet-check-hook.sh) { };
+    }
+    ./dotnet-check-hook.sh;
 
-  dotnetInstallHook = callPackage ({ }:
-    makeSetupHook {
+  dotnetInstallHook = makeSetupHook
+    {
       name = "dotnet-install-hook";
-      propagatedBuildInputs = [ dotnet-sdk ];
       substitutions = {
         inherit buildType runtimeId;
       };
-    } ./dotnet-install-hook.sh) { };
+    }
+    ./dotnet-install-hook.sh;
 
-  dotnetFixupHook = callPackage ({ }:
-    makeSetupHook {
+  dotnetFixupHook = makeSetupHook
+    {
       name = "dotnet-fixup-hook";
-      propagatedBuildInputs = [ dotnet-runtime ];
       substitutions = {
         dotnetRuntime = dotnet-runtime;
         runtimeDeps = libraryPath;
@@ -85,5 +85,6 @@ in
         dirname = "${coreutils}/bin/dirname";
         realpath = "${coreutils}/bin/realpath";
       };
-    } ./dotnet-fixup-hook.sh) { };
+    }
+    ./dotnet-fixup-hook.sh;
 }
diff --git a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-build-hook.sh b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-build-hook.sh
index 0acfeced9b169..798109291f92a 100644
--- a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-build-hook.sh
+++ b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-build-hook.sh
@@ -41,7 +41,7 @@ dotnetBuildHook() {
             runtimeIdFlags+=("--runtime @runtimeId@")
         fi
 
-        env dotnet build ${project-} \
+        dotnet build ${project-} \
             -maxcpucount:$maxCpuFlag \
             -p:BuildInParallel=$parallelBuildFlag \
             -p:ContinuousIntegrationBuild=true \
diff --git a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-check-hook.sh b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-check-hook.sh
index 507721ef98181..f19bf9f620feb 100644
--- a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-check-hook.sh
+++ b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-check-hook.sh
@@ -22,7 +22,7 @@ dotnetCheckHook() {
             runtimeIdFlags=("--runtime @runtimeId@")
         fi
 
-        env "LD_LIBRARY_PATH=@libraryPath@" \
+        LD_LIBRARY_PATH="@libraryPath@" \
             dotnet test "$project" \
               -maxcpucount:$maxCpuFlag \
               -p:ContinuousIntegrationBuild=true \
diff --git a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-configure-hook.sh b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-configure-hook.sh
index c046fc3c306b1..3eb0d4e1f2309 100644
--- a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-configure-hook.sh
+++ b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-configure-hook.sh
@@ -15,7 +15,7 @@ dotnetConfigureHook() {
 
     dotnetRestore() {
         local -r project="${1-}"
-        env dotnet restore ${project-} \
+        dotnet restore ${project-} \
             -p:ContinuousIntegrationBuild=true \
             -p:Deterministic=true \
             --runtime "@runtimeId@" \
@@ -43,7 +43,7 @@ EOF
     find -name paket.dependencies -exec sed -i 's+source .*+source @nugetSource@/lib+g' {} \;
     find -name paket.lock -exec sed -i 's+remote:.*+remote: @nugetSource@/lib+g' {} \;
 
-    env dotnet tool restore --add-source "@nugetSource@/lib"
+    dotnet tool restore --add-source "@nugetSource@/lib"
 
     (( "${#projectFile[@]}" == 0 )) && dotnetRestore
 
diff --git a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-install-hook.sh b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-install-hook.sh
index d832eac288096..ed754d8ffcad9 100644
--- a/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-install-hook.sh
+++ b/pkgs/build-support/dotnet/build-dotnet-module/hooks/dotnet-install-hook.sh
@@ -27,7 +27,7 @@ dotnetInstallHook() {
             runtimeIdFlags+=("--runtime @runtimeId@")
         fi
 
-        env dotnet publish ${project-} \
+        dotnet publish ${project-} \
             -p:ContinuousIntegrationBuild=true \
             -p:Deterministic=true \
             --output "${installPath-$out/lib/$pname}" \
@@ -40,7 +40,7 @@ dotnetInstallHook() {
 
     dotnetPack() {
         local -r project="${1-}"
-        env dotnet pack ${project-} \
+        dotnet pack ${project-} \
             -p:ContinuousIntegrationBuild=true \
             -p:Deterministic=true \
             --output "$out/share" \
diff --git a/pkgs/build-support/php/builders/default.nix b/pkgs/build-support/php/builders/default.nix
index 209c834367d18..ea9bb33504356 100644
--- a/pkgs/build-support/php/builders/default.nix
+++ b/pkgs/build-support/php/builders/default.nix
@@ -2,6 +2,7 @@
 {
   v1 = {
     buildComposerProject = callPackage ./v1/build-composer-project.nix { };
+    buildComposerWithPlugin = callPackage ./v1/build-composer-with-plugin.nix { };
     mkComposerRepository = callPackage ./v1/build-composer-repository.nix { };
     composerHooks = callPackages ./v1/hooks { };
   };
diff --git a/pkgs/build-support/php/builders/v1/build-composer-project.nix b/pkgs/build-support/php/builders/v1/build-composer-project.nix
index 7e24812d2e768..698391ad1603c 100644
--- a/pkgs/build-support/php/builders/v1/build-composer-project.nix
+++ b/pkgs/build-support/php/builders/v1/build-composer-project.nix
@@ -1,5 +1,4 @@
 {
-  callPackage,
   nix-update-script,
   stdenvNoCC,
   lib,
@@ -12,8 +11,7 @@ let
 
     let
       phpDrv = finalAttrs.php or php;
-      composer = finalAttrs.composer or phpDrv.packages.composer;
-      composer-local-repo-plugin = callPackage ../../pkgs/composer-local-repo-plugin.nix { };
+      composer = finalAttrs.composer or phpDrv.packages.composer-local-repo-plugin;
     in
     {
       composerLock = previousAttrs.composerLock or null;
@@ -24,7 +22,6 @@ let
 
       nativeBuildInputs = (previousAttrs.nativeBuildInputs or [ ]) ++ [
         composer
-        composer-local-repo-plugin
         phpDrv
         phpDrv.composerHooks.composerInstallHook
       ];
@@ -74,7 +71,7 @@ let
 
       composerRepository =
         previousAttrs.composerRepository or (phpDrv.mkComposerRepository {
-          inherit composer composer-local-repo-plugin;
+          inherit composer;
           inherit (finalAttrs)
             patches
             pname
diff --git a/pkgs/build-support/php/builders/v1/build-composer-repository.nix b/pkgs/build-support/php/builders/v1/build-composer-repository.nix
index 54944b91d202d..037d8bdeb3eb1 100644
--- a/pkgs/build-support/php/builders/v1/build-composer-repository.nix
+++ b/pkgs/build-support/php/builders/v1/build-composer-repository.nix
@@ -1,5 +1,4 @@
 {
-  callPackage,
   stdenvNoCC,
   lib,
   php,
@@ -23,8 +22,7 @@ let
 
     let
       phpDrv = finalAttrs.php or php;
-      composer = finalAttrs.composer or phpDrv.packages.composer;
-      composer-local-repo-plugin = callPackage ../../pkgs/composer-local-repo-plugin.nix { };
+      composer = finalAttrs.composer or phpDrv.packages.composer-local-repo-plugin;
     in
     assert (lib.assertMsg (previousAttrs ? src) "mkComposerRepository expects src argument.");
     assert (
@@ -58,7 +56,6 @@ let
 
       nativeBuildInputs = (previousAttrs.nativeBuildInputs or [ ]) ++ [
         composer
-        composer-local-repo-plugin
         phpDrv
         phpDrv.composerHooks.composerRepositoryHook
       ];
diff --git a/pkgs/build-support/php/builders/v1/build-composer-with-plugin.nix b/pkgs/build-support/php/builders/v1/build-composer-with-plugin.nix
new file mode 100644
index 0000000000000..060b51241e6c8
--- /dev/null
+++ b/pkgs/build-support/php/builders/v1/build-composer-with-plugin.nix
@@ -0,0 +1,161 @@
+{
+  stdenvNoCC,
+  writeText,
+  lib,
+  makeBinaryWrapper,
+  php,
+  cacert,
+  nix-update-script,
+}:
+
+let
+  composerJsonBuilder =
+    pluginName: pluginVersion:
+    writeText "composer.json" (
+      builtins.toJSON {
+        name = "nix/plugin";
+        description = "Nix Composer plugin";
+        license = "MIT";
+        require = {
+          "${pluginName}" = "${pluginVersion}";
+        };
+        config = {
+          "allow-plugins" = {
+            "${pluginName}" = true;
+          };
+        };
+        repositories = [
+          {
+            type = "path";
+            url = "./src";
+            options = {
+              versions = {
+                "${pluginName}" = "${pluginVersion}";
+              };
+            };
+          }
+        ];
+      }
+    );
+
+  buildComposerWithPluginOverride =
+    finalAttrs: previousAttrs:
+
+    let
+      phpDrv = finalAttrs.php or php;
+      composer = finalAttrs.composer or phpDrv.packages.composer;
+    in
+    {
+      composerLock = previousAttrs.composerLock or null;
+      composerNoDev = previousAttrs.composerNoDev or true;
+      composerNoPlugins = previousAttrs.composerNoPlugins or true;
+      composerNoScripts = previousAttrs.composerNoScripts or true;
+      composerStrictValidation = previousAttrs.composerStrictValidation or true;
+      composerGlobal = true;
+
+      nativeBuildInputs = (previousAttrs.nativeBuildInputs or [ ]) ++ [
+        composer
+        phpDrv
+        makeBinaryWrapper
+      ];
+
+      buildInputs = (previousAttrs.buildInputs or [ ]) ++ [ phpDrv ];
+
+      patches = previousAttrs.patches or [ ];
+      strictDeps = previousAttrs.strictDeps or true;
+
+      # Should we keep these empty phases?
+      configurePhase =
+        previousAttrs.configurePhase or ''
+          runHook preConfigure
+
+          runHook postConfigure
+        '';
+
+      buildPhase =
+        previousAttrs.buildPhase or ''
+          runHook preBuild
+
+          runHook postBuild
+        '';
+
+      doCheck = previousAttrs.doCheck or true;
+
+      checkPhase =
+        previousAttrs.checkPhase or ''
+          runHook preCheck
+
+          runHook postCheck
+        '';
+
+      installPhase =
+        previousAttrs.installPhase or ''
+            runHook preInstall
+
+          makeWrapper ${lib.getExe composer} $out/bin/composer \
+            --prefix COMPOSER_HOME : ${finalAttrs.vendor}
+
+            runHook postInstall
+        '';
+
+      doInstallCheck = previousAttrs.doInstallCheck or false;
+      installCheckPhase =
+        previousAttrs.installCheckPhase or ''
+          runHook preInstallCheck
+
+          composer global show ${finalAttrs.pname}
+
+          runHook postInstallCheck
+        '';
+
+      vendor = previousAttrs.vendor or stdenvNoCC.mkDerivation {
+        pname = "${finalAttrs.pname}-vendor";
+        pluginName = finalAttrs.pname;
+
+        inherit (finalAttrs) version src;
+
+        composerLock = previousAttrs.composerLock or null;
+        composerNoDev = previousAttrs.composerNoDev or true;
+        composerNoPlugins = previousAttrs.composerNoPlugins or true;
+        composerNoScripts = previousAttrs.composerNoScripts or true;
+        composerStrictValidation = previousAttrs.composerStrictValidation or true;
+        composerGlobal = true;
+        composerJson = composerJsonBuilder finalAttrs.pname finalAttrs.version;
+
+        nativeBuildInputs = [
+          cacert
+          composer
+          phpDrv.composerHooks.composerWithPluginVendorHook
+        ];
+
+        dontPatchShebangs = true;
+        doCheck = true;
+        doInstallCheck = true;
+
+        env = {
+          COMPOSER_CACHE_DIR = "/dev/null";
+          COMPOSER_HTACCESS_PROTECT = "0";
+        };
+
+        outputHashMode = "recursive";
+        outputHashAlgo = "sha256";
+        outputHash = finalAttrs.vendorHash;
+      };
+
+      # Projects providing a lockfile from upstream can be automatically updated.
+      passthru = previousAttrs.passthru or { } // {
+        updateScript =
+          previousAttrs.passthru.updateScript
+            or (if finalAttrs.vendor.composerLock == null then nix-update-script { } else null);
+      };
+
+      env = {
+        COMPOSER_CACHE_DIR = "/dev/null";
+        COMPOSER_DISABLE_NETWORK = "1";
+        COMPOSER_MIRROR_PATH_REPOS = "1";
+      };
+
+      meta = previousAttrs.meta or composer.meta;
+    };
+in
+args: (stdenvNoCC.mkDerivation args).overrideAttrs buildComposerWithPluginOverride
diff --git a/pkgs/build-support/php/builders/v1/hooks/composer-install-hook.sh b/pkgs/build-support/php/builders/v1/hooks/composer-install-hook.sh
index a91263422bc84..44e87d06d3a53 100644
--- a/pkgs/build-support/php/builders/v1/hooks/composer-install-hook.sh
+++ b/pkgs/build-support/php/builders/v1/hooks/composer-install-hook.sh
@@ -83,7 +83,7 @@ composerInstallBuildHook() {
 
     # Since this file cannot be generated in the composer-repository-hook.sh
     # because the file contains hardcoded nix store paths, we generate it here.
-    composer-local-repo-plugin --no-ansi build-local-repo-lock -m "${composerRepository}" .
+    composer build-local-repo-lock -m "${composerRepository}" .
 
     echo "Finished composerInstallBuildHook"
 }
diff --git a/pkgs/build-support/php/builders/v1/hooks/composer-repository-hook.sh b/pkgs/build-support/php/builders/v1/hooks/composer-repository-hook.sh
index c4fa0d52126c1..ec9777541fc0f 100644
--- a/pkgs/build-support/php/builders/v1/hooks/composer-repository-hook.sh
+++ b/pkgs/build-support/php/builders/v1/hooks/composer-repository-hook.sh
@@ -63,7 +63,7 @@ composerRepositoryBuildHook() {
     # Build the local composer repository
     # The command 'build-local-repo' is provided by the Composer plugin
     # nix-community/composer-local-repo-plugin.
-    composer-local-repo-plugin --no-ansi build-local-repo-lock ${composerNoDev:+--no-dev} -r repository
+    composer build-local-repo-lock ${composerNoDev:+--no-dev} -r repository
 
     echo "Finished composerRepositoryBuildHook"
 }
diff --git a/pkgs/build-support/php/builders/v1/hooks/composer-with-plugin-vendor-hook.sh b/pkgs/build-support/php/builders/v1/hooks/composer-with-plugin-vendor-hook.sh
new file mode 100644
index 0000000000000..0d88d14094ad4
--- /dev/null
+++ b/pkgs/build-support/php/builders/v1/hooks/composer-with-plugin-vendor-hook.sh
@@ -0,0 +1,93 @@
+declare composerLock
+declare version
+declare composerNoDev
+declare composerNoPlugins
+declare composerNoScripts
+declare composerStrictValidation
+
+preConfigureHooks+=(composerWithPluginConfigureHook)
+preBuildHooks+=(composerWithPluginBuildHook)
+preCheckHooks+=(composerWithPluginCheckHook)
+preInstallHooks+=(composerWithPluginInstallHook)
+preInstallCheckHooks+=(composerWithPluginInstallCheckHook)
+
+source @phpScriptUtils@
+
+composerWithPluginConfigureHook() {
+    echo "Executing composerWithPluginConfigureHook"
+
+    mkdir -p $out
+
+    export COMPOSER_HOME=$out
+
+    if [[ -e "$composerLock" ]]; then
+        cp $composerLock $out/composer.lock
+    fi
+
+    cp $composerJson $out/composer.json
+    cp -ar $src $out/src
+
+    if [[ ! -f "$out/composer.lock" ]]; then
+        setComposeRootVersion
+
+        composer \
+            global \
+            --no-install \
+            --no-interaction \
+            --no-progress \
+            ${composerNoDev:+--no-dev} \
+            ${composerNoPlugins:+--no-plugins} \
+            ${composerNoScripts:+--no-scripts} \
+            update
+
+        echo
+        echo -e "\e[31mERROR: No composer.lock found\e[0m"
+        echo
+        echo -e '\e[31mNo composer.lock file found, consider adding one to your repository to ensure reproducible builds.\e[0m'
+        echo -e "\e[31mIn the meantime, a composer.lock file has been generated for you in $out/composer.lock\e[0m"
+        echo
+        echo -e '\e[31mTo fix the issue:\e[0m'
+        echo -e "\e[31m1. Copy the composer.lock file from $out/composer.lock to the project's source:\e[0m"
+        echo -e "\e[31m  cp $out/composer.lock <path>\e[0m"
+        echo -e '\e[31m2. Add the composerLock attribute, pointing to the copied composer.lock file:\e[0m'
+        echo -e '\e[31m  composerLock = ./composer.lock;\e[0m'
+        echo
+
+        exit 1
+    fi
+
+    echo "Finished composerWithPluginConfigureHook"
+}
+
+composerWithPluginBuildHook() {
+    echo "Executing composerWithPluginBuildHook"
+
+    echo "Finished composerWithPluginBuildHook"
+}
+
+composerWithPluginCheckHook() {
+    echo "Executing composerWithPluginCheckHook"
+
+    checkComposerValidate
+
+    echo "Finished composerWithPluginCheckHook"
+}
+
+composerWithPluginInstallHook() {
+    echo "Executing composerWithPluginInstallHook"
+
+    composer \
+        global \
+        --no-interaction \
+        --no-progress \
+        ${composerNoDev:+--no-dev} \
+        ${composerNoPlugins:+--no-plugins} \
+        ${composerNoScripts:+--no-scripts} \
+        install
+
+    echo "Finished composerWithPluginInstallHook"
+}
+
+composerWithPluginInstallCheckHook() {
+    composer global show $pluginName
+}
diff --git a/pkgs/build-support/php/builders/v1/hooks/default.nix b/pkgs/build-support/php/builders/v1/hooks/default.nix
index 4c0ba1b18801c..d10ff78067278 100644
--- a/pkgs/build-support/php/builders/v1/hooks/default.nix
+++ b/pkgs/build-support/php/builders/v1/hooks/default.nix
@@ -42,4 +42,19 @@ in
       phpScriptUtils = lib.getExe php-script-utils;
     };
   } ./composer-install-hook.sh;
+
+  composerWithPluginVendorHook = makeSetupHook {
+    name = "composer-with-plugin-vendor-hook.sh";
+    propagatedBuildInputs = [
+      jq
+      moreutils
+      cacert
+    ];
+    substitutions = {
+      # Specify the stdenv's `diff` by abspath to ensure that the user's build
+      # inputs do not cause us to find the wrong `diff`.
+      cmp = "${lib.getBin buildPackages.diffutils}/bin/cmp";
+      phpScriptUtils = lib.getExe php-script-utils;
+    };
+  } ./composer-with-plugin-vendor-hook.sh;
 }
diff --git a/pkgs/build-support/php/builders/v1/hooks/php-script-utils.bash b/pkgs/build-support/php/builders/v1/hooks/php-script-utils.bash
index bba0242e65d1e..65c0a3b410f69 100644
--- a/pkgs/build-support/php/builders/v1/hooks/php-script-utils.bash
+++ b/pkgs/build-support/php/builders/v1/hooks/php-script-utils.bash
@@ -1,5 +1,6 @@
 declare version
 declare composerStrictValidation
+declare composerGlobal
 
 setComposeRootVersion() {
     set +e # Disable exit on error
@@ -13,7 +14,16 @@ setComposeRootVersion() {
 }
 
 checkComposerValidate() {
-    if ! composer validate --strict --no-ansi --no-interaction --quiet --no-check-all --no-check-lock; then
+    setComposeRootVersion
+
+    if [ "1" == "${composerGlobal-}" ]; then
+      global="global";
+    else
+      global="";
+    fi
+
+    command="composer ${global} validate --strict --quiet --no-interaction --no-check-all --no-check-lock"
+    if ! $command; then
         if [ "1" == "${composerStrictValidation-}" ]; then
             echo
             echo -e "\e[31mERROR: composer files validation failed\e[0m"
@@ -42,7 +52,8 @@ checkComposerValidate() {
         fi
     fi
 
-    if ! composer validate --strict --no-ansi --no-interaction --quiet --no-check-all --check-lock; then
+    command="composer ${global} validate --strict --no-ansi --no-interaction --quiet --no-check-all --check-lock"
+    if ! $command; then
         if [ "1" == "${composerStrictValidation-}" ]; then
             echo
             echo -e "\e[31mERROR: composer files validation failed\e[0m"
diff --git a/pkgs/build-support/php/pkgs/composer-local-repo-plugin.nix b/pkgs/build-support/php/pkgs/composer-local-repo-plugin.nix
deleted file mode 100644
index 601640b6f0bb9..0000000000000
--- a/pkgs/build-support/php/pkgs/composer-local-repo-plugin.nix
+++ /dev/null
@@ -1,116 +0,0 @@
-{
-  php,
-  callPackage,
-  stdenvNoCC,
-  lib,
-  fetchFromGitHub,
-  makeBinaryWrapper,
-}:
-
-let
-  composer = callPackage ./composer-phar.nix { inherit (php.packages.composer) version pharHash; };
-
-  composerKeys = stdenvNoCC.mkDerivation (finalComposerKeysAttrs: {
-    pname = "composer-keys";
-    version = "fa5a62092f33e094073fbda23bbfc7188df3cbc5";
-
-    src = fetchFromGitHub {
-      owner = "composer";
-      repo = "composer.github.io";
-      rev = "${finalComposerKeysAttrs.version}";
-      hash = "sha256-3Sfn71LDG1jHwuEIU8iEnV3k6D6QTX7KVIKVaNSuCVE=";
-    };
-
-    installPhase = ''
-      runHook preInstall
-
-      mkdir -p $out
-      install releases.pub $out/keys.tags.pub
-      install snapshots.pub $out/keys.dev.pub
-
-      runHook postInstall
-    '';
-  });
-in
-stdenvNoCC.mkDerivation (finalAttrs: {
-  pname = "composer-local-repo-plugin";
-  version = "1.1.0";
-
-  src = fetchFromGitHub {
-    owner = "nix-community";
-    repo = "composer-local-repo-plugin";
-    rev = finalAttrs.version;
-    hash = "sha256-edbn07r/Uc1g0qOuVBZBs6N1bMN5kIfA1b4FCufdw5M=";
-  };
-
-  env = {
-    COMPOSER_CACHE_DIR = "/dev/null";
-    COMPOSER_MIRROR_PATH_REPOS = "1";
-    COMPOSER_HTACCESS_PROTECT = "0";
-    COMPOSER_DISABLE_NETWORK = "1";
-  };
-
-  nativeBuildInputs = [ makeBinaryWrapper ];
-
-  buildInputs = [ composer ];
-
-  configurePhase = ''
-    runHook preConfigure
-
-    export COMPOSER_HOME=${placeholder "out"}
-
-    runHook postConfigure
-  '';
-
-  buildPhase = ''
-    runHook preBuild
-
-    # Configure composer globally
-    composer global init --quiet --no-interaction --no-ansi \
-      --name="nixos/composer" \
-      --homepage "https://nixos.org/" \
-      --description "Composer with nix-community/composer-local-repo-plugin" \
-      --license "MIT"
-
-    composer global config --quiet minimum-stability dev
-    composer global config --quiet prefer-stable true
-    composer global config --quiet apcu-autoloader false
-    composer global config --quiet allow-plugins.nix-community/composer-local-repo-plugin true
-    composer global config --quiet repo.packagist false
-    composer global config --quiet repo.plugin path $src
-
-    # Install the local repository plugin
-    composer global require --quiet --no-ansi --no-interaction nix-community/composer-local-repo-plugin
-
-    runHook postBuild
-  '';
-
-  checkPhase = ''
-    runHook preCheck
-
-    composer global validate --no-ansi
-    composer global show --no-ansi nix-community/composer-local-repo-plugin
-
-    runHook postCheck
-  '';
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out
-    cp -ar ${composerKeys}/* $out/
-
-    makeWrapper ${composer}/bin/composer $out/bin/composer-local-repo-plugin \
-      --prefix COMPOSER_HOME : $out
-
-    runHook postInstall
-  '';
-
-  meta = {
-    description = "Composer local repo plugin for Composer";
-    homepage = "https://github.com/nix-community/composer-local-repo-plugin";
-    license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ drupol ];
-    platforms = lib.platforms.all;
-  };
-})
diff --git a/pkgs/build-support/php/pkgs/composer-phar.nix b/pkgs/build-support/php/pkgs/composer-phar.nix
index d278810091ef2..b07c25beec55f 100644
--- a/pkgs/build-support/php/pkgs/composer-phar.nix
+++ b/pkgs/build-support/php/pkgs/composer-phar.nix
@@ -1,6 +1,5 @@
 {
   _7zz,
-  cacert,
   curl,
   fetchurl,
   git,
@@ -37,7 +36,6 @@ stdenvNoCC.mkDerivation (finalAttrs: {
       --prefix PATH : ${
         lib.makeBinPath [
           _7zz
-          cacert
           curl
           git
           unzip
diff --git a/pkgs/build-support/rust/hooks/cargo-build-hook.sh b/pkgs/build-support/rust/hooks/cargo-build-hook.sh
index 0ac9bf51a8334..26dde914f22aa 100644
--- a/pkgs/build-support/rust/hooks/cargo-build-hook.sh
+++ b/pkgs/build-support/rust/hooks/cargo-build-hook.sh
@@ -39,7 +39,7 @@ cargoBuildHook() {
     set -x
     @setEnv@ cargo build -j $NIX_BUILD_CORES \
         --target @rustHostPlatformSpec@ \
-        --frozen \
+        --offline \
         ${cargoBuildProfileFlag} \
         ${cargoBuildNoDefaultFeaturesFlag} \
         ${cargoBuildFeaturesFlag} \
diff --git a/pkgs/build-support/rust/hooks/cargo-check-hook.sh b/pkgs/build-support/rust/hooks/cargo-check-hook.sh
index 971a140ec178f..96b87dbf15b45 100644
--- a/pkgs/build-support/rust/hooks/cargo-check-hook.sh
+++ b/pkgs/build-support/rust/hooks/cargo-check-hook.sh
@@ -29,7 +29,7 @@ cargoCheckHook() {
     fi
 
     argstr="${cargoCheckProfileFlag} ${cargoCheckNoDefaultFeaturesFlag} ${cargoCheckFeaturesFlag}
-        --target @rustHostPlatformSpec@ --frozen ${cargoTestFlags}"
+        --target @rustHostPlatformSpec@ --offline ${cargoTestFlags}"
 
     (
         set -x
diff --git a/pkgs/build-support/rust/hooks/cargo-nextest-hook.sh b/pkgs/build-support/rust/hooks/cargo-nextest-hook.sh
index 29ba18a6a1e3f..16d32513a0d01 100644
--- a/pkgs/build-support/rust/hooks/cargo-nextest-hook.sh
+++ b/pkgs/build-support/rust/hooks/cargo-nextest-hook.sh
@@ -29,7 +29,7 @@ cargoNextestHook() {
     fi
 
     argstr="${cargoCheckProfileFlag} ${cargoCheckNoDefaultFeaturesFlag} ${cargoCheckFeaturesFlag}
-        --target @rustHostPlatformSpec@ --frozen ${cargoTestFlags}"
+        --target @rustHostPlatformSpec@ --offline ${cargoTestFlags}"
 
     (
         set -x
diff --git a/pkgs/build-support/rust/hooks/maturin-build-hook.sh b/pkgs/build-support/rust/hooks/maturin-build-hook.sh
index 028441d18160e..b3cc1ced79647 100644
--- a/pkgs/build-support/rust/hooks/maturin-build-hook.sh
+++ b/pkgs/build-support/rust/hooks/maturin-build-hook.sh
@@ -11,7 +11,7 @@ maturinBuildHook() {
     set -x
     @setEnv@ maturin build \
         --jobs=$NIX_BUILD_CORES \
-        --frozen \
+        --offline \
         --target @rustTargetPlatformSpec@ \
         --manylinux off \
         --strip \
diff --git a/pkgs/build-support/setup-hooks/strip.sh b/pkgs/build-support/setup-hooks/strip.sh
index ce41e6ea0562a..49a350af1fa5c 100644
--- a/pkgs/build-support/setup-hooks/strip.sh
+++ b/pkgs/build-support/setup-hooks/strip.sh
@@ -74,13 +74,17 @@ stripDirs() {
         echo "stripping (with command $cmd and flags $stripFlags) in $paths"
         local striperr
         striperr="$(mktemp --tmpdir="$TMPDIR" 'striperr.XXXXXX')"
-        # Do not strip lib/debug. This is a directory used by setup-hooks/separate-debug-info.sh.
-        find $paths -type f "${excludeFlags[@]}" -a '!' -path "$prefix/lib/debug/*" -print0 |
-            # Make sure we process files under symlinks only once. Otherwise
-            # 'strip` can corrupt files when writes to them in parallel:
-            #   https://github.com/NixOS/nixpkgs/issues/246147#issuecomment-1657072039
-            xargs -r -0 -n1 -- realpath -z | sort -u -z |
+        # Make sure we process files only once. `strip`ping the same file through different
+        # links in parallel can corrupt it:
+        #   https://github.com/NixOS/nixpkgs/issues/246147#issuecomment-1657072039
 
+        # Do not strip lib/debug. This is a directory used by setup-hooks/separate-debug-info.sh.
+        # Print out each file's device and inode (which will be the same if two files are hardlinked
+        # or are the same file found through different symlinks), followed by its path...
+        find $paths -type f "${excludeFlags[@]}" -a '!' -path "$prefix/lib/debug/*" -printf '%D-%i,%p\0' |
+            # ... sort/uniq by device/inode, then cut them out and keep the path, ...
+            sort -t, -k1,1 -u -z | cut -d, -f2- -z |
+            # and finally strip each unique path in parallel.
             xargs -r -0 -n1 -P "$NIX_BUILD_CORES" -- $cmd $stripFlags 2>"$striperr" || exit_code=$?
         # xargs exits with status code 123 if some but not all of the
         # processes fail. We don't care if some of the files couldn't
diff --git a/pkgs/build-support/src-only/default.nix b/pkgs/build-support/src-only/default.nix
index 2b0db0e267aa7..cd8572629cad8 100644
--- a/pkgs/build-support/src-only/default.nix
+++ b/pkgs/build-support/src-only/default.nix
@@ -13,7 +13,7 @@ let
 in
 stdenv.mkDerivation (args // {
   name = "${name}-source";
-  installPhase = "cp -r . $out";
+  installPhase = "cp -pr --reflink=auto -- . $out";
   outputs = [ "out" ];
   separateDebugInfo = false;
   dontUnpack = false;
diff --git a/pkgs/build-support/testers/default.nix b/pkgs/build-support/testers/default.nix
index 362622d9b7ee8..dbf9a6d6cb05b 100644
--- a/pkgs/build-support/testers/default.nix
+++ b/pkgs/build-support/testers/default.nix
@@ -1,6 +1,10 @@
 { pkgs, pkgsLinux, buildPackages, lib, callPackage, runCommand, stdenv, substituteAll, testers }:
 # Documentation is in doc/builders/testers.chapter.md
 {
+  # See https://nixos.org/manual/nixpkgs/unstable/#tester-lycheeLinkCheck
+  # or doc/builders/testers.chapter.md
+  inherit (callPackage ./lychee.nix {}) lycheeLinkCheck;
+
   # See https://nixos.org/manual/nixpkgs/unstable/#tester-testBuildFailure
   # or doc/builders/testers.chapter.md
   testBuildFailure = drv: drv.overrideAttrs (orig: {
diff --git a/pkgs/build-support/testers/lychee.nix b/pkgs/build-support/testers/lychee.nix
new file mode 100644
index 0000000000000..80088dc4f9638
--- /dev/null
+++ b/pkgs/build-support/testers/lychee.nix
@@ -0,0 +1,69 @@
+deps@{ formats, lib, lychee, stdenv, writeShellApplication }:
+let
+  inherit (lib) mapAttrsToList throwIf;
+  inherit (lib.strings) hasInfix hasPrefix escapeNixString;
+
+  toURL = v:
+    let s = "${v}";
+    in if hasPrefix builtins.storeDir s
+    then # lychee requires that paths on the file system are prefixed with file://
+      "file://${s}"
+    else s;
+
+  withCheckedName = name:
+    throwIf (hasInfix " " name) ''
+      lycheeLinkCheck: remap patterns must not contain spaces.
+      A space marks the end of the regex in lychee.toml.
+
+      Please change attribute name 'remap.${escapeNixString name}'
+    '';
+
+  # See https://nixos.org/manual/nixpkgs/unstable/#tester-lycheeLinkCheck
+  # or doc/builders/testers.chapter.md
+  lycheeLinkCheck = {
+    site,
+    remap ? { },
+    lychee ? deps.lychee,
+    extraConfig ? { },
+  }:
+    stdenv.mkDerivation (finalAttrs: {
+      name = "lychee-link-check";
+      inherit site;
+      nativeBuildInputs = [ finalAttrs.passthru.lychee ];
+      configFile = (formats.toml {}).generate "lychee.toml" finalAttrs.passthru.config;
+
+      # These can be overriden with overrideAttrs if needed.
+      passthru = {
+        inherit lychee remap;
+        config = {
+          include_fragments = true;
+        } // lib.optionalAttrs (finalAttrs.passthru.remap != { }) {
+          remap =
+            mapAttrsToList
+              (name: value: withCheckedName name "${name} ${toURL value}")
+              finalAttrs.passthru.remap;
+        } // extraConfig;
+        online = writeShellApplication {
+          name = "run-lychee-online";
+          runtimeInputs = [ finalAttrs.passthru.lychee ];
+          # Comment out to run shellcheck:
+          checkPhase = "";
+          text = ''
+            site=${finalAttrs.site}
+            configFile=${finalAttrs.configFile}
+            echo Checking links on $site
+            exec lychee --config $configFile $site "$@"
+          '';
+        };
+      };
+      buildCommand = ''
+        echo Checking internal links on $site
+        lychee --offline --config $configFile $site
+        touch $out
+      '';
+    });
+
+in
+{
+  inherit lycheeLinkCheck;
+}
diff --git a/pkgs/build-support/testers/test/default.nix b/pkgs/build-support/testers/test/default.nix
index da67711156bed..a815fe63e416e 100644
--- a/pkgs/build-support/testers/test/default.nix
+++ b/pkgs/build-support/testers/test/default.nix
@@ -12,6 +12,8 @@ let
 
 in
 lib.recurseIntoAttrs {
+  lycheeLinkCheck = lib.recurseIntoAttrs pkgs.lychee.tests;
+
   hasPkgConfigModules = pkgs.callPackage ../hasPkgConfigModules/tests.nix { };
 
   runNixOSTest-example = pkgs-with-overlay.testers.runNixOSTest ({ lib, ... }: {
diff --git a/pkgs/by-name/_6/_64gram/package.nix b/pkgs/by-name/_6/_64gram/package.nix
index 0cf62f11f3f3a..67774f29c1e7a 100644
--- a/pkgs/by-name/_6/_64gram/package.nix
+++ b/pkgs/by-name/_6/_64gram/package.nix
@@ -7,7 +7,7 @@
 
 telegram-desktop.overrideAttrs (old: rec {
   pname = "64gram";
-  version = "1.1.22";
+  version = "1.1.23";
 
   src = fetchFromGitHub {
     owner = "TDesktop-x64";
@@ -15,7 +15,7 @@ telegram-desktop.overrideAttrs (old: rec {
     rev = "v${version}";
 
     fetchSubmodules = true;
-    hash = "sha256-Fhix+kCqUTr9qGMzDc2undxmhjmM6fPorZebeqXNHHE=";
+    hash = "sha256-0/1qxz8MCDve8eazb9WT8t/UqWs/I1Mo9orhVXkxmqc=";
   };
 
   passthru.updateScript = nix-update-script {};
diff --git a/pkgs/applications/misc/ablog/default.nix b/pkgs/by-name/ab/ablog/package.nix
index 67b21e5199de5..3221b16dcfcf5 100644
--- a/pkgs/applications/misc/ablog/default.nix
+++ b/pkgs/by-name/ab/ablog/package.nix
@@ -1,16 +1,19 @@
 { lib
 , python3
-, fetchPypi
+, fetchFromGitHub
+, gitUpdater
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "ablog";
-  version = "0.11.8";
+  version = "0.11.10";
   format = "pyproject";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-PpNBfa4g14l8gm9+PxOFc2NDey031D7Ohutx2OGUeak=";
+  src = fetchFromGitHub {
+    owner = "sunpy";
+    repo = "ablog";
+    rev = "v${version}";
+    hash = "sha256-8NyFLGtMJLUkojEhWpWNZz3zlfgGVgSvgk4dDEz1jzs=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
@@ -31,6 +34,7 @@ python3.pkgs.buildPythonApplication rec {
 
   nativeCheckInputs = with python3.pkgs; [
     pytestCheckHook
+    defusedxml
   ];
 
   pytestFlagsArray = [
@@ -39,6 +43,8 @@ python3.pkgs.buildPythonApplication rec {
     "-W" "ignore::sphinx.deprecation.RemovedInSphinx90Warning" # Ignore ImportError
   ];
 
+  passthru.updateScript = gitUpdater { rev-prefix = "v"; };
+
   meta = with lib; {
     description = "ABlog for blogging with Sphinx";
     mainProgram = "ablog";
diff --git a/pkgs/by-name/am/amber-lang/package.nix b/pkgs/by-name/am/amber-lang/package.nix
new file mode 100644
index 0000000000000..a12302748405d
--- /dev/null
+++ b/pkgs/by-name/am/amber-lang/package.nix
@@ -0,0 +1,49 @@
+{ lib,
+  fetchFromGitHub,
+  rustPlatform,
+  bc,
+  makeWrapper,
+  runCommand,
+  amber-lang
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "amber-lang";
+  version = "0.3.1-alpha";
+
+  src = fetchFromGitHub {
+    owner = "Ph0enixKM";
+    repo = "Amber";
+    rev = version;
+    hash = "sha256-VSlLPgoi+KPnUQJEb6m0VZQVs1zkxEnfqs3fAp8m1o4=";
+  };
+
+  cargoHash = "sha256-NzcyX/1yeFcI80pNxx/OTkaI82qyQFJW8U0vPbqSU7g=";
+
+  buildInputs = [ makeWrapper ];
+
+  nativeCheckInputs = [ bc ];
+
+  preConfigure = ''
+    substituteInPlace src/compiler.rs \
+      --replace-fail "/bin/bash" "bash"
+  '';
+
+  postInstall = ''
+    wrapProgram "$out/bin/amber" --prefix PATH : "${lib.makeBinPath [bc]}"
+  '';
+
+  passthru.tests.run = runCommand "amber-lang-eval-test" { nativeBuildInputs = [ amber-lang ]; } ''
+    diff -U3 --color=auto <(amber -e 'echo "Hello, World"') <(echo 'Hello, World')
+    touch $out
+  '';
+
+  meta = with lib; {
+    description = "Programming language compiled to bash";
+    homepage = "https://amber-lang.com";
+    license = licenses.gpl3Plus;
+    mainProgram = "amber";
+    maintainers = with maintainers; [ cafkafk uncenter ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/by-name/an/anytype/package.nix b/pkgs/by-name/an/anytype/package.nix
index 2ec353a1784f7..dfe9a7eedbe00 100644
--- a/pkgs/by-name/an/anytype/package.nix
+++ b/pkgs/by-name/an/anytype/package.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "anytype";
-  version = "0.40.8";
+  version = "0.40.9";
   name = "Anytype-${version}";
   src = fetchurl {
     url = "https://github.com/anyproto/anytype-ts/releases/download/v${version}/${name}.AppImage";
     name = "Anytype-${version}.AppImage";
-    hash = "sha256-Rvl52nKrOWQfT2qgssEpFjQCjva54zPvm6aEXmO0NTc=";
+    hash = "sha256-NxiRq/aAWToe27COEoQb4BmyKgLRYQ+gXtM0Djhlcow=";
   };
   appimageContents = appimageTools.extractType2 { inherit name src; };
 in appimageTools.wrapType2 {
diff --git a/pkgs/by-name/ap/api-linter/package.nix b/pkgs/by-name/ap/api-linter/package.nix
index 4eb4301ef65f1..3f5a972fa4779 100644
--- a/pkgs/by-name/ap/api-linter/package.nix
+++ b/pkgs/by-name/ap/api-linter/package.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "api-linter";
-  version = "1.66.0";
+  version = "1.66.1";
 
   src = fetchFromGitHub {
     owner = "googleapis";
     repo = "api-linter";
     rev = "v${version}";
-    hash = "sha256-PwsqED6jIiPapthdhl7XxGwp+H3gjGfn2DGl1mWuano=";
+    hash = "sha256-gaXvkWexvpKOiUEk4OOHla8HmT0sAT94peljH9q9N7c=";
   };
 
-  vendorHash = "sha256-mJT5gqMCe1NuUBoSRqYTp64UK2vZ+GJwgnb0ILQPkno=";
+  vendorHash = "sha256-czLcy/9QbBuKu3lPISx3Pzf2ccvdp7gF0SWVbSZ6Nn8=";
 
   subPackages = [ "cmd/api-linter" ];
 
diff --git a/pkgs/by-name/ar/arc-browser/package.nix b/pkgs/by-name/ar/arc-browser/package.nix
index 2813e0f39791e..732451d0250b9 100644
--- a/pkgs/by-name/ar/arc-browser/package.nix
+++ b/pkgs/by-name/ar/arc-browser/package.nix
@@ -9,11 +9,11 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "arc-browser";
-  version = "1.43.1-50198";
+  version = "1.44.2-50412";
 
   src = fetchurl {
     url = "https://releases.arc.net/release/Arc-${finalAttrs.version}.dmg";
-    hash = "sha256-++C3COEs0ycfj+vV4PdlWloc4M0hGZG5fdJ+rbyBo7w=";
+    hash = "sha256-0UrvCTGnbt+jQ4UpEt5vsgKZ/UDJz3I1obK4GPshNjg=";
   };
 
   nativeBuildInputs = [ undmg ];
diff --git a/pkgs/by-name/ar/ark-pixel-font/limit-builds.patch b/pkgs/by-name/ar/ark-pixel-font/limit-builds.patch
new file mode 100644
index 0000000000000..c63798e071c99
--- /dev/null
+++ b/pkgs/by-name/ar/ark-pixel-font/limit-builds.patch
@@ -0,0 +1,34 @@
+diff --git a/build.py b/build.py
+index 48bc757d..88b9ed9b 100644
+--- a/build.py
++++ b/build.py
+@@ -1,6 +1,5 @@
+ from scripts import configs
+ from scripts.configs import path_define
+-from scripts.services import publish_service, info_service, template_service, image_service
+ from scripts.services.font_service import DesignContext, FontContext
+ from scripts.utils import fs_util
+ 
+@@ -21,21 +20,6 @@ def main():
+             font_context.make_pcf()
+             font_context.make_otc()
+             font_context.make_ttc()
+-            publish_service.make_release_zips(font_config, width_mode)
+-            info_service.make_info_file(design_context, width_mode)
+-            info_service.make_alphabet_txt_file(design_context, width_mode)
+-            template_service.make_alphabet_html_file(design_context, width_mode)
+-        template_service.make_demo_html_file(design_context)
+-        image_service.make_preview_image_file(font_config)
+-    template_service.make_index_html_file()
+-    template_service.make_playground_html_file()
+-    image_service.make_readme_banner()
+-    image_service.make_github_banner()
+-    image_service.make_itch_io_banner()
+-    image_service.make_itch_io_background()
+-    image_service.make_itch_io_cover()
+-    image_service.make_afdian_cover()
+-
+ 
+ if __name__ == '__main__':
+     main()
+
diff --git a/pkgs/by-name/ar/ark-pixel-font/package.nix b/pkgs/by-name/ar/ark-pixel-font/package.nix
index 578552a03f13b..e93cccf68420b 100644
--- a/pkgs/by-name/ar/ark-pixel-font/package.nix
+++ b/pkgs/by-name/ar/ark-pixel-font/package.nix
@@ -28,10 +28,15 @@ python312Packages.buildPythonPackage rec {
     gitpython
   ];
 
+  # By default build.py builds a LOT of extraneous artifacts we don't need.
+  patches = [ ./limit-builds.patch ];
+
   buildPhase = ''
     runHook preBuild
 
-    python build.py
+    # Too much debug output would break Hydra, so this jankness has to be here for it to build at all.
+    # I wish there's a builtin way to set the log level without modifying the script itself...
+    python3 build.py 2>&1 >/dev/null | grep -E '^(INFO|WARN|ERROR)'
 
     runHook postBuild
   '';
@@ -43,6 +48,9 @@ python312Packages.buildPythonPackage rec {
     install -Dm444 build/outputs/*.otf -t $out/share/fonts/opentype
     install -Dm444 build/outputs/*.ttf -t $out/share/fonts/truetype
     install -Dm444 build/outputs/*.woff2 -t $out/share/fonts/woff2
+    install -Dm444 build/outputs/*.pcf -t $out/share/fonts/pcf
+    install -Dm444 build/outputs/*.otc -t $out/share/fonts/otc
+    install -Dm444 build/outputs/*.ttc -t $out/share/fonts/ttc
 
     runHook postInstall
   '';
diff --git a/pkgs/by-name/as/ast-grep/package.nix b/pkgs/by-name/as/ast-grep/package.nix
index 4e001f3445a66..b62c88d05a593 100644
--- a/pkgs/by-name/as/ast-grep/package.nix
+++ b/pkgs/by-name/as/ast-grep/package.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ast-grep";
-  version = "0.22.3";
+  version = "0.22.4";
 
   src = fetchFromGitHub {
     owner = "ast-grep";
     repo = "ast-grep";
     rev = version;
-    hash = "sha256-Q2xVB9GZBtXx67rKpeTpy1llXCBpgn9vdZmYkQVHtp8=";
+    hash = "sha256-AzwwOJ2SS+5wM/+357mXg+QMwXVPToKiTaFP+LZXP+U=";
   };
 
-  cargoHash = "sha256-0N98WvNLlflNCu7I2nHDSgFHDmbMVqwu4YkqA9GNSwM=";
+  cargoHash = "sha256-fyEncz5eVe8OPNQO4TJQXBMfOcybesoBBNRv3T1EooU=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/by-name/ay/ayatana-indicator-datetime/package.nix b/pkgs/by-name/ay/ayatana-indicator-datetime/package.nix
index 06ba4efc13863..0f7ce4b43d113 100644
--- a/pkgs/by-name/ay/ayatana-indicator-datetime/package.nix
+++ b/pkgs/by-name/ay/ayatana-indicator-datetime/package.nix
@@ -31,13 +31,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "ayatana-indicator-datetime";
-  version = "24.2.0";
+  version = "24.5.0";
 
   src = fetchFromGitHub {
     owner = "AyatanaIndicators";
     repo = "ayatana-indicator-datetime";
     rev = finalAttrs.version;
-    hash = "sha256-J3Yp7Dx4UvvdlM8Cp1sPe4Ftm/aAmNzpo4re/jF7pRo=";
+    hash = "sha256-lY49v2uZ7BawQoN/hmN6pbetHlSGjMHbS6S8Wl1bDmQ=";
   };
 
   postPatch = ''
diff --git a/pkgs/by-name/ay/ayatana-indicator-display/package.nix b/pkgs/by-name/ay/ayatana-indicator-display/package.nix
new file mode 100644
index 0000000000000..8c5e5c9e51600
--- /dev/null
+++ b/pkgs/by-name/ay/ayatana-indicator-display/package.nix
@@ -0,0 +1,124 @@
+{ stdenv
+, lib
+, gitUpdater
+, fetchFromGitHub
+, nixosTests
+, accountsservice
+, cmake
+, cppcheck
+, dbus
+, geoclue2
+, glib
+, gsettings-desktop-schemas
+, gtest
+, intltool
+, libayatana-common
+, libgudev
+, libqtdbusmock
+, libqtdbustest
+, libsForQt5
+, lomiri
+, mate
+, pkg-config
+, properties-cpp
+, python3
+, systemd
+, wrapGAppsHook3
+, xsct
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "ayatana-indicator-display";
+  version = "24.5.0";
+
+  src = fetchFromGitHub {
+    owner = "AyatanaIndicators";
+    repo = "ayatana-indicator-display";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-ZEmJJtVK1dHIrY0C6pqVu1N5PmQtYqX0K5v5LvzNfFA=";
+  };
+
+  postPatch = ''
+    # Replace systemd prefix in pkg-config query, use GNUInstallDirs location for /etc
+    substituteInPlace data/CMakeLists.txt \
+      --replace-fail 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir)' 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir DEFINE_VARIABLES prefix=''${CMAKE_INSTALL_PREFIX})' \
+      --replace-fail 'DESTINATION "/etc' 'DESTINATION "''${CMAKE_INSTALL_FULL_SYSCONFDIR}'
+
+    # Hardcode xsct path
+    substituteInPlace src/service.cpp \
+      --replace-fail 'sCommand = g_strdup_printf ("xsct' 'sCommand = g_strdup_printf ("${lib.getExe xsct}'
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    cmake
+    glib # for schema discovery
+    intltool
+    pkg-config
+    wrapGAppsHook3
+  ];
+
+  # TODO Can we get around requiring every desktop's schemas just to avoid segfaulting on some systems?
+  buildInputs = [
+    accountsservice
+    geoclue2
+    gsettings-desktop-schemas # gnome schemas
+    glib
+    libayatana-common
+    libgudev
+    libsForQt5.qtbase
+    systemd
+  ] ++ (with lomiri; [
+    cmake-extras
+    lomiri-schemas # lomiri schema
+  ]) ++ (with mate; [
+    mate.marco # marco schema
+    mate.mate-settings-daemon # mate mouse schema
+  ]);
+
+  nativeCheckInputs = [
+    cppcheck
+    dbus
+    (python3.withPackages (ps: with ps; [
+      python-dbusmock
+    ]))
+  ];
+
+  checkInputs = [
+    gtest
+    libqtdbusmock
+    libqtdbustest
+    properties-cpp
+  ];
+
+  dontWrapQtApps = true;
+
+  cmakeFlags = [
+    (lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
+    (lib.cmakeBool "ENABLE_COLOR_TEMP" true)
+    (lib.cmakeBool "GSETTINGS_LOCALINSTALL" true)
+    (lib.cmakeBool "GSETTINGS_COMPILE" true)
+  ];
+
+  doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
+
+  passthru = {
+    ayatana-indicators = [ "ayatana-indicator-display" ];
+    tests.vm = nixosTests.ayatana-indicators;
+    updateScript = gitUpdater { };
+  };
+
+  meta = with lib; {
+    description = "Ayatana Indicator for Display configuration";
+    longDescription = ''
+      This Ayatana Indicator is designed to be placed on the right side of a
+      panel and give the user easy control for changing their display settings.
+    '';
+    homepage = "https://github.com/AyatanaIndicators/ayatana-indicator-display";
+    changelog = "https://github.com/AyatanaIndicators/ayatana-indicator-display/blob/${finalAttrs.version}/ChangeLog";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ OPNA2608 ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/ay/ayatana-indicator-messages/package.nix b/pkgs/by-name/ay/ayatana-indicator-messages/package.nix
index 7973291d3db18..5810ccd89d41f 100644
--- a/pkgs/by-name/ay/ayatana-indicator-messages/package.nix
+++ b/pkgs/by-name/ay/ayatana-indicator-messages/package.nix
@@ -25,13 +25,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "ayatana-indicator-messages";
-  version = "23.10.0";
+  version = "24.5.0";
 
   src = fetchFromGitHub {
     owner = "AyatanaIndicators";
     repo = "ayatana-indicator-messages";
     rev = finalAttrs.version;
-    hash = "sha256-FBJeP5hOXJcOk04cRJpw+oN7L3w3meDX3ivLmFWkhVI=";
+    hash = "sha256-D1181eD2mAVXEa7RLXXC4b2tVGrxbh0WWgtbC1anHH0=";
   };
 
   outputs = [
diff --git a/pkgs/by-name/ay/ayatana-indicator-power/package.nix b/pkgs/by-name/ay/ayatana-indicator-power/package.nix
index 74df2f6eb95fb..047087660b8a0 100644
--- a/pkgs/by-name/ay/ayatana-indicator-power/package.nix
+++ b/pkgs/by-name/ay/ayatana-indicator-power/package.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "ayatana-indicator-power";
-  version = "24.1.0";
+  version = "24.5.0";
 
   src = fetchFromGitHub {
     owner = "AyatanaIndicators";
     repo = "ayatana-indicator-power";
     rev = "refs/tags/${finalAttrs.version}";
-    hash = "sha256-VUDNy6pPOsjioV5UNiKm8dzYb02ZrZ8CiIiJmAoQYaM=";
+    hash = "sha256-LS50YJ5MA1enBk2nxm0BFu2cuC53CZCvtZRE+PWjs+M=";
   };
 
   postPatch = ''
diff --git a/pkgs/by-name/ay/ayatana-indicator-sound/package.nix b/pkgs/by-name/ay/ayatana-indicator-sound/package.nix
new file mode 100644
index 0000000000000..84d2d8c3bfc97
--- /dev/null
+++ b/pkgs/by-name/ay/ayatana-indicator-sound/package.nix
@@ -0,0 +1,125 @@
+{ stdenv
+, lib
+, gitUpdater
+, fetchFromGitHub
+, nixosTests
+, accountsservice
+, cmake
+, dbus
+, dbus-test-runner
+, glib
+, gobject-introspection
+, gtest
+, intltool
+, libayatana-common
+, libgee
+, libnotify
+, libpulseaudio
+, libqtdbusmock
+, libqtdbustest
+, libsForQt5
+, libxml2
+, lomiri
+, pkg-config
+, python3
+, systemd
+, vala
+, wrapGAppsHook3
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "ayatana-indicator-sound";
+  version = "24.4.0";
+
+  src = fetchFromGitHub {
+    owner = "AyatanaIndicators";
+    repo = "ayatana-indicator-sound";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-2B2CFUjDvBpZ8R4fnGDViS3pXO1L0kP1tnJCtqKeLaQ=";
+  };
+
+  postPatch = ''
+    # Replace systemd prefix in pkg-config query, use GNUInstallDirs location for /etc
+    substituteInPlace data/CMakeLists.txt \
+      --replace-fail 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir)' 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir DEFINE_VARIABLES prefix=''${CMAKE_INSTALL_PREFIX})' \
+      --replace-fail 'DESTINATION "/etc' 'DESTINATION "''${CMAKE_INSTALL_FULL_SYSCONFDIR}'
+
+    # Build-time Vala codegen
+    substituteInPlace src/CMakeLists.txt \
+      --replace-fail '/usr/share/gir-1.0/AccountsService-1.0.gir' '${lib.getDev accountsservice}/share/gir-1.0/AccountsService-1.0.gir'
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    cmake
+    gobject-introspection
+    intltool
+    libpulseaudio # vala files(?)
+    pkg-config
+    vala
+    wrapGAppsHook3
+  ];
+
+  buildInputs = [
+    accountsservice
+    glib
+    gobject-introspection
+    libayatana-common
+    libgee
+    libnotify
+    libpulseaudio
+    libxml2
+    systemd
+  ] ++ (with lomiri; [
+    cmake-extras
+    lomiri-api
+    lomiri-schemas
+  ]);
+
+  nativeCheckInputs = [
+    dbus
+    (python3.withPackages (ps: with ps; [
+      python-dbusmock
+    ]))
+  ];
+
+  checkInputs = [
+    dbus-test-runner
+    gtest
+    libsForQt5.qtbase
+    libqtdbusmock
+    libqtdbustest
+    lomiri.gmenuharness
+  ];
+
+  cmakeFlags = [
+    (lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
+    (lib.cmakeBool "ENABLE_LOMIRI_FEATURES" true)
+    (lib.cmakeBool "GSETTINGS_LOCALINSTALL" true)
+    (lib.cmakeBool "GSETTINGS_COMPILE" true)
+  ];
+
+  dontWrapQtApps = true;
+
+  doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
+
+  passthru = {
+    ayatana-indicators = [ "ayatana-indicator-sound" ];
+    tests.vm = nixosTests.ayatana-indicators;
+    updateScript = gitUpdater { };
+  };
+
+  meta = with lib; {
+    description = "Ayatana Indicator for managing system sound";
+    longDescription = ''
+      Ayatana Indicator Sound that provides easy control of the PulseAudio
+      sound daemon.
+    '';
+    homepage = "https://github.com/AyatanaIndicators/ayatana-indicator-sound";
+    changelog = "https://github.com/AyatanaIndicators/ayatana-indicator-sound/blob/${finalAttrs.version}/ChangeLog";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ OPNA2608 ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/ba/basedpyright/package-lock.json b/pkgs/by-name/ba/basedpyright/package-lock.json
new file mode 100644
index 0000000000000..dee0ab51a5212
--- /dev/null
+++ b/pkgs/by-name/ba/basedpyright/package-lock.json
@@ -0,0 +1,193 @@
+{
+  "name": "pyright-root",
+  "lockfileVersion": 2,
+  "requires": true,
+  "packages": {
+    "": {
+      "name": "pyright-root",
+      "hasInstallScript": true,
+      "dependencies": {
+        "glob": "^7.2.3",
+        "jsonc-parser": "^3.2.1"
+      }
+    },
+    "node_modules/balanced-match": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+    },
+    "node_modules/brace-expansion": {
+      "version": "1.1.11",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+      "dependencies": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "node_modules/concat-map": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+      "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+    },
+    "node_modules/fs.realpath": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+      "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+    },
+    "node_modules/glob": {
+      "version": "7.2.3",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+      "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+      "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/inflight": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+      "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+      "dependencies": {
+        "once": "^1.3.0",
+        "wrappy": "1"
+      }
+    },
+    "node_modules/inherits": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+    },
+    "node_modules/jsonc-parser": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
+      "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA=="
+    },
+    "node_modules/minimatch": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+      "dependencies": {
+        "brace-expansion": "^1.1.7"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/once": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+      "dependencies": {
+        "wrappy": "1"
+      }
+    },
+    "node_modules/path-is-absolute": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+      "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+    }
+  },
+  "dependencies": {
+    "balanced-match": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+    },
+    "brace-expansion": {
+      "version": "1.1.11",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+      "requires": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "concat-map": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+      "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+    },
+    "fs.realpath": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+      "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+    },
+    "glob": {
+      "version": "7.2.3",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+      "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+      "requires": {
+        "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"
+      }
+    },
+    "inflight": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+      "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+      "requires": {
+        "once": "^1.3.0",
+        "wrappy": "1"
+      }
+    },
+    "inherits": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+    },
+    "jsonc-parser": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
+      "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA=="
+    },
+    "minimatch": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+      "requires": {
+        "brace-expansion": "^1.1.7"
+      }
+    },
+    "once": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+      "requires": {
+        "wrappy": "1"
+      }
+    },
+    "path-is-absolute": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+      "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
+    },
+    "wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+    }
+  }
+}
diff --git a/pkgs/by-name/ba/basedpyright/package.nix b/pkgs/by-name/ba/basedpyright/package.nix
new file mode 100644
index 0000000000000..b22acd3544ff4
--- /dev/null
+++ b/pkgs/by-name/ba/basedpyright/package.nix
@@ -0,0 +1,89 @@
+{
+  lib,
+  nix-update-script,
+  buildNpmPackage,
+  fetchFromGitHub,
+  runCommand,
+  jq,
+}:
+
+let
+  version = "1.12.3";
+
+  src = fetchFromGitHub {
+    owner = "detachhead";
+    repo = "basedpyright";
+    rev = "v${version}";
+    hash = "sha256-n4jiKxkXGCKJkuXSsUktsiJQuCcZ+D/RJH/ippnOVw8=";
+  };
+
+  patchedPackageJSON = runCommand "package.json" { } ''
+    ${jq}/bin/jq '
+      .devDependencies |= with_entries(select(.key == "glob" or .key == "jsonc-parser"))
+      | .scripts =  {  }
+      ' ${src}/package.json > $out
+  '';
+
+  pyright-root = buildNpmPackage {
+    pname = "pyright-root";
+    inherit version src;
+    npmDepsHash = "sha256-63kUhKrxtJhwGCRBnxBfOFXs2ARCNn+OOGu6+fSJey4=";
+    dontNpmBuild = true;
+    postPatch = ''
+      cp ${patchedPackageJSON} ./package.json
+      cp ${./package-lock.json} ./package-lock.json
+    '';
+    installPhase = ''
+      runHook preInstall
+      cp -r . "$out"
+      runHook postInstall
+    '';
+  };
+
+  pyright-internal = buildNpmPackage {
+    pname = "pyright-internal";
+    inherit version src;
+    sourceRoot = "${src.name}/packages/pyright-internal";
+    npmDepsHash = "sha256-ba7GzkKrXps4W1ptv+j9fMMXwpi30ymbqgIJ64PaZ1g=";
+    dontNpmBuild = true;
+    # FIXME: Remove this flag when TypeScript 5.5 is released
+    npmFlags = [ "--legacy-peer-deps" ];
+    installPhase = ''
+      runHook preInstall
+      cp -r . "$out"
+      runHook postInstall
+    '';
+  };
+in
+buildNpmPackage rec {
+  pname = "basedpyright";
+  inherit version src;
+
+  sourceRoot = "${src.name}/packages/pyright";
+  npmDepsHash = "sha256-9V1T6w1G1SZi19dgRaFmv+Vy71hmQR+L6cDjQZJrGy8=";
+
+  postPatch = ''
+    chmod +w ../../
+    ln -s ${pyright-root}/node_modules ../../node_modules
+    chmod +w ../pyright-internal
+    ln -s ${pyright-internal}/node_modules ../pyright-internal/node_modules
+  '';
+
+  postInstall = ''
+    mv "$out/bin/pyright" "$out/bin/basedpyright"
+    mv "$out/bin/pyright-langserver" "$out/bin/basedpyright-langserver"
+  '';
+
+  dontNpmBuild = true;
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    changelog = "https://github.com/detachhead/basedpyright/releases/tag/${version}";
+    description = "Type checker for the Python language";
+    homepage = "https://github.com/detachhead/basedpyright";
+    license = lib.licenses.mit;
+    mainProgram = "basedpyright";
+    maintainers = with lib.maintainers; [ kiike ];
+  };
+}
diff --git a/pkgs/by-name/bc/bcachefs-tools/fix-encrypted-boot.patch b/pkgs/by-name/bc/bcachefs-tools/fix-encrypted-boot.patch
new file mode 100644
index 0000000000000..5e14d09547f43
--- /dev/null
+++ b/pkgs/by-name/bc/bcachefs-tools/fix-encrypted-boot.patch
@@ -0,0 +1,92 @@
+From f76ad4da12e6a65550d564bb626a1429ae75433a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Thomas=20M=C3=BChlbacher?= <tmuehlbacher@posteo.net>
+Date: Thu, 9 May 2024 23:52:47 +0200
+Subject: [PATCH 1/2] `check_for_key` before `ask_for_passphrase`
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+let's always first check if there is already a key in the keyring
+available before we try to get the key from some more involved means.
+
+Fixes: #261
+Signed-off-by: Thomas Mühlbacher <tmuehlbacher@posteo.net>
+---
+ src/commands/mount.rs | 13 +++++++++++--
+ src/key.rs            |  4 +++-
+ 2 files changed, 14 insertions(+), 3 deletions(-)
+
+diff --git a/src/commands/mount.rs b/src/commands/mount.rs
+index 9414c77f..34a741cb 100644
+--- a/src/commands/mount.rs
++++ b/src/commands/mount.rs
+@@ -344,8 +344,17 @@ fn cmd_mount_inner(opt: Cli) -> anyhow::Result<()> {
+     if block_devices_to_mount.len() == 0 {
+         Err(anyhow::anyhow!("No device found from specified parameters"))?;
+     }
+-    // Check if the filesystem's master key is encrypted
+-    if unsafe { bcachefs::bch2_sb_is_encrypted_and_locked(block_devices_to_mount[0].sb) } {
++
++    let key_name = CString::new(format!(
++        "bcachefs:{}",
++        block_devices_to_mount[0].sb().uuid()
++    ))
++    .unwrap();
++
++    // Check if the filesystem's master key is encrypted and we don't have a key
++    if unsafe { bcachefs::bch2_sb_is_encrypted_and_locked(block_devices_to_mount[0].sb) }
++        && !key::check_for_key(&key_name)?
++    {
+         // First by password_file, if available
+         let fallback_to_unlock_policy = if let Some(passphrase_file) = &opt.passphrase_file {
+             match key::read_from_passphrase_file(&block_devices_to_mount[0], passphrase_file.as_path()) {
+diff --git a/src/key.rs b/src/key.rs
+index d0018805..568b3cdb 100644
+--- a/src/key.rs
++++ b/src/key.rs
+@@ -58,7 +58,7 @@ impl fmt::Display for UnlockPolicy {
+     }
+ }
+ 
+-fn check_for_key(key_name: &std::ffi::CStr) -> anyhow::Result<bool> {
++pub fn check_for_key(key_name: &std::ffi::CStr) -> anyhow::Result<bool> {
+     use bch_bindgen::keyutils::{self, keyctl_search};
+     let key_name = key_name.to_bytes_with_nul().as_ptr() as *const _;
+     let key_type = c_str!("user");
+@@ -86,10 +86,12 @@ fn wait_for_unlock(uuid: &uuid::Uuid) -> anyhow::Result<()> {
+     }
+ }
+ 
++// blocks indefinitely if no input is available on stdin
+ fn ask_for_passphrase(sb: &bch_sb_handle) -> anyhow::Result<()> {
+     let passphrase = if stdin().is_terminal() {
+         rpassword::prompt_password("Enter passphrase: ")?
+     } else {
++        info!("Trying to read passphrase from stdin...");
+         let mut line = String::new();
+         stdin().read_line(&mut line)?;
+         line
+
+From 734ccc58f42c3cccb0960bdd84808839e2b62ca9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Thomas=20M=C3=BChlbacher?= <tmuehlbacher@posteo.net>
+Date: Sun, 12 May 2024 19:39:19 +0200
+Subject: [PATCH 2/2] fix unfortunate typo
+
+causes mounting encrypted devices to become stuck in a busy loop.
+---
+ include/crypto/skcipher.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/crypto/skcipher.h b/include/crypto/skcipher.h
+index 70905a5a..833729dc 100644
+--- a/include/crypto/skcipher.h
++++ b/include/crypto/skcipher.h
+@@ -112,7 +112,7 @@ static inline void skcipher_request_set_sync_tfm(struct skcipher_request *req,
+ 	skcipher_request_set_tfm(req, &tfm->base);
+ }
+ 
+-#define skcipher_request_set_callback(...) do {} while (9)
++#define skcipher_request_set_callback(...) do {} while (0)
+ 
+ static inline void skcipher_request_set_crypt(
+ 	struct skcipher_request *req,
diff --git a/pkgs/tools/filesystems/bcachefs-tools/default.nix b/pkgs/by-name/bc/bcachefs-tools/package.nix
index c49d1a8561981..14f668bf5b675 100644
--- a/pkgs/tools/filesystems/bcachefs-tools/default.nix
+++ b/pkgs/by-name/bc/bcachefs-tools/package.nix
@@ -2,7 +2,6 @@
   lib,
   stdenv,
   fetchFromGitHub,
-  fetchpatch,
   pkg-config,
   libuuid,
   libsodium,
@@ -27,13 +26,15 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "bcachefs-tools";
-  version = "1.7.0";
+  version = "1.7.0-unstable-2024-05-09";
 
   src = fetchFromGitHub {
     owner = "koverstreet";
     repo = "bcachefs-tools";
-    rev = "v${finalAttrs.version}";
-    hash = "sha256-nHT18bADESDBHoo9P+J3gGc092hRYs2vaWupgqlkvaA=";
+    # FIXME: switch to a tagged release once available > 1.7.0
+    # Fix for https://github.com/NixOS/nixpkgs/issues/313350
+    rev = "3ac510f6a41feb1b695381fa30869d557c00b822";
+    hash = "sha256-ZmkeYPiCy7vkXnMFbtUF4761K+I+Ef7UbmSY7dJG09U=";
   };
 
   nativeBuildInputs = [
@@ -76,11 +77,8 @@ stdenv.mkDerivation (finalAttrs: {
   patches = [
     # code refactoring of bcachefs-tools broke reading passphrases from stdin (vs. terminal)
     # upstream issue https://github.com/koverstreet/bcachefs-tools/issues/261
-    (fetchpatch {
-    url = "https://github.com/koverstreet/bcachefs-tools/commit/38b0cb721d2a35f5a4af429bc7bd367461f2fa26.patch";
-    hash = "sha256-/9reye+Qoa+EMkS+wfdX+KwDeLHHJ/S+Qm7sWl0MtqM=";
-  })
-];
+    ./fix-encrypted-boot.patch
+  ];
 
   preCheck = lib.optionalString (!fuseSupport) ''
     rm tests/test_fuse.py
@@ -95,7 +93,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   postInstall = ''
     substituteInPlace $out/libexec/bcachefsck_all \
-      --replace "/usr/bin/python3" "${python3}/bin/python3"
+      --replace-fail "/usr/bin/python3" "${python3}/bin/python3"
   '';
 
   passthru = {
diff --git a/pkgs/by-name/be/beekeeper-studio/package.nix b/pkgs/by-name/be/beekeeper-studio/package.nix
index 0a62c91c8e7e7..041551d744961 100644
--- a/pkgs/by-name/be/beekeeper-studio/package.nix
+++ b/pkgs/by-name/be/beekeeper-studio/package.nix
@@ -7,7 +7,7 @@
 
 let
   pname = "beekeeper-studio";
-  version = "4.3.1";
+  version = "4.3.4";
 
   plat = {
     aarch64-linux = "-arm64";
@@ -16,7 +16,7 @@ let
 
   hash = {
     aarch64-linux = "sha256-7ZjyzWeu19zUX1u8t0hMu8F+1LN5/CtEotLNe/5rwPM=";
-    x86_64-linux = "sha256-vhKvOPPo/a9gwQ8FsC28dStQHI8SYzEbhdEW4elD7bU=";
+    x86_64-linux = "sha256-RT+A2rq0rMv2o0au5cfcZJysGy+7xYvBDfEJ/TyJmZw=";
   }.${stdenv.hostPlatform.system};
 
   src = fetchurl {
diff --git a/pkgs/by-name/be/bend/package.nix b/pkgs/by-name/be/bend/package.nix
index b743f4da1fe65..d904cd8528749 100644
--- a/pkgs/by-name/be/bend/package.nix
+++ b/pkgs/by-name/be/bend/package.nix
@@ -1,6 +1,5 @@
 {
   rustPlatform,
-  fetchCrate,
   fetchFromGitHub,
   lib,
   makeWrapper,
@@ -9,18 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "Bend";
-  version = "0.2.9";
+  version = "0.2.22";
 
   src = fetchFromGitHub {
     owner = "HigherOrderCO";
     repo = "Bend";
     rev = "refs/tags/${version}";
-    hash = "sha256-MEfB2SBJN7uEwfZGoEL7DQXsr1fccdZyGyzHtNv9wow=";
+    hash = "sha256-5qcj3KfgcB5tbVSJUSOVQDAhEpPE8SFoT0g9syHbFCA=";
   };
 
-  cargoHash = "sha256-+i+Y3MgCBVN3REmPwAjm2SiF9FJ0i05czmPKB8JtAFM=";
-
-  RUSTC_BOOTSTRAP = true;
+  cargoHash = "sha256-gSAIidMEYJDZHgIWNgYJVqyhpD7M+CMCD+1mEXGztIk=";
 
   nativeBuildInputs = [
     hvm
diff --git a/pkgs/by-name/bi/bicep/deps.nix b/pkgs/by-name/bi/bicep/deps.nix
index 78b0b2c1b727a..490fd2cf150c9 100644
--- a/pkgs/by-name/bi/bicep/deps.nix
+++ b/pkgs/by-name/bi/bicep/deps.nix
@@ -3,27 +3,30 @@
 
 { fetchNuGet }: [
   (fetchNuGet { pname = "Azure.Bicep.Internal.RoslynAnalyzers"; version = "0.1.38"; sha256 = "1b13vbl0y851nr7rfhyxc0djihxfr7xv010f9zvvbibyz5wqis7v"; })
-  (fetchNuGet { pname = "Azure.Bicep.Types"; version = "0.5.6"; sha256 = "0kzyy21jvhc6gy24w9sfb6ic0pg22j8y6s23q8ls0i15qf3rng77"; })
-  (fetchNuGet { pname = "Azure.Bicep.Types.Az"; version = "0.2.677"; sha256 = "1wgng31pfm272yipigjz24ky2qfrq7mfj9fx0wbyr3q8g6cascnp"; })
+  (fetchNuGet { pname = "Azure.Bicep.Types"; version = "0.5.9"; sha256 = "02v5jzrap5flk5r6jwbw3mzvkxb51kmz4g71j2nnikqgnc4v5dh2"; })
+  (fetchNuGet { pname = "Azure.Bicep.Types.Az"; version = "0.2.686"; sha256 = "08yv067s9cccr7brsw85mdgbq0cyw39vmbmfxcvhhnvrgd7g4mgf"; })
   (fetchNuGet { pname = "Azure.Bicep.Types.K8s"; version = "0.1.626"; sha256 = "1c07igq6jqxkg9iln452fnng2n6ddd0008vb5lgbzdpgp1amz2ji"; })
   (fetchNuGet { pname = "Azure.Containers.ContainerRegistry"; version = "1.1.1"; sha256 = "0hn6mq1bffcq7d5w4rj4ffdxb3grvymzrpyl1qrbxksqpfbd0bh4"; })
   (fetchNuGet { pname = "Azure.Core"; version = "1.36.0"; sha256 = "14lsc6zik7s5by3gp86pf77wh58fcqrjy2xhx5p03gmhdn6iz2cn"; })
-  (fetchNuGet { pname = "Azure.Deployments.Core"; version = "1.0.1158"; sha256 = "07bjwmal3qy23axa9g0gsc5qdajypvbpys15k8y05gnflz85rqzy"; })
-  (fetchNuGet { pname = "Azure.Deployments.Expression"; version = "1.0.1158"; sha256 = "1kn515apm33fmrdz8v9y8ac2w83cbbvf74w2grrl1aimg5n4qjsb"; })
+  (fetchNuGet { pname = "Azure.Core"; version = "1.38.0"; sha256 = "1rnnip757kdzipfvrz9qc730mpkcq8r36lspwx20p0s9hss8qdc3"; })
+  (fetchNuGet { pname = "Azure.Core"; version = "1.39.0"; sha256 = "0b36vi12pzqls6ad1dwzc8zq8wb07rkg2y52divl8gh2za43x5wp"; })
+  (fetchNuGet { pname = "Azure.Deployments.Core"; version = "1.0.1243.1"; sha256 = "18lh45y9axc494hpxdp8w6d8c92n8m6k4lqjyh4znd2mcmm57wbz"; })
+  (fetchNuGet { pname = "Azure.Deployments.Expression"; version = "1.0.1243.1"; sha256 = "1shk9amp9d3v6lbf2s0j1fxf5xm468fvphhnni95v6w2cpv1fdv8"; })
   (fetchNuGet { pname = "Azure.Deployments.Internal.GenerateNotice"; version = "0.1.38"; sha256 = "00jzm0c1ch24mh50hqmzs2jxda929zg1j1dgnhs5gbsyk7zjlvrd"; })
-  (fetchNuGet { pname = "Azure.Deployments.Templates"; version = "1.0.1158"; sha256 = "1zww735mbw1jswd3l8m7y48giqkcxn9v1fy9g6kp3c4dr97519wq"; })
-  (fetchNuGet { pname = "Azure.Identity"; version = "1.10.4"; sha256 = "0w345hzp43wbs5f5qk1y7wmyp11cayphnycpflil5ayvvz2jjfn2"; })
-  (fetchNuGet { pname = "Azure.ResourceManager"; version = "1.9.0"; sha256 = "143rv7rq16q4b4fhh3yjjc5r4g226jhpl6ngwvr69kbbxhw0n618"; })
-  (fetchNuGet { pname = "Azure.ResourceManager.Resources"; version = "1.7.0"; sha256 = "1hjbb607fxb26c7bxx1lc3v50hxmv446klg7c1k89a7wkiqgvmh9"; })
-  (fetchNuGet { pname = "coverlet.collector"; version = "6.0.1"; sha256 = "12xiib5p8f4aj9gz0jn6s96lsa172qi92j46rrb39sidh0mbbdil"; })
+  (fetchNuGet { pname = "Azure.Deployments.Templates"; version = "1.0.1243.1"; sha256 = "11glwwxq9xzi3vrnqx833dry9n6ykspf6gfab0g23d8fygd5d2rf"; })
+  (fetchNuGet { pname = "Azure.Identity"; version = "1.11.2"; sha256 = "1zb18p50l24nr9v0srywqq5cx6xbyrlcib1i244z9vmi1qkjia2h"; })
+  (fetchNuGet { pname = "Azure.ResourceManager"; version = "1.11.1"; sha256 = "0vfp2rs4r9x3zkvw0za8q6xz3rrb8nywjd1137rpbpy0zx7qnbry"; })
+  (fetchNuGet { pname = "Azure.ResourceManager.Resources"; version = "1.7.2"; sha256 = "1cw732wpixh4vrlznc70ld3d1hrw6smk57ar8imh4l7jvd9fn041"; })
+  (fetchNuGet { pname = "coverlet.collector"; version = "6.0.2"; sha256 = "0fll8yssdzi2wv8l26qz2zl0qqrp5nlbdqxjwfh5p356nd991m1d"; })
   (fetchNuGet { pname = "FluentAssertions"; version = "6.12.0"; sha256 = "04fhn67930zv3i0d8xbrbw5vwz99c83bbvgdwqiir55vw5xlys9c"; })
+  (fetchNuGet { pname = "Humanizer.Core"; version = "2.14.1"; sha256 = "1ai7hgr0qwd7xlqfd92immddyi41j3ag91h3594yzfsgsy6yhyqi"; })
   (fetchNuGet { pname = "IPNetwork2"; version = "2.6.598"; sha256 = "03nxkiwy1bxgpv5n1lfd06grdyjc10a3k9gyc04rhzysjsswiy0l"; })
   (fetchNuGet { pname = "JetBrains.Annotations"; version = "2023.3.0"; sha256 = "0vp4mpn6gfckn8grzjm1jxlbqiq2fglm2rk9wq787adw7rxs8k7w"; })
-  (fetchNuGet { pname = "Json.More.Net"; version = "1.8.0"; sha256 = "1jlcmgn3pw4jzk9ys6jhkbigfdn9rrrb0wb2v0yxi5wv82arviq5"; })
-  (fetchNuGet { pname = "Json.More.Net"; version = "1.9.2"; sha256 = "1w5xascr03iv7830vdrlpxjrxiabypaqkkcij118lfm41pqhw8b7"; })
-  (fetchNuGet { pname = "JsonPatch.Net"; version = "2.1.0"; sha256 = "0ckz04108p7j8gzqs61bkvlbxfbqvbr19aykmkbbw44inr9azxai"; })
-  (fetchNuGet { pname = "JsonPath.Net"; version = "0.7.0"; sha256 = "0lv9w9m8327hyjzqbl2mwv61zsimc8b114nc67jwv0lm9v29skm0"; })
-  (fetchNuGet { pname = "JsonPointer.Net"; version = "3.0.1"; sha256 = "109q63pdsxdiy4rwj4qm1rj1cadxhksw3ik1frsrn2clkpj4lwks"; })
+  (fetchNuGet { pname = "Json.More.Net"; version = "2.0.1.1"; sha256 = "0i6w5n075qhawqr832hl8bzsdspwkfkmfnnv94c9ilq06srvy1gc"; })
+  (fetchNuGet { pname = "Json.More.Net"; version = "2.0.1.2"; sha256 = "1fzw9d55hvynrwz01gj0xv6ybjm7nsrm2vxqy6d15wr75w3pyyky"; })
+  (fetchNuGet { pname = "JsonPatch.Net"; version = "3.0.0.2"; sha256 = "1pi7qvjpndgxiipn21hbqf0f5ff1rijhqkcjag8pg3lcyrlm1vnl"; })
+  (fetchNuGet { pname = "JsonPath.Net"; version = "1.0.1.2"; sha256 = "0br6k35mwc1nisvma5izpig5mc8390fly12sics6yi82xyvhgqx5"; })
+  (fetchNuGet { pname = "JsonPointer.Net"; version = "4.0.1.3"; sha256 = "06yvdiwz4j8rg42wlvlflaiq2qyhcm5r3x7gczjvfihfsydvj09f"; })
   (fetchNuGet { pname = "MessagePack"; version = "2.5.108"; sha256 = "0cnaz28lhrdmavnxjkakl9q8p2yv8mricvp1b0wxdfnz8v41gwzs"; })
   (fetchNuGet { pname = "MessagePack.Annotations"; version = "2.5.108"; sha256 = "0nb1fx8dwl7304kw0bc375bvlhb7pg351l4cl3vqqd7d8zqjwx5v"; })
   (fetchNuGet { pname = "Microsoft.ApplicationInsights"; version = "2.21.0"; sha256 = "1q034jbqkxb8lddkd0ijp0wp0ymnnf3bg2mjpay027zv7jswnc4x"; })
@@ -39,7 +42,7 @@
   (fetchNuGet { pname = "Microsoft.Diagnostics.Tracing.TraceEvent"; version = "3.1.3"; sha256 = "1bappkn6vzaaq5yw9fzhds2gz557bhgmxvh38ifw6l39jkar2lii"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "8.0.0"; sha256 = "080kab87qgq2kh0ijry5kfdiq9afyzb8s0k3jqi5zbbi540yq4zl"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "8.0.0"; sha256 = "1jlpa4ggl1gr5fs7fdcw04li3y3iy05w3klr9lrrlc7v8w76kq71"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "8.0.0"; sha256 = "1m0gawiz8f5hc3li9vd5psddlygwgkiw13d7div87kmkf4idza8r"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "8.0.1"; sha256 = "0w5w0h1clv7585qkajy0vqb28blghhcv5j9ygfi13219idhx10r9"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Configuration.FileExtensions"; version = "8.0.0"; sha256 = "1jrmlfzy4h32nzf1nm5q8bhkpx958b0ww9qx1k1zm4pyaf6mqb04"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Json"; version = "8.0.0"; sha256 = "1n3ss26v1lq6b69fxk1vz3kqv9ppxq8ypgdqpd7415xrq66y4bqn"; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "8.0.0"; sha256 = "0i7qziz0iqmbk8zzln7kx9vd0lbx1x3va0yi3j1bgkjir13h78ps"; })
@@ -52,18 +55,19 @@
   (fetchNuGet { pname = "Microsoft.Extensions.ObjectPool"; version = "5.0.10"; sha256 = "07fk669pjydkcg6bxxv7aj548fzab4yb7ba8370d719lgi9y425l"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "8.0.0"; sha256 = "0p50qn6zhinzyhq9sy5svnmqqwhw2jajs2pbjh9sah504wjvhscz"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "8.0.0"; sha256 = "0aldaz5aapngchgdr7dax9jw5wy7k7hmjgjpfgfv1wfif27jlkqm"; })
-  (fetchNuGet { pname = "Microsoft.Graph.Bicep.Types"; version = "0.1.3-preview"; sha256 = "0y910m1gw4sn41qskhxf9lwhvqlg9wnpyj2frzj7nbgyxwdljrqk"; })
-  (fetchNuGet { pname = "Microsoft.Identity.Client"; version = "4.56.0"; sha256 = "0rwyj8qagx93ys67a8k878ib3zdcrjb3jrl0aif3i8a0knwpsxxx"; })
-  (fetchNuGet { pname = "Microsoft.Identity.Client.Extensions.Msal"; version = "4.56.0"; sha256 = "1pcq46kfk3b1yyqr1rlk7sxd69xg0l9hrmard5nvqd7kh287l08m"; })
-  (fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "6.22.0"; sha256 = "06495i2i9cabys4s0dkaz0rby8k47gy627v9ivp7aa3k6xmypviz"; })
+  (fetchNuGet { pname = "Microsoft.Graph.Bicep.Types"; version = "0.1.5-preview"; sha256 = "0k26hh1mbrchmkymhf0in7g7dpgyzn2i1dfffi58w5wi5f25gsph"; })
+  (fetchNuGet { pname = "Microsoft.Identity.Client"; version = "4.60.3"; sha256 = "065iifhffri8wc5i4nfbnkzjrvflav9v5bfkwvmax8f35rks1mnn"; })
+  (fetchNuGet { pname = "Microsoft.Identity.Client.Extensions.Msal"; version = "4.60.3"; sha256 = "19l92ynvrhb76r0zpj8qhyymxgz45knyhdqr6za4s7rzbssibi08"; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "6.35.0"; sha256 = "0i6kdvqdbzynzrr4g5idx4ph4ckggsbsy0869lwa10fhmyxrh73g"; })
   (fetchNuGet { pname = "Microsoft.NET.StringTools"; version = "17.4.0"; sha256 = "1smx30nq22plrn2mw4wb5vfgxk6hyx12b60c4wabmpnr81lq3nzv"; })
   (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.9.0"; sha256 = "1lls1fly2gr1n9n1xyl9k33l2v4pwfmylyzkq8v4v5ldnwkl1zdb"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "3.1.0"; sha256 = "1gc1x8f95wk8yhgznkwsg80adk1lc65v9n5rx4yaa4bc5dva0z3j"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
-  (fetchNuGet { pname = "Microsoft.PowerPlatform.ResourceStack"; version = "6.0.0.1485"; sha256 = "1dszc9fhg9xpp96gx5djg2azxvfb36551malysdgxvd2r23vvfwh"; })
+  (fetchNuGet { pname = "Microsoft.PowerPlatform.ResourceStack"; version = "7.0.0.2007"; sha256 = "1higvig4ajwgcw6bdhxmf0s5p4gy1m69rnngdi1ik42731wrafay"; })
   (fetchNuGet { pname = "Microsoft.SourceLink.Common"; version = "8.0.0"; sha256 = "0xrr8yd34ij7dqnyddkp2awfmf9qn3c89xmw2f3npaa4wnajmx81"; })
   (fetchNuGet { pname = "Microsoft.SourceLink.GitHub"; version = "8.0.0"; sha256 = "1gdx7n45wwia3yvang3ls92sk3wrymqcx9p349j8wba2lyjf9m44"; })
   (fetchNuGet { pname = "Microsoft.Testing.Extensions.Telemetry"; version = "1.0.2"; sha256 = "00psv2mvynd2bz8xnzvqvb32qr33glqxg4ni5j91b93k84yjy5ma"; })
@@ -75,19 +79,17 @@
   (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.9.0"; sha256 = "1kgsl9w9fganbm9wvlkqgk0ag9hfi58z88rkfybc6kvg78bx89ca"; })
   (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.9.0"; sha256 = "19ffh31a1jxzn8j69m1vnk5hyfz3dbxmflq77b8x82zybiilh5nl"; })
   (fetchNuGet { pname = "Microsoft.VisualStudio.Threading"; version = "17.7.35"; sha256 = "1sr2ydgl6clnpf7axjhnffx3z2jz1zhnxfiizsv1prl26r3y52f9"; })
-  (fetchNuGet { pname = "Microsoft.VisualStudio.Threading.Analyzers"; version = "17.9.28"; sha256 = "0g64zn1wk96v9rj04rkcg7jwklaihj317gsdfswqg33yrcn4z5ig"; })
+  (fetchNuGet { pname = "Microsoft.VisualStudio.Threading.Analyzers"; version = "17.10.48"; sha256 = "00p3ywq4ppfl14l9yzxl5id5zmay8fv42b4w3ppr1b3d5ipldxhj"; })
   (fetchNuGet { pname = "Microsoft.VisualStudio.Validation"; version = "17.6.11"; sha256 = "0qx4nzsx28galgzzjkgf541254d433dgxcaf7y2y1qyyxgsfjj1f"; })
-  (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
   (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.7.0"; sha256 = "0bx21jjbs7l5ydyw4p6cn07chryxpmchq2nl5pirzz4l3b0q4dgs"; })
   (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "5.0.0"; sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n"; })
   (fetchNuGet { pname = "Microsoft.Win32.Registry.AccessControl"; version = "6.0.0"; sha256 = "1c1x47c6p21l6l84kw8wvsdhnd7ifrrrl8in0bnkaq7y1va4fvsn"; })
   (fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "6.0.1"; sha256 = "1map729br97ny6mqkaw5qsg55yjbfz2hskvy56qz8rf7p1bjhky2"; })
   (fetchNuGet { pname = "Microsoft.Windows.Compatibility"; version = "6.0.7"; sha256 = "1b01dg77mw2ih3dy5sajjvqd89zv4yjqffmb8gs7dpzwnncin91d"; })
   (fetchNuGet { pname = "MSTest.TestAdapter"; version = "3.2.2"; sha256 = "14nrxg1cd3lzaxw7zz8z91168sgnsf1xxnrpdy7wkd6ggk22hi19"; })
-  (fetchNuGet { pname = "MSTest.TestFramework"; version = "3.2.2"; sha256 = "0igdrjr300bqz5lnibf9vl8pkaky1l27f889gza3a9xs83mpd06p"; })
+  (fetchNuGet { pname = "MSTest.TestFramework"; version = "3.3.1"; sha256 = "1k706rfifdx28kxhnqpfhfc79zvzd7wnyqvf3g6r27p9ramzw3j9"; })
   (fetchNuGet { pname = "Nerdbank.GitVersioning"; version = "3.6.133"; sha256 = "1cdw8krvsnx0n34f7fm5hiiy7bs6h3asvncqcikc0g46l50w2j80"; })
   (fetchNuGet { pname = "Nerdbank.Streams"; version = "2.10.69"; sha256 = "1klsyly7k1xhbhrpq2s2iwdlmw3xyvh51rcakfazwxkv2hm5fj3b"; })
-  (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
   (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; })
   (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.3"; sha256 = "0xrwysmrn4midrjal8g2hr1bbg38iyisl0svamb11arqws4w2bw7"; })
   (fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
@@ -96,7 +98,6 @@
   (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk"; })
   (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn"; })
   (fetchNuGet { pname = "runtime.any.System.Globalization"; version = "4.3.0"; sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x"; })
-  (fetchNuGet { pname = "runtime.any.System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201"; })
   (fetchNuGet { pname = "runtime.any.System.IO"; version = "4.3.0"; sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x"; })
   (fetchNuGet { pname = "runtime.any.System.Reflection"; version = "4.3.0"; sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly"; })
   (fetchNuGet { pname = "runtime.any.System.Reflection.Extensions"; version = "4.3.0"; sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33"; })
@@ -108,7 +109,6 @@
   (fetchNuGet { pname = "runtime.any.System.Text.Encoding"; version = "4.3.0"; sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3"; })
   (fetchNuGet { pname = "runtime.any.System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8"; })
   (fetchNuGet { pname = "runtime.any.System.Threading.Tasks"; version = "4.3.0"; sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va"; })
-  (fetchNuGet { pname = "runtime.any.System.Threading.Timer"; version = "4.3.0"; sha256 = "0aw4phrhwqz9m61r79vyfl5la64bjxj8l34qnrcwb28v49fg2086"; })
   (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
   (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
   (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
@@ -117,42 +117,32 @@
   (fetchNuGet { pname = "runtime.linux-x64.runtime.native.System.IO.Ports"; version = "6.0.0"; sha256 = "0ss8fzqnvxps1ybfy70fj4vs2w78mizg4sxdriw8bvcdcfsv0rg2"; })
   (fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
   (fetchNuGet { pname = "runtime.native.System.Data.SqlClient.sni"; version = "4.7.0"; sha256 = "1b84b8rkwwwgvx1hh5r6icd975rl1ry3bc1xb87br2d8k433wgbj"; })
-  (fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; })
   (fetchNuGet { pname = "runtime.native.System.IO.Ports"; version = "6.0.0"; sha256 = "0nl8z42aiqfz0v4h1lx84jz312n1f01rlr2kzd7yfiv7p7i1dl3w"; })
-  (fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
-  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
   (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
   (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
   (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
   (fetchNuGet { pname = "runtime.osx-arm64.runtime.native.System.IO.Ports"; version = "6.0.0"; sha256 = "114swwc99lg4zjzywfcfxvbxynrlh9pvgl1wpihf88jbs2mjicw5"; })
   (fetchNuGet { pname = "runtime.osx-x64.runtime.native.System.IO.Ports"; version = "6.0.0"; sha256 = "1kwip1pj1xaqrlkf5flkk30zn2lg4821g64nfj1glpjjcj49b3wv"; })
-  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; })
   (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
   (fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
   (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
   (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
   (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
-  (fetchNuGet { pname = "runtime.unix.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id"; })
-  (fetchNuGet { pname = "runtime.unix.System.Console"; version = "4.3.0"; sha256 = "1pfpkvc6x2if8zbdzg9rnc5fx51yllprl8zkm5npni2k50lisy80"; })
   (fetchNuGet { pname = "runtime.unix.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5"; })
   (fetchNuGet { pname = "runtime.unix.System.IO.FileSystem"; version = "4.3.0"; sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix"; })
-  (fetchNuGet { pname = "runtime.unix.System.Net.Primitives"; version = "4.3.0"; sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4"; })
-  (fetchNuGet { pname = "runtime.unix.System.Net.Sockets"; version = "4.3.0"; sha256 = "03npdxzy8gfv035bv1b9rz7c7hv0rxl5904wjz51if491mw0xy12"; })
   (fetchNuGet { pname = "runtime.unix.System.Private.Uri"; version = "4.3.0"; sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"; })
   (fetchNuGet { pname = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"; })
   (fetchNuGet { pname = "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni"; version = "4.4.0"; sha256 = "07byf1iyqb7jkb17sp0mmjk46fwq6fx8mlpzywxl7qk09sma44gk"; })
   (fetchNuGet { pname = "runtime.win-x64.runtime.native.System.Data.SqlClient.sni"; version = "4.4.0"; sha256 = "0167s4mpq8bzk3y11pylnynzjr2nc84w96al9x4l8yrf34ccm18y"; })
   (fetchNuGet { pname = "runtime.win-x86.runtime.native.System.Data.SqlClient.sni"; version = "4.4.0"; sha256 = "0k3rkfrlm9jjz56dra61jgxinb8zsqlqzik2sjwz7f8v6z6ddycc"; })
-  (fetchNuGet { pname = "Sarif.Sdk"; version = "4.4.0"; sha256 = "0860mqyzcckvfg1air1pva5v9npzq6d2cn8bds8zqxg06jxq9gvy"; })
-  (fetchNuGet { pname = "SharpYaml"; version = "2.1.0"; sha256 = "05qrppbhfyikv94vnzpb7x1y6yd3znkr8pc0vsmdgca6z6jsy2lq"; })
-  (fetchNuGet { pname = "StreamJsonRpc"; version = "2.17.8"; sha256 = "187zkhi7a81idma7gw072xxsikmvadkxszl48qzffsqzjz8y2wxb"; })
-  (fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
+  (fetchNuGet { pname = "Sarif.Sdk"; version = "4.5.4"; sha256 = "0bw2r6qndqj49x2g90rxyp966mdzik9355jgjan6ijib1rad2z2w"; })
+  (fetchNuGet { pname = "SharpYaml"; version = "2.1.1"; sha256 = "171s60qpqj5r7krkn2zq6fg6f09ixsd5czrw91qm5lg3vpvknar9"; })
+  (fetchNuGet { pname = "StreamJsonRpc"; version = "2.17.11"; sha256 = "1y6pr2lcpqbwian0iiyf9bagwyx0l7dbarazk3cyah1fl3rrjaqd"; })
   (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
+  (fetchNuGet { pname = "System.ClientModel"; version = "1.0.0"; sha256 = "0rhbabgfnxx6qcaxq218h5si4gbq6sn4rgg6cn9bgw6rrzcgnxn8"; })
   (fetchNuGet { pname = "System.CodeDom"; version = "6.0.0"; sha256 = "1i55cxp8ycc03dmxx4n22qi6jkwfl23cgffb95izq7bjar8avxxq"; })
   (fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
   (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
-  (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
-  (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.5.0"; sha256 = "1d5gjn5afnrf461jlxzawcvihz195gayqpcfbv6dd7pxa9ialn06"; })
   (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.6.0"; sha256 = "1pbxzdz3pwqyybzv5ff2b7nrc281bhg7hq34w0fn1w3qfgrbwyw2"; })
   (fetchNuGet { pname = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; })
   (fetchNuGet { pname = "System.Collections.Immutable"; version = "7.0.0"; sha256 = "1n9122cy6v3qhsisc9lzwa1m1j62b8pi2678nsmnlyvfpk0zdagm"; })
@@ -160,20 +150,16 @@
   (fetchNuGet { pname = "System.ComponentModel.Composition.Registration"; version = "6.0.0"; sha256 = "1lv5b42lssrkzbk2fz9phmdgwmqzi2n3yg3rl081q661nij3vv1l"; })
   (fetchNuGet { pname = "System.Configuration.ConfigurationManager"; version = "4.4.0"; sha256 = "1hjgmz47v5229cbzd2pwz2h0dkq78lb2wp9grx8qr72pb5i0dk7v"; })
   (fetchNuGet { pname = "System.Configuration.ConfigurationManager"; version = "6.0.1"; sha256 = "1d6cx49fzycbl2fam8d1j3491sqx6mh7qkb5ddrawr00x74hgzak"; })
-  (fetchNuGet { pname = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
   (fetchNuGet { pname = "System.Data.Odbc"; version = "6.0.1"; sha256 = "12g9fzx6y5gb1bb5lyfxin1d5snw69pdwv481x13m6qhkfhk3lx4"; })
   (fetchNuGet { pname = "System.Data.OleDb"; version = "6.0.0"; sha256 = "0cbf6qw7k13rjrk5zfd158yri023ryaifd6fz5cbqgwdg4vpnvpz"; })
-  (fetchNuGet { pname = "System.Data.SqlClient"; version = "4.8.5"; sha256 = "17g5snnjf4fy67ayqj8vqa4vz916njffahbc365z37l5v0w7g92a"; })
-  (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
+  (fetchNuGet { pname = "System.Data.SqlClient"; version = "4.8.6"; sha256 = "153wgkb8gcbqk00zsdj8lw8d4ms60h6k08n57yiyxlyyimrg5ks1"; })
   (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
-  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.3.0"; sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; })
   (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "5.0.0"; sha256 = "0phd2qizshjvglhzws1jd0cq4m54gscz4ychzr3x6wbgl4vvfrga"; })
   (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "6.0.1"; sha256 = "17h8bkcv0vf9a7gp9ajkd107zid98wql5kzlzwrjm5nm92nk0bsy"; })
   (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "7.0.2"; sha256 = "1h97ikph775gya93qsjjaka87qcygbyh1064rh1hnfcnp5xv0ipi"; })
   (fetchNuGet { pname = "System.Diagnostics.EventLog"; version = "6.0.0"; sha256 = "08y1x2d5w2hnhkh9r1998pjc7r4qp0rmzax062abha85s11chifd"; })
   (fetchNuGet { pname = "System.Diagnostics.PerformanceCounter"; version = "6.0.1"; sha256 = "17p5vwbgrycsrvv9a9ksxbiziy75x4s25dw71fnbw1ci5kpp8yz7"; })
   (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
-  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
   (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
   (fetchNuGet { pname = "System.DirectoryServices"; version = "6.0.1"; sha256 = "17abibzqmr4amxpnbpv198qzdpb5mafn655ayisfc4mmhmyks39a"; })
   (fetchNuGet { pname = "System.DirectoryServices.AccountManagement"; version = "6.0.0"; sha256 = "1hvmasf4zsjpds0q8j8k5n61lr6mqhi37bsz1m65r6fs5kx5jrfn"; })
@@ -183,36 +169,22 @@
   (fetchNuGet { pname = "System.Formats.Asn1"; version = "6.0.0"; sha256 = "1vvr7hs4qzjqb37r0w1mxq7xql2b17la63jwvmgv65s1hj00g8r9"; })
   (fetchNuGet { pname = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
   (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
-  (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
-  (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
   (fetchNuGet { pname = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
   (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
-  (fetchNuGet { pname = "System.IO.Abstractions"; version = "20.0.15"; sha256 = "0lj2y0fpns0dgw9wfsx804qsm9i9g01hrdsws3pmlwzrin73ghyg"; })
-  (fetchNuGet { pname = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; })
-  (fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.3.0"; sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar"; })
+  (fetchNuGet { pname = "System.IO.Abstractions"; version = "21.0.2"; sha256 = "1mp73hkrxb83bs16458qgf7l3n20ddnfkij1pd603dr8w22j7279"; })
   (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.0.1"; sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; })
-  (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
-  (fetchNuGet { pname = "System.IO.FileSystem.AccessControl"; version = "5.0.0"; sha256 = "0ixl68plva0fsj3byv76bai7vkin86s6wyzr8vcav3szl862blvk"; })
-  (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
   (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
   (fetchNuGet { pname = "System.IO.Packaging"; version = "6.0.0"; sha256 = "112nq0k2jc4vh71rifqqmpjxkaanxfapk7g8947jkfgq3lmfmaac"; })
   (fetchNuGet { pname = "System.IO.Pipelines"; version = "7.0.0"; sha256 = "1ila2vgi1w435j7g2y7ykp2pdbh9c5a02vm85vql89az93b7qvav"; })
   (fetchNuGet { pname = "System.IO.Ports"; version = "6.0.0"; sha256 = "0b0gvn7b2xsy2b0wwa170jzm5cwy3xxwpyqm21m4cbpc0ckri802"; })
   (fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
-  (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
   (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
-  (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
   (fetchNuGet { pname = "System.Management"; version = "6.0.2"; sha256 = "190bxmg0y5dmzh0yv9gzh8k6safdz20gqaifpnl8v7yw3z5wcpgj"; })
   (fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
   (fetchNuGet { pname = "System.Memory"; version = "4.5.5"; sha256 = "08jsfwimcarfzrhlyvjjid61j02irx6xsklf32rv57x2aaikvx0h"; })
   (fetchNuGet { pname = "System.Memory.Data"; version = "1.0.2"; sha256 = "1p8qdg0gzxhjvabryc3xws2629pj8w5zz2iqh86kw8sh0rann9ay"; })
-  (fetchNuGet { pname = "System.Net.Http"; version = "4.3.0"; sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; })
-  (fetchNuGet { pname = "System.Net.NameResolution"; version = "4.3.0"; sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq"; })
-  (fetchNuGet { pname = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
-  (fetchNuGet { pname = "System.Net.Sockets"; version = "4.3.0"; sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla"; })
   (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; })
   (fetchNuGet { pname = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
-  (fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
   (fetchNuGet { pname = "System.Private.ServiceModel"; version = "4.9.0"; sha256 = "117vxa0pfgg6xfdxfpza4296ay7sqiaynyvfbsai43yrkh0lmch1"; })
   (fetchNuGet { pname = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; })
   (fetchNuGet { pname = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
@@ -220,19 +192,14 @@
   (fetchNuGet { pname = "System.Reflection.Context"; version = "6.0.0"; sha256 = "1vy3b143429amaa0501xjgdszvpdygkrs5rkivnrkl69f67dad5j"; })
   (fetchNuGet { pname = "System.Reflection.DispatchProxy"; version = "4.7.1"; sha256 = "10yh3q2i71gcw7c0dfz9qxql2vlvnqjav1hyf1q9rpbvdbgsabrs"; })
   (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
-  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
   (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
-  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
   (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
-  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
   (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.7.0"; sha256 = "0mbjfajmafkca47zr8v36brvknzks5a7pgb49kfq2d188pyv6iap"; })
   (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
-  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
   (fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
   (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
   (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
   (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; })
-  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
   (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.0.1"; sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; })
   (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
   (fetchNuGet { pname = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
@@ -247,27 +214,16 @@
   (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
   (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; })
   (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
-  (fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
-  (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
   (fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; })
+  (fetchNuGet { pname = "System.Security.AccessControl"; version = "4.7.0"; sha256 = "0n0k0w44flkd8j0xw7g3g3vhw7dijfm51f75xkm1qxnbh4y45mpz"; })
   (fetchNuGet { pname = "System.Security.AccessControl"; version = "5.0.0"; sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r"; })
   (fetchNuGet { pname = "System.Security.AccessControl"; version = "6.0.0"; sha256 = "0a678bzj8yxxiffyzy60z2w1nczzpi8v97igr4ip3byd2q89dv58"; })
-  (fetchNuGet { pname = "System.Security.Claims"; version = "4.3.0"; sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
   (fetchNuGet { pname = "System.Security.Cryptography.Pkcs"; version = "6.0.4"; sha256 = "0hh5h38pnxmlrnvs72f2hzzpz4b2caiiv6xf8y7fzdg84r3imvfr"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
   (fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "4.4.0"; sha256 = "1q8ljvqhasyynp94a1d7jknk946m20lkwy2c3wa8zw2pc517fbj6"; })
   (fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "4.7.0"; sha256 = "1s1sh8k10s0apa09c5m2lkavi3ys90y657whg2smb3y8mpkfr5vm"; })
   (fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "6.0.0"; sha256 = "05kd3a8w7658hjxq9vvszxip30a479fjmfq4bq1r95nrsvs4hbss"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
   (fetchNuGet { pname = "System.Security.Cryptography.Xml"; version = "6.0.1"; sha256 = "15d0np1njvy2ywf0qzdqyjk5sjs4zbfxg917jrvlbfwrqpqxb5dj"; })
   (fetchNuGet { pname = "System.Security.Permissions"; version = "6.0.0"; sha256 = "0jsl4xdrkqi11iwmisi1r2f2qn5pbvl79mzq877gndw6ans2zhzw"; })
-  (fetchNuGet { pname = "System.Security.Principal"; version = "4.3.0"; sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf"; })
-  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.3.0"; sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr"; })
   (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.7.0"; sha256 = "1a56ls5a9sr3ya0nr086sdpa9qv0abv31dd6fp27maqa9zclqq5d"; })
   (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
   (fetchNuGet { pname = "System.ServiceModel.Duplex"; version = "4.9.0"; sha256 = "0jwbpcpgxv5zar3raypgvfnwvn4bv3n212cbcgyj7r0xj33c1kqi"; })
@@ -280,21 +236,17 @@
   (fetchNuGet { pname = "System.Speech"; version = "6.0.0"; sha256 = "1g7b077189x9xy4l9yrh2yfnhc83mk6aj7b0v64xdqsrsqv1z16v"; })
   (fetchNuGet { pname = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
   (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
+  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.3.0"; sha256 = "0lgxg1gn7pg7j0f942pfdc9q7wamzxsgq3ng248ikdasxz0iadkv"; })
   (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "6.0.0"; sha256 = "0gm2kiz2ndm9xyzxgi0jhazgwslcs427waxgfa30m7yqll1kcrww"; })
-  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "8.0.0"; sha256 = "1lgdd78cik4qyvp2fggaa0kzxasw6kc9a6cjqw46siagrm0qnc3y"; })
-  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
   (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
   (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "4.7.2"; sha256 = "0ap286ykazrl42if59bxhzv81safdfrrmfqr3112siwyajx4wih9"; })
-  (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "6.0.0"; sha256 = "06n9ql3fmhpjl32g3492sj181zjml5dlcc5l76xq2h38c4f87sai"; })
   (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "7.0.0"; sha256 = "1151hbyrcf8kyg1jz8k9awpbic98lwz9x129rg7zk1wrs6vjlpxl"; })
   (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "8.0.0"; sha256 = "1wbypkx0m8dgpsaqgyywz4z760xblnwalb241d5qv9kx8m128i11"; })
   (fetchNuGet { pname = "System.Text.Json"; version = "4.7.2"; sha256 = "10xj1pw2dgd42anikvj9qm23ccssrcp7dpznpj4j7xjp1ikhy3y4"; })
-  (fetchNuGet { pname = "System.Text.Json"; version = "6.0.2"; sha256 = "1lz6gx1r4if8sbx6yp9h0mi0g9ffr40x0cg518l0z2aiqgil3fk0"; })
   (fetchNuGet { pname = "System.Text.Json"; version = "7.0.3"; sha256 = "0zjrnc9lshagm6kdb9bdh45dmlnkpwcpyssa896sda93ngbmj8k9"; })
   (fetchNuGet { pname = "System.Text.Json"; version = "8.0.0"; sha256 = "134savxw0sq7s448jnzw17bxcijsi1v38mirpbb6zfxmqlf04msw"; })
   (fetchNuGet { pname = "System.Text.Json"; version = "8.0.2"; sha256 = "1pi1dkypmn34qqspvwfcp1fx78v0nh78dpdyj4rcaa2qch40y15r"; })
   (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
-  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
   (fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
   (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
   (fetchNuGet { pname = "System.Threading.AccessControl"; version = "6.0.0"; sha256 = "1f036x8994yqz13a1cx6vvzd2bqzwy4mchn1pgfsybaw1xa10jk6"; })
@@ -302,17 +254,11 @@
   (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
   (fetchNuGet { pname = "System.Threading.Tasks.Dataflow"; version = "7.0.0"; sha256 = "0ham9l8xrmlq2qwin53n82iz1wanci2h695i3cq83jcw4n28qdr9"; })
   (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
-  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
   (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
-  (fetchNuGet { pname = "System.Threading.ThreadPool"; version = "4.3.0"; sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1"; })
-  (fetchNuGet { pname = "System.Threading.Timer"; version = "4.3.0"; sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; })
   (fetchNuGet { pname = "System.Web.Services.Description"; version = "4.9.0"; sha256 = "08f9ksj826nz4pfw1bw7xg811x99yyj871nfmvav6yxfkx9faqkh"; })
   (fetchNuGet { pname = "System.Windows.Extensions"; version = "6.0.0"; sha256 = "1wy9pq9vn1bqg5qnv53iqrbx04yzdmjw4x5yyi09y3459vaa1sip"; })
   (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
-  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
   (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
-  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
-  (fetchNuGet { pname = "TestableIO.System.IO.Abstractions"; version = "20.0.15"; sha256 = "14ivs6f91frvnygxg1qb7f7a96a3nazncj2sx4gsv1y22wmwizn4"; })
-  (fetchNuGet { pname = "TestableIO.System.IO.Abstractions.Wrappers"; version = "20.0.15"; sha256 = "0avsf5bwjq4ymjmri917w610xzv6l300fxq3h7xhfprs25crby3k"; })
-  (fetchNuGet { pname = "WindowsAzure.Storage"; version = "9.3.3"; sha256 = "14b0b0nj85yvyn0h8ghr3kj6di2nkbzjxc2q98f1wcr0151xvdfx"; })
+  (fetchNuGet { pname = "TestableIO.System.IO.Abstractions"; version = "21.0.2"; sha256 = "1mc358wlq9y21gzj44af8hxlyjm0ws0i9f5vmsn31dn5wbfh4dy5"; })
+  (fetchNuGet { pname = "TestableIO.System.IO.Abstractions.Wrappers"; version = "21.0.2"; sha256 = "0q3vghssyh6rd7w7n4rjv5ngh5byf1y80i22yw9fx10f4hcsw1az"; })
 ]
diff --git a/pkgs/by-name/bi/bicep/package.nix b/pkgs/by-name/bi/bicep/package.nix
index d91ffd7e5c6c0..7cd6a06463f37 100644
--- a/pkgs/by-name/bi/bicep/package.nix
+++ b/pkgs/by-name/bi/bicep/package.nix
@@ -8,13 +8,13 @@
 
 buildDotnetModule rec {
   pname = "bicep";
-  version = "0.26.54";
+  version = "0.27.1";
 
   src = fetchFromGitHub {
     owner = "Azure";
     repo = "bicep";
     rev = "v${version}";
-    hash = "sha256-Obu9I2FzuYBD466DE9VZnjTHSRX+qeKqTiIJ2433DQc=";
+    hash = "sha256-7yEsxKUG2jhki1u5CObdjN4JMnEcAYR+SoGPaNJ+9Fs=";
   };
 
   projectFile = "src/Bicep.Cli/Bicep.Cli.csproj";
diff --git a/pkgs/by-name/bi/bicep/updater.sh b/pkgs/by-name/bi/bicep/updater.sh
index dc45cc1357461..22ab3eced4208 100755
--- a/pkgs/by-name/bi/bicep/updater.sh
+++ b/pkgs/by-name/bi/bicep/updater.sh
@@ -4,14 +4,15 @@
 set -eo pipefail
 cd "$(dirname "${BASH_SOURCE[0]}")"
 
+deps_file="$(realpath "./deps.nix")"
 new_version="$(curl -s "https://api.github.com/repos/azure/bicep/releases?per_page=1" | jq -r '.[0].name')"
 old_version="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./package.nix)"
 
 if [[ "$new_version" == "$old_version" ]]; then
-  echo "Already up to date!"
-  exit 0
+    echo "Already up to date!"
+    exit 0
 fi
 
 cd ../../../..
-update-source-version bicep "${new_version//v}"
-nix-build -A bicep.fetch-deps --no-out-link
+update-source-version bicep "${new_version//v/}"
+"$(nix-build . -A bicep.fetch-deps --no-out-link)" "$deps_file"
diff --git a/pkgs/by-name/bi/bitwarden-cli/package.nix b/pkgs/by-name/bi/bitwarden-cli/package.nix
index 656c1e60ec212..690535b3a7b4a 100644
--- a/pkgs/by-name/bi/bitwarden-cli/package.nix
+++ b/pkgs/by-name/bi/bitwarden-cli/package.nix
@@ -10,18 +10,18 @@
 
 buildNpmPackage rec {
   pname = "bitwarden-cli";
-  version = "2024.3.1";
+  version = "2024.4.1";
 
   src = fetchFromGitHub {
     owner = "bitwarden";
     repo = "clients";
     rev = "cli-v${version}";
-    hash = "sha256-JBEP4dNGL4rYKl2qNyhB2y/wZunikaGFltGVXLxgMWI=";
+    hash = "sha256-Dz7EActqXd97kNxEaNINj2O6TLZWEgHHg1lOIa2+Lt4=";
   };
 
   nodejs = nodejs_18;
 
-  npmDepsHash = "sha256-vNudSHIMmF7oXGz+ZymQahyHebs/CBDc6Oy1g0A5nqA=";
+  npmDepsHash = "sha256-fjYez3nSDsG5kYtrun3CkDCz1GNAjNlwPzEL+/9qQRU=";
 
   nativeBuildInputs = [
     python3
diff --git a/pkgs/by-name/bm/bmake/package.nix b/pkgs/by-name/bm/bmake/package.nix
index fe4e8b6ed6dd3..f1440556f6f4f 100644
--- a/pkgs/by-name/bm/bmake/package.nix
+++ b/pkgs/by-name/bm/bmake/package.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch
 , getopt
 , ksh
 , bc
diff --git a/pkgs/by-name/bo/boehmgc/package.nix b/pkgs/by-name/bo/boehmgc/package.nix
index 213d0ec9e3e32..03192ad284f54 100644
--- a/pkgs/by-name/bo/boehmgc/package.nix
+++ b/pkgs/by-name/bo/boehmgc/package.nix
@@ -50,8 +50,9 @@ stdenv.mkDerivation (finalAttrs: {
       "CFLAGS_EXTRA=-DNO_SOFT_VDB"
     ];
 
-  # `gctest` fails under emulation on aarch64-darwin
-  doCheck = !(stdenv.isDarwin && stdenv.isx86_64);
+  # `gctest` fails under x86_64 emulation on aarch64-darwin
+  # and also on aarch64-linux (qemu-user)
+  doCheck = !((stdenv.isDarwin && stdenv.isx86_64) || (stdenv.isLinux && stdenv.isAarch64));
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/by-name/bo/bombsquad/package.nix b/pkgs/by-name/bo/bombsquad/package.nix
index 0813d02525aab..61baff9e2d924 100644
--- a/pkgs/by-name/bo/bombsquad/package.nix
+++ b/pkgs/by-name/bo/bombsquad/package.nix
@@ -16,13 +16,14 @@
   copyDesktopItems,
   writeShellApplication,
   commandLineArgs ? "",
+  genericUpdater,
 }:
 let
   archive =
     {
       x86_64-linux = {
         name = "BombSquad_Linux_x86_64";
-        hash = "sha256-VLNO0TxI/KBj8RkpGjo9Rx40f7fuV3pK2kIoKff9sRU=";
+        hash = "sha256-YrbDhdVtNtxeE3fIRPIODwVO3lrxz7OAAYc7doBBQj8=";
       };
       aarch-64-linux = {
         name = "BombSquad_Linux_Arm64";
@@ -33,7 +34,7 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   name = "bombsquad";
-  version = "1.7.34";
+  version = "1.7.35";
   sourceRoot = ".";
   src = fetchurl {
     url = "https://files.ballistica.net/bombsquad/builds/${archive.name}_${finalAttrs.version}.tar.gz";
@@ -86,18 +87,20 @@ stdenv.mkDerivation (finalAttrs: {
     runHook postInstall
   '';
 
-  passthru.updateScript = lib.getExe (writeShellApplication {
-    name = "bombsquad-versionLister";
-    runtimeInputs = [
-      curl
-      gnugrep
-    ];
-    text = ''
-      curl -sL "https://files.ballistica.net/bombsquad/builds/CHANGELOG.md" \
-          | grep -oP '^### \K\d+\.\d+\.\d+' \
-          | head -n 1
-    '';
-  });
+  passthru.updateScript = genericUpdater {
+    versionLister = lib.getExe (writeShellApplication {
+      name = "bombsquad-versionLister";
+      runtimeInputs = [
+        curl
+        gnugrep
+      ];
+      text = ''
+        curl -sL "https://files.ballistica.net/bombsquad/builds/CHANGELOG.md" \
+            | grep -oP '^### \K\d+\.\d+\.\d+' \
+            | head -n 1
+      '';
+    });
+  };
 
   meta = {
     description = "A free, multiplayer, arcade-style game for up to eight players that combines elements of fighting games and first-person shooters (FPS)";
@@ -107,7 +110,10 @@ stdenv.mkDerivation (finalAttrs: {
       mit
       unfree
     ];
-    maintainers = with lib.maintainers; [ syedahkam coffeeispower ];
+    maintainers = with lib.maintainers; [
+      syedahkam
+      coffeeispower
+    ];
     mainProgram = "bombsquad";
     platforms = lib.platforms.linux;
   };
diff --git a/pkgs/by-name/bo/boogie/package.nix b/pkgs/by-name/bo/boogie/package.nix
index 2961632b88282..54664469ca2c0 100644
--- a/pkgs/by-name/bo/boogie/package.nix
+++ b/pkgs/by-name/bo/boogie/package.nix
@@ -2,13 +2,13 @@
 
 buildDotnetModule rec {
   pname = "Boogie";
-  version = "3.1.5";
+  version = "3.1.6";
 
   src = fetchFromGitHub {
     owner = "boogie-org";
     repo = "boogie";
     rev = "v${version}";
-    sha256 = "sha256-/6x4NzlSJ2uswVlfFpevXaQxUxPnh3KvnbPIb8SFX9E=";
+    sha256 = "sha256-Bli/vEzzVQTWicQJskK9cQC2XsFRwMxX9cAePXN511c=";
   };
 
   projectFile = [ "Source/Boogie.sln" ];
diff --git a/pkgs/by-name/bp/bpftrace/package.nix b/pkgs/by-name/bp/bpftrace/package.nix
index 6e516c5806eee..bc5aab6a94062 100644
--- a/pkgs/by-name/bp/bpftrace/package.nix
+++ b/pkgs/by-name/bp/bpftrace/package.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch
+{ lib, stdenv, fetchFromGitHub
 , llvmPackages, elfutils, bcc
 , libbpf, libbfd, libopcodes
 , cereal, asciidoctor
diff --git a/pkgs/development/interpreters/bqn/mlochbaum-bqn/001-libbqn-path.patch b/pkgs/by-name/bq/bqn/001-libbqn-path.patch
index b23c3de44af6d..b23c3de44af6d 100644
--- a/pkgs/development/interpreters/bqn/mlochbaum-bqn/001-libbqn-path.patch
+++ b/pkgs/by-name/bq/bqn/001-libbqn-path.patch
diff --git a/pkgs/development/interpreters/bqn/mlochbaum-bqn/default.nix b/pkgs/by-name/bq/bqn/package.nix
index d217ec99ebe5a..ca9a99c67e630 100644
--- a/pkgs/development/interpreters/bqn/mlochbaum-bqn/default.nix
+++ b/pkgs/by-name/bq/bqn/package.nix
@@ -5,15 +5,15 @@
 , nodejs
 }:
 
-stdenvNoCC.mkDerivation rec {
+stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "bqn";
-  version = "unstable-2023-05-17";
+  version = "0-unstable-2024-05-13";
 
   src = fetchFromGitHub {
     owner = "mlochbaum";
     repo = "BQN";
-    rev = "070bd07dc10c291695215265218ec0ff856ce457";
-    hash = "sha256-GRIIzJwlJ+JTBHXZjoX/9vLFbAC7zyeuqVcrA/Jm/NA=";
+    rev = "c971a177421d532a13c4b7515535552df19681e1";
+    hash = "sha256-Fru1IIb4IxBQxrEEBoRYStxBqYJJqd+Q+Hwyk++QA68=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -21,44 +21,42 @@ stdenvNoCC.mkDerivation rec {
   buildInputs = [ nodejs ];
 
   patches = [
-    # Creates a @libbqn@ substitution variable, to be filled in the fixupPhase
+    # Creates a @libbqn@ substitution variable, to be filled in postFixup
     ./001-libbqn-path.patch
   ];
 
-  dontConfigure = true;
-
-  dontBuild = true;
-
   installPhase = ''
     runHook preInstall
 
-    mkdir -p $out/bin $out/share/${pname}
-    cp bqn.js $out/share/${pname}/bqn.js
-    cp docs/bqn.js $out/share/${pname}/libbqn.js
+    mkdir -p $out/bin $out/share/bqn
+    cp bqn.js $out/share/bqn/bqn.js
+    cp docs/bqn.js $out/share/bqn/libbqn.js
 
     makeWrapper "${lib.getBin nodejs}/bin/node" "$out/bin/mbqn" \
-      --add-flags "$out/share/${pname}/bqn.js"
+      --add-flags "$out/share/bqn/bqn.js"
 
     ln -s $out/bin/mbqn $out/bin/bqn
 
     runHook postInstall
   '';
 
-  fixupPhase = ''
-    runHook preFixup
+  postFixup = ''
+    substituteInPlace $out/share/bqn/bqn.js \
+      --subst-var-by "libbqn" "$out/share/bqn/libbqn.js"
+  '';
 
-    substituteInPlace $out/share/${pname}/bqn.js \
-      --subst-var-by "libbqn" "$out/share/${pname}/libbqn.js"
+  dontConfigure = true;
 
-    runHook postFixup
-  '';
+  dontBuild = true;
+
+  strictDeps = true;
 
-  meta = with lib; {
+  meta = {
     homepage = "https://github.com/mlochbaum/BQN/";
     description = "The original BQN implementation in Javascript";
-    license = licenses.isc;
-    maintainers = with maintainers; [ AndersonTorres ];
-    platforms = platforms.all;
+    license = lib.licenses.isc;
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    inherit (nodejs.meta) platforms;
   };
-}
+})
 # TODO: install docs and other stuff
diff --git a/pkgs/by-name/br/bruno/package.nix b/pkgs/by-name/br/bruno/package.nix
index 3e9cf6b51fdcf..76b895ebbc904 100644
--- a/pkgs/by-name/br/bruno/package.nix
+++ b/pkgs/by-name/br/bruno/package.nix
@@ -27,13 +27,13 @@ let
 in
 buildNpmPackage' rec {
   pname = "bruno";
-  version = "1.17.0";
+  version = "1.18.0";
 
   src = fetchFromGitHub {
     owner = "usebruno";
     repo = "bruno";
     rev = "v${version}";
-    hash = "sha256-z4KL6CX1jtuC4lxqYA6Mg1zPSc9/OpRb530jPIQK3Is=";
+    hash = "sha256-vYN245vMt/NjISaaFSXOkELONVld6knaKbi5FiN/0tA=";
 
     postFetch = ''
       ${lib.getExe npm-lockfile-fix} $out/package-lock.json
diff --git a/pkgs/by-name/bt/btrfs-assistant/package.nix b/pkgs/by-name/bt/btrfs-assistant/package.nix
index d3bdc74980228..646a95c7af56b 100644
--- a/pkgs/by-name/bt/btrfs-assistant/package.nix
+++ b/pkgs/by-name/bt/btrfs-assistant/package.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "btrfs-assistant";
-  version = "2.0";
+  version = "2.1.1";
 
   src = fetchFromGitLab {
     owner = "btrfs-assistant";
     repo = "btrfs-assistant";
     rev = finalAttrs.version;
-    hash = "sha256-nE8Vsc0leXWhbrjMgJDef6jl9MqdojRniGcvUmrQNUQ=";
+    hash = "sha256-I4nbQmHwk84qN1SngKzKnPtQN5Dz1QSSEpHJxV8wkJw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/bu/bunbun/package.nix b/pkgs/by-name/bu/bunbun/package.nix
index 79d158fb6ae70..915f29fcec096 100644
--- a/pkgs/by-name/bu/bunbun/package.nix
+++ b/pkgs/by-name/bu/bunbun/package.nix
@@ -24,11 +24,6 @@ rustPlatform.buildRustPackage rec {
     darwin.apple_sdk.frameworks.SystemConfiguration
   ];
 
-  # Cargo.lock is outdated
-  preConfigure = ''
-    cargo update --offline
-  '';
-
   meta = with lib; {
     description = "A simple and adorable sysinfo utility written in Rust";
     homepage = "https://github.com/devraza/bunbun";
diff --git a/pkgs/by-name/c2/c2patool/package.nix b/pkgs/by-name/c2/c2patool/package.nix
index a334b857acc5b..470aac119c113 100644
--- a/pkgs/by-name/c2/c2patool/package.nix
+++ b/pkgs/by-name/c2/c2patool/package.nix
@@ -10,16 +10,16 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "c2patool";
-  version = "0.9.0";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "contentauth";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-yR6VepMZquURDb2SDwx+xE55jo3MTzh6ntSrQln1Xxs=";
+    sha256 = "sha256-+Nnvg1VzVhyrOG1/yIbeKhELzTL5j3cYFb8+P4P0qxA=";
   };
 
-  cargoHash = "sha256-Z4Q/33CwbJXlMZBq4WRT2k78PvaHpNm4pQkiAehCImI=";
+  cargoHash = "sha256-guV1n3Gx00ODOyNuosAeRw1NPumjdkC2dFJFuwFBheg=";
 
   # use the non-vendored openssl
   OPENSSL_NO_VENDOR = 1;
diff --git a/pkgs/by-name/ca/caligula/package.nix b/pkgs/by-name/ca/caligula/package.nix
index 0109720abe982..a97fa34fd0201 100644
--- a/pkgs/by-name/ca/caligula/package.nix
+++ b/pkgs/by-name/ca/caligula/package.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "caligula";
-  version = "0.4.6";
+  version = "0.4.7";
 
   src = fetchFromGitHub {
     owner = "ifd3f";
     repo = "caligula";
     rev = "v${version}";
-    hash = "sha256-nLt+PDPdW7oEMoWqW0iO4nXGlwk7UymWShn0azQt2ro=";
+    hash = "sha256-fi4W7Z32S30kzKNVEDbV8PRyTW9fZxumBGtLn8SkI5Y=";
   };
 
-  cargoHash = "sha256-8K3twPL7lNUmUUjD+nKATGgcjgoCuFO+bvlujVySXj0=";
+  cargoHash = "sha256-ma7JVbWSiKfkCXCDwA8DFm2+KPrWR+8nSdgGSqehNg8=";
 
   buildInputs = lib.optionals stdenv.isDarwin (
     with darwin.apple_sdk.frameworks; [
diff --git a/pkgs/by-name/ca/cano/package.nix b/pkgs/by-name/ca/cano/package.nix
index 31de871c491d0..ba431a541f4e6 100644
--- a/pkgs/by-name/ca/cano/package.nix
+++ b/pkgs/by-name/ca/cano/package.nix
@@ -6,13 +6,13 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   name = "cano";
-  version = "0-unstable-2024-31-3";
+  version = "0.1.0-alpha";
 
   src = fetchFromGitHub {
     owner = "CobbCoding1";
     repo = "Cano";
-    rev = "6b3488545b4180f20a7fa892fb0ee719e9298ddc";
-    hash = "sha256-qFo0szZVGLUf7c7KdEIofcieWZqtM6kQE6D8afrZ+RU=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-BKbBDN7xZwlNzw7UFgX+PD9UXbr9FtELo+PlbfSHyRY=";
   };
 
   buildInputs = [ gnumake ncurses ];
diff --git a/pkgs/by-name/ca/castero/package.nix b/pkgs/by-name/ca/castero/package.nix
index 6359c5c69536c..0b9f727dda921 100644
--- a/pkgs/by-name/ca/castero/package.nix
+++ b/pkgs/by-name/ca/castero/package.nix
@@ -15,8 +15,7 @@ python3.pkgs.buildPythonApplication rec {
     hash = "sha256-6/7oCKBMEcQeJ8PaFP15Xef9sQRYCpigtzINv2M6GUY=";
   };
 
-  nativeBuildInputs = with python3.pkgs; [
-    setuptools
+  build-system = with python3.pkgs; [
     wheel
   ];
 
@@ -29,7 +28,7 @@ python3.pkgs.buildPythonApplication rec {
     lxml
     mpv
     python-vlc
-  ];
+  ] ++ requests.optional-dependencies.socks;
 
   nativeCheckInputs = with python3.pkgs; [
     pytestCheckHook
diff --git a/pkgs/by-name/ca/castxml/package.nix b/pkgs/by-name/ca/castxml/package.nix
index 2b0a255bbdc86..684d868be686e 100644
--- a/pkgs/by-name/ca/castxml/package.nix
+++ b/pkgs/by-name/ca/castxml/package.nix
@@ -37,13 +37,10 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   buildInputs = [
-    libclang
     libffi
     libxml2
     zlib
-  ];
-
-  propagatedBuildInputs = [
+  ] ++ lib.optionals (!stdenv.isDarwin) [
     libclang
   ];
 
@@ -51,6 +48,8 @@ stdenv.mkDerivation (finalAttrs: {
     (lib.cmakeOptionType "path" "CLANG_RESOURCE_DIR" "${lib.getDev libclang}")
     (lib.cmakeBool "SPHINX_HTML" withHTML)
     (lib.cmakeBool "SPHINX_MAN" withManual)
+  ] ++ lib.optionals stdenv.isDarwin [
+    (lib.cmakeOptionType "path" "Clang_DIR" "${lib.getDev libclang}/lib/cmake/clang")
   ];
 
   # 97% tests passed, 97 tests failed out of 2881
diff --git a/pkgs/by-name/ch/ch341eeprom/package.nix b/pkgs/by-name/ch/ch341eeprom/package.nix
index 1c4661398e54a..b5e8c6f5e2ca6 100644
--- a/pkgs/by-name/ch/ch341eeprom/package.nix
+++ b/pkgs/by-name/ch/ch341eeprom/package.nix
@@ -1,25 +1,25 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, libusb1
-,
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  libusb1,
+  unstableGitUpdater,
 }:
+
 stdenv.mkDerivation {
   pname = "ch341eeprom";
-  version = "0-unstable-2021-01-05";
+  version = "0-unstable-2024-05-06";
 
   src = fetchFromGitHub {
     owner = "command-tab";
     repo = "ch341eeprom";
-    rev = "d5b2fba35a33a1cddd7a3e920e1df933f21ba9b0";
-    hash = "sha256-QUl5ErOfEfDhk1fF+BNu6n0Bake3IagNfn4I43b6Uns=";
+    rev = "7cffbef7552d93162bd90cae836a45e94acb93fb";
+    hash = "sha256-8pvQ2hBP3Rf8+MWsmMY53BghFiC5/b9k8vUjU2K6Ib4=";
   };
 
   buildInputs = [ libusb1 ];
 
-  makeFlags = [
-    "CC=${stdenv.cc.targetPrefix}cc"
-  ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   installPhase = ''
     runHook preInstall
@@ -27,12 +27,16 @@ stdenv.mkDerivation {
     runHook postInstall
   '';
 
-  meta = with lib; {
+  passthru = {
+    updateScript = unstableGitUpdater { hardcodeZeroVersion = true; };
+  };
+
+  meta = {
     description = "A libusb based programming tool for 24Cxx serial EEPROMs using the WinChipHead CH341A IC";
     homepage = "https://github.com/command-tab/ch341eeprom";
-    license = licenses.gpl3Plus;
-    platforms = platforms.darwin ++ platforms.linux;
+    license = lib.licenses.gpl3Plus;
     mainProgram = "ch341eeprom";
-    maintainers = with maintainers; [ xokdvium ];
+    maintainers = with lib.maintainers; [ xokdvium ];
+    platforms = with lib.platforms; darwin ++ linux;
   };
 }
diff --git a/pkgs/by-name/cl/clash-verge-rev/package.nix b/pkgs/by-name/cl/clash-verge-rev/package.nix
index 754588c9fd7b2..9030bc20d139a 100644
--- a/pkgs/by-name/cl/clash-verge-rev/package.nix
+++ b/pkgs/by-name/cl/clash-verge-rev/package.nix
@@ -5,11 +5,11 @@
 
 clash-verge.overrideAttrs (old: rec {
   pname = "clash-verge-rev";
-  version = "1.6.2";
+  version = "1.6.4";
 
   src = fetchurl {
     url = "https://github.com/clash-verge-rev/clash-verge-rev/releases/download/v${version}/clash-verge_${version}_amd64.deb";
-    hash = "sha256-7Nto/vEsatQ9cMNM+6aOw5jBvF/hUxElJ/SRm12yJFA=";
+    hash = "sha256-OhrC0trcl/zSCZSc4Tx9BDgqBxYiINF69LGVJQ0QGsw=";
   };
 
   meta = old.meta // (with lib; {
diff --git a/pkgs/by-name/cm/cmake/007-darwin-bsd-ps-abspath.diff b/pkgs/by-name/cm/cmake/007-darwin-bsd-ps-abspath.diff
new file mode 100644
index 0000000000000..d610192074367
--- /dev/null
+++ b/pkgs/by-name/cm/cmake/007-darwin-bsd-ps-abspath.diff
@@ -0,0 +1,41 @@
+diff -ur a/Source/kwsys/ProcessUNIX.c b/Source/kwsys/ProcessUNIX.c
+--- a/Source/kwsys/ProcessUNIX.c	2024-04-11 07:12:19.000000000 -0700
++++ b/Source/kwsys/ProcessUNIX.c	2024-05-15 10:41:00.286160616 -0700
+@@ -2501,20 +2501,20 @@
+    have two integers to store: the pid and then the ppid.  */
+ #if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) ||       \
+   defined(__OpenBSD__) || defined(__GLIBC__) || defined(__GNU__)
+-#  define KWSYSPE_PS_COMMAND "ps axo pid,ppid"
++#  define KWSYSPE_PS_COMMAND "@ps@ axo pid,ppid"
+ #  define KWSYSPE_PS_FORMAT "%d %d\n"
+ #elif defined(__sun) && (defined(__SVR4) || defined(__svr4__)) /* Solaris */
+-#  define KWSYSPE_PS_COMMAND "ps -e -o pid,ppid"
++#  define KWSYSPE_PS_COMMAND "@ps@ -e -o pid,ppid"
+ #  define KWSYSPE_PS_FORMAT "%d %d\n"
+ #elif defined(__hpux) || defined(__sun__) || defined(__sgi) ||                \
+   defined(_AIX) || defined(__sparc)
+-#  define KWSYSPE_PS_COMMAND "ps -ef"
++#  define KWSYSPE_PS_COMMAND "@ps@ -ef"
+ #  define KWSYSPE_PS_FORMAT "%*s %d %d %*[^\n]\n"
+ #elif defined(__QNX__)
+-#  define KWSYSPE_PS_COMMAND "ps -Af"
++#  define KWSYSPE_PS_COMMAND "@ps@ -Af"
+ #  define KWSYSPE_PS_FORMAT "%*d %d %d %*[^\n]\n"
+ #elif defined(__CYGWIN__)
+-#  define KWSYSPE_PS_COMMAND "ps aux"
++#  define KWSYSPE_PS_COMMAND "@ps@ aux"
+ #  define KWSYSPE_PS_FORMAT "%d %d %*[^\n]\n"
+ #endif
+ 
+diff -ur a/Source/kwsys/SystemInformation.cxx b/Source/kwsys/SystemInformation.cxx
+--- a/Source/kwsys/SystemInformation.cxx	2024-04-11 07:12:19.000000000 -0700
++++ b/Source/kwsys/SystemInformation.cxx	2024-05-15 10:40:00.901059278 -0700
+@@ -3884,7 +3884,7 @@
+   long long memUsed = 0;
+   pid_t pid = getpid();
+   std::ostringstream oss;
+-  oss << "ps -o rss= -p " << pid;
++  oss << "@ps@ -o rss= -p " << pid;
+   FILE* file = popen(oss.str().c_str(), "r");
+   if (file == nullptr) {
+     return -1;
diff --git a/pkgs/by-name/cm/cmake/package.nix b/pkgs/by-name/cm/cmake/package.nix
index ce5ec0803a902..5c2a9983d6270 100644
--- a/pkgs/by-name/cm/cmake/package.nix
+++ b/pkgs/by-name/cm/cmake/package.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, substituteAll
 , buildPackages
 , bzip2
 , curlMinimal
@@ -47,11 +48,11 @@ stdenv.mkDerivation (finalAttrs: {
     + lib.optionalString isMinimalBuild "-minimal"
     + lib.optionalString cursesUI "-cursesUI"
     + lib.optionalString qt5UI "-qt5UI";
-  version = "3.29.2";
+  version = "3.29.3";
 
   src = fetchurl {
     url = "https://cmake.org/files/v${lib.versions.majorMinor finalAttrs.version}/cmake-${finalAttrs.version}.tar.gz";
-    hash = "sha256-NttLaSaqt0G6bksuotmckZMiITIwi03IJNQSPLcwNS4=";
+    hash = "sha256-JSruFEjUnKoElU/V4n0YndUVcFVzE+eygWNnFqI4vMs=";
   };
 
   patches = [
@@ -66,7 +67,13 @@ stdenv.mkDerivation (finalAttrs: {
   # Derived from https://github.com/curl/curl/commit/31f631a142d855f069242f3e0c643beec25d1b51
   ++ lib.optional (stdenv.isDarwin && isMinimalBuild) ./005-remove-systemconfiguration-dep.diff
   # On Darwin, always set CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG.
-  ++ lib.optional stdenv.isDarwin ./006-darwin-always-set-runtime-c-flag.diff;
+  ++ lib.optional stdenv.isDarwin ./006-darwin-always-set-runtime-c-flag.diff
+  # On platforms where ps is not part of stdenv, patch the invocation of ps to use an absolute path.
+  ++ lib.optional (stdenv.isDarwin || stdenv.isFreeBSD) (
+    substituteAll {
+      src = ./007-darwin-bsd-ps-abspath.diff;
+      ps = lib.getExe ps;
+    });
 
   outputs = [ "out" ] ++ lib.optionals buildDocs [ "man" "info" ];
   separateDebugInfo = true;
@@ -101,8 +108,6 @@ stdenv.mkDerivation (finalAttrs: {
   ++ lib.optional stdenv.isDarwin CoreServices
   ++ lib.optional (stdenv.isDarwin && !isMinimalBuild) SystemConfiguration;
 
-  propagatedBuildInputs = lib.optional stdenv.isDarwin ps;
-
   preConfigure = ''
     fixCmakeFiles .
     substituteInPlace Modules/Platform/UnixPaths.cmake \
diff --git a/pkgs/by-name/co/codeberg-cli/package.nix b/pkgs/by-name/co/codeberg-cli/package.nix
index 074d7bc2c8eb6..d058e72b4e802 100644
--- a/pkgs/by-name/co/codeberg-cli/package.nix
+++ b/pkgs/by-name/co/codeberg-cli/package.nix
@@ -35,6 +35,7 @@ rustPlatform.buildRustPackage rec {
       [
         d.CoreServices
         d.Security
+        d.SystemConfiguration
       ]
     );
 
diff --git a/pkgs/by-name/co/connman/package.nix b/pkgs/by-name/co/connman/package.nix
index a90fb1ffd727a..c3bb59b6ab8a0 100644
--- a/pkgs/by-name/co/connman/package.nix
+++ b/pkgs/by-name/co/connman/package.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch
 , autoreconfHook
 , dbus
 , file
diff --git a/pkgs/by-name/co/cosmic-icons/package.nix b/pkgs/by-name/co/cosmic-icons/package.nix
index c201943f9474e..40fbd905de840 100644
--- a/pkgs/by-name/co/cosmic-icons/package.nix
+++ b/pkgs/by-name/co/cosmic-icons/package.nix
@@ -8,13 +8,13 @@
 }:
 stdenvNoCC.mkDerivation rec {
   pname = "cosmic-icons";
-  version = "0-unstable-2024-05-02";
+  version = "0-unstable-2024-05-21";
 
   src = fetchFromGitHub {
     owner = "pop-os";
     repo = pname;
-    rev = "f48101c38db7e725d31591ec49896a2f525886e2";
-    sha256 = "sha256-M9n09uEM4ee8FZYTsaAu+8E0YRxQAGBvylKDHv1dp5M=";
+    rev = "9aad1ab6d5538938e69955b5f74576ac020be425";
+    sha256 = "sha256-ln2spVA8dlXi/B0ro/FIoWiIClPmwH9E9IqhrKPedys=";
   };
 
   nativeBuildInputs = [ just ];
diff --git a/pkgs/by-name/cp/cppitertools/package.nix b/pkgs/by-name/cp/cppitertools/package.nix
new file mode 100644
index 0000000000000..a26b26fa1d50b
--- /dev/null
+++ b/pkgs/by-name/cp/cppitertools/package.nix
@@ -0,0 +1,99 @@
+{
+  lib,
+  stdenv,
+  cmake,
+  boost,
+  catch2,
+  fetchFromGitHub,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "cppitertools";
+  version = "2.1";
+
+  src = fetchFromGitHub {
+    owner = "ryanhaining";
+    repo = "cppitertools";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-mii4xjxF1YC3H/TuO/o4cEz8bx2ko6U0eufqNVw5LNA=";
+  };
+
+  __structuredAttrs = true;
+
+  # cppitertools has support files for three buildsystems in its repo:
+  # Scons, Bazel, and CMake. The first two only have definitions for running
+  # tests. The CMake system defines tests and install targets, including a
+  # cppitertools-config.cmake, which is really helpful for downstream consumers
+  # to detect this package since it has no pkg-config.
+  # However the CMake system also specifies the entire source repo as an install
+  # target, including support files, the build directory, etc.
+  # We can't simply take cppitertools-config.cmake for ourselves because before
+  # install it's placed in non-specific private CMake subdirectory of the build
+  # directory.
+  # Therefore, we instead simply patch CMakeLists.txt to make the target that
+  # installs the entire directory non-default, and then install the headers manually.
+
+  strictDeps = true;
+
+  doCheck = true;
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ boost ];
+
+  nativeCheckInputs = [ catch2 ];
+
+  # Required on case-sensitive filesystems to not conflict with the Bazel BUILD
+  # files that are also in that repo.
+  cmakeBuildDir = "cmake-build";
+
+  includeInstallDir = "${builtins.placeholder "out"}/include/cppitertools";
+  cmakeInstallDir = "${builtins.placeholder "out"}/share/cmake";
+
+  # This version of cppitertools considers itself as having used the default value,
+  # and issues warning, unless -Dcppitertools_INSTALL_CMAKE_DIR is present as an
+  # *environment* variable. It doesn't actually use the value from this environment
+  # variable at all though, so we still need to pass it in cmakeFlags.
+  env.cppitertools_INSTALL_CMAKE_DIR = finalAttrs.cmakeInstallDir;
+
+  cmakeFlags = [ "-Dcppitertools_INSTALL_CMAKE_DIR=${finalAttrs.cmakeInstallDir}" ];
+
+  prePatch =
+    ''
+      # Mark the `.` install target as non-default.
+      substituteInPlace CMakeLists.txt \
+        --replace-fail "  DIRECTORY ." "  DIRECTORY . EXCLUDE_FROM_ALL"
+    ''
+    + lib.optionalString finalAttrs.doCheck ''
+      # Required for tests.
+      cp ${lib.getDev catch2}/include/catch2/catch.hpp test/
+    '';
+
+  checkPhase = ''
+    runHook preCheck
+    cmake -B build-test -S ../test
+    cmake --build build-test -j$NIX_BUILD_CORES
+    runHook postCheck
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    # Install the -config.cmake files.
+    cmake --install . "--prefix=$out"
+    # Install the headers.
+    mkdir -p "$includeInstallDir"
+    cp -r ../*.hpp ../internal "$includeInstallDir"
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Implementation of Python itertools and builtin iteration functions for C++17";
+    longDescription = ''
+      Range-based for loop add-ons inspired by the Python builtins and itertools library
+      for C++17, using lazy evaluation wherever possible.
+    '';
+    homepage = "https://github.com/ryanhaining/cppitertools";
+    maintainers = with lib.maintainers; [ qyriad ];
+    license = with lib.licenses; bsd2;
+  };
+})
diff --git a/pkgs/by-name/cr/crunchy-cli/Cargo.lock b/pkgs/by-name/cr/crunchy-cli/Cargo.lock
index 5ea720f25c615..8400022acb91d 100644
--- a/pkgs/by-name/cr/crunchy-cli/Cargo.lock
+++ b/pkgs/by-name/cr/crunchy-cli/Cargo.lock
@@ -349,7 +349,7 @@ checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
 name = "crunchy-cli"
-version = "3.6.4"
+version = "3.6.6"
 dependencies = [
  "chrono",
  "clap",
@@ -362,7 +362,7 @@ dependencies = [
 
 [[package]]
 name = "crunchy-cli-core"
-version = "3.6.4"
+version = "3.6.6"
 dependencies = [
  "anyhow",
  "async-speed-limit",
@@ -400,9 +400,9 @@ dependencies = [
 
 [[package]]
 name = "crunchyroll-rs"
-version = "0.11.1"
+version = "0.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58580acc9c0abf96a231ec8b1a4597ea55d9426ea17f684ce3582e2b26437bbb"
+checksum = "1d33b8d77c80dea79e66993cb67963b2171dcf0b8fbc87591c58f2dadfea8da2"
 dependencies = [
  "async-trait",
  "chrono",
@@ -426,9 +426,9 @@ dependencies = [
 
 [[package]]
 name = "crunchyroll-rs-internal"
-version = "0.11.1"
+version = "0.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce3c844dec8a3390f8c9853b5cf1d65c3d38fd0657b8b5d0e008db8945dea326"
+checksum = "fa51945265f25c45f7d53bd70e5263dd023c0be45e38eaba886a971cb645d797"
 dependencies = [
  "darling",
  "quote",
@@ -1519,8 +1519,9 @@ checksum = "b833d8d034ea094b1ea68aa6d5c740e0d04bad9d16568d08ba6f76823a114316"
 
 [[package]]
 name = "rsubs-lib"
-version = "0.3.0"
-source = "git+https://github.com/crunchy-labs/rsubs-lib.git?rev=1c51f60#1c51f60b8c48f1a8f7b261372b237d89bdc17dd4"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d01f7609f0b1bc4fe24b352e8d1792c7d71cc43aea797e14b87974cd009ab402"
 dependencies = [
  "regex",
  "serde",
diff --git a/pkgs/by-name/cr/crunchy-cli/package.nix b/pkgs/by-name/cr/crunchy-cli/package.nix
index 7a618986734cf..7ab919f6c2f49 100644
--- a/pkgs/by-name/cr/crunchy-cli/package.nix
+++ b/pkgs/by-name/cr/crunchy-cli/package.nix
@@ -10,20 +10,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "crunchy-cli";
-  version = "3.6.4";
+  version = "3.6.6";
 
   src = fetchFromGitHub {
     owner = "crunchy-labs";
     repo = "crunchy-cli";
     rev = "v${version}";
-    hash = "sha256-ujR/ZTQoNdxVuGd8fie7JwVINqcjwAwyou+iCihYOY0=";
+    hash = "sha256-LVJRv8YUTfavc0ZrK2fIlgc5npQKwEZosoLEYw/V/pw=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
       "native-tls-0.2.11" = "sha256-r+uvpwf1qgOVYuh+3xYOOsDWyCJnyG4Qc8i7RV2nzy4=";
-      "rsubs-lib-0.3.0" = "sha256-hn0/KxUHgmC3hs8sAMkJKxR7WIjc8YGq9DJU2SriO1A=";
     };
   };
 
diff --git a/pkgs/by-name/cs/csvlens/package.nix b/pkgs/by-name/cs/csvlens/package.nix
index 7840dba022d2d..1731af4bebce5 100644
--- a/pkgs/by-name/cs/csvlens/package.nix
+++ b/pkgs/by-name/cs/csvlens/package.nix
@@ -7,20 +7,20 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "csvlens";
-  version = "0.9.0";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "YS-L";
     repo = "csvlens";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Qpda9qADnj3eGz+nvD6VgxUOwTXrFI1rMam6+sfK6MQ=";
+    hash = "sha256-22IU+TpmmJNCsjrobXe0+0YhssbFMt/j9Vusz69lips=";
   };
 
   buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
     darwin.apple_sdk.frameworks.AppKit
   ];
 
-  cargoHash = "sha256-PDOuAz+ov1S7i7TpRp4YaeoQQJ4paal6FI0VU25d4zU=";
+  cargoHash = "sha256-jLoVuDoarq6ZIWrNw04eyRo+M4jNcZ2zsMWKmZaDPf0=";
 
   meta = with lib; {
     description = "Command line csv viewer";
diff --git a/pkgs/by-name/cu/cups-kyocera-3500-4500/package.nix b/pkgs/by-name/cu/cups-kyocera-3500-4500/package.nix
new file mode 100644
index 0000000000000..14f89056daf93
--- /dev/null
+++ b/pkgs/by-name/cu/cups-kyocera-3500-4500/package.nix
@@ -0,0 +1,86 @@
+{ lib
+, stdenv
+, fetchzip
+, cups
+, autoPatchelfHook
+, python3Packages
+
+# Sets the default paper format: use "EU" for A4, or "Global" for Letter
+, region ? "EU"
+}:
+
+assert region == "Global" || region == "EU";
+
+let
+  kyodialog_version_short = "9";
+  kyodialog_version_long = "9.0";
+  date = "20221003";
+in
+stdenv.mkDerivation rec {
+  pname = "cups-kyocera-3500-4500";
+  version = "${kyodialog_version_long}-${date}";
+
+  dontStrip = true;
+
+  src = fetchzip {
+    # Steps to find the release download URL:
+    # 1. Go to https://www.kyoceradocumentsolutions.us/en/support/downloads.html
+    # 2. Search for printer model, e.g. "TASKalfa 6053ci"
+    # 3. Locate e.g. "Linux Print Driver (9.3)" in the list
+    urls = [
+      "https://dam.kyoceradocumentsolutions.com/content/dam/gdam_dc/dc_global/executables/driver/product_085/KyoceraLinuxPackages-${date}.tar.gz"
+    ];
+    hash = "sha256-pqBtfKiQo/+cF8fG5vsEQvr8UdxjGsSShXI+6bun03c=";
+    extension = "tar.gz";
+    stripRoot = false;
+    postFetch = ''
+      # delete redundant Linux package dirs to reduce size in the Nix store; only keep Debian
+      rm -r $out/{CentOS,Fedora,OpenSUSE,Redhat,Ubuntu}
+    '';
+  };
+
+  sourceRoot = ".";
+
+  unpackCmd = let
+    platforms = {
+      x86_64-linux = "amd64";
+      i686-linux = "i386";
+    };
+    platform = platforms.${stdenv.hostPlatform.system} or (throw "unsupported system: ${stdenv.hostPlatform.system}");
+  in ''
+    ar p "$src/Debian/${region}/kyodialog_${platform}/kyodialog_${kyodialog_version_long}-0_${platform}.deb" data.tar.gz | tar -xz
+  '';
+
+  nativeBuildInputs = [ autoPatchelfHook python3Packages.wrapPython ];
+
+  buildInputs = [ cups ];
+
+  # For lib/cups/filter/kyofilter_pre_H.
+  # The source already contains a copy of pypdf3, but we use the Nix package
+  propagatedBuildInputs = with python3Packages; [ reportlab pypdf3 setuptools ];
+
+  installPhase = ''
+    # allow cups to find the ppd files
+    mkdir -p $out/share/cups/model
+    mv ./usr/share/kyocera${kyodialog_version_short}/ppd${kyodialog_version_short} $out/share/cups/model/Kyocera
+
+    # remove absolute path prefixes to filters in ppd
+    find $out -name "*.ppd" -exec sed -E -i "s:/usr/lib/cups/filter/::g" {} \;
+
+    mkdir -p $out/lib/cups/
+    mv ./usr/lib/cups/filter/ $out/lib/cups/
+    # for lib/cups/filter/kyofilter_pre_H
+    wrapPythonProgramsIn $out/lib/cups/filter "$propagatedBuildInputs"
+
+    install -Dm444 usr/share/doc/kyodialog/copyright $out/share/doc/${pname}/copyright
+  '';
+
+  meta = with lib; {
+    description = "CUPS drivers for Kyocera ECOSYS MA3500cix, MA3500cifx, MA4000cix, MA4000cifx, PA3500cx, PA4000cx and PA4500cx, for Kyocera CS MA4500ci and PA4500ci, and for Kyocera TASKalfa MA3500ci, MA4500ci and PI4500ci printers";
+    homepage = "https://www.kyoceradocumentsolutions.com";
+    sourceProvenance = [ sourceTypes.binaryNativeCode ];
+    license = licenses.unfree;
+    maintainers = [ maintainers.me-and ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/by-name/da/davis/package.nix b/pkgs/by-name/da/davis/package.nix
index fc8fb5c9712a4..951434cd5505d 100644
--- a/pkgs/by-name/da/davis/package.nix
+++ b/pkgs/by-name/da/davis/package.nix
@@ -6,13 +6,13 @@
 
 php.buildComposerProject (finalAttrs: {
   pname = "davis";
-  version = "4.4.2";
+  version = "4.4.3";
 
   src = fetchFromGitHub {
     owner = "tchapi";
     repo = "davis";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-oPzMBCOcAJoHni9SO74RuJDEOcVYc4MtO5rGq1E9g3Q=";
+    hash = "sha256-0Km4bLQVfbkr5BL8XY5tM147Sje8hcFOjhCRnXq+4d4=";
   };
 
   vendorHash = "sha256-NOb6rc9jVsf+/RVOW7SLBAJk9SihcRxoepUEGBGLi2w=";
diff --git a/pkgs/by-name/db/dbeaver-bin/package.nix b/pkgs/by-name/db/dbeaver-bin/package.nix
index ddf67faca43c3..4f516930c313a 100644
--- a/pkgs/by-name/db/dbeaver-bin/package.nix
+++ b/pkgs/by-name/db/dbeaver-bin/package.nix
@@ -5,6 +5,7 @@
 , openjdk17
 , gnused
 , autoPatchelfHook
+, wrapGAppsHook3
 }:
 
 stdenvNoCC.mkDerivation (finalAttrs: {
@@ -15,6 +16,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
     makeWrapper
     gnused
     autoPatchelfHook
+    wrapGAppsHook3
   ];
 
   src =
@@ -27,7 +29,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
       };
       hash = selectSystem {
         x86_64-linux = "sha256-q6VIr55hXn47kZrE2i6McEOfp2FBOvwB0CcUnRHFMZs=";
-        aarch64-linux = "sha256-CQg2+p1P+Bg1uFM1PMTWtweS0TNElXTP7tI7D5WxixM=";
+        aarch64-linux = "sha256-Xn3X1C31UALBAsZIGyMWdp0HNhJEm5N+7Go7nMs8W64=";
       };
     in
     fetchurl {
@@ -61,6 +63,8 @@ stdenvNoCC.mkDerivation (finalAttrs: {
     runHook postInstall
   '';
 
+  passthru.updateScript = ./update.sh;
+
   meta = with lib; {
     homepage = "https://dbeaver.io/";
     description = "Universal SQL Client for developers, DBA and analysts. Supports MySQL, PostgreSQL, MariaDB, SQLite, and more";
diff --git a/pkgs/by-name/db/dbeaver-bin/update.sh b/pkgs/by-name/db/dbeaver-bin/update.sh
new file mode 100755
index 0000000000000..ad09144f9a4b0
--- /dev/null
+++ b/pkgs/by-name/db/dbeaver-bin/update.sh
@@ -0,0 +1,25 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -I nixpkgs=./. -i bash -p curl jq
+
+latestVersion=$(curl "https://api.github.com/repos/dbeaver/dbeaver/tags" | jq -r '.[0].name')
+currentVersion=$(nix-instantiate --eval -E "with import ./. {}; dbeaver-bin.version" | tr -d '"')
+
+echo "latest  version: $latestVersion"
+echo "current version: $currentVersion"
+
+if [[ "$latestVersion" == "$currentVersion" ]]; then
+    echo "package is up-to-date"
+    exit 0
+fi
+
+for i in \
+    "x86_64-linux linux.gtk.x86_64-nojdk.tar.gz" \
+    "aarch64-linux linux.gtk.aarch64-nojdk.tar.gz"
+do
+    set -- $i
+    prefetch=$(nix-prefetch-url "https://github.com/dbeaver/dbeaver/releases/download/$latestVersion/dbeaver-ce-$latestVersion-$2")
+    hash=$(nix-hash --type sha256 --to-sri $prefetch)
+
+    update-source-version dbeaver-bin 0 "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" --system=$1
+    update-source-version dbeaver-bin $latestVersion $hash --system=$1
+done
diff --git a/pkgs/development/interpreters/bqn/dzaima-bqn/default.nix b/pkgs/by-name/db/dbqn/package.nix
index b6591825f8878..240729a465136 100644
--- a/pkgs/development/interpreters/bqn/dzaima-bqn/default.nix
+++ b/pkgs/by-name/db/dbqn/package.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , jdk
 , makeWrapper
-, buildNativeImage ? true
+, buildNativeImage ? false
 }:
 
 stdenv.mkDerivation rec {
diff --git a/pkgs/by-name/de/dependabot-cli/package.nix b/pkgs/by-name/de/dependabot-cli/package.nix
index b5b8eadad45b1..13d53ad704424 100644
--- a/pkgs/by-name/de/dependabot-cli/package.nix
+++ b/pkgs/by-name/de/dependabot-cli/package.nix
@@ -1,7 +1,6 @@
 { buildGoModule
 , dependabot-cli
 , fetchFromGitHub
-, fetchpatch
 , installShellFiles
 , lib
 , testers
diff --git a/pkgs/by-name/dr/dreamchess/package.nix b/pkgs/by-name/dr/dreamchess/package.nix
new file mode 100644
index 0000000000000..f8829ac9587e3
--- /dev/null
+++ b/pkgs/by-name/dr/dreamchess/package.nix
@@ -0,0 +1,71 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, bison
+, flex
+, gettext
+, SDL2
+, SDL2_image
+, SDL2_mixer
+, expat
+, glew
+, freetype
+, libSM
+, libXext
+, libGL
+, libGLU
+, xorg
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "dreamchess";
+  version = "0.3.0";
+  src = fetchFromGitHub {
+    owner = "dreamchess";
+    repo = "dreamchess";
+    rev = "${finalAttrs.version}";
+    hash = "sha256-qus/RjwdAl9SuDXfLVKTPImqrvPF3xSDVlbXYLM3JNE=";
+  };
+
+  buildInputs = [
+    SDL2
+    SDL2_image
+    SDL2_mixer
+    expat
+    glew
+    freetype
+    libSM
+    libXext
+    libGL
+    libGLU
+    xorg.libxcb
+    xorg.libX11
+  ];
+  nativeBuildInputs = [
+    cmake
+    bison
+    flex
+    gettext
+  ];
+  cmakeFlags = [
+    (lib.cmakeBool "CMAKE_VERBOSE_MAKEFILE" true)
+    (lib.cmakeFeature "OpenGL_GL_PREFERENCE" "GLVND")
+    (lib.cmakeFeature "CMAKE_INSTALL_DATAROOTDIR" "${placeholder "out"}/share")
+  ];
+
+  doInstallCheck = true;
+
+  postInstallCheck = ''
+    stat "''${!outputBin}/bin/${finalAttrs.meta.mainProgram}"
+  '';
+
+  meta = {
+    homepage = "https://github.com/dreamchess/dreamchess";
+    description = "An OpenGL Chess Game";
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ spk ];
+    platforms = lib.platforms.linux;
+    mainProgram = "dreamchess";
+  };
+})
diff --git a/pkgs/by-name/dt/dtools/package.nix b/pkgs/by-name/dt/dtools/package.nix
index 9de7ed6b125b2..feb4dc740b80a 100644
--- a/pkgs/by-name/dt/dtools/package.nix
+++ b/pkgs/by-name/dt/dtools/package.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , ldc
 , curl
 }:
diff --git a/pkgs/applications/emulators/duckstation/001-fix-test-inclusion.diff b/pkgs/by-name/du/duckstation/001-fix-test-inclusion.diff
index b2dabe0262db3..b2dabe0262db3 100644
--- a/pkgs/applications/emulators/duckstation/001-fix-test-inclusion.diff
+++ b/pkgs/by-name/du/duckstation/001-fix-test-inclusion.diff
diff --git a/pkgs/applications/emulators/duckstation/002-hardcode-vars.diff b/pkgs/by-name/du/duckstation/002-hardcode-vars.diff
index edba33fce7ceb..edba33fce7ceb 100644
--- a/pkgs/applications/emulators/duckstation/002-hardcode-vars.diff
+++ b/pkgs/by-name/du/duckstation/002-hardcode-vars.diff
diff --git a/pkgs/applications/emulators/duckstation/default.nix b/pkgs/by-name/du/duckstation/package.nix
index 91d2b23705ad7..37d2d01534b1a 100644
--- a/pkgs/applications/emulators/duckstation/default.nix
+++ b/pkgs/by-name/du/duckstation/package.nix
@@ -2,34 +2,42 @@
 , stdenv
 , fetchFromGitHub
 , SDL2
+, callPackage
 , cmake
 , cubeb
 , curl
 , extra-cmake-modules
 , libXrandr
 , libbacktrace
+, libwebp
 , makeWrapper
 , ninja
 , pkg-config
-, qtbase
-, qtsvg
-, qttools
-, qtwayland
+, qt6
 , substituteAll
 , vulkan-loader
 , wayland
-, wrapQtAppsHook
 }:
 
+let
+  shaderc-patched = callPackage ./shaderc-patched.nix { };
+  inherit (qt6)
+    qtbase
+    qtsvg
+    qttools
+    qtwayland
+    wrapQtAppsHook
+  ;
+in
 stdenv.mkDerivation (finalAttrs: {
   pname = "duckstation";
-  version = "0.1-6292";
+  version = "0.1-6658";
 
   src = fetchFromGitHub {
     owner = "stenzek";
     repo = "duckstation";
-    rev = "0bc42c38aab49030118f507c9783de047769148b";
-    hash = "sha256-8OavixSwEWihFY2fEdsepR1lqWlTH+//xZRKwb7lFCQ=";
+    rev = "4e0c417add264226b3db065c1466791f0591a1b5";
+    hash = "sha256-fN0bcjqjMmK3qVLlrYmR2VgjK0BjdK4nUj8vNYdFC3I=";
   };
 
   patches = [
@@ -40,8 +48,8 @@ stdenv.mkDerivation (finalAttrs: {
       src = ./002-hardcode-vars.diff;
       gitHash = finalAttrs.src.rev;
       gitBranch = "master";
-      gitTag = "${finalAttrs.version}-g0bc42c38";
-      gitDate = "2024-02-06T22:47:47+09:00";
+      gitTag = "${finalAttrs.version}-g4e0c417a";
+      gitDate = "2024-04-16T12:49:54+10:00";
     })
   ];
 
@@ -59,9 +67,11 @@ stdenv.mkDerivation (finalAttrs: {
     curl
     libXrandr
     libbacktrace
+    libwebp
     qtbase
     qtsvg
     qtwayland
+    shaderc-patched
     wayland
   ]
   ++ cubeb.passthru.backendLibs;
@@ -72,10 +82,13 @@ stdenv.mkDerivation (finalAttrs: {
     (lib.cmakeBool "BUILD_TESTS" true)
   ];
 
-  doCheck = true;
-  checkPhase = ''
+  doInstallCheck = true;
+
+  installCheckPhase = ''
     runHook preCheck
-    bin/common-tests
+
+    $out/share/duckstation/common-tests
+
     runHook postCheck
   '';
 
diff --git a/pkgs/by-name/du/duckstation/shaderc-patched.nix b/pkgs/by-name/du/duckstation/shaderc-patched.nix
new file mode 100644
index 0000000000000..72aa4b17ca087
--- /dev/null
+++ b/pkgs/by-name/du/duckstation/shaderc-patched.nix
@@ -0,0 +1,21 @@
+{
+  lib,
+  fetchpatch,
+  duckstation,
+  shaderc,
+}:
+
+shaderc.overrideAttrs (old: {
+  pname = "shaderc-patched-for-duckstation";
+  patches = (old.patches or [ ]) ++ [
+    (fetchpatch {
+      url = "file://${duckstation.src}/scripts/shaderc-changes.patch";
+      hash = "sha256-Ps/D+CdSbjVWg3ZGOEcgbpQbCNkI5Nuizm4E5qiM9Wo=";
+      excludes = [
+        "CHANGES"
+        "CMakeLists.txt"
+        "libshaderc/CMakeLists.txt"
+      ];
+    })
+  ];
+})
diff --git a/pkgs/by-name/du/dumbpipe/package.nix b/pkgs/by-name/du/dumbpipe/package.nix
index 1f19ed3026109..c06c22c833ef9 100644
--- a/pkgs/by-name/du/dumbpipe/package.nix
+++ b/pkgs/by-name/du/dumbpipe/package.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "dumbpipe";
-  version = "0.8.0";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "n0-computer";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-NaN3r4Vk4SCdgfFgtyCgeMOyOCfxj15vLrXRmUKTAWM=";
+    hash = "sha256-el7cP00qWEAujtBtkMdF3/F09LQ0xMi6A140wErjzKk=";
   };
 
-  cargoHash = "sha256-Efuif2fIP20tXCq7bpa/n1lthvi0jcyYCpWM//qEHCY=";
+  cargoHash = "sha256-ucNMoKF9c5TFyFv8HYH3wypGQGTuZ6BT5/cuEIsyykI=";
 
   buildInputs = lib.optionals stdenv.isDarwin (
     with darwin.apple_sdk.frameworks; [
diff --git a/pkgs/by-name/ek/eksctl/package.nix b/pkgs/by-name/ek/eksctl/package.nix
index e012e298dbe00..f8be0d794e852 100644
--- a/pkgs/by-name/ek/eksctl/package.nix
+++ b/pkgs/by-name/ek/eksctl/package.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "eksctl";
-  version = "0.177.0";
+  version = "0.178.0";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = pname;
     rev = version;
-    hash = "sha256-rNs7Ko+NNO2/zqPRu4j+y7KJ62lvfTEndZEnBSi8K5I=";
+    hash = "sha256-4L2BYQw0hticbPUdqJwOGNUYFBc8whnBW+1xut3Mp5Y=";
   };
 
-  vendorHash = "sha256-0ZEVOsfb4FBGhNk7CoP7KDhApPTLBz4l5kwcRRBIq5g=";
+  vendorHash = "sha256-M/OiHXsvPAaYVNw7Q9LiDbH7B7QhBQxmK0H8TNWcu74=";
 
   doCheck = false;
 
diff --git a/pkgs/by-name/el/element-call/name.patch b/pkgs/by-name/el/element-call/name.patch
new file mode 100644
index 0000000000000..fa6ab068d18ca
--- /dev/null
+++ b/pkgs/by-name/el/element-call/name.patch
@@ -0,0 +1,10 @@
+diff --git a/package.json b/package.json
+index e25221f2..5268d11a 100644
+--- a/package.json
++++ b/package.json
+@@ -1,4 +1,5 @@
+ {
++  "name": "element-call",
+   "version": "0.0.0",
+   "type": "module",
+   "scripts": {
\ No newline at end of file
diff --git a/pkgs/by-name/el/element-call/package.json b/pkgs/by-name/el/element-call/package.json
new file mode 100644
index 0000000000000..173927845525c
--- /dev/null
+++ b/pkgs/by-name/el/element-call/package.json
@@ -0,0 +1,129 @@
+{
+  "name": "element-call",
+  "version": "0.0.0",
+  "type": "module",
+  "scripts": {
+    "dev": "vite",
+    "build": "NODE_OPTIONS=--max-old-space-size=16384 vite build",
+    "serve": "vite preview",
+    "prettier:check": "prettier -c .",
+    "prettier:format": "prettier -w .",
+    "lint": "yarn lint:types && yarn lint:eslint",
+    "lint:eslint": "eslint --max-warnings 0 src",
+    "lint:eslint-fix": "eslint --max-warnings 0 src --fix",
+    "lint:types": "tsc",
+    "i18n": "node_modules/i18next-parser/bin/cli.js",
+    "i18n:check": "node_modules/i18next-parser/bin/cli.js --fail-on-warnings --fail-on-update",
+    "test": "vitest",
+    "test:coverage": "vitest run --coverage",
+    "backend": "docker-compose -f backend-docker-compose.yml up"
+  },
+  "dependencies": {
+    "@juggle/resize-observer": "^3.3.1",
+    "@livekit/components-core": "^0.10.0",
+    "@livekit/components-react": "^2.0.0",
+    "@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.14.tgz",
+    "@opentelemetry/api": "^1.4.0",
+    "@opentelemetry/context-zone": "^1.9.1",
+    "@opentelemetry/exporter-jaeger": "^1.9.1",
+    "@opentelemetry/exporter-trace-otlp-http": "^0.48.0",
+    "@opentelemetry/instrumentation-document-load": "^0.36.0",
+    "@opentelemetry/instrumentation-user-interaction": "^0.36.0",
+    "@opentelemetry/sdk-trace-web": "^1.9.1",
+    "@radix-ui/react-dialog": "^1.0.4",
+    "@radix-ui/react-slider": "^1.1.2",
+    "@radix-ui/react-visually-hidden": "^1.0.3",
+    "@react-aria/button": "^3.3.4",
+    "@react-aria/focus": "^3.5.0",
+    "@react-aria/menu": "^3.3.0",
+    "@react-aria/overlays": "^3.7.3",
+    "@react-aria/select": "^3.6.0",
+    "@react-aria/tabs": "^3.1.0",
+    "@react-aria/tooltip": "^3.1.3",
+    "@react-aria/utils": "^3.10.0",
+    "@react-rxjs/core": "^0.10.7",
+    "@react-spring/web": "^9.4.4",
+    "@react-stately/collections": "^3.3.4",
+    "@react-stately/select": "^3.1.3",
+    "@react-stately/tooltip": "^3.0.5",
+    "@react-stately/tree": "^3.2.0",
+    "@sentry/react": "^7.0.0",
+    "@sentry/tracing": "^7.0.0",
+    "@types/lodash": "^4.14.199",
+    "@use-gesture/react": "^10.2.11",
+    "@vector-im/compound-design-tokens": "^1.0.0",
+    "@vector-im/compound-web": "^3.0.0",
+    "@vitejs/plugin-basic-ssl": "^1.0.1",
+    "@vitejs/plugin-react": "^4.0.1",
+    "buffer": "^6.0.3",
+    "classnames": "^2.3.1",
+    "events": "^3.3.0",
+    "i18next": "^23.0.0",
+    "i18next-browser-languagedetector": "^7.0.0",
+    "i18next-http-backend": "^2.0.0",
+    "livekit-client": "^2.0.2",
+    "lodash": "^4.17.21",
+    "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#d55c6a36df539f6adacc335efe5b9be27c9cee4a",
+    "matrix-widget-api": "^1.3.1",
+    "normalize.css": "^8.0.1",
+    "pako": "^2.0.4",
+    "postcss-preset-env": "^9.0.0",
+    "posthog-js": "^1.29.0",
+    "react": "18",
+    "react-dom": "18",
+    "react-i18next": "^14.0.0",
+    "react-router-dom": "^5.2.0",
+    "react-use-clipboard": "^1.0.7",
+    "react-use-measure": "^2.1.1",
+    "rxjs": "^7.8.1",
+    "sdp-transform": "^2.14.1",
+    "tinyqueue": "^2.0.3",
+    "unique-names-generator": "^4.6.0",
+    "uuid": "9",
+    "vaul": "^0.9.0"
+  },
+  "devDependencies": {
+    "@babel/core": "^7.16.5",
+    "@babel/preset-env": "^7.22.20",
+    "@babel/preset-react": "^7.22.15",
+    "@babel/preset-typescript": "^7.23.0",
+    "@react-spring/rafz": "^9.7.3",
+    "@react-types/dialog": "^3.5.5",
+    "@sentry/vite-plugin": "^2.0.0",
+    "@testing-library/react": "^14.0.0",
+    "@testing-library/user-event": "^14.5.1",
+    "@types/content-type": "^1.1.5",
+    "@types/dom-screen-wake-lock": "^1.0.1",
+    "@types/dompurify": "^3.0.2",
+    "@types/grecaptcha": "^3.0.4",
+    "@types/node": "^20.0.0",
+    "@types/react-router-dom": "^5.3.3",
+    "@types/request": "^2.48.8",
+    "@types/sdp-transform": "^2.4.5",
+    "@types/uuid": "9",
+    "@typescript-eslint/eslint-plugin": "^7.0.0",
+    "@typescript-eslint/parser": "^7.0.0",
+    "babel-loader": "^9.0.0",
+    "babel-plugin-transform-vite-meta-env": "^1.0.3",
+    "eslint": "^8.14.0",
+    "eslint-config-google": "^0.14.0",
+    "eslint-config-prettier": "^9.0.0",
+    "eslint-plugin-deprecate": "^0.8.2",
+    "eslint-plugin-import": "^2.26.0",
+    "eslint-plugin-jsx-a11y": "^6.5.1",
+    "eslint-plugin-matrix-org": "^1.2.1",
+    "eslint-plugin-react": "^7.29.4",
+    "eslint-plugin-react-hooks": "^4.5.0",
+    "eslint-plugin-unicorn": "^51.0.0",
+    "i18next-parser": "^8.0.0",
+    "jsdom": "^24.0.0",
+    "prettier": "^3.0.0",
+    "sass": "^1.42.1",
+    "typescript": "^5.1.6",
+    "typescript-eslint-language-service": "^5.0.5",
+    "vite": "^5.0.0",
+    "vite-plugin-html-template": "^1.1.0",
+    "vite-plugin-svgr": "^4.0.0",
+    "vitest": "^1.2.2"
+  }
+}
diff --git a/pkgs/by-name/el/element-call/package.nix b/pkgs/by-name/el/element-call/package.nix
new file mode 100644
index 0000000000000..da7f41222c162
--- /dev/null
+++ b/pkgs/by-name/el/element-call/package.nix
@@ -0,0 +1,58 @@
+{ lib
+, stdenv
+, mkYarnPackage
+, fetchFromGitHub
+, fetchYarnDeps
+}:
+
+let
+  inherit (stdenv.hostPlatform) system;
+  throwSystem = throw "Unsupported system: ${system}";
+  offlineCacheHash = {
+    x86_64-linux = "sha256-mZCnvX6hzkdi/zjPiefcmbyC2kGemjS4w7WTVkyq8W0=";
+    aarch64-linux = "sha256-mZCnvX6hzkdi/zjPiefcmbyC2kGemjS4w7WTVkyq8W0=";
+    x86_64-darwin = "sha256-G4doEnZORJqcl3bWaKZPuQmBeXNXud06nLO12Afr9kM=";
+    aarch64-darwin = "sha256-G4doEnZORJqcl3bWaKZPuQmBeXNXud06nLO12Afr9kM=";
+  }.${system} or throwSystem;
+in
+mkYarnPackage rec {
+  pname = "element-call";
+  version = "0.5.16";
+
+  src = fetchFromGitHub {
+    owner = "element-hq";
+    repo = "element-call";
+    rev = "v${version}";
+    hash = "sha256-GTHM27i716RZk+kDELMg/lYy355/SZoQLXGPQ90M4xg=";
+  };
+
+  packageJSON = ./package.json;
+
+  patches = [ ./name.patch ];
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${src}/yarn.lock";
+    hash = offlineCacheHash;
+  };
+
+  buildPhase = ''
+    runHook preBuild
+    yarn --offline run build
+    runHook postBuild
+  '';
+
+  preInstall = ''
+    mkdir $out
+    cp -R ./deps/element-call/dist $out
+  '';
+
+  doDist = false;
+
+  meta = with lib; {
+    homepage = "https://github.com/element-hq/element-call";
+    description = "Group calls powered by Matrix";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ kilimnik ];
+    mainProgram = "element-call";
+  };
+}
diff --git a/pkgs/by-name/er/errands/package.nix b/pkgs/by-name/er/errands/package.nix
index b5114b5e49e53..3c695781d28ee 100644
--- a/pkgs/by-name/er/errands/package.nix
+++ b/pkgs/by-name/er/errands/package.nix
@@ -17,7 +17,7 @@
 }:
 python3Packages.buildPythonApplication rec {
   pname = "errands";
-  version = "46.2";
+  version = "46.2.2";
 
   pyproject = false;
 
@@ -25,7 +25,7 @@ python3Packages.buildPythonApplication rec {
     owner = "mrvladus";
     repo = "Errands";
     rev = "refs/tags/${version}";
-    hash = "sha256-p/2dHLWSdDAe0+xTvOgmGscTUPLG+0ddIVHMcHY86xg=";
+    hash = "sha256-lX0exxZMbq/iC41bByMfT478vhOQadPJAN72PHiznKc=";
   };
 
   nativeBuildInputs = [
@@ -59,12 +59,13 @@ python3Packages.buildPythonApplication rec {
     makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Manage your tasks";
+    changelog = "https://github.com/mrvladus/Errands/releases/tag/${version}";
     homepage = "https://github.com/mrvladus/Errands";
-    license = licenses.mit;
+    license = lib.licenses.mit;
     mainProgram = "errands";
-    maintainers = with maintainers; [
+    maintainers = with lib.maintainers; [
       luftmensch-luftmensch
       sund3RRR
     ];
diff --git a/pkgs/by-name/es/esbuild-config/package.nix b/pkgs/by-name/es/esbuild-config/package.nix
index d68db5c89a476..6324add2b9343 100644
--- a/pkgs/by-name/es/esbuild-config/package.nix
+++ b/pkgs/by-name/es/esbuild-config/package.nix
@@ -16,11 +16,6 @@ rustPlatform.buildRustPackage rec {
 
   cargoHash = "sha256-Z7uYOjMNxsEmsEXDOIr1zIq4nCgHvHIqpRnRH037b8g=";
 
-  # Cargo.lock is outdated
-  postConfigure = ''
-    cargo metadata --offline
-  '';
-
   meta = with lib; {
     description = "Config files for esbuild";
     homepage = "https://github.com/bpierre/esbuild-config";
diff --git a/pkgs/by-name/es/espflash/package.nix b/pkgs/by-name/es/espflash/package.nix
index 5615e3cf8cf8f..04ef9a62eaf7d 100644
--- a/pkgs/by-name/es/espflash/package.nix
+++ b/pkgs/by-name/es/espflash/package.nix
@@ -15,13 +15,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "espflash";
-  version = "3.0.0";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "esp-rs";
     repo = "espflash";
     rev = "v${version}";
-    hash = "sha256-0CnYdz1KG/y4B+dOp9rYE097ctf4GNmyqv3/xywdA6A=";
+    hash = "sha256-Tp74x5qgccq/7z1y0ozjiooPFxO7miDPuXBZ+XEKaW0=";
   };
 
   nativeBuildInputs = [
@@ -40,7 +40,7 @@ rustPlatform.buildRustPackage rec {
     SystemConfiguration
   ];
 
-  cargoHash = "sha256-CmhBl+d5odc0QL45aWCJcBZIVeJsdpxJweh7FT8cpyY=";
+  cargoHash = "sha256-kn79kNS+vres7rhHMANAofqFv0k8Bg4HVEWBJvz7CSY=";
 
   postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
     installShellCompletion --cmd espflash \
diff --git a/pkgs/by-name/fa/fastfetch/package.nix b/pkgs/by-name/fa/fastfetch/package.nix
index 6fcc7c3773ad1..e9394ab922670 100644
--- a/pkgs/by-name/fa/fastfetch/package.nix
+++ b/pkgs/by-name/fa/fastfetch/package.nix
@@ -47,13 +47,13 @@ let
 in
 stdenv'.mkDerivation (finalAttrs: {
   pname = "fastfetch";
-  version = "2.13.1";
+  version = "2.13.2";
 
   src = fetchFromGitHub {
     owner = "fastfetch-cli";
     repo = "fastfetch";
     rev = finalAttrs.version;
-    hash = "sha256-AB7GxeKLD+xdnFEA/STD7CFazsybYGtX10Q/Q4MRTrU=";
+    hash = "sha256-Wt+HFl+HJKMzC8O0JslVLpHFrmVVSBpac79TsKVpz+k=";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/by-name/fc/fcast-client/package.nix b/pkgs/by-name/fc/fcast-client/package.nix
new file mode 100644
index 0000000000000..9f9277fed3277
--- /dev/null
+++ b/pkgs/by-name/fc/fcast-client/package.nix
@@ -0,0 +1,37 @@
+{
+  lib,
+  rustPlatform,
+  fetchFromGitLab,
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "fcast-client";
+  version = "0.1.0-unstable-2024-05-23";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.futo.org";
+    owner = "videostreaming";
+    repo = "fcast";
+    rev = "cc07f95d2315406fcacf67cb3abb98efff5df5d9";
+    hash = "sha256-vsD4xgrC5KbnZT6hPX3fi3M/CH39LtoRfa6nYD0iFew=";
+  };
+
+  sourceRoot = "${src.name}/clients/terminal";
+  cargoHash = "sha256-VVG7AbwbbgCANMcFYNAIF76MQr7Fkmq5HXPxL3MnEhI=";
+
+  meta = {
+    description = "FCast Client Terminal, a terminal open-source media streaming client";
+    homepage = "https://fcast.org/";
+    license = lib.licenses.gpl3;
+    longDescription = ''
+      FCast is a protocol designed for wireless streaming of audio and video
+      content between devices. Unlike alternative protocols like Chromecast and
+      AirPlay, FCast is an open source protocol that allows for custom receiver
+      implementations, enabling third-party developers to create their own
+      receiver devices or integrate the FCast protocol into their own apps.
+    '';
+    mainProgram = "fcast-client";
+    maintainers = with lib.maintainers; [ drupol ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/file-managers/felix-fm/default.nix b/pkgs/by-name/fe/felix-fm/package.nix
index f34be93fc3ca7..728b3aba99a21 100644
--- a/pkgs/applications/file-managers/felix-fm/default.nix
+++ b/pkgs/by-name/fe/felix-fm/package.nix
@@ -1,9 +1,11 @@
 { lib
 , rustPlatform
 , fetchFromGitHub
+, fetchpatch2
 , pkg-config
 , bzip2
 , libgit2
+, nix-update-script
 , zlib
 , zstd
 , zoxide
@@ -11,16 +13,25 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "felix";
-  version = "2.12.1";
+  version = "2.13.0";
 
   src = fetchFromGitHub {
     owner = "kyoheiu";
     repo = "felix";
     rev = "v${version}";
-    hash = "sha256-M+auLJeD5rDk5LJfTBg9asZ3J4DHsZG4UGRhXdZZVkc=";
+    hash = "sha256-7KuL3YkKhjcZSMSipbNITaA9/MGo54f3lz3fVOgy52s=";
   };
 
-  cargoHash = "sha256-GzaBaaGjBCz+xd1bpU2cebQvg5DO0qipHwhOerbq+ow=";
+  cargoPatches = [
+    # https://github.com/kyoheiu/felix/pull/292
+    (fetchpatch2 {
+      name = "update-cargo.lock-for-2.13.0.patch";
+      url = "https://github.com/kyoheiu/felix/commit/5085b147103878ee8138d4fcf7b204223ba2c3eb.patch";
+      hash = "sha256-7Bga9hcJCXExA/jnrR/HuZgOOVBbWs1tdTwxldcvdU8=";
+    })
+  ];
+
+  cargoHash = "sha256-FX3AsahU5ZLMuylwo1jihP9G4Dw1SFv1oMXcuOqDTF8=";
 
   nativeBuildInputs = [ pkg-config ];
 
@@ -45,6 +56,8 @@ rustPlatform.buildRustPackage rec {
     "--skip=state::tests::test_has_write_permission"
   ];
 
+  passthru.updateScript = nix-update-script { };
+
   meta = with lib; {
     description = "A tui file manager with vim-like key mapping";
     homepage = "https://github.com/kyoheiu/felix";
diff --git a/pkgs/by-name/ff/ff2mpv-rust/package.nix b/pkgs/by-name/ff/ff2mpv-rust/package.nix
index a0d78cb2c3bc0..2ffd89d1ef0b1 100644
--- a/pkgs/by-name/ff/ff2mpv-rust/package.nix
+++ b/pkgs/by-name/ff/ff2mpv-rust/package.nix
@@ -23,16 +23,16 @@ in
 
 rustPlatform.buildRustPackage rec {
   pname = "ff2mpv-rust";
-  version = "1.1.4";
+  version = "1.1.5";
 
   src = fetchFromGitHub {
     owner = "ryze312";
     repo = "ff2mpv-rust";
     rev = version;
-    hash = "sha256-lQ1VRz/1HYZ3Il/LNNL+Jr6zFvGyxw9rUuzCCA1DZYo=";
+    hash = "sha256-hAhHfNiHzrzACrijpVkzpXqrqGYKI3HIJZtUuTrRIcQ=";
   };
 
-  cargoHash = "sha256-cbueToB7zDHV4k9K8RusHjnMR0ElXsPEfuqHYli25nc=";
+  cargoHash = "sha256-EKmysiq1NTv1aQ1DZGS8bziY4lRr+KssBgXa8MO76Ac=";
 
   postInstall = ''
     $out/bin/ff2mpv-rust manifest > manifest.json
diff --git a/pkgs/by-name/ff/fflogs/package.nix b/pkgs/by-name/ff/fflogs/package.nix
index bc0ca54fcebbf..709f8d6d807af 100644
--- a/pkgs/by-name/ff/fflogs/package.nix
+++ b/pkgs/by-name/ff/fflogs/package.nix
@@ -5,10 +5,10 @@
 
 let
   pname = "fflogs";
-  version = "8.5.6";
+  version = "8.5.9";
   src = fetchurl {
     url = "https://github.com/RPGLogs/Uploaders-fflogs/releases/download/v${version}/fflogs-v${version}.AppImage";
-    hash = "sha256-mLqQ1T5mBNUkTkgbGO/nVkoSy6U7hVBk9EcYAjo3i3k=";
+    hash = "sha256-rVkrjDocAfOI2ymsa0XMsVvbVtUa72C314InN7ZTkZc=";
   };
   extracted = appimageTools.extractType2 { inherit pname version src; };
 in
diff --git a/pkgs/by-name/fi/files-cli/package.nix b/pkgs/by-name/fi/files-cli/package.nix
index 853d30f3e4a5a..7c5125c8add0b 100644
--- a/pkgs/by-name/fi/files-cli/package.nix
+++ b/pkgs/by-name/fi/files-cli/package.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "files-cli";
-  version = "2.13.49";
+  version = "2.13.53";
 
   src = fetchFromGitHub {
     repo = "files-cli";
     owner = "files-com";
     rev = "v${version}";
-    hash = "sha256-QQ2UzWGodQASHJVfnTIp/BUNkAPAV0q8UpTk7qBYgc0=";
+    hash = "sha256-fUOcAluc/H6ZfE14FjLH60cQeUarJ+4PeIb6IkaBwtE=";
   };
 
-  vendorHash = "sha256-L6UnKbqS6aO8+XSPt5KaKGYr30y9RE+l4U3hapPHHvA=";
+  vendorHash = "sha256-yVr4u96L+Kgd1Qi2jhvWhwo/EnENwlZgJZtkGOWbteM=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/by-name/fi/firefly-iii/package.nix b/pkgs/by-name/fi/firefly-iii/package.nix
index ad1782de129bc..f1c88db5c3bbe 100644
--- a/pkgs/by-name/fi/firefly-iii/package.nix
+++ b/pkgs/by-name/fi/firefly-iii/package.nix
@@ -8,20 +8,20 @@
 
 let
   pname = "firefly-iii";
-  version = "6.1.15";
+  version = "6.1.16";
   phpPackage = php83;
 
   src = fetchFromGitHub {
     owner = "firefly-iii";
     repo = "firefly-iii";
     rev = "v${version}";
-    hash = "sha256-9Od8tR8X2OZ2hu81tHWDpBX8snWCRvTnlY1AwjIcMug=";
+    hash = "sha256-1I4Wm10mmloqeWcpc4XloNATpvroiw6m8MiSVsoB6xo=";
   };
 
   assets = buildNpmPackage {
     pname = "${pname}-assets";
     inherit version src;
-    npmDepsHash = "sha256-UVySgcj1tQLQIxlsZuig4ixkfxfsYWYPKWLz5zHA+Dg=";
+    npmDepsHash = "sha256-Ff7pDKoXvyj/gR+ljQsCjtyzxzJ7/zN6hRMEAderqOg=";
     dontNpmBuild = true;
     installPhase = ''
       runHook preInstall
@@ -36,7 +36,7 @@ in
 phpPackage.buildComposerProject (finalAttrs: {
   inherit pname src version;
 
-  vendorHash = "sha256-RDkAbTKj7M7lE8bVRxb+RR5CA6hJIMp61U0+aRtFE50=";
+  vendorHash = "sha256-BanSEqE3KN46VtEZH0TVWUBrgPCwmd2TjheYq+e+lzo=";
 
   passthru = {
     inherit phpPackage;
diff --git a/pkgs/by-name/fi/firefoxpwa/package.nix b/pkgs/by-name/fi/firefoxpwa/package.nix
index 3564ce0296c23..3e8f82780a490 100644
--- a/pkgs/by-name/fi/firefoxpwa/package.nix
+++ b/pkgs/by-name/fi/firefoxpwa/package.nix
@@ -25,13 +25,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "firefoxpwa";
-  version = "2.12.0";
+  version = "2.12.1";
 
   src = fetchFromGitHub {
     owner = "filips123";
     repo = "PWAsForFirefox";
     rev = "v${version}";
-    hash = "sha256-T2X+41ScE8FDZGJdgAjZCp1MQX51UACuNsWFk+6cR3A=";
+    hash = "sha256-0Yyd0mJK/eDallg9ERimvZIRCOTeDkzeAVUfDeNP928=";
   };
 
   sourceRoot = "${src.name}/native";
diff --git a/pkgs/by-name/fl/flarectl/package.nix b/pkgs/by-name/fl/flarectl/package.nix
index c094fe961af9f..fb5786857ef40 100644
--- a/pkgs/by-name/fl/flarectl/package.nix
+++ b/pkgs/by-name/fl/flarectl/package.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "flarectl";
-  version = "0.95.0";
+  version = "0.96.0";
 
   src = fetchFromGitHub {
     owner = "cloudflare";
     repo = "cloudflare-go";
     rev = "v${version}";
-    hash = "sha256-GcmFRtQ8aqicvawCpFDo+oheUSOgKewBETIizPKcyGU=";
+    hash = "sha256-iqR+9qgHYCk7DGX64f50ANUYxTn0h4+AoBHE6yGAvtU=";
   };
 
-  vendorHash = "sha256-Jtap4hGwNr8lpXi6huGikL4iUSP242cIiFyvGveszq8=";
+  vendorHash = "sha256-SkJTLOJ6518MQ0pAPM3TR8T5dOSwEbyQNZHr1jq936A=";
 
   subPackages = [ "cmd/flarectl" ];
 
diff --git a/pkgs/by-name/fl/flashmq/package.nix b/pkgs/by-name/fl/flashmq/package.nix
index 1b243197b8b53..95e9d93a36c3f 100644
--- a/pkgs/by-name/fl/flashmq/package.nix
+++ b/pkgs/by-name/fl/flashmq/package.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flashmq";
-  version = "1.13.0";
+  version = "1.13.1";
 
   src = fetchFromGitHub {
     owner = "halfgaar";
     repo = "FlashMQ";
     rev = "v${version}";
-    hash = "sha256-MoBLV39auDz5oicpX6CVvrHMifGpUozocq4E3J+8xWA=";
+    hash = "sha256-ZKDoh2eZDs7iQpfsvfsG7ic+A8NG+UUGgq9l2tmfhVI=";
   };
 
   nativeBuildInputs = [ cmake installShellFiles ];
diff --git a/pkgs/by-name/fl/flawz/package.nix b/pkgs/by-name/fl/flawz/package.nix
new file mode 100644
index 0000000000000..504dd849b5d90
--- /dev/null
+++ b/pkgs/by-name/fl/flawz/package.nix
@@ -0,0 +1,57 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, pkg-config
+, openssl
+, sqlite
+, installShellFiles
+, stdenv
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "flawz";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "orhun";
+    repo = "flawz";
+    rev = "v${version}";
+    hash = "sha256-eIZUKI/fdaSPHHEEaN/5s4I2LRX44FijUlKzzvuD42E=";
+  };
+
+  cargoHash = "sha256-UWjrVA5T78QLJtMug38y+egLnM+G7zmAIsNmqn2ZE5I=";
+
+  nativeBuildInputs = [ pkg-config installShellFiles ];
+
+  buildInputs = [ openssl sqlite ];
+  outputs = [ "out" "man" ];
+
+  postInstall = ''
+    export OUT_DIR=$(mktemp -d)
+
+    # Generate the man pages
+    cargo run --bin flawz-mangen
+    installManPage $OUT_DIR/flawz.1
+
+    # Generate shell completions
+    cargo run --bin flawz-completions
+    installShellCompletion \
+      --bash $OUT_DIR/flawz.bash \
+      --fish $OUT_DIR/flawz.fish \
+      --zsh $OUT_DIR/_flawz
+
+    # Clean up temporary directory
+    rm -rf $OUT_DIR
+  '';
+
+  meta = {
+    description = "Terminal UI for browsing CVEs";
+    homepage = "https://github.com/orhun/flawz";
+    changelog = "https://github.com/orhun/flawz/releases/tag/v${version}";
+    license = with lib.licenses; [ mit asl20 ];
+    mainProgram = "flawz";
+    maintainers = with lib.maintainers; [ anas ];
+    platforms = with lib.platforms; unix ++ windows;
+    broken = stdenv.isDarwin; # needing some apple_sdk packages
+  };
+}
diff --git a/pkgs/applications/misc/font-manager/default.nix b/pkgs/by-name/fo/font-manager/package.nix
index 95594cb030d06..0cfc68aa4fd2b 100644
--- a/pkgs/applications/misc/font-manager/default.nix
+++ b/pkgs/by-name/fo/font-manager/package.nix
@@ -16,7 +16,7 @@
 , gtk3
 , gnome
 , desktop-file-utils
-, fetchpatch2
+, nix-update-script
 , wrapGAppsHook3
 , gobject-introspection
 # withWebkit enables the "webkit" feature, also known as Google Fonts
@@ -25,25 +25,15 @@
 
 stdenv.mkDerivation rec {
   pname = "font-manager";
-  version = "0.8.8";
+  version = "0.8.9";
 
   src = fetchFromGitHub {
     owner = "FontManager";
     repo = "font-manager";
     rev = version;
-    hash = "sha256-M13Q9d2cKhc0tudkvw0zgqPAFTlmXwK+LltXeuDPWxo=";
+    hash = "sha256-LsQry6CjvVcJFRutKOaqA4lLP7Ek09Q/D/TPnSvx59Q=";
   };
 
-  patches = [
-    # see https://github.com/FontManager/font-manager/issues/355
-    # should be removed on next release
-    (fetchpatch2 {
-      name = "fix-build-with-newer-vala.patch";
-      url = "https://github.com/FontManager/font-manager/commit/600f498946c3904064b4e4fdf96e5841f6a827e4.patch";
-      hash = "sha256-DC9+pvG88t+PPdGQ2oemeEYK9PaD0C2yWBYYCh4Wn9g=";
-    })
-  ];
-
   nativeBuildInputs = [
     pkg-config
     meson
@@ -82,6 +72,8 @@ stdenv.mkDerivation rec {
     patchShebangs meson_post_install.py
   '';
 
+  passthru.updateScript = nix-update-script { };
+
   meta = with lib; {
     homepage = "https://fontmanager.github.io/";
     description = "Simple font management for GTK desktop environments";
diff --git a/pkgs/by-name/fo/fooyin/package.nix b/pkgs/by-name/fo/fooyin/package.nix
index afa5bf4047c6d..883aafdb928a7 100644
--- a/pkgs/by-name/fo/fooyin/package.nix
+++ b/pkgs/by-name/fo/fooyin/package.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "fooyin";
-  version = "0.4.2";
+  version = "0.4.3";
 
   src = fetchFromGitHub {
     owner = "ludouzi";
     repo = "fooyin";
     rev = "v" + finalAttrs.version;
-    hash = "sha256-1U7eqXVcp0lO/X92oNQ3mWdozgJ1eroQPojscSWH6+I=";
+    hash = "sha256-S74Y7Q3MmKfxMGyO8un+YDHmCJUYNKY6KqTSPn+CynE=";
   };
 
   buildInputs = [
diff --git a/pkgs/by-name/fo/forgejo/package.nix b/pkgs/by-name/fo/forgejo/package.nix
index 90c725c74e74b..ade722176d0b2 100644
--- a/pkgs/by-name/fo/forgejo/package.nix
+++ b/pkgs/by-name/fo/forgejo/package.nix
@@ -24,7 +24,7 @@ let
     pname = "forgejo-frontend";
     inherit (forgejo) src version;
 
-    npmDepsHash = "sha256-BffoEbIzTU61bw3ECEm5eDHcav4S27MB5jQKsMprkcw=";
+    npmDepsHash = "sha256-Nu9aOjJpEAuCWWnJfZXy/GayiUDiyc3hOu6Bx7GxfxA=";
 
     patches = [
       ./package-json-npm-build-frontend.patch
@@ -39,17 +39,17 @@ let
 in
 buildGoModule rec {
   pname = "forgejo";
-  version = "7.0.2";
+  version = "7.0.3";
 
   src = fetchFromGitea {
     domain = "codeberg.org";
     owner = "forgejo";
     repo = "forgejo";
     rev = "v${version}";
-    hash = "sha256-YY5dHXWMqlCIPfqsDtHZLHjEdYmrFnh4yc0hfTUESww=";
+    hash = "sha256-P+HVZmfNA1ao+fQ253tK8A2DNGNPxvdyzCvByQJ0FGA=";
   };
 
-  vendorHash = "sha256-UcjaMi/4XYLdaJhi2j3UWqHqkpTbZBo6EwNXxdRIKLw=";
+  vendorHash = "sha256-8qMpnGL5GXJuxOpxh9a1Bcxd7tVweUKwbun8UBxCfQA=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/by-name/fr/francis/package.nix b/pkgs/by-name/fr/francis/package.nix
index 95a25ea95a293..173c1ca137a6e 100644
--- a/pkgs/by-name/fr/francis/package.nix
+++ b/pkgs/by-name/fr/francis/package.nix
@@ -8,14 +8,14 @@
 
 stdenv.mkDerivation rec {
   pname = "francis";
-  version = "1.1.0";
+  version = "24.05.0";
 
   src = fetchFromGitLab {
     domain = "invent.kde.org";
     repo = "francis";
     owner = "utilities";
     rev = "v${version}";
-    hash = "sha256-TvLFzGWb3RROGywhNzCvnFG00PpKC2k+/w1bgwTCESg=";
+    hash = "sha256-mvB01iFvTmGSGaCdvyMOC8BaIgZgyeyRJEra31w04DI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/fu/furmark/package.nix b/pkgs/by-name/fu/furmark/package.nix
index 89aad3bdb2afc..bc7e18d3c021f 100644
--- a/pkgs/by-name/fu/furmark/package.nix
+++ b/pkgs/by-name/fu/furmark/package.nix
@@ -39,7 +39,9 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "furmark";
-  version = versions.${stdenv.hostPlatform.system};
+  version =
+    versions.${stdenv.hostPlatform.system}
+      or (throw "Furmark is not available on ${stdenv.hostPlatform.system}");
 
   src = fetchzip sources.${stdenv.hostPlatform.system};
 
diff --git a/pkgs/by-name/fw/fwupd/package.nix b/pkgs/by-name/fw/fwupd/package.nix
index 5e4b1d7ba7746..a691b94f24884 100644
--- a/pkgs/by-name/fw/fwupd/package.nix
+++ b/pkgs/by-name/fw/fwupd/package.nix
@@ -120,7 +120,7 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "fwupd";
-  version = "1.9.19";
+  version = "1.9.20";
 
   # libfwupd goes to lib
   # daemon, plug-ins and libfwupdplugin go to out
@@ -131,7 +131,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "fwupd";
     repo = "fwupd";
     rev = finalAttrs.version;
-    hash = "sha256-PQwUBOsKejXpS3G3VSJgatCltGy+wejPXCdEsDw87jo=";
+    hash = "sha256-uPHZtl1jzx3rRHADXcQmpXwQrbUbIXuoww3fN4BUviE=";
   };
 
   patches = [
diff --git a/pkgs/by-name/fz/fzf-make/package.nix b/pkgs/by-name/fz/fzf-make/package.nix
index 864bb8f0c925e..24756ffcf880e 100644
--- a/pkgs/by-name/fz/fzf-make/package.nix
+++ b/pkgs/by-name/fz/fzf-make/package.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fzf-make";
-  version = "0.30.0";
+  version = "0.32.0";
 
   src = fetchFromGitHub {
     owner = "kyu08";
     repo = "fzf-make";
     rev = "v${version}";
-    hash = "sha256-C2CDzcS6iE2ojXtFjQfHDJE2C1b5QNG6rda/MiDW8kk=";
+    hash = "sha256-JHquE35qe1nJFJ+0gniG72o1DrGLZSZ0do5oPHgYbHU=";
   };
 
-  cargoHash = "sha256-N5hM5xTMNeryFgdICQcKvPt4lHgh02DCaPD3TTGmFBo=";
+  cargoHash = "sha256-61I6OiEP0t9DAF0jnIEyGRTpPBU65zz/W6mAo7XelVo=";
 
   nativeBuildInputs = [ makeBinaryWrapper ];
 
diff --git a/pkgs/by-name/g3/g3kb-switch/package.nix b/pkgs/by-name/g3/g3kb-switch/package.nix
index 91994eb36624b..f3a2650a5bc55 100644
--- a/pkgs/by-name/g3/g3kb-switch/package.nix
+++ b/pkgs/by-name/g3/g3kb-switch/package.nix
@@ -7,12 +7,12 @@
 }:
 stdenv.mkDerivation rec {
   pname = "g3kb-switch";
-  version = "1.4";
+  version = "1.5";
   src = fetchFromGitHub {
     owner = "lyokha";
     repo = "g3kb-switch";
     rev = version;
-    sha256 = "sha256-mcZduHcteZ+nS0YEZG5DfmpA8xrnLhwxumq6hLuLPIs=";
+    sha256 = "sha256-kTJfV0xQmWuxibUlfC1qJX2J2nrZ4wimdf/nGciQq0Y=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/ga/gamescope/package.nix b/pkgs/by-name/ga/gamescope/package.nix
index 3b60a9f40715f..d1c62b5609611 100644
--- a/pkgs/by-name/ga/gamescope/package.nix
+++ b/pkgs/by-name/ga/gamescope/package.nix
@@ -44,14 +44,14 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "gamescope";
-  version = "3.14.16";
+  version = "3.14.18";
 
   src = fetchFromGitHub {
     owner = "ValveSoftware";
     repo = "gamescope";
     rev = "refs/tags/${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-tijFVOIMW+nkot/uRP0PNZBYZkZMMt1PcAN5+3SWzW4=";
+    hash = "sha256-XcefR0wiDHQY7wMX+LQTEntffi2RdMW8m2HNQMz035A=";
   };
 
   patches = [
diff --git a/pkgs/by-name/gh/gh-eco/package.nix b/pkgs/by-name/gh/gh-eco/package.nix
new file mode 100644
index 0000000000000..002362001848a
--- /dev/null
+++ b/pkgs/by-name/gh/gh-eco/package.nix
@@ -0,0 +1,45 @@
+{
+  lib,
+  fetchFromGitHub,
+  buildGoModule,
+  fetchpatch,
+}:
+let
+  version = "0.1.3";
+in
+buildGoModule {
+  pname = "gh-eco";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "jrnxf";
+    repo = "gh-eco";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-TE1AymNlxjUtkBnBO/VBjYaqLuRyxL75s6sMidKUXTE=";
+  };
+
+  patches = [
+    # Fix package breaking on runtime by updating deps
+    (fetchpatch {
+      name = "update-deps.patch";
+      url = "https://github.com/jrnxf/gh-eco/commit/d45b1e7de8cbcb692def0e94111262cdeff2835d.patch";
+      hash = "sha256-vW5YX6C552dVYjBkYVoDbzT2PP8CaZzxh5g1TKHjrbU=";
+    })
+  ];
+
+  vendorHash = "sha256-O3FQ+Z3KVYgTafwVXUhrGRuOAWlWlOhtVegKVoZBnDE=";
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X main.Version=${version}"
+  ];
+
+  meta = {
+    homepage = "https://github.com/coloradocolby/gh-eco";
+    description = "gh extension to explore the ecosystem";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ helium ];
+    mainProgram = "gh-eco";
+  };
+}
diff --git a/pkgs/by-name/gh/ghciwatch/package.nix b/pkgs/by-name/gh/ghciwatch/package.nix
index 4dcd45887a106..cf01e89b4c34c 100644
--- a/pkgs/by-name/gh/ghciwatch/package.nix
+++ b/pkgs/by-name/gh/ghciwatch/package.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ghciwatch";
-  version = "0.5.12";
+  version = "0.5.16";
 
   src = fetchFromGitHub {
     owner = "MercuryTechnologies";
     repo = "ghciwatch";
     rev = "v${version}";
-    hash = "sha256-XkwxAhZJFeAuWytCco4RFG1K/FJEiTmGDxOyY6KS/Ds=";
+    hash = "sha256-XKR/X27oScB9XdyXeYKD6nlnkBTLJLXkzsRgfS3ygVE=";
   };
 
-  cargoHash = "sha256-ToQes3WWnI7vDKSBQZEzpKFSex5oDdnOKjOC6MONrhg=";
+  cargoHash = "sha256-BKPzOv2RtcE4MzRyvHs3VmNME2uKtGXCqGrULfryacM=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.CoreFoundation
diff --git a/pkgs/by-name/gi/githooks/package.nix b/pkgs/by-name/gi/githooks/package.nix
index f4e4cd02bd861..8a68c861471bc 100644
--- a/pkgs/by-name/gi/githooks/package.nix
+++ b/pkgs/by-name/gi/githooks/package.nix
@@ -5,6 +5,7 @@
   git,
   testers,
   makeWrapper,
+  githooks
 }:
 buildGoModule rec {
   pname = "githooks";
@@ -70,7 +71,7 @@ buildGoModule rec {
   '';
 
   passthru.tests.version = testers.testVersion {
-    package = "githooks-cli";
+    package = githooks;
     command = "githooks-cli --version";
     inherit version;
   };
diff --git a/pkgs/by-name/gi/github-desktop/package.nix b/pkgs/by-name/gi/github-desktop/package.nix
index 1ac8deb248619..65f00781af82e 100644
--- a/pkgs/by-name/gi/github-desktop/package.nix
+++ b/pkgs/by-name/gi/github-desktop/package.nix
@@ -17,6 +17,7 @@
 , mesa
 , systemd
 , openssl
+, libglvnd
 }:
 
 let
@@ -82,6 +83,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   preFixup = ''
     gappsWrapperArgs+=(
       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland}}"
+      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libglvnd ]}
     )
   '';
 
diff --git a/pkgs/by-name/gn/gnome-monitor-config/package.nix b/pkgs/by-name/gn/gnome-monitor-config/package.nix
new file mode 100644
index 0000000000000..ddbe66745393b
--- /dev/null
+++ b/pkgs/by-name/gn/gnome-monitor-config/package.nix
@@ -0,0 +1,48 @@
+{ lib
+, fetchFromGitHub
+, stdenv
+, meson
+, ninja
+, pkg-config
+, cairo
+, glib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-monitor-config";
+  version = "0-unstable-2023-09-26";
+
+  src = fetchFromGitHub {
+    owner = "jadahl";
+    repo = "gnome-monitor-config";
+    rev = "04b854e6411cd9ca75582c108aea63ae3c202f0e";
+    hash = "sha256-uVWhQ5SCyadDkeOd+pY2cYZAQ0ZvWMlgndcr1ZIEf50=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    cairo
+    glib
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    mv src/gnome-monitor-config $out/bin
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A program to help manage GNOME monitor configuration";
+    homepage = "https://github.com/jadahl/gnome-monitor-config";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ aveltras ];
+    platforms = platforms.linux;
+    mainProgram = "gnome-monitor-config";
+  };
+}
diff --git a/pkgs/by-name/go/gobang/package.nix b/pkgs/by-name/go/gobang/package.nix
new file mode 100644
index 0000000000000..9691aa78fd814
--- /dev/null
+++ b/pkgs/by-name/go/gobang/package.nix
@@ -0,0 +1,40 @@
+{
+  lib,
+  rustPlatform,
+  fetchFromGitHub,
+  stdenv,
+  darwin,
+}:
+let
+  version = "0.1.0-alpha.5";
+in
+rustPlatform.buildRustPackage {
+  pname = "gobang";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "tako8ki";
+    repo = "gobang";
+    rev = "v${version}";
+    hash = "sha256-RinfQhG7iCp0Xcs9kLs3I2/wjkJEgCjFYe3mS+FY9Ak=";
+  };
+
+  cargoPatches = [ ./update-sqlx.patch ];
+
+  cargoHash = "sha256-3A3bf7iq1acsWttKmcJmxWM74B0qUIcROBAkjDZFKxE=";
+
+  buildInputs =
+    with darwin.apple_sdk.frameworks;
+    lib.optionals stdenv.isDarwin [
+      CoreFoundation
+      Security
+      SystemConfiguration
+    ];
+
+  meta = {
+    description = "A cross-platform TUI database management tool written in Rust";
+    homepage = "https://github.com/tako8ki/gobang";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ figsoda ];
+  };
+}
diff --git a/pkgs/by-name/go/gobang/update-sqlx.patch b/pkgs/by-name/go/gobang/update-sqlx.patch
new file mode 100644
index 0000000000000..1571b00f03398
--- /dev/null
+++ b/pkgs/by-name/go/gobang/update-sqlx.patch
@@ -0,0 +1,1553 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index 6cf1c13..c3ea64b 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -4,24 +4,15 @@ version = 3
+ 
+ [[package]]
+ name = "ahash"
+-version = "0.7.4"
++version = "0.7.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "43bb833f0bf979d8475d38fbf09ed3b8a55e1885fe93ad3f93239fc6a4f17b98"
++checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
+ dependencies = [
+  "getrandom",
+  "once_cell",
+  "version_check",
+ ]
+ 
+-[[package]]
+-name = "aho-corasick"
+-version = "0.7.18"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
+-dependencies = [
+- "memchr",
+-]
+-
+ [[package]]
+ name = "ansi_term"
+ version = "0.11.0"
+@@ -39,9 +30,9 @@ checksum = "15af2628f6890fe2609a3b91bef4c83450512802e59489f9c1cb1fa5df064a61"
+ 
+ [[package]]
+ name = "arrayvec"
+-version = "0.5.2"
++version = "0.7.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
++checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
+ 
+ [[package]]
+ name = "async-trait"
+@@ -51,7 +42,7 @@ checksum = "0b98e84bbb4cbcdd97da190ba0c58a1bb0de2c1fdf67d159e192ed766aeca722"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+- "syn",
++ "syn 1.0.109",
+ ]
+ 
+ [[package]]
+@@ -74,12 +65,6 @@ dependencies = [
+  "winapi",
+ ]
+ 
+-[[package]]
+-name = "autocfg"
+-version = "0.1.7"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
+-
+ [[package]]
+ name = "autocfg"
+ version = "1.0.1"
+@@ -92,31 +77,70 @@ version = "0.13.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
+ 
++[[package]]
++name = "base64ct"
++version = "1.6.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
++
+ [[package]]
+ name = "bitflags"
+-version = "1.2.1"
++version = "1.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+ 
+ [[package]]
+-name = "bitvec"
+-version = "0.19.5"
++name = "block-buffer"
++version = "0.10.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8942c8d352ae1838c9dda0b0ca2ab657696ef2232a20147cf1b30ae1a9cb4321"
++checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+ dependencies = [
+- "funty",
+- "radium",
+- "tap",
+- "wyz",
++ "generic-array",
+ ]
+ 
+ [[package]]
+-name = "block-buffer"
+-version = "0.9.0"
++name = "borsh"
++version = "0.10.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
++checksum = "4114279215a005bc675e386011e594e1d9b800918cea18fcadadcce864a2046b"
+ dependencies = [
+- "generic-array",
++ "borsh-derive",
++ "hashbrown 0.11.2",
++]
++
++[[package]]
++name = "borsh-derive"
++version = "0.10.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7"
++dependencies = [
++ "borsh-derive-internal",
++ "borsh-schema-derive-internal",
++ "proc-macro-crate",
++ "proc-macro2",
++ "syn 1.0.109",
++]
++
++[[package]]
++name = "borsh-derive-internal"
++version = "0.10.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "afb438156919598d2c7bad7e1c0adf3d26ed3840dbc010db1a882a65583ca2fb"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn 1.0.109",
++]
++
++[[package]]
++name = "borsh-schema-derive-internal"
++version = "0.10.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "634205cc43f74a1b9046ef87c4540ebda95696ec0f315024860cad7c5b0f5ccd"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn 1.0.109",
+ ]
+ 
+ [[package]]
+@@ -125,6 +149,28 @@ version = "3.7.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "9c59e7af012c713f529e7a3ee57ce9b31ddd858d4b512923602f74608b009631"
+ 
++[[package]]
++name = "bytecheck"
++version = "0.6.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2"
++dependencies = [
++ "bytecheck_derive",
++ "ptr_meta",
++ "simdutf8",
++]
++
++[[package]]
++name = "bytecheck_derive"
++version = "0.6.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn 1.0.109",
++]
++
+ [[package]]
+ name = "byteorder"
+ version = "1.4.3"
+@@ -184,22 +230,18 @@ dependencies = [
+ ]
+ 
+ [[package]]
+-name = "cpufeatures"
+-version = "0.1.5"
++name = "const-oid"
++version = "0.7.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "66c99696f6c9dd7f35d486b9d04d7e6e202aa3e8c40d553f2fdf5e7e0c6a71ef"
+-dependencies = [
+- "libc",
+-]
++checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3"
+ 
+ [[package]]
+-name = "crossbeam-channel"
+-version = "0.5.1"
++name = "cpufeatures"
++version = "0.2.12"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4"
++checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
+ dependencies = [
+- "cfg-if",
+- "crossbeam-utils",
++ "libc",
+ ]
+ 
+ [[package]]
+@@ -273,15 +315,25 @@ dependencies = [
+ ]
+ 
+ [[package]]
+-name = "crypto-mac"
+-version = "0.10.1"
++name = "crypto-bigint"
++version = "0.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "bff07008ec701e8028e2ceb8f83f0e4274ee62bd2dbdc4fefff2e9a91824081a"
++checksum = "03c6a1d5fa1de37e071642dfa44ec552ca5b299adb128fab16138e24b548fd21"
+ dependencies = [
+  "generic-array",
+  "subtle",
+ ]
+ 
++[[package]]
++name = "crypto-common"
++version = "0.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
++dependencies = [
++ "generic-array",
++ "typenum",
++]
++
+ [[package]]
+ name = "database-tree"
+ version = "0.1.0-alpha.5"
+@@ -291,20 +343,33 @@ dependencies = [
+  "thiserror",
+ ]
+ 
++[[package]]
++name = "der"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c"
++dependencies = [
++ "const-oid",
++ "crypto-bigint",
++ "pem-rfc7468",
++]
++
+ [[package]]
+ name = "digest"
+-version = "0.9.0"
++version = "0.10.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
++checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+ dependencies = [
+- "generic-array",
++ "block-buffer",
++ "crypto-common",
++ "subtle",
+ ]
+ 
+ [[package]]
+ name = "dirs"
+-version = "3.0.2"
++version = "4.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "30baa043103c9d0c2a57cf537cc2f35623889dc0d405e6c3cccfadbc81c71309"
++checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
+ dependencies = [
+  "dirs-sys",
+ ]
+@@ -359,6 +424,24 @@ version = "1.6.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
+ 
++[[package]]
++name = "event-listener"
++version = "2.5.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
++
++[[package]]
++name = "flume"
++version = "0.10.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577"
++dependencies = [
++ "futures-core",
++ "futures-sink",
++ "pin-project",
++ "spin 0.9.8",
++]
++
+ [[package]]
+ name = "form_urlencoded"
+ version = "1.0.1"
+@@ -369,12 +452,6 @@ dependencies = [
+  "percent-encoding",
+ ]
+ 
+-[[package]]
+-name = "funty"
+-version = "1.1.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7"
+-
+ [[package]]
+ name = "futures"
+ version = "0.3.15"
+@@ -392,9 +469,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "futures-channel"
+-version = "0.3.15"
++version = "0.3.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e682a68b29a882df0545c143dc3646daefe80ba479bcdede94d5a703de2871e2"
++checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
+ dependencies = [
+  "futures-core",
+  "futures-sink",
+@@ -402,15 +479,15 @@ dependencies = [
+ 
+ [[package]]
+ name = "futures-core"
+-version = "0.3.15"
++version = "0.3.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0402f765d8a89a26043b889b26ce3c4679d268fa6bb22cd7c6aad98340e179d1"
++checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+ 
+ [[package]]
+ name = "futures-executor"
+-version = "0.3.15"
++version = "0.3.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "badaa6a909fac9e7236d0620a2f57f7664640c56575b71a7552fbd68deafab79"
++checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
+ dependencies = [
+  "futures-core",
+  "futures-task",
+@@ -430,42 +507,39 @@ dependencies = [
+ 
+ [[package]]
+ name = "futures-io"
+-version = "0.3.15"
++version = "0.3.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "acc499defb3b348f8d8f3f66415835a9131856ff7714bf10dadfc4ec4bdb29a1"
++checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+ 
+ [[package]]
+ name = "futures-macro"
+-version = "0.3.15"
++version = "0.3.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a4c40298486cdf52cc00cd6d6987892ba502c7656a16a4192a9992b1ccedd121"
++checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
+ dependencies = [
+- "autocfg 1.0.1",
+- "proc-macro-hack",
+  "proc-macro2",
+  "quote",
+- "syn",
++ "syn 2.0.65",
+ ]
+ 
+ [[package]]
+ name = "futures-sink"
+-version = "0.3.15"
++version = "0.3.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a57bead0ceff0d6dde8f465ecd96c9338121bb7717d3e7b108059531870c4282"
++checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
+ 
+ [[package]]
+ name = "futures-task"
+-version = "0.3.15"
++version = "0.3.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8a16bef9fc1a4dddb5bee51c989e3fbba26569cbb0e31f5b303c184e3dd33dae"
++checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+ 
+ [[package]]
+ name = "futures-util"
+-version = "0.3.15"
++version = "0.3.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "feb5c238d27e2bf94ffdfd27b2c29e3df4a68c4193bb6427384259e2bf191967"
++checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
+ dependencies = [
+- "autocfg 1.0.1",
+  "futures-channel",
+  "futures-core",
+  "futures-io",
+@@ -475,8 +549,6 @@ dependencies = [
+  "memchr",
+  "pin-project-lite",
+  "pin-utils",
+- "proc-macro-hack",
+- "proc-macro-nested",
+  "slab",
+ ]
+ 
+@@ -523,7 +595,7 @@ dependencies = [
+  "strum",
+  "strum_macros",
+  "tokio",
+- "toml",
++ "toml 0.4.10",
+  "tui",
+  "unicode-width",
+  "which",
+@@ -538,13 +610,22 @@ dependencies = [
+  "ahash",
+ ]
+ 
++[[package]]
++name = "hashbrown"
++version = "0.12.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
++dependencies = [
++ "ahash",
++]
++
+ [[package]]
+ name = "hashlink"
+ version = "0.7.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "7249a3129cbc1ffccd74857f81464a323a152173cdb134e0fd81bc803b29facf"
+ dependencies = [
+- "hashbrown",
++ "hashbrown 0.11.2",
+ ]
+ 
+ [[package]]
+@@ -556,6 +637,15 @@ dependencies = [
+  "unicode-segmentation",
+ ]
+ 
++[[package]]
++name = "heck"
++version = "0.4.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
++dependencies = [
++ "unicode-segmentation",
++]
++
+ [[package]]
+ name = "hermit-abi"
+ version = "0.1.18"
+@@ -571,13 +661,21 @@ version = "0.4.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+ 
++[[package]]
++name = "hkdf"
++version = "0.12.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
++dependencies = [
++ "hmac",
++]
++
+ [[package]]
+ name = "hmac"
+-version = "0.10.1"
++version = "0.12.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15"
++checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
+ dependencies = [
+- "crypto-mac",
+  "digest",
+ ]
+ 
+@@ -598,8 +696,8 @@ version = "1.7.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5"
+ dependencies = [
+- "autocfg 1.0.1",
+- "hashbrown",
++ "autocfg",
++ "hashbrown 0.11.2",
+ ]
+ 
+ [[package]]
+@@ -622,9 +720,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "itoa"
+-version = "0.4.7"
++version = "1.0.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
++checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
+ 
+ [[package]]
+ name = "js-sys"
+@@ -641,27 +739,14 @@ version = "1.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+ dependencies = [
+- "spin",
+-]
+-
+-[[package]]
+-name = "lexical-core"
+-version = "0.7.6"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe"
+-dependencies = [
+- "arrayvec",
+- "bitflags",
+- "cfg-if",
+- "ryu",
+- "static_assertions",
++ "spin 0.5.2",
+ ]
+ 
+ [[package]]
+ name = "libc"
+-version = "0.2.97"
++version = "0.2.155"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "12b8adadd720df158f4d70dfe7ccc6adb0472d7c55ca83445f6a5ab3e36f8fb6"
++checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
+ 
+ [[package]]
+ name = "libm"
+@@ -671,9 +756,9 @@ checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a"
+ 
+ [[package]]
+ name = "libsqlite3-sys"
+-version = "0.22.2"
++version = "0.24.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "290b64917f8b0cb885d9de0f9959fe1f775d7fa12f1da2db9001c1c8ab60f89d"
++checksum = "898745e570c7d0453cc1fbc4a701eb6c662ed54e8fec8b7d14be137ebeeb9d14"
+ dependencies = [
+  "cc",
+  "pkg-config",
+@@ -698,12 +783,6 @@ dependencies = [
+  "cfg-if",
+ ]
+ 
+-[[package]]
+-name = "maplit"
+-version = "1.0.2"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
+-
+ [[package]]
+ name = "matches"
+ version = "0.1.8"
+@@ -712,20 +791,25 @@ checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
+ 
+ [[package]]
+ name = "md-5"
+-version = "0.9.1"
++version = "0.10.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7b5a279bb9607f9f53c22d496eade00d138d1bdcccd07d74650387cf94942a15"
++checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
+ dependencies = [
+- "block-buffer",
++ "cfg-if",
+  "digest",
+- "opaque-debug",
+ ]
+ 
+ [[package]]
+ name = "memchr"
+-version = "2.4.0"
++version = "2.7.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc"
++checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
++
++[[package]]
++name = "minimal-lexical"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+ 
+ [[package]]
+ name = "mio"
+@@ -751,15 +835,12 @@ dependencies = [
+ 
+ [[package]]
+ name = "nom"
+-version = "6.1.2"
++version = "7.1.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e7413f999671bd4745a7b624bd370a569fb6bc574b23c83a3c5ed2e453f3d5e2"
++checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+ dependencies = [
+- "bitvec",
+- "funty",
+- "lexical-core",
+  "memchr",
+- "version_check",
++ "minimal-lexical",
+ ]
+ 
+ [[package]]
+@@ -773,33 +854,21 @@ dependencies = [
+ 
+ [[package]]
+ name = "num-bigint"
+-version = "0.3.2"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7d0a3d5e207573f948a9e5376662aa743a2ea13f7c50a554d7af443a73fbfeba"
+-dependencies = [
+- "autocfg 1.0.1",
+- "num-integer",
+- "num-traits",
+-]
+-
+-[[package]]
+-name = "num-bigint"
+-version = "0.4.2"
++version = "0.3.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "74e768dff5fb39a41b3bcd30bb25cf989706c90d028d1ad71971987aa309d535"
++checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3"
+ dependencies = [
+- "autocfg 1.0.1",
++ "autocfg",
+  "num-integer",
+  "num-traits",
+ ]
+ 
+ [[package]]
+ name = "num-bigint-dig"
+-version = "0.7.0"
++version = "0.8.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4547ee5541c18742396ae2c895d0717d0f886d8823b8399cdaf7b07d63ad0480"
++checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151"
+ dependencies = [
+- "autocfg 0.1.7",
+  "byteorder",
+  "lazy_static",
+  "libm",
+@@ -817,7 +886,7 @@ version = "0.1.44"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
+ dependencies = [
+- "autocfg 1.0.1",
++ "autocfg",
+  "num-traits",
+ ]
+ 
+@@ -827,7 +896,7 @@ version = "0.1.42"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59"
+ dependencies = [
+- "autocfg 1.0.1",
++ "autocfg",
+  "num-integer",
+  "num-traits",
+ ]
+@@ -838,7 +907,7 @@ version = "0.2.14"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
+ dependencies = [
+- "autocfg 1.0.1",
++ "autocfg",
+  "libm",
+ ]
+ 
+@@ -854,15 +923,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "once_cell"
+-version = "1.8.0"
++version = "1.19.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56"
+-
+-[[package]]
+-name = "opaque-debug"
+-version = "0.3.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
++checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+ 
+ [[package]]
+ name = "parking_lot"
+@@ -884,20 +947,24 @@ dependencies = [
+  "cfg-if",
+  "instant",
+  "libc",
+- "redox_syscall",
++ "redox_syscall 0.2.9",
+  "smallvec",
+  "winapi",
+ ]
+ 
+ [[package]]
+-name = "pem"
+-version = "0.8.3"
++name = "paste"
++version = "1.0.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fd56cbd21fea48d0c440b41cd69c589faacade08c992d9a54e471b79d0fd13eb"
++checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
++
++[[package]]
++name = "pem-rfc7468"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "01de5d978f34aa4b2296576379fcc416034702fd94117c56ffd8a1a767cefb30"
+ dependencies = [
+- "base64",
+- "once_cell",
+- "regex",
++ "base64ct",
+ ]
+ 
+ [[package]]
+@@ -906,11 +973,31 @@ version = "2.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+ 
++[[package]]
++name = "pin-project"
++version = "1.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
++dependencies = [
++ "pin-project-internal",
++]
++
++[[package]]
++name = "pin-project-internal"
++version = "1.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn 2.0.65",
++]
++
+ [[package]]
+ name = "pin-project-lite"
+-version = "0.2.6"
++version = "0.2.14"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905"
++checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
+ 
+ [[package]]
+ name = "pin-utils"
+@@ -918,6 +1005,28 @@ version = "0.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+ 
++[[package]]
++name = "pkcs1"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a78f66c04ccc83dd4486fd46c33896f4e17b24a7a3a6400dedc48ed0ddd72320"
++dependencies = [
++ "der",
++ "pkcs8",
++ "zeroize",
++]
++
++[[package]]
++name = "pkcs8"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0"
++dependencies = [
++ "der",
++ "spki",
++ "zeroize",
++]
++
+ [[package]]
+ name = "pkg-config"
+ version = "0.3.19"
+@@ -930,6 +1039,15 @@ version = "0.2.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
+ 
++[[package]]
++name = "proc-macro-crate"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
++dependencies = [
++ "toml 0.5.11",
++]
++
+ [[package]]
+ name = "proc-macro-error"
+ version = "1.0.4"
+@@ -939,7 +1057,7 @@ dependencies = [
+  "proc-macro-error-attr",
+  "proc-macro2",
+  "quote",
+- "syn",
++ "syn 1.0.109",
+  "version_check",
+ ]
+ 
+@@ -955,41 +1073,43 @@ dependencies = [
+ ]
+ 
+ [[package]]
+-name = "proc-macro-hack"
+-version = "0.5.19"
++name = "proc-macro2"
++version = "1.0.83"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
++checksum = "0b33eb56c327dec362a9e55b3ad14f9d2f0904fb5a5b03b513ab5465399e9f43"
++dependencies = [
++ "unicode-ident",
++]
+ 
+ [[package]]
+-name = "proc-macro-nested"
+-version = "0.1.7"
++name = "ptr_meta"
++version = "0.1.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086"
++checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1"
++dependencies = [
++ "ptr_meta_derive",
++]
+ 
+ [[package]]
+-name = "proc-macro2"
+-version = "1.0.27"
++name = "ptr_meta_derive"
++version = "0.1.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038"
++checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac"
+ dependencies = [
+- "unicode-xid",
++ "proc-macro2",
++ "quote",
++ "syn 1.0.109",
+ ]
+ 
+ [[package]]
+ name = "quote"
+-version = "1.0.9"
++version = "1.0.36"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
++checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
+ dependencies = [
+  "proc-macro2",
+ ]
+ 
+-[[package]]
+-name = "radium"
+-version = "0.5.3"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "941ba9d78d8e2f7ce474c015eea4d9c6d25b6a3327f9832ee29a4de27f91bbb8"
+-
+ [[package]]
+ name = "rand"
+ version = "0.8.4"
+@@ -1039,6 +1159,15 @@ dependencies = [
+  "bitflags",
+ ]
+ 
++[[package]]
++name = "redox_syscall"
++version = "0.4.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
++dependencies = [
++ "bitflags",
++]
++
+ [[package]]
+ name = "redox_users"
+ version = "0.4.0"
+@@ -1046,26 +1175,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64"
+ dependencies = [
+  "getrandom",
+- "redox_syscall",
++ "redox_syscall 0.2.9",
+ ]
+ 
+ [[package]]
+-name = "regex"
+-version = "1.5.4"
++name = "rend"
++version = "0.4.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
++checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c"
+ dependencies = [
+- "aho-corasick",
+- "memchr",
+- "regex-syntax",
++ "bytecheck",
+ ]
+ 
+-[[package]]
+-name = "regex-syntax"
+-version = "0.6.25"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
+-
+ [[package]]
+ name = "ring"
+ version = "0.16.20"
+@@ -1075,41 +1196,73 @@ dependencies = [
+  "cc",
+  "libc",
+  "once_cell",
+- "spin",
++ "spin 0.5.2",
+  "untrusted",
+  "web-sys",
+  "winapi",
+ ]
+ 
++[[package]]
++name = "rkyv"
++version = "0.7.40"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c30f1d45d9aa61cbc8cd1eb87705470892289bb2d01943e7803b873a57404dc3"
++dependencies = [
++ "bytecheck",
++ "hashbrown 0.12.3",
++ "ptr_meta",
++ "rend",
++ "rkyv_derive",
++ "seahash",
++]
++
++[[package]]
++name = "rkyv_derive"
++version = "0.7.40"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ff26ed6c7c4dfc2aa9480b86a60e3c7233543a270a680e10758a507c5a4ce476"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn 1.0.109",
++]
++
+ [[package]]
+ name = "rsa"
+-version = "0.4.1"
++version = "0.6.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7b0aeddcca1082112a6eeb43bf25fd7820b066aaf6eaef776e19d0a1febe38fe"
++checksum = "4cf22754c49613d2b3b119f0e5d46e34a2c628a937e3024b8762de4e7d8c710b"
+ dependencies = [
+  "byteorder",
+  "digest",
+- "lazy_static",
+  "num-bigint-dig",
+  "num-integer",
+  "num-iter",
+  "num-traits",
+- "pem",
+- "rand",
+- "simple_asn1",
++ "pkcs1",
++ "pkcs8",
++ "rand_core",
++ "smallvec",
+  "subtle",
+  "zeroize",
+ ]
+ 
+ [[package]]
+ name = "rust_decimal"
+-version = "1.15.0"
++version = "1.30.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c5446d1cf2dfe2d6367c8b27f2082bdf011e60e76fa1fcd140047f535156d6e7"
++checksum = "d0446843641c69436765a35a5a77088e28c2e6a12da93e84aa3ab1cd4aa5a042"
+ dependencies = [
+  "arrayvec",
++ "borsh",
++ "bytecheck",
++ "byteorder",
++ "bytes",
+  "num-traits",
++ "rand",
++ "rkyv",
+  "serde",
++ "serde_json",
+ ]
+ 
+ [[package]]
+@@ -1147,33 +1300,38 @@ dependencies = [
+  "untrusted",
+ ]
+ 
++[[package]]
++name = "seahash"
++version = "4.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
++
+ [[package]]
+ name = "serde"
+-version = "1.0.126"
++version = "1.0.202"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ec7505abeacaec74ae4778d9d9328fe5a5d04253220a85c4ee022239fc996d03"
++checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395"
+ dependencies = [
+  "serde_derive",
+ ]
+ 
+ [[package]]
+ name = "serde_derive"
+-version = "1.0.126"
++version = "1.0.202"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "963a7dbc9895aeac7ac90e74f34a5d5261828f79df35cbed41e10189d3804d43"
++checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+- "syn",
++ "syn 2.0.65",
+ ]
+ 
+ [[package]]
+ name = "serde_json"
+-version = "1.0.64"
++version = "1.0.117"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79"
++checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
+ dependencies = [
+- "indexmap",
+  "itoa",
+  "ryu",
+  "serde",
+@@ -1181,28 +1339,24 @@ dependencies = [
+ 
+ [[package]]
+ name = "sha-1"
+-version = "0.9.6"
++version = "0.10.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8c4cfa741c5832d0ef7fab46cabed29c2aae926db0b11bb2069edd8db5e64e16"
++checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c"
+ dependencies = [
+- "block-buffer",
+  "cfg-if",
+  "cpufeatures",
+  "digest",
+- "opaque-debug",
+ ]
+ 
+ [[package]]
+ name = "sha2"
+-version = "0.9.5"
++version = "0.10.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b362ae5752fd2137731f9fa25fd4d9058af34666ca1966fb969119cc35719f12"
++checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
+ dependencies = [
+- "block-buffer",
+  "cfg-if",
+  "cpufeatures",
+  "digest",
+- "opaque-debug",
+ ]
+ 
+ [[package]]
+@@ -1247,16 +1401,10 @@ dependencies = [
+ ]
+ 
+ [[package]]
+-name = "simple_asn1"
+-version = "0.5.4"
++name = "simdutf8"
++version = "0.1.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8eb4ea60fb301dc81dfc113df680571045d375ab7345d171c5dc7d7e13107a80"
+-dependencies = [
+- "chrono",
+- "num-bigint 0.4.2",
+- "num-traits",
+- "thiserror",
+-]
++checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a"
+ 
+ [[package]]
+ name = "slab"
+@@ -1266,9 +1414,9 @@ checksum = "f173ac3d1a7e3b28003f40de0b5ce7fe2710f9b9dc3fc38664cebee46b3b6527"
+ 
+ [[package]]
+ name = "smallvec"
+-version = "1.6.1"
++version = "1.13.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
++checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
+ 
+ [[package]]
+ name = "spin"
+@@ -1276,24 +1424,41 @@ version = "0.5.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+ 
++[[package]]
++name = "spin"
++version = "0.9.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
++dependencies = [
++ "lock_api",
++]
++
++[[package]]
++name = "spki"
++version = "0.5.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27"
++dependencies = [
++ "base64ct",
++ "der",
++]
++
+ [[package]]
+ name = "sqlformat"
+-version = "0.1.6"
++version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6d86e3c77ff882a828346ba401a7ef4b8e440df804491c6064fe8295765de71c"
++checksum = "b4b7922be017ee70900be125523f38bdd644f4f06a1b16e8fa5a8ee8c34bffd4"
+ dependencies = [
+- "lazy_static",
+- "maplit",
++ "itertools",
+  "nom",
+- "regex",
+  "unicode_categories",
+ ]
+ 
+ [[package]]
+ name = "sqlx"
+-version = "0.5.7"
++version = "0.5.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0e4b94ab0f8c21ee4899b93b06451ef5d965f1a355982ee73684338228498440"
++checksum = "551873805652ba0d912fec5bbb0f8b4cdd96baf8e2ebf5970e5671092966019b"
+ dependencies = [
+  "sqlx-core",
+  "sqlx-macros",
+@@ -1301,9 +1466,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "sqlx-core"
+-version = "0.5.7"
++version = "0.5.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ec28b91a01e1fe286d6ba66f68289a2286df023fc97444e1fd86c2fd6d5dc026"
++checksum = "e48c61941ccf5ddcada342cd59e3e5173b007c509e1e8e990dafc830294d9dc5"
+ dependencies = [
+  "ahash",
+  "atoi",
+@@ -1312,29 +1477,32 @@ dependencies = [
+  "byteorder",
+  "bytes",
+  "chrono",
+- "crossbeam-channel",
+  "crossbeam-queue",
+- "crossbeam-utils",
+  "digest",
+  "dirs",
+  "either",
++ "event-listener",
++ "flume",
+  "futures-channel",
+  "futures-core",
++ "futures-executor",
+  "futures-intrusive",
+  "futures-util",
+  "generic-array",
+  "hashlink",
+  "hex",
++ "hkdf",
+  "hmac",
++ "indexmap",
+  "itoa",
+  "libc",
+  "libsqlite3-sys",
+  "log",
+  "md-5",
+  "memchr",
+- "num-bigint 0.3.2",
++ "num-bigint",
+  "once_cell",
+- "parking_lot",
++ "paste",
+  "percent-encoding",
+  "rand",
+  "rsa",
+@@ -1358,41 +1526,34 @@ dependencies = [
+ 
+ [[package]]
+ name = "sqlx-macros"
+-version = "0.5.7"
++version = "0.5.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4dc33c35d54774eed73d54568d47a6ac099aed8af5e1556a017c131be88217d5"
++checksum = "bc0fba2b0cae21fc00fe6046f8baa4c7fcb49e379f0f592b04696607f69ed2e1"
+ dependencies = [
+  "dotenv",
+  "either",
+- "futures",
+- "heck",
++ "heck 0.4.1",
+  "once_cell",
+  "proc-macro2",
+  "quote",
+  "serde_json",
+  "sqlx-core",
+  "sqlx-rt",
+- "syn",
++ "syn 1.0.109",
+  "url",
+ ]
+ 
+ [[package]]
+ name = "sqlx-rt"
+-version = "0.5.7"
++version = "0.5.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "14302b678d9c76b28f2e60115211e25e0aabc938269991745a169753dc00e35c"
++checksum = "4db708cd3e459078f85f39f96a00960bd841f66ee2a669e90bf36907f5a79aae"
+ dependencies = [
+  "once_cell",
+  "tokio",
+  "tokio-rustls",
+ ]
+ 
+-[[package]]
+-name = "static_assertions"
+-version = "1.1.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+-
+ [[package]]
+ name = "stringprep"
+ version = "0.1.2"
+@@ -1426,11 +1587,11 @@ version = "0.4.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "7813934aecf5f51a54775e00068c237de98489463968231a51746bbbc03f9c10"
+ dependencies = [
+- "heck",
++ "heck 0.3.3",
+  "proc-macro-error",
+  "proc-macro2",
+  "quote",
+- "syn",
++ "syn 1.0.109",
+ ]
+ 
+ [[package]]
+@@ -1445,10 +1606,10 @@ version = "0.21.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "d06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ec"
+ dependencies = [
+- "heck",
++ "heck 0.3.3",
+  "proc-macro2",
+  "quote",
+- "syn",
++ "syn 1.0.109",
+ ]
+ 
+ [[package]]
+@@ -1459,33 +1620,26 @@ checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2"
+ 
+ [[package]]
+ name = "syn"
+-version = "1.0.73"
++version = "1.0.109"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f71489ff30030d2ae598524f61326b902466f72a0fb1a8564c001cc63425bcc7"
++checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+- "unicode-xid",
++ "unicode-ident",
+ ]
+ 
+ [[package]]
+-name = "synstructure"
+-version = "0.12.4"
++name = "syn"
++version = "2.0.65"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701"
++checksum = "d2863d96a84c6439701d7a38f9de935ec562c8832cc55d1dde0f513b52fad106"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+- "syn",
+- "unicode-xid",
++ "unicode-ident",
+ ]
+ 
+-[[package]]
+-name = "tap"
+-version = "1.0.1"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
+-
+ [[package]]
+ name = "textwrap"
+ version = "0.11.0"
+@@ -1497,22 +1651,22 @@ dependencies = [
+ 
+ [[package]]
+ name = "thiserror"
+-version = "1.0.25"
++version = "1.0.61"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fa6f76457f59514c7eeb4e59d891395fab0b2fd1d40723ae737d64153392e9c6"
++checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
+ dependencies = [
+  "thiserror-impl",
+ ]
+ 
+ [[package]]
+ name = "thiserror-impl"
+-version = "1.0.25"
++version = "1.0.61"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8a36768c0fbf1bb15eca10defa29526bda730a2376c2ab4393ccfa16fb1a318d"
++checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+- "syn",
++ "syn 2.0.65",
+ ]
+ 
+ [[package]]
+@@ -1542,11 +1696,10 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
+ 
+ [[package]]
+ name = "tokio"
+-version = "1.11.0"
++version = "1.16.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b4efe6fc2395938c8155973d7be49fe8d03a843726e285e100a8a383cc0154ce"
++checksum = "0c27a64b625de6d309e8c57716ba93021dccf1b3b5c97edd6d3dd2d2135afc0a"
+ dependencies = [
+- "autocfg 1.0.1",
+  "bytes",
+  "libc",
+  "memchr",
+@@ -1562,13 +1715,13 @@ dependencies = [
+ 
+ [[package]]
+ name = "tokio-macros"
+-version = "1.3.0"
++version = "1.8.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "54473be61f4ebe4efd09cec9bd5d16fa51d70ea0192213d754d2d500457db110"
++checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+- "syn",
++ "syn 1.0.109",
+ ]
+ 
+ [[package]]
+@@ -1584,9 +1737,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "tokio-stream"
+-version = "0.1.7"
++version = "0.1.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7b2f3f698253f03119ac0102beaa64f67a67e08074d03a22d18784104543727f"
++checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af"
+ dependencies = [
+  "futures-core",
+  "pin-project-lite",
+@@ -1602,6 +1755,15 @@ dependencies = [
+  "serde",
+ ]
+ 
++[[package]]
++name = "toml"
++version = "0.5.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
++dependencies = [
++ "serde",
++]
++
+ [[package]]
+ name = "tui"
+ version = "0.15.0"
+@@ -1617,9 +1779,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "typenum"
+-version = "1.13.0"
++version = "1.17.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "879f6906492a7cd215bfa4cf595b600146ccfac0c79bcbd1f3000162af5e8b06"
++checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+ 
+ [[package]]
+ name = "unicode-bidi"
+@@ -1630,6 +1792,12 @@ dependencies = [
+  "matches",
+ ]
+ 
++[[package]]
++name = "unicode-ident"
++version = "1.0.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
++
+ [[package]]
+ name = "unicode-normalization"
+ version = "0.1.19"
+@@ -1651,12 +1819,6 @@ version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
+ 
+-[[package]]
+-name = "unicode-xid"
+-version = "0.2.2"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
+-
+ [[package]]
+ name = "unicode_categories"
+ version = "0.1.1"
+@@ -1705,6 +1867,12 @@ version = "0.10.2+wasi-snapshot-preview1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
+ 
++[[package]]
++name = "wasite"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b"
++
+ [[package]]
+ name = "wasm-bindgen"
+ version = "0.2.74"
+@@ -1726,7 +1894,7 @@ dependencies = [
+  "log",
+  "proc-macro2",
+  "quote",
+- "syn",
++ "syn 1.0.109",
+  "wasm-bindgen-shared",
+ ]
+ 
+@@ -1748,7 +1916,7 @@ checksum = "be2241542ff3d9f241f5e2cb6dd09b37efe786df8851c54957683a49f0987a97"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+- "syn",
++ "syn 1.0.109",
+  "wasm-bindgen-backend",
+  "wasm-bindgen-shared",
+ ]
+@@ -1801,11 +1969,12 @@ dependencies = [
+ 
+ [[package]]
+ name = "whoami"
+-version = "1.1.2"
++version = "1.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4abacf325c958dfeaf1046931d37f2a901b6dfe0968ee965a29e94c6766b2af6"
++checksum = "a44ab49fad634e88f55bf8f9bb3abd2f27d7204172a112c7c9987e01c1c94ea9"
+ dependencies = [
+- "wasm-bindgen",
++ "redox_syscall 0.4.1",
++ "wasite",
+  "web-sys",
+ ]
+ 
+@@ -1831,29 +2000,8 @@ version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+ 
+-[[package]]
+-name = "wyz"
+-version = "0.2.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214"
+-
+ [[package]]
+ name = "zeroize"
+-version = "1.3.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd"
+-dependencies = [
+- "zeroize_derive",
+-]
+-
+-[[package]]
+-name = "zeroize_derive"
+-version = "1.1.0"
++version = "1.7.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a2c1e130bebaeab2f23886bf9acbaca14b092408c452543c857f66399cd6dab1"
+-dependencies = [
+- "proc-macro2",
+- "quote",
+- "syn",
+- "synstructure",
+-]
++checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
+diff --git a/Cargo.toml b/Cargo.toml
+index 95f5b91..ea7eec5 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -20,7 +20,7 @@ tui = { version = "0.15.0", features = ["crossterm"], default-features = false }
+ crossterm = "0.20"
+ anyhow = "1.0.38"
+ unicode-width = "0.1"
+-sqlx = { version = "0.5.6", features = ["mysql", "postgres", "sqlite", "chrono", "runtime-tokio-rustls", "decimal", "json"], default-features = false }
++sqlx = { version = "0.5.13", features = ["mysql", "postgres", "sqlite", "chrono", "runtime-tokio-rustls", "decimal", "json"], default-features = false }
+ chrono = "0.4"
+ tokio = { version = "1.11.0", features = ["full"] }
+ futures = "0.3.5"
diff --git a/pkgs/by-name/go/google-chrome/package.nix b/pkgs/by-name/go/google-chrome/package.nix
index bd0a31aadf3bb..57a3dcdc0afb2 100644
--- a/pkgs/by-name/go/google-chrome/package.nix
+++ b/pkgs/by-name/go/google-chrome/package.nix
@@ -64,11 +64,11 @@ let
 
 in stdenv.mkDerivation (finalAttrs: {
   pname = "google-chrome";
-  version = "125.0.6422.60";
+  version = "125.0.6422.112";
 
   src = fetchurl {
     url = "https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${finalAttrs.version}-1_amd64.deb";
-    hash = "sha256-Q0QMPthJLVquJp7fm6QN+lDb0quZsT7hv6KRXfdBMl4=";
+    hash = "sha256-Tx9SGob0b4mndk+zIhSL8MAuCUdwz2HrbnhfXYYfEUo=";
   };
 
   nativeBuildInputs = [ patchelf makeWrapper ];
diff --git a/pkgs/by-name/gp/gpt4all/package.nix b/pkgs/by-name/gp/gpt4all/package.nix
index 40fe6a88322f6..c583710d315ff 100644
--- a/pkgs/by-name/gp/gpt4all/package.nix
+++ b/pkgs/by-name/gp/gpt4all/package.nix
@@ -1,4 +1,5 @@
 { lib
+, config
 , stdenv
 , fetchFromGitHub
 , cmake
@@ -7,15 +8,17 @@
 , shaderc
 , vulkan-headers
 , wayland
+, cudaSupport ? config.cudaSupport
+, cudaPackages ? { }
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gpt4all";
-  version = "2.7.5";
+  version = "2.8.0";
 
   src = fetchFromGitHub {
     fetchSubmodules = true;
-    hash = "sha256-i/T6gk8ICneW624008eiStgYNv5CE8w0Yx8knk57EFw=";
+    hash = "sha256-aSz37+1K26Xizf4cpV45a2DnSsl959VQok/ppFRk/hs=";
     owner = "nomic-ai";
     repo = "gpt4all";
     rev = "v${finalAttrs.version}";
@@ -26,6 +29,8 @@ stdenv.mkDerivation (finalAttrs: {
   nativeBuildInputs = [
     cmake
     qt6.wrapQtAppsHook
+  ] ++ lib.optionals cudaSupport [
+    cudaPackages.cuda_nvcc
   ];
 
   buildInputs = [
@@ -39,12 +44,23 @@ stdenv.mkDerivation (finalAttrs: {
     shaderc
     vulkan-headers
     wayland
-  ];
+  ] ++ lib.optionals cudaSupport (
+      with cudaPackages;
+      [
+        cuda_cccl.dev
+        cuda_cudart.dev
+        cuda_cudart.lib
+        cuda_cudart.static
+        libcublas.dev
+        libcublas.lib
+      ]);
 
   cmakeFlags = [
     "-DKOMPUTE_OPT_USE_BUILT_IN_VULKAN_HEADER=OFF"
     "-DKOMPUTE_OPT_DISABLE_VULKAN_VERSION_CHECK=ON"
     "-DKOMPUTE_OPT_USE_BUILT_IN_FMT=OFF"
+  ] ++ lib.optionals (!cudaSupport) [
+    "-DLLMODEL_CUDA=OFF"
   ];
 
   postInstall = ''
diff --git a/pkgs/by-name/gr/graphite-cli/package-lock.json b/pkgs/by-name/gr/graphite-cli/package-lock.json
index 72a0fa9474847..95b5700cb8bd2 100644
--- a/pkgs/by-name/gr/graphite-cli/package-lock.json
+++ b/pkgs/by-name/gr/graphite-cli/package-lock.json
@@ -1,12 +1,12 @@
 {
   "name": "@withgraphite/graphite-cli",
-  "version": "1.3.4",
+  "version": "1.3.5",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "@withgraphite/graphite-cli",
-      "version": "1.3.4",
+      "version": "1.3.5",
       "hasInstallScript": true,
       "license": "None",
       "dependencies": {
@@ -126,17 +126,6 @@
         "node": ">=8"
       }
     },
-    "node_modules/lru-cache": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
-      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-      "dependencies": {
-        "yallist": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
     "node_modules/require-directory": {
       "version": "2.1.1",
       "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@@ -146,12 +135,9 @@
       }
     },
     "node_modules/semver": {
-      "version": "7.6.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
-      "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
-      "dependencies": {
-        "lru-cache": "^6.0.0"
-      },
+      "version": "7.6.2",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+      "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
       "bin": {
         "semver": "bin/semver.js"
       },
@@ -238,11 +224,6 @@
         "node": ">=10"
       }
     },
-    "node_modules/yallist": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
-      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
-    },
     "node_modules/yargs": {
       "version": "17.7.2",
       "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
diff --git a/pkgs/by-name/gr/graphite-cli/package.nix b/pkgs/by-name/gr/graphite-cli/package.nix
index df4f95b88bb50..a22f592a7bb1a 100644
--- a/pkgs/by-name/gr/graphite-cli/package.nix
+++ b/pkgs/by-name/gr/graphite-cli/package.nix
@@ -7,14 +7,14 @@
 
 buildNpmPackage rec {
   pname = "graphite-cli";
-  version = "1.3.4";
+  version = "1.3.5";
 
   src = fetchurl {
     url = "https://registry.npmjs.org/@withgraphite/graphite-cli/-/graphite-cli-${version}.tgz";
-    hash = "sha256-Rc/dj3r3EpMbxx9rYj4kXnstmUGLR46U+7v6n1jSaiQ=";
+    hash = "sha256-W/EFhlJeiZrBK9FG4DhR1iyU9YSSbaf/np2vQ8obA0M=";
   };
 
-  npmDepsHash = "sha256-w9d96SMLISPua9LMZscDjL7L8mGPO1RGyNjg8eU40hw=";
+  npmDepsHash = "sha256-X1FWYAuHouOXuAlgrbwgrbwaxKX5JS8iG0RnCPX5TvM=";
 
   postPatch = ''
     ln -s ${./package-lock.json} package-lock.json
diff --git a/pkgs/by-name/gr/grype/package.nix b/pkgs/by-name/gr/grype/package.nix
index 25cf7d472839b..2394ba2465722 100644
--- a/pkgs/by-name/gr/grype/package.nix
+++ b/pkgs/by-name/gr/grype/package.nix
@@ -93,6 +93,11 @@ buildGoModule rec {
     substituteInPlace grype/presenter/sarif/presenter_test.go \
       --replace-fail "Test_SarifIsValid" "SkipTest_SarifIsValid"
 
+    # May fail on NixOS, probably due bug in how syft handles tmpfs.
+    # See https://github.com/anchore/grype/issues/1822
+    substituteInPlace grype/distro/distro_test.go \
+      --replace-fail "Test_NewDistroFromRelease_Coverage" "SkipTest_NewDistroFromRelease_Coverage"
+
     # segfault
     rm grype/db/v5/namespace/cpe/namespace_test.go
   '';
diff --git a/pkgs/by-name/ha/havn/package.nix b/pkgs/by-name/ha/havn/package.nix
new file mode 100644
index 0000000000000..8612e7037abc1
--- /dev/null
+++ b/pkgs/by-name/ha/havn/package.nix
@@ -0,0 +1,37 @@
+{
+  lib,
+  fetchFromGitHub,
+  rustPlatform,
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "havn";
+  version = "0.1.11";
+
+  src = fetchFromGitHub {
+    owner = "mrjackwills";
+    repo = "havn";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-iotSSKId2y3Y7Dh8iSW1/y3xDbXHHPl6RQ3uA/+JdE8=";
+  };
+
+  cargoHash = "sha256-Tec1YeP1zwE8nurQOYxa9hzGBy3uxkjDUFlh0BppUTo=";
+
+  checkFlags = [
+    # Skip tests that require network access
+    "--skip=scanner::tests::test_scanner_1000_80_443"
+    "--skip=scanner::tests::test_scanner_all_80"
+    "--skip=scanner::tests::test_scanner_port_80"
+    "--skip=terminal::print::tests::test_terminal_monochrome_false"
+  ];
+
+  meta = {
+    homepage = "https://github.com/mrjackwills/havn";
+    description = "A fast configurable port scanner with reasonable defaults";
+    changelog = "https://github.com/mrjackwills/havn/blob/v${version}/CHANGELOG.md";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ luftmensch-luftmensch ];
+    mainProgram = "havn";
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/hd/hdos/package.nix b/pkgs/by-name/hd/hdos/package.nix
new file mode 100644
index 0000000000000..9737d12d273d4
--- /dev/null
+++ b/pkgs/by-name/hd/hdos/package.nix
@@ -0,0 +1,64 @@
+{
+  lib,
+  stdenvNoCC,
+  fetchurl,
+  makeWrapper,
+  # TODO: for jre 17+, we'll need a workaroud:
+  # https://gitlab.com/hdos/issues/-/issues/2004
+  openjdk11,
+  makeDesktopItem,
+  copyDesktopItems,
+  libGL,
+}:
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "hdos";
+  version = "8";
+
+  src = fetchurl {
+    url = "https://cdn.hdos.dev/launcher/v${finalAttrs.version}/hdos-launcher.jar";
+    hash = "sha256-00ddeR+ov6Tjrn+pscXoao4C0ek/iP9Hdlgq946pL8A=";
+  };
+
+  dontUnpack = true;
+
+  desktop = makeDesktopItem {
+    name = "HDOS";
+    type = "Application";
+    exec = "hdos";
+    icon = fetchurl {
+      url = "https://raw.githubusercontent.com/flathub/dev.hdos.HDOS/8e17cbecb06548fde2c023032e89ddf30befeabc/dev.hdos.HDOS.png";
+      hash = "sha256-pqLNJ0g7GCPotgEPfw2ZZOqapaCRAsJxB09INp6Y6gM=";
+    };
+    comment = "HDOS is a client for Old School RuneScape that emulates the era of 2008-2011 RuneScape HD";
+    desktopName = "HDOS";
+    genericName = "Oldschool Runescape";
+    categories = [ "Game" ];
+  };
+
+  nativeBuildInputs = [
+    makeWrapper
+    copyDesktopItems
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    makeWrapper ${lib.getExe openjdk11} $out/bin/hdos \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libGL ]}" \
+      --add-flags "-jar $src"
+    runHook postInstall
+  '';
+
+  desktopItems = [ finalAttrs.desktop ];
+
+  passthru.updateScript = ./update.sh;
+
+  meta = {
+    description = "High Detail Old School Runescape Client";
+    homepage = "https://hdos.dev";
+    changelog = "https://hdos.dev/changelog";
+    sourceProvenance = [ lib.sourceTypes.binaryBytecode ];
+    license = lib.licenses.unfree;
+    platforms = openjdk11.meta.platforms;
+    maintainers = [ lib.maintainers.misterio77 ];
+  };
+})
diff --git a/pkgs/by-name/hd/hdos/update.sh b/pkgs/by-name/hd/hdos/update.sh
new file mode 100755
index 0000000000000..e2effc6d0d9e2
--- /dev/null
+++ b/pkgs/by-name/hd/hdos/update.sh
@@ -0,0 +1,7 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p common-updater-scripts findutils
+
+set -euo pipefail
+
+version="$(curl -s https://cdn.hdos.dev/client/getdown.txt | grep 'launcher.version = ' | cut -d '=' -f2 | xargs)"
+update-source-version hdos "$version"
diff --git a/pkgs/by-name/hi/hieroglyphic/Cargo.lock b/pkgs/by-name/hi/hieroglyphic/Cargo.lock
new file mode 100644
index 0000000000000..4c0e63991d32b
--- /dev/null
+++ b/pkgs/by-name/hi/hieroglyphic/Cargo.lock
@@ -0,0 +1,1448 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.82"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519"
+
+[[package]]
+name = "async-channel"
+version = "2.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "136d4d23bcc79e27423727b36823d86233aad06dfea531837b038394d11e9928"
+dependencies = [
+ "concurrent-queue",
+ "event-listener",
+ "event-listener-strategy",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80"
+
+[[package]]
+name = "base32"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23ce669cd6c8588f79e15cf450314f9638f967fc5770ff1c7c1deb0925ea7cfa"
+
+[[package]]
+name = "base64"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff"
+
+[[package]]
+name = "bitflags"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
+
+[[package]]
+name = "block"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
+
+[[package]]
+name = "cairo-rs"
+version = "0.19.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2ac2a4d0e69036cf0062976f6efcba1aaee3e448594e6514bb2ddf87acce562"
+dependencies = [
+ "bitflags",
+ "cairo-sys-rs",
+ "glib",
+ "libc",
+ "thiserror",
+]
+
+[[package]]
+name = "cairo-sys-rs"
+version = "0.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd3bb3119664efbd78b5e6c93957447944f16bdbced84c17a9f41c7829b81e64"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.95"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d32a725bc159af97c3e629873bb9f88fb8cf8a4867175f76dc987815ea07c83b"
+
+[[package]]
+name = "cfg-expr"
+version = "0.15.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02"
+dependencies = [
+ "smallvec",
+ "target-lexicon",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "concurrent-queue"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
+dependencies = [
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+
+[[package]]
+name = "detexify"
+version = "0.4.0"
+source = "git+https://github.com/FineFindus/detexify-rust.git?rev=d3750a6531bc92826ad2a2bd013cc5fe06f9e3ae#d3750a6531bc92826ad2a2bd013cc5fe06f9e3ae"
+dependencies = [
+ "base32",
+ "base64",
+ "itertools 0.9.0",
+ "phf",
+ "phf_codegen",
+ "rayon",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "tuple",
+ "yaml-rust",
+]
+
+[[package]]
+name = "either"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2"
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "event-listener"
+version = "5.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d9944b8ca13534cdfb2800775f8dd4902ff3fc75a50101466decadfdf322a24"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "332f51cb23d20b0de8458b86580878211da09bcd4503cb579c225b3d124cabb3"
+dependencies = [
+ "event-listener",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "field-offset"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f"
+dependencies = [
+ "memoffset",
+ "rustc_version",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
+dependencies = [
+ "futures-core",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+
+[[package]]
+name = "futures-macro"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "futures-task"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+
+[[package]]
+name = "futures-util"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
+dependencies = [
+ "futures-core",
+ "futures-macro",
+ "futures-task",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "gdk-pixbuf"
+version = "0.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6a23f8a0b5090494fd04924662d463f8386cc678dd3915015a838c1a3679b92"
+dependencies = [
+ "gdk-pixbuf-sys",
+ "gio",
+ "glib",
+ "libc",
+]
+
+[[package]]
+name = "gdk-pixbuf-sys"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3dcbd04c1b2c4834cc008b4828bc917d062483b88d26effde6342e5622028f96"
+dependencies = [
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "gdk4"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9100b25604183f2fd97f55ef087fae96ab4934d7215118a35303e422688e6e4b"
+dependencies = [
+ "cairo-rs",
+ "gdk-pixbuf",
+ "gdk4-sys",
+ "gio",
+ "glib",
+ "libc",
+ "pango",
+]
+
+[[package]]
+name = "gdk4-sys"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d0b76874c40bb8d1c7d03a7231e23ac75fa577a456cd53af32ec17ec8f121626"
+dependencies = [
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "pkg-config",
+ "system-deps",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "gettext-rs"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e49ea8a8fad198aaa1f9655a2524b64b70eb06b2f3ff37da407566c93054f364"
+dependencies = [
+ "gettext-sys",
+ "locale_config",
+]
+
+[[package]]
+name = "gettext-sys"
+version = "0.21.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c63ce2e00f56a206778276704bbe38564c8695249fdc8f354b4ef71c57c3839d"
+dependencies = [
+ "cc",
+ "temp-dir",
+]
+
+[[package]]
+name = "gio"
+version = "0.19.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f91a0518c2ec539f099d3f945ab2d6a83ec372a9ef40a21906343b191182845"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-util",
+ "gio-sys",
+ "glib",
+ "libc",
+ "pin-project-lite",
+ "smallvec",
+ "thiserror",
+]
+
+[[package]]
+name = "gio-sys"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bcf8e1d9219bb294636753d307b030c1e8a032062cba74f493c431a5c8b81ce4"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+ "windows-sys",
+]
+
+[[package]]
+name = "glib"
+version = "0.19.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae1407b2ce171e654720be10d57d4054d3ff2f10a13d5b37e6819b41439832f7"
+dependencies = [
+ "bitflags",
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-task",
+ "futures-util",
+ "gio-sys",
+ "glib-macros",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "memchr",
+ "smallvec",
+ "thiserror",
+]
+
+[[package]]
+name = "glib-macros"
+version = "0.19.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8bba315e8ce8aa59631545358450f4962557e89b5f7db7442e7153b47037f71"
+dependencies = [
+ "heck",
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "glib-sys"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "630f097773d7c7a0bb3258df4e8157b47dc98bbfa0e60ad9ab56174813feced4"
+dependencies = [
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "gobject-sys"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c85e2b1080b9418dd0c58b498da3a5c826030343e0ef07bde6a955d28de54979"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "graphene-rs"
+version = "0.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99e4d388e96c5f29e2b2f67045d229ddf826d0a8d6d282f94ed3b34452222c91"
+dependencies = [
+ "glib",
+ "graphene-sys",
+ "libc",
+]
+
+[[package]]
+name = "graphene-sys"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "236ed66cc9b18d8adf233716f75de803d0bf6fc806f60d14d948974a12e240d0"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "pkg-config",
+ "system-deps",
+]
+
+[[package]]
+name = "gsk4"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c65036fc8f99579e8cb37b12487969b707ab23ec8ab953682ff347cbd15d396e"
+dependencies = [
+ "cairo-rs",
+ "gdk4",
+ "glib",
+ "graphene-rs",
+ "gsk4-sys",
+ "libc",
+ "pango",
+]
+
+[[package]]
+name = "gsk4-sys"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd24c814379f9c3199dc53e52253ee8d0f657eae389ab282c330505289d24738"
+dependencies = [
+ "cairo-sys-rs",
+ "gdk4-sys",
+ "glib-sys",
+ "gobject-sys",
+ "graphene-sys",
+ "libc",
+ "pango-sys",
+ "system-deps",
+]
+
+[[package]]
+name = "gtk4"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa82753b8c26277e4af1446c70e35b19aad4fb794a7b143859e7eeb9a4025d83"
+dependencies = [
+ "cairo-rs",
+ "field-offset",
+ "futures-channel",
+ "gdk-pixbuf",
+ "gdk4",
+ "gio",
+ "glib",
+ "graphene-rs",
+ "gsk4",
+ "gtk4-macros",
+ "gtk4-sys",
+ "libc",
+ "pango",
+]
+
+[[package]]
+name = "gtk4-macros"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "40300bf071d2fcd4c94eacc09e84ec6fe73129d2ceb635cf7e55b026b5443567"
+dependencies = [
+ "anyhow",
+ "proc-macro-crate",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "gtk4-sys"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0db1b104138f087ccdc81d2c332de5dd049b89de3d384437cc1093b17cd2da18"
+dependencies = [
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gdk4-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "graphene-sys",
+ "gsk4-sys",
+ "libc",
+ "pango-sys",
+ "system-deps",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+
+[[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+[[package]]
+name = "hieroglyphic"
+version = "1.1.0"
+dependencies = [
+ "async-channel",
+ "cairo-rs",
+ "detexify",
+ "gdk-pixbuf",
+ "gettext-rs",
+ "gtk4",
+ "itertools 0.12.1",
+ "libadwaita",
+ "pango",
+ "tracing",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
+dependencies = [
+ "equivalent",
+ "hashbrown",
+]
+
+[[package]]
+name = "itertools"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itertools"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libadwaita"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91b4990248b9e1ec5e72094a2ccaea70ec3809f88f6fd52192f2af306b87c5d9"
+dependencies = [
+ "gdk-pixbuf",
+ "gdk4",
+ "gio",
+ "glib",
+ "gtk4",
+ "libadwaita-sys",
+ "libc",
+ "pango",
+]
+
+[[package]]
+name = "libadwaita-sys"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23a748e4e92be1265cd9e93d569c0b5dfc7814107985aa6743d670ab281ea1a8"
+dependencies = [
+ "gdk4-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "gtk4-sys",
+ "libc",
+ "pango-sys",
+ "system-deps",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.153"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+
+[[package]]
+name = "linked-hash-map"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
+
+[[package]]
+name = "locale_config"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934"
+dependencies = [
+ "lazy_static",
+ "objc",
+ "objc-foundation",
+ "regex",
+ "winapi",
+]
+
+[[package]]
+name = "log"
+version = "0.4.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
+
+[[package]]
+name = "malloc_buf"
+version = "0.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memchr"
+version = "2.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
+
+[[package]]
+name = "memoffset"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "nu-ansi-term"
+version = "0.46.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
+dependencies = [
+ "overload",
+ "winapi",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.1.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
+dependencies = [
+ "num-traits 0.2.18",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "objc"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
+dependencies = [
+ "malloc_buf",
+]
+
+[[package]]
+name = "objc-foundation"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
+dependencies = [
+ "block",
+ "objc",
+ "objc_id",
+]
+
+[[package]]
+name = "objc_id"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
+dependencies = [
+ "objc",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "overload"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+
+[[package]]
+name = "pango"
+version = "0.19.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1264d13deb823cc652f26cfe59afb1ec4b9db2a5bd27c41b738c879cc1bfaa1"
+dependencies = [
+ "gio",
+ "glib",
+ "libc",
+ "pango-sys",
+]
+
+[[package]]
+name = "pango-sys"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f52ef6a881c19fbfe3b1484df5cad411acaaba29dbec843941c3110d19f340ea"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "parking"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
+
+[[package]]
+name = "phf"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
+dependencies = [
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_codegen"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526"
+dependencies = [
+ "phf_shared",
+ "rand",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "proc-macro-crate"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
+dependencies = [
+ "toml_edit 0.21.1",
+]
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.81"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+dependencies = [
+ "getrandom",
+ "libc",
+ "rand_chacha",
+ "rand_core",
+ "rand_hc",
+ "rand_pcg",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "rand_pcg"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "rayon"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "regex"
+version = "1.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
+
+[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "ryu"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
+
+[[package]]
+name = "semver"
+version = "1.0.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
+
+[[package]]
+name = "serde"
+version = "1.0.198"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.198"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.116"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "sharded-slab"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "siphasher"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
+
+[[package]]
+name = "slab"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "system-deps"
+version = "6.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349"
+dependencies = [
+ "cfg-expr",
+ "heck",
+ "pkg-config",
+ "toml",
+ "version-compare",
+]
+
+[[package]]
+name = "target-lexicon"
+version = "0.12.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
+
+[[package]]
+name = "temp-dir"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f227968ec00f0e5322f9b8173c7a0cbcff6181a0a5b28e9892491c286277231"
+
+[[package]]
+name = "thiserror"
+version = "1.0.59"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.59"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+]
+
+[[package]]
+name = "toml"
+version = "0.8.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit 0.22.12",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow 0.5.40",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef"
+dependencies = [
+ "indexmap",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow 0.6.6",
+]
+
+[[package]]
+name = "tracing"
+version = "0.1.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+dependencies = [
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+dependencies = [
+ "once_cell",
+ "valuable",
+]
+
+[[package]]
+name = "tracing-log"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
+dependencies = [
+ "log",
+ "once_cell",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-subscriber"
+version = "0.3.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
+dependencies = [
+ "nu-ansi-term",
+ "sharded-slab",
+ "smallvec",
+ "thread_local",
+ "tracing-core",
+ "tracing-log",
+]
+
+[[package]]
+name = "tuple"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "014493a81b7f393503eb896ab5b268532baff9359a7f4efe347dca3359f317f2"
+dependencies = [
+ "num-traits 0.1.43",
+ "serde",
+]
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "valuable"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+
+[[package]]
+name = "version-compare"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "wasi"
+version = "0.9.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
+
+[[package]]
+name = "winnow"
+version = "0.5.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winnow"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0c976aaaa0e1f90dbb21e9587cdaf1d9679a1cde8875c0d6bd83ab96a208352"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "yaml-rust"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
+dependencies = [
+ "linked-hash-map",
+]
diff --git a/pkgs/by-name/hi/hieroglyphic/package.nix b/pkgs/by-name/hi/hieroglyphic/package.nix
index f130488e95b2c..38b8f1d04feb9 100644
--- a/pkgs/by-name/hi/hieroglyphic/package.nix
+++ b/pkgs/by-name/hi/hieroglyphic/package.nix
@@ -15,6 +15,7 @@
   libadwaita,
   darwin,
   gettext,
+  appstream,
 }:
 
 let
@@ -22,20 +23,22 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "hieroglyphic";
-  version = "1.0.1";
-  # Note: 1.1.0 requires a higher gtk4 version. This requirement could be patched out.
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "FineFindus";
     repo = "Hieroglyphic";
     rev = "refs/tags/v${finalAttrs.version}";
-    hash = "sha256-Twx3yM71xn2FT3CbiFGbo2knGvb4MBl6VwjWlbjfks0=";
+    hash = "sha256-8UUFatJwtxqumhHd0aiPk6nKsaaF/jIIqMFxXye0X8U=";
   };
 
-  cargoDeps = rustPlatform.fetchCargoTarball {
-    inherit (finalAttrs) src;
-    name = "${finalAttrs.pname}-${finalAttrs.version}";
-    hash = "sha256-Se/YCi0e+Uoh5guDteLRXZYyk7et0NA8cv+vNpLxzx4=";
+  # We have to use importCargoLock here because `cargo vendor` currently doesn't support workspace
+  # inheritance within Git dependencies, but importCargoLock does.
+  cargoDeps = rustPlatform.importCargoLock {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "detexify-0.4.0" = "sha256-BPOHNr3pwu2il3/ERko+WHAWby4rPR49i62tXDlDRu0=";
+    };
   };
 
   nativeBuildInputs = [
@@ -47,6 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
     pkg-config
     wrapGAppsHook4
     desktop-file-utils
+    appstream
   ];
 
   buildInputs =
diff --git a/pkgs/by-name/hi/hifile/package.nix b/pkgs/by-name/hi/hifile/package.nix
index 4e06e08231dbf..43f6dfe82fa5d 100644
--- a/pkgs/by-name/hi/hifile/package.nix
+++ b/pkgs/by-name/hi/hifile/package.nix
@@ -1,12 +1,12 @@
 { lib, appimageTools, fetchurl }:
 
 let
-  version = "0.9.9.11";
+  version = "0.9.9.12";
   pname = "hifile";
 
   src = fetchurl {
     url = "https://www.hifile.app/files/HiFile-${version}.AppImage";
-    hash = "sha256-T/ig5Tfo58+yMp+kOEa96+QvABg6gTaIbdy53jWucvM=";
+    hash = "sha256-/1/5n+YDO1IhkUAjRIlr2NnNoU30u3gWbvhTLbN70q0=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/by-name/ho/home-manager/package.nix b/pkgs/by-name/ho/home-manager/package.nix
index b724d90de6eb2..90d5d7e11aead 100644
--- a/pkgs/by-name/ho/home-manager/package.nix
+++ b/pkgs/by-name/ho/home-manager/package.nix
@@ -16,14 +16,14 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "home-manager";
-  version = "0-unstable-2024-05-17";
+  version = "0-unstable-2024-05-23";
 
   src = fetchFromGitHub {
     name = "home-manager-source";
     owner = "nix-community";
     repo = "home-manager";
-    rev = "e3ad5108f54177e6520535768ddbf1e6af54b59d";
-    hash = "sha256-W9pyM3/vePxrffHtzlJI6lDS3seANQ+Nqp+i58O46LI=";
+    rev = "850cb322046ef1a268449cf1ceda5fd24d930b05";
+    hash = "sha256-ZxzffLuWRyuMrkVVq7wastNUqeO0HJL9xqfY1QsYaqo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/hy/hyprcursor/package.nix b/pkgs/by-name/hy/hyprcursor/package.nix
index eade6e69456bc..42885f20376f1 100644
--- a/pkgs/by-name/hy/hyprcursor/package.nix
+++ b/pkgs/by-name/hy/hyprcursor/package.nix
@@ -12,13 +12,13 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "hyprcursor";
-  version = "0.1.8";
+  version = "0.1.9";
 
   src = fetchFromGitHub {
     owner = "hyprwm";
     repo = "hyprcursor";
     rev = "refs/tags/v${finalAttrs.version}";
-    hash = "sha256-zJboXgWNpNhKyNF8H/3UYzWkx7w00TOCGKi3cwi+tsw=";
+    hash = "sha256-FIN1wMoyePBTtibCbaeJaoKNLuAYIGwLCWAYC1DJanw=";
   };
 
   patches = [
diff --git a/pkgs/by-name/hy/hyprlang/package.nix b/pkgs/by-name/hy/hyprlang/package.nix
index 8cb98c4e79cf2..729a4284b3957 100644
--- a/pkgs/by-name/hy/hyprlang/package.nix
+++ b/pkgs/by-name/hy/hyprlang/package.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "hyprlang";
-  version = "0.5.1";
+  version = "0.5.2";
 
   src = fetchFromGitHub {
     owner = "hyprwm";
     repo = "hyprlang";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-502X0Q0fhN6tJK7iEUA8CghONKSatW/Mqj4Wappd++0=";
+    hash = "sha256-Jq9hHYFL5nMHArWgJIcrDHGnzs/MjDi95cyB7cUZIJ4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/hy/hyprwayland-scanner/package.nix b/pkgs/by-name/hy/hyprwayland-scanner/package.nix
index 8a67503d804be..7dc783d82ab8c 100644
--- a/pkgs/by-name/hy/hyprwayland-scanner/package.nix
+++ b/pkgs/by-name/hy/hyprwayland-scanner/package.nix
@@ -8,13 +8,13 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "hyprwayland-scanner";
-  version = "0.3.8";
+  version = "0.3.4";
 
   src = fetchFromGitHub {
     owner = "hyprwm";
     repo = "hyprwayland-scanner";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-/DwglRvj4XF4ECdNtrCIbthleszAZBwOiXG5A6r0K/c=";
+    hash = "sha256-D0pg+ZRwrt4lavZ97Ca8clsgbPA3duLj8iEM7riaIFY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/ia/ianny/package.nix b/pkgs/by-name/ia/ianny/package.nix
index 6b7c3ca940e54..0dfb0e3dfdf7c 100644
--- a/pkgs/by-name/ia/ianny/package.nix
+++ b/pkgs/by-name/ia/ianny/package.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ianny";
-  version = "1.0.0beta.1";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "zefr0x";
     repo = "ianny";
     rev = "v${version}";
-    hash = "sha256-Bnr+wtusvTM690IISBs0wKj0ChBoIrMHyVZ8wdGgK08=";
+    hash = "sha256-1QkGs4qCzEA4K3H39QcRV+yINIeZRkjBBkASO69F7ik=";
   };
 
-  cargoHash = "sha256-/8C+hDq/z+h1uxO9prLbKHgyfMGrMODAs5/yUrutaAM=";
+  cargoHash = "sha256-gKCmiqHkCB7nP5XIaFi/8Wi/x5WFEHEmHczKiIDDxXE=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ dbus.dev ];
diff --git a/pkgs/by-name/ic/icewm/package.nix b/pkgs/by-name/ic/icewm/package.nix
index 2d606a0c3aac9..e19e9490a0edf 100644
--- a/pkgs/by-name/ic/icewm/package.nix
+++ b/pkgs/by-name/ic/icewm/package.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , expat
 , flac
@@ -50,10 +49,13 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-n0p8i6v6QreCFiChngHnx+5K4Djj34/+dmIA+bj/0cU=";
   };
 
+  strictDeps = true;
+
   nativeBuildInputs = [
     cmake
     perl
     pkg-config
+    gettext # msgmerge
   ];
 
   buildInputs = [
diff --git a/pkgs/by-name/ic/icloudpd/package.nix b/pkgs/by-name/ic/icloudpd/package.nix
index f4e9208838314..16620e77661b1 100644
--- a/pkgs/by-name/ic/icloudpd/package.nix
+++ b/pkgs/by-name/ic/icloudpd/package.nix
@@ -8,14 +8,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "icloudpd";
-  version = "1.17.5";
+  version = "1.18.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "icloud-photos-downloader";
     repo = "icloud_photos_downloader";
     rev = "v${version}";
-    hash = "sha256-1tyvoDAlh2UuPWDqA7mwC1v5kij3v3aBZBfIG/vluJo=";
+    hash = "sha256-QVfzGL/W7EmJvGXM8ge4sxWhSyshHYPykudMO1IcZJs=";
   };
 
   pythonRelaxDeps = true;
@@ -40,6 +40,7 @@ python3Packages.buildPythonApplication rec {
     certifi
     keyring
     keyrings-alt
+    typing-extensions
   ];
 
   nativeCheckInputs = with python3Packages; [
@@ -78,6 +79,6 @@ python3Packages.buildPythonApplication rec {
     description = "iCloud Photos Downloader";
     license = licenses.mit;
     mainProgram = "icloudpd";
-    maintainers = with maintainers; [ anpin Enzime ];
+    maintainers = with maintainers; [ anpin Enzime jnsgruk ];
   };
 }
diff --git a/pkgs/by-name/id/ideamaker/mimetypes.xml b/pkgs/by-name/id/ideamaker/mimetypes.xml
new file mode 100644
index 0000000000000..1bef9f862f731
--- /dev/null
+++ b/pkgs/by-name/id/ideamaker/mimetypes.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
+  <mime-type type="model/3mf">
+    <icon name="3MF"/>
+    <generic-icon name="3MF"/>
+  </mime-type>
+  <mime-type type="application/x-ideamaker">
+    <glob pattern="*.idea"/>
+    <comment xml:lang="en">IDEA project</comment>
+    <icon name="IDEA"/>
+    <generic-icon name="IDEA"/>
+  </mime-type>
+  <mime-type type="model/stl">
+    <icon name="STL"/>
+    <generic-icon name="STL"/>
+  </mime-type>
+  <mime-type type="model/obj">
+    <icon name="OBJ"/>
+    <generic-icon name="OBJ"/>
+  </mime-type>
+  <mime-type type="text/x.gcode">
+    <icon name="GCODE"/>
+    <generic-icon name="GCODE"/>
+  </mime-type>
+</mime-info>
diff --git a/pkgs/by-name/id/ideamaker/package.nix b/pkgs/by-name/id/ideamaker/package.nix
new file mode 100644
index 0000000000000..42f18c6dd669c
--- /dev/null
+++ b/pkgs/by-name/id/ideamaker/package.nix
@@ -0,0 +1,225 @@
+{
+  stdenv,
+  autoPatchelfHook,
+  cacert,
+  common-updater-scripts,
+  curl,
+  dpkg,
+  fetchurl,
+  fetchzip,
+  lib,
+  libcork,
+  libGLU,
+  libsForQt5,
+  makeDesktopItem,
+  openssl,
+  shared-mime-info,
+  writeShellApplication,
+}:
+stdenv.mkDerivation (finalAttrs: {
+  pname = "ideamaker";
+  version = "4.3.3.6560";
+  src =
+    let
+      semver = lib.strings.concatStringsSep "." (
+        lib.lists.init (builtins.splitVersion finalAttrs.version)
+      );
+    in
+    fetchurl {
+      url = "https://download.raise3d.com/${finalAttrs.pname}/release/${semver}/ideaMaker_${finalAttrs.version}-ubuntu_amd64.deb";
+      sha256 = "sha256-aTVWCTgnVKD16uhJUVz0vR7KPGJqCVj0xoL53Qi3IKM=";
+    };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    dpkg
+    shared-mime-info
+    libsForQt5.wrapQtAppsHook
+  ];
+
+  buildInputs =
+    let
+      # we need curl 7.47.0, as the app segfaults on launch in 7.47.1 and beyond
+      # (tested with 7.47.1, 7.50.3, 7.62, 7.79.1, and 8.7.1)
+      curl_7_47_0 =
+        let
+          openssl_1_0_1u = openssl.overrideAttrs (previous: {
+            version = "1.0.1u";
+            src = fetchurl {
+              url = "https://www.openssl.org/source/openssl-1.0.1u.tar.gz";
+              sha256 = "0fb7y9pwbd76pgzd7xzqfrzibmc0vf03sl07f34z5dhm2b5b84j3";
+            };
+            patches = [ ];
+            withDocs = false;
+            outputs = lib.lists.remove "doc" previous.outputs;
+            meta.knownVulnerabilities = [
+              "OpenSSL 1.0.1 reached its end of life 2016-12-31, see https://endoflife.software/applications/security-libraries/openssl."
+              "CVE-2021-4044"
+              "CVE-2016-7056"
+            ];
+          });
+        in
+        (curl.override {
+          gnutlsSupport = true;
+          gssSupport = false;
+          http2Support = false;
+          # while we use openssl, the configureFlag has since changed, so we manually set it below
+          opensslSupport = false;
+          pslSupport = false;
+          scpSupport = false;
+        }).overrideAttrs
+          (previous: {
+            version = "7.47.0";
+            src = fetchzip {
+              url = "https://curl.se/download/curl-7.47.0.tar.lzma";
+              sha256 = "sha256-XlZk1nJbSmiQp7jMSE2QRCY4C9w2us8BgosBSzlD4dE=";
+            };
+            configureFlags = previous.configureFlags ++ [
+              "--with-ca-bundle=${cacert}/etc/ssl/certs/ca-bundle.crt"
+              "--with-ssl=${lib.getLib openssl_1_0_1u}"
+            ];
+            patches = [ ];
+            # curl https://curl.se/docs/vuln-7.74.0.json | jq -r '.[].id' | sed 's/^/"/;s/$/"/'
+            meta.knownVulnerabilities = [
+              "CURL-CVE-2024-2398"
+              "CURL-CVE-2023-46218"
+              "CURL-CVE-2023-38546"
+              "CURL-CVE-2023-38545"
+              "CURL-CVE-2023-28322"
+              "CURL-CVE-2023-28321"
+              "CURL-CVE-2023-28320"
+              "CURL-CVE-2023-27538"
+              "CURL-CVE-2023-27536"
+              "CURL-CVE-2023-27535"
+              "CURL-CVE-2023-27534"
+              "CURL-CVE-2023-27533"
+              "CURL-CVE-2023-23916"
+              "CURL-CVE-2022-43552"
+              "CURL-CVE-2022-32221"
+              "CURL-CVE-2022-35252"
+              "CURL-CVE-2022-32208"
+              "CURL-CVE-2022-32207"
+              "CURL-CVE-2022-32206"
+              "CURL-CVE-2022-32205"
+              "CURL-CVE-2022-27782"
+              "CURL-CVE-2022-27781"
+              "CURL-CVE-2022-27776"
+              "CURL-CVE-2022-27775"
+              "CURL-CVE-2022-27774"
+              "CURL-CVE-2022-22576"
+              "CURL-CVE-2021-22947"
+              "CURL-CVE-2021-22946"
+              "CURL-CVE-2021-22945"
+              "CURL-CVE-2021-22926"
+              "CURL-CVE-2021-22925"
+              "CURL-CVE-2021-22924"
+              "CURL-CVE-2021-22923"
+              "CURL-CVE-2021-22922"
+              "CURL-CVE-2021-22898"
+              "CURL-CVE-2021-22897"
+              "CURL-CVE-2021-22890"
+              "CURL-CVE-2021-22876"
+            ];
+          });
+    in
+    [
+      (lib.getLib curl_7_47_0)
+      libcork
+      libGLU
+      libsForQt5.qtbase
+      libsForQt5.qtserialport
+      libsForQt5.quazip
+    ];
+
+  unpackPhase = ''
+    runHook preUnpack
+    dpkg-deb -x $src .
+    runHook postUnpack
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D usr/lib/x86_64-linux-gnu/ideamaker/ideamaker \
+      $out/bin/${finalAttrs.pname}
+
+    patchelf --replace-needed libquazip.so.1 libquazip1-qt5.so \
+      $out/bin/${finalAttrs.pname}
+
+    mimetypeDir=$out/share/icons/hicolor/128x128/mimetypes
+    mkdir -p ''$mimetypeDir
+    for file in usr/share/ideamaker/icons/*.ico; do
+      mv $file ''$mimetypeDir/''$(basename ''${file%.ico}).png
+    done
+    install -D ${./mimetypes.xml} \
+      $out/share/mime/packages/${finalAttrs.pname}.xml
+
+    install -D usr/share/ideamaker/icons/ideamaker-icon.png \
+      $out/share/pixmaps/${finalAttrs.pname}.png
+
+    ln -s ${finalAttrs.desktopItem}/share/applications $out/share/
+
+    runHook postInstall
+  '';
+
+  desktopItem = makeDesktopItem {
+    name = finalAttrs.pname;
+    exec = finalAttrs.pname;
+    icon = finalAttrs.pname;
+    desktopName = "Ideamaker";
+    comment = "ideaMaker - www.raise3d.com";
+    categories = [
+      "Qt"
+      "Utility"
+      "3DGraphics"
+      "Viewer"
+      "Engineering"
+    ];
+    genericName = finalAttrs.meta.description;
+    mimeTypes = [
+      "application/x-ideamaker"
+      "model/3mf"
+      "model/obj"
+      "model/stl"
+      "text/x.gcode"
+    ];
+    noDisplay = false;
+    startupNotify = true;
+    terminal = false;
+    type = "Application";
+  };
+
+  passthru.updateScript = lib.getExe (writeShellApplication {
+    name = "ideamaker-update-script";
+    runtimeInputs = [
+      curl
+      common-updater-scripts
+    ];
+    text = ''
+      set -eu -o pipefail
+
+      release_page=$(mktemp)
+      curl -s https://www.raise3d.com/download/ideamaker-all-versions/ > "$release_page"
+
+      latest_stable_version=$(
+        sed -nE '/Beta|Alpha/! s/.*Version ([0-9]+\.[0-9]+\.[0-9]+).*/\1/p' "$release_page" | \
+          head -n 1
+      )
+
+      latest_stable_build_number=$(
+        sed -nE "s/.*ideaMaker_$latest_stable_version\.([0-9]+).*/\1/p" "$release_page" | head -n 1
+      )
+
+      update-source-version ideamaker "$latest_stable_version.$latest_stable_build_number"
+    '';
+  });
+
+  meta = {
+    homepage = "https://www.raise3d.com/ideamaker/";
+    description = "Raise3D's 3D slicer software";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+    license = lib.licenses.unfree;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with lib.maintainers; [ cjshearer ];
+  };
+})
diff --git a/pkgs/applications/graphics/imgbrd-grabber/default.nix b/pkgs/by-name/im/imgbrd-grabber/package.nix
index 72d9d9cc1e01b..a3f083633bbe3 100644
--- a/pkgs/applications/graphics/imgbrd-grabber/default.nix
+++ b/pkgs/by-name/im/imgbrd-grabber/package.nix
@@ -1,77 +1,74 @@
-{ lib
-, stdenv
-, cmake
-, fetchFromGitHub
-, wrapQtAppsHook
-, qtmultimedia
-, qttools
-, qtdeclarative
-, qtnetworkauth
-, qtbase
-, makeWrapper
-, catch2
-, nodejs
-, libpulseaudio
-, openssl
-, rsync
-, typescript
+{
+  lib,
+  stdenv,
+  cmake,
+  fetchFromGitHub,
+  makeWrapper,
+  catch2,
+  nodejs,
+  libpulseaudio,
+  openssl,
+  rsync,
+  typescript,
+  qt6,
 }:
-
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "imgbrd-grabber";
-  version = "7.10.0";
+  version = "7.12.2";
 
   src = fetchFromGitHub {
     owner = "Bionus";
     repo = "imgbrd-grabber";
-    rev = "v${version}";
-    sha256 = "sha256-AT6pN2do0LlH6xAXKcFQv+oderD88/EiG1JnCw6kOOg=";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-6XfIaASfbvdPovtdDEJtsk4pEL4Dhmyq8ml4X7KZ4DE=";
     fetchSubmodules = true;
   };
 
-  buildInputs = [
-    openssl
-    libpulseaudio
-    typescript
-  ];
+  buildInputs =
+    with qt6;
+    [
+      qtbase
+      qtdeclarative
+      qttools
+      qtnetworkauth
+      qtmultimedia
+    ]
+    ++ [
+      openssl
+      libpulseaudio
+      typescript
+      nodejs
+    ];
 
   nativeBuildInputs = [
     makeWrapper
-    qtmultimedia
-    qtbase
-    qtdeclarative
-    qttools
-    qtnetworkauth
-    nodejs
+    qt6.wrapQtAppsHook
     cmake
-    wrapQtAppsHook
   ];
 
   extraOutputsToLink = [ "doc" ];
 
-  postPatch = ''
+  preBuild = ''
+    export HOME=$TMPDIR
+
     # the package.sh script provides some install helpers
     # using this might make it easier to maintain/less likely for the
     # install phase to fail across version bumps
-    patchShebangs ./scripts/package.sh
+    patchShebangs ../scripts/package.sh
+  '';
+
+  postPatch = ''
 
     # ensure the script uses the rsync package from nixpkgs
-    substituteInPlace ../scripts/package.sh --replace "rsync" "${rsync}/bin/rsync"
+    substituteInPlace ../scripts/package.sh --replace-fail "rsync" "${lib.getExe rsync}"
 
 
     # the npm build step only runs typescript
     # run this step directly so it doesn't try and fail to download the unnecessary node_modules, etc.
-    substituteInPlace ./sites/CMakeLists.txt --replace "npm install" "npm run build"
-
-    # remove the vendored catch2
-    rm -rf tests/src/vendor/catch
+    substituteInPlace ./sites/CMakeLists.txt --replace-fail "npm install" "npm run build"
 
     # link the catch2 sources from nixpkgs
-    ln -sf ${catch2.src} tests/src/vendor/catch
-  '';
-
-  preBuild = ''
-    export HOME=$TMPDIR
+    ln -sf ${catch2.src} tests/src/
   '';
 
   postInstall = ''
@@ -88,13 +85,16 @@ stdenv.mkDerivation rec {
     ln -s $out/share/Grabber/Grabber-cli $out/bin/Grabber-cli
   '';
 
-  sourceRoot = "${src.name}/src";
+  sourceRoot = "${finalAttrs.src.name}/src";
 
-  meta = with lib; {
+  meta = {
     description = "Very customizable imageboard/booru downloader with powerful filenaming features";
-    license = licenses.asl20;
+    license = lib.licenses.asl20;
     homepage = "https://bionus.github.io/imgbrd-grabber/";
     mainProgram = "Grabber";
-    maintainers = [ maintainers.evanjs ];
+    maintainers = with lib.maintainers; [
+      evanjs
+      luftmensch-luftmensch
+    ];
   };
-}
+})
diff --git a/pkgs/by-name/im/imhex/package.nix b/pkgs/by-name/im/imhex/package.nix
index d10ffb8a56e92..da3a2b4e20fa4 100644
--- a/pkgs/by-name/im/imhex/package.nix
+++ b/pkgs/by-name/im/imhex/package.nix
@@ -3,7 +3,6 @@
 , cmake
 , llvm
 , fetchFromGitHub
-, fetchpatch
 , mbedtls
 , gtk3
 , pkg-config
diff --git a/pkgs/by-name/im/immich-go/package.nix b/pkgs/by-name/im/immich-go/package.nix
index 439c4768ea15e..9d8cfda974e15 100644
--- a/pkgs/by-name/im/immich-go/package.nix
+++ b/pkgs/by-name/im/immich-go/package.nix
@@ -1,13 +1,13 @@
 { lib, buildGoModule, fetchFromGitHub, nix-update-script, testers, immich-go }:
 buildGoModule rec {
   pname = "immich-go";
-  version = "0.14.1";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "simulot";
     repo = "immich-go";
     rev = "${version}";
-    hash = "sha256-5dgEyg55ffJLH8zxp6mFVsUqAzyPnY18XnX+jMethUc=";
+    hash = "sha256-gZVjs0aFwlx5joX7iqy7uDd23d/4LjP/t6u7z8X/P8o=";
 
     # Inspired by: https://github.com/NixOS/nixpkgs/blob/f2d7a289c5a5ece8521dd082b81ac7e4a57c2c5c/pkgs/applications/graphics/pdfcpu/default.nix#L20-L32
     # The intention here is to write the information into files in the `src`'s
diff --git a/pkgs/by-name/in/inja/package.nix b/pkgs/by-name/in/inja/package.nix
new file mode 100644
index 0000000000000..01310b2aac143
--- /dev/null
+++ b/pkgs/by-name/in/inja/package.nix
@@ -0,0 +1,46 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  cmake,
+  nlohmann_json,
+  doctest,
+  callPackage,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "inja";
+  version = "3.4.0";
+
+  src = fetchFromGitHub {
+    owner = "pantor";
+    repo = "inja";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-B1EaR+qN32nLm3rdnlZvXQ/dlSd5XSc+5+gzBTPzUZU=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  propagatedBuildInputs = [ nlohmann_json ];
+
+  cmakeFlags = [
+    (lib.cmakeBool "INJA_BUILD_TESTS" finalAttrs.finalPackage.doCheck)
+    (lib.cmakeBool "INJA_USE_EMBEDDED_JSON" false)
+    (lib.cmakeBool "BUILD_BENCHMARK" false)
+  ];
+
+  checkInputs = [ doctest ];
+  doCheck = true;
+
+  passthru.tests = {
+    simple-cmake = callPackage ./simple-cmake-test { };
+  };
+
+  meta = {
+    changelog = "https://github.com/pantor/inja/releases/tag/v${finalAttrs.version}";
+    description = "Template engine for modern C++, loosely inspired by jinja for python";
+    homepage = "https://github.com/pantor/inja";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ xokdvium ];
+    platforms = lib.platforms.all;
+  };
+})
diff --git a/pkgs/by-name/in/inja/simple-cmake-test/CMakeLists.txt b/pkgs/by-name/in/inja/simple-cmake-test/CMakeLists.txt
new file mode 100644
index 0000000000000..68018e113924e
--- /dev/null
+++ b/pkgs/by-name/in/inja/simple-cmake-test/CMakeLists.txt
@@ -0,0 +1,5 @@
+project(inja-simple-cmake-test LANGUAGES CXX)
+find_package(inja REQUIRED)
+add_executable(simple-cmake-test main.cpp)
+target_link_libraries(simple-cmake-test PRIVATE pantor::inja)
+install(TARGETS simple-cmake-test DESTINATION bin)
diff --git a/pkgs/by-name/in/inja/simple-cmake-test/default.nix b/pkgs/by-name/in/inja/simple-cmake-test/default.nix
new file mode 100644
index 0000000000000..347563d471a65
--- /dev/null
+++ b/pkgs/by-name/in/inja/simple-cmake-test/default.nix
@@ -0,0 +1,27 @@
+{
+  stdenv,
+  cmake,
+  inja,
+  lib,
+}:
+
+stdenv.mkDerivation {
+  name = "inja-simple-cmake-test";
+  src = lib.fileset.toSource {
+    root = ./.;
+    fileset = lib.fileset.unions [
+      ./main.cpp
+      ./CMakeLists.txt
+    ];
+  };
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ inja ];
+  doInstallCheck = true;
+  installCheckPhase = ''
+    if [[ `$out/bin/simple-cmake-test` != "Hello world!" ]]; then
+      echo "ERROR: $out/bin/simple-cmake-test does not output 'Hello world!'"
+      exit 1
+    fi
+  '';
+  meta.timeout = 30;
+}
diff --git a/pkgs/by-name/in/inja/simple-cmake-test/main.cpp b/pkgs/by-name/in/inja/simple-cmake-test/main.cpp
new file mode 100644
index 0000000000000..4ec66678d2b7f
--- /dev/null
+++ b/pkgs/by-name/in/inja/simple-cmake-test/main.cpp
@@ -0,0 +1,8 @@
+#include <inja/inja.hpp>
+#include <iostream>
+#include <nlohmann/json.hpp>
+
+int main() {
+  nlohmann::json data = {{"name", "world"}};
+  inja::render_to(std::cout, "Hello {{ name }}!", data);
+}
diff --git a/pkgs/by-name/in/inotify-info/package.nix b/pkgs/by-name/in/inotify-info/package.nix
index ea7235917caf9..0405400b7f6da 100644
--- a/pkgs/by-name/in/inotify-info/package.nix
+++ b/pkgs/by-name/in/inotify-info/package.nix
@@ -5,15 +5,17 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "inotify-info";
-  version = "0.0.1";
+  version = "0.0.2";
 
   src = fetchFromGitHub {
     owner = "mikesart";
     repo = "inotify-info";
     rev = "refs/tags/v${finalAttrs.version}";
-    hash = "sha256-fsUvIXWnP6Iy9Db0wDG+ntSw6mUt0MQOTJA5vFxhH+U=";
+    hash = "sha256-6EY2cyFWfMy1hPDdDGwIzSE92VkAPo0p5ZCG+B1wVYY=";
   };
 
+  buildFlags = ["INOTIFYINFO_VERSION=v${finalAttrs.version}"];
+
   installPhase = ''
     runHook preInstall
     install -Dm755 _release/inotify-info $out/bin/inotify-info
diff --git a/pkgs/by-name/in/intune-portal/package.nix b/pkgs/by-name/in/intune-portal/package.nix
index c517718244463..48b945c833c35 100644
--- a/pkgs/by-name/in/intune-portal/package.nix
+++ b/pkgs/by-name/in/intune-portal/package.nix
@@ -23,11 +23,11 @@
 }:
 stdenv.mkDerivation rec {
   pname = "intune-portal";
-  version = "1.2404.23-jammy";
+  version = "1.2404.25-jammy";
 
   src = fetchurl {
     url = "https://packages.microsoft.com/ubuntu/22.04/prod/pool/main/i/${pname}/${pname}_${version}_amd64.deb";
-    hash = "sha256-zAH35iF+3YpDNGo3UhmzL4pRJXlEhG1PaT71qnRtpAg=";
+    hash = "sha256-ZRJdhhDwXeOjIx7Ml4VvPUOotnJQ9f73nsYzgm6SQC8=";
   };
 
   nativeBuildInputs = [ dpkg ];
diff --git a/pkgs/by-name/ja/jailer/package.nix b/pkgs/by-name/ja/jailer/package.nix
index 867d813b1f410..b47c51a78d170 100644
--- a/pkgs/by-name/ja/jailer/package.nix
+++ b/pkgs/by-name/ja/jailer/package.nix
@@ -13,13 +13,13 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   name = "jailer";
-  version = "16.1.4";
+  version = "16.2";
 
   src = fetchFromGitHub {
     owner = "Wisser";
     repo = "Jailer";
-    rev = "dcde48b2e0c7b68cc1b6f73c80fde06fdf31fdc6";
-    sha256 = "sha256-cPOWW2z44vCc/Fw1zYZUsYafgKr82e0g+K0Db5A9F5M=";
+    rev = "bc00c6883bac0d09b549e35a10e202da477e4cb1";
+    sha256 = "sha256-nXxTKbhvrBlorNqiF3wZDEgf1VrBamWw8ZSQSUqpGT8=";
   };
 
 
diff --git a/pkgs/by-name/ja/jan/package.nix b/pkgs/by-name/ja/jan/package.nix
index af4fc834ea16f..faa0c19d4ae56 100644
--- a/pkgs/by-name/ja/jan/package.nix
+++ b/pkgs/by-name/ja/jan/package.nix
@@ -5,10 +5,10 @@
 
 let
   pname = "jan";
-  version = "0.4.13";
+  version = "0.4.14";
   src = fetchurl {
     url = "https://github.com/janhq/jan/releases/download/v${version}/jan-linux-x86_64-${version}.AppImage";
-    hash = "sha256-6RjpkIMYScgJ2xTS7b2w90ixEm4ZHw8Izecjho93sRE=";
+    hash = "sha256-nqTvLZ0upNI82R4QaHTKaGQLVC3eHMVEHoOZ4JvXR1E=";
   };
 
   appimageContents = appimageTools.extractType2 { inherit pname version src; };
diff --git a/pkgs/by-name/ja/jasper/package.nix b/pkgs/by-name/ja/jasper/package.nix
index 34e517c81eaba..11a298208f567 100644
--- a/pkgs/by-name/ja/jasper/package.nix
+++ b/pkgs/by-name/ja/jasper/package.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "jasper";
-  version = "4.2.3";
+  version = "4.2.4";
 
   src = fetchFromGitHub {
     owner = "jasper-software";
     repo = "jasper";
     rev = "version-${finalAttrs.version}";
-    hash = "sha256-Hmmoe1lzUR1DBwgg30KGfsIDzSNe5shghaieEXX/am4=";
+    hash = "sha256-YliWVuNEtq/Rgra+WnorSOFoAYwYmPmPRv0r734FJ1c=";
   };
 
   outputs = [ "out" "dev" "doc" "lib" "man" ];
diff --git a/pkgs/by-name/jn/jnv/package.nix b/pkgs/by-name/jn/jnv/package.nix
index 740a536be0dfa..558094cb31000 100644
--- a/pkgs/by-name/jn/jnv/package.nix
+++ b/pkgs/by-name/jn/jnv/package.nix
@@ -7,16 +7,16 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "jnv";
-  version = "0.2.2";
+  version = "0.2.3";
 
   src = fetchFromGitHub {
     owner = "ynqa";
     repo = "jnv";
     rev = "v${version}";
-    hash = "sha256-IvpbVcTGGD7cn59SPlcqMuu9YXB3ur3AFaoWDVADoqI=";
+    hash = "sha256-yAyhXXWXsFkQq34aCG+IwE+wkYicu4vmOmX1uSs3R4o=";
   };
 
-  cargoHash = "sha256-dqWQi0DYl2P1qPzmtYOcarnfu2bfSnLk/SVQq5d+Z8Y=";
+  cargoHash = "sha256-PcEQSp4GrMRT6zjbINSZ3lojkpvCyZC2fRHqnG6aPOw=";
 
   nativeBuildInputs = [
     autoconf
diff --git a/pkgs/by-name/jq/jq-zsh-plugin/package.nix b/pkgs/by-name/jq/jq-zsh-plugin/package.nix
new file mode 100644
index 0000000000000..3e06f6d58872f
--- /dev/null
+++ b/pkgs/by-name/jq/jq-zsh-plugin/package.nix
@@ -0,0 +1,44 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fzf,
+  jq,
+  nix-update-script,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "jq-zsh-plugin";
+  version = "0.6.1";
+
+  src = fetchFromGitHub {
+    owner = "reegnz";
+    repo = "jq-zsh-plugin";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-q/xQZ850kifmd8rCMW+aAEhuA43vB9ZAW22sss9e4SE=";
+  };
+
+  strictDeps = true;
+  dontConfigure = true;
+  dontBuild = true;
+  installPhase = ''
+    mkdir -p $out/share/jq-zsh-plugin/
+    cp jq.plugin.zsh $out/share/jq-zsh-plugin
+    cp -r bin/ $out/share/jq-zsh-plugin
+    substituteInPlace $out/share/jq-zsh-plugin/bin/jq-repl --replace-fail "fzf \\" "${fzf}/bin/fzf \\"
+    substituteInPlace $out/share/jq-zsh-plugin/jq.plugin.zsh --replace-fail ":-jq" ":-${jq}/bin/jq"
+    substituteInPlace $out/share/jq-zsh-plugin/bin/jq-paths --replace-fail ":-jq" ":-${jq}/bin/jq"
+    substituteInPlace $out/share/jq-zsh-plugin/bin/jq-repl --replace-fail ":-jq" ":-${jq}/bin/jq"
+    substituteInPlace $out/share/jq-zsh-plugin/bin/jq-repl-preview --replace-fail ":-jq" ":-${jq}/bin/jq"
+  '';
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "Interactively build jq expressions in Zsh";
+    homepage = "https://github.com/reegnz/jq-zsh-plugin";
+    license = lib.licenses.mit;
+    platforms = lib.platforms.unix;
+    maintainers = [ lib.maintainers.vinnymeller ];
+  };
+}
diff --git a/pkgs/by-name/ju/junest/package.nix b/pkgs/by-name/ju/junest/package.nix
new file mode 100644
index 0000000000000..a74a9815a81c5
--- /dev/null
+++ b/pkgs/by-name/ju/junest/package.nix
@@ -0,0 +1,33 @@
+{ lib, fetchFromGitHub, stdenvNoCC, wget }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "junest";
+  version = "7.4.8";
+
+  src = fetchFromGitHub {
+    owner = "fsquillace";
+    repo = "junest";
+    rev = "refs/tags/${version}";
+    hash = "sha256-9yrQ721fHUxXEZ0mh27SB8yoUH67ltOktUq3kr4qrBc=";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mkdir -p $out/lib
+    cp -r $src/bin/ $out/
+    cp -r $src/lib/ $out/
+    substituteInPlace $out/lib/core/common.sh --replace-fail "wget" ${lib.getExe wget}
+  '';
+
+  meta = {
+    description = "Arch distro that runs on top of another without root";
+    homepage = "https://github.com/fsquillace/junest";
+    license = lib.licenses.gpl3Only;
+    mainProgram = "junest";
+    maintainers = with lib.maintainers; [ jdev082 ];
+    platforms = lib.platforms.linux;
+  };
+}
+
diff --git a/pkgs/by-name/ka/kanidm/package.nix b/pkgs/by-name/ka/kanidm/package.nix
index 430a2d6d66b2b..e034d6ee9680b 100644
--- a/pkgs/by-name/ka/kanidm/package.nix
+++ b/pkgs/by-name/ka/kanidm/package.nix
@@ -71,6 +71,11 @@ rustPlatform.buildRustPackage rec {
     cp -r server/web_ui/pkg $out/ui
   '';
 
+  # Not sure what pathological case it hits when compiling tests with LTO,
+  # but disabling it takes the total `cargo check` time from 40 minutes to
+  # around 5 on a 16-core machine.
+  cargoTestFlags = ["--config" ''profile.release.lto="off"''];
+
   preFixup = ''
     installShellCompletion \
       --bash $releaseDir/build/completions/*.bash \
diff --git a/pkgs/by-name/ka/karmor/package.nix b/pkgs/by-name/ka/karmor/package.nix
index b87c022d67a8e..30e943bd322f8 100644
--- a/pkgs/by-name/ka/karmor/package.nix
+++ b/pkgs/by-name/ka/karmor/package.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "karmor";
-  version = "1.2.1";
+  version = "1.2.2";
 
   src = fetchFromGitHub {
     owner = "kubearmor";
     repo = "kubearmor-client";
     rev = "v${version}";
-    hash = "sha256-NNCV/+Jh/tjc7SC4E9/gtiVthVmAxZBOyW3MFISbkH4=";
+    hash = "sha256-LdUu56y9jRPFOF/Tfo9GZYmOlZIUs7/byWj2yQw7BE4=";
   };
 
-  vendorHash = "sha256-CKOZxmUVZWFb7cc+amPwyMv5ScujWeipEqm95m63SYk=";
+  vendorHash = "sha256-r3Fy4nOjlvyHcvztSfOOE6PmOhhNcVdoIq+ie5jqwkw=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/by-name/ki/kikit/solidpython/default.nix b/pkgs/by-name/ki/kikit/solidpython/default.nix
index c03637907a362..2244166bbfeac 100644
--- a/pkgs/by-name/ki/kikit/solidpython/default.nix
+++ b/pkgs/by-name/ki/kikit/solidpython/default.nix
@@ -1,15 +1,11 @@
 # SolidPython is an unmaintained library with old dependencies.
 { buildPythonPackage
-, callPackage
 , fetchFromGitHub
-, fetchFromGitLab
-, fetchpatch
 , lib
 , pythonRelaxDepsHook
 
 , poetry-core
 , prettytable
-, pypng
 , ply
 , setuptools
 , euclid3
diff --git a/pkgs/by-name/ko/koboldcpp/package.nix b/pkgs/by-name/ko/koboldcpp/package.nix
new file mode 100644
index 0000000000000..e0c5aec6a2df6
--- /dev/null
+++ b/pkgs/by-name/ko/koboldcpp/package.nix
@@ -0,0 +1,154 @@
+{
+  lib,
+  fetchFromGitHub,
+  stdenv,
+  makeWrapper,
+  gitUpdater,
+  python311Packages,
+  tk,
+
+  darwin,
+
+  koboldLiteSupport ? true,
+
+  config,
+  cudaPackages ? { },
+
+  openblasSupport ? !stdenv.isDarwin,
+  openblas,
+
+  cublasSupport ? config.cudaSupport,
+
+  clblastSupport ? stdenv.isLinux,
+  clblast,
+  ocl-icd,
+
+  vulkanSupport ? true,
+  vulkan-loader,
+
+  metalSupport ? stdenv.isDarwin && stdenv.isAarch64,
+
+  # You can find list of x86_64 options here: https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html
+  # For ARM here: https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html
+  # If you set "march" to "native", specify "mtune" as well; otherwise, it will be set to "generic". (credit to: https://lemire.me/blog/2018/07/25/it-is-more-complicated-than-i-thought-mtune-march-in-gcc/)
+  # For example, if you have an AMD Ryzen CPU, you will set "march" to "x86-64" and "mtune" to "znver2"
+  march ? "",
+  mtune ? "",
+}:
+
+let
+  makeBool = option: bool: (if bool then "${option}=1" else "");
+
+  effectiveStdenv = if cublasSupport then cudaPackages.backendStdenv else stdenv;
+in
+effectiveStdenv.mkDerivation (finalAttrs: {
+  pname = "koboldcpp";
+  version = "1.66";
+
+  src = fetchFromGitHub {
+    owner = "LostRuins";
+    repo = "koboldcpp";
+    rev = "refs/tags/v${finalAttrs.version}";
+    sha256 = "sha256-3Gsbfxh3K3xa6Ofs9M9cfKWg0sxrolL8Ivx40iqvlA8=";
+  };
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [
+    makeWrapper
+    python311Packages.wrapPython
+  ];
+
+  pythonInputs = builtins.attrValues { inherit (python311Packages) tkinter customtkinter packaging; };
+
+  buildInputs =
+    [ tk ]
+    ++ finalAttrs.pythonInputs
+    ++ lib.optionals effectiveStdenv.isDarwin [
+      darwin.apple_sdk_11_0.frameworks.Accelerate
+      darwin.apple_sdk_11_0.frameworks.CoreVideo
+      darwin.apple_sdk_11_0.frameworks.CoreGraphics
+      darwin.apple_sdk_11_0.frameworks.CoreServices
+    ]
+    ++ lib.optionals metalSupport [
+      darwin.apple_sdk_11_0.frameworks.MetalKit
+      darwin.apple_sdk_11_0.frameworks.Foundation
+      darwin.apple_sdk_11_0.frameworks.MetalPerformanceShaders
+    ]
+    ++ lib.optionals openblasSupport [ openblas ]
+    ++ lib.optionals cublasSupport [
+      cudaPackages.libcublas
+      cudaPackages.cuda_nvcc
+      cudaPackages.cuda_cudart
+      cudaPackages.cuda_cccl
+    ]
+    ++ lib.optionals clblastSupport [
+      clblast
+      ocl-icd
+    ]
+    ++ lib.optionals vulkanSupport [ vulkan-loader ];
+
+  pythonPath = finalAttrs.pythonInputs;
+
+  darwinLdFlags = lib.optionals stdenv.isDarwin [
+    "-F${darwin.apple_sdk_11_0.frameworks.CoreServices}/Library/Frameworks"
+    "-F${darwin.apple_sdk_11_0.frameworks.Accelerate}/Library/Frameworks"
+    "-framework CoreServices"
+    "-framework Accelerate"
+  ];
+  metalLdFlags = lib.optionals metalSupport [
+    "-F${darwin.apple_sdk_11_0.frameworks.Foundation}/Library/Frameworks"
+    "-F${darwin.apple_sdk_11_0.frameworks.Metal}/Library/Frameworks"
+    "-framework Foundation"
+    "-framework Metal"
+  ];
+
+  env.NIX_LDFLAGS = lib.concatStringsSep " " (finalAttrs.darwinLdFlags ++ finalAttrs.metalLdFlags);
+
+  env.NIX_CFLAGS_COMPILE =
+    lib.optionalString (march != "") "-march=${march}" + lib.optionalString (mtune != "") "-mtune=${mtune}";
+
+  makeFlags = [
+    (makeBool "LLAMA_OPENBLAS" openblasSupport)
+    (makeBool "LLAMA_CUBLAS" cublasSupport)
+    (makeBool "LLAMA_CLBLAST" clblastSupport)
+    (makeBool "LLAMA_VULKAN" vulkanSupport)
+    (makeBool "LLAMA_METAL" metalSupport)
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p "$out/bin"
+
+    install -Dm755 koboldcpp.py "$out/bin/koboldcpp.unwrapped"
+    cp *.so "$out/bin"
+    cp *.embd "$out/bin"
+
+    ${lib.optionalString (!koboldLiteSupport) ''
+      rm "$out/bin/kcpp_docs.embd"
+      rm "$out/bin/klite.embd"
+    ''}
+
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    wrapPythonProgramsIn "$out/bin" "$pythonPath"
+    makeWrapper "$out/bin/koboldcpp.unwrapped" "$out/bin/koboldcpp" \
+    --prefix PATH ${lib.makeBinPath [ tk ]}
+  '';
+
+  passthru.updateScript = gitUpdater { rev-prefix = "v"; };
+
+  meta = {
+    description = "A way to run various GGML and GGUF models";
+    license = lib.licenses.agpl3Only;
+    maintainers = with lib.maintainers; [
+      maxstrid
+      donteatoreo
+    ];
+    mainProgram = "koboldcpp";
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/pkgs/by-name/ko/kor/package.nix b/pkgs/by-name/ko/kor/package.nix
index a04132f991306..a085106c23a79 100644
--- a/pkgs/by-name/ko/kor/package.nix
+++ b/pkgs/by-name/ko/kor/package.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kor";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "yonahd";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-OZSec1S583jVGqSET0y4WhKxWf9CyLKuhEwu39Zg9vE=";
+    hash = "sha256-4l19/vIvcgt7g3o6IWGHhIsXurAy6Ts4fJjs8OMZalk=";
   };
 
-  vendorHash = "sha256-4XcmaW4H+IgZZx3PuG0aimqSG1eUnRtcbebKXuencnQ=";
+  vendorHash = "sha256-NPmsXS7P+pCF97N8x3nQhCRoHJLMO5plNtcUqxxexVE=";
 
   preCheck = ''
     HOME=$(mktemp -d)
diff --git a/pkgs/by-name/ks/ks/package.nix b/pkgs/by-name/ks/ks/package.nix
new file mode 100644
index 0000000000000..ab80aa2b6bc12
--- /dev/null
+++ b/pkgs/by-name/ks/ks/package.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "ks";
+  version = "0.4.0";
+
+  src = fetchFromGitHub {
+    owner = "loteoo";
+    repo = "ks";
+    rev = "${finalAttrs.version}";
+    hash = "sha256-jGo0u0wiwOc2n8x0rvDIg1suu6vJQ5UCfslYD5vUlyI=";
+  };
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp ${finalAttrs.pname} $out/bin/
+  '';
+
+  meta = {
+    mainProgram = "ks";
+    homepage = "https://github.com/loteoo/ks";
+    description = "Command-line secrets manager powered by macOS keychains";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ ivankovnatsky ];
+    platforms = lib.platforms.darwin;
+  };
+})
diff --git a/pkgs/by-name/ku/kube-state-metrics/package.nix b/pkgs/by-name/ku/kube-state-metrics/package.nix
new file mode 100644
index 0000000000000..f7e0b0110c8da
--- /dev/null
+++ b/pkgs/by-name/ku/kube-state-metrics/package.nix
@@ -0,0 +1,32 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+}:
+
+buildGoModule rec {
+  pname = "kube-state-metrics";
+  version = "2.12.0";
+
+  src = fetchFromGitHub {
+    owner = "kubernetes";
+    repo = "kube-state-metrics";
+    rev = "v${version}";
+    hash = "sha256-EBSlufgzT4zgxTO5B0/RHHJJ2GgtU3U9ypd1QjC3knE=";
+  };
+
+  vendorHash = "sha256-A/oiFEWM3TOtk4V3xpehJ+5oKSyzYKZHVlp3wjykFRA=";
+
+  excludedPackages = [
+    "./tests/e2e"
+    "./tools"
+  ];
+
+  meta = {
+    homepage = "https://github.com/kubernetes/kube-state-metrics";
+    description = "Add-on agent to generate and expose k8s cluster-level metrics";
+    license = lib.licenses.asl20;
+    maintainers = [ lib.maintainers.eskytthe ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/pkgs/by-name/ky/kyverno-chainsaw/package.nix b/pkgs/by-name/ky/kyverno-chainsaw/package.nix
index d20c7308b4236..082781d026959 100644
--- a/pkgs/by-name/ky/kyverno-chainsaw/package.nix
+++ b/pkgs/by-name/ky/kyverno-chainsaw/package.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kyverno-chainsaw";
-  version = "0.2.1";
+  version = "0.2.2";
 
   src = fetchFromGitHub {
     owner = "kyverno";
     repo = "chainsaw";
     rev = "v${version}";
-    hash = "sha256-eQA4KiQH1tIbolQBKPId8hKCO0mcUnEyJ77+WSGYDjQ=";
+    hash = "sha256-jTrASkIcvHQN8TcxyfAeYVN50L2cgZXrKJRI8BN9Muk=";
   };
 
   vendorHash = "sha256-3x1HAt08Tbs56vaT2tBS//FPRn4JdFOI00XmlXMbs3w=";
diff --git a/pkgs/by-name/la/labwc-tweaks-gtk/package.nix b/pkgs/by-name/la/labwc-tweaks-gtk/package.nix
index 7d444421a0d86..a5ded72c8fb99 100644
--- a/pkgs/by-name/la/labwc-tweaks-gtk/package.nix
+++ b/pkgs/by-name/la/labwc-tweaks-gtk/package.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "labwc-tweaks-gtk";
-  version = "0-unstable-2024-05-19";
+  version = "0-unstable-2024-05-22";
 
   src = fetchFromGitHub {
     owner = "labwc";
     repo = "labwc-tweaks-gtk";
-    rev = "6f251c525a89bbe3dc3fd1bc8cd7cad4950b348a";
-    hash = "sha256-MVnEJ3tk/TDCxAG8v5TDAZUIWmlUrP6Bq1VyeM5VkZ4=";
+    rev = "485961aaaaa3c0158b6b31efd6e504db3c58dc27";
+    hash = "sha256-+X/inkxVPN26AYMqtq3uvfGPlVVhxQpEtF1A9uYAmfY=";
   };
 
   nativeBuildInputs = [
@@ -46,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://github.com/labwc/labwc-tweaks-gtk";
     description = "Configuration gui app for labwc; gtk fork";
-    mainProgram = "labwc-tweaks";
+    mainProgram = "labwc-tweaks-gtk";
     license = lib.licenses.gpl2Only;
     platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [ AndersonTorres romildo ];
diff --git a/pkgs/by-name/la/laravel/composer.lock b/pkgs/by-name/la/laravel/composer.lock
new file mode 100644
index 0000000000000..f4a977029e47b
--- /dev/null
+++ b/pkgs/by-name/la/laravel/composer.lock
@@ -0,0 +1,3764 @@
+{
+    "_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": "bbbf9f75876816a919d068f10bce5fcc",
+    "packages": [
+        {
+            "name": "carbonphp/carbon-doctrine-types",
+            "version": "3.2.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/CarbonPHP/carbon-doctrine-types.git",
+                "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
+                "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^8.1"
+            },
+            "conflict": {
+                "doctrine/dbal": "<4.0.0 || >=5.0.0"
+            },
+            "require-dev": {
+                "doctrine/dbal": "^4.0.0",
+                "nesbot/carbon": "^2.71.0 || ^3.0.0",
+                "phpunit/phpunit": "^10.3"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Carbon\\Doctrine\\": "src/Carbon/Doctrine/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "KyleKatarn",
+                    "email": "kylekatarnls@gmail.com"
+                }
+            ],
+            "description": "Types to use Carbon in Doctrine",
+            "keywords": [
+                "carbon",
+                "date",
+                "datetime",
+                "doctrine",
+                "time"
+            ],
+            "support": {
+                "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues",
+                "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/kylekatarnls",
+                    "type": "github"
+                },
+                {
+                    "url": "https://opencollective.com/Carbon",
+                    "type": "open_collective"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-02-09T16:56:22+00:00"
+        },
+        {
+            "name": "doctrine/inflector",
+            "version": "2.0.10",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/doctrine/inflector.git",
+                "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc",
+                "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.2 || ^8.0"
+            },
+            "require-dev": {
+                "doctrine/coding-standard": "^11.0",
+                "phpstan/phpstan": "^1.8",
+                "phpstan/phpstan-phpunit": "^1.1",
+                "phpstan/phpstan-strict-rules": "^1.3",
+                "phpunit/phpunit": "^8.5 || ^9.5",
+                "vimeo/psalm": "^4.25 || ^5.4"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
+                }
+            },
+            "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"
+                }
+            ],
+            "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.",
+            "homepage": "https://www.doctrine-project.org/projects/inflector.html",
+            "keywords": [
+                "inflection",
+                "inflector",
+                "lowercase",
+                "manipulation",
+                "php",
+                "plural",
+                "singular",
+                "strings",
+                "uppercase",
+                "words"
+            ],
+            "support": {
+                "issues": "https://github.com/doctrine/inflector/issues",
+                "source": "https://github.com/doctrine/inflector/tree/2.0.10"
+            },
+            "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%2Finflector",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-02-18T20:23:39+00:00"
+        },
+        {
+            "name": "illuminate/collections",
+            "version": "v11.8.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/illuminate/collections.git",
+                "reference": "dad22e648ae0f4973470d82b4ae5f809540a87ff"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/illuminate/collections/zipball/dad22e648ae0f4973470d82b4ae5f809540a87ff",
+                "reference": "dad22e648ae0f4973470d82b4ae5f809540a87ff",
+                "shasum": ""
+            },
+            "require": {
+                "illuminate/conditionable": "^11.0",
+                "illuminate/contracts": "^11.0",
+                "illuminate/macroable": "^11.0",
+                "php": "^8.2"
+            },
+            "suggest": {
+                "symfony/var-dumper": "Required to use the dump method (^7.0)."
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "11.x-dev"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "helpers.php"
+                ],
+                "psr-4": {
+                    "Illuminate\\Support\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Taylor Otwell",
+                    "email": "taylor@laravel.com"
+                }
+            ],
+            "description": "The Illuminate Collections package.",
+            "homepage": "https://laravel.com",
+            "support": {
+                "issues": "https://github.com/laravel/framework/issues",
+                "source": "https://github.com/laravel/framework"
+            },
+            "time": "2024-05-20T13:26:28+00:00"
+        },
+        {
+            "name": "illuminate/conditionable",
+            "version": "v11.8.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/illuminate/conditionable.git",
+                "reference": "8a558fec063b6a63da1c3af1d219c0f998edffeb"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/illuminate/conditionable/zipball/8a558fec063b6a63da1c3af1d219c0f998edffeb",
+                "reference": "8a558fec063b6a63da1c3af1d219c0f998edffeb",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^8.0.2"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "11.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Illuminate\\Support\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Taylor Otwell",
+                    "email": "taylor@laravel.com"
+                }
+            ],
+            "description": "The Illuminate Conditionable package.",
+            "homepage": "https://laravel.com",
+            "support": {
+                "issues": "https://github.com/laravel/framework/issues",
+                "source": "https://github.com/laravel/framework"
+            },
+            "time": "2024-04-04T17:36:49+00:00"
+        },
+        {
+            "name": "illuminate/contracts",
+            "version": "v11.8.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/illuminate/contracts.git",
+                "reference": "8782f75e80ab3e6036842d24dbeead34a16f3a79"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/illuminate/contracts/zipball/8782f75e80ab3e6036842d24dbeead34a16f3a79",
+                "reference": "8782f75e80ab3e6036842d24dbeead34a16f3a79",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^8.2",
+                "psr/container": "^1.1.1|^2.0.1",
+                "psr/simple-cache": "^1.0|^2.0|^3.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "11.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Illuminate\\Contracts\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Taylor Otwell",
+                    "email": "taylor@laravel.com"
+                }
+            ],
+            "description": "The Illuminate Contracts package.",
+            "homepage": "https://laravel.com",
+            "support": {
+                "issues": "https://github.com/laravel/framework/issues",
+                "source": "https://github.com/laravel/framework"
+            },
+            "time": "2024-04-17T14:09:55+00:00"
+        },
+        {
+            "name": "illuminate/filesystem",
+            "version": "v11.8.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/illuminate/filesystem.git",
+                "reference": "56d387455019a0b3c19b76dc7ccb70e337ee7c4b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/illuminate/filesystem/zipball/56d387455019a0b3c19b76dc7ccb70e337ee7c4b",
+                "reference": "56d387455019a0b3c19b76dc7ccb70e337ee7c4b",
+                "shasum": ""
+            },
+            "require": {
+                "illuminate/collections": "^11.0",
+                "illuminate/contracts": "^11.0",
+                "illuminate/macroable": "^11.0",
+                "illuminate/support": "^11.0",
+                "php": "^8.2",
+                "symfony/finder": "^7.0"
+            },
+            "suggest": {
+                "ext-fileinfo": "Required to use the Filesystem class.",
+                "ext-ftp": "Required to use the Flysystem FTP driver.",
+                "ext-hash": "Required to use the Filesystem class.",
+                "illuminate/http": "Required for handling uploaded files (^7.0).",
+                "league/flysystem": "Required to use the Flysystem local driver (^3.0.16).",
+                "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.0).",
+                "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.0).",
+                "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.0).",
+                "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).",
+                "symfony/filesystem": "Required to enable support for relative symbolic links (^7.0).",
+                "symfony/mime": "Required to enable support for guessing extensions (^7.0)."
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "11.x-dev"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "functions.php"
+                ],
+                "psr-4": {
+                    "Illuminate\\Filesystem\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Taylor Otwell",
+                    "email": "taylor@laravel.com"
+                }
+            ],
+            "description": "The Illuminate Filesystem package.",
+            "homepage": "https://laravel.com",
+            "support": {
+                "issues": "https://github.com/laravel/framework/issues",
+                "source": "https://github.com/laravel/framework"
+            },
+            "time": "2024-03-29T08:58:54+00:00"
+        },
+        {
+            "name": "illuminate/macroable",
+            "version": "v11.8.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/illuminate/macroable.git",
+                "reference": "5b6c7c7c5951e6e8fc22dd7e4363602df8294dfa"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/illuminate/macroable/zipball/5b6c7c7c5951e6e8fc22dd7e4363602df8294dfa",
+                "reference": "5b6c7c7c5951e6e8fc22dd7e4363602df8294dfa",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^8.2"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "11.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Illuminate\\Support\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Taylor Otwell",
+                    "email": "taylor@laravel.com"
+                }
+            ],
+            "description": "The Illuminate Macroable package.",
+            "homepage": "https://laravel.com",
+            "support": {
+                "issues": "https://github.com/laravel/framework/issues",
+                "source": "https://github.com/laravel/framework"
+            },
+            "time": "2024-05-16T21:43:47+00:00"
+        },
+        {
+            "name": "illuminate/support",
+            "version": "v11.8.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/illuminate/support.git",
+                "reference": "8deb8ba65ed7dc4e3f7b9b64ab70456250454824"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/illuminate/support/zipball/8deb8ba65ed7dc4e3f7b9b64ab70456250454824",
+                "reference": "8deb8ba65ed7dc4e3f7b9b64ab70456250454824",
+                "shasum": ""
+            },
+            "require": {
+                "doctrine/inflector": "^2.0",
+                "ext-ctype": "*",
+                "ext-filter": "*",
+                "ext-mbstring": "*",
+                "illuminate/collections": "^11.0",
+                "illuminate/conditionable": "^11.0",
+                "illuminate/contracts": "^11.0",
+                "illuminate/macroable": "^11.0",
+                "nesbot/carbon": "^2.72.2|^3.0",
+                "php": "^8.2",
+                "voku/portable-ascii": "^2.0"
+            },
+            "conflict": {
+                "tightenco/collect": "<5.5.33"
+            },
+            "replace": {
+                "spatie/once": "*"
+            },
+            "suggest": {
+                "illuminate/filesystem": "Required to use the composer class (^11.0).",
+                "league/commonmark": "Required to use Str::markdown() and Stringable::markdown() (^2.0.2).",
+                "ramsey/uuid": "Required to use Str::uuid() (^4.7).",
+                "symfony/process": "Required to use the composer class (^7.0).",
+                "symfony/uid": "Required to use Str::ulid() (^7.0).",
+                "symfony/var-dumper": "Required to use the dd function (^7.0).",
+                "vlucas/phpdotenv": "Required to use the Env class and env helper (^5.4.1)."
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "11.x-dev"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "helpers.php"
+                ],
+                "psr-4": {
+                    "Illuminate\\Support\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Taylor Otwell",
+                    "email": "taylor@laravel.com"
+                }
+            ],
+            "description": "The Illuminate Support package.",
+            "homepage": "https://laravel.com",
+            "support": {
+                "issues": "https://github.com/laravel/framework/issues",
+                "source": "https://github.com/laravel/framework"
+            },
+            "time": "2024-05-21T15:24:23+00:00"
+        },
+        {
+            "name": "laravel/prompts",
+            "version": "v0.1.22",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/laravel/prompts.git",
+                "reference": "37f94de71758dbfbccc9d299b0e5eb76e02a40f5"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/laravel/prompts/zipball/37f94de71758dbfbccc9d299b0e5eb76e02a40f5",
+                "reference": "37f94de71758dbfbccc9d299b0e5eb76e02a40f5",
+                "shasum": ""
+            },
+            "require": {
+                "ext-mbstring": "*",
+                "illuminate/collections": "^10.0|^11.0",
+                "php": "^8.1",
+                "symfony/console": "^6.2|^7.0"
+            },
+            "conflict": {
+                "illuminate/console": ">=10.17.0 <10.25.0",
+                "laravel/framework": ">=10.17.0 <10.25.0"
+            },
+            "require-dev": {
+                "mockery/mockery": "^1.5",
+                "pestphp/pest": "^2.3",
+                "phpstan/phpstan": "^1.11",
+                "phpstan/phpstan-mockery": "^1.1"
+            },
+            "suggest": {
+                "ext-pcntl": "Required for the spinner to be animated."
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "0.1.x-dev"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "src/helpers.php"
+                ],
+                "psr-4": {
+                    "Laravel\\Prompts\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "description": "Add beautiful and user-friendly forms to your command-line applications.",
+            "support": {
+                "issues": "https://github.com/laravel/prompts/issues",
+                "source": "https://github.com/laravel/prompts/tree/v0.1.22"
+            },
+            "time": "2024-05-10T19:22:18+00:00"
+        },
+        {
+            "name": "nesbot/carbon",
+            "version": "3.3.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/briannesbitt/Carbon.git",
+                "reference": "8ff64b92c1b1ec84fcde9f8bb9ff2ca34cb8a77a"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/8ff64b92c1b1ec84fcde9f8bb9ff2ca34cb8a77a",
+                "reference": "8ff64b92c1b1ec84fcde9f8bb9ff2ca34cb8a77a",
+                "shasum": ""
+            },
+            "require": {
+                "carbonphp/carbon-doctrine-types": "*",
+                "ext-json": "*",
+                "php": "^8.1",
+                "psr/clock": "^1.0",
+                "symfony/clock": "^6.3 || ^7.0",
+                "symfony/polyfill-mbstring": "^1.0",
+                "symfony/translation": "^4.4.18 || ^5.2.1|| ^6.0 || ^7.0"
+            },
+            "provide": {
+                "psr/clock-implementation": "1.0"
+            },
+            "require-dev": {
+                "doctrine/dbal": "^3.6.3 || ^4.0",
+                "doctrine/orm": "^2.15.2 || ^3.0",
+                "friendsofphp/php-cs-fixer": "^3.52.1",
+                "kylekatarnls/multi-tester": "^2.5.3",
+                "ondrejmirtes/better-reflection": "^6.25.0.4",
+                "phpmd/phpmd": "^2.15.0",
+                "phpstan/extension-installer": "^1.3.1",
+                "phpstan/phpstan": "^1.10.65",
+                "phpunit/phpunit": "^10.5.15",
+                "squizlabs/php_codesniffer": "^3.9.0"
+            },
+            "bin": [
+                "bin/carbon"
+            ],
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "3.x-dev",
+                    "dev-2.x": "2.x-dev"
+                },
+                "laravel": {
+                    "providers": [
+                        "Carbon\\Laravel\\ServiceProvider"
+                    ]
+                },
+                "phpstan": {
+                    "includes": [
+                        "extension.neon"
+                    ]
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Carbon\\": "src/Carbon/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Brian Nesbitt",
+                    "email": "brian@nesbot.com",
+                    "homepage": "https://markido.com"
+                },
+                {
+                    "name": "kylekatarnls",
+                    "homepage": "https://github.com/kylekatarnls"
+                }
+            ],
+            "description": "An API extension for DateTime that supports 281 different languages.",
+            "homepage": "https://carbon.nesbot.com",
+            "keywords": [
+                "date",
+                "datetime",
+                "time"
+            ],
+            "support": {
+                "docs": "https://carbon.nesbot.com/docs",
+                "issues": "https://github.com/briannesbitt/Carbon/issues",
+                "source": "https://github.com/briannesbitt/Carbon"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sponsors/kylekatarnls",
+                    "type": "github"
+                },
+                {
+                    "url": "https://opencollective.com/Carbon#sponsor",
+                    "type": "opencollective"
+                },
+                {
+                    "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-05-01T06:54:22+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/simple-cache",
+            "version": "3.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/php-fig/simple-cache.git",
+                "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865",
+                "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.0.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "3.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Psr\\SimpleCache\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "PHP-FIG",
+                    "homepage": "https://www.php-fig.org/"
+                }
+            ],
+            "description": "Common interfaces for simple caching",
+            "keywords": [
+                "cache",
+                "caching",
+                "psr",
+                "psr-16",
+                "simple-cache"
+            ],
+            "support": {
+                "source": "https://github.com/php-fig/simple-cache/tree/3.0.0"
+            },
+            "time": "2021-10-29T13:26:27+00:00"
+        },
+        {
+            "name": "symfony/clock",
+            "version": "v7.0.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/clock.git",
+                "reference": "2008671acb4a30b01c453de193cf9c80549ebda6"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/clock/zipball/2008671acb4a30b01c453de193cf9c80549ebda6",
+                "reference": "2008671acb4a30b01c453de193cf9c80549ebda6",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.2",
+                "psr/clock": "^1.0",
+                "symfony/polyfill-php83": "^1.28"
+            },
+            "provide": {
+                "psr/clock-implementation": "1.0"
+            },
+            "type": "library",
+            "autoload": {
+                "files": [
+                    "Resources/now.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Component\\Clock\\": ""
+                },
+                "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": "Decouples applications from the system clock",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "clock",
+                "psr20",
+                "time"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/clock/tree/v7.0.7"
+            },
+            "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-04-18T09:29:19+00:00"
+        },
+        {
+            "name": "symfony/console",
+            "version": "v7.0.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/console.git",
+                "reference": "c981e0e9380ce9f146416bde3150c79197ce9986"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/console/zipball/c981e0e9380ce9f146416bde3150c79197ce9986",
+                "reference": "c981e0e9380ce9f146416bde3150c79197ce9986",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.2",
+                "symfony/polyfill-mbstring": "~1.0",
+                "symfony/service-contracts": "^2.5|^3",
+                "symfony/string": "^6.4|^7.0"
+            },
+            "conflict": {
+                "symfony/dependency-injection": "<6.4",
+                "symfony/dotenv": "<6.4",
+                "symfony/event-dispatcher": "<6.4",
+                "symfony/lock": "<6.4",
+                "symfony/process": "<6.4"
+            },
+            "provide": {
+                "psr/log-implementation": "1.0|2.0|3.0"
+            },
+            "require-dev": {
+                "psr/log": "^1|^2|^3",
+                "symfony/config": "^6.4|^7.0",
+                "symfony/dependency-injection": "^6.4|^7.0",
+                "symfony/event-dispatcher": "^6.4|^7.0",
+                "symfony/http-foundation": "^6.4|^7.0",
+                "symfony/http-kernel": "^6.4|^7.0",
+                "symfony/lock": "^6.4|^7.0",
+                "symfony/messenger": "^6.4|^7.0",
+                "symfony/process": "^6.4|^7.0",
+                "symfony/stopwatch": "^6.4|^7.0",
+                "symfony/var-dumper": "^6.4|^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/v7.0.7"
+            },
+            "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-04-18T09:29:19+00:00"
+        },
+        {
+            "name": "symfony/deprecation-contracts",
+            "version": "v3.5.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/deprecation-contracts.git",
+                "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
+                "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "3.5-dev"
+                },
+                "thanks": {
+                    "name": "symfony/contracts",
+                    "url": "https://github.com/symfony/contracts"
+                }
+            },
+            "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.5.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-04-18T09:32:20+00:00"
+        },
+        {
+            "name": "symfony/finder",
+            "version": "v7.0.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/finder.git",
+                "reference": "4d58f0f4fe95a30d7b538d71197135483560b97c"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/finder/zipball/4d58f0f4fe95a30d7b538d71197135483560b97c",
+                "reference": "4d58f0f4fe95a30d7b538d71197135483560b97c",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.2"
+            },
+            "require-dev": {
+                "symfony/filesystem": "^6.4|^7.0"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Finder\\": ""
+                },
+                "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": "Finds files and directories via an intuitive fluent interface",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/finder/tree/v7.0.7"
+            },
+            "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-04-28T11:44:19+00:00"
+        },
+        {
+            "name": "symfony/polyfill-ctype",
+            "version": "v1.29.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-ctype.git",
+                "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4",
+                "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "provide": {
+                "ext-ctype": "*"
+            },
+            "suggest": {
+                "ext-ctype": "For best performance"
+            },
+            "type": "library",
+            "extra": {
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/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.29.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-01-29T20:11:03+00:00"
+        },
+        {
+            "name": "symfony/polyfill-intl-grapheme",
+            "version": "v1.29.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
+                "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f",
+                "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "suggest": {
+                "ext-intl": "For best performance"
+            },
+            "type": "library",
+            "extra": {
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/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.29.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-01-29T20:11:03+00:00"
+        },
+        {
+            "name": "symfony/polyfill-intl-normalizer",
+            "version": "v1.29.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
+                "reference": "bc45c394692b948b4d383a08d7753968bed9a83d"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d",
+                "reference": "bc45c394692b948b4d383a08d7753968bed9a83d",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "suggest": {
+                "ext-intl": "For best performance"
+            },
+            "type": "library",
+            "extra": {
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/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.29.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-01-29T20:11:03+00:00"
+        },
+        {
+            "name": "symfony/polyfill-mbstring",
+            "version": "v1.29.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-mbstring.git",
+                "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
+                "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "provide": {
+                "ext-mbstring": "*"
+            },
+            "suggest": {
+                "ext-mbstring": "For best performance"
+            },
+            "type": "library",
+            "extra": {
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/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.29.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-01-29T20:11:03+00:00"
+        },
+        {
+            "name": "symfony/polyfill-php80",
+            "version": "v1.29.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-php80.git",
+                "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
+                "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "type": "library",
+            "extra": {
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "bootstrap.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Polyfill\\Php80\\": ""
+                },
+                "classmap": [
+                    "Resources/stubs"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Ion Bazan",
+                    "email": "ion.bazan@gmail.com"
+                },
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.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-01-29T20:11:03+00:00"
+        },
+        {
+            "name": "symfony/polyfill-php83",
+            "version": "v1.29.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-php83.git",
+                "reference": "86fcae159633351e5fd145d1c47de6c528f8caff"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/86fcae159633351e5fd145d1c47de6c528f8caff",
+                "reference": "86fcae159633351e5fd145d1c47de6c528f8caff",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1",
+                "symfony/polyfill-php80": "^1.14"
+            },
+            "type": "library",
+            "extra": {
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "bootstrap.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Polyfill\\Php83\\": ""
+                },
+                "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 backporting some PHP 8.3+ features to lower PHP versions",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-php83/tree/v1.29.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-01-29T20:11:03+00:00"
+        },
+        {
+            "name": "symfony/process",
+            "version": "v7.0.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/process.git",
+                "reference": "3839e56b94dd1dbd13235d27504e66baf23faba0"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/process/zipball/3839e56b94dd1dbd13235d27504e66baf23faba0",
+                "reference": "3839e56b94dd1dbd13235d27504e66baf23faba0",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.2"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Process\\": ""
+                },
+                "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": "Executes commands in sub-processes",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/process/tree/v7.0.7"
+            },
+            "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-04-18T09:29:19+00:00"
+        },
+        {
+            "name": "symfony/service-contracts",
+            "version": "v3.5.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/service-contracts.git",
+                "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
+                "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
+                "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": {
+                "branch-alias": {
+                    "dev-main": "3.5-dev"
+                },
+                "thanks": {
+                    "name": "symfony/contracts",
+                    "url": "https://github.com/symfony/contracts"
+                }
+            },
+            "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.5.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-04-18T09:32:20+00:00"
+        },
+        {
+            "name": "symfony/string",
+            "version": "v7.0.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/string.git",
+                "reference": "e405b5424dc2528e02e31ba26b83a79fd4eb8f63"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/string/zipball/e405b5424dc2528e02e31ba26b83a79fd4eb8f63",
+                "reference": "e405b5424dc2528e02e31ba26b83a79fd4eb8f63",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.2",
+                "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/error-handler": "^6.4|^7.0",
+                "symfony/http-client": "^6.4|^7.0",
+                "symfony/intl": "^6.4|^7.0",
+                "symfony/translation-contracts": "^2.5|^3.0",
+                "symfony/var-exporter": "^6.4|^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/v7.0.7"
+            },
+            "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-04-18T09:29:19+00:00"
+        },
+        {
+            "name": "symfony/translation",
+            "version": "v7.0.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/translation.git",
+                "reference": "1515e03afaa93e6419aba5d5c9d209159317100b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/translation/zipball/1515e03afaa93e6419aba5d5c9d209159317100b",
+                "reference": "1515e03afaa93e6419aba5d5c9d209159317100b",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.2",
+                "symfony/polyfill-mbstring": "~1.0",
+                "symfony/translation-contracts": "^2.5|^3.0"
+            },
+            "conflict": {
+                "symfony/config": "<6.4",
+                "symfony/console": "<6.4",
+                "symfony/dependency-injection": "<6.4",
+                "symfony/http-client-contracts": "<2.5",
+                "symfony/http-kernel": "<6.4",
+                "symfony/service-contracts": "<2.5",
+                "symfony/twig-bundle": "<6.4",
+                "symfony/yaml": "<6.4"
+            },
+            "provide": {
+                "symfony/translation-implementation": "2.3|3.0"
+            },
+            "require-dev": {
+                "nikic/php-parser": "^4.18|^5.0",
+                "psr/log": "^1|^2|^3",
+                "symfony/config": "^6.4|^7.0",
+                "symfony/console": "^6.4|^7.0",
+                "symfony/dependency-injection": "^6.4|^7.0",
+                "symfony/finder": "^6.4|^7.0",
+                "symfony/http-client-contracts": "^2.5|^3.0",
+                "symfony/http-kernel": "^6.4|^7.0",
+                "symfony/intl": "^6.4|^7.0",
+                "symfony/polyfill-intl-icu": "^1.21",
+                "symfony/routing": "^6.4|^7.0",
+                "symfony/service-contracts": "^2.5|^3",
+                "symfony/yaml": "^6.4|^7.0"
+            },
+            "type": "library",
+            "autoload": {
+                "files": [
+                    "Resources/functions.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Component\\Translation\\": ""
+                },
+                "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 tools to internationalize your application",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/translation/tree/v7.0.7"
+            },
+            "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-04-18T09:29:19+00:00"
+        },
+        {
+            "name": "symfony/translation-contracts",
+            "version": "v3.5.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/translation-contracts.git",
+                "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
+                "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "3.5-dev"
+                },
+                "thanks": {
+                    "name": "symfony/contracts",
+                    "url": "https://github.com/symfony/contracts"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Contracts\\Translation\\": ""
+                },
+                "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 translation",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "abstractions",
+                "contracts",
+                "decoupling",
+                "interfaces",
+                "interoperability",
+                "standards"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/translation-contracts/tree/v3.5.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-04-18T09:32:20+00:00"
+        },
+        {
+            "name": "voku/portable-ascii",
+            "version": "2.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/voku/portable-ascii.git",
+                "reference": "b56450eed252f6801410d810c8e1727224ae0743"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743",
+                "reference": "b56450eed252f6801410d810c8e1727224ae0743",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.0.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0"
+            },
+            "suggest": {
+                "ext-intl": "Use Intl for transliterator_transliterate() support"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "voku\\": "src/voku/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Lars Moelleken",
+                    "homepage": "http://www.moelleken.org/"
+                }
+            ],
+            "description": "Portable ASCII library - performance optimized (ascii) string functions for php.",
+            "homepage": "https://github.com/voku/portable-ascii",
+            "keywords": [
+                "ascii",
+                "clean",
+                "php"
+            ],
+            "support": {
+                "issues": "https://github.com/voku/portable-ascii/issues",
+                "source": "https://github.com/voku/portable-ascii/tree/2.0.1"
+            },
+            "funding": [
+                {
+                    "url": "https://www.paypal.me/moelleken",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/voku",
+                    "type": "github"
+                },
+                {
+                    "url": "https://opencollective.com/portable-ascii",
+                    "type": "open_collective"
+                },
+                {
+                    "url": "https://www.patreon.com/voku",
+                    "type": "patreon"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2022-03-08T17:03:00+00:00"
+        }
+    ],
+    "packages-dev": [
+        {
+            "name": "myclabs/deep-copy",
+            "version": "1.11.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/myclabs/DeepCopy.git",
+                "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
+                "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
+                "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",
+                "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.11.1"
+            },
+            "funding": [
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2023-03-08T13:26:56+00:00"
+        },
+        {
+            "name": "nikic/php-parser",
+            "version": "v5.0.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/nikic/PHP-Parser.git",
+                "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/139676794dc1e9231bf7bcd123cfc0c99182cb13",
+                "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13",
+                "shasum": ""
+            },
+            "require": {
+                "ext-ctype": "*",
+                "ext-json": "*",
+                "ext-tokenizer": "*",
+                "php": ">=7.4"
+            },
+            "require-dev": {
+                "ircmaxell/php-yacc": "^0.0.7",
+                "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
+            },
+            "bin": [
+                "bin/php-parse"
+            ],
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "5.0-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.0.2"
+            },
+            "time": "2024-03-05T20:51:40+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": "phpstan/phpstan",
+            "version": "1.11.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/phpstan/phpstan.git",
+                "reference": "0d5d4294a70deb7547db655c47685d680e39cfec"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/phpstan/phpstan/zipball/0d5d4294a70deb7547db655c47685d680e39cfec",
+                "reference": "0d5d4294a70deb7547db655c47685d680e39cfec",
+                "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": "2024-05-24T13:23:04+00:00"
+        },
+        {
+            "name": "phpunit/php-code-coverage",
+            "version": "10.1.14",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+                "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/e3f51450ebffe8e0efdf7346ae966a656f7d5e5b",
+                "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b",
+                "shasum": ""
+            },
+            "require": {
+                "ext-dom": "*",
+                "ext-libxml": "*",
+                "ext-xmlwriter": "*",
+                "nikic/php-parser": "^4.18 || ^5.0",
+                "php": ">=8.1",
+                "phpunit/php-file-iterator": "^4.0",
+                "phpunit/php-text-template": "^3.0",
+                "sebastian/code-unit-reverse-lookup": "^3.0",
+                "sebastian/complexity": "^3.0",
+                "sebastian/environment": "^6.0",
+                "sebastian/lines-of-code": "^2.0",
+                "sebastian/version": "^4.0",
+                "theseer/tokenizer": "^1.2.0"
+            },
+            "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-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.14"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2024-03-12T15:33:41+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.20",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/phpunit.git",
+                "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/547d314dc24ec1e177720d45c6263fb226cc2ae3",
+                "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3",
+                "shasum": ""
+            },
+            "require": {
+                "ext-dom": "*",
+                "ext-json": "*",
+                "ext-libxml": "*",
+                "ext-mbstring": "*",
+                "ext-xml": "*",
+                "ext-xmlwriter": "*",
+                "myclabs/deep-copy": "^1.10.1",
+                "phar-io/manifest": "^2.0.3",
+                "phar-io/version": "^3.0.2",
+                "php": ">=8.1",
+                "phpunit/php-code-coverage": "^10.1.5",
+                "phpunit/php-file-iterator": "^4.0",
+                "phpunit/php-invoker": "^4.0",
+                "phpunit/php-text-template": "^3.0",
+                "phpunit/php-timer": "^6.0",
+                "sebastian/cli-parser": "^2.0",
+                "sebastian/code-unit": "^2.0",
+                "sebastian/comparator": "^5.0",
+                "sebastian/diff": "^5.0",
+                "sebastian/environment": "^6.0",
+                "sebastian/exporter": "^5.1",
+                "sebastian/global-state": "^6.0.1",
+                "sebastian/object-enumerator": "^5.0",
+                "sebastian/recursion-context": "^5.0",
+                "sebastian/type": "^4.0",
+                "sebastian/version": "^4.0"
+            },
+            "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.20"
+            },
+            "funding": [
+                {
+                    "url": "https://phpunit.de/sponsors.html",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-04-24T06:32:35+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.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/comparator.git",
+                "reference": "2db5010a484d53ebf536087a70b4a5423c102372"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2db5010a484d53ebf536087a70b4a5423c102372",
+                "reference": "2db5010a484d53ebf536087a70b4a5423c102372",
+                "shasum": ""
+            },
+            "require": {
+                "ext-dom": "*",
+                "ext-mbstring": "*",
+                "php": ">=8.1",
+                "sebastian/diff": "^5.0",
+                "sebastian/exporter": "^5.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.3"
+            },
+            "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.1"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-08-14T13:18:12+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.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/exporter.git",
+                "reference": "955288482d97c19a372d3f31006ab3f37da47adf"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/955288482d97c19a372d3f31006ab3f37da47adf",
+                "reference": "955288482d97c19a372d3f31006ab3f37da47adf",
+                "shasum": ""
+            },
+            "require": {
+                "ext-mbstring": "*",
+                "php": ">=8.1",
+                "sebastian/recursion-context": "^5.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "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.2"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2024-03-02T07:17:12+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.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/recursion-context.git",
+                "reference": "05909fb5bc7df4c52992396d0116aed689f93712"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712",
+                "reference": "05909fb5bc7df4c52992396d0116aed689f93712",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "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"
+                },
+                {
+                    "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",
+                "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-02-03T07:05:40+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.2.3",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/theseer/tokenizer.git",
+                "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+                "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+                "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.2.3"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/theseer",
+                    "type": "github"
+                }
+            ],
+            "time": "2024-03-03T12:36:25+00:00"
+        }
+    ],
+    "aliases": [],
+    "minimum-stability": "dev",
+    "stability-flags": [],
+    "prefer-stable": true,
+    "prefer-lowest": false,
+    "platform": {
+        "php": "^8.2"
+    },
+    "platform-dev": [],
+    "plugin-api-version": "2.6.0"
+}
diff --git a/pkgs/by-name/la/laravel/package.nix b/pkgs/by-name/la/laravel/package.nix
new file mode 100644
index 0000000000000..cbb87fe248a48
--- /dev/null
+++ b/pkgs/by-name/la/laravel/package.nix
@@ -0,0 +1,36 @@
+{
+  lib,
+  fetchFromGitHub,
+  makeWrapper,
+  php,
+}:
+php.buildComposerProject (finalAttrs: {
+  pname = "laravel";
+  version = "5.8.1";
+
+  src = fetchFromGitHub {
+    owner = "laravel";
+    repo = "installer";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-LQABZnmKgJ8qkymmSjhjc+x1qZ/tFqFyQbfeGZECxok=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  composerLock = ./composer.lock;
+  vendorHash = "sha256-f18N2qNCUFetCaHaC4X6Benq70x21SVQ3YSs8kovK1g=";
+
+  postInstall = ''
+    wrapProgram $out/bin/laravel \
+      --suffix PATH : ${lib.makeBinPath [ php.packages.composer ]}
+  '';
+
+  meta = {
+    description = "The Laravel application installer.";
+    homepage = "https://laravel.com/docs#creating-a-laravel-project";
+    changelog = "https://github.com/laravel/installer/releases/tag/v${finalAttrs.version}";
+    license = lib.licenses.mit;
+    mainProgram = "laravel";
+    maintainers = with lib.maintainers; [ heisfer ];
+  };
+})
diff --git a/pkgs/by-name/le/lefthook/package.nix b/pkgs/by-name/le/lefthook/package.nix
index 0cde03e8ae816..a0af5cff5b8d9 100644
--- a/pkgs/by-name/le/lefthook/package.nix
+++ b/pkgs/by-name/le/lefthook/package.nix
@@ -6,7 +6,7 @@
 
 let
   pname = "lefthook";
-  version = "1.6.12";
+  version = "1.6.13";
 in
 buildGoModule {
   inherit pname version;
@@ -15,10 +15,10 @@ buildGoModule {
     owner = "evilmartians";
     repo = "lefthook";
     rev = "v${version}";
-    hash = "sha256-j39A+cHu1MUa7kP46JY8pADsOejsMX0rcBHQZflhWe8=";
+    hash = "sha256-D1YZu/s5Olv1fATbThMq1Hu+xUTd0EMqJSO7iha4gX0=";
   };
 
-  vendorHash = "sha256-sDqP+fzAFavqtvJ98nwsD5+GxNhmLgtOkTzIK06wp9E=";
+  vendorHash = "sha256-M5lIfgUYMwLJu5NB54aZLofEegZiW+AUoSaVOul1ud8=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/by-name/le/less/package.nix b/pkgs/by-name/le/less/package.nix
index f7791a2636eb7..326e4e2df0173 100644
--- a/pkgs/by-name/le/less/package.nix
+++ b/pkgs/by-name/le/less/package.nix
@@ -4,6 +4,7 @@
 , fetchpatch
 , ncurses
 , pcre2
+, withSecure ? false
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -37,7 +38,7 @@ stdenv.mkDerivation (finalAttrs: {
     # Look for 'sysless' in /etc.
     "--sysconfdir=/etc"
     "--with-regex=pcre2"
-  ];
+  ] ++ lib.optional withSecure "--with-secure";
 
   meta = {
     homepage = "https://www.greenwoodsoftware.com/less/";
diff --git a/pkgs/by-name/le/letterpress/package.nix b/pkgs/by-name/le/letterpress/package.nix
new file mode 100644
index 0000000000000..d68796e879dc0
--- /dev/null
+++ b/pkgs/by-name/le/letterpress/package.nix
@@ -0,0 +1,85 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitLab,
+  fetchpatch,
+  wrapGAppsHook4,
+  appstream,
+  blueprint-compiler,
+  desktop-file-utils,
+  gettext,
+  gobject-introspection,
+  jp2a,
+  libadwaita,
+  meson,
+  ninja,
+  pkg-config,
+  python3Packages,
+}:
+python3Packages.buildPythonApplication rec {
+  pname = "letterpress";
+  version = "2.1";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "World";
+    repo = "letterpress";
+    rev = version;
+    hash = "sha256-9U8iH3V4WMljdtWLmb0RlexLeAN5StJ0c9RlEB2E7Xs=";
+  };
+
+  patches = [
+    # Fix application segmentation fault on file chooser dialog opening
+    # https://gitlab.gnome.org/World/Letterpress/-/merge_requests/16
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/World/Letterpress/-/commit/15059eacca14204d1092a6e32ef30c6ce4df6d36.patch";
+      hash = "sha256-pjg/O9advtkZ0l73GQtL/GYcTWeOs5l3VGOdnsZCWI0=";
+    })
+  ];
+
+  runtimeDeps = [
+    jp2a
+  ];
+
+  buildInputs = [
+    libadwaita
+  ];
+
+  nativeBuildInputs = [
+    appstream
+    blueprint-compiler
+    desktop-file-utils
+    gettext
+    gobject-introspection
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook4
+  ];
+
+  dependencies = with python3Packages; [
+    pillow
+    pygobject3
+  ];
+
+  pyproject = false; # built by meson
+  dontWrapGApps = true; # prevent double wrapping
+
+  preFixup = ''
+    makeWrapperArgs+=(''${gappsWrapperArgs[@]} --prefix PATH : ${ lib.makeBinPath runtimeDeps })
+  '';
+
+  meta = with lib; {
+    description = "Create beautiful ASCII art";
+    longDescription = ''
+      Letterpress converts your images into a picture made up of ASCII characters.
+      You can save the output to a file, copy it, and even change its resolution!
+      High-res output can still be viewed comfortably by lowering the zoom factor.
+    '';
+    homepage = "https://apps.gnome.org/Letterpress/";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.dawidd6 ];
+    platforms = platforms.linux;
+    mainProgram = "letterpress";
+  };
+}
diff --git a/pkgs/by-name/li/libbfio/package.nix b/pkgs/by-name/li/libbfio/package.nix
index ccc4c640677ca..1695b65272d2e 100644
--- a/pkgs/by-name/li/libbfio/package.nix
+++ b/pkgs/by-name/li/libbfio/package.nix
@@ -1,6 +1,5 @@
 { lib
 , fetchzip
-, fetchpatch
 , stdenv
 , gettext
 , libtool
diff --git a/pkgs/by-name/li/libcamera/package.nix b/pkgs/by-name/li/libcamera/package.nix
index 8bf654f209037..e6d417f3c2157 100644
--- a/pkgs/by-name/li/libcamera/package.nix
+++ b/pkgs/by-name/li/libcamera/package.nix
@@ -9,7 +9,6 @@
 , libdrm
 , libevent
 , libyaml
-, lttng-ust
 , gst_all_1
 , gtest
 , graphviz
@@ -17,6 +16,8 @@
 , python3
 , python3Packages
 , systemd # for libudev
+, withTracing ? lib.meta.availableOn stdenv.hostPlatform lttng-ust
+, lttng-ust # withTracing
 , withQcam ? false
 , qt5 # withQcam
 , libtiff # withQcam
@@ -67,14 +68,12 @@ stdenv.mkDerivation rec {
     # hotplugging
     systemd
 
-    # lttng tracing
-    lttng-ust
-
     # yamlparser
     libyaml
 
     gtest
-  ] ++ lib.optionals withQcam [ libtiff qt5.qtbase qt5.qttools ];
+  ] ++ lib.optionals withTracing [ lttng-ust ]
+    ++ lib.optionals withQcam [ libtiff qt5.qtbase qt5.qttools ];
 
   nativeBuildInputs = [
     meson
@@ -92,7 +91,8 @@ stdenv.mkDerivation rec {
 
   mesonFlags = [
     "-Dv4l2=true"
-    "-Dqcam=${if withQcam then "enabled" else "disabled"}"
+    (lib.mesonEnable "tracing" withTracing)
+    (lib.mesonEnable "qcam" withQcam)
     "-Dlc-compliance=disabled" # tries unconditionally to download gtest when enabled
     # Avoid blanket -Werror to evade build failures on less
     # tested compilers.
diff --git a/pkgs/by-name/li/libclipboard/package.nix b/pkgs/by-name/li/libclipboard/package.nix
new file mode 100644
index 0000000000000..5420501270b31
--- /dev/null
+++ b/pkgs/by-name/li/libclipboard/package.nix
@@ -0,0 +1,38 @@
+{
+  stdenv,
+  fetchFromGitHub,
+  cmake,
+  pkg-config,
+  libxcb,
+  libXau,
+  libXdmcp,
+  darwin,
+  lib
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  name = "libclipboard";
+  version = "1.1";
+
+  src = fetchFromGitHub {
+    owner = "jtanx";
+    repo = "libclipboard";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-553hNG8QUlt/Aff9EKYr6w279ELr+2MX7nh1SKIklhA=";
+  };
+
+  buildInputs = [ libxcb libXau libXdmcp ]
+    ++ lib.optional stdenv.isDarwin [ darwin.apple_sdk.frameworks.Cocoa ];
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ];
+  outputs = [ "out" "dev" ];
+
+  meta = {
+    description = "Lightweight cross-platform clipboard library";
+    homepage = "https://jtanx.github.io/libclipboard";
+    platforms = lib.platforms.unix;
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.sigmanificient ];
+  };
+})
diff --git a/pkgs/by-name/li/libcpuid/package.nix b/pkgs/by-name/li/libcpuid/package.nix
index cf4afd8df7d5e..6cbc2c689cab8 100644
--- a/pkgs/by-name/li/libcpuid/package.nix
+++ b/pkgs/by-name/li/libcpuid/package.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   pname = "libcpuid";
diff --git a/pkgs/by-name/li/libdjinterop/package.nix b/pkgs/by-name/li/libdjinterop/package.nix
index 93bf2bc8a7ecf..2432c24de8b93 100644
--- a/pkgs/by-name/li/libdjinterop/package.nix
+++ b/pkgs/by-name/li/libdjinterop/package.nix
@@ -17,8 +17,8 @@ stdenv.mkDerivation {
   src = fetchFromGitHub {
     owner = "xsco";
     repo = "libdjinterop";
-    rev = "0.20.1";
-    hash = "sha256-/iXSRJVFPWqUTVz7z0BNWCq5LOqdNuTI+wx/34JAZfc=";
+    rev = "0.20.2";
+    hash = "sha256-eTr9ax/bZWazLhLLQG6XUgqiM+7LVieh5ruA0EaUaj0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/li/libeduvpn-common/package.nix b/pkgs/by-name/li/libeduvpn-common/package.nix
index 5e74e01ddecfe..cafe417348cb3 100644
--- a/pkgs/by-name/li/libeduvpn-common/package.nix
+++ b/pkgs/by-name/li/libeduvpn-common/package.nix
@@ -5,11 +5,11 @@
 
 buildGoModule rec {
   pname = "libeduvpn-common";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchurl {
     url = "https://github.com/eduvpn/eduvpn-common/releases/download/${version}/eduvpn-common-${version}.tar.xz";
-    hash = "sha256-CqpOgvGGD6pW03fvKUzgoeCz6YgnzuYK2u5Zbw+/Ks4=";
+    hash = "sha256-MCMbOVDx9nQwTLH8EjCFD2T6mFwwFX8Jvae8PIrstvU=";
   };
 
   vendorHash = null;
diff --git a/pkgs/by-name/li/libewf-legacy/package.nix b/pkgs/by-name/li/libewf-legacy/package.nix
index 536a28eceebea..3d2aee4d28741 100644
--- a/pkgs/by-name/li/libewf-legacy/package.nix
+++ b/pkgs/by-name/li/libewf-legacy/package.nix
@@ -1,6 +1,5 @@
 { lib
 , fetchurl
-, fetchpatch
 , stdenv
 , zlib
 , openssl
diff --git a/pkgs/by-name/li/libiconv-darwin/package.nix b/pkgs/by-name/li/libiconv-darwin/package.nix
index bb5291831b655..0cb34224a6c78 100644
--- a/pkgs/by-name/li/libiconv-darwin/package.nix
+++ b/pkgs/by-name/li/libiconv-darwin/package.nix
@@ -2,7 +2,6 @@
   lib,
   stdenv,
   fetchFromGitHub,
-  fetchpatch,
   atf,
   libiconvReal,
   meson,
diff --git a/pkgs/by-name/li/libideviceactivation/package.nix b/pkgs/by-name/li/libideviceactivation/package.nix
new file mode 100644
index 0000000000000..74ee9ddc2cc9c
--- /dev/null
+++ b/pkgs/by-name/li/libideviceactivation/package.nix
@@ -0,0 +1,55 @@
+{
+  stdenv,
+  fetchFromGitHub,
+  lib,
+  pkg-config,
+  automake,
+  autoreconfHook,
+  libtool,
+  libplist,
+  libimobiledevice,
+  libxml2,
+  curl,
+  usbmuxd,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "libideviceactivation";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "libimobiledevice";
+    repo = "libideviceactivation";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-owcQpCN4+A785oy9pCboJIyfpgZ6X+8PRzqGtWpYl2w=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    automake
+    autoreconfHook
+  ];
+
+  buildInputs = [
+    libtool
+    libplist
+    libimobiledevice
+    libxml2
+    curl
+    usbmuxd
+  ];
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  meta = {
+    description = "A library to manage the activation process of Apple iOS devices.";
+    homepage = "https://libimobiledevice.org";
+    license = with lib.licenses; [
+      lgpl21
+      gpl3
+    ];
+    mainProgram = "ideviceactivation";
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ clebs ];
+  };
+})
diff --git a/pkgs/by-name/li/libitl/package.nix b/pkgs/by-name/li/libitl/package.nix
new file mode 100644
index 0000000000000..e1d3a21e72917
--- /dev/null
+++ b/pkgs/by-name/li/libitl/package.nix
@@ -0,0 +1,32 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, fetchpatch
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "libitl";
+  version = "0.1.8-unstable-2024-05-26";
+
+  nativeBuildInputs = [ cmake ];
+
+  src = fetchFromGitHub {
+    owner = "arabeyes-org";
+    repo = "ITL";
+    rev = "07de1851722d0818d1f981df234e1b585eb60e05";
+    hash = "sha256-bhejnA7FfuopR27heliaE/vNd1Rqvnjj3n/vkjmimAw=";
+  };
+
+  meta = with lib; {
+    description = "Islamic Tools and Libraries (ITL)";
+    longDescription = ''
+      The Islamic Tools and Libraries (ITL) project provides
+      a fully featured library for performing common Islamic calculations.
+    '';
+    homepage = "https://www.arabeyes.org/ITL";
+    license = licenses.lgpl21Only;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ amyipdev ];
+  };
+})
diff --git a/pkgs/by-name/li/libmsgraph/package.nix b/pkgs/by-name/li/libmsgraph/package.nix
index a3cb929f8041c..011d4bab9a81b 100644
--- a/pkgs/by-name/li/libmsgraph/package.nix
+++ b/pkgs/by-name/li/libmsgraph/package.nix
@@ -7,23 +7,23 @@
 , ninja
 , pkg-config
 , uhttpmock_1_0
+, libxml2
 , glib
 , gnome-online-accounts
 , json-glib
-, librest_1_0
 , libsoup_3
 , gnome
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libmsgraph";
-  version = "0.2.1";
+  version = "0.2.2";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/msgraph/${lib.versions.majorMinor finalAttrs.version}/msgraph-${finalAttrs.version}.tar.xz";
-    hash = "sha256-4OWeqorj4KSOwKbC/tBHCFanCSSOkhK2odA33leS7Ls=";
+    hash = "sha256-EsyVT3ULsTes6FAP6TVdJubgDvbMqrKVDp02DpJ1gzU=";
   };
 
   nativeBuildInputs = [
@@ -36,21 +36,16 @@ stdenv.mkDerivation (finalAttrs: {
 
   buildInputs = [
     uhttpmock_1_0
+    libxml2
   ];
 
   propagatedBuildInputs = [
     glib
     gnome-online-accounts
     json-glib
-    librest_1_0
     libsoup_3
   ];
 
-  mesonFlags = [
-    # https://gitlab.gnome.org/GNOME/msgraph/-/merge_requests/9
-    "-Dc_args=-Wno-error=format-security"
-  ];
-
   postFixup = ''
     # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
     moveToOutput "share/doc/msgraph-0" "$devdoc"
diff --git a/pkgs/by-name/li/libpkgconf/package.nix b/pkgs/by-name/li/libpkgconf/package.nix
index bfa79f3c25322..ffeb136862df8 100644
--- a/pkgs/by-name/li/libpkgconf/package.nix
+++ b/pkgs/by-name/li/libpkgconf/package.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "pkgconf";
-  version = "2.1.1";
+  version = "2.2.0";
 
   src = fetchurl {
     url = "https://distfiles.dereferenced.org/pkgconf/pkgconf-${finalAttrs.version}.tar.xz";
-    hash = "sha256-OiJPKszwkbd6V4Exbie57juoLAg8wuU54IlAtopE/sU=";
+    hash = "sha256-sG/2OoNTaqjC9kIvqArUXkgz9ZAmb+sU6t3+HUyFPGk=";
   };
 
   outputs = [ "out" "lib" "dev" "man" "doc" ];
diff --git a/pkgs/by-name/li/libui-ng/package.nix b/pkgs/by-name/li/libui-ng/package.nix
index 80e0589ac2c12..51f73ecb69562 100644
--- a/pkgs/by-name/li/libui-ng/package.nix
+++ b/pkgs/by-name/li/libui-ng/package.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libui-ng";
-  version = "4.1-unstable-2024-05-03";
+  version = "4.1-unstable-2024-05-19";
 
   src = fetchFromGitHub {
     owner = "libui-ng";
     repo = "libui-ng";
-    rev = "56f1ad65f0f32bb1eb67a268cca4658fbe4567c1";
-    hash = "sha256-wo4iS/a1ErdipFDPYKvaGpO/JGtk6eU/qMLC4eUoHnA=";
+    rev = "49b04c4cf8ae4d3e38e389f446ef75170eb62762";
+    hash = "sha256-W9LnUBUKwx1x3+BEeUanisBGR2Q4dnbcMM5k8mCondM=";
   };
 
   postPatch = lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) ''
diff --git a/pkgs/by-name/li/licensure/package.nix b/pkgs/by-name/li/licensure/package.nix
index 476b5c18629dd..c569e8e66d2c8 100644
--- a/pkgs/by-name/li/licensure/package.nix
+++ b/pkgs/by-name/li/licensure/package.nix
@@ -8,16 +8,16 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "licensure";
-  version = "0.3.2";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "chasinglogic";
     repo = "licensure";
     rev = version;
-    hash = "sha256-rOD2H9TEoZ8JCjlg6feNQiAjvroVGqrlOkDHNZKXDoE=";
+    hash = "sha256-y72+k3AaR6iT99JJpGs6WZAEyG6CrOZHLqKRj19gLs0=";
   };
 
-  cargoHash = "sha256-ku0SI14pZmbhzE7RnK5kJY6tSMjRVKEMssC9e0Hq6hc=";
+  cargoHash = "sha256-75UNzC+8qjm0A82N63i8YY92wCNQccrS3kIqDlR8pkc=";
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl git gitls ];
 
diff --git a/pkgs/by-name/li/lightningcss/package.nix b/pkgs/by-name/li/lightningcss/package.nix
index b4d74f3bcb8a2..cf4b381ee73f3 100644
--- a/pkgs/by-name/li/lightningcss/package.nix
+++ b/pkgs/by-name/li/lightningcss/package.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "lightningcss";
-  version = "1.25.0";
+  version = "1.25.1";
 
   src = fetchFromGitHub {
     owner = "parcel-bundler";
     repo = "lightningcss";
     rev = "refs/tags/v${version}";
-    hash = "sha256-0no2f4aIJ4f9kSXUdaqjS4ARmVgfV5wqP407WCFeD1g=";
+    hash = "sha256-jmNN2zCAlu3qLKJs8V7/zkpGmQ5wooH9Kbnsi80ffRc=";
   };
 
-  cargoHash = "sha256-P/EP5bKDqGMBfZL+yyUXLjT9YwIpSCruFxkxIbpKIaQ=";
+  cargoHash = "sha256-d5PqkqkHDLXA/5wW7QxSUDEKvejRc3+yn73TnM07lzE=";
 
   patches = [
     # Backport fix for build error for lightningcss-napi
@@ -40,12 +40,12 @@ rustPlatform.buildRustPackage rec {
 
   passthru.updateScript = nix-update-script {};
 
-  meta = with lib; {
+  meta = {
     description = "Extremely fast CSS parser, transformer, and minifier written in Rust";
     homepage = "https://lightningcss.dev/";
     changelog = "https://github.com/parcel-bundler/lightningcss/releases/tag/v${version}";
-    license = licenses.mpl20;
-    maintainers = with maintainers; [ johnrtitor toastal ];
+    license = lib.licenses.mpl20;
+    maintainers = with lib.maintainers; [ johnrtitor toastal ];
     mainProgram = "lightningcss";
     # never built on aarch64-linux since first introduction in nixpkgs
     broken = stdenv.isLinux && stdenv.isAarch64;
diff --git a/pkgs/by-name/li/limine/package.nix b/pkgs/by-name/li/limine/package.nix
index 1a004b42f2107..464c57dce72e0 100644
--- a/pkgs/by-name/li/limine/package.nix
+++ b/pkgs/by-name/li/limine/package.nix
@@ -12,7 +12,7 @@
 }:
 
 let
-  version = "7.5.1";
+  version = "7.5.2";
 in
 # The output of the derivation is a tool to create bootable images using Limine
 # as bootloader for various platforms and corresponding binary and helper files.
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
   # Packaging that in Nix is very cumbersome.
   src = fetchurl {
     url = "https://github.com/limine-bootloader/limine/releases/download/v${version}/limine-${version}.tar.gz";
-    sha256 = "sha256-aWzhUwW4799v0qZDpzzztb2LnfRYwjPXWM2dgpqwYIo=";
+    sha256 = "sha256-l9ax89rNbQs8eNyuljdEXCvY5GRXsN9qzIDrsi76iEg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/li/lint-staged/package.nix b/pkgs/by-name/li/lint-staged/package.nix
index 8366ff1e63728..82a8de430623d 100644
--- a/pkgs/by-name/li/lint-staged/package.nix
+++ b/pkgs/by-name/li/lint-staged/package.nix
@@ -2,16 +2,16 @@
 
 buildNpmPackage rec {
   pname = "lint-staged";
-  version = "15.2.2";
+  version = "15.2.5";
 
   src = fetchFromGitHub {
     owner = "okonet";
     repo = "lint-staged";
     rev = "v${version}";
-    hash = "sha256-gdL/gOAHcgvKUot6MmC1rUMmcrLgLMf1ISc1oPNWJOQ=";
+    hash = "sha256-Mr8Gtm5kXv+ZcLAMCe8JadJwlTRjD29xojN6Tyzdfb8=";
   };
 
-  npmDepsHash = "sha256-32E5y0s6Hm8i74zso/yOmCYWZ6y2Sx4rn8ylSb0c8qE=";
+  npmDepsHash = "sha256-BAVxloOuHodxPLoN5iMQcL04rdmkIEL6UYPnp2HbTe0=";
 
   dontNpmBuild = true;
 
diff --git a/pkgs/by-name/li/live555/package.nix b/pkgs/by-name/li/live555/package.nix
index e8fb1309844b8..2a49aaa0db4dc 100644
--- a/pkgs/by-name/li/live555/package.nix
+++ b/pkgs/by-name/li/live555/package.nix
@@ -10,7 +10,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "live555";
-  version = "2024.05.05";
+  version = "2024.05.15";
 
   src = fetchurl {
     urls = [
@@ -19,7 +19,7 @@ stdenv.mkDerivation (finalAttrs: {
       "https://download.videolan.org/contrib/live555/live.${finalAttrs.version}.tar.gz"
       "mirror://sourceforge/slackbuildsdirectlinks/live.${finalAttrs.version}.tar.gz"
     ];
-    hash = "sha256-jGT1jg5pa4bwIcxUy7/svIhU2HCxx2TNMkWvBfN33nM=";
+    hash = "sha256-Mgkf5XiFBEEDTTx+YlV12wE4zpmPPqaUPv9KcEK38D0=";
   };
 
   patches = [
@@ -38,12 +38,25 @@ stdenv.mkDerivation (finalAttrs: {
     openssl
   ];
 
-  strictDeps = true;
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+    "C_COMPILER=$(CC)"
+    "CPLUSPLUS_COMPILER=$(CXX)"
+    "LIBRARY_LINK=$(AR) cr "
+    "LINK=$(CXX) -o "
+  ];
 
-  # Since NIX_CFLAGS_COMPILE does not differentiate C and C++ toolchains, we
-  # set CXXFLAGS directly
+  # Since NIX_CFLAGS_COMPILE affects both C and C++ toolchains, we set CXXFLAGS
+  # directly
   env.CXXFLAGS = "-std=c++20";
 
+  strictDeps = true;
+
+  enableParallelBuilding = true;
+
+  # required for whitespaces in makeFlags
+  __structuredAttrs = true;
+
   postPatch = ''
     substituteInPlace config.macosx-catalina \
       --replace '/usr/lib/libssl.46.dylib' "${lib.getLib openssl}/lib/libssl.dylib" \
@@ -75,19 +88,6 @@ stdenv.mkDerivation (finalAttrs: {
     runHook postConfigure
   '';
 
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-    "C_COMPILER=$(CC)"
-    "CPLUSPLUS_COMPILER=$(CXX)"
-    "LIBRARY_LINK=$(AR) cr "
-    "LINK=$(CXX) -o "
-  ];
-
-  # required for whitespaces in makeFlags
-  __structuredAttrs = true;
-
-  enableParallelBuilding = true;
-
   passthru.tests = {
     # Downstream dependency
     inherit vlc;
diff --git a/pkgs/by-name/lk/lk-jwt-service/package.nix b/pkgs/by-name/lk/lk-jwt-service/package.nix
new file mode 100644
index 0000000000000..42e4441c6a117
--- /dev/null
+++ b/pkgs/by-name/lk/lk-jwt-service/package.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "lk-jwt-service";
+  version = "0-unstable-2024-04-27";
+
+  src = fetchFromGitHub {
+    owner = "element-hq";
+    repo = "lk-jwt-service";
+    rev = "4a295044a4d0bd2af4474bf6a8a14fd0596ecf9e";
+    hash = "sha256-dN4iJ8P0u5dbZ93mp/FumcvByP7EpQhOvR+Oe4COWXQ=";
+  };
+
+  vendorHash = "sha256-9qOApmmOW+N1L/9hj9tVy0hLIUI36WL2TGWUcM3ajeM=";
+
+  postInstall = ''
+    mv $out/bin/ec-lms $out/bin/lk-jwt-service
+  '';
+
+  meta = with lib; {
+    description = "Minimal service to provide LiveKit JWTs using Matrix OpenID Connect";
+    homepage = "https://github.com/element-hq/lk-jwt-service";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ kilimnik ];
+    mainProgram = "lk-jwt-service";
+  };
+}
diff --git a/pkgs/by-name/ll/llm-ls/package.nix b/pkgs/by-name/ll/llm-ls/package.nix
index d9fb4d6f60f61..1e7aa17f6554b 100644
--- a/pkgs/by-name/ll/llm-ls/package.nix
+++ b/pkgs/by-name/ll/llm-ls/package.nix
@@ -7,7 +7,7 @@
 
 let
   pname = "llm-ls";
-  version = "0.5.2";
+  version = "0.5.3";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -16,10 +16,10 @@ rustPlatform.buildRustPackage {
     owner = "huggingface";
     repo = "llm-ls";
     rev = version;
-    sha256 = "sha256-DyPdx+nNBhOZ86GQljMYULatWny2EteNNzzO6qv1Wlk=";
+    sha256 = "sha256-ICMM2kqrHFlKt2/jmE4gum1Eb32afTJkT3IRoqcjJJ8=";
   };
 
-  cargoHash = "sha256-7McUyQjnCuV0JG65hUoR8TtB4vrjiEO1l7NXYochgG8=";
+  cargoHash = "sha256-Fat67JxTYIkxkdwGNAyTfnuLt8ofUGVJ2609sbn1frU=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/by-name/lm/lmstudio/darwin.nix b/pkgs/by-name/lm/lmstudio/darwin.nix
index 5fa30e699db4a..91c2ce3b4ca9f 100644
--- a/pkgs/by-name/lm/lmstudio/darwin.nix
+++ b/pkgs/by-name/lm/lmstudio/darwin.nix
@@ -10,8 +10,8 @@ stdenv.mkDerivation {
   inherit meta pname version;
 
   src = fetchurl {
-    url = "https://releases.lmstudio.ai/mac/arm64/${version}/b/latest/LM-Studio-${version}-arm64.dmg";
-    hash = "sha256-kb1XoTZjhCL1+CsV+r3/EN0srzIJ43H2VMZ779dVq1k=";
+    url = "https://releases.lmstudio.ai/mac/arm64/${version}/latest/LM-Studio-${version}-arm64.dmg";
+    hash = "sha256-wl3uyRtqY5w8NnESBKcP+CicIh8cCkKmrcVuiijzzTQ=";
   };
 
   nativeBuildInputs = [ undmg ];
diff --git a/pkgs/by-name/lm/lmstudio/linux.nix b/pkgs/by-name/lm/lmstudio/linux.nix
index add6274d36d4a..fce43718b00a7 100644
--- a/pkgs/by-name/lm/lmstudio/linux.nix
+++ b/pkgs/by-name/lm/lmstudio/linux.nix
@@ -8,7 +8,7 @@
 let
   src = fetchurl {
     url = "https://releases.lmstudio.ai/linux/${version}/beta/LM_Studio-${version}.AppImage";
-    hash = "sha256-hcV8wDhulFAxHDBDKicpEGovwcsn9RaIi/idUz+YzD8=";
+    hash = "sha256-1ahPRRgcYfW9eD04yeF4ft+yLn9+nIPOV5Vkv7rMiT8=";
   };
 
   appimageContents = appimageTools.extractType2 { inherit pname version src; };
diff --git a/pkgs/by-name/lm/lmstudio/package.nix b/pkgs/by-name/lm/lmstudio/package.nix
index d18c76acefd7d..4b48cc01ee2a6 100644
--- a/pkgs/by-name/lm/lmstudio/package.nix
+++ b/pkgs/by-name/lm/lmstudio/package.nix
@@ -5,13 +5,13 @@
 }:
 let
   pname = "lmstudio";
-  version = "0.2.22";
+  version = "0.2.24";
   meta = {
     description = "LM Studio is an easy to use desktop app for experimenting with local and open-source Large Language Models (LLMs)";
     homepage = "https://lmstudio.ai/";
     license = lib.licenses.unfree;
     mainProgram = "lmstudio";
-    maintainers = with lib.maintainers; [ drupol eeedean ];
+    maintainers = with lib.maintainers; [ cig0 eeedean ];
     platforms = lib.platforms.linux ++ [ "aarch64-darwin" ];
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
   };
diff --git a/pkgs/by-name/lo/logiops/package.nix b/pkgs/by-name/lo/logiops/package.nix
index fea73c79268b5..cdd75e4963f31 100644
--- a/pkgs/by-name/lo/logiops/package.nix
+++ b/pkgs/by-name/lo/logiops/package.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation (oldAttrs: {
   pname = "logiops";
-  version = "0.3.3";
+  version = "0.3.4";
 
   src = fetchFromGitHub {
     owner = "PixlOne";
     repo = "logiops";
     rev = "v${oldAttrs.version}";
-    sha256 = "sha256-9nFTud5szQN8jpG0e/Bkp+I9ELldfo66SdfVCUTuekg=";
+    sha256 = "sha256-IL7jQA3lGhxVLYCFRgeXdadaBlQr+Op9cedHBlLUCWY=";
     # In v0.3.0, the `ipcgull` submodule was added as a dependency
     # https://github.com/PixlOne/logiops/releases/tag/v0.3.0
     fetchSubmodules = true;
diff --git a/pkgs/by-name/ls/lse/package.nix b/pkgs/by-name/ls/lse/package.nix
new file mode 100644
index 0000000000000..52d050e5ba7c3
--- /dev/null
+++ b/pkgs/by-name/ls/lse/package.nix
@@ -0,0 +1,40 @@
+{
+  lib,
+  stdenv,
+  bash,
+  fetchFromGitHub,
+  makeWrapper,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "lse";
+  version = "4.14nw";
+
+  src = fetchFromGitHub {
+    owner = "diego-treitos";
+    repo = "linux-smart-enumeration";
+    rev = "refs/tags/${version}";
+    hash = "sha256-qGLmrbyeyhHG6ONs7TJLTm68xpvxB1iAnMUApfTSqEk=";
+  };
+
+  buildInputs = [ bash ];
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp lse.sh $out/bin/lse.sh
+    wrapProgram $out/bin/lse.sh \
+      --prefix PATH : ${lib.makeBinPath [ bash ]}
+  '';
+
+  meta = with lib; {
+    description = "Linux enumeration tool with verbosity levels";
+    homepage = "https://github.com/diego-treitos/linux-smart-enumeration";
+    changelog = "https://github.com/diego-treitos/linux-smart-enumeration/releases/tag/${version}";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "lse.sh";
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/by-name/lu/lunar-client/package.nix b/pkgs/by-name/lu/lunar-client/package.nix
index 4a727834f6706..438dce7049f2b 100644
--- a/pkgs/by-name/lu/lunar-client/package.nix
+++ b/pkgs/by-name/lu/lunar-client/package.nix
@@ -6,11 +6,11 @@
 
 appimageTools.wrapType2 rec {
   pname = "lunar-client";
-  version = "3.2.7";
+  version = "3.2.9";
 
   src = fetchurl {
     url = "https://launcherupdates.lunarclientcdn.com/Lunar%20Client-${version}.AppImage";
-    hash = "sha512-dziL9lnpsiJ2BV+jNOhVMvZtYY/K4chyiZB5/fMCw9/4/3Boe/DO7s2steEOhxEsPqUcWaf1Sjs6DFSX/CHUqw==";
+    hash = "sha512-7D7rGYJc6q5cPlgDjWkd76TwJ4QPSf99buoeJOfhP/e/clnWvfmLHK6CaAPAPDnOjijMuAEM9XkDYH8U5tlvMQ==";
   };
 
   extraInstallCommands =
diff --git a/pkgs/by-name/lx/lxd-ui/package.nix b/pkgs/by-name/lx/lxd-ui/package.nix
index 2475a653c3ccc..b200b1ea0d909 100644
--- a/pkgs/by-name/lx/lxd-ui/package.nix
+++ b/pkgs/by-name/lx/lxd-ui/package.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lxd-ui";
-  version = "0.8";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "canonical";
     repo = "lxd-ui";
     rev = "refs/tags/${version}";
-    hash = "sha256-oD/GPm84oFXHcZ8vTUzNgQinrHwNuvpeVjsrp8ibIZY=";
+    hash = "sha256-XLHLWD7iH4A5+MaFYiMILnjPGN565gBRpimFoOJMRtI=";
   };
 
   offlineCache = fetchYarnDeps {
diff --git a/pkgs/by-name/ma/maa-assistant-arknights/fastdeploy-ppocr.nix b/pkgs/by-name/ma/maa-assistant-arknights/fastdeploy-ppocr.nix
index a8a4b2f53160b..8cd3d355091e6 100644
--- a/pkgs/by-name/ma/maa-assistant-arknights/fastdeploy-ppocr.nix
+++ b/pkgs/by-name/ma/maa-assistant-arknights/fastdeploy-ppocr.nix
@@ -23,11 +23,11 @@ effectiveStdenv.mkDerivation (finalAttrs: {
   version = "0-unstable-2023-10-09";
 
   src = fetchFromGitHub {
-    owner = "Cryolitia";
+    owner = "MaaAssistantArknights";
     repo = "FastDeploy";
-    # follows https://github.com/MaaAssistantArknights/MaaDeps/blob/master/vcpkg-overlay/ports/maa-fastdeploy/portfile.cmake#L4
-    rev = "2e68908141f6950bc5d22ba84f514e893cc238ea";
-    hash = "sha256-BWO4lKZhwNG6mbkC70hPgMNjabTnEV5XMo0bLV/gvQs=";
+    # follows but not fully follows https://github.com/MaaAssistantArknights/MaaDeps/blob/master/vcpkg-overlay/ports/maa-fastdeploy/portfile.cmake#L4
+    rev = "0db6000aaac250824266ac37451f43ce272d80a3";
+    hash = "sha256-5TItnPDc5WShpZAgBYeqgI9KKkk3qw/M8HPMlq/H4BM=";
   };
 
   outputs = [ "out" "cmake" ];
diff --git a/pkgs/by-name/ma/maa-assistant-arknights/package.nix b/pkgs/by-name/ma/maa-assistant-arknights/package.nix
index c53c52562db8c..0ba554a04cf71 100644
--- a/pkgs/by-name/ma/maa-assistant-arknights/package.nix
+++ b/pkgs/by-name/ma/maa-assistant-arknights/package.nix
@@ -29,27 +29,6 @@ stdenv.mkDerivation (finalAttr: {
     hash = if isBeta then sources.beta.hash else sources.stable.hash;
   };
 
-  # https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=maa-assistant-arknights
-  postPatch = ''
-    substituteInPlace CMakeLists.txt \
-      --replace-fail 'RUNTIME DESTINATION .' ' ' \
-      --replace-fail 'LIBRARY DESTINATION .' ' ' \
-      --replace-fail 'PUBLIC_HEADER DESTINATION .' ' '
-
-    substituteInPlace CMakeLists.txt \
-      --replace-fail 'find_package(asio ' '# find_package(asio ' \
-      --replace-fail 'asio::asio' ' '
-
-    shopt -s globstar nullglob
-
-    substituteInPlace src/MaaCore/**/{*.h,*.cpp,*.hpp,*.cc} \
-      --replace 'onnxruntime/core/session/' ""
-    substituteInPlace CMakeLists.txt \
-      --replace-fail 'ONNXRuntime' 'onnxruntime'
-
-    cp -v ${fastdeploy.cmake}/Findonnxruntime.cmake cmake/
-  '';
-
   nativeBuildInputs = [
     asio
     cmake
diff --git a/pkgs/by-name/ma/maa-assistant-arknights/pin.json b/pkgs/by-name/ma/maa-assistant-arknights/pin.json
index c6056d3c9deb6..8c2eabfcaefd1 100644
--- a/pkgs/by-name/ma/maa-assistant-arknights/pin.json
+++ b/pkgs/by-name/ma/maa-assistant-arknights/pin.json
@@ -1,10 +1,10 @@
 {
   "stable": {
-    "version": "5.2.3",
-    "hash": "sha256-fjlvP5PPmSSNYefYRrEBVdhbN3yZ0pCbvIe763U5y5o="
+    "version": "5.3.1",
+    "hash": "sha256-4Bz9r4UcaUI5v1upwdD0HclXIUBcNpfnA2iWwofk1zw="
   },
   "beta": {
-    "version": "5.2.3",
-    "hash": "sha256-fjlvP5PPmSSNYefYRrEBVdhbN3yZ0pCbvIe763U5y5o="
+    "version": "5.3.1",
+    "hash": "sha256-4Bz9r4UcaUI5v1upwdD0HclXIUBcNpfnA2iWwofk1zw="
   }
 }
diff --git a/pkgs/by-name/ma/majima/package.nix b/pkgs/by-name/ma/majima/package.nix
index d2ff843cd66af..810936ecf5a00 100644
--- a/pkgs/by-name/ma/majima/package.nix
+++ b/pkgs/by-name/ma/majima/package.nix
@@ -1,16 +1,16 @@
-{ lib, fetchFromGitLab, rustPlatform }:
-rustPlatform.buildRustPackage rec {
+{ lib, fetchFromSourcehut, rustPlatform }:
+rustPlatform.buildRustPackage {
   pname = "majima";
-  version = "0.4.0";
+  version = "0.5.0";
 
-  src = fetchFromGitLab {
-    owner = "gumball-overall";
+  src = fetchFromSourcehut {
+    owner = "~cucumber-zoom";
     repo = "majima";
-    rev = version;
-    hash = "sha256-S62DQfvZFg8C26YG+fIVJj5cJ6mz73JXSgdu5yoK0Yo=";
+    rev = "0f32dceeaf09c082cf33ab31b40d3bfc45aaa6f8";
+    hash = "sha256-P5E0Wiy3mNPRCQ/bsIW4fG7LnPSPRXmW7pnbgl0/lBQ=";
   };
 
-  cargoHash = "sha256-zMQO6McnnGbp52A9n/h6yZTU9VH7vak2TSP0HLqDlKw=";
+  cargoHash = "sha256-sblSlmXkiJkVGbrMU6HgtvYnAd48SlUOgDwB6ASMFsQ=";
 
   meta = {
     description = "Generate random usernames quickly and in various formats";
diff --git a/pkgs/by-name/ma/malwoverview/package.nix b/pkgs/by-name/ma/malwoverview/package.nix
index 9724c4b162be0..4028ae8fac3ce 100644
--- a/pkgs/by-name/ma/malwoverview/package.nix
+++ b/pkgs/by-name/ma/malwoverview/package.nix
@@ -5,7 +5,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "malwoverview";
-  version = "5.4.3";
+  version = "5.4.4";
   pyproject = true;
 
   src = fetchFromGitHub {
diff --git a/pkgs/by-name/ma/marge-bot/package.nix b/pkgs/by-name/ma/marge-bot/package.nix
index b564622271d31..8964ce72264b1 100644
--- a/pkgs/by-name/ma/marge-bot/package.nix
+++ b/pkgs/by-name/ma/marge-bot/package.nix
@@ -16,7 +16,7 @@ python3.pkgs.buildPythonApplication rec {
   };
 
   postPatch = ''
-    substituteInPlace setup.cfg --replace "--flake8 --pylint --cov=marge" ""
+    substituteInPlace setup.cfg --replace-fail "--flake8 --pylint --cov=marge" ""
   '';
 
   nativeBuildInputs = [
@@ -30,12 +30,17 @@ python3.pkgs.buildPythonApplication rec {
     requests
   ];
 
-  nativeCheckInputs = with python3.pkgs; [ pytestCheckHook ];
+  nativeCheckInputs = with python3.pkgs; [ pytestCheckHook pendulum ];
   disabledTests = [
     # test broken when run under Nix:
     #   "unittest.mock.InvalidSpecError: Cannot spec a Mock object."
     "test_get_mr_ci_status"
   ];
+  disabledTestPaths = [
+    # test errors due to API mismatch in test setup:
+    #   "ImportError: cannot import name 'set_test_now' from 'pendulum.helpers'"
+    "tests/test_interval.py"
+  ];
 
   pythonImportsCheck = [ "marge" ];
 
diff --git a/pkgs/by-name/ma/mariadb-connector-java/package.nix b/pkgs/by-name/ma/mariadb-connector-java/package.nix
index b0a805a717e34..d6fed528e1d06 100644
--- a/pkgs/by-name/ma/mariadb-connector-java/package.nix
+++ b/pkgs/by-name/ma/mariadb-connector-java/package.nix
@@ -6,13 +6,13 @@
 
 maven.buildMavenPackage rec {
   pname = "mariadb-connector-java";
-  version = "3.3.3";
+  version = "3.4.0";
 
   src = fetchFromGitHub {
     owner = "mariadb-corporation";
     repo = "mariadb-connector-j";
     rev = "refs/tags/${version}";
-    hash = "sha256-fvqVHjLYLO6reIkQ+SQMEXOw88MDZyNV7T8w0uFgnPg=";
+    hash = "sha256-4DsRTXjSKgC/mz3divnqdioFQnqgQXwRKNv4xxvH0H8=";
   };
 
   mvnHash = "sha256-7O+G5HT6mtp12zWL3Gn12KPVUwp3GMaWGvXX6Sg1+6k=";
diff --git a/pkgs/by-name/ma/matrix-commander-rs/package.nix b/pkgs/by-name/ma/matrix-commander-rs/package.nix
index fb4b808fa16a0..379d8900269cc 100644
--- a/pkgs/by-name/ma/matrix-commander-rs/package.nix
+++ b/pkgs/by-name/ma/matrix-commander-rs/package.nix
@@ -1,10 +1,11 @@
-{ lib
-, stdenv
-, darwin
-, fetchFromGitHub
-, openssl
-, pkg-config
-, rustPlatform
+{
+  lib,
+  stdenv,
+  darwin,
+  fetchFromGitHub,
+  openssl,
+  pkg-config,
+  rustPlatform,
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -20,16 +21,14 @@ rustPlatform.buildRustPackage rec {
 
   cargoHash = "sha256-2biUWLWE0XtmB79yxFahQqLmqwH/6q50IhkcbUrBifU=";
 
-  nativeBuildInputs = [
-    pkg-config
-  ];
+  nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [
-    openssl
-  ] ++ lib.optionals stdenv.isDarwin [
-    darwin.apple_sdk.frameworks.Security
-    darwin.apple_sdk.frameworks.SystemConfiguration
-  ];
+  buildInputs =
+    [ openssl ]
+    ++ lib.optionals stdenv.isDarwin [
+      darwin.apple_sdk.frameworks.Security
+      darwin.apple_sdk.frameworks.SystemConfiguration
+    ];
 
   meta = with lib; {
     description = "CLI-based Matrix client app for sending and receiving";
diff --git a/pkgs/by-name/ma/matrix-media-repo/package.nix b/pkgs/by-name/ma/matrix-media-repo/package.nix
new file mode 100644
index 0000000000000..63e0f87d073f9
--- /dev/null
+++ b/pkgs/by-name/ma/matrix-media-repo/package.nix
@@ -0,0 +1,68 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, pkg-config
+, libde265
+, libheif
+}:
+let
+  pname = "matrix-media-repo";
+  version = "1.3.4";
+
+  src = fetchFromGitHub {
+    owner = "t2bot";
+    repo = "matrix-media-repo";
+    rev = "v${version}";
+    hash = "sha256-wC69OiB3HjRs/i46+E1YS+M4zKmvH5vENHyfgU7nt1I=";
+  };
+
+  vendorHash = "sha256-STzpKqn47qS0iogVYhFl4QBfKUtnqgxobqv1WaW6UtQ=";
+
+  asset-compiler = buildGoModule {
+    pname = "${pname}-compile_assets";
+    inherit version src vendorHash;
+
+    subPackages = [
+      "cmd/utilities/compile_assets"
+    ];
+  };
+in
+
+buildGoModule {
+  inherit pname version src vendorHash;
+
+  patches = [
+    ./synapse-import-u+x.patch
+  ];
+
+  nativeBuildInputs = [
+    pkg-config
+    asset-compiler
+  ];
+
+  buildInputs = [
+    libde265
+    libheif
+  ];
+
+  preBuild = ''
+    compile_assets
+  '';
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X" "github.com/t2bot/matrix-media-repo/common/version.Version=${version}"
+  ];
+
+  doCheck = false; # requires docker
+
+  meta = with lib; {
+    description = "Highly configurable multi-domain media repository for Matrix";
+    homepage = "https://github.com/t2bot/matrix-media-repo";
+    changelog = "https://github.com/t2bot/matrix-media-repo/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+    mainProgram = "media_repo";
+  };
+}
diff --git a/pkgs/by-name/ma/matrix-media-repo/synapse-import-u+x.patch b/pkgs/by-name/ma/matrix-media-repo/synapse-import-u+x.patch
new file mode 100644
index 0000000000000..e2be0bfde49ad
--- /dev/null
+++ b/pkgs/by-name/ma/matrix-media-repo/synapse-import-u+x.patch
@@ -0,0 +1,22 @@
+diff --git a/cmd/homeserver_offline_exporters/import_to_synapse/main.go b/cmd/homeserver_offline_exporters/import_to_synapse/main.go
+index 3c7db1e..c6cba4f 100644
+--- a/cmd/homeserver_offline_exporters/import_to_synapse/main.go
++++ b/cmd/homeserver_offline_exporters/import_to_synapse/main.go
+@@ -78,7 +78,7 @@ func main() {
+ 
+ 		ctx.Log.Infof("Copying %s", mxc)
+ 		directories := path.Join(cfg.ExportPath, "local_content", record.MediaId[0:2], record.MediaId[2:4])
+-		err = os.MkdirAll(directories, 0655)
++		err = os.MkdirAll(directories, 0755)
+ 		if err != nil {
+ 			return err
+ 		}
+@@ -134,7 +134,7 @@ func main() {
+ 				dirLock.Lock()
+ 				defer dirLock.Unlock()
+ 				thumbDir := path.Join(cfg.ExportPath, "local_thumbnails", record.MediaId[0:2], record.MediaId[2:4], record.MediaId[4:])
+-				err = os.MkdirAll(thumbDir, 0655)
++				err = os.MkdirAll(thumbDir, 0755)
+ 				if err != nil {
+ 					ctx.Log.Warn("Error creating thumbnail directories. ", s, err)
+ 					return
diff --git a/pkgs/by-name/ma/matugen/package.nix b/pkgs/by-name/ma/matugen/package.nix
index f2b80a0a76adb..d739ed720ef04 100644
--- a/pkgs/by-name/ma/matugen/package.nix
+++ b/pkgs/by-name/ma/matugen/package.nix
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A material you color generation tool";
-    homepage = "git@github.com:InioX/matugen.git";
+    homepage = "https://github.com/InioX/matugen";
     changelog = "https://github.com/InioX/matugen/blob/${src.rev}/CHANGELOG.md";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ lampros ];
diff --git a/pkgs/by-name/me/mediasynclite/package.nix b/pkgs/by-name/me/mediasynclite/package.nix
new file mode 100644
index 0000000000000..8d2725997b0c5
--- /dev/null
+++ b/pkgs/by-name/me/mediasynclite/package.nix
@@ -0,0 +1,54 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gtk3
+, glib
+, gsettings-desktop-schemas
+, pkg-config
+, curl
+, openssl
+, jansson
+, wrapGAppsHook3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "mediasynclite";
+  version = "0.4.2";
+
+  src = fetchFromGitHub {
+    owner = "iBroadcastMediaServices";
+    repo = "MediaSyncLiteLinux";
+    rev = version;
+    hash = "sha256-ToSkR6tPJMBCcj1NUBAywKjCAPlpmh+ngIopFrT2PIA=";
+  };
+
+  buildInputs = [
+    curl
+    glib
+    gtk3
+    openssl
+    jansson
+  ];
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    gsettings-desktop-schemas
+    pkg-config
+    wrapGAppsHook3
+  ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  postPatch = ''
+    substitute ./src/ibmsl.c ./src/ibmsl.c --subst-var out
+  '';
+
+  meta = with lib; {
+    description = "A Linux-native graphical uploader for iBroadcast";
+    downloadPage = "https://github.com/tobz619/MediaSyncLiteLinuxNix";
+    homepage = "https://github.com/iBroadcastMediaServices/MediaSyncLiteLinux";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ tobz619 ];
+  };
+}
diff --git a/pkgs/by-name/me/meson/007-Allow-building-via-ninja-12.patch b/pkgs/by-name/me/meson/007-Allow-building-via-ninja-12.patch
new file mode 100644
index 0000000000000..009d826aab036
--- /dev/null
+++ b/pkgs/by-name/me/meson/007-Allow-building-via-ninja-12.patch
@@ -0,0 +1,190 @@
+From 8e46d3e37f81bf13f3f62a14fb603feb2e37229d Mon Sep 17 00:00:00 2001
+From: John Titor <50095635+JohnRTitor@users.noreply.github.com>
+Date: Fri, 10 May 2024 23:25:58 +0530
+Subject: [PATCH] Fix builds with Ninja 12 and remove a 5 year old workaround.
+
+Co-authored-by: Jussi Pakkanen <jpakkane@gmail.com>
+Co-authored-by: Masum Reza <masumrezarock100@gmail.com>
+---
+ run_project_tests.py           |  3 +--
+ run_tests.py                   | 35 ++++++++++------------------------
+ unittests/baseplatformtests.py | 34 +++++++++++++++++++++++++++------
+ 3 files changed, 39 insertions(+), 33 deletions(-)
+
+diff --git a/run_project_tests.py b/run_project_tests.py
+index a14741364..222e12f74 100755
+--- a/run_project_tests.py
++++ b/run_project_tests.py
+@@ -45,7 +45,7 @@ from mesonbuild.coredata import backendlist, version as meson_version
+ from mesonbuild.modules.python import PythonExternalProgram
+ from run_tests import (
+     get_fake_options, run_configure, get_meson_script, get_backend_commands,
+-    get_backend_args_for_dir, Backend, ensure_backend_detects_changes,
++    get_backend_args_for_dir, Backend,
+     guess_backend, handle_meson_skip_test,
+ )
+ 
+@@ -720,7 +720,6 @@ def _run_test(test: TestDef,
+ 
+     # Touch the meson.build file to force a regenerate
+     def force_regenerate() -> None:
+-        ensure_backend_detects_changes(backend)
+         os.utime(str(test.path / 'meson.build'))
+ 
+     # just test building
+diff --git a/run_tests.py b/run_tests.py
+index 207653219..0c51f3d69 100755
+--- a/run_tests.py
++++ b/run_tests.py
+@@ -39,29 +39,27 @@ from mesonbuild.mesonlib import OptionKey, setup_vsenv
+ if T.TYPE_CHECKING:
+     from mesonbuild.coredata import SharedCMDOptions
+ 
+-NINJA_1_9_OR_NEWER = False
++NINJA_1_12_OR_NEWER = False
+ NINJA_CMD = None
+ # If we're on CI, detecting ninja for every subprocess unit test that we run is slow
+ # Optimize this by respecting $NINJA and skipping detection, then exporting it on
+ # first run.
+ try:
+-    NINJA_1_9_OR_NEWER = bool(int(os.environ['NINJA_1_9_OR_NEWER']))
++    NINJA_1_12_OR_NEWER = bool(int(os.environ['NINJA_1_12_OR_NEWER']))
+     NINJA_CMD = [os.environ['NINJA']]
+ except (KeyError, ValueError):
+-    # Look for 1.9 to see if https://github.com/ninja-build/ninja/issues/1219
+-    # is fixed
+-    NINJA_CMD = detect_ninja('1.9')
++    # Look for 1.12, which removes -w dupbuild=err
++    NINJA_CMD = detect_ninja('1.12')
+     if NINJA_CMD is not None:
+-        NINJA_1_9_OR_NEWER = True
++        NINJA_1_12_OR_NEWER = True
+     else:
+-        mlog.warning('Found ninja <1.9, tests will run slower', once=True)
+         NINJA_CMD = detect_ninja()
+ 
+ if NINJA_CMD is not None:
+-    os.environ['NINJA_1_9_OR_NEWER'] = str(int(NINJA_1_9_OR_NEWER))
++    os.environ['NINJA_1_12_OR_NEWER'] = str(int(NINJA_1_12_OR_NEWER))
+     os.environ['NINJA'] = NINJA_CMD[0]
+ else:
+-    raise RuntimeError('Could not find Ninja v1.7 or newer')
++    raise RuntimeError('Could not find Ninja.')
+ 
+ # Emulate running meson with -X utf8 by making sure all open() calls have a
+ # sane encoding. This should be a python default, but PEP 540 considered it not
+@@ -271,7 +269,9 @@ def get_backend_commands(backend: Backend, debug: bool = False) -> \
+         test_cmd = cmd + ['-target', 'RUN_TESTS']
+     elif backend is Backend.ninja:
+         global NINJA_CMD
+-        cmd = NINJA_CMD + ['-w', 'dupbuild=err', '-d', 'explain']
++        cmd = NINJA_CMD + ['-d', 'explain']
++        if not NINJA_1_12_OR_NEWER:
++            cmd += ['-w', 'dupbuild=err']
+         if debug:
+             cmd += ['-v']
+         clean_cmd = cmd + ['clean']
+@@ -282,21 +282,6 @@ def get_backend_commands(backend: Backend, debug: bool = False) -> \
+         raise AssertionError(f'Unknown backend: {backend!r}')
+     return cmd, clean_cmd, test_cmd, install_cmd, uninstall_cmd
+ 
+-def ensure_backend_detects_changes(backend: Backend) -> None:
+-    global NINJA_1_9_OR_NEWER
+-    if backend is not Backend.ninja:
+-        return
+-    need_workaround = False
+-    # We're using ninja >= 1.9 which has QuLogic's patch for sub-1s resolution
+-    # timestamps
+-    if not NINJA_1_9_OR_NEWER:
+-        mlog.warning('Don\'t have ninja >= 1.9, enabling timestamp resolution workaround', once=True)
+-        need_workaround = True
+-    # Increase the difference between build.ninja's timestamp and the timestamp
+-    # of whatever you changed: https://github.com/ninja-build/ninja/issues/371
+-    if need_workaround:
+-        time.sleep(1)
+-
+ def run_mtest_inprocess(commandlist: T.List[str]) -> T.Tuple[int, str, str]:
+     out = StringIO()
+     with mock.patch.object(sys, 'stdout', out), mock.patch.object(sys, 'stderr', out):
+diff --git a/unittests/baseplatformtests.py b/unittests/baseplatformtests.py
+index 6125ed933..226b2e11e 100644
+--- a/unittests/baseplatformtests.py
++++ b/unittests/baseplatformtests.py
+@@ -1,6 +1,8 @@
+ # SPDX-License-Identifier: Apache-2.0
+ # Copyright 2016-2021 The Meson development team
++# Copyright © 2024 Intel Corporation
+ 
++from __future__ import annotations
+ from pathlib import PurePath
+ from unittest import mock, TestCase, SkipTest
+ import json
+@@ -9,6 +11,7 @@ import os
+ import re
+ import subprocess
+ import sys
++import shutil
+ import tempfile
+ import typing as T
+ 
+@@ -28,7 +31,7 @@ import mesonbuild.modules.pkgconfig
+ 
+ 
+ from run_tests import (
+-    Backend, ensure_backend_detects_changes, get_backend_commands,
++    Backend, get_backend_commands,
+     get_builddir_target_args, get_meson_script, run_configure_inprocess,
+     run_mtest_inprocess, handle_meson_skip_test,
+ )
+@@ -286,11 +289,11 @@ class BasePlatformTests(TestCase):
+         '''
+         return self.build(target=target, override_envvars=override_envvars)
+ 
+-    def setconf(self, arg, will_build=True):
+-        if not isinstance(arg, list):
++    def setconf(self, arg: T.Sequence[str], will_build: bool = True) -> None:
++        if isinstance(arg, str):
+             arg = [arg]
+-        if will_build:
+-            ensure_backend_detects_changes(self.backend)
++        else:
++            arg = list(arg)
+         self._run(self.mconf_command + arg + [self.builddir])
+ 
+     def getconf(self, optname: str):
+@@ -304,7 +307,6 @@ class BasePlatformTests(TestCase):
+         windows_proof_rmtree(self.builddir)
+ 
+     def utime(self, f):
+-        ensure_backend_detects_changes(self.backend)
+         os.utime(f)
+ 
+     def get_compdb(self):
+@@ -492,3 +494,23 @@ class BasePlatformTests(TestCase):
+ 
+     def assertLength(self, val, length):
+         assert len(val) == length, f'{val} is not length {length}'
++
++    def copy_srcdir(self, srcdir: str) -> str:
++        """Copies a source tree and returns that copy.
++
++        ensures that the copied tree is deleted after running.
++
++        :param srcdir: The locaiton of the source tree to copy
++        :return: The location of the copy
++        """
++        dest = tempfile.mkdtemp()
++        self.addCleanup(windows_proof_rmtree, dest)
++
++        # shutil.copytree expects the destinatin directory to not exist, Once
++        # python 3.8 is required the `dirs_exist_ok` parameter negates the need
++        # for this
++        dest = os.path.join(dest, 'subdir')
++
++        shutil.copytree(srcdir, dest)
++
++        return dest
+\ No newline at end of file
+-- 
+2.44.0
+
diff --git a/pkgs/by-name/me/meson/007-freebsd-pkgconfig-path.patch b/pkgs/by-name/me/meson/007-freebsd-pkgconfig-path.patch
new file mode 100644
index 0000000000000..3a9ba6f092dda
--- /dev/null
+++ b/pkgs/by-name/me/meson/007-freebsd-pkgconfig-path.patch
@@ -0,0 +1,15 @@
+diff -ur a/mesonbuild/modules/pkgconfig.py b/mesonbuild/modules/pkgconfig.py
+--- a/mesonbuild/modules/pkgconfig.py	2024-05-17 17:52:30.880877000 -0700
++++ b/mesonbuild/modules/pkgconfig.py	2024-05-17 17:53:10.901068000 -0700
+@@ -693,10 +693,7 @@
+         pcfile = filebase + '.pc'
+         pkgroot = pkgroot_name = kwargs['install_dir'] or default_install_dir
+         if pkgroot is None:
+-            if mesonlib.is_freebsd():
+-                pkgroot = os.path.join(_as_str(state.environment.coredata.get_option(mesonlib.OptionKey('prefix'))), 'libdata', 'pkgconfig')
+-                pkgroot_name = os.path.join('{prefix}', 'libdata', 'pkgconfig')
+-            elif mesonlib.is_haiku():
++            if mesonlib.is_haiku():
+                 pkgroot = os.path.join(_as_str(state.environment.coredata.get_option(mesonlib.OptionKey('prefix'))), 'develop', 'lib', 'pkgconfig')
+                 pkgroot_name = os.path.join('{prefix}', 'develop', 'lib', 'pkgconfig')
+             else:
diff --git a/pkgs/by-name/me/meson/package.nix b/pkgs/by-name/me/meson/package.nix
index b2c85c431e01d..5598baeb81ef4 100644
--- a/pkgs/by-name/me/meson/package.nix
+++ b/pkgs/by-name/me/meson/package.nix
@@ -66,9 +66,16 @@ python3.pkgs.buildPythonApplication rec {
     # Nixpkgs cctools does not have bitcode support.
     ./006-disable-bitcode.patch
 
+    # This edge case is explicitly part of meson but is wrong for nix
+    ./007-freebsd-pkgconfig-path.patch
+
     # Fix cross-compilation of proc-macro (and mesa)
     # https://github.com/mesonbuild/meson/issues/12973
     ./0001-Revert-rust-recursively-pull-proc-macro-dependencies.patch
+
+    # Fix compilation of Meson using Ninja 1.12
+    # FIXME: remove in the next point release
+    ./007-Allow-building-via-ninja-12.patch
   ];
 
   buildInputs = lib.optionals (python3.pythonOlder "3.9") [
@@ -106,7 +113,7 @@ python3.pkgs.buildPythonApplication rec {
     ''
   ]
   # Remove problematic tests
-  ++ (builtins.map (f: ''rm -vr "${f}";'') [
+  ++ (builtins.map (f: ''rm -vr "${f}";'') ([
     # requires git, creating cyclic dependency
     ''test cases/common/66 vcstag''
     # requires glib, creating cyclic dependency
@@ -116,7 +123,10 @@ python3.pkgs.buildPythonApplication rec {
     ''test cases/linuxlike/14 static dynamic linkage''
     # Nixpkgs cctools does not have bitcode support.
     ''test cases/osx/7 bitcode''
-  ])
+  ] ++ lib.optionals stdenv.isFreeBSD [
+    # pch doesn't work quite right on FreeBSD, I think
+    ''test cases/common/13 pch''
+  ]))
   ++ [
     ''HOME="$TMPDIR" python ./run_project_tests.py''
     "runHook postCheck"
diff --git a/pkgs/by-name/me/meson/setup-hook.sh b/pkgs/by-name/me/meson/setup-hook.sh
index 85849fbec734a..3f3c7ac59fdea 100644
--- a/pkgs/by-name/me/meson/setup-hook.sh
+++ b/pkgs/by-name/me/meson/setup-hook.sh
@@ -56,7 +56,7 @@ mesonCheckPhase() {
     local flagsArray=($mesonCheckFlags "${mesonCheckFlagsArray[@]}")
 
     echoCmd 'mesonCheckPhase flags' "${flagsArray[@]}"
-    meson test --no-rebuild "${flagsArray[@]}"
+    meson test --no-rebuild --print-errorlogs "${flagsArray[@]}"
 
     runHook postCheck
 }
diff --git a/pkgs/by-name/mi/mini-calc/package.nix b/pkgs/by-name/mi/mini-calc/package.nix
index d240aa7bbe694..6c968a97b418c 100644
--- a/pkgs/by-name/mi/mini-calc/package.nix
+++ b/pkgs/by-name/mi/mini-calc/package.nix
@@ -9,16 +9,16 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "mini-calc";
-  version = "3.0.1";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "coco33920";
     repo = "calc";
     rev = version;
-    hash = "sha256-vQQ0JKqNhcJ4UhbPzg3OmA2lmZ3HqNB3Ag68OffIXt0=";
+    hash = "sha256-wROeUi1j5oEUpr7nRge6bRUO0E8W2E34M7DeyK0xmjM=";
   };
 
-  cargoHash = "sha256-PfhcQnAWK8/R+HTx/iHibqMvpjPDKUZssDbO9XgkOuk=";
+  cargoHash = "sha256-QPkaSJNoxnheECwcK129+PNeRm6+DFOw1wmwBev6oXc=";
 
   nativeBuildInputs = [ makeWrapper ];
   postFixup = ''
diff --git a/pkgs/by-name/mi/misconfig-mapper/package.nix b/pkgs/by-name/mi/misconfig-mapper/package.nix
index ab4945b3a9088..8d081453481fe 100644
--- a/pkgs/by-name/mi/misconfig-mapper/package.nix
+++ b/pkgs/by-name/mi/misconfig-mapper/package.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "misconfig-mapper";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "intigriti";
     repo = "misconfig-mapper";
     rev = "refs/tags/v${version}";
-    hash = "sha256-sG0irM7IdXxWrexN4vR+e8V0KeW+9c7umKj0hnIZwLs=";
+    hash = "sha256-LrXx5OFpF+qsEhblBaXqsSGtw/Kp9FqjouCbMywpKg0=";
   };
 
   vendorHash = "sha256-lkVTgnWdk9eW6QtKScK8NckcXGzsHeIwjSoUx85AGU8=";
diff --git a/pkgs/by-name/ml/mlx42/package.nix b/pkgs/by-name/ml/mlx42/package.nix
index 3387dec3378d5..31df5cf11e179 100644
--- a/pkgs/by-name/ml/mlx42/package.nix
+++ b/pkgs/by-name/ml/mlx42/package.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , glfw
 , darwin
diff --git a/pkgs/tools/misc/mods/default.nix b/pkgs/by-name/mo/mods/package.nix
index 331992986264f..a653fb3de0c4c 100644
--- a/pkgs/tools/misc/mods/default.nix
+++ b/pkgs/by-name/mo/mods/package.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildGoModule
-, fetchFromGitHub
-, gitUpdater
-, testers
-, mods
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+  gitUpdater,
+  testers,
+  mods,
 }:
 
 buildGoModule rec {
@@ -19,7 +20,14 @@ buildGoModule rec {
 
   vendorHash = "sha256-BL5bxyeVkcm7GO1Kzk9d/hj2wY50UhauEFq9YQ/JbCE=";
 
-  ldflags = [ "-s" "-w" "-X=main.Version=${version}" ];
+  ldflags = [
+    "-s"
+    "-w"
+    "-X=main.Version=${version}"
+  ];
+
+  # These tests require internet access.
+  checkFlags = [ "-skip=^TestLoad/http_url$|^TestLoad/https_url$" ];
 
   passthru = {
     updateScript = gitUpdater {
diff --git a/pkgs/by-name/mo/mommy/package.nix b/pkgs/by-name/mo/mommy/package.nix
index 8d21870685147..280b8caae9969 100644
--- a/pkgs/by-name/mo/mommy/package.nix
+++ b/pkgs/by-name/mo/mommy/package.nix
@@ -4,7 +4,6 @@
 , makeWrapper
 , writeText
 , shellspec
-, fetchpatch
   # usage:
   # pkgs.mommy.override {
   #  mommySettings.sweetie = "catgirl";
diff --git a/pkgs/tools/networking/mpack/CVE-2011-4919.patch b/pkgs/by-name/mp/mpack/CVE-2011-4919.patch
index 10b9a1116ef39..10b9a1116ef39 100644
--- a/pkgs/tools/networking/mpack/CVE-2011-4919.patch
+++ b/pkgs/by-name/mp/mpack/CVE-2011-4919.patch
diff --git a/pkgs/tools/networking/mpack/build-fix.patch b/pkgs/by-name/mp/mpack/build-fix.patch
index 0329bedd07f39..0329bedd07f39 100644
--- a/pkgs/tools/networking/mpack/build-fix.patch
+++ b/pkgs/by-name/mp/mpack/build-fix.patch
diff --git a/pkgs/tools/networking/mpack/default.nix b/pkgs/by-name/mp/mpack/package.nix
index 669ef500c4556..d428fbe664c92 100644
--- a/pkgs/tools/networking/mpack/default.nix
+++ b/pkgs/by-name/mp/mpack/package.nix
@@ -1,4 +1,10 @@
-{ lib, stdenv, fetchurl }:
+{
+  lib,
+  stdenv,
+  fetchurl,
+  testers,
+  mpack,
+}:
 
 stdenv.mkDerivation rec {
   pname = "mpack";
@@ -9,7 +15,11 @@ stdenv.mkDerivation rec {
     sha256 = "0k590z96509k96zxmhv72gkwhrlf55jkmyqlzi72m61r7axhhh97";
   };
 
-  patches = [ ./build-fix.patch ./sendmail-via-execvp.diff ./CVE-2011-4919.patch ];
+  patches = [
+    ./build-fix.patch
+    ./sendmail-via-execvp.diff
+    ./CVE-2011-4919.patch
+  ];
 
   postPatch = ''
     for f in *.{c,man,pl,unix} ; do
@@ -28,9 +38,20 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.tests = {
+    version = testers.testVersion {
+      command = ''
+        mpack 2>&1 || echo "mpack exited with error code $?"
+      '';
+      package = mpack;
+      version = "mpack version ${version}";
+    };
+  };
+
   meta = with lib; {
     description = "Utilities for encoding and decoding binary files in MIME";
     license = licenses.free;
     platforms = platforms.linux;
+    maintainers = with maintainers; [ tomodachi94 ];
   };
 }
diff --git a/pkgs/tools/networking/mpack/sendmail-via-execvp.diff b/pkgs/by-name/mp/mpack/sendmail-via-execvp.diff
index 8f10901038d6b..8f10901038d6b 100644
--- a/pkgs/tools/networking/mpack/sendmail-via-execvp.diff
+++ b/pkgs/by-name/mp/mpack/sendmail-via-execvp.diff
diff --git a/pkgs/by-name/my/myks/package.nix b/pkgs/by-name/my/myks/package.nix
index 0205401138f97..630a473fdc5b3 100644
--- a/pkgs/by-name/my/myks/package.nix
+++ b/pkgs/by-name/my/myks/package.nix
@@ -9,13 +9,13 @@
 
 buildGoModule rec {
   pname = "myks";
-  version = "4.1.1";
+  version = "4.1.2";
 
   src = fetchFromGitHub {
     owner = "mykso";
     repo = "myks";
     rev = "refs/tags/v${version}";
-    hash = "sha256-IJlSryyNQFubjBQJ59Gl5Wn3eniwZ0svbGAxLKIrCt4=";
+    hash = "sha256-ZRbirNhTEGqr6OCE0K873NJ5vI2Phe5z9XJGZUALISo=";
   };
 
   vendorHash = "sha256-u9dNmgFMn6OMkKgTwNSqizUHJwvRk+S1xKZDozWjbps=";
diff --git a/pkgs/by-name/na/namespace-cli/package.nix b/pkgs/by-name/na/namespace-cli/package.nix
index 30812bd5ad164..c3e2c2f530652 100644
--- a/pkgs/by-name/na/namespace-cli/package.nix
+++ b/pkgs/by-name/na/namespace-cli/package.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "namespace-cli";
-  version = "0.0.371";
+  version = "0.0.372";
 
   src = fetchFromGitHub {
     owner = "namespacelabs";
     repo = "foundation";
     rev = "v${version}";
-    hash = "sha256-5cP5Z2VDxpBneDX+jhciaNrtDGi8XDm7DhhRBKh6ACU=";
+    hash = "sha256-rAu/kVaIBc50yDlsCIjcyy4pD6MYuagoF2fEte/+iQw=";
   };
 
   vendorHash = "sha256-72cHswoTZszo42NOrPNuokDlqoJ3/YEhGe+rQSKvgAw=";
diff --git a/pkgs/by-name/ne/nekoray/package.nix b/pkgs/by-name/ne/nekoray/package.nix
index 1fda18056a6eb..5b648feddb1cc 100644
--- a/pkgs/by-name/ne/nekoray/package.nix
+++ b/pkgs/by-name/ne/nekoray/package.nix
@@ -96,6 +96,7 @@ stdenv.mkDerivation (finalAttrs: {
   buildInputs = [
     libsForQt5.qtbase
     libsForQt5.qttools
+    libsForQt5.qtwayland
     libsForQt5.qtx11extras
     protobuf
     yaml-cpp
diff --git a/pkgs/by-name/ne/neovide/package.nix b/pkgs/by-name/ne/neovide/package.nix
index ce9b091add820..a4c8791c5aa6d 100644
--- a/pkgs/by-name/ne/neovide/package.nix
+++ b/pkgs/by-name/ne/neovide/package.nix
@@ -26,16 +26,16 @@
 
 rustPlatform.buildRustPackage.override { stdenv = clangStdenv; } rec {
   pname = "neovide";
-  version = "0.12.2";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "neovide";
     repo = "neovide";
     rev = version;
-    sha256 = "sha256-M19LKNjUmC0WkVGm4t7vjxgMMe0FdMTmB1mLcG33OUg=";
+    sha256 = "sha256-lYahMSaagT6DloFMXT2lLPM1xX/9IEGNIPvbo1MQgSw=";
   };
 
-  cargoHash = "sha256-2fPprZVT7V+Ot8aCpWj6WTdyFylmzlujFdTJCrtE0rk=";
+  cargoHash = "sha256-g/Ezyz2gC1YaPMdIy/WdoOvezJUH3aB2FA87viahRzc=";
 
   SKIA_SOURCE_DIR =
     let
@@ -43,8 +43,8 @@ rustPlatform.buildRustPackage.override { stdenv = clangStdenv; } rec {
         owner = "rust-skia";
         repo = "skia";
         # see rust-skia:skia-bindings/Cargo.toml#package.metadata skia
-        rev = "m119-0.67.3";
-        sha256 = "sha256-U75NuJnQa5+SNlOrsBmdlvflGdjo3el63EeIsbnE7ms=";
+        rev = "m124-0.72.3";
+        sha256 = "sha256-zlHUJUXukE4CsXwwmVl3KHf9mnNPT8lC/ETEE15Gb4s=";
       };
       # The externals for skia are taken from skia/DEPS
       externals = linkFarm "skia-externals" (lib.mapAttrsToList
diff --git a/pkgs/by-name/ne/neovide/skia-externals.json b/pkgs/by-name/ne/neovide/skia-externals.json
index e57814e2a2d87..9a71fd62899ff 100644
--- a/pkgs/by-name/ne/neovide/skia-externals.json
+++ b/pkgs/by-name/ne/neovide/skia-externals.json
@@ -16,13 +16,13 @@
   },
   "zlib": {
     "url": "https://chromium.googlesource.com/chromium/src/third_party/zlib",
-    "rev": "c876c8f87101c5a75f6014b0f832499afeb65b73",
-    "sha256": "sha256-mwozVo8ymyrYN4tw+/ZnSI+xogSTZQ6PUBba/jQqRkE="
+    "rev": "646b7f569718921d7d4b5b8e22572ff6c76f2596",
+    "sha256": "sha256-jNj6SuTZ5/a7crtYhxW3Q/TlfRMNMfYIVxDlr7bYdzQ="
   },
   "harfbuzz": {
     "url": "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git",
-    "rev": "4cfc6d8e173e800df086d7be078da2e8c5cfca19",
-    "sha256": "sha256-rrstyAz7Eb8ZgFJZKUASY8nU4YFZAptd5VS9B2cs2Yg="
+    "rev": "c053e8f29257814e11ad61493dbbe29f27656de4",
+    "sha256": "sha256-D8DNcZH/oiJqWvfWFHvQ8AwQ3OrMwyZdfGmZ5y30Hvg="
   },
   "wuffs": {
     "url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git",
@@ -31,7 +31,7 @@
   },
   "libpng": {
     "url": "https://skia.googlesource.com/third_party/libpng.git",
-    "rev": "386707c6d19b974ca2e3db7f5c61873813c6fe44",
-    "sha256": "sha256-67kf5MBsnBBi0bOfX/RKL52xpaCWm/ampltAI+EeQ+c="
+    "rev": "144b348e072a78e8130ed0acc452c9f039a67bf2",
+    "sha256": "sha256-eTF7q7hR4S1OqV2oPQKmcHujA5Od4rGMc5879kT0SkE="
   }
 }
diff --git a/pkgs/by-name/ne/neovim-unwrapped/package.nix b/pkgs/by-name/ne/neovim-unwrapped/package.nix
index 0dd8ca8a0877b..bd25ac1c36f84 100644
--- a/pkgs/by-name/ne/neovim-unwrapped/package.nix
+++ b/pkgs/by-name/ne/neovim-unwrapped/package.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv, fetchFromGitHub, removeReferencesTo, cmake, gettext, msgpack-c, libtermkey, libiconv
-, libuv, lua, ncurses, pkg-config
-, unibilium, gperf
+{ lib, stdenv, fetchFromGitHub, removeReferencesTo, cmake, gettext, msgpack-c, libiconv
+, libuv, lua, pkg-config
+, unibilium
 , libvterm-neovim
 , tree-sitter
 , fetchurl
@@ -66,7 +66,7 @@ stdenv.mkDerivation (finalAttrs:
 
 in {
     pname = "neovim-unwrapped";
-    version = "0.9.5";
+    version = "0.10.0";
 
     __structuredAttrs = true;
 
@@ -74,7 +74,7 @@ in {
       owner = "neovim";
       repo = "neovim";
       rev = "v${finalAttrs.version}";
-      hash = "sha256-CcaBqA0yFCffNPmXOJTo8c9v1jrEBiqAl8CG5Dj5YxE=";
+      hash = "sha256-FCOipXHkAbkuFw9JjEpOIJ8BkyMkjkI0Dp+SzZ4yZlw=";
     };
 
     patches = [
@@ -86,11 +86,13 @@ in {
 
     dontFixCmake = true;
 
-    inherit lua treesitter-parsers;
+    inherit lua;
+    treesitter-parsers = treesitter-parsers //
+      { markdown = treesitter-parsers.markdown // { location = "tree-sitter-markdown"; }; } //
+      { markdown_inline = treesitter-parsers.markdown // { language = "markdown_inline"; location = "tree-sitter-markdown-inline"; }; }
+      ;
 
     buildInputs = [
-      gperf
-      libtermkey
       libuv
       libvterm-neovim
       # This is actually a c library, hence it's not included in neovimLuaEnv,
@@ -99,7 +101,6 @@ in {
       # and it's definition at: pkgs/development/lua-modules/overrides.nix
       lua.pkgs.libluv
       msgpack-c
-      ncurses
       neovimLuaEnv
       tree-sitter
       unibilium
@@ -169,11 +170,13 @@ in {
     '' + ''
       mkdir -p $out/lib/nvim/parser
     '' + lib.concatStrings (lib.mapAttrsToList
-      (language: src: ''
+      (language: grammar: ''
         ln -s \
           ${tree-sitter.buildGrammar {
-            inherit language src;
+            inherit (grammar) src;
             version = "neovim-${finalAttrs.version}";
+            language = grammar.language or language;
+            location = grammar.location or null;
           }}/parser \
           $out/lib/nvim/parser/${language}.so
       '')
diff --git a/pkgs/by-name/ne/neovim-unwrapped/treesitter-parsers.nix b/pkgs/by-name/ne/neovim-unwrapped/treesitter-parsers.nix
index d36f8bda85429..e4d4dd60e2eb2 100644
--- a/pkgs/by-name/ne/neovim-unwrapped/treesitter-parsers.nix
+++ b/pkgs/by-name/ne/neovim-unwrapped/treesitter-parsers.nix
@@ -1,24 +1,36 @@
 { fetchurl }:
 
 {
-  c = fetchurl {
-    url = "https://github.com/tree-sitter/tree-sitter-c/archive/v0.20.2.tar.gz";
-    hash = "sha256:af66fde03feb0df4faf03750102a0d265b007e5d957057b6b293c13116a70af2";
+  c.src = fetchurl {
+    url = "https://github.com/tree-sitter/tree-sitter-c/archive/v0.21.0.tar.gz";
+    hash = "sha256:6f0f5d1b71cf8ffd8a37fb638c6022fa1245bd630150b538547d52128ce0ea7e";
   };
-  lua = fetchurl {
-    url = "https://github.com/MunifTanjim/tree-sitter-lua/archive/v0.0.14.tar.gz";
-    hash = "sha256:930d0370dc15b66389869355c8e14305b9ba7aafd36edbfdb468c8023395016d";
+  lua.src = fetchurl {
+    url = "https://github.com/tree-sitter-grammars/tree-sitter-lua/archive/v0.1.0.tar.gz";
+    hash = "sha256:230cfcbfa74ed1f7b8149e9a1f34c2efc4c589a71fe0f5dc8560622f8020d722";
   };
-  vim = fetchurl {
-    url = "https://github.com/neovim/tree-sitter-vim/archive/v0.3.0.tar.gz";
-    hash = "sha256:403acec3efb7cdb18ff3d68640fc823502a4ffcdfbb71cec3f98aa786c21cbe2";
+  vim.src = fetchurl {
+    url = "https://github.com/neovim/tree-sitter-vim/archive/v0.4.0.tar.gz";
+    hash = "sha256:9f856f8b4a10ab43348550fa2d3cb2846ae3d8e60f45887200549c051c66f9d5";
   };
-  vimdoc = fetchurl {
-    url = "https://github.com/neovim/tree-sitter-vimdoc/archive/v2.0.0.tar.gz";
-    hash = "sha256:1ff8f4afd3a9599dd4c3ce87c155660b078c1229704d1a254433e33794b8f274";
+  vimdoc.src = fetchurl {
+    url = "https://github.com/neovim/tree-sitter-vimdoc/archive/v2.5.1.tar.gz";
+    hash = "sha256:063645096504b21603585507c41c6d8718ff3c11b2150c5bfc31e8f3ee9afea3";
   };
-  query = fetchurl {
-    url = "https://github.com/nvim-treesitter/tree-sitter-query/archive/v0.1.0.tar.gz";
-    hash = "sha256:e2b806f80e8bf1c4f4e5a96248393fe6622fc1fc6189d6896d269658f67f914c";
+  query.src = fetchurl {
+    url = "https://github.com/tree-sitter-grammars/tree-sitter-query/archive/v0.3.0.tar.gz";
+    hash = "sha256:f878ff37abcb83250e31a6569e997546f3dbab74dcb26683cb2d613f7568cfc0";
+  };
+  python.src = fetchurl {
+    url = "https://github.com/tree-sitter/tree-sitter-python/archive/v0.21.0.tar.gz";
+    hash = "sha256:720304a603271fa89e4430a14d6a81a023d6d7d1171b1533e49c0ab44f1e1c13";
+  };
+  bash.src = fetchurl {
+    url = "https://github.com/tree-sitter/tree-sitter-bash/archive/v0.21.0.tar.gz";
+    hash = "sha256:f0515efda839cfede851adb24ac154227fbc0dfb60c6c11595ecfa9087d43ceb";
+  };
+  markdown.src = fetchurl {
+    url = "https://github.com/MDeiml/tree-sitter-markdown/archive/v0.2.3.tar.gz";
+    hash = "sha256:4909d6023643f1afc3ab219585d4035b7403f3a17849782ab803c5f73c8a31d5";
   };
 }
diff --git a/pkgs/by-name/ne/neovim-unwrapped/update-treesitter-parsers.py b/pkgs/by-name/ne/neovim-unwrapped/update-treesitter-parsers.py
index 27260ca649172..117c7eb481231 100755
--- a/pkgs/by-name/ne/neovim-unwrapped/update-treesitter-parsers.py
+++ b/pkgs/by-name/ne/neovim-unwrapped/update-treesitter-parsers.py
@@ -7,7 +7,7 @@ from pathlib import Path
 
 parsers = {}
 dir = Path(__file__).parent
-regex = re.compile(r"^set\(TREESITTER_([A-Z_]+)_(URL|SHA256)\s+([^ \)]+)\s*\)\s*$")
+regex = re.compile(r"^TREESITTER_([A-Z_]+)_(URL|SHA256)\s+(.+)$")
 
 src = subprocess.check_output(
     [
@@ -20,8 +20,8 @@ src = subprocess.check_output(
     text=True,
 ).strip()
 
-for line in open(f"{src}/cmake.deps/CMakeLists.txt"):
-    m = regex.fullmatch(line)
+for line in open(f"{src}/cmake.deps/deps.txt"):
+    m = regex.fullmatch(line.strip())
     if m is None:
         continue
 
@@ -37,7 +37,7 @@ with open(dir / "treesitter-parsers.nix", "w") as f:
     f.write("{ fetchurl }:\n\n{\n")
     for lang, src in parsers.items():
         f.write(
-            f"""  {lang} = fetchurl {{
+            f"""  {lang}.src = fetchurl {{
     url = "{src["URL"]}";
     hash = "sha256:{src["SHA256"]}";
   }};
diff --git a/pkgs/by-name/ne/nextjs-ollama-llm-ui/0001-update-nextjs.patch b/pkgs/by-name/ne/nextjs-ollama-llm-ui/0001-update-nextjs.patch
new file mode 100644
index 0000000000000..d904f04f73447
--- /dev/null
+++ b/pkgs/by-name/ne/nextjs-ollama-llm-ui/0001-update-nextjs.patch
@@ -0,0 +1,879 @@
+diff --git a/package-lock.json b/package-lock.json
+index 11dfbf6..b9470d0 100644
+--- a/package-lock.json
++++ b/package-lock.json
+@@ -30,7 +30,7 @@
+         "framer-motion": "^11.0.3",
+         "langchain": "^0.1.13",
+         "lucide-react": "^0.322.0",
+-        "next": "14.1.0",
++        "next": "^14.2.3",
+         "next-themes": "^0.2.1",
+         "react": "^18",
+         "react-code-blocks": "^0.1.6",
+@@ -40,6 +40,7 @@
+         "react-resizable-panels": "^2.0.3",
+         "react-textarea-autosize": "^8.5.3",
+         "remark-gfm": "^4.0.0",
++        "sharp": "^0.33.4",
+         "sonner": "^1.4.0",
+         "tailwind-merge": "^2.2.1",
+         "tailwindcss-animate": "^1.0.7",
+@@ -139,6 +140,15 @@
+         "node": ">=6.9.0"
+       }
+     },
++    "node_modules/@emnapi/runtime": {
++      "version": "1.1.1",
++      "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.1.1.tgz",
++      "integrity": "sha512-3bfqkzuR1KLx57nZfjr2NLnFOobvyS0aTszaEGCGqmYMVDRaGvgIZbjGSV/MHSSmLgQ/b9JFHQ5xm5WRZYd+XQ==",
++      "optional": true,
++      "dependencies": {
++        "tslib": "^2.4.0"
++      }
++    },
+     "node_modules/@emoji-mart/data": {
+       "version": "1.1.2",
+       "resolved": "https://registry.npmjs.org/@emoji-mart/data/-/data-1.1.2.tgz",
+@@ -304,6 +314,437 @@
+       "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==",
+       "dev": true
+     },
++    "node_modules/@img/sharp-darwin-arm64": {
++      "version": "0.33.4",
++      "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.4.tgz",
++      "integrity": "sha512-p0suNqXufJs9t3RqLBO6vvrgr5OhgbWp76s5gTRvdmxmuv9E1rcaqGUsl3l4mKVmXPkTkTErXediAui4x+8PSA==",
++      "cpu": [
++        "arm64"
++      ],
++      "optional": true,
++      "os": [
++        "darwin"
++      ],
++      "engines": {
++        "glibc": ">=2.26",
++        "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      },
++      "optionalDependencies": {
++        "@img/sharp-libvips-darwin-arm64": "1.0.2"
++      }
++    },
++    "node_modules/@img/sharp-darwin-x64": {
++      "version": "0.33.4",
++      "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.4.tgz",
++      "integrity": "sha512-0l7yRObwtTi82Z6ebVI2PnHT8EB2NxBgpK2MiKJZJ7cz32R4lxd001ecMhzzsZig3Yv9oclvqqdV93jo9hy+Dw==",
++      "cpu": [
++        "x64"
++      ],
++      "optional": true,
++      "os": [
++        "darwin"
++      ],
++      "engines": {
++        "glibc": ">=2.26",
++        "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      },
++      "optionalDependencies": {
++        "@img/sharp-libvips-darwin-x64": "1.0.2"
++      }
++    },
++    "node_modules/@img/sharp-libvips-darwin-arm64": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.2.tgz",
++      "integrity": "sha512-tcK/41Rq8IKlSaKRCCAuuY3lDJjQnYIW1UXU1kxcEKrfL8WR7N6+rzNoOxoQRJWTAECuKwgAHnPvqXGN8XfkHA==",
++      "cpu": [
++        "arm64"
++      ],
++      "optional": true,
++      "os": [
++        "darwin"
++      ],
++      "engines": {
++        "macos": ">=11",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      }
++    },
++    "node_modules/@img/sharp-libvips-darwin-x64": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.2.tgz",
++      "integrity": "sha512-Ofw+7oaWa0HiiMiKWqqaZbaYV3/UGL2wAPeLuJTx+9cXpCRdvQhCLG0IH8YGwM0yGWGLpsF4Su9vM1o6aer+Fw==",
++      "cpu": [
++        "x64"
++      ],
++      "optional": true,
++      "os": [
++        "darwin"
++      ],
++      "engines": {
++        "macos": ">=10.13",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      }
++    },
++    "node_modules/@img/sharp-libvips-linux-arm": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.2.tgz",
++      "integrity": "sha512-iLWCvrKgeFoglQxdEwzu1eQV04o8YeYGFXtfWU26Zr2wWT3q3MTzC+QTCO3ZQfWd3doKHT4Pm2kRmLbupT+sZw==",
++      "cpu": [
++        "arm"
++      ],
++      "optional": true,
++      "os": [
++        "linux"
++      ],
++      "engines": {
++        "glibc": ">=2.28",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      }
++    },
++    "node_modules/@img/sharp-libvips-linux-arm64": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.2.tgz",
++      "integrity": "sha512-x7kCt3N00ofFmmkkdshwj3vGPCnmiDh7Gwnd4nUwZln2YjqPxV1NlTyZOvoDWdKQVDL911487HOueBvrpflagw==",
++      "cpu": [
++        "arm64"
++      ],
++      "optional": true,
++      "os": [
++        "linux"
++      ],
++      "engines": {
++        "glibc": ">=2.26",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      }
++    },
++    "node_modules/@img/sharp-libvips-linux-s390x": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.2.tgz",
++      "integrity": "sha512-cmhQ1J4qVhfmS6szYW7RT+gLJq9dH2i4maq+qyXayUSn9/3iY2ZeWpbAgSpSVbV2E1JUL2Gg7pwnYQ1h8rQIog==",
++      "cpu": [
++        "s390x"
++      ],
++      "optional": true,
++      "os": [
++        "linux"
++      ],
++      "engines": {
++        "glibc": ">=2.28",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      }
++    },
++    "node_modules/@img/sharp-libvips-linux-x64": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.2.tgz",
++      "integrity": "sha512-E441q4Qdb+7yuyiADVi5J+44x8ctlrqn8XgkDTwr4qPJzWkaHwD489iZ4nGDgcuya4iMN3ULV6NwbhRZJ9Z7SQ==",
++      "cpu": [
++        "x64"
++      ],
++      "optional": true,
++      "os": [
++        "linux"
++      ],
++      "engines": {
++        "glibc": ">=2.26",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      }
++    },
++    "node_modules/@img/sharp-libvips-linuxmusl-arm64": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.2.tgz",
++      "integrity": "sha512-3CAkndNpYUrlDqkCM5qhksfE+qSIREVpyoeHIU6jd48SJZViAmznoQQLAv4hVXF7xyUB9zf+G++e2v1ABjCbEQ==",
++      "cpu": [
++        "arm64"
++      ],
++      "optional": true,
++      "os": [
++        "linux"
++      ],
++      "engines": {
++        "musl": ">=1.2.2",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      }
++    },
++    "node_modules/@img/sharp-libvips-linuxmusl-x64": {
++      "version": "1.0.2",
++      "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.2.tgz",
++      "integrity": "sha512-VI94Q6khIHqHWNOh6LLdm9s2Ry4zdjWJwH56WoiJU7NTeDwyApdZZ8c+SADC8OH98KWNQXnE01UdJ9CSfZvwZw==",
++      "cpu": [
++        "x64"
++      ],
++      "optional": true,
++      "os": [
++        "linux"
++      ],
++      "engines": {
++        "musl": ">=1.2.2",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      }
++    },
++    "node_modules/@img/sharp-linux-arm": {
++      "version": "0.33.4",
++      "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.4.tgz",
++      "integrity": "sha512-RUgBD1c0+gCYZGCCe6mMdTiOFS0Zc/XrN0fYd6hISIKcDUbAW5NtSQW9g/powkrXYm6Vzwd6y+fqmExDuCdHNQ==",
++      "cpu": [
++        "arm"
++      ],
++      "optional": true,
++      "os": [
++        "linux"
++      ],
++      "engines": {
++        "glibc": ">=2.28",
++        "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      },
++      "optionalDependencies": {
++        "@img/sharp-libvips-linux-arm": "1.0.2"
++      }
++    },
++    "node_modules/@img/sharp-linux-arm64": {
++      "version": "0.33.4",
++      "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.4.tgz",
++      "integrity": "sha512-2800clwVg1ZQtxwSoTlHvtm9ObgAax7V6MTAB/hDT945Tfyy3hVkmiHpeLPCKYqYR1Gcmv1uDZ3a4OFwkdBL7Q==",
++      "cpu": [
++        "arm64"
++      ],
++      "optional": true,
++      "os": [
++        "linux"
++      ],
++      "engines": {
++        "glibc": ">=2.26",
++        "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      },
++      "optionalDependencies": {
++        "@img/sharp-libvips-linux-arm64": "1.0.2"
++      }
++    },
++    "node_modules/@img/sharp-linux-s390x": {
++      "version": "0.33.4",
++      "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.4.tgz",
++      "integrity": "sha512-h3RAL3siQoyzSoH36tUeS0PDmb5wINKGYzcLB5C6DIiAn2F3udeFAum+gj8IbA/82+8RGCTn7XW8WTFnqag4tQ==",
++      "cpu": [
++        "s390x"
++      ],
++      "optional": true,
++      "os": [
++        "linux"
++      ],
++      "engines": {
++        "glibc": ">=2.31",
++        "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      },
++      "optionalDependencies": {
++        "@img/sharp-libvips-linux-s390x": "1.0.2"
++      }
++    },
++    "node_modules/@img/sharp-linux-x64": {
++      "version": "0.33.4",
++      "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.4.tgz",
++      "integrity": "sha512-GoR++s0XW9DGVi8SUGQ/U4AeIzLdNjHka6jidVwapQ/JebGVQIpi52OdyxCNVRE++n1FCLzjDovJNozif7w/Aw==",
++      "cpu": [
++        "x64"
++      ],
++      "optional": true,
++      "os": [
++        "linux"
++      ],
++      "engines": {
++        "glibc": ">=2.26",
++        "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      },
++      "optionalDependencies": {
++        "@img/sharp-libvips-linux-x64": "1.0.2"
++      }
++    },
++    "node_modules/@img/sharp-linuxmusl-arm64": {
++      "version": "0.33.4",
++      "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.4.tgz",
++      "integrity": "sha512-nhr1yC3BlVrKDTl6cO12gTpXMl4ITBUZieehFvMntlCXFzH2bvKG76tBL2Y/OqhupZt81pR7R+Q5YhJxW0rGgQ==",
++      "cpu": [
++        "arm64"
++      ],
++      "optional": true,
++      "os": [
++        "linux"
++      ],
++      "engines": {
++        "musl": ">=1.2.2",
++        "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      },
++      "optionalDependencies": {
++        "@img/sharp-libvips-linuxmusl-arm64": "1.0.2"
++      }
++    },
++    "node_modules/@img/sharp-linuxmusl-x64": {
++      "version": "0.33.4",
++      "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.4.tgz",
++      "integrity": "sha512-uCPTku0zwqDmZEOi4ILyGdmW76tH7dm8kKlOIV1XC5cLyJ71ENAAqarOHQh0RLfpIpbV5KOpXzdU6XkJtS0daw==",
++      "cpu": [
++        "x64"
++      ],
++      "optional": true,
++      "os": [
++        "linux"
++      ],
++      "engines": {
++        "musl": ">=1.2.2",
++        "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      },
++      "optionalDependencies": {
++        "@img/sharp-libvips-linuxmusl-x64": "1.0.2"
++      }
++    },
++    "node_modules/@img/sharp-wasm32": {
++      "version": "0.33.4",
++      "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.4.tgz",
++      "integrity": "sha512-Bmmauh4sXUsUqkleQahpdNXKvo+wa1V9KhT2pDA4VJGKwnKMJXiSTGphn0gnJrlooda0QxCtXc6RX1XAU6hMnQ==",
++      "cpu": [
++        "wasm32"
++      ],
++      "optional": true,
++      "dependencies": {
++        "@emnapi/runtime": "^1.1.1"
++      },
++      "engines": {
++        "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      }
++    },
++    "node_modules/@img/sharp-win32-ia32": {
++      "version": "0.33.4",
++      "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.4.tgz",
++      "integrity": "sha512-99SJ91XzUhYHbx7uhK3+9Lf7+LjwMGQZMDlO/E/YVJ7Nc3lyDFZPGhjwiYdctoH2BOzW9+TnfqcaMKt0jHLdqw==",
++      "cpu": [
++        "ia32"
++      ],
++      "optional": true,
++      "os": [
++        "win32"
++      ],
++      "engines": {
++        "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      }
++    },
++    "node_modules/@img/sharp-win32-x64": {
++      "version": "0.33.4",
++      "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.4.tgz",
++      "integrity": "sha512-3QLocdTRVIrFNye5YocZl+KKpYKP+fksi1QhmOArgx7GyhIbQp/WrJRu176jm8IxromS7RIkzMiMINVdBtC8Aw==",
++      "cpu": [
++        "x64"
++      ],
++      "optional": true,
++      "os": [
++        "win32"
++      ],
++      "engines": {
++        "node": "^18.17.0 || ^20.3.0 || >=21.0.0",
++        "npm": ">=9.6.5",
++        "pnpm": ">=7.1.0",
++        "yarn": ">=3.2.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      }
++    },
+     "node_modules/@isaacs/cliui": {
+       "version": "8.0.2",
+       "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+@@ -800,9 +1241,9 @@
+       }
+     },
+     "node_modules/@next/env": {
+-      "version": "14.1.0",
+-      "resolved": "https://registry.npmjs.org/@next/env/-/env-14.1.0.tgz",
+-      "integrity": "sha512-Py8zIo+02ht82brwwhTg36iogzFqGLPXlRGKQw5s+qP/kMNc4MAyDeEwBKDijk6zTIbegEgu8Qy7C1LboslQAw=="
++      "version": "14.2.3",
++      "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.3.tgz",
++      "integrity": "sha512-W7fd7IbkfmeeY2gXrzJYDx8D2lWKbVoTIj1o1ScPHNzvp30s1AuoEFSdr39bC5sjxJaxTtq3OTCZboNp0lNWHA=="
+     },
+     "node_modules/@next/eslint-plugin-next": {
+       "version": "14.1.0",
+@@ -814,9 +1255,9 @@
+       }
+     },
+     "node_modules/@next/swc-darwin-arm64": {
+-      "version": "14.1.0",
+-      "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.1.0.tgz",
+-      "integrity": "sha512-nUDn7TOGcIeyQni6lZHfzNoo9S0euXnu0jhsbMOmMJUBfgsnESdjN97kM7cBqQxZa8L/bM9om/S5/1dzCrW6wQ==",
++      "version": "14.2.3",
++      "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.3.tgz",
++      "integrity": "sha512-3pEYo/RaGqPP0YzwnlmPN2puaF2WMLM3apt5jLW2fFdXD9+pqcoTzRk+iZsf8ta7+quAe4Q6Ms0nR0SFGFdS1A==",
+       "cpu": [
+         "arm64"
+       ],
+@@ -829,9 +1270,9 @@
+       }
+     },
+     "node_modules/@next/swc-darwin-x64": {
+-      "version": "14.1.0",
+-      "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.1.0.tgz",
+-      "integrity": "sha512-1jgudN5haWxiAl3O1ljUS2GfupPmcftu2RYJqZiMJmmbBT5M1XDffjUtRUzP4W3cBHsrvkfOFdQ71hAreNQP6g==",
++      "version": "14.2.3",
++      "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.3.tgz",
++      "integrity": "sha512-6adp7waE6P1TYFSXpY366xwsOnEXM+y1kgRpjSRVI2CBDOcbRjsJ67Z6EgKIqWIue52d2q/Mx8g9MszARj8IEA==",
+       "cpu": [
+         "x64"
+       ],
+@@ -844,9 +1285,9 @@
+       }
+     },
+     "node_modules/@next/swc-linux-arm64-gnu": {
+-      "version": "14.1.0",
+-      "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.1.0.tgz",
+-      "integrity": "sha512-RHo7Tcj+jllXUbK7xk2NyIDod3YcCPDZxj1WLIYxd709BQ7WuRYl3OWUNG+WUfqeQBds6kvZYlc42NJJTNi4tQ==",
++      "version": "14.2.3",
++      "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.3.tgz",
++      "integrity": "sha512-cuzCE/1G0ZSnTAHJPUT1rPgQx1w5tzSX7POXSLaS7w2nIUJUD+e25QoXD/hMfxbsT9rslEXugWypJMILBj/QsA==",
+       "cpu": [
+         "arm64"
+       ],
+@@ -859,9 +1300,9 @@
+       }
+     },
+     "node_modules/@next/swc-linux-arm64-musl": {
+-      "version": "14.1.0",
+-      "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.1.0.tgz",
+-      "integrity": "sha512-v6kP8sHYxjO8RwHmWMJSq7VZP2nYCkRVQ0qolh2l6xroe9QjbgV8siTbduED4u0hlk0+tjS6/Tuy4n5XCp+l6g==",
++      "version": "14.2.3",
++      "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.3.tgz",
++      "integrity": "sha512-0D4/oMM2Y9Ta3nGuCcQN8jjJjmDPYpHX9OJzqk42NZGJocU2MqhBq5tWkJrUQOQY9N+In9xOdymzapM09GeiZw==",
+       "cpu": [
+         "arm64"
+       ],
+@@ -874,9 +1315,9 @@
+       }
+     },
+     "node_modules/@next/swc-linux-x64-gnu": {
+-      "version": "14.1.0",
+-      "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.1.0.tgz",
+-      "integrity": "sha512-zJ2pnoFYB1F4vmEVlb/eSe+VH679zT1VdXlZKX+pE66grOgjmKJHKacf82g/sWE4MQ4Rk2FMBCRnX+l6/TVYzQ==",
++      "version": "14.2.3",
++      "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.3.tgz",
++      "integrity": "sha512-ENPiNnBNDInBLyUU5ii8PMQh+4XLr4pG51tOp6aJ9xqFQ2iRI6IH0Ds2yJkAzNV1CfyagcyzPfROMViS2wOZ9w==",
+       "cpu": [
+         "x64"
+       ],
+@@ -889,9 +1330,9 @@
+       }
+     },
+     "node_modules/@next/swc-linux-x64-musl": {
+-      "version": "14.1.0",
+-      "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.1.0.tgz",
+-      "integrity": "sha512-rbaIYFt2X9YZBSbH/CwGAjbBG2/MrACCVu2X0+kSykHzHnYH5FjHxwXLkcoJ10cX0aWCEynpu+rP76x0914atg==",
++      "version": "14.2.3",
++      "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.3.tgz",
++      "integrity": "sha512-BTAbq0LnCbF5MtoM7I/9UeUu/8ZBY0i8SFjUMCbPDOLv+un67e2JgyN4pmgfXBwy/I+RHu8q+k+MCkDN6P9ViQ==",
+       "cpu": [
+         "x64"
+       ],
+@@ -904,9 +1345,9 @@
+       }
+     },
+     "node_modules/@next/swc-win32-arm64-msvc": {
+-      "version": "14.1.0",
+-      "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.1.0.tgz",
+-      "integrity": "sha512-o1N5TsYc8f/HpGt39OUQpQ9AKIGApd3QLueu7hXk//2xq5Z9OxmV6sQfNp8C7qYmiOlHYODOGqNNa0e9jvchGQ==",
++      "version": "14.2.3",
++      "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.3.tgz",
++      "integrity": "sha512-AEHIw/dhAMLNFJFJIJIyOFDzrzI5bAjI9J26gbO5xhAKHYTZ9Or04BesFPXiAYXDNdrwTP2dQceYA4dL1geu8A==",
+       "cpu": [
+         "arm64"
+       ],
+@@ -919,9 +1360,9 @@
+       }
+     },
+     "node_modules/@next/swc-win32-ia32-msvc": {
+-      "version": "14.1.0",
+-      "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.1.0.tgz",
+-      "integrity": "sha512-XXIuB1DBRCFwNO6EEzCTMHT5pauwaSj4SWs7CYnME57eaReAKBXCnkUE80p/pAZcewm7hs+vGvNqDPacEXHVkw==",
++      "version": "14.2.3",
++      "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.3.tgz",
++      "integrity": "sha512-vga40n1q6aYb0CLrM+eEmisfKCR45ixQYXuBXxOOmmoV8sYST9k7E3US32FsY+CkkF7NtzdcebiFT4CHuMSyZw==",
+       "cpu": [
+         "ia32"
+       ],
+@@ -934,9 +1375,9 @@
+       }
+     },
+     "node_modules/@next/swc-win32-x64-msvc": {
+-      "version": "14.1.0",
+-      "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.1.0.tgz",
+-      "integrity": "sha512-9WEbVRRAqJ3YFVqEZIxUqkiO8l1nool1LmNxygr5HWF8AcSYsEpneUDhmjUVJEzO2A04+oPtZdombzzPPkTtgg==",
++      "version": "14.2.3",
++      "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.3.tgz",
++      "integrity": "sha512-Q1/zm43RWynxrO7lW4ehciQVj+5ePBhOK+/K2P7pLFX3JaJ/IZVC69SHidrmZSOkqz7ECIOhhy7XhAFG4JYyHA==",
+       "cpu": [
+         "x64"
+       ],
+@@ -1810,11 +2251,17 @@
+       "integrity": "sha512-RbhOOTCNoCrbfkRyoXODZp75MlpiHMgbE5MEBZAnnnLyQNgrigEj4p0lzsMDyc1zVsJDLrivB58tgg3emX0eEA==",
+       "dev": true
+     },
++    "node_modules/@swc/counter": {
++      "version": "0.1.3",
++      "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz",
++      "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ=="
++    },
+     "node_modules/@swc/helpers": {
+-      "version": "0.5.2",
+-      "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz",
+-      "integrity": "sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==",
++      "version": "0.5.5",
++      "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz",
++      "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==",
+       "dependencies": {
++        "@swc/counter": "^0.1.3",
+         "tslib": "^2.4.0"
+       }
+     },
+@@ -2930,6 +3377,18 @@
+         "periscopic": "^3.1.0"
+       }
+     },
++    "node_modules/color": {
++      "version": "4.2.3",
++      "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
++      "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
++      "dependencies": {
++        "color-convert": "^2.0.1",
++        "color-string": "^1.9.0"
++      },
++      "engines": {
++        "node": ">=12.5.0"
++      }
++    },
+     "node_modules/color-convert": {
+       "version": "2.0.1",
+       "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+@@ -2946,6 +3405,15 @@
+       "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+       "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+     },
++    "node_modules/color-string": {
++      "version": "1.9.1",
++      "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
++      "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
++      "dependencies": {
++        "color-name": "^1.0.0",
++        "simple-swizzle": "^0.2.2"
++      }
++    },
+     "node_modules/combined-stream": {
+       "version": "1.0.8",
+       "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+@@ -3152,6 +3620,14 @@
+         "node": ">=6"
+       }
+     },
++    "node_modules/detect-libc": {
++      "version": "2.0.3",
++      "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz",
++      "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
++      "engines": {
++        "node": ">=8"
++      }
++    },
+     "node_modules/detect-node-es": {
+       "version": "1.1.0",
+       "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz",
+@@ -4677,6 +5153,11 @@
+         "url": "https://github.com/sponsors/ljharb"
+       }
+     },
++    "node_modules/is-arrayish": {
++      "version": "0.3.2",
++      "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
++      "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
++    },
+     "node_modules/is-async-function": {
+       "version": "2.0.0",
+       "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
+@@ -6676,12 +7157,12 @@
+       "dev": true
+     },
+     "node_modules/next": {
+-      "version": "14.1.0",
+-      "resolved": "https://registry.npmjs.org/next/-/next-14.1.0.tgz",
+-      "integrity": "sha512-wlzrsbfeSU48YQBjZhDzOwhWhGsy+uQycR8bHAOt1LY1bn3zZEcDyHQOEoN3aWzQ8LHCAJ1nqrWCc9XF2+O45Q==",
++      "version": "14.2.3",
++      "resolved": "https://registry.npmjs.org/next/-/next-14.2.3.tgz",
++      "integrity": "sha512-dowFkFTR8v79NPJO4QsBUtxv0g9BrS/phluVpMAt2ku7H+cbcBJlopXjkWlwxrk/xGqMemr7JkGPGemPrLLX7A==",
+       "dependencies": {
+-        "@next/env": "14.1.0",
+-        "@swc/helpers": "0.5.2",
++        "@next/env": "14.2.3",
++        "@swc/helpers": "0.5.5",
+         "busboy": "1.6.0",
+         "caniuse-lite": "^1.0.30001579",
+         "graceful-fs": "^4.2.11",
+@@ -6695,18 +7176,19 @@
+         "node": ">=18.17.0"
+       },
+       "optionalDependencies": {
+-        "@next/swc-darwin-arm64": "14.1.0",
+-        "@next/swc-darwin-x64": "14.1.0",
+-        "@next/swc-linux-arm64-gnu": "14.1.0",
+-        "@next/swc-linux-arm64-musl": "14.1.0",
+-        "@next/swc-linux-x64-gnu": "14.1.0",
+-        "@next/swc-linux-x64-musl": "14.1.0",
+-        "@next/swc-win32-arm64-msvc": "14.1.0",
+-        "@next/swc-win32-ia32-msvc": "14.1.0",
+-        "@next/swc-win32-x64-msvc": "14.1.0"
++        "@next/swc-darwin-arm64": "14.2.3",
++        "@next/swc-darwin-x64": "14.2.3",
++        "@next/swc-linux-arm64-gnu": "14.2.3",
++        "@next/swc-linux-arm64-musl": "14.2.3",
++        "@next/swc-linux-x64-gnu": "14.2.3",
++        "@next/swc-linux-x64-musl": "14.2.3",
++        "@next/swc-win32-arm64-msvc": "14.2.3",
++        "@next/swc-win32-ia32-msvc": "14.2.3",
++        "@next/swc-win32-x64-msvc": "14.2.3"
+       },
+       "peerDependencies": {
+         "@opentelemetry/api": "^1.1.0",
++        "@playwright/test": "^1.41.2",
+         "react": "^18.2.0",
+         "react-dom": "^18.2.0",
+         "sass": "^1.3.0"
+@@ -6715,6 +7197,9 @@
+         "@opentelemetry/api": {
+           "optional": true
+         },
++        "@playwright/test": {
++          "optional": true
++        },
+         "sass": {
+           "optional": true
+         }
+@@ -7928,13 +8413,9 @@
+       }
+     },
+     "node_modules/semver": {
+-      "version": "7.5.4",
+-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+-      "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+-      "dev": true,
+-      "dependencies": {
+-        "lru-cache": "^6.0.0"
+-      },
++      "version": "7.6.2",
++      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
++      "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+       "bin": {
+         "semver": "bin/semver.js"
+       },
+@@ -7942,18 +8423,6 @@
+         "node": ">=10"
+       }
+     },
+-    "node_modules/semver/node_modules/lru-cache": {
+-      "version": "6.0.0",
+-      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+-      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+-      "dev": true,
+-      "dependencies": {
+-        "yallist": "^4.0.0"
+-      },
+-      "engines": {
+-        "node": ">=10"
+-      }
+-    },
+     "node_modules/seroval": {
+       "version": "1.0.4",
+       "resolved": "https://registry.npmjs.org/seroval/-/seroval-1.0.4.tgz",
+@@ -8010,6 +8479,45 @@
+       "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz",
+       "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ=="
+     },
++    "node_modules/sharp": {
++      "version": "0.33.4",
++      "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.4.tgz",
++      "integrity": "sha512-7i/dt5kGl7qR4gwPRD2biwD2/SvBn3O04J77XKFgL2OnZtQw+AG9wnuS/csmu80nPRHLYE9E41fyEiG8nhH6/Q==",
++      "hasInstallScript": true,
++      "dependencies": {
++        "color": "^4.2.3",
++        "detect-libc": "^2.0.3",
++        "semver": "^7.6.0"
++      },
++      "engines": {
++        "libvips": ">=8.15.2",
++        "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
++      },
++      "funding": {
++        "url": "https://opencollective.com/libvips"
++      },
++      "optionalDependencies": {
++        "@img/sharp-darwin-arm64": "0.33.4",
++        "@img/sharp-darwin-x64": "0.33.4",
++        "@img/sharp-libvips-darwin-arm64": "1.0.2",
++        "@img/sharp-libvips-darwin-x64": "1.0.2",
++        "@img/sharp-libvips-linux-arm": "1.0.2",
++        "@img/sharp-libvips-linux-arm64": "1.0.2",
++        "@img/sharp-libvips-linux-s390x": "1.0.2",
++        "@img/sharp-libvips-linux-x64": "1.0.2",
++        "@img/sharp-libvips-linuxmusl-arm64": "1.0.2",
++        "@img/sharp-libvips-linuxmusl-x64": "1.0.2",
++        "@img/sharp-linux-arm": "0.33.4",
++        "@img/sharp-linux-arm64": "0.33.4",
++        "@img/sharp-linux-s390x": "0.33.4",
++        "@img/sharp-linux-x64": "0.33.4",
++        "@img/sharp-linuxmusl-arm64": "0.33.4",
++        "@img/sharp-linuxmusl-x64": "0.33.4",
++        "@img/sharp-wasm32": "0.33.4",
++        "@img/sharp-win32-ia32": "0.33.4",
++        "@img/sharp-win32-x64": "0.33.4"
++      }
++    },
+     "node_modules/shebang-command": {
+       "version": "2.0.0",
+       "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+@@ -8054,6 +8562,14 @@
+         "url": "https://github.com/sponsors/isaacs"
+       }
+     },
++    "node_modules/simple-swizzle": {
++      "version": "0.2.2",
++      "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
++      "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
++      "dependencies": {
++        "is-arrayish": "^0.3.1"
++      }
++    },
+     "node_modules/slash": {
+       "version": "3.0.0",
+       "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+@@ -9369,12 +9885,6 @@
+         "node": ">=0.4"
+       }
+     },
+-    "node_modules/yallist": {
+-      "version": "4.0.0",
+-      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+-      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+-      "dev": true
+-    },
+     "node_modules/yaml": {
+       "version": "2.3.4",
+       "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz",
+diff --git a/package.json b/package.json
+index 4185096..4ab1c58 100644
+--- a/package.json
++++ b/package.json
+@@ -31,7 +31,7 @@
+     "framer-motion": "^11.0.3",
+     "langchain": "^0.1.13",
+     "lucide-react": "^0.322.0",
+-    "next": "14.1.0",
++    "next": "^14.2.3",
+     "next-themes": "^0.2.1",
+     "react": "^18",
+     "react-code-blocks": "^0.1.6",
+@@ -41,6 +41,7 @@
+     "react-resizable-panels": "^2.0.3",
+     "react-textarea-autosize": "^8.5.3",
+     "remark-gfm": "^4.0.0",
++    "sharp": "^0.33.4",
+     "sonner": "^1.4.0",
+     "tailwind-merge": "^2.2.1",
+     "tailwindcss-animate": "^1.0.7",
+-- 
+2.42.0
+
diff --git a/pkgs/by-name/ne/nextjs-ollama-llm-ui/0002-use-local-google-fonts.patch b/pkgs/by-name/ne/nextjs-ollama-llm-ui/0002-use-local-google-fonts.patch
new file mode 100644
index 0000000000000..454e005284fe9
--- /dev/null
+++ b/pkgs/by-name/ne/nextjs-ollama-llm-ui/0002-use-local-google-fonts.patch
@@ -0,0 +1,20 @@
+diff --git a/src/app/layout.tsx b/src/app/layout.tsx
+index 647ed68..b08088e 100644
+--- a/src/app/layout.tsx
++++ b/src/app/layout.tsx
+@@ -1,10 +1,10 @@
+ import type { Metadata } from "next";
+-import { Inter } from "next/font/google";
++import localFont from "next/font/local";
+ import "./globals.css";
+ import { ThemeProvider } from "@/providers/theme-provider";
+ import { Toaster } from "@/components/ui/sonner"
+ 
+-const inter = Inter({ subsets: ["latin"] });
++const inter = localFont({ src: './Inter.ttf' });
+ 
+ export const metadata: Metadata = {
+   title: "Ollama UI",
+-- 
+2.42.0
+
diff --git a/pkgs/by-name/ne/nextjs-ollama-llm-ui/0003-add-standalone-output.patch b/pkgs/by-name/ne/nextjs-ollama-llm-ui/0003-add-standalone-output.patch
new file mode 100644
index 0000000000000..50d1611148960
--- /dev/null
+++ b/pkgs/by-name/ne/nextjs-ollama-llm-ui/0003-add-standalone-output.patch
@@ -0,0 +1,16 @@
+diff --git a/next.config.mjs b/next.config.mjs
+index dc34f1a..f6f90c4 100644
+--- a/next.config.mjs
++++ b/next.config.mjs
+@@ -1,6 +1,7 @@
+ /** @type {import('next').NextConfig} */
+ const nextConfig = {
+-    webpack: (config, { isServer }) => {
++  output: 'standalone',
++  webpack: (config, { isServer }) => {
+         // Fixes npm packages that depend on `fs` module
+         if (!isServer) {
+           config.resolve.fallback = {
+-- 
+2.42.0
+
diff --git a/pkgs/by-name/ne/nextjs-ollama-llm-ui/package.nix b/pkgs/by-name/ne/nextjs-ollama-llm-ui/package.nix
new file mode 100644
index 0000000000000..db6981a0c2403
--- /dev/null
+++ b/pkgs/by-name/ne/nextjs-ollama-llm-ui/package.nix
@@ -0,0 +1,101 @@
+{
+  buildNpmPackage,
+  fetchFromGitHub,
+  inter,
+  nixosTests,
+  lib,
+  # This is a app can only be used in a browser and starts a web server only accessible at
+  # localhost/127.0.0.1 from the local computer at the given port.
+  defaultHostname ? "127.0.0.1",
+  defaultPort ? 3000,
+  # Where to find the Ollama service; this url gets baked into the Nix package
+  ollamaUrl ? "http://127.0.0.1:11434",
+  ...
+}:
+
+let
+  version = "1.0.1";
+in
+buildNpmPackage {
+  pname = "nextjs-ollama-llm-ui";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "jakobhoeg";
+    repo = "nextjs-ollama-llm-ui";
+    rev = "v${version}";
+    hash = "sha256-pZJgiopm0VGwaZxsNcyRawevvzEcK1j5WhngX1Pn6YE=";
+  };
+  npmDepsHash = "sha256-wtHOW0CyEOszgiZwDkF2/cSxbw6WFRLbhDnd2FlY70E=";
+
+  patches = [
+    # Update to a newer nextjs version that buildNpmPackage is able to build.
+    # Remove at nextjs update.
+    ./0001-update-nextjs.patch
+    # nextjs tries to download google fonts from the internet during buildPhase and fails in Nix sandbox.
+    # We patch the code to expect a local font from src/app/Inter.ttf that we load from Nixpkgs in preBuild phase.
+    ./0002-use-local-google-fonts.patch
+    # Modify next.config.js to produce a production "standalone" output at .next/standalone.
+    # This output is easy to package with Nix and run with "node .next/standalone/server.js" later.
+    ./0003-add-standalone-output.patch
+  ];
+
+  # Adjust buildNpmPackage phases with nextjs quirk workarounds.
+  # These are adapted from
+  # https://github.com/NixOS/nixpkgs/blob/485125d667747f971cfcd1a1cfb4b2213a700c79/pkgs/servers/homepage-dashboard/default.nix
+  #######################3
+  preBuild = ''
+    # We have to pass and bake in the Ollama URL into the package
+    echo "NEXT_PUBLIC_OLLAMA_URL=${ollamaUrl}" > .env
+
+    # Replace the googleapis.com Inter font with a local copy from nixpkgs
+    cp "${inter}/share/fonts/truetype/InterVariable.ttf" src/app/Inter.ttf
+  '';
+
+  postBuild = ''
+    # Add a shebang to the server js file, then patch the shebang to use a nixpkgs nodejs binary.
+    sed -i '1s|^|#!/usr/bin/env node\n|' .next/standalone/server.js
+    patchShebangs .next/standalone/server.js
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{share,bin}
+
+    cp -r .next/standalone $out/share/homepage/
+    cp -r .env $out/share/homepage/
+    cp -r public $out/share/homepage/public
+
+    mkdir -p $out/share/homepage/.next
+    cp -r .next/static $out/share/homepage/.next/static
+
+    chmod +x $out/share/homepage/server.js
+
+    # we set a default port to support "nix run ..."
+    makeWrapper $out/share/homepage/server.js $out/bin/nextjs-ollama-llm-ui \
+      --set-default PORT ${toString defaultPort} \
+      --set-default HOSTNAME ${defaultHostname}
+
+    runHook postInstall
+  '';
+
+  doDist = false;
+  #######################
+
+  passthru = {
+    tests = {
+      inherit (nixosTests) nextjs-ollama-llm-ui;
+    };
+  };
+
+  meta = {
+    description = "Simple chat web interface for Ollama LLMs.";
+    changelog = "https://github.com/jakobhoeg/nextjs-ollama-llm-ui/releases/tag/v${version}";
+    mainProgram = "nextjs-ollama-llm-ui";
+    homepage = "https://github.com/jakobhoeg/nextjs-ollama-llm-ui";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ malteneuss ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/pkgs/by-name/ne/nezha-agent/package.nix b/pkgs/by-name/ne/nezha-agent/package.nix
index 2f80dc2ded43a..d470290b8cae1 100644
--- a/pkgs/by-name/ne/nezha-agent/package.nix
+++ b/pkgs/by-name/ne/nezha-agent/package.nix
@@ -7,16 +7,16 @@
 }:
 buildGoModule rec {
   pname = "nezha-agent";
-  version = "0.16.8";
+  version = "0.16.9";
 
   src = fetchFromGitHub {
     owner = "nezhahq";
     repo = "agent";
     rev = "v${version}";
-    hash = "sha256-s3l6sI+gQcy5Qxjzg+l9t9e8WWYppiMljX7o1rSXFIs=";
+    hash = "sha256-WK9aTKRSpBrqEKje168Gmn6ROLFxE/fuYp10Ywtr4ks=";
   };
 
-  vendorHash = "sha256-Qx0XAlWLDqN1CZTmf1yVc8yFmz9/5bz/HVqN/korJzE=";
+  vendorHash = "sha256-L6QdodI8Ur1H6Zc24KSTYAHfzvW2aq9SYwCVgjvSDII=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/by-name/ni/nimble/lock.json b/pkgs/by-name/ni/nimble/lock.json
new file mode 100644
index 0000000000000..5fe2cca79da16
--- /dev/null
+++ b/pkgs/by-name/ni/nimble/lock.json
@@ -0,0 +1,26 @@
+{
+  "depends": [
+    {
+      "method": "fetchzip",
+      "packages": [
+        "checksums"
+      ],
+      "path": "/nix/store/z6799507gzbw46lzbi1i8mwm0nbvrvnx-source",
+      "rev": "7ff0b762332d2591bbeb65df9bb86d52ea44ec01",
+      "sha256": "11612prr2wwbx414ip0zjh1fv638dgfvzxfd6v2f432n0wfwhjhj",
+      "srcDir": "src",
+      "url": "https://github.com/nim-lang/checksums/archive/7ff0b762332d2591bbeb65df9bb86d52ea44ec01.tar.gz"
+    },
+    {
+      "method": "fetchzip",
+      "packages": [
+        "sat"
+      ],
+      "path": "/nix/store/lwg9fm34h5xv0dvxij9r5m2y6pn1zsvx-source",
+      "rev": "a53d9d6e0470f78f8ba14652d981e7bcdbcd579f",
+      "sha256": "1dxbc41wbvkpdp6q3qz1r38lpn32447qkkgyh2s12ym6bx4ynni4",
+      "srcDir": "src",
+      "url": "https://github.com/nim-lang/sat/archive/a53d9d6e0470f78f8ba14652d981e7bcdbcd579f.tar.gz"
+    }
+  ]
+}
diff --git a/pkgs/by-name/ni/nimble/package.nix b/pkgs/by-name/ni/nimble/package.nix
index 4e7457a88182b..213f621fd8667 100644
--- a/pkgs/by-name/ni/nimble/package.nix
+++ b/pkgs/by-name/ni/nimble/package.nix
@@ -1,31 +1,43 @@
-{ lib, buildNimPackage, fetchFromGitHub, nim, makeWrapper }:
+{
+  lib,
+  buildNimPackage,
+  fetchFromGitHub,
+  nim,
+  openssl,
+  makeWrapper,
+}:
 
-buildNimPackage (final: prev: {
-  pname = "nimble";
-  version = "0.14.2";
+buildNimPackage (
+  final: prev: {
+    pname = "nimble";
+    version = "0-unstable-2024-05-14";
 
-  requiredNimVersion = 1;
+    src = fetchFromGitHub {
+      owner = "nim-lang";
+      repo = "nimble";
+      rev = "f8bd7b5fa6ea7a583b411b5959b06e6b5eb23667";
+      hash = "sha256-aRDaucD6wOUPtXLIrahvK0vBfurdgFrk+swzqzMA09w=";
+    };
 
-  src = fetchFromGitHub {
-    owner = "nim-lang";
-    repo = "nimble";
-    rev = "v${final.version}";
-    hash = "sha256-8b5yKvEl7c7wA/8cpdaN2CSvawQJzuRce6mULj3z/mI=";
-  };
+    lockFile = ./lock.json;
 
-  nativeBuildInputs = [ makeWrapper ];
+    nativeBuildInputs = [ makeWrapper ];
+    buildInputs = [ openssl ];
 
-  doCheck = false; # it works on their machine
+    nimFlags = [ "--define:git_revision_override=${final.src.rev}" ];
 
-  postInstall = ''
-    wrapProgram $out/bin/nimble \
-      --suffix PATH : ${lib.makeBinPath [ nim ]}
-  '';
+    doCheck = false; # it works on their machine
 
-  meta = {
-    description = "Package manager for the Nim programming language";
-    homepage = "https://github.com/nim-lang/nimble";
-    license = lib.licenses.bsd3;
-    mainProgram = "nimble";
-  };
-})
+    postInstall = ''
+      wrapProgram $out/bin/nimble \
+        --suffix PATH : ${lib.makeBinPath [ nim ]}
+    '';
+
+    meta = {
+      description = "Package manager for the Nim programming language";
+      homepage = "https://github.com/nim-lang/nimble";
+      license = lib.licenses.bsd3;
+      mainProgram = "nimble";
+    };
+  }
+)
diff --git a/pkgs/development/tools/build-managers/ninja/default.nix b/pkgs/by-name/ni/ninja/package.nix
index 3402bcfca625f..23d279e362d76 100644
--- a/pkgs/development/tools/build-managers/ninja/default.nix
+++ b/pkgs/by-name/ni/ninja/package.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , asciidoc
 , docbook_xml_dtd_45
 , docbook_xsl
@@ -11,17 +10,18 @@
 , re2c
 , buildPackages
 , buildDocs ? true
+, nix-update-script
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "ninja";
-  version = "1.11.1";
+  version = "1.12.1";
 
   src = fetchFromGitHub {
     owner = "ninja-build";
     repo = "ninja";
-    rev = "v${version}";
-    hash = "sha256-LvV/Fi2ARXBkfyA1paCRmLUwCh/rTyz+tGMg2/qEepI=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-RT5u+TDvWxG5EVQEYj931EZyrHUSAqK73OKDAascAwA=";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
@@ -38,15 +38,6 @@ stdenv.mkDerivation rec {
     libxslt.bin
   ];
 
-  patches = lib.optionals stdenv.is32bit [
-    # Otherwise ninja may fail on some files in a larger FS.
-    (fetchpatch {
-      name = "stat64.patch";
-      url = "https://github.com/ninja-build/ninja/commit/7bba11ae704efc84cac5fde5e9be53f653f237d1.diff";
-      hash = "sha256-tINS57xLh1lwnYFWCQs5OudfgtIShaOh5zbmv7w5BnQ=";
-    })
-  ];
-
   postPatch = ''
     # write rebuild args to file after bootstrap
     substituteInPlace configure.py --replace "subprocess.check_call(rebuild_args)" "open('rebuild_args','w').write(rebuild_args[0])"
@@ -91,7 +82,9 @@ stdenv.mkDerivation rec {
 
   setupHook = ./setup-hook.sh;
 
-  meta = with lib; {
+  passthru.updateScript = nix-update-script {};
+
+  meta = {
     description = "Small build system with a focus on speed";
     mainProgram = "ninja";
     longDescription = ''
@@ -101,8 +94,8 @@ stdenv.mkDerivation rec {
       to run builds as fast as possible.
     '';
     homepage = "https://ninja-build.org/";
-    license = licenses.asl20;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ thoughtpolice bjornfor orivej ];
+    license = lib.licenses.asl20;
+    platforms = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ thoughtpolice bjornfor orivej ];
   };
-}
+})
diff --git a/pkgs/development/tools/build-managers/ninja/setup-hook.sh b/pkgs/by-name/ni/ninja/setup-hook.sh
index 7fa5e4675f39b..7fa5e4675f39b 100644
--- a/pkgs/development/tools/build-managers/ninja/setup-hook.sh
+++ b/pkgs/by-name/ni/ninja/setup-hook.sh
diff --git a/pkgs/by-name/ni/nix-janitor/package.nix b/pkgs/by-name/ni/nix-janitor/package.nix
new file mode 100644
index 0000000000000..25595ee83822e
--- /dev/null
+++ b/pkgs/by-name/ni/nix-janitor/package.nix
@@ -0,0 +1,43 @@
+{
+  lib,
+  rustPlatform,
+  fetchFromGitHub,
+  installShellFiles,
+  nix-update-script,
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "nix-janitor";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "nobbz";
+    repo = "nix-janitor";
+    rev = "refs/tags/${version}";
+    hash = "sha256-xoVByI17rt2SCY3ULg12S8QsoXGhQWZlOpPpK2mfcPY=";
+  };
+
+  cargoHash = "sha256-QG2hHM4KBSU6+droew2WnOFxWRTpk9griIPMD8MLSbw=";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    for shell in bash fish zsh; do
+      completionFile=janitor.$shell
+      $out/bin/janitor --completions $shell > $completionFile
+      installShellCompletion $completionFile
+    done
+  '';
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    homepage = "https://github.com/nobbz/nix-janitor";
+    changelog = "https://github.com/NobbZ/nix-janitor/blob/${version}/CHANGELOG.md";
+    description = "A tool to clean up old profile generations";
+    mainProgram = "janitor";
+    platforms = lib.platforms.linux;
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.nobbz ];
+  };
+}
diff --git a/pkgs/by-name/no/node-hp-scan-to/package.nix b/pkgs/by-name/no/node-hp-scan-to/package.nix
index 93ea3b3a760a9..86498d2b7fd52 100644
--- a/pkgs/by-name/no/node-hp-scan-to/package.nix
+++ b/pkgs/by-name/no/node-hp-scan-to/package.nix
@@ -10,18 +10,18 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "node-hp-scan-to";
-  version = "1.4.2";
+  version = "1.4.3";
 
   src = fetchFromGitHub {
     owner = "manuc66";
     repo = "node-hp-scan-to";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-/aoR2ccDYTkdmcj4k2zf8VJydQufZ2ucqyZ1OH9jRt0=";
+    hash = "sha256-/XUqCL2F1iMYUoCbGgL9YKs+8wIFHvmh2O0LMbDU8yE=";
   };
 
   offlineCache = fetchYarnDeps {
     yarnLock = "${finalAttrs.src}/yarn.lock";
-    hash = "sha256-Mhlw/3js35TOVDADsPScE9kfv9rmF+u1LzDmKkzunM0=";
+    hash = "sha256-pxeYumHuomOFyCi8XhYTYQNcsGOUvjOg36bFD0yhdLk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/no/nomacs/package.nix b/pkgs/by-name/no/nomacs/package.nix
index 138e4ead7fcde..a12d5db94b869 100644
--- a/pkgs/by-name/no/nomacs/package.nix
+++ b/pkgs/by-name/no/nomacs/package.nix
@@ -38,7 +38,10 @@ stdenv.mkDerivation (finalAttrs: {
     exiv2
     libraw
     libtiff
-    opencv4
+    # Once python stops relying on `propagatedBuildInputs` (https://github.com/NixOS/nixpkgs/issues/272178), deprecate `cxxdev` and switch to `dev`;
+    # note `dev` is selected by `mkDerivation` automatically, so one should omit `getOutput "dev"`;
+    # see: https://github.com/NixOS/nixpkgs/pull/314186#issuecomment-2129974277
+    (lib.getOutput "cxxdev" opencv4)
   ] ++ (with libsForQt5; [
     qtbase
     qtimageformats
diff --git a/pkgs/by-name/no/normcap/package.nix b/pkgs/by-name/no/normcap/package.nix
index 98fb6f27e117a..a7c349a7a3566 100644
--- a/pkgs/by-name/no/normcap/package.nix
+++ b/pkgs/by-name/no/normcap/package.nix
@@ -25,7 +25,7 @@ in
 
 ps.buildPythonApplication rec {
   pname = "normcap";
-  version = "0.5.7";
+  version = "0.5.8";
   format = "pyproject";
 
   disabled = ps.pythonOlder "3.9";
@@ -34,7 +34,7 @@ ps.buildPythonApplication rec {
     owner = "dynobo";
     repo = "normcap";
     rev = "refs/tags/v${version}";
-    hash = "sha256-JeecX7rxM3T2WqGFwANI5+HQFWCLLA8ESHy8mEKYUmc=";
+    hash = "sha256-iMlW8oEt4OSipJaQ2XzBZeBVqiZP/C1sM0f5LYjv7/A=";
   };
 
   postPatch = ''
diff --git a/pkgs/by-name/nu/nuclei-templates/package.nix b/pkgs/by-name/nu/nuclei-templates/package.nix
index 90eb9d35d25ec..1d4910c212de7 100644
--- a/pkgs/by-name/nu/nuclei-templates/package.nix
+++ b/pkgs/by-name/nu/nuclei-templates/package.nix
@@ -6,13 +6,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "nuclei-templates";
-  version = "9.8.6";
+  version = "9.8.7";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "nuclei-templates";
     rev = "refs/tags/v${version}";
-    hash = "sha256-3hJfWSBciJ/UutVBIGisptcxmtWfvSfTbx55cyWxs4k=";
+    hash = "sha256-Masj0v9WGcLJKd/43T4klwyIM2uqhvuLSW5PBuKzsQg=";
   };
 
   installPhase = ''
diff --git a/pkgs/by-name/oh/oh-my-posh/package.nix b/pkgs/by-name/oh/oh-my-posh/package.nix
index 698aa781b2013..e36c1faf97a7d 100644
--- a/pkgs/by-name/oh/oh-my-posh/package.nix
+++ b/pkgs/by-name/oh/oh-my-posh/package.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "oh-my-posh";
-  version = "19.29.0";
+  version = "20.2.0";
 
   src = fetchFromGitHub {
     owner = "jandedobbeleer";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-vn3P9upO6d0jpZzrG77/xkhfn4NINnBZ3YymlRdoONw=";
+    hash = "sha256-OkLQpU9FN7R+W8zNd3UMmNVgmEVzSVibZ/cl5mN8TU8=";
   };
 
-  vendorHash = "sha256-mZNhsvEI1AbsAhoK7AuNgrQvYlkGrrpPVuv3R5nssC4=";
+  vendorHash = "sha256-PDMmiU6NoJiCRZxJNKxt30sH+a14Snvk/CrD/+QpEEU=";
 
   sourceRoot = "${src.name}/src";
 
diff --git a/pkgs/by-name/oi/oink/package.nix b/pkgs/by-name/oi/oink/package.nix
new file mode 100644
index 0000000000000..b7198abacc544
--- /dev/null
+++ b/pkgs/by-name/oi/oink/package.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "oink";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "rlado";
+    repo = "oink";
+    rev = "v${version}";
+    hash = "sha256-nSLoochU0mRxD83EXH3xsrfBBg4SnvIyf5qUiwSeh0c=";
+  };
+
+  vendorHash = null;
+
+  postInstall = ''
+    mv $out/bin/src $out/bin/oink
+  '';
+
+  meta = {
+    description = "Dynamic DNS client for Porkbun";
+    homepage = "https://github.com/rlado/oink";
+    license = lib.licenses.mit;
+    mainProgram = "oink";
+    maintainers = with lib.maintainers; [ jtbx ];
+  };
+}
diff --git a/pkgs/by-name/om/omnictl/package.nix b/pkgs/by-name/om/omnictl/package.nix
index 7e8cb69b2e628..32464882fe8c3 100644
--- a/pkgs/by-name/om/omnictl/package.nix
+++ b/pkgs/by-name/om/omnictl/package.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "omnictl";
-  version = "0.35.1";
+  version = "0.36.0";
 
   src = fetchFromGitHub {
     owner = "siderolabs";
     repo = "omni";
     rev = "v${version}";
-    hash = "sha256-cxD3oaGRpYqgraJpDtnjND5TBSdloACms57Be/gnTbo=";
+    hash = "sha256-bGJWo12rIinqyQyfTZEoT6S7OzO4BO/GRdjnC+hWdFM=";
   };
 
-  vendorHash = "sha256-gQUg0ynaySpBCrZWeZl0GdiB7mvHML58lmV6l7ABb5E=";
+  vendorHash = "sha256-FxoSHsIRvRIQuu87l4587Pgb0YjHJISjB621XAHkJNM=";
 
   ldflags = [ "-s" "-w" ];
 
diff --git a/pkgs/by-name/op/opensnitch/package.nix b/pkgs/by-name/op/opensnitch/package.nix
index df8647bdeb054..52b8b9ef80b4b 100644
--- a/pkgs/by-name/op/opensnitch/package.nix
+++ b/pkgs/by-name/op/opensnitch/package.nix
@@ -1,13 +1,11 @@
 { buildGoModule
 , fetchFromGitHub
-, fetchpatch
 , protobuf
 , go-protobuf
 , pkg-config
 , libnetfilter_queue
 , libnfnetlink
 , lib
-, coreutils
 , iptables
 , makeWrapper
 , protoc-gen-go-grpc
diff --git a/pkgs/by-name/op/openturns/package.nix b/pkgs/by-name/op/openturns/package.nix
index 152714133fa7a..e6f3fb3a5ff7f 100644
--- a/pkgs/by-name/op/openturns/package.nix
+++ b/pkgs/by-name/op/openturns/package.nix
@@ -7,7 +7,6 @@
   darwin,
   dlib,
   fetchFromGitHub,
-  fetchpatch,
   hdf5,
   hmat-oss,
   ipopt,
diff --git a/pkgs/by-name/op/openvas-scanner/package.nix b/pkgs/by-name/op/openvas-scanner/package.nix
index f732a8226ce17..9ca1d240ba8f8 100644
--- a/pkgs/by-name/op/openvas-scanner/package.nix
+++ b/pkgs/by-name/op/openvas-scanner/package.nix
@@ -31,13 +31,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openvas-scanner";
-  version = "23.3.0";
+  version = "23.3.1";
 
   src = fetchFromGitHub {
     owner = "greenbone";
     repo = "openvas-scanner";
     rev = "refs/tags/v${version}";
-    hash = "sha256-CkwDhHPdTbXNrqY/obg1rOtGB1HC+fUwZ5+5d82vlV4=";
+    hash = "sha256-0vcGKC979bJLhq/9e+DYaRrsUktjMyMuZNqZYK6BCWQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/pa/pacu/package.nix b/pkgs/by-name/pa/pacu/package.nix
index ff69f23d6b298..46143afdb5e38 100644
--- a/pkgs/by-name/pa/pacu/package.nix
+++ b/pkgs/by-name/pa/pacu/package.nix
@@ -12,14 +12,14 @@ let
 in
 python.pkgs.buildPythonApplication rec {
   pname = "pacu";
-  version = "1.5.3";
+  version = "1.6.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "RhinoSecurityLabs";
     repo = "pacu";
     rev = "refs/tags/v${version}";
-    hash = "sha256-DLyTWyfDOawtBZ7rIzVc0PFgagpM7qbaAbOJE6nh0Wo=";
+    hash = "sha256-Td5H4O6/7Gh/rvP191xjCJmIbyc4ezZC5Fh4FZ39ZUM=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/desktops/pantheon/third-party/pantheon-tweaks/default.nix b/pkgs/by-name/pa/pantheon-tweaks/package.nix
index c05c4b9b0a251..fc49c062d907b 100644
--- a/pkgs/desktops/pantheon/third-party/pantheon-tweaks/default.nix
+++ b/pkgs/by-name/pa/pantheon-tweaks/package.nix
@@ -7,6 +7,7 @@
 , pkg-config
 , python3
 , vala
+, wrapGAppsHook3
 , gtk3
 , libgee
 , pantheon
@@ -14,25 +15,22 @@
 
 stdenv.mkDerivation rec {
   pname = "pantheon-tweaks";
-  version = "1.1.2";
+  version = "2.0.2";
 
   src = fetchFromGitHub {
     owner = "pantheon-tweaks";
     repo = pname;
     rev = version;
-    sha256 = "sha256-E9YSRfh9bLAHn2y4p3aKwR5NOtexKokLWj3RwtDnLsQ=";
+    hash = "sha256-7a6maEpvmIS+Raawr9ec44nCbuj83EUnd+8RqYgWy24=";
   };
 
-  patches = [
-    ./fix-paths.patch
-  ];
-
   nativeBuildInputs = [
     meson
     ninja
     pkg-config
     python3
     vala
+    wrapGAppsHook3
   ];
 
   buildInputs = [
@@ -42,12 +40,14 @@ stdenv.mkDerivation rec {
     elementary-files # settings schemas
     elementary-terminal # settings schemas
     granite
-    switchboard
   ]);
 
   postPatch = ''
     chmod +x meson/post_install.py
     patchShebangs meson/post_install.py
+
+    substituteInPlace src/Settings/ThemeSettings.vala \
+      --replace-fail "/usr/share/" "/run/current-system/sw/share/"
   '';
 
   passthru = {
@@ -55,15 +55,15 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "Unofficial system settings panel for Pantheon";
+    description = "Unofficial system customization app for Pantheon";
     longDescription = ''
-      Unofficial system settings panel for Pantheon
+      Unofficial system customization app for Pantheon
       that lets you easily and safely customise your desktop's appearance.
-      Use programs.pantheon-tweaks.enable to add this to your switchboard.
     '';
     homepage = "https://github.com/pantheon-tweaks/pantheon-tweaks";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = teams.pantheon.members;
+    mainProgram = "pantheon-tweaks";
   };
 }
diff --git a/pkgs/by-name/pa/patch2pr/package.nix b/pkgs/by-name/pa/patch2pr/package.nix
index 488d2f8583772..0795adf94f5f8 100644
--- a/pkgs/by-name/pa/patch2pr/package.nix
+++ b/pkgs/by-name/pa/patch2pr/package.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "patch2pr";
-  version = "0.24.0";
+  version = "0.25.0";
 
   src = fetchFromGitHub {
     owner = "bluekeyes";
     repo = "patch2pr";
     rev = "v${version}";
-    hash = "sha256-ot/PECNRuhJUYX1woektKC6VEV+rLKiSnCVCLIRhSUo=";
+    hash = "sha256-mS7Yz1RPeA/pms3gGQ1oEjtzH9miIOWlf6YrrIoJk94=";
   };
 
-  vendorHash = "sha256-K2qYfS0A1gOo2n3pBy00oLbd1/q/p5N8RoId+OP1Jmw=";
+  vendorHash = "sha256-XJC4rJI+adqiyFfiuyTbrAoWDiTThz7vjDZQrchDEiA=";
 
   ldflags = [
     "-X main.version=${version}"
diff --git a/pkgs/by-name/pd/pdpmake/package.nix b/pkgs/by-name/pd/pdpmake/package.nix
index 808de7bb755d7..94b4ba36cde49 100644
--- a/pkgs/by-name/pd/pdpmake/package.nix
+++ b/pkgs/by-name/pd/pdpmake/package.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchFromGitHub }:
 stdenv.mkDerivation rec {
   pname = "pdpmake";
-  version = "1.4.1";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner = "rmyorston";
     repo = "pdpmake";
     rev = version;
-    hash = "sha256-N9MT+3nE8To0ktNTPT9tDHkKRrn4XsTYiTeYdBk9VtI=";
+    hash = "sha256-zp2o/wFYvUbCRwxHbggcGMwoCMNEJuwen8HYkn7AEwc=";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/pkgs/by-name/pe/peergos/package.nix b/pkgs/by-name/pe/peergos/package.nix
index dc142f44ce591..ed147d218ee08 100644
--- a/pkgs/by-name/pe/peergos/package.nix
+++ b/pkgs/by-name/pe/peergos/package.nix
@@ -9,10 +9,10 @@
 
 stdenv.mkDerivation rec {
   pname = "peergos";
-  version = "0.17.0";
+  version = "0.18.0";
   src = fetchurl {
     url = "https://github.com/Peergos/web-ui/releases/download/v${version}/Peergos.jar";
-    hash = "sha256-sQPEKvtQDRQ4dF22tZjPhK7DLtDVAcudxoA4+GOeeZA=";
+    hash = "sha256-qscNGuptkRd7bQhIq51bJ/cH2Gzn60lB4IUT9RK6eIo=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/by-name/pe/perf_data_converter/package.nix b/pkgs/by-name/pe/perf_data_converter/package.nix
index 22f6e5aa9a8d7..c8d49ab84c929 100644
--- a/pkgs/by-name/pe/perf_data_converter/package.nix
+++ b/pkgs/by-name/pe/perf_data_converter/package.nix
@@ -1,9 +1,7 @@
 {
   lib,
-  stdenv,
   buildBazelPackage,
   fetchFromGitHub,
-  fetchpatch,
   bazel_6,
   jdk,
   elfutils,
diff --git a/pkgs/by-name/pe/perl-debug-adapter/package.nix b/pkgs/by-name/pe/perl-debug-adapter/package.nix
index 4b1dd4e09ee67..eb9dd371a9b9b 100644
--- a/pkgs/by-name/pe/perl-debug-adapter/package.nix
+++ b/pkgs/by-name/pe/perl-debug-adapter/package.nix
@@ -1,7 +1,6 @@
 { lib
 , buildNpmPackage
 , fetchFromGitHub
-, fetchpatch
 , makeWrapper
 , perl
 # Needed if you want to use it for a perl script with dependencies.
diff --git a/pkgs/by-name/ph/phpdocumentor/package.nix b/pkgs/by-name/ph/phpdocumentor/package.nix
index e0eeef5935a3b..710a0cf4dce3a 100644
--- a/pkgs/by-name/ph/phpdocumentor/package.nix
+++ b/pkgs/by-name/ph/phpdocumentor/package.nix
@@ -6,16 +6,16 @@
 
 php.buildComposerProject (finalAttrs: {
   pname = "phpdocumentor";
-  version = "3.4.3";
+  version = "3.5.0";
 
   src = fetchFromGitHub {
     owner = "phpDocumentor";
     repo = "phpDocumentor";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-NCBCwQ8im6ttFuQBaG+bzmtinf+rqNnbogcK8r60dCM=";
+    hash = "sha256-//erxY9ryJne/HZLB1l4SwF3EsQ1vmgSe4pZ5xSieIU=";
   };
 
-  vendorHash = "sha256-/TJ/CahmOWcRBlAsJDzWcfhlDd+ypRapruFT0Dvlb1w=";
+  vendorHash = "sha256-VNlAzWueF7ZXBpr9RrJghMPrAUof7f1DCh1osFIwFfs=";
 
   # Needed because of the unbound version constraint on phpdocumentor/json-path
   composerStrictValidation = false;
diff --git a/pkgs/by-name/ph/physac/package.nix b/pkgs/by-name/ph/physac/package.nix
new file mode 100644
index 0000000000000..292d5ce6bd24e
--- /dev/null
+++ b/pkgs/by-name/ph/physac/package.nix
@@ -0,0 +1,47 @@
+{
+  stdenvNoCC,
+  fetchFromGitHub,
+  lib
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  name = "physac";
+  version = "2.5-unstable-2023-12-11";
+
+  src = fetchFromGitHub {
+    owner = "victorfisac";
+    repo = "Physac";
+    rev = "29d9fc06860b54571a02402fff6fa8572d19bd12";
+    hash = "sha256-PTlV1tT0axQbmGmJ7JD1n6wmbIxUdu7xho78EO0HNNk=";
+  };
+
+  dontBuild = true;
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{include,lib/pkgconfig}
+
+    install -Dm644 $src/src/physac.h $out/include/physac.h
+
+    cat <<EOF > $out/lib/pkgconfig/physac.pc
+    prefix=$out
+    includedir=$out/include
+
+    Name: physac
+    Description: ${finalAttrs.meta.description}
+    URL: ${finalAttrs.meta.homepage}
+    Version: ${finalAttrs.version}
+    Cflags: -I"{includedir}"
+    EOF
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "2D physics header-only library for raylib";
+    homepage = "https://github.com/victorfisac/Physac";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ sigmanificient ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/pkgs/by-name/pi/pinact/package.nix b/pkgs/by-name/pi/pinact/package.nix
index 7e710c8f270ec..1c32aac2180de 100644
--- a/pkgs/by-name/pi/pinact/package.nix
+++ b/pkgs/by-name/pi/pinact/package.nix
@@ -7,18 +7,18 @@
 
 let
   pname = "pinact";
-  version = "0.1.3";
+  version = "0.2.0";
   src = fetchFromGitHub {
     owner = "suzuki-shunsuke";
     repo = "pinact";
     rev = "v${version}";
-    hash = "sha256-ifUnF7u4/vMy89xb7sk4tPKQYdFBYAIHc0GYVBMWvWM=";
+    hash = "sha256-ndlyfp+neoOEzofIlQEQp/6masnzMQFWAPmhan3hlb0=";
   };
 in
 buildGoModule {
   inherit pname version src;
 
-  vendorHash = "sha256-ht4eV62w9AWKYahrd83LmBI+Tu2Q64YA3t90N4BR1e4=";
+  vendorHash = "sha256-qu4CHh2013q7e7mBuymlKEhjpdtSOaWGVutjegoVP7E=";
 
   doCheck = true;
 
diff --git a/pkgs/by-name/pl/plattenalbum/package.nix b/pkgs/by-name/pl/plattenalbum/package.nix
new file mode 100644
index 0000000000000..374b15fe0cab3
--- /dev/null
+++ b/pkgs/by-name/pl/plattenalbum/package.nix
@@ -0,0 +1,60 @@
+{
+  lib,
+  python3Packages,
+  fetchFromGitHub,
+  meson,
+  ninja,
+  pkg-config,
+  gobject-introspection,
+  wrapGAppsHook4,
+  desktop-file-utils,
+  libadwaita,
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "plattenalbum";
+  version = "2.1.0";
+  pyproject = false;
+
+  src = fetchFromGitHub {
+    owner = "SoongNoonien";
+    repo = "plattenalbum";
+    rev = "v${version}";
+    hash = "sha256-vRBlShbNuPpL29huhzYSuUcMJmSLljO4nc6cSAp3NB4=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gobject-introspection
+    wrapGAppsHook4
+    desktop-file-utils
+  ];
+
+  buildInputs = [ libadwaita ];
+
+  dependencies = with python3Packages; [
+    pygobject3
+    mpd2
+  ];
+
+  dontWrapGApps = true;
+
+  preFixup = ''
+    makeWrapperArgs+=(''${gappsWrapperArgs[@]})
+  '';
+
+  meta = {
+    description = "A client for the Music Player Daemon (originally named mpdevil)";
+    homepage = "https://github.com/SoongNoonien/plattenalbum";
+    changelog = "https://github.com/SoongNoonien/plattenalbum/releases/tag/v${version}";
+    license = with lib.licenses; [
+      gpl3Only
+      cc0
+    ];
+    mainProgram = "plattenalbum";
+    maintainers = with lib.maintainers; [ aleksana ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/pm/pm2/package.nix b/pkgs/by-name/pm/pm2/package.nix
index 1b29f2fa52dc0..12473ffc21965 100644
--- a/pkgs/by-name/pm/pm2/package.nix
+++ b/pkgs/by-name/pm/pm2/package.nix
@@ -5,16 +5,16 @@
 
 buildNpmPackage rec {
   pname = "pm2";
-  version = "5.3.1";
+  version = "5.4.0";
 
   src = fetchFromGitHub {
     owner = "Unitech";
     repo = "pm2";
     rev = "v${version}";
-    hash = "sha256-thShqrnM5S3/IImEm+2vHVRLCsLJN5NGaSRYubtULW0=";
+    hash = "sha256-hmciDjlmlIaqOWl9rYWQ6muq6LFzQb5tfpdzL0vV/ZM=";
   };
 
-  npmDepsHash = "sha256-6M8kwiCHaQzcFyUUx7Yax/dobATWXG0Di7enEzlO8YE=";
+  npmDepsHash = "sha256-je+GwPkUiGPWgKQgSPlx2OEWMbDKdwEM/idTjgINLHY=";
 
   dontNpmBuild = true;
 
diff --git a/pkgs/tools/misc/pmbootstrap/default.nix b/pkgs/by-name/pm/pmbootstrap/package.nix
index 03cc7997e2252..666f12396681a 100644
--- a/pkgs/tools/misc/pmbootstrap/default.nix
+++ b/pkgs/by-name/pm/pmbootstrap/package.nix
@@ -1,15 +1,24 @@
-{ stdenv, lib, git, openssl, buildPythonApplication, pytestCheckHook, ps
-, fetchPypi, fetchFromGitLab, sudo }:
+{ stdenv
+, lib
+, git
+, openssl
+, ps
+, fetchFromGitLab
+, sudo
+, python3Packages
+, gitUpdater
+}:
 
-buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "pmbootstrap";
-  version = "2.2.0";
+  version = "2.3.1";
+  pyproject = true;
 
   src = fetchFromGitLab {
     owner = "postmarketos";
     repo = pname;
     rev = version;
-    hash = "sha256-wRJvvABIUPh79QfS8VcwRueB/vO9oGcqyE/OugfTsd8=";
+    hash = "sha256-0hC84Gyfr1FOpZGAc7pAhz/QBSTA5A/Lu/ZJdzlEcX4=";
   };
 
   pmb_test = "${src}/test";
@@ -17,7 +26,14 @@ buildPythonApplication rec {
   # Tests depend on sudo
   doCheck = stdenv.isLinux;
 
-  nativeCheckInputs = [ pytestCheckHook git openssl ps sudo ];
+  nativeCheckInputs = [
+    python3Packages.pytestCheckHook
+    python3Packages.setuptools
+    git
+    openssl
+    ps
+    sudo
+  ];
 
   # Add test dependency in PATH
   preCheck = "export PYTHONPATH=$PYTHONPATH:${pmb_test}";
@@ -93,12 +109,14 @@ buildPythonApplication rec {
 
   makeWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ git openssl ]}" ];
 
+  passthru.updateScript = gitUpdater { };
+
   meta = with lib; {
     description =
       "Sophisticated chroot/build/flash tool to develop and install postmarketOS";
     homepage = "https://gitlab.com/postmarketOS/pmbootstrap";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ onny ];
+    maintainers = with maintainers; [ onny lucasew ];
     mainProgram = "pmbootstrap";
   };
 }
diff --git a/pkgs/by-name/po/poptracker/package.nix b/pkgs/by-name/po/poptracker/package.nix
index 6ef94feb3484a..4fb90aa82c37c 100644
--- a/pkgs/by-name/po/poptracker/package.nix
+++ b/pkgs/by-name/po/poptracker/package.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "poptracker";
-  version = "0.25.7";
+  version = "0.26.1";
 
   src = fetchFromGitHub {
     owner = "black-sliver";
     repo = "PopTracker";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-wP2d8cWNg80KUyw1xPQMriNRg3UyXgKaSoJ17U5vqCE=";
+    hash = "sha256-NeUIU+vXML9lP+JL7MJyGNxZB0ggAngOpf8mMgOE+r8=";
     fetchSubmodules = true;
   };
 
@@ -57,7 +57,7 @@ stdenv.mkDerivation (finalAttrs: {
     runHook postInstall
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Scriptable tracker for randomized games";
     longDescription = ''
       Universal, scriptable randomizer tracking solution that is open source. Supports auto-tracking.
@@ -66,8 +66,8 @@ stdenv.mkDerivation (finalAttrs: {
     '';
     homepage = "https://github.com/black-sliver/PopTracker";
     changelog = "https://github.com/black-sliver/PopTracker/releases/tag/v${finalAttrs.version}";
-    license = licenses.gpl3Only;
-    maintainers = with maintainers; [ freyacodes ];
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ freyacodes pyrox0 ];
     mainProgram = "poptracker";
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/by-name/pr/pretix/package.nix b/pkgs/by-name/pr/pretix/package.nix
index a45fdbdf2ff31..8234f49fcf134 100644
--- a/pkgs/by-name/pr/pretix/package.nix
+++ b/pkgs/by-name/pr/pretix/package.nix
@@ -29,13 +29,13 @@ let
   };
 
   pname = "pretix";
-  version = "2024.4.0";
+  version = "2024.5.0";
 
   src = fetchFromGitHub {
     owner = "pretix";
     repo = "pretix";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+F5EOMMkO1ngGeFscDipwbldsY0AhOUKbjqgNpuph4g=";
+    hash = "sha256-dLzCugbRQSGuOwe99a3WLMffisyvYWNRdSdcdW9knjY=";
   };
 
   npmDeps = buildNpmPackage {
@@ -43,7 +43,7 @@ let
     inherit version src;
 
     sourceRoot = "${src.name}/src/pretix/static/npm_dir";
-    npmDepsHash = "sha256-0Q/BCRHlnyQJlCF3PgIP9q3Qyr/ff+GP0lPIwPsIMSU=";
+    npmDepsHash = "sha256-SEgAC3dmnxG1xM9QZQ/e+6NFOwXU3tXlbfZCzrAMFO0=";
 
     dontBuild = true;
 
@@ -81,15 +81,15 @@ python.pkgs.buildPythonApplication rec {
       --replace-fail psycopg2-binary psycopg2 \
       --replace-fail vat_moss_forked==2020.3.20.0.11.0 vat-moss \
       --replace-fail "bleach==5.0.*" bleach \
-      --replace-fail "django-hierarkey==1.1.*" django-hierarkey \
+      --replace-fail "django-oauth-toolkit==2.3.*" django-oauth-toolkit \
       --replace-fail "djangorestframework==3.15.*" djangorestframework \
       --replace-fail "dnspython==2.6.*" dnspython \
       --replace-fail "importlib_metadata==7.*" importlib_metadata \
       --replace-fail "markdown==3.6" markdown \
-      --replace-fail "protobuf==5.26.*" protobuf \
+      --replace-fail "protobuf==5.27.*" protobuf \
       --replace-fail "pycryptodome==3.20.*" pycryptodome \
-      --replace-fail "pypdf==3.9.*" pypdf \
       --replace-fail "python-dateutil==2.9.*" python-dateutil \
+      --replace-fail "requests==2.32.*" "requests" \
       --replace-fail "stripe==7.9.*" stripe
   '';
 
@@ -179,7 +179,9 @@ python.pkgs.buildPythonApplication rec {
     vobject
     webauthn
     zeep
-  ] ++ plugins;
+  ]
+  ++ django.optional-dependencies.argon2
+  ++ plugins;
 
   optional-dependencies = with python.pkgs; {
     memcached = [
diff --git a/pkgs/by-name/pr/pretix/plugins/pages.nix b/pkgs/by-name/pr/pretix/plugins/pages.nix
index 91f8ef032f773..0edc1f9c34894 100644
--- a/pkgs/by-name/pr/pretix/plugins/pages.nix
+++ b/pkgs/by-name/pr/pretix/plugins/pages.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "pretix-pages";
-  version = "1.6.0";
+  version = "1.6.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "pretix";
     repo = "pretix-pages";
     rev = "v${version}";
-    hash = "sha256-cO5tAiOifLpqFEQwYgrGoByUecpzvue8YmChpPwm+y0=";
+    hash = "sha256-u2POt3v0OpjbauDCX8Uclvqd1+jujvVrzUIYrvDv/qI=";
   };
 
   build-system = [
diff --git a/pkgs/by-name/pr/pretix/plugins/passbook.nix b/pkgs/by-name/pr/pretix/plugins/passbook.nix
index b7d380aa681d9..ccb14543b7ab0 100644
--- a/pkgs/by-name/pr/pretix/plugins/passbook.nix
+++ b/pkgs/by-name/pr/pretix/plugins/passbook.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "pretix-passbook";
-  version = "1.13.1";
+  version = "1.13.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "pretix";
     repo = "pretix-passbook";
     rev = "v${version}";
-    hash = "sha256-bp64wCEMon05JhOaDr/cVbqUxc+7ndcsSuSesxJt8GE=";
+    hash = "sha256-rdX93AFoLLsA44a9sSgcQrCJiOlhe3j5WTBO+MHZ/X8=";
   };
 
   patches = [
diff --git a/pkgs/by-name/pr/proto/package.nix b/pkgs/by-name/pr/proto/package.nix
index 606db2601f0cc..26dd5c047118f 100644
--- a/pkgs/by-name/pr/proto/package.nix
+++ b/pkgs/by-name/pr/proto/package.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "proto";
-  version = "0.35.2";
+  version = "0.35.3";
 
   src = fetchFromGitHub {
     owner = "moonrepo";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-2m6ktcSZWOuu4S3FI3kiPTRhS2+rRgI5M7BZ//9bb8M=";
+    hash = "sha256-ybWiJy4U3l0g2DdoebZ0XUPRres7+DLz3tES7I7M/JQ=";
   };
 
-  cargoHash = "sha256-JbuHuj0VG+3nRNEoVHoOdA66RWbWrIzDkwa7PsO3TJ0=";
+  cargoHash = "sha256-1DlDqzymrTFrtgDcgyoev864EBw8BGcxyquMt28NPTw=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.SystemConfiguration
diff --git a/pkgs/by-name/py/pyprland/package.nix b/pkgs/by-name/py/pyprland/package.nix
index 3af5128c129b5..3f4a57d7bcfc4 100644
--- a/pkgs/by-name/py/pyprland/package.nix
+++ b/pkgs/by-name/py/pyprland/package.nix
@@ -7,7 +7,7 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "pyprland";
-  version = "2.3.2";
+  version = "2.3.4";
   format = "pyproject";
 
   disabled = python3Packages.pythonOlder "3.10";
@@ -16,7 +16,7 @@ python3Packages.buildPythonApplication rec {
     owner = "hyprland-community";
     repo = "pyprland";
     rev = "refs/tags/${version}";
-    hash = "sha256-3Y+5tOKd4Z7xwTU4OoEQffw70kb29wxKFC9Oh0bCO4k=";
+    hash = "sha256-mwBzLbKB/bO0Yl4VMA3roqiVs0FmmF1vfB+e+xhHe9c=";
   };
 
   nativeBuildInputs = with python3Packages; [ poetry-core ];
diff --git a/pkgs/by-name/py/pyright/package.nix b/pkgs/by-name/py/pyright/package.nix
index 1f91e91abba03..12e7bebed001e 100644
--- a/pkgs/by-name/py/pyright/package.nix
+++ b/pkgs/by-name/py/pyright/package.nix
@@ -1,13 +1,13 @@
 { lib, buildNpmPackage, fetchFromGitHub, runCommand, jq }:
 
 let
-  version = "1.1.362";
+  version = "1.1.364";
 
   src = fetchFromGitHub {
     owner = "Microsoft";
     repo = "pyright";
     rev = "${version}";
-    hash = "sha256-sz+Om2bfsJJTe2W8l49pI+K9phCTwoczeG1Q7qlMIig=";
+    hash = "sha256-7XQ/DGba00sEg/DxcKuX2ehc4V96557yvtGXFFyHD74=";
   };
 
   patchedPackageJSON = runCommand "package.json" { } ''
@@ -37,7 +37,7 @@ let
     pname = "pyright-internal";
     inherit version src;
     sourceRoot = "${src.name}/packages/pyright-internal";
-    npmDepsHash = "sha256-xcr9j5/90gfV/r0yI9ifj6Nrr9WrawwvukuVkl387r4=";
+    npmDepsHash = "sha256-ce3338ugei4R7CYKn3676ijpgYKcuyY8CgkWbf8unKw=";
     dontNpmBuild = true;
     installPhase = ''
       runHook preInstall
@@ -51,7 +51,7 @@ buildNpmPackage rec {
   inherit version src;
 
   sourceRoot = "${src.name}/packages/pyright";
-  npmDepsHash = "sha256-79tXMdOt1XH3KTT46bq35J4AcCVyoB2d4KEkr9EjqVY=";
+  npmDepsHash = "sha256-E6txhG+1DNcAR9Nia8ggWL0tDaTXs9sF4je5nDqroys=";
 
   postPatch = ''
     chmod +w ../../
diff --git a/pkgs/by-name/qc/qcm/package.nix b/pkgs/by-name/qc/qcm/package.nix
index 6e99a64e4bbac..d7939cbc18559 100644
--- a/pkgs/by-name/qc/qcm/package.nix
+++ b/pkgs/by-name/qc/qcm/package.nix
@@ -11,14 +11,14 @@
 
 stdenv.mkDerivation rec {
   pname = "qcm";
-  version = "1.0.2";
+  version = "1.0.3";
 
   src = fetchFromGitHub {
     owner = "hypengw";
     repo = "Qcm";
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-6QivAQqOuWIldx2Rh5nNsj0gia3AOUm6vy9aqyJ1G6k=";
+    hash = "sha256-9xbAw5U4BtpupelsOzfZGosdLx06TKPTG8hhc/no3R0=";
   };
 
   patches = [ ./remove_cubeb_vendor.patch ];
diff --git a/pkgs/by-name/qu/quarkus/package.nix b/pkgs/by-name/qu/quarkus/package.nix
index 018258955ff3a..025f22ee3803a 100644
--- a/pkgs/by-name/qu/quarkus/package.nix
+++ b/pkgs/by-name/qu/quarkus/package.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "quarkus-cli";
-  version = "3.10.1";
+  version = "3.10.2";
 
   src = fetchurl {
     url = "https://github.com/quarkusio/quarkus/releases/download/${finalAttrs.version}/quarkus-cli-${finalAttrs.version}.tar.gz";
-    hash = "sha256-bS+d7CvzsMcIdex+cZ8DMFOkIgT9G1ktMDu2wc6XySU=";
+    hash = "sha256-8Jkfrrw+ithsGHg1Ntetx8eSkcLu/0ObOuFKIJjfahA=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/by-name/r0/r0vm/package.nix b/pkgs/by-name/r0/r0vm/package.nix
new file mode 100644
index 0000000000000..caca6c16df07d
--- /dev/null
+++ b/pkgs/by-name/r0/r0vm/package.nix
@@ -0,0 +1,59 @@
+{ rustPlatform
+, stdenv
+, fetchFromGitHub
+, fetchurl
+, pkg-config
+, perl
+, openssl
+, lib
+, darwin
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "r0vm";
+  version = "0.21.0";
+  src = fetchFromGitHub {
+    owner = "risc0";
+    repo = "risc0";
+    rev = "v${version}";
+    sha256 = "sha256-BIQd6yX453v4w8aU+2awcngOE6t4oIf7BseVLgPG4Bw=";
+  };
+
+  buildAndTestSubdir = "risc0/r0vm";
+
+  nativeBuildInputs = [
+    pkg-config
+    perl
+  ];
+
+  buildInputs = [
+    openssl.dev
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.SystemConfiguration
+  ];
+
+  doCheck = false;
+
+  cargoHash = "sha256-OsxCIFgJiHfx52nRYRNLTB501RGKSBPQs2MQAs/BFfc=";
+
+  postPatch =
+    let
+      # see https://github.com/risc0/risc0/blob/v0.21.0/risc0/circuit/recursion/build.rs
+      sha256Hash = "3504a2542626acb974dea1ae5542c90c032c4ef42f230977f40f245442a1ec23";
+      recursionZkr = fetchurl {
+        name = "recursion_zkr.zip";
+        url = "https://risc0-artifacts.s3.us-west-2.amazonaws.com/zkr/${sha256Hash}.zip";
+        sha256 = "sha256:08zcl515890gyivhj8rgyi72q0qcr515bbm1vrsbkb164raa411m";
+      };
+    in
+    ''
+      ln -sf ${recursionZkr} ./risc0/circuit/recursion/src/recursion_zkr.zip
+    '';
+
+  meta = with lib; {
+    description = "RISC Zero zero-knowledge VM";
+    homepage = "https://github.com/risc0/risc0";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ marijanp ];
+    mainProgram = "r0vm";
+  };
+}
diff --git a/pkgs/by-name/ra/rasm/package.nix b/pkgs/by-name/ra/rasm/package.nix
new file mode 100644
index 0000000000000..d770d13578f8f
--- /dev/null
+++ b/pkgs/by-name/ra/rasm/package.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "rasm";
+  version = "2.2.3";
+
+  src = fetchFromGitHub {
+    owner = "EdouardBERGE";
+    repo = "rasm";
+    rev = "v${version}";
+    hash = "sha256-cG/RZqZRS5uuXlQo7hylCEfbXXLBa68NXsr1iQCjhNc=";
+  };
+
+  # by default the EXEC variable contains `rasm.exe`
+  makeFlags = [ "EXEC=rasm" ];
+
+  installPhase = ''
+    install -Dt $out/bin rasm
+  '';
+
+  meta = with lib; {
+    homepage = "http://rasm.wikidot.com/english-index:home";
+    description = "Z80 assembler";
+    mainProgram = "rasm";
+    # use -n option to display all licenses
+    license = licenses.mit; # expat version
+    maintainers = with lib.maintainers; [ sigmanificient ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/by-name/ra/raygui/package.nix b/pkgs/by-name/ra/raygui/package.nix
new file mode 100644
index 0000000000000..3c5b427e828fb
--- /dev/null
+++ b/pkgs/by-name/ra/raygui/package.nix
@@ -0,0 +1,47 @@
+{
+  stdenvNoCC,
+  fetchFromGitHub,
+  lib
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  name = "raygui";
+  version = "4.0";
+
+  src = fetchFromGitHub {
+    owner = "raysan5";
+    repo = "raygui";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-1qnChZYsb0e5LnPhvs6a/R5Ammgj2HWFNe9625sBRo8=";
+  };
+
+  dontBuild = true;
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{include,lib/pkgconfig}
+
+    install -Dm644 $src/src/raygui.h $out/include/raygui.h
+
+    cat <<EOF > $out/lib/pkgconfig/raygui.pc
+    prefix=$out
+    includedir=$out/include
+
+    Name: raygui
+    Description: ${finalAttrs.meta.description}
+    URL: ${finalAttrs.meta.homepage}
+    Version: ${finalAttrs.version}
+    Cflags: -I"{includedir}"
+    EOF
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "A simple and easy-to-use immediate-mode gui library";
+    homepage = "https://github.com/raysan5/raygui";
+    license = lib.licenses.zlib;
+    maintainers = with lib.maintainers; [ sigmanificient ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/pkgs/by-name/rc/rcu/package.nix b/pkgs/by-name/rc/rcu/package.nix
index 250dda8940e6d..4ae6c6894d089 100644
--- a/pkgs/by-name/rc/rcu/package.nix
+++ b/pkgs/by-name/rc/rcu/package.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , requireFile
-, fetchpatch
 , runCommand
 , rcu
 , testers
diff --git a/pkgs/by-name/re/reactphysics3d/package.nix b/pkgs/by-name/re/reactphysics3d/package.nix
index 2245eeee4214d..a4f8edc823c05 100644
--- a/pkgs/by-name/re/reactphysics3d/package.nix
+++ b/pkgs/by-name/re/reactphysics3d/package.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake }:
+{ lib, stdenv, fetchFromGitHub, cmake }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "reactphysics3d";
diff --git a/pkgs/by-name/re/recoverdm/package.nix b/pkgs/by-name/re/recoverdm/package.nix
index b0de4b7d1cfe9..647f50e97a8c3 100644
--- a/pkgs/by-name/re/recoverdm/package.nix
+++ b/pkgs/by-name/re/recoverdm/package.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitLab
-, fetchpatch
 , installShellFiles
 }:
 
diff --git a/pkgs/by-name/re/redict/package.nix b/pkgs/by-name/re/redict/package.nix
index 39133faa9b1ba..c64f6b7b63bd1 100644
--- a/pkgs/by-name/re/redict/package.nix
+++ b/pkgs/by-name/re/redict/package.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitea, fetchurl, fetchpatch, lua, jemalloc, pkg-config, nixosTests
+{ lib, stdenv, fetchFromGitea, fetchurl, lua, jemalloc, pkg-config, nixosTests
 , tcl, which, ps, getconf
 , withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd, systemd
 # dependency ordering is broken at the moment when building with openssl
diff --git a/pkgs/by-name/re/regal/package.nix b/pkgs/by-name/re/regal/package.nix
index d97004f6439bf..dd767a21d6436 100644
--- a/pkgs/by-name/re/regal/package.nix
+++ b/pkgs/by-name/re/regal/package.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   name = "regal";
-  version = "0.21.3";
+  version = "0.22.0";
 
   src = fetchFromGitHub {
     owner = "StyraInc";
     repo = "regal";
     rev = "v${version}";
-    hash = "sha256-MeEamVAETl+PJXJ2HpbhYdEG3kqvEeT5bGzRHyTrjcY=";
+    hash = "sha256-3Q37ukeqf3n8UhriQNCWyRCgWOcxwO4TsNcsEnJn5eg=";
   };
 
-  vendorHash = "sha256-5rj2dCWya24VUmIFf0oJQop80trq9NnqqFlBW/A6opk=";
+  vendorHash = "sha256-ejTBfoDYMt5Jpuq+uNgpdHCafR7IUVr8OFB84+m/ZFg=";
 
   meta = with lib; {
     description = "a linter and language server for Rego";
diff --git a/pkgs/by-name/re/renode-dts2repl/package.nix b/pkgs/by-name/re/renode-dts2repl/package.nix
index 47ef5321bd190..666e08addd5bb 100644
--- a/pkgs/by-name/re/renode-dts2repl/package.nix
+++ b/pkgs/by-name/re/renode-dts2repl/package.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication {
   pname = "renode-dts2repl";
-  version = "0-unstable-2024-05-16";
+  version = "0-unstable-2024-05-21";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "antmicro";
     repo = "dts2repl";
-    rev = "2eb930e6c9f6b5821e62ca568682a099a2aea99e";
-    hash = "sha256-fMx3sbpxLDzNiDvqxEtqXvAKD8UWe7Du7JTOL1hVkk4=";
+    rev = "75223e1c040125ef68f9537aaa3c85fc971327dd";
+    hash = "sha256-ckcCcEoYKeKHH0LYcDm3wR3C45+IzsWE14yS8qnf6VE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/re/reproxy/package.nix b/pkgs/by-name/re/reproxy/package.nix
index f90ad1246cf85..c41334aa6be57 100644
--- a/pkgs/by-name/re/reproxy/package.nix
+++ b/pkgs/by-name/re/reproxy/package.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "reproxy";
-  version = "1.1.1";
+  version = "1.2.2";
 
   src = fetchFromGitHub {
     owner = "umputun";
     repo = "reproxy";
     rev = "v${version}";
-    hash = "sha256-/ydpqi7O4z41YxYb/RngPWk/79h3MIxAopzqIDMgw1g=";
+    hash = "sha256-UQ20mP+7AsrkNN+tvaRb8BcpHu76bpmswtR2PL4/JsE=";
   };
 
   vendorHash = null;
@@ -19,7 +19,7 @@ buildGoModule rec {
 
   checkFlags = [
     # Requires network access or fluky
-    "-skip=^Test(_MainWithPlugin|_MainWithSSL|_Main|Http_matchHandler|Http_withBasicAuth|File_Events|File_Events_BusyListener)$"
+    "-skip=^Test(_MainWithPlugin|_MainWithSSL|_Main|Http_health|Http_matchHandler|Http_withBasicAuth|File_Events|File_Events_BusyListener)$"
   ];
 
   postInstall = ''
diff --git a/pkgs/by-name/re/rerun/package.nix b/pkgs/by-name/re/rerun/package.nix
index 844f97700c226..4d9c8da8041c0 100644
--- a/pkgs/by-name/re/rerun/package.nix
+++ b/pkgs/by-name/re/rerun/package.nix
@@ -78,8 +78,6 @@ rustPlatform.buildRustPackage rec {
     ]
     ++ lib.optionals stdenv.isLinux [ (lib.getLib wayland) ];
 
-  env.CARGO_TARGET_WASM32_UNKNOWN_UNKNOWN_LINKER = "lld";
-
   addDlopenRunpaths = map (p: "${lib.getLib p}/lib") (
     lib.optionals stdenv.hostPlatform.isLinux [
       libxkbcommon
diff --git a/pkgs/by-name/ri/river/build.zig.zon.nix b/pkgs/by-name/ri/river/build.zig.zon.nix
new file mode 100644
index 0000000000000..424b5ad35eddf
--- /dev/null
+++ b/pkgs/by-name/ri/river/build.zig.zon.nix
@@ -0,0 +1,34 @@
+# generated by zon2nix (https://github.com/nix-community/zon2nix)
+
+{ linkFarm, fetchzip }:
+
+linkFarm "zig-packages" [
+  {
+    name = "122014eeb4600a059bdcfe1c864862f17e6d5e4237e3bb7d6818f2a5583f6f4eb843";
+    path = fetchzip {
+      url = "https://codeberg.org/ifreund/zig-pixman/archive/v0.1.0.tar.gz";
+      hash = "sha256-Atfkiyt9v+GWry3xA2Y0Iv6AvwbZ+EHfHLmX0AUEz6Y=";
+    };
+  }
+  {
+    name = "1220714d1cc39c3abb1d9c22a0b838d847ead099cb7d9931821490483f30c022e827";
+    path = fetchzip {
+      url = "https://codeberg.org/ifreund/zig-wlroots/archive/v0.17.0.tar.gz";
+      hash = "sha256-C1D2dBn65Z9PmDacpeYbdX574fcOyYi/BJVDUMibkPA=";
+    };
+  }
+  {
+    name = "1220840390382c88caf9b0887f6cebbba3a7d05960b8b2ee6d80567b2950b71e5017";
+    path = fetchzip {
+      url = "https://codeberg.org/ifreund/zig-xkbcommon/archive/v0.1.0.tar.gz";
+      hash = "sha256-xilmsDGWlkfpTiGff+/nb76jx87ANdr4zqYy6rKOBMg=";
+    };
+  }
+  {
+    name = "1220b0f8f822c1625af7aae4cb3ab2c4ec1a4c0e99ef32867b2a8d88bb070b3e7f6d";
+    path = fetchzip {
+      url = "https://codeberg.org/ifreund/zig-wayland/archive/v0.1.0.tar.gz";
+      hash = "sha256-VLEx8nRgmJZWgLNBRqrR7bZEkW0m5HTRv984HKwoIfA=";
+    };
+  }
+]
diff --git a/pkgs/applications/window-managers/river/default.nix b/pkgs/by-name/ri/river/package.nix
index 698d785a1911e..0a251f51e0791 100644
--- a/pkgs/applications/window-managers/river/default.nix
+++ b/pkgs/by-name/ri/river/package.nix
@@ -1,5 +1,6 @@
 { lib
 , stdenv
+, callPackage
 , fetchFromGitea
 , libGL
 , libX11
@@ -14,14 +15,14 @@
 , wayland-protocols
 , wlroots_0_17
 , xwayland
-, zig_0_11
+, zig_0_12
 , withManpages ? true
 , xwaylandSupport ? true
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "river";
-  version = "0.3.1";
+  version = "0.3.2";
 
   outputs = [ "out" ] ++ lib.optionals withManpages [ "man" ];
 
@@ -31,14 +32,16 @@ stdenv.mkDerivation (finalAttrs: {
     repo = "river";
     rev = "refs/tags/v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-H/908/TP2uzJD1yH4mCXHvorY+4kAhzEkWn6nZGsyBg=";
+    hash = "sha256-I09cR5aN7qXOzV9HDXaL4TjoeJcVa0Ch00zxOJokdDE=";
   };
 
+  deps = callPackage ./build.zig.zon.nix { };
+
   nativeBuildInputs = [
     pkg-config
     wayland
     xwayland
-    zig_0_11.hook
+    zig_0_12.hook
   ]
   ++ lib.optional withManpages scdoc;
 
@@ -55,14 +58,19 @@ stdenv.mkDerivation (finalAttrs: {
 
   dontConfigure = true;
 
-  zigBuildFlags = lib.optional withManpages "-Dman-pages"
-                  ++ lib.optional xwaylandSupport "-Dxwayland";
+  zigBuildFlags = [
+    "--system"
+    "${finalAttrs.deps}"
+  ] ++ lib.optional withManpages "-Dman-pages" ++ lib.optional xwaylandSupport "-Dxwayland";
 
   postInstall = ''
     install contrib/river.desktop -Dt $out/share/wayland-sessions
   '';
 
-  passthru.providedSessions = [ "river" ];
+  passthru = {
+    providedSessions = [ "river" ];
+    updateScript = ./update.nu;
+  };
 
   meta = {
     homepage = "https://codeberg.org/river/river";
diff --git a/pkgs/by-name/ri/river/update.nu b/pkgs/by-name/ri/river/update.nu
new file mode 100755
index 0000000000000..37a8ec6098ab0
--- /dev/null
+++ b/pkgs/by-name/ri/river/update.nu
@@ -0,0 +1,8 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i nu -p nushell common-updater-scripts zon2nix
+
+let latest_tag = list-git-tags --url=https://codeberg.org/river/river | lines | sort --natural | str replace v '' | last
+update-source-version river $latest_tag
+
+http get $"https://codeberg.org/river/river/raw/tag/v($latest_tag)/build.zig.zon" | save build.zig.zon
+zon2nix > pkgs/by-name/ri/river/build.zig.zon.nix
diff --git a/pkgs/by-name/ro/roave-backward-compatibility-check/package.nix b/pkgs/by-name/ro/roave-backward-compatibility-check/package.nix
new file mode 100644
index 0000000000000..df06fe6a803ee
--- /dev/null
+++ b/pkgs/by-name/ro/roave-backward-compatibility-check/package.nix
@@ -0,0 +1,37 @@
+{
+  lib,
+  fetchFromGitHub,
+  php,
+  testers,
+  roave-backward-compatibility-check,
+}:
+
+php.buildComposerProject (finalAttrs: {
+  pname = "roave-backward-compatibility-check";
+  version = "8.8.0";
+
+  src = fetchFromGitHub {
+    owner = "Roave";
+    repo = "BackwardCompatibilityCheck";
+    rev = finalAttrs.version;
+    hash = "sha256-/9nJqZcuBLzgzDyoX4NHW9And7L/F+Bsm/gLzQS7QzE=";
+  };
+
+  vendorHash = "sha256-I8JZ4CBrrQmZ38QF9SPZtkPirCAxqSCeTUpMg59Mz7U=";
+
+  passthru = {
+    tests.version = testers.testVersion {
+      package = roave-backward-compatibility-check;
+      version = finalAttrs.version;
+    };
+  };
+
+  meta = {
+    changelog = "https://github.com/Roave/BackwardCompatibilityCheck/releases/tag/${finalAttrs.version}";
+    description = "A tool that can be used to verify BC breaks between two versions of a PHP library";
+    homepage = "https://github.com/Roave/BackwardCompatibilityCheck";
+    license = lib.licenses.mit;
+    mainProgram = "roave-backward-compatibility-check";
+    maintainers = lib.teams.php.members;
+  };
+})
diff --git a/pkgs/by-name/sa/samrewritten/package.nix b/pkgs/by-name/sa/samrewritten/package.nix
index 1cbaf4b79db81..375e3be3385a4 100644
--- a/pkgs/by-name/sa/samrewritten/package.nix
+++ b/pkgs/by-name/sa/samrewritten/package.nix
@@ -43,6 +43,6 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://github.com/PaulCombal/SamRewritten";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ ludovicopiero ];
-    platforms = lib.platforms.linux;
+    platforms = [ "x86_64-linux" ];
   };
 })
diff --git a/pkgs/by-name/sa/sarasa-gothic/package.nix b/pkgs/by-name/sa/sarasa-gothic/package.nix
index 9c77d1070ee66..a83fd13547b72 100644
--- a/pkgs/by-name/sa/sarasa-gothic/package.nix
+++ b/pkgs/by-name/sa/sarasa-gothic/package.nix
@@ -7,13 +7,13 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "sarasa-gothic";
-  version = "1.0.12";
+  version = "1.0.13";
 
   src = fetchurl {
     # Use the 'ttc' files here for a smaller closure size.
     # (Using 'ttf' files gives a closure size about 15x larger, as of November 2021.)
     url = "https://github.com/be5invis/Sarasa-Gothic/releases/download/v${finalAttrs.version}/Sarasa-TTC-${finalAttrs.version}.zip";
-    hash = "sha256-icZT/CEvCCbDTklcca3LjtX7wnvx35wg4RyK1jHDmwk=";
+    hash = "sha256-dsYYzE5NrJgFCzV8fp6eUD+8bDf6qDP8/tBNRKhnytY=";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/by-name/sc/scion/package.nix b/pkgs/by-name/sc/scion/package.nix
index 9044dc44f2a52..2044b994673be 100644
--- a/pkgs/by-name/sc/scion/package.nix
+++ b/pkgs/by-name/sc/scion/package.nix
@@ -1,7 +1,6 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
-, fetchpatch2
 , nixosTests
 }:
 let
diff --git a/pkgs/by-name/se/segger-jlink/package.nix b/pkgs/by-name/se/segger-jlink/package.nix
index 074f687f35f00..d7b2e0cfcaebb 100755
--- a/pkgs/by-name/se/segger-jlink/package.nix
+++ b/pkgs/by-name/se/segger-jlink/package.nix
@@ -15,25 +15,25 @@ let
   supported = {
     x86_64-linux = {
       name = "x86_64";
-      hash = "sha256-CELUteYzy0oMxDonOot+DR5MgGjSRwLgRCbJRAaS/EY=";
+      hash = "sha256-UsDP+wMS7ZeWMQBObwv5RxbwuWU8nLnHes7LEXK6imE=";
     };
     i686-linux = {
       name = "i386";
-      hash = "sha256-lw3gqgCjmASkelj5lPDnltRJ1Cb+318QjrbirQ6oRFI=";
+      hash = "sha256-InNHXWAc6QZEWyEcTTUCRMDsKd0RtR8d7O0clWKuFo8=";
     };
     aarch64-linux = {
       name = "arm64";
-      hash = "sha256-yq/L9k+22OWhwnAROJlsyYd/AH5SHJD231y6xd83N6g=";
+      hash = "sha256-ueIGdqfuIRCuEwaPkgZMgghO9DU11IboLLMryg/mxQ8=";
     };
     armv7l-linux = {
       name = "arm";
-      hash = "sha256-FAnzZzz3tgSxgX5n3CUrCbD5lfub91cDkjdD/lVaf0g=";
+      hash = "sha256-6nTQGQpkbqQntheQqiUAdVS4rp30nl2KRUn5Adsfeoo=";
     };
   };
 
   platform = supported.${stdenv.system} or (throw "unsupported platform ${stdenv.system}");
 
-  version = "794l";
+  version = "796b";
 
   url = "https://www.segger.com/downloads/jlink/JLink_Linux_V${version}_${platform.name}.tgz";
 
diff --git a/pkgs/by-name/se/sendme/package.nix b/pkgs/by-name/se/sendme/package.nix
index 08b7c8d232b12..12a20a4b38d25 100644
--- a/pkgs/by-name/se/sendme/package.nix
+++ b/pkgs/by-name/se/sendme/package.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sendme";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "n0-computer";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-x4RN/C/XMvpfsbWJTX5wDj1K+ADz2YIb/esAIEpFVcs=";
+    hash = "sha256-Ptfh00AaLoU/UCqzVRgD38CxeY1dP/Y1ADgQxyLzcMc=";
   };
 
-  cargoHash = "sha256-yeexP6wfhg2Ir1oJzaxMwRMen9M409MB4cNZ8fd6cHc=";
+  cargoHash = "sha256-iah0bz6E5akJmo+FAuJ0faDad3YNXt7jhK/6zYrg9lE=";
 
   buildInputs = lib.optionals stdenv.isDarwin (
     with darwin.apple_sdk.frameworks; [
diff --git a/pkgs/by-name/se/sequoia-wot/package.nix b/pkgs/by-name/se/sequoia-wot/package.nix
new file mode 100644
index 0000000000000..34ab460ceb607
--- /dev/null
+++ b/pkgs/by-name/se/sequoia-wot/package.nix
@@ -0,0 +1,90 @@
+{
+  lib,
+  stdenv,
+  rustPlatform,
+  fetchFromGitLab,
+  installShellFiles,
+  pkg-config,
+  nettle,
+  openssl,
+  sqlite,
+  darwin,
+  gnupg,
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "sequoia-wot";
+  version = "0.11.0";
+
+  src = fetchFromGitLab {
+    owner = "sequoia-pgp";
+    repo = "sequoia-wot";
+    rev = "v${version}";
+    hash = "sha256-qSf2uESsMGUEvAiRefpwxHKyizbq5Sst3SpjKaMIWTQ=";
+  };
+
+  cargoHash = "sha256-vGseKdHqyncScS57UF3SR3EVdUGKVMue8fnRftefSY0=";
+
+  nativeBuildInputs = [
+    pkg-config
+    rustPlatform.bindgenHook
+    installShellFiles
+  ];
+
+  buildInputs = [
+    openssl
+    sqlite
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.SystemConfiguration
+    # See comment near sequoia-openpgp/crypto- buildFeatures
+  ] ++ lib.optionals (!stdenv.targetPlatform.isWindows) [
+    nettle
+  ];
+
+  buildFeatures = [
+    # Upstream uses the sequoia-openpgp crate, which doesn't force you to use a
+    # specific crypto backend. As recommended by sequoia-openpgp's crate
+    # docs[1], upstream uses `target.'cfg(not(windows))'.dev-dependencies` to
+    # choose a different backend when the target platform is Windows or not. We
+    # propagate this logic here as well.
+    #
+    # [1]: https://crates.io/crates/sequoia-openpgp#user-content-intermediate-crate
+    (if stdenv.targetPlatform.isWindows then
+      "sequoia-openpgp/crypto-cng"
+    else
+      "sequoia-openpgp/crypto-nettle"
+    )
+  ];
+
+  doCheck = true;
+
+  nativeCheckInputs = [ gnupg ];
+
+  # Install shell completion files and manual pages. Unfortunatly it is hard to
+  # predict the paths to all of these files generated during the build, and it
+  # is impossible to control these using `$OUT_DIR` or alike, as implied by
+  # upstream's `build.rs`. This is a general Rust issue also discussed in
+  # https://github.com/rust-lang/cargo/issues/9661, also discussed upstream at:
+  # https://gitlab.com/sequoia-pgp/sequoia-wot/-/issues/56
+  postInstall = ''
+    installShellCompletion --cmd sq-wot \
+      --bash target/*/release/build/sequoia-wot-*/out/sq-wot.bash \
+      --fish target/*/release/build/sequoia-wot-*/out/sq-wot.fish \
+      --zsh  target/*/release/build/sequoia-wot-*/out/_sq-wot
+    # Also elv and powershell are generated there
+    installManPage \
+      target/*/release/build/sequoia-wot-*/out/sq-wot.1 \
+      target/*/release/build/sequoia-wot-*/out/sq-wot-authenticate.1 \
+      target/*/release/build/sequoia-wot-*/out/sq-wot-lookup.1 \
+      target/*/release/build/sequoia-wot-*/out/sq-wot-identify.1 \
+      target/*/release/build/sequoia-wot-*/out/sq-wot-list.1 \
+      target/*/release/build/sequoia-wot-*/out/sq-wot-path.1
+  '';
+
+  meta = with lib; {
+    description = "A Rust CLI tool for authenticating bindings and exploring a web of trust";
+    homepage = "https://gitlab.com/sequoia-pgp/sequoia-wot";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ Cryolitia ];
+    mainProgram = "sq-wot";
+  };
+}
diff --git a/pkgs/by-name/sg/sgfutils/package.nix b/pkgs/by-name/sg/sgfutils/package.nix
index 7548ab42107e1..f82bc4e59a6ab 100644
--- a/pkgs/by-name/sg/sgfutils/package.nix
+++ b/pkgs/by-name/sg/sgfutils/package.nix
@@ -2,7 +2,7 @@
 , stdenv
 , fetchFromGitHub
 , openssl
-, iconv
+, libiconv
 , makeWrapper
 , imagemagick
 , makeFontsConf
@@ -18,7 +18,7 @@ stdenv.mkDerivation
     hash = "sha256-KWYgTxz32WK3MKouj1WAJtZmleKt5giCpzQPwfWruZQ=";
   };
   nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ iconv ];
+  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
   buildPhase = ''
     runHook preBuild
     make all
diff --git a/pkgs/by-name/sh/share-preview/package.nix b/pkgs/by-name/sh/share-preview/package.nix
new file mode 100644
index 0000000000000..093bbaf33270e
--- /dev/null
+++ b/pkgs/by-name/sh/share-preview/package.nix
@@ -0,0 +1,66 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  rustPlatform,
+  meson,
+  ninja,
+  pkg-config,
+  rustc,
+  cargo,
+  wrapGAppsHook4,
+  desktop-file-utils,
+  libadwaita,
+  openssl,
+  darwin,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "share-preview";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "rafaelmardojai";
+    repo = "share-preview";
+    rev = finalAttrs.version;
+    hash = "sha256-FqualaTkirB+gBcgkThQpSBHhM4iaXkiGujwBUnUX0E=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit (finalAttrs) src;
+    name = "share-preview-${finalAttrs.version}";
+    hash = "sha256-Gh6bQZD1mlkj3XeGp+fF/NShC4PZCZSEqymrsSdX4Ec=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    rustPlatform.cargoSetupHook
+    rustc
+    cargo
+    wrapGAppsHook4
+    desktop-file-utils
+  ];
+
+  buildInputs = [
+    libadwaita
+    openssl
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Foundation
+    darwin.apple_sdk.frameworks.SystemConfiguration
+  ];
+
+  env.NIX_CFLAGS_COMPILE = toString (
+    lib.optionals stdenv.isDarwin [ "-Wno-error=incompatible-function-pointer-types" ]
+  );
+
+  meta = {
+    description = "Preview and debug websites metadata tags for social media share";
+    homepage = "https://apps.gnome.org/SharePreview";
+    license = lib.licenses.gpl3Plus;
+    mainProgram = "share-preview";
+    maintainers = with lib.maintainers; [ aleksana ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/pkgs/by-name/sh/shopware-cli/package.nix b/pkgs/by-name/sh/shopware-cli/package.nix
index 899b956b50a68..0362ee92ed060 100644
--- a/pkgs/by-name/sh/shopware-cli/package.nix
+++ b/pkgs/by-name/sh/shopware-cli/package.nix
@@ -9,18 +9,18 @@
 
 buildGoModule rec {
   pname = "shopware-cli";
-  version = "0.4.43";
+  version = "0.4.44";
   src = fetchFromGitHub {
     repo = "shopware-cli";
     owner = "FriendsOfShopware";
     rev = version;
-    hash = "sha256-c8CaPxV54bF4Unlz15SIh64jiGZMZywcKOzdZ74AtaM=";
+    hash = "sha256-i9FRt86kd2bUW5fyn/qRRSzXRSqUHTGlxOnzehEfnxU=";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
   nativeCheckInputs = [ git dart-sass ];
 
-  vendorHash = "sha256-7K56fBX4y2UPofksAl6+u7jBg5tySvtrutUJXDJ/qz4=";
+  vendorHash = "sha256-j1zKugueG4QaCetwfZXnWqo5SciX2N/dr0VD4d0ITS4=";
 
   postInstall = ''
     export HOME="$(mktemp -d)"
diff --git a/pkgs/by-name/si/signal-backup-deduplicator/package.nix b/pkgs/by-name/si/signal-backup-deduplicator/package.nix
new file mode 100644
index 0000000000000..d5efff9e3f4d8
--- /dev/null
+++ b/pkgs/by-name/si/signal-backup-deduplicator/package.nix
@@ -0,0 +1,38 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitLab,
+  cmake,
+  cryptopp,
+  protobuf,
+}:
+
+stdenv.mkDerivation {
+  pname = "signal-backup-deduplicator";
+  version = "0-unstable-2024-05-24";
+
+  src = fetchFromGitLab {
+    owner = "gerum";
+    repo = "signal-backup-deduplicator";
+    rev = "6c09f14b16ff47c2ed0914c68102e45c93ebbfa6";
+    hash = "sha256-JR2Qu4EtTMObM/BvxQS5WwGFqWj9g0bqOpKt4y5UNaM=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [
+    protobuf
+    cryptopp
+  ];
+
+  meta = {
+    description = "Generate chunked backups for Signal messages";
+    homepage = "https://gitlab.com/gerum/signal-backup-deduplicator";
+    license = lib.licenses.agpl3Only;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
+    mainProgram = "signal_backup_deduplicate";
+    platforms = lib.platforms.all;
+    # ld: symbol(s) not found for architecture ...
+    broken = stdenv.isDarwin;
+  };
+}
diff --git a/pkgs/by-name/si/silicon/package.nix b/pkgs/by-name/si/silicon/package.nix
index 57a86a27213d4..18edc3b84948b 100644
--- a/pkgs/by-name/si/silicon/package.nix
+++ b/pkgs/by-name/si/silicon/package.nix
@@ -2,7 +2,6 @@
 , stdenv
 , rustPlatform
 , fetchFromGitHub
-, fetchpatch
 , pkg-config
 , cmake
 , expat
diff --git a/pkgs/by-name/sk/sketchybar-app-font/package.nix b/pkgs/by-name/sk/sketchybar-app-font/package.nix
index e13b23e3fbbc8..d64cef79acf5e 100644
--- a/pkgs/by-name/sk/sketchybar-app-font/package.nix
+++ b/pkgs/by-name/sk/sketchybar-app-font/package.nix
@@ -18,7 +18,7 @@ lib.checkListOfEnum "sketchybar-app-font: artifacts" artifacts artifactList
   in
   {
     pname = "sketchybar-app-font";
-    version = "2.0.18";
+    version = "2.0.19";
 
     srcs = selectedSources;
 
@@ -52,15 +52,15 @@ lib.checkListOfEnum "sketchybar-app-font: artifacts" artifacts artifactList
       sources = {
         font = fetchurl {
           url = "https://github.com/kvndrsslr/sketchybar-app-font/releases/download/v${finalAttrs.version}/sketchybar-app-font.ttf";
-          hash = "sha256-ajwyBUfgvIUcac8gdFUnzGJCXsUcOJnscIdtrxo7ZqY=";
+          hash = "sha256-AH4Zkaccms1gNt7ZHZRHYPOx/iLpbcA4MiyBStHRDfU=";
         };
         lua = fetchurl {
           url = "https://github.com/kvndrsslr/sketchybar-app-font/releases/download/v${finalAttrs.version}/icon_map.lua";
-          hash = "sha256-jxIBLE1UDD1S8nu4b9y7AUYb0XHH/3iknhmBloi1Qrs=";
+          hash = "sha256-AGcHBgOZY2EBR0WEfaQhEsTRdo8QfEawx6Q2rdBuKIg=";
         };
         shell = fetchurl {
           url = "https://github.com/kvndrsslr/sketchybar-app-font/releases/download/v${finalAttrs.version}/icon_map.sh";
-          hash = "sha256-I0t9KbC3Cs73021z9lm7TZUhmwdIaIgPVuLe8IjwkCU=";
+          hash = "sha256-fdKnweYF92zCLVBVXTjLWK9vdzMD8FvOHjEo2vqPbhQ=";
         };
       };
 
diff --git a/pkgs/by-name/sl/slumber/package.nix b/pkgs/by-name/sl/slumber/package.nix
index 2cb38167c0572..fb485e4986248 100644
--- a/pkgs/by-name/sl/slumber/package.nix
+++ b/pkgs/by-name/sl/slumber/package.nix
@@ -7,16 +7,16 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "slumber";
-  version = "1.3.1";
+  version = "1.3.2";
 
   src = fetchFromGitHub {
     owner = "LucasPickering";
     repo = "slumber";
     rev = "v${version}";
-    hash = "sha256-BPOBIE/nAupBwjKYnEfrHQQ8EEA3ZbuU/D0fqio4Ir0=";
+    hash = "sha256-aYNsTAqMcoOSRXWclrVR5DWQCTSDHXSQsSJn37yYPY8=";
   };
 
-  cargoHash = "sha256-+GXLCxitYjNK9Eg93Do1q6DglJ5QQi1KSZ6GNmJ1jG8=";
+  cargoHash = "sha256-uSKE8jFLYCEac2PR97VSPBnqllTsXkYZUO0b+xHR/CA=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.AppKit ];
 
diff --git a/pkgs/by-name/sm/smile/package.nix b/pkgs/by-name/sm/smile/package.nix
index 1c95965fde22f..3285177141976 100644
--- a/pkgs/by-name/sm/smile/package.nix
+++ b/pkgs/by-name/sm/smile/package.nix
@@ -13,28 +13,20 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "smile";
-  version = "2.9.0";
-  format = "other";
+  version = "2.9.5";
+  pyproject = false; # Builds with meson
 
   src = fetchFromGitHub {
     owner = "mijorus";
     repo = "smile";
     rev = version;
-    hash = "sha256-tXbRel+rtaE2zPO8NOc4X+Ktk4PdRHBMtpsGLbvuHZk=";
+    hash = "sha256-WwkwJXRnIvBS0cdcmJhErZLe0wwvarUdE7rpx7qcd2E=";
   };
 
-  postPatch = ''
-    patchShebangs build-aux/meson/postinstall.py
-
-    substituteInPlace build-aux/meson/postinstall.py \
-      --replace-fail gtk-update-icon-cache gtk4-update-icon-cache
-  '';
-
   nativeBuildInputs = [
     desktop-file-utils # for update-desktop-database
     glib # for glib-compile-resources
     gobject-introspection
-    gtk4 # for gtk4-update-icon-cache
     meson
     ninja
     wrapGAppsHook4
@@ -44,7 +36,7 @@ python3.pkgs.buildPythonApplication rec {
     libadwaita
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  dependencies = with python3.pkgs; [
     dbus-python
     manimpango
     pygobject3
@@ -63,6 +55,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://mijorus.it/projects/smile/";
     license = lib.licenses.gpl3Plus;
     mainProgram = "smile";
-    maintainers = with lib.maintainers; [ koppor ];
+    maintainers = with lib.maintainers; [ koppor aleksana ];
   };
 }
diff --git a/pkgs/applications/video/smplayer/default.nix b/pkgs/by-name/sm/smplayer/package.nix
index 513468cb16cf0..f835c1808bc32 100644
--- a/pkgs/applications/video/smplayer/default.nix
+++ b/pkgs/by-name/sm/smplayer/package.nix
@@ -1,20 +1,22 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, qmake
-, qtscript
-, wrapQtAppsHook
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  qt5,
 }:
 
+let
+  inherit (qt5) qmake qtscript wrapQtAppsHook;
+in
 stdenv.mkDerivation (finalAttrs: {
   pname = "smplayer";
-  version = "23.12.0";
+  version = "24.5.0";
 
   src = fetchFromGitHub {
     owner = "smplayer-dev";
     repo = "smplayer";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-ip4y9GF2u1yl1Ts8T9XcFg9wdXVTYXfDrrPuHLz6oSs=";
+    hash = "sha256-KblVDlE8EglMMAclGFZm81obipm6/JLUvsn5sLrpKqc=";
   };
 
   nativeBuildInputs = [
@@ -22,15 +24,11 @@ stdenv.mkDerivation (finalAttrs: {
     wrapQtAppsHook
   ];
 
-  buildInputs = [
-    qtscript
-  ];
+  buildInputs = [ qtscript ];
 
   dontUseQmakeConfigure = true;
 
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-  ];
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
   meta = {
     homepage = "https://www.smplayer.info";
@@ -53,7 +51,7 @@ stdenv.mkDerivation (finalAttrs: {
       options of MPlayer, SMPlayer adds other interesting features like the
       possibility to play Youtube videos or download subtitles.
     '';
-    changelog = "https://github.com/smplayer-dev/smplayer/releases/tag/v${finalAttrs.version}";
+    changelog = "https://github.com/smplayer-dev/smplayer/releases/tag/${finalAttrs.src.rev}";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ AndersonTorres ];
     platforms = lib.platforms.linux;
diff --git a/pkgs/applications/networking/soju/default.nix b/pkgs/by-name/so/soju/package.nix
index f8d6e3044314c..ddc7cd5c2d2df 100644
--- a/pkgs/applications/networking/soju/default.nix
+++ b/pkgs/by-name/so/soju/package.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "soju";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchFromSourcehut {
     owner = "~emersion";
     repo = "soju";
     rev = "v${version}";
-    hash = "sha256-nzaYa4h+UZcP6jqFHxVjgQ/F3q9aOeOPgVKFWBy6Fag=";
+    hash = "sha256-K7Dgc1HQ6+GnjraQNcK9LOFxUIoKKWro1mWKDZFwLiE=";
   };
 
-  vendorHash = "sha256-JLght6bOrtc/VP3tfQboASa68VL2GGBTdK02DOC5EQk=";
+  vendorHash = "sha256-4Yl87Gk/HykjIyNpRfgthLf6b+v7kxmONIhYBWVXi0I=";
 
   nativeBuildInputs = [
     installShellFiles
@@ -50,6 +50,6 @@ buildGoModule rec {
     homepage = "https://soju.im";
     changelog = "https://git.sr.ht/~emersion/soju/refs/${src.rev}";
     license = licenses.agpl3Only;
-    maintainers = with maintainers; [ azahi malte-v ];
+    maintainers = with maintainers; [ azahi malte-v jtbx ];
   };
 }
diff --git a/pkgs/by-name/so/sonarlint-ls/package.nix b/pkgs/by-name/so/sonarlint-ls/package.nix
new file mode 100644
index 0000000000000..8382d3b8b2708
--- /dev/null
+++ b/pkgs/by-name/so/sonarlint-ls/package.nix
@@ -0,0 +1,118 @@
+{ lib
+, fetchFromGitHub
+, jre_headless
+, maven
+, jdk17
+, makeWrapper
+, writeShellApplication
+, runCommand
+, sonarlint-ls
+, curl
+, pcre
+, common-updater-scripts
+, jq
+, gnused
+}:
+
+let
+  mavenJdk17 = maven.override { jdk = jdk17; };
+in
+mavenJdk17.buildMavenPackage rec {
+  pname = "sonarlint-ls";
+  version = "3.5.1.75119";
+
+  src = fetchFromGitHub {
+    owner = "SonarSource";
+    repo = "sonarlint-language-server";
+    rev = version;
+    hash = "sha256-6tbuX0wUpqbTyM44e7PqZHL0/XjN8hTFCgfzV+qc1m0=";
+  };
+
+  manualMvnArtifacts = [
+    "org.apache.maven.surefire:surefire-junit-platform:3.1.2"
+    "org.junit.platform:junit-platform-launcher:1.8.2"
+  ];
+
+  mvnHash = "sha256-ZhAQtpi0wQP8+QPeYaor2MveY+DZ9RPENb3kITnuWd8=";
+
+  buildOffline = true;
+
+
+  # disable node and npm module installation because the need network access
+  # for the tests.
+  mvnDepsParameters = "-Dskip.installnodenpm=true -Dskip.npm -DskipTests package";
+
+  # disable failing tests which either need network access or are flaky
+  mvnParameters = lib.escapeShellArgs [
+    "-Dskip.installnodenpm=true"
+    "-Dskip.npm"
+    "-Dtest=!LanguageServerMediumTests,
+    !LanguageServerWithFoldersMediumTests,
+    !NotebookMediumTests,
+    !ConnectedModeMediumTests,
+    !JavaMediumTests"
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{bin,share/plugins}
+    install -Dm644 target/sonarlint-language-server-*.jar \
+      $out/share/sonarlint-ls.jar
+    install -Dm644 target/plugins/* \
+      $out/share/plugins
+
+
+    makeWrapper ${jre_headless}/bin/java $out/bin/sonarlint-ls \
+      --add-flags "-jar $out/share/sonarlint-ls.jar" \
+      --add-flags "-stdio" \
+      --add-flags "-analyzers $(ls -1 $out/share/plugins | tr '\n' ' ')"
+
+    runHook postInstall
+  '';
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  passthru = {
+    tests = {
+      sonarlint-ls-starts-successfully = runCommand "${pname}-test" { } ''
+        ${sonarlint-ls}/bin/sonarlint-ls > $out
+        cat $out | grep "SonarLint backend started"
+      '';
+    };
+
+    updateScript =
+      let
+        pkgFile = builtins.toString ./package.nix;
+      in
+      lib.getExe (writeShellApplication {
+        name = "update-${pname}";
+        runtimeInputs = [ curl pcre common-updater-scripts jq gnused ];
+        text = ''
+          LATEST_TAG=$(curl https://api.github.com/repos/${src.owner}/${src.repo}/tags | \
+            jq -r '[.[] | select(.name | test("^[0-9]"))] | sort_by(.name | split(".") |
+            map(tonumber)) | reverse | .[0].name')
+          update-source-version ${pname} "$LATEST_TAG"
+          sed -i '0,/mvnHash *= *"[^"]*"/{s/mvnHash = "[^"]*"/mvnHash = ""/}' ${pkgFile}
+
+          echo -e "\nFetching all mvn dependencies to calculate the mvnHash. This may take a while ..."
+          nix-build -A ${pname}.fetchedMavenDeps 2> ${pname}-stderr.log || true
+
+          NEW_MVN_HASH=$(grep "got:" ${pname}-stderr.log | awk '{print ''$2}')
+          rm ${pname}-stderr.log
+          # escaping double quotes looks ugly but is needed for variable substitution
+          # use # instead of / as separator because the sha256 might contain the / character
+          sed -i "0,/mvnHash *= *\"[^\"]*\"/{s#mvnHash = \"[^\"]*\"#mvnHash = \"$NEW_MVN_HASH\"#}" ${pkgFile}
+        '';
+      });
+  };
+
+  meta = {
+    description = "Sonarlint language server";
+    mainProgram = "sonarlint-ls";
+    homepage = "https://github.com/SonarSource/sonarlint-language-server";
+    license = lib.licenses.lgpl3;
+    maintainers = with lib.maintainers; [ tricktron ];
+  };
+}
+
diff --git a/pkgs/by-name/sp/spicetify-cli/package.nix b/pkgs/by-name/sp/spicetify-cli/package.nix
index 22489b3b7c9c3..36db7162d87f8 100644
--- a/pkgs/by-name/sp/spicetify-cli/package.nix
+++ b/pkgs/by-name/sp/spicetify-cli/package.nix
@@ -1,4 +1,10 @@
-{ lib, buildGoModule, fetchFromGitHub, testers, spicetify-cli }:
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+  testers,
+  spicetify-cli,
+}:
 
 buildGoModule rec {
   pname = "spicetify-cli";
@@ -20,6 +26,8 @@ buildGoModule rec {
 
   # used at runtime, but not installed by default
   postInstall = ''
+    mv $out/bin/spicetify-cli $out/bin/spicetify
+    ln -s $out/bin/spicetify $out/bin/spicetify-cli
     cp -r ${src}/jsHelper $out/bin/jsHelper
     cp -r ${src}/CustomApps $out/bin/CustomApps
     cp -r ${src}/Extensions $out/bin/Extensions
@@ -28,19 +36,19 @@ buildGoModule rec {
 
   doInstallCheck = true;
   installCheckPhase = ''
-    $out/bin/spicetify-cli --help > /dev/null
+    $out/bin/spicetify --help > /dev/null
   '';
 
-  passthru.tests.version = testers.testVersion {
-    package = spicetify-cli;
-    command = "spicetify-cli -v";
-  };
+  passthru.tests.version = testers.testVersion { package = spicetify-cli; };
 
   meta = with lib; {
     description = "Command-line tool to customize Spotify client";
     homepage = "https://github.com/spicetify/spicetify-cli/";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ jonringer mdarocha ];
-    mainProgram = "spicetify-cli";
+    maintainers = with maintainers; [
+      jonringer
+      mdarocha
+    ];
+    mainProgram = "spicetify";
   };
 }
diff --git a/pkgs/by-name/sp/spirit/package.nix b/pkgs/by-name/sp/spirit/package.nix
index ada3c2e9e021f..ec6d4f2b508d1 100644
--- a/pkgs/by-name/sp/spirit/package.nix
+++ b/pkgs/by-name/sp/spirit/package.nix
@@ -5,16 +5,16 @@
 
 buildGoModule {
   pname = "spirit";
-  version = "0-unstable-2024-04-18";
+  version = "0-unstable-2024-05-24";
 
   src = fetchFromGitHub {
     owner = "cashapp";
     repo = "spirit";
-    rev = "886ee21e7338faef6612495b27d409713a202082";
-    hash = "sha256-xXObprJCo9evArCX5ezqrD+lagiHMO4SwycY+pTkHPg=";
+    rev = "a384d903db9586d2610f06319bd67814dad678a5";
+    hash = "sha256-oybvdVSG9XvBk4j+a+R8CIrEmzZ+gV0Chysq/sr2sws=";
   };
 
-  vendorHash = "sha256-r6iQs5kgOniHCN8KteQ17rPhQ/73Exuqlu6qWgKEIzs=";
+  vendorHash = "sha256-iTU45Ce5Mb09MyJTzqueyO0F9wV39l106Lkj50oYDvc=";
 
   subPackages = [ "cmd/spirit" ];
 
diff --git a/pkgs/applications/audio/squeezelite/default.nix b/pkgs/by-name/sq/squeezelite/package.nix
index 92f6932fb3751..41d5f8c9d343d 100644
--- a/pkgs/applications/audio/squeezelite/default.nix
+++ b/pkgs/by-name/sq/squeezelite/package.nix
@@ -1,35 +1,31 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, flac
-, libgpiod
-, libmad
-, libpulseaudio
-, libvorbis
-, mpg123
-, audioBackend ? if stdenv.isLinux then "alsa" else "portaudio"
-, alsaSupport ? stdenv.isLinux
-, alsa-lib
-, dsdSupport ? true
-, faad2Support ? true
-, faad2
-, ffmpegSupport ? true
-, ffmpeg
-, opusSupport ? true
-, opusfile
-, resampleSupport ? true
-, soxr
-, sslSupport ? true
-, openssl
-, portaudioSupport ? stdenv.isDarwin
-, portaudio
-, slimserver
-, AudioToolbox
-, AudioUnit
-, Carbon
-, CoreAudio
-, CoreVideo
-, VideoDecodeAcceleration
+{
+  lib,
+  stdenv,
+  darwin,
+  fetchFromGitHub,
+  flac,
+  libgpiod,
+  libmad,
+  libpulseaudio,
+  libvorbis,
+  mpg123,
+  audioBackend ? if stdenv.isLinux then "alsa" else "portaudio",
+  alsaSupport ? stdenv.isLinux,
+  alsa-lib,
+  dsdSupport ? true,
+  faad2Support ? true,
+  faad2,
+  ffmpegSupport ? true,
+  ffmpeg,
+  opusSupport ? true,
+  opusfile,
+  resampleSupport ? true,
+  soxr,
+  sslSupport ? true,
+  openssl,
+  portaudioSupport ? stdenv.isDarwin,
+  portaudio,
+  slimserver,
 }:
 
 let
@@ -38,7 +34,6 @@ let
   pulseSupport = audioBackend == "pulse";
 
   binName = "squeezelite${optionalString pulseSupport "-pulse"}";
-
 in
 stdenv.mkDerivation {
   # the nixos module uses the pname as the binary name
@@ -54,11 +49,27 @@ stdenv.mkDerivation {
     hash = "sha256-FGqo/c74JN000w/iRnvYUejqnYGDzHNZu9pEmR7yR3s=";
   };
 
-  buildInputs = [ flac libmad libvorbis mpg123 ]
+  buildInputs =
+    [
+      flac
+      libmad
+      libvorbis
+      mpg123
+    ]
     ++ optional pulseSupport libpulseaudio
     ++ optional alsaSupport alsa-lib
     ++ optional portaudioSupport portaudio
-    ++ optionals stdenv.isDarwin [ CoreVideo VideoDecodeAcceleration CoreAudio AudioToolbox AudioUnit Carbon ]
+    ++ optionals stdenv.isDarwin (
+      with darwin.apple_sdk_11_0.frameworks;
+      [
+        CoreVideo
+        VideoDecodeAcceleration
+        CoreAudio
+        AudioToolbox
+        AudioUnit
+        Carbon
+      ]
+    )
     ++ optional faad2Support faad2
     ++ optional ffmpegSupport ffmpeg
     ++ optional opusSupport opusfile
@@ -75,7 +86,11 @@ stdenv.mkDerivation {
 
   EXECUTABLE = binName;
 
-  OPTS = [ "-DLINKALL" "-DGPIO" ]
+  OPTS =
+    [
+      "-DLINKALL"
+      "-DGPIO"
+    ]
     ++ optional dsdSupport "-DDSD"
     ++ optional (!faad2Support) "-DNO_FAAD"
     ++ optional ffmpegSupport "-DFFMPEG"
@@ -86,15 +101,13 @@ stdenv.mkDerivation {
     ++ optional sslSupport "-DUSE_SSL"
     ++ optional (stdenv.isAarch32 or stdenv.isAarch64) "-DRPI";
 
-  env = lib.optionalAttrs stdenv.isDarwin {
-    LDADD = "-lportaudio -lpthread";
-  };
+  env = lib.optionalAttrs stdenv.isDarwin { LDADD = "-lportaudio -lpthread"; };
 
   installPhase = ''
     runHook preInstall
 
     install -Dm555 -t $out/bin                   ${binName}
-    install -Dm444 -t $out/share/doc/squeezelite *.txt *.md
+    install -Dm444 -t $out/share/man/man1 doc/squeezelite.1
 
     runHook postInstall
   '';
@@ -110,6 +123,7 @@ stdenv.mkDerivation {
     license = with licenses; [ gpl3Plus ] ++ optional dsdSupport bsd2;
     mainProgram = binName;
     maintainers = with maintainers; [ adamcstephens ];
-    platforms = if (audioBackend == "pulse") then platforms.linux else platforms.linux ++ platforms.darwin;
+    platforms =
+      if (audioBackend == "pulse") then platforms.linux else platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/applications/audio/squeezelite/update.sh b/pkgs/by-name/sq/squeezelite/update.sh
index ac55144d158d5..ac55144d158d5 100755
--- a/pkgs/applications/audio/squeezelite/update.sh
+++ b/pkgs/by-name/sq/squeezelite/update.sh
diff --git a/pkgs/by-name/st/stackit-cli/package.nix b/pkgs/by-name/st/stackit-cli/package.nix
index 1a786eafebe64..9b42ee570840d 100644
--- a/pkgs/by-name/st/stackit-cli/package.nix
+++ b/pkgs/by-name/st/stackit-cli/package.nix
@@ -12,16 +12,16 @@
 
 buildGoModule rec {
   pname = "stackit-cli";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "stackitcloud";
     repo = "stackit-cli";
     rev = "v${version}";
-    hash = "sha256-Rd4kuU1iMCxuNhL0GwAX625hIAv6O2URmP7JTeMduMo";
+    hash = "sha256-grwfljZlXjtNHwf6Zgu/SKC2Agmtj63ixmT6KVBGpiM=";
   };
 
-  vendorHash = "sha256-PRCra/i4n+YvYC+onBYO/uZ8JlyTjibfZsGMM53COcw=";
+  vendorHash = "sha256-VcIPLAiZjO1M+vB9CeilVyFVWKo88isrve2APmCZdN8=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/by-name/st/stackql/package.nix b/pkgs/by-name/st/stackql/package.nix
new file mode 100644
index 0000000000000..69c137e12d05e
--- /dev/null
+++ b/pkgs/by-name/st/stackql/package.nix
@@ -0,0 +1,48 @@
+{
+  lib,
+  fetchFromGitHub,
+  buildGoModule,
+  testers,
+  stackql,
+}:
+
+buildGoModule rec {
+  pname = "stackql";
+  version = "0.5.643";
+
+  src = fetchFromGitHub {
+    owner = "stackql";
+    repo = "stackql";
+    rev = "v${version}";
+    hash = "sha256-9W6bEI+5Q0Kgbd14sWKde3I6WIVz1ZxsXmR009mOPog=";
+  };
+
+  vendorHash = "sha256-xcly4jtdUkx/s+YWYFBVeuI2kQBu2oqbLN9ZKkHppkA=";
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X github.com/stackql/stackql/internal/stackql/cmd.BuildMajorVersion=${builtins.elemAt (lib.splitVersion version) 0}"
+    "-X github.com/stackql/stackql/internal/stackql/cmd.BuildMinorVersion=${builtins.elemAt (lib.splitVersion version) 1}"
+    "-X github.com/stackql/stackql/internal/stackql/cmd.BuildPatchVersion=${builtins.elemAt (lib.splitVersion version) 2}"
+    "-X github.com/stackql/stackql/internal/stackql/cmd.BuildDate=2024-05-15T07:51:52Z" # date of commit hash
+    "-X stackql/internal/stackql/planbuilder.PlanCacheEnabled=true"
+  ];
+
+  __darwinAllowLocalNetworking = true;
+
+  checkFlags = [ "--tags json1,sqleanal" ];
+
+  passthru.tests.version = testers.testVersion {
+    package = stackql;
+    version = "v${version}";
+  };
+
+  meta = {
+    homepage = "https://github.com/stackql/stackql";
+    description = "Deploy, manage and query cloud resources and interact with APIs using SQL";
+    mainProgram = "stackql";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ jonochang ];
+  };
+}
diff --git a/pkgs/by-name/st/stalwart-mail/package.nix b/pkgs/by-name/st/stalwart-mail/package.nix
index 8fb02098f0b5f..68e0d97bebb53 100644
--- a/pkgs/by-name/st/stalwart-mail/package.nix
+++ b/pkgs/by-name/st/stalwart-mail/package.nix
@@ -22,7 +22,7 @@ let
   # See upstream issue for rocksdb 9.X support
   # https://github.com/stalwartlabs/mail-server/issues/407
   rocksdb = rocksdb_8_11;
-  version = "0.8.0";
+  version = "0.8.1";
 in
 rustPlatform.buildRustPackage {
   pname = "stalwart-mail";
@@ -32,11 +32,11 @@ rustPlatform.buildRustPackage {
     owner = "stalwartlabs";
     repo = "mail-server";
     rev = "v${version}";
-    hash = "sha256-V6Gl59938AplFW7pbrbGWB42+zRQBEaTUSW0+TMBo8I=";
+    hash = "sha256-al2+/+HPbjJ30rju2ih/yFZgmTdO2bQ6jDv+dtoIqsc=";
     fetchSubmodules = true;
   };
 
-  cargoHash = "sha256-LWA08GNCrDlSwcSAlAi58OkoLs41fL6J5DPCsacozsM=";
+  cargoHash = "sha256-ek9vPo/M4peDcDkfzjXoKlJ+gFZUiREwNflOKEJNaWQ=";
 
   nativeBuildInputs = [
     pkg-config
@@ -75,6 +75,6 @@ rustPlatform.buildRustPackage {
     homepage = "https://github.com/stalwartlabs/mail-server";
     changelog = "https://github.com/stalwartlabs/mail-server/blob/${version}/CHANGELOG";
     license = licenses.agpl3Only;
-    maintainers = with maintainers; [ happysalada ];
+    maintainers = with maintainers; [ happysalada onny ];
   };
 }
diff --git a/pkgs/by-name/st/steampipe/package.nix b/pkgs/by-name/st/steampipe/package.nix
index cbe64f835fc51..e52182508c064 100644
--- a/pkgs/by-name/st/steampipe/package.nix
+++ b/pkgs/by-name/st/steampipe/package.nix
@@ -11,13 +11,13 @@
 
 buildGoModule rec {
   pname = "steampipe";
-  version = "0.23.1";
+  version = "0.23.2";
 
   src = fetchFromGitHub {
     owner = "turbot";
     repo = "steampipe";
     rev = "refs/tags/v${version}";
-    hash = "sha256-OpZqOEE5lIJOBaDfQFi71XmPqCjJXIYeCaWUFqbcgMc=";
+    hash = "sha256-hMEFIPhtvYkBG+HBtigOzFe8iAKmywWWl1da6sksX7k=";
   };
 
   vendorHash = "sha256-KY5mVs+YsyHHtV6DvfwwxcF8K9IQWxlxIJeSyFsKkpc=";
diff --git a/pkgs/by-name/st/stirling-pdf/package.nix b/pkgs/by-name/st/stirling-pdf/package.nix
index dcd4f61d8102c..9a7ef232c01f6 100644
--- a/pkgs/by-name/st/stirling-pdf/package.nix
+++ b/pkgs/by-name/st/stirling-pdf/package.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "stirling-pdf";
-  version = "0.23.1";
+  version = "0.24.6";
 
   src = fetchFromGitHub {
     owner = "Stirling-Tools";
     repo = "Stirling-PDF";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-71caSM4J0sNMqWX0ok8aO3wdpVcjfrn/yVGLWeO5fOk=";
+    hash = "sha256-QYoQaRerXLjF3D4S+HSTeaLz12Kxo2emBxSEpWVXUS0=";
   };
 
   patches = [
@@ -75,7 +75,7 @@ stdenv.mkDerivation (finalAttrs: {
 
     outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "sha256-8suWAX1+GGMvMUaymZnze7cBL701P/381dGqnyfha7s=";
+    outputHash = "sha256-w1H1YgMyVjd/9lSRt8zZCRgcYDXarr/C+KBrsjI/jYY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/st/streamrip/package.nix b/pkgs/by-name/st/streamrip/package.nix
new file mode 100644
index 0000000000000..68f1a7e851216
--- /dev/null
+++ b/pkgs/by-name/st/streamrip/package.nix
@@ -0,0 +1,77 @@
+{ lib
+, python3Packages
+, fetchFromGitHub
+
+, ffmpeg
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "streamrip";
+  version = "2.0.5";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "nathom";
+    repo = "streamrip";
+    rev = "v${version}";
+    hash = "sha256-KwMt89lOPGt6nX7ywliG/iAJ1WnG0CRPwhAVlPR85q0=";
+  };
+
+  patches = [
+    ./patches/ensure-the-default-config-file-is-writable.patch
+  ];
+
+  nativeBuildInputs = with python3Packages; [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
+    aiodns
+    aiofiles
+    aiohttp
+    aiolimiter
+    appdirs
+    cleo
+    click-help-colors
+    deezer-py
+    m3u8
+    mutagen
+    pathvalidate
+    pillow
+    pycryptodomex
+    pytest-asyncio
+    pytest-mock
+    rich
+    simple-term-menu
+    tomlkit
+    tqdm
+  ];
+
+  nativeCheckInputs = with python3Packages; [
+    pytestCheckHook
+  ];
+
+  prePatch = ''
+    sed -i 's#aiofiles = ".*"#aiofiles = "*"#' pyproject.toml
+    sed -i 's#deezer-py = ".*"#deezer-py = "*"#' pyproject.toml
+    sed -i 's#m3u8 = ".*"#m3u8 = "*"#' pyproject.toml
+    sed -i 's#pathvalidate = ".*"#pathvalidate = "*"#' pyproject.toml
+    sed -i 's#Pillow = ".*"#Pillow = "*"#' pyproject.toml
+    sed -i 's#pytest-asyncio = ".*"#pytest-asyncio = "*"#' pyproject.toml
+    sed -i 's#tomlkit = ".*"#tomlkit = "*"#' pyproject.toml
+
+    sed -i 's#"ffmpeg"#"${lib.getBin ffmpeg}/bin/ffmpeg"#g' streamrip/client/downloadable.py
+  '';
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  meta = with lib; {
+    description = "A scriptable music downloader for Qobuz, Tidal, SoundCloud, and Deezer";
+    homepage = "https://github.com/nathom/streamrip";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ paveloom ];
+    mainProgram = "rip";
+  };
+}
diff --git a/pkgs/by-name/st/streamrip/patches/ensure-the-default-config-file-is-writable.patch b/pkgs/by-name/st/streamrip/patches/ensure-the-default-config-file-is-writable.patch
new file mode 100644
index 0000000000000..5bd47195dcbfb
--- /dev/null
+++ b/pkgs/by-name/st/streamrip/patches/ensure-the-default-config-file-is-writable.patch
@@ -0,0 +1,26 @@
+From 18efb9b5c8e562b169425f6ba79977e52e8b91b9 Mon Sep 17 00:00:00 2001
+From: Pavel Sobolev <paveloomm@gmail.com>
+Date: Sat, 13 Jan 2024 12:49:45 +0000
+Subject: [PATCH] Ensure the default config file is writable.
+
+---
+ streamrip/config.py | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/streamrip/config.py b/streamrip/config.py
+index 7ee2f57..88a5fef 100644
+--- a/streamrip/config.py
++++ b/streamrip/config.py
+@@ -378,6 +378,9 @@ def set_user_defaults(path: str, /):
+     """Update the TOML file at the path with user-specific default values."""
+     shutil.copy(BLANK_CONFIG_PATH, path)
+
++    # Ensure the default config file is writable
++    os.chmod(path, 0o644)
++
+     with open(path) as f:
+         toml = parse(f.read())
+     toml["downloads"]["folder"] = DEFAULT_DOWNLOADS_FOLDER  # type: ignore
+--
+2.42.0
+
diff --git a/pkgs/by-name/st/sttr/package.nix b/pkgs/by-name/st/sttr/package.nix
index a645940a59a3b..7c9256b2ae35c 100644
--- a/pkgs/by-name/st/sttr/package.nix
+++ b/pkgs/by-name/st/sttr/package.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "sttr";
-  version = "0.2.20";
+  version = "0.2.21";
 
   src = fetchFromGitHub {
     owner = "abhimanyu003";
     repo = "sttr";
     rev = "v${version}";
-    hash = "sha256-8xIVLUbqk7bPjDTO2tdU9dGslBEorQusaJSAuFhRZYw=";
+    hash = "sha256-XBg/t2hspKdgkRgU95VLfi74cnA9OZ03x4deFOu+2do=";
   };
 
   vendorHash = "sha256-OuPPK4ordP/yzH+0sCRKO9szJ81LUbvM2Z8U88O6Qwc=";
diff --git a/pkgs/by-name/st/stylance-cli/package.nix b/pkgs/by-name/st/stylance-cli/package.nix
index 767d7370b7664..5b6e426943a36 100644
--- a/pkgs/by-name/st/stylance-cli/package.nix
+++ b/pkgs/by-name/st/stylance-cli/package.nix
@@ -4,14 +4,14 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "stylance-cli";
-  version = "0.3.0";
+  version = "0.5.0";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-YQYYZxLypD5Nz8kllIaBFDoV8L2c9wzJwmszqPpjpmg=";
+    hash = "sha256-nwvlce1a5Qerh1wa/lAtkl60fpjMV6WQuEzNLfmCK7k=";
   };
 
-  cargoHash = "sha256-ZzdLbsHRBgprdzmPVzywJx+wMMqRBsLeT84UIDMJbQM=";
+  cargoHash = "sha256-e8lu839kthncvCVlg13ZWNUwYGgGVgXZWJlHufubNA8=";
 
   meta = with lib; {
     description = "A library and cli tool for working with scoped CSS in rust";
diff --git a/pkgs/by-name/su/surrealdb/package.nix b/pkgs/by-name/su/surrealdb/package.nix
index 0e881eeb7dac6..0e598094c57cb 100644
--- a/pkgs/by-name/su/surrealdb/package.nix
+++ b/pkgs/by-name/su/surrealdb/package.nix
@@ -16,16 +16,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "surrealdb";
-  version = "1.5.0";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "surrealdb";
     repo = "surrealdb";
     rev = "v${version}";
-    hash = "sha256-MX7XE+1YCP6zSc207GAaFgr0QJLMX0dbFqGjLMf/KOI=";
+    hash = "sha256-piLanhc59jfsXHoaY217nqPahuyV2xtvlT4aqFNjaxM=";
   };
 
-  cargoHash = "sha256-skPCmQVH76qdmBVd4IVCnKn1uHP7mEgJ8YXprycpQ5I=";
+  cargoHash = "sha256-dqbq7irajpDWsxCt1B8W6G+ulPJowpu2ykXMqQoT1Sw=";
 
   # error: linker `aarch64-linux-gnu-gcc` not found
   postPatch = ''
diff --git a/pkgs/by-name/su/surrealist/package.nix b/pkgs/by-name/su/surrealist/package.nix
index e67cf28fcdb60..efd1773dee2f8 100644
--- a/pkgs/by-name/su/surrealist/package.nix
+++ b/pkgs/by-name/su/surrealist/package.nix
@@ -83,7 +83,7 @@ in stdenv.mkDerivation (finalAttrs: {
     ];
 
     postBuild = ''
-      CC=clang CARGO_TARGET_WASM32_UNKNOWN_UNKNOWN_LINKER=lld cargo build \
+      CC=clang cargo build \
         --target wasm32-unknown-unknown \
         --release
 
diff --git a/pkgs/by-name/sv/svelte-language-server/package-lock.json b/pkgs/by-name/sv/svelte-language-server/package-lock.json
new file mode 100644
index 0000000000000..e4dd56ef92203
--- /dev/null
+++ b/pkgs/by-name/sv/svelte-language-server/package-lock.json
@@ -0,0 +1,1943 @@
+{
+  "name": "svelte-language-server",
+  "version": "0.16.9",
+  "lockfileVersion": 3,
+  "requires": true,
+  "packages": {
+    "": {
+      "name": "svelte-language-server",
+      "version": "0.16.9",
+      "license": "MIT",
+      "dependencies": {
+        "@jridgewell/trace-mapping": "^0.3.17",
+        "@vscode/emmet-helper": "2.8.4",
+        "chokidar": "^3.4.1",
+        "estree-walker": "^2.0.1",
+        "fast-glob": "^3.2.7",
+        "lodash": "^4.17.21",
+        "prettier": "~3.2.5",
+        "prettier-plugin-svelte": "^3.2.2",
+        "svelte": "^3.57.0",
+        "svelte-preprocess": "^5.1.3",
+        "svelte2tsx": "~0.7.0",
+        "typescript": "^5.3.2",
+        "typescript-auto-import-cache": "^0.3.2",
+        "vscode-css-languageservice": "~6.2.10",
+        "vscode-html-languageservice": "~5.1.1",
+        "vscode-languageserver": "8.0.2",
+        "vscode-languageserver-protocol": "3.17.2",
+        "vscode-languageserver-types": "3.17.2",
+        "vscode-uri": "~3.0.0"
+      },
+      "bin": {
+        "svelteserver": "bin/server.js"
+      },
+      "devDependencies": {
+        "@types/estree": "^0.0.42",
+        "@types/lodash": "^4.14.116",
+        "@types/mocha": "^9.1.0",
+        "@types/node": "^16.0.0",
+        "@types/prettier": "^2.2.3",
+        "@types/sinon": "^7.5.2",
+        "cross-env": "^7.0.2",
+        "mocha": "^9.2.0",
+        "sinon": "^11.0.0",
+        "ts-node": "^10.0.0"
+      },
+      "engines": {
+        "node": ">= 12.0.0"
+      }
+    },
+    "node_modules/@cspotcode/source-map-support": {
+      "version": "0.8.1",
+      "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
+      "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
+      "dev": true,
+      "dependencies": {
+        "@jridgewell/trace-mapping": "0.3.9"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": {
+      "version": "0.3.9",
+      "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
+      "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
+      "dev": true,
+      "dependencies": {
+        "@jridgewell/resolve-uri": "^3.0.3",
+        "@jridgewell/sourcemap-codec": "^1.4.10"
+      }
+    },
+    "node_modules/@emmetio/abbreviation": {
+      "version": "2.3.3",
+      "resolved": "https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-2.3.3.tgz",
+      "integrity": "sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==",
+      "dependencies": {
+        "@emmetio/scanner": "^1.0.4"
+      }
+    },
+    "node_modules/@emmetio/css-abbreviation": {
+      "version": "2.1.8",
+      "resolved": "https://registry.npmjs.org/@emmetio/css-abbreviation/-/css-abbreviation-2.1.8.tgz",
+      "integrity": "sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==",
+      "dependencies": {
+        "@emmetio/scanner": "^1.0.4"
+      }
+    },
+    "node_modules/@emmetio/scanner": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/@emmetio/scanner/-/scanner-1.0.4.tgz",
+      "integrity": "sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA=="
+    },
+    "node_modules/@jridgewell/resolve-uri": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+      "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
+    "node_modules/@jridgewell/sourcemap-codec": {
+      "version": "1.4.15",
+      "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+      "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
+    },
+    "node_modules/@jridgewell/trace-mapping": {
+      "version": "0.3.25",
+      "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+      "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+      "dependencies": {
+        "@jridgewell/resolve-uri": "^3.1.0",
+        "@jridgewell/sourcemap-codec": "^1.4.14"
+      }
+    },
+    "node_modules/@nodelib/fs.scandir": {
+      "version": "2.1.5",
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+      "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+      "dependencies": {
+        "@nodelib/fs.stat": "2.0.5",
+        "run-parallel": "^1.1.9"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/@nodelib/fs.stat": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+      "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/@nodelib/fs.walk": {
+      "version": "1.2.8",
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+      "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+      "dependencies": {
+        "@nodelib/fs.scandir": "2.1.5",
+        "fastq": "^1.6.0"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/@sinonjs/commons": {
+      "version": "1.8.6",
+      "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz",
+      "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==",
+      "dev": true,
+      "dependencies": {
+        "type-detect": "4.0.8"
+      }
+    },
+    "node_modules/@sinonjs/fake-timers": {
+      "version": "7.1.2",
+      "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz",
+      "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==",
+      "dev": true,
+      "dependencies": {
+        "@sinonjs/commons": "^1.7.0"
+      }
+    },
+    "node_modules/@sinonjs/samsam": {
+      "version": "6.1.3",
+      "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.3.tgz",
+      "integrity": "sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ==",
+      "dev": true,
+      "dependencies": {
+        "@sinonjs/commons": "^1.6.0",
+        "lodash.get": "^4.4.2",
+        "type-detect": "^4.0.8"
+      }
+    },
+    "node_modules/@sinonjs/text-encoding": {
+      "version": "0.7.2",
+      "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz",
+      "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==",
+      "dev": true
+    },
+    "node_modules/@tsconfig/node10": {
+      "version": "1.0.11",
+      "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz",
+      "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==",
+      "dev": true
+    },
+    "node_modules/@tsconfig/node12": {
+      "version": "1.0.11",
+      "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
+      "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
+      "dev": true
+    },
+    "node_modules/@tsconfig/node14": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
+      "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
+      "dev": true
+    },
+    "node_modules/@tsconfig/node16": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
+      "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
+      "dev": true
+    },
+    "node_modules/@types/estree": {
+      "version": "0.0.42",
+      "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.42.tgz",
+      "integrity": "sha512-K1DPVvnBCPxzD+G51/cxVIoc2X8uUVl1zpJeE6iKcgHMj4+tbat5Xu4TjV7v2QSDbIeAfLi2hIk+u2+s0MlpUQ==",
+      "dev": true
+    },
+    "node_modules/@types/lodash": {
+      "version": "4.17.1",
+      "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.1.tgz",
+      "integrity": "sha512-X+2qazGS3jxLAIz5JDXDzglAF3KpijdhFxlf/V1+hEsOUc+HnWi81L/uv/EvGuV90WY+7mPGFCUDGfQC3Gj95Q==",
+      "dev": true
+    },
+    "node_modules/@types/mocha": {
+      "version": "9.1.1",
+      "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz",
+      "integrity": "sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==",
+      "dev": true
+    },
+    "node_modules/@types/node": {
+      "version": "16.18.97",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.97.tgz",
+      "integrity": "sha512-4muilE1Lbfn57unR+/nT9AFjWk0MtWi5muwCEJqnOvfRQDbSfLCUdN7vCIg8TYuaANfhLOV85ve+FNpiUsbSRg==",
+      "dev": true
+    },
+    "node_modules/@types/prettier": {
+      "version": "2.7.3",
+      "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz",
+      "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==",
+      "dev": true
+    },
+    "node_modules/@types/pug": {
+      "version": "2.0.10",
+      "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.10.tgz",
+      "integrity": "sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA=="
+    },
+    "node_modules/@types/sinon": {
+      "version": "7.5.2",
+      "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-7.5.2.tgz",
+      "integrity": "sha512-T+m89VdXj/eidZyejvmoP9jivXgBDdkOSBVQjU9kF349NEx10QdPNGxHeZUaj1IlJ32/ewdyXJjnJxyxJroYwg==",
+      "dev": true
+    },
+    "node_modules/@ungap/promise-all-settled": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",
+      "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
+      "dev": true
+    },
+    "node_modules/@vscode/emmet-helper": {
+      "version": "2.8.4",
+      "resolved": "https://registry.npmjs.org/@vscode/emmet-helper/-/emmet-helper-2.8.4.tgz",
+      "integrity": "sha512-lUki5QLS47bz/U8IlG9VQ+1lfxMtxMZENmU5nu4Z71eOD5j9FK0SmYGL5NiVJg9WBWeAU0VxRADMY2Qpq7BfVg==",
+      "dependencies": {
+        "emmet": "^2.3.0",
+        "jsonc-parser": "^2.3.0",
+        "vscode-languageserver-textdocument": "^1.0.1",
+        "vscode-languageserver-types": "^3.15.1",
+        "vscode-nls": "^5.0.0",
+        "vscode-uri": "^2.1.2"
+      }
+    },
+    "node_modules/@vscode/emmet-helper/node_modules/vscode-uri": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-2.1.2.tgz",
+      "integrity": "sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A=="
+    },
+    "node_modules/@vscode/l10n": {
+      "version": "0.0.18",
+      "resolved": "https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.18.tgz",
+      "integrity": "sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ=="
+    },
+    "node_modules/acorn": {
+      "version": "8.11.3",
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
+      "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
+      "dev": true,
+      "bin": {
+        "acorn": "bin/acorn"
+      },
+      "engines": {
+        "node": ">=0.4.0"
+      }
+    },
+    "node_modules/acorn-walk": {
+      "version": "8.3.2",
+      "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz",
+      "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.4.0"
+      }
+    },
+    "node_modules/ansi-colors": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
+      "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/ansi-regex": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+      "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/ansi-styles": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+      "dev": true,
+      "dependencies": {
+        "color-convert": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+      }
+    },
+    "node_modules/anymatch": {
+      "version": "3.1.3",
+      "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+      "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+      "dependencies": {
+        "normalize-path": "^3.0.0",
+        "picomatch": "^2.0.4"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/arg": {
+      "version": "4.1.3",
+      "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
+      "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
+      "dev": true
+    },
+    "node_modules/argparse": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+      "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+      "dev": true
+    },
+    "node_modules/balanced-match": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+    },
+    "node_modules/binary-extensions": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+      "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/brace-expansion": {
+      "version": "1.1.11",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+      "dependencies": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "node_modules/braces": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+      "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+      "dependencies": {
+        "fill-range": "^7.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/browser-stdout": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
+      "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
+      "dev": true
+    },
+    "node_modules/buffer-crc32": {
+      "version": "0.2.13",
+      "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+      "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/camelcase": {
+      "version": "6.3.0",
+      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+      "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/chalk": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+      "dev": true,
+      "dependencies": {
+        "ansi-styles": "^4.1.0",
+        "supports-color": "^7.1.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/chalk?sponsor=1"
+      }
+    },
+    "node_modules/chalk/node_modules/supports-color": {
+      "version": "7.2.0",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+      "dev": true,
+      "dependencies": {
+        "has-flag": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/chokidar": {
+      "version": "3.6.0",
+      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+      "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+      "dependencies": {
+        "anymatch": "~3.1.2",
+        "braces": "~3.0.2",
+        "glob-parent": "~5.1.2",
+        "is-binary-path": "~2.1.0",
+        "is-glob": "~4.0.1",
+        "normalize-path": "~3.0.0",
+        "readdirp": "~3.6.0"
+      },
+      "engines": {
+        "node": ">= 8.10.0"
+      },
+      "funding": {
+        "url": "https://paulmillr.com/funding/"
+      },
+      "optionalDependencies": {
+        "fsevents": "~2.3.2"
+      }
+    },
+    "node_modules/cliui": {
+      "version": "7.0.4",
+      "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+      "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+      "dev": true,
+      "dependencies": {
+        "string-width": "^4.2.0",
+        "strip-ansi": "^6.0.0",
+        "wrap-ansi": "^7.0.0"
+      }
+    },
+    "node_modules/color-convert": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+      "dev": true,
+      "dependencies": {
+        "color-name": "~1.1.4"
+      },
+      "engines": {
+        "node": ">=7.0.0"
+      }
+    },
+    "node_modules/color-name": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+      "dev": true
+    },
+    "node_modules/concat-map": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+      "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+    },
+    "node_modules/create-require": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
+      "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
+      "dev": true
+    },
+    "node_modules/cross-env": {
+      "version": "7.0.3",
+      "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz",
+      "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==",
+      "dev": true,
+      "dependencies": {
+        "cross-spawn": "^7.0.1"
+      },
+      "bin": {
+        "cross-env": "src/bin/cross-env.js",
+        "cross-env-shell": "src/bin/cross-env-shell.js"
+      },
+      "engines": {
+        "node": ">=10.14",
+        "npm": ">=6",
+        "yarn": ">=1"
+      }
+    },
+    "node_modules/cross-spawn": {
+      "version": "7.0.3",
+      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+      "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+      "dev": true,
+      "dependencies": {
+        "path-key": "^3.1.0",
+        "shebang-command": "^2.0.0",
+        "which": "^2.0.1"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/debug": {
+      "version": "4.3.3",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
+      "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
+      "dev": true,
+      "dependencies": {
+        "ms": "2.1.2"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "peerDependenciesMeta": {
+        "supports-color": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/debug/node_modules/ms": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+      "dev": true
+    },
+    "node_modules/decamelize": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
+      "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/dedent-js": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/dedent-js/-/dedent-js-1.0.1.tgz",
+      "integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ=="
+    },
+    "node_modules/detect-indent": {
+      "version": "6.1.0",
+      "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz",
+      "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/diff": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
+      "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.3.1"
+      }
+    },
+    "node_modules/emmet": {
+      "version": "2.4.7",
+      "resolved": "https://registry.npmjs.org/emmet/-/emmet-2.4.7.tgz",
+      "integrity": "sha512-O5O5QNqtdlnQM2bmKHtJgyChcrFMgQuulI+WdiOw2NArzprUqqxUW6bgYtKvzKgrsYpuLWalOkdhNP+1jluhCA==",
+      "workspaces": [
+        "./packages/scanner",
+        "./packages/abbreviation",
+        "./packages/css-abbreviation",
+        "./"
+      ],
+      "dependencies": {
+        "@emmetio/abbreviation": "^2.3.3",
+        "@emmetio/css-abbreviation": "^2.1.8"
+      }
+    },
+    "node_modules/emoji-regex": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+      "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+      "dev": true
+    },
+    "node_modules/es6-promise": {
+      "version": "3.3.1",
+      "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz",
+      "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg=="
+    },
+    "node_modules/escalade": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
+      "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/escape-string-regexp": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+      "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/estree-walker": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+      "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+    },
+    "node_modules/fast-glob": {
+      "version": "3.3.2",
+      "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+      "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+      "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.4"
+      },
+      "engines": {
+        "node": ">=8.6.0"
+      }
+    },
+    "node_modules/fastq": {
+      "version": "1.17.1",
+      "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
+      "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+      "dependencies": {
+        "reusify": "^1.0.4"
+      }
+    },
+    "node_modules/fill-range": {
+      "version": "7.0.1",
+      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+      "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+      "dependencies": {
+        "to-regex-range": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/find-up": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+      "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+      "dev": 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": {
+      "version": "5.0.2",
+      "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
+      "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
+      "dev": true,
+      "bin": {
+        "flat": "cli.js"
+      }
+    },
+    "node_modules/fs.realpath": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+      "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+    },
+    "node_modules/fsevents": {
+      "version": "2.3.3",
+      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+      "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+      "hasInstallScript": true,
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+      }
+    },
+    "node_modules/get-caller-file": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+      "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+      "dev": true,
+      "engines": {
+        "node": "6.* || 8.* || >= 10.*"
+      }
+    },
+    "node_modules/glob": {
+      "version": "7.2.0",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
+      "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
+      "dependencies": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^3.0.4",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      },
+      "engines": {
+        "node": "*"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/glob-parent": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+      "dependencies": {
+        "is-glob": "^4.0.1"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/glob/node_modules/minimatch": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+      "dependencies": {
+        "brace-expansion": "^1.1.7"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/graceful-fs": {
+      "version": "4.2.11",
+      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+      "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
+    },
+    "node_modules/growl": {
+      "version": "1.10.5",
+      "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
+      "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
+      "dev": true,
+      "engines": {
+        "node": ">=4.x"
+      }
+    },
+    "node_modules/has-flag": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/he": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+      "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+      "dev": true,
+      "bin": {
+        "he": "bin/he"
+      }
+    },
+    "node_modules/inflight": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+      "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+      "dependencies": {
+        "once": "^1.3.0",
+        "wrappy": "1"
+      }
+    },
+    "node_modules/inherits": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+    },
+    "node_modules/is-binary-path": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+      "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+      "dependencies": {
+        "binary-extensions": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/is-extglob": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+      "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/is-fullwidth-code-point": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+      "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/is-glob": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+      "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+      "dependencies": {
+        "is-extglob": "^2.1.1"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/is-number": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+      "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+      "engines": {
+        "node": ">=0.12.0"
+      }
+    },
+    "node_modules/is-plain-obj": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+      "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/is-unicode-supported": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+      "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/isexe": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+      "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+      "dev": true
+    },
+    "node_modules/js-yaml": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+      "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+      "dev": true,
+      "dependencies": {
+        "argparse": "^2.0.1"
+      },
+      "bin": {
+        "js-yaml": "bin/js-yaml.js"
+      }
+    },
+    "node_modules/jsonc-parser": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz",
+      "integrity": "sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg=="
+    },
+    "node_modules/just-extend": {
+      "version": "6.2.0",
+      "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz",
+      "integrity": "sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==",
+      "dev": true
+    },
+    "node_modules/locate-path": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+      "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+      "dev": true,
+      "dependencies": {
+        "p-locate": "^5.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/lodash": {
+      "version": "4.17.21",
+      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+    },
+    "node_modules/lodash.get": {
+      "version": "4.4.2",
+      "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+      "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
+      "dev": true
+    },
+    "node_modules/log-symbols": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+      "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+      "dev": true,
+      "dependencies": {
+        "chalk": "^4.1.0",
+        "is-unicode-supported": "^0.1.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/lower-case": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+      "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+      "dependencies": {
+        "tslib": "^2.0.3"
+      }
+    },
+    "node_modules/magic-string": {
+      "version": "0.30.10",
+      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz",
+      "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==",
+      "dependencies": {
+        "@jridgewell/sourcemap-codec": "^1.4.15"
+      }
+    },
+    "node_modules/make-error": {
+      "version": "1.3.6",
+      "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
+      "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
+      "dev": true
+    },
+    "node_modules/merge2": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+      "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/micromatch": {
+      "version": "4.0.5",
+      "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+      "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+      "dependencies": {
+        "braces": "^3.0.2",
+        "picomatch": "^2.3.1"
+      },
+      "engines": {
+        "node": ">=8.6"
+      }
+    },
+    "node_modules/min-indent": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
+      "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/minimatch": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz",
+      "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==",
+      "dev": true,
+      "dependencies": {
+        "brace-expansion": "^1.1.7"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/minimist": {
+      "version": "1.2.8",
+      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+      "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/mkdirp": {
+      "version": "0.5.6",
+      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+      "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+      "dependencies": {
+        "minimist": "^1.2.6"
+      },
+      "bin": {
+        "mkdirp": "bin/cmd.js"
+      }
+    },
+    "node_modules/mocha": {
+      "version": "9.2.2",
+      "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz",
+      "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==",
+      "dev": true,
+      "dependencies": {
+        "@ungap/promise-all-settled": "1.1.2",
+        "ansi-colors": "4.1.1",
+        "browser-stdout": "1.3.1",
+        "chokidar": "3.5.3",
+        "debug": "4.3.3",
+        "diff": "5.0.0",
+        "escape-string-regexp": "4.0.0",
+        "find-up": "5.0.0",
+        "glob": "7.2.0",
+        "growl": "1.10.5",
+        "he": "1.2.0",
+        "js-yaml": "4.1.0",
+        "log-symbols": "4.1.0",
+        "minimatch": "4.2.1",
+        "ms": "2.1.3",
+        "nanoid": "3.3.1",
+        "serialize-javascript": "6.0.0",
+        "strip-json-comments": "3.1.1",
+        "supports-color": "8.1.1",
+        "which": "2.0.2",
+        "workerpool": "6.2.0",
+        "yargs": "16.2.0",
+        "yargs-parser": "20.2.4",
+        "yargs-unparser": "2.0.0"
+      },
+      "bin": {
+        "_mocha": "bin/_mocha",
+        "mocha": "bin/mocha"
+      },
+      "engines": {
+        "node": ">= 12.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/mochajs"
+      }
+    },
+    "node_modules/mocha/node_modules/chokidar": {
+      "version": "3.5.3",
+      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+      "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "individual",
+          "url": "https://paulmillr.com/funding/"
+        }
+      ],
+      "dependencies": {
+        "anymatch": "~3.1.2",
+        "braces": "~3.0.2",
+        "glob-parent": "~5.1.2",
+        "is-binary-path": "~2.1.0",
+        "is-glob": "~4.0.1",
+        "normalize-path": "~3.0.0",
+        "readdirp": "~3.6.0"
+      },
+      "engines": {
+        "node": ">= 8.10.0"
+      },
+      "optionalDependencies": {
+        "fsevents": "~2.3.2"
+      }
+    },
+    "node_modules/ms": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+      "dev": true
+    },
+    "node_modules/nanoid": {
+      "version": "3.3.1",
+      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz",
+      "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==",
+      "dev": true,
+      "bin": {
+        "nanoid": "bin/nanoid.cjs"
+      },
+      "engines": {
+        "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+      }
+    },
+    "node_modules/nise": {
+      "version": "5.1.9",
+      "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.9.tgz",
+      "integrity": "sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==",
+      "dev": true,
+      "dependencies": {
+        "@sinonjs/commons": "^3.0.0",
+        "@sinonjs/fake-timers": "^11.2.2",
+        "@sinonjs/text-encoding": "^0.7.2",
+        "just-extend": "^6.2.0",
+        "path-to-regexp": "^6.2.1"
+      }
+    },
+    "node_modules/nise/node_modules/@sinonjs/commons": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
+      "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
+      "dev": true,
+      "dependencies": {
+        "type-detect": "4.0.8"
+      }
+    },
+    "node_modules/nise/node_modules/@sinonjs/fake-timers": {
+      "version": "11.2.2",
+      "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz",
+      "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==",
+      "dev": true,
+      "dependencies": {
+        "@sinonjs/commons": "^3.0.0"
+      }
+    },
+    "node_modules/no-case": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+      "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+      "dependencies": {
+        "lower-case": "^2.0.2",
+        "tslib": "^2.0.3"
+      }
+    },
+    "node_modules/normalize-path": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+      "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/once": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+      "dependencies": {
+        "wrappy": "1"
+      }
+    },
+    "node_modules/p-limit": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+      "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+      "dev": 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",
+      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+      "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+      "dev": true,
+      "dependencies": {
+        "p-limit": "^3.0.2"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/pascal-case": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+      "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+      "dependencies": {
+        "no-case": "^3.0.4",
+        "tslib": "^2.0.3"
+      }
+    },
+    "node_modules/path-exists": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+      "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/path-is-absolute": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+      "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/path-key": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+      "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/path-to-regexp": {
+      "version": "6.2.2",
+      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz",
+      "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==",
+      "dev": true
+    },
+    "node_modules/picomatch": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+      "engines": {
+        "node": ">=8.6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/jonschlinkert"
+      }
+    },
+    "node_modules/prettier": {
+      "version": "3.2.5",
+      "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz",
+      "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==",
+      "bin": {
+        "prettier": "bin/prettier.cjs"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "url": "https://github.com/prettier/prettier?sponsor=1"
+      }
+    },
+    "node_modules/prettier-plugin-svelte": {
+      "version": "3.2.3",
+      "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.2.3.tgz",
+      "integrity": "sha512-wJq8RunyFlWco6U0WJV5wNCM7zpBFakS76UBSbmzMGpncpK98NZABaE+s7n8/APDCEVNHXC5Mpq+MLebQtsRlg==",
+      "peerDependencies": {
+        "prettier": "^3.0.0",
+        "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0"
+      }
+    },
+    "node_modules/queue-microtask": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+      "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ]
+    },
+    "node_modules/randombytes": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+      "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+      "dev": true,
+      "dependencies": {
+        "safe-buffer": "^5.1.0"
+      }
+    },
+    "node_modules/readdirp": {
+      "version": "3.6.0",
+      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+      "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+      "dependencies": {
+        "picomatch": "^2.2.1"
+      },
+      "engines": {
+        "node": ">=8.10.0"
+      }
+    },
+    "node_modules/require-directory": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+      "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/reusify": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+      "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+      "engines": {
+        "iojs": ">=1.0.0",
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/rimraf": {
+      "version": "2.7.1",
+      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+      "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+      "dependencies": {
+        "glob": "^7.1.3"
+      },
+      "bin": {
+        "rimraf": "bin.js"
+      }
+    },
+    "node_modules/run-parallel": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+      "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ],
+      "dependencies": {
+        "queue-microtask": "^1.2.2"
+      }
+    },
+    "node_modules/safe-buffer": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+      "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+      "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"
+        }
+      ]
+    },
+    "node_modules/sander": {
+      "version": "0.5.1",
+      "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz",
+      "integrity": "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==",
+      "dependencies": {
+        "es6-promise": "^3.1.2",
+        "graceful-fs": "^4.1.3",
+        "mkdirp": "^0.5.1",
+        "rimraf": "^2.5.2"
+      }
+    },
+    "node_modules/semver": {
+      "version": "7.6.2",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+      "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/serialize-javascript": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
+      "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
+      "dev": true,
+      "dependencies": {
+        "randombytes": "^2.1.0"
+      }
+    },
+    "node_modules/shebang-command": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+      "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+      "dev": true,
+      "dependencies": {
+        "shebang-regex": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/shebang-regex": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+      "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/sinon": {
+      "version": "11.1.2",
+      "resolved": "https://registry.npmjs.org/sinon/-/sinon-11.1.2.tgz",
+      "integrity": "sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==",
+      "deprecated": "16.1.1",
+      "dev": true,
+      "dependencies": {
+        "@sinonjs/commons": "^1.8.3",
+        "@sinonjs/fake-timers": "^7.1.2",
+        "@sinonjs/samsam": "^6.0.2",
+        "diff": "^5.0.0",
+        "nise": "^5.1.0",
+        "supports-color": "^7.2.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/sinon"
+      }
+    },
+    "node_modules/sinon/node_modules/supports-color": {
+      "version": "7.2.0",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+      "dev": true,
+      "dependencies": {
+        "has-flag": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/sorcery": {
+      "version": "0.11.0",
+      "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.0.tgz",
+      "integrity": "sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==",
+      "dependencies": {
+        "@jridgewell/sourcemap-codec": "^1.4.14",
+        "buffer-crc32": "^0.2.5",
+        "minimist": "^1.2.0",
+        "sander": "^0.5.0"
+      },
+      "bin": {
+        "sorcery": "bin/sorcery"
+      }
+    },
+    "node_modules/string-width": {
+      "version": "4.2.3",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+      "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+      "dev": true,
+      "dependencies": {
+        "emoji-regex": "^8.0.0",
+        "is-fullwidth-code-point": "^3.0.0",
+        "strip-ansi": "^6.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/strip-ansi": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+      "dev": true,
+      "dependencies": {
+        "ansi-regex": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/strip-indent": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
+      "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
+      "dependencies": {
+        "min-indent": "^1.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/strip-json-comments": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+      "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+      "dev": true,
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "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,
+      "dependencies": {
+        "has-flag": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/supports-color?sponsor=1"
+      }
+    },
+    "node_modules/svelte": {
+      "version": "3.59.2",
+      "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.59.2.tgz",
+      "integrity": "sha512-vzSyuGr3eEoAtT/A6bmajosJZIUWySzY2CzB3w2pgPvnkUjGqlDnsNnA0PMO+mMAhuyMul6C2uuZzY6ELSkzyA==",
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/svelte-preprocess": {
+      "version": "5.1.4",
+      "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.1.4.tgz",
+      "integrity": "sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==",
+      "hasInstallScript": true,
+      "dependencies": {
+        "@types/pug": "^2.0.6",
+        "detect-indent": "^6.1.0",
+        "magic-string": "^0.30.5",
+        "sorcery": "^0.11.0",
+        "strip-indent": "^3.0.0"
+      },
+      "engines": {
+        "node": ">= 16.0.0"
+      },
+      "peerDependencies": {
+        "@babel/core": "^7.10.2",
+        "coffeescript": "^2.5.1",
+        "less": "^3.11.3 || ^4.0.0",
+        "postcss": "^7 || ^8",
+        "postcss-load-config": "^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0",
+        "pug": "^3.0.0",
+        "sass": "^1.26.8",
+        "stylus": "^0.55.0",
+        "sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0",
+        "svelte": "^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0",
+        "typescript": ">=3.9.5 || ^4.0.0 || ^5.0.0"
+      },
+      "peerDependenciesMeta": {
+        "@babel/core": {
+          "optional": true
+        },
+        "coffeescript": {
+          "optional": true
+        },
+        "less": {
+          "optional": true
+        },
+        "postcss": {
+          "optional": true
+        },
+        "postcss-load-config": {
+          "optional": true
+        },
+        "pug": {
+          "optional": true
+        },
+        "sass": {
+          "optional": true
+        },
+        "stylus": {
+          "optional": true
+        },
+        "sugarss": {
+          "optional": true
+        },
+        "typescript": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/svelte2tsx": {
+      "version": "0.7.8",
+      "resolved": "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.7.8.tgz",
+      "integrity": "sha512-ABK3RDFcy59AqAiU1N5Kxu1RnKrb1GDMrQjLgNgJfE8Q+coCKpjCAPtUVKQM2HnmuqeNWcT3NqfXbE+ZmN5Pow==",
+      "dependencies": {
+        "dedent-js": "^1.0.1",
+        "pascal-case": "^3.1.1"
+      },
+      "peerDependencies": {
+        "svelte": "^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0",
+        "typescript": "^4.9.4 || ^5.0.0"
+      }
+    },
+    "node_modules/to-regex-range": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+      "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+      "dependencies": {
+        "is-number": "^7.0.0"
+      },
+      "engines": {
+        "node": ">=8.0"
+      }
+    },
+    "node_modules/ts-node": {
+      "version": "10.9.2",
+      "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
+      "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
+      "dev": true,
+      "dependencies": {
+        "@cspotcode/source-map-support": "^0.8.0",
+        "@tsconfig/node10": "^1.0.7",
+        "@tsconfig/node12": "^1.0.7",
+        "@tsconfig/node14": "^1.0.0",
+        "@tsconfig/node16": "^1.0.2",
+        "acorn": "^8.4.1",
+        "acorn-walk": "^8.1.1",
+        "arg": "^4.1.0",
+        "create-require": "^1.1.0",
+        "diff": "^4.0.1",
+        "make-error": "^1.1.1",
+        "v8-compile-cache-lib": "^3.0.1",
+        "yn": "3.1.1"
+      },
+      "bin": {
+        "ts-node": "dist/bin.js",
+        "ts-node-cwd": "dist/bin-cwd.js",
+        "ts-node-esm": "dist/bin-esm.js",
+        "ts-node-script": "dist/bin-script.js",
+        "ts-node-transpile-only": "dist/bin-transpile.js",
+        "ts-script": "dist/bin-script-deprecated.js"
+      },
+      "peerDependencies": {
+        "@swc/core": ">=1.2.50",
+        "@swc/wasm": ">=1.2.50",
+        "@types/node": "*",
+        "typescript": ">=2.7"
+      },
+      "peerDependenciesMeta": {
+        "@swc/core": {
+          "optional": true
+        },
+        "@swc/wasm": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/ts-node/node_modules/diff": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+      "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+      "dev": true,
+      "engines": {
+        "node": ">=0.3.1"
+      }
+    },
+    "node_modules/tslib": {
+      "version": "2.6.2",
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+      "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
+    },
+    "node_modules/type-detect": {
+      "version": "4.0.8",
+      "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+      "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+      "dev": true,
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/typescript": {
+      "version": "5.4.5",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
+      "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
+      "bin": {
+        "tsc": "bin/tsc",
+        "tsserver": "bin/tsserver"
+      },
+      "engines": {
+        "node": ">=14.17"
+      }
+    },
+    "node_modules/typescript-auto-import-cache": {
+      "version": "0.3.2",
+      "resolved": "https://registry.npmjs.org/typescript-auto-import-cache/-/typescript-auto-import-cache-0.3.2.tgz",
+      "integrity": "sha512-+laqe5SFL1vN62FPOOJSUDTZxtgsoOXjneYOXIpx5rQ4UMiN89NAtJLpqLqyebv9fgQ/IMeeTX+mQyRnwvJzvg==",
+      "dependencies": {
+        "semver": "^7.3.8"
+      }
+    },
+    "node_modules/v8-compile-cache-lib": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
+      "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
+      "dev": true
+    },
+    "node_modules/vscode-css-languageservice": {
+      "version": "6.2.14",
+      "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.2.14.tgz",
+      "integrity": "sha512-5UPQ9Y1sUTnuMyaMBpO7LrBkqjhEJb5eAwdUlDp+Uez8lry+Tspnk3+3p2qWS4LlNsr4p3v9WkZxUf1ltgFpgw==",
+      "dependencies": {
+        "@vscode/l10n": "^0.0.18",
+        "vscode-languageserver-textdocument": "^1.0.11",
+        "vscode-languageserver-types": "3.17.5",
+        "vscode-uri": "^3.0.8"
+      }
+    },
+    "node_modules/vscode-css-languageservice/node_modules/vscode-languageserver-types": {
+      "version": "3.17.5",
+      "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz",
+      "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg=="
+    },
+    "node_modules/vscode-html-languageservice": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.1.2.tgz",
+      "integrity": "sha512-wkWfEx/IIR3s2P5yD4aTGHiOb8IAzFxgkSt1uSC3itJ4oDAm23yG7o0L29JljUdnXDDgLafPAvhv8A2I/8riHw==",
+      "dependencies": {
+        "@vscode/l10n": "^0.0.18",
+        "vscode-languageserver-textdocument": "^1.0.11",
+        "vscode-languageserver-types": "^3.17.5",
+        "vscode-uri": "^3.0.8"
+      }
+    },
+    "node_modules/vscode-html-languageservice/node_modules/vscode-languageserver-types": {
+      "version": "3.17.5",
+      "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz",
+      "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg=="
+    },
+    "node_modules/vscode-jsonrpc": {
+      "version": "8.0.2",
+      "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.0.2.tgz",
+      "integrity": "sha512-RY7HwI/ydoC1Wwg4gJ3y6LpU9FJRZAUnTYMXthqhFXXu77ErDd/xkREpGuk4MyYkk4a+XDWAMqe0S3KkelYQEQ==",
+      "engines": {
+        "node": ">=14.0.0"
+      }
+    },
+    "node_modules/vscode-languageserver": {
+      "version": "8.0.2",
+      "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-8.0.2.tgz",
+      "integrity": "sha512-bpEt2ggPxKzsAOZlXmCJ50bV7VrxwCS5BI4+egUmure/oI/t4OlFzi/YNtVvY24A2UDOZAgwFGgnZPwqSJubkA==",
+      "dependencies": {
+        "vscode-languageserver-protocol": "3.17.2"
+      },
+      "bin": {
+        "installServerIntoExtension": "bin/installServerIntoExtension"
+      }
+    },
+    "node_modules/vscode-languageserver-protocol": {
+      "version": "3.17.2",
+      "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.2.tgz",
+      "integrity": "sha512-8kYisQ3z/SQ2kyjlNeQxbkkTNmVFoQCqkmGrzLH6A9ecPlgTbp3wDTnUNqaUxYr4vlAcloxx8zwy7G5WdguYNg==",
+      "dependencies": {
+        "vscode-jsonrpc": "8.0.2",
+        "vscode-languageserver-types": "3.17.2"
+      }
+    },
+    "node_modules/vscode-languageserver-textdocument": {
+      "version": "1.0.11",
+      "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz",
+      "integrity": "sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA=="
+    },
+    "node_modules/vscode-languageserver-types": {
+      "version": "3.17.2",
+      "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2.tgz",
+      "integrity": "sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA=="
+    },
+    "node_modules/vscode-nls": {
+      "version": "5.2.0",
+      "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.2.0.tgz",
+      "integrity": "sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng=="
+    },
+    "node_modules/vscode-uri": {
+      "version": "3.0.8",
+      "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz",
+      "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw=="
+    },
+    "node_modules/which": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+      "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+      "dev": true,
+      "dependencies": {
+        "isexe": "^2.0.0"
+      },
+      "bin": {
+        "node-which": "bin/node-which"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/workerpool": {
+      "version": "6.2.0",
+      "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz",
+      "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==",
+      "dev": true
+    },
+    "node_modules/wrap-ansi": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+      "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+      "dev": true,
+      "dependencies": {
+        "ansi-styles": "^4.0.0",
+        "string-width": "^4.1.0",
+        "strip-ansi": "^6.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+      }
+    },
+    "node_modules/wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+    },
+    "node_modules/y18n": {
+      "version": "5.0.8",
+      "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+      "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/yargs": {
+      "version": "16.2.0",
+      "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+      "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+      "dev": true,
+      "dependencies": {
+        "cliui": "^7.0.2",
+        "escalade": "^3.1.1",
+        "get-caller-file": "^2.0.5",
+        "require-directory": "^2.1.1",
+        "string-width": "^4.2.0",
+        "y18n": "^5.0.5",
+        "yargs-parser": "^20.2.2"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/yargs-parser": {
+      "version": "20.2.4",
+      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
+      "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/yargs-unparser": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
+      "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
+      "dev": true,
+      "dependencies": {
+        "camelcase": "^6.0.0",
+        "decamelize": "^4.0.0",
+        "flat": "^5.0.2",
+        "is-plain-obj": "^2.1.0"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/yn": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
+      "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/yocto-queue": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+      "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+      "dev": true,
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    }
+  }
+}
diff --git a/pkgs/by-name/sv/svelte-language-server/package.nix b/pkgs/by-name/sv/svelte-language-server/package.nix
new file mode 100644
index 0000000000000..cbb8dd2234fd2
--- /dev/null
+++ b/pkgs/by-name/sv/svelte-language-server/package.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildNpmPackage
+, fetchurl
+}:
+let
+  version = "0.16.9";
+in buildNpmPackage {
+  pname = "svelte-language-server";
+  inherit version;
+
+  src = fetchurl {
+    url = "https://registry.npmjs.org/svelte-language-server/-/svelte-language-server-${version}.tgz";
+    hash = "sha256-RR2RzBZGCyd0hnEX4iD5pjmgtq8GzgrGZAG8Qq63EZA=";
+  };
+
+  npmDepsHash = "sha256-WYiWm/2gr/0kXZOYeMjVYZOg0JttghPF9jkwNnb0nQo=";
+
+  postPatch = ''
+    ln -s ${./package-lock.json} package-lock.json
+  '';
+
+  dontNpmBuild = true;
+
+  passthru.updateScript = ./update.sh;
+
+  meta = {
+    description = "Language server (implementing the language server protocol) for Svelte";
+    downloadPage = "https://www.npmjs.com/package/svelte-language-server";
+    homepage = "https://github.com/sveltejs/language-tools";
+    license = lib.licenses.mit;
+    mainProgram = "svelteserver";
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/pkgs/by-name/sv/svelte-language-server/update.sh b/pkgs/by-name/sv/svelte-language-server/update.sh
new file mode 100755
index 0000000000000..40d1ef0175dc1
--- /dev/null
+++ b/pkgs/by-name/sv/svelte-language-server/update.sh
@@ -0,0 +1,30 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p gnused nix nodejs prefetch-npm-deps wget
+
+set -euo pipefail
+pushd "$(dirname "${BASH_SOURCE[0]}")"
+
+version=$(npm view svelte-language-server version)
+tarball="svelte-language-server-$version.tgz"
+url="https://registry.npmjs.org/svelte-language-server/-/$tarball"
+
+if [[ "$UPDATE_NIX_OLD_VERSION" == "$version" ]]; then
+    echo "Already up to date!"
+    exit 0
+fi
+
+sed -i 's#version = "[^"]*"#version = "'"$version"'"#' package.nix
+
+sha256=$(nix-prefetch-url "$url")
+src_hash=$(nix-hash --type sha256 --to-sri "$sha256")
+sed -i 's#hash = "[^"]*"#hash = "'"$src_hash"'"#' package.nix
+
+rm -f package-lock.json package.json *.tgz
+wget "$url"
+tar xf "$tarball" --strip-components=1 package/package.json
+npm i --package-lock-only
+npm_hash=$(prefetch-npm-deps package-lock.json)
+sed -i 's#npmDepsHash = "[^"]*"#npmDepsHash = "'"$npm_hash"'"#' package.nix
+rm -f package.json *.tgz
+
+popd
diff --git a/pkgs/by-name/sw/swaylock/package.nix b/pkgs/by-name/sw/swaylock/package.nix
index 0b438df13d289..0ba3b727c9490 100644
--- a/pkgs/by-name/sw/swaylock/package.nix
+++ b/pkgs/by-name/sw/swaylock/package.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch
+{ lib, stdenv, fetchFromGitHub
 , meson, ninja, pkg-config, scdoc, wayland-scanner
 , wayland, wayland-protocols, libxkbcommon, cairo, gdk-pixbuf, pam
 }:
diff --git a/pkgs/by-name/sy/syft/package.nix b/pkgs/by-name/sy/syft/package.nix
index f2c220b43f569..fdd416c135b07 100644
--- a/pkgs/by-name/sy/syft/package.nix
+++ b/pkgs/by-name/sy/syft/package.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "syft";
-  version = "1.4.1";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "anchore";
     repo = "syft";
     rev = "refs/tags/v${version}";
-    hash = "sha256-fFJcRNqXhhdxsxQkP5S8xSeeUOa+KbS9CkUs1sbNuOg=";
+    hash = "sha256-sBV2/2AuKIMgU0oP0p2CukCMYQBSs623vV6BZBTWYqg=";
     # populate values that require us to use git. By doing this in postFetch we
     # can delete .git afterwards and maintain better reproducibility of the src.
     leaveDotGit = true;
@@ -28,7 +28,7 @@ buildGoModule rec {
   # hash mismatch with darwin
   proxyVendor = true;
 
-  vendorHash = "sha256-vuKvQjWMFHtTjTb7Sg/jXvzpR2IxrHaWyfibTQdpSd4=";
+  vendorHash = "sha256-b7iDqobrXbXy1SlyDuHDoSYdbQg3WCcHS0SAVj929qw=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/by-name/sy/symfony-cli/package.nix b/pkgs/by-name/sy/symfony-cli/package.nix
index 20a30fd5d2499..567e4fa36c862 100644
--- a/pkgs/by-name/sy/symfony-cli/package.nix
+++ b/pkgs/by-name/sy/symfony-cli/package.nix
@@ -10,14 +10,14 @@
 
 buildGoModule rec {
   pname = "symfony-cli";
-  version = "5.8.17";
-  vendorHash = "sha256-ARTKJVHgN1Y3xOUc3P2Ch7e8gN9BZbhBEZ1DiM7nEWs=";
+  version = "5.8.19";
+  vendorHash = "sha256-oo4lLJTF44hBb8QaIMONj+2WRdDSlhImZaC/nniWAhs=";
 
   src = fetchFromGitHub {
     owner = "symfony-cli";
     repo = "symfony-cli";
     rev = "v${version}";
-    hash = "sha256-UmGyIZk5s5A8ModafWMZqeJHdZ4fa+hAHi62pdlfJ8I=";
+    hash = "sha256-TOtz/IPeNmWqDRtenWm+58NWxeIq1gihHnpawOa66YE=";
     leaveDotGit = true;
     postFetch = ''
       git --git-dir $out/.git log -1 --pretty=%cd --date=format:'%Y-%m-%dT%H:%M:%SZ' > $out/SOURCE_DATE
diff --git a/pkgs/by-name/te/televido/package.nix b/pkgs/by-name/te/televido/package.nix
new file mode 100644
index 0000000000000..2b495600613b6
--- /dev/null
+++ b/pkgs/by-name/te/televido/package.nix
@@ -0,0 +1,59 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, rustPlatform
+, rustc
+, cargo
+, wrapGAppsHook4
+, blueprint-compiler
+, libadwaita
+, desktop-file-utils
+, openssl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "televido";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "d-k-bo";
+    repo = "televido";
+    rev = "v${version}";
+    hash = "sha256-qfUwPyutBNEnplD3kmTJXffzcWkEcR6FTLnT5YDSysU=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-CmQQH6a5xMq+v+P4/sbpQ7iDaGKtzV39FgufD5uxz4Y=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    rustPlatform.cargoSetupHook
+    rustc
+    cargo
+    wrapGAppsHook4
+    blueprint-compiler
+    openssl
+  ];
+
+  buildInputs = [
+    libadwaita
+    desktop-file-utils
+  ];
+
+  meta = with lib; {
+    description = "Viewer for German-language public broadcasting live streams and archives";
+    homepage = "https://github.com/d-k-bo/televido";
+    license = licenses.gpl3;
+    mainProgram = "televido";
+    maintainers = with maintainers; [ seineeloquenz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/te/templ/package.nix b/pkgs/by-name/te/templ/package.nix
index 53fc9775300e1..bbf839f15e59f 100644
--- a/pkgs/by-name/te/templ/package.nix
+++ b/pkgs/by-name/te/templ/package.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "templ";
-  version = "0.2.697";
+  version = "0.2.707";
 
   src = fetchFromGitHub {
     owner = "a-h";
     repo = "templ";
     rev = "v${version}";
-    hash = "sha256-z/sb4AlFOU20sBEAu12VSXqhHQuqvj3mUu7JTvyc1pI=";
+    hash = "sha256-4TkK8zeoWWGmcBg8YwALo2EyKfOyq5ut/3TjG81a+8M=";
   };
 
   vendorHash = "sha256-Fa6bmG0yfbICMfHlM52V+obxoVsQa4VNydIHXS+lGxw=";
diff --git a/pkgs/by-name/te/tenv/package.nix b/pkgs/by-name/te/tenv/package.nix
index 494495c95a695..c0d3e972801c3 100644
--- a/pkgs/by-name/te/tenv/package.nix
+++ b/pkgs/by-name/te/tenv/package.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "tenv";
-  version = "1.11.2";
+  version = "1.11.5";
 
   src = fetchFromGitHub {
     owner = "tofuutils";
     repo = "tenv";
     rev = "v${version}";
-    hash = "sha256-HlAnCmkMLtQWv63BW0pUns76AylZ1RcKN3D6qpMRo5w=";
+    hash = "sha256-GQZQJdhQxg2i61Wiazeag6XBYPmOdQ1nAv5ROJH50ns=";
   };
 
-  vendorHash = "sha256-teog4VJGDOYsABuE2/fvOtcWvC8mM36rJQI6KZb3eS8=";
+  vendorHash = "sha256-OrMCzqqOFQkI8IwcfO/JVPyd/sw+Ud0VySV7UPiucwc=";
 
   # Tests disabled for requiring network access to release.hashicorp.com
   doCheck = false;
diff --git a/pkgs/by-name/te/tetrio-desktop/tetrio-plus.nix b/pkgs/by-name/te/tetrio-desktop/tetrio-plus.nix
index a9c6f6080b03a..43102d6c8a26e 100644
--- a/pkgs/by-name/te/tetrio-desktop/tetrio-plus.nix
+++ b/pkgs/by-name/te/tetrio-desktop/tetrio-plus.nix
@@ -63,7 +63,7 @@ let
     ];
 
     buildPhase = ''
-      HOME=$(mktemp -d) RUSTFLAGS="-C linker=lld" wasm-pack build --target web --release
+      HOME=$(mktemp -d) wasm-pack build --target web --release
     '';
 
     installPhase = ''
diff --git a/pkgs/by-name/te/textlint-plugin-latex2e/package.nix b/pkgs/by-name/te/textlint-plugin-latex2e/package.nix
new file mode 100644
index 0000000000000..5325d880a6386
--- /dev/null
+++ b/pkgs/by-name/te/textlint-plugin-latex2e/package.nix
@@ -0,0 +1,37 @@
+{
+  lib,
+  fetchFromGitHub,
+  buildNpmPackage,
+  textlint,
+  textlint-plugin-latex2e,
+  textlint-rule-max-comma,
+}:
+
+buildNpmPackage rec {
+  pname = "textlint-plugin-latex2e";
+  version = "1.2.1-unstable-2024-02-05";
+
+  src = fetchFromGitHub {
+    owner = "textlint";
+    repo = "textlint-plugin-latex2e";
+    rev = "d3ba1be14543aaaf8e52f87d103fafb3ebb7c4b0";
+    hash = "sha256-sCDpyhnznMAkIPWK0BawWZwuR9UO/ipIG2o5hyBkJQ0=";
+  };
+
+  npmDepsHash = "sha256-u2cMZC3s4iGCWG6iVMDYfb6XbxfjCdwpzl7opkwtrU8=";
+
+  passthru.tests = textlint.testPackages {
+    inherit (textlint-plugin-latex2e) pname;
+    rule = textlint-rule-max-comma;
+    plugin = textlint-plugin-latex2e;
+    testFile = ./test.tex;
+  };
+
+  meta = {
+    description = "Textlint Plugin LaTeX2ε";
+    homepage = "https://github.com/textlint/textlint-plugin-latex2e";
+    changelog = "https://github.com/textlint/textlint-plugin-latex2e/blob/${src.rev}/CHANGELOG.md";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+  };
+}
diff --git a/pkgs/by-name/te/textlint-plugin-latex2e/test.tex b/pkgs/by-name/te/textlint-plugin-latex2e/test.tex
new file mode 100644
index 0000000000000..98ec66816b6d5
--- /dev/null
+++ b/pkgs/by-name/te/textlint-plugin-latex2e/test.tex
@@ -0,0 +1,4 @@
+\documentclass{article}
+\begin{document}
+Nix, is a tool, that takes a unique approach to package management and system configuration, Learn how to make reproducible, declarative, and reliable systems.
+\end{document}
diff --git a/pkgs/by-name/te/textlint-rule-abbr-within-parentheses/package.nix b/pkgs/by-name/te/textlint-rule-abbr-within-parentheses/package.nix
new file mode 100644
index 0000000000000..96e3906930e26
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-abbr-within-parentheses/package.nix
@@ -0,0 +1,79 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fetchYarnDeps,
+  fixup-yarn-lock,
+  nodejs,
+  yarn,
+  textlint,
+  textlint-rule-abbr-within-parentheses,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "textlint-rule-abbr-within-parentheses";
+  version = "1.0.2";
+
+  src = fetchFromGitHub {
+    owner = "azu";
+    repo = "textlint-rule-abbr-within-parentheses";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-CBrf7WtvywDmtuSyxkDtAyjmrj7KS3TQLSsNfMxeWXw=";
+  };
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${finalAttrs.src}/yarn.lock";
+    hash = "sha256-N4tnja6qTo7jtn7Dh4TwBUCUKfbIbHvdZ7aeJcE+NlU=";
+  };
+
+  nativeBuildInputs = [
+    fixup-yarn-lock
+    nodejs
+    yarn
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    yarn config --offline set yarn-offline-mirror "$offlineCache"
+    fixup-yarn-lock yarn.lock
+    yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+    patchShebangs node_modules
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    yarn --offline build
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    yarn --offline --production install
+    rm -r test
+    mkdir -p $out/lib/node_modules/textlint-rule-abbr-within-parentheses
+    cp -r . $out/lib/node_modules/textlint-rule-abbr-within-parentheses/
+
+    runHook postInstall
+  '';
+
+  passthru.tests = textlint.testPackages {
+    rule = textlint-rule-abbr-within-parentheses;
+    testFile = ./test.md;
+  };
+
+  meta = {
+    description = "Textlint rule check if write abbreviations within parentheses";
+    homepage = "https://github.com/azu/textlint-rule-abbr-within-parentheses";
+    changelog = "https://github.com/azu/textlint-rule-abbr-within-parentheses/releases/tag/${finalAttrs.src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+    platforms = textlint.meta.platforms;
+  };
+})
diff --git a/pkgs/by-name/te/textlint-rule-abbr-within-parentheses/test.md b/pkgs/by-name/te/textlint-rule-abbr-within-parentheses/test.md
new file mode 100644
index 0000000000000..224b1703098b7
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-abbr-within-parentheses/test.md
@@ -0,0 +1 @@
+Passing an expression `expr` that evaluates to a store path to any built-in function which reads from the filesystem constitutes IFD(Import From Derivation).
diff --git a/pkgs/by-name/te/textlint-rule-alex/package.nix b/pkgs/by-name/te/textlint-rule-alex/package.nix
new file mode 100644
index 0000000000000..343cd6da82179
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-alex/package.nix
@@ -0,0 +1,34 @@
+{
+  lib,
+  fetchFromGitHub,
+  buildNpmPackage,
+  textlint,
+  textlint-rule-alex,
+}:
+
+buildNpmPackage rec {
+  pname = "textlint-rule-alex";
+  version = "5.0.0";
+
+  src = fetchFromGitHub {
+    owner = "textlint-rule";
+    repo = "textlint-rule-alex";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-1JoiUhiRXZWIyLAJXp5ZzFAa/NBCN79jYh5kMNbO0jI=";
+  };
+
+  npmDepsHash = "sha256-ovDDiOZ415ubyDqbLNggzoVuqUWsRlG3zlhRW6xU3SQ=";
+
+  passthru.tests = textlint.testPackages {
+    rule = textlint-rule-alex;
+    testFile = ./test.md;
+  };
+
+  meta = {
+    description = "Textlint rule for alex";
+    homepage = "https://github.com/textlint-rule/textlint-rule-alex";
+    changelog = "https://github.com/textlint-rule/textlint-rule-alex/releases/tag/${src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+  };
+}
diff --git a/pkgs/by-name/te/textlint-rule-alex/test.md b/pkgs/by-name/te/textlint-rule-alex/test.md
new file mode 100644
index 0000000000000..1e9915c7abde8
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-alex/test.md
@@ -0,0 +1 @@
+A message for this sentence will pop up.
diff --git a/pkgs/by-name/te/textlint-rule-common-misspellings/package.nix b/pkgs/by-name/te/textlint-rule-common-misspellings/package.nix
new file mode 100644
index 0000000000000..ad17e2a91092e
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-common-misspellings/package.nix
@@ -0,0 +1,135 @@
+{
+  lib,
+  stdenvNoCC,
+  fetchurl,
+  fetchFromGitHub,
+  fetchYarnDeps,
+  fixup-yarn-lock,
+  nodejs,
+  yarn,
+  textlint,
+  textlint-rule-common-misspellings,
+}:
+
+# there is no lock file in this package, but it is old and stable enough
+# so that we handle dependencies manually
+let
+  misspellings = stdenvNoCC.mkDerivation (finalAttrs: {
+    pname = "misspellings";
+    version = "1.1.0";
+
+    src = fetchurl {
+      url = "https://registry.npmjs.org/misspellings/-/misspellings-${finalAttrs.version}.tgz";
+      hash = "sha256-+4QxmGjoF0mBldN4XQMvoK8YDS4PBV9/c+/BPf4FbkM=";
+    };
+
+    dontBuild = true;
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out/lib/node_modules/misspellings
+      cp -r . $out/lib/node_modules/misspellings/
+
+      runHook postInstall
+    '';
+  });
+
+  textlint-rule-helper = stdenvNoCC.mkDerivation (finalAttrs: {
+    pname = "textlint-rule-helper";
+    version = "2.3.1";
+
+    src = fetchFromGitHub {
+      owner = "textlint";
+      repo = "textlint-rule-helper";
+      rev = "refs/tags/v${finalAttrs.version}";
+      hash = "sha256-SVeL/3KC/yazSGsmn5We8fJAuVqfcspzN7i2a4+EOlI=";
+    };
+
+    offlineCache = fetchYarnDeps {
+      yarnLock = "${finalAttrs.src}/yarn.lock";
+      hash = "sha256-UN56VuUHl7aS+QLON8ZROTSCGKKCn/8xuIkR46LyY+U=";
+    };
+
+    nativeBuildInputs = [
+      fixup-yarn-lock
+      nodejs
+      yarn
+    ];
+
+    configurePhase = ''
+      runHook preConfigure
+
+      export HOME=$(mktemp -d)
+      yarn config --offline set yarn-offline-mirror "$offlineCache"
+      fixup-yarn-lock yarn.lock
+      yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+      patchShebangs node_modules
+
+      runHook postConfigure
+    '';
+
+    buildPhase = ''
+      runHook preBuild
+
+      yarn --offline build
+
+      runHook postBuild
+    '';
+
+    installPhase = ''
+      runHook preInstall
+
+      yarn --offline --production install
+      rm -r test
+      mkdir -p $out/lib/node_modules/textlint-rule-helper
+      cp -r . $out/lib/node_modules/textlint-rule-helper/
+
+      runHook postInstall
+    '';
+  });
+in
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "textlint-rule-common-misspellings";
+  version = "1.0.1";
+
+  src = fetchurl {
+    url = "https://registry.npmjs.org/textlint-rule-common-misspellings/-/textlint-rule-common-misspellings-${finalAttrs.version}.tgz";
+    hash = "sha256-5QVb5T2yGuunNhRQG5brJQyicRRbO8XewzjO2RzN0bI=";
+  };
+
+  dontBuild = true;
+
+  buildInputs = [
+    misspellings
+    textlint-rule-helper
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/lib/node_modules/textlint-rule-common-misspellings/node_modules/textlint-rule-helper
+    cp -r ${misspellings}/lib/node_modules/misspellings $out/lib/node_modules/textlint-rule-common-misspellings/node_modules/misspellings
+    cp -r ${textlint-rule-helper}/lib/node_modules/textlint-rule-helper/node_modules/* $out/lib/node_modules/textlint-rule-common-misspellings/node_modules
+    cp -r ${textlint-rule-helper}/lib/node_modules/textlint-rule-helper/lib $out/lib/node_modules/textlint-rule-common-misspellings/node_modules/textlint-rule-helper/lib
+    cp -r ${textlint-rule-helper}/lib/node_modules/textlint-rule-helper/package.json $out/lib/node_modules/textlint-rule-common-misspellings/node_modules/textlint-rule-helper/package.json
+
+    cp -r . $out/lib/node_modules/textlint-rule-common-misspellings/
+
+    runHook postInstall
+  '';
+
+  passthru.tests = textlint.testPackages {
+    rule = textlint-rule-common-misspellings;
+    testFile = ./test.md;
+  };
+
+  meta = {
+    description = "Textlint rule to check common misspellings";
+    homepage = "https://github.com/io-monad/textlint-rule-common-misspellings";
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ natsukium ];
+    mainProgram = "textlint-rule-common-misspellings";
+    platforms = textlint.meta.platforms;
+  };
+})
diff --git a/pkgs/by-name/te/textlint-rule-common-misspellings/test.md b/pkgs/by-name/te/textlint-rule-common-misspellings/test.md
new file mode 100644
index 0000000000000..b0e84d77f2bdc
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-common-misspellings/test.md
@@ -0,0 +1 @@
+`textlint-rule-common-misspellings` is an old and mature libary.
diff --git a/pkgs/by-name/te/textlint-rule-diacritics/package.nix b/pkgs/by-name/te/textlint-rule-diacritics/package.nix
new file mode 100644
index 0000000000000..95c11c40c30ce
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-diacritics/package.nix
@@ -0,0 +1,36 @@
+{
+  lib,
+  fetchFromGitHub,
+  buildNpmPackage,
+  textlint,
+  textlint-rule-diacritics,
+}:
+
+buildNpmPackage rec {
+  pname = "textlint-rule-diacritics";
+  version = "1.0.0-unstable-2023-01-05";
+
+  src = fetchFromGitHub {
+    owner = "sapegin";
+    repo = "textlint-rule-diacritics";
+    rev = "07977d866aa6ce514bc6ed3a1087b2bb5869bfb4";
+    hash = "sha256-Zr+qWvgpLq3pzO4A7c+x4rTKkaSNO4t1gCiyJL3lkws=";
+  };
+
+  npmDepsHash = "sha256-bKA8aPVBYdzRPwCyFdEs3eWStJwswCZPVpsqGWwc42E=";
+
+  dontNpmBuild = true;
+
+  passthru.tests = textlint.testPackages {
+    rule = textlint-rule-diacritics;
+    testFile = ./test.md;
+  };
+
+  meta = {
+    description = "Textlint rule to check correct usage of diacritics";
+    homepage = "https://github.com/sapegin/textlint-rule-diacritics?tab=readme-ov-file";
+    changelog = "https://github.com/sapegin/textlint-rule-diacritics/releases/tag/${src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+  };
+}
diff --git a/pkgs/by-name/te/textlint-rule-diacritics/test.md b/pkgs/by-name/te/textlint-rule-diacritics/test.md
new file mode 100644
index 0000000000000..84e58d5457415
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-diacritics/test.md
@@ -0,0 +1 @@
+creme brulee
diff --git a/pkgs/by-name/te/textlint-rule-en-max-word-count/package.nix b/pkgs/by-name/te/textlint-rule-en-max-word-count/package.nix
new file mode 100644
index 0000000000000..893ed385dabb2
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-en-max-word-count/package.nix
@@ -0,0 +1,79 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fetchYarnDeps,
+  fixup-yarn-lock,
+  nodejs,
+  yarn,
+  textlint,
+  textlint-rule-en-max-word-count,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "textlint-rule-en-max-word-count";
+  version = "2.0.1";
+
+  src = fetchFromGitHub {
+    owner = "textlint-rule";
+    repo = "textlint-rule-en-max-word-count";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-ZZWN0PVHQBHcvJ53jDtD/6wLxBYmSHO7OXb5UQQAmyc=";
+  };
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${finalAttrs.src}/yarn.lock";
+    hash = "sha256-3sEbvIfSaMz9pJalEKs7y05OVh+cKDg9jfLYmVyS53M=";
+  };
+
+  nativeBuildInputs = [
+    fixup-yarn-lock
+    nodejs
+    yarn
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    yarn config --offline set yarn-offline-mirror "$offlineCache"
+    fixup-yarn-lock yarn.lock
+    yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+    patchShebangs node_modules
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    yarn --offline build
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    yarn --offline --production install
+    rm -r test
+    mkdir -p $out/lib/node_modules/textlint-rule-en-max-word-count
+    cp -r . $out/lib/node_modules/textlint-rule-en-max-word-count/
+
+    runHook postInstall
+  '';
+
+  passthru.tests = textlint.testPackages {
+    rule = textlint-rule-en-max-word-count;
+    testFile = ./test.md;
+  };
+
+  meta = {
+    description = "Textlint rule that specify the maximum word count of a sentence";
+    homepage = "https://github.com/textlint-rule/textlint-rule-en-max-word-count";
+    changelog = "https://github.com/textlint-rule/textlint-rule-en-max-word-count/releases/tag/${finalAttrs.src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+    platforms = textlint.meta.platforms;
+  };
+})
diff --git a/pkgs/by-name/te/textlint-rule-en-max-word-count/test.md b/pkgs/by-name/te/textlint-rule-en-max-word-count/test.md
new file mode 100644
index 0000000000000..717096b6f3335
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-en-max-word-count/test.md
@@ -0,0 +1 @@
+Nix is a tool that takes a unique approach to package management and system configuration, learn how to make reproducible declarative and reliable systems, Nix builds packages in isolation from each other, this ensures that they are reproducible and don’t have undeclared dependencies, so if a package works on one machine, it will also work on another.
diff --git a/pkgs/by-name/te/textlint-rule-max-comma/package.nix b/pkgs/by-name/te/textlint-rule-max-comma/package.nix
new file mode 100644
index 0000000000000..5afea41bd8c76
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-max-comma/package.nix
@@ -0,0 +1,79 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fetchYarnDeps,
+  fixup-yarn-lock,
+  nodejs,
+  yarn,
+  textlint,
+  textlint-rule-max-comma,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "textlint-rule-max-comma";
+  version = "4.0.0";
+
+  src = fetchFromGitHub {
+    owner = "textlint-rule";
+    repo = "textlint-rule-max-comma";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-Sf7ehhEOcy1HdgnIra8darkucF6RebQQV/NfJtft/DA=";
+  };
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${finalAttrs.src}/yarn.lock";
+    hash = "sha256-jSsVQhvmc5mJ1gh6I5UaLvdz+HpaXI0fXFX0KCh01/c=";
+  };
+
+  nativeBuildInputs = [
+    fixup-yarn-lock
+    nodejs
+    yarn
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    yarn config --offline set yarn-offline-mirror "$offlineCache"
+    fixup-yarn-lock yarn.lock
+    yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+    patchShebangs node_modules
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    yarn --offline build
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    yarn --offline --production install
+    rm -r test
+    mkdir -p $out/lib/node_modules/textlint-rule-max-comma
+    cp -r . $out/lib/node_modules/textlint-rule-max-comma/
+
+    runHook postInstall
+  '';
+
+  passthru.tests = textlint.testPackages {
+    rule = textlint-rule-max-comma;
+    testFile = ./test.md;
+  };
+
+  meta = {
+    description = "Textlint rule is that limit maximum comma(,) count of sentence";
+    homepage = "https://github.com/textlint-rule/textlint-rule-max-comma";
+    changelog = "https://github.com/textlint-rule/textlint-rule-max-comma/releases/tag/${finalAttrs.src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+    platforms = textlint.meta.platforms;
+  };
+})
diff --git a/pkgs/by-name/te/textlint-rule-max-comma/test.md b/pkgs/by-name/te/textlint-rule-max-comma/test.md
new file mode 100644
index 0000000000000..9223245ad977f
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-max-comma/test.md
@@ -0,0 +1 @@
+Nix, is a tool, that takes a unique approach to package management and system configuration, Learn how to make reproducible, declarative, and reliable systems.
diff --git a/pkgs/by-name/te/textlint-rule-no-start-duplicated-conjunction/package.nix b/pkgs/by-name/te/textlint-rule-no-start-duplicated-conjunction/package.nix
new file mode 100644
index 0000000000000..1390e9ac54b12
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-no-start-duplicated-conjunction/package.nix
@@ -0,0 +1,79 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fetchYarnDeps,
+  fixup-yarn-lock,
+  nodejs,
+  yarn,
+  textlint,
+  textlint-rule-no-start-duplicated-conjunction,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "textlint-rule-no-start-duplicated-conjunction";
+  version = "2.0.2";
+
+  src = fetchFromGitHub {
+    owner = "textlint-rule";
+    repo = "textlint-rule-no-start-duplicated-conjunction";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-DtuCkHy440j2VI/JDJGrW2M8alQ8pxllfIZfB4+9z3U=";
+  };
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${finalAttrs.src}/yarn.lock";
+    hash = "sha256-+3SJQgOG5bYSmNWbxsFNEEtKtCg8V04MIk6FhHwOZMo=";
+  };
+
+  nativeBuildInputs = [
+    fixup-yarn-lock
+    nodejs
+    yarn
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    yarn config --offline set yarn-offline-mirror "$offlineCache"
+    fixup-yarn-lock yarn.lock
+    yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+    patchShebangs node_modules
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    yarn --offline build
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    yarn --offline --production install
+    rm -r test
+    mkdir -p $out/lib/node_modules/textlint-rule-no-start-duplicated-conjunction
+    cp -r . $out/lib/node_modules/textlint-rule-no-start-duplicated-conjunction/
+
+    runHook postInstall
+  '';
+
+  passthru.tests = textlint.testPackages {
+    rule = textlint-rule-no-start-duplicated-conjunction;
+    testFile = ./test.md;
+  };
+
+  meta = {
+    description = "Textlint rule that check no start with duplicated conjunction";
+    homepage = "https://github.com/textlint-rule/textlint-rule-no-start-duplicated-conjunction";
+    changelog = "https://github.com/textlint-rule/textlint-rule-no-start-duplicated-conjunction/releases/tag/${finalAttrs.src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+    platforms = textlint.meta.platforms;
+  };
+})
diff --git a/pkgs/by-name/te/textlint-rule-no-start-duplicated-conjunction/test.md b/pkgs/by-name/te/textlint-rule-no-start-duplicated-conjunction/test.md
new file mode 100644
index 0000000000000..41c8f499942e2
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-no-start-duplicated-conjunction/test.md
@@ -0,0 +1,3 @@
+But, A is ~.
+So, A is ~.
+But, A is ~.
diff --git a/pkgs/by-name/te/textlint-rule-period-in-list-item/package.nix b/pkgs/by-name/te/textlint-rule-period-in-list-item/package.nix
new file mode 100644
index 0000000000000..22397ccc42ff3
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-period-in-list-item/package.nix
@@ -0,0 +1,79 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fetchYarnDeps,
+  fixup-yarn-lock,
+  nodejs,
+  yarn,
+  textlint,
+  textlint-rule-period-in-list-item,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "textlint-rule-period-in-list-item";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "textlint-rule";
+    repo = "textlint-rule-period-in-list-item";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-hAkueH5q5s0kmvKZiOrCxtfmoHtHH0U8cVLhQ7eoqT0=";
+  };
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${finalAttrs.src}/yarn.lock";
+    hash = "sha256-4tVTR/Wpcr/nJrBhqV3AowwcUiFNiuohyKn6yQvorvc=";
+  };
+
+  nativeBuildInputs = [
+    fixup-yarn-lock
+    nodejs
+    yarn
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    yarn config --offline set yarn-offline-mirror "$offlineCache"
+    fixup-yarn-lock yarn.lock
+    yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+    patchShebangs node_modules
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    yarn --offline build
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    yarn --offline --production install
+    rm -r test
+    mkdir -p $out/lib/node_modules/textlint-rule-period-in-list-item
+    cp -r . $out/lib/node_modules/textlint-rule-period-in-list-item/
+
+    runHook postInstall
+  '';
+
+  passthru.tests = textlint.testPackages {
+    rule = textlint-rule-period-in-list-item;
+    testFile = ./test.md;
+  };
+
+  meta = {
+    description = "Textlint rule that check with or without period in list item";
+    homepage = "https://github.com/textlint-rule/textlint-rule-period-in-list-item";
+    changelog = "https://github.com/textlint-rule/textlint-rule-period-in-list-item/releases/tag/${finalAttrs.src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+    platforms = textlint.meta.platforms;
+  };
+})
diff --git a/pkgs/by-name/te/textlint-rule-period-in-list-item/test.md b/pkgs/by-name/te/textlint-rule-period-in-list-item/test.md
new file mode 100644
index 0000000000000..69e2e71328746
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-period-in-list-item/test.md
@@ -0,0 +1 @@
+- item.
diff --git a/pkgs/by-name/te/textlint-rule-preset-ja-technical-writing/package.nix b/pkgs/by-name/te/textlint-rule-preset-ja-technical-writing/package.nix
new file mode 100644
index 0000000000000..2123a088feb63
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-preset-ja-technical-writing/package.nix
@@ -0,0 +1,72 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fetchYarnDeps,
+  fixup-yarn-lock,
+  nodejs,
+  yarn,
+  textlint,
+  textlint-rule-preset-ja-technical-writing,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "textlint-rule-preset-ja-technical-writing";
+  version = "10.0.1";
+
+  src = fetchFromGitHub {
+    owner = "textlint-ja";
+    repo = "textlint-rule-preset-ja-technical-writing";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-8KoP/JagMf2kFxz8hr9e0hJH7yPukRURb48v0nPkC/8=";
+  };
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${finalAttrs.src}/yarn.lock";
+    hash = "sha256-jm+8XK1E60D1AgYBnlKL0fkAWnn68z2PhCK7T/XbUgk=";
+  };
+
+  nativeBuildInputs = [
+    nodejs
+    fixup-yarn-lock
+    yarn
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    yarn config --offline set yarn-offline-mirror "$offlineCache"
+    fixup-yarn-lock yarn.lock
+    yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+    patchShebangs node_modules
+
+    runHook postConfigure
+  '';
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    yarn --offline --production install
+    mkdir -p $out/lib/node_modules/textlint-rule-preset-ja-technical-writing
+    cp -r . $out/lib/node_modules/textlint-rule-preset-ja-technical-writing
+
+    runHook postInstall
+  '';
+
+  passthru.tests = textlint.testPackages {
+    rule = textlint-rule-preset-ja-technical-writing;
+    testFile = ./test.md;
+  };
+
+  meta = {
+    description = "技術文書向けのtextlintルールプリセット";
+    homepage = "https://github.com/textlint-ja/textlint-rule-preset-ja-technical-writing";
+    changelog = "https://github.com/textlint-ja/textlint-rule-preset-ja-technical-writing/blob/${finalAttrs.src.rev}/CHANGELOG.md";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+    platforms = textlint.meta.platforms;
+  };
+})
diff --git a/pkgs/by-name/te/textlint-rule-preset-ja-technical-writing/test.md b/pkgs/by-name/te/textlint-rule-preset-ja-technical-writing/test.md
new file mode 100644
index 0000000000000..880cf56c5dd2d
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-preset-ja-technical-writing/test.md
@@ -0,0 +1 @@
+ニックスはいいぞ
diff --git a/pkgs/by-name/te/textlint-rule-stop-words/package.nix b/pkgs/by-name/te/textlint-rule-stop-words/package.nix
new file mode 100644
index 0000000000000..f2fa8ca901cc2
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-stop-words/package.nix
@@ -0,0 +1,36 @@
+{
+  lib,
+  fetchFromGitHub,
+  buildNpmPackage,
+  textlint,
+  textlint-rule-stop-words,
+}:
+
+buildNpmPackage rec {
+  pname = "textlint-rule-stop-words";
+  version = "5.0.0";
+
+  src = fetchFromGitHub {
+    owner = "sapegin";
+    repo = "textlint-rule-stop-words";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-e9jTbDULOs0DwtT9UZp7k5+RR5Ab/x/sizIvs1MrmZs=";
+  };
+
+  npmDepsHash = "sha256-t9PPHFIiY4vw0ocw6nMuaeYuYWxbc1Pzo0R6bqIsHeI=";
+
+  dontNpmBuild = true;
+
+  passthru.tests = textlint.testPackages {
+    rule = textlint-rule-stop-words;
+    testFile = ./test.md;
+  };
+
+  meta = {
+    description = "Textlint rule to find filler words, buzzwords and clichés";
+    homepage = "https://github.com/sapegin/textlint-rule-stop-words";
+    changelog = "https://github.com/sapegin/textlint-rule-stop-words/releases/tag/${src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+  };
+}
diff --git a/pkgs/by-name/te/textlint-rule-stop-words/test.md b/pkgs/by-name/te/textlint-rule-stop-words/test.md
new file mode 100644
index 0000000000000..7cd8fc64f6259
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-stop-words/test.md
@@ -0,0 +1 @@
+and etc.
diff --git a/pkgs/by-name/te/textlint-rule-terminology/package.nix b/pkgs/by-name/te/textlint-rule-terminology/package.nix
new file mode 100644
index 0000000000000..ac6ab2dd8ff06
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-terminology/package.nix
@@ -0,0 +1,36 @@
+{
+  lib,
+  fetchFromGitHub,
+  buildNpmPackage,
+  textlint,
+  textlint-rule-terminology,
+}:
+
+buildNpmPackage rec {
+  pname = "textlint-rule-terminology";
+  version = "5.0.0";
+
+  src = fetchFromGitHub {
+    owner = "sapegin";
+    repo = "textlint-rule-terminology";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-/NuKZSugizP4b2LFNqPrTvoXNE4D1sytU2B7T40ZASQ=";
+  };
+
+  npmDepsHash = "sha256-FQr7E6ZSJxj/ide+3JJwc27x15L1bAIAlPnMl8hdQ8w=";
+
+  dontNpmBuild = true;
+
+  passthru.tests = textlint.testPackages {
+    rule = textlint-rule-terminology;
+    testFile = ./test.md;
+  };
+
+  meta = {
+    description = "Textlint rule to check correct terms spelling";
+    homepage = "https://github.com/sapegin/textlint-rule-terminology";
+    changelog = "https://github.com/sapegin/textlint-rule-terminology/releases/tag/${src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+  };
+}
diff --git a/pkgs/by-name/te/textlint-rule-terminology/test.md b/pkgs/by-name/te/textlint-rule-terminology/test.md
new file mode 100644
index 0000000000000..7c64883b9352d
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-terminology/test.md
@@ -0,0 +1 @@
+Javascript
diff --git a/pkgs/by-name/te/textlint-rule-unexpanded-acronym/package.nix b/pkgs/by-name/te/textlint-rule-unexpanded-acronym/package.nix
new file mode 100644
index 0000000000000..a0a7cc87bff04
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-unexpanded-acronym/package.nix
@@ -0,0 +1,79 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fetchYarnDeps,
+  fixup-yarn-lock,
+  nodejs,
+  yarn,
+  textlint,
+  textlint-rule-unexpanded-acronym,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "textlint-rule-unexpanded-acronym";
+  version = "1.2.4";
+
+  src = fetchFromGitHub {
+    owner = "textlint-rule";
+    repo = "textlint-rule-unexpanded-acronym";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-oUOofYfdENRQnwmBDADQgA1uGtRirqqGg8T+QA0LCXY=";
+  };
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${finalAttrs.src}/yarn.lock";
+    hash = "sha256-90ZONfn7CnrCsYGliF+c7Ss+SgVmaCYnaVdq3s1HdJU=";
+  };
+
+  nativeBuildInputs = [
+    fixup-yarn-lock
+    nodejs
+    yarn
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    yarn config --offline set yarn-offline-mirror "$offlineCache"
+    fixup-yarn-lock yarn.lock
+    yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+    patchShebangs node_modules
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    yarn --offline build
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    yarn --offline --production install
+    rm -r test
+    mkdir -p $out/lib/node_modules/textlint-rule-unexpanded-acronym
+    cp -r . $out/lib/node_modules/textlint-rule-unexpanded-acronym/
+
+    runHook postInstall
+  '';
+
+  passthru.tests = textlint.testPackages {
+    rule = textlint-rule-unexpanded-acronym;
+    testFile = ./test.md;
+  };
+
+  meta = {
+    description = "Textlint rule that check unexpanded acronym";
+    homepage = "https://github.com/textlint-rule/textlint-rule-unexpanded-acronym";
+    changelog = "https://github.com/textlint-rule/textlint-rule-unexpanded-acronym/releases/tag/${finalAttrs.src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+    platforms = textlint.meta.platforms;
+  };
+})
diff --git a/pkgs/by-name/te/textlint-rule-unexpanded-acronym/test.md b/pkgs/by-name/te/textlint-rule-unexpanded-acronym/test.md
new file mode 100644
index 0000000000000..06b7ca62cea5e
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-unexpanded-acronym/test.md
@@ -0,0 +1 @@
+Passing an expression `expr` that evaluates to a store path to any built-in function which reads from the filesystem constitutes IFD.
diff --git a/pkgs/by-name/te/textlint-rule-write-good/package.nix b/pkgs/by-name/te/textlint-rule-write-good/package.nix
new file mode 100644
index 0000000000000..feec3ced6ea9f
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-write-good/package.nix
@@ -0,0 +1,79 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fetchYarnDeps,
+  fixup-yarn-lock,
+  nodejs,
+  yarn,
+  textlint,
+  textlint-rule-write-good,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "textlint-rule-write-good";
+  version = "2.0.0-unstable-2024-05-02";
+
+  src = fetchFromGitHub {
+    owner = "textlint-rule";
+    repo = "textlint-rule-write-good";
+    rev = "586afa0989ae9ac8a93436f58a24d99afe1cac21";
+    hash = "sha256-ghEmWkwGVvLMy6Gf7IrariDRNfuNBc9EVOQz5w38g0I=";
+  };
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${finalAttrs.src}/yarn.lock";
+    hash = "sha256-J02MoKPEYtehQMSaOR1Ytfme1ffgHbQcNnEENeTaxaA=";
+  };
+
+  nativeBuildInputs = [
+    fixup-yarn-lock
+    nodejs
+    yarn
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    yarn config --offline set yarn-offline-mirror "$offlineCache"
+    fixup-yarn-lock yarn.lock
+    yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+    patchShebangs node_modules
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    yarn --offline build
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    yarn --offline --production install
+    rm -r test
+    mkdir -p $out/lib/node_modules/textlint-rule-write-good
+    cp -r . $out/lib/node_modules/textlint-rule-write-good/
+
+    runHook postInstall
+  '';
+
+  passthru.tests = textlint.testPackages {
+    rule = textlint-rule-write-good;
+    testFile = ./test.md;
+  };
+
+  meta = {
+    description = "Textlint rule to check your English styles with write-good";
+    homepage = "https://github.com/textlint-rule/textlint-rule-write-good";
+    changelog = "https://github.com/textlint-rule/textlint-rule-write-good/releases/tag/${finalAttrs.src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+    platforms = textlint.meta.platforms;
+  };
+})
diff --git a/pkgs/by-name/te/textlint-rule-write-good/test.md b/pkgs/by-name/te/textlint-rule-write-good/test.md
new file mode 100644
index 0000000000000..6615a6f67a8fe
--- /dev/null
+++ b/pkgs/by-name/te/textlint-rule-write-good/test.md
@@ -0,0 +1 @@
+So the cat was stolen.
diff --git a/pkgs/by-name/te/textlint/package.nix b/pkgs/by-name/te/textlint/package.nix
new file mode 100644
index 0000000000000..8fea962d8e720
--- /dev/null
+++ b/pkgs/by-name/te/textlint/package.nix
@@ -0,0 +1,136 @@
+{
+  lib,
+  buildNpmPackage,
+  fetchFromGitHub,
+  autoconf,
+  automake,
+  makeWrapper,
+  runCommand,
+  textlint,
+  textlint-plugin-latex2e,
+  textlint-rule-abbr-within-parentheses,
+  textlint-rule-alex,
+  textlint-rule-common-misspellings,
+  textlint-rule-diacritics,
+  textlint-rule-en-max-word-count,
+  textlint-rule-max-comma,
+  textlint-rule-no-start-duplicated-conjunction,
+  textlint-rule-period-in-list-item,
+  textlint-rule-preset-ja-technical-writing,
+  textlint-rule-stop-words,
+  textlint-rule-terminology,
+  textlint-rule-unexpanded-acronym,
+  textlint-rule-write-good,
+}:
+
+buildNpmPackage rec {
+  pname = "textlint";
+  version = "14.0.4";
+
+  src = fetchFromGitHub {
+    owner = "textlint";
+    repo = "textlint";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-u8BRzfvpZ8xggJwH8lsu+hqsql6s4SZVlkFzLBe6zvE=";
+  };
+
+  patches = [
+    # this package uses lerna and requires building many workspaces.
+    # this patch removes unnecessary workspaces,
+    # reducing package size and build time.
+    ./remove-workspaces.patch
+  ];
+
+  npmDepsHash = "sha256-rmRtCP51rt/wd/ef0iwMMI6eCGF1KNN7kJqomitMJ+w=";
+
+  nativeBuildInputs = [
+    autoconf
+    automake
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{bin,lib}
+
+    npm prune --omit=dev --no-save
+    rm -r node_modules/.cache
+    rm -r packages/textlint-{scripts,tester}
+    rm -r packages/@textlint/*/test
+
+    cp -r node_modules $out/lib
+    cp -r packages $out/lib
+    ln -s $out/lib/node_modules/textlint/bin/textlint.js $out/bin/textlint
+
+    runHook postInstall
+  '';
+
+  passthru = {
+    withPackages =
+      ps:
+      runCommand "textlint-with-packages" { nativeBuildInputs = [ makeWrapper ]; } ''
+        makeWrapper ${textlint}/bin/textlint $out/bin/textlint \
+          --set NODE_PATH ${lib.makeSearchPath "lib/node_modules" ps}
+      '';
+
+    testPackages =
+      {
+        rule,
+        testFile,
+        pname ? rule.pname,
+        plugin ? null,
+      }:
+      let
+        ruleName = lib.removePrefix "textlint-rule-" rule.pname;
+        isPreset = lib.hasPrefix "preset-" ruleName;
+        ruleName' = lib.removePrefix "preset-" ruleName;
+        pluginName = lib.removePrefix "textlint-plugin-" plugin.pname;
+        args =
+          "${testFile} ${if isPreset then "--preset" else "--rule"} ${ruleName'}"
+          + lib.optionalString (plugin != null) " --plugin ${pluginName}";
+      in
+      {
+        "${pname}-test" =
+          runCommand "${pname}-test"
+            {
+              nativeBuildInputs = [
+                (textlint.withPackages [
+                  rule
+                  plugin
+                ])
+              ];
+            }
+            ''
+              grep ${ruleName'} <(textlint ${args}) > $out
+            '';
+      };
+
+    tests = lib.mergeAttrsList (
+      map (package: package.tests) [
+        textlint-plugin-latex2e
+        textlint-rule-abbr-within-parentheses
+        textlint-rule-alex
+        textlint-rule-common-misspellings
+        textlint-rule-diacritics
+        textlint-rule-en-max-word-count
+        textlint-rule-max-comma
+        textlint-rule-no-start-duplicated-conjunction
+        textlint-rule-period-in-list-item
+        textlint-rule-preset-ja-technical-writing
+        textlint-rule-stop-words
+        textlint-rule-terminology
+        textlint-rule-unexpanded-acronym
+        textlint-rule-write-good
+      ]
+    );
+  };
+
+  meta = {
+    description = "The pluggable natural language linter for text and markdown";
+    homepage = "https://github.com/textlint/textlint";
+    changelog = "https://github.com/textlint/textlint/blob/${src.rev}/CHANGELOG.md";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+    mainProgram = "textlint";
+  };
+}
diff --git a/pkgs/by-name/te/textlint/remove-workspaces.patch b/pkgs/by-name/te/textlint/remove-workspaces.patch
new file mode 100644
index 0000000000000..3e949e7906dee
--- /dev/null
+++ b/pkgs/by-name/te/textlint/remove-workspaces.patch
@@ -0,0 +1,19 @@
+diff --git a/package.json b/package.json
+index 9dd7fdc6..c5e74f88 100644
+--- a/package.json
++++ b/package.json
+@@ -56,12 +56,8 @@
+     "trailingComma": "none"
+   },
+   "workspaces": [
+-    "packages/*",
+-    "examples/*",
+-    "packages/@textlint/*",
+-    "packages/textlint-scripts/examples/*",
+-    "test/*",
+-    "website"
++    "packages/textlint",
++    "packages/@textlint/*"
+   ],
+   "packageManager": "npm@9.9.2"
+ }
diff --git a/pkgs/by-name/ti/tinymist/Cargo.lock b/pkgs/by-name/ti/tinymist/Cargo.lock
index ee6705a0f5119..917c5358bf463 100644
--- a/pkgs/by-name/ti/tinymist/Cargo.lock
+++ b/pkgs/by-name/ti/tinymist/Cargo.lock
@@ -3743,7 +3743,7 @@ dependencies = [
 
 [[package]]
 name = "tests"
-version = "0.11.9"
+version = "0.11.10"
 dependencies = [
  "insta",
  "lsp-server",
@@ -3840,7 +3840,7 @@ dependencies = [
 
 [[package]]
 name = "tinymist"
-version = "0.11.9"
+version = "0.11.10"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -3891,7 +3891,7 @@ dependencies = [
 
 [[package]]
 name = "tinymist-query"
-version = "0.11.9"
+version = "0.11.10"
 dependencies = [
  "anyhow",
  "biblatex",
@@ -3935,7 +3935,7 @@ dependencies = [
 
 [[package]]
 name = "tinymist-render"
-version = "0.11.9"
+version = "0.11.10"
 dependencies = [
  "base64 0.22.1",
  "log",
@@ -4530,9 +4530,9 @@ dependencies = [
 
 [[package]]
 name = "typstyle"
-version = "0.11.21"
+version = "0.11.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af9697d141856bfe6c865c9ef74d04c62dd6cd1b3b63c1e284b96974871a2fc7"
+checksum = "bb15ec2ba1f804eab4f8f2ae1bbbe8a7d2f882bb8acabaee0b101de46ee28c56"
 dependencies = [
  "anyhow",
  "clap",
diff --git a/pkgs/by-name/ti/tinymist/package.nix b/pkgs/by-name/ti/tinymist/package.nix
index a9b79e071459b..702ac9abbe8c9 100644
--- a/pkgs/by-name/ti/tinymist/package.nix
+++ b/pkgs/by-name/ti/tinymist/package.nix
@@ -13,13 +13,13 @@ rustPlatform.buildRustPackage rec {
   pname = "tinymist";
   # Please update the corresponding vscode extension when updating
   # this derivation.
-  version = "0.11.9";
+  version = "0.11.10";
 
   src = fetchFromGitHub {
     owner = "Myriad-Dreamin";
     repo = "tinymist";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Oa88WBkV9q17KNJuc/sGSQS39yVyqme66SfB0ZZw7b8=";
+    hash = "sha256-lmT0da517dVaXGeObyCXZyte8DNBh+/vaqV7hA+SJR4=";
   };
 
   cargoLock = {
@@ -50,12 +50,12 @@ rustPlatform.buildRustPackage rec {
     "--skip=e2e"
   ];
 
-  meta = with lib; {
+  meta = {
     changelog = "https://github.com/Myriad-Dreamin/tinymist/blob/${src.rev}/CHANGELOG.md";
     description = "Tinymist is an integrated language service for Typst";
     homepage = "https://github.com/Myriad-Dreamin/tinymist";
-    license = licenses.asl20;
+    license = lib.licenses.asl20;
     mainProgram = "tinymist";
-    maintainers = with maintainers; [ lampros ];
+    maintainers = with lib.maintainers; [ lampros ];
   };
 }
diff --git a/pkgs/by-name/tp/tpnote/package.nix b/pkgs/by-name/tp/tpnote/package.nix
index eec1f68f5f442..267b9766abdb8 100644
--- a/pkgs/by-name/tp/tpnote/package.nix
+++ b/pkgs/by-name/tp/tpnote/package.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , rustPlatform
 , cmake
 , pkg-config
diff --git a/pkgs/by-name/tr/tracexec/package.nix b/pkgs/by-name/tr/tracexec/package.nix
index c64094e852237..04c0e82e04f75 100644
--- a/pkgs/by-name/tr/tracexec/package.nix
+++ b/pkgs/by-name/tr/tracexec/package.nix
@@ -8,7 +8,7 @@
 }:
 let
   pname = "tracexec";
-  version = "0.2.2";
+  version = "0.3.1";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -17,10 +17,10 @@ rustPlatform.buildRustPackage {
     owner = "kxxt";
     repo = "tracexec";
     rev = "refs/tags/v${version}";
-    hash = "sha256-X2hLaBndeYLBMnDe2MT4pgZiPj0COHG2uTvAbW+JVd4=";
+    hash = "sha256-w43wYHyKrrBhph1Of07YAdcoAB+AMcmRyaiVPQUdZPk=";
   };
 
-  cargoHash = "sha256-3xANOv+A4soDcKMINy+RnI8l6uS3koZpw3CMIUCmK5A=";
+  cargoHash = "sha256-ks+z6jnf1H+j5g1Ml3zjHmlvhtpZxUiORkHHZzDMSuw=";
 
   nativeBuildInputs = [
     cargo-about
diff --git a/pkgs/by-name/tr/trealla/package.nix b/pkgs/by-name/tr/trealla/package.nix
index e125ec2b1583b..d20888a48b1a4 100644
--- a/pkgs/by-name/tr/trealla/package.nix
+++ b/pkgs/by-name/tr/trealla/package.nix
@@ -1,29 +1,35 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, libffi
-, openssl
-, readline
-, valgrind
-, xxd
-, gitUpdater
-, checkLeaks ? false
-, enableFFI ? true
-, enableSSL ? true
-, enableThreads ? true
-, lineEditingLibrary ? "isocline"
+{
+  lib,
+  fetchFromGitHub,
+  libffi,
+  openssl,
+  readline,
+  stdenv,
+  testers,
+  valgrind,
+  xxd,
+  # Boolean flags
+  checkLeaks ? false,
+  enableFFI ? true,
+  enableSSL ? true,
+  enableThreads ? true,
+  # Configurable inputs
+  lineEditingLibrary ? "isocline",
 }:
 
-assert lib.elem lineEditingLibrary [ "isocline" "readline" ];
+assert lib.elem lineEditingLibrary [
+  "isocline"
+  "readline"
+];
 stdenv.mkDerivation (finalAttrs: {
   pname = "trealla";
-  version = "2.34.0";
+  version = "2.52.9";
 
   src = fetchFromGitHub {
     owner = "trealla-prolog";
     repo = "trealla";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-cqIiPeQO/M8MtpHRomN/fzxIq7TgUwZSvL3PFCVsEnY=";
+    hash = "sha256-fehgNWCH/c0wbnlTpydA9K8FPnvSFpcwum1ThngikGY=";
   };
 
   postPatch = ''
@@ -33,9 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
       --replace 'GIT_VERSION :=' 'GIT_VERSION ?='
   '';
 
-  nativeBuildInputs = [
-    xxd
-  ];
+  nativeBuildInputs = [ xxd ];
 
   buildInputs =
     lib.optionals enableFFI [ libffi ]
@@ -46,13 +50,12 @@ stdenv.mkDerivation (finalAttrs: {
 
   strictDeps = true;
 
-  makeFlags = [
-    "GIT_VERSION=\"v${finalAttrs.version}\""
-  ]
-  ++ lib.optionals (lineEditingLibrary == "isocline") [ "ISOCLINE=1" ]
-  ++ lib.optionals (!enableFFI) [ "NOFFI=1" ]
-  ++ lib.optionals (!enableSSL) [ "NOSSL=1" ]
-  ++ lib.optionals enableThreads [ "THREADS=1" ];
+  makeFlags =
+    [ "GIT_VERSION=\"v${finalAttrs.version}\"" ]
+    ++ lib.optionals (lineEditingLibrary == "isocline") [ "ISOCLINE=1" ]
+    ++ lib.optionals (!enableFFI) [ "NOFFI=1" ]
+    ++ lib.optionals (!enableSSL) [ "NOSSL=1" ]
+    ++ lib.optionals enableThreads [ "THREADS=1" ];
 
   enableParallelBuilding = true;
 
@@ -64,12 +67,15 @@ stdenv.mkDerivation (finalAttrs: {
 
   doCheck = !valgrind.meta.broken;
 
-  checkFlags = [
-    "test"
-  ] ++ lib.optionals checkLeaks [ "leaks" ];
+  checkFlags = [ "test" ] ++ lib.optionals checkLeaks [ "leaks" ];
 
-  passthru.updateScript = gitUpdater {
-    rev-prefix = "v";
+  passthru = {
+    tests = {
+      version = testers.testVersion {
+        package = finalAttrs.finalPackage;
+        version = "v${finalAttrs.version}";
+      };
+    };
   };
 
   meta = {
@@ -88,7 +94,10 @@ stdenv.mkDerivation (finalAttrs: {
     '';
     changelog = "https://github.com/trealla-prolog/trealla/releases/tag/v${finalAttrs.version}";
     license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ siraben AndersonTorres ];
+    maintainers = with lib.maintainers; [
+      siraben
+      AndersonTorres
+    ];
     mainProgram = "tpl";
     platforms = lib.platforms.all;
     broken = stdenv.isDarwin && stdenv.isx86_64;
diff --git a/pkgs/by-name/tu/turtle/package.nix b/pkgs/by-name/tu/turtle/package.nix
new file mode 100644
index 0000000000000..2d80802df53ba
--- /dev/null
+++ b/pkgs/by-name/tu/turtle/package.nix
@@ -0,0 +1,78 @@
+{
+  lib,
+  python3Packages,
+  fetchFromGitLab,
+  gobject-introspection,
+  wrapGAppsHook4,
+  libadwaita,
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "turtle";
+  version = "0.8";
+  pyproject = true;
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "philippun1";
+    repo = "turtle";
+    rev = version;
+    hash = "sha256-YacuT5S6WrhSz031XXCQTo++r+DBozrIIXrn9BwmrR0=";
+  };
+
+  postPatch = ''
+    substituteInPlace ./install.py \
+      --replace-fail "/usr" "$out" \
+      --replace-fail "gtk-update-icon-cache" "gtk4-update-icon-cache"
+  '';
+
+  nativeBuildInputs = [
+    gobject-introspection
+    wrapGAppsHook4
+  ];
+
+  buildInputs = [ libadwaita ];
+
+  build-system = with python3Packages; [ setuptools ];
+
+  dependencies = with python3Packages; [
+    pygobject3
+    pygit2
+  ];
+
+  postInstall = ''
+    python ./install.py install
+  '';
+
+  # Avoid wrapping two times
+  dontWrapGApps = true;
+
+  # Make sure we patch other scripts after wrapper is generated
+  # to get $program_PYTHONPATH
+  dontWrapPythonPrograms = true;
+
+  postFixup =
+    ''
+      makeWrapperArgs+=(''${gappsWrapperArgs[@]})
+      wrapPythonPrograms
+    ''
+    # Dialogs are not imported, but executed. The same does
+    # nautilus-python plugins. So we need to patch them as well.
+    + ''
+      for dialog_scripts in $out/lib/python*/site-packages/turtlevcs/dialogs/*.py; do
+        patchPythonScript $dialog_scripts
+      done
+      for nautilus_extensions in $out/share/nautilus-python/extensions/*.py; do
+        patchPythonScript $nautilus_extensions
+      done
+    '';
+
+  meta = {
+    description = "A graphical interface for version control intended to run on gnome and nautilus";
+    homepage = "https://gitlab.gnome.org/philippun1/turtle";
+    license = lib.licenses.gpl3Plus;
+    mainProgram = "turtle_cli";
+    maintainers = with lib.maintainers; [ aleksana ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/pkgs/by-name/ty/typstyle/package.nix b/pkgs/by-name/ty/typstyle/package.nix
index bccbccfba9a7e..f308dc0bff729 100644
--- a/pkgs/by-name/ty/typstyle/package.nix
+++ b/pkgs/by-name/ty/typstyle/package.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "typstyle";
-  version = "0.11.22";
+  version = "0.11.24";
 
   src = fetchFromGitHub {
     owner = "Enter-tainer";
     repo = "typstyle";
-    rev = "v${version}";
-    hash = "sha256-DyYx//KubbRN1zyBoBoL4MRuHZBDngXazC7HiuA+4Sk=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-FLvbY+0TozOWZ+JTX//psNjle5GxcyeZXzMOf4/s1v0=";
   };
 
-  cargoHash = "sha256-+Hd1u9mUJ2SPfx0mOYT2KiDY7+/Q3EjkVyS++jgUtFs=";
+  cargoHash = "sha256-VA2WNheQltgCaWwtpbEAn2qtlA0fTeEbCjvgkjF+nvw=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/by-name/un/undbx/package.nix b/pkgs/by-name/un/undbx/package.nix
index 69db03479e995..269abccdbdf21 100644
--- a/pkgs/by-name/un/undbx/package.nix
+++ b/pkgs/by-name/un/undbx/package.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , autoreconfHook
 }:
 
diff --git a/pkgs/by-name/un/unison-fsmonitor/package.nix b/pkgs/by-name/un/unison-fsmonitor/package.nix
index 6cc8913d3982a..b351071b6d307 100644
--- a/pkgs/by-name/un/unison-fsmonitor/package.nix
+++ b/pkgs/by-name/un/unison-fsmonitor/package.nix
@@ -7,15 +7,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "unison-fsmonitor";
-  version = "0.3.3";
+  version = "0.3.4";
 
   src = fetchFromGitHub {
     owner = "autozimu";
     repo = "unison-fsmonitor";
     rev = "v${version}";
-    hash = "sha256-JA0WcHHDNuQOal/Zy3yDb+O3acZN3rVX1hh0rOtRR+8=";
+    hash = "sha256-U/KMKYqYVSeYBmW+PnXtvjnyUTjTJgtpwy1GPefqJOk=";
   };
-  cargoHash = "sha256-aqAa0F1NSJI1nckTjG5C7VLxaLjJgD+9yK/IpclSMqs=";
+  cargoHash = "sha256-eKRayFU3xq2uo6YeFqcTPLInZYlympH6Z01vOCVsVqQ=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.CoreServices
diff --git a/pkgs/by-name/uv/uv/Cargo.lock b/pkgs/by-name/uv/uv/Cargo.lock
index 7dad90cf952ac..a7b1c73e7ea4f 100644
--- a/pkgs/by-name/uv/uv/Cargo.lock
+++ b/pkgs/by-name/uv/uv/Cargo.lock
@@ -395,6 +395,7 @@ dependencies = [
  "criterion",
  "distribution-filename",
  "distribution-types",
+ "install-wheel-rs",
  "once_cell",
  "pep508_rs",
  "platform-tags",
@@ -402,6 +403,7 @@ dependencies = [
  "uv-cache",
  "uv-client",
  "uv-configuration",
+ "uv-dispatch",
  "uv-distribution",
  "uv-interpreter",
  "uv-resolver",
@@ -1102,7 +1104,6 @@ dependencies = [
  "cache-key",
  "distribution-filename",
  "fs-err",
- "git2",
  "indexmap",
  "itertools 0.13.0",
  "once_cell",
@@ -1111,7 +1112,6 @@ dependencies = [
  "platform-tags",
  "pypi-types",
  "rkyv",
- "rustc-hash",
  "schemars",
  "serde",
  "serde_json",
@@ -1806,7 +1806,6 @@ dependencies = [
  "number_prefix",
  "portable-atomic",
  "unicode-width",
- "vt100",
 ]
 
 [[package]]
@@ -2488,6 +2487,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "path-slash"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42"
+
+[[package]]
 name = "pathdiff"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2859,7 +2864,9 @@ dependencies = [
 name = "pypi-types"
 version = "0.0.1"
 dependencies = [
+ "anyhow",
  "chrono",
+ "git2",
  "indexmap",
  "mailparse",
  "once_cell",
@@ -2872,6 +2879,7 @@ dependencies = [
  "toml",
  "tracing",
  "url",
+ "uv-git",
  "uv-normalize",
 ]
 
@@ -3075,12 +3083,12 @@ dependencies = [
  "insta",
  "itertools 0.13.0",
  "pep508_rs",
+ "pypi-types",
  "regex",
  "reqwest",
  "reqwest-middleware",
  "tempfile",
  "test-case",
- "thiserror",
  "tokio",
  "tracing",
  "unscanny",
@@ -3822,6 +3830,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1f227968ec00f0e5322f9b8173c7a0cbcff6181a0a5b28e9892491c286277231"
 
 [[package]]
+name = "temp-env"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96374855068f47402c3121c6eed88d29cb1de8f3ab27090e273e420bdabcf050"
+dependencies = [
+ "parking_lot 0.12.2",
+]
+
+[[package]]
 name = "tempfile"
 version = "3.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4225,18 +4242,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "tracing-indicatif"
-version = "0.3.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "069580424efe11d97c3fef4197fa98c004fa26672cc71ad8770d224e23b1951d"
-dependencies = [
- "indicatif",
- "tracing",
- "tracing-core",
- "tracing-subscriber",
-]
-
-[[package]]
 name = "tracing-log"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4466,7 +4471,7 @@ checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
 
 [[package]]
 name = "uv"
-version = "0.1.45"
+version = "0.2.4"
 dependencies = [
  "anstream",
  "anyhow",
@@ -4491,7 +4496,6 @@ dependencies = [
  "miette",
  "mimalloc",
  "owo-colors",
- "pep440_rs",
  "pep508_rs",
  "platform-tags",
  "predicates",
@@ -4570,6 +4574,7 @@ dependencies = [
  "once_cell",
  "pep440_rs",
  "pep508_rs",
+ "pypi-types",
  "regex",
  "rustc-hash",
  "serde",
@@ -4665,7 +4670,7 @@ dependencies = [
  "anyhow",
  "clap",
  "distribution-types",
- "itertools 0.13.0",
+ "either",
  "pep508_rs",
  "platform-tags",
  "rustc-hash",
@@ -4695,6 +4700,7 @@ dependencies = [
  "pep508_rs",
  "poloto",
  "pretty_assertions",
+ "pypi-types",
  "resvg",
  "rustc-hash",
  "schemars",
@@ -4705,7 +4711,6 @@ dependencies = [
  "tokio",
  "tracing",
  "tracing-durations-export",
- "tracing-indicatif",
  "tracing-subscriber",
  "uv-build",
  "uv-cache",
@@ -4811,12 +4816,14 @@ dependencies = [
  "backoff",
  "cachedir",
  "dunce",
+ "either",
  "encoding_rs_io",
  "fs-err",
  "fs2",
  "junction",
  "once_cell",
  "path-absolutize",
+ "path-slash",
  "tempfile",
  "tracing",
  "urlencoding",
@@ -4889,12 +4896,12 @@ name = "uv-interpreter"
 version = "0.0.1"
 dependencies = [
  "anyhow",
+ "assert_fs",
  "cache-key",
  "configparser",
  "fs-err",
  "futures",
  "indoc",
- "insta",
  "install-wheel-rs",
  "itertools 0.13.0",
  "once_cell",
@@ -4910,7 +4917,9 @@ dependencies = [
  "schemars",
  "serde",
  "serde_json",
+ "temp-env",
  "tempfile",
+ "test-log",
  "thiserror",
  "tokio-util",
  "tracing",
@@ -4955,6 +4964,7 @@ dependencies = [
  "pep440_rs",
  "pep508_rs",
  "pypi-types",
+ "regex",
  "requirements-txt",
  "rustc-hash",
  "schemars",
@@ -5046,7 +5056,7 @@ dependencies = [
 
 [[package]]
 name = "uv-version"
-version = "0.1.45"
+version = "0.2.4"
 
 [[package]]
 name = "uv-virtualenv"
@@ -5114,39 +5124,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[package]]
-name = "vt100"
-version = "0.15.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84cd863bf0db7e392ba3bd04994be3473491b31e66340672af5d11943c6274de"
-dependencies = [
- "itoa",
- "log",
- "unicode-width",
- "vte",
-]
-
-[[package]]
-name = "vte"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5022b5fbf9407086c180e9557be968742d839e68346af7792b8592489732197"
-dependencies = [
- "arrayvec",
- "utf8parse",
- "vte_generate_state_changes",
-]
-
-[[package]]
-name = "vte_generate_state_changes"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff"
-dependencies = [
- "proc-macro2",
- "quote",
-]
-
-[[package]]
 name = "wait-timeout"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/pkgs/by-name/uv/uv/package.nix b/pkgs/by-name/uv/uv/package.nix
index 7b2b589ac5db2..0650e2c2551ba 100644
--- a/pkgs/by-name/uv/uv/package.nix
+++ b/pkgs/by-name/uv/uv/package.nix
@@ -3,25 +3,30 @@
 , darwin
 , fetchFromGitHub
 , installShellFiles
+, libiconv
 , openssl
 , pkg-config
+, python3Packages
 , rustPlatform
 , stdenv
+, testers
+, uv
 , nix-update-script
 }:
 
-rustPlatform.buildRustPackage rec {
+python3Packages.buildPythonApplication rec {
   pname = "uv";
-  version = "0.1.45";
+  version = "0.2.4";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "astral-sh";
     repo = "uv";
-    rev = version;
-    hash = "sha256-PJeUndpD7jHcpM66dMIyXpDx95Boc01rzovS0Y7io7w=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-x0uFBHfH+RXMS67y7NdikqNzXrNVv40HGVV6TVqR5NY=";
   };
 
-  cargoLock = {
+  cargoDeps = rustPlatform.importCargoLock {
     lockFile = ./Cargo.lock;
     outputHashes = {
       "async_zip-0.0.17" = "sha256-Q5fMDJrQtob54CTII3+SXHeozy5S5s3iLOzntevdGOs=";
@@ -33,18 +38,20 @@ rustPlatform.buildRustPackage rec {
     cmake
     installShellFiles
     pkg-config
+    rustPlatform.cargoSetupHook
+    rustPlatform.maturinBuildHook
   ];
 
   buildInputs = [
+    libiconv
     openssl
   ] ++ lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.SystemConfiguration
   ];
 
-  cargoBuildFlags = [ "--package" "uv" ];
+  dontUseCmakeConfigure = true;
 
-  # Tests require network access
-  doCheck = false;
+  cargoBuildFlags = [ "--package" "uv" ];
 
   env = {
     OPENSSL_NO_VENDOR = true;
@@ -58,14 +65,23 @@ rustPlatform.buildRustPackage rec {
       --zsh <($out/bin/uv --generate-shell-completion zsh)
   '';
 
-  passthru.updateScript = nix-update-script { };
+  pythonImportsCheck = [
+    "uv"
+  ];
+
+  passthru = {
+    tests.version = testers.testVersion {
+      package = uv;
+    };
+    updateScript = nix-update-script { };
+  };
 
-  meta = with lib; {
+  meta = {
     description = "An extremely fast Python package installer and resolver, written in Rust";
     homepage = "https://github.com/astral-sh/uv";
     changelog = "https://github.com/astral-sh/uv/blob/${src.rev}/CHANGELOG.md";
-    license = with licenses; [ asl20 mit ];
-    maintainers = with maintainers; [ GaetanLepage ];
+    license = with lib.licenses; [ asl20 mit ];
+    maintainers = with lib.maintainers; [ GaetanLepage ];
     mainProgram = "uv";
   };
 }
diff --git a/pkgs/by-name/ve/vencord/package-lock.json b/pkgs/by-name/ve/vencord/package-lock.json
index a5c9f7b543972..e59078145c537 100644
--- a/pkgs/by-name/ve/vencord/package-lock.json
+++ b/pkgs/by-name/ve/vencord/package-lock.json
@@ -1,12 +1,12 @@
 {
     "name": "vencord",
-    "version": "1.8.2",
+    "version": "1.8.6",
     "lockfileVersion": 3,
     "requires": true,
     "packages": {
         "": {
             "name": "vencord",
-            "version": "1.8.2",
+            "version": "1.8.6",
             "license": "GPL-3.0-or-later",
             "dependencies": {
                 "@sapphi-red/web-noise-suppressor": "0.3.3",
@@ -43,11 +43,12 @@
                 "standalone-electron-types": "^1.0.0",
                 "stylelint": "^15.6.0",
                 "stylelint-config-standard": "^33.0.0",
+                "ts-patch": "^3.1.2",
                 "tsx": "^3.12.7",
                 "type-fest": "^3.9.0",
-                "typescript": "^5.0.4",
-                "zip-local": "^0.3.5",
-                "zustand": "^3.7.2"
+                "typescript": "^5.4.5",
+                "typescript-transform-paths": "^3.4.7",
+                "zip-local": "^0.3.5"
             },
             "engines": {
                 "node": ">=18",
@@ -227,9 +228,9 @@
             }
         },
         "node_modules/@csstools/selector-specificity": {
-            "version": "3.0.3",
-            "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.3.tgz",
-            "integrity": "sha512-KEPNw4+WW5AVEIyzC80rTbWEUatTW2lXpN8+8ILC8PiPeWPjwUzrPZDIOZ2wwqDmeqOYTdSGyL3+vE5GC3FB3Q==",
+            "version": "3.1.1",
+            "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.1.1.tgz",
+            "integrity": "sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==",
             "dev": true,
             "funding": [
                 {
@@ -803,9 +804,9 @@
             "dev": true
         },
         "node_modules/@types/lodash": {
-            "version": "4.17.1",
-            "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.1.tgz",
-            "integrity": "sha512-X+2qazGS3jxLAIz5JDXDzglAF3KpijdhFxlf/V1+hEsOUc+HnWi81L/uv/EvGuV90WY+7mPGFCUDGfQC3Gj95Q==",
+            "version": "4.17.4",
+            "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.4.tgz",
+            "integrity": "sha512-wYCP26ZLxaT3R39kiN2+HcJ4kTd3U1waI/cY7ivWYqFP6pW3ZNpvi6Wd6PHZx7T/t8z0vlkXMg3QYLa7DZ/IJQ==",
             "dev": true
         },
         "node_modules/@types/minimist": {
@@ -836,9 +837,9 @@
             "dev": true
         },
         "node_modules/@types/react": {
-            "version": "18.3.1",
-            "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.1.tgz",
-            "integrity": "sha512-V0kuGBX3+prX+DQ/7r2qsv1NsdfnCLnTgnRJ1pYnxykBhGMz+qj+box5lq7XsO5mtZsBqpjwwTu/7wszPfMBcw==",
+            "version": "18.3.3",
+            "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz",
+            "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==",
             "dev": true,
             "dependencies": {
                 "@types/prop-types": "*",
@@ -1329,12 +1330,12 @@
             }
         },
         "node_modules/braces": {
-            "version": "3.0.2",
-            "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
-            "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+            "version": "3.0.3",
+            "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+            "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
             "dev": true,
             "dependencies": {
-                "fill-range": "^7.0.1"
+                "fill-range": "^7.1.1"
             },
             "engines": {
                 "node": ">=8"
@@ -2308,9 +2309,9 @@
             }
         },
         "node_modules/eslint-plugin-path-alias": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/eslint-plugin-path-alias/-/eslint-plugin-path-alias-1.0.0.tgz",
-            "integrity": "sha512-FXus57yC+Zd3sMv46pbloXYwFeNVNHJqlACr9V68FG/IzGFBBokGJpmjDbEjpt8ZCeVSndUubeDWWl2A8sCNVQ==",
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/eslint-plugin-path-alias/-/eslint-plugin-path-alias-1.1.0.tgz",
+            "integrity": "sha512-fDsuIsB11cvZ+5LDaOMEn1CkLFeOLXdvp9Mqi/9ZL2sAnVlRPKlMH3UPT7onFTWcFrNllYwrQ/+7LbzagGOA9A==",
             "dev": true,
             "dependencies": {
                 "nanomatch": "^1.2.13"
@@ -2619,9 +2620,9 @@
             }
         },
         "node_modules/fill-range": {
-            "version": "7.0.1",
-            "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
-            "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+            "version": "7.1.1",
+            "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+            "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
             "dev": true,
             "dependencies": {
                 "to-regex-range": "^5.0.1"
@@ -3101,6 +3102,7 @@
             "version": "1.0.6",
             "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
             "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+            "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
             "dev": true,
             "dependencies": {
                 "once": "^1.3.0",
@@ -3541,12 +3543,12 @@
             }
         },
         "node_modules/micromatch": {
-            "version": "4.0.5",
-            "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
-            "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+            "version": "4.0.7",
+            "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
+            "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
             "dev": true,
             "dependencies": {
-                "braces": "^3.0.2",
+                "braces": "^3.0.3",
                 "picomatch": "^2.3.1"
             },
             "engines": {
@@ -3574,6 +3576,15 @@
                 "node": "*"
             }
         },
+        "node_modules/minimist": {
+            "version": "1.2.8",
+            "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+            "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+            "dev": true,
+            "funding": {
+                "url": "https://github.com/sponsors/ljharb"
+            }
+        },
         "node_modules/minimist-options": {
             "version": "4.1.0",
             "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
@@ -3931,6 +3942,12 @@
                 "node": ">=8"
             }
         },
+        "node_modules/path-parse": {
+            "version": "1.0.7",
+            "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+            "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+            "dev": true
+        },
         "node_modules/path-type": {
             "version": "4.0.0",
             "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
@@ -3947,9 +3964,9 @@
             "dev": true
         },
         "node_modules/picocolors": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
-            "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
+            "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==",
             "dev": true
         },
         "node_modules/picomatch": {
@@ -4015,9 +4032,9 @@
             }
         },
         "node_modules/postcss-selector-parser": {
-            "version": "6.0.16",
-            "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz",
-            "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==",
+            "version": "6.1.0",
+            "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz",
+            "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==",
             "dev": true,
             "dependencies": {
                 "cssesc": "^3.0.0",
@@ -4286,6 +4303,23 @@
                 "node": ">=0.10.0"
             }
         },
+        "node_modules/resolve": {
+            "version": "1.22.8",
+            "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+            "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+            "dev": true,
+            "dependencies": {
+                "is-core-module": "^2.13.0",
+                "path-parse": "^1.0.7",
+                "supports-preserve-symlinks-flag": "^1.0.0"
+            },
+            "bin": {
+                "resolve": "bin/resolve"
+            },
+            "funding": {
+                "url": "https://github.com/sponsors/ljharb"
+            }
+        },
         "node_modules/resolve-from": {
             "version": "4.0.0",
             "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
@@ -4669,9 +4703,9 @@
             }
         },
         "node_modules/spdx-license-ids": {
-            "version": "3.0.17",
-            "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz",
-            "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==",
+            "version": "3.0.18",
+            "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz",
+            "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==",
             "dev": true
         },
         "node_modules/split-string": {
@@ -4941,6 +4975,18 @@
                 "node": ">=14.18"
             }
         },
+        "node_modules/supports-preserve-symlinks-flag": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+            "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+            "dev": true,
+            "engines": {
+                "node": ">= 0.4"
+            },
+            "funding": {
+                "url": "https://github.com/sponsors/ljharb"
+            }
+        },
         "node_modules/svg-tags": {
             "version": "1.0.0",
             "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz",
@@ -5103,6 +5149,24 @@
                 "url": "https://github.com/sponsors/sindresorhus"
             }
         },
+        "node_modules/ts-patch": {
+            "version": "3.1.2",
+            "resolved": "https://registry.npmjs.org/ts-patch/-/ts-patch-3.1.2.tgz",
+            "integrity": "sha512-n58F5AqjUMdp9RAKq+E1YBkmONltPVbt1nN+wrmZXoYZek6QcvaTuqvKMhYhr5BxtC53kD/exxIPA1cP1RQxsA==",
+            "dev": true,
+            "dependencies": {
+                "chalk": "^4.1.2",
+                "global-prefix": "^3.0.0",
+                "minimist": "^1.2.8",
+                "resolve": "^1.22.2",
+                "semver": "^7.5.4",
+                "strip-ansi": "^6.0.1"
+            },
+            "bin": {
+                "ts-patch": "bin/ts-patch.js",
+                "tspc": "bin/tspc.js"
+            }
+        },
         "node_modules/tslib": {
             "version": "1.14.1",
             "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
@@ -5247,6 +5311,18 @@
                 "node": ">=14.17"
             }
         },
+        "node_modules/typescript-transform-paths": {
+            "version": "3.4.7",
+            "resolved": "https://registry.npmjs.org/typescript-transform-paths/-/typescript-transform-paths-3.4.7.tgz",
+            "integrity": "sha512-1Us1kdkdfKd2unbkBAOV2HHRmbRBYpSuk9nJ7cLD2hP4QmfToiM/VpxNlhJc1eezVwVqSKSBjNSzZsK/fWR/9A==",
+            "dev": true,
+            "dependencies": {
+                "minimatch": "^3.0.4"
+            },
+            "peerDependencies": {
+                "typescript": ">=3.6.5"
+            }
+        },
         "node_modules/unbzip2-stream": {
             "version": "1.4.3",
             "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
@@ -5572,23 +5648,6 @@
                 "jszip": "^2.6.1",
                 "q": "^1.4.1"
             }
-        },
-        "node_modules/zustand": {
-            "version": "3.7.2",
-            "resolved": "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz",
-            "integrity": "sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==",
-            "dev": true,
-            "engines": {
-                "node": ">=12.7.0"
-            },
-            "peerDependencies": {
-                "react": ">=16.8"
-            },
-            "peerDependenciesMeta": {
-                "react": {
-                    "optional": true
-                }
-            }
         }
     }
 }
diff --git a/pkgs/by-name/ve/vencord/package.nix b/pkgs/by-name/ve/vencord/package.nix
index 5d8074d70cb26..4b91092d034a1 100644
--- a/pkgs/by-name/ve/vencord/package.nix
+++ b/pkgs/by-name/ve/vencord/package.nix
@@ -5,8 +5,8 @@
 , buildWebExtension ? false
 }:
 let
-  version = "1.8.4";
-  gitHash = "a5eb55e";
+  version = "1.8.6";
+  gitHash = "1866e4d";
 in
 buildNpmPackage rec {
   pname = "vencord";
@@ -16,7 +16,7 @@ buildNpmPackage rec {
     owner = "Vendicated";
     repo = "Vencord";
     rev = "v${version}";
-    hash = "sha256-FbU1Zsz/84oSOCOSWunA5nn5qFGLQ4W3uqsbYytF/7c=";
+    hash = "sha256-akCuZcB7psZlMAnDKJU3bK1K++ACjHxTUFxl5DRdtQ4=";
   };
 
   ESBUILD_BINARY_PATH = lib.getExe (esbuild.overrideAttrs (final: _: {
@@ -34,7 +34,7 @@ buildNpmPackage rec {
   npmRebuildFlags = [ "|| true" ];
 
   makeCacheWritable = true;
-  npmDepsHash = "sha256-yb9Dbu9Rb1+xV/XiDP49uaQdBP9uM+oimzkeznpGrKw=";
+  npmDepsHash = "sha256-HYjZ6DkyQAImiqHSnZu4bZ0ItROZt12DvoIMGcTlq+U=";
   npmFlags = [ "--legacy-peer-deps" ];
   npmBuildScript = if buildWebExtension then "buildWeb" else "build";
   npmBuildFlags = [ "--" "--standalone" "--disable-updater" ];
diff --git a/pkgs/by-name/vi/vim-startuptime/package.nix b/pkgs/by-name/vi/vim-startuptime/package.nix
new file mode 100644
index 0000000000000..9dd40ea475585
--- /dev/null
+++ b/pkgs/by-name/vi/vim-startuptime/package.nix
@@ -0,0 +1,39 @@
+{
+  pkgs,
+  lib,
+  buildGoModule,
+  fetchFromGitHub
+}:
+let
+  pname = "vim-startuptime";
+  version = "1.3.2";
+in
+buildGoModule {
+  inherit pname version;
+  ldflags = [
+    "-s"
+    "-w"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "rhysd";
+    repo = "vim-startuptime";
+    rev = "v${version}";
+    hash = "sha256-d6AXTWTUawkBCXCvMs3C937qoRUZmy0qCFdSLcWh0BE=";
+  };
+
+  nativeCheckInputs = with pkgs; [
+    vim
+    neovim
+  ];
+
+  vendorHash = null;
+
+  meta = with lib; {
+    homepage = "https://github.com/rhysd/vim-startuptime";
+    description = "A small Go program for better `vim --startuptime` alternative";
+    maintainers = with maintainers; [ _9yokuro ];
+    license = licenses.mit;
+    mainProgram = "vim-startuptime";
+  };
+}
diff --git a/pkgs/by-name/vi/vinegar/package.nix b/pkgs/by-name/vi/vinegar/package.nix
index 19dd302094435..f77d8127367bc 100644
--- a/pkgs/by-name/vi/vinegar/package.nix
+++ b/pkgs/by-name/vi/vinegar/package.nix
@@ -10,40 +10,66 @@
 , vulkan-headers
 , wine64Packages
 , fetchpatch
+, fetchFromGitLab
+, fetchurl
+,
 }:
 let
-  # wine-staging doesn't support overrideAttrs for now
+  stagingPatch = fetchFromGitLab {
+    sha256 = "sha256-VQ4j4PuXRoXbCUZ16snVO+jRvuKD4Rjn14R7bhwdAco=";
+    domain = "gitlab.winehq.org";
+    owner = "wine";
+    repo = "wine-staging";
+    rev = "v9.2";
+  };
+
   wine = wine64Packages.staging.overrideDerivation (oldAttrs: {
-    patches =
-      (oldAttrs.patches or [])
+    prePatch = ''
+      patchShebangs tools
+      cp -r ${stagingPatch}/patches ${stagingPatch}/staging .
+      chmod +w patches
+      patchShebangs ./patches/gitapply.sh
+      python3 ./staging/patchinstall.py --destdir="$PWD" --all
+    '';
+    patches = (oldAttrs.patches or [ ])
       ++ [
-        # upstream issue: https://bugs.winehq.org/show_bug.cgi?id=55604
-        # Here are the currently applied patches for Roblox to run under WINE:
-        (fetchpatch {
-          name = "vinegar-wine-segregrevert.patch";
-          url = "https://raw.githubusercontent.com/flathub/org.vinegarhq.Vinegar/e24cb9dfa996bcfeaa46504c0375660fe271148d/patches/wine/segregrevert.patch";
-          hash = "sha256-+3Nld81nG3GufI4jAF6yrWfkJmsSCOku39rx0Hov29c=";
-        })
-        (fetchpatch {
-          name = "vinegar-wine-mouselock.patch";
-          url = "https://raw.githubusercontent.com/flathub/org.vinegarhq.Vinegar/e24cb9dfa996bcfeaa46504c0375660fe271148d/patches/wine/mouselock.patch";
-          hash = "sha256-0AGA4AQbxTL5BGVbm072moav7xVA3zpotYqM8pcEDa4=";
-        })
-      ];
+      (fetchurl {
+        name = "childwindow.patch";
+        hash = "sha256-u3mDvlbhQnfh2tUKb8jNJA0tTcLIaKVLfY8ktJmeRns=";
+        url = "https://raw.githubusercontent.com/flathub/org.vinegarhq.Vinegar/9f43ce33a691afb50562d95adfc6719a3b58ddb7/patches/wine/childwindow.patch";
+      })
+      (fetchpatch {
+        name = "mouselock.patch";
+        hash = "sha256-0AGA4AQbxTL5BGVbm072moav7xVA3zpotYqM8pcEDa4=";
+        url = "https://raw.githubusercontent.com/flathub/org.vinegarhq.Vinegar/9f43ce33a691afb50562d95adfc6719a3b58ddb7/patches/wine/mouselock.patch";
+      })
+      (fetchpatch {
+        name = "segregrevert.patch";
+        hash = "sha256-+3Nld81nG3GufI4jAF6yrWfkJmsSCOku39rx0Hov29c=";
+        url = "https://raw.githubusercontent.com/flathub/org.vinegarhq.Vinegar/9f43ce33a691afb50562d95adfc6719a3b58ddb7/patches/wine/segregrevert.patch";
+      })
+    ];
+    src = fetchFromGitLab rec {
+      sha256 = "sha256-GlPH34dr9aHx7xvlcbtDMn/wrY//DP58ilXjhQXgihQ=";
+      domain = "gitlab.winehq.org";
+      owner = "wine";
+      repo = "wine";
+      rev = "wine-9.2";
+    };
   });
 in
 buildGoModule rec {
   pname = "vinegar";
-  version = "1.7.3";
+  version = "1.7.4";
 
   src = fetchFromGitHub {
     owner = "vinegarhq";
     repo = "vinegar";
     rev = "v${version}";
-    hash = "sha256-aKL+4jw/uMbbvLRCBHstCTrcQ1PTYSCwMNgXTvSvMeY=";
+    hash = "sha256-4tkcrUzW8la5WiDtGUvvsRzFqZM1gqnWWAzXc82hirM=";
   };
 
-  vendorHash = "sha256-OaMfWecOPQh6quXjYkZLyBDHZ9TINSA7Ue/Y0sz5ZYY=";
+  vendorHash = "sha256-pi9FjKYXH8cqTx2rTRCyT4+pOM5HnIKosEcmcpbuywQ=";
 
   nativeBuildInputs = [ pkg-config makeBinaryWrapper ];
   buildInputs = [ libGL libxkbcommon xorg.libX11 xorg.libXcursor xorg.libXfixes wayland vulkan-headers wine ];
diff --git a/pkgs/by-name/vu/vunnel/package.nix b/pkgs/by-name/vu/vunnel/package.nix
index df8787c52b811..9ca3f5d42c334 100644
--- a/pkgs/by-name/vu/vunnel/package.nix
+++ b/pkgs/by-name/vu/vunnel/package.nix
@@ -7,14 +7,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "vunnel";
-  version = "0.23.0";
+  version = "0.23.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "anchore";
     repo = "vunnel";
     rev = "refs/tags/v${version}";
-    hash = "sha256-pfR3LxC1sSvLKIwq0P/9DcNkGVIIDfwMiSOpwJ7km9Y=";
+    hash = "sha256-wXBfrlb4i4G3Sm0SopvDVGcQ0/hRGtUdzUQYyUj8/Ps=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/by-name/wa/waf/hook.nix b/pkgs/by-name/wa/waf/hook.nix
index ac497d2278314..8b52538a1b650 100644
--- a/pkgs/by-name/wa/waf/hook.nix
+++ b/pkgs/by-name/wa/waf/hook.nix
@@ -13,8 +13,6 @@ makeSetupHook {
     # waf is not inserted into propagatedBuildInputs, rather it is inserted
     # directly
     inherit waf;
-    wafCrossFlags = lib.optionalString (stdenv.hostPlatform.system != stdenv.targetPlatform.system)
-      ''--cross-compile "--cross-execute=${stdenv.targetPlatform.emulator pkgs}"'';
   };
 
   meta = {
diff --git a/pkgs/by-name/wa/waf/setup-hook.sh b/pkgs/by-name/wa/waf/setup-hook.sh
index d3e2bf97e6823..a154ae378a07c 100644
--- a/pkgs/by-name/wa/waf/setup-hook.sh
+++ b/pkgs/by-name/wa/waf/setup-hook.sh
@@ -22,10 +22,6 @@ wafConfigurePhase() {
         ${wafConfigureTargets:-configure}
     )
 
-    if [ -z "${dontAddWafCrossFlags:-}" ]; then
-        flagsArray+=(@wafCrossFlags@)
-    fi
-
     echoCmd 'waf configure flags' "${flagsArray[@]}"
     python "$wafPath" "${flagsArray[@]}"
 
diff --git a/pkgs/by-name/wa/warp-terminal/versions.json b/pkgs/by-name/wa/warp-terminal/versions.json
index 9940ba44c08d3..5fc74e0d01d07 100644
--- a/pkgs/by-name/wa/warp-terminal/versions.json
+++ b/pkgs/by-name/wa/warp-terminal/versions.json
@@ -1,10 +1,10 @@
 {
   "darwin": {
-    "hash": "sha256-XRwnT73kCv4mO2DKkuFQ8qwpIIH9iyRTrJEZUi6tscU=",
-    "version": "0.2024.05.14.08.01.stable_04"
+    "hash": "sha256-cK82M7vOjtDdfWbaYzbHHkcqwF8L3crVA9jJotnPpX4=",
+    "version": "0.2024.05.21.16.09.stable_02"
   },
   "linux": {
-    "hash": "sha256-16ZMzvdkAAf9xSiL7TCaiJwEMd+jbOYIL/xiF2Todbw=",
-    "version": "0.2024.05.14.08.01.stable_04"
+    "hash": "sha256-chIrRzsxjFYS4UFYCTy04cdwSyCq/+/WiKBAmV9OdLs=",
+    "version": "0.2024.05.21.16.09.stable_02"
   }
 }
diff --git a/pkgs/by-name/wa/wayfreeze/package.nix b/pkgs/by-name/wa/wayfreeze/package.nix
new file mode 100644
index 0000000000000..41be346327b6d
--- /dev/null
+++ b/pkgs/by-name/wa/wayfreeze/package.nix
@@ -0,0 +1,33 @@
+{
+  lib,
+  fetchFromGitHub,
+  rustPlatform,
+  libxkbcommon
+}:
+
+rustPlatform.buildRustPackage {
+  pname = "wayfreeze";
+  version = "0-unstable-2024-05-23";
+
+  src = fetchFromGitHub {
+    owner = "Jappie3";
+    repo = "wayfreeze";
+    rev = "069dea0b832bd5b7a7872a57bd53f51cd377f206";
+    hash = "sha256-3btFzZbkHT6kBBA3M7OwFsD710VpMiHSXIpHmvCD/es=";
+  };
+
+  cargoHash = "sha256-3OjZhWAgfmMZ0OGeRawk3KZpPqz1QCVkwsyGM+E7o88=";
+
+  buildInputs = [
+    libxkbcommon
+  ];
+
+  meta = with lib; {
+    description = "A tool to freeze the screen of a Wayland compositor";
+    homepage = "https://github.com/Jappie3/wayfreeze";
+    license = licenses.agpl3Only;
+    maintainers = with lib.maintainers; [ purrpurrn ];
+    mainProgram = "wayfreeze";
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/wa/waylock/build.zig.zon.nix b/pkgs/by-name/wa/waylock/build.zig.zon.nix
new file mode 100644
index 0000000000000..a0d4d9ac09712
--- /dev/null
+++ b/pkgs/by-name/wa/waylock/build.zig.zon.nix
@@ -0,0 +1,20 @@
+# generated by zon2nix (https://github.com/nix-community/zon2nix)
+
+{ linkFarm, fetchzip }:
+
+linkFarm "zig-packages" [
+  {
+    name = "1220840390382c88caf9b0887f6cebbba3a7d05960b8b2ee6d80567b2950b71e5017";
+    path = fetchzip {
+      url = "https://codeberg.org/ifreund/zig-xkbcommon/archive/v0.1.0.tar.gz";
+      hash = "sha256-xilmsDGWlkfpTiGff+/nb76jx87ANdr4zqYy6rKOBMg=";
+    };
+  }
+  {
+    name = "1220b0f8f822c1625af7aae4cb3ab2c4ec1a4c0e99ef32867b2a8d88bb070b3e7f6d";
+    path = fetchzip {
+      url = "https://codeberg.org/ifreund/zig-wayland/archive/v0.1.0.tar.gz";
+      hash = "sha256-VLEx8nRgmJZWgLNBRqrR7bZEkW0m5HTRv984HKwoIfA=";
+    };
+  }
+]
diff --git a/pkgs/applications/misc/waylock/default.nix b/pkgs/by-name/wa/waylock/package.nix
index 9ed2cc12131e9..a4b8facf555d6 100644
--- a/pkgs/applications/misc/waylock/default.nix
+++ b/pkgs/by-name/wa/waylock/package.nix
@@ -1,18 +1,20 @@
-{ lib
-, stdenv
-, fetchFromGitea
-, libxkbcommon
-, pam
-, pkg-config
-, scdoc
-, wayland
-, wayland-protocols
-, zig_0_11
+{
+  lib,
+  stdenv,
+  callPackage,
+  fetchFromGitea,
+  libxkbcommon,
+  pam,
+  pkg-config,
+  scdoc,
+  wayland,
+  wayland-protocols,
+  zig_0_12,
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "waylock";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchFromGitea {
     domain = "codeberg.org";
@@ -20,14 +22,16 @@ stdenv.mkDerivation (finalAttrs: {
     repo = "waylock";
     rev = "v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-Z5YNaR+jocJ4hS7NT8oAlrMnqNfD8KRzOyyqdVGDSl0=";
+    hash = "sha256-U8xJucLpmeLdmSUc+AVSH/mlv6UOXsxotJPTMK7lnkA=";
   };
 
+  deps = callPackage ./build.zig.zon.nix { };
+
   nativeBuildInputs = [
     pkg-config
     scdoc
     wayland
-    zig_0_11.hook
+    zig_0_12.hook
   ];
 
   buildInputs = [
@@ -36,7 +40,11 @@ stdenv.mkDerivation (finalAttrs: {
     pam
   ];
 
-  zigBuildFlags = [ "-Dman-pages" ];
+  zigBuildFlags = [
+    "-Dman-pages"
+    "--system"
+    "${finalAttrs.deps}"
+  ];
 
   passthru.updateScript = ./update.nu;
 
@@ -45,7 +53,10 @@ stdenv.mkDerivation (finalAttrs: {
     changelog = "https://codeberg.org/ifreund/waylock/releases/tag/v${finalAttrs.version}";
     description = "A small screenlocker for Wayland compositors";
     license = lib.licenses.isc;
-    maintainers = with lib.maintainers; [ adamcstephens jordanisaacs ];
+    maintainers = with lib.maintainers; [
+      adamcstephens
+      jordanisaacs
+    ];
     mainProgram = "waylock";
     platforms = lib.platforms.linux;
   };
diff --git a/pkgs/by-name/wa/waylock/update.nu b/pkgs/by-name/wa/waylock/update.nu
new file mode 100755
index 0000000000000..e227fb646517d
--- /dev/null
+++ b/pkgs/by-name/wa/waylock/update.nu
@@ -0,0 +1,8 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i nu -p nushell common-updater-scripts zon2nix
+
+let latest_tag = list-git-tags --url=https://codeberg.org/ifreund/waylock | lines | sort --natural | str replace v '' | last
+update-source-version waylock $latest_tag
+
+http get $"https://codeberg.org/ifreund/waylock/raw/tag/v($latest_tag)/build.zig.zon" | save build.zig.zon
+zon2nix > pkgs/by-name/wa/waylock/build.zig.zon.nix
diff --git a/pkgs/by-name/we/webcord-vencord/package.nix b/pkgs/by-name/we/webcord-vencord/package.nix
index 352e372d00adc..2ac078def4eed 100644
--- a/pkgs/by-name/we/webcord-vencord/package.nix
+++ b/pkgs/by-name/we/webcord-vencord/package.nix
@@ -1,4 +1,6 @@
 {
+  # allow overriding electron
+  electron,
   webcord,
   substituteAll,
   lib,
@@ -6,7 +8,7 @@
 }:
 
 # nixpkgs-update: no auto update
-webcord.overrideAttrs (old: {
+(webcord.override { inherit electron; }).overrideAttrs (old: {
   pname = "webcord-vencord";
 
   patches = (old.patches or [ ]) ++ [
diff --git a/pkgs/by-name/wi/wildcard/package.nix b/pkgs/by-name/wi/wildcard/package.nix
new file mode 100644
index 0000000000000..e263cb7215562
--- /dev/null
+++ b/pkgs/by-name/wi/wildcard/package.nix
@@ -0,0 +1,64 @@
+{ lib
+, blueprint-compiler
+, cargo
+, desktop-file-utils
+, fetchFromGitLab
+, libadwaita
+, meson
+, ninja
+, pkg-config
+, rustPlatform
+, rustc
+, stdenv
+, wrapGAppsHook4
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "wildcard";
+  version = "0.3.3";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "World";
+    repo = "Wildcard";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-jOv0l1vnfDePWF7SAbsBFipPAONliPdc47xj79BJ+rc=";
+  };
+
+  strictDeps = true;
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit (finalAttrs) src;
+    hash = "sha256-8jNNCcZRoLyOHdaWmYTOGD7Nf7NkmJ1MIxBXLJGrm5Y=";
+    name = "wildcard-${finalAttrs.version}";
+  };
+
+  nativeBuildInputs = [
+    blueprint-compiler
+    cargo
+    desktop-file-utils
+    meson
+    ninja
+    pkg-config
+    rustPlatform.cargoSetupHook
+    rustc
+    wrapGAppsHook4
+  ];
+
+  buildInputs = [
+    libadwaita
+  ];
+
+  meta = {
+    description = "Test your regular expressions";
+    longDescription = ''
+      Wildcard gives you a nice and simple to use interface to test/practice regular expressions.
+    '';
+    homepage = "https://gitlab.gnome.org/World/Wildcard";
+    downloadPage = "https://gitlab.gnome.org/World/Wildcard/-/releases/v${finalAttrs.version}";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ aleksana ];
+    mainProgram = "wildcard";
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/wi/wiper/package.nix b/pkgs/by-name/wi/wiper/package.nix
new file mode 100644
index 0000000000000..3eb069de236a1
--- /dev/null
+++ b/pkgs/by-name/wi/wiper/package.nix
@@ -0,0 +1,34 @@
+{
+  lib,
+  stdenv,
+  darwin,
+  rustPlatform,
+  fetchFromGitHub,
+}:
+let
+  version = "0.2.1";
+in
+rustPlatform.buildRustPackage {
+  pname = "wiper";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "ikebastuz";
+    repo = "wiper";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-IheSAPk1l6wJ2v4RLPIPvY/5XMfh+vJLyQ/Lc7RrCJQ=";
+  };
+
+  cargoHash = "sha256-gYWTv0AXOmpx9Nc8akBMVWkESI0AtnGgvfH9hQZ0peo=";
+
+  buildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Foundation ];
+
+  meta = {
+    description = "Disk analyser and cleanup tool";
+    changelog = "https://github.com/ikebastuz/wiper/releases/tag/v${version}";
+    homepage = "https://github.com/ikebastuz/wiper";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ isabelroses ];
+    mainProgram = "wiper";
+  };
+}
diff --git a/pkgs/by-name/wi/wiremock/package.nix b/pkgs/by-name/wi/wiremock/package.nix
index 4478fed50dde1..f5a86cf4aa7f9 100644
--- a/pkgs/by-name/wi/wiremock/package.nix
+++ b/pkgs/by-name/wi/wiremock/package.nix
@@ -10,11 +10,11 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "wiremock";
-  version = "3.5.4";
+  version = "3.6.0";
 
   src = fetchurl {
     url = "mirror://maven/org/wiremock/wiremock-standalone/${finalAttrs.version}/wiremock-standalone-${finalAttrs.version}.jar";
-    hash = "sha256-BljkiUs5POPY2e+bmB8E6z+BWJME6ENP9NDc0XR5Vl0=";
+    hash = "sha256-tLOiGl5/HuDbhrRyu+xZ6lL408n85MXl63lecGgok9w=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/by-name/wl/wldash/0001-Update-Cargo.lock.patch b/pkgs/by-name/wl/wldash/0001-Update-Cargo.lock.patch
new file mode 100644
index 0000000000000..a699d19c1398a
--- /dev/null
+++ b/pkgs/by-name/wl/wldash/0001-Update-Cargo.lock.patch
@@ -0,0 +1,25 @@
+From 2538e41f001fa363d3459efe3b8102a354b06dd0 Mon Sep 17 00:00:00 2001
+From: Kenny Levinsen <kl@kl.wtf>
+Date: Sun, 16 Jan 2022 23:16:30 +0100
+Subject: [PATCH 1/2] Update Cargo.lock
+
+---
+ Cargo.lock | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Cargo.lock b/Cargo.lock
+index 3da9a07..1ad4a86 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -796,7 +796,7 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+ 
+ [[package]]
+ name = "wldash"
+-version = "0.2.0"
++version = "0.3.0"
+ dependencies = [
+  "alsa",
+  "bitflags",
+-- 
+2.44.0
+
diff --git a/pkgs/by-name/wl/wldash/0002-Update-fontconfig.patch b/pkgs/by-name/wl/wldash/0002-Update-fontconfig.patch
new file mode 100644
index 0000000000000..b4bc177249665
--- /dev/null
+++ b/pkgs/by-name/wl/wldash/0002-Update-fontconfig.patch
@@ -0,0 +1,112 @@
+From b2ae30bab412472f1d2ff90439134a8a465fdf9a Mon Sep 17 00:00:00 2001
+From: Kenny Levinsen <kl@kl.wtf>
+Date: Mon, 2 May 2022 11:21:47 +0200
+Subject: [PATCH 2/2] Update fontconfig
+
+---
+ Cargo.lock | 38 +++++++++++++++++++++++++++++---------
+ Cargo.toml |  2 +-
+ 2 files changed, 30 insertions(+), 10 deletions(-)
+
+diff --git a/Cargo.lock b/Cargo.lock
+index 1ad4a86..6821181 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -137,7 +137,16 @@ version = "0.4.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "b11f15d1e3268f140f68d390637d5e76d849782d971ae7063e0da69fe9709a76"
+ dependencies = [
+- "libloading",
++ "libloading 0.6.7",
++]
++
++[[package]]
++name = "dlib"
++version = "0.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794"
++dependencies = [
++ "libloading 0.7.3",
+ ]
+ 
+ [[package]]
+@@ -166,9 +175,9 @@ checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
+ 
+ [[package]]
+ name = "fontconfig"
+-version = "0.2.0"
++version = "0.5.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a5570e7ce35ffb621b31934530c4b3b8ce9fdd8bf8436e98f9c7ebadff2ef259"
++checksum = "a25320ad784a9578ada0b395dd7dcd2321109404bbb341ec27e64b01a1e49b47"
+ dependencies = [
+  "yeslogic-fontconfig-sys",
+ ]
+@@ -237,6 +246,16 @@ dependencies = [
+  "winapi",
+ ]
+ 
++[[package]]
++name = "libloading"
++version = "0.7.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd"
++dependencies = [
++ "cfg-if 1.0.0",
++ "winapi",
++]
++
+ [[package]]
+ name = "libpulse-binding"
+ version = "2.23.0"
+@@ -398,9 +417,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "once_cell"
+-version = "1.5.2"
++version = "1.10.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0"
++checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9"
+ 
+ [[package]]
+ name = "opaque-debug"
+@@ -803,7 +822,7 @@ dependencies = [
+  "byteorder",
+  "chrono",
+  "dbus",
+- "dlib",
++ "dlib 0.4.2",
+  "fontconfig",
+  "fuzzy-matcher",
+  "itertools",
+@@ -843,11 +862,12 @@ dependencies = [
+ 
+ [[package]]
+ name = "yeslogic-fontconfig-sys"
+-version = "2.11.1"
++version = "3.0.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e194a0c5cd1b5c87215eed9d26aca9799fa1b599fe2e178977d6f8ccc812e3d3"
++checksum = "cb3f5a91c31bef6650d3a1b69192b4217fd88e4cfedc8101813e4dc3394ecbb8"
+ dependencies = [
+  "const-cstr",
+- "libc",
++ "dlib 0.5.0",
++ "once_cell",
+  "pkg-config",
+ ]
+diff --git a/Cargo.toml b/Cargo.toml
+index abb3807..691daa7 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -46,5 +46,5 @@ serde_yaml = { version = "0.8", optional = true }
+ 
+ libpulse-binding = { version = "2.22", optional = true }
+ alsa = { version = "0.4.0", optional = true }
+-fontconfig = "0.2.0"
++fontconfig = "0.5.0"
+ unicode-segmentation = "1.6.0"
+-- 
+2.44.0
+
diff --git a/pkgs/by-name/wl/wldash/package.nix b/pkgs/by-name/wl/wldash/package.nix
new file mode 100644
index 0000000000000..ab45f201e8e63
--- /dev/null
+++ b/pkgs/by-name/wl/wldash/package.nix
@@ -0,0 +1,77 @@
+{
+  lib,
+  alsa-lib,
+  dbus,
+  fetchFromGitHub,
+  fontconfig,
+  libffi,
+  libpulseaudio,
+  libxkbcommon,
+  pkg-config,
+  rustPlatform,
+  wayland,
+  enableAlsaWidget ? true,
+  enablePulseaudioWidget ? true,
+}:
+
+let
+  pname = "wldash";
+  version = "0.3.0";
+  libraryPath = lib.makeLibraryPath [
+    wayland
+    libxkbcommon
+  ];
+in
+rustPlatform.buildRustPackage {
+  inherit pname version;
+
+  buildNoDefaultFeatures = true;
+  buildFeatures =
+    [
+      "yaml-cfg"
+      "json-cfg"
+    ]
+    ++ lib.optionals enableAlsaWidget [ "alsa-widget" ]
+    ++ lib.optionals enablePulseaudioWidget [ "pulseaudio-widget" ];
+
+  src = fetchFromGitHub {
+    owner = "kennylevinsen";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-ZzsBD3KKTT+JGiFCpdumPyVAE2gEJvzCq+nRnK3RdxI=";
+  };
+
+  strictDeps = true;
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs =
+    [
+      dbus
+      fontconfig
+    ]
+    ++ lib.optionals enableAlsaWidget [ alsa-lib ]
+    ++ lib.optionals enablePulseaudioWidget [ libpulseaudio ];
+
+  cargoPatches = [
+    ./0001-Update-Cargo.lock.patch
+    ./0002-Update-fontconfig.patch
+  ];
+
+  cargoSha256 = "sha256-Y7nhj8VpO6sEzVkM3uPv8Tlk2jPn3c/uPJqFc/HjHI0=";
+
+  dontPatchELF = true;
+
+  postInstall = ''
+    patchelf --set-rpath ${libraryPath}:$(patchelf --print-rpath $out/bin/wldash) $out/bin/wldash
+  '';
+
+  meta = {
+    description = "Wayland launcher/dashboard";
+    homepage = "https://github.com/kennylevinsen/wldash";
+    license = lib.licenses.gpl3;
+    maintainers = with lib.maintainers; [ bbenno ];
+    mainProgram = "wldash";
+    platforms = lib.platforms.linux;
+    sourceProvenance = with lib.sourceTypes; [ fromSource ];
+  };
+}
diff --git a/pkgs/by-name/wo/woof-doom/package.nix b/pkgs/by-name/wo/woof-doom/package.nix
new file mode 100644
index 0000000000000..06d51d2cd1cec
--- /dev/null
+++ b/pkgs/by-name/wo/woof-doom/package.nix
@@ -0,0 +1,51 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  cmake,
+  SDL2,
+  SDL2_net,
+  openal,
+  libsndfile,
+  fluidsynth,
+  alsa-lib,
+  libxmp,
+  python3,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "woof-doom";
+  version = "14.5.0";
+
+  src = fetchFromGitHub {
+    owner = "fabiangreffrath";
+    repo = "woof";
+    rev = "woof_${finalAttrs.version}";
+    hash = "sha256-LA4blTlee0+nRK066hj19Zm/FL2qhaZ9Y5JMfMj3IRU=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    python3
+  ];
+
+  buildInputs = [
+    SDL2
+    SDL2_net
+    alsa-lib
+    fluidsynth
+    libsndfile
+    libxmp
+    openal
+  ];
+
+  meta = {
+    description = "Woof! is a continuation of the Boom/MBF bloodline of Doom source ports";
+    homepage = "https://github.com/fabiangreffrath/woof";
+    changelog = "https://github.com/fabiangreffrath/woof/blob/${finalAttrs.src.rev}/CHANGELOG.md";
+    license = lib.licenses.gpl2Only;
+    maintainers = with lib.maintainers; [ keenanweaver ];
+    mainProgram = "woof";
+    platforms = with lib.platforms; darwin ++ linux ++ windows;
+  };
+})
diff --git a/pkgs/by-name/ya/yamlscript/package.nix b/pkgs/by-name/ya/yamlscript/package.nix
index eb67d09dbb850..603f6c88371fa 100644
--- a/pkgs/by-name/ya/yamlscript/package.nix
+++ b/pkgs/by-name/ya/yamlscript/package.nix
@@ -2,11 +2,11 @@
 
 buildGraalvmNativeImage rec {
   pname = "yamlscript";
-  version = "0.1.58";
+  version = "0.1.59";
 
   src = fetchurl {
     url = "https://github.com/yaml/yamlscript/releases/download/${version}/yamlscript.cli-${version}-standalone.jar";
-    hash = "sha256-rARUkbVq77uPrQZwfQ0NNM4XwYaVhSinLi0sCoVR63E=";
+    hash = "sha256-I5Z9QB8ZmTyeMs/WxUhJZM65VpUIx+t7QKzCRuRdRG4=";
   };
 
   executable = "ys";
diff --git a/pkgs/by-name/ze/zed-editor/Cargo.lock b/pkgs/by-name/ze/zed-editor/Cargo.lock
index 707a06a3bb611..3aadb811b9a0e 100644
--- a/pkgs/by-name/ze/zed-editor/Cargo.lock
+++ b/pkgs/by-name/ze/zed-editor/Cargo.lock
@@ -224,10 +224,12 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "futures 0.3.28",
+ "http 0.1.0",
+ "isahc",
+ "schemars",
  "serde",
  "serde_json",
  "tokio",
- "util",
 ]
 
 [[package]]
@@ -238,9 +240,9 @@ checksum = "e78f17bacc1bc7b91fef7b1885c10772eb2b9e4e989356f6f0f6a972240f97cd"
 
 [[package]]
 name = "anyhow"
-version = "1.0.75"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
+checksum = "25bdb32cbbdce2b519a9cd7df3a678443100e265d5e25ca763b7572a5104f5f3"
 
 [[package]]
 name = "approx"
@@ -332,7 +334,9 @@ dependencies = [
 name = "assistant"
 version = "0.1.0"
 dependencies = [
+ "anthropic",
  "anyhow",
+ "cargo_toml",
  "chrono",
  "client",
  "collections",
@@ -344,6 +348,7 @@ dependencies = [
  "fs",
  "futures 0.3.28",
  "gpui",
+ "http 0.1.0",
  "indoc",
  "language",
  "log",
@@ -364,6 +369,7 @@ dependencies = [
  "telemetry_events",
  "theme",
  "tiktoken-rs",
+ "toml 0.8.10",
  "ui",
  "util",
  "uuid",
@@ -377,26 +383,29 @@ dependencies = [
  "anyhow",
  "assets",
  "assistant_tooling",
+ "chrono",
  "client",
  "collections",
  "editor",
  "env_logger",
  "feature_flags",
+ "file_icons",
  "fs",
  "futures 0.3.28",
  "fuzzy",
  "gpui",
+ "http 0.1.0",
  "language",
  "languages",
  "log",
- "nanoid",
+ "markdown",
  "node_runtime",
  "open_ai",
  "picker",
  "project",
  "rand 0.8.5",
+ "regex",
  "release_channel",
- "rich_text",
  "schemars",
  "semantic_index",
  "serde",
@@ -405,6 +414,7 @@ dependencies = [
  "story",
  "theme",
  "ui",
+ "unindent",
  "util",
  "workspace",
 ]
@@ -417,12 +427,15 @@ dependencies = [
  "collections",
  "futures 0.3.28",
  "gpui",
+ "log",
  "project",
+ "repair_json",
  "schemars",
  "serde",
  "serde_json",
  "settings",
  "sum_tree",
+ "ui",
  "unindent",
  "util",
 ]
@@ -482,6 +495,7 @@ version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a116f46a969224200a0a97f29cfd4c50e7534e4b4826bd23ea2c3c533039c82c"
 dependencies = [
+ "deflate64",
  "flate2",
  "futures-core",
  "futures-io",
@@ -613,6 +627,18 @@ dependencies = [
 ]
 
 [[package]]
+name = "async-native-tls"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9343dc5acf07e79ff82d0c37899f079db3534d99f189a1837c8e549c99405bec"
+dependencies = [
+ "futures-util",
+ "native-tls",
+ "thiserror",
+ "url",
+]
+
+[[package]]
 name = "async-net"
 version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -806,7 +832,7 @@ version = "0.16.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5682ea0913e5c20780fe5785abacb85a411e7437bf52a1bedb93ddb3972cb8dd"
 dependencies = [
- "async-native-tls",
+ "async-native-tls 0.3.3",
  "async-std",
  "futures-io",
  "futures-util",
@@ -816,6 +842,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "async_zip"
+version = "0.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b9f7252833d5ed4b00aa9604b563529dd5e11de9c23615de2dcdf91eb87b52"
+dependencies = [
+ "async-compression",
+ "crc32fast",
+ "futures-lite 2.2.0",
+ "pin-project",
+ "thiserror",
+]
+
+[[package]]
 name = "atoi"
 version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -869,6 +908,7 @@ dependencies = [
  "db",
  "editor",
  "gpui",
+ "http 0.1.0",
  "isahc",
  "log",
  "markdown_preview",
@@ -914,7 +954,7 @@ dependencies = [
  "hex",
  "http 0.2.9",
  "hyper",
- "ring 0.17.7",
+ "ring",
  "time",
  "tokio",
  "tracing",
@@ -1074,7 +1114,7 @@ dependencies = [
  "once_cell",
  "p256",
  "percent-encoding",
- "ring 0.17.7",
+ "ring",
  "sha2 0.10.7",
  "subtle",
  "time",
@@ -1261,7 +1301,7 @@ checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf"
 dependencies = [
  "async-trait",
  "axum-core",
- "base64 0.21.4",
+ "base64 0.21.7",
  "bitflags 1.3.2",
  "bytes 1.5.0",
  "futures-util",
@@ -1356,9 +1396,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
 
 [[package]]
 name = "base64"
-version = "0.21.4"
+version = "0.21.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
 [[package]]
 name = "base64"
@@ -1490,7 +1530,7 @@ dependencies = [
 [[package]]
 name = "blade-graphics"
 version = "0.4.0"
-source = "git+https://github.com/kvark/blade?rev=f5766863de9dcc092e90fdbbc5e0007a99e7f9bf#f5766863de9dcc092e90fdbbc5e0007a99e7f9bf"
+source = "git+https://github.com/kvark/blade?rev=e35b2d41f221a48b75f7cf2e78a81e7ecb7a383c#e35b2d41f221a48b75f7cf2e78a81e7ecb7a383c"
 dependencies = [
  "ash",
  "ash-window",
@@ -1520,7 +1560,7 @@ dependencies = [
 [[package]]
 name = "blade-macros"
 version = "0.2.1"
-source = "git+https://github.com/kvark/blade?rev=f5766863de9dcc092e90fdbbc5e0007a99e7f9bf#f5766863de9dcc092e90fdbbc5e0007a99e7f9bf"
+source = "git+https://github.com/kvark/blade?rev=e35b2d41f221a48b75f7cf2e78a81e7ecb7a383c#e35b2d41f221a48b75f7cf2e78a81e7ecb7a383c"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1736,6 +1776,7 @@ dependencies = [
  "fs",
  "futures 0.3.28",
  "gpui",
+ "http 0.1.0",
  "language",
  "live_kit_client",
  "log",
@@ -1852,6 +1893,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "cargo_toml"
+version = "0.20.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8cb1d556b8b8f36e5ca74938008be3ac102f5dcb5b68a0477e4249ae2291cd3"
+dependencies = [
+ "serde",
+ "toml 0.8.10",
+]
+
+[[package]]
 name = "cast"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1938,6 +1989,7 @@ dependencies = [
  "collections",
  "futures 0.3.28",
  "gpui",
+ "http 0.1.0",
  "language",
  "log",
  "rand 0.8.5",
@@ -2101,7 +2153,11 @@ dependencies = [
  "clap 4.4.4",
  "core-foundation",
  "core-services",
+ "exec",
+ "fork",
  "ipc-channel",
+ "libc",
+ "once_cell",
  "plist",
  "release_channel",
  "serde",
@@ -2156,6 +2212,7 @@ name = "client"
 version = "0.1.0"
 dependencies = [
  "anyhow",
+ "async-native-tls 0.5.0",
  "async-recursion 0.3.2",
  "async-tungstenite",
  "chrono",
@@ -2164,6 +2221,7 @@ dependencies = [
  "feature_flags",
  "futures 0.3.28",
  "gpui",
+ "http 0.1.0",
  "lazy_static",
  "log",
  "once_cell",
@@ -2294,6 +2352,7 @@ dependencies = [
  "gpui",
  "headless",
  "hex",
+ "http 0.1.0",
  "indoc",
  "language",
  "live_kit_client",
@@ -2301,6 +2360,7 @@ dependencies = [
  "log",
  "lsp",
  "menu",
+ "multi_buffer",
  "nanoid",
  "node_runtime",
  "notifications",
@@ -2352,7 +2412,6 @@ dependencies = [
  "call",
  "channel",
  "client",
- "clock",
  "collections",
  "db",
  "dev_server_projects",
@@ -2362,6 +2421,7 @@ dependencies = [
  "futures 0.3.28",
  "fuzzy",
  "gpui",
+ "http 0.1.0",
  "language",
  "lazy_static",
  "menu",
@@ -2531,6 +2591,7 @@ dependencies = [
  "fs",
  "futures 0.3.28",
  "gpui",
+ "http 0.1.0",
  "indoc",
  "language",
  "lsp",
@@ -3111,6 +3172,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "deflate64"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83ace6c86376be0b6cdcf3fb41882e81d94b31587573d1cfa9d01cd06bba210d"
+
+[[package]]
 name = "der"
 version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3383,6 +3450,7 @@ dependencies = [
  "fuzzy",
  "git",
  "gpui",
+ "http 0.1.0",
  "indoc",
  "itertools 0.11.0",
  "language",
@@ -3553,6 +3621,17 @@ dependencies = [
 
 [[package]]
 name = "errno"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
+dependencies = [
+ "errno-dragonfly",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "errno"
 version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
@@ -3562,6 +3641,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "errno-dragonfly"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
 name = "etagere"
 version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3640,6 +3729,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "exec"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "886b70328cba8871bfc025858e1de4be16b1d5088f2ba50b57816f4210672615"
+dependencies = [
+ "errno 0.2.8",
+ "libc",
+]
+
+[[package]]
 name = "extension"
 version = "0.1.0"
 dependencies = [
@@ -3655,6 +3754,7 @@ dependencies = [
  "fs",
  "futures 0.3.28",
  "gpui",
+ "http 0.1.0",
  "isahc",
  "language",
  "log",
@@ -3735,9 +3835,9 @@ checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649"
 
 [[package]]
 name = "fancy-regex"
-version = "0.11.0"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2"
+checksum = "7493d4c459da9f84325ad297371a6b2b8a162800873a22e3b6b6512e61d18c05"
 dependencies = [
  "bit-set",
  "regex",
@@ -3802,6 +3902,7 @@ dependencies = [
  "editor",
  "futures 0.3.28",
  "gpui",
+ "http 0.1.0",
  "human_bytes",
  "isahc",
  "language",
@@ -4040,6 +4141,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
 
 [[package]]
+name = "fork"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60e74d3423998a57e9d906e49252fb79eb4a04d5cdfe188fb1b7ff9fc076a8ed"
+dependencies = [
+ "libc",
+]
+
+[[package]]
 name = "form_urlencoded"
 version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4096,7 +4206,7 @@ dependencies = [
  "text",
  "time",
  "util",
- "windows 0.53.0",
+ "windows 0.56.0",
 ]
 
 [[package]]
@@ -4401,6 +4511,7 @@ dependencies = [
  "derive_more",
  "git2",
  "gpui",
+ "http 0.1.0",
  "lazy_static",
  "log",
  "parking_lot",
@@ -4415,7 +4526,7 @@ dependencies = [
  "unindent",
  "url",
  "util",
- "windows 0.53.0",
+ "windows 0.56.0",
 ]
 
 [[package]]
@@ -4440,6 +4551,7 @@ dependencies = [
  "futures 0.3.28",
  "git",
  "gpui",
+ "http 0.1.0",
  "isahc",
  "pretty_assertions",
  "regex",
@@ -4447,7 +4559,6 @@ dependencies = [
  "serde_json",
  "unindent",
  "url",
- "util",
 ]
 
 [[package]]
@@ -4525,9 +4636,9 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "futures 0.3.28",
+ "http 0.1.0",
  "serde",
  "serde_json",
- "util",
 ]
 
 [[package]]
@@ -4595,6 +4706,7 @@ dependencies = [
  "foreign-types 0.5.0",
  "futures 0.3.28",
  "gpui_macros",
+ "http 0.1.0",
  "image",
  "itertools 0.11.0",
  "lazy_static",
@@ -4637,7 +4749,8 @@ dependencies = [
  "wayland-cursor",
  "wayland-protocols",
  "wayland-protocols-plasma",
- "windows 0.53.0",
+ "windows 0.56.0",
+ "windows-core 0.56.0",
  "x11rb",
  "xkbcommon",
 ]
@@ -4653,9 +4766,9 @@ dependencies = [
 
 [[package]]
 name = "grid"
-version = "0.11.0"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1df00eed8d1f0db937f6be10e46e8072b0671accb504cf0f959c5c52c679f5b9"
+checksum = "d196ffc1627db18a531359249b2bf8416178d84b729f3cebeb278f285fb9b58c"
 
 [[package]]
 name = "group"
@@ -4740,7 +4853,7 @@ version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270"
 dependencies = [
- "base64 0.21.4",
+ "base64 0.21.7",
  "bytes 1.5.0",
  "headers-core",
  "http 0.2.9",
@@ -4764,7 +4877,6 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "client",
- "ctrlc",
  "fs",
  "futures 0.3.28",
  "gpui",
@@ -4776,6 +4888,7 @@ dependencies = [
  "rpc",
  "settings",
  "shellexpand",
+ "signal-hook",
  "util",
 ]
 
@@ -4915,6 +5028,20 @@ checksum = "4d13cdbd5dbb29f9c88095bbdc2590c9cba0d0a1269b983fef6b2cdd7e9f4db1"
 
 [[package]]
 name = "http"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "futures 0.3.28",
+ "futures-lite 1.13.0",
+ "isahc",
+ "log",
+ "serde",
+ "serde_json",
+ "url",
+]
+
+[[package]]
+name = "http"
 version = "0.2.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
@@ -5530,6 +5657,7 @@ dependencies = [
  "git",
  "globset",
  "gpui",
+ "http 0.1.0",
  "indoc",
  "itertools 0.11.0",
  "lazy_static",
@@ -5620,6 +5748,7 @@ dependencies = [
  "feature_flags",
  "futures 0.3.28",
  "gpui",
+ "http 0.1.0",
  "language",
  "lazy_static",
  "log",
@@ -5642,7 +5771,6 @@ dependencies = [
  "tree-sitter-c",
  "tree-sitter-cpp",
  "tree-sitter-css",
- "tree-sitter-embedded-template",
  "tree-sitter-go",
  "tree-sitter-gomod",
  "tree-sitter-gowork",
@@ -5652,7 +5780,6 @@ dependencies = [
  "tree-sitter-proto",
  "tree-sitter-python",
  "tree-sitter-regex",
- "tree-sitter-ruby",
  "tree-sitter-rust",
  "tree-sitter-typescript",
  "tree-sitter-yaml",
@@ -5905,7 +6032,7 @@ dependencies = [
  "serde_json",
  "smol",
  "util",
- "windows 0.53.0",
+ "windows 0.56.0",
 ]
 
 [[package]]
@@ -5974,6 +6101,27 @@ dependencies = [
 ]
 
 [[package]]
+name = "markdown"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "assets",
+ "env_logger",
+ "futures 0.3.28",
+ "gpui",
+ "language",
+ "languages",
+ "linkify",
+ "log",
+ "node_runtime",
+ "pulldown-cmark",
+ "settings",
+ "theme",
+ "ui",
+ "util",
+]
+
+[[package]]
 name = "markdown_preview"
 version = "0.1.0"
 dependencies = [
@@ -6193,6 +6341,7 @@ dependencies = [
  "log",
  "parking_lot",
  "rand 0.8.5",
+ "serde",
  "settings",
  "smallvec",
  "sum_tree",
@@ -6339,15 +6488,21 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "async-compression",
+ "async-std",
  "async-tar",
  "async-trait",
+ "async_zip",
  "futures 0.3.28",
+ "http 0.1.0",
  "log",
  "semver",
  "serde",
  "serde_json",
  "smol",
+ "tempfile",
  "util",
+ "walkdir",
+ "windows 0.56.0",
 ]
 
 [[package]]
@@ -6733,10 +6888,11 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "futures 0.3.28",
+ "http 0.1.0",
+ "isahc",
  "schemars",
  "serde",
  "serde_json",
- "util",
 ]
 
 [[package]]
@@ -6772,6 +6928,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
+name = "openssl-src"
+version = "300.2.3+3.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843"
+dependencies = [
+ "cc",
+]
+
+[[package]]
 name = "openssl-sys"
 version = "0.9.93"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6779,6 +6944,7 @@ checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d"
 dependencies = [
  "cc",
  "libc",
+ "openssl-src",
  "pkg-config",
  "vcpkg",
 ]
@@ -7217,7 +7383,7 @@ version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9a4a0cfc5fb21a09dc6af4bf834cf10d4a32fccd9e2ea468c4b1751a097487aa"
 dependencies = [
- "base64 0.21.4",
+ "base64 0.21.7",
  "indexmap 1.9.3",
  "line-wrap",
  "quick-xml 0.30.0",
@@ -7473,6 +7639,7 @@ dependencies = [
  "git2",
  "globset",
  "gpui",
+ "http 0.1.0",
  "itertools 0.11.0",
  "language",
  "log",
@@ -8002,12 +8169,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "repair_json"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ee191e184125fe72cb59b74160e25584e3908f2aaa84cbda1e161347102aa15"
+dependencies = [
+ "thiserror",
+]
+
+[[package]]
 name = "reqwest"
 version = "0.11.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1"
 dependencies = [
- "base64 0.21.4",
+ "base64 0.21.7",
  "bytes 1.5.0",
  "encoding_rs",
  "futures-core",
@@ -8088,21 +8264,6 @@ dependencies = [
 
 [[package]]
 name = "ring"
-version = "0.16.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
-dependencies = [
- "cc",
- "libc",
- "once_cell",
- "spin 0.5.2",
- "untrusted 0.7.1",
- "web-sys",
- "winapi",
-]
-
-[[package]]
-name = "ring"
 version = "0.17.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
@@ -8111,7 +8272,7 @@ dependencies = [
  "getrandom 0.2.10",
  "libc",
  "spin 0.9.8",
- "untrusted 0.9.0",
+ "untrusted",
  "windows-sys 0.48.0",
 ]
 
@@ -8264,9 +8425,9 @@ dependencies = [
 
 [[package]]
 name = "rust-embed"
-version = "8.2.0"
+version = "8.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a82c0bbc10308ed323529fd3c1dce8badda635aa319a5ff0e6466f33b8101e3f"
+checksum = "19549741604902eb99a7ed0ee177a0663ee1eda51a29f71401f166e47e77806a"
 dependencies = [
  "rust-embed-impl",
  "rust-embed-utils",
@@ -8275,9 +8436,9 @@ dependencies = [
 
 [[package]]
 name = "rust-embed-impl"
-version = "8.2.0"
+version = "8.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6227c01b1783cdfee1bcf844eb44594cd16ec71c35305bf1c9fb5aade2735e16"
+checksum = "cb9f96e283ec64401f30d3df8ee2aaeb2561f34c824381efa24a35f79bf40ee4"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -8288,9 +8449,9 @@ dependencies = [
 
 [[package]]
 name = "rust-embed-utils"
-version = "8.2.0"
+version = "8.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cb0a25bfbb2d4b4402179c2cf030387d9990857ce08a32592c6238db9fa8665"
+checksum = "38c74a686185620830701348de757fd36bef4aa9680fd23c49fc539ddcc1af32"
 dependencies = [
  "globset",
  "sha2 0.10.7",
@@ -8341,7 +8502,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
 dependencies = [
  "bitflags 1.3.2",
- "errno",
+ "errno 0.3.8",
  "io-lifetimes 1.0.11",
  "libc",
  "linux-raw-sys 0.3.8",
@@ -8355,7 +8516,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89"
 dependencies = [
  "bitflags 2.4.2",
- "errno",
+ "errno 0.3.8",
  "itoa",
  "libc",
  "linux-raw-sys 0.4.12",
@@ -8369,19 +8530,19 @@ version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a25c3aad9fc1424eb82c88087789a7d938e1829724f3e4043163baf0d13cfc12"
 dependencies = [
- "errno",
+ "errno 0.3.8",
  "libc",
  "rustix 0.38.32",
 ]
 
 [[package]]
 name = "rustls"
-version = "0.21.10"
+version = "0.21.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
+checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e"
 dependencies = [
  "log",
- "ring 0.17.7",
+ "ring",
  "rustls-webpki",
  "sct",
 ]
@@ -8404,7 +8565,7 @@ version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"
 dependencies = [
- "base64 0.21.4",
+ "base64 0.21.7",
 ]
 
 [[package]]
@@ -8413,8 +8574,8 @@ version = "0.101.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
 dependencies = [
- "ring 0.17.7",
- "untrusted 0.9.0",
+ "ring",
+ "untrusted",
 ]
 
 [[package]]
@@ -8538,12 +8699,12 @@ dependencies = [
 
 [[package]]
 name = "sct"
-version = "0.7.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
+checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
 dependencies = [
- "ring 0.16.20",
- "untrusted 0.7.1",
+ "ring",
+ "untrusted",
 ]
 
 [[package]]
@@ -8735,6 +8896,7 @@ dependencies = [
  "futures-batch",
  "gpui",
  "heed",
+ "http 0.1.0",
  "language",
  "languages",
  "log",
@@ -9414,7 +9576,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "864b869fdf56263f4c95c45483191ea0af340f9f3e3e7b4d57a61c7c87a970db"
 dependencies = [
  "atoi",
- "base64 0.21.4",
+ "base64 0.21.7",
  "bigdecimal",
  "bitflags 2.4.2",
  "byteorder",
@@ -9461,7 +9623,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "eb7ae0e6a97fb3ba33b23ac2671a5ce6e3cabe003f451abd5a56e7951d975624"
 dependencies = [
  "atoi",
- "base64 0.21.4",
+ "base64 0.21.7",
  "bigdecimal",
  "bitflags 2.4.2",
  "byteorder",
@@ -9650,6 +9812,7 @@ dependencies = [
  "env_logger",
  "futures 0.3.28",
  "gpui",
+ "http 0.1.0",
  "language",
  "log",
  "postage",
@@ -9670,6 +9833,7 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "futures 0.3.28",
+ "http 0.1.0",
  "serde",
  "serde_json",
  "smol",
@@ -9873,12 +10037,14 @@ dependencies = [
 
 [[package]]
 name = "taffy"
-version = "0.3.11"
-source = "git+https://github.com/DioxusLabs/taffy?rev=1876f72bee5e376023eaa518aa7b8a34c769bd1b#1876f72bee5e376023eaa518aa7b8a34c769bd1b"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b2e140b328c6cb5e744bb2c65910b47df86b239afc793ee2c52262569cf9225"
 dependencies = [
  "arrayvec",
  "grid",
  "num-traits",
+ "serde",
  "slotmap",
 ]
 
@@ -9927,6 +10093,7 @@ dependencies = [
  "fuzzy",
  "gpui",
  "language",
+ "menu",
  "picker",
  "project",
  "schemars",
@@ -10005,7 +10172,7 @@ dependencies = [
  "theme",
  "thiserror",
  "util",
- "windows 0.53.0",
+ "windows 0.56.0",
 ]
 
 [[package]]
@@ -10049,6 +10216,7 @@ dependencies = [
  "ctor",
  "env_logger",
  "gpui",
+ "http 0.1.0",
  "lazy_static",
  "log",
  "parking_lot",
@@ -10136,18 +10304,18 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.48"
+version = "1.0.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7"
+checksum = "579e9083ca58dd9dcf91a9923bb9054071b9ebbd800b342194c9feb0ee89fc18"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.48"
+version = "1.0.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35"
+checksum = "e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -10177,12 +10345,12 @@ dependencies = [
 
 [[package]]
 name = "tiktoken-rs"
-version = "0.5.7"
+version = "0.5.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4427b6b1c6b38215b92dd47a83a0ecc6735573d0a5a4c14acc0ac5b33b28adb"
+checksum = "c314e7ce51440f9e8f5a497394682a57b7c323d0f4d0a6b1b13c429056e0e234"
 dependencies = [
  "anyhow",
- "base64 0.21.4",
+ "base64 0.21.7",
  "bstr",
  "fancy-regex",
  "lazy_static",
@@ -10917,7 +11085,7 @@ dependencies = [
  "story",
  "strum",
  "theme",
- "windows 0.53.0",
+ "windows 0.56.0",
 ]
 
 [[package]]
@@ -11023,12 +11191,6 @@ checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c"
 
 [[package]]
 name = "untrusted"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
-
-[[package]]
-name = "untrusted"
 version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
@@ -11097,7 +11259,6 @@ dependencies = [
  "futures-lite 1.13.0",
  "git2",
  "globset",
- "isahc",
  "lazy_static",
  "log",
  "rand 0.8.5",
@@ -11109,7 +11270,6 @@ dependencies = [
  "tempfile",
  "tendril",
  "unicase",
- "url",
 ]
 
 [[package]]
@@ -11209,6 +11369,7 @@ dependencies = [
  "language",
  "log",
  "lsp",
+ "multi_buffer",
  "nvim-rs",
  "parking_lot",
  "regex",
@@ -11293,9 +11454,9 @@ checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
 
 [[package]]
 name = "walkdir"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
 dependencies = [
  "same-file",
  "winapi-util",
@@ -12057,19 +12218,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
 dependencies = [
  "windows-core 0.52.0",
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
 name = "windows"
-version = "0.53.0"
+version = "0.56.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "efc5cf48f83140dcaab716eeaea345f9e93d0018fb81162753a3f76c3397b538"
+checksum = "1de69df01bdf1ead2f4ac895dc77c9351aefff65b2f3db429a343f9cbf05e132"
 dependencies = [
- "windows-core 0.53.0",
- "windows-implement",
- "windows-interface",
- "windows-targets 0.52.4",
+ "windows-core 0.56.0",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -12078,24 +12237,26 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
 name = "windows-core"
-version = "0.53.0"
+version = "0.56.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9dcc5b895a6377f1ab9fa55acedab1fd5ac0db66ad1e6c7f47e28a22e446a5dd"
+checksum = "4698e52ed2d08f8658ab0c39512a7c00ee5fe2688c65f8c0a4f06750d729f2a6"
 dependencies = [
+ "windows-implement",
+ "windows-interface",
  "windows-result",
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
 name = "windows-implement"
-version = "0.53.0"
+version = "0.56.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "942ac266be9249c84ca862f0a164a39533dc2f6f33dc98ec89c8da99b82ea0bd"
+checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -12104,9 +12265,9 @@ dependencies = [
 
 [[package]]
 name = "windows-interface"
-version = "0.53.0"
+version = "0.56.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da33557140a288fae4e1d5f8873aaf9eb6613a9cf82c3e070223ff177f598b60"
+checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -12115,11 +12276,11 @@ dependencies = [
 
 [[package]]
 name = "windows-result"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd19df78e5168dfb0aedc343d1d1b8d422ab2db6756d2dc3fef75035402a3f64"
+checksum = "749f0da9cc72d82e600d8d2e44cadd0b9eedb9038f71a1c58556ac1c5791813b"
 dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -12146,7 +12307,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -12181,17 +12342,18 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.4",
- "windows_aarch64_msvc 0.52.4",
- "windows_i686_gnu 0.52.4",
- "windows_i686_msvc 0.52.4",
- "windows_x86_64_gnu 0.52.4",
- "windows_x86_64_gnullvm 0.52.4",
- "windows_x86_64_msvc 0.52.4",
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
 ]
 
 [[package]]
@@ -12208,9 +12370,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -12226,9 +12388,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -12244,9 +12406,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.4"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -12262,9 +12430,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -12280,9 +12448,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -12298,9 +12466,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -12316,9 +12484,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
 
 [[package]]
 name = "winnow"
@@ -12510,6 +12678,7 @@ dependencies = [
  "fs",
  "futures 0.3.28",
  "gpui",
+ "http 0.1.0",
  "itertools 0.11.0",
  "language",
  "lazy_static",
@@ -12545,6 +12714,7 @@ dependencies = [
  "git",
  "git2",
  "gpui",
+ "http 0.1.0",
  "ignore",
  "itertools 0.11.0",
  "language",
@@ -12663,7 +12833,9 @@ name = "xtask"
 version = "0.1.0"
 dependencies = [
  "anyhow",
+ "cargo_toml",
  "clap 4.4.4",
+ "toml 0.8.10",
 ]
 
 [[package]]
@@ -12756,7 +12928,7 @@ dependencies = [
 
 [[package]]
 name = "zed"
-version = "0.135.2"
+version = "0.136.2"
 dependencies = [
  "activity_indicator",
  "anyhow",
@@ -12773,7 +12945,6 @@ dependencies = [
  "clap 4.4.4",
  "cli",
  "client",
- "clock",
  "collab_ui",
  "collections",
  "command_palette",
@@ -12795,6 +12966,7 @@ dependencies = [
  "go_to_line",
  "gpui",
  "headless",
+ "http 0.1.0",
  "image_viewer",
  "inline_completion_button",
  "install_cli",
@@ -12804,6 +12976,7 @@ dependencies = [
  "language_selector",
  "language_tools",
  "languages",
+ "libc",
  "log",
  "markdown_preview",
  "menu",
@@ -12856,7 +13029,7 @@ dependencies = [
 
 [[package]]
 name = "zed_astro"
-version = "0.0.1"
+version = "0.0.2"
 dependencies = [
  "zed_extension_api 0.0.4",
 ]
@@ -12948,7 +13121,7 @@ dependencies = [
 
 [[package]]
 name = "zed_gleam"
-version = "0.1.1"
+version = "0.1.2"
 dependencies = [
  "zed_extension_api 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
@@ -12990,7 +13163,7 @@ dependencies = [
 
 [[package]]
 name = "zed_php"
-version = "0.0.2"
+version = "0.0.3"
 dependencies = [
  "zed_extension_api 0.0.4",
 ]
@@ -13010,6 +13183,13 @@ dependencies = [
 ]
 
 [[package]]
+name = "zed_ruby"
+version = "0.0.3"
+dependencies = [
+ "zed_extension_api 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
 name = "zed_svelte"
 version = "0.0.1"
 dependencies = [
@@ -13039,7 +13219,7 @@ dependencies = [
 
 [[package]]
 name = "zed_vue"
-version = "0.0.1"
+version = "0.0.2"
 dependencies = [
  "zed_extension_api 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
diff --git a/pkgs/by-name/ze/zed-editor/package.nix b/pkgs/by-name/ze/zed-editor/package.nix
index 5b0e8f746e612..27271326eb60f 100644
--- a/pkgs/by-name/ze/zed-editor/package.nix
+++ b/pkgs/by-name/ze/zed-editor/package.nix
@@ -4,6 +4,7 @@
   fetchFromGitHub,
   copyDesktopItems,
   curl,
+  perl,
   pkg-config,
   protobuf,
   xcbuild,
@@ -26,13 +27,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "zed";
-  version = "0.135.2";
+  version = "0.136.2";
 
   src = fetchFromGitHub {
     owner = "zed-industries";
     repo = "zed";
     rev = "refs/tags/v${version}";
-    hash = "sha256-XnfTrcLKjJH42l9L9KxogMhNQ2u/8G4fyd6i/0dO5S0=";
+    hash = "sha256-w2g9xkqB98XLED1Z9vIjD1fhOz2p6LxnVgf6xWSFObA=";
     fetchSubmodules = true;
   };
 
@@ -40,13 +41,12 @@ rustPlatform.buildRustPackage rec {
     lockFile = ./Cargo.lock;
     outputHashes = {
       "async-pipe-0.1.3" = "sha256-g120X88HGT8P6GNCrzpS5SutALx5H+45Sf4iSSxzctE=";
-      "blade-graphics-0.4.0" = "sha256-U8278YkskWE1E60JVTx4hRv4322EV9jz8fzJkBTG3R8=";
+      "blade-graphics-0.4.0" = "sha256-w5BTv/40Zy94dmoZUpVVWrhzR2IaGAIJ0Ftsw1v/R9Y=";
       "font-kit-0.11.0" = "sha256-+4zMzjFyMS60HfLMEXGfXqKn6P+pOngLA45udV09DM8=";
       "heed-0.20.0-alpha.9" = "sha256-8bzoMmfKS+6AmeTzh0/F7WM9OBdIex+NYFER28bpA/s=";
       "lsp-types-0.94.1" = "sha256-kplgPsafrgZFMI1D9pQCwmg+FKMn5HNWLbcgdXHUFVU=";
       "nvim-rs-0.6.0-pre" = "sha256-bdWWuCsBv01mnPA5e5zRpq48BgOqaqIcAu+b7y1NnM8=";
       "pathfinder_simd-0.5.3" = "sha256-bakBcAQZJdHQPXybe0zoMzE49aOHENQY7/ZWZUMt+pM=";
-      "taffy-0.3.11" = "sha256-0hXOEj6IjSW8e1t+rvxBFX6V9XRum3QO2Des1XlHJEw=";
       "tree-sitter-0.20.100" = "sha256-xZDWAjNIhWC2n39H7jJdKDgyE/J6+MAVSa8dHtZ6CLE=";
       "tree-sitter-bash-0.20.4" = "sha256-VP7rJfE/k8KV1XN1w5f0YKjCnDMYU1go/up0zj1mabM=";
       "tree-sitter-cpp-0.20.0" = "sha256-2QYEFkpwcRmh2kf4qEAL2a5lGSa316CetOhF73e7rEM=";
@@ -68,6 +68,7 @@ rustPlatform.buildRustPackage rec {
   nativeBuildInputs = [
     copyDesktopItems
     curl
+    perl
     pkg-config
     protobuf
     rustPlatform.bindgenHook
@@ -127,11 +128,8 @@ rustPlatform.buildRustPackage rec {
   '';
 
   checkFlags = lib.optionals stdenv.hostPlatform.isLinux [
-    # Fails with "On 2823 Failed to find test1:A"
-    "--skip=test_base_keymap"
-    # Fails with "called `Result::unwrap()` on an `Err` value: Invalid keystroke `cmd-k`"
-    # https://github.com/zed-industries/zed/issues/10427
-    "--skip=test_disabled_keymap_binding"
+    # Fails on certain hosts (including Hydra) for unclear reason
+    "--skip=test_open_paths_action"
   ];
 
   postInstall = ''
diff --git a/pkgs/by-name/ze/zesarux/package.nix b/pkgs/by-name/ze/zesarux/package.nix
index 096f4bf2b0ec9..b75e4ade88ebf 100644
--- a/pkgs/by-name/ze/zesarux/package.nix
+++ b/pkgs/by-name/ze/zesarux/package.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , SDL2
 , aalib
 , alsa-lib
diff --git a/pkgs/by-name/zs/zsh-wd/package.nix b/pkgs/by-name/zs/zsh-wd/package.nix
new file mode 100644
index 0000000000000..c55830b655c2f
--- /dev/null
+++ b/pkgs/by-name/zs/zsh-wd/package.nix
@@ -0,0 +1,37 @@
+{ lib, stdenvNoCC, fetchFromGitHub, installShellFiles }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "wd";
+  version = "0.7.0";
+
+  src = fetchFromGitHub {
+    owner = "mfaerevaag";
+    repo = "wd";
+    rev = "v${version}";
+    sha256 = "sha256-u3n+JzInv8VajWAFXECuEOWuQurX8iWklwV2LG4Tj24=";
+  };
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  installPhase = ''
+    install -Dm755 wd.plugin.zsh $out/share/wd/wd.plugin.zsh
+    install -Dm755 wd.sh $out/share/wd/wd.sh
+    installManPage wd.1
+    installShellCompletion --zsh _wd.sh
+  '';
+
+  meta = with lib; {
+    description = "Jump to custom directories in zsh";
+    longDescription = ''
+      `wd` (warp directory) lets you jump to custom directories in zsh, without
+      using `cd`. Why? Because `cd` seems inefficient when the folder is
+      frequently visited or has a long path.
+    '';
+    homepage = "https://github.com/mfaerevaag/wd";
+    changelog = "https://github.com/mfaerevaag/wd/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = [ maintainers.zimeg ];
+    mainProgram = "wd";
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/data/fonts/iosevka/default.nix b/pkgs/data/fonts/iosevka/default.nix
index 5628df5393cfe..190170ebc28f4 100644
--- a/pkgs/data/fonts/iosevka/default.nix
+++ b/pkgs/data/fonts/iosevka/default.nix
@@ -55,16 +55,16 @@ assert (extraParameters != null) -> set != null;
 
 buildNpmPackage rec {
   pname = "Iosevka${toString set}";
-  version = "30.0.1";
+  version = "30.1.0";
 
   src = fetchFromGitHub {
     owner = "be5invis";
     repo = "iosevka";
     rev = "v${version}";
-    hash = "sha256-THs6kN5VZpTvzTK7w/sGQbxoEyyPwzl93JDOvwucgeo=";
+    hash = "sha256-HYoCf5rwkKMjMPYW7E7EJgPXfgk7nELQu+ur4N3PC8s=";
   };
 
-  npmDepsHash = "sha256-maDIkbe4BKY7XYOQNGdOalyTGdBXgIU5t0QjVJW6lvQ=";
+  npmDepsHash = "sha256-8EqIfgthhYkefAb+jFoL7Sk9/2gqwLwjZkc3WL35nYQ=";
 
   nativeBuildInputs = [
     remarshal
diff --git a/pkgs/data/fonts/monocraft/default.nix b/pkgs/data/fonts/monocraft/default.nix
index c1e4be656ce15..3af786b6da8e7 100644
--- a/pkgs/data/fonts/monocraft/default.nix
+++ b/pkgs/data/fonts/monocraft/default.nix
@@ -1,13 +1,13 @@
-{ stdenv, lib, fetchurl }:
+{ stdenvNoCC, lib, fetchurl }:
 
 let
-  version = "2.4";
+  version = "3.0";
   relArtifact = name: hash: fetchurl {
     inherit name hash;
     url = "https://github.com/IdreesInc/Monocraft/releases/download/v${version}/${name}";
   };
 in
-stdenv.mkDerivation {
+stdenvNoCC.mkDerivation {
   pname = "monocraft";
   inherit version;
 
@@ -18,16 +18,14 @@ stdenv.mkDerivation {
     (relArtifact "Monocraft-nerd-fonts-patched.ttf" "sha256-QxMp8UwcRjWySNHWoNeX2sX9teZ4+tCFj+DG41azsXw=")
   ];
 
-  sourceRoot = ".";
-  unpackCmd = ''cp "$curSrc" $(basename $curSrc)'';
-
+  dontUnpack = true;
   dontConfigure = true;
   dontBuild = true;
 
   installPhase = ''
     runHook preInstall
-    install -Dm644 -t $out/share/fonts/opentype *.otf
-    install -Dm644 -t $out/share/fonts/truetype *.ttf
+    find $srcs -name '*.otf' -exec install -Dm644 --target $out/share/fonts/opentype {} +
+    find $srcs -name '*.ttf' -exec install -Dm644 --target $out/share/fonts/truetype {} +
     runHook postInstall
   '';
 
diff --git a/pkgs/data/icons/whitesur-icon-theme/default.nix b/pkgs/data/icons/whitesur-icon-theme/default.nix
index 70f5357a89f84..588389f856ed2 100644
--- a/pkgs/data/icons/whitesur-icon-theme/default.nix
+++ b/pkgs/data/icons/whitesur-icon-theme/default.nix
@@ -27,13 +27,13 @@ lib.checkListOfEnum "${pname}: theme variants" [
 
 stdenvNoCC.mkDerivation rec {
   inherit pname;
-  version = "2024-04-22";
+  version = "2024-05-28";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    hash = "sha256-CnAnD5ky+LNcyE59O/iGeoe+1JyhtPM/XUHwU5d8FA4=";
+    hash = "sha256-60pz/ET3jorEui31Aq6I3LMTz0djwWUv7poEI0USzJw=";
   };
 
   nativeBuildInputs = [ gtk3 jdupes ];
diff --git a/pkgs/data/misc/hackage/pin.json b/pkgs/data/misc/hackage/pin.json
index fd08de133198d..e263b38146cd2 100644
--- a/pkgs/data/misc/hackage/pin.json
+++ b/pkgs/data/misc/hackage/pin.json
@@ -1,6 +1,6 @@
 {
-  "commit": "88d42dc0129b0e3f4f702149a58667c66add9262",
-  "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/88d42dc0129b0e3f4f702149a58667c66add9262.tar.gz",
-  "sha256": "0imff76qbg1hsvsdds6dc2wfip0prdsa0bixd5b575jr6yjlkirh",
-  "msg": "Update from Hackage at 2024-05-15T11:29:34Z"
+  "commit": "a71af8d538cda614baa0bcb3e44600061f815d57",
+  "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/a71af8d538cda614baa0bcb3e44600061f815d57.tar.gz",
+  "sha256": "0hsqzdfb89rqmplipz39x7m80czcvrmk42y05ifnqjhxn6q4v91l",
+  "msg": "Update from Hackage at 2024-05-20T16:06:03Z"
 }
diff --git a/pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix b/pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix
index e7b5f13e6a7a6..59ba5a80b3db6 100644
--- a/pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix
+++ b/pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "kde-rounded-corners";
-  version = "0.6.5";
+  version = "0.6.6";
 
   src = fetchFromGitHub {
     owner = "matinlotfali";
     repo = "KDE-Rounded-Corners";
     rev = "v${version}";
-    hash = "sha256-g7gNFv4/ighfxYz/VXF5KvcoT6t4lT5soDLlV3oAKvc=";
+    hash = "sha256-pmUuYD0RPyF5I2p5MBErziehBrfc5MswQVvfwl4ozg8=";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules wrapQtAppsHook ];
diff --git a/pkgs/data/themes/nordic/default.nix b/pkgs/data/themes/nordic/default.nix
index ce17fd9ffd8da..13d352c6b3e16 100644
--- a/pkgs/data/themes/nordic/default.nix
+++ b/pkgs/data/themes/nordic/default.nix
@@ -10,70 +10,70 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "nordic";
-  version = "2.2.0-unstable-2024-02-20";
+  version = "2.2.0-unstable-2024-05-24";
 
   srcs = [
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "58d5a8e10ae068b98a63e6de2791e289f417842d";
-      hash = "sha256-Z3e7DoakK6f+UMBr78gZ+NJPb5vuJCfDgPRYywFDYeg=";
+      rev = "2f6b72b7b6d7112bb147a5adeca307631dd698cb";
+      hash = "sha256-4GNEJTAS6EAPYyaNOZS1lGu67nobGmMOHoq8I5WaPcA=";
       name = "Nordic";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "cb7d95bd5438728f30f361a888dfb33b7f6ad28c";
-      hash = "sha256-ZWGmDiXjEt0UuALyw7cjTYgdw9kdJJKc0vkclbZkBvo=";
+      rev = "d92b503cdabb4cf263de4c3fd9afba889c65aad1";
+      hash = "sha256-foCWcKNdk9S1MijJOuw8jFV4gnDSNWmTjgSCU9GefzE=";
       name = "Nordic-standard-buttons";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "37b86a30ad3e048f87a689f2813aa28644035fa8";
-      hash = "sha256-+O8+30H6humVQTwgFL3uQkeo5gPYrokpAKbT56PX6YQ=";
+      rev = "b76c48252c9dc6171cccf63c0c412b9afe7fa89c";
+      hash = "sha256-q/duyEin377J1cxD5+uXlEbPN/S27ht2es/02wKoiEY=";
       name = "Nordic-darker";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "926b215d14394ff043f2d2969e730759af7acd86";
-      hash = "sha256-yR0DfmUW1rr38Zbwtr7TUYL6z8vTNyoj0vEhphbZieU=";
+      rev = "b8b16b451bf5fcfada98a92682a6ff97d93fc36f";
+      hash = "sha256-959P2xdpCLhNRedoakMiHXzj+H4SWX1Lb9w6yYRzGds=";
       name = "Nordic-darker-standard-buttons";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "1ae59d40ba8342fc14f3a55a2fb37446a8d10880";
-      hash = "sha256-tFIXPP5Ohw8atNIqvMtB7sLka+/tw+aSbjMdzKfI9r0=";
+      rev = "c45681eca7fce4c129063a0aae727d42b570fcfd";
+      hash = "sha256-8a4pMkyGt+WIVXLSsLKbxCP9i4RdZKX5lvwZB+BemSY=";
       name = "Nordic-bluish-accent";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "aaaa5dab0517f182a85a75d457da70d22e577b26";
-      hash = "sha256-J/nti2jxQ0VfTbp5WfrE0CN6Pvfg1edplL6/QPKUBzc=";
+      rev = "b07b6450ff2389f88ef5ad980a1ead47071b1d63";
+      hash = "sha256-+o46apK051UH6GbG/ugSgxI212MWEnYaVlDK9rWqPMU=";
       name = "Nordic-bluish-accent-standard-buttons";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = "${pname}-polar";
-      rev = "733d5ea57c6ecd8209ec0a928029e28b3f54f83d";
-      hash = "sha256-y3ge0DF0SdKFjH+mZdHDpK3YG7Ng3rN0y0Er2WBC6Sc=";
+      rev = "bc3e7554ab8e8d94e978691054b1b062696eb688";
+      hash = "sha256-tJX/oTEp/9pmzrINBWrnhS9n8JR40T1C0A4LhRLWU9A=";
       name = "Nordic-Polar";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = "${pname}-polar";
-      rev = "667dfe4f6e8157f30a4e0ea5dc1d17438520d6cf";
-      hash = "sha256-p7bY1r8Ik+jsIyjR75UFHw8XuiGz5LmT09txBLyZpx4=";
+      rev = "26b44080c2dbd1a9b576a24d1b14ae01b98519d0";
+      hash = "sha256-5gGiBL7ZKFSPZtnikfrdvrWKG9RkIHdPyWdHYnmSTvg=";
       name = "Nordic-Polar-standard-buttons";
     })
   ];
diff --git a/pkgs/data/themes/qogir/default.nix b/pkgs/data/themes/qogir/default.nix
index e435ce549450d..223e077bfe476 100644
--- a/pkgs/data/themes/qogir/default.nix
+++ b/pkgs/data/themes/qogir/default.nix
@@ -24,13 +24,13 @@ lib.checkListOfEnum "${pname}: tweaks" [ "image" "square" "round" ] tweaks
 
 stdenv.mkDerivation rec {
   inherit pname;
-  version = "2023-05-24";
+  version = "2024-05-22";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "L19pbmJJFr1xi4ZTp0ocxmdMvWmtkK2zquOFfbV+P5Q=";
+    sha256 = "Q9DWBzaLZjwXsYRa/oDIrccypO3TCbSRXTkbXWRmm70=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/deepin/go-package/dde-daemon/default.nix b/pkgs/desktops/deepin/go-package/dde-daemon/default.nix
index 4a63b779c4c5d..14fe7c03c3e38 100644
--- a/pkgs/desktops/deepin/go-package/dde-daemon/default.nix
+++ b/pkgs/desktops/deepin/go-package/dde-daemon/default.nix
@@ -64,23 +64,26 @@ buildGoModule rec {
 
   postPatch = ''
     substituteInPlace session/eventlog/{app_event.go,login_event.go} \
-      --replace "/bin/bash" "${runtimeShell}"
+      --replace-fail "/bin/bash" "${runtimeShell}"
 
     substituteInPlace inputdevices/layout_list.go \
-      --replace "/usr/share/X11/xkb" "${xkeyboard_config}/share/X11/xkb"
+      --replace-fail "/usr/share/X11/xkb" "${xkeyboard_config}/share/X11/xkb"
 
-    substituteInPlace bin/dde-system-daemon/wallpaper.go accounts1/user.go \
-      --replace "/usr/share/wallpapers" "/run/current-system/sw/share/wallpapers"
+    substituteInPlace accounts1/user.go \
+      --replace-fail "/usr/share/wallpapers" "/run/current-system/sw/share/wallpapers"
 
     substituteInPlace timedate1/zoneinfo/zone.go \
-      --replace "/usr/share/dde" "$out/share/dde" \
-      --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
+      --replace-fail "/usr/share/dde" "$out/share/dde" \
+      --replace-fail "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
 
     substituteInPlace accounts1/image_blur.go grub2/modify_manger.go \
-      --replace "/usr/lib/deepin-api" "/run/current-system/sw/lib/deepin-api"
+      --replace-fail "/usr/lib/deepin-api" "/run/current-system/sw/lib/deepin-api"
 
     substituteInPlace accounts1/user_chpwd_union_id.go \
-      --replace "/usr/lib/dde-control-center" "/run/current-system/sw/lib/dde-control-center"
+      --replace-fail "/usr/lib/dde-control-center" "/run/current-system/sw/lib/dde-control-center"
+
+    substituteInPlace system/uadp1/crypto.go \
+      --replace-fail "/usr/share/uadp" "/var/lib/dde-daemon/uadp"
 
     for file in $(grep "/usr/lib/deepin-daemon" * -nR |awk -F: '{print $1}')
     do
diff --git a/pkgs/desktops/deepin/library/dtk6core/default.nix b/pkgs/desktops/deepin/library/dtk6core/default.nix
index d86bebdea1d83..8acd1aa986868 100644
--- a/pkgs/desktops/deepin/library/dtk6core/default.nix
+++ b/pkgs/desktops/deepin/library/dtk6core/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , lib
 , fetchFromGitHub
+, fetchpatch
 , cmake
 , pkg-config
 , doxygen
@@ -27,6 +28,11 @@ stdenv.mkDerivation (finalAttrs: {
   patches = [
     ./fix-pkgconfig-path.patch
     ./fix-pri-path.patch
+    (fetchpatch {
+      name = "fix-build-on-qt-6_7_1.patch";
+      url = "https://github.com/linuxdeepin/dtkcore/commit/10bd3842bbde41fbc61c35b81d280075d053119b.patch";
+      hash = "sha256-xZ3BhiMB6S5NJtPUEjtChCB9Jr1BI0mu7AMjyNMqt9w=";
+    })
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/apps/file-roller/default.nix b/pkgs/desktops/gnome/apps/file-roller/default.nix
index 27c189af64cb6..3c6cb7264dc3a 100644
--- a/pkgs/desktops/gnome/apps/file-roller/default.nix
+++ b/pkgs/desktops/gnome/apps/file-roller/default.nix
@@ -26,11 +26,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "file-roller";
-  version = "44.2";
+  version = "44.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/file-roller/${lib.versions.major finalAttrs.version}/file-roller-${finalAttrs.version}.tar.xz";
-    hash = "sha256-LFcXzn8F+6sTyEe2zjGxsCSIYfp6uPD/Hx4dRdHizfk=";
+    hash = "sha256-BMinRiX+yEJn/exAMGr7QQS9My2FBh4NNtSrBTOt+ko=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/apps/gnome-maps/default.nix b/pkgs/desktops/gnome/apps/gnome-maps/default.nix
index 99815109624c8..074c40e691f94 100644
--- a/pkgs/desktops/gnome/apps/gnome-maps/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-maps/default.nix
@@ -29,11 +29,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-maps";
-  version = "46.10";
+  version = "46.11";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-maps/${lib.versions.major finalAttrs.version}/gnome-maps-${finalAttrs.version}.tar.xz";
-    hash = "sha256-XyXul6DC/t+E8M8DkrTvi+GT4/bOJfl1RntvzsBUIa8=";
+    hash = "sha256-lAtBuXQLCBMyXjkWdYcWz4+g7k4MkZHyYM7AbZITWDU=";
   };
 
   doCheck = !stdenv.isDarwin;
diff --git a/pkgs/desktops/gnome/core/evince/default.nix b/pkgs/desktops/gnome/core/evince/default.nix
index daf912e2a7c1f..a9192f33d000a 100644
--- a/pkgs/desktops/gnome/core/evince/default.nix
+++ b/pkgs/desktops/gnome/core/evince/default.nix
@@ -40,15 +40,15 @@
 , withLibsecret ? true
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "evince";
-  version = "46.1";
+  version = "46.3";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/evince/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-lLtSU2WwYKKML2AX0iy/KvURVQclSqQum/wAC7wYq2I=";
+    url = "mirror://gnome/sources/evince/${lib.versions.major finalAttrs.version}/evince-${finalAttrs.version}.tar.xz";
+    hash = "sha256-vA0dQbnX/8di6Z0qv6+sv3RRgvCzHYbbXuyMZ/XzAGs=";
   };
 
   depsBuildBuild = [
@@ -121,7 +121,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = "evince";
     };
   };
 
@@ -141,4 +141,4 @@ stdenv.mkDerivation rec {
     mainProgram = "evince";
     maintainers = teams.gnome.members ++ teams.pantheon.members;
   };
-}
+})
diff --git a/pkgs/desktops/gnome/core/evolution-data-server/default.nix b/pkgs/desktops/gnome/core/evolution-data-server/default.nix
index b5326c4e7f814..d774ea2f26853 100644
--- a/pkgs/desktops/gnome/core/evolution-data-server/default.nix
+++ b/pkgs/desktops/gnome/core/evolution-data-server/default.nix
@@ -50,13 +50,13 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution-data-server";
-  version = "3.52.1";
+  version = "3.52.2";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution-data-server/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-gls9fVRoRApn0R3SojkzlgwHue7MeXuxJYQ8sshwo0g=";
+    hash = "sha256-oAakTtyzjSb/scYuHV0KMdHy5ZB1Vl4mx5ou4BxFp+U=";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch b/pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch
index de8186d01c5e4..140e124fe4bbb 100644
--- a/pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch
+++ b/pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch
@@ -242,7 +242,7 @@ index 44ba49c..dfac2a2 100644
  		g_signal_connect_object (
  			watcher->priv->desktop_settings,
 diff --git a/src/calendar/libedata-cal/e-cal-meta-backend.c b/src/calendar/libedata-cal/e-cal-meta-backend.c
-index b9145af..350fcd3 100644
+index e0e9169..a44f52c 100644
 --- a/src/calendar/libedata-cal/e-cal-meta-backend.c
 +++ b/src/calendar/libedata-cal/e-cal-meta-backend.c
 @@ -156,7 +156,18 @@ ecmb_is_power_saver_enabled (void)
@@ -265,7 +265,7 @@ index b9145af..350fcd3 100644
  
  	if (g_settings_get_boolean (settings, "limit-operations-in-power-saver-mode")) {
  		GPowerProfileMonitor *power_monitor;
-@@ -2632,7 +2643,20 @@ ecmb_receive_object_sync (ECalMetaBackend *meta_backend,
+@@ -2627,7 +2638,20 @@ ecmb_receive_object_sync (ECalMetaBackend *meta_backend,
  			if (is_declined) {
  				GSettings *settings;
  
@@ -312,7 +312,7 @@ index d5a0823..2ae03f8 100644
  	g_clear_object (&settings);
  
 diff --git a/src/camel/camel-gpg-context.c b/src/camel/camel-gpg-context.c
-index cecd740..9a15180 100644
+index cceba4a..d3c4da6 100644
 --- a/src/camel/camel-gpg-context.c
 +++ b/src/camel/camel-gpg-context.c
 @@ -747,7 +747,18 @@ gpg_ctx_get_executable_name (void)
@@ -361,10 +361,10 @@ index e61160c..b6553a4 100644
  		G_CALLBACK (mi_user_headers_settings_changed_cb), NULL);
  	G_UNLOCK (mi_user_headers);
 diff --git a/src/camel/providers/imapx/camel-imapx-server.c b/src/camel/providers/imapx/camel-imapx-server.c
-index bbf214b..bed39d2 100644
+index 56429a9..a9cc62c 100644
 --- a/src/camel/providers/imapx/camel-imapx-server.c
 +++ b/src/camel/providers/imapx/camel-imapx-server.c
-@@ -5661,7 +5661,18 @@ camel_imapx_server_do_old_flags_update (CamelFolder *folder)
+@@ -5682,7 +5682,18 @@ camel_imapx_server_do_old_flags_update (CamelFolder *folder)
  	if (do_old_flags_update) {
  		GSettings *eds_settings;
  
@@ -457,10 +457,10 @@ index 1453410..a3f06b0 100644
  		g_object_unref (settings);
  
 diff --git a/src/libedataserver/e-oauth2-service-outlook.c b/src/libedataserver/e-oauth2-service-outlook.c
-index 7633e93..2328048 100644
+index 734f194..5b05077 100644
 --- a/src/libedataserver/e-oauth2-service-outlook.c
 +++ b/src/libedataserver/e-oauth2-service-outlook.c
-@@ -71,7 +71,18 @@ eos_outlook_read_settings (EOAuth2Service *service,
+@@ -75,7 +75,18 @@ eos_outlook_read_settings (EOAuth2Service *service,
  	if (!value) {
  		GSettings *settings;
  
@@ -481,7 +481,7 @@ index 7633e93..2328048 100644
  		g_object_unref (settings);
  
 diff --git a/src/libedataserver/e-oauth2-service-yahoo.c b/src/libedataserver/e-oauth2-service-yahoo.c
-index 3bb1071..199e822 100644
+index c8bbd3a..e71e36a 100644
 --- a/src/libedataserver/e-oauth2-service-yahoo.c
 +++ b/src/libedataserver/e-oauth2-service-yahoo.c
 @@ -67,7 +67,18 @@ eos_yahoo_read_settings (EOAuth2Service *service,
diff --git a/pkgs/desktops/gnome/core/gnome-control-center/default.nix b/pkgs/desktops/gnome/core/gnome-control-center/default.nix
index b3b5d2594d219..338fa59a2a80d 100644
--- a/pkgs/desktops/gnome/core/gnome-control-center/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-control-center/default.nix
@@ -28,6 +28,7 @@
 , gst_all_1
 , gtk4
 , ibus
+, json-glib
 , libgtop
 , libgudev
 , libadwaita
@@ -122,6 +123,7 @@ stdenv.mkDerivation (finalAttrs: {
     gsound
     gtk4
     ibus
+    json-glib
     libepoxy
     libgtop
     libgudev
diff --git a/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix b/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
index 055c811263dbe..19280b1bff927 100644
--- a/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
@@ -34,13 +34,13 @@
 , gsettings-desktop-schemas
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-initial-setup";
-  version = "46.0";
+  version = "46.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-+O6dzqfjXnNeqjvI0QQdBrtk6/HhBG5ejkjx+0QVGEc=";
+    url = "mirror://gnome/sources/gnome-initial-setup/${lib.versions.major finalAttrs.version}/gnome-initial-setup-${finalAttrs.version}.tar.xz";
+    hash = "sha256-bHktiSrbYLDeC33oglwUlD0c0nmvT5x2So9UEbYKjyc=";
   };
 
   patches = [
@@ -94,8 +94,8 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
-      attrPath = "gnome.${pname}";
+      packageName = "gnome-initial-setup";
+      attrPath = "gnome.gnome-initial-setup";
     };
   };
 
@@ -106,4 +106,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = teams.gnome.members;
   };
-}
+})
diff --git a/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix b/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
index abd6d2102679a..e7a70f2369e41 100644
--- a/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
@@ -30,11 +30,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-remote-desktop";
-  version = "46.1";
+  version = "46.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-fGKkKB/fqVIhEK/7910JlzA18q3H+kV3UR1zMYa+to8=";
+    hash = "sha256-l0Q+r/5LGmliaIakHSXL6ywUjT/tQ9khFcG30g1SOKs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix b/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
index 2fd711266938b..9887f7f11c522 100644
--- a/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-shell-extensions";
-  version = "46.1";
+  version = "46.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-shell-extensions/${lib.versions.major finalAttrs.version}/gnome-shell-extensions-${finalAttrs.version}.tar.xz";
-    hash = "sha256-xbpQcA2nephvAGC+7az8AX5+yCKD8qY4SEKggHvEVT8=";
+    hash = "sha256-1ELp0mklEl/yFaXBNCkElWVTgHQdqvuzejqZ1vDH2G8=";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome/core/gnome-shell/default.nix b/pkgs/desktops/gnome/core/gnome-shell/default.nix
index 7b94533f7b602..3f91cddc20525 100644
--- a/pkgs/desktops/gnome/core/gnome-shell/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-shell/default.nix
@@ -66,13 +66,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-shell";
-  version = "46.1";
+  version = "46.2";
 
   outputs = [ "out" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-shell/${lib.versions.major finalAttrs.version}/gnome-shell-${finalAttrs.version}.tar.xz";
-    hash = "sha256-ZPmZhEwQHmO/KU1FsTjeVjGa0vMmKCchqtD6hgZTs2k=";
+    hash = "sha256-a1hxAcBL+zZKsJzTi12T6+60JUdUyAfPcS+8juP94jg=";
   };
 
   patches = [
@@ -102,13 +102,6 @@ stdenv.mkDerivation (finalAttrs: {
       url = "https://src.fedoraproject.org/rpms/gnome-shell/raw/dcd112d9708954187e7490564c2229d82ba5326f/f/0001-gdm-Work-around-failing-fingerprint-auth.patch";
       hash = "sha256-mgXty5HhiwUO1UV3/eDgWtauQKM0cRFQ0U7uocST25s=";
     })
-
-    # screencast: Correct expected bus name for streams
-    # https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3303
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-shell/-/commit/50a011a19dcc6997ea6173c07bb80b2d9888d363.patch";
-      hash = "sha256-ccEpdWgDxwnj7ouzFekpoln5Y2PtgRikWetwK+0U9Fg=";
-    })
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/gnome-software/default.nix b/pkgs/desktops/gnome/core/gnome-software/default.nix
index 43adcd092ffb1..bca1ea13b5e3e 100644
--- a/pkgs/desktops/gnome/core/gnome-software/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-software/default.nix
@@ -43,13 +43,13 @@ let
   withFwupd = stdenv.hostPlatform.isx86;
 in
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-software";
-  version = "46.1";
+  version = "46.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-software/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-tu63iRAN6UtQ6+Lnfxaya+TC2xVImQXxmNBgxCXhkHY=";
+    url = "mirror://gnome/sources/gnome-software/${lib.versions.major finalAttrs.version}/gnome-software-${finalAttrs.version}.tar.xz";
+    hash = "sha256-5wDLood2T14iVVFOMS4WBVD9v3pdP+FjWLtve2cyuXQ=";
   };
 
   patches = [
@@ -110,7 +110,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = "gnome-software";
       attrPath = "gnome.gnome-software";
     };
   };
@@ -123,4 +123,4 @@ stdenv.mkDerivation rec {
     maintainers = teams.gnome.members;
     platforms = platforms.linux;
   };
-}
+})
diff --git a/pkgs/desktops/gnome/core/gnome-terminal/default.nix b/pkgs/desktops/gnome/core/gnome-terminal/default.nix
index 7b3306df57193..89448159287e4 100644
--- a/pkgs/desktops/gnome/core/gnome-terminal/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-terminal/default.nix
@@ -27,16 +27,16 @@
 , nixosTests
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-terminal";
-  version = "3.52.1";
+  version = "3.52.2";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "GNOME";
     repo = "gnome-terminal";
-    rev = version;
-    hash = "sha256-npoQfe5+HTn7CsrW6MuOoiYBc3rYMAMv4apC6dFR8O4=";
+    rev = finalAttrs.version;
+    hash = "sha256-c6xMUyhQnJiIrFnnUEx6vGVvFghGvLjTxiAFq+nSj2A=";
   };
 
   nativeBuildInputs = [
@@ -94,4 +94,4 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = teams.gnome.members;
   };
-}
+})
diff --git a/pkgs/desktops/gnome/core/gucharmap/default.nix b/pkgs/desktops/gnome/core/gucharmap/default.nix
index 2d0dd7553965f..17f8465f380bf 100644
--- a/pkgs/desktops/gnome/core/gucharmap/default.nix
+++ b/pkgs/desktops/gnome/core/gucharmap/default.nix
@@ -43,9 +43,9 @@ let
       unicode-character-database
     ];
   };
-in stdenv.mkDerivation rec {
+in stdenv.mkDerivation (finalAttrs: {
   pname = "gucharmap";
-  version = "15.1.2";
+  version = "15.1.5";
 
   outputs = [ "out" "lib" "dev" "devdoc" ];
 
@@ -53,8 +53,8 @@ in stdenv.mkDerivation rec {
     domain = "gitlab.gnome.org";
     owner = "GNOME";
     repo = "gucharmap";
-    rev = version;
-    sha256 = "sha256-tvFw2k5xCl+QE6cHvLj5KKdYFSghN7PVgHPmd27wh7k=";
+    rev = finalAttrs.version;
+    sha256 = "sha256-PG86D8QvqHdmo3aJseCerngmuWUqtSMdWzbixWE2HOQ=";
   };
 
   strictDeps = true;
@@ -107,8 +107,8 @@ in stdenv.mkDerivation rec {
     description = "GNOME Character Map, based on the Unicode Character Database";
     mainProgram = "gucharmap";
     homepage = "https://gitlab.gnome.org/GNOME/gucharmap";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = teams.gnome.members;
     platforms = platforms.linux;
   };
-}
+})
diff --git a/pkgs/desktops/gnome/core/mutter/default.nix b/pkgs/desktops/gnome/core/mutter/default.nix
index 0efd14124a371..19ba5f1924ccd 100644
--- a/pkgs/desktops/gnome/core/mutter/default.nix
+++ b/pkgs/desktops/gnome/core/mutter/default.nix
@@ -10,7 +10,6 @@
 , colord
 , lcms2
 , pango
-, json-glib
 , libstartup_notification
 , libcanberra
 , ninja
@@ -59,7 +58,6 @@
 , sysprof
 , libsysprof-capture
 , desktop-file-utils
-, libcap_ng
 , egl-wayland
 , graphene
 , wayland
@@ -68,13 +66,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "mutter";
-  version = "46.1";
+  version = "46.2";
 
   outputs = [ "out" "dev" "man" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/mutter/${lib.versions.major finalAttrs.version}/mutter-${finalAttrs.version}.tar.xz";
-    hash = "sha256-Y7JmDdD6GT+mYsgO4S64sW8rjDvDiWNmIAx5lDgk1R0=";
+    hash = "sha256-AJuqd/g2JhLKouGMM4obPIqtO1/ilkwv73gk0yEiiYM=";
   };
 
   mesonFlags = [
@@ -91,9 +89,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   propagatedBuildInputs = [
-    # required for pkg-config to detect mutter-clutter
-    json-glib
-    libcap_ng
+    # required for pkg-config to detect mutter-mtk
     graphene
   ];
 
diff --git a/pkgs/desktops/gnome/core/nautilus/default.nix b/pkgs/desktops/gnome/core/nautilus/default.nix
index 063914060dfee..874190417a3c5 100644
--- a/pkgs/desktops/gnome/core/nautilus/default.nix
+++ b/pkgs/desktops/gnome/core/nautilus/default.nix
@@ -38,13 +38,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "nautilus";
-  version = "46.1";
+  version = "46.2";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/nautilus/${lib.versions.major finalAttrs.version}/nautilus-${finalAttrs.version}.tar.xz";
-    hash = "sha256-zBpf3x3XL5Lp4/PHrSY3CaDeU5Golb6TRPamf0OIe9c=";
+    hash = "sha256-bujJkBm540R/aRjWgjKiDeyonlUlwFgFQyt9iEDKcfo=";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome/core/rygel/default.nix b/pkgs/desktops/gnome/core/rygel/default.nix
index 9cc4e1ee8d71a..10e805371398b 100644
--- a/pkgs/desktops/gnome/core/rygel/default.nix
+++ b/pkgs/desktops/gnome/core/rygel/default.nix
@@ -26,16 +26,16 @@
 , gnome
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "rygel";
-  version = "0.42.5";
+  version = "0.42.6";
 
   # TODO: split out lib
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "ETNgLS5nEKreayKqmNkzhMjVY5bzRHY0E+luARC32J8=";
+    url = "mirror://gnome/sources/rygel/${lib.versions.majorMinor finalAttrs.version}/rygel-${finalAttrs.version}.tar.xz";
+    sha256 = "R9JXBLYQiDdeJqq6Vr5HwXGJRy5vgMdSq+hvAu9OMwQ=";
   };
 
   patches = [
@@ -92,8 +92,8 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
-      attrPath = "gnome.${pname}";
+      packageName = "rygel";
+      attrPath = "gnome.rygel";
       versionPolicy = "odd-unstable";
     };
   };
@@ -105,4 +105,4 @@ stdenv.mkDerivation rec {
     maintainers = teams.gnome.members;
     platforms = platforms.linux;
   };
-}
+})
diff --git a/pkgs/desktops/gnome/extensions/extensionOverrides.nix b/pkgs/desktops/gnome/extensions/extensionOverrides.nix
index 373715d357ed0..28e451e47eb26 100644
--- a/pkgs/desktops/gnome/extensions/extensionOverrides.nix
+++ b/pkgs/desktops/gnome/extensions/extensionOverrides.nix
@@ -9,13 +9,12 @@
 , hddtemp
 , libgda
 , libgtop
+, libhandy
 , liquidctl
 , lm_sensors
 , netcat-gnu
 , nvme-cli
 , procps
-, pulseaudio
-, python3
 , smartmontools
 , substituteAll
 , touchegg
@@ -47,9 +46,9 @@ super: lib.trivial.pipe super [
 
   (patchExtension "ddterm@amezin.github.com" (old: {
     nativeBuildInputs = [ gobject-introspection wrapGAppsHook3 ];
-    buildInputs = [ vte ];
+    buildInputs = [ vte libhandy gjs ];
     postFixup = ''
-      substituteInPlace "$out/share/gnome-shell/extensions/ddterm@amezin.github.com/bin/com.github.amezin.ddterm" --replace "gjs" "${gjs}/bin/gjs"
+      patchShebangs "$out/share/gnome-shell/extensions/ddterm@amezin.github.com/bin/com.github.amezin.ddterm"
       wrapGApp "$out/share/gnome-shell/extensions/ddterm@amezin.github.com/bin/com.github.amezin.ddterm"
     '';
   }))
@@ -106,19 +105,20 @@ super: lib.trivial.pipe super [
     ];
   }))
 
-  (patchExtension "mullvadindicator@pobega.github.com" (old: {
+  (patchExtension "pano@elhan.io" (old: {
     patches = [
-      # Patch from https://github.com/Pobega/gnome-shell-extension-mullvad-indicator/pull/36
-      # tweaked to drop the Makefile changes to fix application
-      ./extensionOverridesPatches/mullvadindicator_at_pobega.github.com.patch
+      (substituteAll {
+        src = ./extensionOverridesPatches/pano_at_elhan.io.patch;
+        inherit gsound libgda;
+      })
     ];
   }))
 
-  (patchExtension "pano@elhan.io" (old: {
+  (patchExtension "system-monitor@gnome-shell-extensions.gcampax.github.com" (old: {
     patches = [
       (substituteAll {
-        src = ./extensionOverridesPatches/pano_at_elhan.io.patch;
-        inherit gsound libgda;
+        src = ./extensionOverridesPatches/system-monitor_at_gnome-shell-extensions.gcampax.github.com.patch;
+        gtop_path = "${libgtop}/lib/girepository-1.0";
       })
     ];
   }))
diff --git a/pkgs/desktops/gnome/extensions/extensionOverridesPatches/mullvadindicator_at_pobega.github.com.patch b/pkgs/desktops/gnome/extensions/extensionOverridesPatches/mullvadindicator_at_pobega.github.com.patch
deleted file mode 100644
index 772da94271103..0000000000000
--- a/pkgs/desktops/gnome/extensions/extensionOverridesPatches/mullvadindicator_at_pobega.github.com.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From ea472538fc73e9ab81e50183444dbb256d32ecc0 Mon Sep 17 00:00:00 2001
-From: Sergio Rubio <rubiojr@rbel.co>
-Date: Wed, 27 Mar 2024 20:43:38 +0100
-Subject: [PATCH] Bump GNOME desktop version
-
-The extension is 46 compatible.
-
----
- metadata.json | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/metadata.json b/metadata.json
-index bc0e272..e647258 100644
---- a/metadata.json
-+++ b/metadata.json
-@@ -3,7 +3,8 @@
-   "description": "Mullvad connection status indicator",
-   "uuid": "mullvadindicator@pobega.github.com",
-   "shell-version": [
--    "45"
-+    "45",
-+    "46"
-   ],
-   "url": "https://github.com/Pobega/gnome-shell-extension-mullvad-indicator",
-   "settings-schema": "org.gnome.shell.extensions.MullvadIndicator",
diff --git a/pkgs/desktops/gnome/extensions/extensionOverridesPatches/system-monitor_at_gnome-shell-extensions.gcampax.github.com.patch b/pkgs/desktops/gnome/extensions/extensionOverridesPatches/system-monitor_at_gnome-shell-extensions.gcampax.github.com.patch
new file mode 100644
index 0000000000000..eb8fc58169fae
--- /dev/null
+++ b/pkgs/desktops/gnome/extensions/extensionOverridesPatches/system-monitor_at_gnome-shell-extensions.gcampax.github.com.patch
@@ -0,0 +1,25 @@
+diff --git a/extension.js b/extension.js
+index 37d2eb1..232d0d5 100644
+--- a/extension.js
++++ b/extension.js
+@@ -6,9 +6,9 @@
+ 
+ import Clutter from 'gi://Clutter';
+ import Gio from 'gi://Gio';
++import GIRepository from "gi://GIRepository";
+ import GLib from 'gi://GLib';
+ import GObject from 'gi://GObject';
+-import GTop from 'gi://GTop';
+ import Pango from 'gi://Pango';
+ import Shell from 'gi://Shell';
+ import St from 'gi://St';
+@@ -19,6 +19,9 @@ import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
+ 
+ import * as Main from 'resource:///org/gnome/shell/ui/main.js';
+ 
++GIRepository.Repository.prepend_search_path('@gtop_path@');
++const GTop = (await import("gi://GTop")).default;
++
+ const THRESHOLD_HIGH = 0.80;
+ 
+ // adapted from load-graph.cpp in gnome-system-monitor
diff --git a/pkgs/desktops/gnome/extensions/extensions.json b/pkgs/desktops/gnome/extensions/extensions.json
index 7ce60200a4241..60f5974aa9a7e 100644
--- a/pkgs/desktops/gnome/extensions/extensions.json
+++ b/pkgs/desktops/gnome/extensions/extensions.json
@@ -159,12 +159,14 @@
     "43": {"version": "23", "sha256": "13qk1s17b6gx9sqk85xp1mshnbqv9ch1v4im46cmcgp280r3ba3x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgVHJhc2ggYnV0dG9uIGZvciB0aGUgR05PTUUgc2hlbGwgcGFuZWwiLAogICJsb2NhbGVkaXIiOiAibG9jYWxlIiwKICAibmFtZSI6ICJUcmFzaCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiQXhlbCB2b24gQmVydG9sZGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYmVydG9sZGlhL2dub21lLXNoZWxsLXRyYXNoLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZ25vbWUtc2hlbGwtdHJhc2gtZXh0ZW5zaW9uIiwKICAidmVyc2lvbiI6IDIzCn0="},
     "44": {"version": "23", "sha256": "13qk1s17b6gx9sqk85xp1mshnbqv9ch1v4im46cmcgp280r3ba3x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgVHJhc2ggYnV0dG9uIGZvciB0aGUgR05PTUUgc2hlbGwgcGFuZWwiLAogICJsb2NhbGVkaXIiOiAibG9jYWxlIiwKICAibmFtZSI6ICJUcmFzaCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiQXhlbCB2b24gQmVydG9sZGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYmVydG9sZGlhL2dub21lLXNoZWxsLXRyYXNoLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZ25vbWUtc2hlbGwtdHJhc2gtZXh0ZW5zaW9uIiwKICAidmVyc2lvbiI6IDIzCn0="}
   }}
-, {"uuid": "RecentItems@bananenfisch.net", "name": "Recent Items", "pname": "recent-items", "description": "Adds an icon for recently used items at the top panel; clear list by click; left click: open file, right click: open containing folder; Settings for: number of items, number of items under \"more\" and blacklisting options are defined at the top of extension.js (see https://github.com/bananenfisch/RecentItems for more infos).", "link": "https://extensions.gnome.org/extension/72/recent-items/", "shell_version_map": {
+, {"uuid": "RecentItems@bananenfisch.net", "name": "Recent Items", "pname": "recent-items", "description": "Adds an icon for recently used items at the top panel", "link": "https://extensions.gnome.org/extension/72/recent-items/", "shell_version_map": {
     "40": {"version": "22", "sha256": "17xgw3iqcznlsfqjfs99bb5s1h7wlg37xjn9rar1hqpl7dsy84nk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsOyBjbGVhciBsaXN0IGJ5IGNsaWNrOyBsZWZ0IGNsaWNrOiBvcGVuIGZpbGUsIHJpZ2h0IGNsaWNrOiBvcGVuIGNvbnRhaW5pbmcgZm9sZGVyOyBTZXR0aW5ncyBmb3I6IG51bWJlciBvZiBpdGVtcywgbnVtYmVyIG9mIGl0ZW1zIHVuZGVyIFwibW9yZVwiIGFuZCBibGFja2xpc3Rpbmcgb3B0aW9ucyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wIG9mIGV4dGVuc2lvbi5qcyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5hbmVuZmlzY2gvUmVjZW50SXRlbXMgZm9yIG1vcmUgaW5mb3MpLiIsCiAgIm5hbWUiOiAiUmVjZW50IEl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JhbmFuZW5maXNjaC9SZWNlbnRJdGVtcyIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyMgp9"},
     "41": {"version": "22", "sha256": "17xgw3iqcznlsfqjfs99bb5s1h7wlg37xjn9rar1hqpl7dsy84nk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsOyBjbGVhciBsaXN0IGJ5IGNsaWNrOyBsZWZ0IGNsaWNrOiBvcGVuIGZpbGUsIHJpZ2h0IGNsaWNrOiBvcGVuIGNvbnRhaW5pbmcgZm9sZGVyOyBTZXR0aW5ncyBmb3I6IG51bWJlciBvZiBpdGVtcywgbnVtYmVyIG9mIGl0ZW1zIHVuZGVyIFwibW9yZVwiIGFuZCBibGFja2xpc3Rpbmcgb3B0aW9ucyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wIG9mIGV4dGVuc2lvbi5qcyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5hbmVuZmlzY2gvUmVjZW50SXRlbXMgZm9yIG1vcmUgaW5mb3MpLiIsCiAgIm5hbWUiOiAiUmVjZW50IEl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JhbmFuZW5maXNjaC9SZWNlbnRJdGVtcyIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyMgp9"},
     "42": {"version": "22", "sha256": "17xgw3iqcznlsfqjfs99bb5s1h7wlg37xjn9rar1hqpl7dsy84nk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsOyBjbGVhciBsaXN0IGJ5IGNsaWNrOyBsZWZ0IGNsaWNrOiBvcGVuIGZpbGUsIHJpZ2h0IGNsaWNrOiBvcGVuIGNvbnRhaW5pbmcgZm9sZGVyOyBTZXR0aW5ncyBmb3I6IG51bWJlciBvZiBpdGVtcywgbnVtYmVyIG9mIGl0ZW1zIHVuZGVyIFwibW9yZVwiIGFuZCBibGFja2xpc3Rpbmcgb3B0aW9ucyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wIG9mIGV4dGVuc2lvbi5qcyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5hbmVuZmlzY2gvUmVjZW50SXRlbXMgZm9yIG1vcmUgaW5mb3MpLiIsCiAgIm5hbWUiOiAiUmVjZW50IEl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JhbmFuZW5maXNjaC9SZWNlbnRJdGVtcyIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyMgp9"},
     "43": {"version": "22", "sha256": "17xgw3iqcznlsfqjfs99bb5s1h7wlg37xjn9rar1hqpl7dsy84nk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsOyBjbGVhciBsaXN0IGJ5IGNsaWNrOyBsZWZ0IGNsaWNrOiBvcGVuIGZpbGUsIHJpZ2h0IGNsaWNrOiBvcGVuIGNvbnRhaW5pbmcgZm9sZGVyOyBTZXR0aW5ncyBmb3I6IG51bWJlciBvZiBpdGVtcywgbnVtYmVyIG9mIGl0ZW1zIHVuZGVyIFwibW9yZVwiIGFuZCBibGFja2xpc3Rpbmcgb3B0aW9ucyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wIG9mIGV4dGVuc2lvbi5qcyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5hbmVuZmlzY2gvUmVjZW50SXRlbXMgZm9yIG1vcmUgaW5mb3MpLiIsCiAgIm5hbWUiOiAiUmVjZW50IEl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JhbmFuZW5maXNjaC9SZWNlbnRJdGVtcyIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyMgp9"},
-    "44": {"version": "23", "sha256": "0lmr3mwz5056s9fqhdphfyzv82liz28qimzb3wk9djp0s4xbd5f8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsOyBjbGVhciBsaXN0IGJ5IGNsaWNrOyBsZWZ0IGNsaWNrOiBvcGVuIGZpbGUsIHJpZ2h0IGNsaWNrOiBvcGVuIGNvbnRhaW5pbmcgZm9sZGVyOyBTZXR0aW5ncyBmb3I6IG51bWJlciBvZiBpdGVtcywgbnVtYmVyIG9mIGl0ZW1zIHVuZGVyIFwibW9yZVwiIGFuZCBibGFja2xpc3Rpbmcgb3B0aW9ucyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wIG9mIGV4dGVuc2lvbi5qcyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5hbmVuZmlzY2gvUmVjZW50SXRlbXMgZm9yIG1vcmUgaW5mb3MpLiIsCiAgIm5hbWUiOiAiUmVjZW50IEl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JhbmFuZW5maXNjaC9SZWNlbnRJdGVtcyIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyMwp9"}
+    "44": {"version": "23", "sha256": "0lmr3mwz5056s9fqhdphfyzv82liz28qimzb3wk9djp0s4xbd5f8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsOyBjbGVhciBsaXN0IGJ5IGNsaWNrOyBsZWZ0IGNsaWNrOiBvcGVuIGZpbGUsIHJpZ2h0IGNsaWNrOiBvcGVuIGNvbnRhaW5pbmcgZm9sZGVyOyBTZXR0aW5ncyBmb3I6IG51bWJlciBvZiBpdGVtcywgbnVtYmVyIG9mIGl0ZW1zIHVuZGVyIFwibW9yZVwiIGFuZCBibGFja2xpc3Rpbmcgb3B0aW9ucyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wIG9mIGV4dGVuc2lvbi5qcyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5hbmVuZmlzY2gvUmVjZW50SXRlbXMgZm9yIG1vcmUgaW5mb3MpLiIsCiAgIm5hbWUiOiAiUmVjZW50IEl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JhbmFuZW5maXNjaC9SZWNlbnRJdGVtcyIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyMwp9"},
+    "45": {"version": "26", "sha256": "077fkzly63x2cky0a19iq3qnwm095lgppvsxrd8lm96knyqaxygy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsIiwKICAibmFtZSI6ICJSZWNlbnQgSXRlbXMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucmVjZW50LWl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JhbmFuZW5maXNjaC9SZWNlbnRJdGVtcyIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyNgp9"},
+    "46": {"version": "27", "sha256": "0ldgkjwqmwagwljy6fl7c3j4krfqadg8pda8hi81z3q3lxmlk3q2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsIiwKICAibmFtZSI6ICJSZWNlbnQgSXRlbXMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucmVjZW50LWl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JhbmFuZW5maXNjaC9SZWNlbnRJdGVtcyIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyNwp9"}
   }}
 , {"uuid": "lockscreen@sri.ramkrishna.me", "name": "Lock Screen", "pname": "lock-screen", "description": "Add lock icon to the panel and lock the screen instead of using ctrl-alt-l", "link": "https://extensions.gnome.org/extension/83/lock-screen/", "shell_version_map": {
     "40": {"version": "14", "sha256": "1dh02rbq7pfvpjpgjq7rlx7lld2qhq602apn1g17hbxbcpdzz004", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsb2NrIGljb24gdG8gdGhlIHBhbmVsIGFuZCBsb2NrIHRoZSBzY3JlZW4gaW5zdGVhZCBvZiB1c2luZyBjdHJsLWFsdC1sIiwKICAibmFtZSI6ICJMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiNDAuMCIsCiAgICAiNDIuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NyYW1rcmlzaG5hL2dub21lMy1leHRlbnNpb25zIiwKICAidXVpZCI6ICJsb2Nrc2NyZWVuQHNyaS5yYW1rcmlzaG5hLm1lIiwKICAidmVyc2lvbiI6IDE0Cn0="},
@@ -227,8 +229,8 @@
     "42": {"version": "76", "sha256": "0p615amdp1fh6k7ci7m2j4fr3z3fc94jpm0nqwwp6m51phbi386n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbmd4dC9nbm9tZS1zaGVsbC1leHRlbnNpb24ta2ltcGFuZWwiLAogICJ1dWlkIjogImtpbXBhbmVsQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogNzYKfQ=="},
     "43": {"version": "76", "sha256": "0p615amdp1fh6k7ci7m2j4fr3z3fc94jpm0nqwwp6m51phbi386n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbmd4dC9nbm9tZS1zaGVsbC1leHRlbnNpb24ta2ltcGFuZWwiLAogICJ1dWlkIjogImtpbXBhbmVsQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogNzYKfQ=="},
     "44": {"version": "76", "sha256": "0p615amdp1fh6k7ci7m2j4fr3z3fc94jpm0nqwwp6m51phbi386n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbmd4dC9nbm9tZS1zaGVsbC1leHRlbnNpb24ta2ltcGFuZWwiLAogICJ1dWlkIjogImtpbXBhbmVsQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogNzYKfQ=="},
-    "45": {"version": "80", "sha256": "04lcvlhvip4144mb9zwzipd475rqff79faqx363jmmrbb9pra0c3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbmd4dC9nbm9tZS1zaGVsbC1leHRlbnNpb24ta2ltcGFuZWwiLAogICJ1dWlkIjogImtpbXBhbmVsQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogODAKfQ=="},
-    "46": {"version": "80", "sha256": "04lcvlhvip4144mb9zwzipd475rqff79faqx363jmmrbb9pra0c3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbmd4dC9nbm9tZS1zaGVsbC1leHRlbnNpb24ta2ltcGFuZWwiLAogICJ1dWlkIjogImtpbXBhbmVsQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogODAKfQ=="}
+    "45": {"version": "82", "sha256": "100rmmp53r2lbwpgyj8giyx5l2i7yl2hfs5qpcrs4m5a56s74wjs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbmd4dC9nbm9tZS1zaGVsbC1leHRlbnNpb24ta2ltcGFuZWwiLAogICJ1dWlkIjogImtpbXBhbmVsQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogODIKfQ=="},
+    "46": {"version": "82", "sha256": "100rmmp53r2lbwpgyj8giyx5l2i7yl2hfs5qpcrs4m5a56s74wjs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbmd4dC9nbm9tZS1zaGVsbC1leHRlbnNpb24ta2ltcGFuZWwiLAogICJ1dWlkIjogImtpbXBhbmVsQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogODIKfQ=="}
   }}
 , {"uuid": "impatience@gfxmonk.net", "name": "Impatience", "pname": "impatience", "description": "Speed up the gnome-shell animation speed", "link": "https://extensions.gnome.org/extension/277/impatience/", "shell_version_map": {
     "40": {"version": "22", "sha256": "1npc0y8bf5rrwl1v55hlf213pd5vp8wrj6qyhp2yhvz6km1ib6q2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNwZWVkIHVwIHRoZSBnbm9tZS1zaGVsbCBhbmltYXRpb24gc3BlZWQiLAogICJuYW1lIjogIkltcGF0aWVuY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dmeG1vbmsubmV0L2Rpc3QvMGluc3RhbGwvZ25vbWUtc2hlbGwtaW1wYXRpZW5jZS54bWwiLAogICJ1dWlkIjogImltcGF0aWVuY2VAZ2Z4bW9uay5uZXQiLAogICJ2ZXJzaW9uIjogMjIKfQ=="},
@@ -249,8 +251,8 @@
     "42": {"version": "84", "sha256": "0a62pmg5jwp812nxb4gsxw2m0jn7p5l3y9m7a57zxzk6cy831asi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZG9jayBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBvdXQgb2YgdGhlIG92ZXJ2aWV3IHRyYW5zZm9ybWluZyBpdCBpbiBhIGRvY2sgZm9yIGFuIGVhc2llciBsYXVuY2hpbmcgb2YgYXBwbGljYXRpb25zIGFuZCBhIGZhc3RlciBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIGFuZCBkZXNrdG9wcy4gU2lkZSBhbmQgYm90dG9tIHBsYWNlbWVudCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaHRvZG9jayIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9taWNoZWxlZy5naXRodWIuaW8vZGFzaC10by1kb2NrLyIsCiAgInV1aWQiOiAiZGFzaC10by1kb2NrQG1pY3hneC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogODQKfQ=="},
     "43": {"version": "84", "sha256": "0a62pmg5jwp812nxb4gsxw2m0jn7p5l3y9m7a57zxzk6cy831asi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZG9jayBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBvdXQgb2YgdGhlIG92ZXJ2aWV3IHRyYW5zZm9ybWluZyBpdCBpbiBhIGRvY2sgZm9yIGFuIGVhc2llciBsYXVuY2hpbmcgb2YgYXBwbGljYXRpb25zIGFuZCBhIGZhc3RlciBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIGFuZCBkZXNrdG9wcy4gU2lkZSBhbmQgYm90dG9tIHBsYWNlbWVudCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaHRvZG9jayIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9taWNoZWxlZy5naXRodWIuaW8vZGFzaC10by1kb2NrLyIsCiAgInV1aWQiOiAiZGFzaC10by1kb2NrQG1pY3hneC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogODQKfQ=="},
     "44": {"version": "84", "sha256": "0a62pmg5jwp812nxb4gsxw2m0jn7p5l3y9m7a57zxzk6cy831asi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZG9jayBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBvdXQgb2YgdGhlIG92ZXJ2aWV3IHRyYW5zZm9ybWluZyBpdCBpbiBhIGRvY2sgZm9yIGFuIGVhc2llciBsYXVuY2hpbmcgb2YgYXBwbGljYXRpb25zIGFuZCBhIGZhc3RlciBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIGFuZCBkZXNrdG9wcy4gU2lkZSBhbmQgYm90dG9tIHBsYWNlbWVudCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaHRvZG9jayIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9taWNoZWxlZy5naXRodWIuaW8vZGFzaC10by1kb2NrLyIsCiAgInV1aWQiOiAiZGFzaC10by1kb2NrQG1pY3hneC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogODQKfQ=="},
-    "45": {"version": "91", "sha256": "1knv9lcyc4cym9iphhijdm4ldnwly7kzdj3wywpkhnb0hn3ng95d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZG9jayBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBvdXQgb2YgdGhlIG92ZXJ2aWV3IHRyYW5zZm9ybWluZyBpdCBpbiBhIGRvY2sgZm9yIGFuIGVhc2llciBsYXVuY2hpbmcgb2YgYXBwbGljYXRpb25zIGFuZCBhIGZhc3RlciBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIGFuZCBkZXNrdG9wcy4gU2lkZSBhbmQgYm90dG9tIHBsYWNlbWVudCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaHRvZG9jayIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9taWNoZWxlZy5naXRodWIuaW8vZGFzaC10by1kb2NrLyIsCiAgInV1aWQiOiAiZGFzaC10by1kb2NrQG1pY3hneC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOTEKfQ=="},
-    "46": {"version": "91", "sha256": "1knv9lcyc4cym9iphhijdm4ldnwly7kzdj3wywpkhnb0hn3ng95d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZG9jayBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBvdXQgb2YgdGhlIG92ZXJ2aWV3IHRyYW5zZm9ybWluZyBpdCBpbiBhIGRvY2sgZm9yIGFuIGVhc2llciBsYXVuY2hpbmcgb2YgYXBwbGljYXRpb25zIGFuZCBhIGZhc3RlciBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIGFuZCBkZXNrdG9wcy4gU2lkZSBhbmQgYm90dG9tIHBsYWNlbWVudCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaHRvZG9jayIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9taWNoZWxlZy5naXRodWIuaW8vZGFzaC10by1kb2NrLyIsCiAgInV1aWQiOiAiZGFzaC10by1kb2NrQG1pY3hneC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOTEKfQ=="}
+    "45": {"version": "92", "sha256": "0d0xv1q4b75f2ry6hfrzpb1wmbxcpzcr39q4qm9qx3qp0i2b3ix3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZG9jayBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBvdXQgb2YgdGhlIG92ZXJ2aWV3IHRyYW5zZm9ybWluZyBpdCBpbiBhIGRvY2sgZm9yIGFuIGVhc2llciBsYXVuY2hpbmcgb2YgYXBwbGljYXRpb25zIGFuZCBhIGZhc3RlciBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIGFuZCBkZXNrdG9wcy4gU2lkZSBhbmQgYm90dG9tIHBsYWNlbWVudCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaHRvZG9jayIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9taWNoZWxlZy5naXRodWIuaW8vZGFzaC10by1kb2NrLyIsCiAgInV1aWQiOiAiZGFzaC10by1kb2NrQG1pY3hneC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOTIKfQ=="},
+    "46": {"version": "92", "sha256": "0d0xv1q4b75f2ry6hfrzpb1wmbxcpzcr39q4qm9qx3qp0i2b3ix3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZG9jayBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBvdXQgb2YgdGhlIG92ZXJ2aWV3IHRyYW5zZm9ybWluZyBpdCBpbiBhIGRvY2sgZm9yIGFuIGVhc2llciBsYXVuY2hpbmcgb2YgYXBwbGljYXRpb25zIGFuZCBhIGZhc3RlciBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIGFuZCBkZXNrdG9wcy4gU2lkZSBhbmQgYm90dG9tIHBsYWNlbWVudCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaHRvZG9jayIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9taWNoZWxlZy5naXRodWIuaW8vZGFzaC10by1kb2NrLyIsCiAgInV1aWQiOiAiZGFzaC10by1kb2NrQG1pY3hneC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOTIKfQ=="}
   }}
 , {"uuid": "mythtv-fnx@fnxweb.com", "name": "MythTV", "pname": "mythtv", "description": "Displays MythTV status (free space and upcoming recordings)", "link": "https://extensions.gnome.org/extension/321/mythtv/", "shell_version_map": {
     "38": {"version": "10", "sha256": "070h11gk5zpxn5xbc71skdz174hbb72l0isia2vp7d9wy4ackl0k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIE15dGhUViBzdGF0dXMgKGZyZWUgc3BhY2UgYW5kIHVwY29taW5nIHJlY29yZGluZ3MpIiwKICAibmFtZSI6ICJNeXRoVFYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mbnh3ZWIvZ25vbWUtc2hlbGwtbXl0aHR2IiwKICAidXVpZCI6ICJteXRodHYtZm54QGZueHdlYi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
@@ -326,7 +328,8 @@
     "41": {"version": "24", "sha256": "0zg9gwk93a7vxsh2ybbw550id9brcaxhcjzy5knj0h0rz7i1k2ik", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcDkxcGF1bC9CYWNrU2xpZGUiLAogICJ1dWlkIjogImJhY2tzbGlkZUBjb2RlaXNsYW5kLm9yZyIsCiAgInZlcnNpb24iOiAyNAp9"},
     "42": {"version": "26", "sha256": "09qd7az18fr9l67v00fxgpnzfwwn7qlz1r274rgsnsi6wjxd50qv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9wOTFwYXVsL0JhY2tTbGlkZSIsCiAgInV1aWQiOiAiYmFja3NsaWRlQGNvZGVpc2xhbmQub3JnIiwKICAidmVyc2lvbiI6IDI2Cn0="},
     "43": {"version": "28", "sha256": "0436dfcm4j7kgiz83hkkwg1p0mcq5x5if5xvbx693lm9qvisw09k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcDkxcGF1bC9CYWNrU2xpZGUiLAogICJ1dWlkIjogImJhY2tzbGlkZUBjb2RlaXNsYW5kLm9yZyIsCiAgInZlcnNpb24iOiAyOAp9"},
-    "44": {"version": "28", "sha256": "0436dfcm4j7kgiz83hkkwg1p0mcq5x5if5xvbx693lm9qvisw09k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcDkxcGF1bC9CYWNrU2xpZGUiLAogICJ1dWlkIjogImJhY2tzbGlkZUBjb2RlaXNsYW5kLm9yZyIsCiAgInZlcnNpb24iOiAyOAp9"}
+    "44": {"version": "28", "sha256": "0436dfcm4j7kgiz83hkkwg1p0mcq5x5if5xvbx693lm9qvisw09k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcDkxcGF1bC9CYWNrU2xpZGUiLAogICJ1dWlkIjogImJhY2tzbGlkZUBjb2RlaXNsYW5kLm9yZyIsCiAgInZlcnNpb24iOiAyOAp9"},
+    "46": {"version": "32", "sha256": "1kab8y5q3x9vqi3ih4i1h17c5y3pkyvyb6w6x8ckfjnhb8bwpbdf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYWNrc2xpZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcDkxcGF1bC9CYWNrU2xpZGUiLAogICJ1dWlkIjogImJhY2tzbGlkZUBjb2RlaXNsYW5kLm9yZyIsCiAgInZlcnNpb24iOiAzMgp9"}
   }}
 , {"uuid": "historymanager-prefix-search@sustmidown.centrum.cz", "name": "History Manager Prefix Search", "pname": "historymanager-prefix-search", "description": "Use PageUp and PageDown to move in HistoryManager (eg. Run Command, Looking Glass) according to prefix", "link": "https://extensions.gnome.org/extension/544/historymanager-prefix-search/", "shell_version_map": {
     "40": {"version": "18", "sha256": "0qhwdpdnxs3drda29zdb3vy8d7djb55i9a0d9a9rar3wqlncpbny", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBQYWdlVXAgYW5kIFBhZ2VEb3duIHRvIG1vdmUgaW4gSGlzdG9yeU1hbmFnZXIgKGVnLiBSdW4gQ29tbWFuZCwgTG9va2luZyBHbGFzcykgYWNjb3JkaW5nIHRvIHByZWZpeCIsCiAgImdldHRleHQtZG9tYWluIjogImhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJuYW1lIjogIkhpc3RvcnkgTWFuYWdlciBQcmVmaXggU2VhcmNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1c3RtaS9nbm9tZS1zaGVsbC1leHRlbnNpb24taGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaCIsCiAgInV1aWQiOiAiaGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaEBzdXN0bWlkb3duLmNlbnRydW0uY3oiLAogICJ2ZXJzaW9uIjogMTgKfQ=="},
@@ -334,7 +337,8 @@
     "42": {"version": "18", "sha256": "0qhwdpdnxs3drda29zdb3vy8d7djb55i9a0d9a9rar3wqlncpbny", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBQYWdlVXAgYW5kIFBhZ2VEb3duIHRvIG1vdmUgaW4gSGlzdG9yeU1hbmFnZXIgKGVnLiBSdW4gQ29tbWFuZCwgTG9va2luZyBHbGFzcykgYWNjb3JkaW5nIHRvIHByZWZpeCIsCiAgImdldHRleHQtZG9tYWluIjogImhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJuYW1lIjogIkhpc3RvcnkgTWFuYWdlciBQcmVmaXggU2VhcmNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1c3RtaS9nbm9tZS1zaGVsbC1leHRlbnNpb24taGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaCIsCiAgInV1aWQiOiAiaGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaEBzdXN0bWlkb3duLmNlbnRydW0uY3oiLAogICJ2ZXJzaW9uIjogMTgKfQ=="},
     "43": {"version": "18", "sha256": "0qhwdpdnxs3drda29zdb3vy8d7djb55i9a0d9a9rar3wqlncpbny", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBQYWdlVXAgYW5kIFBhZ2VEb3duIHRvIG1vdmUgaW4gSGlzdG9yeU1hbmFnZXIgKGVnLiBSdW4gQ29tbWFuZCwgTG9va2luZyBHbGFzcykgYWNjb3JkaW5nIHRvIHByZWZpeCIsCiAgImdldHRleHQtZG9tYWluIjogImhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJuYW1lIjogIkhpc3RvcnkgTWFuYWdlciBQcmVmaXggU2VhcmNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1c3RtaS9nbm9tZS1zaGVsbC1leHRlbnNpb24taGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaCIsCiAgInV1aWQiOiAiaGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaEBzdXN0bWlkb3duLmNlbnRydW0uY3oiLAogICJ2ZXJzaW9uIjogMTgKfQ=="},
     "44": {"version": "18", "sha256": "0qhwdpdnxs3drda29zdb3vy8d7djb55i9a0d9a9rar3wqlncpbny", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBQYWdlVXAgYW5kIFBhZ2VEb3duIHRvIG1vdmUgaW4gSGlzdG9yeU1hbmFnZXIgKGVnLiBSdW4gQ29tbWFuZCwgTG9va2luZyBHbGFzcykgYWNjb3JkaW5nIHRvIHByZWZpeCIsCiAgImdldHRleHQtZG9tYWluIjogImhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJuYW1lIjogIkhpc3RvcnkgTWFuYWdlciBQcmVmaXggU2VhcmNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1c3RtaS9nbm9tZS1zaGVsbC1leHRlbnNpb24taGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaCIsCiAgInV1aWQiOiAiaGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaEBzdXN0bWlkb3duLmNlbnRydW0uY3oiLAogICJ2ZXJzaW9uIjogMTgKfQ=="},
-    "45": {"version": "20", "sha256": "03bph5g6wzb0ln0ligbv40v35gqjyvy2ikn08dlx0m6yhwfxcibp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBQYWdlVXAgYW5kIFBhZ2VEb3duIHRvIG1vdmUgaW4gSGlzdG9yeU1hbmFnZXIgKGVnLiBSdW4gQ29tbWFuZCwgTG9va2luZyBHbGFzcykgYWNjb3JkaW5nIHRvIHByZWZpeCIsCiAgImdldHRleHQtZG9tYWluIjogImhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJuYW1lIjogIkhpc3RvcnkgTWFuYWdlciBQcmVmaXggU2VhcmNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3VzdG1pL2dub21lLXNoZWxsLWV4dGVuc2lvbi1oaXN0b3J5bWFuYWdlci1wcmVmaXgtc2VhcmNoIiwKICAidXVpZCI6ICJoaXN0b3J5bWFuYWdlci1wcmVmaXgtc2VhcmNoQHN1c3RtaWRvd24uY2VudHJ1bS5jeiIsCiAgInZlcnNpb24iOiAyMAp9"}
+    "45": {"version": "21", "sha256": "17wy4g7sa2j1bf85n1bnk1v6jwns4iv4y8b5vlb59ldm57i54h3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBQYWdlVXAgYW5kIFBhZ2VEb3duIHRvIG1vdmUgaW4gSGlzdG9yeU1hbmFnZXIgKGVnLiBSdW4gQ29tbWFuZCwgTG9va2luZyBHbGFzcykgYWNjb3JkaW5nIHRvIHByZWZpeCIsCiAgImdldHRleHQtZG9tYWluIjogImhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJuYW1lIjogIkhpc3RvcnkgTWFuYWdlciBQcmVmaXggU2VhcmNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1c3RtaS9nbm9tZS1zaGVsbC1leHRlbnNpb24taGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaCIsCiAgInV1aWQiOiAiaGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaEBzdXN0bWlkb3duLmNlbnRydW0uY3oiLAogICJ2ZXJzaW9uIjogMjEKfQ=="},
+    "46": {"version": "21", "sha256": "17wy4g7sa2j1bf85n1bnk1v6jwns4iv4y8b5vlb59ldm57i54h3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBQYWdlVXAgYW5kIFBhZ2VEb3duIHRvIG1vdmUgaW4gSGlzdG9yeU1hbmFnZXIgKGVnLiBSdW4gQ29tbWFuZCwgTG9va2luZyBHbGFzcykgYWNjb3JkaW5nIHRvIHByZWZpeCIsCiAgImdldHRleHQtZG9tYWluIjogImhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJuYW1lIjogIkhpc3RvcnkgTWFuYWdlciBQcmVmaXggU2VhcmNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1c3RtaS9nbm9tZS1zaGVsbC1leHRlbnNpb24taGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaCIsCiAgInV1aWQiOiAiaGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaEBzdXN0bWlkb3duLmNlbnRydW0uY3oiLAogICJ2ZXJzaW9uIjogMjEKfQ=="}
   }}
 , {"uuid": "hidetopbar@mathieu.bidon.ca", "name": "Hide Top Bar", "pname": "hide-top-bar", "description": "Hides the top bar, except in overview. However, there is an option to show the panel whenever the mouse pointer approaches the edge of the screen. And if \"intellihide\" is enabled, the panel only hides when a window takes the space.\n\n- Press backspace to remove keyboard shortcut.\n- Log off and on again when there is an error after upgrading.", "link": "https://extensions.gnome.org/extension/545/hide-top-bar/", "shell_version_map": {
     "38": {"version": "114", "sha256": "07mqqya5vpfs3bf7823ir3c23rjpn81l58m8r5nas3i2ggxsgfln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvdHV4b3IxMzM3L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiAxMTQKfQ=="},
@@ -343,7 +347,8 @@
     "42": {"version": "114", "sha256": "07mqqya5vpfs3bf7823ir3c23rjpn81l58m8r5nas3i2ggxsgfln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvdHV4b3IxMzM3L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiAxMTQKfQ=="},
     "43": {"version": "114", "sha256": "07mqqya5vpfs3bf7823ir3c23rjpn81l58m8r5nas3i2ggxsgfln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvdHV4b3IxMzM3L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiAxMTQKfQ=="},
     "44": {"version": "114", "sha256": "07mqqya5vpfs3bf7823ir3c23rjpn81l58m8r5nas3i2ggxsgfln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvdHV4b3IxMzM3L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiAxMTQKfQ=="},
-    "45": {"version": "116", "sha256": "0ymr8lrlxsv25b7c9wskkjqd8girkbwfvl3p9kwq4vklrphz1kr8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGlkZXRvcGJhckBtYXRoaWV1LmJpZG9uLmNhIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy90dXhvcjEzMzcvaGlkZXRvcGJhciIsCiAgInV1aWQiOiAiaGlkZXRvcGJhckBtYXRoaWV1LmJpZG9uLmNhIiwKICAidmVyc2lvbiI6IDExNgp9"}
+    "45": {"version": "117", "sha256": "1hb3g8r0hwrmymni2klzmb3chc9z9vddiqkavlc10hcrbhi8qs60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGlkZXRvcGJhckBtYXRoaWV1LmJpZG9uLmNhIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvdHV4b3IxMzM3L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiAxMTcKfQ=="},
+    "46": {"version": "117", "sha256": "1hb3g8r0hwrmymni2klzmb3chc9z9vddiqkavlc10hcrbhi8qs60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGlkZXRvcGJhckBtYXRoaWV1LmJpZG9uLmNhIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvdHV4b3IxMzM3L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiAxMTcKfQ=="}
   }}
 , {"uuid": "hdate@hatul.info", "name": "Gnome HDate", "pname": "gnome-hdate", "description": "Show Hebrew Date in the Panel.\nRequires libhdate-glib", "link": "https://extensions.gnome.org/extension/554/gnome-hdate/", "shell_version_map": {
     "40": {"version": "25", "sha256": "0nxn93jxagzld6x0rxi56q1y8lcjzh2p82jhxli90cg940w38jj9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSGVicmV3IERhdGUgaW4gdGhlIFBhbmVsLlxuUmVxdWlyZXMgbGliaGRhdGUtZ2xpYiIsCiAgIm5hbWUiOiAiR25vbWUgSERhdGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMiIsCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWlhZC9nbm9tZS1oZGF0ZSIsCiAgInV1aWQiOiAiaGRhdGVAaGF0dWwuaW5mbyIsCiAgInZlcnNpb24iOiAyNQp9"},
@@ -359,7 +364,8 @@
     "42": {"version": "37", "sha256": "19n83bachj4b6lvfsp6j4gpgm9wahxlz1is2954hw4d45m5yzfbn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vdG9kby50eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi8tL2Jsb2IvbWFzdGVyL0NIQU5HRUxPRy5tZCIsCiAgIm5hbWUiOiAiVG9kby50eHQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3RvZG8udHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi90b2RvLXR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInRvZG8udHh0QGJhcnQubGliZXJ0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzNwp9"},
     "43": {"version": "40", "sha256": "0ly27qxr126ffhpx8hvvyz6q2179kpq1q7hjy1wja6zflwcc94jf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vdG9kby50eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi8tL2Jsb2IvbWFzdGVyL0NIQU5HRUxPRy5tZCIsCiAgImdldHRleHQtZG9tYWluIjogInRvZG90eHQiLAogICJuYW1lIjogIlRvZG8udHh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS90b2RvLnR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24vdG9kby10eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0b2RvLnR4dEBiYXJ0LmxpYmVydC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDAKfQ=="},
     "44": {"version": "40", "sha256": "0ly27qxr126ffhpx8hvvyz6q2179kpq1q7hjy1wja6zflwcc94jf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vdG9kby50eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi8tL2Jsb2IvbWFzdGVyL0NIQU5HRUxPRy5tZCIsCiAgImdldHRleHQtZG9tYWluIjogInRvZG90eHQiLAogICJuYW1lIjogIlRvZG8udHh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS90b2RvLnR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24vdG9kby10eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0b2RvLnR4dEBiYXJ0LmxpYmVydC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDAKfQ=="},
-    "45": {"version": "43", "sha256": "1xmsvsi23gl44nz6ldgyfp086711m155vz69md3dch1d3ilfhq1h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vdG9kby50eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi8tL2Jsb2IvbWFzdGVyL0NIQU5HRUxPRy5tZCIsCiAgImdldHRleHQtZG9tYWluIjogInRvZG90eHQiLAogICJuYW1lIjogIlRvZG8udHh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3RvZG8udHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi90b2RvLXR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInRvZG8udHh0QGJhcnQubGliZXJ0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0Mwp9"}
+    "45": {"version": "43", "sha256": "1xmsvsi23gl44nz6ldgyfp086711m155vz69md3dch1d3ilfhq1h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vdG9kby50eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi8tL2Jsb2IvbWFzdGVyL0NIQU5HRUxPRy5tZCIsCiAgImdldHRleHQtZG9tYWluIjogInRvZG90eHQiLAogICJuYW1lIjogIlRvZG8udHh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3RvZG8udHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi90b2RvLXR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInRvZG8udHh0QGJhcnQubGliZXJ0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0Mwp9"},
+    "46": {"version": "44", "sha256": "0yzzvw9xlqmwh543j5g9v1g3avbpsz5kngfdnrg70yyxslr6ahm1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vdG9kby50eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi8tL2Jsb2IvbWFzdGVyL0NIQU5HRUxPRy5tZCIsCiAgImdldHRleHQtZG9tYWluIjogInRvZG90eHQiLAogICJuYW1lIjogIlRvZG8udHh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3RvZG8udHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi90b2RvLXR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInRvZG8udHh0QGJhcnQubGliZXJ0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0NAp9"}
   }}
 , {"uuid": "text_translator@awamper.gmail.com", "name": "Text Translator", "pname": "text-translator", "description": "** Needs the package translate-shell **\nTranslation of the text by different translators (currently Google.Translate, Yandex.Translate).\nShortcuts:\nSuper+T - open translator dialog.\nSuper+Shift+T - open translator dialog and translate text from clipboard.\nSuper+Alt+T - open translator dialog and translate from primary selection.\nCtrl+Enter+ - Translate text.\nCtrl+Shift+C - copy translated text to clipboard.\nCtrl+S - swap languages.\nCtrl+D - reset languages to default\nTab+ - toggle transliteration of result text.", "link": "https://extensions.gnome.org/extension/593/text-translator/", "shell_version_map": {
     "38": {"version": "36", "sha256": "1idzgg4vb791k5dryjvznr6mfwfx59vlgabw2n3spysbwvjv2a48", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIioqIE5lZWRzIHRoZSBwYWNrYWdlIHRyYW5zbGF0ZS1zaGVsbCAqKlxuVHJhbnNsYXRpb24gb2YgdGhlIHRleHQgYnkgZGlmZmVyZW50IHRyYW5zbGF0b3JzIChjdXJyZW50bHkgR29vZ2xlLlRyYW5zbGF0ZSwgWWFuZGV4LlRyYW5zbGF0ZSkuXG5TaG9ydGN1dHM6XG5TdXBlcitUIC0gb3BlbiB0cmFuc2xhdG9yIGRpYWxvZy5cblN1cGVyK1NoaWZ0K1QgLSBvcGVuIHRyYW5zbGF0b3IgZGlhbG9nIGFuZCB0cmFuc2xhdGUgdGV4dCBmcm9tIGNsaXBib2FyZC5cblN1cGVyK0FsdCtUIC0gb3BlbiB0cmFuc2xhdG9yIGRpYWxvZyBhbmQgdHJhbnNsYXRlIGZyb20gcHJpbWFyeSBzZWxlY3Rpb24uXG5DdHJsK0VudGVyKyAtIFRyYW5zbGF0ZSB0ZXh0LlxuQ3RybCtTaGlmdCtDIC0gY29weSB0cmFuc2xhdGVkIHRleHQgdG8gY2xpcGJvYXJkLlxuQ3RybCtTIC0gc3dhcCBsYW5ndWFnZXMuXG5DdHJsK0QgLSByZXNldCBsYW5ndWFnZXMgdG8gZGVmYXVsdFxuVGFiKyAtIHRvZ2dsZSB0cmFuc2xpdGVyYXRpb24gb2YgcmVzdWx0IHRleHQuIiwKICAibmFtZSI6ICJUZXh0IFRyYW5zbGF0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGV4dC10cmFuc2xhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ3Vmb2UvdGV4dC10cmFuc2xhdG9yIiwKICAidXVpZCI6ICJ0ZXh0X3RyYW5zbGF0b3JAYXdhbXBlci5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzYKfQ=="}
@@ -530,7 +536,7 @@
     "43": {"version": "18", "sha256": "1bd2zjmb5h4iw9z9k07x92fmxgbj8psz44p4fa64k0kzxka10mzp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAibmFtZSI6ICJQcm94eSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b21mbGFubmFnaGFuL3Byb3h5LXN3aXRjaGVyIiwKICAidXVpZCI6ICJQcm94eVN3aXRjaGVyQGZsYW5uYWdoYW4uY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="},
     "44": {"version": "19", "sha256": "0y7qx8kjwgpghl9w30xwmaxv9bafb26fhyx4lr52p4i1q2fi7y65", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAibmFtZSI6ICJQcm94eSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b21mbGFubmFnaGFuL3Byb3h5LXN3aXRjaGVyIiwKICAidXVpZCI6ICJQcm94eVN3aXRjaGVyQGZsYW5uYWdoYW4uY29tIiwKICAidmVyc2lvbiI6IDE5Cn0="},
     "45": {"version": "20", "sha256": "1d2zkxpg3fidr1q0v1dzxw3y0c24ixv712s3vzrylzn761jllcmd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiUHJveHlTd2l0Y2hlckBmbGFubmFnaGFuLmNvbSIsCiAgIm5hbWUiOiAiUHJveHkgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdG9tZmxhbm5hZ2hhbi9wcm94eS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiUHJveHlTd2l0Y2hlckBmbGFubmFnaGFuLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"},
-    "46": {"version": "21", "sha256": "04xrx55qfkwa6p40r8dyvk72ac9wg6cw54gafmghrxaf2r6syxy2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiUHJveHlTd2l0Y2hlckBmbGFubmFnaGFuLmNvbSIsCiAgIm5hbWUiOiAiUHJveHkgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdG9tZmxhbm5hZ2hhbi9wcm94eS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiUHJveHlTd2l0Y2hlckBmbGFubmFnaGFuLmNvbSIsCiAgInZlcnNpb24iOiAyMQp9"}
+    "46": {"version": "23", "sha256": "089vs06s6m9q0g9mw3jg8h0x6qgxr66xhjj6h2vhs01bvfdv6dr3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiUHJveHlTd2l0Y2hlckBmbGFubmFnaGFuLmNvbSIsCiAgIm5hbWUiOiAiUHJveHkgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY29tLWZsYW5uYWdoYW4tUHJveHlTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b21mbGFubmFnaGFuL3Byb3h5LXN3aXRjaGVyIiwKICAidXVpZCI6ICJQcm94eVN3aXRjaGVyQGZsYW5uYWdoYW4uY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}
   }}
 , {"uuid": "clipboard-indicator@tudmotu.com", "name": "Clipboard Indicator", "pname": "clipboard-indicator", "description": "The most popular clipboard manager for GNOME, with over 1M downloads", "link": "https://extensions.gnome.org/extension/779/clipboard-indicator/", "shell_version_map": {
     "38": {"version": "37", "sha256": "1nd6ydp5wmd56zf3vwrsi2wflrw15krdbvqv2fkmla8rndallp1i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsaXBib2FyZCBNYW5hZ2VyIGV4dGVuc2lvbiBmb3IgR25vbWUtU2hlbGwgLSBBZGRzIGEgY2xpcGJvYXJkIGluZGljYXRvciB0byB0aGUgdG9wIHBhbmVsLCBhbmQgY2FjaGVzIGNsaXBib2FyZCBoaXN0b3J5LiIsCiAgIm5hbWUiOiAiQ2xpcGJvYXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1R1ZG1vdHUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNsaXBib2FyZC1pbmRpY2F0b3IiLAogICJ1dWlkIjogImNsaXBib2FyZC1pbmRpY2F0b3JAdHVkbW90dS5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="},
@@ -758,7 +764,8 @@
     "42": {"version": "34", "sha256": "039bkjfr4ga2n3cj8pqpkvqpbspyk23f1dnv15sbq1il2zjqnm4i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL2hhcmRkaXNrbGVkIiwKICAidXVpZCI6ICJoYXJkZGlza2xlZEBiaWppZHJvaWQuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM0Cn0="},
     "43": {"version": "34", "sha256": "039bkjfr4ga2n3cj8pqpkvqpbspyk23f1dnv15sbq1il2zjqnm4i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL2hhcmRkaXNrbGVkIiwKICAidXVpZCI6ICJoYXJkZGlza2xlZEBiaWppZHJvaWQuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM0Cn0="},
     "44": {"version": "34", "sha256": "039bkjfr4ga2n3cj8pqpkvqpbspyk23f1dnv15sbq1il2zjqnm4i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL2hhcmRkaXNrbGVkIiwKICAidXVpZCI6ICJoYXJkZGlza2xlZEBiaWppZHJvaWQuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM0Cn0="},
-    "45": {"version": "37", "sha256": "0h6j301fafjx73ywc5xl05c2arfaj1kvwxaah8a448qfqrldxvgm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhhcmRkaXNrbGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JpamkvaGFyZGRpc2tsZWQiLAogICJ1dWlkIjogImhhcmRkaXNrbGVkQGJpamlkcm9pZC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="}
+    "45": {"version": "37", "sha256": "0h6j301fafjx73ywc5xl05c2arfaj1kvwxaah8a448qfqrldxvgm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhhcmRkaXNrbGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JpamkvaGFyZGRpc2tsZWQiLAogICJ1dWlkIjogImhhcmRkaXNrbGVkQGJpamlkcm9pZC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="},
+    "46": {"version": "39", "sha256": "1ndw6c5i8j52i43wr0awf4bhq5z6rh01ai3kv8y7l8anfi8ic4rj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhhcmRkaXNrbGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JpamkvaGFyZGRpc2tsZWQiLAogICJ1dWlkIjogImhhcmRkaXNrbGVkQGJpamlkcm9pZC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzkKfQ=="}
   }}
 , {"uuid": "syncthingicon@jay.strict@posteo.de", "name": "Syncthing Icon", "pname": "syncthing-icon", "description": "Display Syncthing Icon in Top Bar", "link": "https://extensions.gnome.org/extension/989/syncthing-icon/", "shell_version_map": {
     "40": {"version": "34", "sha256": "1pca7xk11bh46a1y1dhxmw6rlmmf5dpp0jamwn17xxxsp35fz5qk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgU3luY3RoaW5nIEljb24gaW4gVG9wIEJhciIsCiAgIm5hbWUiOiAiU3luY3RoaW5nIEljb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3luY3RoaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamF5c3RyaWN0b3IvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5bmN0aGluZyIsCiAgInV1aWQiOiAic3luY3RoaW5naWNvbkBqYXkuc3RyaWN0QHBvc3Rlby5kZSIsCiAgInZlcnNpb24iOiAzNAp9"},
@@ -776,7 +783,8 @@
     "42": {"version": "20", "sha256": "0ymrcci3pn62x80kazp2rn3yb52pz885w99djl25s8x764nzksjd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL251bm9mYXJydWNhL1dpbmRvd0lzUmVhZHlfUmVtb3ZlciIsCiAgInV1aWQiOiAid2luZG93SXNSZWFkeV9SZW1vdmVyQG51bm9mYXJydWNhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"},
     "43": {"version": "20", "sha256": "0ymrcci3pn62x80kazp2rn3yb52pz885w99djl25s8x764nzksjd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL251bm9mYXJydWNhL1dpbmRvd0lzUmVhZHlfUmVtb3ZlciIsCiAgInV1aWQiOiAid2luZG93SXNSZWFkeV9SZW1vdmVyQG51bm9mYXJydWNhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"},
     "44": {"version": "20", "sha256": "0ymrcci3pn62x80kazp2rn3yb52pz885w99djl25s8x764nzksjd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL251bm9mYXJydWNhL1dpbmRvd0lzUmVhZHlfUmVtb3ZlciIsCiAgInV1aWQiOiAid2luZG93SXNSZWFkeV9SZW1vdmVyQG51bm9mYXJydWNhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"},
-    "45": {"version": "22", "sha256": "0dm711ds72xgkim2jq3g6yjv253ryh3gzmbsxgqvj0ja5wzpks5v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbnVub2ZhcnJ1Y2EvV2luZG93SXNSZWFkeV9SZW1vdmVyIiwKICAidXVpZCI6ICJ3aW5kb3dJc1JlYWR5X1JlbW92ZXJAbnVub2ZhcnJ1Y2FAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}
+    "45": {"version": "23", "sha256": "1fkk6v623p0vka9g1rw0h98g9zb7kxh6ds71synp5fg3mw87nvs5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL251bm9mYXJydWNhL1dpbmRvd0lzUmVhZHlfUmVtb3ZlciIsCiAgInV1aWQiOiAid2luZG93SXNSZWFkeV9SZW1vdmVyQG51bm9mYXJydWNhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMwp9"},
+    "46": {"version": "23", "sha256": "1fkk6v623p0vka9g1rw0h98g9zb7kxh6ds71synp5fg3mw87nvs5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL251bm9mYXJydWNhL1dpbmRvd0lzUmVhZHlfUmVtb3ZlciIsCiAgInV1aWQiOiAid2luZG93SXNSZWFkeV9SZW1vdmVyQG51bm9mYXJydWNhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMwp9"}
   }}
 , {"uuid": "arch-update@RaphaelRochet", "name": "Arch Linux Updates Indicator", "pname": "archlinux-updates-indicator", "description": "Update indicator for Arch Linux and GNOME Shell.\n** Note : you now need to install the package pacman-contrib to use the checkupdates script. **\n  Can support AUR or other distros by changing command used to check for and apply updates. There are examples in the wiki page on GitHub.\n See README about Gnome Console", "link": "https://extensions.gnome.org/extension/1010/archlinux-updates-indicator/", "shell_version_map": {
     "38": {"version": "39", "sha256": "1wcyjy9idj674s7pyz0210pb6kzb3jmj1fv08cm93frdl9g61dn3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEFyY2ggTGludXggYW5kIEdOT01FIFNoZWxsLlxuKiogTm90ZSA6IHlvdSBub3cgbmVlZCB0byBpbnN0YWxsIHRoZSBwYWNrYWdlIHBhY21hbi1jb250cmliIHRvIHVzZSB0aGUgY2hlY2t1cGRhdGVzIHNjcmlwdC4gKipcbiAgQ2FuIHN1cHBvcnQgQVVSIG9yIG90aGVyIGRpc3Ryb3MgYnkgY2hhbmdpbmcgY29tbWFuZCB1c2VkIHRvIGNoZWNrIGZvciBhbmQgYXBwbHkgdXBkYXRlcy5cbiBTZWUgUkVBRE1FIGFib3V0IEdub21lIENvbnNvbGUiLAogICJuYW1lIjogIkFyY2ggTGludXggVXBkYXRlcyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMSIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhcGhhZWxSb2NoZXQvYXJjaC11cGRhdGUiLAogICJ1dWlkIjogImFyY2gtdXBkYXRlQFJhcGhhZWxSb2NoZXQiLAogICJ2ZXJzaW9uIjogMzkKfQ=="},
@@ -820,14 +828,15 @@
     "43": {"version": "26", "sha256": "0qvhpajqnq7cbpkiwlaxp16r1amfv0kk4l98gcj5082vjpp2w9g7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2t3aGlzcGVyZXIgaXMgYSBleHRlbnNpb24gZm9yIFRhc2tXYXJyaW9yIEFwcGxpY2F0aW9uIGh0dHBzOi8vdGFza3dhcnJpb3Iub3JnLiBJdCBpcyB0byBkaXNwbGF5IHVwY29taW5nIHRhc2tzIGFuZCB0YXNrIGRldGFpbHMgYXMgd2VsbCBhcyB0byBjcmVhdGUgYW5kIG1vZGlmeSB0aGVtLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2t3aGlzcGVyZXIiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9sb2NhbC9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlRhc2tXaGlzcGVyZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFza3doaXNwZXJlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2luYXRpYy90YXNrd2hpc3BlcmVyIiwKICAidXVpZCI6ICJ0YXNrd2hpc3BlcmVyLWV4dGVuc2lvbkBpbmZpbmljb2RlLmRlIiwKICAidmVyc2lvbiI6IDI2Cn0="},
     "44": {"version": "26", "sha256": "0qvhpajqnq7cbpkiwlaxp16r1amfv0kk4l98gcj5082vjpp2w9g7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2t3aGlzcGVyZXIgaXMgYSBleHRlbnNpb24gZm9yIFRhc2tXYXJyaW9yIEFwcGxpY2F0aW9uIGh0dHBzOi8vdGFza3dhcnJpb3Iub3JnLiBJdCBpcyB0byBkaXNwbGF5IHVwY29taW5nIHRhc2tzIGFuZCB0YXNrIGRldGFpbHMgYXMgd2VsbCBhcyB0byBjcmVhdGUgYW5kIG1vZGlmeSB0aGVtLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2t3aGlzcGVyZXIiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9sb2NhbC9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlRhc2tXaGlzcGVyZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFza3doaXNwZXJlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2luYXRpYy90YXNrd2hpc3BlcmVyIiwKICAidXVpZCI6ICJ0YXNrd2hpc3BlcmVyLWV4dGVuc2lvbkBpbmZpbmljb2RlLmRlIiwKICAidmVyc2lvbiI6IDI2Cn0="}
   }}
-, {"uuid": "randomwallpaper@iflow.space", "name": "Random Wallpaper", "pname": "random-wallpaper", "description": "Load new desktop wallpapers from various online sources with ease!\n\nFeatures:\nVarious configurable wallpaper sources\n--> Unsplash\n--> Wallhaven\n--> Reddit\n--> Basically any JSON API/File (Examples)\n----> Chromecast Images\n----> NASA Picture of the day\n----> Bing Picture of the day\n----> Google Earth View\n--> Local folders\n--> Static URLs\nMultiple sources to create a pool of sources\nHistory of previous images\n--> Save your favourite wallpaper\n--> Add images to a block list\nSet the lock screen background\nTimer based renewal (Auto-Fetching)\n--> Load a new wallpaper on startup\n--> Pause the timer when desired\nSupport for multiple monitors using third party tools\n--> Hydra Paper\n--> Superpaper\nExecute a custom command after every new wallpaper\n", "link": "https://extensions.gnome.org/extension/1040/random-wallpaper/", "shell_version_map": {
+, {"uuid": "randomwallpaper@iflow.space", "name": "Random Wallpaper", "pname": "random-wallpaper", "description": "Load new desktop wallpapers from various online sources with ease!\n\nFeatures:\nVarious configurable wallpaper sources\n-- Unsplash\n-- Wallhaven\n-- Reddit\n-- Basically any JSON API/File (Examples)\n---- Chromecast Images\n---- NASA Picture of the day\n---- Bing Picture of the day\n---- Google Earth View\n-- Local folders\n-- Static URLs\nMultiple sources to create a pool of sources\nHistory of previous images\n-- Save your favourite wallpaper\n-- Add images to a block list\nSet the lock screen background\nTimer based renewal (Auto-Fetching)\n-- Load a new wallpaper on startup\n-- Pause the timer when desired\nSupport for multiple monitors using third party tools\n-- Hydra Paper\n-- Superpaper\nExecute a custom command after every new wallpaper\n", "link": "https://extensions.gnome.org/extension/1040/random-wallpaper/", "shell_version_map": {
     "38": {"version": "22", "sha256": "1mnc7k1816r0q8c95y36ryzl9cni6zms5xm587wmdmy4xi92i8ic", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNC41IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2lmbDB3L1JhbmRvbVdhbGxwYXBlckdub21lMyIsCiAgInV1aWQiOiAicmFuZG9td2FsbHBhcGVyQGlmbG93LnNwYWNlIiwKICAidmVyc2lvbiI6IDIyCn0="},
     "40": {"version": "32", "sha256": "1l4s37rp1bx20r7pg906yqsvl9s6a18y0mcx08xkc11jn68d1g4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNy40IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzIiwKICAidXVpZCI6ICJyYW5kb213YWxscGFwZXJAaWZsb3cuc3BhY2UiLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
     "41": {"version": "32", "sha256": "1l4s37rp1bx20r7pg906yqsvl9s6a18y0mcx08xkc11jn68d1g4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNy40IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzIiwKICAidXVpZCI6ICJyYW5kb213YWxscGFwZXJAaWZsb3cuc3BhY2UiLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
     "42": {"version": "32", "sha256": "1l4s37rp1bx20r7pg906yqsvl9s6a18y0mcx08xkc11jn68d1g4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNy40IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzIiwKICAidXVpZCI6ICJyYW5kb213YWxscGFwZXJAaWZsb3cuc3BhY2UiLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
     "43": {"version": "32", "sha256": "1l4s37rp1bx20r7pg906yqsvl9s6a18y0mcx08xkc11jn68d1g4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNy40IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzIiwKICAidXVpZCI6ICJyYW5kb213YWxscGFwZXJAaWZsb3cuc3BhY2UiLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
     "44": {"version": "32", "sha256": "1l4s37rp1bx20r7pg906yqsvl9s6a18y0mcx08xkc11jn68d1g4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNy40IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzIiwKICAidXVpZCI6ICJyYW5kb213YWxscGFwZXJAaWZsb3cuc3BhY2UiLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
-    "45": {"version": "34", "sha256": "1k0g1yyw0vk5n6c9qfa955bv1s9zlvca013i1p6iq9xn7y5alkjl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgbmV3IGRlc2t0b3Agd2FsbHBhcGVycyBmcm9tIHZhcmlvdXMgb25saW5lIHNvdXJjZXMgd2l0aCBlYXNlISIsCiAgImlzc3VlLXVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzL2lzc3VlcyIsCiAgIm5hbWUiOiAiUmFuZG9tIFdhbGxwYXBlciIsCiAgInNlbWFudGljLXZlcnNpb24iOiAiMy4wLjEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3BhY2UuaWZsb3cucmFuZG9td2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2lmbDB3L1JhbmRvbVdhbGxwYXBlckdub21lMyIsCiAgInV1aWQiOiAicmFuZG9td2FsbHBhcGVyQGlmbG93LnNwYWNlIiwKICAidmVyc2lvbiI6IDM0Cn0="}
+    "45": {"version": "35", "sha256": "16hqgsxafiqbrnnpmflslqyc0yklsdvn7kw8pnrnnh57b7fzn265", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgbmV3IGRlc2t0b3Agd2FsbHBhcGVycyBmcm9tIHZhcmlvdXMgb25saW5lIHNvdXJjZXMgd2l0aCBlYXNlISIsCiAgImlzc3VlLXVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzL2lzc3VlcyIsCiAgIm5hbWUiOiAiUmFuZG9tIFdhbGxwYXBlciIsCiAgInNlbWFudGljLXZlcnNpb24iOiAiMy4wLjIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3BhY2UuaWZsb3cucmFuZG9td2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pZmwwdy9SYW5kb21XYWxscGFwZXJHbm9tZTMiLAogICJ1dWlkIjogInJhbmRvbXdhbGxwYXBlckBpZmxvdy5zcGFjZSIsCiAgInZlcnNpb24iOiAzNQp9"},
+    "46": {"version": "35", "sha256": "16hqgsxafiqbrnnpmflslqyc0yklsdvn7kw8pnrnnh57b7fzn265", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgbmV3IGRlc2t0b3Agd2FsbHBhcGVycyBmcm9tIHZhcmlvdXMgb25saW5lIHNvdXJjZXMgd2l0aCBlYXNlISIsCiAgImlzc3VlLXVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzL2lzc3VlcyIsCiAgIm5hbWUiOiAiUmFuZG9tIFdhbGxwYXBlciIsCiAgInNlbWFudGljLXZlcnNpb24iOiAiMy4wLjIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3BhY2UuaWZsb3cucmFuZG9td2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pZmwwdy9SYW5kb21XYWxscGFwZXJHbm9tZTMiLAogICJ1dWlkIjogInJhbmRvbXdhbGxwYXBlckBpZmxvdy5zcGFjZSIsCiAgInZlcnNpb24iOiAzNQp9"}
   }}
 , {"uuid": "gse-haguichi-indicator@ztefn.github.com", "name": "Haguichi Indicator", "pname": "haguichi-indicator", "description": "Lets you control Haguichi directly from the system status area in GNOME Shell.", "link": "https://extensions.gnome.org/extension/1045/haguichi-indicator/", "shell_version_map": {
     "38": {"version": "23", "sha256": "0gffarks0z70gdiz8jlgivv2lzxbr0hwbljjhs1xbffx45rla3g5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldHMgeW91IGNvbnRyb2wgSGFndWljaGkgZGlyZWN0bHkgZnJvbSB0aGUgc3lzdGVtIHN0YXR1cyBhcmVhIGluIEdOT01FIFNoZWxsLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAienRlZm4iCiAgfSwKICAibmFtZSI6ICJIYWd1aWNoaSBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3p0ZWZuL2dzZS1oYWd1aWNoaS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImdzZS1oYWd1aWNoaS1pbmRpY2F0b3JAenRlZm4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMwp9"},
@@ -926,7 +935,8 @@
     "42": {"version": "11", "sha256": "0v16xkjry4anjk12iy5p1ny5mh3ckbf4s4h9qmbfljfhmzsfkm09", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgeW91ciBjb21wdXRlciBhd2FrZSEgUHJldmVudHMgdGhhdCB5b3VyIGNvbXB1dGVyIGFjdGl2YXRlcyBzY2VlbnNhdmVyLCB0dXJucyBvZmYgaXRzIHNjcmVlbihzKSBvciBnb2VzIHRvIGhpYmVybmF0ZSB3aGVuIG5vdCBhY3RpdmVseSB1c2VkIGZvciBhIHdoaWxlLiBDbGljayB0aGUgaW5kaWNhdG9yIGljb24gb25jZSB0byBrZWVwIHlvdXIgY29tcHV0ZXIgYXdha2UgZm9yIHRoZSBjdXJyZW50IHNlc3Npb24uIENsaWNrIGFnYWluIHRvIGtlZXAgaXQgYXdha2UgYWxzbyBiZXR3ZWVuIHJlc3RhcnRzIChpbmRpY2F0ZWQgYnkgYSBzbWFsbCBsb2NrIGljb24gb24gdGhlIGluZGljYXRvcikuIENsaWNraW5nIGFnYWluIHRvIG5vdCBrZWVwIGF3YWtlLiIsCiAgIm5hbWUiOiAiS2VlcCBhd2FrZSEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuS2VlcEF3YWtlQGplcGZhLmRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZW5zcGZhaGwvS2VlcEF3YWtlIiwKICAidXVpZCI6ICJLZWVwQXdha2VAamVwZmEuZGUiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
     "43": {"version": "11", "sha256": "0v16xkjry4anjk12iy5p1ny5mh3ckbf4s4h9qmbfljfhmzsfkm09", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgeW91ciBjb21wdXRlciBhd2FrZSEgUHJldmVudHMgdGhhdCB5b3VyIGNvbXB1dGVyIGFjdGl2YXRlcyBzY2VlbnNhdmVyLCB0dXJucyBvZmYgaXRzIHNjcmVlbihzKSBvciBnb2VzIHRvIGhpYmVybmF0ZSB3aGVuIG5vdCBhY3RpdmVseSB1c2VkIGZvciBhIHdoaWxlLiBDbGljayB0aGUgaW5kaWNhdG9yIGljb24gb25jZSB0byBrZWVwIHlvdXIgY29tcHV0ZXIgYXdha2UgZm9yIHRoZSBjdXJyZW50IHNlc3Npb24uIENsaWNrIGFnYWluIHRvIGtlZXAgaXQgYXdha2UgYWxzbyBiZXR3ZWVuIHJlc3RhcnRzIChpbmRpY2F0ZWQgYnkgYSBzbWFsbCBsb2NrIGljb24gb24gdGhlIGluZGljYXRvcikuIENsaWNraW5nIGFnYWluIHRvIG5vdCBrZWVwIGF3YWtlLiIsCiAgIm5hbWUiOiAiS2VlcCBhd2FrZSEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuS2VlcEF3YWtlQGplcGZhLmRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZW5zcGZhaGwvS2VlcEF3YWtlIiwKICAidXVpZCI6ICJLZWVwQXdha2VAamVwZmEuZGUiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
     "44": {"version": "11", "sha256": "0v16xkjry4anjk12iy5p1ny5mh3ckbf4s4h9qmbfljfhmzsfkm09", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgeW91ciBjb21wdXRlciBhd2FrZSEgUHJldmVudHMgdGhhdCB5b3VyIGNvbXB1dGVyIGFjdGl2YXRlcyBzY2VlbnNhdmVyLCB0dXJucyBvZmYgaXRzIHNjcmVlbihzKSBvciBnb2VzIHRvIGhpYmVybmF0ZSB3aGVuIG5vdCBhY3RpdmVseSB1c2VkIGZvciBhIHdoaWxlLiBDbGljayB0aGUgaW5kaWNhdG9yIGljb24gb25jZSB0byBrZWVwIHlvdXIgY29tcHV0ZXIgYXdha2UgZm9yIHRoZSBjdXJyZW50IHNlc3Npb24uIENsaWNrIGFnYWluIHRvIGtlZXAgaXQgYXdha2UgYWxzbyBiZXR3ZWVuIHJlc3RhcnRzIChpbmRpY2F0ZWQgYnkgYSBzbWFsbCBsb2NrIGljb24gb24gdGhlIGluZGljYXRvcikuIENsaWNraW5nIGFnYWluIHRvIG5vdCBrZWVwIGF3YWtlLiIsCiAgIm5hbWUiOiAiS2VlcCBhd2FrZSEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuS2VlcEF3YWtlQGplcGZhLmRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZW5zcGZhaGwvS2VlcEF3YWtlIiwKICAidXVpZCI6ICJLZWVwQXdha2VAamVwZmEuZGUiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
-    "45": {"version": "13", "sha256": "16s99397wrxnjsj92jc0d061clbhx3m38x400rqg8s0lspnmaj13", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgeW91ciBjb21wdXRlciBhd2FrZSEgUHJldmVudHMgdGhhdCB5b3VyIGNvbXB1dGVyIGFjdGl2YXRlcyBzY2VlbnNhdmVyLCB0dXJucyBvZmYgc2NyZWVuKHMpIG9yIGdvZXMgdG8gaGliZXJuYXRlIHdoZW4gbm90IGFjdGl2ZWx5IHVzZWQgZm9yIGEgd2hpbGUuIENsaWNrIHRoZSBpbmRpY2F0b3IgaWNvbiBvbmNlIHRvIGtlZXAgeW91ciBjb21wdXRlciBhd2FrZSBmb3IgdGhlIGN1cnJlbnQgc2Vzc2lvbi4gQ2xpY2sgYWdhaW4gdG8ga2VlcCBpdCBhd2FrZSBhbHNvIGJldHdlZW4gcmVzdGFydHMgKGluZGljYXRlZCBieSBhIHNtYWxsIGxvY2sgaWNvbiBvbiB0aGUgaW5kaWNhdG9yKS4gQ2xpY2tpbmcgYWdhaW4gdG8gbm90IGtlZXAgYXdha2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiS2VlcEF3YWtlIiwKICAibmFtZSI6ICJLZWVwIGF3YWtlISIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5LZWVwQXdha2VAamVwZmEuZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamVuc3BmYWhsL0tlZXBBd2FrZSIsCiAgInV1aWQiOiAiS2VlcEF3YWtlQGplcGZhLmRlIiwKICAidmVyc2lvbiI6IDEzCn0="}
+    "45": {"version": "14", "sha256": "177l0kcffdbm823dz1lsq0ga7mdn4dw76qzahy52bb170vmj9547", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgeW91ciBjb21wdXRlciBhd2FrZSEgUHJldmVudHMgdGhhdCB5b3VyIGNvbXB1dGVyIGFjdGl2YXRlcyBzY2VlbnNhdmVyLCB0dXJucyBvZmYgc2NyZWVuKHMpIG9yIGdvZXMgdG8gaGliZXJuYXRlIHdoZW4gbm90IGFjdGl2ZWx5IHVzZWQgZm9yIGEgd2hpbGUuIENsaWNrIHRoZSBpbmRpY2F0b3IgaWNvbiBvbmNlIHRvIGtlZXAgeW91ciBjb21wdXRlciBhd2FrZSBmb3IgdGhlIGN1cnJlbnQgc2Vzc2lvbi4gQ2xpY2sgYWdhaW4gdG8ga2VlcCBpdCBhd2FrZSBhbHNvIGJldHdlZW4gcmVzdGFydHMgKGluZGljYXRlZCBieSBhIHNtYWxsIGxvY2sgaWNvbiBvbiB0aGUgaW5kaWNhdG9yKS4gQ2xpY2tpbmcgYWdhaW4gdG8gbm90IGtlZXAgYXdha2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiS2VlcEF3YWtlIiwKICAibmFtZSI6ICJLZWVwIGF3YWtlISIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5LZWVwQXdha2VAamVwZmEuZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plbnNwZmFobC9LZWVwQXdha2UiLAogICJ1dWlkIjogIktlZXBBd2FrZUBqZXBmYS5kZSIsCiAgInZlcnNpb24iOiAxNAp9"},
+    "46": {"version": "14", "sha256": "177l0kcffdbm823dz1lsq0ga7mdn4dw76qzahy52bb170vmj9547", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgeW91ciBjb21wdXRlciBhd2FrZSEgUHJldmVudHMgdGhhdCB5b3VyIGNvbXB1dGVyIGFjdGl2YXRlcyBzY2VlbnNhdmVyLCB0dXJucyBvZmYgc2NyZWVuKHMpIG9yIGdvZXMgdG8gaGliZXJuYXRlIHdoZW4gbm90IGFjdGl2ZWx5IHVzZWQgZm9yIGEgd2hpbGUuIENsaWNrIHRoZSBpbmRpY2F0b3IgaWNvbiBvbmNlIHRvIGtlZXAgeW91ciBjb21wdXRlciBhd2FrZSBmb3IgdGhlIGN1cnJlbnQgc2Vzc2lvbi4gQ2xpY2sgYWdhaW4gdG8ga2VlcCBpdCBhd2FrZSBhbHNvIGJldHdlZW4gcmVzdGFydHMgKGluZGljYXRlZCBieSBhIHNtYWxsIGxvY2sgaWNvbiBvbiB0aGUgaW5kaWNhdG9yKS4gQ2xpY2tpbmcgYWdhaW4gdG8gbm90IGtlZXAgYXdha2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiS2VlcEF3YWtlIiwKICAibmFtZSI6ICJLZWVwIGF3YWtlISIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5LZWVwQXdha2VAamVwZmEuZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plbnNwZmFobC9LZWVwQXdha2UiLAogICJ1dWlkIjogIktlZXBBd2FrZUBqZXBmYS5kZSIsCiAgInZlcnNpb24iOiAxNAp9"}
   }}
 , {"uuid": "todolist@tomMoral.org", "name": "Section Todo List", "pname": "section-todo-list", "description": "Manage todo list with an applet\n\n* Add and remove task on your list in different sections.\n* Click an item to rename it.\n* Access the extension using Hot-Key (default: Ctrl+Space)\n\n**Note:** I don't come on this page often so if you need any help, please refer to the github repo and open an issue :) ", "link": "https://extensions.gnome.org/extension/1104/section-todo-list/", "shell_version_map": {
     "38": {"version": "13", "sha256": "0q2sl28w2dmcdxvhvwvldmm89qh3m83678nww0v6varbmf99vj1b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB0b2RvIGxpc3Qgd2l0aCBhbiBhcHBsZXRcblxuKiBBZGQgYW5kIHJlbW92ZSB0YXNrIG9uIHlvdXIgbGlzdCBpbiBkaWZmZXJlbnQgc2VjdGlvbnMuXG4qIENsaWNrIGFuIGl0ZW0gdG8gcmVuYW1lIGl0LlxuKiBBY2Nlc3MgdGhlIGV4dGVuc2lvbiB1c2luZyBIb3QtS2V5IChkZWZhdWx0OiBDdHJsK1NwYWNlKVxuXG4qKk5vdGU6KiogSSBkb24ndCBjb21lIG9uIHRoaXMgcGFnZSBvZnRlbiBzbyBpZiB5b3UgbmVlZCBhbnkgaGVscCwgcGxlYXNlIHJlZmVyIHRvIHRoZSBnaXRodWIgcmVwbyBhbmQgb3BlbiBhbiBpc3N1ZSA6KSAiLAogICJuYW1lIjogIlNlY3Rpb24gVG9kbyBMaXN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdG9tTW9yYWwvVG9Eb0xpc3QiLAogICJ1dWlkIjogInRvZG9saXN0QHRvbU1vcmFsLm9yZyIsCiAgInZlcnNpb24iOiAxMwp9"},
@@ -1024,7 +1034,8 @@
     "42": {"version": "37", "sha256": "1v0qjzyqylhhdqybm6p2lhiwp3cz1mnx7lq7gbpznf4k2w44mi8f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiQWN0aXZpdHkgQXBwIExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2FjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJ1dWlkIjogImFjdGl2aXR5QXBwTGF1bmNoZXJAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="},
     "43": {"version": "37", "sha256": "1v0qjzyqylhhdqybm6p2lhiwp3cz1mnx7lq7gbpznf4k2w44mi8f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiQWN0aXZpdHkgQXBwIExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2FjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJ1dWlkIjogImFjdGl2aXR5QXBwTGF1bmNoZXJAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="},
     "44": {"version": "37", "sha256": "1v0qjzyqylhhdqybm6p2lhiwp3cz1mnx7lq7gbpznf4k2w44mi8f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiQWN0aXZpdHkgQXBwIExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2FjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJ1dWlkIjogImFjdGl2aXR5QXBwTGF1bmNoZXJAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="},
-    "45": {"version": "39", "sha256": "0khrd333k5sch7q31f375kzim25fa8pwa9s0gawr151n8bmsxqds", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgImdldHRleHQtZG9tYWluIjogImFjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJuYW1lIjogIkFjdGl2aXR5IEFwcCBMYXVuY2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hY3Rpdml0eUFwcExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3Jhc3RlcnNvZnQvYWN0aXZpdHlBcHBMYXVuY2hlciIsCiAgInV1aWQiOiAiYWN0aXZpdHlBcHBMYXVuY2hlckByYXN0ZXJzb2Z0LmNvbSIsCiAgInZlcnNpb24iOiAzOQp9"}
+    "45": {"version": "41", "sha256": "1j9k0qf19pj60749fwy9907cxxl8sy4qxbw722is2qddqphxz171", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgImdldHRleHQtZG9tYWluIjogImFjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJuYW1lIjogIkFjdGl2aXR5IEFwcCBMYXVuY2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hY3Rpdml0eUFwcExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2FjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJ1dWlkIjogImFjdGl2aXR5QXBwTGF1bmNoZXJAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogNDEKfQ=="},
+    "46": {"version": "41", "sha256": "1j9k0qf19pj60749fwy9907cxxl8sy4qxbw722is2qddqphxz171", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgImdldHRleHQtZG9tYWluIjogImFjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJuYW1lIjogIkFjdGl2aXR5IEFwcCBMYXVuY2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hY3Rpdml0eUFwcExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2FjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJ1dWlkIjogImFjdGl2aXR5QXBwTGF1bmNoZXJAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogNDEKfQ=="}
   }}
 , {"uuid": "shutdown-timer-gnome-shell-extension", "name": "ShutdownTimer", "pname": "shutdowntimer", "description": "Allows to shutdown, restart and suspend computer after selected amount of time or in selected time.", "link": "https://extensions.gnome.org/extension/1152/shutdowntimer/", "shell_version_map": {
     "40": {"version": "9", "sha256": "1y69lv3mq66xxfxabngnbb104d26i05cyhmx3dqf4kyf1kd6jqvx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0byBzaHV0ZG93biwgcmVzdGFydCBhbmQgc3VzcGVuZCBjb21wdXRlciBhZnRlciBzZWxlY3RlZCBhbW91bnQgb2YgdGltZSBvciBpbiBzZWxlY3RlZCB0aW1lLiIsCiAgImdldHRleHQtZG9tYWluIjogIkF1dG9tYXRpY1NodXRkb3duVGltZXIiLAogICJuYW1lIjogIlNodXRkb3duVGltZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXV0b21hdGljLXNodXRkb3duLXRpbWVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21rcmFqbmFrL3NodXRkb3duLXRpbWVyLWdub21lLXNoZWxsLWV4dGVuc2lvbi8iLAogICJ1dWlkIjogInNodXRkb3duLXRpbWVyLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInZlcnNpb24iOiA5Cn0="}
@@ -1076,7 +1087,8 @@
     "42": {"version": "32", "sha256": "0kpg34m9n4m6cm262gz20akrjlpd7mhfgqsbrjs9wr9xv16wzw95", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLlxuXG5OT1RFOiBJIGlnbm9yZSBidWcgcmVwb3J0cyBzZW50IGhlcmUuIFBsZWFzZSB1c2UgZ2l0aHViLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWl2YWxlby9TaG93LURlc2t0b3AtQnV0dG9uIiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uQGFtaXZhbGVvIiwKICAidmVyc2lvbiI6IDMyCn0="},
     "43": {"version": "32", "sha256": "0kpg34m9n4m6cm262gz20akrjlpd7mhfgqsbrjs9wr9xv16wzw95", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLlxuXG5OT1RFOiBJIGlnbm9yZSBidWcgcmVwb3J0cyBzZW50IGhlcmUuIFBsZWFzZSB1c2UgZ2l0aHViLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWl2YWxlby9TaG93LURlc2t0b3AtQnV0dG9uIiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uQGFtaXZhbGVvIiwKICAidmVyc2lvbiI6IDMyCn0="},
     "44": {"version": "32", "sha256": "0kpg34m9n4m6cm262gz20akrjlpd7mhfgqsbrjs9wr9xv16wzw95", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLlxuXG5OT1RFOiBJIGlnbm9yZSBidWcgcmVwb3J0cyBzZW50IGhlcmUuIFBsZWFzZSB1c2UgZ2l0aHViLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWl2YWxlby9TaG93LURlc2t0b3AtQnV0dG9uIiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uQGFtaXZhbGVvIiwKICAidmVyc2lvbiI6IDMyCn0="},
-    "45": {"version": "34", "sha256": "0xdk1prwhkp7vm3a7p011kh984rhb443caa3jc09vjzzvl07v52z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtaXZhbGVvL1Nob3ctRGVza3RvcC1CdXR0b24iLAogICJ1dWlkIjogInNob3ctZGVza3RvcC1idXR0b25AYW1pdmFsZW8iLAogICJ2ZXJzaW9uIjogMzQKfQ=="}
+    "45": {"version": "35", "sha256": "0izyic6a5laajgnm29cw3r6f6m7q96530j1k6wvsanb8r1j21v01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWl2YWxlby9TaG93LURlc2t0b3AtQnV0dG9uIiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uQGFtaXZhbGVvIiwKICAidmVyc2lvbiI6IDM1Cn0="},
+    "46": {"version": "35", "sha256": "0izyic6a5laajgnm29cw3r6f6m7q96530j1k6wvsanb8r1j21v01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWl2YWxlby9TaG93LURlc2t0b3AtQnV0dG9uIiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uQGFtaXZhbGVvIiwKICAidmVyc2lvbiI6IDM1Cn0="}
   }}
 , {"uuid": "walkpaper@walkpaper.blinkbp.github.com", "name": "Walkpaper", "pname": "walkpaper", "description": "Set different wallpaper for each workspace by having the wallpaper switch on workspace change.", "link": "https://extensions.gnome.org/extension/1200/walkpaper/", "shell_version_map": {
     "40": {"version": "9", "sha256": "1ckrf3y20wp3dv4aig44rycj7kbrxj14gh3rzs17vcqma3aw76bq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBkaWZmZXJlbnQgd2FsbHBhcGVyIGZvciBlYWNoIHdvcmtzcGFjZSBieSBoYXZpbmcgdGhlIHdhbGxwYXBlciBzd2l0Y2ggb24gd29ya3NwYWNlIGNoYW5nZS4iLAogICJleHRlbnNpb24taWQiOiAid2Fsa3BhcGVyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZW5nbGlzaCIsCiAgIm5hbWUiOiAiV2Fsa3BhcGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndhbGtwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmxpbmtCUC93YWxrcGFwZXIiLAogICJ1dWlkIjogIndhbGtwYXBlckB3YWxrcGFwZXIuYmxpbmticC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="},
@@ -1251,9 +1263,11 @@
   }}
 , {"uuid": "nvidiautil@ethanwharris", "name": "NVIDIA GPU Stats Tool", "pname": "nvidia-gpu-stats-tool", "description": "Shows NVIDIA GPU stats in the toolbar. Requires nvidia-settings or nvidia-smi. Includes Bumblebee support.", "link": "https://extensions.gnome.org/extension/1320/nvidia-gpu-stats-tool/", "shell_version_map": {
     "38": {"version": "8", "sha256": "12yi2kcq2rm1ddb8djjlffvk6dhpfd996wjhwdf4jch1r85r8a30", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXRoYW53aGFycmlzL2dub21lLW52aWRpYS1leHRlbnNpb24iLAogICJ1dWlkIjogIm52aWRpYXV0aWxAZXRoYW53aGFycmlzIiwKICAidmVyc2lvbiI6IDgKfQ=="},
-    "40": {"version": "10", "sha256": "1x6ifcdmvfvp1y5xj2fmb50gw9m9jrhxrq9jpqjgx7y4mbp6xazb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXRoYW53aGFycmlzL2dub21lLW52aWRpYS1leHRlbnNpb24iLAogICJ1dWlkIjogIm52aWRpYXV0aWxAZXRoYW53aGFycmlzIiwKICAidmVyc2lvbiI6IDEwCn0="},
-    "41": {"version": "10", "sha256": "1x6ifcdmvfvp1y5xj2fmb50gw9m9jrhxrq9jpqjgx7y4mbp6xazb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXRoYW53aGFycmlzL2dub21lLW52aWRpYS1leHRlbnNpb24iLAogICJ1dWlkIjogIm52aWRpYXV0aWxAZXRoYW53aGFycmlzIiwKICAidmVyc2lvbiI6IDEwCn0="},
-    "42": {"version": "10", "sha256": "1x6ifcdmvfvp1y5xj2fmb50gw9m9jrhxrq9jpqjgx7y4mbp6xazb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXRoYW53aGFycmlzL2dub21lLW52aWRpYS1leHRlbnNpb24iLAogICJ1dWlkIjogIm52aWRpYXV0aWxAZXRoYW53aGFycmlzIiwKICAidmVyc2lvbiI6IDEwCn0="}
+    "40": {"version": "12", "sha256": "1vjdm6nrh3z9g4z340w3n72cnv14rhmi9dzck6j7c4c5zy03m44m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldGhhbndoYXJyaXMvZ25vbWUtbnZpZGlhLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibnZpZGlhdXRpbEBldGhhbndoYXJyaXMiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "41": {"version": "12", "sha256": "1vjdm6nrh3z9g4z340w3n72cnv14rhmi9dzck6j7c4c5zy03m44m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldGhhbndoYXJyaXMvZ25vbWUtbnZpZGlhLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibnZpZGlhdXRpbEBldGhhbndoYXJyaXMiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "42": {"version": "12", "sha256": "1vjdm6nrh3z9g4z340w3n72cnv14rhmi9dzck6j7c4c5zy03m44m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldGhhbndoYXJyaXMvZ25vbWUtbnZpZGlhLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibnZpZGlhdXRpbEBldGhhbndoYXJyaXMiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "43": {"version": "12", "sha256": "1vjdm6nrh3z9g4z340w3n72cnv14rhmi9dzck6j7c4c5zy03m44m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldGhhbndoYXJyaXMvZ25vbWUtbnZpZGlhLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibnZpZGlhdXRpbEBldGhhbndoYXJyaXMiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "44": {"version": "12", "sha256": "1vjdm6nrh3z9g4z340w3n72cnv14rhmi9dzck6j7c4c5zy03m44m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldGhhbndoYXJyaXMvZ25vbWUtbnZpZGlhLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibnZpZGlhdXRpbEBldGhhbndoYXJyaXMiLAogICJ2ZXJzaW9uIjogMTIKfQ=="}
   }}
 , {"uuid": "pause-night-light@tijnschuurmans.nl", "name": "Pause Night Light", "pname": "pause-night-light", "description": "Disable Night Light for 10 seconds. This short interruption allows you to scan a colour code (e.g. Crontosign) from your screen.", "link": "https://extensions.gnome.org/extension/1327/pause-night-light/", "shell_version_map": {
     "40": {"version": "8", "sha256": "1j4yywvmwplbyjjwp79rxmfgsf7kv67v0d9rhbg6bnqw04bq91ki", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgTmlnaHQgTGlnaHQgZm9yIDEwIHNlY29uZHMuIFRoaXMgc2hvcnQgaW50ZXJydXB0aW9uIGFsbG93cyB5b3UgdG8gc2NhbiBhIGNvbG91ciBjb2RlIChlLmcuIENyb250b3NpZ24pIGZyb20geW91ciBzY3JlZW4uIiwKICAibmFtZSI6ICJQYXVzZSBOaWdodCBMaWdodCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Rpam4vcGF1c2UtbmlnaHQtbGlnaHQiLAogICJ1dWlkIjogInBhdXNlLW5pZ2h0LWxpZ2h0QHRpam5zY2h1dXJtYW5zLm5sIiwKICAidmVyc2lvbiI6IDgKfQ=="}
@@ -1328,7 +1342,8 @@
     "42": {"version": "7", "sha256": "0fq8gwppj21r1082ga6yyhfjlhqgxs6fjychrksvin2wkqkavw46", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG51bWJlciBvZiBub3RpZmljYXRpb25zIGluIHF1ZXVlLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIENvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmtyaXphbi9Ob3RpZmljYXRpb25Db3VudGVyIiwKICAidXVpZCI6ICJOb3RpZmljYXRpb25Db3VudGVyQGNvb2xsbHNrIiwKICAidmVyc2lvbiI6IDcKfQ=="},
     "43": {"version": "7", "sha256": "0fq8gwppj21r1082ga6yyhfjlhqgxs6fjychrksvin2wkqkavw46", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG51bWJlciBvZiBub3RpZmljYXRpb25zIGluIHF1ZXVlLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIENvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmtyaXphbi9Ob3RpZmljYXRpb25Db3VudGVyIiwKICAidXVpZCI6ICJOb3RpZmljYXRpb25Db3VudGVyQGNvb2xsbHNrIiwKICAidmVyc2lvbiI6IDcKfQ=="},
     "44": {"version": "7", "sha256": "0fq8gwppj21r1082ga6yyhfjlhqgxs6fjychrksvin2wkqkavw46", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG51bWJlciBvZiBub3RpZmljYXRpb25zIGluIHF1ZXVlLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIENvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmtyaXphbi9Ob3RpZmljYXRpb25Db3VudGVyIiwKICAidXVpZCI6ICJOb3RpZmljYXRpb25Db3VudGVyQGNvb2xsbHNrIiwKICAidmVyc2lvbiI6IDcKfQ=="},
-    "45": {"version": "8", "sha256": "1p170hsn3fi9ncj2h22kmcg4k1mhx6ng07567ffbsgv3c5cykjj1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG51bWJlciBvZiBub3RpZmljYXRpb25zIGluIHF1ZXVlLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIENvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmtyaXphbi9Ob3RpZmljYXRpb25Db3VudGVyIiwKICAidXVpZCI6ICJOb3RpZmljYXRpb25Db3VudGVyQGNvb2xsbHNrIiwKICAidmVyc2lvbiI6IDgKfQ=="}
+    "45": {"version": "8", "sha256": "1p170hsn3fi9ncj2h22kmcg4k1mhx6ng07567ffbsgv3c5cykjj1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG51bWJlciBvZiBub3RpZmljYXRpb25zIGluIHF1ZXVlLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIENvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmtyaXphbi9Ob3RpZmljYXRpb25Db3VudGVyIiwKICAidXVpZCI6ICJOb3RpZmljYXRpb25Db3VudGVyQGNvb2xsbHNrIiwKICAidmVyc2lvbiI6IDgKfQ=="},
+    "46": {"version": "9", "sha256": "1qv1vdiq1p7pxi2ajyr4xyr8dj531yx1ylqdy7v2vrwnv3dchq0a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG51bWJlciBvZiBub3RpZmljYXRpb25zIGluIHF1ZXVlLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIENvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmtyaXphbi9Ob3RpZmljYXRpb25Db3VudGVyIiwKICAidXVpZCI6ICJOb3RpZmljYXRpb25Db3VudGVyQGNvb2xsbHNrIiwKICAidmVyc2lvbiI6IDkKfQ=="}
   }}
 , {"uuid": "you2ber@konkor", "name": "you2ber", "pname": "you2ber", "description": "Gnome Youtube Downloader\n\n Simple helper for youtube-dl project. It allows you to save locally desired media content without any browser extensions. Just copy URL address of a media content to the clipboard and select desired quality profile or custom format for the item in the extension menu to store it.\n * Required the installation of ffmpeg (youtube-dl dependency for media manipulation)\n\nFor more information and how-to see README.md", "link": "https://extensions.gnome.org/extension/1392/you2ber/", "shell_version_map": {
     "40": {"version": "10", "sha256": "0dx5x22imwagx2j07xnayvd7zgsk7cyby7gh4jl935ndxmdp05fc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFlvdXR1YmUgRG93bmxvYWRlclxuXG4gU2ltcGxlIGhlbHBlciBmb3IgeW91dHViZS1kbCBwcm9qZWN0LiBJdCBhbGxvd3MgeW91IHRvIHNhdmUgbG9jYWxseSBkZXNpcmVkIG1lZGlhIGNvbnRlbnQgd2l0aG91dCBhbnkgYnJvd3NlciBleHRlbnNpb25zLiBKdXN0IGNvcHkgVVJMIGFkZHJlc3Mgb2YgYSBtZWRpYSBjb250ZW50IHRvIHRoZSBjbGlwYm9hcmQgYW5kIHNlbGVjdCBkZXNpcmVkIHF1YWxpdHkgcHJvZmlsZSBvciBjdXN0b20gZm9ybWF0IGZvciB0aGUgaXRlbSBpbiB0aGUgZXh0ZW5zaW9uIG1lbnUgdG8gc3RvcmUgaXQuXG4gKiBSZXF1aXJlZCB0aGUgaW5zdGFsbGF0aW9uIG9mIGZmbXBlZyAoeW91dHViZS1kbCBkZXBlbmRlbmN5IGZvciBtZWRpYSBtYW5pcHVsYXRpb24pXG5cbkZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBob3ctdG8gc2VlIFJFQURNRS5tZCIsCiAgIm5hbWUiOiAieW91MmJlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcua29ua29yLnlvdTJiZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va29ua29yL3lvdTJiZXIiLAogICJ1dWlkIjogInlvdTJiZXJAa29ua29yIiwKICAidmVyc2lvbiI6IDEwCn0="}
@@ -1611,7 +1626,7 @@
     "42": {"version": "60", "sha256": "1f79yi0g8pdnxpbfq098xi52shg5qn1s8gy5yi83i38brz3dv4bp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIENob29zZSBhIGRpZmZlcmVudCBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBZb3VyIGRhc2ggd2lsbCBoYXZlIHVuaXF1ZSBmYXZvdXJpdGUgYXBwbGljYXRpb25zIG9uIGVhY2ggd29ya3NwYWNlXG4qIE9wdGlvbmFsbHkgaXNvbGF0ZSBydW5uaW5nIGFwcGxpY2F0aW9ucyB0byBvbmx5IGFwcGVhciBvbiB0aGUgZGFzaCBpbiB0aGVpciByZXNwZWN0aXZlIHdvcmtzcGFjZVxuKiBPcHRpb25hbGx5IHNob3cgd29ya3NwYWNlIGluZm9ybWF0aW9uIGFuZCBhY3Rpb25zIGluIHRoZSBvdmVydmlld1xuKiBTZXQgZWFjaCBjdXN0b21pc2VkIHdvcmtzcGFjZSB0byBhdXRvbG9hZCBvbiBzcGVjaWZpYyB3b3Jrc3BhY2VzXG4qIEhpZGUgdGhlIGV4dGVuc2lvbiBvbmNlIHlvdSd2ZSBjb25maWd1cmVkIHlvdXIgcHJlZmVyZW5jZXMgdG8gZW5qb3kgc2VhbWxlc3NseSB1cGdyYWRlZCB3b3Jrc3BhY2VzIGluIGdub21lIHNoZWxsXG5cblBsZWFzZSBkbyBub3QgbGVhdmUgYSBjb21tZW50IGZvciBpc3N1ZXMgYW5kIGluc3RlYWQgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9DdXN0b21pc2VkLVdvcmtzcGFjZXMvaXNzdWVzIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzZXRzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid29ya3NldHMiLAogICJuYW1lIjogIkN1c3RvbWlzZWQgV29ya3NwYWNlcyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJibGlwayIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxpcGsvQ3VzdG9taXNlZC1Xb3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ3b3Jrc2V0c0BibGlway54eXoiLAogICJ2ZXJzaW9uIjogNjAKfQ=="},
     "43": {"version": "60", "sha256": "1f79yi0g8pdnxpbfq098xi52shg5qn1s8gy5yi83i38brz3dv4bp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIENob29zZSBhIGRpZmZlcmVudCBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBZb3VyIGRhc2ggd2lsbCBoYXZlIHVuaXF1ZSBmYXZvdXJpdGUgYXBwbGljYXRpb25zIG9uIGVhY2ggd29ya3NwYWNlXG4qIE9wdGlvbmFsbHkgaXNvbGF0ZSBydW5uaW5nIGFwcGxpY2F0aW9ucyB0byBvbmx5IGFwcGVhciBvbiB0aGUgZGFzaCBpbiB0aGVpciByZXNwZWN0aXZlIHdvcmtzcGFjZVxuKiBPcHRpb25hbGx5IHNob3cgd29ya3NwYWNlIGluZm9ybWF0aW9uIGFuZCBhY3Rpb25zIGluIHRoZSBvdmVydmlld1xuKiBTZXQgZWFjaCBjdXN0b21pc2VkIHdvcmtzcGFjZSB0byBhdXRvbG9hZCBvbiBzcGVjaWZpYyB3b3Jrc3BhY2VzXG4qIEhpZGUgdGhlIGV4dGVuc2lvbiBvbmNlIHlvdSd2ZSBjb25maWd1cmVkIHlvdXIgcHJlZmVyZW5jZXMgdG8gZW5qb3kgc2VhbWxlc3NseSB1cGdyYWRlZCB3b3Jrc3BhY2VzIGluIGdub21lIHNoZWxsXG5cblBsZWFzZSBkbyBub3QgbGVhdmUgYSBjb21tZW50IGZvciBpc3N1ZXMgYW5kIGluc3RlYWQgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9DdXN0b21pc2VkLVdvcmtzcGFjZXMvaXNzdWVzIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzZXRzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid29ya3NldHMiLAogICJuYW1lIjogIkN1c3RvbWlzZWQgV29ya3NwYWNlcyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJibGlwayIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxpcGsvQ3VzdG9taXNlZC1Xb3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ3b3Jrc2V0c0BibGlway54eXoiLAogICJ2ZXJzaW9uIjogNjAKfQ=="},
     "44": {"version": "60", "sha256": "1f79yi0g8pdnxpbfq098xi52shg5qn1s8gy5yi83i38brz3dv4bp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIENob29zZSBhIGRpZmZlcmVudCBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBZb3VyIGRhc2ggd2lsbCBoYXZlIHVuaXF1ZSBmYXZvdXJpdGUgYXBwbGljYXRpb25zIG9uIGVhY2ggd29ya3NwYWNlXG4qIE9wdGlvbmFsbHkgaXNvbGF0ZSBydW5uaW5nIGFwcGxpY2F0aW9ucyB0byBvbmx5IGFwcGVhciBvbiB0aGUgZGFzaCBpbiB0aGVpciByZXNwZWN0aXZlIHdvcmtzcGFjZVxuKiBPcHRpb25hbGx5IHNob3cgd29ya3NwYWNlIGluZm9ybWF0aW9uIGFuZCBhY3Rpb25zIGluIHRoZSBvdmVydmlld1xuKiBTZXQgZWFjaCBjdXN0b21pc2VkIHdvcmtzcGFjZSB0byBhdXRvbG9hZCBvbiBzcGVjaWZpYyB3b3Jrc3BhY2VzXG4qIEhpZGUgdGhlIGV4dGVuc2lvbiBvbmNlIHlvdSd2ZSBjb25maWd1cmVkIHlvdXIgcHJlZmVyZW5jZXMgdG8gZW5qb3kgc2VhbWxlc3NseSB1cGdyYWRlZCB3b3Jrc3BhY2VzIGluIGdub21lIHNoZWxsXG5cblBsZWFzZSBkbyBub3QgbGVhdmUgYSBjb21tZW50IGZvciBpc3N1ZXMgYW5kIGluc3RlYWQgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9DdXN0b21pc2VkLVdvcmtzcGFjZXMvaXNzdWVzIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzZXRzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid29ya3NldHMiLAogICJuYW1lIjogIkN1c3RvbWlzZWQgV29ya3NwYWNlcyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJibGlwayIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxpcGsvQ3VzdG9taXNlZC1Xb3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ3b3Jrc2V0c0BibGlway54eXoiLAogICJ2ZXJzaW9uIjogNjAKfQ=="},
-    "45": {"version": "65", "sha256": "0mrbflk2pwlwinm2xn3zgs6afs0rp0i3vqkl3fh19i4m0dxjm815", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIENob29zZSBhIGRpZmZlcmVudCBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBZb3VyIGRhc2ggd2lsbCBoYXZlIHVuaXF1ZSBmYXZvdXJpdGUgYXBwbGljYXRpb25zIG9uIGVhY2ggd29ya3NwYWNlXG4qIE9wdGlvbmFsbHkgaXNvbGF0ZSBydW5uaW5nIGFwcGxpY2F0aW9ucyB0byBvbmx5IGFwcGVhciBvbiB0aGUgZGFzaCBpbiB0aGVpciByZXNwZWN0aXZlIHdvcmtzcGFjZVxuKiBPcHRpb25hbGx5IHNob3cgd29ya3NwYWNlIGluZm9ybWF0aW9uIGFuZCBhY3Rpb25zIGluIHRoZSBvdmVydmlld1xuKiBTZXQgZWFjaCBjdXN0b21pc2VkIHdvcmtzcGFjZSB0byBhdXRvbG9hZCBvbiBzcGVjaWZpYyB3b3Jrc3BhY2VzXG4qIEhpZGUgdGhlIGV4dGVuc2lvbiBvbmNlIHlvdSd2ZSBjb25maWd1cmVkIHlvdXIgcHJlZmVyZW5jZXMgdG8gZW5qb3kgc2VhbWxlc3NseSB1cGdyYWRlZCB3b3Jrc3BhY2VzIGluIGdub21lIHNoZWxsXG5cblBsZWFzZSBkbyBub3QgbGVhdmUgYSBjb21tZW50IGZvciBpc3N1ZXMgYW5kIGluc3RlYWQgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9DdXN0b21pc2VkLVdvcmtzcGFjZXMvaXNzdWVzIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzZXRzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid29ya3NldHMiLAogICJuYW1lIjogIkN1c3RvbWlzZWQgV29ya3NwYWNlcyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJibGlwayIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsaXBrL0N1c3RvbWlzZWQtV29ya3NwYWNlcyIsCiAgInV1aWQiOiAid29ya3NldHNAYmxpcGsueHl6IiwKICAidmVyc2lvbiI6IDY1Cn0="}
+    "45": {"version": "66", "sha256": "10dbblq7x9fwmxk66m9bv3g79nr78jv5by21nkaiph4xwj0kblqq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIENob29zZSBhIGRpZmZlcmVudCBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBZb3VyIGRhc2ggd2lsbCBoYXZlIHVuaXF1ZSBmYXZvdXJpdGUgYXBwbGljYXRpb25zIG9uIGVhY2ggd29ya3NwYWNlXG4qIE9wdGlvbmFsbHkgaXNvbGF0ZSBydW5uaW5nIGFwcGxpY2F0aW9ucyB0byBvbmx5IGFwcGVhciBvbiB0aGUgZGFzaCBpbiB0aGVpciByZXNwZWN0aXZlIHdvcmtzcGFjZVxuKiBPcHRpb25hbGx5IHNob3cgd29ya3NwYWNlIGluZm9ybWF0aW9uIGFuZCBhY3Rpb25zIGluIHRoZSBvdmVydmlld1xuKiBTZXQgZWFjaCBjdXN0b21pc2VkIHdvcmtzcGFjZSB0byBhdXRvbG9hZCBvbiBzcGVjaWZpYyB3b3Jrc3BhY2VzXG4qIEhpZGUgdGhlIGV4dGVuc2lvbiBvbmNlIHlvdSd2ZSBjb25maWd1cmVkIHlvdXIgcHJlZmVyZW5jZXMgdG8gZW5qb3kgc2VhbWxlc3NseSB1cGdyYWRlZCB3b3Jrc3BhY2VzIGluIGdub21lIHNoZWxsXG5cblBsZWFzZSBkbyBub3QgbGVhdmUgYSBjb21tZW50IGZvciBpc3N1ZXMgYW5kIGluc3RlYWQgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9DdXN0b21pc2VkLVdvcmtzcGFjZXMvaXNzdWVzIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzZXRzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid29ya3NldHMiLAogICJuYW1lIjogIkN1c3RvbWlzZWQgV29ya3NwYWNlcyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJibGlwayIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsaXBrL0N1c3RvbWlzZWQtV29ya3NwYWNlcyIsCiAgInV1aWQiOiAid29ya3NldHNAYmxpcGsueHl6IiwKICAidmVyc2lvbiI6IDY2Cn0="}
   }}
 , {"uuid": "NordVPN_Connect@poilrouge.fr", "name": "NordVPN Connect", "pname": "nordvpn-connect", "description": "Unofficial Gnome-Shell Extension to provide a GUI for the official NordVPN CLI Tool.", "link": "https://extensions.gnome.org/extension/1595/nordvpn-connect/", "shell_version_map": {
     "38": {"version": "15", "sha256": "0xccvy3kqgglhcjhixlxi65sa49lbm896lra2sks65arkx3fh63k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVub2ZmaWNpYWwgR25vbWUtU2hlbGwgRXh0ZW5zaW9uIHRvIHByb3ZpZGUgYSBHVUkgZm9yIHRoZSBvZmZpY2lhbCBOb3JkVlBOIENMSSBUb29sLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMtbnZwbmNvbm5lY3QiLAogICJuYW1lIjogIk5vcmRWUE4gQ29ubmVjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udnBuY29ubmVjdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FsZXhQb2lscm91Z2UvTm9yZFZQTi1jb25uZWN0IiwKICAidXVpZCI6ICJOb3JkVlBOX0Nvbm5lY3RAcG9pbHJvdWdlLmZyIiwKICAidmVyc2lvbiI6IDE1Cn0="},
@@ -1788,7 +1803,8 @@
     "42": {"version": "28", "sha256": "0vxvd4q5bysqmrbw6d169l3ww37j6cdk70n1gk4m35ydvq7cpp6k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm92ZWxsaXBhb2xvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZXJtb24iLAogICJ1dWlkIjogInNlcm1vbkByb3ZlbGxpcGFvbG8tZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI4Cn0="},
     "43": {"version": "28", "sha256": "0vxvd4q5bysqmrbw6d169l3ww37j6cdk70n1gk4m35ydvq7cpp6k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm92ZWxsaXBhb2xvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZXJtb24iLAogICJ1dWlkIjogInNlcm1vbkByb3ZlbGxpcGFvbG8tZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI4Cn0="},
     "44": {"version": "28", "sha256": "0vxvd4q5bysqmrbw6d169l3ww37j6cdk70n1gk4m35ydvq7cpp6k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm92ZWxsaXBhb2xvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZXJtb24iLAogICJ1dWlkIjogInNlcm1vbkByb3ZlbGxpcGFvbG8tZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI4Cn0="},
-    "45": {"version": "30", "sha256": "1mpizw5zl851k5zx6k5azrdfi9knpha3vin3l3szmzkmj9wzwjsw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yb3ZlbGxpcGFvbG8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNlcm1vbiIsCiAgInV1aWQiOiAic2VybW9uQHJvdmVsbGlwYW9sby1nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzAKfQ=="}
+    "45": {"version": "31", "sha256": "1x2gy4nvcz313nzb069g0im4b7alwgvxdfi45b4x5zfsn6w7qc07", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm92ZWxsaXBhb2xvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZXJtb24iLAogICJ1dWlkIjogInNlcm1vbkByb3ZlbGxpcGFvbG8tZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMxCn0="},
+    "46": {"version": "31", "sha256": "1x2gy4nvcz313nzb069g0im4b7alwgvxdfi45b4x5zfsn6w7qc07", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm92ZWxsaXBhb2xvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZXJtb24iLAogICJ1dWlkIjogInNlcm1vbkByb3ZlbGxpcGFvbG8tZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMxCn0="}
   }}
 , {"uuid": "dict@sun.wxg@gmail.com", "name": "Screen word translate", "pname": "screen-word-translate", "description": "Translate word on the screen.\nDefault web address is translate.google.com, you can add the web address for your own language. Also you can contribute your web address to my github repo.\nUse hotkey Ctrl+Alt+j to toggle the function.\nUse hotkey Ctrl+Alt+o to show popup window", "link": "https://extensions.gnome.org/extension/1849/screen-word-translate/", "shell_version_map": {
     "38": {"version": "32", "sha256": "0wh9d0siggr49bfcx1308xx8rxc58nadnhp3mjj53i6fvja3cx62", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSB3b3JkIG9uIHRoZSBzY3JlZW4uXG5EZWZhdWx0IHdlYiBhZGRyZXNzIGlzIHRyYW5zbGF0ZS5nb29nbGUuY29tLCB5b3UgY2FuIGFkZCB0aGUgd2ViIGFkZHJlc3MgZm9yIHlvdXIgb3duIGxhbmd1YWdlLiBBbHNvIHlvdSBjYW4gY29udHJpYnV0ZSB5b3VyIHdlYiBhZGRyZXNzIHRvIG15IGdpdGh1YiByZXBvLlxuVXNlIGhvdGtleSBDdHJsK0FsdCtqIHRvIHRvZ2dsZSB0aGUgZnVuY3Rpb24uXG5Vc2UgaG90a2V5IEN0cmwrQWx0K28gdG8gc2hvdyBwb3B1cCB3aW5kb3ciLAogICJuYW1lIjogIlNjcmVlbiB3b3JkIHRyYW5zbGF0ZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAic3VuLnd4Z0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRpY3QiLAogICJ1dWlkIjogImRpY3RAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
@@ -1818,13 +1834,13 @@
   }}
 , {"uuid": "krypto@sereneblue", "name": "krypto", "pname": "krypto", "description": "GNOME extension to display cryptocurrency prices", "link": "https://extensions.gnome.org/extension/1913/krypto/", "shell_version_map": {
     "38": {"version": "5", "sha256": "1rpp22asfnhi11lprl70lr9dh2cw7w23yqf4hi629357592px2sv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2VyZW5lYmx1ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24ta3J5cHRvIiwKICAidXVpZCI6ICJrcnlwdG9Ac2VyZW5lYmx1ZSIsCiAgInZlcnNpb24iOiA1Cn0="},
-    "40": {"version": "30", "sha256": "059x418ra9l1rcgfwy9zqm4gci7rbl7var99bnvzyvg0vhqfhdr7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMwCn0="},
-    "41": {"version": "30", "sha256": "059x418ra9l1rcgfwy9zqm4gci7rbl7var99bnvzyvg0vhqfhdr7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMwCn0="},
-    "42": {"version": "30", "sha256": "059x418ra9l1rcgfwy9zqm4gci7rbl7var99bnvzyvg0vhqfhdr7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMwCn0="},
-    "43": {"version": "30", "sha256": "059x418ra9l1rcgfwy9zqm4gci7rbl7var99bnvzyvg0vhqfhdr7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMwCn0="},
-    "44": {"version": "30", "sha256": "059x418ra9l1rcgfwy9zqm4gci7rbl7var99bnvzyvg0vhqfhdr7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMwCn0="},
-    "45": {"version": "32", "sha256": "1vwwaxx663gk0q22jcz48dv0fwd0a14xij9i71hgji5afihdhx26", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMyCn0="},
-    "46": {"version": "32", "sha256": "1vwwaxx663gk0q22jcz48dv0fwd0a14xij9i71hgji5afihdhx26", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMyCn0="}
+    "40": {"version": "33", "sha256": "0qmwzrhgjl012ahxmck937wibz7r3k1fr4rxb27b2frr5hmccry2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMzCn0="},
+    "41": {"version": "33", "sha256": "0qmwzrhgjl012ahxmck937wibz7r3k1fr4rxb27b2frr5hmccry2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMzCn0="},
+    "42": {"version": "33", "sha256": "0qmwzrhgjl012ahxmck937wibz7r3k1fr4rxb27b2frr5hmccry2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMzCn0="},
+    "43": {"version": "33", "sha256": "0qmwzrhgjl012ahxmck937wibz7r3k1fr4rxb27b2frr5hmccry2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMzCn0="},
+    "44": {"version": "33", "sha256": "0qmwzrhgjl012ahxmck937wibz7r3k1fr4rxb27b2frr5hmccry2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMzCn0="},
+    "45": {"version": "34", "sha256": "0011szahh84x4fh7mi9qzr3d8bdxn6bp82zicaqpx01ybqnaqisk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDM0Cn0="},
+    "46": {"version": "34", "sha256": "0011szahh84x4fh7mi9qzr3d8bdxn6bp82zicaqpx01ybqnaqisk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDM0Cn0="}
   }}
 , {"uuid": "cmus-status@yagreg7.gmail.com", "name": "cmus status", "pname": "cmus-status", "description": "Shows cmus status", "link": "https://extensions.gnome.org/extension/1934/cmus-status/", "shell_version_map": {
     "38": {"version": "8", "sha256": "1a6b10kirzbjlllcnffznjlljicah172kpvs0p8rmwhcpn88i8hx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGNtdXMgc3RhdHVzIiwKICAibmFtZSI6ICJjbXVzIHN0YXR1cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jbXVzLXN0YXR1cy5nc2NoZW1hLnhtbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0dyZWdUaGVNYWRNb25rL2dub21lLWNtdXMtc3RhdHVzIiwKICAidXVpZCI6ICJjbXVzLXN0YXR1c0B5YWdyZWc3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="},
@@ -1864,14 +1880,15 @@
     "45": {"version": "68", "sha256": "1i2f7qc48ggs9byr2j5jhhrh3g63q2ad63hsbvj3k79aavvhc4ry", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogNjgKfQ=="},
     "46": {"version": "68", "sha256": "1i2f7qc48ggs9byr2j5jhhrh3g63q2ad63hsbvj3k79aavvhc4ry", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogNjgKfQ=="}
   }}
-, {"uuid": "order-extensions@wa4557.github.com", "name": "Order Gnome Shell extensions", "pname": "order-gnome-shell-extensions", "description": "Fixes order of gnome-shell extensions", "link": "https://extensions.gnome.org/extension/2114/order-gnome-shell-extensions/", "shell_version_map": {
+, {"uuid": "order-extensions@wa4557.github.com", "name": "Order Gnome Shell extensions", "pname": "order-gnome-shell-extensions", "description": "Orders icons from extensions in the top bar", "link": "https://extensions.gnome.org/extension/2114/order-gnome-shell-extensions/", "shell_version_map": {
     "38": {"version": "6", "sha256": "0hcbjrhrg11f5p23bhss75nhc9sqlh6p1bmfq7p7m7d276ckdmkk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJGaXhlcyBvcmRlciBvZiBnbm9tZS1zaGVsbCBleHRlbnNpb25zIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICIzLjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm9yZGVyLWV4dGVuc2lvbnNAd2E0NTU3LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"},
     "40": {"version": "15", "sha256": "0rnq57z5czbjxdnpxlgffz79pwzpsy2vglz0pjd2vx205a1p0sb4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJGaXhlcyBvcmRlciBvZiBnbm9tZS1zaGVsbCBleHRlbnNpb25zIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAib3JkZXItZXh0ZW5zaW9uc0B3YTQ1NTcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"},
     "41": {"version": "15", "sha256": "0rnq57z5czbjxdnpxlgffz79pwzpsy2vglz0pjd2vx205a1p0sb4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJGaXhlcyBvcmRlciBvZiBnbm9tZS1zaGVsbCBleHRlbnNpb25zIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAib3JkZXItZXh0ZW5zaW9uc0B3YTQ1NTcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"},
     "42": {"version": "15", "sha256": "0rnq57z5czbjxdnpxlgffz79pwzpsy2vglz0pjd2vx205a1p0sb4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJGaXhlcyBvcmRlciBvZiBnbm9tZS1zaGVsbCBleHRlbnNpb25zIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAib3JkZXItZXh0ZW5zaW9uc0B3YTQ1NTcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"},
     "43": {"version": "15", "sha256": "0rnq57z5czbjxdnpxlgffz79pwzpsy2vglz0pjd2vx205a1p0sb4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJGaXhlcyBvcmRlciBvZiBnbm9tZS1zaGVsbCBleHRlbnNpb25zIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAib3JkZXItZXh0ZW5zaW9uc0B3YTQ1NTcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"},
     "44": {"version": "15", "sha256": "0rnq57z5czbjxdnpxlgffz79pwzpsy2vglz0pjd2vx205a1p0sb4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJGaXhlcyBvcmRlciBvZiBnbm9tZS1zaGVsbCBleHRlbnNpb25zIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAib3JkZXItZXh0ZW5zaW9uc0B3YTQ1NTcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"},
-    "45": {"version": "20", "sha256": "0kmm197znfdpsyw9nb82yznq9r6yjn5mwsa407ih8zv9c6zczzc4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJGaXhlcyBvcmRlciBvZiBnbm9tZS1zaGVsbCBleHRlbnNpb25zIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9yZGVyLWljb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FuZGlhODkvb3JkZXItaWNvbnMiLAogICJ1dWlkIjogIm9yZGVyLWV4dGVuc2lvbnNAd2E0NTU3LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}
+    "45": {"version": "22", "sha256": "1jsv3qy7wq8q30ppwyszc7f3jf9r4d9vrhqz4iyk18588llz88n1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJPcmRlcnMgaWNvbnMgZnJvbSBleHRlbnNpb25zIGluIHRoZSB0b3AgYmFyIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9yZGVyLWljb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbmRpYTg5L29yZGVyLWljb25zIiwKICAidXVpZCI6ICJvcmRlci1leHRlbnNpb25zQHdhNDU1Ny5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="},
+    "46": {"version": "22", "sha256": "1jsv3qy7wq8q30ppwyszc7f3jf9r4d9vrhqz4iyk18588llz88n1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJPcmRlcnMgaWNvbnMgZnJvbSBleHRlbnNpb25zIGluIHRoZSB0b3AgYmFyIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9yZGVyLWljb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbmRpYTg5L29yZGVyLWljb25zIiwKICAidXVpZCI6ICJvcmRlci1leHRlbnNpb25zQHdhNDU1Ny5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}
   }}
 , {"uuid": "sound-percentage@maestroschan.fr", "name": "Sound percentage", "pname": "sound-percentage", "description": "Display the current sound percentage in the system tray", "link": "https://extensions.gnome.org/extension/2120/sound-percentage/", "shell_version_map": {
     "38": {"version": "3", "sha256": "140a83mqwja4vkk83ajmknginh0izli65b8x7nab32sif99z7nya", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIGN1cnJlbnQgc291bmQgcGVyY2VudGFnZSBpbiB0aGUgc3lzdGVtIHRyYXkiLAogICJuYW1lIjogIlNvdW5kIHBlcmNlbnRhZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYW9zY2hhbnovc291bmQtcGVyY2VudGFnZS1ncy1leHRlbnNpb24iLAogICJ1dWlkIjogInNvdW5kLXBlcmNlbnRhZ2VAbWFlc3Ryb3NjaGFuLmZyIiwKICAidmVyc2lvbiI6IDMKfQ=="},
@@ -1918,8 +1935,8 @@
     "42": {"version": "20", "sha256": "0dh3km7fnl2wg5p13knp3kzwfm5sfx2rlw4hcmpplqarwc3xxfp9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SZWRTb2Z0d2FyZVN5c3RlbXMvZWFzeV9kb2NrZXJfY29udGFpbmVycyIsCiAgInV1aWQiOiAiZWFzeV9kb2NrZXJfY29udGFpbmVyc0ByZWQuc29mdHdhcmUuc3lzdGVtcyIsCiAgInZlcnNpb24iOiAyMAp9"},
     "43": {"version": "20", "sha256": "0dh3km7fnl2wg5p13knp3kzwfm5sfx2rlw4hcmpplqarwc3xxfp9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SZWRTb2Z0d2FyZVN5c3RlbXMvZWFzeV9kb2NrZXJfY29udGFpbmVycyIsCiAgInV1aWQiOiAiZWFzeV9kb2NrZXJfY29udGFpbmVyc0ByZWQuc29mdHdhcmUuc3lzdGVtcyIsCiAgInZlcnNpb24iOiAyMAp9"},
     "44": {"version": "20", "sha256": "0dh3km7fnl2wg5p13knp3kzwfm5sfx2rlw4hcmpplqarwc3xxfp9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SZWRTb2Z0d2FyZVN5c3RlbXMvZWFzeV9kb2NrZXJfY29udGFpbmVycyIsCiAgInV1aWQiOiAiZWFzeV9kb2NrZXJfY29udGFpbmVyc0ByZWQuc29mdHdhcmUuc3lzdGVtcyIsCiAgInZlcnNpb24iOiAyMAp9"},
-    "45": {"version": "23", "sha256": "06a4s1njlg1lkapgr5lh0vsw3c7ny63c24386ysz3rk9c3517gzv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogInJlZC5zb2Z0d2FyZS5zeXN0ZW1zLmVhc3lfZG9ja2VyX2NvbnRhaW5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JlZFNvZnR3YXJlU3lzdGVtcy9lYXN5X2RvY2tlcl9jb250YWluZXJzIiwKICAidXVpZCI6ICJlYXN5X2RvY2tlcl9jb250YWluZXJzQHJlZC5zb2Z0d2FyZS5zeXN0ZW1zIiwKICAidmVyc2lvbiI6IDIzCn0="},
-    "46": {"version": "23", "sha256": "06a4s1njlg1lkapgr5lh0vsw3c7ny63c24386ysz3rk9c3517gzv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogInJlZC5zb2Z0d2FyZS5zeXN0ZW1zLmVhc3lfZG9ja2VyX2NvbnRhaW5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JlZFNvZnR3YXJlU3lzdGVtcy9lYXN5X2RvY2tlcl9jb250YWluZXJzIiwKICAidXVpZCI6ICJlYXN5X2RvY2tlcl9jb250YWluZXJzQHJlZC5zb2Z0d2FyZS5zeXN0ZW1zIiwKICAidmVyc2lvbiI6IDIzCn0="}
+    "45": {"version": "25", "sha256": "1n10k147k1lv30h20vmf9rfxzr58f9qxxc1f054s51gsqblwyvkm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogInJlZC5zb2Z0d2FyZS5zeXN0ZW1zLmVhc3lfZG9ja2VyX2NvbnRhaW5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JlZFNvZnR3YXJlU3lzdGVtcy9lYXN5X2RvY2tlcl9jb250YWluZXJzIiwKICAidXVpZCI6ICJlYXN5X2RvY2tlcl9jb250YWluZXJzQHJlZC5zb2Z0d2FyZS5zeXN0ZW1zIiwKICAidmVyc2lvbiI6IDI1Cn0="},
+    "46": {"version": "25", "sha256": "1n10k147k1lv30h20vmf9rfxzr58f9qxxc1f054s51gsqblwyvkm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogInJlZC5zb2Z0d2FyZS5zeXN0ZW1zLmVhc3lfZG9ja2VyX2NvbnRhaW5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JlZFNvZnR3YXJlU3lzdGVtcy9lYXN5X2RvY2tlcl9jb250YWluZXJzIiwKICAidXVpZCI6ICJlYXN5X2RvY2tlcl9jb250YWluZXJzQHJlZC5zb2Z0d2FyZS5zeXN0ZW1zIiwKICAidmVyc2lvbiI6IDI1Cn0="}
   }}
 , {"uuid": "nightthemeswitcher@romainvigier.fr", "name": "Night Theme Switcher", "pname": "night-theme-switcher", "description": "Automatically toggle your desktop’s color scheme between light and dark, switch backgrounds and run custom commands at sunset and sunrise.\n\n⚠️ Ubuntu is not supported due to their heavily patched GNOME components that conflict with the extension ⚠️", "link": "https://extensions.gnome.org/extension/2236/night-theme-switcher/", "shell_version_map": {
     "38": {"version": "46", "sha256": "1mqan95pv7fjgr3bis9f1262i6nwwmp15lalh6c3aspn17pncp7w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgdG9nZ2xlIHlvdXIgZGVza3RvcFx1MjAxOXMgY29sb3Igc2NoZW1lIGJldHdlZW4gbGlnaHQgYW5kIGRhcmssIHN3aXRjaCBiYWNrZ3JvdW5kcyBhbmQgcnVuIGN1c3RvbSBjb21tYW5kcyBhdCBzdW5zZXQgYW5kIHN1bnJpc2UuXG5cblx1MjZhMFx1ZmUwZiBVYnVudHUgaXMgbm90IHN1cHBvcnRlZCBkdWUgdG8gdGhlaXIgaGVhdmlseSBwYXRjaGVkIEdOT01FIGNvbXBvbmVudHMgdGhhdCBjb25mbGljdCB3aXRoIHRoZSBleHRlbnNpb24gXHUyNmEwXHVmZTBmIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibmlnaHR0aGVtZXN3aXRjaGVyQHJvbWFpbnZpZ2llci5mciIsCiAgIm5hbWUiOiAiTmlnaHQgVGhlbWUgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmlnaHR0aGVtZXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL25pZ2h0dGhlbWVzd2l0Y2hlci5yb21haW52aWdpZXIuZnIiLAogICJ1dWlkIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJ2ZXJzaW9uIjogNDYKfQ=="},
@@ -2034,7 +2051,8 @@
     "42": {"version": "12", "sha256": "13pzx9h8685pk3wv5mndwdnsfd1zjywxxrc5z7759kd8hgvwqp9h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHRoZSBuZXcgbWVzc2FnZXMgaW5kaWNhdG9yIG9uIG5ldyBtZXNzYWdlcy4gRmVhdHVyZXM6XG4xKSBOZXcgbWVzc2FnZSBpbmRpY2F0b3IgaXMgYWx3YXlzIHNob3duIGlmIHRoZXJlIGFyZSBub3RpZmljYXRpb25zLlxuMikgVGhlIGNvbG9yIG9mIHRoZSBpbmRpY2F0b3IgY2FuIGJlIGN1c3RvbWl6ZWQuXG4zKSBJZiAnZG8gbm90IGRpc3R1cmInIGlzIGFjdGl2ZSwgdGhlIGljb24gaXMgZGlzcGxheWVkIGluIHRoZSBjdXN0b20gY29sb3IgaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuXG5cbklmIHlvdSBhcHByZWNpYXRlIHRoaXMgZXh0ZW5zaW9uIHBsZWFzZSBjb25zaWRlciB0byBkb25hdGUgJDEuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJtenVyIiwKICAgICJwYXlwYWwiOiAiZHJtenVyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFsd2F5cy1pbmRpY2F0b3IiLAogICJuYW1lIjogIkFsd2F5cyBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx3YXlzLWluZGljYXRvci1zZXR0aW5ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXp1ci9nbm9tZS1zaGVsbC1hbHdheXMtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJhbHdheXMtaW5kaWNhdG9yQG1hcnRpbi56dXJvd2lldHouZGUiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
     "43": {"version": "12", "sha256": "13pzx9h8685pk3wv5mndwdnsfd1zjywxxrc5z7759kd8hgvwqp9h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHRoZSBuZXcgbWVzc2FnZXMgaW5kaWNhdG9yIG9uIG5ldyBtZXNzYWdlcy4gRmVhdHVyZXM6XG4xKSBOZXcgbWVzc2FnZSBpbmRpY2F0b3IgaXMgYWx3YXlzIHNob3duIGlmIHRoZXJlIGFyZSBub3RpZmljYXRpb25zLlxuMikgVGhlIGNvbG9yIG9mIHRoZSBpbmRpY2F0b3IgY2FuIGJlIGN1c3RvbWl6ZWQuXG4zKSBJZiAnZG8gbm90IGRpc3R1cmInIGlzIGFjdGl2ZSwgdGhlIGljb24gaXMgZGlzcGxheWVkIGluIHRoZSBjdXN0b20gY29sb3IgaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuXG5cbklmIHlvdSBhcHByZWNpYXRlIHRoaXMgZXh0ZW5zaW9uIHBsZWFzZSBjb25zaWRlciB0byBkb25hdGUgJDEuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJtenVyIiwKICAgICJwYXlwYWwiOiAiZHJtenVyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFsd2F5cy1pbmRpY2F0b3IiLAogICJuYW1lIjogIkFsd2F5cyBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx3YXlzLWluZGljYXRvci1zZXR0aW5ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXp1ci9nbm9tZS1zaGVsbC1hbHdheXMtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJhbHdheXMtaW5kaWNhdG9yQG1hcnRpbi56dXJvd2lldHouZGUiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
     "44": {"version": "12", "sha256": "13pzx9h8685pk3wv5mndwdnsfd1zjywxxrc5z7759kd8hgvwqp9h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHRoZSBuZXcgbWVzc2FnZXMgaW5kaWNhdG9yIG9uIG5ldyBtZXNzYWdlcy4gRmVhdHVyZXM6XG4xKSBOZXcgbWVzc2FnZSBpbmRpY2F0b3IgaXMgYWx3YXlzIHNob3duIGlmIHRoZXJlIGFyZSBub3RpZmljYXRpb25zLlxuMikgVGhlIGNvbG9yIG9mIHRoZSBpbmRpY2F0b3IgY2FuIGJlIGN1c3RvbWl6ZWQuXG4zKSBJZiAnZG8gbm90IGRpc3R1cmInIGlzIGFjdGl2ZSwgdGhlIGljb24gaXMgZGlzcGxheWVkIGluIHRoZSBjdXN0b20gY29sb3IgaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuXG5cbklmIHlvdSBhcHByZWNpYXRlIHRoaXMgZXh0ZW5zaW9uIHBsZWFzZSBjb25zaWRlciB0byBkb25hdGUgJDEuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJtenVyIiwKICAgICJwYXlwYWwiOiAiZHJtenVyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFsd2F5cy1pbmRpY2F0b3IiLAogICJuYW1lIjogIkFsd2F5cyBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx3YXlzLWluZGljYXRvci1zZXR0aW5ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXp1ci9nbm9tZS1zaGVsbC1hbHdheXMtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJhbHdheXMtaW5kaWNhdG9yQG1hcnRpbi56dXJvd2lldHouZGUiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
-    "45": {"version": "15", "sha256": "1clhhrfsd1z2dxp6l0pvr9bzbnq38a6lg03hz5cynf0v6dlglqwd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHRoZSBuZXcgbWVzc2FnZXMgaW5kaWNhdG9yIG9uIG5ldyBtZXNzYWdlcy4gRmVhdHVyZXM6XG4xKSBOZXcgbWVzc2FnZSBpbmRpY2F0b3IgaXMgYWx3YXlzIHNob3duIGlmIHRoZXJlIGFyZSBub3RpZmljYXRpb25zLlxuMikgVGhlIGNvbG9yIG9mIHRoZSBpbmRpY2F0b3IgY2FuIGJlIGN1c3RvbWl6ZWQuXG4zKSBJZiAnZG8gbm90IGRpc3R1cmInIGlzIGFjdGl2ZSwgdGhlIGljb24gaXMgZGlzcGxheWVkIGluIHRoZSBjdXN0b20gY29sb3IgaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuXG5cbklmIHlvdSBhcHByZWNpYXRlIHRoaXMgZXh0ZW5zaW9uIHBsZWFzZSBjb25zaWRlciB0byBkb25hdGUgJDEuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJtenVyIiwKICAgICJwYXlwYWwiOiAiZHJtenVyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFsd2F5cy1pbmRpY2F0b3IiLAogICJuYW1lIjogIkFsd2F5cyBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx3YXlzLWluZGljYXRvci1zZXR0aW5ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tenVyL2dub21lLXNoZWxsLWFsd2F5cy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImFsd2F5cy1pbmRpY2F0b3JAbWFydGluLnp1cm93aWV0ei5kZSIsCiAgInZlcnNpb24iOiAxNQp9"}
+    "45": {"version": "16", "sha256": "0si884yba6844x8nn4dy43y64h4lks9n648xqqhwalj10qxganr3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHRoZSBuZXcgbWVzc2FnZXMgaW5kaWNhdG9yIG9uIG5ldyBtZXNzYWdlcy4gRmVhdHVyZXM6XG4xKSBOZXcgbWVzc2FnZSBpbmRpY2F0b3IgaXMgYWx3YXlzIHNob3duIGlmIHRoZXJlIGFyZSBub3RpZmljYXRpb25zLlxuMikgVGhlIGNvbG9yIG9mIHRoZSBpbmRpY2F0b3IgY2FuIGJlIGN1c3RvbWl6ZWQuXG4zKSBJZiAnZG8gbm90IGRpc3R1cmInIGlzIGFjdGl2ZSwgdGhlIGljb24gaXMgZGlzcGxheWVkIGluIHRoZSBjdXN0b20gY29sb3IgaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuXG5cbklmIHlvdSBhcHByZWNpYXRlIHRoaXMgZXh0ZW5zaW9uIHBsZWFzZSBjb25zaWRlciB0byBkb25hdGUgJDEuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJtenVyIiwKICAgICJwYXlwYWwiOiAiZHJtenVyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFsd2F5cy1pbmRpY2F0b3IiLAogICJuYW1lIjogIkFsd2F5cyBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx3YXlzLWluZGljYXRvci1zZXR0aW5ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXp1ci9nbm9tZS1zaGVsbC1hbHdheXMtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJhbHdheXMtaW5kaWNhdG9yQG1hcnRpbi56dXJvd2lldHouZGUiLAogICJ2ZXJzaW9uIjogMTYKfQ=="},
+    "46": {"version": "16", "sha256": "0si884yba6844x8nn4dy43y64h4lks9n648xqqhwalj10qxganr3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHRoZSBuZXcgbWVzc2FnZXMgaW5kaWNhdG9yIG9uIG5ldyBtZXNzYWdlcy4gRmVhdHVyZXM6XG4xKSBOZXcgbWVzc2FnZSBpbmRpY2F0b3IgaXMgYWx3YXlzIHNob3duIGlmIHRoZXJlIGFyZSBub3RpZmljYXRpb25zLlxuMikgVGhlIGNvbG9yIG9mIHRoZSBpbmRpY2F0b3IgY2FuIGJlIGN1c3RvbWl6ZWQuXG4zKSBJZiAnZG8gbm90IGRpc3R1cmInIGlzIGFjdGl2ZSwgdGhlIGljb24gaXMgZGlzcGxheWVkIGluIHRoZSBjdXN0b20gY29sb3IgaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuXG5cbklmIHlvdSBhcHByZWNpYXRlIHRoaXMgZXh0ZW5zaW9uIHBsZWFzZSBjb25zaWRlciB0byBkb25hdGUgJDEuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJtenVyIiwKICAgICJwYXlwYWwiOiAiZHJtenVyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFsd2F5cy1pbmRpY2F0b3IiLAogICJuYW1lIjogIkFsd2F5cyBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx3YXlzLWluZGljYXRvci1zZXR0aW5ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXp1ci9nbm9tZS1zaGVsbC1hbHdheXMtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJhbHdheXMtaW5kaWNhdG9yQG1hcnRpbi56dXJvd2lldHouZGUiLAogICJ2ZXJzaW9uIjogMTYKfQ=="}
   }}
 , {"uuid": "eruption-profile-switcher@x3n0m0rph59.org", "name": "Eruption Profile Switcher", "pname": "eruption-profile-switcher", "description": "Runtime Profile switcher for the Eruption Realtime RGB LED Driver for Linux", "link": "https://extensions.gnome.org/extension/2621/eruption-profile-switcher/", "shell_version_map": {
     "38": {"version": "15", "sha256": "14zgczf2z7jv707whimggl3h31c44m1qdzncin38vdcdzhm2g7hv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJ1bnRpbWUgUHJvZmlsZSBzd2l0Y2hlciBmb3IgdGhlIEVydXB0aW9uIFJlYWx0aW1lIFJHQiBMRUQgRHJpdmVyIGZvciBMaW51eCIsCiAgIm5hbWUiOiAiRXJ1cHRpb24gUHJvZmlsZSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuYmV0YSIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9YM24wbTBycGg1OS9lcnVwdGlvbi1wcm9maWxlLXN3aXRjaGVyIiwKICAidXVpZCI6ICJlcnVwdGlvbi1wcm9maWxlLXN3aXRjaGVyQHgzbjBtMHJwaDU5Lm9yZyIsCiAgInZlcnNpb24iOiAxNQp9"},
@@ -2137,7 +2155,8 @@
     "42": {"version": "41", "sha256": "0irsbwxbh9xvb76j4nfiy508kir72x11h9bbmwhsyd531d0jmyjm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gdHJhY2sgcHJpY2Ugb2YgQ3J5cHRvIEN1cnJlbmNpZXNcbkxpa2U6IEJUQywgRVRILCBCTkIsIERPR0UgYW5kIGV0Yy4uXG5cblNvdXJjZXM6IEJpbmFuY2UsIENyeXB0bywgQ29pbmdlY2tvLCBPS1hcblxuQWRkIGNvaW5zIGJ5IHN5bWJvbHMsIGZvciBleGFtcGxlOlxuKiBCaW5hbmNlIHBhaXJzOiBcIkJUQy9VU0RUXCJcbiogT0tYIHBhaXJzOiBcIkxUQy9VU0RUXCJcbiogQ29pbmdlY2tvIHBhaXJzOiBcIkJUQy9VU0RcIlxuXG5Vc2luZyBhcGkuY29pbmdlY2tvLmNvbSwgb2t4LmNvbSwgYmluYW5jZS5jb20sIGNyeXB0by5jb21cbkNvbXBsZXRlIGxpc3Qgb2YgcGFpcnM6IGh0dHBzOi8vd3d3LmJpbmFuY2UuY29tL2luZGV4U3BhLmh0bWxcbkNvbXBsZXRlIGd1aWRlOiBodHRwczovL2dpdGh1Yi5jb20vYWxpcGlycGlyYW4vQ3J5cHRvLVByaWNlLVRyYWNrZXItZm9yLUdub21lLVNoZWxsI3JlYWRtZVxuXG4qKiBpZiBpdCBmYWNlZCBlcnJvciBhZnRlciB1cGRhdGU6XG4qKlJlc3RhcnQgR25vbWUtc2hlbGwuIChBTFQrRjIsIHIsIEVudGVyKSIsCiAgIm5hbWUiOiAiQ3J5cHRvIFByaWNlIFRyYWNrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3J5cHRvLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsaXBpcnBpcmFuL0NyeXB0by1QcmljZS1UcmFja2VyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiY3J5cHRvQGFsaXBpcnBpcmFuLmdpdGh1YiIsCiAgInZlcnNpb24iOiA0MQp9"},
     "43": {"version": "41", "sha256": "0irsbwxbh9xvb76j4nfiy508kir72x11h9bbmwhsyd531d0jmyjm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gdHJhY2sgcHJpY2Ugb2YgQ3J5cHRvIEN1cnJlbmNpZXNcbkxpa2U6IEJUQywgRVRILCBCTkIsIERPR0UgYW5kIGV0Yy4uXG5cblNvdXJjZXM6IEJpbmFuY2UsIENyeXB0bywgQ29pbmdlY2tvLCBPS1hcblxuQWRkIGNvaW5zIGJ5IHN5bWJvbHMsIGZvciBleGFtcGxlOlxuKiBCaW5hbmNlIHBhaXJzOiBcIkJUQy9VU0RUXCJcbiogT0tYIHBhaXJzOiBcIkxUQy9VU0RUXCJcbiogQ29pbmdlY2tvIHBhaXJzOiBcIkJUQy9VU0RcIlxuXG5Vc2luZyBhcGkuY29pbmdlY2tvLmNvbSwgb2t4LmNvbSwgYmluYW5jZS5jb20sIGNyeXB0by5jb21cbkNvbXBsZXRlIGxpc3Qgb2YgcGFpcnM6IGh0dHBzOi8vd3d3LmJpbmFuY2UuY29tL2luZGV4U3BhLmh0bWxcbkNvbXBsZXRlIGd1aWRlOiBodHRwczovL2dpdGh1Yi5jb20vYWxpcGlycGlyYW4vQ3J5cHRvLVByaWNlLVRyYWNrZXItZm9yLUdub21lLVNoZWxsI3JlYWRtZVxuXG4qKiBpZiBpdCBmYWNlZCBlcnJvciBhZnRlciB1cGRhdGU6XG4qKlJlc3RhcnQgR25vbWUtc2hlbGwuIChBTFQrRjIsIHIsIEVudGVyKSIsCiAgIm5hbWUiOiAiQ3J5cHRvIFByaWNlIFRyYWNrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3J5cHRvLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsaXBpcnBpcmFuL0NyeXB0by1QcmljZS1UcmFja2VyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiY3J5cHRvQGFsaXBpcnBpcmFuLmdpdGh1YiIsCiAgInZlcnNpb24iOiA0MQp9"},
     "44": {"version": "41", "sha256": "0irsbwxbh9xvb76j4nfiy508kir72x11h9bbmwhsyd531d0jmyjm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gdHJhY2sgcHJpY2Ugb2YgQ3J5cHRvIEN1cnJlbmNpZXNcbkxpa2U6IEJUQywgRVRILCBCTkIsIERPR0UgYW5kIGV0Yy4uXG5cblNvdXJjZXM6IEJpbmFuY2UsIENyeXB0bywgQ29pbmdlY2tvLCBPS1hcblxuQWRkIGNvaW5zIGJ5IHN5bWJvbHMsIGZvciBleGFtcGxlOlxuKiBCaW5hbmNlIHBhaXJzOiBcIkJUQy9VU0RUXCJcbiogT0tYIHBhaXJzOiBcIkxUQy9VU0RUXCJcbiogQ29pbmdlY2tvIHBhaXJzOiBcIkJUQy9VU0RcIlxuXG5Vc2luZyBhcGkuY29pbmdlY2tvLmNvbSwgb2t4LmNvbSwgYmluYW5jZS5jb20sIGNyeXB0by5jb21cbkNvbXBsZXRlIGxpc3Qgb2YgcGFpcnM6IGh0dHBzOi8vd3d3LmJpbmFuY2UuY29tL2luZGV4U3BhLmh0bWxcbkNvbXBsZXRlIGd1aWRlOiBodHRwczovL2dpdGh1Yi5jb20vYWxpcGlycGlyYW4vQ3J5cHRvLVByaWNlLVRyYWNrZXItZm9yLUdub21lLVNoZWxsI3JlYWRtZVxuXG4qKiBpZiBpdCBmYWNlZCBlcnJvciBhZnRlciB1cGRhdGU6XG4qKlJlc3RhcnQgR25vbWUtc2hlbGwuIChBTFQrRjIsIHIsIEVudGVyKSIsCiAgIm5hbWUiOiAiQ3J5cHRvIFByaWNlIFRyYWNrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3J5cHRvLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsaXBpcnBpcmFuL0NyeXB0by1QcmljZS1UcmFja2VyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiY3J5cHRvQGFsaXBpcnBpcmFuLmdpdGh1YiIsCiAgInZlcnNpb24iOiA0MQp9"},
-    "45": {"version": "45", "sha256": "0bbjng2cms58hbhy80ildzfq9vjcqp88mw0jqf4igp1b38zl0bck", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gdHJhY2sgcHJpY2Ugb2YgQ3J5cHRvIEN1cnJlbmNpZXNcbkxpa2U6IEJUQywgRVRILCBCTkIsIERPR0UgYW5kIGV0Yy4uXG5cblNvdXJjZXM6IEJpbmFuY2UsIENyeXB0bywgQ29pbmdlY2tvLCBPS1hcblxuQWRkIGNvaW5zIGJ5IHN5bWJvbHMsIGZvciBleGFtcGxlOlxuKiBCaW5hbmNlIHBhaXJzOiBcIkJUQy9VU0RUXCJcbiogT0tYIHBhaXJzOiBcIkxUQy9VU0RUXCJcbiogQ29pbmdlY2tvIHBhaXJzOiBcIkJUQy9VU0RcIlxuXG5Vc2luZyBhcGkuY29pbmdlY2tvLmNvbSwgb2t4LmNvbSwgYmluYW5jZS5jb20sIGNyeXB0by5jb21cbkNvbXBsZXRlIGxpc3Qgb2YgcGFpcnM6IGh0dHBzOi8vd3d3LmJpbmFuY2UuY29tL2luZGV4U3BhLmh0bWxcbkNvbXBsZXRlIGd1aWRlOiBodHRwczovL2dpdGh1Yi5jb20vYWxpcGlycGlyYW4vQ3J5cHRvLVByaWNlLVRyYWNrZXItZm9yLUdub21lLVNoZWxsI3JlYWRtZVxuXG4qKiBpZiBpdCBmYWNlZCBlcnJvciBhZnRlciB1cGRhdGU6XG4qKlJlc3RhcnQgR25vbWUtc2hlbGwuIChBTFQrRjIsIHIsIEVudGVyKSIsCiAgIm5hbWUiOiAiQ3J5cHRvIFByaWNlIFRyYWNrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3J5cHRvLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxpcGlycGlyYW4vQ3J5cHRvLVByaWNlLVRyYWNrZXItZm9yLUdub21lLVNoZWxsIiwKICAidXVpZCI6ICJjcnlwdG9AYWxpcGlycGlyYW4uZ2l0aHViIiwKICAidmVyc2lvbiI6IDQ1Cn0="}
+    "45": {"version": "46", "sha256": "0b9a6ngj9w83gqasg0b3h8iy4abl0ysrj9jpkqwj8xq0xr9b0g3v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gdHJhY2sgcHJpY2Ugb2YgQ3J5cHRvIEN1cnJlbmNpZXNcbkxpa2U6IEJUQywgRVRILCBCTkIsIERPR0UgYW5kIGV0Yy4uXG5cblNvdXJjZXM6IEJpbmFuY2UsIENyeXB0bywgQ29pbmdlY2tvLCBPS1hcblxuQWRkIGNvaW5zIGJ5IHN5bWJvbHMsIGZvciBleGFtcGxlOlxuKiBCaW5hbmNlIHBhaXJzOiBcIkJUQy9VU0RUXCJcbiogT0tYIHBhaXJzOiBcIkxUQy9VU0RUXCJcbiogQ29pbmdlY2tvIHBhaXJzOiBcIkJUQy9VU0RcIlxuXG5Vc2luZyBhcGkuY29pbmdlY2tvLmNvbSwgb2t4LmNvbSwgYmluYW5jZS5jb20sIGNyeXB0by5jb21cbkNvbXBsZXRlIGxpc3Qgb2YgcGFpcnM6IGh0dHBzOi8vd3d3LmJpbmFuY2UuY29tL2luZGV4U3BhLmh0bWxcbkNvbXBsZXRlIGd1aWRlOiBodHRwczovL2dpdGh1Yi5jb20vYWxpcGlycGlyYW4vQ3J5cHRvLVByaWNlLVRyYWNrZXItZm9yLUdub21lLVNoZWxsI3JlYWRtZVxuXG4qKiBpZiBpdCBmYWNlZCBlcnJvciBhZnRlciB1cGRhdGU6XG4qKlJlc3RhcnQgR25vbWUtc2hlbGwuIChBTFQrRjIsIHIsIEVudGVyKSIsCiAgIm5hbWUiOiAiQ3J5cHRvIFByaWNlIFRyYWNrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3J5cHRvLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsaXBpcnBpcmFuL0NyeXB0by1QcmljZS1UcmFja2VyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiY3J5cHRvQGFsaXBpcnBpcmFuLmdpdGh1YiIsCiAgInZlcnNpb24iOiA0Ngp9"},
+    "46": {"version": "46", "sha256": "0b9a6ngj9w83gqasg0b3h8iy4abl0ysrj9jpkqwj8xq0xr9b0g3v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gdHJhY2sgcHJpY2Ugb2YgQ3J5cHRvIEN1cnJlbmNpZXNcbkxpa2U6IEJUQywgRVRILCBCTkIsIERPR0UgYW5kIGV0Yy4uXG5cblNvdXJjZXM6IEJpbmFuY2UsIENyeXB0bywgQ29pbmdlY2tvLCBPS1hcblxuQWRkIGNvaW5zIGJ5IHN5bWJvbHMsIGZvciBleGFtcGxlOlxuKiBCaW5hbmNlIHBhaXJzOiBcIkJUQy9VU0RUXCJcbiogT0tYIHBhaXJzOiBcIkxUQy9VU0RUXCJcbiogQ29pbmdlY2tvIHBhaXJzOiBcIkJUQy9VU0RcIlxuXG5Vc2luZyBhcGkuY29pbmdlY2tvLmNvbSwgb2t4LmNvbSwgYmluYW5jZS5jb20sIGNyeXB0by5jb21cbkNvbXBsZXRlIGxpc3Qgb2YgcGFpcnM6IGh0dHBzOi8vd3d3LmJpbmFuY2UuY29tL2luZGV4U3BhLmh0bWxcbkNvbXBsZXRlIGd1aWRlOiBodHRwczovL2dpdGh1Yi5jb20vYWxpcGlycGlyYW4vQ3J5cHRvLVByaWNlLVRyYWNrZXItZm9yLUdub21lLVNoZWxsI3JlYWRtZVxuXG4qKiBpZiBpdCBmYWNlZCBlcnJvciBhZnRlciB1cGRhdGU6XG4qKlJlc3RhcnQgR25vbWUtc2hlbGwuIChBTFQrRjIsIHIsIEVudGVyKSIsCiAgIm5hbWUiOiAiQ3J5cHRvIFByaWNlIFRyYWNrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3J5cHRvLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsaXBpcnBpcmFuL0NyeXB0by1QcmljZS1UcmFja2VyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiY3J5cHRvQGFsaXBpcnBpcmFuLmdpdGh1YiIsCiAgInZlcnNpb24iOiA0Ngp9"}
   }}
 , {"uuid": "ibus-tweaker@tuberry.github.com", "name": "IBus Tweaker", "pname": "ibus-tweaker", "description": "Tweaker of IBus for orientation, theme, font, input mode and clipboard history\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/2820/ibus-tweaker/", "shell_version_map": {
     "38": {"version": "28", "sha256": "1ahhcq8hpxkdvq1fp8gd8qp1cfsgqsm9swn4ph9kyrzr7j8jvc3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250LCBpbnB1dCBtb2RlIGFuZCBjbGlwYm9hcmQgaGlzdG9yeVxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpYnVzLXR3ZWFrZXIiLAogICJuYW1lIjogIklCdXMgVHdlYWtlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pYnVzLXR3ZWFrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2lidXMtdHdlYWtlciIsCiAgInV1aWQiOiAiaWJ1cy10d2Vha2VyQHR1YmVycnkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyOAp9"},
@@ -2146,7 +2165,7 @@
     "42": {"version": "38", "sha256": "0crdw1z2yan0mbc36v8vw0iinqbv4lyqzsvdyhz8zsi9q4asrlg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250LCBpbnB1dCBtb2RlIGFuZCBjbGlwYm9hcmQgaGlzdG9yeVxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24taWJ1cy10d2Vha2VyIiwKICAibmFtZSI6ICJJQnVzIFR3ZWFrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaWJ1cy10d2Vha2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvaWJ1cy10d2Vha2VyIiwKICAidXVpZCI6ICJpYnVzLXR3ZWFrZXJAdHViZXJyeS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM4Cn0="},
     "43": {"version": "40", "sha256": "0b807s4bfxmxf6131749gi3nil42dabmz2ndwwsblcpbj0cas7mv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250LCBpbnB1dCBtb2RlIGFuZCBjbGlwYm9hcmQgaGlzdG9yeVxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24taWJ1cy10d2Vha2VyIiwKICAibmFtZSI6ICJJQnVzIFR3ZWFrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaWJ1cy10d2Vha2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvaWJ1cy10d2Vha2VyIiwKICAidXVpZCI6ICJpYnVzLXR3ZWFrZXJAdHViZXJyeS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQwCn0="},
     "45": {"version": "44", "sha256": "1fk1mbsms1y4h08vrgaq4iqi995q849891n15j9a34xd31a3qcmk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250LCBpbnB1dCBtb2RlIGFuZCBjbGlwYm9hcmQgaGlzdG9yeVxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24taWJ1cy10d2Vha2VyIiwKICAibmFtZSI6ICJJQnVzIFR3ZWFrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaWJ1cy10d2Vha2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvaWJ1cy10d2Vha2VyIiwKICAidXVpZCI6ICJpYnVzLXR3ZWFrZXJAdHViZXJyeS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ0Cn0="},
-    "46": {"version": "45", "sha256": "1kjfn9ar07ir1nfqziwwkqid7fwrdhjrzbz282b09gq586s8bbhi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250LCBpbnB1dCBtb2RlIGFuZCBjbGlwYm9hcmQgaGlzdG9yeVxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24taWJ1cy10d2Vha2VyIiwKICAibmFtZSI6ICJJQnVzIFR3ZWFrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaWJ1cy10d2Vha2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvaWJ1cy10d2Vha2VyIiwKICAidXVpZCI6ICJpYnVzLXR3ZWFrZXJAdHViZXJyeS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="}
+    "46": {"version": "46", "sha256": "1dgswxn9p66svnw1l6c6p0zv9dbgirx03hjxjhn8w1dbb54sryy3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250LCBpbnB1dCBtb2RlIGFuZCBjbGlwYm9hcmQgaGlzdG9yeVxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24taWJ1cy10d2Vha2VyIiwKICAibmFtZSI6ICJJQnVzIFR3ZWFrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaWJ1cy10d2Vha2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvaWJ1cy10d2Vha2VyIiwKICAidXVpZCI6ICJpYnVzLXR3ZWFrZXJAdHViZXJyeS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ2Cn0="}
   }}
 , {"uuid": "generic-monitor@gnome-shell-extensions", "name": "Generic Monitor", "pname": "generic-monitor", "description": "Display text & icon on systray using DBUS", "link": "https://extensions.gnome.org/extension/2826/generic-monitor/", "shell_version_map": {
     "38": {"version": "10", "sha256": "0kvniacvxv57f6jfcrlrd7ggwj4h0bfs60r59p150m6nldm9zf23", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGV4dCAmIGljb24gb24gc3lzdHJheSB1c2luZyBEQlVTIiwKICAibmFtZSI6ICJHZW5lcmljIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9pbmRlZmVyby5zb3V0YWRlLmZyL3AvZ2VuZXJpY21vbml0b3IiLAogICJ1dWlkIjogImdlbmVyaWMtbW9uaXRvckBnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidmVyc2lvbiI6IDEwCn0="},
@@ -2212,8 +2231,8 @@
     "42": {"version": "27", "sha256": "1bssg2w71qinr2hhsyv0rpps7876y91azpqcl3dhdgipki4n7yvq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibWVzc2FnaW5nbWVudSIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9tZXNzYWdpbmdtZW51IiwKICAidXVpZCI6ICJtZXNzYWdpbmdtZW51QGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMjcKfQ=="},
     "43": {"version": "27", "sha256": "1bssg2w71qinr2hhsyv0rpps7876y91azpqcl3dhdgipki4n7yvq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibWVzc2FnaW5nbWVudSIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9tZXNzYWdpbmdtZW51IiwKICAidXVpZCI6ICJtZXNzYWdpbmdtZW51QGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMjcKfQ=="},
     "44": {"version": "27", "sha256": "1bssg2w71qinr2hhsyv0rpps7876y91azpqcl3dhdgipki4n7yvq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibWVzc2FnaW5nbWVudSIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9tZXNzYWdpbmdtZW51IiwKICAidXVpZCI6ICJtZXNzYWdpbmdtZW51QGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMjcKfQ=="},
-    "45": {"version": "33", "sha256": "05dx5x60cryyfffmpc1s4gcf5nqjf8r9sx9qrjlvsmr8gp878aa6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm1lc3NhZ2luZ21lbnUiLAogICJuYW1lIjogIk1lc3NhZ2luZyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInNpbmlzdGVyc3R1ZiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tZXNzYWdpbmdtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1lc3NhZ2luZ21lbnUiLAogICJ1dWlkIjogIm1lc3NhZ2luZ21lbnVAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAzMywKICAidmVyc2lvbi1uYW1lIjogIjQ2LjEiCn0="},
-    "46": {"version": "33", "sha256": "05dx5x60cryyfffmpc1s4gcf5nqjf8r9sx9qrjlvsmr8gp878aa6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm1lc3NhZ2luZ21lbnUiLAogICJuYW1lIjogIk1lc3NhZ2luZyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInNpbmlzdGVyc3R1ZiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tZXNzYWdpbmdtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1lc3NhZ2luZ21lbnUiLAogICJ1dWlkIjogIm1lc3NhZ2luZ21lbnVAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAzMywKICAidmVyc2lvbi1uYW1lIjogIjQ2LjEiCn0="}
+    "45": {"version": "34", "sha256": "1lj314mf4zvp36sfzxm7jqwk17qvbd73jrbji8jd52b3l3svigjl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm1lc3NhZ2luZ21lbnUiLAogICJuYW1lIjogIk1lc3NhZ2luZyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInNpbmlzdGVyc3R1ZiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tZXNzYWdpbmdtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1lc3NhZ2luZ21lbnUiLAogICJ1dWlkIjogIm1lc3NhZ2luZ21lbnVAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAzNCwKICAidmVyc2lvbi1uYW1lIjogIjQ2LjIiCn0="},
+    "46": {"version": "34", "sha256": "1lj314mf4zvp36sfzxm7jqwk17qvbd73jrbji8jd52b3l3svigjl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm1lc3NhZ2luZ21lbnUiLAogICJuYW1lIjogIk1lc3NhZ2luZyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInNpbmlzdGVyc3R1ZiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tZXNzYWdpbmdtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1lc3NhZ2luZ21lbnUiLAogICJ1dWlkIjogIm1lc3NhZ2luZ21lbnVAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAzNCwKICAidmVyc2lvbi1uYW1lIjogIjQ2LjIiCn0="}
   }}
 , {"uuid": "SettingsCenter@lauinger-clan.de", "name": "SettingsCenter", "pname": "settingscenter", "description": "Settings Center is a customizable drop-down menu for quickly launching frequently used apps in Gnome:Shell via the quicksettings. Originally created by XES.\n\nSettings shortcuts : gnome-tweak-tool, dconf-editor, gconf-editor, gnome-session-properties, gnome-shell-extension-prefs, seahorse and nvidia-settings. You can add your own\n\nOriginal source : http://svn.xesnet.fr/gnomeextensions", "link": "https://extensions.gnome.org/extension/2899/settingscenter/", "shell_version_map": {
     "38": {"version": "2", "sha256": "0sywdlmfgy4k5bkxmawcb7b8100g8wnpndmwvdzjq51xv5605gcs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSBxdWlja3NldHRpbmdzLiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyIsCiAgImxvY2FsZSI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2V0dGluZ3NDZW50ZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiWGVzLCBsMzAwbHZsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjQiLAogICAgIjMuNiIsCiAgICAiMy41LjQiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9YRVMtU2V0dGluZ3MtQ2VudGVyLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiU2V0dGluZ3NDZW50ZXJAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAyCn0="},
@@ -2277,7 +2296,7 @@
     "42": {"version": "67", "sha256": "0405yz8w5a1h56csh2xl9kn7bbxr7r8vmsslh9y4l16gxs2nmkrh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzIG9yIHRyYW5zbGF0aW9uc1xuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGlnaHQtZGljdCIsCiAgIm5hbWUiOiAiTGlnaHQgRGljdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5saWdodC1kaWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvbGlnaHQtZGljdCIsCiAgInV1aWQiOiAibGlnaHQtZGljdEB0dWJlcnJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA2Nwp9"},
     "43": {"version": "71", "sha256": "01hmh278h8kjym6zvvqglfdg8qkfrz364p3srci137vwkc2rpd9x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzIG9yIHRyYW5zbGF0aW9uc1xuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGlnaHQtZGljdCIsCiAgIm5hbWUiOiAiTGlnaHQgRGljdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5saWdodC1kaWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvbGlnaHQtZGljdCIsCiAgInV1aWQiOiAibGlnaHQtZGljdEB0dWJlcnJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3MQp9"},
     "45": {"version": "76", "sha256": "1m4k6gkda7axddm6y16z6d10sv0awxp6vsa23sw10djzk211bgf0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1saWdodC1kaWN0IiwKICAibmFtZSI6ICJMaWdodCBEaWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxpZ2h0LWRpY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9saWdodC1kaWN0IiwKICAidXVpZCI6ICJsaWdodC1kaWN0QHR1YmVycnkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDc2Cn0="},
-    "46": {"version": "78", "sha256": "1nwra9gakrr5h77z62kfn917186z5f01066rzi97c5lzqxza70zy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1saWdodC1kaWN0IiwKICAibmFtZSI6ICJMaWdodCBEaWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxpZ2h0LWRpY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9saWdodC1kaWN0IiwKICAidXVpZCI6ICJsaWdodC1kaWN0QHR1YmVycnkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDc4Cn0="}
+    "46": {"version": "80", "sha256": "016x7ihcahs19gbihdrlhrgrpmw04cnjcmhgkv5q1hvkzgq12wza", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1saWdodC1kaWN0IiwKICAibmFtZSI6ICJMaWdodCBEaWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxpZ2h0LWRpY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9saWdodC1kaWN0IiwKICAidXVpZCI6ICJsaWdodC1kaWN0QHR1YmVycnkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDgwCn0="}
   }}
 , {"uuid": "InternetSpeedMeter@alshakib.dev", "name": "Internet Speed Meter", "pname": "internet-speed-meter", "description": "Simple and minimal internet speed meter extension for the Gnome Shell", "link": "https://extensions.gnome.org/extension/2980/internet-speed-meter/", "shell_version_map": {
     "38": {"version": "11", "sha256": "1y33l24q441nc147njjp4ylygmfr73br8adc8yfbp9p8dzh084f0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIHRoZSBHbm9tZSBTaGVsbCIsCiAgIm5hbWUiOiAiSW50ZXJuZXQgU3BlZWQgTWV0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWxTaGFraWIvSW50ZXJuZXRTcGVlZE1ldGVyIiwKICAidXVpZCI6ICJJbnRlcm5ldFNwZWVkTWV0ZXJAYWxzaGFraWIuZGV2IiwKICAidmVyc2lvbiI6IDExCn0="},
@@ -2286,7 +2305,8 @@
     "42": {"version": "16", "sha256": "0zjrnixd5cld46vj1ibl70gn5223rp9kllsq6wy53cqhxmrizskg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIHRoZSBHbm9tZSBTaGVsbCIsCiAgIm5hbWUiOiAiSW50ZXJuZXQgU3BlZWQgTWV0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FsU2hha2liL0ludGVybmV0U3BlZWRNZXRlciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1ldGVyQGFsc2hha2liLmRldiIsCiAgInZlcnNpb24iOiAxNgp9"},
     "43": {"version": "16", "sha256": "0zjrnixd5cld46vj1ibl70gn5223rp9kllsq6wy53cqhxmrizskg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIHRoZSBHbm9tZSBTaGVsbCIsCiAgIm5hbWUiOiAiSW50ZXJuZXQgU3BlZWQgTWV0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FsU2hha2liL0ludGVybmV0U3BlZWRNZXRlciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1ldGVyQGFsc2hha2liLmRldiIsCiAgInZlcnNpb24iOiAxNgp9"},
     "44": {"version": "16", "sha256": "0zjrnixd5cld46vj1ibl70gn5223rp9kllsq6wy53cqhxmrizskg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIHRoZSBHbm9tZSBTaGVsbCIsCiAgIm5hbWUiOiAiSW50ZXJuZXQgU3BlZWQgTWV0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FsU2hha2liL0ludGVybmV0U3BlZWRNZXRlciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1ldGVyQGFsc2hha2liLmRldiIsCiAgInZlcnNpb24iOiAxNgp9"},
-    "45": {"version": "17", "sha256": "1mvxlnfi4zj18zf742naxnnswpcvz11dn99nfr7a3h3dpclqgcd8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIHRoZSBHbm9tZSBTaGVsbCIsCiAgIm5hbWUiOiAiSW50ZXJuZXQgU3BlZWQgTWV0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWxTaGFraWIvSW50ZXJuZXRTcGVlZE1ldGVyIiwKICAidXVpZCI6ICJJbnRlcm5ldFNwZWVkTWV0ZXJAYWxzaGFraWIuZGV2IiwKICAidmVyc2lvbiI6IDE3Cn0="}
+    "45": {"version": "18", "sha256": "165410zy48ar7fhwfqzi07i585krpcs05819k1x5kqclngvy0g9q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIHRoZSBHbm9tZSBTaGVsbCIsCiAgIm5hbWUiOiAiSW50ZXJuZXQgU3BlZWQgTWV0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FsU2hha2liL0ludGVybmV0U3BlZWRNZXRlciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1ldGVyQGFsc2hha2liLmRldiIsCiAgInZlcnNpb24iOiAxOAp9"},
+    "46": {"version": "18", "sha256": "165410zy48ar7fhwfqzi07i585krpcs05819k1x5kqclngvy0g9q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIHRoZSBHbm9tZSBTaGVsbCIsCiAgIm5hbWUiOiAiSW50ZXJuZXQgU3BlZWQgTWV0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FsU2hha2liL0ludGVybmV0U3BlZWRNZXRlciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1ldGVyQGFsc2hha2liLmRldiIsCiAgInZlcnNpb24iOiAxOAp9"}
   }}
 , {"uuid": "IP-Finder@linxgem33.com", "name": "IP Finder", "pname": "ip-finder", "description": "Displays useful information about your public IP Address and VPN status.\n\nIP Finder displays information about your public IP address, hostname, country, AS Block, as well as  a map tile of your Geolocation and country flag,  this extension is Also Useful for informational purposes to monitor VPN changes and public network IP Addresses.\n\nIP Finder can monitor in real time\n\n*Wireguard connections\n*OpenVPN connections\n*IPV4/6 connections\n*Proxy connections\n*VPN vendor applications\n*Manual static IP changes\n*Manually added connections", "link": "https://extensions.gnome.org/extension/2983/ip-finder/", "shell_version_map": {
     "38": {"version": "7", "sha256": "1g6xady411kx81crwnbgqh1afxlfjakgwdhbwznqvrjnbb98dh1r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHVzZWZ1bCBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBBZGRyZXNzIGFuZCBWUE4gc3RhdHVzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJpcC1maW5kZXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpcC1maW5kZXIiLAogICJuYW1lIjogIklQIEZpbmRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wdWJsaWMtaXAtYWRkcmVzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0xpbnhHZW0zMy9JUC1GaW5kZXIiLAogICJ1dWlkIjogIklQLUZpbmRlckBsaW54Z2VtMzMuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
@@ -2331,8 +2351,8 @@
     "42": {"version": "55", "sha256": "0fwxj41ka95mxrjy3xbywqxm0fp00irypkwcg316pyy9cva4rk01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgZm9yayBvZiBwYXJhZG94eHh6ZXJvL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCBpcyBmb3IgcGFja2FnaW5nIHB1cnBvc2VzIG9ubHkuIFRoaXMgZXh0ZW5zaW9uIGlzIGJ1aWx0IGFuZCB1cGRhdGVkIGNvbnRpbnVvdXNseSB3aXRoIHRoZSB1cHN0cmVhbSBtYXN0ZXIgYnJhbmNoLCBvY2Nhc2lvbmFsbHkgaW5jbHVkaW5nIHBhdGNoZXMgdGhhdCBoYXZlbid0IHlldCBtZXJnZWQgdXBzdHJlYW0uXG5cblRoaXMgaXMgcHJlZmVyYWJsZSBmb3IgdXNlcnMgb24gYmxlZWRpbmcgZWRnZSBkaXN0cmlidXRpb25zIHRoYXQgcHJlZmVyIG5vdCB0byB3YWl0IGZvciBhIHN0YWJsZSByZWxlYXNlIGZyb20gdGhlIG1haW4gcmVwby4gT2YgY291cnNlLCBzaW5jZSB3ZSdyZSByZWxlYXNpbmcgZGlyZWN0bHkgZnJvbSBtYXN0ZXIgc29tZSBpbnN0YWJpbGl0eSBpcyBpbmV2aXRhYmxlLlxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgcmVzdGFydGluZyBHbm9tZSBTaGVsbCB3aXRoIEFsdC1GMiB0aGVuICdyJy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tbW9uaXRvciIsCiAgIm5hbWUiOiAic3lzdGVtLW1vbml0b3ItbmV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWdhbGdzL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCIsCiAgInV1aWQiOiAic3lzdGVtLW1vbml0b3ItbmV4dEBwYXJhZG94eHguemVyby5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNTUKfQ=="},
     "43": {"version": "55", "sha256": "0fwxj41ka95mxrjy3xbywqxm0fp00irypkwcg316pyy9cva4rk01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgZm9yayBvZiBwYXJhZG94eHh6ZXJvL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCBpcyBmb3IgcGFja2FnaW5nIHB1cnBvc2VzIG9ubHkuIFRoaXMgZXh0ZW5zaW9uIGlzIGJ1aWx0IGFuZCB1cGRhdGVkIGNvbnRpbnVvdXNseSB3aXRoIHRoZSB1cHN0cmVhbSBtYXN0ZXIgYnJhbmNoLCBvY2Nhc2lvbmFsbHkgaW5jbHVkaW5nIHBhdGNoZXMgdGhhdCBoYXZlbid0IHlldCBtZXJnZWQgdXBzdHJlYW0uXG5cblRoaXMgaXMgcHJlZmVyYWJsZSBmb3IgdXNlcnMgb24gYmxlZWRpbmcgZWRnZSBkaXN0cmlidXRpb25zIHRoYXQgcHJlZmVyIG5vdCB0byB3YWl0IGZvciBhIHN0YWJsZSByZWxlYXNlIGZyb20gdGhlIG1haW4gcmVwby4gT2YgY291cnNlLCBzaW5jZSB3ZSdyZSByZWxlYXNpbmcgZGlyZWN0bHkgZnJvbSBtYXN0ZXIgc29tZSBpbnN0YWJpbGl0eSBpcyBpbmV2aXRhYmxlLlxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgcmVzdGFydGluZyBHbm9tZSBTaGVsbCB3aXRoIEFsdC1GMiB0aGVuICdyJy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tbW9uaXRvciIsCiAgIm5hbWUiOiAic3lzdGVtLW1vbml0b3ItbmV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWdhbGdzL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCIsCiAgInV1aWQiOiAic3lzdGVtLW1vbml0b3ItbmV4dEBwYXJhZG94eHguemVyby5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNTUKfQ=="},
     "44": {"version": "55", "sha256": "0fwxj41ka95mxrjy3xbywqxm0fp00irypkwcg316pyy9cva4rk01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgZm9yayBvZiBwYXJhZG94eHh6ZXJvL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCBpcyBmb3IgcGFja2FnaW5nIHB1cnBvc2VzIG9ubHkuIFRoaXMgZXh0ZW5zaW9uIGlzIGJ1aWx0IGFuZCB1cGRhdGVkIGNvbnRpbnVvdXNseSB3aXRoIHRoZSB1cHN0cmVhbSBtYXN0ZXIgYnJhbmNoLCBvY2Nhc2lvbmFsbHkgaW5jbHVkaW5nIHBhdGNoZXMgdGhhdCBoYXZlbid0IHlldCBtZXJnZWQgdXBzdHJlYW0uXG5cblRoaXMgaXMgcHJlZmVyYWJsZSBmb3IgdXNlcnMgb24gYmxlZWRpbmcgZWRnZSBkaXN0cmlidXRpb25zIHRoYXQgcHJlZmVyIG5vdCB0byB3YWl0IGZvciBhIHN0YWJsZSByZWxlYXNlIGZyb20gdGhlIG1haW4gcmVwby4gT2YgY291cnNlLCBzaW5jZSB3ZSdyZSByZWxlYXNpbmcgZGlyZWN0bHkgZnJvbSBtYXN0ZXIgc29tZSBpbnN0YWJpbGl0eSBpcyBpbmV2aXRhYmxlLlxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgcmVzdGFydGluZyBHbm9tZSBTaGVsbCB3aXRoIEFsdC1GMiB0aGVuICdyJy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tbW9uaXRvciIsCiAgIm5hbWUiOiAic3lzdGVtLW1vbml0b3ItbmV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWdhbGdzL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCIsCiAgInV1aWQiOiAic3lzdGVtLW1vbml0b3ItbmV4dEBwYXJhZG94eHguemVyby5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNTUKfQ=="},
-    "45": {"version": "66", "sha256": "0b7pyj9hqilpvdcnkx6d05836322gnw1r4rkaggngbbhmgvazffx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgaXMgYSBmb3JrIG9mIHRoZSBzZWVtaW5nbHkgYWJhbmRvbmVkIHBhcmFkb3h4eHplcm8vZ25vbWUtc2hlbGwtc3lzdGVtLW1vbml0b3ItYXBwbGV0LlxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgbG9nZ2luZyBvdXQgYW5kIGxvZ2dpbmcgYmFjayBpbiAodGhpcyBpcyBhIGtub3duIGlzc3VlIHRoYXQgaXMgYmVpbmcgd29ya2VkIG9uKS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tbW9uaXRvciIsCiAgIm5hbWUiOiAic3lzdGVtLW1vbml0b3ItbmV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWdhbGdzL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCIsCiAgInV1aWQiOiAic3lzdGVtLW1vbml0b3ItbmV4dEBwYXJhZG94eHguemVyby5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNjYKfQ=="},
-    "46": {"version": "66", "sha256": "0b7pyj9hqilpvdcnkx6d05836322gnw1r4rkaggngbbhmgvazffx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgaXMgYSBmb3JrIG9mIHRoZSBzZWVtaW5nbHkgYWJhbmRvbmVkIHBhcmFkb3h4eHplcm8vZ25vbWUtc2hlbGwtc3lzdGVtLW1vbml0b3ItYXBwbGV0LlxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgbG9nZ2luZyBvdXQgYW5kIGxvZ2dpbmcgYmFjayBpbiAodGhpcyBpcyBhIGtub3duIGlzc3VlIHRoYXQgaXMgYmVpbmcgd29ya2VkIG9uKS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tbW9uaXRvciIsCiAgIm5hbWUiOiAic3lzdGVtLW1vbml0b3ItbmV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWdhbGdzL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCIsCiAgInV1aWQiOiAic3lzdGVtLW1vbml0b3ItbmV4dEBwYXJhZG94eHguemVyby5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNjYKfQ=="}
+    "45": {"version": "69", "sha256": "098bhziypfd6vmn61lxp25wwb0n3mv9shan0idkpl8q330ripawv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgaXMgYSBmb3JrIG9mIHRoZSBzZWVtaW5nbHkgYWJhbmRvbmVkIHBhcmFkb3h4eHplcm8vZ25vbWUtc2hlbGwtc3lzdGVtLW1vbml0b3ItYXBwbGV0LlxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgbG9nZ2luZyBvdXQgYW5kIGxvZ2dpbmcgYmFjayBpbiAodGhpcyBpcyBhIGtub3duIGlzc3VlIHRoYXQgaXMgYmVpbmcgd29ya2VkIG9uKS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tbW9uaXRvciIsCiAgIm5hbWUiOiAic3lzdGVtLW1vbml0b3ItbmV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWdhbGdzL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCIsCiAgInV1aWQiOiAic3lzdGVtLW1vbml0b3ItbmV4dEBwYXJhZG94eHguemVyby5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNjkKfQ=="},
+    "46": {"version": "69", "sha256": "098bhziypfd6vmn61lxp25wwb0n3mv9shan0idkpl8q330ripawv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgaXMgYSBmb3JrIG9mIHRoZSBzZWVtaW5nbHkgYWJhbmRvbmVkIHBhcmFkb3h4eHplcm8vZ25vbWUtc2hlbGwtc3lzdGVtLW1vbml0b3ItYXBwbGV0LlxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgbG9nZ2luZyBvdXQgYW5kIGxvZ2dpbmcgYmFjayBpbiAodGhpcyBpcyBhIGtub3duIGlzc3VlIHRoYXQgaXMgYmVpbmcgd29ya2VkIG9uKS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tbW9uaXRvciIsCiAgIm5hbWUiOiAic3lzdGVtLW1vbml0b3ItbmV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWdhbGdzL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCIsCiAgInV1aWQiOiAic3lzdGVtLW1vbml0b3ItbmV4dEBwYXJhZG94eHguemVyby5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNjkKfQ=="}
   }}
 , {"uuid": "user-theme-x@tuberry.github.io", "name": "User Theme X", "pname": "user-themes-x", "description": "Customizable user-theme with user stylesheet and dark theme auto-switch based on the Night Light\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3019/user-themes-x/", "shell_version_map": {
     "38": {"version": "21", "sha256": "0qiahmg2nmrnlyablyava1488rvy0r2rq8pyv932lsx6vrn9gh6m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIGJhc2VkIG9uIHRoZSBOaWdodCBMaWdodFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJleHRlbnNpb24taWQiOiAidXNlci10aGVtZS14IiwKICAiZ2V0dGV4dC1kb21haW4iOiAidXNlci10aGVtZS14IiwKICAibmFtZSI6ICJVc2VyIFRoZW1lIFgiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZXItdGhlbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L3VzZXItdGhlbWUteCIsCiAgInV1aWQiOiAidXNlci10aGVtZS14QHR1YmVycnkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDIxCn0="},
@@ -2342,7 +2362,7 @@
     "43": {"version": "31", "sha256": "1aqni9lybrws04mz4k9ygpv2yqg0vs6867ga7k3ah6f92j8bin74", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIGJhc2VkIG9uIHRoZSBOaWdodCBMaWdodFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJleHRlbnNpb24taWQiOiAidXNlci10aGVtZS14IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVzZXItdGhlbWUteCIsCiAgIm5hbWUiOiAiVXNlciBUaGVtZSBYIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJqb2huLnN0b3dlcnNAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51c2VyLXRoZW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvdXNlci10aGVtZS14IiwKICAidXVpZCI6ICJ1c2VyLXRoZW1lLXhAdHViZXJyeS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMzEKfQ=="},
     "44": {"version": "32", "sha256": "1i36lgx76p2fxa7kn0zaisc5jz6a2ky3dckxx2x3j3s91q5pn5ch", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIGJhc2VkIG9uIHRoZSBOaWdodCBMaWdodFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tdXNlci10aGVtZS14IiwKICAibmFtZSI6ICJVc2VyIFRoZW1lIFgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZS14IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvdXNlci10aGVtZS14IiwKICAidXVpZCI6ICJ1c2VyLXRoZW1lLXhAdHViZXJyeS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
     "45": {"version": "34", "sha256": "1hs8jdzal7jpw03fl3qppcvrdalhsy32hl2vchd5x92rfwamrm3q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIGJhc2VkIG9uIHRoZSBOaWdodCBMaWdodFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tdXNlci10aGVtZS14IiwKICAibmFtZSI6ICJVc2VyIFRoZW1lIFgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZS14IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvdXNlci10aGVtZS14IiwKICAidXVpZCI6ICJ1c2VyLXRoZW1lLXhAdHViZXJyeS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMzQKfQ=="},
-    "46": {"version": "35", "sha256": "1fr7fzi57clvdm6cdb6wa9pdn8g88v979v3hmki8nvspwbqawyh1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIGJhc2VkIG9uIHRoZSBOaWdodCBMaWdodFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tdXNlci10aGVtZS14IiwKICAibmFtZSI6ICJVc2VyIFRoZW1lIFgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZS14IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvdXNlci10aGVtZS14IiwKICAidXVpZCI6ICJ1c2VyLXRoZW1lLXhAdHViZXJyeS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMzUKfQ=="}
+    "46": {"version": "39", "sha256": "026qwm4rk75540jg5a1iz4yjfpafg9bjidfmnsg68zqwqa9bmgm4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIGJhc2VkIG9uIHRoZSBOaWdodCBMaWdodFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tdXNlci10aGVtZS14IiwKICAibmFtZSI6ICJVc2VyIFRoZW1lIFgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZS14IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvdXNlci10aGVtZS14IiwKICAidXVpZCI6ICJ1c2VyLXRoZW1lLXhAdHViZXJyeS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMzkKfQ=="}
   }}
 , {"uuid": "app_view_text@fawtytoo", "name": "Application View Text", "pname": "application-view-text", "description": "The text in the Application view can be hard to read on a light coloured background. This extension makes the text bolder with a drop shadow.\nAlso improves the visibility of the app running dot.", "link": "https://extensions.gnome.org/extension/3028/application-view-text/", "shell_version_map": {
     "38": {"version": "7", "sha256": "1dnf1rqg27y1c50sfmqcnswac93lkgml1hdaalq6lfzm8pbnpx0d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSB0ZXh0IGluIHRoZSBBcHBsaWNhdGlvbiB2aWV3IGNhbiBiZSBoYXJkIHRvIHJlYWQgb24gYSBsaWdodCBjb2xvdXJlZCBiYWNrZ3JvdW5kLiBUaGlzIGV4dGVuc2lvbiBtYWtlcyB0aGUgdGV4dCBib2xkZXIgd2l0aCBhIGRyb3Agc2hhZG93LlxuQWxzbyBpbXByb3ZlcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgYXBwIHJ1bm5pbmcgZG90LiIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb24gVmlldyBUZXh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYXBwX3ZpZXdfdGV4dEBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiA3Cn0="},
@@ -2374,7 +2394,7 @@
     "43": {"version": "34", "sha256": "0jq0c80y20d8rljn1478v537lch6klwir0gkzp35y03s1wj0ma36", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1leHRlbnNpb24tbGlzdCIsCiAgIm5hbWUiOiAiRXh0ZW5zaW9uIExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9uLWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9leHRlbnNpb24tbGlzdCIsCiAgInV1aWQiOiAiZXh0ZW5zaW9uLWxpc3RAdHUuYmVycnkiLAogICJ2ZXJzaW9uIjogMzQKfQ=="},
     "44": {"version": "35", "sha256": "1py1lbb00f9kcylc96kk2lr9r8ka9liyxhxxz1nzggz3jzxphw06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1leHRlbnNpb24tbGlzdCIsCiAgIm5hbWUiOiAiRXh0ZW5zaW9uIExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9uLWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9leHRlbnNpb24tbGlzdCIsCiAgInV1aWQiOiAiZXh0ZW5zaW9uLWxpc3RAdHUuYmVycnkiLAogICJ2ZXJzaW9uIjogMzUKfQ=="},
     "45": {"version": "37", "sha256": "0algkzsdha6996w760nnqmm70n96aymr6ipinq9h95pzf208qy20", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1leHRlbnNpb24tbGlzdCIsCiAgIm5hbWUiOiAiRXh0ZW5zaW9uIExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9uLWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9leHRlbnNpb24tbGlzdCIsCiAgInV1aWQiOiAiZXh0ZW5zaW9uLWxpc3RAdHUuYmVycnkiLAogICJ2ZXJzaW9uIjogMzcKfQ=="},
-    "46": {"version": "38", "sha256": "1z4fscfzg06ddaczc88rw2ymjzv8mf0drbca6aqcpdxivsjkgqhy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1leHRlbnNpb24tbGlzdCIsCiAgIm5hbWUiOiAiRXh0ZW5zaW9uIExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9uLWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9leHRlbnNpb24tbGlzdCIsCiAgInV1aWQiOiAiZXh0ZW5zaW9uLWxpc3RAdHUuYmVycnkiLAogICJ2ZXJzaW9uIjogMzgKfQ=="}
+    "46": {"version": "40", "sha256": "0xw4qv6990z2icpxkipzh57xanxgpalhh43dvphnbg8by1r6b6bj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1leHRlbnNpb24tbGlzdCIsCiAgIm5hbWUiOiAiRXh0ZW5zaW9uIExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9uLWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9leHRlbnNpb24tbGlzdCIsCiAgInV1aWQiOiAiZXh0ZW5zaW9uLWxpc3RAdHUuYmVycnkiLAogICJ2ZXJzaW9uIjogNDAKfQ=="}
   }}
 , {"uuid": "MaximizeToEmptyWorkspace-extension@kaisersite.de", "name": "Maximize To Empty Workspace", "pname": "maximize-to-empty-workspace", "description": "New and maximized windows will be moved to empty workspaces.\nSupports multiple monitors.", "link": "https://extensions.gnome.org/extension/3100/maximize-to-empty-workspace/", "shell_version_map": {
     "38": {"version": "13", "sha256": "0bxanhx2ylpw0rh69lfdhkixsfggkp7b119ah3rrslx7w71qki6m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlIiwKICAidXVpZCI6ICJNYXhpbWl6ZVRvRW1wdHlXb3Jrc3BhY2UtZXh0ZW5zaW9uQGthaXNlcnNpdGUuZGUiLAogICJ2ZXJzaW9uIjogMTMKfQ=="},
@@ -2408,7 +2428,7 @@
     "42": {"version": "4", "sha256": "1759h1yp2hndbksaqm2zid2lsca9zmxwfb5n8jrlx7rjfgr7cb11", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGhlIGFjdGl2aXRpZXMgYnV0dG9uIiwKICAibmFtZSI6ICJObyBhY3Rpdml0aWVzIGJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibm9fYWN0aXZpdGllc0B5YXlhLmNvdXQiLAogICJ2ZXJzaW9uIjogNAp9"},
     "43": {"version": "4", "sha256": "1759h1yp2hndbksaqm2zid2lsca9zmxwfb5n8jrlx7rjfgr7cb11", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGhlIGFjdGl2aXRpZXMgYnV0dG9uIiwKICAibmFtZSI6ICJObyBhY3Rpdml0aWVzIGJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibm9fYWN0aXZpdGllc0B5YXlhLmNvdXQiLAogICJ2ZXJzaW9uIjogNAp9"}
   }}
-, {"uuid": "blur-my-shell@aunetx", "name": "Blur my Shell", "pname": "blur-my-shell", "description": "Adds a blur look to different parts of the GNOME Shell, including the top panel, dash and overview.\n\nYou can support my work by sponsoring me on:\n- github: https://github.com/sponsors/aunetx\n- ko-fi: https://ko-fi.com/aunetx\n\nNote: if the extension shows an error after updating, please make sure to restart your session to see if it persists. This is due to a bug in gnome shell, which I can't fix by myself.", "link": "https://extensions.gnome.org/extension/3193/blur-my-shell/", "shell_version_map": {
+, {"uuid": "blur-my-shell@aunetx", "name": "Blur my Shell", "pname": "blur-my-shell", "description": "Adds a blur look to different parts of the GNOME Shell, including the top panel, dash and overview.\n\nYou can support my work by sponsoring me on:\n- github: https://github.com/sponsors/aunetx\n- ko-fi: https://ko-fi.com/aunetx\n\nIf you use Ubuntu, you may want to change the radius of the corner effect for Dash-to-Dock in preferences, else you may see unpleasantly mixed radii in your dock.\n\nNote: if the extension shows an error after updating, please make sure to restart your session to see if it persists. This is due to a bug in gnome shell, which I can't fix by myself.", "link": "https://extensions.gnome.org/extension/3193/blur-my-shell/", "shell_version_map": {
     "38": {"version": "22", "sha256": "1ss5vhzjkp2bpllxpjlk1l2i8n7p4xjpzkn0q6jg3gd472kkanfx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJuYW1lIjogIkJsdXIgbXkgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hdW5ldHgvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWJsdXItbXktc2hlbGwiLAogICJ1dWlkIjogImJsdXItbXktc2hlbGxAYXVuZXR4IiwKICAidmVyc2lvbiI6IDIyCn0="},
     "40": {"version": "29", "sha256": "09zflyqk5mlybc4avm812hqr32q0yzrkkw0qy5q4lbkdid7cpqpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJuYW1lIjogIkJsdXIgbXkgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F1bmV0eC9nbm9tZS1zaGVsbC1leHRlbnNpb24tYmx1ci1teS1zaGVsbCIsCiAgInV1aWQiOiAiYmx1ci1teS1zaGVsbEBhdW5ldHgiLAogICJ2ZXJzaW9uIjogMjkKfQ=="},
     "41": {"version": "29", "sha256": "09zflyqk5mlybc4avm812hqr32q0yzrkkw0qy5q4lbkdid7cpqpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJuYW1lIjogIkJsdXIgbXkgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F1bmV0eC9nbm9tZS1zaGVsbC1leHRlbnNpb24tYmx1ci1teS1zaGVsbCIsCiAgInV1aWQiOiAiYmx1ci1teS1zaGVsbEBhdW5ldHgiLAogICJ2ZXJzaW9uIjogMjkKfQ=="},
@@ -2522,7 +2542,7 @@
     "43": {"version": "34", "sha256": "00mpmx7yfzy9wram6abwm8m7dklk84m3z38r0p8zxp20p3rik660", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvci1waWNrZXIiLAogICJuYW1lIjogIkNvbG9yIFBpY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb2xvci1waWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9jb2xvci1waWNrZXIiLAogICJ1dWlkIjogImNvbG9yLXBpY2tlckB0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDM0Cn0="},
     "44": {"version": "36", "sha256": "0mc7lbw6rsb65i1ha7js1syhk0k5z0kg3l4gzhxprlv2h4dnchaz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvci1waWNrZXIiLAogICJuYW1lIjogIkNvbG9yIFBpY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb2xvci1waWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9jb2xvci1waWNrZXIiLAogICJ1dWlkIjogImNvbG9yLXBpY2tlckB0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDM2Cn0="},
     "45": {"version": "40", "sha256": "0cpav8qrj8jj7zd1v1s4h7p5429gk8njr74zh0v7fk05ygb7skbg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvci1waWNrZXIiLAogICJuYW1lIjogIkNvbG9yIFBpY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb2xvci1waWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9jb2xvci1waWNrZXIiLAogICJ1dWlkIjogImNvbG9yLXBpY2tlckB0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDQwCn0="},
-    "46": {"version": "41", "sha256": "15ibiiy6lzw4cv3xph50cbbizghxgivh3m4icwf8mqli39r747af", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIEdOT01FIFNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvci1waWNrZXIiLAogICJuYW1lIjogIkNvbG9yIFBpY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb2xvci1waWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9jb2xvci1waWNrZXIiLAogICJ1dWlkIjogImNvbG9yLXBpY2tlckB0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDQxCn0="}
+    "46": {"version": "43", "sha256": "0sxs7yv24qnw90dkh1gsf150pymcdipv6ywccmzfkdrq1j4533md", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIEdOT01FIFNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvci1waWNrZXIiLAogICJuYW1lIjogIkNvbG9yIFBpY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb2xvci1waWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9jb2xvci1waWNrZXIiLAogICJ1dWlkIjogImNvbG9yLXBpY2tlckB0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDQzCn0="}
   }}
 , {"uuid": "yaru-remix-theme-toggle@muqtxdir.me", "name": "Yaru remix theme toggle", "pname": "yaru-remix-theme-toggle", "description": "Switches GTK3, Gnome-shell, cursor and icon themes to Yaru-remix variants", "link": "https://extensions.gnome.org/extension/3402/yaru-remix-theme-toggle/", "shell_version_map": {
     "38": {"version": "2", "sha256": "04dh163dshjnq3fa1y5kbkgl94q4cifvffq6i2pr4zd1v7d4zrf6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvcnMiOiBbCiAgICAibXVxdGFkaXI1NTU1QGdtYWlsLmNvbSIKICBdLAogICJkZXNjcmlwdGlvbiI6ICJTd2l0Y2hlcyBHVEszLCBHbm9tZS1zaGVsbCwgY3Vyc29yIGFuZCBpY29uIHRoZW1lcyB0byBZYXJ1LXJlbWl4IHZhcmlhbnRzIiwKICAibmFtZSI6ICJZYXJ1IHJlbWl4IHRoZW1lIHRvZ2dsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL011cXR4ZGlyL3lhcnUtcmVtaXgtdGhlbWUtdG9nZ2xlIiwKICAidXVpZCI6ICJ5YXJ1LXJlbWl4LXRoZW1lLXRvZ2dsZUBtdXF0eGRpci5tZSIsCiAgInZlcnNpb24iOiAyCn0="}
@@ -2644,7 +2664,8 @@
     "42": {"version": "5", "sha256": "0xzb1bc8y0chkg6pkg2ax11g2xfrxqd9cjnmxhrahmabh30db451", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAibmFtZSI6ICJNdWxsdmFkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BvYmVnYS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXVsbHZhZC1pbmRpY2F0b3IiLAogICJ1dWlkIjogIm11bGx2YWRpbmRpY2F0b3JAcG9iZWdhLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"},
     "43": {"version": "11", "sha256": "1wz1wfvbbjhy763jw5r530f0sglms38an443s34vwrivhiqvy0sq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAibmFtZSI6ICJNdWxsdmFkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Qb2JlZ2EvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bGx2YWQtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJtdWxsdmFkaW5kaWNhdG9yQHBvYmVnYS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="},
     "44": {"version": "14", "sha256": "1972fqsfl5p9cj633xb3m0155lj0lv74yvvmfadhaipgkpg1gs9s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAibmFtZSI6ICJNdWxsdmFkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Qb2JlZ2EvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bGx2YWQtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJtdWxsdmFkaW5kaWNhdG9yQHBvYmVnYS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE0Cn0="},
-    "45": {"version": "18", "sha256": "0jza6bl6vq8grdr6n33gg3c09grayskmbsrrhcdabp85b216lprh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibXVsbHZhZGluZGljYXRvckBwb2JlZ2EuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiTXVsbHZhZCBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuTXVsbHZhZEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Qb2JlZ2EvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bGx2YWQtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJtdWxsdmFkaW5kaWNhdG9yQHBvYmVnYS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="}
+    "45": {"version": "18", "sha256": "0jza6bl6vq8grdr6n33gg3c09grayskmbsrrhcdabp85b216lprh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibXVsbHZhZGluZGljYXRvckBwb2JlZ2EuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiTXVsbHZhZCBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuTXVsbHZhZEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Qb2JlZ2EvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bGx2YWQtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJtdWxsdmFkaW5kaWNhdG9yQHBvYmVnYS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="},
+    "46": {"version": "19", "sha256": "12fpan25j0qig3zhpnyg1wrsfxsx52msy4i9dn02gg089lkxp326", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibXVsbHZhZGluZGljYXRvckBwb2JlZ2EuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiTXVsbHZhZCBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuTXVsbHZhZEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Qb2JlZ2EvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bGx2YWQtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJtdWxsdmFkaW5kaWNhdG9yQHBvYmVnYS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE5Cn0="}
   }}
 , {"uuid": "task-widget@juozasmiskinis.gitlab.io", "name": "Task Widget", "pname": "task-widget", "description": "Display tasks next to the calendar widget.\n\nVisit our Wiki page for more information and troubleshooting.", "link": "https://extensions.gnome.org/extension/3569/task-widget/", "shell_version_map": {
     "38": {"version": "16", "sha256": "1i0gzrlqcjqgv0vmynxbkj84gsaacfrzgm0vzf26qgcjlblhz5lk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJhc2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQiLAogICJjb2ZmZWUiOiAiaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9uYnh3ZnBtIiwKICAiZGVwZW5kZW5jaWVzIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0L3dpa2lzL0luc3RhbGxhdGlvbiIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGFza3MgbmV4dCB0byB0aGUgY2FsZW5kYXIgd2lkZ2V0LlxuXG5WaXNpdCBvdXIgV2lraSBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCB0cm91Ymxlc2hvb3RpbmcuIiwKICAiZXBhdGgiOiAiL29yZy9nbm9tZS9zaGVsbC9leHRlbnNpb25zL3Rhc2std2lkZ2V0IiwKICAiZ3Jlc291cmNlIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhc2std2lkZ2V0LmdyZXNvdXJjZSIsCiAgImxpYmVyYXBheSI6ICJodHRwczovL2xpYmVyYXBheS5jb20vam9hc2lzLyIsCiAgImxvY2FsZSI6ICJ1c2VyLXNwZWNpZmljIiwKICAibmFtZSI6ICJUYXNrIFdpZGdldCIsCiAgInBheXBhbCI6ICJodHRwczovL3BheXBhbC5tZS9qbWlza2luaXMiLAogICJzY2hlbWFzIjogInVzZXItc3BlY2lmaWMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQiLAogICJ1dWlkIjogInRhc2std2lkZ2V0QGp1b3phc21pc2tpbmlzLmdpdGxhYi5pbyIsCiAgInZlcnNpb24iOiAxNiwKICAid2lraSI6ICJodHRwczovL2dpdGxhYi5jb20vam1pc2tpbmlzL2dub21lLXNoZWxsLWV4dGVuc2lvbi10YXNrLXdpZGdldC93aWtpcyIKfQ=="},
@@ -2695,8 +2716,8 @@
     "42": {"version": "48", "sha256": "0y7pbng3jvvpwnjbajh4qs5n9rlb42w5q4cm2is7s9znwc4n73zj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgRXh0ZW5zaW9uIGZvciBHTk9NRSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgInV1aWQiOiAiYXJjbWVudUBhcmNtZW51LmNvbSIsCiAgInZlcnNpb24iOiA0OAp9"},
     "43": {"version": "48", "sha256": "0y7pbng3jvvpwnjbajh4qs5n9rlb42w5q4cm2is7s9znwc4n73zj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgRXh0ZW5zaW9uIGZvciBHTk9NRSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgInV1aWQiOiAiYXJjbWVudUBhcmNtZW51LmNvbSIsCiAgInZlcnNpb24iOiA0OAp9"},
     "44": {"version": "48", "sha256": "0y7pbng3jvvpwnjbajh4qs5n9rlb42w5q4cm2is7s9znwc4n73zj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgRXh0ZW5zaW9uIGZvciBHTk9NRSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgInV1aWQiOiAiYXJjbWVudUBhcmNtZW51LmNvbSIsCiAgInZlcnNpb24iOiA0OAp9"},
-    "45": {"version": "55", "sha256": "0ggjf5avagpcrgljjkna2l662j78gfjh4maqkmfq4z1kj0vawliq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgRXh0ZW5zaW9uIGZvciBHTk9NRSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51IiwKICAidXVpZCI6ICJhcmNtZW51QGFyY21lbnUuY29tIiwKICAidmVyc2lvbiI6IDU1LAogICJ2ZXJzaW9uLW5hbWUiOiAiNTUiCn0="},
-    "46": {"version": "55", "sha256": "0ggjf5avagpcrgljjkna2l662j78gfjh4maqkmfq4z1kj0vawliq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgRXh0ZW5zaW9uIGZvciBHTk9NRSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51IiwKICAidXVpZCI6ICJhcmNtZW51QGFyY21lbnUuY29tIiwKICAidmVyc2lvbiI6IDU1LAogICJ2ZXJzaW9uLW5hbWUiOiAiNTUiCn0="}
+    "45": {"version": "56", "sha256": "1m6sjq8z0dsxnmywwh6axyfqspkgn4zrkx8fsgqk62bxpimx705x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgRXh0ZW5zaW9uIGZvciBHTk9NRSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51IiwKICAidXVpZCI6ICJhcmNtZW51QGFyY21lbnUuY29tIiwKICAidmVyc2lvbiI6IDU2LAogICJ2ZXJzaW9uLW5hbWUiOiAiNTYiCn0="},
+    "46": {"version": "56", "sha256": "1m6sjq8z0dsxnmywwh6axyfqspkgn4zrkx8fsgqk62bxpimx705x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgRXh0ZW5zaW9uIGZvciBHTk9NRSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51IiwKICAidXVpZCI6ICJhcmNtZW51QGFyY21lbnUuY29tIiwKICAidmVyc2lvbiI6IDU2LAogICJ2ZXJzaW9uLW5hbWUiOiAiNTYiCn0="}
   }}
 , {"uuid": "fixedimelist@alynx.one", "name": "Fixed IME List", "pname": "fixed-ime-list", "description": "Prevent MRU re-sorting of IME list on switching input method so it will always be the same sequence as you set in Settings.", "link": "https://extensions.gnome.org/extension/3663/fixed-ime-list/", "shell_version_map": {
     "38": {"version": "7", "sha256": "18z9h0fcq6w3kmcc5v8swjn18nc9hkck54jfzyv2697py6cd83kf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIElNRSBsaXN0IGluIGZpeGVkIHNlcXVlbmNlIGluc3RlYWQgb2YgTVJVLiIsCiAgIm5hbWUiOiAiRml4ZWQgSU1FIExpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWx5bnhaaG91L2dub21lLXNoZWxsLWV4dGVuc2lvbi1maXhlZC1pbWUtbGlzdC8iLAogICJ1dWlkIjogImZpeGVkaW1lbGlzdEBhbHlueC5vbmUiLAogICJ2ZXJzaW9uIjogNwp9"},
@@ -2937,7 +2958,9 @@
     "40": {"version": "10", "sha256": "0y5myj24bkci6y944dnl9p52jz87fiqjxq5x3xcm8s4lc7zgzkfs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NjYXJ5cmF3ci9nbm9tZS1mb2N1cyIsCiAgInV1aWQiOiAiZm9jdXNAc2NhcnlyYXdyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMAp9"},
     "41": {"version": "10", "sha256": "0y5myj24bkci6y944dnl9p52jz87fiqjxq5x3xcm8s4lc7zgzkfs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NjYXJ5cmF3ci9nbm9tZS1mb2N1cyIsCiAgInV1aWQiOiAiZm9jdXNAc2NhcnlyYXdyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMAp9"},
     "42": {"version": "10", "sha256": "0y5myj24bkci6y944dnl9p52jz87fiqjxq5x3xcm8s4lc7zgzkfs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NjYXJ5cmF3ci9nbm9tZS1mb2N1cyIsCiAgInV1aWQiOiAiZm9jdXNAc2NhcnlyYXdyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMAp9"},
-    "43": {"version": "10", "sha256": "0y5myj24bkci6y944dnl9p52jz87fiqjxq5x3xcm8s4lc7zgzkfs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NjYXJ5cmF3ci9nbm9tZS1mb2N1cyIsCiAgInV1aWQiOiAiZm9jdXNAc2NhcnlyYXdyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMAp9"}
+    "43": {"version": "10", "sha256": "0y5myj24bkci6y944dnl9p52jz87fiqjxq5x3xcm8s4lc7zgzkfs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NjYXJ5cmF3ci9nbm9tZS1mb2N1cyIsCiAgInV1aWQiOiAiZm9jdXNAc2NhcnlyYXdyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMAp9"},
+    "45": {"version": "13", "sha256": "07mvx2b8zfj9j5ry2d0cw1rw1gm5j78nah3ffb84zpj6w8xv4n9k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zY2FyeXJhd3IvZ25vbWUtZm9jdXMiLAogICJ1dWlkIjogImZvY3VzQHNjYXJ5cmF3ci5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTMKfQ=="},
+    "46": {"version": "13", "sha256": "07mvx2b8zfj9j5ry2d0cw1rw1gm5j78nah3ffb84zpj6w8xv4n9k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zY2FyeXJhd3IvZ25vbWUtZm9jdXMiLAogICJ1dWlkIjogImZvY3VzQHNjYXJ5cmF3ci5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}
   }}
 , {"uuid": "autoselectheadset@josephlbarnett.github.com", "name": "Auto select headset", "pname": "auto-select-headset", "description": "Auto selects headsets when possible instead of showing a dialog", "link": "https://extensions.gnome.org/extension/3928/auto-select-headset/", "shell_version_map": {
     "38": {"version": "7", "sha256": "1mi1yrlqc0bqih6zsbqcznnjfxjq3j5s64819wxwxg5m9ligi61h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam9zZXBobGJhcm5ldHQvYXV0b3NlbGVjdGhlYWRzZXQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhdXRvc2VsZWN0aGVhZHNldEBqb3NlcGhsYmFybmV0dC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
@@ -2946,7 +2969,8 @@
     "42": {"version": "7", "sha256": "1mi1yrlqc0bqih6zsbqcznnjfxjq3j5s64819wxwxg5m9ligi61h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam9zZXBobGJhcm5ldHQvYXV0b3NlbGVjdGhlYWRzZXQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhdXRvc2VsZWN0aGVhZHNldEBqb3NlcGhsYmFybmV0dC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
     "43": {"version": "7", "sha256": "1mi1yrlqc0bqih6zsbqcznnjfxjq3j5s64819wxwxg5m9ligi61h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam9zZXBobGJhcm5ldHQvYXV0b3NlbGVjdGhlYWRzZXQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhdXRvc2VsZWN0aGVhZHNldEBqb3NlcGhsYmFybmV0dC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
     "44": {"version": "7", "sha256": "1mi1yrlqc0bqih6zsbqcznnjfxjq3j5s64819wxwxg5m9ligi61h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam9zZXBobGJhcm5ldHQvYXV0b3NlbGVjdGhlYWRzZXQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhdXRvc2VsZWN0aGVhZHNldEBqb3NlcGhsYmFybmV0dC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
-    "45": {"version": "9", "sha256": "0q6p0vjd062wl7gpg3g91pr5f09hhhlm1az9hj2bqrlnd7irw7kj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qb3NlcGhsYmFybmV0dC9hdXRvc2VsZWN0aGVhZHNldC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogImF1dG9zZWxlY3RoZWFkc2V0QGpvc2VwaGxiYXJuZXR0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}
+    "45": {"version": "10", "sha256": "0dxj0hk7ara5aih61vfpqqkv6jk2mg3r5rkpdpy15kwwikw28f60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam9zZXBobGJhcm5ldHQvYXV0b3NlbGVjdGhlYWRzZXQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhdXRvc2VsZWN0aGVhZHNldEBqb3NlcGhsYmFybmV0dC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="},
+    "46": {"version": "10", "sha256": "0dxj0hk7ara5aih61vfpqqkv6jk2mg3r5rkpdpy15kwwikw28f60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam9zZXBobGJhcm5ldHQvYXV0b3NlbGVjdGhlYWRzZXQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhdXRvc2VsZWN0aGVhZHNldEBqb3NlcGhsYmFybmV0dC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}
   }}
 , {"uuid": "toggle-night-light@cansozbir.github.io", "name": "Toggle Night Light", "pname": "toggle-night-light", "description": "This extension lets you toggle night-light from the top-bar by clicking it.", "link": "https://extensions.gnome.org/extension/3933/toggle-night-light/", "shell_version_map": {
     "38": {"version": "7", "sha256": "13s25az5g1n500jih7n1n7mprm70c2mg4r9cfdrxvivvmy080s5b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IHRvZ2dsZSBuaWdodC1saWdodCBmcm9tIHRoZSB0b3AtYmFyIGJ5IGNsaWNraW5nIGl0LiIsCiAgIm5hbWUiOiAiVG9nZ2xlIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2Fuc296YmlyL2dub21lLXNoZWxsLXRvZ2dsZS1uaWdodC1saWdodC1leHRlbnNpb24iLAogICJ1dWlkIjogInRvZ2dsZS1uaWdodC1saWdodEBjYW5zb3piaXIuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDcKfQ=="},
@@ -2959,14 +2983,15 @@
     "40": {"version": "4", "sha256": "1n2fnqv9mhgz9i32vbplamp8vfridh9hc2maxdl8y7nlhvjrk992", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5PVCBNQUlOVEFJTkVEIEFOWU1PUkVcblxuQnV0dG9uIGluIHBhbmVsOiBzd2l0Y2ggYmV0d2VlbiBBZHdhaXRhIGRhcmsgYW5kIGxpZ2h0IHRoZW1lcy4iLAogICJuYW1lIjogIkFkd2FpdGEgVGhlbWUgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYWR3YWl0YS10aGVtZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR3YWl0YS10aGVtZS1zd2l0Y2hlckBmdGh4IiwKICAidmVyc2lvbiI6IDQKfQ=="},
     "41": {"version": "4", "sha256": "1n2fnqv9mhgz9i32vbplamp8vfridh9hc2maxdl8y7nlhvjrk992", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5PVCBNQUlOVEFJTkVEIEFOWU1PUkVcblxuQnV0dG9uIGluIHBhbmVsOiBzd2l0Y2ggYmV0d2VlbiBBZHdhaXRhIGRhcmsgYW5kIGxpZ2h0IHRoZW1lcy4iLAogICJuYW1lIjogIkFkd2FpdGEgVGhlbWUgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYWR3YWl0YS10aGVtZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR3YWl0YS10aGVtZS1zd2l0Y2hlckBmdGh4IiwKICAidmVyc2lvbiI6IDQKfQ=="}
   }}
-, {"uuid": "fnlock-switch-tp-comp-usb-kb@goloshubov.github.io", "name": "FnLock switch (ThinkPad Compact USB Keyboard) ", "pname": "fnlock-switch-thinkpad-compact-usb-keyboard", "description": "FnLock switch for Lenovo ThinkPad Compact USB Keyboard", "link": "https://extensions.gnome.org/extension/3939/fnlock-switch-thinkpad-compact-usb-keyboard/", "shell_version_map": {
+, {"uuid": "fnlock-switch-tp-comp-usb-kb@goloshubov.github.io", "name": "FnLock switch (ThinkPad Compact USB Keyboard) ", "pname": "fnlock-switch-thinkpad-compact-usb-keyboard", "description": "FnLock switch for Lenovo ThinkPad Compact USB Keyboard ", "link": "https://extensions.gnome.org/extension/3939/fnlock-switch-thinkpad-compact-usb-keyboard/", "shell_version_map": {
     "38": {"version": "8", "sha256": "0qw46d3nibpfx0n1584xlw0lkxspvvl5dl2k4x3nbp87wm9gs8vw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="},
     "40": {"version": "8", "sha256": "0qw46d3nibpfx0n1584xlw0lkxspvvl5dl2k4x3nbp87wm9gs8vw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="},
     "41": {"version": "8", "sha256": "0qw46d3nibpfx0n1584xlw0lkxspvvl5dl2k4x3nbp87wm9gs8vw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="},
     "42": {"version": "8", "sha256": "0qw46d3nibpfx0n1584xlw0lkxspvvl5dl2k4x3nbp87wm9gs8vw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="},
     "43": {"version": "8", "sha256": "0qw46d3nibpfx0n1584xlw0lkxspvvl5dl2k4x3nbp87wm9gs8vw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="},
     "44": {"version": "8", "sha256": "0qw46d3nibpfx0n1584xlw0lkxspvvl5dl2k4x3nbp87wm9gs8vw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="},
-    "45": {"version": "10", "sha256": "0fl6dr0c5g8vf19ywq5lzdsk121dsh4ls9a54x89mc10i5s9rj38", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29sb3NodWJvdi9mbmxvY2stc3dpdGNoLXRwLWNvbXAtdXNiLWtiIiwKICAidXVpZCI6ICJmbmxvY2stc3dpdGNoLXRwLWNvbXAtdXNiLWtiQGdvbG9zaHVib3YuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEwCn0="}
+    "45": {"version": "11", "sha256": "0scc8z918g0ww5ljdzkwfkv52ff4gma8bj5isb9gid62lb6idiq8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMQp9"},
+    "46": {"version": "11", "sha256": "0scc8z918g0ww5ljdzkwfkv52ff4gma8bj5isb9gid62lb6idiq8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMQp9"}
   }}
 , {"uuid": "toggle-alacritty@itstime.tech", "name": "Toggle Alacritty", "pname": "toggle-alacritty", "description": "Toggles Alacritty window via hotkey: Alt+z\n\nIf Alacritty is not launched, attempts to start it (/usr/bin/alacritty)\n\nWorks under both Wayland and X11\n\nTo change hotkey please follow instruction in the README.md:", "link": "https://extensions.gnome.org/extension/3942/toggle-alacritty/", "shell_version_map": {
     "38": {"version": "6", "sha256": "03hz84zr05sjw20jvvhmawgi2acimlqzh3vrsp184j6d671yfv7m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMgQWxhY3JpdHR5IHdpbmRvdyB2aWEgaG90a2V5OiBBbHQrelxuXG5JZiBBbGFjcml0dHkgaXMgbm90IGxhdW5jaGVkLCBhdHRlbXB0cyB0byBzdGFydCBpdCAoL3Vzci9iaW4vYWxhY3JpdHR5KVxuXG5Xb3JrcyB1bmRlciBib3RoIFdheWxhbmQgYW5kIFgxMVxuXG5UbyBjaGFuZ2UgaG90a2V5IHBsZWFzZSBmb2xsb3cgaW5zdHJ1Y3Rpb24gaW4gdGhlIFJFQURNRS5tZDoiLAogICJuYW1lIjogIlRvZ2dsZSBBbGFjcml0dHkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudG9nZ2xlLWFsYWNyaXR0eSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXh4YXB5L2dub21lLWFsYWNyaXR0eS10b2dnbGUiLAogICJ1dWlkIjogInRvZ2dsZS1hbGFjcml0dHlAaXRzdGltZS50ZWNoIiwKICAidmVyc2lvbiI6IDYKfQ=="},
@@ -3005,7 +3030,8 @@
     "42": {"version": "19", "sha256": "0h7iarczbkv24kbydrids0wdaymlrilib0jhqdmm9k11hriyg1jh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9DemFybGllL2dub21lLWZ1enp5LWFwcC1zZWFyY2giLAogICJ1dWlkIjogImdub21lLWZ1enp5LWFwcC1zZWFyY2hAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5DemFybGllLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogMTkKfQ=="},
     "43": {"version": "19", "sha256": "0h7iarczbkv24kbydrids0wdaymlrilib0jhqdmm9k11hriyg1jh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9DemFybGllL2dub21lLWZ1enp5LWFwcC1zZWFyY2giLAogICJ1dWlkIjogImdub21lLWZ1enp5LWFwcC1zZWFyY2hAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5DemFybGllLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogMTkKfQ=="},
     "44": {"version": "19", "sha256": "0h7iarczbkv24kbydrids0wdaymlrilib0jhqdmm9k11hriyg1jh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9DemFybGllL2dub21lLWZ1enp5LWFwcC1zZWFyY2giLAogICJ1dWlkIjogImdub21lLWZ1enp5LWFwcC1zZWFyY2hAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5DemFybGllLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogMTkKfQ=="},
-    "45": {"version": "20", "sha256": "1bmgxpxg1jra337rdqchcgij5f78d3krqkr9s7v05sxpqx51jwpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDaGFybG90dGUgPGdmYXNAY3phLmxpPiIsCiAgImF1dGhvci1odG1sIjogIkNoYXJsb3R0ZSAmbHQ7PGEgaHJlZj1cIm1haWx0bzpnZmFzQGN6YS5saVwiPmdmYXNAY3phLmxpPC9hPiZndDsiLAogICJkZXNjcmlwdGlvbiI6ICJGdXp6eSBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgR25vbWUgU2VhcmNoIiwKICAiZGVzY3JpcHRpb24taHRtbCI6ICI8YSBocmVmPVwiaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQXBwcm94aW1hdGVfc3RyaW5nX21hdGNoaW5nXCI+RnV6enk8L2E+IGFwcGxpY2F0aW9uIHNlYXJjaCByZXN1bHRzIGZvciA8YSBocmVmPVwiaHR0cHM6Ly9kZXZlbG9wZXIuZ25vbWUub3JnL1NlYXJjaFByb3ZpZGVyL1wiPkdub21lIFNlYXJjaDwvYT4uIiwKICAiZW1haWwiOiAiZ2Zhc0BjemEubGkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAibGljZW5zZSI6ICJHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wIiwKICAibGljZW5zZS1odG1sIjogIlRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuXG5TZWUgdGhlIDxhIGhyZWY9XCJodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAuaHRtbFwiPkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHYzLjA8L2E+IGZvciBkZXRhaWxzLiIsCiAgIm5hbWUiOiAiR05PTUUgRnV6enkgQXBwIFNlYXJjaCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJGcmFuam8gRmlsbyA8ZmZmaWxvNjY2QGdtYWlsLmNvbT4iLAogICJvcmlnaW5hbC1hdXRob3ItaHRtbCI6ICJGcmFuam8gRmlsbyAmbHQ7PGEgaHJlZj1cIm1haWx0bzpmZmZpbG82NjZAZ21haWwuY29tXCI+ZmZmaWxvNjY2QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2N6YXJsaWUvZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgInV1aWQiOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaEBnbm9tZS1zaGVsbC1leHRlbnNpb25zLkN6YXJsaWUuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"}
+    "45": {"version": "24", "sha256": "14p08lcnv240bk9ibgchb74xjnsnfh4868w2qlgqpsn0fl1ba906", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDaGFybG90dGUgPGdmYXNAY3phLmxpPiIsCiAgImF1dGhvci1odG1sIjogIkNoYXJsb3R0ZSAmbHQ7PGEgaHJlZj1cIm1haWx0bzpnZmFzQGN6YS5saVwiPmdmYXNAY3phLmxpPC9hPiZndDsiLAogICJkZXNjcmlwdGlvbiI6ICJGdXp6eSBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgR25vbWUgU2VhcmNoIiwKICAiZGVzY3JpcHRpb24taHRtbCI6ICI8YSBocmVmPVwiaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQXBwcm94aW1hdGVfc3RyaW5nX21hdGNoaW5nXCI+RnV6enk8L2E+IGFwcGxpY2F0aW9uIHNlYXJjaCByZXN1bHRzIGZvciA8YSBocmVmPVwiaHR0cHM6Ly9kZXZlbG9wZXIuZ25vbWUub3JnL1NlYXJjaFByb3ZpZGVyL1wiPkdub21lIFNlYXJjaDwvYT4uIiwKICAiZW1haWwiOiAiZ2Zhc0BjemEubGkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAibGljZW5zZSI6ICJHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wIiwKICAibGljZW5zZS1odG1sIjogIlRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuXG5TZWUgdGhlIDxhIGhyZWY9XCJodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAuaHRtbFwiPkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHYzLjA8L2E+IGZvciBkZXRhaWxzLiIsCiAgIm5hbWUiOiAiR05PTUUgRnV6enkgQXBwIFNlYXJjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vY3phcmxpZS9nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAidXVpZCI6ICJnbm9tZS1mdXp6eS1hcHAtc2VhcmNoQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuQ3phcmxpZS5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="},
+    "46": {"version": "24", "sha256": "14p08lcnv240bk9ibgchb74xjnsnfh4868w2qlgqpsn0fl1ba906", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDaGFybG90dGUgPGdmYXNAY3phLmxpPiIsCiAgImF1dGhvci1odG1sIjogIkNoYXJsb3R0ZSAmbHQ7PGEgaHJlZj1cIm1haWx0bzpnZmFzQGN6YS5saVwiPmdmYXNAY3phLmxpPC9hPiZndDsiLAogICJkZXNjcmlwdGlvbiI6ICJGdXp6eSBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgR25vbWUgU2VhcmNoIiwKICAiZGVzY3JpcHRpb24taHRtbCI6ICI8YSBocmVmPVwiaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQXBwcm94aW1hdGVfc3RyaW5nX21hdGNoaW5nXCI+RnV6enk8L2E+IGFwcGxpY2F0aW9uIHNlYXJjaCByZXN1bHRzIGZvciA8YSBocmVmPVwiaHR0cHM6Ly9kZXZlbG9wZXIuZ25vbWUub3JnL1NlYXJjaFByb3ZpZGVyL1wiPkdub21lIFNlYXJjaDwvYT4uIiwKICAiZW1haWwiOiAiZ2Zhc0BjemEubGkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAibGljZW5zZSI6ICJHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wIiwKICAibGljZW5zZS1odG1sIjogIlRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuXG5TZWUgdGhlIDxhIGhyZWY9XCJodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAuaHRtbFwiPkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHYzLjA8L2E+IGZvciBkZXRhaWxzLiIsCiAgIm5hbWUiOiAiR05PTUUgRnV6enkgQXBwIFNlYXJjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vY3phcmxpZS9nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAidXVpZCI6ICJnbm9tZS1mdXp6eS1hcHAtc2VhcmNoQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuQ3phcmxpZS5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="}
   }}
 , {"uuid": "e-ink-mode@fujimo-t.github.io", "name": "E Ink Mode", "pname": "e-ink-mode", "description": "Make desktop suitable for E Ink monitors.\n\nUnmaintenanced.\nPlease migrate to theme:\nhttps://github.com/fujimo-t/gnome-shell-theme-e-ink\nSee below to detail:\nhttps://github.com/fujimo-t/gnome-shell-extension-e-ink-mode/issues/3#issuecomment-1019159171", "link": "https://extensions.gnome.org/extension/3957/e-ink-mode/", "shell_version_map": {
     "40": {"version": "3", "sha256": "0khqna60a0vblygriiky0jzg92ib8i44i6wkr8s3vxi0bcfa2zhm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgZGVza3RvcCBzdWl0YWJsZSBmb3IgRSBJbmsgbW9uaXRvcnMuXG5cblVubWFpbnRlbmFuY2VkLlxuUGxlYXNlIG1pZ3JhdGUgdG8gdGhlbWU6XG5odHRwczovL2dpdGh1Yi5jb20vZnVqaW1vLXQvZ25vbWUtc2hlbGwtdGhlbWUtZS1pbmtcblNlZSBiZWxvdyB0byBkZXRhaWw6XG5odHRwczovL2dpdGh1Yi5jb20vZnVqaW1vLXQvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWUtaW5rLW1vZGUvaXNzdWVzLzMjaXNzdWVjb21tZW50LTEwMTkxNTkxNzEiLAogICJuYW1lIjogIkUgSW5rIE1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnVqaW1vLXQvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWUtaW5rLW1vZGUiLAogICJ1dWlkIjogImUtaW5rLW1vZGVAZnVqaW1vLXQuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDMKfQ=="}
@@ -3046,7 +3072,7 @@
     "42": {"version": "21", "sha256": "1pbldn51jjfq45d3bl7nfciff1mn3krl7dhiwp9hqrp3hchlassd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IEppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zaHV6aGkiLAogICJuYW1lIjogIlNodSBaaGkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1emhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiAyMQp9"},
     "43": {"version": "23", "sha256": "1nsjpjjsllrdh2k6v9h06xm656b5dbq2vpxs7kqn4p7l8b0ycav4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IEppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zaHV6aGkiLAogICJuYW1lIjogIlNodSBaaGkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1emhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiAyMwp9"},
     "45": {"version": "30", "sha256": "0bswnas2jr58f995sd6317wvy14vq0w5y8fcmrn8n36jgpf3ik5v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IEppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zaHV6aGkiLAogICJuYW1lIjogIlNodSBaaGkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1emhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiAzMAp9"},
-    "46": {"version": "31", "sha256": "06q32s44nf9y61hph8vkmxxpwfzfi58r32py67mxca9xmswc3g03", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IGppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zaHV6aGkiLAogICJuYW1lIjogIlNodSBaaGkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1emhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiAzMQp9"}
+    "46": {"version": "32", "sha256": "035pgwb3dsdw75figyw0r82d2bfadd3sq780mmfvjfkfvb6zjaf9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IGppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zaHV6aGkiLAogICJuYW1lIjogIlNodSBaaGkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1emhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiAzMgp9"}
   }}
 , {"uuid": "zilence@apankowski.github.com", "name": "Zilence", "pname": "zilence", "description": "Turns off notifications while sharing screen during a Zoom call", "link": "https://extensions.gnome.org/extension/3988/zilence/", "shell_version_map": {
     "38": {"version": "4", "sha256": "18iy39i5i8ii2salpxnyin0bwfckl6kp2fzkkij3fqd0pga1frix", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1pdCI6ICIyNTU1ZGNhYjYxZTZiODBhZGFiYjM2NDM5MzEwMmY5MGU3MzhiOTRmIiwKICAiZGVzY3JpcHRpb24iOiAiVHVybnMgb2ZmIG5vdGlmaWNhdGlvbnMgd2hpbGUgc2hhcmluZyBzY3JlZW4gZHVyaW5nIGEgWm9vbSBjYWxsIiwKICAibmFtZSI6ICJaaWxlbmNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcGFua293c2tpL3ppbGVuY2UiLAogICJ1dWlkIjogInppbGVuY2VAYXBhbmtvd3NraS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="},
@@ -3098,7 +3124,7 @@
     "42": {"version": "13", "sha256": "0j23i2gl956r2wffqky5vg6ca24gn3hkibhrhsvkqd87g90cjdq6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlc2t0b3AtbHlyaWMiLAogICJuYW1lIjogIkRlc2t0b3AgTHlyaWMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVza3RvcC1seXJpYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2Rlc2t0b3AtbHlyaWMiLAogICJ1dWlkIjogImRlc2t0b3AtbHlyaWNAdHViZXJyeSIsCiAgInZlcnNpb24iOiAxMwp9"},
     "43": {"version": "16", "sha256": "1frahic00q1dqi27vbxw8y0dz1qcfd99m1kzha1r8pyfgwd22fqv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlc2t0b3AtbHlyaWMiLAogICJuYW1lIjogIkRlc2t0b3AgTHlyaWMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVza3RvcC1seXJpYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2Rlc2t0b3AtbHlyaWMiLAogICJ1dWlkIjogImRlc2t0b3AtbHlyaWNAdHViZXJyeSIsCiAgInZlcnNpb24iOiAxNgp9"},
     "45": {"version": "19", "sha256": "0p8rfw2yvx7cdm43wgjgml5hisijxwjsl8d6cg1aad9m3lc8d0pl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlc2t0b3AtbHlyaWMiLAogICJuYW1lIjogIkRlc2t0b3AgTHlyaWMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVza3RvcC1seXJpYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2Rlc2t0b3AtbHlyaWMiLAogICJ1dWlkIjogImRlc2t0b3AtbHlyaWNAdHViZXJyeSIsCiAgInZlcnNpb24iOiAxOQp9"},
-    "46": {"version": "20", "sha256": "0g4a3mfnmj81qhb90hyp9hrzr5vr4r8dr458nkvk28qh9l9vbzb3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlc2t0b3AtbHlyaWMiLAogICJuYW1lIjogIkRlc2t0b3AgTHlyaWMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVza3RvcC1seXJpYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2Rlc2t0b3AtbHlyaWMiLAogICJ1dWlkIjogImRlc2t0b3AtbHlyaWNAdHViZXJyeSIsCiAgInZlcnNpb24iOiAyMAp9"}
+    "46": {"version": "21", "sha256": "0c94q497q3zl2r7a0vdyip31mj1f4z8a0sidngib1j2pxpp6pvk6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlc2t0b3AtbHlyaWMiLAogICJuYW1lIjogIkRlc2t0b3AgTHlyaWMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVza3RvcC1seXJpYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2Rlc2t0b3AtbHlyaWMiLAogICJ1dWlkIjogImRlc2t0b3AtbHlyaWNAdHViZXJyeSIsCiAgInZlcnNpb24iOiAyMQp9"}
   }}
 , {"uuid": "alttab-mod@leleat-on-github", "name": "AltTab Mod", "pname": "alttab-mod", "description": "Add some QoL changes to the App Switcher (Alt/Super+Tab)...\n- use `WASD`, `hjkl` or the arrow keys for navigation\n- `Q` only closes the selected window instead of the entire app\n- only raise the first window instead of every instance\n- optionally: only show windows from the current workspace\n- optionally: only show windows from the current monitor\n- optionally: remove the App Switcher's delayed appearance", "link": "https://extensions.gnome.org/extension/4007/alttab-mod/", "shell_version_map": {
     "38": {"version": "6", "sha256": "1010nmdyga6lqk78vlc9r02h3kcgimlvamb7xhp5vw7i71gay4jv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBzb21lIFFvTCBjaGFuZ2VzIHRvIHRoZSBBcHAgU3dpdGNoZXIgKEFsdC9TdXBlcitUYWIpLi4uXG4tIHVzZSBgV0FTRGAsIGBoamtsYCBvciB0aGUgYXJyb3cga2V5cyBmb3IgbmF2aWdhdGlvblxuLSBgUWAgb25seSBjbG9zZXMgdGhlIHNlbGVjdGVkIHdpbmRvdyBpbnN0ZWFkIG9mIHRoZSBlbnRpcmUgYXBwXG4tIG9ubHkgcmFpc2UgdGhlIGZpcnN0IHdpbmRvdyBpbnN0ZWFkIG9mIGV2ZXJ5IGluc3RhbmNlXG4tIG9wdGlvbmFsbHk6IG9ubHkgc2hvdyB3aW5kb3dzIGZyb20gdGhlIGN1cnJlbnQgd29ya3NwYWNlXG4tIG9wdGlvbmFsbHk6IG9ubHkgc2hvdyB3aW5kb3dzIGZyb20gdGhlIGN1cnJlbnQgbW9uaXRvclxuLSBvcHRpb25hbGx5OiByZW1vdmUgdGhlIEFwcCBTd2l0Y2hlcidzIGRlbGF5ZWQgYXBwZWFyYW5jZSIsCiAgIm5hbWUiOiAiQWx0VGFiIE1vZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTGVsZWF0L0FsdFRhYi1Nb2QiLAogICJ1dWlkIjogImFsdHRhYi1tb2RAbGVsZWF0LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiA2Cn0="},
@@ -3270,9 +3296,13 @@
   }}
 , {"uuid": "translate-clipboard@lsnow.github.io", "name": "Translate clipboard", "pname": "translate-clipboard", "description": "Translate clipboard text", "link": "https://extensions.gnome.org/extension/4097/translate-clipboard/", "shell_version_map": {
     "38": {"version": "1", "sha256": "071x3q6y7s8qx4i3lis79g5nc68ld8ln5q8qgc713nvjgfsg05hs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xzbm93L3RyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1jbGlwYm9hcmRAbHNub3cuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEKfQ=="},
-    "40": {"version": "16", "sha256": "11r7r4azaf94f453ima2sms0ycaygh0l3k30dm5zpbkdp4pbczbh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDEuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xzbm93L3RyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1jbGlwYm9hcmRAbHNub3cuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE2Cn0="},
-    "41": {"version": "16", "sha256": "11r7r4azaf94f453ima2sms0ycaygh0l3k30dm5zpbkdp4pbczbh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDEuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xzbm93L3RyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1jbGlwYm9hcmRAbHNub3cuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE2Cn0="},
-    "42": {"version": "17", "sha256": "0rq6fc479x0hjkbam37pcnax909bssybz1ibnn7a0nx1ai9zkxr7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sc25vdy90cmFuc2xhdGUtY2xpcGJvYXJkIiwKICAidXVpZCI6ICJ0cmFuc2xhdGUtY2xpcGJvYXJkQGxzbm93LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxNwp9"}
+    "40": {"version": "19", "sha256": "0zh3vmyag819qjl2f1gnsa3aaa67z2ga10l18r9phdrvg9fh2q28", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="},
+    "41": {"version": "19", "sha256": "0zh3vmyag819qjl2f1gnsa3aaa67z2ga10l18r9phdrvg9fh2q28", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="},
+    "42": {"version": "19", "sha256": "0zh3vmyag819qjl2f1gnsa3aaa67z2ga10l18r9phdrvg9fh2q28", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="},
+    "43": {"version": "19", "sha256": "0zh3vmyag819qjl2f1gnsa3aaa67z2ga10l18r9phdrvg9fh2q28", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="},
+    "44": {"version": "19", "sha256": "0zh3vmyag819qjl2f1gnsa3aaa67z2ga10l18r9phdrvg9fh2q28", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="},
+    "45": {"version": "23", "sha256": "0zbamf5a18zcs3akc4xlplzid8kbps3dnklfr4a7xwqym4s0nq89", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0cmFuc2xhdGUtY2xpcGJvYXJkIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiVHJhbnNsYXRlQ2xpcGJvYXJkIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJUcmFuc2xhdGUgY2xpcGJvYXJkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xzbm93L3RyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1jbGlwYm9hcmRAbHNub3cuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDIzCn0="},
+    "46": {"version": "23", "sha256": "0zbamf5a18zcs3akc4xlplzid8kbps3dnklfr4a7xwqym4s0nq89", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0cmFuc2xhdGUtY2xpcGJvYXJkIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiVHJhbnNsYXRlQ2xpcGJvYXJkIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJUcmFuc2xhdGUgY2xpcGJvYXJkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xzbm93L3RyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1jbGlwYm9hcmRAbHNub3cuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDIzCn0="}
   }}
 , {"uuid": "no-overview@fthx", "name": "No overview at start-up", "pname": "no-overview", "description": "No overview at start-up. Nothing more.", "link": "https://extensions.gnome.org/extension/4099/no-overview/", "shell_version_map": {
     "40": {"version": "13", "sha256": "18v54y1a4qrpq2gm65z0l13p02grjzcqa1xskn1bhwdy35pdal3n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIG92ZXJ2aWV3IGF0IHN0YXJ0LXVwLiBGb3IgR05PTUUgU2hlbGwgNDArLiIsCiAgIm5hbWUiOiAiTm8gb3ZlcnZpZXcgYXQgc3RhcnQtdXAiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImZ0aHgiCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L25vLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJuby1vdmVydmlld0BmdGh4IiwKICAidmVyc2lvbiI6IDEzCn0="},
@@ -3347,7 +3377,8 @@
     "42": {"version": "8", "sha256": "1c21nzky2sfrq8wkz26rn2gcyr81y1zb3r14pflwhl56f9bgbh0c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVzcHJlc3NvIGRpc2FibGVzIHRoZSB1c3VhbCBhdXRvIHN1c3BlbmQgYW5kIHNjcmVlbnNhdmVyIGZ1bmN0aW9uYWxpdHkgYW5kIG9wdGlvbmFsbHkgTmlnaHQgTGlnaHQgd2l0aCBvcHRpb25zIHRvIHNob3cgYW4gRXNwcmVzc28gaWNvbiBpbiB0aGUgdG9wIHBhbmVsLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBhIGZ1bGxzY3JlZW4gYXBwbGljYXRpb24gaXMgcnVubmluZywgdG8gcmVzdG9yZSBzdGF0ZSBhY3Jvc3MgcmVib290cywgdG8gcHJvdmlkZSBub3RpZmljYXRpb25zLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBzcGVjaWZpYyBhcHBsaWNhdGlvbnMgYXJlIHJ1bm5pbmcsIG9yIHRvIHBhdXNlIE5pZ2h0IExpZ2h0IHdoZW4gRXNwcmVzc28gaXMgZW5hYmxlZCBvciBvbmx5IHdoZW4gc3BlY2lmaWMgYXBwbGljYXRpb25zIGFyZSBydW5uaW5nLiBFc3ByZXNzbyBhbHNvIHByb3ZpZGVzIHNvbWUgc3VwcG9ydCBmb3IgZG9ja2luZyBzdGF0aW9ucyBpbmNsdWRpbmcgb3B0aW9ucyB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBjaGFyZ2luZyBhbmQvb3Igd2hlbiBkb2NrZWQgdG8gZXh0ZXJuYWwgbW9uaXRvcnMgYW5kIHRvIGFsbG93IHRlbXBvcmFyaWx5IG92ZXJyaWRpbmcgdGhlIGRvY2tpbmcgc3VwcG9ydCB3aXRob3V0IGFmZmVjdGluZyB0aGUgc3RvcmVkIHN0YXRlLlxuXG5Fc3ByZXNzbyBpcyBhIGZvcmsgb2YgdGhlIENhZmZlaW5lIGV4dGVuc2lvbi5cblxuUGxlYXNlIGxlYXZlIGZlZWRiYWNrIG9yIHJlcG9ydCBpc3N1ZXMgdGhyb3VnaCB0aGUgRXh0ZW5zaW9uIEhvbWVwYWdlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAibmFtZSI6ICJFc3ByZXNzbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lc3ByZXNzbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29hZG11bmtlZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tZXNwcmVzc28iLAogICJ1dWlkIjogImVzcHJlc3NvQGNvYWRtdW5rZWUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="},
     "43": {"version": "8", "sha256": "1c21nzky2sfrq8wkz26rn2gcyr81y1zb3r14pflwhl56f9bgbh0c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVzcHJlc3NvIGRpc2FibGVzIHRoZSB1c3VhbCBhdXRvIHN1c3BlbmQgYW5kIHNjcmVlbnNhdmVyIGZ1bmN0aW9uYWxpdHkgYW5kIG9wdGlvbmFsbHkgTmlnaHQgTGlnaHQgd2l0aCBvcHRpb25zIHRvIHNob3cgYW4gRXNwcmVzc28gaWNvbiBpbiB0aGUgdG9wIHBhbmVsLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBhIGZ1bGxzY3JlZW4gYXBwbGljYXRpb24gaXMgcnVubmluZywgdG8gcmVzdG9yZSBzdGF0ZSBhY3Jvc3MgcmVib290cywgdG8gcHJvdmlkZSBub3RpZmljYXRpb25zLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBzcGVjaWZpYyBhcHBsaWNhdGlvbnMgYXJlIHJ1bm5pbmcsIG9yIHRvIHBhdXNlIE5pZ2h0IExpZ2h0IHdoZW4gRXNwcmVzc28gaXMgZW5hYmxlZCBvciBvbmx5IHdoZW4gc3BlY2lmaWMgYXBwbGljYXRpb25zIGFyZSBydW5uaW5nLiBFc3ByZXNzbyBhbHNvIHByb3ZpZGVzIHNvbWUgc3VwcG9ydCBmb3IgZG9ja2luZyBzdGF0aW9ucyBpbmNsdWRpbmcgb3B0aW9ucyB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBjaGFyZ2luZyBhbmQvb3Igd2hlbiBkb2NrZWQgdG8gZXh0ZXJuYWwgbW9uaXRvcnMgYW5kIHRvIGFsbG93IHRlbXBvcmFyaWx5IG92ZXJyaWRpbmcgdGhlIGRvY2tpbmcgc3VwcG9ydCB3aXRob3V0IGFmZmVjdGluZyB0aGUgc3RvcmVkIHN0YXRlLlxuXG5Fc3ByZXNzbyBpcyBhIGZvcmsgb2YgdGhlIENhZmZlaW5lIGV4dGVuc2lvbi5cblxuUGxlYXNlIGxlYXZlIGZlZWRiYWNrIG9yIHJlcG9ydCBpc3N1ZXMgdGhyb3VnaCB0aGUgRXh0ZW5zaW9uIEhvbWVwYWdlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAibmFtZSI6ICJFc3ByZXNzbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lc3ByZXNzbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29hZG11bmtlZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tZXNwcmVzc28iLAogICJ1dWlkIjogImVzcHJlc3NvQGNvYWRtdW5rZWUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="},
     "44": {"version": "8", "sha256": "1c21nzky2sfrq8wkz26rn2gcyr81y1zb3r14pflwhl56f9bgbh0c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVzcHJlc3NvIGRpc2FibGVzIHRoZSB1c3VhbCBhdXRvIHN1c3BlbmQgYW5kIHNjcmVlbnNhdmVyIGZ1bmN0aW9uYWxpdHkgYW5kIG9wdGlvbmFsbHkgTmlnaHQgTGlnaHQgd2l0aCBvcHRpb25zIHRvIHNob3cgYW4gRXNwcmVzc28gaWNvbiBpbiB0aGUgdG9wIHBhbmVsLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBhIGZ1bGxzY3JlZW4gYXBwbGljYXRpb24gaXMgcnVubmluZywgdG8gcmVzdG9yZSBzdGF0ZSBhY3Jvc3MgcmVib290cywgdG8gcHJvdmlkZSBub3RpZmljYXRpb25zLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBzcGVjaWZpYyBhcHBsaWNhdGlvbnMgYXJlIHJ1bm5pbmcsIG9yIHRvIHBhdXNlIE5pZ2h0IExpZ2h0IHdoZW4gRXNwcmVzc28gaXMgZW5hYmxlZCBvciBvbmx5IHdoZW4gc3BlY2lmaWMgYXBwbGljYXRpb25zIGFyZSBydW5uaW5nLiBFc3ByZXNzbyBhbHNvIHByb3ZpZGVzIHNvbWUgc3VwcG9ydCBmb3IgZG9ja2luZyBzdGF0aW9ucyBpbmNsdWRpbmcgb3B0aW9ucyB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBjaGFyZ2luZyBhbmQvb3Igd2hlbiBkb2NrZWQgdG8gZXh0ZXJuYWwgbW9uaXRvcnMgYW5kIHRvIGFsbG93IHRlbXBvcmFyaWx5IG92ZXJyaWRpbmcgdGhlIGRvY2tpbmcgc3VwcG9ydCB3aXRob3V0IGFmZmVjdGluZyB0aGUgc3RvcmVkIHN0YXRlLlxuXG5Fc3ByZXNzbyBpcyBhIGZvcmsgb2YgdGhlIENhZmZlaW5lIGV4dGVuc2lvbi5cblxuUGxlYXNlIGxlYXZlIGZlZWRiYWNrIG9yIHJlcG9ydCBpc3N1ZXMgdGhyb3VnaCB0aGUgRXh0ZW5zaW9uIEhvbWVwYWdlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAibmFtZSI6ICJFc3ByZXNzbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lc3ByZXNzbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29hZG11bmtlZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tZXNwcmVzc28iLAogICJ1dWlkIjogImVzcHJlc3NvQGNvYWRtdW5rZWUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="},
-    "45": {"version": "9", "sha256": "11xhng0wczh5518yqnzqkkf3n1v84r7f9dgjpgmd1hvccnbsmjl3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVzcHJlc3NvIGRpc2FibGVzIHRoZSB1c3VhbCBhdXRvIHN1c3BlbmQgYW5kIHNjcmVlbnNhdmVyIGZ1bmN0aW9uYWxpdHkgYW5kIG9wdGlvbmFsbHkgTmlnaHQgTGlnaHQgd2l0aCBvcHRpb25zIHRvIHNob3cgYW4gRXNwcmVzc28gaWNvbiBpbiB0aGUgdG9wIHBhbmVsLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBhIGZ1bGxzY3JlZW4gYXBwbGljYXRpb24gaXMgcnVubmluZywgdG8gcmVzdG9yZSBzdGF0ZSBhY3Jvc3MgcmVib290cywgdG8gcHJvdmlkZSBub3RpZmljYXRpb25zLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBzcGVjaWZpYyBhcHBsaWNhdGlvbnMgYXJlIHJ1bm5pbmcsIG9yIHRvIHBhdXNlIE5pZ2h0IExpZ2h0IHdoZW4gRXNwcmVzc28gaXMgZW5hYmxlZCBvciBvbmx5IHdoZW4gc3BlY2lmaWMgYXBwbGljYXRpb25zIGFyZSBydW5uaW5nLiBFc3ByZXNzbyBhbHNvIHByb3ZpZGVzIHNvbWUgc3VwcG9ydCBmb3IgZG9ja2luZyBzdGF0aW9ucyBpbmNsdWRpbmcgb3B0aW9ucyB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBjaGFyZ2luZyBhbmQvb3Igd2hlbiBkb2NrZWQgdG8gZXh0ZXJuYWwgbW9uaXRvcnMgYW5kIHRvIGFsbG93IHRlbXBvcmFyaWx5IG92ZXJyaWRpbmcgdGhlIGRvY2tpbmcgc3VwcG9ydCB3aXRob3V0IGFmZmVjdGluZyB0aGUgc3RvcmVkIHN0YXRlLlxuXG5Fc3ByZXNzbyBpcyBhIGZvcmsgb2YgdGhlIENhZmZlaW5lIGV4dGVuc2lvbi5cblxuUGxlYXNlIGxlYXZlIGZlZWRiYWNrIG9yIHJlcG9ydCBpc3N1ZXMgdGhyb3VnaCB0aGUgRXh0ZW5zaW9uIEhvbWVwYWdlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAibmFtZSI6ICJFc3ByZXNzbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lc3ByZXNzbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2FkbXVua2VlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1lc3ByZXNzbyIsCiAgInV1aWQiOiAiZXNwcmVzc29AY29hZG11bmtlZS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="}
+    "45": {"version": "9", "sha256": "11xhng0wczh5518yqnzqkkf3n1v84r7f9dgjpgmd1hvccnbsmjl3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVzcHJlc3NvIGRpc2FibGVzIHRoZSB1c3VhbCBhdXRvIHN1c3BlbmQgYW5kIHNjcmVlbnNhdmVyIGZ1bmN0aW9uYWxpdHkgYW5kIG9wdGlvbmFsbHkgTmlnaHQgTGlnaHQgd2l0aCBvcHRpb25zIHRvIHNob3cgYW4gRXNwcmVzc28gaWNvbiBpbiB0aGUgdG9wIHBhbmVsLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBhIGZ1bGxzY3JlZW4gYXBwbGljYXRpb24gaXMgcnVubmluZywgdG8gcmVzdG9yZSBzdGF0ZSBhY3Jvc3MgcmVib290cywgdG8gcHJvdmlkZSBub3RpZmljYXRpb25zLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBzcGVjaWZpYyBhcHBsaWNhdGlvbnMgYXJlIHJ1bm5pbmcsIG9yIHRvIHBhdXNlIE5pZ2h0IExpZ2h0IHdoZW4gRXNwcmVzc28gaXMgZW5hYmxlZCBvciBvbmx5IHdoZW4gc3BlY2lmaWMgYXBwbGljYXRpb25zIGFyZSBydW5uaW5nLiBFc3ByZXNzbyBhbHNvIHByb3ZpZGVzIHNvbWUgc3VwcG9ydCBmb3IgZG9ja2luZyBzdGF0aW9ucyBpbmNsdWRpbmcgb3B0aW9ucyB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBjaGFyZ2luZyBhbmQvb3Igd2hlbiBkb2NrZWQgdG8gZXh0ZXJuYWwgbW9uaXRvcnMgYW5kIHRvIGFsbG93IHRlbXBvcmFyaWx5IG92ZXJyaWRpbmcgdGhlIGRvY2tpbmcgc3VwcG9ydCB3aXRob3V0IGFmZmVjdGluZyB0aGUgc3RvcmVkIHN0YXRlLlxuXG5Fc3ByZXNzbyBpcyBhIGZvcmsgb2YgdGhlIENhZmZlaW5lIGV4dGVuc2lvbi5cblxuUGxlYXNlIGxlYXZlIGZlZWRiYWNrIG9yIHJlcG9ydCBpc3N1ZXMgdGhyb3VnaCB0aGUgRXh0ZW5zaW9uIEhvbWVwYWdlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAibmFtZSI6ICJFc3ByZXNzbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lc3ByZXNzbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2FkbXVua2VlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1lc3ByZXNzbyIsCiAgInV1aWQiOiAiZXNwcmVzc29AY29hZG11bmtlZS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="},
+    "46": {"version": "10", "sha256": "0yd24zg16z9hwbsnfamq32qwr2drx8d2pp2d44m0xfhwrvkghxsm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVzcHJlc3NvIGRpc2FibGVzIHRoZSB1c3VhbCBhdXRvIHN1c3BlbmQgYW5kIHNjcmVlbnNhdmVyIGZ1bmN0aW9uYWxpdHkgYW5kIG9wdGlvbmFsbHkgTmlnaHQgTGlnaHQgd2l0aCBvcHRpb25zIHRvIHNob3cgYW4gRXNwcmVzc28gaWNvbiBpbiB0aGUgdG9wIHBhbmVsLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBhIGZ1bGxzY3JlZW4gYXBwbGljYXRpb24gaXMgcnVubmluZywgdG8gcmVzdG9yZSBzdGF0ZSBhY3Jvc3MgcmVib290cywgdG8gcHJvdmlkZSBub3RpZmljYXRpb25zLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBzcGVjaWZpYyBhcHBsaWNhdGlvbnMgYXJlIHJ1bm5pbmcsIG9yIHRvIHBhdXNlIE5pZ2h0IExpZ2h0IHdoZW4gRXNwcmVzc28gaXMgZW5hYmxlZCBvciBvbmx5IHdoZW4gc3BlY2lmaWMgYXBwbGljYXRpb25zIGFyZSBydW5uaW5nLiBFc3ByZXNzbyBhbHNvIHByb3ZpZGVzIHNvbWUgc3VwcG9ydCBmb3IgZG9ja2luZyBzdGF0aW9ucyBpbmNsdWRpbmcgb3B0aW9ucyB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBjaGFyZ2luZyBhbmQvb3Igd2hlbiBkb2NrZWQgdG8gZXh0ZXJuYWwgbW9uaXRvcnMgYW5kIHRvIGFsbG93IHRlbXBvcmFyaWx5IG92ZXJyaWRpbmcgdGhlIGRvY2tpbmcgc3VwcG9ydCB3aXRob3V0IGFmZmVjdGluZyB0aGUgc3RvcmVkIHN0YXRlLlxuXG5Fc3ByZXNzbyBpcyBhIGZvcmsgb2YgdGhlIENhZmZlaW5lIGV4dGVuc2lvbi5cblxuUGxlYXNlIGxlYXZlIGZlZWRiYWNrIG9yIHJlcG9ydCBpc3N1ZXMgdGhyb3VnaCB0aGUgRXh0ZW5zaW9uIEhvbWVwYWdlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAibmFtZSI6ICJFc3ByZXNzbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lc3ByZXNzbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2FkbXVua2VlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1lc3ByZXNzbyIsCiAgInV1aWQiOiAiZXNwcmVzc29AY29hZG11bmtlZS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}
   }}
 , {"uuid": "salat-dz@salat-dz.com", "name": "Salat Dz", "pname": "salat-dz", "description": "Show next salat using Salat Dz API", "link": "https://extensions.gnome.org/extension/4136/salat-dz/", "shell_version_map": {
     "38": {"version": "1", "sha256": "1kga5w2yp375h6lj3fmzr1agg43phyj5f45d7hjv04c405d32p8s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbmV4dCBzYWxhdCB1c2luZyBTYWxhdCBEeiBBUEkiLAogICJuYW1lIjogIlNhbGF0IER6IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL3NhbGF0LnB5dGhvbmFueXdoZXJlLmNvbSIsCiAgInV1aWQiOiAic2FsYXQtZHpAc2FsYXQtZHouY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}
@@ -3400,7 +3431,7 @@
     "40": {"version": "6", "sha256": "0pazjbi0aikpnvnfxyamqy70xi1xclydyxdkf908c6ybwnc5956z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmVzIHRoZSB3aW5kb3cgc3dpdGNoZXIgb24gZHVhbCAob3IgbW9yZSkgbW9uaXRvciBzZXR1cHMiLAogICJuYW1lIjogIk1vbml0b3Igd2luZG93IHN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZWR6ZXBwZWxpbi9tb25pdG9yLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAibW9uaXRvci13aW5kb3ctc3dpdGNoZXJAdGhlZnVuZ3Vzcm9ja2V0LmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="},
     "41": {"version": "6", "sha256": "0pazjbi0aikpnvnfxyamqy70xi1xclydyxdkf908c6ybwnc5956z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmVzIHRoZSB3aW5kb3cgc3dpdGNoZXIgb24gZHVhbCAob3IgbW9yZSkgbW9uaXRvciBzZXR1cHMiLAogICJuYW1lIjogIk1vbml0b3Igd2luZG93IHN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZWR6ZXBwZWxpbi9tb25pdG9yLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAibW9uaXRvci13aW5kb3ctc3dpdGNoZXJAdGhlZnVuZ3Vzcm9ja2V0LmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}
   }}
-, {"uuid": "custom-hot-corners-extended@G-dH.github.com", "name": "Custom Hot Corners - Extended", "pname": "custom-hot-corners-extended", "description": "Give a function to any corner or edge of your monitors and enhance your keyboard capabilities\n\nMouse pointer pressure, clicks, and scrolls over the monitor corners/edges, or custom keyboard shortcuts can trigger dozens of built-in actions that help you navigate and control your desktop environment or execute your own shell commands.\n\nA significant portion of available actions includes visual adjustments (contrast, brightness, opacity) and color filters (red, green, desaturation, lightness, color inversions) and also accessibility features.\n\nDo not update extensions from this site, GNOME Shell will do it automatically on the next session start.\n\nPlease report bugs on GitHub page linked below as Extension Homepage.\n\nkeywords: keyboard shortcut, switch windows, overview, app grid, command, brightness, contrast, transparent, opacity, color effect, invert lightness, color tint, color blind filter, simulation, desaturate, night lights, dark theme, volume, mute, magnifier, zoom, screen keyboard, reader, large text, force close, kill -9, show desktop, reorder workspace, window thumbnail, preview, looking glass, custom menu, window, workspace, switcher, hide panel", "link": "https://extensions.gnome.org/extension/4167/custom-hot-corners-extended/", "shell_version_map": {
+, {"uuid": "custom-hot-corners-extended@G-dH.github.com", "name": "CHC-E (Custom Hot Corners - Extended)", "pname": "custom-hot-corners-extended", "description": "Give a function to any corner or edge of your monitors and enhance your keyboard capabilities\n\nMouse pointer pressure, clicks, and scrolls over the monitor corners/edges, or custom keyboard shortcuts can trigger dozens of built-in actions that help you navigate and control your desktop environment or execute your own shell commands.\n\nA significant portion of available actions includes visual adjustments (contrast, brightness, opacity) and color filters (red, green, desaturation, lightness, color inversions) and also accessibility features.\n\nDo not update extensions from this site, GNOME Shell will do it automatically on the next session start.\n\nPlease report bugs on GitHub page linked below as Extension Homepage.\n\nkeywords: keyboard shortcut, switch windows, overview, app grid, command, brightness, contrast, transparent, opacity, color effect, invert lightness, color tint, color blind filter, simulation, desaturate, night lights, dark theme, volume, mute, magnifier, zoom, screen keyboard, reader, large text, force close, kill -9, show desktop, reorder workspace, window thumbnail, preview, looking glass, custom menu, window, workspace, switcher, hide panel", "link": "https://extensions.gnome.org/extension/4167/custom-hot-corners-extended/", "shell_version_map": {
     "38": {"version": "37", "sha256": "0jsnvrics52wq50y4bslix8kbpiwbkj56mjqh6mvqxfpk2a4mx94", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQgY2FwYWJpbGl0aWVzLlxuTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIG1vbml0b3IgY29ybmVycy9lZGdlcyBvciBjdXN0b20ga2V5Ym9hcmQgc2hvcnRjdXRzIGNhbiB0cmlnZ2VyIGFueSBvZiBkb3plbnMgYnVpbHQtaW4gYWN0aW9ucyB0aGF0IGhlbHBzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB5b3VyIGRlc2t0b3AgZW52aXJvbm1lbnQsIG9yIHlvdXIgb3duIHNoZWxsIGNvbW1hbmRzLlxuXG5TaWduaWZpY2FudCBwYXJ0IG9mIGF2YWlsYWJsZSBhY3Rpb25zIGFyZSB2aXN1YWwgYWRqdXN0bWVudHMgKGNvbnRyYXN0LCBicmlnaHRuZXNzLCBvcGFjaXR5KSBhbmQgY29sb3IgZmlsdGVycyAocmVkLCBncmVlbiwgZGVzYXR1cmF0ZSwgbGlnaHRuZXNzIGFuZCBjb2xvciBpbnZlcnNpb25zKSAsIGluY2x1ZGluZyBjb3JyZWN0aW9uIGZpbHRlcnMgZm9yIGNvbG9yYmxpbmQgdXNlcnMgYW5kIGNiIHNpbXVsYXRpb24gZmlsdGVycyBmb3IgZGV2ZWxvcGVycy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM3LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMiIKfQ=="},
     "40": {"version": "37", "sha256": "0jsnvrics52wq50y4bslix8kbpiwbkj56mjqh6mvqxfpk2a4mx94", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQgY2FwYWJpbGl0aWVzLlxuTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIG1vbml0b3IgY29ybmVycy9lZGdlcyBvciBjdXN0b20ga2V5Ym9hcmQgc2hvcnRjdXRzIGNhbiB0cmlnZ2VyIGFueSBvZiBkb3plbnMgYnVpbHQtaW4gYWN0aW9ucyB0aGF0IGhlbHBzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB5b3VyIGRlc2t0b3AgZW52aXJvbm1lbnQsIG9yIHlvdXIgb3duIHNoZWxsIGNvbW1hbmRzLlxuXG5TaWduaWZpY2FudCBwYXJ0IG9mIGF2YWlsYWJsZSBhY3Rpb25zIGFyZSB2aXN1YWwgYWRqdXN0bWVudHMgKGNvbnRyYXN0LCBicmlnaHRuZXNzLCBvcGFjaXR5KSBhbmQgY29sb3IgZmlsdGVycyAocmVkLCBncmVlbiwgZGVzYXR1cmF0ZSwgbGlnaHRuZXNzIGFuZCBjb2xvciBpbnZlcnNpb25zKSAsIGluY2x1ZGluZyBjb3JyZWN0aW9uIGZpbHRlcnMgZm9yIGNvbG9yYmxpbmQgdXNlcnMgYW5kIGNiIHNpbXVsYXRpb24gZmlsdGVycyBmb3IgZGV2ZWxvcGVycy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM3LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMiIKfQ=="},
     "41": {"version": "37", "sha256": "0jsnvrics52wq50y4bslix8kbpiwbkj56mjqh6mvqxfpk2a4mx94", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQgY2FwYWJpbGl0aWVzLlxuTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIG1vbml0b3IgY29ybmVycy9lZGdlcyBvciBjdXN0b20ga2V5Ym9hcmQgc2hvcnRjdXRzIGNhbiB0cmlnZ2VyIGFueSBvZiBkb3plbnMgYnVpbHQtaW4gYWN0aW9ucyB0aGF0IGhlbHBzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB5b3VyIGRlc2t0b3AgZW52aXJvbm1lbnQsIG9yIHlvdXIgb3duIHNoZWxsIGNvbW1hbmRzLlxuXG5TaWduaWZpY2FudCBwYXJ0IG9mIGF2YWlsYWJsZSBhY3Rpb25zIGFyZSB2aXN1YWwgYWRqdXN0bWVudHMgKGNvbnRyYXN0LCBicmlnaHRuZXNzLCBvcGFjaXR5KSBhbmQgY29sb3IgZmlsdGVycyAocmVkLCBncmVlbiwgZGVzYXR1cmF0ZSwgbGlnaHRuZXNzIGFuZCBjb2xvciBpbnZlcnNpb25zKSAsIGluY2x1ZGluZyBjb3JyZWN0aW9uIGZpbHRlcnMgZm9yIGNvbG9yYmxpbmQgdXNlcnMgYW5kIGNiIHNpbXVsYXRpb24gZmlsdGVycyBmb3IgZGV2ZWxvcGVycy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM3LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMiIKfQ=="},
@@ -3468,7 +3499,7 @@
     "38": {"version": "1", "sha256": "1awjnic8zca2f6viah2l4ai0pyfdyisxna9ys1zzpya11rwj6jk7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdGhhdCBhbGxvd3MgeW91IGRvIGhhdmUgaW5kZXBlbmRlbnQgYXBwIHN3aXRjaGVyIChhbHQtdGFiKSBmb3IgZWFjaCB3b3Jrc3BhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHJpdmF0ZS1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiUHJpdmF0ZSBTd2l0Y2hlciIsCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wcml2YXRlLXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tIiwKICAidXVpZCI6ICJwcml2YXRlLXN3aXRjaGVyQGR6aWJhbi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"},
     "40": {"version": "1", "sha256": "1awjnic8zca2f6viah2l4ai0pyfdyisxna9ys1zzpya11rwj6jk7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdGhhdCBhbGxvd3MgeW91IGRvIGhhdmUgaW5kZXBlbmRlbnQgYXBwIHN3aXRjaGVyIChhbHQtdGFiKSBmb3IgZWFjaCB3b3Jrc3BhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHJpdmF0ZS1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiUHJpdmF0ZSBTd2l0Y2hlciIsCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wcml2YXRlLXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tIiwKICAidXVpZCI6ICJwcml2YXRlLXN3aXRjaGVyQGR6aWJhbi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}
   }}
-, {"uuid": "colosseum@sereneblue", "name": "Colosseum", "pname": "colosseum", "description": "View live scores for your favorite sports teams.", "link": "https://extensions.gnome.org/extension/4207/colosseum/", "shell_version_map": {
+, {"uuid": "colosseum@sereneblue", "name": "Colosseum", "pname": "colosseum", "description": "View live scores for your favorite sports teams", "link": "https://extensions.gnome.org/extension/4207/colosseum/", "shell_version_map": {
     "40": {"version": "31", "sha256": "1c7753fyqqh8x3hnfahpqjwiqil8kirxcfkmm7z39pl7iairs0zs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvc3NldW0iLAogICJ1dWlkIjogImNvbG9zc2V1bUBzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMxCn0="},
     "41": {"version": "31", "sha256": "1c7753fyqqh8x3hnfahpqjwiqil8kirxcfkmm7z39pl7iairs0zs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvc3NldW0iLAogICJ1dWlkIjogImNvbG9zc2V1bUBzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMxCn0="},
     "42": {"version": "31", "sha256": "1c7753fyqqh8x3hnfahpqjwiqil8kirxcfkmm7z39pl7iairs0zs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvc3NldW0iLAogICJ1dWlkIjogImNvbG9zc2V1bUBzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMxCn0="},
@@ -3667,7 +3698,8 @@
     "42": {"version": "5", "sha256": "0hp3c7sq1kaxagiw88gm4rsqvi9mw83r3584sh8i7chrchjzdxxg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdlaWwvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bWJsZS1waW5nIiwKICAidXVpZCI6ICJtdW1ibGUtcGluZ0BtYXdlaWwuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="},
     "43": {"version": "5", "sha256": "0hp3c7sq1kaxagiw88gm4rsqvi9mw83r3584sh8i7chrchjzdxxg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdlaWwvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bWJsZS1waW5nIiwKICAidXVpZCI6ICJtdW1ibGUtcGluZ0BtYXdlaWwuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="},
     "44": {"version": "5", "sha256": "0hp3c7sq1kaxagiw88gm4rsqvi9mw83r3584sh8i7chrchjzdxxg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdlaWwvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bWJsZS1waW5nIiwKICAidXVpZCI6ICJtdW1ibGUtcGluZ0BtYXdlaWwuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="},
-    "45": {"version": "7", "sha256": "1fk0nrf7d95jrhav8dj54rnb845ynyqg2mry8vpiyfcwb3mgfl12", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hd2VpbC9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXVtYmxlLXBpbmciLAogICJ1dWlkIjogIm11bWJsZS1waW5nQG1hd2VpbC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}
+    "45": {"version": "7", "sha256": "1fk0nrf7d95jrhav8dj54rnb845ynyqg2mry8vpiyfcwb3mgfl12", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hd2VpbC9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXVtYmxlLXBpbmciLAogICJ1dWlkIjogIm11bWJsZS1waW5nQG1hd2VpbC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
+    "46": {"version": "9", "sha256": "1rcp6nrfqk4di4m7angbh36pr6as57d8wkrq5c7av04s6aml9lhc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hd2VpbC9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXVtYmxlLXBpbmciLAogICJ1dWlkIjogIm11bWJsZS1waW5nQG1hd2VpbC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="}
   }}
 , {"uuid": "simply.workspaces@andyrichardson.dev", "name": "Simply Workspaces", "pname": "simply-workspaces", "description": "Workspace indication with an i3/polybar style.", "link": "https://extensions.gnome.org/extension/4343/simply-workspaces/", "shell_version_map": {
     "40": {"version": "7", "sha256": "0s3a4pzmq6wycnwv0gn8sjiwqxa3csssb136c8srghdraicvq3f0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0aW9uIHdpdGggYW4gaTMvcG9seWJhciBzdHlsZS4iLAogICJuYW1lIjogIlNpbXBseSBXb3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FuZHlyaWNoYXJkc29uL3NpbXBseS13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJzaW1wbHkud29ya3NwYWNlc0BhbmR5cmljaGFyZHNvbi5kZXYiLAogICJ2ZXJzaW9uIjogNwp9"},
@@ -3722,10 +3754,10 @@
     "40": {"version": "19", "sha256": "1jagvd6a4xw0vm18qi6czfglp16bywms1y55vii2dwvb1xlm4sjz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV0ZG93bnRpbWVyLWRlbWluZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9EZW1pbmRlci9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQGRlbWluZGVyIiwKICAidmVyc2lvbiI6IDE5Cn0="},
     "41": {"version": "19", "sha256": "1jagvd6a4xw0vm18qi6czfglp16bywms1y55vii2dwvb1xlm4sjz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV0ZG93bnRpbWVyLWRlbWluZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9EZW1pbmRlci9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQGRlbWluZGVyIiwKICAidmVyc2lvbiI6IDE5Cn0="},
     "42": {"version": "31", "sha256": "1w0l81g1l21f9f6ga53dlp7y1wg5s1nxz67y990ywh9sp0n4dkac", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidXNlciIsCiAgICAidW5sb2NrLWRpYWxvZyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1dGRvd250aW1lci1kZW1pbmRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9EZW1pbmRlci9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQGRlbWluZGVyIiwKICAidmVyc2lvbiI6IDMxCn0="},
-    "43": {"version": "36", "sha256": "0f71payq0dvyyprrpl7yfzd5zq48kw26fd2vr36cjzcwrp9v6viz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidXNlciIsCiAgICAidW5sb2NrLWRpYWxvZyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1dGRvd250aW1lci1kZW1pbmRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRGVtaW5kZXIvU2h1dGRvd25UaW1lciIsCiAgInV1aWQiOiAiU2h1dGRvd25UaW1lckBkZW1pbmRlciIsCiAgInZlcnNpb24iOiAzNgp9"},
-    "44": {"version": "36", "sha256": "0f71payq0dvyyprrpl7yfzd5zq48kw26fd2vr36cjzcwrp9v6viz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidXNlciIsCiAgICAidW5sb2NrLWRpYWxvZyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1dGRvd250aW1lci1kZW1pbmRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRGVtaW5kZXIvU2h1dGRvd25UaW1lciIsCiAgInV1aWQiOiAiU2h1dGRvd25UaW1lckBkZW1pbmRlciIsCiAgInZlcnNpb24iOiAzNgp9"},
-    "45": {"version": "43", "sha256": "1yaj9rbkg4ijp4ki0x4qycfd28lmp4hjiyvgl71ldfsqqqaaqdbs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiU2h1dGRvd25UaW1lciIsCiAgIm5hbWUiOiAiU2h1dGRvd24gVGltZXIiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNodXRkb3dudGltZXItZGVtaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0RlbWluZGVyL1NodXRkb3duVGltZXIiLAogICJ1dWlkIjogIlNodXRkb3duVGltZXJAZGVtaW5kZXIiLAogICJ2ZXJzaW9uIjogNDMKfQ=="},
-    "46": {"version": "43", "sha256": "1yaj9rbkg4ijp4ki0x4qycfd28lmp4hjiyvgl71ldfsqqqaaqdbs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiU2h1dGRvd25UaW1lciIsCiAgIm5hbWUiOiAiU2h1dGRvd24gVGltZXIiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNodXRkb3dudGltZXItZGVtaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0RlbWluZGVyL1NodXRkb3duVGltZXIiLAogICJ1dWlkIjogIlNodXRkb3duVGltZXJAZGVtaW5kZXIiLAogICJ2ZXJzaW9uIjogNDMKfQ=="}
+    "43": {"version": "44", "sha256": "1r3c87nrpbf93b5clwm54f85hnp3xpbyi9faliq7p4l69w6hfkpk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidW5sb2NrLWRpYWxvZyIsCiAgICAidXNlciIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1dGRvd250aW1lci1kZW1pbmRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRGVtaW5kZXIvU2h1dGRvd25UaW1lciIsCiAgInV1aWQiOiAiU2h1dGRvd25UaW1lckBkZW1pbmRlciIsCiAgInZlcnNpb24iOiA0NAp9"},
+    "44": {"version": "44", "sha256": "1r3c87nrpbf93b5clwm54f85hnp3xpbyi9faliq7p4l69w6hfkpk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidW5sb2NrLWRpYWxvZyIsCiAgICAidXNlciIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1dGRvd250aW1lci1kZW1pbmRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRGVtaW5kZXIvU2h1dGRvd25UaW1lciIsCiAgInV1aWQiOiAiU2h1dGRvd25UaW1lckBkZW1pbmRlciIsCiAgInZlcnNpb24iOiA0NAp9"},
+    "45": {"version": "45", "sha256": "19s34qsbvynd6g0p917gnlabi45vy3an093lb7mnw658v9grskql", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiU2h1dGRvd25UaW1lciIsCiAgIm5hbWUiOiAiU2h1dGRvd24gVGltZXIiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNodXRkb3dudGltZXItZGVtaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0RlbWluZGVyL1NodXRkb3duVGltZXIiLAogICJ1dWlkIjogIlNodXRkb3duVGltZXJAZGVtaW5kZXIiLAogICJ2ZXJzaW9uIjogNDUKfQ=="},
+    "46": {"version": "45", "sha256": "19s34qsbvynd6g0p917gnlabi45vy3an093lb7mnw658v9grskql", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiU2h1dGRvd25UaW1lciIsCiAgIm5hbWUiOiAiU2h1dGRvd24gVGltZXIiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNodXRkb3dudGltZXItZGVtaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0RlbWluZGVyL1NodXRkb3duVGltZXIiLAogICJ1dWlkIjogIlNodXRkb3duVGltZXJAZGVtaW5kZXIiLAogICJ2ZXJzaW9uIjogNDUKfQ=="}
   }}
 , {"uuid": "docker_status2@gpouilloux", "name": "Docker Integration", "pname": "docker-integration", "description": "A status menu for managing docker containers.", "link": "https://extensions.gnome.org/extension/4374/docker-integration/", "shell_version_map": {
     "40": {"version": "1", "sha256": "1ia763h3wbc3d3p9ddb1b9rg5f486y5x3m2k4pblq9f9ca9cjrdy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIG1lbnUgZm9yIG1hbmFnaW5nIGRvY2tlciBjb250YWluZXJzLiIsCiAgIm5hbWUiOiAiRG9ja2VyIEludGVncmF0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ3BvdWlsbG91eC9nbm9tZS1zaGVsbC1leHRlbnNpb24tZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJfc3RhdHVzMkBncG91aWxsb3V4IiwKICAidmVyc2lvbiI6IDEKfQ=="}
@@ -3859,8 +3891,8 @@
     "42": {"version": "24", "sha256": "007yp741jl5n6bf1zi4h5w9zhbbm1gavzdgklmrwjj114r49dx2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXplZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuZm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlIGRlZmF1bHQgVGVybWluYWwgYW5kIFNvZnR3YXJlIGNlbnRlciBjYW4gYWxzbyBiZSBjaGFuZ2VkLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgLSBodHRwczovL2dpdGh1Yi5jb20vdG9mdXRlY2gvdG9mdW1lbnVcblxuVGhlIG9yaWdpbmFsIHByb2plY3QgaXMgbm8gbW9yZSBzdXBwb3J0ZWQgdGh1cyBJIG1hZGUgdGhpcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMjQsCiAgInZlcnNpb24tbmFtZSI6ICIyMC5sZWdhY3kiCn0="},
     "43": {"version": "24", "sha256": "007yp741jl5n6bf1zi4h5w9zhbbm1gavzdgklmrwjj114r49dx2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXplZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuZm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlIGRlZmF1bHQgVGVybWluYWwgYW5kIFNvZnR3YXJlIGNlbnRlciBjYW4gYWxzbyBiZSBjaGFuZ2VkLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgLSBodHRwczovL2dpdGh1Yi5jb20vdG9mdXRlY2gvdG9mdW1lbnVcblxuVGhlIG9yaWdpbmFsIHByb2plY3QgaXMgbm8gbW9yZSBzdXBwb3J0ZWQgdGh1cyBJIG1hZGUgdGhpcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMjQsCiAgInZlcnNpb24tbmFtZSI6ICIyMC5sZWdhY3kiCn0="},
     "44": {"version": "24", "sha256": "007yp741jl5n6bf1zi4h5w9zhbbm1gavzdgklmrwjj114r49dx2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXplZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuZm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlIGRlZmF1bHQgVGVybWluYWwgYW5kIFNvZnR3YXJlIGNlbnRlciBjYW4gYWxzbyBiZSBjaGFuZ2VkLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgLSBodHRwczovL2dpdGh1Yi5jb20vdG9mdXRlY2gvdG9mdW1lbnVcblxuVGhlIG9yaWdpbmFsIHByb2plY3QgaXMgbm8gbW9yZSBzdXBwb3J0ZWQgdGh1cyBJIG1hZGUgdGhpcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMjQsCiAgInZlcnNpb24tbmFtZSI6ICIyMC5sZWdhY3kiCn0="},
-    "45": {"version": "29", "sha256": "06ws3pv2yw9vb2qc97b7pd622a7dvamflvd19pr5633wsagd8sza", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXNlZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuRm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlICdBY3Rpdml0aWVzJyBpbmRpY2F0b3IgaXMgaGlkZGVuIGJ5IGRlZmF1bHQgYnV0IGNhbiBiZSBlbmFibGVkIHRocm91Z2ggc2V0dGluZ3MuXG5cblRoZSBkZWZhdWx0IFRlcm1pbmFsIGFuZCBTb2Z0d2FyZSBjZW50cmUgY2FuIGFsc28gYmUgY2hhbmdlZC5cblxuIEZvcmNlIFF1aXQgd29ya3Mgb24gV2F5bGFuZCBhbmQgWG9yZyIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAiYXJ5YW4yMCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMjksCiAgInZlcnNpb24tbmFtZSI6ICIyMi40Igp9"},
-    "46": {"version": "29", "sha256": "06ws3pv2yw9vb2qc97b7pd622a7dvamflvd19pr5633wsagd8sza", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXNlZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuRm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlICdBY3Rpdml0aWVzJyBpbmRpY2F0b3IgaXMgaGlkZGVuIGJ5IGRlZmF1bHQgYnV0IGNhbiBiZSBlbmFibGVkIHRocm91Z2ggc2V0dGluZ3MuXG5cblRoZSBkZWZhdWx0IFRlcm1pbmFsIGFuZCBTb2Z0d2FyZSBjZW50cmUgY2FuIGFsc28gYmUgY2hhbmdlZC5cblxuIEZvcmNlIFF1aXQgd29ya3Mgb24gV2F5bGFuZCBhbmQgWG9yZyIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAiYXJ5YW4yMCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMjksCiAgInZlcnNpb24tbmFtZSI6ICIyMi40Igp9"}
+    "45": {"version": "30", "sha256": "0jg3c8xi4vnwx7gwzmvjz4hly7b6gdgqy2r5ln40gng55yxf2sbx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXNlZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuRm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlICdBY3Rpdml0aWVzJyBpbmRpY2F0b3IgaXMgaGlkZGVuIGJ5IGRlZmF1bHQgYnV0IGNhbiBiZSBlbmFibGVkIHRocm91Z2ggc2V0dGluZ3MuXG5cblRoZSBkZWZhdWx0IFRlcm1pbmFsIGFuZCBTb2Z0d2FyZSBjZW50cmUgY2FuIGFsc28gYmUgY2hhbmdlZC5cblxuIEZvcmNlIFF1aXQgd29ya3Mgb24gV2F5bGFuZCBhbmQgWG9yZyIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAiYXJ5YW4yMCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMzAsCiAgInZlcnNpb24tbmFtZSI6ICIyMi42Igp9"},
+    "46": {"version": "30", "sha256": "0jg3c8xi4vnwx7gwzmvjz4hly7b6gdgqy2r5ln40gng55yxf2sbx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXNlZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuRm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlICdBY3Rpdml0aWVzJyBpbmRpY2F0b3IgaXMgaGlkZGVuIGJ5IGRlZmF1bHQgYnV0IGNhbiBiZSBlbmFibGVkIHRocm91Z2ggc2V0dGluZ3MuXG5cblRoZSBkZWZhdWx0IFRlcm1pbmFsIGFuZCBTb2Z0d2FyZSBjZW50cmUgY2FuIGFsc28gYmUgY2hhbmdlZC5cblxuIEZvcmNlIFF1aXQgd29ya3Mgb24gV2F5bGFuZCBhbmQgWG9yZyIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAiYXJ5YW4yMCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMzAsCiAgInZlcnNpb24tbmFtZSI6ICIyMi42Igp9"}
   }}
 , {"uuid": "rog-manager@rog", "name": "Rog Asus Manager", "pname": "rog-asus-manager", "description": "Asus ROG manager", "link": "https://extensions.gnome.org/extension/4452/rog-asus-manager/", "shell_version_map": {
     "38": {"version": "4", "sha256": "194k3qzjd05rki20ww0nv8001aiyp4ih9abv82g64058x8rmnff5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFzdXMgUk9HIG1hbmFnZXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJyb2ctbWFuYWdlciIsCiAgIm5hbWUiOiAiUm9nIEFzdXMgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yb2dtYW5hZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxlamFuZHJvLW1vdXJhcy9yb2ctbWFuYWdlciIsCiAgInV1aWQiOiAicm9nLW1hbmFnZXJAcm9nIiwKICAidmVyc2lvbiI6IDQKfQ=="}
@@ -3977,14 +4009,14 @@
     "40": {"version": "3", "sha256": "1mgvpzzfdzn5qsxwz5911a8qgq0r34az6xpmqr72ksx6yf13l85z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIHRvIHByZXZlbnQgYXJ0aWZhY3RzIHdoZW4gaW4gZnVsbHNjcmVlbi5cblxuVGhpcyB2ZXJzaW9uIG1ha2VzIHN1cmUgdGhlIHVucmVkaXJlY3Qgb3B0aW9uIGlzIG5vdCByZS1lbmFibGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIHNoZWxsLiIsCiAgIm5hbWUiOiAiRGlzYWJsZSB1bnJlZGlyZWN0IGZ1bGxzY3JlZW4gd2luZG93cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiS2F6aW1pZXJhcyBWYWluYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAYXVuZXR4IiwKICAidmVyc2lvbiI6IDMKfQ=="},
     "41": {"version": "3", "sha256": "1mgvpzzfdzn5qsxwz5911a8qgq0r34az6xpmqr72ksx6yf13l85z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIHRvIHByZXZlbnQgYXJ0aWZhY3RzIHdoZW4gaW4gZnVsbHNjcmVlbi5cblxuVGhpcyB2ZXJzaW9uIG1ha2VzIHN1cmUgdGhlIHVucmVkaXJlY3Qgb3B0aW9uIGlzIG5vdCByZS1lbmFibGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIHNoZWxsLiIsCiAgIm5hbWUiOiAiRGlzYWJsZSB1bnJlZGlyZWN0IGZ1bGxzY3JlZW4gd2luZG93cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiS2F6aW1pZXJhcyBWYWluYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAYXVuZXR4IiwKICAidmVyc2lvbiI6IDMKfQ=="}
   }}
-, {"uuid": "nepali-date@biplab", "name": "Nepali Date", "pname": "nepali-calendar", "description": "Shows nepali date on the panel.", "link": "https://extensions.gnome.org/extension/4518/nepali-calendar/", "shell_version_map": {
+, {"uuid": "nepali-date@biplab", "name": "Nepali Date", "pname": "nepali-calendar", "description": "Shows nepali date on the top status area.", "link": "https://extensions.gnome.org/extension/4518/nepali-calendar/", "shell_version_map": {
     "40": {"version": "18", "sha256": "13pg4lzqpa7m7qhdrqw5vlnjaqc843cxyinygg197lafgx10ya1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAxOAp9"},
     "41": {"version": "18", "sha256": "13pg4lzqpa7m7qhdrqw5vlnjaqc843cxyinygg197lafgx10ya1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAxOAp9"},
     "42": {"version": "18", "sha256": "13pg4lzqpa7m7qhdrqw5vlnjaqc843cxyinygg197lafgx10ya1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAxOAp9"},
     "43": {"version": "18", "sha256": "13pg4lzqpa7m7qhdrqw5vlnjaqc843cxyinygg197lafgx10ya1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAxOAp9"},
     "44": {"version": "18", "sha256": "13pg4lzqpa7m7qhdrqw5vlnjaqc843cxyinygg197lafgx10ya1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAxOAp9"},
-    "45": {"version": "30", "sha256": "0mjy8fjnj4faazawwg9ckl16fl6xs98m4vl22panjajsh9fqqsck", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAzMAp9"},
-    "46": {"version": "30", "sha256": "0mjy8fjnj4faazawwg9ckl16fl6xs98m4vl22panjajsh9fqqsck", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAzMAp9"}
+    "45": {"version": "31", "sha256": "1phng3s99zh2ykk78qfl936sin5v7y5dzghrpq7q3bqxnyf6xias", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSB0b3Agc3RhdHVzIGFyZWEuIiwKICAibmFtZSI6ICJOZXBhbGkgRGF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmlwbGFiLUR1dHRhL05lcGFsaV9EYXRlIiwKICAidXVpZCI6ICJuZXBhbGktZGF0ZUBiaXBsYWIiLAogICJ2ZXJzaW9uIjogMzEKfQ=="},
+    "46": {"version": "31", "sha256": "1phng3s99zh2ykk78qfl936sin5v7y5dzghrpq7q3bqxnyf6xias", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSB0b3Agc3RhdHVzIGFyZWEuIiwKICAibmFtZSI6ICJOZXBhbGkgRGF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmlwbGFiLUR1dHRhL05lcGFsaV9EYXRlIiwKICAidXVpZCI6ICJuZXBhbGktZGF0ZUBiaXBsYWIiLAogICJ2ZXJzaW9uIjogMzEKfQ=="}
   }}
 , {"uuid": "clock-left@mapuut", "name": "Clock Left", "pname": "clock-left", "description": "Moves clock to left.\n\nAlso this one might suit you better: extensions.gnome.org/extension/4667/left-clock/", "link": "https://extensions.gnome.org/extension/4526/clock-left/", "shell_version_map": {
     "38": {"version": "4", "sha256": "0hvr7nmbrn7nqn3nk9p1a659yhkgja3gy9kbw18yykyqf0lbssqn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIGNsb2NrIHRvIGxlZnQuXG5cbkFsc28gdGhpcyBvbmUgbWlnaHQgc3VpdCB5b3UgYmV0dGVyOiBleHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDY2Ny9sZWZ0LWNsb2NrLyIsCiAgIm5hbWUiOiAiQ2xvY2sgTGVmdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJjbG9jay1sZWZ0QG1hcHV1dCIsCiAgInZlcnNpb24iOiA0Cn0="},
@@ -4011,7 +4043,8 @@
     "42": {"version": "4", "sha256": "01ia6ycy4crmc7b9ckwbaqlz4kl3adj1is9036n1y1676696slhb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9oaWRlIHZvbHVtZSBpbmRpY2F0b3Igd2hlbiBtdXRlZCIsCiAgIm5hbWUiOiAiQXV0b2hpZGUgVm9sdW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vdDE4NDI1Ni9nbm9tZS1zaGVsbC1leHRlbnNpb24tYXV0b2hpZGUtdm9sdW1lIiwKICAidXVpZCI6ICJhdXRvaGlkZS12b2x1bWVAdW5ib2lsZWQuaW5mbyIsCiAgInZlcnNpb24iOiA0Cn0="},
     "43": {"version": "4", "sha256": "01ia6ycy4crmc7b9ckwbaqlz4kl3adj1is9036n1y1676696slhb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9oaWRlIHZvbHVtZSBpbmRpY2F0b3Igd2hlbiBtdXRlZCIsCiAgIm5hbWUiOiAiQXV0b2hpZGUgVm9sdW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vdDE4NDI1Ni9nbm9tZS1zaGVsbC1leHRlbnNpb24tYXV0b2hpZGUtdm9sdW1lIiwKICAidXVpZCI6ICJhdXRvaGlkZS12b2x1bWVAdW5ib2lsZWQuaW5mbyIsCiAgInZlcnNpb24iOiA0Cn0="},
     "44": {"version": "4", "sha256": "01ia6ycy4crmc7b9ckwbaqlz4kl3adj1is9036n1y1676696slhb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9oaWRlIHZvbHVtZSBpbmRpY2F0b3Igd2hlbiBtdXRlZCIsCiAgIm5hbWUiOiAiQXV0b2hpZGUgVm9sdW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vdDE4NDI1Ni9nbm9tZS1zaGVsbC1leHRlbnNpb24tYXV0b2hpZGUtdm9sdW1lIiwKICAidXVpZCI6ICJhdXRvaGlkZS12b2x1bWVAdW5ib2lsZWQuaW5mbyIsCiAgInZlcnNpb24iOiA0Cn0="},
-    "45": {"version": "7", "sha256": "07z3mi3h0azivfhmkl1d92swg66pi8k8mwab1gli96c679zpjbd9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9oaWRlIHZvbHVtZSBpbmRpY2F0b3Igd2hlbiBtdXRlZCIsCiAgIm5hbWUiOiAiQXV0b2hpZGUgVm9sdW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vdDE4NDI1Ni9nbm9tZS1zaGVsbC1leHRlbnNpb24tYXV0b2hpZGUtdm9sdW1lIiwKICAidXVpZCI6ICJhdXRvaGlkZS12b2x1bWVAdW5ib2lsZWQuaW5mbyIsCiAgInZlcnNpb24iOiA3Cn0="}
+    "45": {"version": "8", "sha256": "0bilgzcx86id89glf0jrk232jfmv3vxgh9la62r65l0c79ixngda", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9oaWRlIHZvbHVtZSBpbmRpY2F0b3Igd2hlbiBtdXRlZCIsCiAgIm5hbWUiOiAiQXV0b2hpZGUgVm9sdW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHA6Ly9naXRodWIuY29tL3QxODQyNTYvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWF1dG9oaWRlLXZvbHVtZSIsCiAgInV1aWQiOiAiYXV0b2hpZGUtdm9sdW1lQHVuYm9pbGVkLmluZm8iLAogICJ2ZXJzaW9uIjogOAp9"},
+    "46": {"version": "8", "sha256": "0bilgzcx86id89glf0jrk232jfmv3vxgh9la62r65l0c79ixngda", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9oaWRlIHZvbHVtZSBpbmRpY2F0b3Igd2hlbiBtdXRlZCIsCiAgIm5hbWUiOiAiQXV0b2hpZGUgVm9sdW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHA6Ly9naXRodWIuY29tL3QxODQyNTYvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWF1dG9oaWRlLXZvbHVtZSIsCiAgInV1aWQiOiAiYXV0b2hpZGUtdm9sdW1lQHVuYm9pbGVkLmluZm8iLAogICJ2ZXJzaW9uIjogOAp9"}
   }}
 , {"uuid": "cloudflare@adam.gadmz", "name": "Cloudflare", "pname": "cloudflare", "description": "Warp Connect", "link": "https://extensions.gnome.org/extension/4542/cloudflare/", "shell_version_map": {
     "38": {"version": "10", "sha256": "0lr2g0hmaw7v4h538rg3mxmnds8nnmbs0h0k816s4dkwmx45pyb5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBZGFtIiwKICAiZGVzY3JpcHRpb24iOiAiV2FycCBDb25uZWN0IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNsb3VkZmxhcmUiLAogICJuYW1lIjogIkNsb3VkZmxhcmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kdW9uZ2dpYWtoYW5oYi9DbG91ZGZsYXJlX0dOT01FX0V4dGVuc2lvbiIsCiAgInV1aWQiOiAiY2xvdWRmbGFyZUBhZGFtLmdhZG16IiwKICAidmVyc2lvbiI6IDEwCn0="},
@@ -4324,14 +4357,15 @@
     "44": {"version": "7", "sha256": "0bi73fpvkfj3y6f440fw5xv1294szhisa2qyzz4rwh7n4n49xhqf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvY3VzIHRoZSBwcmltYXJ5IG1vbml0b3IgYWZ0ZXIgc3dpdGNoaW5nIHdvcmtzcGFjZXMgdmlhIGtleWJvYXJkIiwKICAibmFtZSI6ICJGb2N1cyBGb2xsb3dzIFdvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RvcGhlci1sL2ZvY3VzLWZvbGxvd3Mtd29ya3NwYWNlIiwKICAidXVpZCI6ICJmb2N1cy1mb2xsb3dzLXdvcmtzcGFjZUBjaHJpc3RvcGhlci5sdWViYmVtZWllci5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNwp9"},
     "45": {"version": "9", "sha256": "0g9jylkxx2wwknbh38ir7hfx440b5jm2lgxip0xl878flgi2wffj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvY3VzIHRoZSBwcmltYXJ5IG1vbml0b3IgYWZ0ZXIgc3dpdGNoaW5nIHdvcmtzcGFjZXMgdmlhIGtleWJvYXJkIiwKICAibmFtZSI6ICJGb2N1cyBGb2xsb3dzIFdvcmtzcGFjZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mb2N1cy1mb2xsb3dzLXdvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RvcGhlci1sL2ZvY3VzLWZvbGxvd3Mtd29ya3NwYWNlIiwKICAidXVpZCI6ICJmb2N1cy1mb2xsb3dzLXdvcmtzcGFjZUBjaHJpc3RvcGhlci5sdWViYmVtZWllci5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}
   }}
-, {"uuid": "pip-on-top@rafostar.github.com", "name": "PiP on top", "pname": "pip-on-top", "description": "Makes \"Picture-in-Picture\" windows stay on top (even on Wayland session). Compatible with Firefox and Clapper media player.", "link": "https://extensions.gnome.org/extension/4691/pip-on-top/", "shell_version_map": {
+, {"uuid": "pip-on-top@rafostar.github.com", "name": "PiP on top", "pname": "pip-on-top", "description": "Makes \"Picture-in-Picture\" windows stay on top (even on Wayland session). Compatible with Firefox, but may work with few other browsers too.", "link": "https://extensions.gnome.org/extension/4691/pip-on-top/", "shell_version_map": {
     "38": {"version": "2", "sha256": "1920nd7dr2159606mlv3c4fkambw1yx0a65rr961qx3w6jwd1pym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYWZvc3Rhci9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGlwLW9uLXRvcCIsCiAgInV1aWQiOiAicGlwLW9uLXRvcEByYWZvc3Rhci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
     "40": {"version": "2", "sha256": "1920nd7dr2159606mlv3c4fkambw1yx0a65rr961qx3w6jwd1pym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYWZvc3Rhci9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGlwLW9uLXRvcCIsCiAgInV1aWQiOiAicGlwLW9uLXRvcEByYWZvc3Rhci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
     "41": {"version": "2", "sha256": "1920nd7dr2159606mlv3c4fkambw1yx0a65rr961qx3w6jwd1pym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYWZvc3Rhci9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGlwLW9uLXRvcCIsCiAgInV1aWQiOiAicGlwLW9uLXRvcEByYWZvc3Rhci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
     "42": {"version": "6", "sha256": "1112q0wmsk142n1nq9id0hah3y3dfq9y2p65ggagyxl52yk34l6b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYWZvc3Rhci9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGlwLW9uLXRvcCIsCiAgInV1aWQiOiAicGlwLW9uLXRvcEByYWZvc3Rhci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="},
     "43": {"version": "6", "sha256": "1112q0wmsk142n1nq9id0hah3y3dfq9y2p65ggagyxl52yk34l6b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYWZvc3Rhci9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGlwLW9uLXRvcCIsCiAgInV1aWQiOiAicGlwLW9uLXRvcEByYWZvc3Rhci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="},
     "44": {"version": "6", "sha256": "1112q0wmsk142n1nq9id0hah3y3dfq9y2p65ggagyxl52yk34l6b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYWZvc3Rhci9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGlwLW9uLXRvcCIsCiAgInV1aWQiOiAicGlwLW9uLXRvcEByYWZvc3Rhci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="},
-    "45": {"version": "7", "sha256": "17clr1f3zwc0wz5y7536d5j39wbxfbqzd4cy2jyjyx9lm4cmpb8x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmFmb3N0YXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXBpcC1vbi10b3AiLAogICJ1dWlkIjogInBpcC1vbi10b3BAcmFmb3N0YXIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}
+    "45": {"version": "8", "sha256": "1gwn5wgqhz2nh8icj1byv7kgs8sk16mkzmj2zf7y0svprbl5vf7n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCwgYnV0IG1heSB3b3JrIHdpdGggZmV3IG90aGVyIGJyb3dzZXJzIHRvby4iLAogICJleHRlbnNpb24taWQiOiAicGlwLW9uLXRvcCIsCiAgImdldHRleHQtZG9tYWluIjogInBpcC1vbi10b3AiLAogICJuYW1lIjogIlBpUCBvbiB0b3AiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGlwLW9uLXRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmFmb3N0YXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXBpcC1vbi10b3AiLAogICJ1dWlkIjogInBpcC1vbi10b3BAcmFmb3N0YXIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="},
+    "46": {"version": "8", "sha256": "1gwn5wgqhz2nh8icj1byv7kgs8sk16mkzmj2zf7y0svprbl5vf7n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCwgYnV0IG1heSB3b3JrIHdpdGggZmV3IG90aGVyIGJyb3dzZXJzIHRvby4iLAogICJleHRlbnNpb24taWQiOiAicGlwLW9uLXRvcCIsCiAgImdldHRleHQtZG9tYWluIjogInBpcC1vbi10b3AiLAogICJuYW1lIjogIlBpUCBvbiB0b3AiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGlwLW9uLXRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmFmb3N0YXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXBpcC1vbi10b3AiLAogICJ1dWlkIjogInBpcC1vbi10b3BAcmFmb3N0YXIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}
   }}
 , {"uuid": "roundedSystemMenuButtons@pratap.fastmail.fm", "name": "Rounded System Menu Buttons", "pname": "rounded-system-menu-buttons", "description": "Rounded System Menu Buttons", "link": "https://extensions.gnome.org/extension/4693/rounded-system-menu-buttons/", "shell_version_map": {
     "38": {"version": "17", "sha256": "1cwjyw4sc4i4vdm458qdnjzvmiqyz9vscicwarsd9cvik57p44f5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJvdW5kZWQgU3lzdGVtIE1lbnUgQnV0dG9ucyIsCiAgIm5hbWUiOiAiUm91bmRlZCBTeXN0ZW0gTWVudSBCdXR0b25zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnJvdW5kLXN5c3RlbS1tZW51LWJ1dHRvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9yb3VuZGVkLXN5c3RlbS1tZW51LWJ1dHRvbnMiLAogICJ1dWlkIjogInJvdW5kZWRTeXN0ZW1NZW51QnV0dG9uc0BwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
@@ -4441,14 +4475,14 @@
     "45": {"version": "26", "sha256": "050inkl5y31xgl5lgw03yd8gi7sdcclk53g64dckrmr289zl6khp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNtYXJ0IEF1dG8gTW92ZSBsZWFybnMgdGhlIHBvc2l0aW9uLCBzaXplLCBhbmQgd29ya3NwYWNlIG9mIHlvdXIgYXBwbGljYXRpb24gd2luZG93cyBhbmQgcmVzdG9yZXMgdGhlbSBvbiBzdWJzZXF1ZW50IGxhdW5jaGVzLiBTdXBwb3J0cyBXYXlsYW5kLlxuXG5OT1RFOiBPcHRpbWl6ZWQgZm9yIHVzZSB3aXRoIHN0YXRpYyB3b3Jrc3BhY2VzLiBGb3IgbW9yZSBjb250cm9sLCBzZXQgdGhlIGRlZmF1bHQgYmVoYXZpb3IgdG8gSUdOT1JFIGFuZCB0aGVuIHNlbGVjdGl2ZWx5IFJFU1RPUkUgb25seSBkZXNpcmVkIGFwcHMuXG5cbktOT1dOIElTU1VFUzogTXVsdGktbW9uaXRvciAgaXMgbm90IHlldCB3ZWxsIHN1cHBvcnRlZC4gWW91IG1heSBuZWVkIHRvIG1hbnVhbGx5IGRlbGV0ZSBTYXZlZCBXaW5kb3dzIGluIHByZWZlcmVuY2VzIGFmdGVyIGFkZGluZyBvciByZW1vdmluZyBhIGRpc3BsYXkuIiwKICAibmFtZSI6ICJTbWFydCBBdXRvIE1vdmUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAia2hpbWFyb3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc21hcnQtYXV0by1tb3ZlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9raGltYXJvcy9zbWFydC1hdXRvLW1vdmUiLAogICJ1dWlkIjogInNtYXJ0LWF1dG8tbW92ZUBraGltYXJvcy5jb20iLAogICJ2ZXJzaW9uIjogMjYKfQ=="},
     "46": {"version": "26", "sha256": "050inkl5y31xgl5lgw03yd8gi7sdcclk53g64dckrmr289zl6khp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNtYXJ0IEF1dG8gTW92ZSBsZWFybnMgdGhlIHBvc2l0aW9uLCBzaXplLCBhbmQgd29ya3NwYWNlIG9mIHlvdXIgYXBwbGljYXRpb24gd2luZG93cyBhbmQgcmVzdG9yZXMgdGhlbSBvbiBzdWJzZXF1ZW50IGxhdW5jaGVzLiBTdXBwb3J0cyBXYXlsYW5kLlxuXG5OT1RFOiBPcHRpbWl6ZWQgZm9yIHVzZSB3aXRoIHN0YXRpYyB3b3Jrc3BhY2VzLiBGb3IgbW9yZSBjb250cm9sLCBzZXQgdGhlIGRlZmF1bHQgYmVoYXZpb3IgdG8gSUdOT1JFIGFuZCB0aGVuIHNlbGVjdGl2ZWx5IFJFU1RPUkUgb25seSBkZXNpcmVkIGFwcHMuXG5cbktOT1dOIElTU1VFUzogTXVsdGktbW9uaXRvciAgaXMgbm90IHlldCB3ZWxsIHN1cHBvcnRlZC4gWW91IG1heSBuZWVkIHRvIG1hbnVhbGx5IGRlbGV0ZSBTYXZlZCBXaW5kb3dzIGluIHByZWZlcmVuY2VzIGFmdGVyIGFkZGluZyBvciByZW1vdmluZyBhIGRpc3BsYXkuIiwKICAibmFtZSI6ICJTbWFydCBBdXRvIE1vdmUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAia2hpbWFyb3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc21hcnQtYXV0by1tb3ZlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9raGltYXJvcy9zbWFydC1hdXRvLW1vdmUiLAogICJ1dWlkIjogInNtYXJ0LWF1dG8tbW92ZUBraGltYXJvcy5jb20iLAogICJ2ZXJzaW9uIjogMjYKfQ=="}
   }}
-, {"uuid": "hplip-menu2@grizzlysmit.smit.id.au", "name": "Alternate Menu for Hplip2", "pname": "alternate-menu-for-hplip2", "description": "control your hp printers by calling the device manager hp-toolbox, also some useful links\nMotivation: the hp-systray doesn't work reliably under gnome shell\nyou need to have installed hplip in order to use this\nChoice of using a printer icon or a hp_logo.png if it's installed in the same place as mine on Ubuntu\nyou could use symbolic links to fake the path.\nThis is a replacement for the old \"Alternate Menu for Hplip\" which doesn't work under the new Gome-Shell I have cleaned it up a bit and it has a few new menu's but it is still basically the same thing.\n Added even more menus all most all system settings ones.\n\nNote: the menu will be too big if your resolution is way too low like 800x600 I have no soln for this just now.\n\nDutch language support added by Vistaus (Heimen Stoffels) https://github.com/Vistaus\n\nyou'll need to restart gnome-shell after upgrades so either reboot,\nlog out and back in again, or if your using X11 then alt+F2 then run r", "link": "https://extensions.gnome.org/extension/4739/alternate-menu-for-hplip2/", "shell_version_map": {
+, {"uuid": "hplip-menu2@grizzlysmit.smit.id.au", "name": "Alternate Menu for Hplip2", "pname": "alternate-menu-for-hplip2", "description": "control your hp printers by calling the device manager hp-toolbox, also some useful links\nMotivation: the hp-systray doesn't work reliably under gnome shell\nyou need to have installed hplip in order to use this\nChoice of using a printer icon or a hp_logo.png if it's installed in the same place as mine on Ubuntu\nyou could use symbolic links to fake the path.\nThis is a replacement for the old \"Alternate Menu for Hplip\" which doesn't work under the new Gome-Shell I have cleaned it up a bit and it has a few new menu's but it is still basically the same thing.\n Added even more menus all most all system settings ones.\n\nNew: the menu will be too big if your resolution is way too low like 800x600 I have implemented a compact option in the settings, if you use it the menu will become a two colomn compact format and will fit even on such a low resolution.\n\nDutch language support added by Vistaus (Heimen Stoffels) https://github.com/Vistaus\n\nyou'll need to restart gnome-shell after upgrades so either reboot,\nlog out and back in again, or if your using X11 then alt+F2 then run r", "link": "https://extensions.gnome.org/extension/4739/alternate-menu-for-hplip2/", "shell_version_map": {
     "40": {"version": "11", "sha256": "19h44pn5afqc89vn5xjrhmd375651zhf2w78cs8fgazp7pc0hsr6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWRpdHMiOiAiKEMpIEZyYW5jaXMgR3JpenpseSBTbWl0XG5cbkR1dGNoIHRyYW5zbGF0aW9uIFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxuTGljZW5jZSBHUEwgdjIrXG5cbiIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy5cblxuRHV0Y2ggbGFuZ3VhZ2Ugc3VwcG9ydCBhZGRlZCBieSBWaXN0YXVzIChIZWltZW4gU3RvZmZlbHMpIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXN0YXVzXG5cbnlvdSdsbCBuZWVkIHRvIHJlc3RhcnQgZ25vbWUtc2hlbGwgYWZ0ZXIgdXBncmFkZXMgc28gZWl0aGVyIHJlYm9vdCxcbmxvZyBvdXQgYW5kIGJhY2sgaW4gYWdhaW4sIG9yIGlmIHlvdXIgdXNpbmcgWDExIHRoZW4gYWx0K0YyIHRoZW4gcnVuIHIiLAogICJuYW1lIjogIkFsdGVybmF0ZSBNZW51IGZvciBIcGxpcDIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaHBsaXAtbWVudTIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dyaXp6bHlzbWl0L2hwbGlwLW1lbnUyLWdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ1dWlkIjogImhwbGlwLW1lbnUyQGdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
     "41": {"version": "11", "sha256": "19h44pn5afqc89vn5xjrhmd375651zhf2w78cs8fgazp7pc0hsr6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWRpdHMiOiAiKEMpIEZyYW5jaXMgR3JpenpseSBTbWl0XG5cbkR1dGNoIHRyYW5zbGF0aW9uIFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxuTGljZW5jZSBHUEwgdjIrXG5cbiIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy5cblxuRHV0Y2ggbGFuZ3VhZ2Ugc3VwcG9ydCBhZGRlZCBieSBWaXN0YXVzIChIZWltZW4gU3RvZmZlbHMpIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXN0YXVzXG5cbnlvdSdsbCBuZWVkIHRvIHJlc3RhcnQgZ25vbWUtc2hlbGwgYWZ0ZXIgdXBncmFkZXMgc28gZWl0aGVyIHJlYm9vdCxcbmxvZyBvdXQgYW5kIGJhY2sgaW4gYWdhaW4sIG9yIGlmIHlvdXIgdXNpbmcgWDExIHRoZW4gYWx0K0YyIHRoZW4gcnVuIHIiLAogICJuYW1lIjogIkFsdGVybmF0ZSBNZW51IGZvciBIcGxpcDIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaHBsaXAtbWVudTIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dyaXp6bHlzbWl0L2hwbGlwLW1lbnUyLWdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ1dWlkIjogImhwbGlwLW1lbnUyQGdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
     "42": {"version": "11", "sha256": "19h44pn5afqc89vn5xjrhmd375651zhf2w78cs8fgazp7pc0hsr6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWRpdHMiOiAiKEMpIEZyYW5jaXMgR3JpenpseSBTbWl0XG5cbkR1dGNoIHRyYW5zbGF0aW9uIFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxuTGljZW5jZSBHUEwgdjIrXG5cbiIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy5cblxuRHV0Y2ggbGFuZ3VhZ2Ugc3VwcG9ydCBhZGRlZCBieSBWaXN0YXVzIChIZWltZW4gU3RvZmZlbHMpIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXN0YXVzXG5cbnlvdSdsbCBuZWVkIHRvIHJlc3RhcnQgZ25vbWUtc2hlbGwgYWZ0ZXIgdXBncmFkZXMgc28gZWl0aGVyIHJlYm9vdCxcbmxvZyBvdXQgYW5kIGJhY2sgaW4gYWdhaW4sIG9yIGlmIHlvdXIgdXNpbmcgWDExIHRoZW4gYWx0K0YyIHRoZW4gcnVuIHIiLAogICJuYW1lIjogIkFsdGVybmF0ZSBNZW51IGZvciBIcGxpcDIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaHBsaXAtbWVudTIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dyaXp6bHlzbWl0L2hwbGlwLW1lbnUyLWdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ1dWlkIjogImhwbGlwLW1lbnUyQGdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
     "43": {"version": "11", "sha256": "19h44pn5afqc89vn5xjrhmd375651zhf2w78cs8fgazp7pc0hsr6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWRpdHMiOiAiKEMpIEZyYW5jaXMgR3JpenpseSBTbWl0XG5cbkR1dGNoIHRyYW5zbGF0aW9uIFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxuTGljZW5jZSBHUEwgdjIrXG5cbiIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy5cblxuRHV0Y2ggbGFuZ3VhZ2Ugc3VwcG9ydCBhZGRlZCBieSBWaXN0YXVzIChIZWltZW4gU3RvZmZlbHMpIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXN0YXVzXG5cbnlvdSdsbCBuZWVkIHRvIHJlc3RhcnQgZ25vbWUtc2hlbGwgYWZ0ZXIgdXBncmFkZXMgc28gZWl0aGVyIHJlYm9vdCxcbmxvZyBvdXQgYW5kIGJhY2sgaW4gYWdhaW4sIG9yIGlmIHlvdXIgdXNpbmcgWDExIHRoZW4gYWx0K0YyIHRoZW4gcnVuIHIiLAogICJuYW1lIjogIkFsdGVybmF0ZSBNZW51IGZvciBIcGxpcDIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaHBsaXAtbWVudTIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dyaXp6bHlzbWl0L2hwbGlwLW1lbnUyLWdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ1dWlkIjogImhwbGlwLW1lbnUyQGdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
     "44": {"version": "11", "sha256": "19h44pn5afqc89vn5xjrhmd375651zhf2w78cs8fgazp7pc0hsr6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWRpdHMiOiAiKEMpIEZyYW5jaXMgR3JpenpseSBTbWl0XG5cbkR1dGNoIHRyYW5zbGF0aW9uIFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxuTGljZW5jZSBHUEwgdjIrXG5cbiIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy5cblxuRHV0Y2ggbGFuZ3VhZ2Ugc3VwcG9ydCBhZGRlZCBieSBWaXN0YXVzIChIZWltZW4gU3RvZmZlbHMpIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXN0YXVzXG5cbnlvdSdsbCBuZWVkIHRvIHJlc3RhcnQgZ25vbWUtc2hlbGwgYWZ0ZXIgdXBncmFkZXMgc28gZWl0aGVyIHJlYm9vdCxcbmxvZyBvdXQgYW5kIGJhY2sgaW4gYWdhaW4sIG9yIGlmIHlvdXIgdXNpbmcgWDExIHRoZW4gYWx0K0YyIHRoZW4gcnVuIHIiLAogICJuYW1lIjogIkFsdGVybmF0ZSBNZW51IGZvciBIcGxpcDIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaHBsaXAtbWVudTIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dyaXp6bHlzbWl0L2hwbGlwLW1lbnUyLWdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ1dWlkIjogImhwbGlwLW1lbnUyQGdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
-    "45": {"version": "22", "sha256": "1smy8rmi6vxwgkdk3h9mffx9lkv2v5yn8hgn66wlm989bndyvxrw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWRpdHMiOiAiKEMpIEZyYW5jaXMgR3JpenpseSBTbWl0XG5cbkR1dGNoIHRyYW5zbGF0aW9uIFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxuTGljZW5jZSBHUEwgdjIrXG5cbiIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy5cblxuRHV0Y2ggbGFuZ3VhZ2Ugc3VwcG9ydCBhZGRlZCBieSBWaXN0YXVzIChIZWltZW4gU3RvZmZlbHMpIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXN0YXVzXG5cbnlvdSdsbCBuZWVkIHRvIHJlc3RhcnQgZ25vbWUtc2hlbGwgYWZ0ZXIgdXBncmFkZXMgc28gZWl0aGVyIHJlYm9vdCxcbmxvZyBvdXQgYW5kIGJhY2sgaW4gYWdhaW4sIG9yIGlmIHlvdXIgdXNpbmcgWDExIHRoZW4gYWx0K0YyIHRoZW4gcnVuIHIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJocGxpcC1tZW51MiIsCiAgIm5hbWUiOiAiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwMiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ocGxpcC1tZW51MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ3JpenpseXNtaXQvaHBsaXAtbWVudTItZ3JpenpseXNtaXQuc21pdC5pZC5hdSIsCiAgInV1aWQiOiAiaHBsaXAtbWVudTJAZ3JpenpseXNtaXQuc21pdC5pZC5hdSIsCiAgInZlcnNpb24iOiAyMgp9"},
-    "46": {"version": "22", "sha256": "1smy8rmi6vxwgkdk3h9mffx9lkv2v5yn8hgn66wlm989bndyvxrw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWRpdHMiOiAiKEMpIEZyYW5jaXMgR3JpenpseSBTbWl0XG5cbkR1dGNoIHRyYW5zbGF0aW9uIFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxuTGljZW5jZSBHUEwgdjIrXG5cbiIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy5cblxuRHV0Y2ggbGFuZ3VhZ2Ugc3VwcG9ydCBhZGRlZCBieSBWaXN0YXVzIChIZWltZW4gU3RvZmZlbHMpIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXN0YXVzXG5cbnlvdSdsbCBuZWVkIHRvIHJlc3RhcnQgZ25vbWUtc2hlbGwgYWZ0ZXIgdXBncmFkZXMgc28gZWl0aGVyIHJlYm9vdCxcbmxvZyBvdXQgYW5kIGJhY2sgaW4gYWdhaW4sIG9yIGlmIHlvdXIgdXNpbmcgWDExIHRoZW4gYWx0K0YyIHRoZW4gcnVuIHIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJocGxpcC1tZW51MiIsCiAgIm5hbWUiOiAiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwMiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ocGxpcC1tZW51MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ3JpenpseXNtaXQvaHBsaXAtbWVudTItZ3JpenpseXNtaXQuc21pdC5pZC5hdSIsCiAgInV1aWQiOiAiaHBsaXAtbWVudTJAZ3JpenpseXNtaXQuc21pdC5pZC5hdSIsCiAgInZlcnNpb24iOiAyMgp9"}
+    "45": {"version": "23", "sha256": "128c5qbm3sirk3slaxqallij1zr13jf9mfc50pr7dlv42bbgh864", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWRpdHMiOiAiKEMpIEZyYW5jaXMgR3JpenpseSBTbWl0XG5cbkR1dGNoIHRyYW5zbGF0aW9uIFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxuTGljZW5jZSBHUEwgdjIrXG5cbiIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy5cblxuRHV0Y2ggbGFuZ3VhZ2Ugc3VwcG9ydCBhZGRlZCBieSBWaXN0YXVzIChIZWltZW4gU3RvZmZlbHMpIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXN0YXVzXG5cbnlvdSdsbCBuZWVkIHRvIHJlc3RhcnQgZ25vbWUtc2hlbGwgYWZ0ZXIgdXBncmFkZXMgc28gZWl0aGVyIHJlYm9vdCxcbmxvZyBvdXQgYW5kIGJhY2sgaW4gYWdhaW4sIG9yIGlmIHlvdXIgdXNpbmcgWDExIHRoZW4gYWx0K0YyIHRoZW4gcnVuIHIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJocGxpcC1tZW51MiIsCiAgIm5hbWUiOiAiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwMiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ocGxpcC1tZW51MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ3JpenpseXNtaXQvaHBsaXAtbWVudTItZ3JpenpseXNtaXQuc21pdC5pZC5hdSIsCiAgInV1aWQiOiAiaHBsaXAtbWVudTJAZ3JpenpseXNtaXQuc21pdC5pZC5hdSIsCiAgInZlcnNpb24iOiAyMwp9"},
+    "46": {"version": "27", "sha256": "0yfi83bqalsw842h0h6g5cqvg0pvfgc6vk8iffn9xalqzw6wa8kh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWRpdHMiOiAiKEMpIEZyYW5jaXMgR3JpenpseSBTbWl0XG5cbkR1dGNoIHRyYW5zbGF0aW9uIFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxuTGljZW5jZSBHUEwgdjIrXG5cblRoZSBjb21tcGFjdCBtb2RlIHVzZXMgY29kZSBmcm9tIHRoZSBBcHBzIE1lbnUgYnkgZm11ZWxsbmVyXG5cbiIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5OZXc6IHRoZSBtZW51IHdpbGwgYmUgdG9vIGJpZyBpZiB5b3VyIHJlc29sdXRpb24gaXMgd2F5IHRvbyBsb3cgbGlrZSA4MDB4NjAwIEkgaGF2ZSBpbXBsZW1lbnRlZCBhIGNvbXBhY3Qgb3B0aW9uIGluIHRoZSBzZXR0aW5ncywgaWYgeW91IHVzZSBpdCB0aGUgbWVudSB3aWxsIGJlY29tZSBhIHR3byBjb2xvbW4gY29tcGFjdCBmb3JtYXQgYW5kIHdpbGwgZml0IGV2ZW4gb24gc3VjaCBhIGxvdyByZXNvbHV0aW9uLlxuXG5EdXRjaCBsYW5ndWFnZSBzdXBwb3J0IGFkZGVkIGJ5IFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxueW91J2xsIG5lZWQgdG8gcmVzdGFydCBnbm9tZS1zaGVsbCBhZnRlciB1cGdyYWRlcyBzbyBlaXRoZXIgcmVib290LFxubG9nIG91dCBhbmQgYmFjayBpbiBhZ2Fpbiwgb3IgaWYgeW91ciB1c2luZyBYMTEgdGhlbiBhbHQrRjIgdGhlbiBydW4gciIsCiAgImdldHRleHQtZG9tYWluIjogImhwbGlwLW1lbnUyIiwKICAibmFtZSI6ICJBbHRlcm5hdGUgTWVudSBmb3IgSHBsaXAyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhwbGlwLW1lbnUyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dyaXp6bHlzbWl0L2hwbGlwLW1lbnUyLWdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ1dWlkIjogImhwbGlwLW1lbnUyQGdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ2ZXJzaW9uIjogMjcKfQ=="}
   }}
 , {"uuid": "dash-from-panel@fthx", "name": "Dash from Panel", "pname": "dash-from-panel", "description": "NOT MAINTAINED ANYMORE\n\nTop dock for GNOME 40+. Hover top panel and GNOME Shell dash appears without overview.\n\n Scroll on dock or panel changes workspace. Preferences UI.\n\n Does use native GNOME Shell Dash. Very light extension.\n\n Please report bugs through GitHub.", "link": "https://extensions.gnome.org/extension/4741/dash-from-panel/", "shell_version_map": {
     "40": {"version": "3", "sha256": "18ikbd1hxlc6rd28dnif2x74g3q9gdkgxc6jpag6qh7c51qd5klz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5PVCBNQUlOVEFJTkVEIEFOWU1PUkVcblxuVG9wIGRvY2sgZm9yIEdOT01FIDQwKy4gSG92ZXIgdG9wIHBhbmVsIGFuZCBHTk9NRSBTaGVsbCBkYXNoIGFwcGVhcnMgd2l0aG91dCBvdmVydmlldy5cblxuIFNjcm9sbCBvbiBkb2NrIG9yIHBhbmVsIGNoYW5nZXMgd29ya3NwYWNlLiBQcmVmZXJlbmNlcyBVSS5cblxuIERvZXMgdXNlIG5hdGl2ZSBHTk9NRSBTaGVsbCBEYXNoLiBWZXJ5IGxpZ2h0IGV4dGVuc2lvbi5cblxuIFBsZWFzZSByZXBvcnQgYnVncyB0aHJvdWdoIEdpdEh1Yi4iLAogICJuYW1lIjogIkRhc2ggZnJvbSBQYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvZGFzaC1mcm9tLXBhbmVsIiwKICAidXVpZCI6ICJkYXNoLWZyb20tcGFuZWxAZnRoeCIsCiAgInZlcnNpb24iOiAzCn0="},
@@ -4477,7 +4511,8 @@
     "42": {"version": "9", "sha256": "00k8nh5dwvdgbax9051yn8462axpsixfa45hw77j2gnlxfkx5577", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIHVzZSBZYWt1YWtlIG9uIEdub21lLiBBZGRzIGEgZ2xvYmFsIHNob3J0Y3V0IHRvIHNob3cvaGlkZSB5YWt1YWtlIGFuZCBtYWtlcyB0aGUgY29uc29sZSBhcHBlYXIgZm9jdXNzZWQuIiwKICAibmFtZSI6ICJZYWt1YWtlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGJlcnR2YWthL3lha3Vha2UtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ5YWt1YWtlLWV4dGVuc2lvbkBrZGUub3JnIiwKICAidmVyc2lvbiI6IDkKfQ=="},
     "43": {"version": "9", "sha256": "00k8nh5dwvdgbax9051yn8462axpsixfa45hw77j2gnlxfkx5577", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIHVzZSBZYWt1YWtlIG9uIEdub21lLiBBZGRzIGEgZ2xvYmFsIHNob3J0Y3V0IHRvIHNob3cvaGlkZSB5YWt1YWtlIGFuZCBtYWtlcyB0aGUgY29uc29sZSBhcHBlYXIgZm9jdXNzZWQuIiwKICAibmFtZSI6ICJZYWt1YWtlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGJlcnR2YWthL3lha3Vha2UtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ5YWt1YWtlLWV4dGVuc2lvbkBrZGUub3JnIiwKICAidmVyc2lvbiI6IDkKfQ=="},
     "44": {"version": "9", "sha256": "00k8nh5dwvdgbax9051yn8462axpsixfa45hw77j2gnlxfkx5577", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIHVzZSBZYWt1YWtlIG9uIEdub21lLiBBZGRzIGEgZ2xvYmFsIHNob3J0Y3V0IHRvIHNob3cvaGlkZSB5YWt1YWtlIGFuZCBtYWtlcyB0aGUgY29uc29sZSBhcHBlYXIgZm9jdXNzZWQuIiwKICAibmFtZSI6ICJZYWt1YWtlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGJlcnR2YWthL3lha3Vha2UtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ5YWt1YWtlLWV4dGVuc2lvbkBrZGUub3JnIiwKICAidmVyc2lvbiI6IDkKfQ=="},
-    "45": {"version": "11", "sha256": "0259dg2950qa88asd23zqdsyf926kyyzmg14rv6cbz0vzq5mspb1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIHVzZSBZYWt1YWtlIG9uIEdub21lLiBBZGRzIGEgZ2xvYmFsIHNob3J0Y3V0IHRvIHNob3cvaGlkZSB5YWt1YWtlIGFuZCBtYWtlcyB0aGUgY29uc29sZSBhcHBlYXIgZm9jdXNzZWQuIiwKICAibmFtZSI6ICJZYWt1YWtlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnlha3Vha2UtZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsYmVydHZha2EveWFrdWFrZS1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInlha3Vha2UtZXh0ZW5zaW9uQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogMTEKfQ=="}
+    "45": {"version": "12", "sha256": "0s1gfa4a2dc658cd5j7j8d77id3cwxxk87n6rvhkprrdgz98rwfa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIHVzZSBZYWt1YWtlIG9uIEdub21lLiBBZGRzIGEgZ2xvYmFsIHNob3J0Y3V0IHRvIHNob3cvaGlkZSB5YWt1YWtlIGFuZCBtYWtlcyB0aGUgY29uc29sZSBhcHBlYXIgZm9jdXNzZWQuIiwKICAibmFtZSI6ICJZYWt1YWtlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnlha3Vha2UtZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGJlcnR2YWthL3lha3Vha2UtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ5YWt1YWtlLWV4dGVuc2lvbkBrZGUub3JnIiwKICAidmVyc2lvbiI6IDEyCn0="},
+    "46": {"version": "12", "sha256": "0s1gfa4a2dc658cd5j7j8d77id3cwxxk87n6rvhkprrdgz98rwfa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIHVzZSBZYWt1YWtlIG9uIEdub21lLiBBZGRzIGEgZ2xvYmFsIHNob3J0Y3V0IHRvIHNob3cvaGlkZSB5YWt1YWtlIGFuZCBtYWtlcyB0aGUgY29uc29sZSBhcHBlYXIgZm9jdXNzZWQuIiwKICAibmFtZSI6ICJZYWt1YWtlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnlha3Vha2UtZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGJlcnR2YWthL3lha3Vha2UtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ5YWt1YWtlLWV4dGVuc2lvbkBrZGUub3JnIiwKICAidmVyc2lvbiI6IDEyCn0="}
   }}
 , {"uuid": "dnf-shotcuts@rx1310", "name": "Shortcuts for DNF", "pname": "shortcuts-for-dnf", "description": "A small extension that adds buttons to the panel to check for DNF updates through the terminal without entering commands.", "link": "https://extensions.gnome.org/extension/4758/shortcuts-for-dnf/", "shell_version_map": {
     "38": {"version": "4", "sha256": "0hknf92ijxg6xcadk7sac3qvlc8lpyf80013vkmzai7bbbbcypsm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc21hbGwgZXh0ZW5zaW9uIHRoYXQgYWRkcyBidXR0b25zIHRvIHRoZSBwYW5lbCB0byBjaGVjayBmb3IgRE5GIHVwZGF0ZXMgdGhyb3VnaCB0aGUgdGVybWluYWwgd2l0aG91dCBlbnRlcmluZyBjb21tYW5kcy4iLAogICJuYW1lIjogIlNob3J0Y3V0cyBmb3IgRE5GIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcngxMzEwL2dub21lLWV4dGVuc2lvbl9hcHR1cGRhdGUiLAogICJ1dWlkIjogImRuZi1zaG90Y3V0c0ByeDEzMTAiLAogICJ2ZXJzaW9uIjogNAp9"},
@@ -4667,7 +4702,7 @@
     "43": {"version": "41", "sha256": "1kpwdir0rs086iky86c2gdfk3n9aja4xcg8s46kd7f2gv12l1sl7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIENsaXBib2FyZCBIaXN0b3J5IGlzIGEgY2xpcGJvYXJkIG1hbmFnZXIgR05PTUUgZXh0ZW5zaW9uIHRoYXQgc2F2ZXMgaXRlbXMgeW91J3ZlIGNvcGllZCBpbnRvIGFuIGVhc2lseSBhY2Nlc3NpYmxlLCBzZWFyY2hhYmxlIGhpc3RvcnkgcGFuZWwuIiwKICAibmFtZSI6ICJDbGlwYm9hcmQgSGlzdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU1VQRVJDSUxFWC9nbm9tZS1jbGlwYm9hcmQtaGlzdG9yeSIsCiAgInV1aWQiOiAiY2xpcGJvYXJkLWhpc3RvcnlAYWxleHNhdmVhdS5kZXYiLAogICJ2ZXJzaW9uIjogNDEKfQ=="},
     "44": {"version": "41", "sha256": "1kpwdir0rs086iky86c2gdfk3n9aja4xcg8s46kd7f2gv12l1sl7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIENsaXBib2FyZCBIaXN0b3J5IGlzIGEgY2xpcGJvYXJkIG1hbmFnZXIgR05PTUUgZXh0ZW5zaW9uIHRoYXQgc2F2ZXMgaXRlbXMgeW91J3ZlIGNvcGllZCBpbnRvIGFuIGVhc2lseSBhY2Nlc3NpYmxlLCBzZWFyY2hhYmxlIGhpc3RvcnkgcGFuZWwuIiwKICAibmFtZSI6ICJDbGlwYm9hcmQgSGlzdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU1VQRVJDSUxFWC9nbm9tZS1jbGlwYm9hcmQtaGlzdG9yeSIsCiAgInV1aWQiOiAiY2xpcGJvYXJkLWhpc3RvcnlAYWxleHNhdmVhdS5kZXYiLAogICJ2ZXJzaW9uIjogNDEKfQ=="},
     "45": {"version": "40", "sha256": "0yjm2py35rlsrdcpayaak0jqdnnpmdg6jp44fklg1ds06mnn7q4s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIENsaXBib2FyZCBIaXN0b3J5IGlzIGEgY2xpcGJvYXJkIG1hbmFnZXIgR05PTUUgZXh0ZW5zaW9uIHRoYXQgc2F2ZXMgaXRlbXMgeW91J3ZlIGNvcGllZCBpbnRvIGFuIGVhc2lseSBhY2Nlc3NpYmxlLCBzZWFyY2hhYmxlIGhpc3RvcnkgcGFuZWwuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY2xpcGJvYXJkLWhpc3RvcnlAYWxleHNhdmVhdS5kZXYiLAogICJuYW1lIjogIkNsaXBib2FyZCBIaXN0b3J5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNsaXBib2FyZC1oaXN0b3J5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NVUEVSQ0lMRVgvZ25vbWUtY2xpcGJvYXJkLWhpc3RvcnkiLAogICJ1dWlkIjogImNsaXBib2FyZC1oaXN0b3J5QGFsZXhzYXZlYXUuZGV2IiwKICAidmVyc2lvbiI6IDQwCn0="},
-    "46": {"version": "39", "sha256": "1b6y8yda9sibjgyz2vm2v23d8fk6rdnk7mdsgl098sqklfy683v9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIENsaXBib2FyZCBIaXN0b3J5IGlzIGEgY2xpcGJvYXJkIG1hbmFnZXIgR05PTUUgZXh0ZW5zaW9uIHRoYXQgc2F2ZXMgaXRlbXMgeW91J3ZlIGNvcGllZCBpbnRvIGFuIGVhc2lseSBhY2Nlc3NpYmxlLCBzZWFyY2hhYmxlIGhpc3RvcnkgcGFuZWwuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY2xpcGJvYXJkLWhpc3RvcnlAYWxleHNhdmVhdS5kZXYiLAogICJuYW1lIjogIkNsaXBib2FyZCBIaXN0b3J5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNsaXBib2FyZC1oaXN0b3J5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NVUEVSQ0lMRVgvZ25vbWUtY2xpcGJvYXJkLWhpc3RvcnkiLAogICJ1dWlkIjogImNsaXBib2FyZC1oaXN0b3J5QGFsZXhzYXZlYXUuZGV2IiwKICAidmVyc2lvbiI6IDM5Cn0="}
+    "46": {"version": "42", "sha256": "1bp8xzwkszkr1qpd7dig7bmlckc6p65z72xr345la0kh370by4jn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIENsaXBib2FyZCBIaXN0b3J5IGlzIGEgY2xpcGJvYXJkIG1hbmFnZXIgR05PTUUgZXh0ZW5zaW9uIHRoYXQgc2F2ZXMgaXRlbXMgeW91J3ZlIGNvcGllZCBpbnRvIGFuIGVhc2lseSBhY2Nlc3NpYmxlLCBzZWFyY2hhYmxlIGhpc3RvcnkgcGFuZWwuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY2xpcGJvYXJkLWhpc3RvcnlAYWxleHNhdmVhdS5kZXYiLAogICJuYW1lIjogIkNsaXBib2FyZCBIaXN0b3J5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNsaXBib2FyZC1oaXN0b3J5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NVUEVSQ0lMRVgvZ25vbWUtY2xpcGJvYXJkLWhpc3RvcnkiLAogICJ1dWlkIjogImNsaXBib2FyZC1oaXN0b3J5QGFsZXhzYXZlYXUuZGV2IiwKICAidmVyc2lvbiI6IDQyCn0="}
   }}
 , {"uuid": "strongdm@andybrown668.github.com", "name": "StrongDM", "pname": "strongdm", "description": "Access StrongDM resources", "link": "https://extensions.gnome.org/extension/4841/strongdm/", "shell_version_map": {
     "40": {"version": "3", "sha256": "02dfs597cs8zz7wwl3kqb8i9kxdi9p7ywvk22kvmy5p4gkc181j7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyBTdHJvbmdETSByZXNvdXJjZXMiLAogICJuYW1lIjogIlN0cm9uZ0RNIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbmR5YnJvd242Njgvc3Ryb25nZG0tZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLmdpdCIsCiAgInV1aWQiOiAic3Ryb25nZG1AYW5keWJyb3duNjY4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"},
@@ -4708,7 +4743,8 @@
     "42": {"version": "9", "sha256": "0p7jci2rbkypspb8ywdmfxcnmvza3anhbsi372qvsv90ai9aqxv6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhZGRpdGlvbmFsIHdpbmRvdyBtYW5hZ2VtZW50IHNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiUXVhcnRlciBXaW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Ryb3lyZWFkeS9xdWFydGVyd2luZG93cyIsCiAgInV1aWQiOiAicXVhcnRlcndpbmRvd3NAdHJveXJlYWR5LmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="},
     "43": {"version": "9", "sha256": "0p7jci2rbkypspb8ywdmfxcnmvza3anhbsi372qvsv90ai9aqxv6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhZGRpdGlvbmFsIHdpbmRvdyBtYW5hZ2VtZW50IHNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiUXVhcnRlciBXaW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Ryb3lyZWFkeS9xdWFydGVyd2luZG93cyIsCiAgInV1aWQiOiAicXVhcnRlcndpbmRvd3NAdHJveXJlYWR5LmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="},
     "44": {"version": "9", "sha256": "0p7jci2rbkypspb8ywdmfxcnmvza3anhbsi372qvsv90ai9aqxv6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhZGRpdGlvbmFsIHdpbmRvdyBtYW5hZ2VtZW50IHNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiUXVhcnRlciBXaW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Ryb3lyZWFkeS9xdWFydGVyd2luZG93cyIsCiAgInV1aWQiOiAicXVhcnRlcndpbmRvd3NAdHJveXJlYWR5LmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="},
-    "45": {"version": "10", "sha256": "0a0zkyxi4gizsrp24qcxidn5z7y0xk8z6gwrcqyc5yan2ai8cgd3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhZGRpdGlvbmFsIHdpbmRvdyBtYW5hZ2VtZW50IHNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiUXVhcnRlciBXaW5kb3dzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbS10cm95cmVhZHktcXVhcnRlcndpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHJveXJlYWR5L3F1YXJ0ZXJ3aW5kb3dzIiwKICAidXVpZCI6ICJxdWFydGVyd2luZG93c0B0cm95cmVhZHkuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}
+    "45": {"version": "11", "sha256": "05jlynl1098ha06gnkw96ilmrwj50266v7p66cs7rz8kbz2idx40", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhZGRpdGlvbmFsIHdpbmRvdyBtYW5hZ2VtZW50IHNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiUXVhcnRlciBXaW5kb3dzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbS10cm95cmVhZHktcXVhcnRlcndpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Ryb3lyZWFkeS9xdWFydGVyd2luZG93cyIsCiAgInV1aWQiOiAicXVhcnRlcndpbmRvd3NAdHJveXJlYWR5LmNvbSIsCiAgInZlcnNpb24iOiAxMQp9"},
+    "46": {"version": "11", "sha256": "05jlynl1098ha06gnkw96ilmrwj50266v7p66cs7rz8kbz2idx40", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhZGRpdGlvbmFsIHdpbmRvdyBtYW5hZ2VtZW50IHNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiUXVhcnRlciBXaW5kb3dzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbS10cm95cmVhZHktcXVhcnRlcndpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Ryb3lyZWFkeS9xdWFydGVyd2luZG93cyIsCiAgInV1aWQiOiAicXVhcnRlcndpbmRvd3NAdHJveXJlYWR5LmNvbSIsCiAgInZlcnNpb24iOiAxMQp9"}
   }}
 , {"uuid": "batt_consumption_wattmetter@wennaspeedy", "name": "Power battery Consumption Watt Meter", "pname": "bat_consumption_wattmeter", "description": "Shows actual charging/discharging consumption (+/-) in Watt next to battery percentage level.\nEnable percentage label when disabled.\nDefault sync reload set to 4 seconds.\nNo consumption info when battery is full.\nSettings: interval, percentage label (also when full), battery selection", "link": "https://extensions.gnome.org/extension/4862/bat_consumption_wattmeter/", "shell_version_map": {
     "40": {"version": "10", "sha256": "1qidycwl16b2x4x6chzzkyvpawwpkfy0rhp0lq2szbkmv3k4glin", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGFjdHVhbCBjaGFyZ2luZy9kaXNjaGFyZ2luZyBjb25zdW1wdGlvbiAoKy8tKSBpbiBXYXR0IG5leHQgdG8gYmF0dGVyeSBwZXJjZW50YWdlIGxldmVsLlxuRW5hYmxlIHBlcmNlbnRhZ2UgbGFiZWwgd2hlbiBkaXNhYmxlZC5cbkRlZmF1bHQgc3luYyByZWxvYWQgc2V0IHRvIDQgc2Vjb25kcy5cbk5vIGNvbnN1bXB0aW9uIGluZm8gd2hlbiBiYXR0ZXJ5IGlzIGZ1bGwuXG5TZXR0aW5nczogaW50ZXJ2YWwsIHBlcmNlbnRhZ2UgbGFiZWwgKGFsc28gd2hlbiBmdWxsKSwgYmF0dGVyeSBzZWxlY3Rpb24iLAogICJuYW1lIjogIlBvd2VyIGJhdHRlcnkgQ29uc3VtcHRpb24gV2F0dCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbm5hc3BlZWR5L2JhdHRfY29uc3VtcHRpb25fd2F0dG1ldHRlciIsCiAgInV1aWQiOiAiYmF0dF9jb25zdW1wdGlvbl93YXR0bWV0dGVyQHdlbm5hc3BlZWR5IiwKICAidmVyc2lvbiI6IDEwCn0="},
@@ -4830,8 +4866,8 @@
     "42": {"version": "18", "sha256": "0mklxqybxnlw8jpfljyg2hapw8zgi732162ris96li0440a8h616", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9BbmRyZXdaYWVjaC9henRhc2tiYXIiLAogICJ1dWlkIjogImF6dGFza2JhckBhenRhc2tiYXIuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAxOAp9"},
     "43": {"version": "18", "sha256": "0mklxqybxnlw8jpfljyg2hapw8zgi732162ris96li0440a8h616", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9BbmRyZXdaYWVjaC9henRhc2tiYXIiLAogICJ1dWlkIjogImF6dGFza2JhckBhenRhc2tiYXIuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAxOAp9"},
     "44": {"version": "18", "sha256": "0mklxqybxnlw8jpfljyg2hapw8zgi732162ris96li0440a8h616", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9BbmRyZXdaYWVjaC9henRhc2tiYXIiLAogICJ1dWlkIjogImF6dGFza2JhckBhenRhc2tiYXIuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAxOAp9"},
-    "45": {"version": "22", "sha256": "1zcb26wb96xif8swywgb9f9nkvbgmgl2hiy0bbj19xwfdbvjdvp2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0FuZHJld1phZWNoL2F6dGFza2JhciIsCiAgInV1aWQiOiAiYXp0YXNrYmFyQGF6dGFza2Jhci5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="},
-    "46": {"version": "22", "sha256": "1zcb26wb96xif8swywgb9f9nkvbgmgl2hiy0bbj19xwfdbvjdvp2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0FuZHJld1phZWNoL2F6dGFza2JhciIsCiAgInV1aWQiOiAiYXp0YXNrYmFyQGF6dGFza2Jhci5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}
+    "45": {"version": "23", "sha256": "13cppvvwc77h5w5vixa23vn8k02yb19mj90h2dj02lg5xa6zpj55", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0FuZHJld1phZWNoL2F6dGFza2JhciIsCiAgInV1aWQiOiAiYXp0YXNrYmFyQGF6dGFza2Jhci5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="},
+    "46": {"version": "23", "sha256": "13cppvvwc77h5w5vixa23vn8k02yb19mj90h2dj02lg5xa6zpj55", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0FuZHJld1phZWNoL2F6dGFza2JhciIsCiAgInV1aWQiOiAiYXp0YXNrYmFyQGF6dGFza2Jhci5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}
   }}
 , {"uuid": "netSpeedMonitor@nidyran.github.io", "name": "Network Speed Tracker", "pname": "net-speed-monitor", "description": "Network Speed Tracker \nUsage instructions:\n1 - Right-click to easily switch between available network sources.\n2 - Left-click to toggle display modes.\n3 - Middle-click to adjust the refresh rate.", "link": "https://extensions.gnome.org/extension/4947/net-speed-monitor/", "shell_version_map": {
     "38": {"version": "5", "sha256": "1zvp8zx82kqbf9ck55csgcysld3z1gr3cigkl5y73s5rvqj3ks5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHRyYWNraW5nIGFuZCBtb25pdG9yaW5nIG5ldHdvcmsgc3BlZWQuIFxuVGhlcmUgYXJlIGZpdmUgbW9kZXM6IFxuMSAtIGRvd25sb2FkIHNwZWVkIG9ubHkuIFxuMiAtIHVwbG9hZCBzcGVlZCBvbmx5LiBcbjMgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHRvZ2V0aGVyLiBcbjQgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHN1bW1lZC4gXG41IC0gdG90YWwgZGF0YSB1c2FnZSBcblRvIHN3aXRjaCBiZXR3ZWVuIG1vZGVzLCB1c2UgbGVmdCBtb3VzZSBjbGljay4gXG5UbyBzd2l0Y2ggYmV0d2VlbiBhdmFpbGFibGUgc291cmNlcywgdXNlIHJpZ2h0IG1vdXNlIGNsaWNrLiBcblRvIGNoYW5nZSByZWZyZXNoIHRpbWUgMjAwIC0gMTAwMCB1c2UgbWlkZGxlIG1vdXNlIGNsaWNrLiBcblRoZSBmaXJzdCBzb3VyY2Ugd2l0aCB1c2FnZSBoaWdoZXIgdGhhbiB6ZXJvIHdpbGwgYmUgcGlja2VkIGJ5IGRlZmF1bHQuIFxuVGhlIGV4dGVuc2lvbiB3aWxsIHBpY2sgdGhlIGZpcnN0IHNvdXJjZSBieSBkZWZhdWx0LCBhbmQgaWYgbm8gdHJhZmZpYyBpcyBlc3RhYmxpc2hlZCBpdCB3aWxsIHN3aXRjaCB0byB0aGUgbmV4dCBvbmUgYW5kIHNvIG9uXG5UaGUgc291cmNlIGNvZGUgaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rIGJlbG93LCB1cGRhdGUgcmVxdWVzdHMgYXJlIHdlbGNvbWUuIiwKICAibmFtZSI6ICJuZXQgc3BlZWQgbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmlkeXJhbi9uZXRTcGVlZE1vbml0b3IvIiwKICAidXVpZCI6ICJuZXRTcGVlZE1vbml0b3JAbmlkeXJhbi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"},
@@ -4905,11 +4941,11 @@
 , {"uuid": "dash2dock-lite@icedman.github.com", "name": "Dash2Dock Animated", "pname": "dash2dock-lite", "description": "The Animated & Effectful Dock", "link": "https://extensions.gnome.org/extension/4994/dash2dock-lite/", "shell_version_map": {
     "40": {"version": "28", "sha256": "00c5fjb6s40y7fzndvmxb8ni0hlbd3gmypx262jjk7gwa0yvq99d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaDJkb2NrLWxpdGUiLAogICJuYW1lIjogIkRhc2gyRG9jayBMaXRlIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJpY2VkbWFuIgogIF0sCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoMmRvY2stbGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWNlZG1hbi9kYXNoMmRvY2stbGl0ZSIsCiAgInV1aWQiOiAiZGFzaDJkb2NrLWxpdGVAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI4Cn0="},
     "41": {"version": "28", "sha256": "00c5fjb6s40y7fzndvmxb8ni0hlbd3gmypx262jjk7gwa0yvq99d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaDJkb2NrLWxpdGUiLAogICJuYW1lIjogIkRhc2gyRG9jayBMaXRlIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJpY2VkbWFuIgogIF0sCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoMmRvY2stbGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWNlZG1hbi9kYXNoMmRvY2stbGl0ZSIsCiAgInV1aWQiOiAiZGFzaDJkb2NrLWxpdGVAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI4Cn0="},
-    "42": {"version": "57", "sha256": "0z4mkp2hxy9ihzdnj42b8hqkc7l322a847v2l1ac4dvz11x38cwp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWNlZG1hbi9kYXNoMmRvY2stbGl0ZSIsCiAgInV1aWQiOiAiZGFzaDJkb2NrLWxpdGVAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU3Cn0="},
-    "43": {"version": "57", "sha256": "0z4mkp2hxy9ihzdnj42b8hqkc7l322a847v2l1ac4dvz11x38cwp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWNlZG1hbi9kYXNoMmRvY2stbGl0ZSIsCiAgInV1aWQiOiAiZGFzaDJkb2NrLWxpdGVAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU3Cn0="},
-    "44": {"version": "57", "sha256": "0z4mkp2hxy9ihzdnj42b8hqkc7l322a847v2l1ac4dvz11x38cwp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWNlZG1hbi9kYXNoMmRvY2stbGl0ZSIsCiAgInV1aWQiOiAiZGFzaDJkb2NrLWxpdGVAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU3Cn0="},
-    "45": {"version": "54", "sha256": "10wlbfpay3aj8g2rqf06b8igphmk89avdjqw0vxz08ngc8r150wb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pY2VkbWFuL2Rhc2gyZG9jay1saXRlIiwKICAidXVpZCI6ICJkYXNoMmRvY2stbGl0ZUBpY2VkbWFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTQKfQ=="},
-    "46": {"version": "54", "sha256": "10wlbfpay3aj8g2rqf06b8igphmk89avdjqw0vxz08ngc8r150wb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pY2VkbWFuL2Rhc2gyZG9jay1saXRlIiwKICAidXVpZCI6ICJkYXNoMmRvY2stbGl0ZUBpY2VkbWFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTQKfQ=="}
+    "42": {"version": "68", "sha256": "0i2p5jvs9jlpy1gzc6g3zgbjjyi41v7bahzkz6lg2bw1hpv7a363", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWNlZG1hbi9kYXNoMmRvY2stbGl0ZSIsCiAgInV1aWQiOiAiZGFzaDJkb2NrLWxpdGVAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDY4Cn0="},
+    "43": {"version": "68", "sha256": "0i2p5jvs9jlpy1gzc6g3zgbjjyi41v7bahzkz6lg2bw1hpv7a363", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWNlZG1hbi9kYXNoMmRvY2stbGl0ZSIsCiAgInV1aWQiOiAiZGFzaDJkb2NrLWxpdGVAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDY4Cn0="},
+    "44": {"version": "68", "sha256": "0i2p5jvs9jlpy1gzc6g3zgbjjyi41v7bahzkz6lg2bw1hpv7a363", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWNlZG1hbi9kYXNoMmRvY2stbGl0ZSIsCiAgInV1aWQiOiAiZGFzaDJkb2NrLWxpdGVAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDY4Cn0="},
+    "45": {"version": "66", "sha256": "0cjgrs83ak9dpzm8h3lm471xwik020abpm18v97z5467bswjmdqy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pY2VkbWFuL2Rhc2gyZG9jay1saXRlIiwKICAidXVpZCI6ICJkYXNoMmRvY2stbGl0ZUBpY2VkbWFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNjYKfQ=="},
+    "46": {"version": "66", "sha256": "0cjgrs83ak9dpzm8h3lm471xwik020abpm18v97z5467bswjmdqy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pY2VkbWFuL2Rhc2gyZG9jay1saXRlIiwKICAidXVpZCI6ICJkYXNoMmRvY2stbGl0ZUBpY2VkbWFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNjYKfQ=="}
   }}
 , {"uuid": "animate@eexpss.gmail.com", "name": "animate", "pname": "animate", "description": "Animated small man run through the screen. Scroll mouse can change deferent character. You can use your PNG characters instead of the original ones.", "link": "https://extensions.gnome.org/extension/4995/animate/", "shell_version_map": {
     "40": {"version": "4", "sha256": "1p110wz7wdr51z2fsn6z72lcnln13h8lfbw9a00hs9qb0y71qf5q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuaW1hdGVkIHNtYWxsIG1hbiBydW4gdGhyb3VnaCB0aGUgc2NyZWVuLiBTY3JvbGwgbW91c2UgY2FuIGNoYW5nZSBkZWZlcmVudCBjaGFyYWN0ZXIuIFlvdSBjYW4gdXNlIHlvdXIgUE5HIGNoYXJhY3RlcnMgaW5zdGVhZCBvZiB0aGUgb3JpZ2luYWwgb25lcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhbmltYXRlIiwKICAibmFtZSI6ICJhbmltYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ3MtYW5pbWF0ZSIsCiAgInV1aWQiOiAiYW5pbWF0ZUBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="},
@@ -4934,7 +4970,8 @@
     "42": {"version": "10", "sha256": "1kvi1g03nd5m4d7wnkrnhms9l7pxag4n462g5qxl2q9pvn1d1v96", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklzIGxpa2UgRHJvcGJveCBzeW5jIGNsaWVudCBidXQgZm9yIG1vcmUgdGhhbiAzMCBzZXJ2aWNlcywgYWRkcyBhbiBpbmRpY2F0b3IgdG8gdGhlIHRvcCBwYW5lbCBzbyB5b3UgY2FuIG1hbmFnZSB0aGUgcmNsb25lIHByb2ZpbGVzIGNvbmZpZ3VyZWQgaW4geW91ciBzeXN0ZW0sIHBlcmZvcm0gb3BlcmF0aW9ucyBzdWNoIGFzIG1vdW50IGFzIHJlbW90ZSwgd2F0Y2ggZm9yIGZpbGUgbW9kaWZpY2F0aW9ucywgc3luYyB3aXRoIHJlbW90ZSBzdG9yYWdlLCBuYXZpZ2F0ZSBpdCdzIG1haW4gZm9sZGVyLiBBbHNvLCBpdCBzaG93cyB0aGUgc3RhdHVzIG9mIGVhY2ggcHJvZmlsZSBzbyB5b3UgY2FuIHN1cGVydmlzZSB0aGUgb3BlcmF0aW9ucywgYW5kIHByb3ZpZGVzIGFuIGVhc3kgYWNjZXNzIGxvZyBvZiBldmVudHMuIEJhY2t1cCBhbmQgcmVzdG9yZSB0aGUgcmNsb25lIGNvbmZpZ3VyYXRpb24gZmlsZSwgc28geW91IHdvbid0IGhhdmUgdG8gY29uZmlndXJlIGFsbCB5b3VyIGRldmljZXMgb25lIGJ5IG9uZSIsCiAgIm5hbWUiOiAicmNsb25lLW1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2VybWFuenR6L2dub21lLXNoZWxsLWV4dGVuc2lvbi1yY2xvbmUtbWFuYWdlciIsCiAgInV1aWQiOiAicmNsb25lLW1hbmFnZXJAZ2VybWFuenR6LmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"},
     "43": {"version": "10", "sha256": "1kvi1g03nd5m4d7wnkrnhms9l7pxag4n462g5qxl2q9pvn1d1v96", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklzIGxpa2UgRHJvcGJveCBzeW5jIGNsaWVudCBidXQgZm9yIG1vcmUgdGhhbiAzMCBzZXJ2aWNlcywgYWRkcyBhbiBpbmRpY2F0b3IgdG8gdGhlIHRvcCBwYW5lbCBzbyB5b3UgY2FuIG1hbmFnZSB0aGUgcmNsb25lIHByb2ZpbGVzIGNvbmZpZ3VyZWQgaW4geW91ciBzeXN0ZW0sIHBlcmZvcm0gb3BlcmF0aW9ucyBzdWNoIGFzIG1vdW50IGFzIHJlbW90ZSwgd2F0Y2ggZm9yIGZpbGUgbW9kaWZpY2F0aW9ucywgc3luYyB3aXRoIHJlbW90ZSBzdG9yYWdlLCBuYXZpZ2F0ZSBpdCdzIG1haW4gZm9sZGVyLiBBbHNvLCBpdCBzaG93cyB0aGUgc3RhdHVzIG9mIGVhY2ggcHJvZmlsZSBzbyB5b3UgY2FuIHN1cGVydmlzZSB0aGUgb3BlcmF0aW9ucywgYW5kIHByb3ZpZGVzIGFuIGVhc3kgYWNjZXNzIGxvZyBvZiBldmVudHMuIEJhY2t1cCBhbmQgcmVzdG9yZSB0aGUgcmNsb25lIGNvbmZpZ3VyYXRpb24gZmlsZSwgc28geW91IHdvbid0IGhhdmUgdG8gY29uZmlndXJlIGFsbCB5b3VyIGRldmljZXMgb25lIGJ5IG9uZSIsCiAgIm5hbWUiOiAicmNsb25lLW1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2VybWFuenR6L2dub21lLXNoZWxsLWV4dGVuc2lvbi1yY2xvbmUtbWFuYWdlciIsCiAgInV1aWQiOiAicmNsb25lLW1hbmFnZXJAZ2VybWFuenR6LmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"},
     "44": {"version": "10", "sha256": "1kvi1g03nd5m4d7wnkrnhms9l7pxag4n462g5qxl2q9pvn1d1v96", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklzIGxpa2UgRHJvcGJveCBzeW5jIGNsaWVudCBidXQgZm9yIG1vcmUgdGhhbiAzMCBzZXJ2aWNlcywgYWRkcyBhbiBpbmRpY2F0b3IgdG8gdGhlIHRvcCBwYW5lbCBzbyB5b3UgY2FuIG1hbmFnZSB0aGUgcmNsb25lIHByb2ZpbGVzIGNvbmZpZ3VyZWQgaW4geW91ciBzeXN0ZW0sIHBlcmZvcm0gb3BlcmF0aW9ucyBzdWNoIGFzIG1vdW50IGFzIHJlbW90ZSwgd2F0Y2ggZm9yIGZpbGUgbW9kaWZpY2F0aW9ucywgc3luYyB3aXRoIHJlbW90ZSBzdG9yYWdlLCBuYXZpZ2F0ZSBpdCdzIG1haW4gZm9sZGVyLiBBbHNvLCBpdCBzaG93cyB0aGUgc3RhdHVzIG9mIGVhY2ggcHJvZmlsZSBzbyB5b3UgY2FuIHN1cGVydmlzZSB0aGUgb3BlcmF0aW9ucywgYW5kIHByb3ZpZGVzIGFuIGVhc3kgYWNjZXNzIGxvZyBvZiBldmVudHMuIEJhY2t1cCBhbmQgcmVzdG9yZSB0aGUgcmNsb25lIGNvbmZpZ3VyYXRpb24gZmlsZSwgc28geW91IHdvbid0IGhhdmUgdG8gY29uZmlndXJlIGFsbCB5b3VyIGRldmljZXMgb25lIGJ5IG9uZSIsCiAgIm5hbWUiOiAicmNsb25lLW1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2VybWFuenR6L2dub21lLXNoZWxsLWV4dGVuc2lvbi1yY2xvbmUtbWFuYWdlciIsCiAgInV1aWQiOiAicmNsb25lLW1hbmFnZXJAZ2VybWFuenR6LmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"},
-    "45": {"version": "13", "sha256": "19r6mly10kzym1pwvynfn8cfj5xgjaima9ns7w9h8zldrfhk3fkr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklzIGxpa2UgRHJvcGJveCBzeW5jIGNsaWVudCBidXQgZm9yIG1vcmUgdGhhbiAzMCBzZXJ2aWNlcywgYWRkcyBhbiBpbmRpY2F0b3IgdG8gdGhlIHRvcCBwYW5lbCBzbyB5b3UgY2FuIG1hbmFnZSB0aGUgcmNsb25lIHByb2ZpbGVzIGNvbmZpZ3VyZWQgaW4geW91ciBzeXN0ZW0sIHBlcmZvcm0gb3BlcmF0aW9ucyBzdWNoIGFzIG1vdW50IGFzIHJlbW90ZSwgd2F0Y2ggZm9yIGZpbGUgbW9kaWZpY2F0aW9ucywgc3luYyB3aXRoIHJlbW90ZSBzdG9yYWdlLCBuYXZpZ2F0ZSBpdCdzIG1haW4gZm9sZGVyLiBBbHNvLCBpdCBzaG93cyB0aGUgc3RhdHVzIG9mIGVhY2ggcHJvZmlsZSBzbyB5b3UgY2FuIHN1cGVydmlzZSB0aGUgb3BlcmF0aW9ucywgYW5kIHByb3ZpZGVzIGFuIGVhc3kgYWNjZXNzIGxvZyBvZiBldmVudHMuIEJhY2t1cCBhbmQgcmVzdG9yZSB0aGUgcmNsb25lIGNvbmZpZ3VyYXRpb24gZmlsZSwgc28geW91IHdvbid0IGhhdmUgdG8gY29uZmlndXJlIGFsbCB5b3VyIGRldmljZXMgb25lIGJ5IG9uZSIsCiAgImdldHRleHQtZG9tYWluIjogInJjbG9uZS1tYW5hZ2VyIiwKICAibmFtZSI6ICJyY2xvbmUtbWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yY2xvbmUtbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZXJtYW56dHovZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXJjbG9uZS1tYW5hZ2VyIiwKICAidXVpZCI6ICJyY2xvbmUtbWFuYWdlckBnZXJtYW56dHouY29tIiwKICAidmVyc2lvbiI6IDEzCn0="}
+    "45": {"version": "13", "sha256": "19r6mly10kzym1pwvynfn8cfj5xgjaima9ns7w9h8zldrfhk3fkr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklzIGxpa2UgRHJvcGJveCBzeW5jIGNsaWVudCBidXQgZm9yIG1vcmUgdGhhbiAzMCBzZXJ2aWNlcywgYWRkcyBhbiBpbmRpY2F0b3IgdG8gdGhlIHRvcCBwYW5lbCBzbyB5b3UgY2FuIG1hbmFnZSB0aGUgcmNsb25lIHByb2ZpbGVzIGNvbmZpZ3VyZWQgaW4geW91ciBzeXN0ZW0sIHBlcmZvcm0gb3BlcmF0aW9ucyBzdWNoIGFzIG1vdW50IGFzIHJlbW90ZSwgd2F0Y2ggZm9yIGZpbGUgbW9kaWZpY2F0aW9ucywgc3luYyB3aXRoIHJlbW90ZSBzdG9yYWdlLCBuYXZpZ2F0ZSBpdCdzIG1haW4gZm9sZGVyLiBBbHNvLCBpdCBzaG93cyB0aGUgc3RhdHVzIG9mIGVhY2ggcHJvZmlsZSBzbyB5b3UgY2FuIHN1cGVydmlzZSB0aGUgb3BlcmF0aW9ucywgYW5kIHByb3ZpZGVzIGFuIGVhc3kgYWNjZXNzIGxvZyBvZiBldmVudHMuIEJhY2t1cCBhbmQgcmVzdG9yZSB0aGUgcmNsb25lIGNvbmZpZ3VyYXRpb24gZmlsZSwgc28geW91IHdvbid0IGhhdmUgdG8gY29uZmlndXJlIGFsbCB5b3VyIGRldmljZXMgb25lIGJ5IG9uZSIsCiAgImdldHRleHQtZG9tYWluIjogInJjbG9uZS1tYW5hZ2VyIiwKICAibmFtZSI6ICJyY2xvbmUtbWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yY2xvbmUtbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZXJtYW56dHovZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXJjbG9uZS1tYW5hZ2VyIiwKICAidXVpZCI6ICJyY2xvbmUtbWFuYWdlckBnZXJtYW56dHouY29tIiwKICAidmVyc2lvbiI6IDEzCn0="},
+    "46": {"version": "15", "sha256": "1916ry64p55gc78bblvkmxgcbzxvgpp7vgsvv0kscpc3z4z8hwyz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklzIGxpa2UgRHJvcGJveCBzeW5jIGNsaWVudCBidXQgZm9yIG1vcmUgdGhhbiAzMCBzZXJ2aWNlcywgYWRkcyBhbiBpbmRpY2F0b3IgdG8gdGhlIHRvcCBwYW5lbCBzbyB5b3UgY2FuIG1hbmFnZSB0aGUgcmNsb25lIHByb2ZpbGVzIGNvbmZpZ3VyZWQgaW4geW91ciBzeXN0ZW0sIHBlcmZvcm0gb3BlcmF0aW9ucyBzdWNoIGFzIG1vdW50IGFzIHJlbW90ZSwgd2F0Y2ggZm9yIGZpbGUgbW9kaWZpY2F0aW9ucywgc3luYyB3aXRoIHJlbW90ZSBzdG9yYWdlLCBuYXZpZ2F0ZSBpdCdzIG1haW4gZm9sZGVyLiBBbHNvLCBpdCBzaG93cyB0aGUgc3RhdHVzIG9mIGVhY2ggcHJvZmlsZSBzbyB5b3UgY2FuIHN1cGVydmlzZSB0aGUgb3BlcmF0aW9ucywgYW5kIHByb3ZpZGVzIGFuIGVhc3kgYWNjZXNzIGxvZyBvZiBldmVudHMuIEJhY2t1cCBhbmQgcmVzdG9yZSB0aGUgcmNsb25lIGNvbmZpZ3VyYXRpb24gZmlsZSwgc28geW91IHdvbid0IGhhdmUgdG8gY29uZmlndXJlIGFsbCB5b3VyIGRldmljZXMgb25lIGJ5IG9uZSIsCiAgImdldHRleHQtZG9tYWluIjogInJjbG9uZS1tYW5hZ2VyIiwKICAibmFtZSI6ICJyY2xvbmUtbWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yY2xvbmUtbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZXJtYW56dHovZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXJjbG9uZS1tYW5hZ2VyIiwKICAidXVpZCI6ICJyY2xvbmUtbWFuYWdlckBnZXJtYW56dHouY29tIiwKICAidmVyc2lvbiI6IDE1Cn0="}
   }}
 , {"uuid": "GPU_profile_selector@lorenzo9904.gmail.com", "name": "GPU profile selector", "pname": "gpu-profile-selector", "description": "You need to install envycontrol(https://github.com/geminis3/envycontrol) to make this extension work. This is a simple gnome-shell extension which provides a simple way to switch between GPU profiles on Nvidia Optimus systems (i.e laptops with Intel + Nvidia or AMD + Nvidia configurations) in a few clicks.", "link": "https://extensions.gnome.org/extension/5009/gpu-profile-selector/", "shell_version_map": {
     "38": {"version": "11", "sha256": "0bid6qwwxfw862sb4qw027017c9ya3p26cg10kjx7p3dwc54ccwf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIllvdSBuZWVkIHRvIGluc3RhbGwgZW52eWNvbnRyb2woaHR0cHM6Ly9naXRodWIuY29tL2dlbWluaXMzL2Vudnljb250cm9sKSBmb3IgbWFraW5nIHRoaXMgZXh0ZW5zaW9uIHdvcmtpbmcuIFRoaXMgaXMgYSBzaW1wbGUgZ25vbWUtc2hlbGwgZXh0ZW5zaW9uIHdoaWNoIHByb3ZpZGVzIGEgc2ltcGxlIHdheSB0byBzd2l0Y2ggYmV0d2VlbiBHUFUgcHJvZmlsZXMgb24gTnZpZGlhIE9wdGltdXMgc3lzdGVtcyAoaS5lIGxhcHRvcHMgd2l0aCBJbnRlbCArIE52aWRpYSBvciBBTUQgKyBOdmlkaWEgY29uZmlndXJhdGlvbnMpIGluIGEgZmV3IGNsaWNrcy4iLAogICJuYW1lIjogIkdQVSBwcm9maWxlIHNlbGVjdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTG9yZW56b01vcmVsbGkvR1BVX3Byb2ZpbGVfc2VsZWN0b3IiLAogICJ1dWlkIjogIkdQVV9wcm9maWxlX3NlbGVjdG9yQGxvcmVuem85OTA0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMQp9"},
@@ -4963,7 +5000,8 @@
     "42": {"version": "14", "sha256": "11v848619bj8dk29rz6468cc2mfkggqqz83gfqdngaksd996nxr0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSBtZXNzYWdlIHdyaXR0ZW4gYnkgdGhlIHVzZXIgb24gdGhlIHRvcCBiYXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2ltcGxlLW1lc3NhZ2UiLAogICJuYW1lIjogIlNpbXBsZSBNZXNzYWdlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXBsZS1tZXNzYWdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnJlZGRlei9nbm9tZS1zaGVsbC1zaW1wbGUtbWVzc2FnZSIsCiAgInV1aWQiOiAic2ltcGxlLW1lc3NhZ2VAZnJlZGRleiIsCiAgInZlcnNpb24iOiAxNAp9"},
     "43": {"version": "14", "sha256": "11v848619bj8dk29rz6468cc2mfkggqqz83gfqdngaksd996nxr0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSBtZXNzYWdlIHdyaXR0ZW4gYnkgdGhlIHVzZXIgb24gdGhlIHRvcCBiYXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2ltcGxlLW1lc3NhZ2UiLAogICJuYW1lIjogIlNpbXBsZSBNZXNzYWdlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXBsZS1tZXNzYWdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnJlZGRlei9nbm9tZS1zaGVsbC1zaW1wbGUtbWVzc2FnZSIsCiAgInV1aWQiOiAic2ltcGxlLW1lc3NhZ2VAZnJlZGRleiIsCiAgInZlcnNpb24iOiAxNAp9"},
     "44": {"version": "14", "sha256": "11v848619bj8dk29rz6468cc2mfkggqqz83gfqdngaksd996nxr0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSBtZXNzYWdlIHdyaXR0ZW4gYnkgdGhlIHVzZXIgb24gdGhlIHRvcCBiYXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2ltcGxlLW1lc3NhZ2UiLAogICJuYW1lIjogIlNpbXBsZSBNZXNzYWdlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXBsZS1tZXNzYWdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnJlZGRlei9nbm9tZS1zaGVsbC1zaW1wbGUtbWVzc2FnZSIsCiAgInV1aWQiOiAic2ltcGxlLW1lc3NhZ2VAZnJlZGRleiIsCiAgInZlcnNpb24iOiAxNAp9"},
-    "45": {"version": "15", "sha256": "1yzbnazv4ww8ja4imkac0b0fd4vdg3fniaqpgyskga00bnks0qrs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSBtZXNzYWdlIHdyaXR0ZW4gYnkgdGhlIHVzZXIgb24gdGhlIHRvcCBiYXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2ltcGxlLW1lc3NhZ2UiLAogICJuYW1lIjogIlNpbXBsZSBNZXNzYWdlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXBsZS1tZXNzYWdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZyZWRkZXovZ25vbWUtc2hlbGwtc2ltcGxlLW1lc3NhZ2UiLAogICJ1dWlkIjogInNpbXBsZS1tZXNzYWdlQGZyZWRkZXoiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}
+    "45": {"version": "17", "sha256": "10q9k44i65lmix5g54l2a2gcacj7hfc4ibnxb5dppjrcmfgi6krd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSBtZXNzYWdlIHdyaXR0ZW4gYnkgdGhlIHVzZXIgb24gdGhlIHRvcCBiYXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2ltcGxlLW1lc3NhZ2UiLAogICJuYW1lIjogIlNpbXBsZSBNZXNzYWdlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXBsZS1tZXNzYWdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mcmVkZGV6L2dub21lLXNoZWxsLXNpbXBsZS1tZXNzYWdlIiwKICAidXVpZCI6ICJzaW1wbGUtbWVzc2FnZUBmcmVkZGV6IiwKICAidmVyc2lvbiI6IDE3Cn0="},
+    "46": {"version": "17", "sha256": "10q9k44i65lmix5g54l2a2gcacj7hfc4ibnxb5dppjrcmfgi6krd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSBtZXNzYWdlIHdyaXR0ZW4gYnkgdGhlIHVzZXIgb24gdGhlIHRvcCBiYXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2ltcGxlLW1lc3NhZ2UiLAogICJuYW1lIjogIlNpbXBsZSBNZXNzYWdlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXBsZS1tZXNzYWdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mcmVkZGV6L2dub21lLXNoZWxsLXNpbXBsZS1tZXNzYWdlIiwKICAidXVpZCI6ICJzaW1wbGUtbWVzc2FnZUBmcmVkZGV6IiwKICAidmVyc2lvbiI6IDE3Cn0="}
   }}
 , {"uuid": "activate-window-by-title@lucaswerkmeister.de", "name": "Activate Window By Title", "pname": "activate-window-by-title", "description": "Expose a D-Bus interface to activate a window by its title or WM_CLASS", "link": "https://extensions.gnome.org/extension/5021/activate-window-by-title/", "shell_version_map": {
     "42": {"version": "5", "sha256": "1hqm9znczhw9iq4zx8nzy5cm8wr8lwsryk4l6g634fxqs1bxny5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4cG9zZSBhIEQtQnVzIGludGVyZmFjZSB0byBhY3RpdmF0ZSBhIHdpbmRvdyBieSBpdHMgdGl0bGUgb3IgV01fQ0xBU1MiLAogICJuYW1lIjogIkFjdGl2YXRlIFdpbmRvdyBCeSBUaXRsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1Y2Fzd2Vya21laXN0ZXIvYWN0aXZhdGUtd2luZG93LWJ5LXRpdGxlIiwKICAidXVpZCI6ICJhY3RpdmF0ZS13aW5kb3ctYnktdGl0bGVAbHVjYXN3ZXJrbWVpc3Rlci5kZSIsCiAgInZlcnNpb24iOiA1Cn0="},
@@ -5068,7 +5106,7 @@
     "43": {"version": "22", "sha256": "16bsn3mpd66p3p7yz56zr0ghglj8y8cmlrvn8q8fdvvrj2srkjvf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSAnQWN0aXZpdGllcycgYnV0dG9uIHdpdGggYW4gaTMtbGlrZSB3b3Jrc3BhY2VzIGJhci5cblxuT3JpZ2luYWxseSBhIGZvcmsgb2YgdGhlIGV4dGVuc2lvbiBXb3Jrc3BhY2VzIEJhciBieSBmdGh4LCB0aGlzIGV4dGVuc2lvbiBncmV3IGludG8gYSBtb3JlIGNvbXByZWhlbnNpdmUgc2V0IG9mIGZlYXR1cmVzIHRvIHN1cHBvcnQgYSB3b3Jrc3BhY2UtYmFzZWQgd29ya2Zsb3cuXG5cbkZlYXR1cmVzOlxuLSAgIEZpcnN0IGNsYXNzIHN1cHBvcnQgZm9yIHN0YXRpYyBhbmQgZHluYW1pYyB3b3Jrc3BhY2VzIGFzIHdlbGwgYXMgbXVsdGktbW9uaXRvciBzZXR1cHNcbi0gICBBZGQsIHJlbW92ZSwgYW5kIHJlbmFtZSB3b3Jrc3BhY2VzXG4tICAgUmVhcnJhbmdlIHdvcmtzcGFjZXMgdmlhIGRyYWcgYW5kIGRyb3Bcbi0gICBBdXRvbWF0aWNhbGx5IGFzc2lnbiB3b3Jrc3BhY2UgbmFtZXMgYmFzZWQgb24gc3RhcnRlZCBhcHBsaWNhdGlvbnNcbi0gICBLZXlib2FyZCBzaG9ydGN1dHMgZXh0ZW5kIGFuZCByZWZpbmUgc3lzdGVtIHNob3J0Y3V0c1xuLSAgIFNjcm9sbCB0aHJvdWdoIHdvcmtzcGFjZXMgYnkgbW91c2Ugd2hlZWwgb3ZlciB0aGUgcGFuZWxcbi0gICBDdXN0b21pemUgdGhlIGFwcGVhcmFuY2UiLAogICJuYW1lIjogIlNwYWNlIEJhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcGFjZS1iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RvcGhlci1sL3NwYWNlLWJhciIsCiAgInV1aWQiOiAic3BhY2UtYmFyQGx1Y2hyaW9oIiwKICAidmVyc2lvbiI6IDIyCn0="},
     "44": {"version": "22", "sha256": "16bsn3mpd66p3p7yz56zr0ghglj8y8cmlrvn8q8fdvvrj2srkjvf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSAnQWN0aXZpdGllcycgYnV0dG9uIHdpdGggYW4gaTMtbGlrZSB3b3Jrc3BhY2VzIGJhci5cblxuT3JpZ2luYWxseSBhIGZvcmsgb2YgdGhlIGV4dGVuc2lvbiBXb3Jrc3BhY2VzIEJhciBieSBmdGh4LCB0aGlzIGV4dGVuc2lvbiBncmV3IGludG8gYSBtb3JlIGNvbXByZWhlbnNpdmUgc2V0IG9mIGZlYXR1cmVzIHRvIHN1cHBvcnQgYSB3b3Jrc3BhY2UtYmFzZWQgd29ya2Zsb3cuXG5cbkZlYXR1cmVzOlxuLSAgIEZpcnN0IGNsYXNzIHN1cHBvcnQgZm9yIHN0YXRpYyBhbmQgZHluYW1pYyB3b3Jrc3BhY2VzIGFzIHdlbGwgYXMgbXVsdGktbW9uaXRvciBzZXR1cHNcbi0gICBBZGQsIHJlbW92ZSwgYW5kIHJlbmFtZSB3b3Jrc3BhY2VzXG4tICAgUmVhcnJhbmdlIHdvcmtzcGFjZXMgdmlhIGRyYWcgYW5kIGRyb3Bcbi0gICBBdXRvbWF0aWNhbGx5IGFzc2lnbiB3b3Jrc3BhY2UgbmFtZXMgYmFzZWQgb24gc3RhcnRlZCBhcHBsaWNhdGlvbnNcbi0gICBLZXlib2FyZCBzaG9ydGN1dHMgZXh0ZW5kIGFuZCByZWZpbmUgc3lzdGVtIHNob3J0Y3V0c1xuLSAgIFNjcm9sbCB0aHJvdWdoIHdvcmtzcGFjZXMgYnkgbW91c2Ugd2hlZWwgb3ZlciB0aGUgcGFuZWxcbi0gICBDdXN0b21pemUgdGhlIGFwcGVhcmFuY2UiLAogICJuYW1lIjogIlNwYWNlIEJhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcGFjZS1iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RvcGhlci1sL3NwYWNlLWJhciIsCiAgInV1aWQiOiAic3BhY2UtYmFyQGx1Y2hyaW9oIiwKICAidmVyc2lvbiI6IDIyCn0="},
     "45": {"version": "24", "sha256": "1xmcp6292vadgwn90j4c21gid8vzq1s5h1lvspr4a78b2bb73q93", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSB0b3AtcGFuZWwgd29ya3NwYWNlIGluZGljYXRvciB3aXRoIGFuIGkzLWxpa2Ugd29ya3NwYWNlcyBiYXIuXG5cbk9yaWdpbmFsbHkgYSBmb3JrIG9mIHRoZSBleHRlbnNpb24gV29ya3NwYWNlcyBCYXIgYnkgZnRoeCwgdGhpcyBleHRlbnNpb24gZ3JldyBpbnRvIGEgbW9yZSBjb21wcmVoZW5zaXZlIHNldCBvZiBmZWF0dXJlcyB0byBzdXBwb3J0IGEgd29ya3NwYWNlLWJhc2VkIHdvcmtmbG93LlxuXG5GZWF0dXJlczpcbi0gICBGaXJzdCBjbGFzcyBzdXBwb3J0IGZvciBzdGF0aWMgYW5kIGR5bmFtaWMgd29ya3NwYWNlcyBhcyB3ZWxsIGFzIG11bHRpLW1vbml0b3Igc2V0dXBzXG4tICAgQWRkLCByZW1vdmUsIGFuZCByZW5hbWUgd29ya3NwYWNlc1xuLSAgIFJlYXJyYW5nZSB3b3Jrc3BhY2VzIHZpYSBkcmFnIGFuZCBkcm9wXG4tICAgQXV0b21hdGljYWxseSBhc3NpZ24gd29ya3NwYWNlIG5hbWVzIGJhc2VkIG9uIHN0YXJ0ZWQgYXBwbGljYXRpb25zXG4tICAgS2V5Ym9hcmQgc2hvcnRjdXRzIGV4dGVuZCBhbmQgcmVmaW5lIHN5c3RlbSBzaG9ydGN1dHNcbi0gICBTY3JvbGwgdGhyb3VnaCB3b3Jrc3BhY2VzIGJ5IG1vdXNlIHdoZWVsIG92ZXIgdGhlIHBhbmVsXG4tICAgQ3VzdG9taXplIHRoZSBhcHBlYXJhbmNlIiwKICAibmFtZSI6ICJTcGFjZSBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3BhY2UtYmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdG9waGVyLWwvc3BhY2UtYmFyIiwKICAidXVpZCI6ICJzcGFjZS1iYXJAbHVjaHJpb2giLAogICJ2ZXJzaW9uIjogMjQKfQ=="},
-    "46": {"version": "25", "sha256": "03gh9r9nakdc8zdmdhn0dq8c46qfi0hhmbnf1wj0r0dr3csp8v1f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSB0b3AtcGFuZWwgd29ya3NwYWNlIGluZGljYXRvciB3aXRoIGFuIGkzLWxpa2Ugd29ya3NwYWNlcyBiYXIuXG5cbk9yaWdpbmFsbHkgYSBmb3JrIG9mIHRoZSBleHRlbnNpb24gV29ya3NwYWNlcyBCYXIgYnkgZnRoeCwgdGhpcyBleHRlbnNpb24gZ3JldyBpbnRvIGEgbW9yZSBjb21wcmVoZW5zaXZlIHNldCBvZiBmZWF0dXJlcyB0byBzdXBwb3J0IGEgd29ya3NwYWNlLWJhc2VkIHdvcmtmbG93LlxuXG5GZWF0dXJlczpcbi0gICBGaXJzdCBjbGFzcyBzdXBwb3J0IGZvciBzdGF0aWMgYW5kIGR5bmFtaWMgd29ya3NwYWNlcyBhcyB3ZWxsIGFzIG11bHRpLW1vbml0b3Igc2V0dXBzXG4tICAgQWRkLCByZW1vdmUsIGFuZCByZW5hbWUgd29ya3NwYWNlc1xuLSAgIFJlYXJyYW5nZSB3b3Jrc3BhY2VzIHZpYSBkcmFnIGFuZCBkcm9wXG4tICAgQXV0b21hdGljYWxseSBhc3NpZ24gd29ya3NwYWNlIG5hbWVzIGJhc2VkIG9uIHN0YXJ0ZWQgYXBwbGljYXRpb25zXG4tICAgS2V5Ym9hcmQgc2hvcnRjdXRzIGV4dGVuZCBhbmQgcmVmaW5lIHN5c3RlbSBzaG9ydGN1dHNcbi0gICBTY3JvbGwgdGhyb3VnaCB3b3Jrc3BhY2VzIGJ5IG1vdXNlIHdoZWVsIG92ZXIgdGhlIHBhbmVsXG4tICAgQ3VzdG9taXplIHRoZSBhcHBlYXJhbmNlIiwKICAibmFtZSI6ICJTcGFjZSBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3BhY2UtYmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdG9waGVyLWwvc3BhY2UtYmFyIiwKICAidXVpZCI6ICJzcGFjZS1iYXJAbHVjaHJpb2giLAogICJ2ZXJzaW9uIjogMjUKfQ=="}
+    "46": {"version": "26", "sha256": "0y7k7n0wdhpwsydv2zas6naw4nn0x8day4d553blqa7xd8yz5jlw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSB0b3AtcGFuZWwgd29ya3NwYWNlIGluZGljYXRvciB3aXRoIGFuIGkzLWxpa2Ugd29ya3NwYWNlcyBiYXIuXG5cbk9yaWdpbmFsbHkgYSBmb3JrIG9mIHRoZSBleHRlbnNpb24gV29ya3NwYWNlcyBCYXIgYnkgZnRoeCwgdGhpcyBleHRlbnNpb24gZ3JldyBpbnRvIGEgbW9yZSBjb21wcmVoZW5zaXZlIHNldCBvZiBmZWF0dXJlcyB0byBzdXBwb3J0IGEgd29ya3NwYWNlLWJhc2VkIHdvcmtmbG93LlxuXG5GZWF0dXJlczpcbi0gICBGaXJzdCBjbGFzcyBzdXBwb3J0IGZvciBzdGF0aWMgYW5kIGR5bmFtaWMgd29ya3NwYWNlcyBhcyB3ZWxsIGFzIG11bHRpLW1vbml0b3Igc2V0dXBzXG4tICAgQWRkLCByZW1vdmUsIGFuZCByZW5hbWUgd29ya3NwYWNlc1xuLSAgIFJlYXJyYW5nZSB3b3Jrc3BhY2VzIHZpYSBkcmFnIGFuZCBkcm9wXG4tICAgQXV0b21hdGljYWxseSBhc3NpZ24gd29ya3NwYWNlIG5hbWVzIGJhc2VkIG9uIHN0YXJ0ZWQgYXBwbGljYXRpb25zXG4tICAgS2V5Ym9hcmQgc2hvcnRjdXRzIGV4dGVuZCBhbmQgcmVmaW5lIHN5c3RlbSBzaG9ydGN1dHNcbi0gICBTY3JvbGwgdGhyb3VnaCB3b3Jrc3BhY2VzIGJ5IG1vdXNlIHdoZWVsIG92ZXIgdGhlIHBhbmVsXG4tICAgQ3VzdG9taXplIHRoZSBhcHBlYXJhbmNlIiwKICAibmFtZSI6ICJTcGFjZSBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3BhY2UtYmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdG9waGVyLWwvc3BhY2UtYmFyIiwKICAidXVpZCI6ICJzcGFjZS1iYXJAbHVjaHJpb2giLAogICJ2ZXJzaW9uIjogMjYKfQ=="}
   }}
 , {"uuid": "gnome-shellext-hide-lock@adyrosebrigg", "name": "Hide Lock item in System Menu", "pname": "hide-lock-item-in-system-menu", "description": "Hides the \"Lock\" option from the system menu dropdown in the top right.", "link": "https://extensions.gnome.org/extension/5091/hide-lock-item-in-system-menu/", "shell_version_map": {
     "42": {"version": "2", "sha256": "0ab3yc5z9yhvp21145cfgh88sby4x464argy12c80anyhf55zm79", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBcIkxvY2tcIiBvcHRpb24gZnJvbSB0aGUgc3lzdGVtIG1lbnUgZHJvcGRvd24gaW4gdGhlIHRvcCByaWdodC4iLAogICJuYW1lIjogIkhpZGUgTG9jayBpdGVtIGluIFN5c3RlbSBNZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FkeXJvc2VicmlnZy9nbm9tZS1zaGVsbGV4dC1oaWRlLWxvY2siLAogICJ1dWlkIjogImdub21lLXNoZWxsZXh0LWhpZGUtbG9ja0BhZHlyb3NlYnJpZ2ciLAogICJ2ZXJzaW9uIjogMgp9"}
@@ -5087,15 +5125,15 @@
     "42": {"version": "21", "sha256": "06hfl07q9v6r6igys09c2bk7r1jdv588nl6m1br382fl8b6g5bgg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBEb2NrZXIgYW5kIERvY2tlciBDb21wb3NlLiIsCiAgIm5hbWUiOiAiRG9ja2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3RpY2ttYW5fMHgwMC9nbm9tZV9zaGVsbF9leHRlbnNpb25fZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJAc3RpY2ttYW5fMHgwMC5jb20iLAogICJ2ZXJzaW9uIjogMjEKfQ=="},
     "43": {"version": "21", "sha256": "06hfl07q9v6r6igys09c2bk7r1jdv588nl6m1br382fl8b6g5bgg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBEb2NrZXIgYW5kIERvY2tlciBDb21wb3NlLiIsCiAgIm5hbWUiOiAiRG9ja2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3RpY2ttYW5fMHgwMC9nbm9tZV9zaGVsbF9leHRlbnNpb25fZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJAc3RpY2ttYW5fMHgwMC5jb20iLAogICJ2ZXJzaW9uIjogMjEKfQ=="},
     "44": {"version": "21", "sha256": "06hfl07q9v6r6igys09c2bk7r1jdv588nl6m1br382fl8b6g5bgg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBEb2NrZXIgYW5kIERvY2tlciBDb21wb3NlLiIsCiAgIm5hbWUiOiAiRG9ja2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3RpY2ttYW5fMHgwMC9nbm9tZV9zaGVsbF9leHRlbnNpb25fZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJAc3RpY2ttYW5fMHgwMC5jb20iLAogICJ2ZXJzaW9uIjogMjEKfQ=="},
-    "45": {"version": "31", "sha256": "02vkhxs5nm0jap716gbqzyyznmldy87lfgbn512x448y5h8v9fgd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBEb2NrZXIgYW5kIERvY2tlciBDb21wb3NlLiIsCiAgImdldHRleHQtZG9tYWluIjogImRvY2tlckBzdGlja21hbl8weDAwLmNvbSIsCiAgIm5hbWUiOiAiRG9ja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRvY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3RpY2ttYW5fMHgwMC9nbm9tZV9zaGVsbF9leHRlbnNpb25fZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJAc3RpY2ttYW5fMHgwMC5jb20iLAogICJ2ZXJzaW9uIjogMzEKfQ=="},
-    "46": {"version": "31", "sha256": "02vkhxs5nm0jap716gbqzyyznmldy87lfgbn512x448y5h8v9fgd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBEb2NrZXIgYW5kIERvY2tlciBDb21wb3NlLiIsCiAgImdldHRleHQtZG9tYWluIjogImRvY2tlckBzdGlja21hbl8weDAwLmNvbSIsCiAgIm5hbWUiOiAiRG9ja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRvY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3RpY2ttYW5fMHgwMC9nbm9tZV9zaGVsbF9leHRlbnNpb25fZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJAc3RpY2ttYW5fMHgwMC5jb20iLAogICJ2ZXJzaW9uIjogMzEKfQ=="}
+    "45": {"version": "33", "sha256": "019j0gskzfdh1snbhyqxhiskyqaqhszsw5flapmx6ndwcn5fjybs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBEb2NrZXIgYW5kIERvY2tlciBDb21wb3NlLiIsCiAgImdldHRleHQtZG9tYWluIjogImRvY2tlckBzdGlja21hbl8weDAwLmNvbSIsCiAgIm5hbWUiOiAiRG9ja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRvY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3RpY2ttYW5fMHgwMC9nbm9tZV9zaGVsbF9leHRlbnNpb25fZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJAc3RpY2ttYW5fMHgwMC5jb20iLAogICJ2ZXJzaW9uIjogMzMKfQ=="},
+    "46": {"version": "33", "sha256": "019j0gskzfdh1snbhyqxhiskyqaqhszsw5flapmx6ndwcn5fjybs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBEb2NrZXIgYW5kIERvY2tlciBDb21wb3NlLiIsCiAgImdldHRleHQtZG9tYWluIjogImRvY2tlckBzdGlja21hbl8weDAwLmNvbSIsCiAgIm5hbWUiOiAiRG9ja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRvY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3RpY2ttYW5fMHgwMC9nbm9tZV9zaGVsbF9leHRlbnNpb25fZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJAc3RpY2ttYW5fMHgwMC5jb20iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}
   }}
 , {"uuid": "reboottouefi@ubaygd.com", "name": "RebootToUEFI", "pname": "reboottouefi", "description": "Reboot system into UEFI", "link": "https://extensions.gnome.org/extension/5105/reboottouefi/", "shell_version_map": {
     "42": {"version": "14", "sha256": "1yqp2hhmcymzjyq3shwh1cld423iah9s8s3caqmjrln7vjh4syrw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlYm9vdCBzeXN0ZW0gaW50byBVRUZJIiwKICAibGljZW5zZSI6ICJHUEx2MyIsCiAgIm5hbWUiOiAiUmVib290VG9VRUZJIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVWJheUdEL3JlYm9vdHRvdWVmaSIsCiAgInV1aWQiOiAicmVib290dG91ZWZpQHViYXlnZC5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="},
     "43": {"version": "14", "sha256": "1yqp2hhmcymzjyq3shwh1cld423iah9s8s3caqmjrln7vjh4syrw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlYm9vdCBzeXN0ZW0gaW50byBVRUZJIiwKICAibGljZW5zZSI6ICJHUEx2MyIsCiAgIm5hbWUiOiAiUmVib290VG9VRUZJIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVWJheUdEL3JlYm9vdHRvdWVmaSIsCiAgInV1aWQiOiAicmVib290dG91ZWZpQHViYXlnZC5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="},
     "44": {"version": "14", "sha256": "1yqp2hhmcymzjyq3shwh1cld423iah9s8s3caqmjrln7vjh4syrw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlYm9vdCBzeXN0ZW0gaW50byBVRUZJIiwKICAibGljZW5zZSI6ICJHUEx2MyIsCiAgIm5hbWUiOiAiUmVib290VG9VRUZJIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVWJheUdEL3JlYm9vdHRvdWVmaSIsCiAgInV1aWQiOiAicmVib290dG91ZWZpQHViYXlnZC5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="},
-    "45": {"version": "21", "sha256": "18c7ib0cmpf1ac3x1b3p91ydf4c3f08vp3zzivmx1qgj2b4595a1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlYm9vdCBzeXN0ZW0gaW50byBVRUZJIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicmVib290dG91ZWZpQHViYXlnZC5jb20iLAogICJsaWNlbnNlIjogIkdQTHYzIiwKICAibmFtZSI6ICJSZWJvb3RUb1VFRkkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1ViYXlHRC9yZWJvb3R0b3VlZmkiLAogICJ1dWlkIjogInJlYm9vdHRvdWVmaUB1YmF5Z2QuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="},
-    "46": {"version": "21", "sha256": "18c7ib0cmpf1ac3x1b3p91ydf4c3f08vp3zzivmx1qgj2b4595a1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlYm9vdCBzeXN0ZW0gaW50byBVRUZJIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicmVib290dG91ZWZpQHViYXlnZC5jb20iLAogICJsaWNlbnNlIjogIkdQTHYzIiwKICAibmFtZSI6ICJSZWJvb3RUb1VFRkkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1ViYXlHRC9yZWJvb3R0b3VlZmkiLAogICJ1dWlkIjogInJlYm9vdHRvdWVmaUB1YmF5Z2QuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}
+    "45": {"version": "22", "sha256": "167i8z1i04b9q5isbrwd8a7n6rw6w23qc7nvck8w7qrls83cc280", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlYm9vdCBzeXN0ZW0gaW50byBVRUZJIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicmVib290dG91ZWZpQHViYXlnZC5jb20iLAogICJsaWNlbnNlIjogIkdQTHYzIiwKICAibmFtZSI6ICJSZWJvb3RUb1VFRkkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1ViYXlHRC9yZWJvb3R0b3VlZmkiLAogICJ1dWlkIjogInJlYm9vdHRvdWVmaUB1YmF5Z2QuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="},
+    "46": {"version": "22", "sha256": "167i8z1i04b9q5isbrwd8a7n6rw6w23qc7nvck8w7qrls83cc280", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlYm9vdCBzeXN0ZW0gaW50byBVRUZJIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicmVib290dG91ZWZpQHViYXlnZC5jb20iLAogICJsaWNlbnNlIjogIkdQTHYzIiwKICAibmFtZSI6ICJSZWJvb3RUb1VFRkkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1ViYXlHRC9yZWJvb3R0b3VlZmkiLAogICJ1dWlkIjogInJlYm9vdHRvdWVmaUB1YmF5Z2QuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}
   }}
 , {"uuid": "touch-ux@dblandford.com", "name": "Touch-UX", "pname": "touch-ux", "description": "Provides a swipe up gesture bar and a status bar shortcut to force the on screen keyboard to show in scenarios that it does not automatically show when expected.", "link": "https://extensions.gnome.org/extension/5108/touch-ux/", "shell_version_map": {
     "42": {"version": "3", "sha256": "1vjchsz0jml0qaj2mz0khsagacxz1m60ypcjnymh3swrx9lj765m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGVzIGEgc3dpcGUgdXAgZ2VzdHVyZSBiYXIgYW5kIGEgc3RhdHVzIGJhciBzaG9ydGN1dCB0byBmb3JjZSB0aGUgb24gc2NyZWVuIGtleWJvYXJkIHRvIHNob3cgaW4gc2NlbmFyaW9zIHRoYXQgaXQgZG9lcyBub3QgYXV0b21hdGljYWxseSBzaG93IHdoZW4gZXhwZWN0ZWQuIiwKICAibmFtZSI6ICJUb3VjaC1VWCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9EYW5pZWwtQmxhbmRmb3JkL1RvdWNoLVVYIiwKICAidXVpZCI6ICJ0b3VjaC11eEBkYmxhbmRmb3JkLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}
@@ -5186,16 +5224,17 @@
     "42": {"version": "10", "sha256": "0ca4nlss4j5rmq8xaqvjxxacdhb1vlmydqp4cal77mgzk79q63nk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVQb3dlciBCYXR0ZXJ5IEluZGljYXRvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cG93ZXJfYmF0dGVyeV9pbmRpY2F0b3IiLAogICJuYW1lIjogIlVQb3dlciBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29kaWxpYS91cG93ZXItYmF0dGVyeSIsCiAgInV1aWQiOiAidXBvd2VyLWJhdHRlcnlAY29kaWxpYS5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
     "43": {"version": "10", "sha256": "0ca4nlss4j5rmq8xaqvjxxacdhb1vlmydqp4cal77mgzk79q63nk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVQb3dlciBCYXR0ZXJ5IEluZGljYXRvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cG93ZXJfYmF0dGVyeV9pbmRpY2F0b3IiLAogICJuYW1lIjogIlVQb3dlciBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29kaWxpYS91cG93ZXItYmF0dGVyeSIsCiAgInV1aWQiOiAidXBvd2VyLWJhdHRlcnlAY29kaWxpYS5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
     "44": {"version": "10", "sha256": "0ca4nlss4j5rmq8xaqvjxxacdhb1vlmydqp4cal77mgzk79q63nk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVQb3dlciBCYXR0ZXJ5IEluZGljYXRvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cG93ZXJfYmF0dGVyeV9pbmRpY2F0b3IiLAogICJuYW1lIjogIlVQb3dlciBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29kaWxpYS91cG93ZXItYmF0dGVyeSIsCiAgInV1aWQiOiAidXBvd2VyLWJhdHRlcnlAY29kaWxpYS5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
-    "45": {"version": "16", "sha256": "09hxl6scc3jslfjxl4dsy76fkj8sjb0rhbs4y3d9id6n3gszgqny", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVQb3dlciBCYXR0ZXJ5IEluZGljYXRvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cG93ZXJfYmF0dGVyeV9pbmRpY2F0b3IiLAogICJuYW1lIjogIlVQb3dlciBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NvZGlsaWEvdXBvd2VyLWJhdHRlcnkiLAogICJ1dWlkIjogInVwb3dlci1iYXR0ZXJ5QGNvZGlsaWEuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}
+    "45": {"version": "19", "sha256": "0j7w5bscinqzjldjf056ckfxsadzicz0mj4y0zwniisjixp2c7zj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVQb3dlciBCYXR0ZXJ5IEluZGljYXRvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cG93ZXJfYmF0dGVyeV9pbmRpY2F0b3IiLAogICJuYW1lIjogIlVQb3dlciBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2RpbGlhL3Vwb3dlci1iYXR0ZXJ5IiwKICAidXVpZCI6ICJ1cG93ZXItYmF0dGVyeUBjb2RpbGlhLmNvbSIsCiAgInZlcnNpb24iOiAxOQp9"},
+    "46": {"version": "19", "sha256": "0j7w5bscinqzjldjf056ckfxsadzicz0mj4y0zwniisjixp2c7zj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVQb3dlciBCYXR0ZXJ5IEluZGljYXRvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cG93ZXJfYmF0dGVyeV9pbmRpY2F0b3IiLAogICJuYW1lIjogIlVQb3dlciBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2RpbGlhL3Vwb3dlci1iYXR0ZXJ5IiwKICAidXVpZCI6ICJ1cG93ZXItYmF0dGVyeUBjb2RpbGlhLmNvbSIsCiAgInZlcnNpb24iOiAxOQp9"}
   }}
-, {"uuid": "vertical-workspaces@G-dH.github.com", "name": "V-Shell (Vertical Workspaces)", "pname": "vertical-workspaces", "description": "Customize your GNOME Shell UX to fit your workflow, whether you like horizontally or vertically stacked workspaces. Originally Vertical Workspaces.\n\nDear users, the reliability and stability of this extension is my priority, but V-Shell is an extension to default GNOME Shell and cannot be compatible with all available extensions. If you encounter any problem, first check for conflicts with other extensions and then open an issue on the Github page linked below.\n\nV-Shell includes many workarounds to survive conflicts and work with Dash to Dock / Ubuntu Dock extensions and other popular extensions, but issues may occur. The patched Dash to Dock for V-Shell is already available in my GitHub repository.\n\nAny feedback is greatly appreciated!\n\nV-Shell features:\n- vertical or horizontal orientation of workspaces\n- customize the overview layout, dimensions and contents\n- alternative overview modes with static workspace preview that reduces unnecessary movement on the screen\n- 4 predefined profiles with different layout and behavior that can be overwritten by your settings\n- wallpaper background with adjustable blur effect in the overview\n- dash icon size, content, icon click and scroll behavior\n- app grid dimensions, icon size, contents and behavior\n- active icons in the folder preview\n- close workspace button on workspace thumbnail\n- main panel position and visibility\n- hot corner/edge position and behavior\n- notifications, OSD and workspace switcher popup position\n- custom window attention handler behavior\n- improved app search provider with custom icon size\n- static background in the workspace switcher animation outside of the overview\n- independent workspace switching for each monitor (workaround)\n- workspace switcher popup appears even when switching workspace with a gesture\n- workspace isolated Dash\n- fixes (works around) several upstream bugs (known and reported)\n- modular structure of the V-Shell allows you to disable modules that you don't need or conflict with other extension that you like better for the task", "link": "https://extensions.gnome.org/extension/5177/vertical-workspaces/", "shell_version_map": {
+, {"uuid": "vertical-workspaces@G-dH.github.com", "name": "V-Shell (Vertical Workspaces)", "pname": "vertical-workspaces", "description": "Customize your GNOME Shell UX to fit your workflow, whether you like horizontally or vertically stacked workspaces.\n\nDear users, the reliability and stability of this extension is my priority, however, V-Shell is an extension to the default GNOME Shell and cannot be compatible with all available extensions. If you encounter any problem, first check for conflicts with other extensions and then open an issue on the Github page linked below.\n\nV-Shell includes many workarounds to survive conflicts and work with Dash to Dock / Ubuntu Dock extensions and other popular extensions, but issues may occur. The patched Dash to Dock for V-Shell is already available in my GitHub repository.\n\nAny feedback is greatly appreciated!\n\nV-Shell features:\n- vertical or horizontal orientation of workspaces\n- customize the overview layout, dimensions and contents\n- alternative overview modes with static workspace preview that reduces unnecessary movement on the screen\n- 4 predefined and fully customizable profiles with different layout and behavior\n- wallpaper background with adjustable brightness and blur effect in the overview\n- dash icon size, content, icon click and scroll behavior\n- app grid dimensions (columns, rows), icon size, contents and behavior\n- active icons in the folder preview\n- close workspace button on workspace thumbnail\n- main panel position and visibility\n- hot corner/edge position and behavior\n- notifications, OSD and workspace switcher popup position\n- custom window attention handler behavior\n- improved app search provider with custom icon size\n- static background in the workspace switcher animation outside of the overview\n- independent workspace switching for each monitor (workaround)\n- workspace switcher popup appears even when switching workspace with a gesture\n- workspace isolated Dash\n- fixes (works around) several upstream bugs (known and reported)\n- modular structure of the V-Shell allows you to disable modules that you don't need or conflict with other extension that you like better for the task", "link": "https://extensions.gnome.org/extension/5177/vertical-workspaces/", "shell_version_map": {
     "40": {"version": "23", "sha256": "0dp7qbbcs46w1lc2v46cvhfx7r8h1jrp95mhd8wip8c7npmnr66q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuXG5cbkRlYXIgdXNlcnMsIHRoZSByZWxpYWJpbGl0eSBhbmQgc3RhYmlsaXR5IG9mIHRoaXMgZXh0ZW5zaW9uIGlzIG15IHByaW9yaXR5LCBpZiB5b3UgZW5jb3VudGVyIGFueSBwcm9ibGVtLCBmaXJzdCBjaGVjayBmb3IgY29uZmxpY3RzIHdpdGggb3RoZXIgZXh0ZW5zaW9ucyBhbmQgdGhlbiBvcGVuIGFuIGlzc3VlIG9uIHRoZSBHaXRodWIgcGFnZSBsaW5rZWQgYmVsb3cuXG5cblYtU2hlbGwgaW5jbHVkZXMgbWFueSB3b3JrYXJvdW5kcyB0byBzdXJ2aXZlIGNvbmZsaWN0cyBhbmQgd29yayB3aXRoIERhc2ggdG8gRG9jayAvIFVidW50dSBEb2NrIGV4dGVuc2lvbnMsIGJ1dCBpc3N1ZXMgbWF5IG9jY3VyLiBJbiBhbnkgY2FzZSwgVi1TaGVsbCB3b3JrcyBiZXR0ZXIgd2l0aG91dCBEYXNoIHRvIERvY2suXG5cbkFueSBmZWVkYmFjayBpcyBncmVhdGx5IGFwcHJlY2lhdGVkLCBidXQgZG9uJ3QgZm9yZ2V0IC0gaWYgeW91IHdhbnQgbWUgdG8gd29yayBmb3IgeW91LCBiZSBuaWNlIDspXG5cblYtU2hlbGwgZmVhdHVyZXM6XG4tIHZlcnRpY2FsIG9yIGhvcml6b250YWwgb3JpZW50YXRpb24gb2Ygd29ya3NwYWNlc1xuLSBjdXN0b21pemUgdGhlIG92ZXJ2aWV3IGxheW91dCwgZGltZW5zaW9ucyBhbmQgY29udGVudHNcbi0gYWx0ZXJuYXRpdmUgb3ZlcnZpZXcgbW9kZXMgd2l0aCBzdGF0aWMgd29ya3NwYWNlIHByZXZpZXcgdGhhdCByZWR1Y2VzIHVubmVjZXNzYXJ5IG1vdmVtZW50IG9uIHRoZSBzY3JlZW5cbi0gd2FsbHBhcGVyIGJhY2tncm91bmQgd2l0aCBhZGp1c3RhYmxlIGJsdXIgZWZmZWN0IGluIHRoZSBvdmVydmlld1xuLSBkYXNoIGljb24gc2l6ZSwgY29udGVudCwgaWNvbiBjbGljayBhbmQgc2Nyb2xsIGJlaGF2aW9yXG4tIGFwcCBncmlkIGRpbWVuc2lvbnMsIGljb25zIHNpemUsIGNvbnRlbnRzIGFuZCBiZWhhdmlvclxuLSBhY3RpdmUgaWNvbnMgaW4gdGhlIGZvbGRlciBwcmV2aWV3XG4tIGNsb3NlIHdvcmtzcGFjZSBidXR0b24gb24gd29ya3NwYWNlIHRodW1ibmFpbFxuLSBtYWluIHBhbmVsIHBvc2l0aW9uIGFuZCB2aXNpYmlsaXR5XG4tIGhvdCBjb3JuZXIvZWRnZSBwb3NpdGlvbiBhbmQgYmVoYXZpb3Jcbi0gbm90aWZpY2F0aW9ucywgT1NEIGFuZCB3b3Jrc3BhY2Ugc3dpdGNoZXIgcG9wdXAgcG9zaXRpb25cbi0gY3VzdG9tIHdpbmRvdyBhdHRlbnRpb24gaGFuZGxlciBiZWhhdmlvclxuLSBpbXByb3ZlZCBhcHAgc2VhcmNoIHByb3ZpZGVyIHdpdGggY3VzdG9tIGljb24gc2l6ZVxuLSB3aW5kb3cgc2VhcmNoIHByb3ZpZGVyIGZvciBxdWljayBuYXZpZ2F0aW9uIGJldHdlZW4gd2luZG93c1xuLSByZWNlbnQgZmlsZXMgc2VhcmNoIHByb3ZpZGVyXG4tIHN0YXRpYyBiYWNrZ3JvdW5kIGluIHRoZSB3b3Jrc3BhY2Ugc3dpdGNoZXIgYW5pbWF0aW9uIG91dHNpZGUgb2YgdGhlIG92ZXJ2aWV3XG4tIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCBhcHBlYXJzIGV2ZW4gd2hlbiBzd2l0Y2hpbmcgd29ya3NwYWNlIHdpdGggYSBnZXN0dXJlXG4tIDQgcHJlZGVmaW5lZCBwcm9maWxlcyB3aXRoIGRpZmZlcmVudCBsYXlvdXQgYW5kIGJlaGF2aW9yIHRoYXQgY2FuIGJlIG92ZXJ3cml0dGVuIGJ5IHlvdXIgc2V0dGluZ3Ncbi0gZml4ZXMgKHdvcmtzIGFyb3VuZCkgc2V2ZXJhbCB1cHN0cmVhbSBidWdzIChrbm93biBhbmQgcmVwb3J0ZWQpXG4tIG1vZHVsYXIgc3RydWN0dXJlIG9mIHRoZSBWLVNoZWxsIGFsbG93cyB5b3UgdG8gZGlzYWJsZSBtb2R1bGVzIHRoYXQgeW91IGRvbid0IG5lZWQgb3IgY29uZmxpY3RzIHdpdGggb3RoZXIgZXh0ZW5zaW9uIHRoYXQgeW91IGxpa2UgYmV0dGVyIGZvciB0aGUgdGFzayIsCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMwp9"},
     "41": {"version": "23", "sha256": "0dp7qbbcs46w1lc2v46cvhfx7r8h1jrp95mhd8wip8c7npmnr66q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuXG5cbkRlYXIgdXNlcnMsIHRoZSByZWxpYWJpbGl0eSBhbmQgc3RhYmlsaXR5IG9mIHRoaXMgZXh0ZW5zaW9uIGlzIG15IHByaW9yaXR5LCBpZiB5b3UgZW5jb3VudGVyIGFueSBwcm9ibGVtLCBmaXJzdCBjaGVjayBmb3IgY29uZmxpY3RzIHdpdGggb3RoZXIgZXh0ZW5zaW9ucyBhbmQgdGhlbiBvcGVuIGFuIGlzc3VlIG9uIHRoZSBHaXRodWIgcGFnZSBsaW5rZWQgYmVsb3cuXG5cblYtU2hlbGwgaW5jbHVkZXMgbWFueSB3b3JrYXJvdW5kcyB0byBzdXJ2aXZlIGNvbmZsaWN0cyBhbmQgd29yayB3aXRoIERhc2ggdG8gRG9jayAvIFVidW50dSBEb2NrIGV4dGVuc2lvbnMsIGJ1dCBpc3N1ZXMgbWF5IG9jY3VyLiBJbiBhbnkgY2FzZSwgVi1TaGVsbCB3b3JrcyBiZXR0ZXIgd2l0aG91dCBEYXNoIHRvIERvY2suXG5cbkFueSBmZWVkYmFjayBpcyBncmVhdGx5IGFwcHJlY2lhdGVkLCBidXQgZG9uJ3QgZm9yZ2V0IC0gaWYgeW91IHdhbnQgbWUgdG8gd29yayBmb3IgeW91LCBiZSBuaWNlIDspXG5cblYtU2hlbGwgZmVhdHVyZXM6XG4tIHZlcnRpY2FsIG9yIGhvcml6b250YWwgb3JpZW50YXRpb24gb2Ygd29ya3NwYWNlc1xuLSBjdXN0b21pemUgdGhlIG92ZXJ2aWV3IGxheW91dCwgZGltZW5zaW9ucyBhbmQgY29udGVudHNcbi0gYWx0ZXJuYXRpdmUgb3ZlcnZpZXcgbW9kZXMgd2l0aCBzdGF0aWMgd29ya3NwYWNlIHByZXZpZXcgdGhhdCByZWR1Y2VzIHVubmVjZXNzYXJ5IG1vdmVtZW50IG9uIHRoZSBzY3JlZW5cbi0gd2FsbHBhcGVyIGJhY2tncm91bmQgd2l0aCBhZGp1c3RhYmxlIGJsdXIgZWZmZWN0IGluIHRoZSBvdmVydmlld1xuLSBkYXNoIGljb24gc2l6ZSwgY29udGVudCwgaWNvbiBjbGljayBhbmQgc2Nyb2xsIGJlaGF2aW9yXG4tIGFwcCBncmlkIGRpbWVuc2lvbnMsIGljb25zIHNpemUsIGNvbnRlbnRzIGFuZCBiZWhhdmlvclxuLSBhY3RpdmUgaWNvbnMgaW4gdGhlIGZvbGRlciBwcmV2aWV3XG4tIGNsb3NlIHdvcmtzcGFjZSBidXR0b24gb24gd29ya3NwYWNlIHRodW1ibmFpbFxuLSBtYWluIHBhbmVsIHBvc2l0aW9uIGFuZCB2aXNpYmlsaXR5XG4tIGhvdCBjb3JuZXIvZWRnZSBwb3NpdGlvbiBhbmQgYmVoYXZpb3Jcbi0gbm90aWZpY2F0aW9ucywgT1NEIGFuZCB3b3Jrc3BhY2Ugc3dpdGNoZXIgcG9wdXAgcG9zaXRpb25cbi0gY3VzdG9tIHdpbmRvdyBhdHRlbnRpb24gaGFuZGxlciBiZWhhdmlvclxuLSBpbXByb3ZlZCBhcHAgc2VhcmNoIHByb3ZpZGVyIHdpdGggY3VzdG9tIGljb24gc2l6ZVxuLSB3aW5kb3cgc2VhcmNoIHByb3ZpZGVyIGZvciBxdWljayBuYXZpZ2F0aW9uIGJldHdlZW4gd2luZG93c1xuLSByZWNlbnQgZmlsZXMgc2VhcmNoIHByb3ZpZGVyXG4tIHN0YXRpYyBiYWNrZ3JvdW5kIGluIHRoZSB3b3Jrc3BhY2Ugc3dpdGNoZXIgYW5pbWF0aW9uIG91dHNpZGUgb2YgdGhlIG92ZXJ2aWV3XG4tIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCBhcHBlYXJzIGV2ZW4gd2hlbiBzd2l0Y2hpbmcgd29ya3NwYWNlIHdpdGggYSBnZXN0dXJlXG4tIDQgcHJlZGVmaW5lZCBwcm9maWxlcyB3aXRoIGRpZmZlcmVudCBsYXlvdXQgYW5kIGJlaGF2aW9yIHRoYXQgY2FuIGJlIG92ZXJ3cml0dGVuIGJ5IHlvdXIgc2V0dGluZ3Ncbi0gZml4ZXMgKHdvcmtzIGFyb3VuZCkgc2V2ZXJhbCB1cHN0cmVhbSBidWdzIChrbm93biBhbmQgcmVwb3J0ZWQpXG4tIG1vZHVsYXIgc3RydWN0dXJlIG9mIHRoZSBWLVNoZWxsIGFsbG93cyB5b3UgdG8gZGlzYWJsZSBtb2R1bGVzIHRoYXQgeW91IGRvbid0IG5lZWQgb3IgY29uZmxpY3RzIHdpdGggb3RoZXIgZXh0ZW5zaW9uIHRoYXQgeW91IGxpa2UgYmV0dGVyIGZvciB0aGUgdGFzayIsCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMwp9"},
-    "42": {"version": "53", "sha256": "14jva97bd3shc3skz348pw41h9slxrkz6zd7s3x9snf4rv5xj59r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MywKICAidmVyc2lvbi1uYW1lIjogIjQ0LjExIgp9"},
-    "43": {"version": "53", "sha256": "14jva97bd3shc3skz348pw41h9slxrkz6zd7s3x9snf4rv5xj59r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MywKICAidmVyc2lvbi1uYW1lIjogIjQ0LjExIgp9"},
-    "44": {"version": "53", "sha256": "14jva97bd3shc3skz348pw41h9slxrkz6zd7s3x9snf4rv5xj59r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MywKICAidmVyc2lvbi1uYW1lIjogIjQ0LjExIgp9"},
-    "45": {"version": "52", "sha256": "172b9qzq2a6gp0qi1fv3nvnv4i3cvfwbklaa5z7n6gkx71nib400", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvdmVydGljYWwtd29ya3NwYWNlcyIsCiAgInV1aWQiOiAidmVydGljYWwtd29ya3NwYWNlc0BHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTIsCiAgInZlcnNpb24tbmFtZSI6ICI0NS4zIgp9"},
-    "46": {"version": "57", "sha256": "04vrcx2bg68cnpv93k8f3k5fp4lrm53p362jjppa2gg9hjgkjys5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvdmVydGljYWwtd29ya3NwYWNlcyIsCiAgInV1aWQiOiAidmVydGljYWwtd29ya3NwYWNlc0BHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTcsCiAgInZlcnNpb24tbmFtZSI6ICI0Ni4wLjEiCn0="}
+    "42": {"version": "61", "sha256": "1a4ahrz2ixf4lb04v0986xybms6rzkp9w4c8nbl2yg8mpdpsdl3a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2MSwKICAidmVyc2lvbi1uYW1lIjogIjQ0LjEyIgp9"},
+    "43": {"version": "61", "sha256": "1a4ahrz2ixf4lb04v0986xybms6rzkp9w4c8nbl2yg8mpdpsdl3a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2MSwKICAidmVyc2lvbi1uYW1lIjogIjQ0LjEyIgp9"},
+    "44": {"version": "61", "sha256": "1a4ahrz2ixf4lb04v0986xybms6rzkp9w4c8nbl2yg8mpdpsdl3a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2MSwKICAidmVyc2lvbi1uYW1lIjogIjQ0LjEyIgp9"},
+    "45": {"version": "60", "sha256": "0f0yfai0b8bb2734zf5jlclwnm0kpqrmy11hznkyxr6kf5c2h94c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL3ZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJ1dWlkIjogInZlcnRpY2FsLXdvcmtzcGFjZXNARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYwLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDYuMSIKfQ=="},
+    "46": {"version": "60", "sha256": "0f0yfai0b8bb2734zf5jlclwnm0kpqrmy11hznkyxr6kf5c2h94c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL3ZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJ1dWlkIjogInZlcnRpY2FsLXdvcmtzcGFjZXNARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYwLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDYuMSIKfQ=="}
   }}
 , {"uuid": "rocketbar@chepkun.github.com", "name": "Rocketbar", "pname": "rocketbar", "description": "Taskbar and misc additions for the GNOME Shell.", "link": "https://extensions.gnome.org/extension/5180/rocketbar/", "shell_version_map": {
     "42": {"version": "8", "sha256": "0p8msiyqpic8d0cv65j97gqp03vgi935rqgs2gjrffq3cg7wy2iq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2tiYXIgYW5kIG1pc2MgYWRkaXRpb25zIGZvciB0aGUgR05PTUUgU2hlbGwuXG5cbkEgbmV3IG1ham9yIHJlbGVhc2Ugd2lsbCBiZSBvdXQgbGF0ZXIgdGhpcyB5ZWFyLi4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicm9ja2V0YmFyIiwKICAibmFtZSI6ICJSb2NrZXRiYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucm9ja2V0YmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGludXgtaXMtYXdlc29tZS9nbm9tZV9leHRlbnNpb25fcm9ja2V0YmFyIiwKICAidXVpZCI6ICJyb2NrZXRiYXJAY2hlcGt1bi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="},
@@ -5233,7 +5272,8 @@
     "42": {"version": "4", "sha256": "09jcgvhlhx4hp0rj6adb0qpc6kajch8gyjfdk1vdnwxkysvr8241", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJlZXIgdGltZXIgdW50aWwgbmV4dCB3ZWVrLWVuZCAoYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjY3L3dlZWtlbmQtby1tZXRlci8pIiwKICAibmFtZSI6ICJXZWVrZW5kLU8tTWV0ZXIgUmV2aXZlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2ZmZXZlcnRvbi93ZWVrZW5kLW8tbWV0ZXIiLAogICJ1dWlkIjogIndlZWtlbmQtby1tZXRlckBjb2ZmZXZlcnRvbi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
     "43": {"version": "4", "sha256": "09jcgvhlhx4hp0rj6adb0qpc6kajch8gyjfdk1vdnwxkysvr8241", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJlZXIgdGltZXIgdW50aWwgbmV4dCB3ZWVrLWVuZCAoYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjY3L3dlZWtlbmQtby1tZXRlci8pIiwKICAibmFtZSI6ICJXZWVrZW5kLU8tTWV0ZXIgUmV2aXZlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2ZmZXZlcnRvbi93ZWVrZW5kLW8tbWV0ZXIiLAogICJ1dWlkIjogIndlZWtlbmQtby1tZXRlckBjb2ZmZXZlcnRvbi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
     "44": {"version": "4", "sha256": "09jcgvhlhx4hp0rj6adb0qpc6kajch8gyjfdk1vdnwxkysvr8241", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJlZXIgdGltZXIgdW50aWwgbmV4dCB3ZWVrLWVuZCAoYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjY3L3dlZWtlbmQtby1tZXRlci8pIiwKICAibmFtZSI6ICJXZWVrZW5kLU8tTWV0ZXIgUmV2aXZlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2ZmZXZlcnRvbi93ZWVrZW5kLW8tbWV0ZXIiLAogICJ1dWlkIjogIndlZWtlbmQtby1tZXRlckBjb2ZmZXZlcnRvbi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
-    "45": {"version": "5", "sha256": "1w0q1s4bb0jjmrkqw44ng4iaq9k3azxqchpxm6wzzc1vzxvjzl7c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJlZXIgdGltZXIgdW50aWwgbmV4dCB3ZWVrLWVuZCAoYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjY3L3dlZWtlbmQtby1tZXRlci8pIiwKICAibmFtZSI6ICJXZWVrZW5kLU8tTWV0ZXIgUmV2aXZlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2ZmZXZlcnRvbi93ZWVrZW5kLW8tbWV0ZXIiLAogICJ1dWlkIjogIndlZWtlbmQtby1tZXRlckBjb2ZmZXZlcnRvbi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}
+    "45": {"version": "6", "sha256": "0gmr2gl14h7rqwsg8d9kfdhkc48860g7g3fvr54y4sq3mp39ksdg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJlZXIgdGltZXIgdW50aWwgbmV4dCB3ZWVrLWVuZCAoYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjY3L3dlZWtlbmQtby1tZXRlci8pIiwKICAibmFtZSI6ICJXZWVrZW5kLU8tTWV0ZXIgUmV2aXZlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29mZmV2ZXJ0b24vd2Vla2VuZC1vLW1ldGVyIiwKICAidXVpZCI6ICJ3ZWVrZW5kLW8tbWV0ZXJAY29mZmV2ZXJ0b24uZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="},
+    "46": {"version": "6", "sha256": "0gmr2gl14h7rqwsg8d9kfdhkc48860g7g3fvr54y4sq3mp39ksdg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJlZXIgdGltZXIgdW50aWwgbmV4dCB3ZWVrLWVuZCAoYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjY3L3dlZWtlbmQtby1tZXRlci8pIiwKICAibmFtZSI6ICJXZWVrZW5kLU8tTWV0ZXIgUmV2aXZlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29mZmV2ZXJ0b24vd2Vla2VuZC1vLW1ldGVyIiwKICAidXVpZCI6ICJ3ZWVrZW5kLW8tbWV0ZXJAY29mZmV2ZXJ0b24uZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}
   }}
 , {"uuid": "time-in-date-menu@knedme", "name": "Time in date menu", "pname": "time-in-date-menu", "description": "Adds current time to date menu.", "link": "https://extensions.gnome.org/extension/5204/time-in-date-menu/", "shell_version_map": {
     "38": {"version": "6", "sha256": "0psshnjpqnaia7a4x2yf9k8p0vjnv01qpq5l6s7fs7d3fccl26lx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgY3VycmVudCB0aW1lIHRvIGRhdGUgbWVudS4iLAogICJuYW1lIjogIlRpbWUgaW4gZGF0ZSBtZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRpbWUtaW4tZGF0ZS1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9LbmVkbWUvVGltZS1pbi1kYXRlLW1lbnUiLAogICJ1dWlkIjogInRpbWUtaW4tZGF0ZS1tZW51QGtuZWRtZSIsCiAgInZlcnNpb24iOiA2Cn0="},
@@ -5295,8 +5335,8 @@
     "42": {"version": "60", "sha256": "0gxn065ls150nj88zslng8lkhqfzba8lkhxyi74rpqn477ss6y9q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgR3RrNCBpY29ucyB0byB0aGUgR25vbWUgZGVza3RvcC4gR3RrNCBGb3JrIG9mIHRoZSBvcmlnaW5hbCBEZXNrdG9wIEljb25zIGV4dGVuc2lvbiwgd2l0aCBzZXZlcmFsIGVuaGFuY2VtZW50cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAibmFtZSI6ICJHdGs0IERlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndGs0LWRpbmciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9zbWVkaXVzL2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImd0azQtZGluZ0BzbWVkaXVzLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogNjAKfQ=="},
     "43": {"version": "60", "sha256": "0gxn065ls150nj88zslng8lkhqfzba8lkhxyi74rpqn477ss6y9q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgR3RrNCBpY29ucyB0byB0aGUgR25vbWUgZGVza3RvcC4gR3RrNCBGb3JrIG9mIHRoZSBvcmlnaW5hbCBEZXNrdG9wIEljb25zIGV4dGVuc2lvbiwgd2l0aCBzZXZlcmFsIGVuaGFuY2VtZW50cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAibmFtZSI6ICJHdGs0IERlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndGs0LWRpbmciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9zbWVkaXVzL2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImd0azQtZGluZ0BzbWVkaXVzLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogNjAKfQ=="},
     "44": {"version": "67", "sha256": "1bz5bs2llbklzn0wvqn300gd1g39qgdsgl5hwi1ndwd2wdl1mdbq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgR3RrNCBpY29ucyB0byB0aGUgR25vbWUgZGVza3RvcC4gR3RrNCBGb3JrIG9mIHRoZSBvcmlnaW5hbCBEZXNrdG9wIEljb25zIGV4dGVuc2lvbiwgd2l0aCBzZXZlcmFsIGVuaGFuY2VtZW50cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAibmFtZSI6ICJHdGs0IERlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndGs0LWRpbmciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc21lZGl1cy9kZXNrdG9wLWljb25zLW5nIiwKICAidXVpZCI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDY3Cn0="},
-    "45": {"version": "78", "sha256": "0xf2wwx7srrmyjss4gb5mkr6rjaax8zyilbhs92jigvi2qz8ryz8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgR3RrNCBpY29ucyB0byB0aGUgR25vbWUgZGVza3RvcC4gR3RrNCBGb3JrIG9mIHRoZSBvcmlnaW5hbCBEZXNrdG9wIEljb25zIGV4dGVuc2lvbiwgd2l0aCBzZXZlcmFsIGVuaGFuY2VtZW50cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJndGs0LWRpbmciLAogICJuYW1lIjogIkd0azQgRGVza3RvcCBJY29ucyBORyAoRElORykiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0azQtZGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc21lZGl1cy9kZXNrdG9wLWljb25zLW5nIiwKICAidXVpZCI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDc4LAogICJ2ZXJzaW9uLW5hbWUiOiAiNzUiCn0="},
-    "46": {"version": "78", "sha256": "0xf2wwx7srrmyjss4gb5mkr6rjaax8zyilbhs92jigvi2qz8ryz8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgR3RrNCBpY29ucyB0byB0aGUgR25vbWUgZGVza3RvcC4gR3RrNCBGb3JrIG9mIHRoZSBvcmlnaW5hbCBEZXNrdG9wIEljb25zIGV4dGVuc2lvbiwgd2l0aCBzZXZlcmFsIGVuaGFuY2VtZW50cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJndGs0LWRpbmciLAogICJuYW1lIjogIkd0azQgRGVza3RvcCBJY29ucyBORyAoRElORykiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0azQtZGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc21lZGl1cy9kZXNrdG9wLWljb25zLW5nIiwKICAidXVpZCI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDc4LAogICJ2ZXJzaW9uLW5hbWUiOiAiNzUiCn0="}
+    "45": {"version": "79", "sha256": "08m66dmy4d018qv9n4b4akx15kwcmbi1r8v88lygwhmxcw7bilrg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgR3RrNCBpY29ucyB0byB0aGUgR25vbWUgZGVza3RvcC4gR3RrNCBGb3JrIG9mIHRoZSBvcmlnaW5hbCBEZXNrdG9wIEljb25zIGV4dGVuc2lvbiwgd2l0aCBzZXZlcmFsIGVuaGFuY2VtZW50cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJndGs0LWRpbmciLAogICJuYW1lIjogIkd0azQgRGVza3RvcCBJY29ucyBORyAoRElORykiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0azQtZGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc21lZGl1cy9kZXNrdG9wLWljb25zLW5nIiwKICAidXVpZCI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDc5LAogICJ2ZXJzaW9uLW5hbWUiOiAiNzYiCn0="},
+    "46": {"version": "79", "sha256": "08m66dmy4d018qv9n4b4akx15kwcmbi1r8v88lygwhmxcw7bilrg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgR3RrNCBpY29ucyB0byB0aGUgR25vbWUgZGVza3RvcC4gR3RrNCBGb3JrIG9mIHRoZSBvcmlnaW5hbCBEZXNrdG9wIEljb25zIGV4dGVuc2lvbiwgd2l0aCBzZXZlcmFsIGVuaGFuY2VtZW50cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJndGs0LWRpbmciLAogICJuYW1lIjogIkd0azQgRGVza3RvcCBJY29ucyBORyAoRElORykiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0azQtZGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc21lZGl1cy9kZXNrdG9wLWljb25zLW5nIiwKICAidXVpZCI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDc5LAogICJ2ZXJzaW9uLW5hbWUiOiAiNzYiCn0="}
   }}
 , {"uuid": "fig-gnome-integration@fig.io", "name": "Fig GNOME Integration", "pname": "fig-gnome-integration", "description": "Tightly integrates Fig with GNOME shell", "link": "https://extensions.gnome.org/extension/5266/fig-gnome-integration/", "shell_version_map": {
     "41": {"version": "6", "sha256": "1j5wy8zb5jnm4gh0y3brr6663ykjh56ximygkchns8ahyjmba85p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpZ2h0bHkgaW50ZWdyYXRlcyBGaWcgd2l0aCBHTk9NRSBzaGVsbCIsCiAgImdldHRleHQtZG9tYWluIjogImZpZy1nbm9tZS1pbnRlZ3JhdGlvbiIsCiAgIm5hbWUiOiAiRmlnIEdOT01FIEludGVncmF0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZpZy1nbm9tZS1pbnRlZ3JhdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dpdGhmaWcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJmaWctZ25vbWUtaW50ZWdyYXRpb25AZmlnLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="},
@@ -5509,8 +5549,8 @@
     "42": {"version": "10", "sha256": "0sga40ixfj8wcxm66wm2rvcyzgbdfzl7ji8hjwqa0hx1s125nv60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZCBhIHN3aXRjaCB0byB0aGUgV2lGaSBtZW51LCBpbiB0aGUgR05PTUUgc3lzdGVtIG1lbnUsIHRoYXQgc2hvdyBhIFFSIENvZGUgb2YgdGhlIGFjdGl2ZSBjb25uZWN0aW9uLlxuXG5UaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHF1aWNrbHkgY29ubmVjdGluZyBkZXZpY2VzIGNhcGFibGUgb2YgcmVhZGluZyBRUiBDb2RlIGFuZCBhcHBseWluZyB0aGUgc2V0dGluZ3MgdG8gdGhlIHN5c3RlbSwgd2l0aG91dCBoYXZpbmcgdG8gdHlwZSBpbiB0aGUgbmFtZSBhbmQgdGhlIHBhc3N3b3JkIG9mIHRoZSBXaUZpLiAoZS5nLiBBbmRyb2lkIFNtYXJ0cGhvbmUpLiBcblxuRnJvbSB2ZXJzaW9uIDQgYWRkZWQgYSBmdW5jdGlvbmFsaXR5IHRvIGNvcHkgdGhlIFFSIENvZGUgdG8gY2xpcGJvYXJkIHdpdGggcmlnaHQgY2xpY2sgb24gaXQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpZmlxcmNvZGUiLAogICJuYW1lIjogIldpZmkgUVIgQ29kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi13aWZpcXJjb2RlIiwKICAidXVpZCI6ICJ3aWZpcXJjb2RlQGdsZXJyby5wbS5tZSIsCiAgInZlcnNpb24iOiAxMAp9"},
     "43": {"version": "10", "sha256": "0sga40ixfj8wcxm66wm2rvcyzgbdfzl7ji8hjwqa0hx1s125nv60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZCBhIHN3aXRjaCB0byB0aGUgV2lGaSBtZW51LCBpbiB0aGUgR05PTUUgc3lzdGVtIG1lbnUsIHRoYXQgc2hvdyBhIFFSIENvZGUgb2YgdGhlIGFjdGl2ZSBjb25uZWN0aW9uLlxuXG5UaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHF1aWNrbHkgY29ubmVjdGluZyBkZXZpY2VzIGNhcGFibGUgb2YgcmVhZGluZyBRUiBDb2RlIGFuZCBhcHBseWluZyB0aGUgc2V0dGluZ3MgdG8gdGhlIHN5c3RlbSwgd2l0aG91dCBoYXZpbmcgdG8gdHlwZSBpbiB0aGUgbmFtZSBhbmQgdGhlIHBhc3N3b3JkIG9mIHRoZSBXaUZpLiAoZS5nLiBBbmRyb2lkIFNtYXJ0cGhvbmUpLiBcblxuRnJvbSB2ZXJzaW9uIDQgYWRkZWQgYSBmdW5jdGlvbmFsaXR5IHRvIGNvcHkgdGhlIFFSIENvZGUgdG8gY2xpcGJvYXJkIHdpdGggcmlnaHQgY2xpY2sgb24gaXQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpZmlxcmNvZGUiLAogICJuYW1lIjogIldpZmkgUVIgQ29kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi13aWZpcXJjb2RlIiwKICAidXVpZCI6ICJ3aWZpcXJjb2RlQGdsZXJyby5wbS5tZSIsCiAgInZlcnNpb24iOiAxMAp9"},
     "44": {"version": "10", "sha256": "0sga40ixfj8wcxm66wm2rvcyzgbdfzl7ji8hjwqa0hx1s125nv60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZCBhIHN3aXRjaCB0byB0aGUgV2lGaSBtZW51LCBpbiB0aGUgR05PTUUgc3lzdGVtIG1lbnUsIHRoYXQgc2hvdyBhIFFSIENvZGUgb2YgdGhlIGFjdGl2ZSBjb25uZWN0aW9uLlxuXG5UaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHF1aWNrbHkgY29ubmVjdGluZyBkZXZpY2VzIGNhcGFibGUgb2YgcmVhZGluZyBRUiBDb2RlIGFuZCBhcHBseWluZyB0aGUgc2V0dGluZ3MgdG8gdGhlIHN5c3RlbSwgd2l0aG91dCBoYXZpbmcgdG8gdHlwZSBpbiB0aGUgbmFtZSBhbmQgdGhlIHBhc3N3b3JkIG9mIHRoZSBXaUZpLiAoZS5nLiBBbmRyb2lkIFNtYXJ0cGhvbmUpLiBcblxuRnJvbSB2ZXJzaW9uIDQgYWRkZWQgYSBmdW5jdGlvbmFsaXR5IHRvIGNvcHkgdGhlIFFSIENvZGUgdG8gY2xpcGJvYXJkIHdpdGggcmlnaHQgY2xpY2sgb24gaXQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpZmlxcmNvZGUiLAogICJuYW1lIjogIldpZmkgUVIgQ29kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi13aWZpcXJjb2RlIiwKICAidXVpZCI6ICJ3aWZpcXJjb2RlQGdsZXJyby5wbS5tZSIsCiAgInZlcnNpb24iOiAxMAp9"},
-    "45": {"version": "14", "sha256": "167lllr4fy8xl8fdc3sn3b2gl66n4qmmxdd5wj6ra061cp1kz3ky", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZCBhIHN3aXRjaCB0byB0aGUgV2lGaSBtZW51LCBpbiB0aGUgR05PTUUgc3lzdGVtIG1lbnUsIHRoYXQgc2hvdyBhIFFSIENvZGUgb2YgdGhlIGFjdGl2ZSBjb25uZWN0aW9uLlxuXG5UaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHF1aWNrbHkgY29ubmVjdGluZyBkZXZpY2VzIGNhcGFibGUgb2YgcmVhZGluZyBRUiBDb2RlIGFuZCBhcHBseWluZyB0aGUgc2V0dGluZ3MgdG8gdGhlIHN5c3RlbSwgd2l0aG91dCBoYXZpbmcgdG8gdHlwZSBpbiB0aGUgbmFtZSBhbmQgdGhlIHBhc3N3b3JkIG9mIHRoZSBXaUZpLiAoZS5nLiBBbmRyb2lkIFNtYXJ0cGhvbmUpLiBcblxuRnJvbSB2ZXJzaW9uIDQgYWRkZWQgYSBmdW5jdGlvbmFsaXR5IHRvIGNvcHkgdGhlIFFSIENvZGUgdG8gY2xpcGJvYXJkIHdpdGggcmlnaHQgY2xpY2sgb24gaXQuIiwKICAiZG9uYXRpb25zIjogewogICAgImtvZmkiOiAiZ2xlcnJvIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi13aWZpcXJjb2RlIiwKICAibmFtZSI6ICJXaWZpIFFSIENvZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2dsZXJyby9nbm9tZS1zaGVsbC1leHRlbnNpb24td2lmaXFyY29kZSIsCiAgInV1aWQiOiAid2lmaXFyY29kZUBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTQKfQ=="},
-    "46": {"version": "14", "sha256": "167lllr4fy8xl8fdc3sn3b2gl66n4qmmxdd5wj6ra061cp1kz3ky", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZCBhIHN3aXRjaCB0byB0aGUgV2lGaSBtZW51LCBpbiB0aGUgR05PTUUgc3lzdGVtIG1lbnUsIHRoYXQgc2hvdyBhIFFSIENvZGUgb2YgdGhlIGFjdGl2ZSBjb25uZWN0aW9uLlxuXG5UaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHF1aWNrbHkgY29ubmVjdGluZyBkZXZpY2VzIGNhcGFibGUgb2YgcmVhZGluZyBRUiBDb2RlIGFuZCBhcHBseWluZyB0aGUgc2V0dGluZ3MgdG8gdGhlIHN5c3RlbSwgd2l0aG91dCBoYXZpbmcgdG8gdHlwZSBpbiB0aGUgbmFtZSBhbmQgdGhlIHBhc3N3b3JkIG9mIHRoZSBXaUZpLiAoZS5nLiBBbmRyb2lkIFNtYXJ0cGhvbmUpLiBcblxuRnJvbSB2ZXJzaW9uIDQgYWRkZWQgYSBmdW5jdGlvbmFsaXR5IHRvIGNvcHkgdGhlIFFSIENvZGUgdG8gY2xpcGJvYXJkIHdpdGggcmlnaHQgY2xpY2sgb24gaXQuIiwKICAiZG9uYXRpb25zIjogewogICAgImtvZmkiOiAiZ2xlcnJvIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi13aWZpcXJjb2RlIiwKICAibmFtZSI6ICJXaWZpIFFSIENvZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2dsZXJyby9nbm9tZS1zaGVsbC1leHRlbnNpb24td2lmaXFyY29kZSIsCiAgInV1aWQiOiAid2lmaXFyY29kZUBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}
+    "45": {"version": "15", "sha256": "17ilw08bwr8wdhybcvbjvyy41iaqcdqmwl18kld37dzhp1ninp8q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZCBhIHN3aXRjaCB0byB0aGUgV2lGaSBtZW51LCBpbiB0aGUgR05PTUUgc3lzdGVtIG1lbnUsIHRoYXQgc2hvdyBhIFFSIENvZGUgb2YgdGhlIGFjdGl2ZSBjb25uZWN0aW9uLlxuXG5UaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHF1aWNrbHkgY29ubmVjdGluZyBkZXZpY2VzIGNhcGFibGUgb2YgcmVhZGluZyBRUiBDb2RlIGFuZCBhcHBseWluZyB0aGUgc2V0dGluZ3MgdG8gdGhlIHN5c3RlbSwgd2l0aG91dCBoYXZpbmcgdG8gdHlwZSBpbiB0aGUgbmFtZSBhbmQgdGhlIHBhc3N3b3JkIG9mIHRoZSBXaUZpLiAoZS5nLiBBbmRyb2lkIFNtYXJ0cGhvbmUpLiBcblxuRnJvbSB2ZXJzaW9uIDQgYWRkZWQgYSBmdW5jdGlvbmFsaXR5IHRvIGNvcHkgdGhlIFFSIENvZGUgdG8gY2xpcGJvYXJkIHdpdGggcmlnaHQgY2xpY2sgb24gaXQuIiwKICAiZG9uYXRpb25zIjogewogICAgImtvZmkiOiAiZ2xlcnJvIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi13aWZpcXJjb2RlIiwKICAibmFtZSI6ICJXaWZpIFFSIENvZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2dsZXJyby9nbm9tZS1zaGVsbC1leHRlbnNpb24td2lmaXFyY29kZSIsCiAgInV1aWQiOiAid2lmaXFyY29kZUBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTUsCiAgInZlcnNpb24tbmFtZSI6ICIyLjIuMCIKfQ=="},
+    "46": {"version": "15", "sha256": "17ilw08bwr8wdhybcvbjvyy41iaqcdqmwl18kld37dzhp1ninp8q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZCBhIHN3aXRjaCB0byB0aGUgV2lGaSBtZW51LCBpbiB0aGUgR05PTUUgc3lzdGVtIG1lbnUsIHRoYXQgc2hvdyBhIFFSIENvZGUgb2YgdGhlIGFjdGl2ZSBjb25uZWN0aW9uLlxuXG5UaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHF1aWNrbHkgY29ubmVjdGluZyBkZXZpY2VzIGNhcGFibGUgb2YgcmVhZGluZyBRUiBDb2RlIGFuZCBhcHBseWluZyB0aGUgc2V0dGluZ3MgdG8gdGhlIHN5c3RlbSwgd2l0aG91dCBoYXZpbmcgdG8gdHlwZSBpbiB0aGUgbmFtZSBhbmQgdGhlIHBhc3N3b3JkIG9mIHRoZSBXaUZpLiAoZS5nLiBBbmRyb2lkIFNtYXJ0cGhvbmUpLiBcblxuRnJvbSB2ZXJzaW9uIDQgYWRkZWQgYSBmdW5jdGlvbmFsaXR5IHRvIGNvcHkgdGhlIFFSIENvZGUgdG8gY2xpcGJvYXJkIHdpdGggcmlnaHQgY2xpY2sgb24gaXQuIiwKICAiZG9uYXRpb25zIjogewogICAgImtvZmkiOiAiZ2xlcnJvIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi13aWZpcXJjb2RlIiwKICAibmFtZSI6ICJXaWZpIFFSIENvZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2dsZXJyby9nbm9tZS1zaGVsbC1leHRlbnNpb24td2lmaXFyY29kZSIsCiAgInV1aWQiOiAid2lmaXFyY29kZUBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTUsCiAgInZlcnNpb24tbmFtZSI6ICIyLjIuMCIKfQ=="}
   }}
 , {"uuid": "eos-desktop@endlessm.com", "name": "Endless Desktop", "pname": "endless-desktop", "description": "Endless OS signature desktop", "link": "https://extensions.gnome.org/extension/5419/endless-desktop/", "shell_version_map": {
     "41": {"version": "2", "sha256": "07wg7nab34bvhqnlfdni622c5r3pvlq04dly8spk53nxdwvisckr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuZGxlc3MgT1Mgc2lnbmF0dXJlIGRlc2t0b3AiLAogICJuYW1lIjogIkVuZGxlc3MgRGVza3RvcCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJjb20uZW5kbGVzc20uZGVza3RvcC1leHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VuZGxlc3NtL2Vvcy1kZXNrdG9wLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZW9zLWRlc2t0b3BAZW5kbGVzc20uY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
@@ -5536,7 +5576,8 @@
 , {"uuid": "quick-settings-tweaks@qwreey", "name": "[QSTweak] Quick Setting Tweaker", "pname": "quick-settings-tweaker", "description": "Let's tweak gnome 43's quick settings! You can add Media Controls, Notifications, Volume Mixer on quick settings and remove useless buttons!", "link": "https://extensions.gnome.org/extension/5446/quick-settings-tweaker/", "shell_version_map": {
     "43": {"version": "19", "sha256": "0rgjkang4c392pvyxbjypy0q7q7fkz4y8a0565brwcm8afjcaf8p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldCdzIHR3ZWFrIGdub21lIDQzJ3MgcXVpY2sgc2V0dGluZ3MhIFlvdSBjYW4gYWRkIE1lZGlhIENvbnRyb2xzLCBOb3RpZmljYXRpb25zLCBWb2x1bWUgTWl4ZXIgb24gcXVpY2sgc2V0dGluZ3MgYW5kIHJlbW92ZSB1c2VsZXNzIGJ1dHRvbnMhIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtdHdlYWtzIiwKICAibmFtZSI6ICJbUVNUd2Vha10gUXVpY2sgU2V0dGluZyBUd2Vha2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnF1aWNrLXNldHRpbmdzLXR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcXdyZWV5NzUvcXVpY2stc2V0dGluZ3MtdHdlYWtzIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy10d2Vha3NAcXdyZWV5IiwKICAidmVyc2lvbiI6IDE5Cn0="},
     "44": {"version": "19", "sha256": "0rgjkang4c392pvyxbjypy0q7q7fkz4y8a0565brwcm8afjcaf8p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldCdzIHR3ZWFrIGdub21lIDQzJ3MgcXVpY2sgc2V0dGluZ3MhIFlvdSBjYW4gYWRkIE1lZGlhIENvbnRyb2xzLCBOb3RpZmljYXRpb25zLCBWb2x1bWUgTWl4ZXIgb24gcXVpY2sgc2V0dGluZ3MgYW5kIHJlbW92ZSB1c2VsZXNzIGJ1dHRvbnMhIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtdHdlYWtzIiwKICAibmFtZSI6ICJbUVNUd2Vha10gUXVpY2sgU2V0dGluZyBUd2Vha2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnF1aWNrLXNldHRpbmdzLXR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcXdyZWV5NzUvcXVpY2stc2V0dGluZ3MtdHdlYWtzIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy10d2Vha3NAcXdyZWV5IiwKICAidmVyc2lvbiI6IDE5Cn0="},
-    "45": {"version": "25", "sha256": "082ahc3zcnv6vbc5y9c06mvy0xc0jq3r9f1js659a4sz2zw6y8bn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldCdzIHR3ZWFrIGdub21lIDQzJ3MgcXVpY2sgc2V0dGluZ3MhIFlvdSBjYW4gYWRkIE1lZGlhIENvbnRyb2xzLCBOb3RpZmljYXRpb25zLCBWb2x1bWUgTWl4ZXIgb24gcXVpY2sgc2V0dGluZ3MgYW5kIHJlbW92ZSB1c2VsZXNzIGJ1dHRvbnMhIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtdHdlYWtzIiwKICAibmFtZSI6ICJbUVNUd2Vha10gUXVpY2sgU2V0dGluZyBUd2Vha2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnF1aWNrLXNldHRpbmdzLXR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9xd3JlZXk3NS9xdWljay1zZXR0aW5ncy10d2Vha3MiLAogICJ1dWlkIjogInF1aWNrLXNldHRpbmdzLXR3ZWFrc0Bxd3JlZXkiLAogICJ2ZXJzaW9uIjogMjUKfQ=="}
+    "45": {"version": "25", "sha256": "082ahc3zcnv6vbc5y9c06mvy0xc0jq3r9f1js659a4sz2zw6y8bn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldCdzIHR3ZWFrIGdub21lIDQzJ3MgcXVpY2sgc2V0dGluZ3MhIFlvdSBjYW4gYWRkIE1lZGlhIENvbnRyb2xzLCBOb3RpZmljYXRpb25zLCBWb2x1bWUgTWl4ZXIgb24gcXVpY2sgc2V0dGluZ3MgYW5kIHJlbW92ZSB1c2VsZXNzIGJ1dHRvbnMhIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtdHdlYWtzIiwKICAibmFtZSI6ICJbUVNUd2Vha10gUXVpY2sgU2V0dGluZyBUd2Vha2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnF1aWNrLXNldHRpbmdzLXR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9xd3JlZXk3NS9xdWljay1zZXR0aW5ncy10d2Vha3MiLAogICJ1dWlkIjogInF1aWNrLXNldHRpbmdzLXR3ZWFrc0Bxd3JlZXkiLAogICJ2ZXJzaW9uIjogMjUKfQ=="},
+    "46": {"version": "27", "sha256": "0fhzxqnzjzv3yv51p8v3kipkpk6ih96nc69ya5vwz4p79nkrksgr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldCdzIHR3ZWFrIGdub21lIDQzJ3MgcXVpY2sgc2V0dGluZ3MhIFlvdSBjYW4gYWRkIE1lZGlhIENvbnRyb2xzLCBOb3RpZmljYXRpb25zLCBWb2x1bWUgTWl4ZXIgb24gcXVpY2sgc2V0dGluZ3MgYW5kIHJlbW92ZSB1c2VsZXNzIGJ1dHRvbnMhIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtdHdlYWtzIiwKICAibmFtZSI6ICJbUVNUd2Vha10gUXVpY2sgU2V0dGluZyBUd2Vha2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnF1aWNrLXNldHRpbmdzLXR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9xd3JlZXk3NS9xdWljay1zZXR0aW5ncy10d2Vha3MiLAogICJ1dWlkIjogInF1aWNrLXNldHRpbmdzLXR3ZWFrc0Bxd3JlZXkiLAogICJ2ZXJzaW9uIjogMjcKfQ=="}
   }}
 , {"uuid": "osd-volume-number@deminder", "name": "OSD Volume Number", "pname": "osd-volume-number", "description": "Replace the on-screen-display volume level icon with a number.", "link": "https://extensions.gnome.org/extension/5461/osd-volume-number/", "shell_version_map": {
     "42": {"version": "6", "sha256": "0c3l0j88bmc5lhif0jwxy0mch1wafmbk6hysyxdnf2qlkiha50ds", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgdGhlIG9uLXNjcmVlbi1kaXNwbGF5IHZvbHVtZSBsZXZlbCBpY29uIHdpdGggYSBudW1iZXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAib3NkLXZvbHVtZS1udW1iZXIiLAogICJuYW1lIjogIk9TRCBWb2x1bWUgTnVtYmVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9zZC12b2x1bWUtbnVtYmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRGVtaW5kZXIvb3NkLXZvbHVtZS1udW1iZXIiLAogICJ1dWlkIjogIm9zZC12b2x1bWUtbnVtYmVyQGRlbWluZGVyIiwKICAidmVyc2lvbiI6IDYKfQ=="},
@@ -5571,7 +5612,7 @@
     "45": {"version": "5", "sha256": "14v0q6msfpkl3aqspwzjrczjc9ja6d969xrlmql00c29cczmsxzx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB3b3Jrc3BhY2VzIHNwYW5uaW5nIGRpc3BsYXlzLiIsCiAgIm5hbWUiOiAiVG9nZ2xlIHdvcmtzcGFjZSBzcGFuIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRvZ2dsZS13b3Jrc3BhY2Utc3BhbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJuZ28vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRvZ2dsZS13b3Jrc3BhY2Utc3BhbiIsCiAgInV1aWQiOiAidG9nZ2xlLXdvcmtzcGFjZS1zcGFuQGFybmdvLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"},
     "46": {"version": "5", "sha256": "14v0q6msfpkl3aqspwzjrczjc9ja6d969xrlmql00c29cczmsxzx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB3b3Jrc3BhY2VzIHNwYW5uaW5nIGRpc3BsYXlzLiIsCiAgIm5hbWUiOiAiVG9nZ2xlIHdvcmtzcGFjZSBzcGFuIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRvZ2dsZS13b3Jrc3BhY2Utc3BhbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJuZ28vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRvZ2dsZS13b3Jrc3BhY2Utc3BhbiIsCiAgInV1aWQiOiAidG9nZ2xlLXdvcmtzcGFjZS1zcGFuQGFybmdvLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}
   }}
-, {"uuid": "search-light@icedman.github.com", "name": "Search Light", "pname": "search-light", "description": "Take the apps search out of overview", "link": "https://extensions.gnome.org/extension/5489/search-light/", "shell_version_map": {
+, {"uuid": "search-light@icedman.github.com", "name": "Search Light", "pname": "search-light", "description": "Take the apps search out of overview.", "link": "https://extensions.gnome.org/extension/5489/search-light/", "shell_version_map": {
     "42": {"version": "17", "sha256": "054k5q694ssm937qfxximg2qh5zx4m2qzcffdxjm4xd39qn4bi85", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRha2UgdGhlIGFwcHMgc2VhcmNoIG91dCBvZiBvdmVydmlldyIsCiAgImdldHRleHQtZG9tYWluIjogInNlYXJjaC1saWdodCIsCiAgIm5hbWUiOiAiU2VhcmNoIExpZ2h0IiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlYXJjaC1saWdodCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ljZWRtYW4vc2VhcmNoLWxpZ2h0IiwKICAidXVpZCI6ICJzZWFyY2gtbGlnaHRAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE3Cn0="},
     "43": {"version": "17", "sha256": "054k5q694ssm937qfxximg2qh5zx4m2qzcffdxjm4xd39qn4bi85", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRha2UgdGhlIGFwcHMgc2VhcmNoIG91dCBvZiBvdmVydmlldyIsCiAgImdldHRleHQtZG9tYWluIjogInNlYXJjaC1saWdodCIsCiAgIm5hbWUiOiAiU2VhcmNoIExpZ2h0IiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlYXJjaC1saWdodCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ljZWRtYW4vc2VhcmNoLWxpZ2h0IiwKICAidXVpZCI6ICJzZWFyY2gtbGlnaHRAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE3Cn0="},
     "44": {"version": "17", "sha256": "054k5q694ssm937qfxximg2qh5zx4m2qzcffdxjm4xd39qn4bi85", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRha2UgdGhlIGFwcHMgc2VhcmNoIG91dCBvZiBvdmVydmlldyIsCiAgImdldHRleHQtZG9tYWluIjogInNlYXJjaC1saWdodCIsCiAgIm5hbWUiOiAiU2VhcmNoIExpZ2h0IiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlYXJjaC1saWdodCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ljZWRtYW4vc2VhcmNoLWxpZ2h0IiwKICAidXVpZCI6ICJzZWFyY2gtbGlnaHRAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE3Cn0="},
@@ -5604,12 +5645,6 @@
     "42": {"version": "4", "sha256": "0jih9lhy9pywilqnkz4cliyg3i2jm4w36kmna67hrx5wqvga6s69", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZsb2F0cyB0aGUgcGFuZWwsIGlmIHRoZXJlIGlzIGEgd2luZG93IG5lYXJieSBvciBtYXhpbWlzZWQsIGl0IGRlZmxvYXRzLiIsCiAgIm5hbWUiOiAiRmxvYXRpbmcgUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQXlsdXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZsb2F0aW5nLXBhbmVsIiwKICAidXVpZCI6ICJmbG9hdGluZy1wYW5lbEBheWx1ciIsCiAgInZlcnNpb24iOiA0Cn0="},
     "43": {"version": "4", "sha256": "0jih9lhy9pywilqnkz4cliyg3i2jm4w36kmna67hrx5wqvga6s69", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZsb2F0cyB0aGUgcGFuZWwsIGlmIHRoZXJlIGlzIGEgd2luZG93IG5lYXJieSBvciBtYXhpbWlzZWQsIGl0IGRlZmxvYXRzLiIsCiAgIm5hbWUiOiAiRmxvYXRpbmcgUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQXlsdXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZsb2F0aW5nLXBhbmVsIiwKICAidXVpZCI6ICJmbG9hdGluZy1wYW5lbEBheWx1ciIsCiAgInZlcnNpb24iOiA0Cn0="}
   }}
-, {"uuid": "tun0-ip-address@adamantisspinae.github.com", "name": "tun0 IP Address", "pname": "tun0-ip-address", "description": "Show tun0 IP address on GNOME panel. Do not show loopback addresses (127.0.0.0/8) or other network interface IP addresses. Please install moreutils package as a depedency", "link": "https://extensions.gnome.org/extension/5518/tun0-ip-address/", "shell_version_map": {
-    "40": {"version": "7", "sha256": "08zfm6g38g54km5ks83i78b019v6cihqz0qp636iislhpz6gzylp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdHVuMCBJUCBhZGRyZXNzIG9uIEdOT01FIHBhbmVsLiBEbyBub3Qgc2hvdyBsb29wYmFjayBhZGRyZXNzZXMgKDEyNy4wLjAuMC84KSBvciBvdGhlciBuZXR3b3JrIGludGVyZmFjZSBJUCBhZGRyZXNzZXMuIFBsZWFzZSBpbnN0YWxsIG1vcmV1dGlscyBwYWNrYWdlIGFzIGEgZGVwZWRlbmN5IiwKICAibmFtZSI6ICJ0dW4wIElQIEFkZHJlc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWRhbWFudGlzU3BpbmFlL2dub21lLWV4dGVuc2lvbi10dW4wLWlwLWFkZHJlc3MiLAogICJ1dWlkIjogInR1bjAtaXAtYWRkcmVzc0BhZGFtYW50aXNzcGluYWUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="},
-    "41": {"version": "7", "sha256": "08zfm6g38g54km5ks83i78b019v6cihqz0qp636iislhpz6gzylp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdHVuMCBJUCBhZGRyZXNzIG9uIEdOT01FIHBhbmVsLiBEbyBub3Qgc2hvdyBsb29wYmFjayBhZGRyZXNzZXMgKDEyNy4wLjAuMC84KSBvciBvdGhlciBuZXR3b3JrIGludGVyZmFjZSBJUCBhZGRyZXNzZXMuIFBsZWFzZSBpbnN0YWxsIG1vcmV1dGlscyBwYWNrYWdlIGFzIGEgZGVwZWRlbmN5IiwKICAibmFtZSI6ICJ0dW4wIElQIEFkZHJlc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWRhbWFudGlzU3BpbmFlL2dub21lLWV4dGVuc2lvbi10dW4wLWlwLWFkZHJlc3MiLAogICJ1dWlkIjogInR1bjAtaXAtYWRkcmVzc0BhZGFtYW50aXNzcGluYWUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="},
-    "42": {"version": "7", "sha256": "08zfm6g38g54km5ks83i78b019v6cihqz0qp636iislhpz6gzylp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdHVuMCBJUCBhZGRyZXNzIG9uIEdOT01FIHBhbmVsLiBEbyBub3Qgc2hvdyBsb29wYmFjayBhZGRyZXNzZXMgKDEyNy4wLjAuMC84KSBvciBvdGhlciBuZXR3b3JrIGludGVyZmFjZSBJUCBhZGRyZXNzZXMuIFBsZWFzZSBpbnN0YWxsIG1vcmV1dGlscyBwYWNrYWdlIGFzIGEgZGVwZWRlbmN5IiwKICAibmFtZSI6ICJ0dW4wIElQIEFkZHJlc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWRhbWFudGlzU3BpbmFlL2dub21lLWV4dGVuc2lvbi10dW4wLWlwLWFkZHJlc3MiLAogICJ1dWlkIjogInR1bjAtaXAtYWRkcmVzc0BhZGFtYW50aXNzcGluYWUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="},
-    "43": {"version": "7", "sha256": "08zfm6g38g54km5ks83i78b019v6cihqz0qp636iislhpz6gzylp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdHVuMCBJUCBhZGRyZXNzIG9uIEdOT01FIHBhbmVsLiBEbyBub3Qgc2hvdyBsb29wYmFjayBhZGRyZXNzZXMgKDEyNy4wLjAuMC84KSBvciBvdGhlciBuZXR3b3JrIGludGVyZmFjZSBJUCBhZGRyZXNzZXMuIFBsZWFzZSBpbnN0YWxsIG1vcmV1dGlscyBwYWNrYWdlIGFzIGEgZGVwZWRlbmN5IiwKICAibmFtZSI6ICJ0dW4wIElQIEFkZHJlc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWRhbWFudGlzU3BpbmFlL2dub21lLWV4dGVuc2lvbi10dW4wLWlwLWFkZHJlc3MiLAogICJ1dWlkIjogInR1bjAtaXAtYWRkcmVzc0BhZGFtYW50aXNzcGluYWUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}
-  }}
 , {"uuid": "nano-lights@chlumskyvaclav.gmail.com", "name": "Nano Lights", "pname": "nano-lights", "description": "This extension controls Nanoleaf shapes and possibly others Nanoleaf devices on your local (wifi) network. If you are experiencing an error on the upgrade, please log out and log in again.", "link": "https://extensions.gnome.org/extension/5519/nano-lights/", "shell_version_map": {
     "43": {"version": "4", "sha256": "0w0092hhra27d59842xgc6r01v4sfbl5p1ipvf3gbq6pam9955b0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIE5hbm9sZWFmIHNoYXBlcyBhbmQgcG9zc2libHkgb3RoZXJzIE5hbm9sZWFmIGRldmljZXMgb24geW91ciBsb2NhbCAod2lmaSkgbmV0d29yay4gSWYgeW91IGFyZSBleHBlcmllbmNpbmcgYW4gZXJyb3Igb24gdGhlIHVwZ3JhZGUsIHBsZWFzZSBsb2cgb3V0IGFuZCBsb2cgaW4gYWdhaW4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibmFuby1saWdodHMiLAogICJuYW1lIjogIk5hbm8gTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL25hbm8tbGlnaHRzIiwKICAidXVpZCI6ICJuYW5vLWxpZ2h0c0BjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
     "44": {"version": "4", "sha256": "0w0092hhra27d59842xgc6r01v4sfbl5p1ipvf3gbq6pam9955b0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIE5hbm9sZWFmIHNoYXBlcyBhbmQgcG9zc2libHkgb3RoZXJzIE5hbm9sZWFmIGRldmljZXMgb24geW91ciBsb2NhbCAod2lmaSkgbmV0d29yay4gSWYgeW91IGFyZSBleHBlcmllbmNpbmcgYW4gZXJyb3Igb24gdGhlIHVwZ3JhZGUsIHBsZWFzZSBsb2cgb3V0IGFuZCBsb2cgaW4gYWdhaW4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibmFuby1saWdodHMiLAogICJuYW1lIjogIk5hbm8gTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL25hbm8tbGlnaHRzIiwKICAidXVpZCI6ICJuYW5vLWxpZ2h0c0BjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
@@ -5617,15 +5652,21 @@
     "46": {"version": "7", "sha256": "1ayij5spshhnj711dhppv4ql2gzpck5f9dsq9y8qybz7h15r0nj9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIE5hbm9sZWFmIHNoYXBlcyBhbmQgcG9zc2libHkgb3RoZXJzIE5hbm9sZWFmIGRldmljZXMgb24geW91ciBsb2NhbCAod2lmaSkgbmV0d29yay4gSWYgeW91IGFyZSBleHBlcmllbmNpbmcgYW4gZXJyb3Igb24gdGhlIHVwZ3JhZGUsIHBsZWFzZSBsb2cgb3V0IGFuZCBsb2cgaW4gYWdhaW4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibmFuby1saWdodHMiLAogICJuYW1lIjogIk5hbm8gTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYW5vLWxpZ2h0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL25hbm8tbGlnaHRzIiwKICAidXVpZCI6ICJuYW5vLWxpZ2h0c0BjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}
   }}
 , {"uuid": "just-another-search-bar@xelad0m", "name": "Just Another Search Bar", "pname": "just-another-search-bar", "description": "Simple GNOME Shell extension for performing search queries\nfrom desktop. Some search engines are added as examples, you can add your own,\nincluding local search tools with suitable CLI", "link": "https://extensions.gnome.org/extension/5522/just-another-search-bar/", "shell_version_map": {
+    "42": {"version": "13", "sha256": "1qij3yfrhqsm23lsi9p646r25w6x6vlcfimsqkbrvbvisncqi65n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gZm9yIHBlcmZvcm1pbmcgc2VhcmNoIHF1ZXJpZXNcbmZyb20gZGVza3RvcC4gU29tZSBzZWFyY2ggZW5naW5lcyBhcmUgYWRkZWQgYXMgZXhhbXBsZXMsIHlvdSBjYW4gYWRkIHlvdXIgb3duLFxuaW5jbHVkaW5nIGxvY2FsIHNlYXJjaCB0b29scyB3aXRoIHN1aXRhYmxlIENMSSIsCiAgIm5hbWUiOiAiSnVzdCBBbm90aGVyIFNlYXJjaCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLXNoZWxsLmV4dGVuc2lvbnMuanVzdC1hbm90aGVyLXNlYXJjaC1iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVsYWQwbS9qdXN0LWFub3RoZXItc2VhcmNoLWJhciIsCiAgInV1aWQiOiAianVzdC1hbm90aGVyLXNlYXJjaC1iYXJAeGVsYWQwbSIsCiAgInZlcnNpb24iOiAxMwp9"},
     "43": {"version": "9", "sha256": "1p934bgds2d5sg4a7hqrdlm9l9psrg2bjfasv0h1k46nj0dpryzs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gZm9yIHBlcmZvcm1pbmcgc2VhcmNoIHF1ZXJpZXNcbmZyb20gZGVza3RvcC4gU29tZSBzZWFyY2ggZW5naW5lcyBhcmUgYWRkZWQgYXMgZXhhbXBsZXMsIHlvdSBjYW4gYWRkIHlvdXIgb3duLFxuaW5jbHVkaW5nIGxvY2FsIHNlYXJjaCB0b29scyB3aXRoIHN1aXRhYmxlIENMSSIsCiAgIm5hbWUiOiAiSnVzdCBBbm90aGVyIFNlYXJjaCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLXNoZWxsLmV4dGVuc2lvbnMuanVzdC1hbm90aGVyLXNlYXJjaC1iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3hlbGFkMG0vanVzdC1hbm90aGVyLXNlYXJjaC1iYXIiLAogICJ1dWlkIjogImp1c3QtYW5vdGhlci1zZWFyY2gtYmFyQHhlbGFkMG0iLAogICJ2ZXJzaW9uIjogOQp9"},
     "44": {"version": "9", "sha256": "1p934bgds2d5sg4a7hqrdlm9l9psrg2bjfasv0h1k46nj0dpryzs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gZm9yIHBlcmZvcm1pbmcgc2VhcmNoIHF1ZXJpZXNcbmZyb20gZGVza3RvcC4gU29tZSBzZWFyY2ggZW5naW5lcyBhcmUgYWRkZWQgYXMgZXhhbXBsZXMsIHlvdSBjYW4gYWRkIHlvdXIgb3duLFxuaW5jbHVkaW5nIGxvY2FsIHNlYXJjaCB0b29scyB3aXRoIHN1aXRhYmxlIENMSSIsCiAgIm5hbWUiOiAiSnVzdCBBbm90aGVyIFNlYXJjaCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLXNoZWxsLmV4dGVuc2lvbnMuanVzdC1hbm90aGVyLXNlYXJjaC1iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3hlbGFkMG0vanVzdC1hbm90aGVyLXNlYXJjaC1iYXIiLAogICJ1dWlkIjogImp1c3QtYW5vdGhlci1zZWFyY2gtYmFyQHhlbGFkMG0iLAogICJ2ZXJzaW9uIjogOQp9"},
-    "45": {"version": "11", "sha256": "0xxdahjl56jkdx40s5imd6v3hvcshpayy7qk5vr0ha79vqmxg888", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gZm9yIHBlcmZvcm1pbmcgc2VhcmNoIHF1ZXJpZXNcbmZyb20gZGVza3RvcC4gU29tZSBzZWFyY2ggZW5naW5lcyBhcmUgYWRkZWQgYXMgZXhhbXBsZXMsIHlvdSBjYW4gYWRkIHlvdXIgb3duLFxuaW5jbHVkaW5nIGxvY2FsIHNlYXJjaCB0b29scyB3aXRoIHN1aXRhYmxlIENMSSIsCiAgImdldHRleHQtZG9tYWluIjogImp1c3QtYW5vdGhlci1zZWFyY2gtYmFyIiwKICAibmFtZSI6ICJKdXN0IEFub3RoZXIgU2VhcmNoIEJhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5qdXN0LWFub3RoZXItc2VhcmNoLWJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVsYWQwbS9qdXN0LWFub3RoZXItc2VhcmNoLWJhciIsCiAgInV1aWQiOiAianVzdC1hbm90aGVyLXNlYXJjaC1iYXJAeGVsYWQwbSIsCiAgInZlcnNpb24iOiAxMQp9"},
-    "46": {"version": "11", "sha256": "0xxdahjl56jkdx40s5imd6v3hvcshpayy7qk5vr0ha79vqmxg888", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gZm9yIHBlcmZvcm1pbmcgc2VhcmNoIHF1ZXJpZXNcbmZyb20gZGVza3RvcC4gU29tZSBzZWFyY2ggZW5naW5lcyBhcmUgYWRkZWQgYXMgZXhhbXBsZXMsIHlvdSBjYW4gYWRkIHlvdXIgb3duLFxuaW5jbHVkaW5nIGxvY2FsIHNlYXJjaCB0b29scyB3aXRoIHN1aXRhYmxlIENMSSIsCiAgImdldHRleHQtZG9tYWluIjogImp1c3QtYW5vdGhlci1zZWFyY2gtYmFyIiwKICAibmFtZSI6ICJKdXN0IEFub3RoZXIgU2VhcmNoIEJhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5qdXN0LWFub3RoZXItc2VhcmNoLWJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVsYWQwbS9qdXN0LWFub3RoZXItc2VhcmNoLWJhciIsCiAgInV1aWQiOiAianVzdC1hbm90aGVyLXNlYXJjaC1iYXJAeGVsYWQwbSIsCiAgInZlcnNpb24iOiAxMQp9"}
+    "45": {"version": "12", "sha256": "02nial4ns2bwlahqvln85a3bsk6hjd54asdxyn6vfi4fgr95cx4y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gZm9yIHBlcmZvcm1pbmcgc2VhcmNoIHF1ZXJpZXNcbmZyb20gZGVza3RvcC4gU29tZSBzZWFyY2ggZW5naW5lcyBhcmUgYWRkZWQgYXMgZXhhbXBsZXMsIHlvdSBjYW4gYWRkIHlvdXIgb3duLFxuaW5jbHVkaW5nIGxvY2FsIHNlYXJjaCB0b29scyB3aXRoIHN1aXRhYmxlIENMSSIsCiAgImdldHRleHQtZG9tYWluIjogImp1c3QtYW5vdGhlci1zZWFyY2gtYmFyIiwKICAibmFtZSI6ICJKdXN0IEFub3RoZXIgU2VhcmNoIEJhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5qdXN0LWFub3RoZXItc2VhcmNoLWJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVsYWQwbS9qdXN0LWFub3RoZXItc2VhcmNoLWJhciIsCiAgInV1aWQiOiAianVzdC1hbm90aGVyLXNlYXJjaC1iYXJAeGVsYWQwbSIsCiAgInZlcnNpb24iOiAxMgp9"},
+    "46": {"version": "12", "sha256": "02nial4ns2bwlahqvln85a3bsk6hjd54asdxyn6vfi4fgr95cx4y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gZm9yIHBlcmZvcm1pbmcgc2VhcmNoIHF1ZXJpZXNcbmZyb20gZGVza3RvcC4gU29tZSBzZWFyY2ggZW5naW5lcyBhcmUgYWRkZWQgYXMgZXhhbXBsZXMsIHlvdSBjYW4gYWRkIHlvdXIgb3duLFxuaW5jbHVkaW5nIGxvY2FsIHNlYXJjaCB0b29scyB3aXRoIHN1aXRhYmxlIENMSSIsCiAgImdldHRleHQtZG9tYWluIjogImp1c3QtYW5vdGhlci1zZWFyY2gtYmFyIiwKICAibmFtZSI6ICJKdXN0IEFub3RoZXIgU2VhcmNoIEJhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5qdXN0LWFub3RoZXItc2VhcmNoLWJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVsYWQwbS9qdXN0LWFub3RoZXItc2VhcmNoLWJhciIsCiAgInV1aWQiOiAianVzdC1hbm90aGVyLXNlYXJjaC1iYXJAeGVsYWQwbSIsCiAgInZlcnNpb24iOiAxMgp9"}
+  }}
+, {"uuid": "Noiseclapper@JordanViknar", "name": "Noiseclapper (Soundcore Life for GNOME)", "pname": "noiseclapper", "description": "Noiseclapper is a GNOME Shell extension that allows you to control the Noise Cancelling mode and the Equalizer settings of your Soundcore Life headphones right from the panel. It works as a simple, easy-to-use, desktop-compatible alternative to the official mobile application.\n\nThe following headphones are currently supported by this extension :\n- Soundcore Life P3 (Tested)\n- Soundcore Life Q35\n- Soundcore Life Q30 (Tested)\n- Soundcore Life Q20+\n- Soundcore Life Q20\n- Soundcore Life Q10\n- Soundcore Life Q10\nOthers may be supported by adding them to the extension's internal model list through a pull request.\n\nThis project is not affiliated, associated, authorized, endorsed by, or in any way officially connected with Anker, or any of its subsidiaries or its affiliates.", "link": "https://extensions.gnome.org/extension/5526/noiseclapper/", "shell_version_map": {
+    "45": {"version": "3", "sha256": "04ryxnplygm0v3m3fljx4k9g386zkm3cicj1xlqii9fwbdqpyxnp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGVzIGNvbnRyb2wgb2YgU291bmRjb3JlIExpZmUgUTMwIEhlYWRwaG9uZXMgKGFuZCBvdGhlcnMpIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiTm9pc2VjbGFwcGVyIiwKICAibmFtZSI6ICJOb2lzZWNsYXBwZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm9pc2VjbGFwcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Kb3JkYW5WaWtuYXIvTm9pc2VjbGFwcGVyIiwKICAidXVpZCI6ICJOb2lzZWNsYXBwZXJASm9yZGFuVmlrbmFyIiwKICAidmVyc2lvbiI6IDMKfQ=="},
+    "46": {"version": "3", "sha256": "04ryxnplygm0v3m3fljx4k9g386zkm3cicj1xlqii9fwbdqpyxnp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGVzIGNvbnRyb2wgb2YgU291bmRjb3JlIExpZmUgUTMwIEhlYWRwaG9uZXMgKGFuZCBvdGhlcnMpIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiTm9pc2VjbGFwcGVyIiwKICAibmFtZSI6ICJOb2lzZWNsYXBwZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm9pc2VjbGFwcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Kb3JkYW5WaWtuYXIvTm9pc2VjbGFwcGVyIiwKICAidXVpZCI6ICJOb2lzZWNsYXBwZXJASm9yZGFuVmlrbmFyIiwKICAidmVyc2lvbiI6IDMKfQ=="}
   }}
 , {"uuid": "compact-quick-settings@gnome-shell-extensions.mariospr.org", "name": "Compact Quick Settings", "pname": "compact-quick-settings", "description": "Compact quick settings menu for GNOME 43 and newer", "link": "https://extensions.gnome.org/extension/5527/compact-quick-settings/", "shell_version_map": {
     "43": {"version": "3", "sha256": "04ffksmfc27gya24x2fj0zpax3yj1kwjdwn33a99rxpypmicvpwf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBhY3QgcXVpY2sgc2V0dGluZ3MgbWVudSBmb3IgR05PTUUgNDMgYW5kIG5ld2VyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiIiwKICAibmFtZSI6ICJDb21wYWN0IFF1aWNrIFNldHRpbmdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmlvc3ByL2NvbXBhY3QtcXVpY2stc2V0dGluZ3MtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJjb21wYWN0LXF1aWNrLXNldHRpbmdzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMubWFyaW9zcHIub3JnIiwKICAidmVyc2lvbiI6IDMKfQ=="},
     "44": {"version": "4", "sha256": "05cssrkk4kk9vix98abvy3i6ms3495sz5jpi496srnnbxs500y4v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBhY3QgcXVpY2sgc2V0dGluZ3MgbWVudSBmb3IgR05PTUUgNDMgYW5kIG5ld2VyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiIiwKICAibmFtZSI6ICJDb21wYWN0IFF1aWNrIFNldHRpbmdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmlvc3ByL2NvbXBhY3QtcXVpY2stc2V0dGluZ3MtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJjb21wYWN0LXF1aWNrLXNldHRpbmdzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMubWFyaW9zcHIub3JnIiwKICAidmVyc2lvbiI6IDQKfQ=="},
-    "45": {"version": "7", "sha256": "1ir3wqcg9cdy1hs8icvkv7rv5hr47s1lrdz04y75vviwv406r6jm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBhY3QgcXVpY2sgc2V0dGluZ3MgbWVudSBmb3IgR05PTUUgNDMgYW5kIG5ld2VyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiIiwKICAibmFtZSI6ICJDb21wYWN0IFF1aWNrIFNldHRpbmdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmlvc3ByL2NvbXBhY3QtcXVpY2stc2V0dGluZ3MtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJjb21wYWN0LXF1aWNrLXNldHRpbmdzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMubWFyaW9zcHIub3JnIiwKICAidmVyc2lvbiI6IDcKfQ=="}
+    "45": {"version": "8", "sha256": "15f2nn5lvyfya33ih8mxdjx4vwjp5fn61d47g3bf27gp84vhp300", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBhY3QgcXVpY2sgc2V0dGluZ3MgbWVudSBmb3IgR05PTUUgNDMgYW5kIG5ld2VyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiIiwKICAibmFtZSI6ICJDb21wYWN0IFF1aWNrIFNldHRpbmdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXJpb3Nwci9jb21wYWN0LXF1aWNrLXNldHRpbmdzLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiY29tcGFjdC1xdWljay1zZXR0aW5nc0Bnbm9tZS1zaGVsbC1leHRlbnNpb25zLm1hcmlvc3ByLm9yZyIsCiAgInZlcnNpb24iOiA4Cn0="},
+    "46": {"version": "8", "sha256": "15f2nn5lvyfya33ih8mxdjx4vwjp5fn61d47g3bf27gp84vhp300", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBhY3QgcXVpY2sgc2V0dGluZ3MgbWVudSBmb3IgR05PTUUgNDMgYW5kIG5ld2VyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiIiwKICAibmFtZSI6ICJDb21wYWN0IFF1aWNrIFNldHRpbmdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXJpb3Nwci9jb21wYWN0LXF1aWNrLXNldHRpbmdzLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiY29tcGFjdC1xdWljay1zZXR0aW5nc0Bnbm9tZS1zaGVsbC1leHRlbnNpb25zLm1hcmlvc3ByLm9yZyIsCiAgInZlcnNpb24iOiA4Cn0="}
   }}
 , {"uuid": "circular@widgets.io", "name": "Circular Widgets", "pname": "circular-widgets", "description": "Conky Like widgets but with few customisation options\n- Drag and Drop Support\n- Added Non customisable Calendar\n- Added Net Speed Widget\n- Highly Customisable Ram, Cpu, Clock and Net Speed Widget\nFor any issues,bugs and suggestions plz open an issue on Github", "link": "https://extensions.gnome.org/extension/5530/circular-widgets/", "shell_version_map": {
     "43": {"version": "6", "sha256": "1cbgjlyfh8y741aswps61qyi3cz6vlv6wn1isbv47x7p40rhfxy3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmt5IExpa2Ugd2lkZ2V0cyBidXQgd2l0aCBmZXcgY3VzdG9taXNhdGlvbiBvcHRpb25zXG4tIERyYWcgYW5kIERyb3AgU3VwcG9ydFxuLSBBZGRlZCBOb24gY3VzdG9taXNhYmxlIENhbGVuZGFyXG4tIEFkZGVkIE5ldCBTcGVlZCBXaWRnZXRcbi0gSGlnaGx5IEN1c3RvbWlzYWJsZSBSYW0sIENwdSwgQ2xvY2sgYW5kIE5ldCBTcGVlZCBXaWRnZXRcbkZvciBhbnkgaXNzdWVzLGJ1Z3MgYW5kIHN1Z2dlc3Rpb25zIHBseiBvcGVuIGFuIGlzc3VlIG9uIEdpdGh1YiIsCiAgIm5hbWUiOiAiQ2lyY3VsYXIgV2lkZ2V0cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jaXJjdWxhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yYWloYW4yMDAwL2NpcmN1bGFyLXdpZGdldHMiLAogICJ1dWlkIjogImNpcmN1bGFyQHdpZGdldHMuaW8iLAogICJ2ZXJzaW9uIjogNgp9"}
@@ -5682,7 +5723,7 @@
     "45": {"version": "19", "sha256": "0r9yg02rzfgbhm7mgahpdi7x28lix59d5kyd65ibmydyl94chb5p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgc3dpdGNoIGJldHdlZW4gcG93ZXIgcHJvZmlsZXMgYmFzZWQgb24gcG93ZXIgc3VwcGx5IGFuZCBwZXJjZW50YWdlLiIsCiAgImdldHRleHQtZG9tYWluIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBvd2VyLXByb2ZpbGUtc3dpdGNoZXIiLAogICJuYW1lIjogIlBvd2VyIFByb2ZpbGUgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucG93ZXItcHJvZmlsZS1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWxpYXBhc3F1YWxpL3Bvd2VyLXByb2ZpbGUtc3dpdGNoZXIiLAogICJ1dWlkIjogInBvd2VyLXByb2ZpbGUtc3dpdGNoZXJAZWxpYXBhc3F1YWxpLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxOQp9"},
     "46": {"version": "19", "sha256": "0r9yg02rzfgbhm7mgahpdi7x28lix59d5kyd65ibmydyl94chb5p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgc3dpdGNoIGJldHdlZW4gcG93ZXIgcHJvZmlsZXMgYmFzZWQgb24gcG93ZXIgc3VwcGx5IGFuZCBwZXJjZW50YWdlLiIsCiAgImdldHRleHQtZG9tYWluIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBvd2VyLXByb2ZpbGUtc3dpdGNoZXIiLAogICJuYW1lIjogIlBvd2VyIFByb2ZpbGUgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucG93ZXItcHJvZmlsZS1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWxpYXBhc3F1YWxpL3Bvd2VyLXByb2ZpbGUtc3dpdGNoZXIiLAogICJ1dWlkIjogInBvd2VyLXByb2ZpbGUtc3dpdGNoZXJAZWxpYXBhc3F1YWxpLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxOQp9"}
   }}
-, {"uuid": "colorblind-filters@G-dH.github.com", "name": "Colorblind Filters", "pname": "colorblind-filters", "description": "Color filters are designed to assist both color-blind users and developers. The menu offers correction filters as well as simulation filters that demonstrate how color-blind individuals perceive colors. Included are filters for Protanopia, Deuteranopia, and Tritanopia, with adjustable strength. Additionally, filters for desaturation, channel mix, and lightness and color inversions are available.\n\nPrimary mouse button click on the panel button toggles active filter, secondary click opens configuration menu, middle click toggles high-contrast correction if available and scroll switches filters.\n\nDiscussions and bug reports on the GitHub page linked below, please.", "link": "https://extensions.gnome.org/extension/5589/colorblind-filters/", "shell_version_map": {
+, {"uuid": "colorblind-filters@G-dH.github.com", "name": "Colorblind Filters", "pname": "colorblind-filters", "description": "Color filters are designed to assist both color-blind users and developers.\n\nThe menu offers correction filters as well as simulation filters that demonstrate how color-blind individuals perceive colors. Included are filters for Protanopia, Deuteranopia, and Tritanopia, with adjustable strength. Additionally, filters for desaturation, channel mix, and lightness and color inversions are available.\n\nPrimary mouse button click on the panel button toggles active filter, secondary click opens configuration menu, middle click toggles high-contrast correction if available and scroll switches filters.\n\nDiscussions and bug reports on the GitHub page linked below, please.", "link": "https://extensions.gnome.org/extension/5589/colorblind-filters/", "shell_version_map": {
     "38": {"version": "17", "sha256": "0lgdx717xzm8fhszfvx9hqjx1kjkzlx8hs5jwrzrslif32vwjsbr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbG9yIGZpbHRlcnMgdGhhdCBzaG91bGQgaGVscCBjb2xvci1ibGluZCB1c2VycyBhbmQgYWxzbyBkZXZlbG9wZXJzLlxuVGhlIG1lbnUgaW5jbHVkZXMgY29ycmVjdGlvbiBmaWx0ZXJzIGFuZCBhbHNvIHNpbXVsYXRpb24gZmlsdGVycyB0aGF0IGNhbiBzaG93IHlvdSB3aGF0IGNvbG9yLWJsaW5kIHBlb3BsZSBzZWUuIEluY2x1ZGVkIGFyZSBmaWx0ZXJzIGZvciBQcm90YW5vcGlhLCBEZXV0ZXJhbm9waWEgYW5kIFRyaXRhbm9waWEsIGZpbHRlciBzdHJlbmd0aCBpcyBhZGp1c3RhYmxlLiBBdmFpbGFibGUgYXJlIGFsc28gZmlsdGVycyBmb3IgZGVzYXR1cmF0aW9uLCBjaGFubmVsIG1peCwgYW5kIGxpZ2h0bmVzcyBhbmQgY29sb3IgaW52ZXJzaW9ucy5cblxuUHJpbWFyeSBtb3VzZSBidXR0b24gY2xpY2sgb24gdGhlIHBhbmVsIGJ1dHRvbiB0b2dnbGVzIGFjdGl2ZSBmaWx0ZXIsIHNlY29uZGFyeSBjbGljayBvcGVucyBjb25maWd1cmF0aW9uIG1lbnUsIG1pZGRsZSBjbGljayB0b2dnbGVzIGhpZ2gtY29udHJhc3QgY29ycmVjdGlvbiBpZiBhdmFpbGFibGUgYW5kIHNjcm9sbCBzd2l0Y2hlcyBmaWx0ZXJzLlxuXG5EaXNjdXNzaW9ucyBhbmQgYnVnIHJlcG9ydHMgb24gdGhlIEdpdEh1YiBwYWdlIGxpbmtlZCBiZWxvdywgcGxlYXNlLiIsCiAgImdldHRleHQtZG9tYWluIjogImNvbG9yYmxpbmQtZmlsdGVycyIsCiAgIm5hbWUiOiAiQ29sb3JibGluZCBGaWx0ZXJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbG9yYmxpbmQtZmlsdGVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9nbm9tZS1jb2xvcmJsaW5kLWZpbHRlcnMiLAogICJ1dWlkIjogImNvbG9yYmxpbmQtZmlsdGVyc0BHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
     "40": {"version": "17", "sha256": "0lgdx717xzm8fhszfvx9hqjx1kjkzlx8hs5jwrzrslif32vwjsbr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbG9yIGZpbHRlcnMgdGhhdCBzaG91bGQgaGVscCBjb2xvci1ibGluZCB1c2VycyBhbmQgYWxzbyBkZXZlbG9wZXJzLlxuVGhlIG1lbnUgaW5jbHVkZXMgY29ycmVjdGlvbiBmaWx0ZXJzIGFuZCBhbHNvIHNpbXVsYXRpb24gZmlsdGVycyB0aGF0IGNhbiBzaG93IHlvdSB3aGF0IGNvbG9yLWJsaW5kIHBlb3BsZSBzZWUuIEluY2x1ZGVkIGFyZSBmaWx0ZXJzIGZvciBQcm90YW5vcGlhLCBEZXV0ZXJhbm9waWEgYW5kIFRyaXRhbm9waWEsIGZpbHRlciBzdHJlbmd0aCBpcyBhZGp1c3RhYmxlLiBBdmFpbGFibGUgYXJlIGFsc28gZmlsdGVycyBmb3IgZGVzYXR1cmF0aW9uLCBjaGFubmVsIG1peCwgYW5kIGxpZ2h0bmVzcyBhbmQgY29sb3IgaW52ZXJzaW9ucy5cblxuUHJpbWFyeSBtb3VzZSBidXR0b24gY2xpY2sgb24gdGhlIHBhbmVsIGJ1dHRvbiB0b2dnbGVzIGFjdGl2ZSBmaWx0ZXIsIHNlY29uZGFyeSBjbGljayBvcGVucyBjb25maWd1cmF0aW9uIG1lbnUsIG1pZGRsZSBjbGljayB0b2dnbGVzIGhpZ2gtY29udHJhc3QgY29ycmVjdGlvbiBpZiBhdmFpbGFibGUgYW5kIHNjcm9sbCBzd2l0Y2hlcyBmaWx0ZXJzLlxuXG5EaXNjdXNzaW9ucyBhbmQgYnVnIHJlcG9ydHMgb24gdGhlIEdpdEh1YiBwYWdlIGxpbmtlZCBiZWxvdywgcGxlYXNlLiIsCiAgImdldHRleHQtZG9tYWluIjogImNvbG9yYmxpbmQtZmlsdGVycyIsCiAgIm5hbWUiOiAiQ29sb3JibGluZCBGaWx0ZXJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbG9yYmxpbmQtZmlsdGVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9nbm9tZS1jb2xvcmJsaW5kLWZpbHRlcnMiLAogICJ1dWlkIjogImNvbG9yYmxpbmQtZmlsdGVyc0BHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
     "41": {"version": "17", "sha256": "0lgdx717xzm8fhszfvx9hqjx1kjkzlx8hs5jwrzrslif32vwjsbr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbG9yIGZpbHRlcnMgdGhhdCBzaG91bGQgaGVscCBjb2xvci1ibGluZCB1c2VycyBhbmQgYWxzbyBkZXZlbG9wZXJzLlxuVGhlIG1lbnUgaW5jbHVkZXMgY29ycmVjdGlvbiBmaWx0ZXJzIGFuZCBhbHNvIHNpbXVsYXRpb24gZmlsdGVycyB0aGF0IGNhbiBzaG93IHlvdSB3aGF0IGNvbG9yLWJsaW5kIHBlb3BsZSBzZWUuIEluY2x1ZGVkIGFyZSBmaWx0ZXJzIGZvciBQcm90YW5vcGlhLCBEZXV0ZXJhbm9waWEgYW5kIFRyaXRhbm9waWEsIGZpbHRlciBzdHJlbmd0aCBpcyBhZGp1c3RhYmxlLiBBdmFpbGFibGUgYXJlIGFsc28gZmlsdGVycyBmb3IgZGVzYXR1cmF0aW9uLCBjaGFubmVsIG1peCwgYW5kIGxpZ2h0bmVzcyBhbmQgY29sb3IgaW52ZXJzaW9ucy5cblxuUHJpbWFyeSBtb3VzZSBidXR0b24gY2xpY2sgb24gdGhlIHBhbmVsIGJ1dHRvbiB0b2dnbGVzIGFjdGl2ZSBmaWx0ZXIsIHNlY29uZGFyeSBjbGljayBvcGVucyBjb25maWd1cmF0aW9uIG1lbnUsIG1pZGRsZSBjbGljayB0b2dnbGVzIGhpZ2gtY29udHJhc3QgY29ycmVjdGlvbiBpZiBhdmFpbGFibGUgYW5kIHNjcm9sbCBzd2l0Y2hlcyBmaWx0ZXJzLlxuXG5EaXNjdXNzaW9ucyBhbmQgYnVnIHJlcG9ydHMgb24gdGhlIEdpdEh1YiBwYWdlIGxpbmtlZCBiZWxvdywgcGxlYXNlLiIsCiAgImdldHRleHQtZG9tYWluIjogImNvbG9yYmxpbmQtZmlsdGVycyIsCiAgIm5hbWUiOiAiQ29sb3JibGluZCBGaWx0ZXJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbG9yYmxpbmQtZmlsdGVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9nbm9tZS1jb2xvcmJsaW5kLWZpbHRlcnMiLAogICJ1dWlkIjogImNvbG9yYmxpbmQtZmlsdGVyc0BHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
@@ -5766,7 +5807,8 @@
     "42": {"version": "3", "sha256": "06641gq1ci4mmnsnrps1bb3372hhq6bhg4sjh31pcpdlla17dg01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdHJhbnNwYXJlbmN5IGVmZmVjdHMgKGluY2x1ZGluZyBub3RpZmljYXRpb24gdHJheSkgYW5kIHNsaW1zIHRoZSB0b3AgYmFyIGZvciBtb3JlIHNwYWNlLiBTZWUgZ2l0aHViIHBhZ2UgZm9yIG1vcmUgc2NyZWVuc2hvdHMuIiwKICAibmFtZSI6ICJDb21wYWN0IFRvcCBCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21ldGVoYW4tYXJzbGFuL2dub21lLWNvbXBhY3QtdG9wLWJhciIsCiAgInV1aWQiOiAiZ25vbWUtY29tcGFjdC10b3AtYmFyQG1ldGVoYW4tYXJzbGFuLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="},
     "43": {"version": "3", "sha256": "06641gq1ci4mmnsnrps1bb3372hhq6bhg4sjh31pcpdlla17dg01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdHJhbnNwYXJlbmN5IGVmZmVjdHMgKGluY2x1ZGluZyBub3RpZmljYXRpb24gdHJheSkgYW5kIHNsaW1zIHRoZSB0b3AgYmFyIGZvciBtb3JlIHNwYWNlLiBTZWUgZ2l0aHViIHBhZ2UgZm9yIG1vcmUgc2NyZWVuc2hvdHMuIiwKICAibmFtZSI6ICJDb21wYWN0IFRvcCBCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21ldGVoYW4tYXJzbGFuL2dub21lLWNvbXBhY3QtdG9wLWJhciIsCiAgInV1aWQiOiAiZ25vbWUtY29tcGFjdC10b3AtYmFyQG1ldGVoYW4tYXJzbGFuLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="},
     "44": {"version": "3", "sha256": "06641gq1ci4mmnsnrps1bb3372hhq6bhg4sjh31pcpdlla17dg01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdHJhbnNwYXJlbmN5IGVmZmVjdHMgKGluY2x1ZGluZyBub3RpZmljYXRpb24gdHJheSkgYW5kIHNsaW1zIHRoZSB0b3AgYmFyIGZvciBtb3JlIHNwYWNlLiBTZWUgZ2l0aHViIHBhZ2UgZm9yIG1vcmUgc2NyZWVuc2hvdHMuIiwKICAibmFtZSI6ICJDb21wYWN0IFRvcCBCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21ldGVoYW4tYXJzbGFuL2dub21lLWNvbXBhY3QtdG9wLWJhciIsCiAgInV1aWQiOiAiZ25vbWUtY29tcGFjdC10b3AtYmFyQG1ldGVoYW4tYXJzbGFuLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="},
-    "45": {"version": "6", "sha256": "1hzr99sagcpyaawwwy1rsjn7qywrxl3a6w4vjr5vdqpdvrv0plkc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdHJhbnNwYXJlbmN5IGVmZmVjdHMgKGluY2x1ZGluZyBub3RpZmljYXRpb24gdHJheSkgYW5kIHNsaW1zIHRoZSB0b3AgYmFyIGZvciBtb3JlIHNwYWNlLiBTZWUgZ2l0aHViIHBhZ2UgZm9yIG1vcmUgc2NyZWVuc2hvdHMuIiwKICAibmFtZSI6ICJDb21wYWN0IFRvcCBCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWV0ZWhhbi1hcnNsYW4vZ25vbWUtY29tcGFjdC10b3AtYmFyIiwKICAidXVpZCI6ICJnbm9tZS1jb21wYWN0LXRvcC1iYXJAbWV0ZWhhbi1hcnNsYW4uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}
+    "45": {"version": "6", "sha256": "1hzr99sagcpyaawwwy1rsjn7qywrxl3a6w4vjr5vdqpdvrv0plkc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdHJhbnNwYXJlbmN5IGVmZmVjdHMgKGluY2x1ZGluZyBub3RpZmljYXRpb24gdHJheSkgYW5kIHNsaW1zIHRoZSB0b3AgYmFyIGZvciBtb3JlIHNwYWNlLiBTZWUgZ2l0aHViIHBhZ2UgZm9yIG1vcmUgc2NyZWVuc2hvdHMuIiwKICAibmFtZSI6ICJDb21wYWN0IFRvcCBCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWV0ZWhhbi1hcnNsYW4vZ25vbWUtY29tcGFjdC10b3AtYmFyIiwKICAidXVpZCI6ICJnbm9tZS1jb21wYWN0LXRvcC1iYXJAbWV0ZWhhbi1hcnNsYW4uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="},
+    "46": {"version": "7", "sha256": "0k6i6al2nbm9zv2sbmggamkg7lkalpjd76wskzfq8gyx6ah08xnq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdHJhbnNwYXJlbmN5IGVmZmVjdHMgKGluY2x1ZGluZyBub3RpZmljYXRpb24gdHJheSkgYW5kIHNsaW1zIHRoZSB0b3AgYmFyIGZvciBtb3JlIHNwYWNlLiBTZWUgZ2l0aHViIHBhZ2UgZm9yIG1vcmUgc2NyZWVuc2hvdHMuIiwKICAibmFtZSI6ICJDb21wYWN0IFRvcCBCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWV0ZWhhbi1hcnNsYW4vZ25vbWUtY29tcGFjdC10b3AtYmFyIiwKICAidXVpZCI6ICJnbm9tZS1jb21wYWN0LXRvcC1iYXJAbWV0ZWhhbi1hcnNsYW4uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDcKfQ=="}
   }}
 , {"uuid": "persistent-notifications@AlexeyReshetnyak", "name": "Persistent Notifications", "pname": "persistent-notifications", "description": "Never hide a new notification, except if you close it.", "link": "https://extensions.gnome.org/extension/5672/persistent-notifications/", "shell_version_map": {
     "40": {"version": "1", "sha256": "0y0vk8dva14yfbgdss00sl42wdwbf5mhpc9vhapbl773fdr5l2c7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldmVyIGhpZGUgYSBuZXcgbm90aWZpY2F0aW9uLCBleGNlcHQgaWYgeW91IGNsb3NlIGl0LiIsCiAgIm5hbWUiOiAiUGVyc2lzdGVudCBOb3RpZmljYXRpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWxleGV5UmVzaGV0bnlhay9wZXJzaXN0ZW50LW5vdGlmaWNhdGlvbnMiLAogICJ1dWlkIjogInBlcnNpc3RlbnQtbm90aWZpY2F0aW9uc0BBbGV4ZXlSZXNoZXRueWFrIiwKICAidmVyc2lvbiI6IDEKfQ=="},
@@ -5869,7 +5911,8 @@
   }}
 , {"uuid": "desaturated-tray-icons@cr1337.github.com", "name": "Desaturated Tray Icons", "pname": "desaturated-tray-icons", "description": "Display all tray icons in grayscale", "link": "https://extensions.gnome.org/extension/5766/desaturated-tray-icons/", "shell_version_map": {
     "42": {"version": "2", "sha256": "1v27biy9psxiv9fkgp83p9rqbwid2rqdwdc6f5rl4mnhj0fn8p8k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYWxsIHRyYXkgaWNvbnMgaW4gZ3JheXNjYWxlIiwKICAibmFtZSI6ICJEZXNhdHVyYXRlZCBUcmF5IEljb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NSMTMzNy9kZXNhdHVyYXRlZC10cmF5LWljb25zIiwKICAidXVpZCI6ICJkZXNhdHVyYXRlZC10cmF5LWljb25zQGNyMTMzNy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
-    "45": {"version": "3", "sha256": "1p7737pmrlvj7wnw0w798s92s8m8g4l1ljqlyvsj60nxyb39rmqv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYWxsIHRyYXkgaWNvbnMgaW4gZ3JheXNjYWxlIiwKICAibmFtZSI6ICJEZXNhdHVyYXRlZCBUcmF5IEljb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NSMTMzNy9kZXNhdHVyYXRlZC10cmF5LWljb25zIiwKICAidXVpZCI6ICJkZXNhdHVyYXRlZC10cmF5LWljb25zQGNyMTMzNy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}
+    "45": {"version": "3", "sha256": "1p7737pmrlvj7wnw0w798s92s8m8g4l1ljqlyvsj60nxyb39rmqv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYWxsIHRyYXkgaWNvbnMgaW4gZ3JheXNjYWxlIiwKICAibmFtZSI6ICJEZXNhdHVyYXRlZCBUcmF5IEljb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NSMTMzNy9kZXNhdHVyYXRlZC10cmF5LWljb25zIiwKICAidXVpZCI6ICJkZXNhdHVyYXRlZC10cmF5LWljb25zQGNyMTMzNy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="},
+    "46": {"version": "4", "sha256": "0sl8rdkrzgp680wdiydng3lrvh6x78qxn0nwq3pbaq6qnkwmgj08", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYWxsIHRyYXkgaWNvbnMgaW4gZ3JheXNjYWxlIiwKICAibmFtZSI6ICJEZXNhdHVyYXRlZCBUcmF5IEljb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NSMTMzNy9kZXNhdHVyYXRlZC10cmF5LWljb25zIiwKICAidXVpZCI6ICJkZXNhdHVyYXRlZC10cmF5LWljb25zQGNyMTMzNy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}
   }}
 , {"uuid": "hassleless-overview-search@mechtifs", "name": "Hassleless Overview Search", "pname": "hassleless-overview-search", "description": "This extension reverts the ibus input source to default when entering the overview, and restores it after exiting, which solves the conflict between the ibus popup and the \"Type to search\" feature.", "link": "https://extensions.gnome.org/extension/5769/hassleless-overview-search/", "shell_version_map": {
     "42": {"version": "3", "sha256": "1m1lhgyf70vidzrrcn3nyiis6dd3gb3hr6n578hbqr81kzc1hvmq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHJldmVydHMgdGhlIGlidXMgaW5wdXQgc291cmNlIHRvIGRlZmF1bHQgd2hlbiBlbnRlcmluZyB0aGUgb3ZlcnZpZXcsIGFuZCByZXN0b3JlcyBpdCBhZnRlciBleGl0aW5nLCB3aGljaCBzb2x2ZXMgdGhlIGNvbmZsaWN0IGJldHdlZW4gdGhlIGlidXMgcG9wdXAgYW5kIHRoZSBcIlR5cGUgdG8gc2VhcmNoXCIgZmVhdHVyZS4iLAogICJuYW1lIjogIkhhc3NsZWxlc3MgT3ZlcnZpZXcgU2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWVjaHRpZnMvaGFzc2xlbGVzcy1vdmVydmlldy1zZWFyY2giLAogICJ1dWlkIjogImhhc3NsZWxlc3Mtb3ZlcnZpZXctc2VhcmNoQG1lY2h0aWZzIiwKICAidmVyc2lvbiI6IDMKfQ=="},
@@ -5937,8 +5980,8 @@
     "42": {"version": "6", "sha256": "1mdyigd5dn324ivb5bgypiq4gibjsbzm0rkcml9hi699a609736k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiSGVhZHNldENvbnRyb2wiLAogICJuYW1lIjogIkhlYWRzZXRDb250cm9sIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhlYWRzZXRDb250cm9sIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2hyaXNMYXVpbmdlcjc3L2dub21lLXNoZWxsLWV4dGVuc2lvbi1IZWFkc2V0Q29udHJvbCIsCiAgInV1aWQiOiAiSGVhZHNldENvbnRyb2xAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiA2Cn0="},
     "43": {"version": "15", "sha256": "04as61msjqq359r1qm0d7dw7df2bcngx67pmwva8flyvzi62iavi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiSGVhZHNldENvbnRyb2wiLAogICJuYW1lIjogIkhlYWRzZXRDb250cm9sIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhlYWRzZXRDb250cm9sIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLUhlYWRzZXRDb250cm9sIiwKICAidXVpZCI6ICJIZWFkc2V0Q29udHJvbEBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDE1Cn0="},
     "44": {"version": "23", "sha256": "00clk8w8p1sxsqpmwsmlgki2vvx9cjlvnzsrn9j69n1img4vbiwh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiSGVhZHNldENvbnRyb2wiLAogICJuYW1lIjogIkhlYWRzZXRDb250cm9sIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhlYWRzZXRDb250cm9sIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9nbm9tZS1zaGVsbC1leHRlbnNpb24tSGVhZHNldENvbnRyb2wiLAogICJ1dWlkIjogIkhlYWRzZXRDb250cm9sQGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMjMKfQ=="},
-    "45": {"version": "28", "sha256": "0pb004pskirvndwmlhvaz7zv6n32q0fflq47fgill3f48vn57xh8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIkhlYWRzZXRDb250cm9sIiwKICAibmFtZSI6ICJIZWFkc2V0Q29udHJvbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5IZWFkc2V0Q29udHJvbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2hyaXNMYXVpbmdlcjc3L2dub21lLXNoZWxsLWV4dGVuc2lvbi1IZWFkc2V0Q29udHJvbCIsCiAgInV1aWQiOiAiSGVhZHNldENvbnRyb2xAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAyOCwKICAidmVyc2lvbi1uYW1lIjogIjQ2LjIiCn0="},
-    "46": {"version": "28", "sha256": "0pb004pskirvndwmlhvaz7zv6n32q0fflq47fgill3f48vn57xh8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIkhlYWRzZXRDb250cm9sIiwKICAibmFtZSI6ICJIZWFkc2V0Q29udHJvbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5IZWFkc2V0Q29udHJvbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2hyaXNMYXVpbmdlcjc3L2dub21lLXNoZWxsLWV4dGVuc2lvbi1IZWFkc2V0Q29udHJvbCIsCiAgInV1aWQiOiAiSGVhZHNldENvbnRyb2xAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAyOCwKICAidmVyc2lvbi1uYW1lIjogIjQ2LjIiCn0="}
+    "45": {"version": "30", "sha256": "1d0v1k0g9mizc3k2qyxgl8xmq9w4rzk124vbjq2ifzircbsb6qb2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIkhlYWRzZXRDb250cm9sIiwKICAibmFtZSI6ICJIZWFkc2V0Q29udHJvbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5IZWFkc2V0Q29udHJvbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2hyaXNMYXVpbmdlcjc3L2dub21lLXNoZWxsLWV4dGVuc2lvbi1IZWFkc2V0Q29udHJvbCIsCiAgInV1aWQiOiAiSGVhZHNldENvbnRyb2xAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAzMCwKICAidmVyc2lvbi1uYW1lIjogIjQ2LjQiCn0="},
+    "46": {"version": "30", "sha256": "1d0v1k0g9mizc3k2qyxgl8xmq9w4rzk124vbjq2ifzircbsb6qb2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIkhlYWRzZXRDb250cm9sIiwKICAibmFtZSI6ICJIZWFkc2V0Q29udHJvbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5IZWFkc2V0Q29udHJvbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2hyaXNMYXVpbmdlcjc3L2dub21lLXNoZWxsLWV4dGVuc2lvbi1IZWFkc2V0Q29udHJvbCIsCiAgInV1aWQiOiAiSGVhZHNldENvbnRyb2xAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAzMCwKICAidmVyc2lvbi1uYW1lIjogIjQ2LjQiCn0="}
   }}
 , {"uuid": "true-color-window-invert@lynet101", "name": "True Color Window Invert", "pname": "true-color-invert", "description": "Inverts the color of individual windows so they are hue-preserved.\nDefault shortcut is Super+I (Fork from JackKenney, due to 2+ years of inactivity)\n\n!!!IMPORTANT!!!\nDue to changes in personal and professional life, developer lynet_101 will no longer be able to maintain this project, and the extension, as a result, is from December the 5th 2023 orphaned\n\npatch notes v3:\nFixed an issue where windows would occasionally disappear upon inversion\n\nAbout Gnome 45:\nThere will be made an effort to port this extension to gnome 45, but gnome has decided to revamp large parts of the framework used for these sorts of extensions, and as I'm a solo developer, don't expect it to be ported immediately .\n\nI apologize for any inconvenience this may cause ;(", "link": "https://extensions.gnome.org/extension/5829/true-color-invert/", "shell_version_map": {
     "38": {"version": "3", "sha256": "01hsx7mrd0z8fy797x3xn8jqjjw8a34dxj4vvf9w43zdixj5i6z4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludmVydHMgdGhlIGNvbG9yIG9mIGluZGl2aWR1YWwgd2luZG93cyBzbyB0aGV5IGFyZSBodWUtcHJlc2VydmVkLlxuRGVmYXVsdCBzaG9ydGN1dCBpcyBTdXBlcitJIChGb3JrIGZyb20gSmFja0tlbm5leSwgZHVlIHRvIDIrIHllYXJzIG9mIGluYWN0aXZpdHlcblxucGF0Y2ggbm90ZXMgdjM6XG5GaXhlZCBhbiBpc3N1ZSB3aGVyZSB3aW5kb3dzIHdvdWxkIG9jY2FzaW9uYWxseSBkaXNhcHBlYXIgdXBvbiBpbnZlcnNpb25cblxuTm90ZXM6XG5BcyB0aGlzIGlzIGEgZmFpcmx5IG5ldyBhZG9wdGlvbiwgb2YgYSBmYWlybHkgb2xkIHByb2plY3QsIGV4cGVjdCBmcmVxdWVudCB1cGRhdGVzIGFuZCBidWcgcGF0Y2hlcyBpbiB0aGUgYmVnaW5uaW5nLiB0aGFuayB5b3UgZm9yIHVuZGVyc3RhbmRpbmciLAogICJuYW1lIjogIlRydWUgQ29sb3IgV2luZG93IEludmVydCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cnVlLWNvbG9yLXdpbmRvdy1pbnZlcnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0x5bmV0MTAxL2dub21lLXRydWUtY29sb3ItaW52ZXJ0IiwKICAidXVpZCI6ICJ0cnVlLWNvbG9yLXdpbmRvdy1pbnZlcnRAbHluZXQxMDEiLAogICJ2ZXJzaW9uIjogMwp9"},
@@ -5986,7 +6029,8 @@
     "42": {"version": "4", "sha256": "0h1dglr1zc4rn75hklf4h4r808683dqpwl6zp7rrg52xrb3cp1bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBzaG93IGFwcHMgaWNvbiBhdCB0b3Agb2YgZGFzaCIsCiAgIm5hbWUiOiAiU2hvdyBBcHBzIGF0IFRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3JiaXRjb3JyZWN0b24vc2hvdy1hcHBzLWF0LXRvcCIsCiAgInV1aWQiOiAic2hvd2FwcHNhdHRvcEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiA0Cn0="},
     "43": {"version": "4", "sha256": "0h1dglr1zc4rn75hklf4h4r808683dqpwl6zp7rrg52xrb3cp1bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBzaG93IGFwcHMgaWNvbiBhdCB0b3Agb2YgZGFzaCIsCiAgIm5hbWUiOiAiU2hvdyBBcHBzIGF0IFRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3JiaXRjb3JyZWN0b24vc2hvdy1hcHBzLWF0LXRvcCIsCiAgInV1aWQiOiAic2hvd2FwcHNhdHRvcEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiA0Cn0="},
     "44": {"version": "4", "sha256": "0h1dglr1zc4rn75hklf4h4r808683dqpwl6zp7rrg52xrb3cp1bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBzaG93IGFwcHMgaWNvbiBhdCB0b3Agb2YgZGFzaCIsCiAgIm5hbWUiOiAiU2hvdyBBcHBzIGF0IFRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3JiaXRjb3JyZWN0b24vc2hvdy1hcHBzLWF0LXRvcCIsCiAgInV1aWQiOiAic2hvd2FwcHNhdHRvcEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiA0Cn0="},
-    "45": {"version": "9", "sha256": "04ppx5k7hkabk8ndj7yqz40m3qmidvvpkbkpzrb7c2p8p9kfb32m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBzaG93IGFwcHMgaWNvbiBhdCB0b3AgaW4gR25vbWUgZGVmYXVsdCBkYXNoIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJob3diZWEiCiAgfSwKICAibmFtZSI6ICJBcHBzIGF0IFRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvc2hvdy1hcHBzLWF0LXRvcCIsCiAgInV1aWQiOiAic2hvd2FwcHNhdHRvcEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiA5Cn0="}
+    "45": {"version": "10", "sha256": "1gx1k0qchvbv6jlja304xswg9j4ijh4xx5gkip7qip3cada3msfz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBzaG93IGFwcHMgaWNvbiBhdCB0b3AgaW4gR25vbWUgZGVmYXVsdCBkYXNoIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJob3diZWEiCiAgfSwKICAibmFtZSI6ICJBcHBzIGF0IFRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL3Nob3ctYXBwcy1hdC10b3AiLAogICJ1dWlkIjogInNob3dhcHBzYXR0b3BAZ2l0aHViLmNvbS5vcmJpdGNvcnJlY3Rpb24iLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
+    "46": {"version": "10", "sha256": "1gx1k0qchvbv6jlja304xswg9j4ijh4xx5gkip7qip3cada3msfz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBzaG93IGFwcHMgaWNvbiBhdCB0b3AgaW4gR25vbWUgZGVmYXVsdCBkYXNoIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJob3diZWEiCiAgfSwKICAibmFtZSI6ICJBcHBzIGF0IFRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL3Nob3ctYXBwcy1hdC10b3AiLAogICJ1dWlkIjogInNob3dhcHBzYXR0b3BAZ2l0aHViLmNvbS5vcmJpdGNvcnJlY3Rpb24iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}
   }}
 , {"uuid": "overviewbackground@github.com.orbitcorrection", "name": "Overview Background", "pname": "overview-background", "description": "Add background in overview", "link": "https://extensions.gnome.org/extension/5856/overview-background/", "shell_version_map": {
     "40": {"version": "7", "sha256": "0asaxvjc17x5vg55di2pcd6vwczbgzvw91bi9s6957f45d04n1y8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vcmJpdGNvcnJlY3Rvbi9vdmVydmlldy1iYWNrZ3JvdW5kIiwKICAidXVpZCI6ICJvdmVydmlld2JhY2tncm91bmRAZ2l0aHViLmNvbS5vcmJpdGNvcnJlY3Rpb24iLAogICJ2ZXJzaW9uIjogNwp9"},
@@ -5994,7 +6038,8 @@
     "42": {"version": "15", "sha256": "06zs5qhn63d481clvf7fjdwzwkz893h3hf257q3wikipa6mqqgk8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL292ZXJ2aWV3LWJhY2tncm91bmQiLAogICJ1dWlkIjogIm92ZXJ2aWV3YmFja2dyb3VuZEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiAxNQp9"},
     "43": {"version": "15", "sha256": "06zs5qhn63d481clvf7fjdwzwkz893h3hf257q3wikipa6mqqgk8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL292ZXJ2aWV3LWJhY2tncm91bmQiLAogICJ1dWlkIjogIm92ZXJ2aWV3YmFja2dyb3VuZEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiAxNQp9"},
     "44": {"version": "15", "sha256": "06zs5qhn63d481clvf7fjdwzwkz893h3hf257q3wikipa6mqqgk8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL292ZXJ2aWV3LWJhY2tncm91bmQiLAogICJ1dWlkIjogIm92ZXJ2aWV3YmFja2dyb3VuZEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiAxNQp9"},
-    "45": {"version": "16", "sha256": "1i3az4y3ac9sxc0fbhn6ivms32yyl239f00aqlbml9kpp1liv9wa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJob3diZWEiCiAgfSwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hvd2JlYS9vdmVydmlldy1iYWNrZ3JvdW5kIiwKICAidXVpZCI6ICJvdmVydmlld2JhY2tncm91bmRAZ2l0aHViLmNvbS5vcmJpdGNvcnJlY3Rpb24iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}
+    "45": {"version": "16", "sha256": "1i3az4y3ac9sxc0fbhn6ivms32yyl239f00aqlbml9kpp1liv9wa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJob3diZWEiCiAgfSwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hvd2JlYS9vdmVydmlldy1iYWNrZ3JvdW5kIiwKICAidXVpZCI6ICJvdmVydmlld2JhY2tncm91bmRAZ2l0aHViLmNvbS5vcmJpdGNvcnJlY3Rpb24iLAogICJ2ZXJzaW9uIjogMTYKfQ=="},
+    "46": {"version": "17", "sha256": "1a262j68k2vrr5yjk63gqlc0gvcv61wja28m4wkmxmw2l2www3d6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJob3diZWEiCiAgfSwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hvd2JlYS9vdmVydmlldy1iYWNrZ3JvdW5kIiwKICAidXVpZCI6ICJvdmVydmlld2JhY2tncm91bmRAZ2l0aHViLmNvbS5vcmJpdGNvcnJlY3Rpb24iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}
   }}
 , {"uuid": "logout-button@0ct0puce.com", "name": "Logout Button", "pname": "logout-button", "description": "Logout button easily accessible in the top panel. It could be useful as it restart gnome everytime you click it.", "link": "https://extensions.gnome.org/extension/5865/logout-button/", "shell_version_map": {
     "43": {"version": "1", "sha256": "15v4d6kxnlnbayqryliy67s35zbvr6j8g1w2x6wm0w909gcwi0px", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ291dCBidXR0b24gZWFzaWx5IGFjY2Vzc2libGUgaW4gdGhlIHRvcCBwYW5lbC4gSXQgY291bGQgYmUgdXNlZnVsIGFzIGl0IHJlc3RhcnQgZ25vbWUgZXZlcnl0aW1lIHlvdSBjbGljayBpdC4iLAogICJuYW1lIjogIkxvZ291dCBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMENUMFBVQ0UtTE9HL2dub21lLXNoZWxsLWV4dGVuc2lvbi1sb2dvdXQtYnV0dG9uIiwKICAidXVpZCI6ICJsb2dvdXQtYnV0dG9uQDBjdDBwdWNlLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}
@@ -6079,8 +6124,8 @@
 , {"uuid": "quick-settings-audio-panel@rayzeq.github.io", "name": "Quick Settings Audio Panel", "pname": "quick-settings-audio-panel", "description": "Create a new panel containing volumes and media control in the quick settings", "link": "https://extensions.gnome.org/extension/5940/quick-settings-audio-panel/", "shell_version_map": {
     "43": {"version": "45", "sha256": "00d8j387483znvsigd0cjm8kgzb7z4paipavpdilmdv5k14iv0wn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAibmFtZSI6ICJRdWljayBTZXR0aW5ncyBBdWRpbyBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5xdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQ1Cn0="},
     "44": {"version": "45", "sha256": "00d8j387483znvsigd0cjm8kgzb7z4paipavpdilmdv5k14iv0wn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAibmFtZSI6ICJRdWljayBTZXR0aW5ncyBBdWRpbyBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5xdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQ1Cn0="},
-    "45": {"version": "44", "sha256": "0xkwz2mkchvy2mym5a05p4b3wdzpv14kvcgwyywzxwmlmxxcxg74", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWxAcmF5emVxLmdpdGh1Yi5pbyIsCiAgIm5hbWUiOiAiUXVpY2sgU2V0dGluZ3MgQXVkaW8gUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQ0Cn0="},
-    "46": {"version": "46", "sha256": "1rh86y2yk2da8avknc08y2bsn3k1dr65dfc928n55ywx4gaqlr7j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWxAcmF5emVxLmdpdGh1Yi5pbyIsCiAgIm5hbWUiOiAiUXVpY2sgU2V0dGluZ3MgQXVkaW8gUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQ2Cn0="}
+    "45": {"version": "48", "sha256": "0nckxx53fxyzxqhp68vdx66yrdw8z3flbd4yhrnp5hpqzkfwhakv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWxAcmF5emVxLmdpdGh1Yi5pbyIsCiAgIm5hbWUiOiAiUXVpY2sgU2V0dGluZ3MgQXVkaW8gUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQ4Cn0="},
+    "46": {"version": "52", "sha256": "1gy80sfdja355wlazckpb50ycpgvkmzg9bc209niqp8jdk9v3qx5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWxAcmF5emVxLmdpdGh1Yi5pbyIsCiAgIm5hbWUiOiAiUXVpY2sgU2V0dGluZ3MgQXVkaW8gUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUyCn0="}
   }}
 , {"uuid": "soft-brightness-plus@joelkitching.com", "name": "Soft Brightness Plus", "pname": "soft-brightness-plus", "description": "Add or override the brightness slider to change the brightness via an alpha layer (and optionally stop using or cooperate with the exising backlight, if present).\nEither internal, external or all monitors can be dimmed.\nSee the GitHub page for details.\n\nNote that this extension will keep running on the lock screen, as you'd also want the brightness setting to apply to the lock screen as well. Please report on GitHub if this gives you any trouble.\n\nThis extension is a fork of the original 'Soft brightness' extension, and maintains support for new GNOME releases.", "link": "https://extensions.gnome.org/extension/5943/soft-brightness-plus/", "shell_version_map": {
     "38": {"version": "5", "sha256": "08i7qzs1c9ifpa9z5xdiif31jp10g4jxr0ijnn18vmcgv2pkfyln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBpbmNsdWRlcyBzdXBwb3J0IGZvciBHTk9NRSA0MysuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJuYW1lIjogIlNvZnQgQnJpZ2h0bmVzcyBQbHVzIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1c2VyIiwKICAgICJ1bmxvY2stZGlhbG9nIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamtpdGNoaW5nL3NvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAidXVpZCI6ICJzb2Z0LWJyaWdodG5lc3MtcGx1c0Bqb2Vsa2l0Y2hpbmcuY29tIiwKICAidmNzX3JldmlzaW9uIjogIjc3YjVmOTIiLAogICJ2ZXJzaW9uIjogNQp9"},
@@ -6089,8 +6134,8 @@
     "42": {"version": "5", "sha256": "08i7qzs1c9ifpa9z5xdiif31jp10g4jxr0ijnn18vmcgv2pkfyln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBpbmNsdWRlcyBzdXBwb3J0IGZvciBHTk9NRSA0MysuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJuYW1lIjogIlNvZnQgQnJpZ2h0bmVzcyBQbHVzIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1c2VyIiwKICAgICJ1bmxvY2stZGlhbG9nIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamtpdGNoaW5nL3NvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAidXVpZCI6ICJzb2Z0LWJyaWdodG5lc3MtcGx1c0Bqb2Vsa2l0Y2hpbmcuY29tIiwKICAidmNzX3JldmlzaW9uIjogIjc3YjVmOTIiLAogICJ2ZXJzaW9uIjogNQp9"},
     "43": {"version": "5", "sha256": "08i7qzs1c9ifpa9z5xdiif31jp10g4jxr0ijnn18vmcgv2pkfyln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBpbmNsdWRlcyBzdXBwb3J0IGZvciBHTk9NRSA0MysuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJuYW1lIjogIlNvZnQgQnJpZ2h0bmVzcyBQbHVzIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1c2VyIiwKICAgICJ1bmxvY2stZGlhbG9nIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamtpdGNoaW5nL3NvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAidXVpZCI6ICJzb2Z0LWJyaWdodG5lc3MtcGx1c0Bqb2Vsa2l0Y2hpbmcuY29tIiwKICAidmNzX3JldmlzaW9uIjogIjc3YjVmOTIiLAogICJ2ZXJzaW9uIjogNQp9"},
     "44": {"version": "5", "sha256": "08i7qzs1c9ifpa9z5xdiif31jp10g4jxr0ijnn18vmcgv2pkfyln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBpbmNsdWRlcyBzdXBwb3J0IGZvciBHTk9NRSA0MysuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJuYW1lIjogIlNvZnQgQnJpZ2h0bmVzcyBQbHVzIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1c2VyIiwKICAgICJ1bmxvY2stZGlhbG9nIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamtpdGNoaW5nL3NvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAidXVpZCI6ICJzb2Z0LWJyaWdodG5lc3MtcGx1c0Bqb2Vsa2l0Y2hpbmcuY29tIiwKICAidmNzX3JldmlzaW9uIjogIjc3YjVmOTIiLAogICJ2ZXJzaW9uIjogNQp9"},
-    "45": {"version": "18", "sha256": "0x7378p3srqwria4b8qwag7lqvdjvxyd3q8m67b8285ndspc9y8s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBtYWludGFpbnMgc3VwcG9ydCBmb3IgbmV3IEdOT01FIHJlbGVhc2VzLiIsCiAgImdldHRleHQtZG9tYWluIjogInNvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAibmFtZSI6ICJTb2Z0IEJyaWdodG5lc3MgUGx1cyIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidW5sb2NrLWRpYWxvZyIsCiAgICAidXNlciIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2praXRjaGluZy9zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInV1aWQiOiAic29mdC1icmlnaHRuZXNzLXBsdXNAam9lbGtpdGNoaW5nLmNvbSIsCiAgInZjc19yZXZpc2lvbiI6ICI3YzRhOWM5IiwKICAidmVyc2lvbiI6IDE4Cn0="},
-    "46": {"version": "18", "sha256": "0x7378p3srqwria4b8qwag7lqvdjvxyd3q8m67b8285ndspc9y8s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBtYWludGFpbnMgc3VwcG9ydCBmb3IgbmV3IEdOT01FIHJlbGVhc2VzLiIsCiAgImdldHRleHQtZG9tYWluIjogInNvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAibmFtZSI6ICJTb2Z0IEJyaWdodG5lc3MgUGx1cyIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidW5sb2NrLWRpYWxvZyIsCiAgICAidXNlciIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2praXRjaGluZy9zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInV1aWQiOiAic29mdC1icmlnaHRuZXNzLXBsdXNAam9lbGtpdGNoaW5nLmNvbSIsCiAgInZjc19yZXZpc2lvbiI6ICI3YzRhOWM5IiwKICAidmVyc2lvbiI6IDE4Cn0="}
+    "45": {"version": "19", "sha256": "18bc53i0p9ncqrvxbkrlqisf9p19bphf5l9ii8zj923siikzivvk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBtYWludGFpbnMgc3VwcG9ydCBmb3IgbmV3IEdOT01FIHJlbGVhc2VzLiIsCiAgImdldHRleHQtZG9tYWluIjogInNvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAibmFtZSI6ICJTb2Z0IEJyaWdodG5lc3MgUGx1cyIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidW5sb2NrLWRpYWxvZyIsCiAgICAidXNlciIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2praXRjaGluZy9zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInV1aWQiOiAic29mdC1icmlnaHRuZXNzLXBsdXNAam9lbGtpdGNoaW5nLmNvbSIsCiAgInZjc19yZXZpc2lvbiI6ICJ2MzktNC1nNzY4ZjZiNSIsCiAgInZlcnNpb24iOiAxOQp9"},
+    "46": {"version": "19", "sha256": "18bc53i0p9ncqrvxbkrlqisf9p19bphf5l9ii8zj923siikzivvk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBtYWludGFpbnMgc3VwcG9ydCBmb3IgbmV3IEdOT01FIHJlbGVhc2VzLiIsCiAgImdldHRleHQtZG9tYWluIjogInNvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAibmFtZSI6ICJTb2Z0IEJyaWdodG5lc3MgUGx1cyIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidW5sb2NrLWRpYWxvZyIsCiAgICAidXNlciIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2praXRjaGluZy9zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInV1aWQiOiAic29mdC1icmlnaHRuZXNzLXBsdXNAam9lbGtpdGNoaW5nLmNvbSIsCiAgInZjc19yZXZpc2lvbiI6ICJ2MzktNC1nNzY4ZjZiNSIsCiAgInZlcnNpb24iOiAxOQp9"}
   }}
 , {"uuid": "swatch-clock@okatotf.github.io", "name": "Swatch Clock", "pname": "swatch-clock", "description": "An extension which displays the Swatch Internet Time on the panel.", "link": "https://extensions.gnome.org/extension/5946/swatch-clock/", "shell_version_map": {
     "44": {"version": "2", "sha256": "131rlf6q1w6jxz95j8yf3vpi40y80p1rjax5b2mapm6ppasdlkl2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGV4dGVuc2lvbiB3aGljaCBkaXNwbGF5cyB0aGUgU3dhdGNoIEludGVybmV0IFRpbWUgb24gdGhlIHBhbmVsLiIsCiAgIm5hbWUiOiAiU3dhdGNoIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29rYXRvdGYvc3dhdGNoLWNsb2NrIiwKICAidXVpZCI6ICJzd2F0Y2gtY2xvY2tAb2thdG90Zi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMgp9"}
@@ -6122,8 +6167,8 @@
     "42": {"version": "13", "sha256": "1qmwvsv7g5lh7yri6m8c3r18zhvr6bh2wcchlgydyzfdkdsvjpid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG5cbkN1c3RvbWl6YXRpb246XG5cbi0gSW5kaWNhdG9yIHBvc2l0aW9uXG4tIFNjcm9sbCBkaXJlY3Rpb24gKG5vcm1hbCBvciBpbnZlcnNlKVxuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdtaWRkbGUgY2xpY2sgdG8gY2xvc2UgYXBwJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICd3b3Jrc3BhY2UgaW5kaWNhdG9yJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdhcHAgaW5kaWNhdG9yJ1xuLSBDdXN0b21pemUgaW5kaWNhdG9yIGNvbG9yXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3JvdW5kIGJvcmRlcnMnXG4tIFNob3cvSGlkZSB3b3Jrc3BhY2VzIG5hbWVzXG4tIFNob3cvSGlkZSBlbXB0eSB3b3Jrc3BhY2VzXG4tIEN1c3RvbWl6ZSBhcHBzIG9uIGFsbCB3b3Jrc3BhY2VzIHRleHQgaW5kaWNhdG9yXG4tIERlc2F0dXJhdGUgYWxsIGljb25zXG4tIE5vIGVmZmVjdC9SZWR1Y2Ugb3BhY2l0eS9EZXNhdHVyYXRlIGZvciBib3RoIG1pbmltaXplZCBhbmQgaW5hY3RpdmUgYXBwc1xuLSBMaW1pdCBpY29ucyBwZXIgd29ya3NwYWNlXG4tIEdyb3VwIGljb25zIG9mIHNhbWUgYXBwbGljYXRpb25cbiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRmF2bzAyL3dvcmtzcGFjZXMtYnktb3Blbi1hcHBzIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJ5LW9wZW4tYXBwc0BmYXZvMDIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"},
     "43": {"version": "13", "sha256": "1qmwvsv7g5lh7yri6m8c3r18zhvr6bh2wcchlgydyzfdkdsvjpid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG5cbkN1c3RvbWl6YXRpb246XG5cbi0gSW5kaWNhdG9yIHBvc2l0aW9uXG4tIFNjcm9sbCBkaXJlY3Rpb24gKG5vcm1hbCBvciBpbnZlcnNlKVxuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdtaWRkbGUgY2xpY2sgdG8gY2xvc2UgYXBwJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICd3b3Jrc3BhY2UgaW5kaWNhdG9yJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdhcHAgaW5kaWNhdG9yJ1xuLSBDdXN0b21pemUgaW5kaWNhdG9yIGNvbG9yXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3JvdW5kIGJvcmRlcnMnXG4tIFNob3cvSGlkZSB3b3Jrc3BhY2VzIG5hbWVzXG4tIFNob3cvSGlkZSBlbXB0eSB3b3Jrc3BhY2VzXG4tIEN1c3RvbWl6ZSBhcHBzIG9uIGFsbCB3b3Jrc3BhY2VzIHRleHQgaW5kaWNhdG9yXG4tIERlc2F0dXJhdGUgYWxsIGljb25zXG4tIE5vIGVmZmVjdC9SZWR1Y2Ugb3BhY2l0eS9EZXNhdHVyYXRlIGZvciBib3RoIG1pbmltaXplZCBhbmQgaW5hY3RpdmUgYXBwc1xuLSBMaW1pdCBpY29ucyBwZXIgd29ya3NwYWNlXG4tIEdyb3VwIGljb25zIG9mIHNhbWUgYXBwbGljYXRpb25cbiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRmF2bzAyL3dvcmtzcGFjZXMtYnktb3Blbi1hcHBzIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJ5LW9wZW4tYXBwc0BmYXZvMDIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"},
     "44": {"version": "13", "sha256": "1qmwvsv7g5lh7yri6m8c3r18zhvr6bh2wcchlgydyzfdkdsvjpid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG5cbkN1c3RvbWl6YXRpb246XG5cbi0gSW5kaWNhdG9yIHBvc2l0aW9uXG4tIFNjcm9sbCBkaXJlY3Rpb24gKG5vcm1hbCBvciBpbnZlcnNlKVxuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdtaWRkbGUgY2xpY2sgdG8gY2xvc2UgYXBwJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICd3b3Jrc3BhY2UgaW5kaWNhdG9yJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdhcHAgaW5kaWNhdG9yJ1xuLSBDdXN0b21pemUgaW5kaWNhdG9yIGNvbG9yXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3JvdW5kIGJvcmRlcnMnXG4tIFNob3cvSGlkZSB3b3Jrc3BhY2VzIG5hbWVzXG4tIFNob3cvSGlkZSBlbXB0eSB3b3Jrc3BhY2VzXG4tIEN1c3RvbWl6ZSBhcHBzIG9uIGFsbCB3b3Jrc3BhY2VzIHRleHQgaW5kaWNhdG9yXG4tIERlc2F0dXJhdGUgYWxsIGljb25zXG4tIE5vIGVmZmVjdC9SZWR1Y2Ugb3BhY2l0eS9EZXNhdHVyYXRlIGZvciBib3RoIG1pbmltaXplZCBhbmQgaW5hY3RpdmUgYXBwc1xuLSBMaW1pdCBpY29ucyBwZXIgd29ya3NwYWNlXG4tIEdyb3VwIGljb25zIG9mIHNhbWUgYXBwbGljYXRpb25cbiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRmF2bzAyL3dvcmtzcGFjZXMtYnktb3Blbi1hcHBzIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJ5LW9wZW4tYXBwc0BmYXZvMDIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"},
-    "45": {"version": "15", "sha256": "1z248a0rd5zj623brc1lb3c9al3yp7ph9yzx091pcgq6hs0by49x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMvbWluaW1pemUgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG4tIEhpZGUvc2hvdyBHTk9NRSBkZWZhdWx0IHdvcmtzcGFjZSBpbmRpY2F0b3IgKGZvcm1lciBhY3Rpdml0aWVzIGJ1dHRvbilcblxuQ3VzdG9taXphdGlvbjpcblxuLSBJbmRpY2F0b3IgcG9zaXRpb25cbi0gTW91c2Ugc2Nyb2xsIGRpcmVjdGlvbiAobm9ybWFsIG9yIGludmVyc2UpXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ21pZGRsZSBjbGljayB0byBjbG9zZSBhcHAnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2NsaWNrIG9uIGFjdGl2ZSB3b3Jrc3BhY2UgdG8gb3ZlcnZpZXcnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2NsaWNrIG9uIGZvY3VzZWQgYXBwbGljYXRpb24gdG8gbWluaW1pemUnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3dvcmtzcGFjZSBpbmRpY2F0b3InXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2FwcCBpbmRpY2F0b3InXG4tIEN1c3RvbWl6ZSBpbmRpY2F0b3IgY29sb3Jcbi0gQWN0aXZhdGUvZGVhY3RpdmF0ZSAncm91bmQgYm9yZGVycydcbi0gU2hvdy9IaWRlIHdvcmtzcGFjZXMgbmFtZXNcbi0gU2hvdy9IaWRlIGVtcHR5IHdvcmtzcGFjZXNcbi0gQ3VzdG9taXplIGFwcHMgb24gYWxsIHdvcmtzcGFjZXMgdGV4dCBpbmRpY2F0b3Jcbi0gRGVzYXR1cmF0ZSBhbGwgaWNvbnNcbi0gTm8gZWZmZWN0L1JlZHVjZSBvcGFjaXR5L0Rlc2F0dXJhdGUgZm9yIGJvdGggbWluaW1pemVkIGFuZCBpbmFjdGl2ZSBhcHBzXG4tIExpbWl0IGljb25zIHBlciB3b3Jrc3BhY2Vcbi0gR3JvdXAgaWNvbnMgb2Ygc2FtZSBhcHBsaWNhdGlvblxuLSBJZ25vcmUgYXBwbGljYXRpb25zICh3aXRoIHJlZ2V4KSIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzcGFjZXMtaW5kaWNhdG9yLWJ5LW9wZW4tYXBwcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRmF2bzAyL3dvcmtzcGFjZXMtYnktb3Blbi1hcHBzIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJ5LW9wZW4tYXBwc0BmYXZvMDIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"},
-    "46": {"version": "15", "sha256": "1z248a0rd5zj623brc1lb3c9al3yp7ph9yzx091pcgq6hs0by49x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMvbWluaW1pemUgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG4tIEhpZGUvc2hvdyBHTk9NRSBkZWZhdWx0IHdvcmtzcGFjZSBpbmRpY2F0b3IgKGZvcm1lciBhY3Rpdml0aWVzIGJ1dHRvbilcblxuQ3VzdG9taXphdGlvbjpcblxuLSBJbmRpY2F0b3IgcG9zaXRpb25cbi0gTW91c2Ugc2Nyb2xsIGRpcmVjdGlvbiAobm9ybWFsIG9yIGludmVyc2UpXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ21pZGRsZSBjbGljayB0byBjbG9zZSBhcHAnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2NsaWNrIG9uIGFjdGl2ZSB3b3Jrc3BhY2UgdG8gb3ZlcnZpZXcnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2NsaWNrIG9uIGZvY3VzZWQgYXBwbGljYXRpb24gdG8gbWluaW1pemUnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3dvcmtzcGFjZSBpbmRpY2F0b3InXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2FwcCBpbmRpY2F0b3InXG4tIEN1c3RvbWl6ZSBpbmRpY2F0b3IgY29sb3Jcbi0gQWN0aXZhdGUvZGVhY3RpdmF0ZSAncm91bmQgYm9yZGVycydcbi0gU2hvdy9IaWRlIHdvcmtzcGFjZXMgbmFtZXNcbi0gU2hvdy9IaWRlIGVtcHR5IHdvcmtzcGFjZXNcbi0gQ3VzdG9taXplIGFwcHMgb24gYWxsIHdvcmtzcGFjZXMgdGV4dCBpbmRpY2F0b3Jcbi0gRGVzYXR1cmF0ZSBhbGwgaWNvbnNcbi0gTm8gZWZmZWN0L1JlZHVjZSBvcGFjaXR5L0Rlc2F0dXJhdGUgZm9yIGJvdGggbWluaW1pemVkIGFuZCBpbmFjdGl2ZSBhcHBzXG4tIExpbWl0IGljb25zIHBlciB3b3Jrc3BhY2Vcbi0gR3JvdXAgaWNvbnMgb2Ygc2FtZSBhcHBsaWNhdGlvblxuLSBJZ25vcmUgYXBwbGljYXRpb25zICh3aXRoIHJlZ2V4KSIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzcGFjZXMtaW5kaWNhdG9yLWJ5LW9wZW4tYXBwcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRmF2bzAyL3dvcmtzcGFjZXMtYnktb3Blbi1hcHBzIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJ5LW9wZW4tYXBwc0BmYXZvMDIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}
+    "45": {"version": "16", "sha256": "1kgbpn8i999k5y90sz0kimc2vlaq4pnanfnrg9xf5n0inyb1mkhv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMvbWluaW1pemUgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG4tIEhpZGUvc2hvdyBHTk9NRSBkZWZhdWx0IHdvcmtzcGFjZSBpbmRpY2F0b3IgKGZvcm1lciBhY3Rpdml0aWVzIGJ1dHRvbilcblxuQ3VzdG9taXphdGlvbjpcblxuLSBJbmRpY2F0b3IgcG9zaXRpb25cbi0gTW91c2Ugc2Nyb2xsIGRpcmVjdGlvbiAobm9ybWFsIG9yIGludmVyc2UpXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ21pZGRsZSBjbGljayB0byBjbG9zZSBhcHAnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2NsaWNrIG9uIGFjdGl2ZSB3b3Jrc3BhY2UgdG8gb3ZlcnZpZXcnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2NsaWNrIG9uIGZvY3VzZWQgYXBwbGljYXRpb24gdG8gbWluaW1pemUnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3dvcmtzcGFjZSBpbmRpY2F0b3InXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2FwcCBpbmRpY2F0b3InXG4tIEN1c3RvbWl6ZSBpbmRpY2F0b3IgY29sb3Jcbi0gQWN0aXZhdGUvZGVhY3RpdmF0ZSAncm91bmQgYm9yZGVycydcbi0gU2hvdy9IaWRlIHdvcmtzcGFjZXMgbmFtZXNcbi0gU2hvdy9IaWRlIGVtcHR5IHdvcmtzcGFjZXNcbi0gQ3VzdG9taXplIGFwcHMgb24gYWxsIHdvcmtzcGFjZXMgdGV4dCBpbmRpY2F0b3Jcbi0gRGVzYXR1cmF0ZSBhbGwgaWNvbnNcbi0gTm8gZWZmZWN0L1JlZHVjZSBvcGFjaXR5L0Rlc2F0dXJhdGUgZm9yIGJvdGggbWluaW1pemVkIGFuZCBpbmFjdGl2ZSBhcHBzXG4tIExpbWl0IGljb25zIHBlciB3b3Jrc3BhY2Vcbi0gR3JvdXAgaWNvbnMgb2Ygc2FtZSBhcHBsaWNhdGlvblxuLSBJZ25vcmUgYXBwbGljYXRpb25zICh3aXRoIHJlZ2V4KSIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzcGFjZXMtaW5kaWNhdG9yLWJ5LW9wZW4tYXBwcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRmF2bzAyL3dvcmtzcGFjZXMtYnktb3Blbi1hcHBzIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJ5LW9wZW4tYXBwc0BmYXZvMDIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"},
+    "46": {"version": "16", "sha256": "1kgbpn8i999k5y90sz0kimc2vlaq4pnanfnrg9xf5n0inyb1mkhv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMvbWluaW1pemUgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG4tIEhpZGUvc2hvdyBHTk9NRSBkZWZhdWx0IHdvcmtzcGFjZSBpbmRpY2F0b3IgKGZvcm1lciBhY3Rpdml0aWVzIGJ1dHRvbilcblxuQ3VzdG9taXphdGlvbjpcblxuLSBJbmRpY2F0b3IgcG9zaXRpb25cbi0gTW91c2Ugc2Nyb2xsIGRpcmVjdGlvbiAobm9ybWFsIG9yIGludmVyc2UpXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ21pZGRsZSBjbGljayB0byBjbG9zZSBhcHAnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2NsaWNrIG9uIGFjdGl2ZSB3b3Jrc3BhY2UgdG8gb3ZlcnZpZXcnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2NsaWNrIG9uIGZvY3VzZWQgYXBwbGljYXRpb24gdG8gbWluaW1pemUnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3dvcmtzcGFjZSBpbmRpY2F0b3InXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2FwcCBpbmRpY2F0b3InXG4tIEN1c3RvbWl6ZSBpbmRpY2F0b3IgY29sb3Jcbi0gQWN0aXZhdGUvZGVhY3RpdmF0ZSAncm91bmQgYm9yZGVycydcbi0gU2hvdy9IaWRlIHdvcmtzcGFjZXMgbmFtZXNcbi0gU2hvdy9IaWRlIGVtcHR5IHdvcmtzcGFjZXNcbi0gQ3VzdG9taXplIGFwcHMgb24gYWxsIHdvcmtzcGFjZXMgdGV4dCBpbmRpY2F0b3Jcbi0gRGVzYXR1cmF0ZSBhbGwgaWNvbnNcbi0gTm8gZWZmZWN0L1JlZHVjZSBvcGFjaXR5L0Rlc2F0dXJhdGUgZm9yIGJvdGggbWluaW1pemVkIGFuZCBpbmFjdGl2ZSBhcHBzXG4tIExpbWl0IGljb25zIHBlciB3b3Jrc3BhY2Vcbi0gR3JvdXAgaWNvbnMgb2Ygc2FtZSBhcHBsaWNhdGlvblxuLSBJZ25vcmUgYXBwbGljYXRpb25zICh3aXRoIHJlZ2V4KSIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzcGFjZXMtaW5kaWNhdG9yLWJ5LW9wZW4tYXBwcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRmF2bzAyL3dvcmtzcGFjZXMtYnktb3Blbi1hcHBzIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJ5LW9wZW4tYXBwc0BmYXZvMDIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"}
   }}
 , {"uuid": "fshyperlinks@nuclear.polygon", "name": "FS Hyperlinks", "pname": "fs-hyperlinks", "description": "Select a path to jump there (When Ctrl is down)\nAlt+J to open file or directory with default app (when its path is in clipboard)", "link": "https://extensions.gnome.org/extension/5970/fs-hyperlinks/", "shell_version_map": {
     "38": {"version": "5", "sha256": "0q6gsl75vivslv9yw8ik5pfapdz4ivvr9bmai2pjy2ls7cw9zf9k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlbGVjdCBhIHBhdGggdG8ganVtcCB0aGVyZSAoV2hlbiBDdHJsIGlzIGRvd24pXG5BbHQrSiB0byBvcGVuIGZpbGUgb3IgZGlyZWN0b3J5IHdpdGggZGVmYXVsdCBhcHAgKHdoZW4gaXRzIHBhdGggaXMgaW4gY2xpcGJvYXJkKSIsCiAgIm5hbWUiOiAiRlMgSHlwZXJsaW5rcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbnVjbGVhcnBvbHlnb24vZnNfaHlwZXJsaW5rc19nbm9tZV9leHRlbnNpb24iLAogICJ1dWlkIjogImZzaHlwZXJsaW5rc0BudWNsZWFyLnBvbHlnb24iLAogICJ2ZXJzaW9uIjogNQp9"},
@@ -6139,8 +6184,8 @@
     "42": {"version": "95", "sha256": "0myj4g5351fi04w3iwpshjhy9a5vgq85nwd186ymlvnjby12d6fh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi4iLAogICJuYW1lIjogIkdpdGh1YiBBY3Rpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhcm9ub25ha0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdpdGh1Yi1hY3Rpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcm9ub25hay9naXRodWItYWN0aW9ucy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdpdGh1Yi1hY3Rpb25zQGFyb25vbmFrLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA5NQp9"},
     "43": {"version": "95", "sha256": "0myj4g5351fi04w3iwpshjhy9a5vgq85nwd186ymlvnjby12d6fh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi4iLAogICJuYW1lIjogIkdpdGh1YiBBY3Rpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhcm9ub25ha0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdpdGh1Yi1hY3Rpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcm9ub25hay9naXRodWItYWN0aW9ucy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdpdGh1Yi1hY3Rpb25zQGFyb25vbmFrLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA5NQp9"},
     "44": {"version": "95", "sha256": "0myj4g5351fi04w3iwpshjhy9a5vgq85nwd186ymlvnjby12d6fh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi4iLAogICJuYW1lIjogIkdpdGh1YiBBY3Rpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhcm9ub25ha0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdpdGh1Yi1hY3Rpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcm9ub25hay9naXRodWItYWN0aW9ucy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdpdGh1Yi1hY3Rpb25zQGFyb25vbmFrLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA5NQp9"},
-    "45": {"version": "135", "sha256": "1mas611qax46pyn9r953z3b1jp1n7r9wd7z7s3ifqq4038ihywck", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi5cblxuVmVyc2lvbnMgYmVsb3cgZ25vbWUgNDUgd2lsbCBubyBsb25nZXIgYmUgc3VwcG9ydGVkIDovIiwKICAibmFtZSI6ICJHaXRodWIgQWN0aW9ucyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiYXJvbm9uYWtAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5naXRodWItYWN0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJvbm9uYWsvZ2l0aHViLWFjdGlvbnMtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnaXRodWItYWN0aW9uc0Bhcm9ub25hay5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTM1Cn0="},
-    "46": {"version": "135", "sha256": "1mas611qax46pyn9r953z3b1jp1n7r9wd7z7s3ifqq4038ihywck", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi5cblxuVmVyc2lvbnMgYmVsb3cgZ25vbWUgNDUgd2lsbCBubyBsb25nZXIgYmUgc3VwcG9ydGVkIDovIiwKICAibmFtZSI6ICJHaXRodWIgQWN0aW9ucyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiYXJvbm9uYWtAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5naXRodWItYWN0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJvbm9uYWsvZ2l0aHViLWFjdGlvbnMtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnaXRodWItYWN0aW9uc0Bhcm9ub25hay5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTM1Cn0="}
+    "45": {"version": "138", "sha256": "0fr1n41yi070waxvs9yx53n78hw8nc2mxyr9b5pn70znyhh7iqvy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi5cblxuVmVyc2lvbnMgYmVsb3cgZ25vbWUgNDUgd2lsbCBubyBsb25nZXIgYmUgc3VwcG9ydGVkIDovIiwKICAibmFtZSI6ICJHaXRodWIgQWN0aW9ucyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiYXJvbm9uYWtAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5naXRodWItYWN0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJvbm9uYWsvZ2l0aHViLWFjdGlvbnMtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnaXRodWItYWN0aW9uc0Bhcm9ub25hay5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTM4Cn0="},
+    "46": {"version": "138", "sha256": "0fr1n41yi070waxvs9yx53n78hw8nc2mxyr9b5pn70znyhh7iqvy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi5cblxuVmVyc2lvbnMgYmVsb3cgZ25vbWUgNDUgd2lsbCBubyBsb25nZXIgYmUgc3VwcG9ydGVkIDovIiwKICAibmFtZSI6ICJHaXRodWIgQWN0aW9ucyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiYXJvbm9uYWtAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5naXRodWItYWN0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJvbm9uYWsvZ2l0aHViLWFjdGlvbnMtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnaXRodWItYWN0aW9uc0Bhcm9ub25hay5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTM4Cn0="}
   }}
 , {"uuid": "dim-completed-calendar-events@marcinjahn.com", "name": "Dim Completed Calendar Events", "pname": "dim-completed-calendar-events", "description": "Dim completed events in the top panel menu to easily distinguish between upcoming and past events. You can also highlight events that are ongoing.", "link": "https://extensions.gnome.org/extension/5979/dim-completed-calendar-events/", "shell_version_map": {
     "44": {"version": "3", "sha256": "0dpyrhdc70f77wv8hx7d6xnpxx13c2qfp7dbx716mqq90raij39f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSBjb21wbGV0ZWQgZXZlbnRzIGluIHRoZSB0b3AgcGFuZWwgbWVudSB0byBlYXNpbHkgZGlzdGluZ3Vpc2ggYmV0d2VlbiB1cGNvbWluZyBhbmQgcGFzdCBldmVudHMuIFlvdSBjYW4gYWxzbyBoaWdobGlnaHQgZXZlbnRzIHRoYXQgYXJlIG9uZ29pbmcuIiwKICAibmFtZSI6ICJEaW0gQ29tcGxldGVkIENhbGVuZGFyIEV2ZW50cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXJjaW5qYWhuL2dub21lLWRpbS1jb21wbGV0ZWQtY2FsZW5kYXItZXZlbnRzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZGltLWNvbXBsZXRlZC1jYWxlbmRhci1ldmVudHNAbWFyY2luamFobi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"},
@@ -6165,10 +6210,11 @@
     "42": {"version": "3", "sha256": "1s9ril86dbbf296zi2ayflvzgvvz6r8xgj6j2k0wfmi4v2g09607", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ25pZmllciBjdXJzb3Igc2hpZnQgZml4LiIsCiAgIm5hbWUiOiAiTWFnZml4IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhbmRyZWouZ3JpY2Vua29AZ21haWwuY29tIgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjMuMzguNiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FuZHJlamdyaWNlbmtvL21hZ2ZpeCIsCiAgInV1aWQiOiAibWFnZml4QGFuZHJlai5ncmljZW5rbyIsCiAgInZlcnNpb24iOiAzCn0="},
     "43": {"version": "3", "sha256": "1s9ril86dbbf296zi2ayflvzgvvz6r8xgj6j2k0wfmi4v2g09607", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ25pZmllciBjdXJzb3Igc2hpZnQgZml4LiIsCiAgIm5hbWUiOiAiTWFnZml4IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhbmRyZWouZ3JpY2Vua29AZ21haWwuY29tIgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjMuMzguNiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FuZHJlamdyaWNlbmtvL21hZ2ZpeCIsCiAgInV1aWQiOiAibWFnZml4QGFuZHJlai5ncmljZW5rbyIsCiAgInZlcnNpb24iOiAzCn0="}
   }}
-, {"uuid": "uppercase-language-indicator@buffersolve", "name": "Uppercase Language Indicator", "pname": "uppercase-language-indicator", "description": "Sets the Keyboard Language indicator in the status area to uppercase.", "link": "https://extensions.gnome.org/extension/5993/uppercase-language-indicator/", "shell_version_map": {
+, {"uuid": "uppercase-language-indicator@buffersolve", "name": "Uppercase Language Indicator", "pname": "uppercase-language-indicator", "description": "Sets the Language indicator in the status area to uppercase.", "link": "https://extensions.gnome.org/extension/5993/uppercase-language-indicator/", "shell_version_map": {
     "43": {"version": "1", "sha256": "0prm3afmr0jfixycfldc4xy0pgqsa0ybxm68nwhmn7dpj77yivcz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHMgdGhlIExhbmd1YWdlIGluZGljYXRvciBpbiB0aGUgc3RhdHVzIGFyZWEgdG8gdXBwZXJjYXNlLiIsCiAgIm5hbWUiOiAiVXBwZXJjYXNlIExhbmd1YWdlIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQnVmZmVyc29sdmUvVXBwZXJjYXNlLUxhbmd1YWdlLUluZGljYXRvciIsCiAgInV1aWQiOiAidXBwZXJjYXNlLWxhbmd1YWdlLWluZGljYXRvckBidWZmZXJzb2x2ZSIsCiAgInZlcnNpb24iOiAxCn0="},
     "44": {"version": "1", "sha256": "0prm3afmr0jfixycfldc4xy0pgqsa0ybxm68nwhmn7dpj77yivcz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHMgdGhlIExhbmd1YWdlIGluZGljYXRvciBpbiB0aGUgc3RhdHVzIGFyZWEgdG8gdXBwZXJjYXNlLiIsCiAgIm5hbWUiOiAiVXBwZXJjYXNlIExhbmd1YWdlIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQnVmZmVyc29sdmUvVXBwZXJjYXNlLUxhbmd1YWdlLUluZGljYXRvciIsCiAgInV1aWQiOiAidXBwZXJjYXNlLWxhbmd1YWdlLWluZGljYXRvckBidWZmZXJzb2x2ZSIsCiAgInZlcnNpb24iOiAxCn0="},
-    "45": {"version": "2", "sha256": "0iwxqjmbacf8xhhz0ijcpfg9d7cg78s77q6rh1lgp38nswnkz6hj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHMgdGhlIExhbmd1YWdlIGluZGljYXRvciBpbiB0aGUgc3RhdHVzIGFyZWEgdG8gdXBwZXJjYXNlLiIsCiAgIm5hbWUiOiAiVXBwZXJjYXNlIExhbmd1YWdlIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CdWZmZXJzb2x2ZS9VcHBlcmNhc2UtTGFuZ3VhZ2UtSW5kaWNhdG9yIiwKICAidXVpZCI6ICJ1cHBlcmNhc2UtbGFuZ3VhZ2UtaW5kaWNhdG9yQGJ1ZmZlcnNvbHZlIiwKICAidmVyc2lvbiI6IDIKfQ=="}
+    "45": {"version": "3", "sha256": "1njbsi7ch1lh54fddm94c6ywyacvsy1pgdj38km3p5w8gg2mssf6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHMgdGhlIExhbmd1YWdlIGluZGljYXRvciBpbiB0aGUgc3RhdHVzIGFyZWEgdG8gdXBwZXJjYXNlLiIsCiAgIm5hbWUiOiAiVXBwZXJjYXNlIExhbmd1YWdlIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQnVmZmVyc29sdmUvVXBwZXJjYXNlLUxhbmd1YWdlLUluZGljYXRvciIsCiAgInV1aWQiOiAidXBwZXJjYXNlLWxhbmd1YWdlLWluZGljYXRvckBidWZmZXJzb2x2ZSIsCiAgInZlcnNpb24iOiAzCn0="},
+    "46": {"version": "3", "sha256": "1njbsi7ch1lh54fddm94c6ywyacvsy1pgdj38km3p5w8gg2mssf6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHMgdGhlIExhbmd1YWdlIGluZGljYXRvciBpbiB0aGUgc3RhdHVzIGFyZWEgdG8gdXBwZXJjYXNlLiIsCiAgIm5hbWUiOiAiVXBwZXJjYXNlIExhbmd1YWdlIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQnVmZmVyc29sdmUvVXBwZXJjYXNlLUxhbmd1YWdlLUluZGljYXRvciIsCiAgInV1aWQiOiAidXBwZXJjYXNlLWxhbmd1YWdlLWluZGljYXRvckBidWZmZXJzb2x2ZSIsCiAgInZlcnNpb24iOiAzCn0="}
   }}
 , {"uuid": "my-hijri-date-extension@ameen-sha", "name": "Hijri Date Extension", "pname": "hijri-date-extension", "description": "Display the Hijri date in the top panel.", "link": "https://extensions.gnome.org/extension/5995/hijri-date-extension/", "shell_version_map": {
     "38": {"version": "5", "sha256": "1zzw95f1643y5g0xfcip0d7kpgpjkdm1dz2ai3k3y1qlg3jjgl4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIEhpanJpIGRhdGUgaW4gdGhlIHRvcCBwYW5lbC4iLAogICJuYW1lIjogIkhpanJpIERhdGUgRXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9BbWVlbi1TaGEtQ2hlZXJhbmdhbi9IaWpyaS1EYXRlLUdub21lLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAibXktaGlqcmktZGF0ZS1leHRlbnNpb25AYW1lZW4tc2hhIiwKICAidmVyc2lvbiI6IDUKfQ=="},
@@ -6200,7 +6246,8 @@
   }}
 , {"uuid": "notch-clock-offset@christophbrill.de", "name": "Notch Clock Offset", "pname": "notch-clock-offset", "description": "Moves the display of the clock to the left or right of the notch for the webcam when using apple_dcp.show_notch=1", "link": "https://extensions.gnome.org/extension/6018/notch-clock-offset/", "shell_version_map": {
     "44": {"version": "3", "sha256": "0crxx2qryx5g5zpaqwvcr5yw1k4282dh2v637hikz127vvj5l8zj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSBkaXNwbGF5IG9mIHRoZSBjbG9jayB0byB0aGUgbGVmdCBvciByaWdodCBvZiB0aGUgbm90Y2ggZm9yIHRoZSB3ZWJjYW0gd2hlbiB1c2luZyBhcHBsZV9kY3Auc2hvd19ub3RjaD0xIiwKICAibmFtZSI6ICJOb3RjaCBDbG9jayBPZmZzZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm90Y2gtY2xvY2stb2Zmc2V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2Vnb3JlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1ub3RjaC1jbG9jay1vZmZzZXQiLAogICJ1dWlkIjogIm5vdGNoLWNsb2NrLW9mZnNldEBjaHJpc3RvcGhicmlsbC5kZSIsCiAgInZlcnNpb24iOiAzCn0="},
-    "45": {"version": "4", "sha256": "14s096c24ppb5kix6759khcpf7w61v0dvh9d3fiba0r0bs8v2ar3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSBkaXNwbGF5IG9mIHRoZSBjbG9jayB0byB0aGUgbGVmdCBvciByaWdodCBvZiB0aGUgbm90Y2ggZm9yIHRoZSB3ZWJjYW0gd2hlbiB1c2luZyBhcHBsZV9kY3Auc2hvd19ub3RjaD0xIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90Y2gtY2xvY2stb2Zmc2V0IiwKICAibmFtZSI6ICJOb3RjaCBDbG9jayBPZmZzZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm90Y2gtY2xvY2stb2Zmc2V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2Vnb3JlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1ub3RjaC1jbG9jay1vZmZzZXQiLAogICJ1dWlkIjogIm5vdGNoLWNsb2NrLW9mZnNldEBjaHJpc3RvcGhicmlsbC5kZSIsCiAgInZlcnNpb24iOiA0Cn0="}
+    "45": {"version": "5", "sha256": "0jq33rqyhkndpnd4islmg230fc00f5mqdsvmg6858j2fmzdvllc1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSBkaXNwbGF5IG9mIHRoZSBjbG9jayB0byB0aGUgbGVmdCBvciByaWdodCBvZiB0aGUgbm90Y2ggZm9yIHRoZSB3ZWJjYW0gd2hlbiB1c2luZyBhcHBsZV9kY3Auc2hvd19ub3RjaD0xIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90Y2gtY2xvY2stb2Zmc2V0IiwKICAibmFtZSI6ICJOb3RjaCBDbG9jayBPZmZzZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm90Y2gtY2xvY2stb2Zmc2V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9lZ29yZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbm90Y2gtY2xvY2stb2Zmc2V0IiwKICAidXVpZCI6ICJub3RjaC1jbG9jay1vZmZzZXRAY2hyaXN0b3BoYnJpbGwuZGUiLAogICJ2ZXJzaW9uIjogNQp9"},
+    "46": {"version": "5", "sha256": "0jq33rqyhkndpnd4islmg230fc00f5mqdsvmg6858j2fmzdvllc1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSBkaXNwbGF5IG9mIHRoZSBjbG9jayB0byB0aGUgbGVmdCBvciByaWdodCBvZiB0aGUgbm90Y2ggZm9yIHRoZSB3ZWJjYW0gd2hlbiB1c2luZyBhcHBsZV9kY3Auc2hvd19ub3RjaD0xIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90Y2gtY2xvY2stb2Zmc2V0IiwKICAibmFtZSI6ICJOb3RjaCBDbG9jayBPZmZzZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm90Y2gtY2xvY2stb2Zmc2V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9lZ29yZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbm90Y2gtY2xvY2stb2Zmc2V0IiwKICAidXVpZCI6ICJub3RjaC1jbG9jay1vZmZzZXRAY2hyaXN0b3BoYnJpbGwuZGUiLAogICJ2ZXJzaW9uIjogNQp9"}
   }}
 , {"uuid": "maccymenu@dgvai.com", "name": "Maccy Menu", "pname": "maccy-menu", "description": "Menu Item like MacOS", "link": "https://extensions.gnome.org/extension/6021/maccy-menu/", "shell_version_map": {
     "42": {"version": "9", "sha256": "1nrw6lk4h8zxxjl3mx8zwqs4rnpmbyqk8kq07y8mqjngdzvjz7v2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1lbnUgSXRlbSBsaWtlIE1hY09TIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1hY2N5bWVudSIsCiAgIm5hbWUiOiAiTWFjY3kgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYWNjeW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kZ3ZhaS9tYWNjeW1lbnUtZ25vbWUtc2hlbGwtZXh0IiwKICAidXVpZCI6ICJtYWNjeW1lbnVAZGd2YWkuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="},
@@ -6221,10 +6268,11 @@
     "44": {"version": "5", "sha256": "103f6rn0py6ivrxhgmr11bxqj7lnd15w8f4pl1k88a11r2gkpqb8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc3lzdGVtZCBzeXN0ZW0gc3RhdGUiLAogICJuYW1lIjogIlN5c3RlbWQgU3RhdHVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uRTBzSWdoVC9zeXN0ZW1kLXN0YXR1cy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInN5c3RlbWQtc3RhdHVzQG5lMHNpZ2h0LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1Cn0="},
     "45": {"version": "6", "sha256": "0mwsyg2df835cww9hmp86mz5ncxlggiw746r0kyl3xa6pqyxpfrx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc3lzdGVtZCBzeXN0ZW0gc3RhdGUiLAogICJuYW1lIjogIlN5c3RlbWQgU3RhdHVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25FMHNJZ2hUL3N5c3RlbWQtc3RhdHVzLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic3lzdGVtZC1zdGF0dXNAbmUwc2lnaHQuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}
   }}
-, {"uuid": "peek-top-bar-on-fullscreen@marcinjahn.com", "name": "Peek Top Bar on Fullscreen", "pname": "peek-top-bar-on-fullscreen", "description": "Show the top bar (panel) on demand while having full screen content on (like a YouTube video). Just hover the mouse cursor to the top of the screen, and the panel will show up. This way, you can quickly check the time, or swich some toggles. This is similar to what macOS offers for full screen apps.\n\nOn Wayland, to hide the top bar, you need to click the primary mouse button somewhere outside of the bar. On X11, just take the cursor away from the bar.\nThis extension is incompatible with Blur My Shell extension.", "link": "https://extensions.gnome.org/extension/6048/peek-top-bar-on-fullscreen/", "shell_version_map": {
+, {"uuid": "peek-top-bar-on-fullscreen@marcinjahn.com", "name": "Peek Top Bar on Fullscreen", "pname": "peek-top-bar-on-fullscreen", "description": "Show the top bar (panel) on demand while having full screen content on (like a YouTube video). Just hover the mouse cursor to the top of the screen, and the panel will show up. This way, you can quickly check the time, or swich some toggles. This is similar to what macOS offers for full screen apps.\n\nThis extension is incompatible with Blur My Shell extension.", "link": "https://extensions.gnome.org/extension/6048/peek-top-bar-on-fullscreen/", "shell_version_map": {
     "43": {"version": "8", "sha256": "1p196by16zmgsy5af1jsgrm38p6vrrzh1pn2nbar6zw25pldsn8p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHRvcCBiYXIgKHBhbmVsKSBvbiBkZW1hbmQgd2hpbGUgaGF2aW5nIGZ1bGwgc2NyZWVuIGNvbnRlbnQgb24gKGxpa2UgYSBZb3VUdWJlIHZpZGVvKS4gSnVzdCBob3ZlciB0aGUgbW91c2UgY3Vyc29yIHRvIHRoZSB0b3Agb2YgdGhlIHNjcmVlbiwgYW5kIHRoZSBwYW5lbCB3aWxsIHNob3cgdXAuIFRoaXMgd2F5LCB5b3UgY2FuIHF1aWNrbHkgY2hlY2sgdGhlIHRpbWUsIG9yIHN3aWNoIHNvbWUgdG9nZ2xlcy4gVGhpcyBpcyBzaW1pbGFyIHRvIHdoYXQgbWFjT1Mgb2ZmZXJzIGZvciBmdWxsIHNjcmVlbiBhcHBzLlxuXG5PbiBXYXlsYW5kLCB0byBoaWRlIHRoZSB0b3AgYmFyLCB5b3UgbmVlZCB0byBjbGljayB0aGUgcHJpbWFyeSBtb3VzZSBidXR0b24gc29tZXdoZXJlIG91dHNpZGUgb2YgdGhlIGJhci4gT24gWDExLCBqdXN0IHRha2UgdGhlIGN1cnNvciBhd2F5IGZyb20gdGhlIGJhci5cblRoaXMgZXh0ZW5zaW9uIGlzIGluY29tcGF0aWJsZSB3aXRoIEJsdXIgTXkgU2hlbGwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiUGVlayBUb3AgQmFyIG9uIEZ1bGxzY3JlZW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmNpbmphaG4vZ25vbWUtcGVlay10b3AtYmFyLW9uLWZ1bGxzY3JlZW4tZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJwZWVrLXRvcC1iYXItb24tZnVsbHNjcmVlbkBtYXJjaW5qYWhuLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="},
     "44": {"version": "8", "sha256": "1p196by16zmgsy5af1jsgrm38p6vrrzh1pn2nbar6zw25pldsn8p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHRvcCBiYXIgKHBhbmVsKSBvbiBkZW1hbmQgd2hpbGUgaGF2aW5nIGZ1bGwgc2NyZWVuIGNvbnRlbnQgb24gKGxpa2UgYSBZb3VUdWJlIHZpZGVvKS4gSnVzdCBob3ZlciB0aGUgbW91c2UgY3Vyc29yIHRvIHRoZSB0b3Agb2YgdGhlIHNjcmVlbiwgYW5kIHRoZSBwYW5lbCB3aWxsIHNob3cgdXAuIFRoaXMgd2F5LCB5b3UgY2FuIHF1aWNrbHkgY2hlY2sgdGhlIHRpbWUsIG9yIHN3aWNoIHNvbWUgdG9nZ2xlcy4gVGhpcyBpcyBzaW1pbGFyIHRvIHdoYXQgbWFjT1Mgb2ZmZXJzIGZvciBmdWxsIHNjcmVlbiBhcHBzLlxuXG5PbiBXYXlsYW5kLCB0byBoaWRlIHRoZSB0b3AgYmFyLCB5b3UgbmVlZCB0byBjbGljayB0aGUgcHJpbWFyeSBtb3VzZSBidXR0b24gc29tZXdoZXJlIG91dHNpZGUgb2YgdGhlIGJhci4gT24gWDExLCBqdXN0IHRha2UgdGhlIGN1cnNvciBhd2F5IGZyb20gdGhlIGJhci5cblRoaXMgZXh0ZW5zaW9uIGlzIGluY29tcGF0aWJsZSB3aXRoIEJsdXIgTXkgU2hlbGwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiUGVlayBUb3AgQmFyIG9uIEZ1bGxzY3JlZW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmNpbmphaG4vZ25vbWUtcGVlay10b3AtYmFyLW9uLWZ1bGxzY3JlZW4tZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJwZWVrLXRvcC1iYXItb24tZnVsbHNjcmVlbkBtYXJjaW5qYWhuLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="},
-    "45": {"version": "10", "sha256": "0b9d87yizkm67clk2pk5hzsmzgm7wjjzahq11z4pcmgbsl1iw418", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHRvcCBiYXIgKHBhbmVsKSBvbiBkZW1hbmQgd2hpbGUgaGF2aW5nIGZ1bGwgc2NyZWVuIGNvbnRlbnQgb24gKGxpa2UgYSBZb3VUdWJlIHZpZGVvKS4gSnVzdCBob3ZlciB0aGUgbW91c2UgY3Vyc29yIHRvIHRoZSB0b3Agb2YgdGhlIHNjcmVlbiwgYW5kIHRoZSBwYW5lbCB3aWxsIHNob3cgdXAuIFRoaXMgd2F5LCB5b3UgY2FuIHF1aWNrbHkgY2hlY2sgdGhlIHRpbWUsIG9yIHN3aWNoIHNvbWUgdG9nZ2xlcy4gVGhpcyBpcyBzaW1pbGFyIHRvIHdoYXQgbWFjT1Mgb2ZmZXJzIGZvciBmdWxsIHNjcmVlbiBhcHBzLlxuXG5PbiBXYXlsYW5kLCB0byBoaWRlIHRoZSB0b3AgYmFyLCB5b3UgbmVlZCB0byBjbGljayB0aGUgcHJpbWFyeSBtb3VzZSBidXR0b24gc29tZXdoZXJlIG91dHNpZGUgb2YgdGhlIGJhci4gT24gWDExLCBqdXN0IHRha2UgdGhlIGN1cnNvciBhd2F5IGZyb20gdGhlIGJhci5cblRoaXMgZXh0ZW5zaW9uIGlzIGluY29tcGF0aWJsZSB3aXRoIEJsdXIgTXkgU2hlbGwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiUGVlayBUb3AgQmFyIG9uIEZ1bGxzY3JlZW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFyY2luamFobi9nbm9tZS1wZWVrLXRvcC1iYXItb24tZnVsbHNjcmVlbi1leHRlbnNpb24iLAogICJ1dWlkIjogInBlZWstdG9wLWJhci1vbi1mdWxsc2NyZWVuQG1hcmNpbmphaG4uY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}
+    "45": {"version": "10", "sha256": "0b9d87yizkm67clk2pk5hzsmzgm7wjjzahq11z4pcmgbsl1iw418", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHRvcCBiYXIgKHBhbmVsKSBvbiBkZW1hbmQgd2hpbGUgaGF2aW5nIGZ1bGwgc2NyZWVuIGNvbnRlbnQgb24gKGxpa2UgYSBZb3VUdWJlIHZpZGVvKS4gSnVzdCBob3ZlciB0aGUgbW91c2UgY3Vyc29yIHRvIHRoZSB0b3Agb2YgdGhlIHNjcmVlbiwgYW5kIHRoZSBwYW5lbCB3aWxsIHNob3cgdXAuIFRoaXMgd2F5LCB5b3UgY2FuIHF1aWNrbHkgY2hlY2sgdGhlIHRpbWUsIG9yIHN3aWNoIHNvbWUgdG9nZ2xlcy4gVGhpcyBpcyBzaW1pbGFyIHRvIHdoYXQgbWFjT1Mgb2ZmZXJzIGZvciBmdWxsIHNjcmVlbiBhcHBzLlxuXG5PbiBXYXlsYW5kLCB0byBoaWRlIHRoZSB0b3AgYmFyLCB5b3UgbmVlZCB0byBjbGljayB0aGUgcHJpbWFyeSBtb3VzZSBidXR0b24gc29tZXdoZXJlIG91dHNpZGUgb2YgdGhlIGJhci4gT24gWDExLCBqdXN0IHRha2UgdGhlIGN1cnNvciBhd2F5IGZyb20gdGhlIGJhci5cblRoaXMgZXh0ZW5zaW9uIGlzIGluY29tcGF0aWJsZSB3aXRoIEJsdXIgTXkgU2hlbGwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiUGVlayBUb3AgQmFyIG9uIEZ1bGxzY3JlZW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFyY2luamFobi9nbm9tZS1wZWVrLXRvcC1iYXItb24tZnVsbHNjcmVlbi1leHRlbnNpb24iLAogICJ1dWlkIjogInBlZWstdG9wLWJhci1vbi1mdWxsc2NyZWVuQG1hcmNpbmphaG4uY29tIiwKICAidmVyc2lvbiI6IDEwCn0="},
+    "46": {"version": "14", "sha256": "1cbcgh457k1ir370k0hvzxkns4h476v2smx10jq7z35rs91ahpd5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHRvcCBiYXIgKHBhbmVsKSBvbiBkZW1hbmQgd2hpbGUgaGF2aW5nIGZ1bGwgc2NyZWVuIGNvbnRlbnQgb24gKGxpa2UgYSBZb3VUdWJlIHZpZGVvKS4gSnVzdCBob3ZlciB0aGUgbW91c2UgY3Vyc29yIHRvIHRoZSB0b3Agb2YgdGhlIHNjcmVlbiwgYW5kIHRoZSBwYW5lbCB3aWxsIHNob3cgdXAuIFRoaXMgd2F5LCB5b3UgY2FuIHF1aWNrbHkgY2hlY2sgdGhlIHRpbWUsIG9yIHN3aWNoIHNvbWUgdG9nZ2xlcy4gVGhpcyBpcyBzaW1pbGFyIHRvIHdoYXQgbWFjT1Mgb2ZmZXJzIGZvciBmdWxsIHNjcmVlbiBhcHBzLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBpbmNvbXBhdGlibGUgd2l0aCBCbHVyIE15IFNoZWxsIGV4dGVuc2lvbi4iLAogICJuYW1lIjogIlBlZWsgVG9wIEJhciBvbiBGdWxsc2NyZWVuIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmNpbmphaG4vZ25vbWUtcGVlay10b3AtYmFyLW9uLWZ1bGxzY3JlZW4tZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJwZWVrLXRvcC1iYXItb24tZnVsbHNjcmVlbkBtYXJjaW5qYWhuLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"}
   }}
 , {"uuid": "quick@web.search", "name": "Quick Web Search", "pname": "quick-web-search", "description": "Use Super key for quick web search", "link": "https://extensions.gnome.org/extension/6051/quick-web-search/", "shell_version_map": {
     "42": {"version": "7", "sha256": "0w4irhmgdjr60lxs832a6pq3ywz6l9gd9yq5az6szqb9mv0jln5k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBTdXBlciBrZXkgZm9yIHF1aWNrIHdlYiBzZWFyY2giLAogICJuYW1lIjogIlF1aWNrIFdlYiBTZWFyY2giLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucXVpY2t3ZWJzZWFyY2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vY2hldC1idWRkeS9xdWljay13ZWItc2VhcmNoIiwKICAidXVpZCI6ICJxdWlja0B3ZWIuc2VhcmNoIiwKICAidmVyc2lvbiI6IDcKfQ=="},
@@ -6269,7 +6317,8 @@
     "42": {"version": "5", "sha256": "0bsl6iwrjkf0jn4j6y7m7jprxrjmr60alwj613nzxdnqqpawiq3i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldywgbWF4aW1pemVkIGFuZCBmdWxsc2NyZWVuIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuRm9ya2VkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlLiIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiB0byBFbXB0eSBXb3Jrc3BhY2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZnVsbHNjcmVlbi10by1lbXB0eS13b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29uc2FoL2Z1bGxzY3JlZW4tdG8tbmV3LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbi10by1lbXB0eS13b3Jrc3BhY2VAYWlvbm8uZGV2IiwKICAidmVyc2lvbiI6IDUKfQ=="},
     "43": {"version": "5", "sha256": "0bsl6iwrjkf0jn4j6y7m7jprxrjmr60alwj613nzxdnqqpawiq3i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldywgbWF4aW1pemVkIGFuZCBmdWxsc2NyZWVuIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuRm9ya2VkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlLiIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiB0byBFbXB0eSBXb3Jrc3BhY2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZnVsbHNjcmVlbi10by1lbXB0eS13b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29uc2FoL2Z1bGxzY3JlZW4tdG8tbmV3LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbi10by1lbXB0eS13b3Jrc3BhY2VAYWlvbm8uZGV2IiwKICAidmVyc2lvbiI6IDUKfQ=="},
     "44": {"version": "5", "sha256": "0bsl6iwrjkf0jn4j6y7m7jprxrjmr60alwj613nzxdnqqpawiq3i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldywgbWF4aW1pemVkIGFuZCBmdWxsc2NyZWVuIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuRm9ya2VkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlLiIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiB0byBFbXB0eSBXb3Jrc3BhY2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZnVsbHNjcmVlbi10by1lbXB0eS13b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29uc2FoL2Z1bGxzY3JlZW4tdG8tbmV3LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbi10by1lbXB0eS13b3Jrc3BhY2VAYWlvbm8uZGV2IiwKICAidmVyc2lvbiI6IDUKfQ=="},
-    "45": {"version": "6", "sha256": "0jsns698ap00iqgjrbx88f547j828813b2xdqlwjc8w115a1mayz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldywgbWF4aW1pemVkIGFuZCBmdWxsc2NyZWVuIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuRm9ya2VkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlLiIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiB0byBFbXB0eSBXb3Jrc3BhY2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZnVsbHNjcmVlbi10by1lbXB0eS13b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb25zYWgvZnVsbHNjcmVlbi10by1uZXctd29ya3NwYWNlIiwKICAidXVpZCI6ICJmdWxsc2NyZWVuLXRvLWVtcHR5LXdvcmtzcGFjZUBhaW9uby5kZXYiLAogICJ2ZXJzaW9uIjogNgp9"}
+    "45": {"version": "6", "sha256": "0jsns698ap00iqgjrbx88f547j828813b2xdqlwjc8w115a1mayz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldywgbWF4aW1pemVkIGFuZCBmdWxsc2NyZWVuIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuRm9ya2VkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlLiIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiB0byBFbXB0eSBXb3Jrc3BhY2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZnVsbHNjcmVlbi10by1lbXB0eS13b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb25zYWgvZnVsbHNjcmVlbi10by1uZXctd29ya3NwYWNlIiwKICAidXVpZCI6ICJmdWxsc2NyZWVuLXRvLWVtcHR5LXdvcmtzcGFjZUBhaW9uby5kZXYiLAogICJ2ZXJzaW9uIjogNgp9"},
+    "46": {"version": "7", "sha256": "1zhc78kwbh4yjfqmqsrxg5f7m8jf7adnid42rayyqgvhcgggf5dv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldywgbWF4aW1pemVkIGFuZCBmdWxsc2NyZWVuIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuRm9ya2VkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlLiIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiB0byBFbXB0eSBXb3Jrc3BhY2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZnVsbHNjcmVlbi10by1lbXB0eS13b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb25zYWgvZnVsbHNjcmVlbi10by1uZXctd29ya3NwYWNlIiwKICAidXVpZCI6ICJmdWxsc2NyZWVuLXRvLWVtcHR5LXdvcmtzcGFjZUBhaW9uby5kZXYiLAogICJ2ZXJzaW9uIjogNwp9"}
   }}
 , {"uuid": "fix-focus-on-workspace-switch@hiddn.github.com", "name": "Fix focus on workspace switch", "pname": "fix-focus-on-workspace-switch", "description": "When a workspace switch occurs, this extension ensures the focus is on a window located in the new workspace.\n\nThis extension is essential for a multi-monitor setup using multiple workspaces.", "link": "https://extensions.gnome.org/extension/6084/fix-focus-on-workspace-switch/", "shell_version_map": {
     "40": {"version": "7", "sha256": "1xbyn41h7kynm0ydj6qsh05rzd11n0zclwvmh5ypzzk5h6lml99s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gYSB3b3Jrc3BhY2Ugc3dpdGNoIG9jY3VycywgdGhpcyBleHRlbnNpb24gZW5zdXJlcyB0aGUgZm9jdXMgaXMgb24gYSB3aW5kb3cgbG9jYXRlZCBpbiB0aGUgbmV3IHdvcmtzcGFjZS5cblxuVGhpcyBleHRlbnNpb24gaXMgZXNzZW50aWFsIGZvciBhIG11bHRpLW1vbml0b3Igc2V0dXAgdXNpbmcgbXVsdGlwbGUgd29ya3NwYWNlcy4iLAogICJuYW1lIjogIkZpeCBmb2N1cyBvbiB3b3Jrc3BhY2Ugc3dpdGNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oaWRkbi9maXgtZm9jdXMtb24td29ya3NwYWNlLXN3aXRjaCIsCiAgInV1aWQiOiAiZml4LWZvY3VzLW9uLXdvcmtzcGFjZS1zd2l0Y2hAaGlkZG4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="},
@@ -6295,11 +6344,11 @@
     "46": {"version": "8", "sha256": "1r2w9hdzp1d0x55wf6w1dwwn80cda9fg0y0adxk37qx083hkmj0g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgcGFzdGUgRW1vamlzIGZyb20gdGhlIFNtaWxlIGVtb2ppIHBpY2tlciIsCiAgIm5hbWUiOiAiU21pbGUgLSBjb21wbGVtZW50YXJ5IGV4dGVuc2lvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWlqb3J1cy9zbWlsZS1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInNtaWxlLWV4dGVuc2lvbkBtaWpvcnVzLml0IiwKICAidmVyc2lvbiI6IDgKfQ=="}
   }}
 , {"uuid": "paperwm@paperwm.github.com", "name": "PaperWM", "pname": "paperwm", "description": "Tiling window manager with a twist!\n\n PaperWM is a Gnome Shell extension which provides scrollable tiling of windows and per monitor workspaces. It's inspired by paper notebooks and tiling window managers.\n\nPlease see our github page to report issues, understand features, and learn how to configure PaperWM to your liking.", "link": "https://extensions.gnome.org/extension/6099/paperwm/", "shell_version_map": {
-    "42": {"version": "71", "sha256": "1w626hadaskid3dn39ab4nm9d3sky852rjng4vy4l62a46xvrn7k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNzEsCiAgInZlcnNpb24tbmFtZSI6ICI0NC4xNy4wIgp9"},
-    "43": {"version": "71", "sha256": "1w626hadaskid3dn39ab4nm9d3sky852rjng4vy4l62a46xvrn7k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNzEsCiAgInZlcnNpb24tbmFtZSI6ICI0NC4xNy4wIgp9"},
-    "44": {"version": "71", "sha256": "1w626hadaskid3dn39ab4nm9d3sky852rjng4vy4l62a46xvrn7k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNzEsCiAgInZlcnNpb24tbmFtZSI6ICI0NC4xNy4wIgp9"},
-    "45": {"version": "100", "sha256": "0b6sl818smh6l5jdmcr4qq9jxn0111rrk2zsl0r9zfdxsd12g05n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImpheXRhYWxhIiwKICAgICJwYXRyZW9uIjogInZhbHBhY2tldHQiCiAgfSwKICAibmFtZSI6ICJQYXBlcldNIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBhcGVyd20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAwLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDYuNi40Igp9"},
-    "46": {"version": "100", "sha256": "0b6sl818smh6l5jdmcr4qq9jxn0111rrk2zsl0r9zfdxsd12g05n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImpheXRhYWxhIiwKICAgICJwYXRyZW9uIjogInZhbHBhY2tldHQiCiAgfSwKICAibmFtZSI6ICJQYXBlcldNIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBhcGVyd20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAwLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDYuNi40Igp9"}
+    "42": {"version": "101", "sha256": "1f88bvkwdvvp35ih4spxkff11n30blh043dr1xnihw8hh78bwphi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAxLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMTguMCIKfQ=="},
+    "43": {"version": "101", "sha256": "1f88bvkwdvvp35ih4spxkff11n30blh043dr1xnihw8hh78bwphi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAxLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMTguMCIKfQ=="},
+    "44": {"version": "101", "sha256": "1f88bvkwdvvp35ih4spxkff11n30blh043dr1xnihw8hh78bwphi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAxLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMTguMCIKfQ=="},
+    "45": {"version": "108", "sha256": "1h2py70a2x608m08bvd1yrhldbdrs297biphswq90pq60sla3pzc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImpheXRhYWxhIiwKICAgICJwYXRyZW9uIjogInZhbHBhY2tldHQiCiAgfSwKICAibmFtZSI6ICJQYXBlcldNIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBhcGVyd20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTA4LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDYuOS4wIgp9"},
+    "46": {"version": "108", "sha256": "1h2py70a2x608m08bvd1yrhldbdrs297biphswq90pq60sla3pzc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImpheXRhYWxhIiwKICAgICJwYXRyZW9uIjogInZhbHBhY2tldHQiCiAgfSwKICAibmFtZSI6ICJQYXBlcldNIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBhcGVyd20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTA4LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDYuOS4wIgp9"}
   }}
 , {"uuid": "lightshell@dikasp.gitlab", "name": "Light Shell", "pname": "light-shell", "description": "the missing full light style gnome shell theme you had been looking for :D\n\nNOTE: later release are merged and continue within Luminus extension. brings various improvement and dark mode integration.", "link": "https://extensions.gnome.org/extension/6102/light-shell/", "shell_version_map": {
     "42": {"version": "11", "sha256": "0fqshl06w2amy8d3gw2car4rab6zqpi79dg5dr05d5swggq1vm8n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGx5IGZ1bGwgbGlnaHQgdGhlbWUgaW50byBkZWZhdWx0IGdub21lIHNoZWxsLCBpbmNsdWRpbmcgbGlnaHQgb3ZlcnZpZXcuIiwKICAibmFtZSI6ICJMaWdodCBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9kaWthc2V0eWFwcmF5b2dpL2xpZ2h0LXNoZWxsIiwKICAidXVpZCI6ICJsaWdodHNoZWxsQGRpa2FzcC5naXRsYWIiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
@@ -6373,7 +6422,8 @@
     "42": {"version": "1", "sha256": "1jwz2aw34j29fsj2cppfwcaarw60ggpmmj6xl36xqz6j3cnz0in6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IFNvbGFhciB0byBzdXBwb3J0IGNlcnRhaW4gZmVhdHVyZXMgb24gbm9uIFgxMSBzeXN0ZW1zIiwKICAibmFtZSI6ICJTb2xhYXIgZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zaWRldmVzaC9zb2xhYXItZXh0ZW5zaW9uLWZvci1nbm9tZSIsCiAgInV1aWQiOiAic29sYWFyLWV4dGVuc2lvbkBzaWRldmVzaCIsCiAgInZlcnNpb24iOiAxCn0="},
     "43": {"version": "1", "sha256": "1jwz2aw34j29fsj2cppfwcaarw60ggpmmj6xl36xqz6j3cnz0in6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IFNvbGFhciB0byBzdXBwb3J0IGNlcnRhaW4gZmVhdHVyZXMgb24gbm9uIFgxMSBzeXN0ZW1zIiwKICAibmFtZSI6ICJTb2xhYXIgZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zaWRldmVzaC9zb2xhYXItZXh0ZW5zaW9uLWZvci1nbm9tZSIsCiAgInV1aWQiOiAic29sYWFyLWV4dGVuc2lvbkBzaWRldmVzaCIsCiAgInZlcnNpb24iOiAxCn0="},
     "44": {"version": "1", "sha256": "1jwz2aw34j29fsj2cppfwcaarw60ggpmmj6xl36xqz6j3cnz0in6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IFNvbGFhciB0byBzdXBwb3J0IGNlcnRhaW4gZmVhdHVyZXMgb24gbm9uIFgxMSBzeXN0ZW1zIiwKICAibmFtZSI6ICJTb2xhYXIgZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zaWRldmVzaC9zb2xhYXItZXh0ZW5zaW9uLWZvci1nbm9tZSIsCiAgInV1aWQiOiAic29sYWFyLWV4dGVuc2lvbkBzaWRldmVzaCIsCiAgInZlcnNpb24iOiAxCn0="},
-    "45": {"version": "3", "sha256": "18gh802q0psx049d4zdak0p7g9x6cf281pb3d3rgmx38n0074w3l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IFNvbGFhciB0byBzdXBwb3J0IGNlcnRhaW4gZmVhdHVyZXMgb24gbm9uIFgxMSBzeXN0ZW1zIiwKICAibmFtZSI6ICJTb2xhYXIgZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NpZGV2ZXNoL3NvbGFhci1leHRlbnNpb24tZm9yLWdub21lIiwKICAidXVpZCI6ICJzb2xhYXItZXh0ZW5zaW9uQHNpZGV2ZXNoIiwKICAidmVyc2lvbiI6IDMKfQ=="}
+    "45": {"version": "4", "sha256": "129kgg2bngdak23jn8kjy9vl5393pazjir27fzq6039iyil68adb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IFNvbGFhciB0byBzdXBwb3J0IGNlcnRhaW4gZmVhdHVyZXMgb24gbm9uIFgxMSBzeXN0ZW1zIiwKICAibmFtZSI6ICJTb2xhYXIgZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zaWRldmVzaC9zb2xhYXItZXh0ZW5zaW9uLWZvci1nbm9tZSIsCiAgInV1aWQiOiAic29sYWFyLWV4dGVuc2lvbkBzaWRldmVzaCIsCiAgInZlcnNpb24iOiA0Cn0="},
+    "46": {"version": "4", "sha256": "129kgg2bngdak23jn8kjy9vl5393pazjir27fzq6039iyil68adb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IFNvbGFhciB0byBzdXBwb3J0IGNlcnRhaW4gZmVhdHVyZXMgb24gbm9uIFgxMSBzeXN0ZW1zIiwKICAibmFtZSI6ICJTb2xhYXIgZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zaWRldmVzaC9zb2xhYXItZXh0ZW5zaW9uLWZvci1nbm9tZSIsCiAgInV1aWQiOiAic29sYWFyLWV4dGVuc2lvbkBzaWRldmVzaCIsCiAgInZlcnNpb24iOiA0Cn0="}
   }}
 , {"uuid": "custommagnifier@simonallen.org", "name": "Custom Magnifier", "pname": "custom-magnifier", "description": "Change GNOME magnification using <Alt>KP_Subtract and <Alt>KP_Add.", "link": "https://extensions.gnome.org/extension/6180/custom-magnifier/", "shell_version_map": {
     "45": {"version": "3", "sha256": "1bb0il0fibs3yz09zlwxpz6i96vz3y1cpgzrkwkzhvjw511g2zv6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBHTk9NRSBtYWduaWZpY2F0aW9uIHVzaW5nIDxBbHQ+S1BfU3VidHJhY3QgYW5kIDxBbHQ+S1BfQWRkLiIsCiAgIm5hbWUiOiAiQ3VzdG9tIE1hZ25pZmllciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b21tYWduaWZpZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2FyZnVua2VsL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jdXN0b20tbWFnbmlmaWVyIiwKICAidXVpZCI6ICJjdXN0b21tYWduaWZpZXJAc2ltb25hbGxlbi5vcmciLAogICJ2ZXJzaW9uIjogMwp9"}
@@ -6404,7 +6454,8 @@
 , {"uuid": "hide-dock-in-overview@roslax", "name": "Hide the dock in overview", "pname": "hide-the-dock-in-overview", "description": "hides the dock in overview mode", "link": "https://extensions.gnome.org/extension/6195/hide-the-dock-in-overview/", "shell_version_map": {
     "43": {"version": "16", "sha256": "1gbwm8gwcrk2qslxgcb65jqgbcnlpsp4wbl655dg7wj8fa88l6ns", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImhpZGVzIHRoZSBkb2NrIGluIG92ZXJ2aWV3IG1vZGUiLAogICJuYW1lIjogIkhpZGUgdGhlIGRvY2sgaW4gb3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm9zR3RIdWIvSGlkZS1kb2NrLWluLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJoaWRlLWRvY2staW4tb3ZlcnZpZXdAcm9zbGF4IiwKICAidmVyc2lvbiI6IDE2Cn0="},
     "44": {"version": "15", "sha256": "1b998f73j74q48fwmih5cl8g7kf0015vgnns265yadws96cz2pk8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImhpZGVzIHRoZSBkb2NrIGluIG92ZXJ2aWV3IG1vZGUiLAogICJuYW1lIjogIkhpZGUgdGhlIGRvY2sgaW4gb3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm9zR3RIdWIvSGlkZS1kb2NrLWluLW92ZXJ2aWV3L3RyZWUvbWFpbiIsCiAgInV1aWQiOiAiaGlkZS1kb2NrLWluLW92ZXJ2aWV3QHJvc2xheCIsCiAgInZlcnNpb24iOiAxNQp9"},
-    "45": {"version": "14", "sha256": "13kcvmnq41f0i8kxm8kpd3w880hq84w0ixza1sj1fv6vc8k80rhn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImhpZGVzIHRoZSBkb2NrIGluIG92ZXJ2aWV3IG1vZGUiLAogICJuYW1lIjogIkhpZGUgdGhlIGRvY2sgaW4gb3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm9zR3RIdWIvSGlkZS1kb2NrLWluLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJoaWRlLWRvY2staW4tb3ZlcnZpZXdAcm9zbGF4IiwKICAidmVyc2lvbiI6IDE0Cn0="}
+    "45": {"version": "14", "sha256": "13kcvmnq41f0i8kxm8kpd3w880hq84w0ixza1sj1fv6vc8k80rhn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImhpZGVzIHRoZSBkb2NrIGluIG92ZXJ2aWV3IG1vZGUiLAogICJuYW1lIjogIkhpZGUgdGhlIGRvY2sgaW4gb3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm9zR3RIdWIvSGlkZS1kb2NrLWluLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJoaWRlLWRvY2staW4tb3ZlcnZpZXdAcm9zbGF4IiwKICAidmVyc2lvbiI6IDE0Cn0="},
+    "46": {"version": "17", "sha256": "0fz98084c0vgk1mj0vlw1y8j75iws0jx4vi1v351kls5z96jq3vi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImhpZGVzIHRoZSBkb2NrIGluIG92ZXJ2aWV3IG1vZGUiLAogICJuYW1lIjogIkhpZGUgdGhlIGRvY2sgaW4gb3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm9zR3RIdWIvSGlkZS1kb2NrLWluLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJoaWRlLWRvY2staW4tb3ZlcnZpZXdAcm9zbGF4IiwKICAidmVyc2lvbiI6IDE3Cn0="}
   }}
 , {"uuid": "light-style@gnome-shell-extensions.gcampax.github.com", "name": "Light Style", "pname": "light-style", "description": "Switch default to light style", "link": "https://extensions.gnome.org/extension/6198/light-style/", "shell_version_map": {
     "45": {"version": "3", "sha256": "1x846d9s4knv36g0wh3zmkmpkvv14jbb15qh9pa5xwmysbpbawh7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCBkZWZhdWx0IHRvIGxpZ2h0IHN0eWxlIiwKICAiZXh0ZW5zaW9uLWlkIjogImxpZ2h0LXN0eWxlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxpZ2h0LXN0eWxlIiwKICAibmFtZSI6ICJMaWdodCBTdHlsZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5saWdodC1zdHlsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJsaWdodC1zdHlsZUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="},
@@ -6465,7 +6516,8 @@
     "45": {"version": "14", "sha256": "0jc3sfwhb8l3gk1nf06ryqzahsjidjzw486cmzbbzdxnbqnn210f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBhbmVsIHdpbGwgaW5jbHVkZSBhIGRpZmZlcmVudCB3aW5kb3cgdGFiIGZvciB0aGUgc2FtZSBhcHBsaWNhdGlvbiB0aGF0IGlzIGN1cnJlbnRseSBsYXVuY2hlZC5cbjEuIFlvdSBjYW4gc2VlIHRoZSBhcHBsaWNhdGlvbiB3aW5kb3cgaW50dWl0aXZlbHlcbjIuIENsaWNrIHRhYiB0byBqdW1wIHRvIHRoZSBjb3JyZXNwb25kaW5nIHdpbmRvdyBpbW1lZGlhdGVseVxuMy4gQ2xpY2sgdGhlIENsb3NlIGJ1dHRvbiB0byBjbG9zZSB0aGUgd2luZG93IiwKICAibmFtZSI6ICJBcHBsaWNhdGlvbiBUYWJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFwcF90YWJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hob2FvL2FwcF90YWJzIiwKICAidXVpZCI6ICJodWFuZ2hhb2hob2FAMTYzLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"}
   }}
 , {"uuid": "ping@prasanthc41m.github.com", "name": "Ping", "pname": "ping", "description": "A Ping Extension", "link": "https://extensions.gnome.org/extension/6260/ping/", "shell_version_map": {
-    "44": {"version": "1", "sha256": "10s0hsrgs8p0xc1iwcjhg7x690si8pw9q5n8c881pf5lz6cs23gi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgUGluZyBFeHRlbnNpb24iLAogICJuYW1lIjogIlBpbmciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wcmFzYW50aGM0MW0vcGluZy1leHRlbnNpb24iLAogICJ1dWlkIjogInBpbmdAcHJhc2FudGhjNDFtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}
+    "44": {"version": "1", "sha256": "10s0hsrgs8p0xc1iwcjhg7x690si8pw9q5n8c881pf5lz6cs23gi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgUGluZyBFeHRlbnNpb24iLAogICJuYW1lIjogIlBpbmciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wcmFzYW50aGM0MW0vcGluZy1leHRlbnNpb24iLAogICJ1dWlkIjogInBpbmdAcHJhc2FudGhjNDFtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"},
+    "45": {"version": "3", "sha256": "19hl1w7w2zjjisq1hjdqp5kj6kcacz0fcrngmbv41b4179qvbsrn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgUGluZyBFeHRlbnNpb24iLAogICJuYW1lIjogIlBpbmciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcHJhc2FudGhjNDFtL3BpbmctZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJwaW5nQHByYXNhbnRoYzQxbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}
   }}
 , {"uuid": "zen@le0.gs", "name": "Zen", "pname": "zen", "description": "Various tweaks for a more predictable Gnome shell experience", "link": "https://extensions.gnome.org/extension/6263/zen/", "shell_version_map": {
     "44": {"version": "4", "sha256": "052lyqk5zgyp4pnsljl0p8rjamz3h3vwczxdsggqnli6l1c7jw4c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZhcmlvdXMgdHdlYWtzIGZvciBhIG1vcmUgcHJlZGljdGFibGUgR25vbWUgc2hlbGwgZXhwZXJpZW5jZSIsCiAgImdldHRleHQtZG9tYWluIjogInplbkBsZTAuZ3MiLAogICJuYW1lIjogIlplbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy56ZW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGVvdGFrdS96ZW4iLAogICJ1dWlkIjogInplbkBsZTAuZ3MiLAogICJ2ZXJzaW9uIjogNAp9"},
@@ -6522,22 +6574,23 @@
     "46": {"version": "29", "sha256": "10ikj5nlgf18rsjn5zl0i28b2vazvzp773i90b68hf4pqizh02f2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvY3VzZWQgd2luZG93IGljb24gKyBhcHAgbmFtZSArIHRpdGxlICsgbWVudSBpbiB0aGUgdG9wIGJhci5cblxuIE9wdGlvbnMgaW4gcHJlZmVyZW5jZXMgVUk6IHRvZ2dsZSBpdGVtcywgY29sb3JlZCBpY29uLCBpY29uIHNpemUuIiwKICAibmFtZSI6ICJXaW5kb3cgdGl0bGUgaXMgYmFjayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53aW5kb3ctdGl0bGUtaXMtYmFjayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3dpbmRvdy10aXRsZS1pcy1iYWNrIiwKICAidXVpZCI6ICJ3aW5kb3ctdGl0bGUtaXMtYmFja0BmdGh4IiwKICAidmVyc2lvbiI6IDI5Cn0="}
   }}
 , {"uuid": "dim-background-windows@stephane-13.github.com", "name": "Dim Background Windows", "pname": "dim-background-windows", "description": "Dim windows without focus", "link": "https://extensions.gnome.org/extension/6313/dim-background-windows/", "shell_version_map": {
-    "42": {"version": "12", "sha256": "0nczzyvwpaaxfwvi6nn8vgy6csl30d2j81ilwnirsngblps22s1d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLTEzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaW0tYmFja2dyb3VuZC13aW5kb3dzIiwKICAidXVpZCI6ICJkaW0tYmFja2dyb3VuZC13aW5kb3dzQHN0ZXBoYW5lLTEzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
-    "43": {"version": "12", "sha256": "0nczzyvwpaaxfwvi6nn8vgy6csl30d2j81ilwnirsngblps22s1d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLTEzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaW0tYmFja2dyb3VuZC13aW5kb3dzIiwKICAidXVpZCI6ICJkaW0tYmFja2dyb3VuZC13aW5kb3dzQHN0ZXBoYW5lLTEzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
-    "44": {"version": "12", "sha256": "0nczzyvwpaaxfwvi6nn8vgy6csl30d2j81ilwnirsngblps22s1d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLTEzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaW0tYmFja2dyb3VuZC13aW5kb3dzIiwKICAidXVpZCI6ICJkaW0tYmFja2dyb3VuZC13aW5kb3dzQHN0ZXBoYW5lLTEzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
-    "45": {"version": "13", "sha256": "1379nq1hpzzqcw5gzcbzkg73r2g7kr389bwpd3ka1q3bxs64y7ha", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdGVwaGFuZS0xMy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInV1aWQiOiAiZGltLWJhY2tncm91bmQtd2luZG93c0BzdGVwaGFuZS0xMy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEzCn0="}
+    "42": {"version": "14", "sha256": "1in13131acn4gwbirc2xpzadwdkfjcfpsbp4jrgd4jzl24sp3qn8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLTEzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaW0tYmFja2dyb3VuZC13aW5kb3dzIiwKICAidXVpZCI6ICJkaW0tYmFja2dyb3VuZC13aW5kb3dzQHN0ZXBoYW5lLTEzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="},
+    "43": {"version": "14", "sha256": "1in13131acn4gwbirc2xpzadwdkfjcfpsbp4jrgd4jzl24sp3qn8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLTEzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaW0tYmFja2dyb3VuZC13aW5kb3dzIiwKICAidXVpZCI6ICJkaW0tYmFja2dyb3VuZC13aW5kb3dzQHN0ZXBoYW5lLTEzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="},
+    "44": {"version": "14", "sha256": "1in13131acn4gwbirc2xpzadwdkfjcfpsbp4jrgd4jzl24sp3qn8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLTEzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaW0tYmFja2dyb3VuZC13aW5kb3dzIiwKICAidXVpZCI6ICJkaW0tYmFja2dyb3VuZC13aW5kb3dzQHN0ZXBoYW5lLTEzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="},
+    "45": {"version": "15", "sha256": "0wxq8rzdwr6g0k73p605h75gbhxa1sis21mc1g7axcja4f3hqr0r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3RlcGhhbmUtMTMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRpbS1iYWNrZ3JvdW5kLXdpbmRvd3MiLAogICJ1dWlkIjogImRpbS1iYWNrZ3JvdW5kLXdpbmRvd3NAc3RlcGhhbmUtMTMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"},
+    "46": {"version": "15", "sha256": "0wxq8rzdwr6g0k73p605h75gbhxa1sis21mc1g7axcja4f3hqr0r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3RlcGhhbmUtMTMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRpbS1iYWNrZ3JvdW5kLXdpbmRvd3MiLAogICJ1dWlkIjogImRpbS1iYWNrZ3JvdW5kLXdpbmRvd3NAc3RlcGhhbmUtMTMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}
   }}
 , {"uuid": "hide-gnome-power-icon@siren15.github.com", "name": "Hide power button icon", "pname": "hide-power-button-icon", "description": "Hide the power icon in the quick settings area of the Gnome panel.", "link": "https://extensions.gnome.org/extension/6319/hide-power-button-icon/", "shell_version_map": {
     "44": {"version": "2", "sha256": "05x5rz1485fw6id3s18hman0clw7j5q8ff5w71ca49lkcwr5y323", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGhlIHBvd2VyIGljb24gaW4gdGhlIHF1aWNrIHNldHRpbmdzIGFyZWEgb2YgdGhlIEdub21lIHBhbmVsLiIsCiAgIm5hbWUiOiAiSGlkZSBwb3dlciBidXR0b24gaWNvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zaXJlbjE1L2hpZGUtZ25vbWUtcG93ZXItaWNvbiIsCiAgInV1aWQiOiAiaGlkZS1nbm9tZS1wb3dlci1pY29uQHNpcmVuMTUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}
   }}
 , {"uuid": "debian-updates-indicator@glerro.pm.me", "name": "Debian Linux Updates Indicator", "pname": "debian-linux-updates-indicator", "description": "Updates indicator for Debian Linux based distributions.\n\nCheck for updates and shows also the following packages status (as in Synaptic):\n⚫ Available updates.\n⚫ New packages in repository.\n⚫ Local/Obsolete packages.\n⚫ Residual config files.\n⚫ Autoremovable packages.", "link": "https://extensions.gnome.org/extension/6322/debian-linux-updates-indicator/", "shell_version_map": {
-    "40": {"version": "3", "sha256": "1jh39196758jn7yffb1dlzg4w49rn9934vdmbnh3bvw5a5q88abv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMwp9"},
-    "41": {"version": "3", "sha256": "1jh39196758jn7yffb1dlzg4w49rn9934vdmbnh3bvw5a5q88abv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMwp9"},
-    "42": {"version": "3", "sha256": "1jh39196758jn7yffb1dlzg4w49rn9934vdmbnh3bvw5a5q88abv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMwp9"},
-    "43": {"version": "3", "sha256": "1jh39196758jn7yffb1dlzg4w49rn9934vdmbnh3bvw5a5q88abv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMwp9"},
-    "44": {"version": "3", "sha256": "1jh39196758jn7yffb1dlzg4w49rn9934vdmbnh3bvw5a5q88abv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMwp9"},
-    "45": {"version": "9", "sha256": "0mbm5r45pwpmqphy6kyzlrg52yw1fqzgisp7pklg895x4wqvw8sp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogOQp9"},
-    "46": {"version": "9", "sha256": "0mbm5r45pwpmqphy6kyzlrg52yw1fqzgisp7pklg895x4wqvw8sp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogOQp9"}
+    "40": {"version": "11", "sha256": "07x2fwnba1iq75khr05i8783npg3h6bx6j4bdggc2636m8ibpcpx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTEsCiAgInZlcnNpb24tbmFtZSI6ICIxLjIuMSIKfQ=="},
+    "41": {"version": "11", "sha256": "07x2fwnba1iq75khr05i8783npg3h6bx6j4bdggc2636m8ibpcpx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTEsCiAgInZlcnNpb24tbmFtZSI6ICIxLjIuMSIKfQ=="},
+    "42": {"version": "11", "sha256": "07x2fwnba1iq75khr05i8783npg3h6bx6j4bdggc2636m8ibpcpx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTEsCiAgInZlcnNpb24tbmFtZSI6ICIxLjIuMSIKfQ=="},
+    "43": {"version": "11", "sha256": "07x2fwnba1iq75khr05i8783npg3h6bx6j4bdggc2636m8ibpcpx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTEsCiAgInZlcnNpb24tbmFtZSI6ICIxLjIuMSIKfQ=="},
+    "44": {"version": "11", "sha256": "07x2fwnba1iq75khr05i8783npg3h6bx6j4bdggc2636m8ibpcpx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTEsCiAgInZlcnNpb24tbmFtZSI6ICIxLjIuMSIKfQ=="},
+    "45": {"version": "12", "sha256": "1ikqi7llg71qxp1h9y33l4mzc7pilizcna2zypbz0ql2ymn9d8yg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTIsCiAgInZlcnNpb24tbmFtZSI6ICIyLjMuMCIKfQ=="},
+    "46": {"version": "12", "sha256": "1ikqi7llg71qxp1h9y33l4mzc7pilizcna2zypbz0ql2ymn9d8yg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTIsCiAgInZlcnNpb24tbmFtZSI6ICIyLjMuMCIKfQ=="}
   }}
 , {"uuid": "monitor-brightness-volume@ailin.nemui", "name": "Control monitor brightness and volume with ddcutil", "pname": "control-monitor-brightness-and-volume-with-ddcutil", "description": "Brightness and volume control for monitors. Requires setting up the external ddcutil program for your user.\n\nNote: ensure that ddcutil works properly on the command line before attempting this extension.", "link": "https://extensions.gnome.org/extension/6325/control-monitor-brightness-and-volume-with-ddcutil/", "shell_version_map": {
     "45": {"version": "5", "sha256": "06mllpwvrwzjbdia339dn5p5bzngvrl3yiflr14180mlcg1yfx69", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiQnJpZ2h0bmVzcyBhbmQgdm9sdW1lIGNvbnRyb2wgZm9yIG1vbml0b3JzLiBSZXF1aXJlcyBzZXR0aW5nIHVwIHRoZSBleHRlcm5hbCBkZGN1dGlsIHByb2dyYW0gZm9yIHlvdXIgdXNlci5cblxuTm90ZTogZW5zdXJlIHRoYXQgZGRjdXRpbCB3b3JrcyBwcm9wZXJseSBvbiB0aGUgY29tbWFuZCBsaW5lIGJlZm9yZSBhdHRlbXB0aW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImFpbGluIgogIH0sCiAgIm5hbWUiOiAiQ29udHJvbCBtb25pdG9yIGJyaWdodG5lc3MgYW5kIHZvbHVtZSB3aXRoIGRkY3V0aWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubW9uaXRvci1icmlnaHRuZXNzLXZvbHVtZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvTmVpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1tb25pdG9yLWJyaWdodG5lc3Mtdm9sdW1lLy0vaXNzdWVzIiwKICAidXVpZCI6ICJtb25pdG9yLWJyaWdodG5lc3Mtdm9sdW1lQGFpbGluLm5lbXVpIiwKICAidmVyc2lvbiI6IDUKfQ=="},
@@ -6556,8 +6609,9 @@
 , {"uuid": "gmind@tungstnballon.gitlab.com", "name": "GameMode Indicator in System-Settings", "pname": "gamemode-indicator-in-system-settings", "description": "While gamemode is active, an icon will appear in the System-Settings", "link": "https://extensions.gnome.org/extension/6340/gamemode-indicator-in-system-settings/", "shell_version_map": {
     "45": {"version": "1", "sha256": "1jml9vangin17b2qdax5x45zb5mdgkq1xzk977qmpyppxd621m38", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoaWxlIGdhbWVtb2RlIGlzIGFjdGl2ZSwgYW4gaWNvbiB3aWxsIGFwcGVhciBpbiB0aGUgU3lzdGVtLVNldHRpbmdzIiwKICAibmFtZSI6ICJHYW1lTW9kZSBJbmRpY2F0b3IgaW4gU3lzdGVtLVNldHRpbmdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL1R1bmdzdG5CYWxsb24vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWdhbWVtb2RlLWluZGljYXRvciIsCiAgInV1aWQiOiAiZ21pbmRAdHVuZ3N0bmJhbGxvbi5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}
   }}
-, {"uuid": "windowgestures@extension.amarullz.com", "name": "Window Gestures", "pname": "window-gestures", "description": "Managing window with touchpad gestures. (It's not Gesture Improvements) Currently Wayland only.\n\n- Customizable actions for gestures\n- Support 3 or 4 fingers swipe, pinch, and tap+hold\n- Swappable 3 / 4 fingers\n- Enable/disable functions in settings\n- With kinetic gesture\n- With adaptive transition interpolable with gesture state\n\nWindow Gesture:\n- Swipe 4 Fingers Up: Maximize, fullscreen, restore\n- Swipe 4 Fingers Up+Left/Right: Snap window left/right\n- If Tap and Hold disabled, Swipe 4 Fingers Down: Move window\n\nConfigurable Gestures:\n- Swipe 4 Fingers Left, Right, Down\n- Swipe 3 Fingers Down, Down+Left, Down+Right, Down+Up\n- Pinch In/Out 3/4 Fingers\n- Tap and Hold to move/resize window\n\nActions:\n- Minimize window\n- Close window\n- Show desktop\n- Next window\n- Previous window\n- Send window left\n- Send window right\n- Back\n- Forward\n- Brightness up\n- Brightness down\n- Volume up\n- Volume down\n- Mute\n- Media play\n- Media next\n- Media previous\n- Alt+Tab switch\n- Overview\n- Application Grid\n- Quick settings\n- Notification\n- Run (Alt+F2)", "link": "https://extensions.gnome.org/extension/6343/window-gestures/", "shell_version_map": {
-    "45": {"version": "6", "sha256": "1kymv3v4svdfaicaplc3b7pkmfjg3r3gp03av5yawn62zbmqrs1d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB3aW5kb3cgd2l0aCB0b3VjaHBhZCBnZXN0dXJlcyIsCiAgIm5hbWUiOiAiV2luZG93IEdlc3R1cmVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvd2dlc3R1cmVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtYXJ1bGx6L3dpbmRvd2dlc3R1cmVzIiwKICAidXVpZCI6ICJ3aW5kb3dnZXN0dXJlc0BleHRlbnNpb24uYW1hcnVsbHouY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}
+, {"uuid": "windowgestures@extension.amarullz.com", "name": "Window Gestures", "pname": "window-gestures", "description": "Manage window with touchpad gestures", "link": "https://extensions.gnome.org/extension/6343/window-gestures/", "shell_version_map": {
+    "45": {"version": "7", "sha256": "0lm4fpqwf8kwllw803rgswaal19vkby6p6pbkm3b2jfimyfb4cn9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB3aW5kb3cgd2l0aCB0b3VjaHBhZCBnZXN0dXJlcyIsCiAgIm5hbWUiOiAiV2luZG93IEdlc3R1cmVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvd2dlc3R1cmVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWFydWxsei93aW5kb3dnZXN0dXJlcyIsCiAgInV1aWQiOiAid2luZG93Z2VzdHVyZXNAZXh0ZW5zaW9uLmFtYXJ1bGx6LmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="},
+    "46": {"version": "7", "sha256": "0lm4fpqwf8kwllw803rgswaal19vkby6p6pbkm3b2jfimyfb4cn9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB3aW5kb3cgd2l0aCB0b3VjaHBhZCBnZXN0dXJlcyIsCiAgIm5hbWUiOiAiV2luZG93IEdlc3R1cmVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvd2dlc3R1cmVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWFydWxsei93aW5kb3dnZXN0dXJlcyIsCiAgInV1aWQiOiAid2luZG93Z2VzdHVyZXNAZXh0ZW5zaW9uLmFtYXJ1bGx6LmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}
   }}
 , {"uuid": "transcode-greek@pavlidic", "name": "Transcode Greek", "pname": "transcode-greek", "description": "Searching apps both direct and transcoded name (English, Greek langs)", "link": "https://extensions.gnome.org/extension/6346/transcode-greek/", "shell_version_map": {
     "38": {"version": "1", "sha256": "0ryfi2xmdqs0r7c3jmqpsqbgszsqzsc2m6n01xs1zrai7pbxlb1h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaGluZyBhcHBzIGJvdGggZGlyZWN0IGFuZCB0cmFuc2NvZGVkIG5hbWUgKEVuZ2xpc2gsIEdyZWVrIGxhbmdzKSIsCiAgIm5hbWUiOiAiVHJhbnNjb2RlIEdyZWVrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXZsaWRpYy9nbm9tZS1leHRlbnNpb24tdHJhbnNjb2RlLXNlYXJjaGFwcC1ncmVlayIsCiAgInV1aWQiOiAidHJhbnNjb2RlLWdyZWVrQHBhdmxpZGljIiwKICAidmVyc2lvbiI6IDEKfQ=="},
@@ -6581,7 +6635,8 @@
   }}
 , {"uuid": "multicore-system-monitor@igrek.dev", "name": "multicore-system-monitor", "pname": "multicore-system-monitor", "description": "Show consumption of each CPU core and memory", "link": "https://extensions.gnome.org/extension/6364/multicore-system-monitor/", "shell_version_map": {
     "44": {"version": "2", "sha256": "1c7pa2afmimljxvlg93gmlvc9wj48wh8dni4kra48wh73ishv0d9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29uc3VtcHRpb24gb2YgZWFjaCBDUFUgY29yZSBhbmQgbWVtb3J5IiwKICAibmFtZSI6ICJtdWx0aWNvcmUtc3lzdGVtLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWdyZWs1MS9tdWx0aWNvcmUtbW9uaXRvciIsCiAgInV1aWQiOiAibXVsdGljb3JlLXN5c3RlbS1tb25pdG9yQGlncmVrLmRldiIsCiAgInZlcnNpb24iOiAyCn0="},
-    "45": {"version": "4", "sha256": "1rcw2i1dfg998vhwpvycchx3mqp8zv64rcm0s1fv8hbjfnf6r9xj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29uc3VtcHRpb24gb2YgZWFjaCBDUFUgY29yZSBhbmQgbWVtb3J5IiwKICAibmFtZSI6ICJtdWx0aWNvcmUtc3lzdGVtLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWdyZWs1MS9tdWx0aWNvcmUtbW9uaXRvciIsCiAgInV1aWQiOiAibXVsdGljb3JlLXN5c3RlbS1tb25pdG9yQGlncmVrLmRldiIsCiAgInZlcnNpb24iOiA0Cn0="}
+    "45": {"version": "4", "sha256": "1rcw2i1dfg998vhwpvycchx3mqp8zv64rcm0s1fv8hbjfnf6r9xj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29uc3VtcHRpb24gb2YgZWFjaCBDUFUgY29yZSBhbmQgbWVtb3J5IiwKICAibmFtZSI6ICJtdWx0aWNvcmUtc3lzdGVtLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWdyZWs1MS9tdWx0aWNvcmUtbW9uaXRvciIsCiAgInV1aWQiOiAibXVsdGljb3JlLXN5c3RlbS1tb25pdG9yQGlncmVrLmRldiIsCiAgInZlcnNpb24iOiA0Cn0="},
+    "46": {"version": "5", "sha256": "04vkw2lg2wz038mqaa5599grsrh0k5lw4rh2y8jdyc8cvimqy5dk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29uc3VtcHRpb24gb2YgZWFjaCBDUFUgY29yZSBhbmQgbWVtb3J5IiwKICAibmFtZSI6ICJtdWx0aWNvcmUtc3lzdGVtLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWdyZWs1MS9tdWx0aWNvcmUtbW9uaXRvciIsCiAgInV1aWQiOiAibXVsdGljb3JlLXN5c3RlbS1tb25pdG9yQGlncmVrLmRldiIsCiAgInZlcnNpb24iOiA1Cn0="}
   }}
 , {"uuid": "pinguXnetLabel@pinguX.aTa", "name": "pinguXnetLabel", "pname": "pinguxnetlabel", "description": "Shows current download upload speed on panel \nThis extension is a Gnome 45 adaption of Net Speed by AlynxZhou", "link": "https://extensions.gnome.org/extension/6367/pinguxnetlabel/", "shell_version_map": {
     "45": {"version": "2", "sha256": "1g3mvwlg1v6g4whrnb0radqmj6vq1799z9llsv64zbldwk4w5wag", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGN1cnJlbnQgZG93bmxvYWQgdXBsb2FkIHNwZWVkIG9uIHBhbmVsIFxuVGhpcyBleHRlbnNpb24gaXMgYSBHbm9tZSA0NSBhZGFwdGlvbiBvZiBOZXQgU3BlZWQgYnkgQWx5bnhaaG91IiwKICAibmFtZSI6ICJwaW5ndVhuZXRMYWJlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9fcGluZ3VYL3Bpbmd1eG5ldGxhYmVsIiwKICAidXVpZCI6ICJwaW5ndVhuZXRMYWJlbEBwaW5ndVguYVRhIiwKICAidmVyc2lvbiI6IDIKfQ=="}
@@ -6605,9 +6660,10 @@
     "45": {"version": "5", "sha256": "1y16y9lbns8qzmqydd6c0c0dsj1h9996j3j2r7h33i1wwjz9asj3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIHNwZWVkIG9mIGdub21lLXNoZWxsIGFuaW1hdGlvbnMiLAogICJuYW1lIjogIlNwZWVkaW5hdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1vZS5saWFtLnNwZWVkaW5hdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90ZWhzcXVpZGdlL3NwZWVkaW5hdG9yIiwKICAidXVpZCI6ICJzcGVlZGluYXRvckBsaWFtLm1vZSIsCiAgInZlcnNpb24iOiA1Cn0="},
     "46": {"version": "5", "sha256": "1y16y9lbns8qzmqydd6c0c0dsj1h9996j3j2r7h33i1wwjz9asj3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIHNwZWVkIG9mIGdub21lLXNoZWxsIGFuaW1hdGlvbnMiLAogICJuYW1lIjogIlNwZWVkaW5hdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1vZS5saWFtLnNwZWVkaW5hdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90ZWhzcXVpZGdlL3NwZWVkaW5hdG9yIiwKICAidXVpZCI6ICJzcGVlZGluYXRvckBsaWFtLm1vZSIsCiAgInZlcnNpb24iOiA1Cn0="}
   }}
-, {"uuid": "phi@ziyagenc.github.com", "name": "Phi: Pi-hole Indicator", "pname": "phi-pi-hole-indicator", "description": "Quickly access your beloved Pi-hole from GNOME Shell.\n\nPhi provides the following features:\n- Monitor single or multiple Pi-hole instances,\n- Enable/disable blocking,\n- Display status and main statistics,\n- Show version information of Pi-hole, and notify when there is an update.\n\nYou can configure Phi to specifically search for Pi-hole within a designated network. This prevents any queries from being sent if your computer is connected to a different network, such as a school, workplace, or public Wi-Fi, instead of the network where your Pi-hole is located", "link": "https://extensions.gnome.org/extension/6400/phi-pi-hole-indicator/", "shell_version_map": {
+, {"uuid": "phi@ziyagenc.github.com", "name": "Phi: Pi-hole Indicator", "pname": "phi-pi-hole-indicator", "description": "Quickly access your beloved Pi-hole from GNOME Shell.\n\nPhi provides the following features:\n- Monitor single or multiple Pi-hole instances,\n- Enable/disable blocking,\n- Display status and main statistics,\n- Show version information of Pi-hole, and notify when there is an update.\n\nYou can also configure Phi to look for Pi-hole only in a certain network. This might be useful if your computer connects to school, work or public Wi-Fi.", "link": "https://extensions.gnome.org/extension/6400/phi-pi-hole-indicator/", "shell_version_map": {
     "44": {"version": "6", "sha256": "0mdqa357d2px0ssdwxngdvdvabvvd7hg3j8c03jwfgqp36s4mn0p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpLWhvbGUgaW5kaWNhdG9yIGZvciBHTk9NRSBTaGVsbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaGlAeml5YWdlbmMuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiUGhpOiBQaS1ob2xlIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5waGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veml5YWdlbmMvcGhpIiwKICAidXVpZCI6ICJwaGlAeml5YWdlbmMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="},
-    "45": {"version": "10", "sha256": "1kgk6zgjbmm9s6065ygcxvp8mdsnirwb31q419kfnrhfbw1kd6vc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpLWhvbGUgaW5kaWNhdG9yIGZvciBHTk9NRSBTaGVsbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaGlAeml5YWdlbmMuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiUGhpOiBQaS1ob2xlIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5waGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veml5YWdlbmMvcGhpIiwKICAidXVpZCI6ICJwaGlAeml5YWdlbmMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMCwKICAidmVyc2lvbi1uYW1lIjogIjEuMyIKfQ=="}
+    "45": {"version": "12", "sha256": "0zvymwqqni4rsl5fcalc1bicy76mwpwd7www4f5r35ny8n9nwdqn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpLWhvbGUgaW5kaWNhdG9yIGZvciBHTk9NRSBTaGVsbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaGlAeml5YWdlbmMuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiUGhpOiBQaS1ob2xlIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5waGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ppeWFnZW5jL3BoaSIsCiAgInV1aWQiOiAicGhpQHppeWFnZW5jLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIsCiAgInZlcnNpb24tbmFtZSI6ICIxLjUiCn0="},
+    "46": {"version": "12", "sha256": "0zvymwqqni4rsl5fcalc1bicy76mwpwd7www4f5r35ny8n9nwdqn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpLWhvbGUgaW5kaWNhdG9yIGZvciBHTk9NRSBTaGVsbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaGlAeml5YWdlbmMuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiUGhpOiBQaS1ob2xlIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5waGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ppeWFnZW5jL3BoaSIsCiAgInV1aWQiOiAicGhpQHppeWFnZW5jLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIsCiAgInZlcnNpb24tbmFtZSI6ICIxLjUiCn0="}
   }}
 , {"uuid": "net-label@slimani.dev", "name": "NetLabel", "pname": "netlabel", "description": "Shows current download upload speed on panel \nThis extension is a Gnome 45 adaption of Net Speed by AlynxZhou", "link": "https://extensions.gnome.org/extension/6403/netlabel/", "shell_version_map": {
     "45": {"version": "1", "sha256": "0jc219z5jmx9p5gasp25fzbhnyyl1gchq0nyxn20zp70kmzg2f7f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGN1cnJlbnQgZG93bmxvYWQgdXBsb2FkIHNwZWVkIG9uIHBhbmVsIFxuVGhpcyBleHRlbnNpb24gaXMgYSBHbm9tZSA0NSBhZGFwdGlvbiBvZiBOZXQgU3BlZWQgYnkgQWx5bnhaaG91IiwKICAibmFtZSI6ICJOZXRMYWJlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tb2gtc2xpbWFuaS9uZXQtbGFiZWwiLAogICJ1dWlkIjogIm5ldC1sYWJlbEBzbGltYW5pLmRldiIsCiAgInZlcnNpb24iOiAxCn0="}
@@ -6667,7 +6723,8 @@
     "45": {"version": "3", "sha256": "1mkpwzykp0gc9za22bbs1k16nr0k83wj44hwzsgfjcm37smh96k1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvdmVyIG92ZXIgYSB3aW5kb3cgaW4gb3ZlcnZpZXcgbW9kZSB0byBtYWtlIGl0IGFjdGl2ZSIsCiAgIm5hbWUiOiAiT3ZlcnZpZXcgSG92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWF0dGRhdmlzOTAvb3ZlcnZpZXctaG92ZXIiLAogICJ1dWlkIjogIm92ZXJ2aWV3aG92ZXJAbWF0dGRhdmlzOTAiLAogICJ2ZXJzaW9uIjogMwp9"}
   }}
 , {"uuid": "onedrive@client.onedrive.com", "name": "Onedrive Client", "pname": "onedrive", "description": "Show and Control Onedrive Client", "link": "https://extensions.gnome.org/extension/6493/onedrive/", "shell_version_map": {
-    "45": {"version": "5", "sha256": "1pjlj22hrr1aks3wy9sxm4lpd7lk38f0jhzdz5vxsb0gg8707925", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW5kIENvbnRyb2wgT25lZHJpdmUgQ2xpZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAib25lZHJpdmVAY2xpZW50Lm9uZWRyaXZlLmNvbSIsCiAgIm5hbWUiOiAiT25lZHJpdmUgQ2xpZW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2R2bWFzdGVyZngvT25lZHJpdmUtR25vbWUtU2hlbGwtNDUiLAogICJ1dWlkIjogIm9uZWRyaXZlQGNsaWVudC5vbmVkcml2ZS5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}
+    "45": {"version": "5", "sha256": "1pjlj22hrr1aks3wy9sxm4lpd7lk38f0jhzdz5vxsb0gg8707925", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW5kIENvbnRyb2wgT25lZHJpdmUgQ2xpZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAib25lZHJpdmVAY2xpZW50Lm9uZWRyaXZlLmNvbSIsCiAgIm5hbWUiOiAiT25lZHJpdmUgQ2xpZW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2R2bWFzdGVyZngvT25lZHJpdmUtR25vbWUtU2hlbGwtNDUiLAogICJ1dWlkIjogIm9uZWRyaXZlQGNsaWVudC5vbmVkcml2ZS5jb20iLAogICJ2ZXJzaW9uIjogNQp9"},
+    "46": {"version": "8", "sha256": "102i0fcnjpkvqxibl029smvn63593ijqs1qp8nznv5ygsa75r9bj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW5kIENvbnRyb2wgT25lZHJpdmUgQ2xpZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAib25lZHJpdmVAY2xpZW50Lm9uZWRyaXZlLmNvbSIsCiAgIm5hbWUiOiAiT25lZHJpdmUgQ2xpZW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2R2bWFzdGVyZngvT25lZHJpdmUtR25vbWUtU2hlbGwtNDUiLAogICJ1dWlkIjogIm9uZWRyaXZlQGNsaWVudC5vbmVkcml2ZS5jb20iLAogICJ2ZXJzaW9uIjogOAp9"}
   }}
 , {"uuid": "system-stats-plus@remulo.costa.gmail.com", "name": "SystemStatsPlus", "pname": "systemstatsplus", "description": "SystemStatsPlus is ease user-friendly GNOME extension that provides real-time visualization of key system resources.\nThis extension is an essential tool for anyone looking to keep a close eye on their system's performance.\n\nKey Features:\n\n- Per CPU core/processor utilization\n- RAM utilization\n- Swap memory utilization\n- Network utilization\n\nIn addition to utilization displayed in the tray, it offers drop down display of historical utilizations.\n\nTo display the usage history, just position the mouse cursor over the item.\n\nIt's a refined fork of the original, but now seemingly inactive, gnome-stats-pro https://github.com/tpenguin/gnome-stats-pro\n\nIf you get an error after updating, try restarting Gnome Shell with Alt-F2 then 'r' (or logout/login under Wayland).", "link": "https://extensions.gnome.org/extension/6502/systemstatsplus/", "shell_version_map": {
     "45": {"version": "2", "sha256": "1dfjz3spbbk18wr1jsp6xbky3mc7d64zbpxpxg4bgvv39j1gz337", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJSZW11bG8gQ29zdGEgPHJlbXVsby5jb3N0YUBnbWFpbC5jb20+IiwKICAiZGVzY3JpcHRpb24iOiAiU3lzdGVtU3RhdHNQbHVzIGEgcm9idXN0IGFuZCB1c2VyLWZyaWVuZGx5IEdOT01FIGV4dGVuc2lvbiB0aGF0IHByb3ZpZGVzIHJlYWwtdGltZSB2aXN1YWxpemF0aW9uIG9mIGtleSBzeXN0ZW0gcmVzb3VyY2VzLlxuXG5JdCdzIGEgcmVmaW5lZCBmb3JrIG9mIHRoZSBvcmlnaW5hbCwgYnV0IG5vdyBzZWVtaW5nbHkgaW5hY3RpdmUsIGdub21lLXN0YXRzLXBybyBodHRwczovL2dpdGh1Yi5jb20vdHBlbmd1aW4vZ25vbWUtc3RhdHMtcHJvXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGFuIGVzc2VudGlhbCB0b29sIGZvciBhbnlvbmUgbG9va2luZyB0byBrZWVwIGEgY2xvc2UgZXllIG9uIHRoZWlyIHN5c3RlbSdzIHBlcmZvcm1hbmNlLlxuXG5LZXkgRmVhdHVyZXM6XG5cbi0gUGVyIENQVSBjb3JlL3Byb2Nlc3NvciB1dGlsaXphdGlvblxuLSBSQU0gdXRpbGl6YXRpb25cbi0gU3dhcCBtZW1vcnkgdXRpbGl6YXRpb25cbi0gTmV0d29yayB1dGlsaXphdGlvblxuXG5JbiBhZGRpdGlvbiB0byB1dGlsaXphdGlvbiBkaXNwbGF5ZWQgaW4gdGhlIHRyYXksIGl0IG9mZmVycyBkcm9wIGRvd24gZGlzcGxheSBvZiBoaXN0b3JpY2FsIHV0aWxpemF0aW9ucy5cblxuSWYgeW91IGdldCBhbiBlcnJvciBhZnRlciB1cGRhdGluZywgdHJ5IHJlc3RhcnRpbmcgR25vbWUgU2hlbGwgd2l0aCBBbHQtRjIgdGhlbiAncicgKG9yIGxvZ291dC9sb2dpbiB1bmRlciBXYXlsYW5kKS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tc3RhdHMtcGx1cyIsCiAgIm5hbWUiOiAiU3lzdGVtU3RhdHNQbHVzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImpvZUB0aHJhbGxpbmdwZW5ndWluLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yZW11bG9jb3N0YS9zeXN0ZW0tc3RhdHMtcGx1cyIsCiAgInV1aWQiOiAic3lzdGVtLXN0YXRzLXBsdXNAcmVtdWxvLmNvc3RhLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyLAogICJ2ZXJzaW9uLW5hbWUiOiAiMC4xLjAiCn0="}
@@ -6691,11 +6748,12 @@
 , {"uuid": "todo-list@speedflyer689.github.com", "name": "Todo list", "pname": "todo-list", "description": "Adds a todo list to the notification panel", "link": "https://extensions.gnome.org/extension/6526/todo-list/", "shell_version_map": {
     "38": {"version": "3", "sha256": "06hqbrk894bi0acilq4vg5a3h3gjmkmi1jv7vmaws0bn7gzqafjx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSB0b2RvIGxpc3QgdG8gdGhlIG5vdGlmaWNhdGlvbiBwYW5lbCIsCiAgIm5hbWUiOiAiVG9kbyBsaXN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU3BlZWRmbHllcjY4OS9Hbm9tZS1Ub2RvLUxpc3QiLAogICJ1dWlkIjogInRvZG8tbGlzdEBzcGVlZGZseWVyNjg5LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}
   }}
-, {"uuid": "logowidget@github.com.howbea", "name": "Logo Widget", "pname": "logo-widget", "description": "Add a logo to the desktop. This is a fork of Background Logo extension \n https://extensions.gnome.org/extension/889/background-logo/ \n https://pagure.io/background-logo-extension", "link": "https://extensions.gnome.org/extension/6529/logo-widget/", "shell_version_map": {
+, {"uuid": "logowidget@github.com.howbea", "name": "Desktop Logo", "pname": "logo-widget", "description": "Add a logo to the desktop. \n This is a fork of Background Logo extension \n https://extensions.gnome.org/extension/889/background-logo/", "link": "https://extensions.gnome.org/extension/6529/logo-widget/", "shell_version_map": {
     "42": {"version": "10", "sha256": "05xba9h9d1939fgc05xizc0ds0c014ycmwg2ax461pgjy218xfkb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8gXG4gaHR0cHM6Ly9wYWd1cmUuaW8vYmFja2dyb3VuZC1sb2dvLWV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiTG9nbyBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubG9nby13aWRnZXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
     "43": {"version": "10", "sha256": "05xba9h9d1939fgc05xizc0ds0c014ycmwg2ax461pgjy218xfkb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8gXG4gaHR0cHM6Ly9wYWd1cmUuaW8vYmFja2dyb3VuZC1sb2dvLWV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiTG9nbyBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubG9nby13aWRnZXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
     "44": {"version": "13", "sha256": "0qzqk7rfcgyi9hx1yjpmx05bgb9x7bscmbw5r31119pl4q7syn9p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8gXG4gaHR0cHM6Ly9wYWd1cmUuaW8vYmFja2dyb3VuZC1sb2dvLWV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiTG9nbyBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubG9nby13aWRnZXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL2xvZ28td2lkZ2V0IiwKICAidXVpZCI6ICJsb2dvd2lkZ2V0QGdpdGh1Yi5jb20uaG93YmVhIiwKICAidmVyc2lvbiI6IDEzCn0="},
-    "45": {"version": "12", "sha256": "1zykpyzm7s19db4g2kl3p9nlywzag3rg1331mjq6vscsky2y5iy9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFxuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImhvd2JlYSIKICB9LAogICJuYW1lIjogIkRlc2t0b3AgTG9nbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLXdpZGdldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogMTIKfQ=="}
+    "45": {"version": "12", "sha256": "1zykpyzm7s19db4g2kl3p9nlywzag3rg1331mjq6vscsky2y5iy9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFxuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImhvd2JlYSIKICB9LAogICJuYW1lIjogIkRlc2t0b3AgTG9nbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLXdpZGdldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "46": {"version": "14", "sha256": "1nx75ykn5c0b191k9rsr151m0jj5pllhpa4pp0ap39979ny1c3zg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFxuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImhvd2JlYSIKICB9LAogICJuYW1lIjogIkRlc2t0b3AgTG9nbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLXdpZGdldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}
   }}
 , {"uuid": "azan@a7medkhalaf", "name": "xAzanTimes", "pname": "xazantimes", "description": "Azan is an Islamic prayer times extension for Gnome Shell.\nIt's a fork of the extension by faissaloo.\n\nFeatures\n- List compulsory prayer times\n- Optionally display Imsak, Sunrise, Sunset and Midnight\n- Show remaining time for the upcoming prayer.\n- Show current date in Hijri calendar.\n- Display a notification when it's time for prayer.\n- Automatic Geoclue2 location detection\n- Show times in 24 hour and 12 hour formats\n- Hijri date adjusment\n- Iqamah option", "link": "https://extensions.gnome.org/extension/6538/xazantimes/", "shell_version_map": {
     "45": {"version": "7", "sha256": "1h23vjk96fyyx11zvyp22b0iwjy531mn4c4jm53y0fq88g76s0jb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF6YW4gaXMgYW4gSXNsYW1pYyBwcmF5ZXIgdGltZXMgZXh0ZW5zaW9uIGZvciBHbm9tZSBTaGVsbC5cbkl0J3MgYSBmb3JrIG9mIHRoZSBleHRlbnNpb24gYnkgZmFpc3NhbG9vLlxuXG5GZWF0dXJlc1xuLSBMaXN0IGNvbXB1bHNvcnkgcHJheWVyIHRpbWVzXG4tIE9wdGlvbmFsbHkgZGlzcGxheSBJbXNhaywgU3VucmlzZSwgU3Vuc2V0IGFuZCBNaWRuaWdodFxuLSBTaG93IHJlbWFpbmluZyB0aW1lIGZvciB0aGUgdXBjb21pbmcgcHJheWVyLlxuLSBTaG93IGN1cnJlbnQgZGF0ZSBpbiBIaWpyaSBjYWxlbmRhci5cbi0gRGlzcGxheSBhIG5vdGlmaWNhdGlvbiB3aGVuIGl0J3MgdGltZSBmb3IgcHJheWVyLlxuLSBBdXRvbWF0aWMgR2VvY2x1ZTIgbG9jYXRpb24gZGV0ZWN0aW9uXG4tIFNob3cgdGltZXMgaW4gMjQgaG91ciBhbmQgMTIgaG91ciBmb3JtYXRzXG4tIEhpanJpIGRhdGUgYWRqdXNtZW50XG4tIElxYW1haCBvcHRpb24iLAogICJuYW1lIjogInhBemFuVGltZXMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXphbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hN21lZGtoYWxhZi9hemFuLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYXphbkBhN21lZGtoYWxhZiIsCiAgInZlcnNpb24iOiA3Cn0="}
@@ -6744,7 +6802,7 @@
     "45": {"version": "15", "sha256": "19d723mjg08yg1n9dlas0qv03gsqvsmjy5cmq3cl05l5r0jixf77", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBvbiB0b3AgYnV0dG9uIGluIHRoZSB0b3AgYmFyIiwKICAiZXh0ZW5zaW9uLWlkIjogIk9uVGhlVG9wIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiT25UaGVUb3AiLAogICJuYW1lIjogIk9uIFRoZSBUb3AiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMub24tdGhlLXRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmFibGV2aS9PblRoZVRvcCIsCiAgInV1aWQiOiAiT25UaGVUb3BAZmFibGV2aS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTUKfQ=="},
     "46": {"version": "15", "sha256": "19d723mjg08yg1n9dlas0qv03gsqvsmjy5cmq3cl05l5r0jixf77", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBvbiB0b3AgYnV0dG9uIGluIHRoZSB0b3AgYmFyIiwKICAiZXh0ZW5zaW9uLWlkIjogIk9uVGhlVG9wIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiT25UaGVUb3AiLAogICJuYW1lIjogIk9uIFRoZSBUb3AiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMub24tdGhlLXRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmFibGV2aS9PblRoZVRvcCIsCiAgInV1aWQiOiAiT25UaGVUb3BAZmFibGV2aS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}
   }}
-, {"uuid": "openbar@neuromorph", "name": "Open Bar", "pname": "open-bar", "description": "Top Bar ( Top Panel ) customization / styling. Open the Top Bar and let the colors 🍹 flow.\n\n**Please report on GitHub if something is broken due to an update or if you have any suggestions.\n\nUpdate (v29/v30): Bug Fix for extension disable, introduced by v27/v28\nUpdate ( v27/v28 ): \n- Compatibility with more extensions: Fullscreen Avoider,  Lunar Calendar, Dash-to-Panel* and others**.\n- New option to apply the panel menu styles to all the shell pop-ups\n- Calendar day with event - dot indicator fix and toggle switch update fix\n* Dash-to-Panel: You may have to turn on 'Apply menu styles to shell' under 'Beyond Bar' in settings. Also , in case of a crash, check issue #26 in Github.\n** Others: Some extensions do not use standard widget and API (e.g. PanelMenu Button and main.addToStatusArea) when adding indicator to Panel and fixing that makes them work correctly with Open Bar or user themes.\n\nFeatures from recent updates:\n- Auto FG option to automatically switch (black/white) FG color based on widget background\n- Option to set Panel Box / Margins BG color\n- Light-Gradient option for Menu background\n- More tweaks for Border width and radius to change the way the Bar/Buttons look\n-  Auto-theming options \n-  Import, export theme settings to file.\n-  Window-Max Bar: Change Bar props when a window is maximized\n-  More settings in Menus: Menu panel and buttons radius, slider tweaks\n\nAuto Theming:\n- Note: If you want to save your current settings, please use Export Settings option before applying Auto-theme. You can import it back whenever needed.\n- Please select Bar properties esp. type of bar before applying a theme. If you change Bar type later, apply theme again.\n- There are three theme options: 'Color', 'Dark', 'Light' and two variations for each: 'Default', 'Alt'.  Try all combinations to see what you prefer for your desktop background. (Default and Alt maybe very similar or distinct depending on the background palette).\n- There are more settings in Auto-Theme. You can select if you want the secondary menu BG color to be derived from BG or auto-selected from palette. Also, you can specify any preferred accent color or let the theme choose from the background. \n- Since it is one size fit all solution, 'No Free Lunch' theorem applies. Not all options will work for all backgrounds, so the additional knobs above will help you select the desired one. One of the combinations should work for you at least with little bit tweaking if needed.\n- Once theme is applied, you can further tweak any of the manual settings, as usual, to finetune the theme. \n- There is an option for Auto-refreshing theme when background changes. This will overwrite current theme with newly generated one when background is changed.  \n\nCustomize:\n- Bar Type: Fixed, Floating or Islands / Trilands\n- Bar position, height, margin, paddings\n- Bar foreground color, font\n- Bar background color, transparency, gradient, shadow, highlights, candybar \n- Shape rectangular to pill, border width, color, neon glow\n- Menu customizations: foreground, background colors, transparency, border, shadow,  active/selection, hover colors\netc.\n- Apply to notification popups\n- Includes a custom color palette, under the default palette, in each color button popup. The palette is auto-generated from the desktop background.\n\n\nIf the panel/menu isn't looking right, you need to tweak some settings. There are a lot of knobs to allow for different setups/tastes. It can also make it a bit overwhelming if you are not familiar with css styles but with some experimentation it will become a lot easier. Here are brief notes:\n- BG/FG color: Background or Foreground colors. Foreground is typically text and icons.\n- Alpha: Transparency for the color. 0 is transparent while 1 is opaque.\n- Panel BG will affect the bar while Tri/Islands BG will affect the individual indicator buttons/combos (in Trilands/Islands mode).\n- Gradient goes from Start color to End color. If you want a single color fading, select same color for both with different Alphas. e.g. Setting end color alpha to 0 will form a gradient from Start color to transparent.\n- Highlight color: It is the background color upon hover or focus. You can choose to highlight with border instead.\n- Vertical padding: Controls size of highlights in Mainland/Floating. Also controls size of Islands/Trilands. Increase height if padding squeezes the text.\n- Panel Shadow: a downward shadow for the panel bar. Shadow Spread controls both shadow transparency and spread together.\n- Border: \n    = Width controls thickness (grows inwards for Islands). Adjust bar height accordingly, after setting border width.  \n    = Radius will control the shape from rectangle at radius 0 to Pill at radius close to bar height. \n    = Neon glow: adds a neon-light like glow to the border. You need dark, relatively opaque background with bright/neon colored, relatively opaque border. Neon will override Panel shadow in Mainland and Floating mode.\n - Menus: \n    = FG/BG, border, highlight are similar to above but for menus.\n    = Selected/active color is for menu items that are active e.g. Today's day in Calendar or WiFi in Quick Settings or even an active menu item with opened submenu. \n    = Shadow applies to the panel menu. Use white/bright color in dark theme and black/dark color in light theme for the effect to show and help with contrast. Using same color as menu border is also a good idea. Use the Alphas for both border and shadow to increase or reduce their effect.\n    = Once enabled, menu settings now also apply as soon as changed. You need to press 'Apply Menu Styles' button to enable the menu style. 'Reset Menu Styles' button will remove all menu styles and revert to your default theme.\n\nLastly, be a tiny bit gentler with the sliders in the settings as they modify the stylesheet behind the scene for every update.", "link": "https://extensions.gnome.org/extension/6580/open-bar/", "shell_version_map": {
+, {"uuid": "openbar@neuromorph", "name": "Open Bar", "pname": "open-bar", "description": "Top Bar ( Top Panel ) customization / styling. Open the Top Bar and let the colors 🍹 flow.\n\n**Please report on GitHub if something is broken due to an update or if you have any suggestions.\n\nUPCOMING:\nOpen Bar 2.0: \n- Auto-theming completely renewed\n- Apply styles to Bar, Menu, Dash/Dock and rest of the shell\n- Apply accent color to Gtk/Flatpak apps\n\nUpdate (v29/v30): \n- Compatibility with more extensions: Fullscreen Avoider,  Lunar Calendar, Dash-to-Panel* and others**.\n- New option to apply the panel menu styles to all the shell pop-ups\n- Calendar day with event - dot indicator fix and toggle switch update fix\n* Dash-to-Panel: You may have to turn on 'Apply menu styles to shell' under 'Beyond Bar' in settings. Also , in case of a crash, check issue #26 in Github.\n** Others: Some extensions do not use standard widget and API (e.g. PanelMenu Button and main.addToStatusArea) when adding indicator to Panel and fixing that makes them work correctly with Open Bar or user themes.\n\nFeatures from recent updates:\n- Auto FG option to automatically switch (black/white) FG color based on widget background\n- Option to set Panel Box / Margins BG color\n- Light-Gradient option for Menu background\n- More tweaks for Border width and radius to change the way the Bar/Buttons look\n-  Auto-theming options \n-  Import, export theme settings to file.\n-  Window-Max Bar: Change Bar props when a window is maximized\n-  More settings in Menus: Menu panel and buttons radius, slider tweaks\n\nAuto Theming:\n- Note: If you want to save your current settings, please use Export Settings option before applying Auto-theme. You can import it back whenever needed.\n- Please select Bar properties esp. type of bar before applying a theme. If you change Bar type later, apply theme again.\n- There are three theme options: 'Color', 'Dark', 'Light' and two variations for each: 'Default', 'Alt'.  Try all combinations to see what you prefer for your desktop background. (Default and Alt maybe very similar or distinct depending on the background palette).\n- There are more settings in Auto-Theme. You can select if you want the secondary menu BG color to be derived from BG or auto-selected from palette. Also, you can specify any preferred accent color or let the theme choose from the background. \n- Since it is one size fit all solution, 'No Free Lunch' theorem applies. Not all options will work for all backgrounds, so the additional knobs above will help you select the desired one. One of the combinations should work for you at least with little bit tweaking if needed.\n- Once theme is applied, you can further tweak any of the manual settings, as usual, to finetune the theme. \n- There is an option for Auto-refreshing theme when background changes. This will overwrite current theme with newly generated one when background is changed.  \n\nCustomize:\n- Bar Type: Fixed, Floating or Islands / Trilands\n- Bar position, height, margin, paddings\n- Bar foreground color, font\n- Bar background color, transparency, gradient, shadow, highlights, candybar \n- Shape rectangular to pill, border width, color, neon glow\n- Menu customizations: foreground, background colors, transparency, border, shadow,  active/selection, hover colors\netc.\n- Apply to notification popups\n- Includes a custom color palette, under the default palette, in each color button popup. The palette is auto-generated from the desktop background.\n\n\nIf the panel/menu isn't looking right, you need to tweak some settings. There are a lot of knobs to allow for different setups/tastes. It can also make it a bit overwhelming if you are not familiar with css styles but with some experimentation it will become a lot easier. Here are brief notes:\n- BG/FG color: Background or Foreground colors. Foreground is typically text and icons.\n- Alpha: Transparency for the color. 0 is transparent while 1 is opaque.\n- Panel BG will affect the bar while Tri/Islands BG will affect the individual indicator buttons/combos (in Trilands/Islands mode).\n- Gradient goes from Start color to End color. If you want a single color fading, select same color for both with different Alphas. e.g. Setting end color alpha to 0 will form a gradient from Start color to transparent.\n- Highlight color: It is the background color upon hover or focus. You can choose to highlight with border instead.\n- Vertical padding: Controls size of highlights in Mainland/Floating. Also controls size of Islands/Trilands. Increase height if padding squeezes the text.\n- Panel Shadow: a downward shadow for the panel bar. Shadow Spread controls both shadow transparency and spread together.\n- Border: \n    = Width controls thickness (grows inwards for Islands). Adjust bar height accordingly, after setting border width.  \n    = Radius will control the shape from rectangle at radius 0 to Pill at radius close to bar height. \n    = Neon glow: adds a neon-light like glow to the border. You need dark, relatively opaque background with bright/neon colored, relatively opaque border. Neon will override Panel shadow in Mainland and Floating mode.\n - Menus: \n    = FG/BG, border, highlight are similar to above but for menus.\n    = Selected/active color is for menu items that are active e.g. Today's day in Calendar or WiFi in Quick Settings or even an active menu item with opened submenu. \n    = Shadow applies to the panel menu. Use white/bright color in dark theme and black/dark color in light theme for the effect to show and help with contrast. Using same color as menu border is also a good idea. Use the Alphas for both border and shadow to increase or reduce their effect.\n    = Once enabled, menu settings now also apply as soon as changed. You need to press 'Apply Menu Styles' button to enable the menu style. 'Reset Menu Styles' button will remove all menu styles and revert to your default theme.\n\nLastly, be a tiny bit gentler with the sliders in the settings as they modify the stylesheet behind the scene for every update.", "link": "https://extensions.gnome.org/extension/6580/open-bar/", "shell_version_map": {
     "42": {"version": "29", "sha256": "070jphah7b34hf7mrq0gcz2bm30ydrgpy0c7rngn9nl2vdhbxkcn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBCYXIgKCBUb3AgUGFuZWwgKSBjdXN0b21pemF0aW9uIC8gc3R5bGluZy4gT3BlbiB0aGUgVG9wIEJhciBhbmQgbGV0IHRoZSBjb2xvcnMgXHVkODNjXHVkZjc5IGZsb3cuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJuZXVyb21vcnBoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm9wZW5iYXIiLAogICJuYW1lIjogIk9wZW4gQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9wZW5iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZXVyb21vcnBoL29wZW5iYXIiLAogICJ1dWlkIjogIm9wZW5iYXJAbmV1cm9tb3JwaCIsCiAgInZlcnNpb24iOiAyOQp9"},
     "43": {"version": "29", "sha256": "070jphah7b34hf7mrq0gcz2bm30ydrgpy0c7rngn9nl2vdhbxkcn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBCYXIgKCBUb3AgUGFuZWwgKSBjdXN0b21pemF0aW9uIC8gc3R5bGluZy4gT3BlbiB0aGUgVG9wIEJhciBhbmQgbGV0IHRoZSBjb2xvcnMgXHVkODNjXHVkZjc5IGZsb3cuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJuZXVyb21vcnBoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm9wZW5iYXIiLAogICJuYW1lIjogIk9wZW4gQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9wZW5iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZXVyb21vcnBoL29wZW5iYXIiLAogICJ1dWlkIjogIm9wZW5iYXJAbmV1cm9tb3JwaCIsCiAgInZlcnNpb24iOiAyOQp9"},
     "44": {"version": "29", "sha256": "070jphah7b34hf7mrq0gcz2bm30ydrgpy0c7rngn9nl2vdhbxkcn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBCYXIgKCBUb3AgUGFuZWwgKSBjdXN0b21pemF0aW9uIC8gc3R5bGluZy4gT3BlbiB0aGUgVG9wIEJhciBhbmQgbGV0IHRoZSBjb2xvcnMgXHVkODNjXHVkZjc5IGZsb3cuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJuZXVyb21vcnBoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm9wZW5iYXIiLAogICJuYW1lIjogIk9wZW4gQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9wZW5iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZXVyb21vcnBoL29wZW5iYXIiLAogICJ1dWlkIjogIm9wZW5iYXJAbmV1cm9tb3JwaCIsCiAgInZlcnNpb24iOiAyOQp9"},
@@ -6769,7 +6827,8 @@
     "45": {"version": "3", "sha256": "0d3rk4ygvabw865frf4pv687fmdsshd7287w8k2klcwgszj04v43", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBhbGxvdyB0aGUgdXNlIG9mIHRoZSBvbnNjcmVlbiBrZXlib2FyZCAob3NrKSwgcmVnYXJkbGVzcyBvZiB0b3VjaC90YWJsZXQgbW9kZS4iLAogICJuYW1lIjogIkFsd2F5cyBhbGxvdyBvbnNjcmVlbiBrZXlib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kdmR6bXIvYWx3YXlzLXNob3ctb25zY3JlZW4ta2V5Ym9hcmQiLAogICJ1dWlkIjogImFsd2F5cy1hbGxvdy1vbnNjcmVlbi1rZXlib2FyZEBkdmR6bXIuZXh0ZW5zaW9uIiwKICAidmVyc2lvbiI6IDMKfQ=="}
   }}
 , {"uuid": "dev-container-manager@devopsnextgenx", "name": "docker podman kind kubernetes cluster container manager", "pname": "dev-container-manager", "description": "Gnome Extension to enable cicd/container/kubernetes and cloud resource handling. you can use docker, podman and use kubernetes clusters with kind. Added resize, delete container and filter active containers.", "link": "https://extensions.gnome.org/extension/6601/dev-container-manager/", "shell_version_map": {
-    "45": {"version": "21", "sha256": "1pakhrkhfmjxmry6n2v8dbciq1mpcdclyhvn4cin84gwsdhalfcc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIEV4dGVuc2lvbiB0byBlbmFibGUgY2ljZC9jb250YWluZXIva3ViZXJuZXRlcyBhbmQgY2xvdWQgcmVzb3VyY2UgaGFuZGxpbmcuIHlvdSBjYW4gdXNlIGRvY2tlciwgcG9kbWFuIGFuZCB1c2Uga3ViZXJuZXRlcyBjbHVzdGVycyB3aXRoIGtpbmQuIEFkZGVkIHJlc2l6ZSwgZGVsZXRlIGNvbnRhaW5lciBhbmQgZmlsdGVyIGFjdGl2ZSBjb250YWluZXJzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImRldm9wc25leHRnZW54IgogIH0sCiAgIm5hbWUiOiAiZG9ja2VyIHBvZG1hbiBraW5kIGt1YmVybmV0ZXMgY2x1c3RlciBjb250YWluZXIgbWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kZXYtY29udGFpbmVyLW1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGV2b3BzbmV4dGdlbngvZ25vbWUtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiZGV2LWNvbnRhaW5lci1tYW5hZ2VyQGRldm9wc25leHRnZW54IiwKICAidmVyc2lvbiI6IDIxLAogICJ2ZXJzaW9uLW5hbWUiOiAiMC4wLjgiCn0="}
+    "45": {"version": "23", "sha256": "05vdng19gl3rrrjmzsfbhgfwnsgd7y1l9njsvqsbibrflxc24cpz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIEV4dGVuc2lvbiB0byBlbmFibGUgY2ljZC9jb250YWluZXIva3ViZXJuZXRlcyBhbmQgY2xvdWQgcmVzb3VyY2UgaGFuZGxpbmcuIHlvdSBjYW4gdXNlIGRvY2tlciwgcG9kbWFuIGFuZCB1c2Uga3ViZXJuZXRlcyBjbHVzdGVycyB3aXRoIGtpbmQuIEFkZGVkIHJlc2l6ZSwgZGVsZXRlIGNvbnRhaW5lciBhbmQgZmlsdGVyIGFjdGl2ZSBjb250YWluZXJzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImRldm9wc25leHRnZW54IgogIH0sCiAgIm5hbWUiOiAiZG9ja2VyIHBvZG1hbiBraW5kIGt1YmVybmV0ZXMgY2x1c3RlciBjb250YWluZXIgbWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kZXYtY29udGFpbmVyLW1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Rldm9wc25leHRnZW54L2dub21lLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImRldi1jb250YWluZXItbWFuYWdlckBkZXZvcHNuZXh0Z2VueCIsCiAgInZlcnNpb24iOiAyMywKICAidmVyc2lvbi1uYW1lIjogIjAuMC44Igp9"},
+    "46": {"version": "23", "sha256": "05vdng19gl3rrrjmzsfbhgfwnsgd7y1l9njsvqsbibrflxc24cpz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIEV4dGVuc2lvbiB0byBlbmFibGUgY2ljZC9jb250YWluZXIva3ViZXJuZXRlcyBhbmQgY2xvdWQgcmVzb3VyY2UgaGFuZGxpbmcuIHlvdSBjYW4gdXNlIGRvY2tlciwgcG9kbWFuIGFuZCB1c2Uga3ViZXJuZXRlcyBjbHVzdGVycyB3aXRoIGtpbmQuIEFkZGVkIHJlc2l6ZSwgZGVsZXRlIGNvbnRhaW5lciBhbmQgZmlsdGVyIGFjdGl2ZSBjb250YWluZXJzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImRldm9wc25leHRnZW54IgogIH0sCiAgIm5hbWUiOiAiZG9ja2VyIHBvZG1hbiBraW5kIGt1YmVybmV0ZXMgY2x1c3RlciBjb250YWluZXIgbWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kZXYtY29udGFpbmVyLW1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Rldm9wc25leHRnZW54L2dub21lLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImRldi1jb250YWluZXItbWFuYWdlckBkZXZvcHNuZXh0Z2VueCIsCiAgInZlcnNpb24iOiAyMywKICAidmVyc2lvbi1uYW1lIjogIjAuMC44Igp9"}
   }}
 , {"uuid": "move-to-next-screen@wosar.me", "name": "Move To Next Screen", "pname": "move-to-next-screen", "description": "Adds a keyboard shortcut (CTRL+SHIFT+PAGEUP) to move the current window to the next screen.", "link": "https://extensions.gnome.org/extension/6610/move-to-next-screen/", "shell_version_map": {
     "45": {"version": "1", "sha256": "0n28xnphka81ajypqwnbjpm24zwa8sdan3wzsan68f4raz9bf5xy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBrZXlib2FyZCBzaG9ydGN1dCB0byBtb3ZlIHRoZSBjdXJyZW50IHdpbmRvdyB0byB0aGUgbmV4dCBzY3JlZW4iLAogICJuYW1lIjogIk1vdmUgVG8gTmV4dCBTY3JlZW4iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubW92ZS10by1uZXh0LXNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9md29zYXIvbW92ZS10by1uZXh0LXNjcmVlbiIsCiAgInV1aWQiOiAibW92ZS10by1uZXh0LXNjcmVlbkB3b3Nhci5tZSIsCiAgInZlcnNpb24iOiAxCn0="}
@@ -6808,8 +6867,8 @@
     "44": {"version": "9", "sha256": "10i3chc6vzsw04a5jm8p39rlkj7klz96g4979gvia7j6xfpcs1bc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgJiBIaWRlIGljb25zIGZyb20gdGhlIHRvcCBwYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1pY29uaGlkZXJ1cGRhdGVkIiwKICAibmFtZSI6ICJJY29uIEhpZGVyIFVwZGF0ZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaWNvbi1oaWRlci11cGRhdGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9seDM1OGhjbC9saW51eGljb25oaWRlcnVwZGF0ZWQiLAogICJ1dWlkIjogImljb24taGlkZXItdXBkYXRlZEBseDM1OGhjbC5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}
   }}
 , {"uuid": "openweather-extension@penguin-teal.github.io", "name": "OpenWeather Refined", "pname": "openweather", "description": "Display weather for the current or a specified location. Fork of OpenWeather.\nWeather data is provided by OpenWeatherMap.org or WeatherAPI.com.\nIf location is set to \"My Location,\" which is the case by default on laptops, this extension will use location services and Nominatim (from openstreetmap.org), or infoip.io if that failed.", "link": "https://extensions.gnome.org/extension/6655/openweather/", "shell_version_map": {
-    "45": {"version": "13", "sha256": "05cdybcfbzv15k3dk6fqckp9s3z7n5wcfsgv2zvrjlvp78yj3q6c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgd2VhdGhlciBmb3IgdGhlIGN1cnJlbnQgb3IgYSBzcGVjaWZpZWQgbG9jYXRpb24uIEZvcmsgb2YgT3BlbldlYXRoZXIuXG5XZWF0aGVyIGRhdGEgaXMgcHJvdmlkZWQgYnkgT3BlbldlYXRoZXJNYXAub3JnIG9yIFdlYXRoZXJBUEkuY29tLlxuSWYgbG9jYXRpb24gaXMgc2V0IHRvIFwiTXkgTG9jYXRpb24sXCIgd2hpY2ggaXMgdGhlIGNhc2UgYnkgZGVmYXVsdCBvbiBsYXB0b3BzLCB0aGlzIGV4dGVuc2lvbiB3aWxsIHVzZSBsb2NhdGlvbiBzZXJ2aWNlcyBhbmQgTm9taW5hdGltIChmcm9tIG9wZW5zdHJlZXRtYXAub3JnKSwgb3IgaW5mb2lwLmlvIGlmIHRoYXQgZmFpbGVkLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1vcGVud2VhdGhlcnJlZmluZWQiLAogICJnaXQtdmVyc2lvbiI6ICIxMzQucjAuZ2YyZDczOWUiLAogICJuYW1lIjogIk9wZW5XZWF0aGVyIFJlZmluZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMub3BlbndlYXRoZXJyZWZpbmVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wZW5ndWluLXRlYWwvZ25vbWUtb3BlbndlYXRoZXIiLAogICJ1dWlkIjogIm9wZW53ZWF0aGVyLWV4dGVuc2lvbkBwZW5ndWluLXRlYWwuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEzLAogICJ2ZXJzaW9uLW5hbWUiOiAiMTM0Igp9"},
-    "46": {"version": "13", "sha256": "05cdybcfbzv15k3dk6fqckp9s3z7n5wcfsgv2zvrjlvp78yj3q6c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgd2VhdGhlciBmb3IgdGhlIGN1cnJlbnQgb3IgYSBzcGVjaWZpZWQgbG9jYXRpb24uIEZvcmsgb2YgT3BlbldlYXRoZXIuXG5XZWF0aGVyIGRhdGEgaXMgcHJvdmlkZWQgYnkgT3BlbldlYXRoZXJNYXAub3JnIG9yIFdlYXRoZXJBUEkuY29tLlxuSWYgbG9jYXRpb24gaXMgc2V0IHRvIFwiTXkgTG9jYXRpb24sXCIgd2hpY2ggaXMgdGhlIGNhc2UgYnkgZGVmYXVsdCBvbiBsYXB0b3BzLCB0aGlzIGV4dGVuc2lvbiB3aWxsIHVzZSBsb2NhdGlvbiBzZXJ2aWNlcyBhbmQgTm9taW5hdGltIChmcm9tIG9wZW5zdHJlZXRtYXAub3JnKSwgb3IgaW5mb2lwLmlvIGlmIHRoYXQgZmFpbGVkLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1vcGVud2VhdGhlcnJlZmluZWQiLAogICJnaXQtdmVyc2lvbiI6ICIxMzQucjAuZ2YyZDczOWUiLAogICJuYW1lIjogIk9wZW5XZWF0aGVyIFJlZmluZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMub3BlbndlYXRoZXJyZWZpbmVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wZW5ndWluLXRlYWwvZ25vbWUtb3BlbndlYXRoZXIiLAogICJ1dWlkIjogIm9wZW53ZWF0aGVyLWV4dGVuc2lvbkBwZW5ndWluLXRlYWwuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEzLAogICJ2ZXJzaW9uLW5hbWUiOiAiMTM0Igp9"}
+    "45": {"version": "14", "sha256": "0bimv6p1y6pwy1qvnjhlnzq2dp24lmqlrbd1s8zgv4la29hn1zw2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgd2VhdGhlciBmb3IgdGhlIGN1cnJlbnQgb3IgYSBzcGVjaWZpZWQgbG9jYXRpb24uIEZvcmsgb2YgT3BlbldlYXRoZXIuXG5XZWF0aGVyIGRhdGEgaXMgcHJvdmlkZWQgYnkgT3BlbldlYXRoZXJNYXAub3JnIG9yIFdlYXRoZXJBUEkuY29tLlxuSWYgbG9jYXRpb24gaXMgc2V0IHRvIFwiTXkgTG9jYXRpb24sXCIgd2hpY2ggaXMgdGhlIGNhc2UgYnkgZGVmYXVsdCBvbiBsYXB0b3BzLCB0aGlzIGV4dGVuc2lvbiB3aWxsIHVzZSBsb2NhdGlvbiBzZXJ2aWNlcyBhbmQgTm9taW5hdGltIChmcm9tIG9wZW5zdHJlZXRtYXAub3JnKSwgb3IgaW5mb2lwLmlvIGlmIHRoYXQgZmFpbGVkLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1vcGVud2VhdGhlcnJlZmluZWQiLAogICJnaXQtdmVyc2lvbiI6ICIxMzUucjAuZ2U5OTRhZWIiLAogICJuYW1lIjogIk9wZW5XZWF0aGVyIFJlZmluZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMub3BlbndlYXRoZXJyZWZpbmVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wZW5ndWluLXRlYWwvZ25vbWUtb3BlbndlYXRoZXIiLAogICJ1dWlkIjogIm9wZW53ZWF0aGVyLWV4dGVuc2lvbkBwZW5ndWluLXRlYWwuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE0LAogICJ2ZXJzaW9uLW5hbWUiOiAiMTM1Igp9"},
+    "46": {"version": "14", "sha256": "0bimv6p1y6pwy1qvnjhlnzq2dp24lmqlrbd1s8zgv4la29hn1zw2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgd2VhdGhlciBmb3IgdGhlIGN1cnJlbnQgb3IgYSBzcGVjaWZpZWQgbG9jYXRpb24uIEZvcmsgb2YgT3BlbldlYXRoZXIuXG5XZWF0aGVyIGRhdGEgaXMgcHJvdmlkZWQgYnkgT3BlbldlYXRoZXJNYXAub3JnIG9yIFdlYXRoZXJBUEkuY29tLlxuSWYgbG9jYXRpb24gaXMgc2V0IHRvIFwiTXkgTG9jYXRpb24sXCIgd2hpY2ggaXMgdGhlIGNhc2UgYnkgZGVmYXVsdCBvbiBsYXB0b3BzLCB0aGlzIGV4dGVuc2lvbiB3aWxsIHVzZSBsb2NhdGlvbiBzZXJ2aWNlcyBhbmQgTm9taW5hdGltIChmcm9tIG9wZW5zdHJlZXRtYXAub3JnKSwgb3IgaW5mb2lwLmlvIGlmIHRoYXQgZmFpbGVkLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1vcGVud2VhdGhlcnJlZmluZWQiLAogICJnaXQtdmVyc2lvbiI6ICIxMzUucjAuZ2U5OTRhZWIiLAogICJuYW1lIjogIk9wZW5XZWF0aGVyIFJlZmluZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMub3BlbndlYXRoZXJyZWZpbmVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wZW5ndWluLXRlYWwvZ25vbWUtb3BlbndlYXRoZXIiLAogICJ1dWlkIjogIm9wZW53ZWF0aGVyLWV4dGVuc2lvbkBwZW5ndWluLXRlYWwuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE0LAogICJ2ZXJzaW9uLW5hbWUiOiAiMTM1Igp9"}
   }}
 , {"uuid": "wallhub@sakithb.github.io", "name": "Wallhub", "pname": "wallhub", "description": "Manage wallpapers with ease", "link": "https://extensions.gnome.org/extension/6661/wallhub/", "shell_version_map": {
     "45": {"version": "6", "sha256": "1nqjab3hji06046x2ihg8i2izcpgxy9l7pwv4w21aq04fb2742hp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB3YWxscGFwZXJzIHdpdGggZWFzZSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAic2FraXRoYiIsCiAgICAia29maSI6ICJzYWtpdGhiIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIndhbGxodWJAc2FraXRoYi5naXRodWIuaW8iLAogICJuYW1lIjogIldhbGxodWIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2FsbGh1YiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2FraXRoYi93YWxsaHViIiwKICAidXVpZCI6ICJ3YWxsaHViQHNha2l0aGIuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYsCiAgInZlcnNpb24tbmFtZSI6ICIxLjEuMyIKfQ=="},
@@ -6834,8 +6893,8 @@
     "46": {"version": "5", "sha256": "1fmz31bm2kf6rbzkib1756sg25chyxs5vbllqjzc49dalm0cla2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBjdXJyZW50IHBvd2VyIHByb2ZpbGUgaW4gcGFuZWwncyBzeXN0ZW0gaWNvbnMuIFZlcnkgbGlnaHQgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiUG93ZXIgcHJvZmlsZSBpbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvcG93ZXItcHJvZmlsZSIsCiAgInV1aWQiOiAicG93ZXItcHJvZmlsZUBmdGh4IiwKICAidmVyc2lvbiI6IDUKfQ=="}
   }}
 , {"uuid": "monitor@astraext.github.io", "name": "Astra Monitor", "pname": "astra-monitor", "description": "Astra Monitor is a cutting-edge, fully customizable, and performance-focused system monitoring extension for GNOME's top bar. It's an all-in-one solution for those seeking to keep a close eye on their system's performance metrics like CPU, GPU, RAM, disk usage, network statistics, and sensor readings.", "link": "https://extensions.gnome.org/extension/6682/astra-monitor/", "shell_version_map": {
-    "45": {"version": "35", "sha256": "1n2x6qhnm3xm4md5r8g8gzj5zs3894iy2hzlv31p4wrq7b7xvx5l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFzdHJhIE1vbml0b3IgaXMgYSBjdXR0aW5nLWVkZ2UsIGZ1bGx5IGN1c3RvbWl6YWJsZSwgYW5kIHBlcmZvcm1hbmNlLWZvY3VzZWQgc3lzdGVtIG1vbml0b3JpbmcgZXh0ZW5zaW9uIGZvciBHTk9NRSdzIHRvcCBiYXIuIEl0J3MgYW4gYWxsLWluLW9uZSBzb2x1dGlvbiBmb3IgdGhvc2Ugc2Vla2luZyB0byBrZWVwIGEgY2xvc2UgZXllIG9uIHRoZWlyIHN5c3RlbSdzIHBlcmZvcm1hbmNlIG1ldHJpY3MgbGlrZSBDUFUsIEdQVSwgUkFNLCBkaXNrIHVzYWdlLCBuZXR3b3JrIHN0YXRpc3RpY3MsIGFuZCBzZW5zb3IgcmVhZGluZ3MuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJhc3RyYS5leHQiLAogICAgInBhdHJlb24iOiAiQXN0cmFFeHQiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAibW9uaXRvckBhc3RyYWV4dC5naXRodWIuaW8iLAogICJsaWNlbnNlIjogIkdQTC0zLjAtb3ItbGF0ZXIiLAogICJuYW1lIjogIkFzdHJhIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXN0cmEtbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQXN0cmFFeHQvYXN0cmEtbW9uaXRvciIsCiAgInV1aWQiOiAibW9uaXRvckBhc3RyYWV4dC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMzUsCiAgInZlcnNpb24tbmFtZSI6ICIyMSIKfQ=="},
-    "46": {"version": "35", "sha256": "1n2x6qhnm3xm4md5r8g8gzj5zs3894iy2hzlv31p4wrq7b7xvx5l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFzdHJhIE1vbml0b3IgaXMgYSBjdXR0aW5nLWVkZ2UsIGZ1bGx5IGN1c3RvbWl6YWJsZSwgYW5kIHBlcmZvcm1hbmNlLWZvY3VzZWQgc3lzdGVtIG1vbml0b3JpbmcgZXh0ZW5zaW9uIGZvciBHTk9NRSdzIHRvcCBiYXIuIEl0J3MgYW4gYWxsLWluLW9uZSBzb2x1dGlvbiBmb3IgdGhvc2Ugc2Vla2luZyB0byBrZWVwIGEgY2xvc2UgZXllIG9uIHRoZWlyIHN5c3RlbSdzIHBlcmZvcm1hbmNlIG1ldHJpY3MgbGlrZSBDUFUsIEdQVSwgUkFNLCBkaXNrIHVzYWdlLCBuZXR3b3JrIHN0YXRpc3RpY3MsIGFuZCBzZW5zb3IgcmVhZGluZ3MuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJhc3RyYS5leHQiLAogICAgInBhdHJlb24iOiAiQXN0cmFFeHQiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAibW9uaXRvckBhc3RyYWV4dC5naXRodWIuaW8iLAogICJsaWNlbnNlIjogIkdQTC0zLjAtb3ItbGF0ZXIiLAogICJuYW1lIjogIkFzdHJhIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXN0cmEtbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQXN0cmFFeHQvYXN0cmEtbW9uaXRvciIsCiAgInV1aWQiOiAibW9uaXRvckBhc3RyYWV4dC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMzUsCiAgInZlcnNpb24tbmFtZSI6ICIyMSIKfQ=="}
+    "45": {"version": "42", "sha256": "0hyas31bv2k8dplxlv6r5a421v69qyxjf1a6zkal5i5p7ifl470z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFzdHJhIE1vbml0b3IgaXMgYSBjdXR0aW5nLWVkZ2UsIGZ1bGx5IGN1c3RvbWl6YWJsZSwgYW5kIHBlcmZvcm1hbmNlLWZvY3VzZWQgc3lzdGVtIG1vbml0b3JpbmcgZXh0ZW5zaW9uIGZvciBHTk9NRSdzIHRvcCBiYXIuIEl0J3MgYW4gYWxsLWluLW9uZSBzb2x1dGlvbiBmb3IgdGhvc2Ugc2Vla2luZyB0byBrZWVwIGEgY2xvc2UgZXllIG9uIHRoZWlyIHN5c3RlbSdzIHBlcmZvcm1hbmNlIG1ldHJpY3MgbGlrZSBDUFUsIEdQVSwgUkFNLCBkaXNrIHVzYWdlLCBuZXR3b3JrIHN0YXRpc3RpY3MsIGFuZCBzZW5zb3IgcmVhZGluZ3MuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJhc3RyYS5leHQiLAogICAgInBhdHJlb24iOiAiQXN0cmFFeHQiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAibW9uaXRvckBhc3RyYWV4dC5naXRodWIuaW8iLAogICJsaWNlbnNlIjogIkdQTC0zLjAtb3ItbGF0ZXIiLAogICJuYW1lIjogIkFzdHJhIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXN0cmEtbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQXN0cmFFeHQvYXN0cmEtbW9uaXRvciIsCiAgInV1aWQiOiAibW9uaXRvckBhc3RyYWV4dC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNDIsCiAgInZlcnNpb24tbmFtZSI6ICIyNSIKfQ=="},
+    "46": {"version": "42", "sha256": "0hyas31bv2k8dplxlv6r5a421v69qyxjf1a6zkal5i5p7ifl470z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFzdHJhIE1vbml0b3IgaXMgYSBjdXR0aW5nLWVkZ2UsIGZ1bGx5IGN1c3RvbWl6YWJsZSwgYW5kIHBlcmZvcm1hbmNlLWZvY3VzZWQgc3lzdGVtIG1vbml0b3JpbmcgZXh0ZW5zaW9uIGZvciBHTk9NRSdzIHRvcCBiYXIuIEl0J3MgYW4gYWxsLWluLW9uZSBzb2x1dGlvbiBmb3IgdGhvc2Ugc2Vla2luZyB0byBrZWVwIGEgY2xvc2UgZXllIG9uIHRoZWlyIHN5c3RlbSdzIHBlcmZvcm1hbmNlIG1ldHJpY3MgbGlrZSBDUFUsIEdQVSwgUkFNLCBkaXNrIHVzYWdlLCBuZXR3b3JrIHN0YXRpc3RpY3MsIGFuZCBzZW5zb3IgcmVhZGluZ3MuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJhc3RyYS5leHQiLAogICAgInBhdHJlb24iOiAiQXN0cmFFeHQiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAibW9uaXRvckBhc3RyYWV4dC5naXRodWIuaW8iLAogICJsaWNlbnNlIjogIkdQTC0zLjAtb3ItbGF0ZXIiLAogICJuYW1lIjogIkFzdHJhIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXN0cmEtbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQXN0cmFFeHQvYXN0cmEtbW9uaXRvciIsCiAgInV1aWQiOiAibW9uaXRvckBhc3RyYWV4dC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNDIsCiAgInZlcnNpb24tbmFtZSI6ICIyNSIKfQ=="}
   }}
 , {"uuid": "collector-pip@mijorus.it", "name": "Collector - complementary extension", "pname": "collector-complementary-extension", "description": "Allows the Collector window to stay always on top", "link": "https://extensions.gnome.org/extension/6685/collector-complementary-extension/", "shell_version_map": {
     "45": {"version": "1", "sha256": "0ndzxkw8rxjb3nxwyi4znhyq7j2p4yb6vj9gxfdz9hl2kcbsn1k7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0aGUgQ29sbGVjdG9yIHdpbmRvdyB0byBzdGF5IGFsd2F5cyBvbiB0b3AiLAogICJuYW1lIjogIkNvbGxlY3RvciAtIGNvbXBsZW1lbnRhcnkgZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pam9ydXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNvbGxlY3RvciIsCiAgInV1aWQiOiAiY29sbGVjdG9yLXBpcEBtaWpvcnVzLml0IiwKICAidmVyc2lvbiI6IDEKfQ=="}
@@ -6897,20 +6956,17 @@
     "44": {"version": "6", "sha256": "0vlkg847fsqpfgkgz47w0cf9hmj6bhgb1pv7f7kgq7ahyrarg949", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IHRleHQgYW55d2hlcmUgZnJvbSBzcGVlY2ggd2l0aCB0aGUgbWlkZGxlIG1vdXNlIGJ1dHRvbiIsCiAgIm5hbWUiOiAiQmx1cnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmx1cnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9RdWFudGl1c0JlbmlnbnVzL2JsdXJ0IiwKICAidXVpZCI6ICJibHVydEBxdWFudGl1c2JlbmlnbnVzLmxvY2FsIiwKICAidmVyc2lvbiI6IDYKfQ=="},
     "45": {"version": "5", "sha256": "10ajsindzad9azjfipnq2hzm2s5xliivkvxc9xckxv4hwhi4haks", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IHRleHQgZnJvbSBzcGVlY2ggYW55d2hlcmUgd2l0aCB0aGUgbWlkZGxlIG1vdXNlIGJ1dHRvbiIsCiAgIm5hbWUiOiAiQmx1cnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmx1cnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUXVhbnRpdXNCZW5pZ251cy9ibHVydCIsCiAgInV1aWQiOiAiYmx1cnRAcXVhbnRpdXNiZW5pZ251cy5sb2NhbCIsCiAgInZlcnNpb24iOiA1Cn0="}
   }}
-, {"uuid": "luminus-shell@dikasp.gitlab", "name": "Luminus Shell", "pname": "luminus-shell", "description": "Brings light style integration into default gnome shell (shell only).", "link": "https://extensions.gnome.org/extension/6744/luminus-shell/", "shell_version_map": {
+, {"uuid": "luminus-shell@dikasp.gitlab", "name": "Luminus Shell", "pname": "luminus-shell", "description": "Light style integration for default GNOME shell.", "link": "https://extensions.gnome.org/extension/6744/luminus-shell/", "shell_version_map": {
     "45": {"version": "2", "sha256": "05qkb9ycrgbcf5iy71x6n3zf56wmx1iib101f5h307ig3a4mnlc1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5ncyBmdWxsIGxpZ2h0IHN0eWxlIGludGVncmF0aW9uIGludG8gZGVmYXVsdCBnbm9tZS1zaGVsbC4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImRpa2FzcCIKICB9LAogICJuYW1lIjogIkx1bWludXMgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZGlrYXNldHlhcHJheW9naS9sdW1pbnVzLXByb2plY3QiLAogICJ1dWlkIjogImx1bWludXMtc2hlbGxAZGlrYXNwLmdpdGxhYiIsCiAgInZlcnNpb24iOiAyLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDUuMiIKfQ=="},
-    "46": {"version": "4", "sha256": "0yip0kbhqg41r9k514imfmqhlzhfx1fxsq65wz3p9i0gy6rwypfg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5ncyBsaWdodCBzdHlsZSBpbnRlZ3JhdGlvbiBpbnRvIGRlZmF1bHQgZ25vbWUgc2hlbGwgKHNoZWxsIG9ubHkpLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZGlrYXNwIgogIH0sCiAgIm5hbWUiOiAiTHVtaW51cyBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9kaWthc2V0eWFwcmF5b2dpL2x1bWludXMtcHJvamVjdCIsCiAgInV1aWQiOiAibHVtaW51cy1zaGVsbEBkaWthc3AuZ2l0bGFiIiwKICAidmVyc2lvbiI6IDQsCiAgInZlcnNpb24tbmFtZSI6ICI0Ni4yIgp9"}
+    "46": {"version": "5", "sha256": "0f9i0p3jgw2df1qmwfwala0p7lgja4yac8jjbrsj499yjzw9wdgc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0IHN0eWxlIGludGVncmF0aW9uIGZvciBkZWZhdWx0IEdOT01FIHNoZWxsLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZGlrYXNwIgogIH0sCiAgIm5hbWUiOiAiTHVtaW51cyBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9kaWthc2V0eWFwcmF5b2dpL2x1bWludXMtcHJvamVjdCIsCiAgInV1aWQiOiAibHVtaW51cy1zaGVsbEBkaWthc3AuZ2l0bGFiIiwKICAidmVyc2lvbiI6IDUsCiAgInZlcnNpb24tbmFtZSI6ICI0Ni4zIgp9"}
   }}
-, {"uuid": "luminus-shell-y@dikasp.gitlab", "name": "Luminus Shell Y", "pname": "luminus-shell-y", "description": "Brings light style integration into Blur my Shell extension (shell only).", "link": "https://extensions.gnome.org/extension/6747/luminus-shell-y/", "shell_version_map": {
+, {"uuid": "luminus-shell-y@dikasp.gitlab", "name": "Luminus Shell Y", "pname": "luminus-shell-y", "description": "Light style integration for Blur my Shell and other transparent theming extensions.", "link": "https://extensions.gnome.org/extension/6747/luminus-shell-y/", "shell_version_map": {
     "45": {"version": "2", "sha256": "16wgh92pn6i94hcxykyy09km75xk6mmnsvbr0c571mhad928a5b2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5ncyBmdWxsIGxpZ2h0IHN0eWxlIGludGVncmF0aW9uIGludG8gQmx1ciBteSBTaGVsbCBleHRlbnNpb24uIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJkaWthc3AiCiAgfSwKICAibmFtZSI6ICJMdW1pbnVzIFNoZWxsIFkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZGlrYXNldHlhcHJheW9naS9sdW1pbnVzLXByb2plY3QiLAogICJ1dWlkIjogImx1bWludXMtc2hlbGwteUBkaWthc3AuZ2l0bGFiIiwKICAidmVyc2lvbiI6IDIsCiAgInZlcnNpb24tbmFtZSI6ICI0NS4yIgp9"},
-    "46": {"version": "3", "sha256": "09l7sflp40q67ms9x57g230mjy9ndqbkbmd4bb2iybk5r0ii2h2d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5ncyBsaWdodCBzdHlsZSBpbnRlZ3JhdGlvbiBpbnRvIEJsdXIgbXkgU2hlbGwgZXh0ZW5zaW9uIChzaGVsbCBvbmx5KS4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImRpa2FzcCIKICB9LAogICJuYW1lIjogIkx1bWludXMgU2hlbGwgWSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9kaWthc2V0eWFwcmF5b2dpL2x1bWludXMtcHJvamVjdCIsCiAgInV1aWQiOiAibHVtaW51cy1zaGVsbC15QGRpa2FzcC5naXRsYWIiLAogICJ2ZXJzaW9uIjogMywKICAidmVyc2lvbi1uYW1lIjogIjQ2LjIiCn0="}
+    "46": {"version": "5", "sha256": "049d1f9v8b4zwghnz1g9nkdzld9mgx554l9lqli0f0mlmnx2i34f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0IHN0eWxlIGludGVncmF0aW9uIGZvciBCbHVyIG15IFNoZWxsIGFuZCBvdGhlciB0cmFuc3BhcmVudCB0aGVtaW5nIGV4dGVuc2lvbnMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJkaWthc3AiCiAgfSwKICAibmFtZSI6ICJMdW1pbnVzIFNoZWxsIFkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZGlrYXNldHlhcHJheW9naS9sdW1pbnVzLXByb2plY3QiLAogICJ1dWlkIjogImx1bWludXMtc2hlbGwteUBkaWthc3AuZ2l0bGFiIiwKICAidmVyc2lvbiI6IDUsCiAgInZlcnNpb24tbmFtZSI6ICI0Ni4zIgp9"}
   }}
-, {"uuid": "luminus-desktop@dikasp.gitlab", "name": "Luminus Desktop", "pname": "luminus-desktop", "description": "Brings global light style integration into gnome shell and GTK apps.", "link": "https://extensions.gnome.org/extension/6750/luminus-desktop/", "shell_version_map": {
+, {"uuid": "luminus-desktop@dikasp.gitlab", "name": "Luminus Desktop", "pname": "luminus-desktop", "description": "Global light style integration for GNOME shell and GTK apps.", "link": "https://extensions.gnome.org/extension/6750/luminus-desktop/", "shell_version_map": {
     "45": {"version": "3", "sha256": "1ai9rzr0lx8myy6cqfsm4cck5l1v5yq8fwfil0rawpnzlbr6rmgk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5ncyBnbG9iYWwgZnVsbCBsaWdodCBzdHlsZSBpbnRlZ3JhdGlvbiBpbnRvIGdub21lLXNoZWxsIGFuZCBHVEsgYXBwcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImRpa2FzcCIKICB9LAogICJuYW1lIjogIkx1bWludXMgRGVza3RvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9kaWthc2V0eWFwcmF5b2dpL2x1bWludXMtcHJvamVjdCIsCiAgInV1aWQiOiAibHVtaW51cy1kZXNrdG9wQGRpa2FzcC5naXRsYWIiLAogICJ2ZXJzaW9uIjogMywKICAidmVyc2lvbi1uYW1lIjogIjQ1LjIiCn0="},
-    "46": {"version": "5", "sha256": "1v4kb8qrrjf4ganp698wc2pd03n8gy4mpccy8443icnl93xi4qb5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5ncyBnbG9iYWwgbGlnaHQgc3R5bGUgaW50ZWdyYXRpb24gaW50byBnbm9tZSBzaGVsbCBhbmQgR1RLIGFwcHMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJkaWthc3AiCiAgfSwKICAibmFtZSI6ICJMdW1pbnVzIERlc2t0b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZGlrYXNldHlhcHJheW9naS9sdW1pbnVzLXByb2plY3QiLAogICJ1dWlkIjogImx1bWludXMtZGVza3RvcEBkaWthc3AuZ2l0bGFiIiwKICAidmVyc2lvbiI6IDUsCiAgInZlcnNpb24tbmFtZSI6ICI0Ni4yIgp9"}
-  }}
-, {"uuid": "slacker@hedgie.tech", "name": "Slacker", "pname": "slacker", "description": "Improve Slack web or pwa notifications", "link": "https://extensions.gnome.org/extension/6756/slacker/", "shell_version_map": {
-    "45": {"version": "1", "sha256": "1kyfdrxfiwnqjvjjsvyvpsd64dlcqvl685add8zawb46xmmbigz0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmUgU2xhY2sgd2ViIG9yIHB3YSBub3RpZmljYXRpb25zIiwKICAibmFtZSI6ICJTbGFja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNsYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGVkZ2llaW5zb2Nrcy9nbm9tZS1leHRlbnNpb24tc2xhY2tlciIsCiAgInV1aWQiOiAic2xhY2tlckBoZWRnaWUudGVjaCIsCiAgInZlcnNpb24iOiAxCn0="}
+    "46": {"version": "6", "sha256": "1yzq1y3lwc4mlqvmhwzc2sf7yqg4ynzmcpgc71lhjs52x27bmb6n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdsb2JhbCBsaWdodCBzdHlsZSBpbnRlZ3JhdGlvbiBmb3IgR05PTUUgc2hlbGwgYW5kIEdUSyBhcHBzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZGlrYXNwIgogIH0sCiAgIm5hbWUiOiAiTHVtaW51cyBEZXNrdG9wIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2Rpa2FzZXR5YXByYXlvZ2kvbHVtaW51cy1wcm9qZWN0IiwKICAidXVpZCI6ICJsdW1pbnVzLWRlc2t0b3BAZGlrYXNwLmdpdGxhYiIsCiAgInZlcnNpb24iOiA2LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDYuMyIKfQ=="}
   }}
 , {"uuid": "mypubip@snirt", "name": "MyPubIP", "pname": "mypubip", "description": "A simple extension that let the user to view and copy the public IPv4 and IPv6 address, by using ipify.org services.", "link": "https://extensions.gnome.org/extension/6765/mypubip/", "shell_version_map": {
     "45": {"version": "6", "sha256": "153q4y47xkxga06qx9lx06nknbc8d3ylr7dkywwx3062gqn6zjfy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGV4dGVuc2lvbiB0aGF0IGxldCB0aGUgdXNlciB0byB2aWV3IGFuZCBjb3B5IHRoZSBwdWJsaWMgSVB2NCBhbmQgSVB2NiBhZGRyZXNzLCBieSB1c2luZyBpcGlmeS5vcmcgc2VydmljZXMuIiwKICAibmFtZSI6ICJNeVB1YklQIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zbmlydC9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXlwdWJpcCIsCiAgInV1aWQiOiAibXlwdWJpcEBzbmlydCIsCiAgInZlcnNpb24iOiA2Cn0="},
@@ -6924,14 +6980,14 @@
     "45": {"version": "7", "sha256": "1rb2h4lnanv5rvxp3kagn6x5zsqd13mifmvravhhzcmzflph6lrl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgZXZlcnl0aGluZyBvbiB0aGUgcmlnaHQgYm94IGV4ZXB0IHRoaXMgYnV0dG9uIGFuZCBTZXR0aW5ncyB3aW5kb3ciLAogICJleHRlbnNpb24taWQiOiAiSGlkZUl0ZW1zIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiSGlkZUl0ZW1zIiwKICAibmFtZSI6ICJIaWRlIEl0ZW1zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhpZGVJdGVtcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmFibGV2aS9IaWRlSXRlbXMiLAogICJ1dWlkIjogIkhpZGVJdGVtc0BmYWJsZXZpLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3Cn0="},
     "46": {"version": "7", "sha256": "1rb2h4lnanv5rvxp3kagn6x5zsqd13mifmvravhhzcmzflph6lrl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgZXZlcnl0aGluZyBvbiB0aGUgcmlnaHQgYm94IGV4ZXB0IHRoaXMgYnV0dG9uIGFuZCBTZXR0aW5ncyB3aW5kb3ciLAogICJleHRlbnNpb24taWQiOiAiSGlkZUl0ZW1zIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiSGlkZUl0ZW1zIiwKICAibmFtZSI6ICJIaWRlIEl0ZW1zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhpZGVJdGVtcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmFibGV2aS9IaWRlSXRlbXMiLAogICJ1dWlkIjogIkhpZGVJdGVtc0BmYWJsZXZpLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3Cn0="}
   }}
-, {"uuid": "signalshell@github.com.howbea", "name": "Signal Shell", "pname": "signal-shell", "description": "Load -dark, -light and -high-contrast stylesheets from ~/.config/gnome-shell", "link": "https://extensions.gnome.org/extension/6774/signal-shell/", "shell_version_map": {
+, {"uuid": "signalshell@github.com.howbea", "name": "Signal Shell", "pname": "signal-shell", "description": "Load shell themes from user directory.", "link": "https://extensions.gnome.org/extension/6774/signal-shell/", "shell_version_map": {
     "40": {"version": "4", "sha256": "1pf770s5zvkr2fzq4jc45rlixbxqnf6gmxfpnd0dfwlssckhlnag", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgLWRhcmssIC1saWdodCBhbmQgLWhpZ2gtY29udHJhc3Qgc3R5bGVzaGVldHMgZnJvbSB+Ly5jb25maWcvZ25vbWUtc2hlbGwiLAogICJuYW1lIjogIlNpZ25hbCBTaGVsbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaWduYWxzaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL1NpZ25hbC1TaGVsbCIsCiAgInV1aWQiOiAic2lnbmFsc2hlbGxAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogNAp9"},
     "41": {"version": "4", "sha256": "1pf770s5zvkr2fzq4jc45rlixbxqnf6gmxfpnd0dfwlssckhlnag", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgLWRhcmssIC1saWdodCBhbmQgLWhpZ2gtY29udHJhc3Qgc3R5bGVzaGVldHMgZnJvbSB+Ly5jb25maWcvZ25vbWUtc2hlbGwiLAogICJuYW1lIjogIlNpZ25hbCBTaGVsbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaWduYWxzaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL1NpZ25hbC1TaGVsbCIsCiAgInV1aWQiOiAic2lnbmFsc2hlbGxAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogNAp9"},
     "42": {"version": "4", "sha256": "1pf770s5zvkr2fzq4jc45rlixbxqnf6gmxfpnd0dfwlssckhlnag", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgLWRhcmssIC1saWdodCBhbmQgLWhpZ2gtY29udHJhc3Qgc3R5bGVzaGVldHMgZnJvbSB+Ly5jb25maWcvZ25vbWUtc2hlbGwiLAogICJuYW1lIjogIlNpZ25hbCBTaGVsbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaWduYWxzaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL1NpZ25hbC1TaGVsbCIsCiAgInV1aWQiOiAic2lnbmFsc2hlbGxAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogNAp9"},
-    "43": {"version": "4", "sha256": "1pf770s5zvkr2fzq4jc45rlixbxqnf6gmxfpnd0dfwlssckhlnag", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgLWRhcmssIC1saWdodCBhbmQgLWhpZ2gtY29udHJhc3Qgc3R5bGVzaGVldHMgZnJvbSB+Ly5jb25maWcvZ25vbWUtc2hlbGwiLAogICJuYW1lIjogIlNpZ25hbCBTaGVsbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaWduYWxzaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL1NpZ25hbC1TaGVsbCIsCiAgInV1aWQiOiAic2lnbmFsc2hlbGxAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogNAp9"},
-    "44": {"version": "4", "sha256": "1pf770s5zvkr2fzq4jc45rlixbxqnf6gmxfpnd0dfwlssckhlnag", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgLWRhcmssIC1saWdodCBhbmQgLWhpZ2gtY29udHJhc3Qgc3R5bGVzaGVldHMgZnJvbSB+Ly5jb25maWcvZ25vbWUtc2hlbGwiLAogICJuYW1lIjogIlNpZ25hbCBTaGVsbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaWduYWxzaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL1NpZ25hbC1TaGVsbCIsCiAgInV1aWQiOiAic2lnbmFsc2hlbGxAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogNAp9"}
+    "43": {"version": "7", "sha256": "18vj96mvq9iwpb7n8jv0z0d7dgb0lfbgxfdy055izi1llkcvpbhr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgc2hlbGwgdGhlbWVzIGZyb20gdXNlciBkaXJlY3RvcnkuIiwKICAibmFtZSI6ICJTaWduYWwgU2hlbGwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpZ25hbHNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvU2lnbmFsLVNoZWxsIiwKICAidXVpZCI6ICJzaWduYWxzaGVsbEBnaXRodWIuY29tLmhvd2JlYSIsCiAgInZlcnNpb24iOiA3Cn0="},
+    "44": {"version": "7", "sha256": "18vj96mvq9iwpb7n8jv0z0d7dgb0lfbgxfdy055izi1llkcvpbhr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgc2hlbGwgdGhlbWVzIGZyb20gdXNlciBkaXJlY3RvcnkuIiwKICAibmFtZSI6ICJTaWduYWwgU2hlbGwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpZ25hbHNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvU2lnbmFsLVNoZWxsIiwKICAidXVpZCI6ICJzaWduYWxzaGVsbEBnaXRodWIuY29tLmhvd2JlYSIsCiAgInZlcnNpb24iOiA3Cn0="}
   }}
-, {"uuid": "crypto-tracker@gongorgojo.com", "name": "Simple Crypto Tracker", "pname": "crypto-trackergongorgojocom", "description": "This is a simple Gnome-Shell extension designed to track cryptocurrency prices.\n\nSupported pairs include:\n- BTC/USD\n- BTC/EUR\n- ETH/USD\n- ETH/EUR  \n\nThe extension refreshes prices every 5 minutes using the CoinGecko API to retrieve data.", "link": "https://extensions.gnome.org/extension/6777/crypto-trackergongorgojocom/", "shell_version_map": {
+, {"uuid": "crypto-tracker@gongorgojo.com", "name": "Simple Crypto Tracker", "pname": "crypto-trackergongorgojocom", "description": "This is a simple Gnome-Shell extension designed to track cryptocurrency prices.\n\nSupported pairs include:\n- BTC/USD\n- BTC/EUR\n- ETH/USD\n- ETH/EUR  \n\nThe extension refreshes prices every 5 minutes using the CoinGecko API to retrieve data.\n\nIf you want to support me you can send some sats here :)\nBitcoin(segwit) address:\nbc1qep0h4nzytrp7mlswjdlez7fleyr9p03k8a5ljd365cch4nhurpaqy9varq", "link": "https://extensions.gnome.org/extension/6777/crypto-trackergongorgojocom/", "shell_version_map": {
     "42": {"version": "3", "sha256": "1hbgfnflra98l31rm0vb6x6h69x6621nyyfdr653kp8f4gi4711z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgYSBzaW1wbGUgR25vbWUtU2hlbGwgZXh0ZW5zaW9uIGRlc2lnbmVkIHRvIHRyYWNrIGNyeXB0b2N1cnJlbmN5IHByaWNlcy5cblxuU3VwcG9ydGVkIHBhaXJzIGluY2x1ZGU6XG4tIEJUQy9VU0Rcbi0gQlRDL0VVUlxuLSBFVEgvVVNEXG4tIEVUSC9FVVIgIFxuXG5UaGUgZXh0ZW5zaW9uIHJlZnJlc2hlcyBwcmljZXMgZXZlcnkgNSBtaW51dGVzIHVzaW5nIHRoZSBDb2luR2Vja28gQVBJIHRvIHJldHJpZXZlIGRhdGEuIiwKICAibmFtZSI6ICJTaW1wbGUgQ3J5cHRvIFRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Hb256YWxvR29yZ29qby9Hbm9tZS1TaGVsbC1DcnlwdG8tVHJhY2tlciIsCiAgInV1aWQiOiAiY3J5cHRvLXRyYWNrZXJAZ29uZ29yZ29qby5jb20iLAogICJ2ZXJzaW9uIjogMwp9"},
     "43": {"version": "3", "sha256": "1hbgfnflra98l31rm0vb6x6h69x6621nyyfdr653kp8f4gi4711z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgYSBzaW1wbGUgR25vbWUtU2hlbGwgZXh0ZW5zaW9uIGRlc2lnbmVkIHRvIHRyYWNrIGNyeXB0b2N1cnJlbmN5IHByaWNlcy5cblxuU3VwcG9ydGVkIHBhaXJzIGluY2x1ZGU6XG4tIEJUQy9VU0Rcbi0gQlRDL0VVUlxuLSBFVEgvVVNEXG4tIEVUSC9FVVIgIFxuXG5UaGUgZXh0ZW5zaW9uIHJlZnJlc2hlcyBwcmljZXMgZXZlcnkgNSBtaW51dGVzIHVzaW5nIHRoZSBDb2luR2Vja28gQVBJIHRvIHJldHJpZXZlIGRhdGEuIiwKICAibmFtZSI6ICJTaW1wbGUgQ3J5cHRvIFRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Hb256YWxvR29yZ29qby9Hbm9tZS1TaGVsbC1DcnlwdG8tVHJhY2tlciIsCiAgInV1aWQiOiAiY3J5cHRvLXRyYWNrZXJAZ29uZ29yZ29qby5jb20iLAogICJ2ZXJzaW9uIjogMwp9"},
     "44": {"version": "3", "sha256": "1hbgfnflra98l31rm0vb6x6h69x6621nyyfdr653kp8f4gi4711z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgYSBzaW1wbGUgR25vbWUtU2hlbGwgZXh0ZW5zaW9uIGRlc2lnbmVkIHRvIHRyYWNrIGNyeXB0b2N1cnJlbmN5IHByaWNlcy5cblxuU3VwcG9ydGVkIHBhaXJzIGluY2x1ZGU6XG4tIEJUQy9VU0Rcbi0gQlRDL0VVUlxuLSBFVEgvVVNEXG4tIEVUSC9FVVIgIFxuXG5UaGUgZXh0ZW5zaW9uIHJlZnJlc2hlcyBwcmljZXMgZXZlcnkgNSBtaW51dGVzIHVzaW5nIHRoZSBDb2luR2Vja28gQVBJIHRvIHJldHJpZXZlIGRhdGEuIiwKICAibmFtZSI6ICJTaW1wbGUgQ3J5cHRvIFRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Hb256YWxvR29yZ29qby9Hbm9tZS1TaGVsbC1DcnlwdG8tVHJhY2tlciIsCiAgInV1aWQiOiAiY3J5cHRvLXRyYWNrZXJAZ29uZ29yZ29qby5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}
@@ -6950,9 +7006,9 @@
     "45": {"version": "2", "sha256": "14vi9cd9qm6f6z1krhh6s4l8z0121aayf1jmkgaj6i52i7559cmw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldpZ2dsZSBpcyBhIEdOT01FIFNoZWxsIGV4dGVuc2lvbiB0aGF0IG1hZ25pZmllcyB0aGUgY3Vyc29yIHdoZW4gdGhlIG1vdXNlIGlzIG1vdmVkIHJhcGlkbHkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpZ2dsZSIsCiAgIm5hbWUiOiAiV2lnZ2xlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpZ2dsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZWNodGlmcy93aWdnbGUiLAogICJ1dWlkIjogIndpZ2dsZUBtZWNodGlmcyIsCiAgInZlcnNpb24iOiAyCn0="},
     "46": {"version": "3", "sha256": "14gwkx6z9v7ca13qdy1jad64bahqhs7dkrl1c7v4r49qvhkqg5ka", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldpZ2dsZSBpcyBhIEdOT01FIFNoZWxsIGV4dGVuc2lvbiB0aGF0IG1hZ25pZmllcyB0aGUgY3Vyc29yIHdoZW4gdGhlIG1vdXNlIGlzIG1vdmVkIHJhcGlkbHkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpZ2dsZSIsCiAgIm5hbWUiOiAiV2lnZ2xlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpZ2dsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZWNodGlmcy93aWdnbGUiLAogICJ1dWlkIjogIndpZ2dsZUBtZWNodGlmcyIsCiAgInZlcnNpb24iOiAzCn0="}
   }}
-, {"uuid": "favorite-apps@venovar.tr", "name": "Favorite Apps Menu", "pname": "show-favorite-apps", "description": "This extension adds a favorite applications menu to top panel.\n\n\nGnome Shell 46:\nDrag drop to reorder favorites.\nMiddle click menu icon to open Gnome apps menu.\nRight click menu icon to open Gnome activities window.", "link": "https://extensions.gnome.org/extension/6787/show-favorite-apps/", "shell_version_map": {
+, {"uuid": "favorite-apps@venovar.tr", "name": "Favorite Apps Menu", "pname": "show-favorite-apps", "description": "This extension adds a favorite applications menu to top panel", "link": "https://extensions.gnome.org/extension/6787/show-favorite-apps/", "shell_version_map": {
     "45": {"version": "7", "sha256": "1jcqmijfzfqhvrkv5agf3hq05kri1nfh1zri0278nmwmk1b9xfhh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZHMgYSBmYXZvcml0ZSBhcHBsaWNhdGlvbnMgbWVudSBwYW5lbCB0byB0b3AgYmFyIiwKICAibmFtZSI6ICJGYXZvcml0ZSBBcHBzIE1lbnUgb24gVG9wIEJhciBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZW5mYXZhcHAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnIiwKICAidXVpZCI6ICJmYXZvcml0ZS1hcHBzQHZlbm92YXIudHIiLAogICJ2ZXJzaW9uIjogNwp9"},
-    "46": {"version": "8", "sha256": "1jfnrjd3jihaj0jnggm23a5rny6i8p97w9cccwm7x75xy1mvc231", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZHMgYSBmYXZvcml0ZSBhcHBsaWNhdGlvbnMgbWVudSB0byB0b3AgcGFuZWwiLAogICJuYW1lIjogIkZhdm9yaXRlIEFwcHMgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZW5mYXZhcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZyIsCiAgInV1aWQiOiAiZmF2b3JpdGUtYXBwc0B2ZW5vdmFyLnRyIiwKICAidmVyc2lvbiI6IDgKfQ=="}
+    "46": {"version": "9", "sha256": "1m71hxk2fisrpv2bvmkzrpmbsyaynvhksqi6k6gngvycpvdmz85k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZHMgYSBmYXZvcml0ZSBhcHBsaWNhdGlvbnMgbWVudSB0byB0b3AgcGFuZWwiLAogICJuYW1lIjogIkZhdm9yaXRlIEFwcHMgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZW5mYXZhcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZyIsCiAgInV1aWQiOiAiZmF2b3JpdGUtYXBwc0B2ZW5vdmFyLnRyIiwKICAidmVyc2lvbiI6IDkKfQ=="}
   }}
 , {"uuid": "totp@dkosmari.github.com", "name": "TOTP", "pname": "totp", "description": "Generate Time-based One-Time Passwords (TOTP aka OTP) for websites that use Two-Factor Authentication (2FA) like Google, Facebook, Discord, Amazon, Steam, etc.", "link": "https://extensions.gnome.org/extension/6793/totp/", "shell_version_map": {
     "42": {"version": "36", "sha256": "16isyi8r64nbzddy9pfhzkmwklvk0x9rxhiyry7arc2gvd7c09zh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdlbmVyYXRlIFRpbWUtYmFzZWQgT25lLVRpbWUgUGFzc3dvcmRzIChUT1RQIGFrYSBPVFApIGZvciB3ZWJzaXRlcyB0aGF0IHVzZSBUd28tRmFjdG9yIEF1dGhlbnRpY2F0aW9uICgyRkEpIGxpa2UgR29vZ2xlLCBGYWNlYm9vaywgRGlzY29yZCwgQW1hem9uLCBTdGVhbSwgZXRjLiIsCiAgImdldHRleHQtZG9tYWluIjogInRvdHBAZGtvc21hcmkuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiVE9UUCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50b3RwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGtvc21hcmkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRvdHAiLAogICJ1dWlkIjogInRvdHBAZGtvc21hcmkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzNgp9"},
@@ -6998,7 +7054,7 @@
     "43": {"version": "17", "sha256": "1qnjvlp1z96xg1whzjlmnkvhxzmn49zpv8zk4w2kghcr8xav2dzz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgQWRkLW9uIGlzIHVzaW5nIGdlbWluaSBhaSAxLjAgcHJvIG1vZGVsIGZvciBjaGF0dGluZy4gXG4gVGhpcyBleHRlbnNpb25zIHVzaW5nIHRoaXNpcGNhbi5jeW91IGZvciBsb2NhdGlvbiBkZXRlY3Rpb24gYW5kIGdvb2dsZWFwaXMuY29tIGZvciBnZW1pbmkgbW9kZWwgXG4gYWxzbyBpZiB5b3UgYXJlIHBsYW5pbmcgdG8gdXNlIFZlcnRleCBhcGkgeW91IHNob3VsZCBpbnN0YWxsIGBnY2xvdWRgIGFzIGRlcGVuZGVuY3kgKG9wdGlvbmFsKSBcbiBOT1RFOiBUaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBHb29nbGUgYW5kIEdlbWluaS4iLAogICJuYW1lIjogIkdlbWluaSBBSSBDaGF0Qm90IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdlbWluaWFpdWJ1bnR1IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3d3YXJkYXd3L2dub21lLWdlbWluaS1haSIsCiAgInV1aWQiOiAiZ2VtaW5pYWl1YnVudHVAYXJkYS5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
     "44": {"version": "17", "sha256": "1qnjvlp1z96xg1whzjlmnkvhxzmn49zpv8zk4w2kghcr8xav2dzz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgQWRkLW9uIGlzIHVzaW5nIGdlbWluaSBhaSAxLjAgcHJvIG1vZGVsIGZvciBjaGF0dGluZy4gXG4gVGhpcyBleHRlbnNpb25zIHVzaW5nIHRoaXNpcGNhbi5jeW91IGZvciBsb2NhdGlvbiBkZXRlY3Rpb24gYW5kIGdvb2dsZWFwaXMuY29tIGZvciBnZW1pbmkgbW9kZWwgXG4gYWxzbyBpZiB5b3UgYXJlIHBsYW5pbmcgdG8gdXNlIFZlcnRleCBhcGkgeW91IHNob3VsZCBpbnN0YWxsIGBnY2xvdWRgIGFzIGRlcGVuZGVuY3kgKG9wdGlvbmFsKSBcbiBOT1RFOiBUaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBHb29nbGUgYW5kIEdlbWluaS4iLAogICJuYW1lIjogIkdlbWluaSBBSSBDaGF0Qm90IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdlbWluaWFpdWJ1bnR1IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3d3YXJkYXd3L2dub21lLWdlbWluaS1haSIsCiAgInV1aWQiOiAiZ2VtaW5pYWl1YnVudHVAYXJkYS5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
     "45": {"version": "13", "sha256": "09n18gb9wxwabjy37qiaanv719simfir1bfyjyz1gf08zng9p0km", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgQWRkLW9uIGlzIHVzaW5nIGdlbWluaSAxLjAgcHJvIG1vZGVsIGZvciBjaGF0dGluZy4gXG4gVGhpcyBleHRlbnNpb25zIHVzaW5nIHRoaXNpcGNhbi5jeW91IGZvciBsb2NhdGlvbiBkZXRlY3Rpb24gYW5kIGdvb2dsZWFwaXMuY29tIGZvciBnZW1pbmkgbW9kZWwgXG4gYWxzbyBpZiB5b3UgYXJlIHBsYW5pbmcgdG8gdXNlIFZlcnRleCBhcGkgeW91IHNob3VsZCBpbnN0YWxsIGBnY2xvdWRgIGFzIGRlcGVuZGVuY3kgKG9wdGlvbmFsKSBcbiBOT1RFOiBUaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBHb29nbGUgYW5kIEdlbWluaS4iLAogICJuYW1lIjogIkdlbWluaSBBSSBmb3IgR25vbWUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ2VtaW5pYWl1YnVudHUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd3dhcmRhd3cvZ25vbWUtZ2VtaW5pLWFpIiwKICAidXVpZCI6ICJnZW1pbmlhaXVidW50dUBhcmRhLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"},
-    "46": {"version": "12", "sha256": "033g213z068qakd26ymwx3vzmjzp9c8q4crs9h7i08qhs6l4xys5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgQWRkLW9uIGlzIHVzaW5nIGdlbWluaSAxLjAgcHJvIG1vZGVsIGZvciBjaGF0dGluZy4gXG4gVGhpcyBleHRlbnNpb25zIHVzaW5nIHRoaXNpcGNhbi5jeW91IGZvciBsb2NhdGlvbiBkZXRlY3Rpb24gYW5kIGdvb2dsZWFwaXMuY29tIGZvciBnZW1pbmkgbW9kZWwgXG4gYWxzbyBpZiB5b3UgYXJlIHBsYW5pbmcgdG8gdXNlIFZlcnRleCBhcGkgeW91IHNob3VsZCBpbnN0YWxsIGBnY2xvdWRgIGFzIGRlcGVuZGVuY3kgKG9wdGlvbmFsKSBcbiBOT1RFOiBUaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBHb29nbGUgYW5kIEdlbWluaS4iLAogICJuYW1lIjogIkdlbWluaSBBSSBmb3IgR25vbWUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ2VtaW5pYWl1YnVudHUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd3dhcmRhd3cvZ25vbWUtZ2VtaW5pLWFpIiwKICAidXVpZCI6ICJnZW1pbmlhaXVidW50dUBhcmRhLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}
+    "46": {"version": "18", "sha256": "0b4y8s80rbrfnkpfkxdf1x6pk1mqy84knpfh7jsph0agg84wcj50", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgQWRkLW9uIGlzIHVzaW5nIGdlbWluaSBhaSAxLjAgcHJvIG1vZGVsIGZvciBjaGF0dGluZy4gXG4gVGhpcyBleHRlbnNpb25zIHVzaW5nIHRoaXNpcGNhbi5jeW91IGZvciBsb2NhdGlvbiBkZXRlY3Rpb24gYW5kIGdvb2dsZWFwaXMuY29tIGZvciBnZW1pbmkgbW9kZWwgXG4gYWxzbyBpZiB5b3UgYXJlIHBsYW5pbmcgdG8gdXNlIFZlcnRleCBhcGkgeW91IHNob3VsZCBpbnN0YWxsIGBnY2xvdWRgIGFzIGRlcGVuZGVuY3kgKG9wdGlvbmFsKSBcbiBOT1RFOiBUaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBHb29nbGUgYW5kIEdlbWluaS4iLAogICJuYW1lIjogIkdlbWluaSBBSSBDaGF0Qm90IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdlbWluaWFpdWJ1bnR1IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3d3YXJkYXd3L2dub21lLWdlbWluaS1haSIsCiAgInV1aWQiOiAiZ2VtaW5pYWl1YnVudHVAYXJkYS5jb20iLAogICJ2ZXJzaW9uIjogMTgKfQ=="}
   }}
 , {"uuid": "tailscale-connect@itsib.github.com", "name": "Tailscale Connect", "pname": "tailscale-connect", "description": "Graphical interface for the Tailscale desktop client. Simple, faster, configurable.", "link": "https://extensions.gnome.org/extension/6843/tailscale-connect/", "shell_version_map": {
     "42": {"version": "1", "sha256": "057gcg5vjc2k6905mr2b2dcdzk1q9mpjp8p2yinxz37xg981n7gf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdyYXBoaWNhbCBpbnRlcmZhY2UgZm9yIHRoZSBUYWlsc2NhbGUgZGVza3RvcCBjbGllbnQuIFNpbXBsZSwgZmFzdGVyLCBjb25maWd1cmFibGUuIiwKICAiZG9uYXRpb24iOiB7CiAgICAiZ2l0aHViIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pdHNpYiIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0YWlsc2NhbGUtY29ubmVjdCIsCiAgIm5hbWUiOiAiVGFpbHNjYWxlIENvbm5lY3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFpbHNjYWxlLWNvbm5lY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2l0c2liL3RhaWxzY2FsZS1jb25uZWN0IiwKICAidXVpZCI6ICJ0YWlsc2NhbGUtY29ubmVjdEBpdHNpYi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="},
@@ -7016,13 +7072,16 @@
     "43": {"version": "4", "sha256": "1j6hip0gck8p4f101fx2snpxggsvvs10cb11n1v6lixv98bysz2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBsZWFzYW50LXNvdW5kaW5nLCB0YWxrYXRpdmUgYW5ub3VuY2VyIG9mIHN5c3RlbSBvciB1c2VyIG5vdGlmaWNhdGlvbnMuIEdpdmUgYSByZWFsIHZvaWNlIHRvIEdOT01FLiIsCiAgIm5hbWUiOiAiVm9sdWJsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1F1YW50aXVzQmVuaWdudXMvdm9sdWJsZSIsCiAgInV1aWQiOiAidm9sdWJsZUBxdWFudGl1c2JlbmlnbnVzLmxvY2FsIiwKICAidmVyc2lvbiI6IDQKfQ=="},
     "44": {"version": "4", "sha256": "1j6hip0gck8p4f101fx2snpxggsvvs10cb11n1v6lixv98bysz2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBsZWFzYW50LXNvdW5kaW5nLCB0YWxrYXRpdmUgYW5ub3VuY2VyIG9mIHN5c3RlbSBvciB1c2VyIG5vdGlmaWNhdGlvbnMuIEdpdmUgYSByZWFsIHZvaWNlIHRvIEdOT01FLiIsCiAgIm5hbWUiOiAiVm9sdWJsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1F1YW50aXVzQmVuaWdudXMvdm9sdWJsZSIsCiAgInV1aWQiOiAidm9sdWJsZUBxdWFudGl1c2JlbmlnbnVzLmxvY2FsIiwKICAidmVyc2lvbiI6IDQKfQ=="}
   }}
-, {"uuid": "chronos@time-tracker.com", "name": "Chronos Time Tracker", "pname": "chronos-time-tracker", "description": "Time tracker tool", "link": "https://extensions.gnome.org/extension/6856/chronos-time-tracker/", "shell_version_map": {
-    "45": {"version": "6", "sha256": "0004lrh6irwibm7sgqmg8cz6lrv5j24m1s7rbz5pm2bk91c7jfyb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbWUgdHJhY2tlciB0b29sIiwKICAibmFtZSI6ICJDaHJvbm9zIFRpbWUgVHJhY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jaHJvbm9zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tLzB2dmxhbmQvY2hyb25vcyIsCiAgInV1aWQiOiAiY2hyb25vc0B0aW1lLXRyYWNrZXIuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}
+, {"uuid": "chronos@time-tracker.com", "name": "Chronos Time Tracker", "pname": "chronos-time-tracker", "description": "Time tracker tool\nMange and track your time. Features:\n- tracking time\n- display customisation\n- log to file pause/resume\n- optional pause of tracking on screen lock (hibernate/shutdown)\n- reset to particular time value", "link": "https://extensions.gnome.org/extension/6856/chronos-time-tracker/", "shell_version_map": {
+    "45": {"version": "8", "sha256": "0p6kkmlvpdpckn93ghw5jmdiv9pivb478gh0ff2psn0glshmw69x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbWUgdHJhY2tlciB0b29sXG5NYW5nZSBhbmQgdHJhY2sgeW91ciB0aW1lLiBGZWF0dXJlczpcbi0gdHJhY2tpbmcgdGltZVxuLSBkaXNwbGF5IGN1c3RvbWlzYXRpb25cbi0gbG9nIHRvIGZpbGUgcGF1c2UvcmVzdW1lXG4tIG9wdGlvbmFsIHBhdXNlIG9mIHRyYWNraW5nIG9uIHNjcmVlbiBsb2NrIChoaWJlcm5hdGUvc2h1dGRvd24pXG4tIHJlc2V0IHRvIHBhcnRpY3VsYXIgdGltZSB2YWx1ZSIsCiAgIm5hbWUiOiAiQ2hyb25vcyBUaW1lIFRyYWNrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY2hyb25vcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMHZ2bGFuZC9jaHJvbm9zIiwKICAidXVpZCI6ICJjaHJvbm9zQHRpbWUtdHJhY2tlci5jb20iLAogICJ2ZXJzaW9uIjogOAp9"},
+    "46": {"version": "8", "sha256": "0p6kkmlvpdpckn93ghw5jmdiv9pivb478gh0ff2psn0glshmw69x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbWUgdHJhY2tlciB0b29sXG5NYW5nZSBhbmQgdHJhY2sgeW91ciB0aW1lLiBGZWF0dXJlczpcbi0gdHJhY2tpbmcgdGltZVxuLSBkaXNwbGF5IGN1c3RvbWlzYXRpb25cbi0gbG9nIHRvIGZpbGUgcGF1c2UvcmVzdW1lXG4tIG9wdGlvbmFsIHBhdXNlIG9mIHRyYWNraW5nIG9uIHNjcmVlbiBsb2NrIChoaWJlcm5hdGUvc2h1dGRvd24pXG4tIHJlc2V0IHRvIHBhcnRpY3VsYXIgdGltZSB2YWx1ZSIsCiAgIm5hbWUiOiAiQ2hyb25vcyBUaW1lIFRyYWNrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY2hyb25vcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMHZ2bGFuZC9jaHJvbm9zIiwKICAidXVpZCI6ICJjaHJvbm9zQHRpbWUtdHJhY2tlci5jb20iLAogICJ2ZXJzaW9uIjogOAp9"}
   }}
 , {"uuid": "screenshort-cut@pauloimon", "name": "Screenshort-cut", "pname": "screenshort-cut", "description": "A simple shortcut to take screenshots directly on your top bar!", "link": "https://extensions.gnome.org/extension/6868/screenshort-cut/", "shell_version_map": {
-    "42": {"version": "1", "sha256": "0axs01gjw5nwzgq7k3dlxfzazkq76ym9iaazqpsyn39dhdn1z75p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIHNob3J0Y3V0IHRvIHRha2Ugc2NyZWVuc2hvdHMgZGlyZWN0bHkgb24geW91ciB0b3AgYmFyISIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvcnQtY3V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGF1bG9pbW9uL3NjcmVlbnNob3J0LWN1dC1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInNjcmVlbnNob3J0LWN1dEBwYXVsb2ltb24iLAogICJ2ZXJzaW9uIjogMQp9"},
-    "43": {"version": "1", "sha256": "0axs01gjw5nwzgq7k3dlxfzazkq76ym9iaazqpsyn39dhdn1z75p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIHNob3J0Y3V0IHRvIHRha2Ugc2NyZWVuc2hvdHMgZGlyZWN0bHkgb24geW91ciB0b3AgYmFyISIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvcnQtY3V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGF1bG9pbW9uL3NjcmVlbnNob3J0LWN1dC1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInNjcmVlbnNob3J0LWN1dEBwYXVsb2ltb24iLAogICJ2ZXJzaW9uIjogMQp9"},
-    "44": {"version": "1", "sha256": "0axs01gjw5nwzgq7k3dlxfzazkq76ym9iaazqpsyn39dhdn1z75p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIHNob3J0Y3V0IHRvIHRha2Ugc2NyZWVuc2hvdHMgZGlyZWN0bHkgb24geW91ciB0b3AgYmFyISIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvcnQtY3V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGF1bG9pbW9uL3NjcmVlbnNob3J0LWN1dC1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInNjcmVlbnNob3J0LWN1dEBwYXVsb2ltb24iLAogICJ2ZXJzaW9uIjogMQp9"}
+    "42": {"version": "2", "sha256": "0jz2knz5rxmx7dhxbrfgwagx6p47bs0wlr9s0ml32j27d7p61kax", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIHNob3J0Y3V0IHRvIHRha2Ugc2NyZWVuc2hvdHMgZGlyZWN0bHkgb24geW91ciB0b3AgYmFyISIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvcnQtY3V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGF1bG9pbW9uL2dub21lLXNjcmVlbnNob3J0LWN1dC1leHRlbnNpb24iLAogICJ1dWlkIjogInNjcmVlbnNob3J0LWN1dEBwYXVsb2ltb24iLAogICJ2ZXJzaW9uIjogMgp9"},
+    "43": {"version": "2", "sha256": "0jz2knz5rxmx7dhxbrfgwagx6p47bs0wlr9s0ml32j27d7p61kax", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIHNob3J0Y3V0IHRvIHRha2Ugc2NyZWVuc2hvdHMgZGlyZWN0bHkgb24geW91ciB0b3AgYmFyISIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvcnQtY3V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGF1bG9pbW9uL2dub21lLXNjcmVlbnNob3J0LWN1dC1leHRlbnNpb24iLAogICJ1dWlkIjogInNjcmVlbnNob3J0LWN1dEBwYXVsb2ltb24iLAogICJ2ZXJzaW9uIjogMgp9"},
+    "44": {"version": "2", "sha256": "0jz2knz5rxmx7dhxbrfgwagx6p47bs0wlr9s0ml32j27d7p61kax", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIHNob3J0Y3V0IHRvIHRha2Ugc2NyZWVuc2hvdHMgZGlyZWN0bHkgb24geW91ciB0b3AgYmFyISIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvcnQtY3V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGF1bG9pbW9uL2dub21lLXNjcmVlbnNob3J0LWN1dC1leHRlbnNpb24iLAogICJ1dWlkIjogInNjcmVlbnNob3J0LWN1dEBwYXVsb2ltb24iLAogICJ2ZXJzaW9uIjogMgp9"},
+    "45": {"version": "3", "sha256": "1567484xc4dmihk49ms5d74pvfkmq1f7x2c84q23lp3crpj22l5d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIHNob3J0Y3V0IHRvIHRha2Ugc2NyZWVuc2hvdHMgZGlyZWN0bHkgb24geW91ciB0b3AgYmFyISIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvcnQtY3V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXVsb2ltb24vZ25vbWUtc2NyZWVuc2hvcnQtY3V0LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic2NyZWVuc2hvcnQtY3V0QHBhdWxvaW1vbiIsCiAgInZlcnNpb24iOiAzCn0="},
+    "46": {"version": "3", "sha256": "1567484xc4dmihk49ms5d74pvfkmq1f7x2c84q23lp3crpj22l5d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIHNob3J0Y3V0IHRvIHRha2Ugc2NyZWVuc2hvdHMgZGlyZWN0bHkgb24geW91ciB0b3AgYmFyISIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvcnQtY3V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXVsb2ltb24vZ25vbWUtc2NyZWVuc2hvcnQtY3V0LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic2NyZWVuc2hvcnQtY3V0QHBhdWxvaW1vbiIsCiAgInZlcnNpb24iOiAzCn0="}
   }}
 , {"uuid": "streamcontroller@core447.com", "name": "StreamController Integration", "pname": "streamcontroller-integration", "description": "Allow automatic page switching in StreamController by adding a dbus interface to fetch info about the current window.", "link": "https://extensions.gnome.org/extension/6871/streamcontroller-integration/", "shell_version_map": {
     "45": {"version": "2", "sha256": "1jiyxya2nfvi647xracbfxm2il508whvrz8fhzmph7pzh86by6rw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IGF1dG9tYXRpYyBwYWdlIHN3aXRjaGluZyBpbiBTdHJlYW1Db250cm9sbGVyIGJ5IGFkZGluZyBhIGRidXMgaW50ZXJmYWNlIHRvIGZldGNoIGluZm8gYWJvdXQgdGhlIGN1cnJlbnQgd2luZG93LiIsCiAgIm5hbWUiOiAiU3RyZWFtQ29udHJvbGxlciBJbnRlZ3JhdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU3RyZWFtQ29udHJvbGxlci9zdHJlYW1jb250cm9sbGVyLWNvcmU0NDcuY29tIiwKICAidXVpZCI6ICJzdHJlYW1jb250cm9sbGVyQGNvcmU0NDcuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
@@ -7053,8 +7112,8 @@
     "46": {"version": "5", "sha256": "0zg6g9yrhmabz74gdsh1qw7p69garmxn22pi6w8zqhggh6i9m4zy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJwb2thIiwKICAiZGVzY3JpcHRpb24iOiAiRWFzaWx5IGVuYWJsZSBvciBkaXNhYmxlIHlvdXIgc2Vjb25kYXJ5IG1vbml0b3Igd2l0aCBhIHNpbmdsZSBjbGljay4gVGhpcyBleHRlbnNpb24gYWRkcyBhIHRvZ2dsZSBidXR0b24gdG8gdGhlIHN5c3RlbSBtZW51LCBhbGxvd2luZyB5b3UgdG8gcXVpY2tseSBzd2l0Y2ggeW91ciBzZWNvbmQgc2NyZWVuIG9uIG9yIG9mZiB3aXRob3V0IG5lZWRpbmcgdG8gbmF2aWdhdGUgdGhyb3VnaCBzZXR0aW5ncy4gSXQgYXV0b21hdGljYWxseSBkZXRlY3RzIHlvdXIgY29ubmVjdGVkIG1vbml0b3JzIGFuZCB0aGVpciBjb25maWd1cmF0aW9ucywgbWFraW5nIGl0IHNpbXBsZSB0byBtYW5hZ2UgeW91ciBtdWx0aS1tb25pdG9yIHNldHVwLiIsCiAgImxpY2Vuc2UiOiAiR1BMLTMuMCIsCiAgIm5hbWUiOiAiRHVhbCBNb25pdG9yIFRvZ2dsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcG9rYS1JVC9nbm9tZS1kdWFsLW1vbml0b3ItdG9nZ2xlIiwKICAidXVpZCI6ICJkdWFsLW1vbml0b3ItdG9nZ2xlQHBva2EiLAogICJ2ZXJzaW9uIjogNQp9"}
   }}
 , {"uuid": "gbinaryclock@isopolito", "name": "gBinaryClock", "pname": "gbinaryclock", "description": "Adds a binary clock to the gnome top bar", "link": "https://extensions.gnome.org/extension/6901/gbinaryclock/", "shell_version_map": {
-    "45": {"version": "3", "sha256": "1g4qw6cvwxh90y2rdv37vl868yb4766fc7k8frwwrgp9k7mx62jk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBiaW5hcnkgY2xvY2sgdG8gdGhlIGdub21lIHRvcCBiYXIiLAogICJuYW1lIjogImdCaW5hcnlDbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSXNvcG9saXRvL2dCaW5hcnlDbG9jayIsCiAgInV1aWQiOiAiZ2JpbmFyeWNsb2NrQGlzb3BvbGl0byIsCiAgInZlcnNpb24iOiAzCn0="},
-    "46": {"version": "3", "sha256": "1g4qw6cvwxh90y2rdv37vl868yb4766fc7k8frwwrgp9k7mx62jk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBiaW5hcnkgY2xvY2sgdG8gdGhlIGdub21lIHRvcCBiYXIiLAogICJuYW1lIjogImdCaW5hcnlDbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSXNvcG9saXRvL2dCaW5hcnlDbG9jayIsCiAgInV1aWQiOiAiZ2JpbmFyeWNsb2NrQGlzb3BvbGl0byIsCiAgInZlcnNpb24iOiAzCn0="}
+    "45": {"version": "4", "sha256": "0j4rhb1qvisw146qf97k6z19m76ks1nb6av4kqann88kk78hinaf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBiaW5hcnkgY2xvY2sgdG8gdGhlIGdub21lIHRvcCBiYXIiLAogICJuYW1lIjogImdCaW5hcnlDbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSXNvcG9saXRvL2dCaW5hcnlDbG9jayIsCiAgInV1aWQiOiAiZ2JpbmFyeWNsb2NrQGlzb3BvbGl0byIsCiAgInZlcnNpb24iOiA0Cn0="},
+    "46": {"version": "4", "sha256": "0j4rhb1qvisw146qf97k6z19m76ks1nb6av4kqann88kk78hinaf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBiaW5hcnkgY2xvY2sgdG8gdGhlIGdub21lIHRvcCBiYXIiLAogICJuYW1lIjogImdCaW5hcnlDbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSXNvcG9saXRvL2dCaW5hcnlDbG9jayIsCiAgInV1aWQiOiAiZ2JpbmFyeWNsb2NrQGlzb3BvbGl0byIsCiAgInZlcnNpb24iOiA0Cn0="}
   }}
 , {"uuid": "mock-tray@kramo.page", "name": "Mock Tray", "pname": "mock-tray", "description": "Creates an invisible system tray (TopIcons) for apps (like MEGAsync) that won't run properly without one.", "link": "https://extensions.gnome.org/extension/6913/mock-tray/", "shell_version_map": {
     "45": {"version": "2", "sha256": "0vp951zha0d6glda9f7b7yp8cradssj477lymmspx19p0iwz7zcg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgYW4gaW52aXNpYmxlIHN5c3RlbSB0cmF5IChUb3BJY29ucykgZm9yIGFwcHMgKGxpa2UgTUVHQXN5bmMpIHRoYXQgd29uJ3QgcnVuIHByb3Blcmx5IHdpdGhvdXQgb25lLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAia3JhLW1vIgogIH0sCiAgIm5hbWUiOiAiTW9jayBUcmF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rcmEtbW8vbW9jay10cmF5LyIsCiAgInV1aWQiOiAibW9jay10cmF5QGtyYW1vLnBhZ2UiLAogICJ2ZXJzaW9uIjogMgp9"},
@@ -7064,10 +7123,50 @@
     "45": {"version": "1", "sha256": "1xzj9nj12zzc34qdskrpimlcrq37nmhh7wrwvcv05x2s8slr9rjj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBlbmFibGUgcG9ydCBmb3J3YXJkaW5nIHZpYSBTU0ggIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicG9ydGZvcndhcmRpbmctZXh0ZW5zaW9uQFNKQkVSVFJBTkQuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiUG9ydCBGb3J3YXJkaW5nIEV4dGVuc2lvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wb3J0Zm9yd2FyZGluZy1leHRlbnNpb25AU0pCRVJUUkFORC5naXRodWIuY29tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TSkJFUlRSQU5EL3BvcnRmb3J3YXJkaW5nLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAicG9ydGZvcndhcmRpbmctZXh0ZW5zaW9uQFNKQkVSVFJBTkQuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="},
     "46": {"version": "1", "sha256": "1xzj9nj12zzc34qdskrpimlcrq37nmhh7wrwvcv05x2s8slr9rjj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBlbmFibGUgcG9ydCBmb3J3YXJkaW5nIHZpYSBTU0ggIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicG9ydGZvcndhcmRpbmctZXh0ZW5zaW9uQFNKQkVSVFJBTkQuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiUG9ydCBGb3J3YXJkaW5nIEV4dGVuc2lvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wb3J0Zm9yd2FyZGluZy1leHRlbnNpb25AU0pCRVJUUkFORC5naXRodWIuY29tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TSkJFUlRSQU5EL3BvcnRmb3J3YXJkaW5nLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAicG9ydGZvcndhcmRpbmctZXh0ZW5zaW9uQFNKQkVSVFJBTkQuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}
   }}
-, {"uuid": "gravatar@dsheeler.net", "name": "Gravatar", "pname": "gravatar", "description": "Synchronize GNOME Shell user icon with Gravatar. This extension is not affiliated, funded, or in any way associated with Automattic and Gravatar.", "link": "https://extensions.gnome.org/extension/6922/gravatar/", "shell_version_map": {
-    "46": {"version": "2", "sha256": "1hxv64cbh3jqxirzpshj35nq4hz1pam86q1n5592yw9h9kfdal6b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmNocm9uaXplIEdOT01FIFNoZWxsIHVzZXIgaWNvbiB3aXRoIEdyYXZhdGFyLiBUaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBBdXRvbWF0dGljIGFuZCBHcmF2YXRhci4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImRzaGVlbGVyIiwKICAgICJsaWJlcmFwYXkiOiAiZHNoZWVsZXIiLAogICAgInBheXBhbCI6ICJEYW5pZWxTaGVlbGVyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMtZ3JhdmF0YXIiLAogICJuYW1lIjogIkdyYXZhdGFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdyYXZhdGFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RzaGVlbGVyL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtZ3JhdmF0YXIiLAogICJ1dWlkIjogImdyYXZhdGFyQGRzaGVlbGVyLm5ldCIsCiAgInZlcnNpb24iOiAyCn0="}
+, {"uuid": "gravatar@dsheeler.net", "name": "Gravatar", "pname": "gravatar", "description": "Synchronize GNOME Shell user icon with Gravatar.\nThis extension is not affiliated, funded, or in any way associated with Automattic and Gravatar.", "link": "https://extensions.gnome.org/extension/6922/gravatar/", "shell_version_map": {
+    "46": {"version": "3", "sha256": "1jyirqxwynblvjwh6zbj8j57hf07c1qkkmz8gs0pkzmbxqy1qrjf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmNocm9uaXplIEdOT01FIFNoZWxsIHVzZXIgaWNvbiB3aXRoIEdyYXZhdGFyLlxuVGhpcyBleHRlbnNpb24gaXMgbm90IGFmZmlsaWF0ZWQsIGZ1bmRlZCwgb3IgaW4gYW55IHdheSBhc3NvY2lhdGVkIHdpdGggQXV0b21hdHRpYyBhbmQgR3JhdmF0YXIuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJkc2hlZWxlciIsCiAgICAibGliZXJhcGF5IjogImRzaGVlbGVyIiwKICAgICJwYXlwYWwiOiAiRGFuaWVsU2hlZWxlciIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWdyYXZhdGFyIiwKICAibmFtZSI6ICJHcmF2YXRhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ncmF2YXRhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kc2hlZWxlci9nbm9tZS1zaGVsbC1leHRlbnNpb25zLWdyYXZhdGFyIiwKICAidXVpZCI6ICJncmF2YXRhckBkc2hlZWxlci5uZXQiLAogICJ2ZXJzaW9uIjogMwp9"}
+  }}
+, {"uuid": "wechsel@transistor.local", "name": "Wechsel", "pname": "wechsel", "description": "Organise your computer by replacing user folders with symlinks to project folders.\nThis extension is the user interface for the wechsel cli tool.\n\nWechsel is a simple tool that helps you by creating individual Download, Desktop, ... folders for each project.\nIt replaces the original folders with symlinks to the folders of the current active project.\nLike this the random files you download, will be placed in the Download folder they belong to.\n\nThis Extension depends on the wechsel cli tool, which you can find here: https://github.com/JustSomeRandomUsername/wechsel", "link": "https://extensions.gnome.org/extension/6925/wechsel/", "shell_version_map": {
+    "44": {"version": "5", "sha256": "1212kva3sj9cwiq6nligk62r1am200413lhp2szw6ydj8mj8mnfi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9yZ2FuaXNlIHlvdXIgY29tcHV0ZXIgYnkgcmVwbGFjaW5nIHVzZXIgZm9sZGVycyB3aXRoIHN5bWxpbmtzIHRvIHByb2plY3QgZm9sZGVycy5cblRoaXMgZXh0ZW5zaW9uIGlzIHRoZSB1c2VyIGludGVyZmFjZSBmb3IgdGhlIHdlY2hzZWwgY2xpIHRvb2wuXG5cbldlY2hzZWwgaXMgYSBzaW1wbGUgdG9vbCB0aGF0IGhlbHBzIHlvdSBieSBjcmVhdGluZyBpbmRpdmlkdWFsIERvd25sb2FkLCBEZXNrdG9wLCAuLi4gZm9sZGVycyBmb3IgZWFjaCBwcm9qZWN0LlxuSXQgcmVwbGFjZXMgdGhlIG9yaWdpbmFsIGZvbGRlcnMgd2l0aCBzeW1saW5rcyB0byB0aGUgZm9sZGVycyBvZiB0aGUgY3VycmVudCBhY3RpdmUgcHJvamVjdC5cbkxpa2UgdGhpcyB0aGUgcmFuZG9tIGZpbGVzIHlvdSBkb3dubG9hZCwgd2lsbCBiZSBwbGFjZWQgaW4gdGhlIERvd25sb2FkIGZvbGRlciB0aGV5IGJlbG9uZyB0by5cblxuVGhpcyBFeHRlbnNpb24gZGVwZW5kcyBvbiB0aGUgd2VjaHNlbCBjbGkgdG9vbCwgd2hpY2ggeW91IGNhbiBmaW5kIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9KdXN0U29tZVJhbmRvbVVzZXJuYW1lL3dlY2hzZWwiLAogICJuYW1lIjogIldlY2hzZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2VjaHNlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiLAogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0p1c3RTb21lUmFuZG9tVXNlcm5hbWUvd2VjaHNlbC1leHRlbnNpb24iLAogICJ1dWlkIjogIndlY2hzZWxAdHJhbnNpc3Rvci5sb2NhbCIsCiAgInZlcnNpb24iOiA1Cn0="},
+    "45": {"version": "5", "sha256": "1212kva3sj9cwiq6nligk62r1am200413lhp2szw6ydj8mj8mnfi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9yZ2FuaXNlIHlvdXIgY29tcHV0ZXIgYnkgcmVwbGFjaW5nIHVzZXIgZm9sZGVycyB3aXRoIHN5bWxpbmtzIHRvIHByb2plY3QgZm9sZGVycy5cblRoaXMgZXh0ZW5zaW9uIGlzIHRoZSB1c2VyIGludGVyZmFjZSBmb3IgdGhlIHdlY2hzZWwgY2xpIHRvb2wuXG5cbldlY2hzZWwgaXMgYSBzaW1wbGUgdG9vbCB0aGF0IGhlbHBzIHlvdSBieSBjcmVhdGluZyBpbmRpdmlkdWFsIERvd25sb2FkLCBEZXNrdG9wLCAuLi4gZm9sZGVycyBmb3IgZWFjaCBwcm9qZWN0LlxuSXQgcmVwbGFjZXMgdGhlIG9yaWdpbmFsIGZvbGRlcnMgd2l0aCBzeW1saW5rcyB0byB0aGUgZm9sZGVycyBvZiB0aGUgY3VycmVudCBhY3RpdmUgcHJvamVjdC5cbkxpa2UgdGhpcyB0aGUgcmFuZG9tIGZpbGVzIHlvdSBkb3dubG9hZCwgd2lsbCBiZSBwbGFjZWQgaW4gdGhlIERvd25sb2FkIGZvbGRlciB0aGV5IGJlbG9uZyB0by5cblxuVGhpcyBFeHRlbnNpb24gZGVwZW5kcyBvbiB0aGUgd2VjaHNlbCBjbGkgdG9vbCwgd2hpY2ggeW91IGNhbiBmaW5kIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9KdXN0U29tZVJhbmRvbVVzZXJuYW1lL3dlY2hzZWwiLAogICJuYW1lIjogIldlY2hzZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2VjaHNlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiLAogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0p1c3RTb21lUmFuZG9tVXNlcm5hbWUvd2VjaHNlbC1leHRlbnNpb24iLAogICJ1dWlkIjogIndlY2hzZWxAdHJhbnNpc3Rvci5sb2NhbCIsCiAgInZlcnNpb24iOiA1Cn0="},
+    "46": {"version": "5", "sha256": "1212kva3sj9cwiq6nligk62r1am200413lhp2szw6ydj8mj8mnfi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9yZ2FuaXNlIHlvdXIgY29tcHV0ZXIgYnkgcmVwbGFjaW5nIHVzZXIgZm9sZGVycyB3aXRoIHN5bWxpbmtzIHRvIHByb2plY3QgZm9sZGVycy5cblRoaXMgZXh0ZW5zaW9uIGlzIHRoZSB1c2VyIGludGVyZmFjZSBmb3IgdGhlIHdlY2hzZWwgY2xpIHRvb2wuXG5cbldlY2hzZWwgaXMgYSBzaW1wbGUgdG9vbCB0aGF0IGhlbHBzIHlvdSBieSBjcmVhdGluZyBpbmRpdmlkdWFsIERvd25sb2FkLCBEZXNrdG9wLCAuLi4gZm9sZGVycyBmb3IgZWFjaCBwcm9qZWN0LlxuSXQgcmVwbGFjZXMgdGhlIG9yaWdpbmFsIGZvbGRlcnMgd2l0aCBzeW1saW5rcyB0byB0aGUgZm9sZGVycyBvZiB0aGUgY3VycmVudCBhY3RpdmUgcHJvamVjdC5cbkxpa2UgdGhpcyB0aGUgcmFuZG9tIGZpbGVzIHlvdSBkb3dubG9hZCwgd2lsbCBiZSBwbGFjZWQgaW4gdGhlIERvd25sb2FkIGZvbGRlciB0aGV5IGJlbG9uZyB0by5cblxuVGhpcyBFeHRlbnNpb24gZGVwZW5kcyBvbiB0aGUgd2VjaHNlbCBjbGkgdG9vbCwgd2hpY2ggeW91IGNhbiBmaW5kIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9KdXN0U29tZVJhbmRvbVVzZXJuYW1lL3dlY2hzZWwiLAogICJuYW1lIjogIldlY2hzZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2VjaHNlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiLAogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0p1c3RTb21lUmFuZG9tVXNlcm5hbWUvd2VjaHNlbC1leHRlbnNpb24iLAogICJ1dWlkIjogIndlY2hzZWxAdHJhbnNpc3Rvci5sb2NhbCIsCiAgInZlcnNpb24iOiA1Cn0="}
   }}
 , {"uuid": "boostvolume@shaquib.dev", "name": "Volume Booster", "pname": "boost-volume", "description": "Boosts volume above limits", "link": "https://extensions.gnome.org/extension/6928/boost-volume/", "shell_version_map": {
     "46": {"version": "6", "sha256": "1z4baifmz6q3h1vkm2196z08nh8z3pp2w8rxcgy7xbsmbppr9i23", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJvb3N0cyB2b2x1bWUgYWJvdmUgbGltaXRzIiwKICAibmFtZSI6ICJCb29zdCBWb2x1bWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2hhcXVpYmltZGFkL2dub21lX2V4dF92b2x1bWVfYm9vc3QiLAogICJ1dWlkIjogImJvb3N0dm9sdW1lQHNoYXF1aWIuZGV2IiwKICAidmVyc2lvbiI6IDYKfQ=="}
   }}
+, {"uuid": "media-progress@krypion17", "name": "Media Progress", "pname": "media-progress", "description": "Progress Bar for the GNOME Media Notification", "link": "https://extensions.gnome.org/extension/6940/media-progress/", "shell_version_map": {
+    "46": {"version": "9", "sha256": "1ni8qqchg0z49nl5yhsvc2z4lmlwpg8sb4fs6x4jv4888jaidfcm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb2dyZXNzIEJhciBmb3IgdGhlIEdOT01FIE1lZGlhIE5vdGlmaWNhdGlvbiIsCiAgIm5hbWUiOiAiTWVkaWEgUHJvZ3Jlc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vS3J5cGlvbjE3L21lZGlhLXByb2dyZXNzIiwKICAidXVpZCI6ICJtZWRpYS1wcm9ncmVzc0BrcnlwaW9uMTciLAogICJ2ZXJzaW9uIjogOQp9"}
+  }}
+, {"uuid": "autohide-battery-percentage@rukins.github.io", "name": "Autohide Battery Percentage", "pname": "autohide-battery-percentage", "description": "GNOME Shell extension to hide the battery percentage in the top panel, if the computer is plugged in or power saving is disabled", "link": "https://extensions.gnome.org/extension/6943/autohide-battery-percentage/", "shell_version_map": {
+    "45": {"version": "6", "sha256": "1xx6a5jkfpibcayyjg8zyyriw7ah8sz7kwmh0gfmbmjrhd0f53p4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIGV4dGVuc2lvbiB0byBoaWRlIHRoZSBiYXR0ZXJ5IHBlcmNlbnRhZ2UgaW4gdGhlIHRvcCBwYW5lbCwgaWYgdGhlIGNvbXB1dGVyIGlzIHBsdWdnZWQgaW4gb3IgcG93ZXIgc2F2aW5nIGlzIGRpc2FibGVkIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJydWtpbnMiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXV0b2hpZGUtYmF0dGVyeS1wZXJjZW50YWdlQHJ1a2lucy5naXRodWIuaW8iLAogICJuYW1lIjogIkF1dG9oaWRlIEJhdHRlcnkgUGVyY2VudGFnZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hdXRvaGlkZS1iYXR0ZXJ5LXBlcmNlbnRhZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3J1a2lucy9hdXRvaGlkZS1iYXR0ZXJ5LXBlcmNlbnRhZ2UiLAogICJ1dWlkIjogImF1dG9oaWRlLWJhdHRlcnktcGVyY2VudGFnZUBydWtpbnMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="},
+    "46": {"version": "6", "sha256": "1xx6a5jkfpibcayyjg8zyyriw7ah8sz7kwmh0gfmbmjrhd0f53p4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIGV4dGVuc2lvbiB0byBoaWRlIHRoZSBiYXR0ZXJ5IHBlcmNlbnRhZ2UgaW4gdGhlIHRvcCBwYW5lbCwgaWYgdGhlIGNvbXB1dGVyIGlzIHBsdWdnZWQgaW4gb3IgcG93ZXIgc2F2aW5nIGlzIGRpc2FibGVkIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJydWtpbnMiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXV0b2hpZGUtYmF0dGVyeS1wZXJjZW50YWdlQHJ1a2lucy5naXRodWIuaW8iLAogICJuYW1lIjogIkF1dG9oaWRlIEJhdHRlcnkgUGVyY2VudGFnZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hdXRvaGlkZS1iYXR0ZXJ5LXBlcmNlbnRhZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3J1a2lucy9hdXRvaGlkZS1iYXR0ZXJ5LXBlcmNlbnRhZ2UiLAogICJ1dWlkIjogImF1dG9oaWRlLWJhdHRlcnktcGVyY2VudGFnZUBydWtpbnMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}
+  }}
+, {"uuid": "moveclock@kuvaus.org", "name": "moveclock", "pname": "moveclock", "description": "Move the clock to right side of the panel", "link": "https://extensions.gnome.org/extension/6949/moveclock/", "shell_version_map": {
+    "46": {"version": "5", "sha256": "0lmvnrms8kg0cir6wkaj7sicn5ms9lx9mqh4z7pbh8gfr135n5v9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIGNsb2NrIHRvIHJpZ2h0IHNpZGUgb2YgdGhlIHBhbmVsIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibW92ZWNsb2NrIiwKICAibmFtZSI6ICJtb3ZlY2xvY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubW92ZWNsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2t1dmF1cy9tb3ZlY2xvY2siLAogICJ1dWlkIjogIm1vdmVjbG9ja0BrdXZhdXMub3JnIiwKICAidmVyc2lvbiI6IDUKfQ=="}
+  }}
+, {"uuid": "rezmon@azz.lol", "name": "RezMon", "pname": "rezmon", "description": "Shows info about CPU, RAM and NET on Top Bar", "link": "https://extensions.gnome.org/extension/6952/rezmon/", "shell_version_map": {
+    "46": {"version": "4", "sha256": "1d2ikwkxh4v9nswidxr6vv5xp9kaf8grcwgrcw6s1p2g574rk7hh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGluZm8gYWJvdXQgQ1BVLCBSQU0gYW5kIE5FVCBvbiBUb3AgQmFyIiwKICAibmFtZSI6ICJSZXpNb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXp5d2F5L1Jlek1vbiIsCiAgInV1aWQiOiAicmV6bW9uQGF6ei5sb2wiLAogICJ2ZXJzaW9uIjogNAp9"}
+  }}
+, {"uuid": "drive-activity-indicator@marcosdalvarez.org", "name": "Drive Activity Indicator", "pname": "drive-activity-indicator", "description": "Visualize the activity of storage drives (disk activity LED simulator).", "link": "https://extensions.gnome.org/extension/6955/drive-activity-indicator/", "shell_version_map": {
+    "46": {"version": "2", "sha256": "1p2csc5jdk37qwiqb2ylkqzz3fmbmw9vqik9yv109yqk0zpzbz2y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpc3VhbGl6ZSB0aGUgYWN0aXZpdHkgb2Ygc3RvcmFnZSBkcml2ZXMgKGRpc2sgYWN0aXZpdHkgTEVEIHNpbXVsYXRvcikuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZHJpdmUtYWN0aXZpdHktaW5kaWNhdG9yQG1hcmNvc2RhbHZhcmV6Lm9yZyIsCiAgIm5hbWUiOiAiRHJpdmUgQWN0aXZpdHkgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRyaXZlLWFjdGl2aXR5LWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9tYXJjb3NkYWx2YXJlei9kcml2ZS1hY3Rpdml0eS1pbmRpY2F0b3ItZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJkcml2ZS1hY3Rpdml0eS1pbmRpY2F0b3JAbWFyY29zZGFsdmFyZXoub3JnIiwKICAidmVyc2lvbiI6IDIKfQ=="}
+  }}
+, {"uuid": "usd-rub-er-gse@c0mr8.github.com", "name": "USD to RUB viewer", "pname": "usd-to-rub-viewer", "description": "That simple extension shows USD to Russian RUB exchange rate on the left center part of Gnome top panel. Exchange rate updates every 30 seconds. Compatible with Gnome 45-46. This extension is using economia.awesomeapi.com.br. It is a fork of usd-try.", "link": "https://extensions.gnome.org/extension/6958/usd-to-rub-viewer/", "shell_version_map": {
+    "45": {"version": "4", "sha256": "1c5jdfyz2m7vn6h82qbdbc6bmi86yzxcdqa1rq55kh124cjx88kq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoYXQgc2ltcGxlIGV4dGVuc2lvbiBzaG93cyBVU0QgdG8gUnVzc2lhbiBSVUIgZXhjaGFuZ2UgcmF0ZSBvbiB0aGUgbGVmdCBjZW50ZXIgcGFydCBvZiBHbm9tZSB0b3AgcGFuZWwuIEV4Y2hhbmdlIHJhdGUgdXBkYXRlcyBldmVyeSAzMCBzZWNvbmRzLiBDb21wYXRpYmxlIHdpdGggR25vbWUgNDUtNDYuIFRoaXMgZXh0ZW5zaW9uIGlzIHVzaW5nIGVjb25vbWlhLmF3ZXNvbWVhcGkuY29tLmJyLiBJdCBpcyBhIGZvcmsgb2YgdXNkLXRyeS4iLAogICJuYW1lIjogIlVTRCB0byBSVUIgdmlld2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb21yOC9VU0QtUlVCLUVSLUdTRSIsCiAgInV1aWQiOiAidXNkLXJ1Yi1lci1nc2VAYzBtcjguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="},
+    "46": {"version": "4", "sha256": "1c5jdfyz2m7vn6h82qbdbc6bmi86yzxcdqa1rq55kh124cjx88kq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoYXQgc2ltcGxlIGV4dGVuc2lvbiBzaG93cyBVU0QgdG8gUnVzc2lhbiBSVUIgZXhjaGFuZ2UgcmF0ZSBvbiB0aGUgbGVmdCBjZW50ZXIgcGFydCBvZiBHbm9tZSB0b3AgcGFuZWwuIEV4Y2hhbmdlIHJhdGUgdXBkYXRlcyBldmVyeSAzMCBzZWNvbmRzLiBDb21wYXRpYmxlIHdpdGggR25vbWUgNDUtNDYuIFRoaXMgZXh0ZW5zaW9uIGlzIHVzaW5nIGVjb25vbWlhLmF3ZXNvbWVhcGkuY29tLmJyLiBJdCBpcyBhIGZvcmsgb2YgdXNkLXRyeS4iLAogICJuYW1lIjogIlVTRCB0byBSVUIgdmlld2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb21yOC9VU0QtUlVCLUVSLUdTRSIsCiAgInV1aWQiOiAidXNkLXJ1Yi1lci1nc2VAYzBtcjguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}
+  }}
+, {"uuid": "tomato-c-to-panel@thomas-philippot.dev", "name": "tomato.C to panel", "pname": "tomatoc-to-panel", "description": "Add tomato.c pomodoro timer to the gnome panel, requires tomato.c : https://github.com/gabrielzschmitz/Tomato.C", "link": "https://extensions.gnome.org/extension/6961/tomatoc-to-panel/", "shell_version_map": {
+    "46": {"version": "3", "sha256": "1m6b84pskdk216kagqnx3wxjlvnx3qpw274qqvkrzk0pmbk2sxsa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB0b21hdG8uYyBwb21vZG9ybyB0aW1lciB0byB0aGUgZ25vbWUgcGFuZWwsIHJlcXVpcmVzIHRvbWF0by5jIDogaHR0cHM6Ly9naXRodWIuY29tL2dhYnJpZWx6c2NobWl0ei9Ub21hdG8uQyIsCiAgIm5hbWUiOiAidG9tYXRvLkMgdG8gcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVGhvbWFzLVBoaWxpcHBvdC90b21hdG8uYy10by1wYW5lbCIsCiAgInV1aWQiOiAidG9tYXRvLWMtdG8tcGFuZWxAdGhvbWFzLXBoaWxpcHBvdC5kZXYiLAogICJ2ZXJzaW9uIjogMwp9"}
+  }}
+, {"uuid": "removeclock@sudfish.com", "name": "Remove Clock", "pname": "remove-clock", "description": "Remove or hide clock from top panel. For GNOME Shell 45 and later.", "link": "https://extensions.gnome.org/extension/6967/remove-clock/", "shell_version_map": {
+    "45": {"version": "1", "sha256": "1i7ig9jpcdd7nmk5l7zvk7y5bx7yk1m7679x0awzbr84yxchyrly", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBvciBoaWRlIGNsb2NrIGZyb20gdG9wIHBhbmVsLiIsCiAgIm5hbWUiOiAiUmVtb3ZlIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdWRmaXNoL0hpZGUtQ2xvY2stRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJyZW1vdmVjbG9ja0BzdWRmaXNoLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="},
+    "46": {"version": "1", "sha256": "1i7ig9jpcdd7nmk5l7zvk7y5bx7yk1m7679x0awzbr84yxchyrly", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBvciBoaWRlIGNsb2NrIGZyb20gdG9wIHBhbmVsLiIsCiAgIm5hbWUiOiAiUmVtb3ZlIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdWRmaXNoL0hpZGUtQ2xvY2stRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJyZW1vdmVjbG9ja0BzdWRmaXNoLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}
+  }}
+, {"uuid": "remove-world-clocks@codemacabre.com", "name": "Remove World Clocks", "pname": "remove-world-clocks", "description": "GNOME shell extension to remove world clocks from the date menu", "link": "https://extensions.gnome.org/extension/6973/remove-world-clocks/", "shell_version_map": {
+    "45": {"version": "1", "sha256": "1xn0n8mckv2nr37m4rr4ml5spaq5iq7adq2vzszksc4flcblmgbg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byByZW1vdmUgd29ybGQgY2xvY2tzIGZyb20gdGhlIGRhdGUgbWVudSIsCiAgIm5hbWUiOiAiUmVtb3ZlIFdvcmxkIENsb2NrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29kZW1hY2FicmUvcmVtb3ZlLXdvcmxkLWNsb2NrcyIsCiAgInV1aWQiOiAicmVtb3ZlLXdvcmxkLWNsb2Nrc0Bjb2RlbWFjYWJyZS5jb20iLAogICJ2ZXJzaW9uIjogMQp9"},
+    "46": {"version": "1", "sha256": "1xn0n8mckv2nr37m4rr4ml5spaq5iq7adq2vzszksc4flcblmgbg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byByZW1vdmUgd29ybGQgY2xvY2tzIGZyb20gdGhlIGRhdGUgbWVudSIsCiAgIm5hbWUiOiAiUmVtb3ZlIFdvcmxkIENsb2NrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29kZW1hY2FicmUvcmVtb3ZlLXdvcmxkLWNsb2NrcyIsCiAgInV1aWQiOiAicmVtb3ZlLXdvcmxkLWNsb2Nrc0Bjb2RlbWFjYWJyZS5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}
+  }}
+, {"uuid": "vscode-search-provider@mrmarble.github.com", "name": "VSCode Search Provider", "pname": "vscode-search-provider", "description": "Search for your vscode workspaces easily. This extension is not affiliated, funded, or in any way associated with Microsoft and vscode software.", "link": "https://extensions.gnome.org/extension/6976/vscode-search-provider/", "shell_version_map": {
+    "45": {"version": "2", "sha256": "1h0879mi7ljs9mhcs0f0rgndph0xpyzkzrs1nlr7yd098dw38d6n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBmb3IgeW91ciB2c2NvZGUgd29ya3NwYWNlcyBlYXNpbHkuIFRoaXMgZXh0ZW5zaW9uIGlzIG5vdCBhZmZpbGlhdGVkLCBmdW5kZWQsIG9yIGluIGFueSB3YXkgYXNzb2NpYXRlZCB3aXRoIE1pY3Jvc29mdCBhbmQgdnNjb2RlIHNvZnR3YXJlLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAibXJtYXJibGUiCiAgfSwKICAibmFtZSI6ICJWU0NvZGUgU2VhcmNoIFByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tcm1hcmJsZS92c2NvZGUtc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJ2c2NvZGUtc2VhcmNoLXByb3ZpZGVyQG1ybWFyYmxlLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMgp9"},
+    "46": {"version": "2", "sha256": "1h0879mi7ljs9mhcs0f0rgndph0xpyzkzrs1nlr7yd098dw38d6n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBmb3IgeW91ciB2c2NvZGUgd29ya3NwYWNlcyBlYXNpbHkuIFRoaXMgZXh0ZW5zaW9uIGlzIG5vdCBhZmZpbGlhdGVkLCBmdW5kZWQsIG9yIGluIGFueSB3YXkgYXNzb2NpYXRlZCB3aXRoIE1pY3Jvc29mdCBhbmQgdnNjb2RlIHNvZnR3YXJlLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAibXJtYXJibGUiCiAgfSwKICAibmFtZSI6ICJWU0NvZGUgU2VhcmNoIFByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tcm1hcmJsZS92c2NvZGUtc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJ2c2NvZGUtc2VhcmNoLXByb3ZpZGVyQG1ybWFyYmxlLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}
+  }}
 ]
diff --git a/pkgs/desktops/gnome/games/aisleriot/default.nix b/pkgs/desktops/gnome/games/aisleriot/default.nix
index dfba82308d1ac..0263cfe97d345 100644
--- a/pkgs/desktops/gnome/games/aisleriot/default.nix
+++ b/pkgs/desktops/gnome/games/aisleriot/default.nix
@@ -16,16 +16,16 @@
 , yelp-tools
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "aisleriot";
-  version = "3.22.32";
+  version = "3.22.33";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "GNOME";
     repo = "aisleriot";
-    rev = version;
-    sha256 = "sha256-+U/EsKTZjWa05DbILWAxqIpMcZ0DP0l4LIYxM2wCFdM=";
+    rev = finalAttrs.version;
+    sha256 = "sha256-HylhDBgkAJrrs/r42v3aDNR8mBJaqnJHyY7T3QW1eWg=";
   };
 
   nativeBuildInputs = [
@@ -70,4 +70,4 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
   };
-}
+})
diff --git a/pkgs/desktops/gnome/misc/geary/default.nix b/pkgs/desktops/gnome/misc/geary/default.nix
index e2cbaaa6da89b..461402dda8b3d 100644
--- a/pkgs/desktops/gnome/misc/geary/default.nix
+++ b/pkgs/desktops/gnome/misc/geary/default.nix
@@ -47,11 +47,11 @@
 
 stdenv.mkDerivation rec {
   pname = "geary";
-  version = "44.1";
+  version = "46.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "fRHLbhxQThCMLckaoiVqRATcq+fRyHPY1glOLfM1onc=";
+    sha256 = "r60VEwKBfd8Ji15BbnrH8tXupWejuAu5C9PGKv0TuaE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lomiri/applications/lomiri/default.nix b/pkgs/desktops/lomiri/applications/lomiri/default.nix
index f9eead00dafb9..35fdd1e466178 100644
--- a/pkgs/desktops/lomiri/applications/lomiri/default.nix
+++ b/pkgs/desktops/lomiri/applications/lomiri/default.nix
@@ -207,7 +207,7 @@ stdenv.mkDerivation (finalAttrs: {
     lomiri-settings-components
     lomiri-thumbnailer
     qtmultimedia
-    telephony-service
+    # telephony-service # currently broken: https://github.com/NixOS/nixpkgs/pull/314043
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/desktops/lomiri/services/lomiri-indicator-network/default.nix b/pkgs/desktops/lomiri/services/lomiri-indicator-network/default.nix
index fc552881f4696..6566ec4601d39 100644
--- a/pkgs/desktops/lomiri/services/lomiri-indicator-network/default.nix
+++ b/pkgs/desktops/lomiri/services/lomiri-indicator-network/default.nix
@@ -101,7 +101,8 @@ stdenv.mkDerivation (finalAttrs: {
     (lib.cmakeBool "BUILD_DOC" true) # lacks QML docs, needs qdoc: https://github.com/NixOS/nixpkgs/pull/245379
   ];
 
-  doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
+  # Currently broken: https://github.com/NixOS/nixpkgs/pull/314043
+  doCheck = false;
 
   postInstall = ''
     substituteInPlace $out/etc/dbus-1/services/com.lomiri.connectivity1.service \
diff --git a/pkgs/desktops/lomiri/services/telephony-service/default.nix b/pkgs/desktops/lomiri/services/telephony-service/default.nix
index 975f96bce9923..f07d8b2baa998 100644
--- a/pkgs/desktops/lomiri/services/telephony-service/default.nix
+++ b/pkgs/desktops/lomiri/services/telephony-service/default.nix
@@ -197,5 +197,7 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.gpl3Only;
     maintainers = teams.lomiri.members;
     platforms = platforms.linux;
+    # Completely broken until https://github.com/NixOS/nixpkgs/pull/314043 is merged
+    broken = true;
   };
 })
diff --git a/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix b/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
index dda264380dbc8..12857b8946a7a 100644
--- a/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-calculator";
-  version = "2.0.3";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "calculator";
     rev = version;
-    sha256 = "sha256-VPxCW2lVA/nS2aJsjLgkuEM9wnAzyEr864XY8tfLQAY=";
+    sha256 = "sha256-QEs83hSv9Kupj2p/OTnuPZsC8tdm+IqgpeObBVrPRas=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
index f2946f4992028..dbc6b6d060c80 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
@@ -11,13 +11,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "elementary-gtk-theme";
-  version = "7.3.0";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "stylesheet";
     rev = version;
-    sha256 = "sha256-KrpeDQH43n7seeSPVYKETxy1g0JuUowZerjgktLQg/4=";
+    sha256 = "sha256-O0Zu/ZxVANfWKcCkOF7jeJa3oG1ut56px7jeFK7LdKA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
index ff93bb62379d9..8f875620141f4 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
@@ -3,7 +3,6 @@
 , fetchFromGitHub
 , nix-update-script
 , meson
-, python3
 , ninja
 , hicolor-icon-theme
 , gtk3
@@ -13,13 +12,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "elementary-icon-theme";
-  version = "7.3.1";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "icons";
     rev = version;
-    sha256 = "sha256-3qvbpY1O8E3sX+66yBoZXEOeWQrgyNu2rOT6PPbli58=";
+    sha256 = "sha256-EPmQgE33+HBI78SlCBV3WlyLCP6AggvqsQa7gZuOMRM=";
   };
 
   nativeBuildInputs = [
@@ -27,7 +26,6 @@ stdenvNoCC.mkDerivation rec {
     librsvg
     meson
     ninja
-    python3
     xcursorgen
   ];
 
@@ -42,11 +40,6 @@ stdenvNoCC.mkDerivation rec {
     "-Dpalettes=false" # Don't install gimp and inkscape palette files
   ];
 
-  postPatch = ''
-    chmod +x meson/symlink.py
-    patchShebangs meson/symlink.py
-  '';
-
   postFixup = "gtk-update-icon-cache $out/share/icons/elementary";
 
   passthru = {
diff --git a/pkgs/desktops/pantheon/default.nix b/pkgs/desktops/pantheon/default.nix
index d7bd9c926edea..58a4ba65f1acf 100644
--- a/pkgs/desktops/pantheon/default.nix
+++ b/pkgs/desktops/pantheon/default.nix
@@ -221,10 +221,8 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   ### THIRD-PARTY
 
-  # Put packages that ONLY works with Pantheon in pkgs/desktops/pantheon/third-party,
-  # specifically third party switchboard plugins and wingpanel indicators.
-  # Please call these packages in pkgs/top-level/all-packages.nix instead of this file.
-  # https://github.com/NixOS/nixpkgs/issues/115222#issuecomment-906868654
+  # As suggested in https://github.com/NixOS/nixpkgs/issues/115222#issuecomment-906868654
+  # please avoid putting third-party packages in the `pantheon` scope.
 
 }) // lib.optionalAttrs config.allowAliases {
 
diff --git a/pkgs/desktops/pantheon/desktop/gala/default.nix b/pkgs/desktops/pantheon/desktop/gala/default.nix
index ec3541b7c83b7..f1c9fd1b103d2 100644
--- a/pkgs/desktops/pantheon/desktop/gala/default.nix
+++ b/pkgs/desktops/pantheon/desktop/gala/default.nix
@@ -47,6 +47,13 @@ stdenv.mkDerivation rec {
       url = "https://github.com/elementary/gala/commit/351722c5a4fded46992b725e03dc94971c5bd31f.patch";
       hash = "sha256-RvdVHQjCUNmLrROBZTF+m1vE2XudtQZjk/YW28P/vKc=";
     })
+
+    # InternalUtils: Fix window placement
+    # https://github.com/elementary/gala/pull/1913
+    (fetchpatch {
+      url = "https://github.com/elementary/gala/commit/2d30bee678788c5a853721d16b5b39c997b23c02.patch";
+      hash = "sha256-vhGFaLpJZFx1VTfjY1BahQiOUvBPi0dBSXLGhYc7r8A=";
+    })
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/third-party/pantheon-tweaks/fix-paths.patch b/pkgs/desktops/pantheon/third-party/pantheon-tweaks/fix-paths.patch
deleted file mode 100644
index b2e0e0a7b4c8b..0000000000000
--- a/pkgs/desktops/pantheon/third-party/pantheon-tweaks/fix-paths.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/Settings/ThemeSettings.vala b/src/Settings/ThemeSettings.vala
-index 589121b..8e9c81e 100644
---- a/src/Settings/ThemeSettings.vala
-+++ b/src/Settings/ThemeSettings.vala
-@@ -29,7 +29,7 @@ public class PantheonTweaks.ThemeSettings {
-         var themes = new Gee.ArrayList<string> ();
- 
-         string[] dirs = {
--            "/usr/share/" + path + "/",
-+            "/run/current-system/sw/share/" + path + "/",
-             Environment.get_home_dir () + "/." + path + "/",
-             Environment.get_home_dir () + "/.local/share/" + path + "/"};
- 
diff --git a/pkgs/development/ada-modules/gprbuild/default.nix b/pkgs/development/ada-modules/gprbuild/default.nix
index 00eaa72097673..f1cf28f00af3b 100644
--- a/pkgs/development/ada-modules/gprbuild/default.nix
+++ b/pkgs/development/ada-modules/gprbuild/default.nix
@@ -1,7 +1,5 @@
 { lib
 , stdenv
-, fetchFromGitHub
-, fetchpatch
 , gprbuild-boot
 , which
 , gnat
diff --git a/pkgs/development/beam-modules/elixir-ls/default.nix b/pkgs/development/beam-modules/elixir-ls/default.nix
index f918916a3a67d..144ffb55e95ea 100644
--- a/pkgs/development/beam-modules/elixir-ls/default.nix
+++ b/pkgs/development/beam-modules/elixir-ls/default.nix
@@ -4,13 +4,12 @@
 
 let
   pname = "elixir-ls";
-  version = "0.21.1";
+  version = "0.21.3";
   src = fetchFromGitHub {
     owner = "elixir-lsp";
     repo = "elixir-ls";
     rev = "v${version}";
-    hash = "sha256-OBLSj1nqv/p1FYg7DapCnr4EU2EW51MQM+YnZqDkcB4=";
-    fetchSubmodules = true;
+    hash = "sha256-IzHvJQ7UdGXFeSyNYKeHlDuY/o1y/E4fM+lG3t9J2HM=";
   };
 in
 mixRelease {
diff --git a/pkgs/development/compilers/adoptopenjdk-bin/jdk15-darwin.nix b/pkgs/development/compilers/adoptopenjdk-bin/jdk15-darwin.nix
index b9d706653065b..369822fa1ef74 100644
--- a/pkgs/development/compilers/adoptopenjdk-bin/jdk15-darwin.nix
+++ b/pkgs/development/compilers/adoptopenjdk-bin/jdk15-darwin.nix
@@ -4,8 +4,8 @@ let
   sources = lib.importJSON ./sources.json;
 in
 {
-  jdk-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk15.mac.jdk.hotspot; };
-  jre-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk15.mac.jre.hotspot; };
-  jdk-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk15.mac.jdk.openj9; };
-  jre-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk15.mac.jre.openj9; };
+  jdk-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk15.mac.jdk.hotspot; knownVulnerabilities = [ "Support ended" ]; };
+  jre-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk15.mac.jre.hotspot; knownVulnerabilities = [ "Support ended" ]; };
+  jdk-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk15.mac.jdk.openj9; knownVulnerabilities = [ "Support ended" ]; };
+  jre-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk15.mac.jre.openj9; knownVulnerabilities = [ "Support ended" ]; };
 }
diff --git a/pkgs/development/compilers/adoptopenjdk-bin/jdk15-linux.nix b/pkgs/development/compilers/adoptopenjdk-bin/jdk15-linux.nix
index 7c6d1d36021e4..52641c690bf03 100644
--- a/pkgs/development/compilers/adoptopenjdk-bin/jdk15-linux.nix
+++ b/pkgs/development/compilers/adoptopenjdk-bin/jdk15-linux.nix
@@ -5,8 +5,8 @@ let
   sources = lib.importJSON ./sources.json;
 in
 {
-  jdk-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk15.${variant}.jdk.hotspot; };
-  jre-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk15.${variant}.jre.hotspot; };
-  jdk-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk15.${variant}.jdk.openj9; };
-  jre-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk15.${variant}.jre.openj9; };
+  jdk-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk15.${variant}.jdk.hotspot; knownVulnerabilities = [ "Support ended" ]; };
+  jre-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk15.${variant}.jre.hotspot; knownVulnerabilities = [ "Support ended" ]; };
+  jdk-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk15.${variant}.jdk.openj9; knownVulnerabilities = [ "Support ended" ]; };
+  jre-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk15.${variant}.jre.openj9; knownVulnerabilities = [ "Support ended" ]; };
 }
diff --git a/pkgs/development/compilers/adoptopenjdk-bin/jdk16-darwin.nix b/pkgs/development/compilers/adoptopenjdk-bin/jdk16-darwin.nix
index a7473710d14ba..454e92834bb0a 100644
--- a/pkgs/development/compilers/adoptopenjdk-bin/jdk16-darwin.nix
+++ b/pkgs/development/compilers/adoptopenjdk-bin/jdk16-darwin.nix
@@ -4,8 +4,8 @@ let
   sources = lib.importJSON ./sources.json;
 in
 {
-  jdk-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk16.mac.jdk.hotspot; };
-  jre-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk16.mac.jre.hotspot; };
-  jdk-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk16.mac.jdk.openj9; };
-  jre-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk16.mac.jre.openj9; };
+  jdk-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk16.mac.jdk.hotspot; knownVulnerabilities = [ "Support ended" ]; };
+  jre-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk16.mac.jre.hotspot; knownVulnerabilities = [ "Support ended" ]; };
+  jdk-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk16.mac.jdk.openj9; knownVulnerabilities = [ "Support ended" ]; };
+  jre-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk16.mac.jre.openj9; knownVulnerabilities = [ "Support ended" ]; };
 }
diff --git a/pkgs/development/compilers/adoptopenjdk-bin/jdk16-linux.nix b/pkgs/development/compilers/adoptopenjdk-bin/jdk16-linux.nix
index 3d803901d3414..3a50ad669c2e7 100644
--- a/pkgs/development/compilers/adoptopenjdk-bin/jdk16-linux.nix
+++ b/pkgs/development/compilers/adoptopenjdk-bin/jdk16-linux.nix
@@ -5,8 +5,8 @@ let
   sources = lib.importJSON ./sources.json;
 in
 {
-  jdk-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk16.${variant}.jdk.hotspot; };
-  jre-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk16.${variant}.jre.hotspot; };
-  jdk-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk16.${variant}.jdk.openj9; };
-  jre-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk16.${variant}.jre.openj9; };
+  jdk-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk16.${variant}.jdk.hotspot; knownVulnerabilities = [ "Support ended" ]; };
+  jre-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk16.${variant}.jre.hotspot; knownVulnerabilities = [ "Support ended" ]; };
+  jdk-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk16.${variant}.jdk.openj9; knownVulnerabilities = [ "Support ended" ]; };
+  jre-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk16.${variant}.jre.openj9; knownVulnerabilities = [ "Support ended" ]; };
 }
diff --git a/pkgs/development/compilers/ccl/default.nix b/pkgs/development/compilers/ccl/default.nix
index 332e0b1bccf4a..9fe1a8aa8e564 100644
--- a/pkgs/development/compilers/ccl/default.nix
+++ b/pkgs/development/compilers/ccl/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, runCommand, bootstrap_cmds, coreutils, glibc, m4, runtimeShell }:
+{ lib, stdenv, fetchurl, bootstrap_cmds, coreutils, glibc, m4, runtimeShell }:
 
 let
   options = rec {
diff --git a/pkgs/development/compilers/corretto/11.nix b/pkgs/development/compilers/corretto/11.nix
index 06de7a7bbdf87..b7bd676143c00 100644
--- a/pkgs/development/compilers/corretto/11.nix
+++ b/pkgs/development/compilers/corretto/11.nix
@@ -1,5 +1,4 @@
-{ corretto11
-, fetchFromGitHub
+{ fetchFromGitHub
 , gradle_7
 , jdk11
 , lib
@@ -10,7 +9,7 @@
 }:
 
 let
-  corretto = import ./mk-corretto.nix {
+  corretto = import ./mk-corretto.nix rec {
     inherit lib stdenv rsync runCommand testers;
     jdk = jdk11;
     gradle = gradle_7;
@@ -20,12 +19,12 @@ let
       # Corretto, too.
       "--disable-warnings-as-errors"
     ];
-    version = "11.0.20.9.1";
+    version = "11.0.23.9.1";
     src = fetchFromGitHub {
       owner = "corretto";
       repo = "corretto-11";
-      rev = "b880bdc8397ec3dd6b7cd4b837ce846c9e902783";
-      sha256 = "sha256-IomJHQn0ZgqsBZ5BrRqVrEOhTq7wjLiIKMQlz53JxsU=";
+      rev = version;
+      sha256 = "sha256-qSx0kgXTgvsvBaEqgy7Jrp/c1Imoi5/IOqEWoLenJYI=";
     };
   };
 in
diff --git a/pkgs/development/compilers/corretto/17.nix b/pkgs/development/compilers/corretto/17.nix
index 308750356c2a8..c557012e8cdb8 100644
--- a/pkgs/development/compilers/corretto/17.nix
+++ b/pkgs/development/compilers/corretto/17.nix
@@ -1,5 +1,5 @@
-{ corretto17
-, fetchFromGitHub
+{ fetchFromGitHub
+, fetchurl
 , gradle_7
 , jdk17
 , lib
@@ -10,17 +10,25 @@
 }:
 
 let
-  corretto = import ./mk-corretto.nix {
+  corretto = import ./mk-corretto.nix rec {
     inherit lib stdenv rsync runCommand testers;
     jdk = jdk17;
     gradle = gradle_7;
-    version = "17.0.8.8.1";
+    version = "17.0.11.9.1";
     src = fetchFromGitHub {
       owner = "corretto";
       repo = "corretto-17";
-      rev = "9a3cc984f76cb5f90598bdb43215bad20e0f7319";
-      sha256 = "sha256-/VuB3ocD5VvDqCU7BoTG+fQ0aKvK1TejegRYmswInqQ=";
+      rev = version;
+      sha256 = "sha256-LxZSFILFfyh8oBiYEnuBQ0Og2i713qdK2jIiCBnrlj0=";
     };
   };
 in
-corretto
+corretto.overrideAttrs (final: prev: {
+  # HACK: Removes the FixNullPtrCast patch, as it fails to apply. Need to figure out what causes it to fail to apply.
+  patches = lib.remove
+    (fetchurl {
+      url = "https://git.alpinelinux.org/aports/plain/community/openjdk17/FixNullPtrCast.patch?id=41e78a067953e0b13d062d632bae6c4f8028d91c";
+      sha256 = "sha256-LzmSew51+DyqqGyyMw2fbXeBluCiCYsS1nCjt9hX6zo=";
+    })
+    (prev.patches or [ ]);
+})
diff --git a/pkgs/development/compilers/corretto/19.nix b/pkgs/development/compilers/corretto/19.nix
index ea1fcc1aee1bd..0674b63f21dfa 100644
--- a/pkgs/development/compilers/corretto/19.nix
+++ b/pkgs/development/compilers/corretto/19.nix
@@ -1,5 +1,4 @@
-{ corretto19
-, fetchFromGitHub
+{ fetchFromGitHub
 , gradle_7
 , jdk19
 , lib
@@ -10,7 +9,7 @@
 }:
 
 let
-  corretto = import ./mk-corretto.nix {
+  corretto = import ./mk-corretto.nix rec {
     inherit lib stdenv rsync runCommand testers;
     jdk = jdk19;
     gradle = gradle_7;
@@ -18,7 +17,7 @@ let
     src = fetchFromGitHub {
       owner = "corretto";
       repo = "corretto-19";
-      rev = "72f064a1d716272bd17d4e425d4a264b2c2c7d36";
+      rev = version;
       sha256 = "sha256-mEj/MIbdXU0+fF5RhqjPuSeyclstesGaXB0e48YlKuw=";
     };
   };
diff --git a/pkgs/development/compilers/corretto/21.nix b/pkgs/development/compilers/corretto/21.nix
index fed3aa05f7a04..9656ace73cef5 100644
--- a/pkgs/development/compilers/corretto/21.nix
+++ b/pkgs/development/compilers/corretto/21.nix
@@ -10,7 +10,7 @@
 }:
 
 let
-  corretto = import ./mk-corretto.nix {
+  corretto = import ./mk-corretto.nix rec {
     inherit lib stdenv rsync runCommand testers;
     jdk = jdk21;
     gradle = gradle_7;
@@ -18,7 +18,7 @@ let
     src = fetchFromGitHub {
       owner = "corretto";
       repo = "corretto-21";
-      rev = "97b366227b4dc8f5a89bbedea88b0b18c9e21886";
+      rev = version;
       sha256 = "sha256-V8UDyukDCQVTWUg4IpSKoY0qnnQ5fePbm3rxcw06Vr0=";
     };
   };
diff --git a/pkgs/development/compilers/edk2/default.nix b/pkgs/development/compilers/edk2/default.nix
index 17151cf9f9477..cd15f29e370c9 100644
--- a/pkgs/development/compilers/edk2/default.nix
+++ b/pkgs/development/compilers/edk2/default.nix
@@ -41,6 +41,11 @@ edk2 = stdenv.mkDerivation rec {
       url = "https://src.fedoraproject.org/rpms/edk2/raw/08f2354cd280b4ce5a7888aa85cf520e042955c3/f/0021-Tweak-the-tools_def-to-support-cross-compiling.patch";
       hash = "sha256-E1/fiFNVx0aB1kOej2DJ2DlBIs9tAAcxoedym2Zhjxw=";
     })
+    # https://github.com/tianocore/edk2/pull/5658
+    (fetchpatch {
+      url = "https://github.com/tianocore/edk2/commit/a34ff4a8f69a7b8a52b9b299153a8fac702c7df1.patch";
+      hash = "sha256-u+niqwjuLV5tNPykW4xhb7PW2XvUmXhx5uvftG1UIbU=";
+    })
   ];
 
   srcWithVendoring = fetchFromGitHub {
@@ -88,8 +93,8 @@ edk2 = stdenv.mkDerivation rec {
     mv -v edksetup.sh $out
     # patchShebangs fails to see these when cross compiling
     for i in $out/BaseTools/BinWrappers/PosixLike/*; do
-      substituteInPlace $i --replace '/usr/bin/env bash' ${buildPackages.bash}/bin/bash
       chmod +x "$i"
+      patchShebangs --build "$i"
     done
   '';
 
@@ -118,13 +123,13 @@ edk2 = stdenv.mkDerivation rec {
 
       prePatch = ''
         rm -rf BaseTools
-        ln -sv ${edk2}/BaseTools BaseTools
+        ln -sv ${buildPackages.edk2}/BaseTools BaseTools
       '';
 
       configurePhase = ''
         runHook preConfigure
         export WORKSPACE="$PWD"
-        . ${edk2}/edksetup.sh BaseTools
+        . ${buildPackages.edk2}/edksetup.sh BaseTools
         runHook postConfigure
       '';
 
diff --git a/pkgs/development/compilers/erg/default.nix b/pkgs/development/compilers/erg/default.nix
index 6a8741be05818..a09709b14d994 100644
--- a/pkgs/development/compilers/erg/default.nix
+++ b/pkgs/development/compilers/erg/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "erg";
-  version = "0.6.36";
+  version = "0.6.37";
 
   src = fetchFromGitHub {
     owner = "erg-lang";
     repo = "erg";
     rev = "v${version}";
-    hash = "sha256-fwuAlIUPEzc2ZjKJ+4gdzXM679MAAJpg9Mh0d7LAt5s=";
+    hash = "sha256-uwIMUdV2zAyKRwjH83VE+cYgvRGoO+XyD8rA6974mC8=";
   };
 
-  cargoHash = "sha256-MfetCaYK5bBsV6EszNkwqlBFMykmLW7jX4gZWuIbHek=";
+  cargoHash = "sha256-Ep+aO9qgZN9ToKuRRQFqCzagzSXZ1VYQQQk41ZqP7Wo=";
 
   nativeBuildInputs = [
     makeWrapper
diff --git a/pkgs/development/compilers/gcc/all.nix b/pkgs/development/compilers/gcc/all.nix
index 70b4b75369a7d..ba7d53b435838 100644
--- a/pkgs/development/compilers/gcc/all.nix
+++ b/pkgs/development/compilers/gcc/all.nix
@@ -5,7 +5,7 @@
 , callPackage
 , isl_0_11, isl_0_14, isl_0_17, isl_0_20
 , libcCross
-, threadsCrossFor
+, threadsCross
 , noSysDirs
 , texinfo5
 , cloog_0_18_0, cloog
@@ -25,7 +25,7 @@ let
         reproducibleBuild = true;
         profiledCompiler = false;
         libcCross = if stdenv.targetPlatform != stdenv.buildPlatform then args.libcCross else null;
-        threadsCross = if stdenv.targetPlatform != stdenv.buildPlatform then threadsCrossFor majorMinorVersion else { };
+        threadsCross = if stdenv.targetPlatform != stdenv.buildPlatform then threadsCross else { };
         isl = if       stdenv.isDarwin then null
               else if    atLeast "9"   then isl_0_20
               else if    atLeast "7"   then isl_0_17
diff --git a/pkgs/development/compilers/ghc/common-hadrian.nix b/pkgs/development/compilers/ghc/common-hadrian.nix
index 5db97cc0d976e..55cc96dfd3ed9 100644
--- a/pkgs/development/compilers/ghc/common-hadrian.nix
+++ b/pkgs/development/compilers/ghc/common-hadrian.nix
@@ -19,7 +19,6 @@
 , autoconf
 , automake
 , coreutils
-, fetchpatch
 , fetchurl
 , fetchgit
 , perl
diff --git a/pkgs/development/compilers/ghc/common-make-native-bignum.nix b/pkgs/development/compilers/ghc/common-make-native-bignum.nix
index b2f6b1606265d..44b67357f1158 100644
--- a/pkgs/development/compilers/ghc/common-make-native-bignum.nix
+++ b/pkgs/development/compilers/ghc/common-make-native-bignum.nix
@@ -187,17 +187,7 @@ stdenv.mkDerivation (rec {
 
   outputs = [ "out" "doc" ];
 
-  # FIXME(@sternenseemann): This can be simplified a lot (causing a rebuild)
-  patches = (if lib.versions.majorMinor version == "9.0" then [
-    # Fix docs build with sphinx >= 6.0
-    # https://gitlab.haskell.org/ghc/ghc/-/issues/22766
-    (fetchpatch {
-      name = "ghc-docs-sphinx-6.0.patch";
-      url = "https://gitlab.haskell.org/ghc/ghc/-/commit/10e94a556b4f90769b7fd718b9790d58ae566600.patch";
-      sha256 = "0kmhfamr16w8gch0lgln2912r8aryjky1hfcda3jkcwa5cdzgjdv";
-    })
-    # Fix docs build with Sphinx >= 7 https://gitlab.haskell.org/ghc/ghc/-/issues/24129
-    ./docs-sphinx-7.patch
+  patches = lib.optionals (lib.versionOlder version "9.4") [
     # fix hyperlinked haddock sources: https://github.com/haskell/haddock/pull/1482
     (fetchpatch {
       url = "https://patch-diff.githubusercontent.com/raw/haskell/haddock/pull/1482.patch";
@@ -205,16 +195,9 @@ stdenv.mkDerivation (rec {
       extraPrefix = "utils/haddock/";
       stripLen = 1;
     })
+  ]
 
-    # Add flag that fixes C++ exception handling; opt-in. Merged in 9.4 and 9.2.2.
-    # https://gitlab.haskell.org/ghc/ghc/-/merge_requests/7423
-    (fetchpatch {
-      name = "ghc-9.0.2-fcompact-unwind.patch";
-      # Note that the test suite is not packaged.
-      url = "https://gitlab.haskell.org/ghc/ghc/-/commit/c6132c782d974a7701e7f6447bdcd2bf6db4299a.patch?merge_request_iid=7423";
-      sha256 = "sha256-b4feGZIaKDj/UKjWTNY6/jH4s2iate0wAgMxG3rAbZI=";
-    })
-  ] else if lib.versions.majorMinor version == "9.2" then [
+  ++ lib.optionals (lib.versionOlder version "9.4.6") [
     # Fix docs build with sphinx >= 6.0
     # https://gitlab.haskell.org/ghc/ghc/-/issues/22766
     (fetchpatch {
@@ -222,24 +205,25 @@ stdenv.mkDerivation (rec {
       url = "https://gitlab.haskell.org/ghc/ghc/-/commit/10e94a556b4f90769b7fd718b9790d58ae566600.patch";
       sha256 = "0kmhfamr16w8gch0lgln2912r8aryjky1hfcda3jkcwa5cdzgjdv";
     })
+  ]
+
+  ++ [
     # Fix docs build with Sphinx >= 7 https://gitlab.haskell.org/ghc/ghc/-/issues/24129
     ./docs-sphinx-7.patch
-    # fix hyperlinked haddock sources: https://github.com/haskell/haddock/pull/1482
-    (fetchpatch {
-      url = "https://patch-diff.githubusercontent.com/raw/haskell/haddock/pull/1482.patch";
-      sha256 = "sha256-8w8QUCsODaTvknCDGgTfFNZa8ZmvIKaKS+2ZJZ9foYk=";
-      extraPrefix = "utils/haddock/";
-      stripLen = 1;
-    })
-    # Don't generate code that doesn't compile when --enable-relocatable is passed to Setup.hs
-    # Can be removed if the Cabal library included with ghc backports the linked fix
+  ]
+
+  ++ lib.optionals (lib.versionOlder version "9.2.2") [
+    # Add flag that fixes C++ exception handling; opt-in. Merged in 9.4 and 9.2.2.
+    # https://gitlab.haskell.org/ghc/ghc/-/merge_requests/7423
     (fetchpatch {
-      url = "https://github.com/haskell/cabal/commit/6c796218c92f93c95e94d5ec2d077f6956f68e98.patch";
-      stripLen = 1;
-      extraPrefix = "libraries/Cabal/";
-      sha256 = "sha256-yRQ6YmMiwBwiYseC5BsrEtDgFbWvst+maGgDtdD0vAY=";
+      name = "ghc-9.0.2-fcompact-unwind.patch";
+      # Note that the test suite is not packaged.
+      url = "https://gitlab.haskell.org/ghc/ghc/-/commit/c6132c782d974a7701e7f6447bdcd2bf6db4299a.patch?merge_request_iid=7423";
+      sha256 = "sha256-b4feGZIaKDj/UKjWTNY6/jH4s2iate0wAgMxG3rAbZI=";
     })
-  ] else if lib.versions.majorMinor version == "9.4" then [
+  ]
+
+  ++ lib.optionals (lib.versionAtLeast version "9.2") [
     # Don't generate code that doesn't compile when --enable-relocatable is passed to Setup.hs
     # Can be removed if the Cabal library included with ghc backports the linked fix
     (fetchpatch {
@@ -249,25 +233,13 @@ stdenv.mkDerivation (rec {
       sha256 = "sha256-yRQ6YmMiwBwiYseC5BsrEtDgFbWvst+maGgDtdD0vAY=";
     })
   ]
-  ++ lib.optionals (version == "9.4.5") [
-    # Fix docs build with sphinx >= 6.0
-    # https://gitlab.haskell.org/ghc/ghc/-/issues/22766
-    (fetchpatch {
-      name = "ghc-docs-sphinx-6.0.patch";
-      url = "https://gitlab.haskell.org/ghc/ghc/-/commit/10e94a556b4f90769b7fd718b9790d58ae566600.patch";
-      sha256 = "0kmhfamr16w8gch0lgln2912r8aryjky1hfcda3jkcwa5cdzgjdv";
-    })
-  ]
-  ++ [
 
-    # Fix docs build with Sphinx >= 7 https://gitlab.haskell.org/ghc/ghc/-/issues/24129
-    ./docs-sphinx-7.patch
-  ]
   ++ lib.optionals (version == "9.4.6") [
     # Work around a type not being defined when including Rts.h in bytestring's cbits
     # due to missing feature macros. See https://gitlab.haskell.org/ghc/ghc/-/issues/23810.
     ./9.4.6-bytestring-posix-source.patch
-  ] else [ ])
+  ]
+
   ++ lib.optionals (stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64) [
     # Prevent the paths module from emitting symbols that we don't use
     # when building with separate outputs.
@@ -313,12 +285,8 @@ stdenv.mkDerivation (rec {
     # LLVM backend on Darwin needs clang: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm
     export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang"
   ''
-  + lib.optionalString (version == "9.0.2" || lib.versionAtLeast version "9.4") ''
-
-  '' + ''
+  + ''
     echo -n "${buildMK}" > mk/build.mk
-  '' + lib.optionalString (lib.versionAtLeast version "9.4") ''
-
   ''
   + lib.optionalString (lib.versionOlder version "9.2" || lib.versionAtLeast version "9.4") ''
     sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
diff --git a/pkgs/development/compilers/ghdl/default.nix b/pkgs/development/compilers/ghdl/default.nix
index 96f1db0e6492d..3a28aa03c1108 100644
--- a/pkgs/development/compilers/ghdl/default.nix
+++ b/pkgs/development/compilers/ghdl/default.nix
@@ -1,6 +1,5 @@
 { stdenv
 , fetchFromGitHub
-, fetchpatch
 , callPackage
 , gnat
 , zlib
diff --git a/pkgs/development/compilers/gleam/default.nix b/pkgs/development/compilers/gleam/default.nix
index 7e5fd44916b5e..e61a42f4efebb 100644
--- a/pkgs/development/compilers/gleam/default.nix
+++ b/pkgs/development/compilers/gleam/default.nix
@@ -12,13 +12,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gleam";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "gleam-lang";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-3DlsqUBAKF3zgiS26YQY1MzymLg9GnVzH1HMpbYv5Dc=";
+    hash = "sha256-P0IHO/rO3uHpSfWX+GVuMGuzux1ObGiNsSCCVP+wv5k=";
   };
 
   nativeBuildInputs = [ git pkg-config ];
@@ -26,7 +26,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ] ++
     lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
 
-  cargoHash = "sha256-KROGDBOsx1WTzv7IhJ3WWLJJ9zvrmZI5poJCr2tFcLY=";
+  cargoHash = "sha256-5KraSw/CtYZ4Al8VQszvuL/ubEVeQOppRRH5SQ8tsA0=";
 
   passthru.updateScript = nix-update-script { };
 
@@ -35,6 +35,6 @@ rustPlatform.buildRustPackage rec {
     mainProgram = "gleam";
     homepage = "https://gleam.run/";
     license = licenses.asl20;
-    maintainers = teams.beam.members;
+    maintainers = teams.beam.members ++ [ lib.maintainers.philtaken ];
   };
 }
diff --git a/pkgs/development/compilers/gnu-smalltalk/0000-fix_mkorder.patch b/pkgs/development/compilers/gnu-smalltalk/0000-fix_mkorder.patch
new file mode 100644
index 0000000000000..7b6fae2d5f03e
--- /dev/null
+++ b/pkgs/development/compilers/gnu-smalltalk/0000-fix_mkorder.patch
@@ -0,0 +1,21 @@
+--- a/packages/gtk/mkorder.awk
++++ b/packages/gtk/mkorder.awk
+@@ -33,6 +33,9 @@
+     paths[1] = "."
+     n_paths = 1
+     n_prefixes = split(_prefixes, prefixes)
++
++	ignored_files = [ "glib/gwin32.h" ]
++
+     split(_libs, libs)
+     split(_files, files)
+     for (i = 1; (i in libs); i++)
+@@ -60,7 +63,7 @@
+
+ function process_file(name, file) {
+     file = find_file(name)
+-    if (file in processed)
++    if ((name in ignored_files) or (file in processed))
+ 	return
+     processed[file] = 1
+     if (file == "")
diff --git a/pkgs/development/compilers/gnu-smalltalk/default.nix b/pkgs/development/compilers/gnu-smalltalk/default.nix
index 1caf96c715cbb..c6d9109031208 100644
--- a/pkgs/development/compilers/gnu-smalltalk/default.nix
+++ b/pkgs/development/compilers/gnu-smalltalk/default.nix
@@ -25,6 +25,12 @@ in stdenv.mkDerivation rec {
     sha256 = "1k2ssrapfzhngc7bg1zrnd9n2vyxp9c9m70byvsma6wapbvib6l1";
   };
 
+  patches = [
+    # The awk script incorrectly parsed `glib/glib.h` and was trying to find `glib/gwin32.h`,
+    # that isn't included since we're building only for linux.
+    ./0000-fix_mkorder.patch
+  ];
+
   # The dependencies and their justification are explained at
   # http://smalltalk.gnu.org/download
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/compilers/go/1.22.nix b/pkgs/development/compilers/go/1.22.nix
index c0103090b3314..aad242c886069 100644
--- a/pkgs/development/compilers/go/1.22.nix
+++ b/pkgs/development/compilers/go/1.22.nix
@@ -37,6 +37,7 @@ let
     "riscv64" = "riscv64";
     "s390x" = "s390x";
     "x86_64" = "amd64";
+    "wasm32" = "wasm";
   }.${platform.parsed.cpu.name} or (throw "Unsupported system: ${platform.parsed.cpu.name}");
 
   # We need a target compiler which is still runnable at build time,
@@ -90,7 +91,7 @@ stdenv.mkDerivation (finalAttrs: {
     ./go_no_vendor_checks-1.22.patch
   ];
 
-  GOOS = stdenv.targetPlatform.parsed.kernel.name;
+  GOOS = if stdenv.targetPlatform.isWasi then "wasip1" else stdenv.targetPlatform.parsed.kernel.name;
   GOARCH = goarch stdenv.targetPlatform;
   # GOHOSTOS/GOHOSTARCH must match the building system, not the host system.
   # Go will nevertheless build a for host system that we will copy over in
@@ -113,7 +114,8 @@ stdenv.mkDerivation (finalAttrs: {
 
   GOARM = toString (lib.intersectLists [ (stdenv.hostPlatform.parsed.cpu.version or "") ] [ "5" "6" "7" ]);
   GO386 = "softfloat"; # from Arch: don't assume sse2 on i686
-  CGO_ENABLED = 1;
+  # Wasi does not support CGO
+  CGO_ENABLED = if stdenv.targetPlatform.isWasi then 0 else 1;
 
   GOROOT_BOOTSTRAP = if useGccGoBootstrap then goBootstrap else "${goBootstrap}/share/go";
 
@@ -184,7 +186,7 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://go.dev/";
     license = licenses.bsd3;
     maintainers = teams.golang.members;
-    platforms = platforms.darwin ++ platforms.linux;
+    platforms = platforms.darwin ++ platforms.linux ++ platforms.wasi;
     mainProgram = "go";
   };
 })
diff --git a/pkgs/development/compilers/hvm/default.nix b/pkgs/development/compilers/hvm/default.nix
index b640d4e11c2de..b03b7eed2ea19 100644
--- a/pkgs/development/compilers/hvm/default.nix
+++ b/pkgs/development/compilers/hvm/default.nix
@@ -7,22 +7,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "hvm";
-  version = "2.0.12";
+  version = "2.0.17";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-/55SK/5zBKXmucRQPoYt/8IHxisQlOxNEVMAZVMtCNI=";
+    hash = "sha256-UzPEupmUnph7SjCc/T4sBSGXj8yLVdQlw+X9iM16zD8=";
   };
 
-  cargoHash = "sha256-9U8Y0KaQHIfOZnCKbl94VvjS/7Qmi6UnKMDZDTXcye0=";
+  cargoHash = "sha256-AchVbf+mn4qQtzWu84Dqek+btCm6BA9mcY+8iHWqdiw=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk_11_0.frameworks.IOKit
   ];
 
-  # enable nightly features
-  RUSTC_BOOTSTRAP = true;
-
   meta = with lib; {
     description = "A massively parallel, optimal functional runtime in Rust";
     mainProgram = "hvm";
diff --git a/pkgs/development/compilers/ispc/default.nix b/pkgs/development/compilers/ispc/default.nix
index b7f2ad1228b7f..ee162260929b2 100644
--- a/pkgs/development/compilers/ispc/default.nix
+++ b/pkgs/development/compilers/ispc/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch
+{ lib, stdenv, fetchFromGitHub
 , cmake, which, m4, python3, bison, flex, llvmPackages, ncurses, xcode, tbb
   # the default test target is sse4, but that is not supported by all Hydra agents
 , testedTargets ? if stdenv.isAarch64 || stdenv.isAarch32 then [ "neon-i32x4" ] else [ "sse2-i32x4" ]
diff --git a/pkgs/development/compilers/jetbrains-jdk/default.nix b/pkgs/development/compilers/jetbrains-jdk/default.nix
index 1e6b86b17b8e4..76d4079baafbf 100644
--- a/pkgs/development/compilers/jetbrains-jdk/default.nix
+++ b/pkgs/development/compilers/jetbrains-jdk/default.nix
@@ -39,26 +39,26 @@ let
 in
 openjdk17.overrideAttrs (oldAttrs: rec {
   pname = "jetbrains-jdk" + lib.optionalString withJcef "-jcef";
-  javaVersion = "17.0.8";
-  build = "1000.8";
+  javaVersion = "17.0.11";
+  build = "1207.24";
   # To get the new tag:
   # git clone https://github.com/jetbrains/jetbrainsruntime
   # cd jetbrainsruntime
   # git reset --hard [revision]
   # git log --simplify-by-decoration --decorate=short --pretty=short | grep "jbr-" --color=never | cut -d "(" -f2 | cut -d ")" -f1 | awk '{print $2}' | sort -t "-" -k 2 -g | tail -n 1 | tr -d ","
-  openjdkTag = "jbr-17.0.7+7";
+  openjdkTag = "jbr-17.0.8+7";
   version = "${javaVersion}-b${build}";
 
   src = fetchFromGitHub {
     owner = "JetBrains";
     repo = "JetBrainsRuntime";
     rev = "jb${version}";
-    hash = "sha256-PXS8wRF37D9vzeC4CvmB3szFMbt+NRqhQqtPZcbeAO8=";
+    hash = "sha256-a7cJF2iCW/1GK0/GmVbaY5pYcn3YtZy5ngFkyAGRhu0=";
   };
 
   BOOT_JDK = openjdk17-bootstrap.home;
   # run `git log -1 --pretty=%ct` in jdk repo for new value on update
-  SOURCE_DATE_EPOCH = 1691119859;
+  SOURCE_DATE_EPOCH = 1715809405;
 
   patches = [ ];
 
diff --git a/pkgs/development/compilers/kotlin/default.nix b/pkgs/development/compilers/kotlin/default.nix
index 68b648846ea41..b8967d64794f4 100644
--- a/pkgs/development/compilers/kotlin/default.nix
+++ b/pkgs/development/compilers/kotlin/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "kotlin";
-  version = "1.9.24";
+  version = "2.0.0";
 
   src = fetchurl {
     url = "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-compiler-${version}.zip";
-    sha256 = "sha256-63to4BAp+me8jQYO5UwSAY8sYN3EOM8h2xRRcimqaTs=";
+    sha256 = "sha256-71eHMJdhVP0sWWjXWvjCcDs96Ep43/6RP2cDJuFJ2js=";
   };
 
   propagatedBuildInputs = [ jre ] ;
diff --git a/pkgs/development/compilers/llvm/16/compiler-rt/asan-offset.patch b/pkgs/development/compilers/llvm/16/compiler-rt/asan-offset.patch
new file mode 100644
index 0000000000000..46afe5c007347
--- /dev/null
+++ b/pkgs/development/compilers/llvm/16/compiler-rt/asan-offset.patch
@@ -0,0 +1,11 @@
+--- a/lib/asan/CMakeLists.txt        2022-06-22 16:46:24.000000000 +0000
++++ b/lib/asan/CMakeLists.txt
+@@ -46,7 +46,7 @@ set(ASAN_STATIC_SOURCES
+   asan_rtl_static.cpp
+   )
+ 
+-if (NOT WIN32 AND NOT APPLE)
++if (LINUX)
+   list(APPEND ASAN_STATIC_SOURCES
+     asan_rtl_x86_64.S
+   )
diff --git a/pkgs/development/compilers/llvm/16/compiler-rt/freebsd-i386.patch b/pkgs/development/compilers/llvm/16/compiler-rt/freebsd-i386.patch
new file mode 100644
index 0000000000000..0a221750552a0
--- /dev/null
+++ b/pkgs/development/compilers/llvm/16/compiler-rt/freebsd-i386.patch
@@ -0,0 +1,21 @@
+--- a/lib/builtins/fp_lib.h	1969-12-31 16:00:01.000000000 -0800
++++ b/lib/builtins/fp_lib.h	2023-12-21 23:39:36.066927293 -0800
+@@ -26,18 +26,6 @@
+ #include <stdbool.h>
+ #include <stdint.h>
+ 
+-// x86_64 FreeBSD prior v9.3 define fixed-width types incorrectly in
+-// 32-bit mode.
+-#if defined(__FreeBSD__) && defined(__i386__)
+-#include <sys/param.h>
+-#if __FreeBSD_version < 903000 // v9.3
+-#define uint64_t unsigned long long
+-#define int64_t long long
+-#undef UINT64_C
+-#define UINT64_C(c) (c##ULL)
+-#endif
+-#endif
+-
+ #if defined SINGLE_PRECISION
+ 
+ typedef uint16_t half_rep_t;
diff --git a/pkgs/development/compilers/llvm/18/default.nix b/pkgs/development/compilers/llvm/18/default.nix
index 3c0e551791e54..5b2b09bbb6ec2 100644
--- a/pkgs/development/compilers/llvm/18/default.nix
+++ b/pkgs/development/compilers/llvm/18/default.nix
@@ -25,7 +25,7 @@
   #   rev-version = /* human readable version; i.e. "unstable-2022-26-07" */;
   #   sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */;
   # }
-, officialRelease ? { version = "18.1.5"; sha256 = "0n44chqn96xsa00ryhwk8g0vv3zx908xjakkgjsa14sjr9mcsq8q"; }
+, officialRelease ? { version = "18.1.6"; sha256 = "sha256-q6avJyzzL6ZEhPmONH6/VTfwBfnXNOLBbuHi0gVy55I="; }
   # i.e.:
   # {
   #   version = /* i.e. "15.0.0" */;
diff --git a/pkgs/development/compilers/llvm/common/compiler-rt/default.nix b/pkgs/development/compilers/llvm/common/compiler-rt/default.nix
index 4f44d6396d301..e9c891110eb69 100644
--- a/pkgs/development/compilers/llvm/common/compiler-rt/default.nix
+++ b/pkgs/development/compilers/llvm/common/compiler-rt/default.nix
@@ -128,11 +128,17 @@ stdenv.mkDerivation ({
   '') + ''
     substituteInPlace lib/builtins/int_util.c \
       --replace "#include <stdlib.h>" ""
+  '' + (if stdenv.hostPlatform.isFreeBSD then
+    # As per above, but in FreeBSD assert is a macro and simply allowing it to be implicitly declared causes Issues!!!!!
+    ''
+    substituteInPlace lib/builtins/clear_cache.c lib/builtins/cpu_model.c \
+      --replace "#include <assert.h>" "#define assert(e) ((e)?(void)0:__assert(__FUNCTION__,__FILE__,__LINE__,#e))"
+    '' else ''
     substituteInPlace lib/builtins/clear_cache.c \
       --replace "#include <assert.h>" ""
     substituteInPlace lib/builtins/cpu_model${lib.optionalString (lib.versionAtLeast version "18") "/x86"}.c \
       --replace "#include <assert.h>" ""
-  '');
+  ''));
 
   # Hack around weird upsream RPATH bug
   postInstall = lib.optionalString (stdenv.hostPlatform.isDarwin) ''
diff --git a/pkgs/development/compilers/llvm/common/libcxx/default.nix b/pkgs/development/compilers/llvm/common/libcxx/default.nix
index 5b4c2ca56ae1a..685b3deecd449 100644
--- a/pkgs/development/compilers/llvm/common/libcxx/default.nix
+++ b/pkgs/development/compilers/llvm/common/libcxx/default.nix
@@ -13,12 +13,16 @@
 , python3
 , fixDarwinDylibNames
 , version
-, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else null
+, cxxabi ? null
 , libcxxrt
 , libunwind
 , enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
+# note: our setup using libcxxabi instead of libcxxrt on FreeBSD diverges from
+# normal FreeBSD. This may cause issues with binary patching down the line.
+# If this becomes an issue, try adding as symlink libcxxrt.so -> libc++abi.so
+
 # external cxxabi is not supported on Darwin as the build will not link libcxx
 # properly and not re-export the cxxabi symbols into libcxx
 # https://github.com/NixOS/nixpkgs/issues/166205
diff --git a/pkgs/development/compilers/llvm/common/llvm/default.nix b/pkgs/development/compilers/llvm/common/llvm/default.nix
index 705dfed8a2496..d43e62d5a8952 100644
--- a/pkgs/development/compilers/llvm/common/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/common/llvm/default.nix
@@ -39,6 +39,7 @@
   # broken for the armv7l builder
   && !stdenv.hostPlatform.isAarch
 , enablePolly ? lib.versionAtLeast release_version "14"
+, enableTerminfo ? true
 }:
 
 let
@@ -124,59 +125,54 @@ stdenv.mkDerivation (rec {
     substituteInPlace cmake/modules/AddLLVM.cmake \
       --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
       --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' ""
-  '' + (optionalString (lib.versionAtLeast release_version "15") (''
-
+  '' +
     # As of LLVM 15, marked as XFAIL on arm64 macOS but lit doesn't seem to pick
     # this up: https://github.com/llvm/llvm-project/blob/c344d97a125b18f8fed0a64aace73c49a870e079/llvm/test/MC/ELF/cfi-version.ll#L7
+    (optionalString (lib.versionAtLeast release_version "15") (''
     rm test/MC/ELF/cfi-version.ll
 
+  '' +
     # This test tries to call `sw_vers` by absolute path (`/usr/bin/sw_vers`)
     # and thus fails under the sandbox:
-  '' + (if lib.versionAtLeast release_version "16" then ''
+    (if lib.versionAtLeast release_version "16" then ''
     substituteInPlace unittests/TargetParser/Host.cpp \
       --replace '/usr/bin/sw_vers' "${(builtins.toString darwin.DarwinTools) + "/bin/sw_vers" }"
   '' else ''
     substituteInPlace unittests/Support/Host.cpp \
       --replace '/usr/bin/sw_vers' "${(builtins.toString darwin.DarwinTools) + "/bin/sw_vers" }"
-  '') + optionalString (lib.versionAtLeast release_version "16") ''
-
+  '') +
     # This test tries to call the intrinsics `@llvm.roundeven.f32` and
     # `@llvm.roundeven.f64` which seem to (incorrectly?) lower to `roundevenf`
-    # and `roundeven` on macOS.
+    # and `roundeven` on macOS and FreeBSD.
     #
     # However these functions are glibc specific so the test fails:
     #   - https://www.gnu.org/software/gnulib/manual/html_node/roundevenf.html
     #   - https://www.gnu.org/software/gnulib/manual/html_node/roundeven.html
     #
+    # TODO(@rrbutani): this seems to run fine on `aarch64-darwin`, why does it
+    # pass there?
+    optionalString (lib.versionAtLeast release_version "16") ''
     substituteInPlace test/ExecutionEngine/Interpreter/intrinsics.ll \
       --replace "%roundeven32 = call float @llvm.roundeven.f32(float 0.000000e+00)" "" \
       --replace "%roundeven64 = call double @llvm.roundeven.f64(double 0.000000e+00)" ""
-  '' + optionalString (!stdenv.hostPlatform.isx86 && lib.versionAtLeast release_version "18") ''
-
+  '' +
     # fails when run in sandbox
+    optionalString (!stdenv.hostPlatform.isx86 && lib.versionAtLeast release_version "18") ''
     substituteInPlace unittests/Support/VirtualFileSystemTest.cpp \
       --replace "PhysicalFileSystemWorkingDirFailure" "DISABLED_PhysicalFileSystemWorkingDirFailure"
-  ''))) + optionalString (stdenv.isDarwin && stdenv.hostPlatform.isx86 && lib.versionAtLeast release_version "15") (optionalString (lib.versionOlder release_version "16") ''
-    # This test tries to call the intrinsics `@llvm.roundeven.f32` and
-    # `@llvm.roundeven.f64` which seem to (incorrectly?) lower to `roundevenf`
-    # and `roundeven` on x86_64 macOS.
-    #
-    # However these functions are glibc specific so the test fails:
-    #   - https://www.gnu.org/software/gnulib/manual/html_node/roundevenf.html
-    #   - https://www.gnu.org/software/gnulib/manual/html_node/roundeven.html
-    #
-    # TODO(@rrbutani): this seems to run fine on `aarch64-darwin`, why does it
-    # pass there?
+  ''))) +
+    # dup of above patch with different conditions
+    optionalString (stdenv.isDarwin && stdenv.hostPlatform.isx86 && lib.versionAtLeast release_version "15") (optionalString (lib.versionOlder release_version "16") ''
     substituteInPlace test/ExecutionEngine/Interpreter/intrinsics.ll \
       --replace "%roundeven32 = call float @llvm.roundeven.f32(float 0.000000e+00)" "" \
       --replace "%roundeven64 = call double @llvm.roundeven.f64(double 0.000000e+00)" ""
 
-  '' + ((optionalString (lib.versionAtLeast release_version "18") ''
-
+  '' +
     # fails when run in sandbox
+    ((optionalString (lib.versionAtLeast release_version "18") ''
     substituteInPlace unittests/Support/VirtualFileSystemTest.cpp \
       --replace "PhysicalFileSystemWorkingDirFailure" "DISABLED_PhysicalFileSystemWorkingDirFailure"
-  '') + ''
+  '') +
     # This test fails on darwin x86_64 because `sw_vers` reports a different
     # macOS version than what LLVM finds by reading
     # `/System/Library/CoreServices/SystemVersion.plist` (which is passed into
@@ -205,19 +201,20 @@ stdenv.mkDerivation (rec {
     # not clear to me when/where/for what this even gets used in LLVM.
     #
     # TODO(@rrbutani): fix/follow-up
-  '' + (if lib.versionAtLeast release_version "16" then ''
+    (if lib.versionAtLeast release_version "16" then ''
     substituteInPlace unittests/TargetParser/Host.cpp \
       --replace "getMacOSHostVersion" "DISABLED_getMacOSHostVersion"
   '' else ''
     substituteInPlace unittests/Support/Host.cpp \
       --replace "getMacOSHostVersion" "DISABLED_getMacOSHostVersion"
-  '') + ''
-
+  '') +
     # This test fails with a `dysmutil` crash; have not yet dug into what's
     # going on here (TODO(@rrbutani)).
+  ''
     rm test/tools/dsymutil/ARM/obfuscated.test
-  '')) + ''
+  '')) +
     # FileSystem permissions tests fail with various special bits
+  ''
     substituteInPlace unittests/Support/CMakeLists.txt \
       --replace "Path.cpp" ""
     rm unittests/Support/Path.cpp
@@ -229,22 +226,24 @@ stdenv.mkDerivation (rec {
   '' + lib.optionalString (lib.versionOlder release_version "13") ''
     # TODO: Fix failing tests:
     rm test/DebugInfo/X86/vla-multi.ll
-  '' + lib.optionalString (lib.versionAtLeast release_version "16") (''
-
+  '' +
     # Fails in the presence of anti-virus software or other intrusion-detection software that
     # modifies the atime when run. See #284056.
+    lib.optionalString (lib.versionAtLeast release_version "16") (''
     rm test/tools/llvm-objcopy/ELF/strip-preserve-atime.test
   '' + lib.optionalString (lib.versionOlder release_version "17") ''
 
-  '') + lib.optionalString (lib.versionAtLeast release_version "15" && lib.versionOlder release_version "17") ''
+  '') +
     # timing-based tests are trouble
+    lib.optionalString (lib.versionAtLeast release_version "15" && lib.versionOlder release_version "17") ''
     rm utils/lit/tests/googletest-timeout.py
-  '' + optionalString stdenv.hostPlatform.isMusl ''
+  '' +
+    # valgrind unhappy with musl or glibc, but fails w/musl only
+    optionalString stdenv.hostPlatform.isMusl ''
     patch -p1 -i ${./TLI-musl.patch}
     substituteInPlace unittests/Support/CMakeLists.txt \
       --replace "add_subdirectory(DynamicLibrary)" ""
     rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp
-    # valgrind unhappy with musl or glibc, but fails w/musl only
     rm test/CodeGen/AArch64/wineh4.mir
   '' + optionalString stdenv.hostPlatform.isAarch32 ''
     # skip failing X86 test cases on 32-bit ARM
@@ -254,18 +253,28 @@ stdenv.mkDerivation (rec {
     rm test/tools/dsymutil/X86/op-convert.test
     rm test/tools/gold/X86/split-dwarf.ll
     rm test/tools/llvm-objcopy/MachO/universal-object.test
-  '' + optionalString (stdenv.hostPlatform.system == "armv6l-linux") ''
+  '' +
     # Seems to require certain floating point hardware (NEON?)
+    optionalString (stdenv.hostPlatform.system == "armv6l-linux") ''
     rm test/ExecutionEngine/frem.ll
+  '' +
+    # 1. TODO: Why does this test fail on FreeBSD?
+    # It seems to reference /usr/local/lib/libfile.a, which is clearly a problem.
+    # 2. This test fails for the same reason it fails on MacOS, but the fix is
+    # not trivial to apply.
+    optionalString stdenv.isFreeBSD ''
+    rm test/tools/llvm-libtool-darwin/L-and-l.test
+    rm test/ExecutionEngine/Interpreter/intrinsics.ll
   '' + ''
     patchShebangs test/BugPoint/compile-custom.ll.py
-  '' + (lib.optionalString (lib.versionOlder release_version "13") ''
+  '' +
     # Tweak tests to ignore namespace part of type to support
     # gcc-12: https://gcc.gnu.org/PR103598.
     # The change below mangles strings like:
     #    CHECK-NEXT: Starting llvm::Function pass manager run.
     # to:
     #    CHECK-NEXT: Starting {{.*}}Function pass manager run.
+    (lib.optionalString (lib.versionOlder release_version "13") (''
     for f in \
       test/Other/new-pass-manager.ll \
       test/Other/new-pm-O0-defaults.ll \
@@ -286,18 +295,19 @@ stdenv.mkDerivation (rec {
         --replace 'Starting llvm::' 'Starting {{.*}}' \
         --replace 'Finished llvm::' 'Finished {{.*}}'
     done
+  '' +
     # gcc-13 fix
+  ''
     sed -i '/#include <string>/i#include <cstdint>' \
       include/llvm/DebugInfo/Symbolize/DIPrinter.h
-  '');
+  ''));
 
+  # Workaround for configure flags that need to have spaces
   preConfigure = if lib.versionAtLeast release_version "15" then ''
-    # Workaround for configure flags that need to have spaces
     cmakeFlagsArray+=(
       -DLLVM_LIT_ARGS="-svj''${NIX_BUILD_CORES} --no-progress-bar"
     )
   '' else ''
-    # Workaround for configure flags that need to have spaces
     cmakeFlagsArray+=(
       -DLLVM_LIT_ARGS='-svj''${NIX_BUILD_CORES} --no-progress-bar'
     )
@@ -332,9 +342,13 @@ stdenv.mkDerivation (rec {
     "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
     "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
     "-DLLVM_ENABLE_DUMP=ON"
+    (lib.cmakeBool "LLVM_ENABLE_TERMINFO" enableTerminfo)
+  ] ++ optionals (!doCheck) [
+    "-DLLVM_INCLUDE_TESTS=OFF"
   ] ++ optionals stdenv.hostPlatform.isStatic [
     # Disables building of shared libs, -fPIC is still injected by cc-wrapper
     "-DLLVM_ENABLE_PIC=OFF"
+    "-DCMAKE_SKIP_INSTALL_RPATH=ON"
     "-DLLVM_BUILD_STATIC=ON"
     # libxml2 needs to be disabled because the LLVM build system ignores its .la
     # file and doesn't link zlib as well.
diff --git a/pkgs/development/compilers/lobster/default.nix b/pkgs/development/compilers/lobster/default.nix
index 131fdbfef98fa..ec961a22cb1b3 100644
--- a/pkgs/development/compilers/lobster/default.nix
+++ b/pkgs/development/compilers/lobster/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "lobster";
-  version = "2023.13";
+  version = "2024.0";
 
   src = fetchFromGitHub {
     owner = "aardappel";
     repo = "lobster";
     rev = "v${finalAttrs.version}";
-    sha256 = "sha256-7lMIIJ3iduyxZKwK65tle3c+az2G2Mpi4JwAeCCsTxw=";
+    sha256 = "sha256-EBgb442wI9qU/o6EVCwPnMtPuv1f6Xk2+CZpKWXf3tY=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/compilers/ocaml/ber-metaocaml.nix b/pkgs/development/compilers/ocaml/ber-metaocaml.nix
index 230c911ef68ca..5279fc7481b6e 100644
--- a/pkgs/development/compilers/ocaml/ber-metaocaml.nix
+++ b/pkgs/development/compilers/ocaml/ber-metaocaml.nix
@@ -1,7 +1,6 @@
 { lib, stdenv, fetchurl
 , ncurses
 , libX11, xorgproto, buildEnv
-, fetchpatch
 , useX11 ? stdenv.hostPlatform.isx86
 }:
 
diff --git a/pkgs/development/compilers/openjdk/11.nix b/pkgs/development/compilers/openjdk/11.nix
index e9b8961d5e599..04df2d28a45ca 100644
--- a/pkgs/development/compilers/openjdk/11.nix
+++ b/pkgs/development/compilers/openjdk/11.nix
@@ -11,8 +11,8 @@
 let
   major = "11";
   minor = "0";
-  update = "19";
-  build = "7";
+  update = "23";
+  build = "9";
 
   # when building a headless jdk, also bootstrap it with a headless jdk
   openjdk-bootstrap = openjdk11-bootstrap.override { gtkSupport = !headless; };
@@ -25,7 +25,7 @@ let
       owner = "openjdk";
       repo = "jdk${major}u";
       rev = "jdk-${version}";
-      sha256 = "sha256-mp8toB1dWcwOtMqNFd7UwRg8pLJckovqD/LD5p9zUoA=";
+      sha256 = "sha256-6y6wge8ZuSKBpb5QNihvAlD4Pv/0d3AQCPOkxUm/sJk=";
     };
 
     nativeBuildInputs = [ pkg-config autoconf unzip ];
diff --git a/pkgs/development/compilers/openjdk/16.nix b/pkgs/development/compilers/openjdk/16.nix
index 4b0874a03a415..12ba5c9c16dbb 100644
--- a/pkgs/development/compilers/openjdk/16.nix
+++ b/pkgs/development/compilers/openjdk/16.nix
@@ -11,8 +11,8 @@
 let
   version = {
     feature = "16";
-    interim = "0";
-    build = "36";
+    interim = ".0.2-ga";
+    build = "1";
   };
 
   # when building a headless jdk, also bootstrap it with a headless jdk
@@ -20,13 +20,14 @@ let
 
   openjdk = stdenv.mkDerivation {
     pname = "openjdk" + lib.optionalString headless "-headless";
-    version = "${version.feature}+${version.build}";
+    version = "${version.feature}${version.interim}+${version.build}";
 
     src = fetchFromGitHub {
       owner = "openjdk";
       repo = "jdk${version.feature}u";
-      rev = "jdk-${version.feature}+${version.build}";
-      sha256 = "165nr15dqfcxzsl5z95g4iklln4rlfkgdigdma576mx8813ldi44";
+      rev = "jdk-${version.feature}${version.interim}";
+      # rev = "jdk-${version.feature}${version.interim}+${version.build}";
+      sha256 = "sha256-/8XHNrf9joCCXMCyPncT54JhqlF+KBL7eAf8hUW/BxU=";
     };
 
     nativeBuildInputs = [ pkg-config autoconf unzip ];
diff --git a/pkgs/development/compilers/openjdk/17.nix b/pkgs/development/compilers/openjdk/17.nix
index d2c71683c9bfe..1c9aee9af5e95 100644
--- a/pkgs/development/compilers/openjdk/17.nix
+++ b/pkgs/development/compilers/openjdk/17.nix
@@ -11,8 +11,8 @@
 let
   version = {
     feature = "17";
-    interim = ".0.7";
-    build = "7";
+    interim = ".0.11";
+    build = "9";
   };
 
   # when building a headless jdk, also bootstrap it with a headless jdk
@@ -26,7 +26,7 @@ let
       owner = "openjdk";
       repo = "jdk${version.feature}u";
       rev = "jdk-${version.feature}${version.interim}+${version.build}";
-      sha256 = "sha256-S6QOB4Tbi+K1yjvvywTfvwFI2eX8AiqIx5c3zfxcskc=";
+      sha256 = "sha256-aO4iSc9MklW/4q9U86WEfiiWnlq6iZSbxzq2fbsqd0A=";
     };
 
     nativeBuildInputs = [ pkg-config autoconf unzip ];
diff --git a/pkgs/development/compilers/openjdk/18.nix b/pkgs/development/compilers/openjdk/18.nix
index 2c496721be070..5ce4ff8f54671 100644
--- a/pkgs/development/compilers/openjdk/18.nix
+++ b/pkgs/development/compilers/openjdk/18.nix
@@ -11,7 +11,8 @@
 let
   version = {
     feature = "18";
-    build = "36";
+    interim = ".0.2.1";
+    build = "1";
   };
 
   # when building a headless jdk, also bootstrap it with a headless jdk
@@ -19,13 +20,13 @@ let
 
   openjdk = stdenv.mkDerivation {
     pname = "openjdk" + lib.optionalString headless "-headless";
-    version = "${version.feature}+${version.build}";
+    version = "${version.feature}${version.interim}+${version.build}";
 
     src = fetchFromGitHub {
       owner = "openjdk";
       repo = "jdk${version.feature}u";
-      rev = "jdk-${version.feature}+${version.build}";
-      sha256 = "sha256-yGPC8VA983Ml6Fv/oiEgRrcVe4oe+Q4oCHbzOmFbZq8=";
+      rev = "jdk-${version.feature}${version.interim}+${version.build}";
+      sha256 = "sha256-L6dsN0kqWcfemM8LBg62qtHQdymwRQoV1ndc8r+0qn8=";
     };
 
     nativeBuildInputs = [ pkg-config autoconf unzip ];
diff --git a/pkgs/development/compilers/openjdk/19.nix b/pkgs/development/compilers/openjdk/19.nix
index 51fd0d8eb533f..187d724b57b55 100644
--- a/pkgs/development/compilers/openjdk/19.nix
+++ b/pkgs/development/compilers/openjdk/19.nix
@@ -14,8 +14,8 @@
 let
   version = {
     feature = "19";
-    interim = ".0.2";
-    build = "7";
+    interim = "-ga";
+    build = "";
   };
 
   # when building a headless jdk, also bootstrap it with a headless jdk
@@ -23,13 +23,15 @@ let
 
   openjdk = stdenv.mkDerivation {
     pname = "openjdk" + lib.optionalString headless "-headless";
-    version = "${version.feature}${version.interim}+${version.build}";
+    version = "${version.feature}${version.interim}";
+    # version = "${version.feature}${version.interim}+${version.build}";
 
     src = fetchFromGitHub {
       owner = "openjdk";
       repo = "jdk${version.feature}u";
-      rev = "jdk-${version.feature}${version.interim}+${version.build}";
-      hash = "sha256-pBEHmBtIgG4Czou4C/zpBBYZEDImvXiLoA5CjOzpeyI=";
+      rev = "jdk-${version.feature}${version.interim}";
+      # rev = "jdk-${version.feature}${version.interim}+${version.build}";
+      hash = "sha256-XbYTku/nWF+maBvYz2rJYIUBEgOmqICKjk9wufHqyj0=";
     };
 
     nativeBuildInputs = [ pkg-config autoconf unzip ensureNewerSourcesForZipFilesHook ];
diff --git a/pkgs/development/compilers/openjdk/20.nix b/pkgs/development/compilers/openjdk/20.nix
index 2be834a27b58e..bdb7d057f2633 100644
--- a/pkgs/development/compilers/openjdk/20.nix
+++ b/pkgs/development/compilers/openjdk/20.nix
@@ -14,8 +14,8 @@
 let
   version = {
     feature = "20";
-    interim = "";
-    build = "36";
+    interim = ".0.2";
+    build = "9";
   };
 
   # when building a headless jdk, also bootstrap it with a headless jdk
@@ -29,7 +29,7 @@ let
       owner = "openjdk";
       repo = "jdk${version.feature}u";
       rev = "jdk-${version.feature}${version.interim}+${version.build}";
-      hash = "sha256-fXoSO8nq5qpUYbCtbrRr2C46XRdYX77Pxmk7GfmlZV4=";
+      hash = "sha256-CZH2JwR+MrkTlLdcVYuFRB3McdrM0A+1YaSjNpjYwak=";
     };
 
     nativeBuildInputs = [ pkg-config autoconf unzip ensureNewerSourcesForZipFilesHook ];
diff --git a/pkgs/development/compilers/openjdk/8.nix b/pkgs/development/compilers/openjdk/8.nix
index aebfceeccb784..093050be5b801 100644
--- a/pkgs/development/compilers/openjdk/8.nix
+++ b/pkgs/development/compilers/openjdk/8.nix
@@ -20,7 +20,7 @@ let
     powerpc64le-linux = "ppc64le";
   }.${stdenv.system} or (throw "Unsupported platform ${stdenv.system}");
 
-  update = "362";
+  update = "412";
   build = "ga";
 
   # when building a headless jdk, also bootstrap it with a headless jdk
@@ -34,7 +34,7 @@ let
       owner = "openjdk";
       repo = "jdk8u";
       rev = "jdk${version}";
-      sha256 = "sha256-C5dQwfIIpIrLeO3JWERyFCQHUSgG8gARuc3qXAeLkJ4=";
+      sha256 = "sha256-o+H5n5p6JG1giJj9OADgMbQPaoKMzLMFquKH536SHhM=";
     };
     outputs = [ "out" "jre" ];
 
diff --git a/pkgs/development/compilers/openjdk/meta.nix b/pkgs/development/compilers/openjdk/meta.nix
index 74383ddef783d..5078b77bfdd8c 100644
--- a/pkgs/development/compilers/openjdk/meta.nix
+++ b/pkgs/development/compilers/openjdk/meta.nix
@@ -2,10 +2,10 @@ lib: version: with lib; {
   homepage = "https://openjdk.java.net/";
   license = licenses.gpl2Only;
   description = "The open-source Java Development Kit";
-  maintainers = with maintainers; [ edwtjo ];
+  maintainers = with maintainers; [ edwtjo infinidoge ];
   platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" "powerpc64le-linux" ];
   mainProgram = "java";
-  knownVulnerabilities = optionals (builtins.elem (versions.major version) [ "12" "13" "14" "15" "16" "18" ]) [
+  knownVulnerabilities = optionals (builtins.elem (versions.major version) [ "12" "13" "14" "15" "16" "18" "19" "20" ]) [
     "This OpenJDK version has reached its end of life."
   ];
 }
diff --git a/pkgs/development/compilers/openjdk/openjfx/11.nix b/pkgs/development/compilers/openjdk/openjfx/11.nix
index 424c41ce3c783..463e0e2d7cac7 100644
--- a/pkgs/development/compilers/openjdk/openjfx/11.nix
+++ b/pkgs/development/compilers/openjdk/openjfx/11.nix
@@ -7,7 +7,7 @@
 
 let
   major = "11";
-  update = ".0.18";
+  update = ".0.20";
   build = "1";
   repover = "${major}${update}+${build}";
   gradle_ = (gradle_7.override {
@@ -31,7 +31,7 @@ let
       owner = "openjdk";
       repo = "jfx${major}u";
       rev = repover;
-      sha256 = "sha256-46DjIzcBHkmp5vnhYnLu78CG72bIBRM4A6mgk2OLOko=";
+      sha256 = "sha256-BbBP2DiPZTSn1SBYMCgyiNdF9GD+NqR6YjeVNOQHHn4=";
     };
 
     buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless ];
diff --git a/pkgs/development/compilers/openjdk/openjfx/17.nix b/pkgs/development/compilers/openjdk/openjfx/17.nix
index c5d6c6aaa597e..fab6ca5e7df83 100644
--- a/pkgs/development/compilers/openjdk/openjfx/17.nix
+++ b/pkgs/development/compilers/openjdk/openjfx/17.nix
@@ -7,8 +7,8 @@
 
 let
   major = "17";
-  update = ".0.6";
-  build = "+3";
+  update = ".0.11";
+  build = "-ga";
   repover = "${major}${update}${build}";
   gradle_ = (gradle_7.override {
     java = openjdk17_headless;
@@ -31,7 +31,7 @@ let
       owner = "openjdk";
       repo = "jfx${major}u";
       rev = repover;
-      sha256 = "sha256-9VfXk2EfMebMyVKPohPRP2QXRFf8XemUtfY0JtBCHyw=";
+      sha256 = "sha256-WV8NHlYlt7buGbirLSorLnS2TnyBD17zUquFfwSL3xE=";
     };
 
     buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless ];
diff --git a/pkgs/development/compilers/openjdk/openjfx/19.nix b/pkgs/development/compilers/openjdk/openjfx/19.nix
index 6f173db8327c1..2100f962917ad 100644
--- a/pkgs/development/compilers/openjdk/openjfx/19.nix
+++ b/pkgs/development/compilers/openjdk/openjfx/19.nix
@@ -141,5 +141,8 @@ in makePackage {
     description = "The next-generation Java client toolkit";
     maintainers = with maintainers; [ abbradar ];
     platforms = platforms.unix;
+    knownVulnerabilities = [
+      "This OpenJFX version has reached its end of life."
+    ];
   };
 }
diff --git a/pkgs/development/compilers/openjdk/openjfx/20.nix b/pkgs/development/compilers/openjdk/openjfx/20.nix
index 794590dc7e606..648f470a004d5 100644
--- a/pkgs/development/compilers/openjdk/openjfx/20.nix
+++ b/pkgs/development/compilers/openjdk/openjfx/20.nix
@@ -1,5 +1,5 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch, writeText, openjdk17_headless
-, openjdk19_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst
+{ stdenv, lib, fetchFromGitHub, writeText, openjdk17_headless
+, openjdk20_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst
 , libXxf86vm, glib, alsa-lib, ffmpeg_4, python3, ruby, fetchurl, runCommand
 , withMedia ? true
 , withWebKit ? false
@@ -7,8 +7,8 @@
 
 let
   major = "20";
-  update = "";
-  build = "+19";
+  update = ".0.2";
+  build = "-ga";
   repover = "${major}${update}${build}";
   gradle_ = (gradle_7.override {
     # note: gradle does not yet support running on 19
@@ -30,9 +30,9 @@ let
 
     src = fetchFromGitHub {
       owner = "openjdk";
-      repo = "jfx";
+      repo = "jfx20u";
       rev = repover;
-      hash = "sha256-QPPJyl6+XU+m5xqYOFtQKJNNrovqy7ngNE/e7kiEJVU=";
+      hash = "sha256-3Hhz4i8fPU2yowb4roylCXzuO9HkW7ZWF9TMA3HIH9o=";
     };
 
     buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ];
@@ -49,7 +49,7 @@ let
 
     config = writeText "gradle.properties" (''
       CONF = Release
-      JDK_HOME = ${openjdk19_headless.home}
+      JDK_HOME = ${openjdk20_headless.home}
     '' + args.gradleProperties or "");
 
     buildPhase = ''
@@ -111,14 +111,14 @@ in makePackage {
 
   postFixup = ''
     # Remove references to bootstrap.
-    export openjdkOutPath='${openjdk19_headless.outPath}'
+    export openjdkOutPath='${openjdk20_headless.outPath}'
     find "$out" -name \*.so | while read lib; do
       new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')"
       patchelf --set-rpath "$new_refs" "$lib"
     done
   '';
 
-  disallowedReferences = [ openjdk17_headless openjdk19_headless ];
+  disallowedReferences = [ openjdk17_headless openjdk20_headless ];
 
   passthru.deps = deps;
 
@@ -128,5 +128,8 @@ in makePackage {
     description = "The next-generation Java client toolkit";
     maintainers = with maintainers; [ abbradar ];
     platforms = platforms.unix;
+    knownVulnerabilities = [
+      "This OpenJFX version has reached its end of life."
+    ];
   };
 }
diff --git a/pkgs/development/compilers/openjdk/openjfx/21.nix b/pkgs/development/compilers/openjdk/openjfx/21.nix
index f49dbe3b0e985..34693b3f921cf 100644
--- a/pkgs/development/compilers/openjdk/openjfx/21.nix
+++ b/pkgs/development/compilers/openjdk/openjfx/21.nix
@@ -1,5 +1,5 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch, writeText, openjdk17_headless
-, openjdk19_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst
+{ stdenv, lib, fetchFromGitHub, writeText, openjdk17_headless
+, openjdk21_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst
 , libXxf86vm, glib, alsa-lib, ffmpeg_4, python3, ruby, fetchurl, runCommand
 , withMedia ? true
 , withWebKit ? false
@@ -49,7 +49,7 @@ let
 
     config = writeText "gradle.properties" (''
       CONF = Release
-      JDK_HOME = ${openjdk19_headless.home}
+      JDK_HOME = ${openjdk21_headless.home}
     '' + args.gradleProperties or "");
 
     buildPhase = ''
@@ -111,14 +111,14 @@ in makePackage {
 
   postFixup = ''
     # Remove references to bootstrap.
-    export openjdkOutPath='${openjdk19_headless.outPath}'
+    export openjdkOutPath='${openjdk21_headless.outPath}'
     find "$out" -name \*.so | while read lib; do
       new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')"
       patchelf --set-rpath "$new_refs" "$lib"
     done
   '';
 
-  disallowedReferences = [ openjdk17_headless openjdk19_headless ];
+  disallowedReferences = [ openjdk17_headless openjdk21_headless ];
 
   passthru.deps = deps;
 
diff --git a/pkgs/development/compilers/openjdk/openjfx/22.nix b/pkgs/development/compilers/openjdk/openjfx/22.nix
index d585dbdf01413..0ff861ed125d6 100644
--- a/pkgs/development/compilers/openjdk/openjfx/22.nix
+++ b/pkgs/development/compilers/openjdk/openjfx/22.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , fetchurl
 , runCommand
 , writeText
@@ -26,8 +25,8 @@
 
 let
   major = "22";
-  update = "";
-  build = "+30";
+  update = ".0.1";
+  build = "-ga";
   repover = "${major}${update}${build}";
 
   icuVersionWithSep = s: "73${s}1";
@@ -45,9 +44,9 @@ let
 
     src = fetchFromGitHub {
       owner = "openjdk";
-      repo = "jfx";
+      repo = "jfx22u";
       rev = repover;
-      hash = "sha256-sZF7ZPC0kgTTxWgtkxmGtOlfroGPGVZcMw0/wSTJUxQ=";
+      hash = "sha256-VoEufSO+LciUCvoAM86MG1iMjCA3FSb60Ik4OP2Rk/Q=";
     };
 
     buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ];
diff --git a/pkgs/development/compilers/rasm/default.nix b/pkgs/development/compilers/rasm/default.nix
deleted file mode 100644
index c131e4b79980c..0000000000000
--- a/pkgs/development/compilers/rasm/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ lib, stdenv, fetchurl, unzip }:
-
-stdenv.mkDerivation rec {
-  pname = "rasm";
-  version = "0.117";
-
-  src = fetchurl {
-    url = "http://www.roudoudou.com/export/cpc/rasm/${pname}_v0117_src.zip";
-    sha256 = "1hwily4cfays59qm7qd1ax48i7cpbxhs5l9mfpyn7m2lxsfqrl3z";
-  };
-
-  sourceRoot = ".";
-
-  nativeBuildInputs = [ unzip ];
-
-  buildPhase = ''
-      # according to official documentation
-      ${stdenv.cc.targetPrefix}cc rasm_v*.c -O2 -lm -o rasm
-  '';
-
-  installPhase = ''
-    install -Dt $out/bin rasm
-  '';
-
-  meta = with lib; {
-    homepage = "http://www.roudoudou.com/rasm/";
-    description = "Z80 assembler";
-    mainProgram = "rasm";
-    # use -n option to display all licenses
-    license = licenses.mit; # expat version
-    maintainers = with lib.maintainers; [ sigmanificient ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/development/compilers/rust/cargo-auditable.nix b/pkgs/development/compilers/rust/cargo-auditable.nix
index 1cf765b35100d..0b3b6a4ede982 100644
--- a/pkgs/development/compilers/rust/cargo-auditable.nix
+++ b/pkgs/development/compilers/rust/cargo-auditable.nix
@@ -22,11 +22,6 @@ let
 
     cargoHash = "sha256-4o3ctun/8VcBRuj+j0Yaawdkyn6Z6LPp+FTyhPxQWU8=";
 
-    # Cargo.lock is outdated
-    preConfigure = ''
-      cargo update --offline
-    '';
-
     meta = with lib; {
       description = "A tool to make production Rust binaries auditable";
       mainProgram = "cargo-auditable";
diff --git a/pkgs/development/compilers/rust/rustc.nix b/pkgs/development/compilers/rust/rustc.nix
index 4c02692b75bd5..254732ed26035 100644
--- a/pkgs/development/compilers/rust/rustc.nix
+++ b/pkgs/development/compilers/rust/rustc.nix
@@ -192,6 +192,12 @@ in stdenv.mkDerivation (finalAttrs: {
   postPatch = ''
     patchShebangs src/etc
 
+    # rust-lld is the name rustup uses for its bundled lld, so that it
+    # doesn't conflict with any system lld.  This is not an
+    # appropriate default for Nixpkgs, where there is no rust-lld.
+    substituteInPlace compiler/rustc_target/src/spec/*/*.rs \
+      --replace-quiet '"rust-lld"' '"lld"'
+
     ${optionalString (!withBundledLLVM) "rm -rf src/llvm"}
 
     # Useful debugging parameter
diff --git a/pkgs/development/compilers/semeru-bin/generate-sources.py b/pkgs/development/compilers/semeru-bin/generate-sources.py
index da23559955d92..44ad583ab48f7 100755
--- a/pkgs/development/compilers/semeru-bin/generate-sources.py
+++ b/pkgs/development/compilers/semeru-bin/generate-sources.py
@@ -6,10 +6,10 @@ import re
 import requests
 import sys
 
-feature_versions = (8, 11, 16, 17)
+feature_versions = (8, 11, 16, 17, 21)
 oses = ("mac", "linux")
 types = ("jre", "jdk")
-impls = ("openj9")
+impls = ("openj9",)
 
 arch_to_nixos = {
     "x64": ("x86_64",),
diff --git a/pkgs/development/compilers/semeru-bin/jdk-darwin.nix b/pkgs/development/compilers/semeru-bin/jdk-darwin.nix
index f58fec3a84c0d..2e9bde029f2d9 100644
--- a/pkgs/development/compilers/semeru-bin/jdk-darwin.nix
+++ b/pkgs/development/compilers/semeru-bin/jdk-darwin.nix
@@ -3,14 +3,18 @@
 let
   sources = (lib.importJSON ./sources.json).openj9.mac;
   common = opts: callPackage (import ./jdk-darwin-base.nix opts) {};
+
+  EOL = [ "This JDK/JRE version has reached End of Life." ];
 in
 {
   jdk-8 = common { sourcePerArch = sources.jdk.openjdk8; };
   jre-8 = common { sourcePerArch = sources.jre.openjdk8; };
   jdk-11 = common { sourcePerArch = sources.jdk.openjdk11; };
   jre-11 = common { sourcePerArch = sources.jre.openjdk11; };
-  jdk-16 = common { sourcePerArch = sources.jdk.openjdk16; };
-  jre-16 = common { sourcePerArch = sources.jre.openjdk16; };
+  jdk-16 = common { sourcePerArch = sources.jdk.openjdk16; knownVulnerabilities = EOL; };
+  jre-16 = common { sourcePerArch = sources.jre.openjdk16; knownVulnerabilities = EOL; };
   jdk-17 = common { sourcePerArch = sources.jdk.openjdk17; };
   jre-17 = common { sourcePerArch = sources.jre.openjdk17; };
+  jdk-21 = common { sourcePerArch = sources.jdk.openjdk21; };
+  jre-21 = common { sourcePerArch = sources.jre.openjdk21; };
 }
diff --git a/pkgs/development/compilers/semeru-bin/jdk-linux.nix b/pkgs/development/compilers/semeru-bin/jdk-linux.nix
index c80dd991bf042..59c6a4862d913 100644
--- a/pkgs/development/compilers/semeru-bin/jdk-linux.nix
+++ b/pkgs/development/compilers/semeru-bin/jdk-linux.nix
@@ -3,14 +3,18 @@
 let
   sources = (lib.importJSON ./sources.json).openj9.linux;
   common = opts: callPackage (import ./jdk-linux-base.nix opts) {};
+
+  EOL = [ "This JDK/JRE version has reached End of Life." ];
 in
 {
   jdk-8 = common { sourcePerArch = sources.jdk.openjdk8; };
   jre-8 = common { sourcePerArch = sources.jre.openjdk8; };
   jdk-11 = common { sourcePerArch = sources.jdk.openjdk11; };
   jre-11 = common { sourcePerArch = sources.jre.openjdk11; };
-  jdk-16 = common { sourcePerArch = sources.jdk.openjdk16; };
-  jre-16 = common { sourcePerArch = sources.jre.openjdk16; };
+  jdk-16 = common { sourcePerArch = sources.jdk.openjdk16; knownVulnerabilities = EOL; };
+  jre-16 = common { sourcePerArch = sources.jre.openjdk16; knownVulnerabilities = EOL; };
   jdk-17 = common { sourcePerArch = sources.jdk.openjdk17; };
   jre-17 = common { sourcePerArch = sources.jre.openjdk17; };
+  jdk-21 = common { sourcePerArch = sources.jdk.openjdk21; };
+  jre-21 = common { sourcePerArch = sources.jre.openjdk21; };
 }
diff --git a/pkgs/development/compilers/semeru-bin/sources.json b/pkgs/development/compilers/semeru-bin/sources.json
index 5e04fa90af748..ccca4a2ee7ad5 100644
--- a/pkgs/development/compilers/semeru-bin/sources.json
+++ b/pkgs/development/compilers/semeru-bin/sources.json
@@ -4,18 +4,18 @@
       "jdk": {
         "openjdk11": {
           "aarch64": {
-            "build": "8",
-            "sha256": "488739171f84e3949df6ccb1c40eaf1b73541748b123d88780329648d6b383d0",
-            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jdk_aarch64_linux_11.0.16_8_openj9-0.33.0.tar.gz",
-            "version": "11.0.16"
+            "build": "9",
+            "sha256": "23e280da1ce418692323f8aad94069ef34bae6566a98ffd349fc2cbb9fa285af",
+            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.23%2B9_openj9-0.44.0/ibm-semeru-open-jdk_aarch64_linux_11.0.23_9_openj9-0.44.0.tar.gz",
+            "version": "11.0.23"
           },
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "eeca01d4e245a001d01663c5c20a8d50ef3d572b47a9b3689a5154f2a37bf005",
-            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jdk_x64_linux_11.0.16_8_openj9-0.33.0.tar.gz",
-            "version": "11.0.16"
+            "build": "9",
+            "sha256": "033261124af247f944f820cad158df2b9db58945b4998750258c37d62fac99ff",
+            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.23%2B9_openj9-0.44.0/ibm-semeru-open-jdk_x64_linux_11.0.23_9_openj9-0.44.0.tar.gz",
+            "version": "11.0.23"
           }
         },
         "openjdk16": {
@@ -36,52 +36,68 @@
         },
         "openjdk17": {
           "aarch64": {
-            "build": "8",
-            "sha256": "18d291411ee4a956018b4dcefe436971e73694128782617f1b44beca991956c5",
-            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jdk_aarch64_linux_17.0.4_8_openj9-0.33.0.tar.gz",
-            "version": "17.0.4"
+            "build": "9",
+            "sha256": "cfdff21ce44ae6af494cba75c1f323bef83a982f2c11944988bab2125f85b906",
+            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.9%2B9_openj9-0.41.0/ibm-semeru-open-jdk_aarch64_linux_17.0.9_9_openj9-0.41.0.tar.gz",
+            "version": "17.0.9"
           },
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "78ae15d9e01fce3a473f4d6a90c331fb766211b950931088c2a85590f178ad39",
-            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jdk_x64_linux_17.0.4_8_openj9-0.33.0.tar.gz",
-            "version": "17.0.4"
+            "build": "9",
+            "sha256": "9b945e58f024108a20eb907015cca4a452332b7644e8dd8e051149a3ec62e3a3",
+            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.9%2B9_openj9-0.41.0/ibm-semeru-open-jdk_x64_linux_17.0.9_9_openj9-0.41.0.tar.gz",
+            "version": "17.0.9"
+          }
+        },
+        "openjdk21": {
+          "aarch64": {
+            "build": "9",
+            "sha256": "718e465d1b22034d889445e8ae371fc58dfc733c454cf344fa5e10db0ab8a775",
+            "url": "https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.3%2B9_openj9-0.44.0/ibm-semeru-open-jdk_aarch64_linux_21.0.3_9_openj9-0.44.0.tar.gz",
+            "version": "21.0.3"
+          },
+          "packageType": "jdk",
+          "vmType": "openj9",
+          "x86_64": {
+            "build": "9",
+            "sha256": "5cccb39dc7ca6c61a11bd7179c4c3c30b747f9f22129576feef921b59725af25",
+            "url": "https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.3%2B9_openj9-0.44.0/ibm-semeru-open-jdk_x64_linux_21.0.3_9_openj9-0.44.0.tar.gz",
+            "version": "21.0.3"
           }
         },
         "openjdk8": {
           "aarch64": {
-            "build": "01",
-            "sha256": "6b89e648899709459b7c7dbe0a5b1ea480a88da84c6163f01255d638dbdd051b",
-            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/8u345-b01_openj9-0.33.0/ibm-semeru-open-jdk_aarch64_linux_8u345b01_openj9-0.33.0.tar.gz",
-            "version": "8.0.345"
+            "build": "08",
+            "sha256": "2baa88e7ed0ea9f72310fb4adfe99ee06fdb514cc04517b0e0be3c0646493ea3",
+            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk8u412-b08_openj9-0.44.0/ibm-semeru-open-jdk_aarch64_linux_8u412b08_openj9-0.44.0.tar.gz",
+            "version": "8.0.412"
           },
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "01",
-            "sha256": "82c8232a5cb420246457d65a5014602feb8b288079cdae896e22a2eb6e390b58",
-            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/8u345-b01_openj9-0.33.0/ibm-semeru-open-jdk_x64_linux_8u345b01_openj9-0.33.0.tar.gz",
-            "version": "8.0.345"
+            "build": "08",
+            "sha256": "85af2c57078aab240ce31ba3f7a8e86696ff5bdf4c30f3c37f107986f07b23a6",
+            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk8u412-b08_openj9-0.44.0/ibm-semeru-open-jdk_x64_linux_8u412b08_openj9-0.44.0.tar.gz",
+            "version": "8.0.412"
           }
         }
       },
       "jre": {
         "openjdk11": {
           "aarch64": {
-            "build": "8",
-            "sha256": "49dc05a3e9f3f99c5f8fa466261aa3e33a753694c67cabfa7d3f682e5a2e3685",
-            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jre_aarch64_linux_11.0.16_8_openj9-0.33.0.tar.gz",
-            "version": "11.0.16"
+            "build": "9",
+            "sha256": "8613dc2b6c403f48d2a8e25da92ab9f8a7b5dd63cb81d1917e4cb070ae371557",
+            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.23%2B9_openj9-0.44.0/ibm-semeru-open-jre_aarch64_linux_11.0.23_9_openj9-0.44.0.tar.gz",
+            "version": "11.0.23"
           },
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "ba09711193b8b8664478f3f949b5320232f65c1bdf61f32a885d84de73c02767",
-            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jre_x64_linux_11.0.16_8_openj9-0.33.0.tar.gz",
-            "version": "11.0.16"
+            "build": "9",
+            "sha256": "b9558416d6d773fce0d9b4d3f875fdfc5ffc1afd922570b0f7a6f7cbab7468ab",
+            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.23%2B9_openj9-0.44.0/ibm-semeru-open-jre_x64_linux_11.0.23_9_openj9-0.44.0.tar.gz",
+            "version": "11.0.23"
           }
         },
         "openjdk16": {
@@ -102,34 +118,50 @@
         },
         "openjdk17": {
           "aarch64": {
-            "build": "8",
-            "sha256": "6c40c1e0d7ee0509c44465e9f26dd970904137a95fd751e6447b1d6a9ef5092a",
-            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jre_aarch64_linux_17.0.4_8_openj9-0.33.0.tar.gz",
-            "version": "17.0.4"
+            "build": "9",
+            "sha256": "9760aa27a5790a8c20a702ff5f036535f3df51d3fb291bb5254b5ae76e096bad",
+            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.9%2B9_openj9-0.41.0/ibm-semeru-open-jre_aarch64_linux_17.0.9_9_openj9-0.41.0.tar.gz",
+            "version": "17.0.9"
+          },
+          "packageType": "jre",
+          "vmType": "openj9",
+          "x86_64": {
+            "build": "9",
+            "sha256": "1caf409f33f7738efe37742197525b5ae6244d6383b2017e7b8e925dc0b6a329",
+            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.9%2B9_openj9-0.41.0/ibm-semeru-open-jre_x64_linux_17.0.9_9_openj9-0.41.0.tar.gz",
+            "version": "17.0.9"
+          }
+        },
+        "openjdk21": {
+          "aarch64": {
+            "build": "9",
+            "sha256": "0222dc3749e1c94bd1b047cdb02eb18310aefd9f7965b66196da06e4e3844b7a",
+            "url": "https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.3%2B9_openj9-0.44.0/ibm-semeru-open-jre_aarch64_linux_21.0.3_9_openj9-0.44.0.tar.gz",
+            "version": "21.0.3"
           },
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "b2c176f8aa8cc7138d4c22ce9298d8f49597e1d8e3fdd33125898e5ee0182c93",
-            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jre_x64_linux_17.0.4_8_openj9-0.33.0.tar.gz",
-            "version": "17.0.4"
+            "build": "9",
+            "sha256": "b831e8c418374ccec13c51f60c36f4c32266f3cc83cb31f32286f89c26d66e00",
+            "url": "https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.3%2B9_openj9-0.44.0/ibm-semeru-open-jre_x64_linux_21.0.3_9_openj9-0.44.0.tar.gz",
+            "version": "21.0.3"
           }
         },
         "openjdk8": {
           "aarch64": {
-            "build": "01",
-            "sha256": "03caff41622e84a6e7fa66a225414a9b6eefb38dd215f830cae0bc4bbfc55b5c",
-            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/8u345-b01_openj9-0.33.0/ibm-semeru-open-jre_aarch64_linux_8u345b01_openj9-0.33.0.tar.gz",
-            "version": "8.0.345"
+            "build": "08",
+            "sha256": "08a41a48b79881590d65a09c62c56d8bcd9b8453f03420bcfd5dd3165bbba3c1",
+            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk8u412-b08_openj9-0.44.0/ibm-semeru-open-jre_aarch64_linux_8u412b08_openj9-0.44.0.tar.gz",
+            "version": "8.0.412"
           },
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "01",
-            "sha256": "0d4fe62716b9da2ccce324b5b46d57e8d47e5dfb5d128f87e16135ee9bc36cdc",
-            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/8u345-b01_openj9-0.33.0/ibm-semeru-open-jre_x64_linux_8u345b01_openj9-0.33.0.tar.gz",
-            "version": "8.0.345"
+            "build": "08",
+            "sha256": "ac5022b52b33b22c51d8370655f6157fd999e5e24c6525f91d1e778f34abcb8b",
+            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk8u412-b08_openj9-0.44.0/ibm-semeru-open-jre_x64_linux_8u412b08_openj9-0.44.0.tar.gz",
+            "version": "8.0.412"
           }
         }
       }
@@ -138,18 +170,18 @@
       "jdk": {
         "openjdk11": {
           "aarch64": {
-            "build": "8",
-            "sha256": "9881b292142a129f6f5c6b21608b090f8f94625052b4f7d0ce5bd982c054ca2e",
-            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jdk_aarch64_mac_11.0.16_8_openj9-0.33.0.tar.gz",
-            "version": "11.0.16"
+            "build": "9",
+            "sha256": "451336700a8b219d219e2e3b26b60154c44e8ab209056cc3466b0fcd4b15e53d",
+            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.23%2B9_openj9-0.44.0/ibm-semeru-open-jdk_aarch64_mac_11.0.23_9_openj9-0.44.0.tar.gz",
+            "version": "11.0.23"
           },
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "8638735d2cae3efff212f898728685380355bb0a298076e9e46244d0bf3d4a64",
-            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jdk_x64_mac_11.0.16_8_openj9-0.33.0.tar.gz",
-            "version": "11.0.16"
+            "build": "9",
+            "sha256": "6a225f3024d1919528107ece20256e8a8594523ea2204d93a041c012cbf1e2d2",
+            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.23%2B9_openj9-0.44.0/ibm-semeru-open-jdk_x64_mac_11.0.23_9_openj9-0.44.0.tar.gz",
+            "version": "11.0.23"
           }
         },
         "openjdk16": {
@@ -164,46 +196,62 @@
         },
         "openjdk17": {
           "aarch64": {
-            "build": "8",
-            "sha256": "bf22628b54115dff9939b94751531544ab735b7cbbc8d6ddfe83d1b04df3a532",
-            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jdk_aarch64_mac_17.0.4_8_openj9-0.33.0.tar.gz",
-            "version": "17.0.4"
+            "build": "9",
+            "sha256": "5fed15250cb613a4024f2b2e75ccb54e6526ffa5ff78d955a6e2a11ae330f003",
+            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.9%2B9_openj9-0.41.0/ibm-semeru-open-jdk_aarch64_mac_17.0.9_9_openj9-0.41.0.tar.gz",
+            "version": "17.0.9"
           },
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "a935f20564e347a9292955c04eb57e51efdb1853ae7f0b4fe759b22c9fe248be",
-            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jdk_x64_mac_17.0.4_8_openj9-0.33.0.tar.gz",
-            "version": "17.0.4"
+            "build": "9",
+            "sha256": "585f48be83935a44ef980249aaab024119d4ea6ef0937a2cd2d97d0c77cda1c2",
+            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.9%2B9_openj9-0.41.0/ibm-semeru-open-jdk_x64_mac_17.0.9_9_openj9-0.41.0.tar.gz",
+            "version": "17.0.9"
+          }
+        },
+        "openjdk21": {
+          "aarch64": {
+            "build": "9",
+            "sha256": "a95896a4ca7b69050a25b1557520f430abc66d098e9fd15cd394e20c4c93e5cf",
+            "url": "https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.3%2B9_openj9-0.44.0/ibm-semeru-open-jdk_aarch64_mac_21.0.3_9_openj9-0.44.0.tar.gz",
+            "version": "21.0.3"
+          },
+          "packageType": "jdk",
+          "vmType": "openj9",
+          "x86_64": {
+            "build": "9",
+            "sha256": "95640346ef677fbdbf40efa0298cc61314cffed0c43d1b3bd329b84d445db869",
+            "url": "https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.3%2B9_openj9-0.44.0/ibm-semeru-open-jdk_x64_mac_21.0.3_9_openj9-0.44.0.tar.gz",
+            "version": "21.0.3"
           }
         },
         "openjdk8": {
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "01",
-            "sha256": "c69086950c006b17484a70ef7bc85e92d121be15e69e282e1446fd238d42b6b4",
-            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/8u345-b01_openj9-0.33.0/ibm-semeru-open-jdk_x64_mac_8u345b01_openj9-0.33.0.tar.gz",
-            "version": "8.0.345"
+            "build": "08",
+            "sha256": "4e8a34442fc0c1c1288ca4d251ecfe744c201ec6494103d8dafa52e785d3f8ae",
+            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk8u412-b08_openj9-0.44.0/ibm-semeru-open-jdk_x64_mac_8u412b08_openj9-0.44.0.tar.gz",
+            "version": "8.0.412"
           }
         }
       },
       "jre": {
         "openjdk11": {
           "aarch64": {
-            "build": "8",
-            "sha256": "39802020896476342dc11486e3cbdf10f6311c172abeb4a1e2931b472da4417e",
-            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jre_aarch64_mac_11.0.16_8_openj9-0.33.0.tar.gz",
-            "version": "11.0.16"
+            "build": "9",
+            "sha256": "be6ba7e6904e8ca2fab9dab38607af1e4d36f6a391584eb8c4de0804493f3626",
+            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.23%2B9_openj9-0.44.0/ibm-semeru-open-jre_aarch64_mac_11.0.23_9_openj9-0.44.0.tar.gz",
+            "version": "11.0.23"
           },
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "92f87a3c2fb5fe60d3d51020ff95b9c234b2ae2677b79aebbe749dda717c9cdd",
-            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jre_x64_mac_11.0.16_8_openj9-0.33.0.tar.gz",
-            "version": "11.0.16"
+            "build": "9",
+            "sha256": "9f9505e9ee5082c070de965c790d51758a9969b7bb9ca49057d0d5afb5cfc99b",
+            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.23%2B9_openj9-0.44.0/ibm-semeru-open-jre_x64_mac_11.0.23_9_openj9-0.44.0.tar.gz",
+            "version": "11.0.23"
           }
         },
         "openjdk16": {
@@ -218,28 +266,44 @@
         },
         "openjdk17": {
           "aarch64": {
-            "build": "8",
-            "sha256": "4057c94cd46b814cc5a4d683d5f0b95dbd0b9e13e8c2e11155561ad0d8bec85b",
-            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jre_aarch64_mac_17.0.4_8_openj9-0.33.0.tar.gz",
-            "version": "17.0.4"
+            "build": "9",
+            "sha256": "fbd093ab7218c916aa4f49ac851635020dd1c8a98a98158fc44a6565e3d182ed",
+            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.9%2B9_openj9-0.41.0/ibm-semeru-open-jre_aarch64_mac_17.0.9_9_openj9-0.41.0.tar.gz",
+            "version": "17.0.9"
+          },
+          "packageType": "jre",
+          "vmType": "openj9",
+          "x86_64": {
+            "build": "9",
+            "sha256": "f5781de29132c04f54341349e99954ec3cfbdbc65fdebdd00feff47c68793299",
+            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.9%2B9_openj9-0.41.0/ibm-semeru-open-jre_x64_mac_17.0.9_9_openj9-0.41.0.tar.gz",
+            "version": "17.0.9"
+          }
+        },
+        "openjdk21": {
+          "aarch64": {
+            "build": "9",
+            "sha256": "55650c3825a22dc1caabf672ee8e2ef3ce4cee32df92e7317780d3eae18f17a5",
+            "url": "https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.3%2B9_openj9-0.44.0/ibm-semeru-open-jre_aarch64_mac_21.0.3_9_openj9-0.44.0.tar.gz",
+            "version": "21.0.3"
           },
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "8e957d2eb47eaca64516ac669272c6e5186155ed8ee4d6a77e0d4b7811cd7bb6",
-            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jre_x64_mac_17.0.4_8_openj9-0.33.0.tar.gz",
-            "version": "17.0.4"
+            "build": "9",
+            "sha256": "4b4d6da4da96dfa233d0c262bcaecb15b29162a81c802179f56e4084141c6fd8",
+            "url": "https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.3%2B9_openj9-0.44.0/ibm-semeru-open-jre_x64_mac_21.0.3_9_openj9-0.44.0.tar.gz",
+            "version": "21.0.3"
           }
         },
         "openjdk8": {
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "01",
-            "sha256": "019e08dea8fbd54517dacbeac791d85717902800dd8bba77fbca1dfc6b0abd9e",
-            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/8u345-b01_openj9-0.33.0/ibm-semeru-open-jre_x64_mac_8u345b01_openj9-0.33.0.tar.gz",
-            "version": "8.0.345"
+            "build": "08",
+            "sha256": "baf7d026012acc234fb1c2e64adf544a84449c856ee25a130c5aec32fbe34e3a",
+            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk8u412-b08_openj9-0.44.0/ibm-semeru-open-jre_x64_mac_8u412b08_openj9-0.44.0.tar.gz",
+            "version": "8.0.412"
           }
         }
       }
diff --git a/pkgs/development/compilers/solc/default.nix b/pkgs/development/compilers/solc/default.nix
index 0603706164ae6..2147d59ffd933 100644
--- a/pkgs/development/compilers/solc/default.nix
+++ b/pkgs/development/compilers/solc/default.nix
@@ -3,7 +3,6 @@
 , boost
 , cmake
 , coreutils
-, fetchpatch
 , jq
 , ncurses
 , python3
diff --git a/pkgs/development/compilers/souffle/default.nix b/pkgs/development/compilers/souffle/default.nix
index 68ceb1a7d7f64..770d84573dbef 100644
--- a/pkgs/development/compilers/souffle/default.nix
+++ b/pkgs/development/compilers/souffle/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch
+{ lib, stdenv, fetchFromGitHub
 , bash-completion, perl, ncurses, zlib, sqlite, libffi
 , mcpp, cmake, bison, flex, doxygen, graphviz
 , makeWrapper
diff --git a/pkgs/development/compilers/vala/default.nix b/pkgs/development/compilers/vala/default.nix
index a7041bfc6a299..1b880b61a05a1 100644
--- a/pkgs/development/compilers/vala/default.nix
+++ b/pkgs/development/compilers/vala/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, fetchpatch, pkg-config, flex, bison, libxslt, autoconf, autoreconfHook
+{ stdenv, lib, fetchurl, pkg-config, flex, bison, libxslt, autoconf, autoreconfHook
 , gnome, graphviz, glib, libiconv, libintl, libtool, expat, substituteAll, vala, gobject-introspection
 }:
 
diff --git a/pkgs/development/coq-modules/graph-theory/default.nix b/pkgs/development/coq-modules/graph-theory/default.nix
index 0d28bbc0527f0..6554b811f4b95 100644
--- a/pkgs/development/coq-modules/graph-theory/default.nix
+++ b/pkgs/development/coq-modules/graph-theory/default.nix
@@ -8,12 +8,14 @@ mkCoqDerivation {
   release."0.9.1".sha256 = "sha256-lRRY+501x+DqNeItBnbwYIqWLDksinWIY4x/iojRNYU=";
   release."0.9.2".sha256 = "sha256-DPYCZS8CzkfgpR+lmYhV2v20ezMtyWp8hdWpuh0OOQU=";
   release."0.9.3".sha256 = "sha256-9WX3gsw+4btJLqcGg2W+7Qy+jaZtkfw7vCp8sXYmaWw=";
+  release."0.9.4".sha256 = "sha256-fXTAsRdPisNhg8Umaa7S7gZ1M8zuPGg426KP9fAkmXQ=";
 
   releaseRev = v: "v${v}";
 
   inherit version;
   defaultVersion = with lib.versions; lib.switch [ coq.coq-version mathcomp.version ] [
-    { cases = [ (isGe "8.16") (range "2.0.0" "2.1.0") ]; out = "0.9.3"; }
+    { cases = [ (isGe "8.16") (range "2.0.0" "2.2.0") ]; out = "0.9.4"; }
+    { cases = [ (range "8.16" "8.18") (range "2.0.0"  "2.1.0" ) ]; out = "0.9.3"; }
     { cases = [ (range "8.14" "8.18") (range "1.13.0" "1.18.0") ]; out = "0.9.2"; }
     { cases = [ (range "8.14" "8.16") (range "1.13.0" "1.14.0") ]; out = "0.9.1"; }
     { cases = [ (range "8.12" "8.13") (range "1.12.0" "1.14.0") ]; out = "0.9"; }
diff --git a/pkgs/development/coq-modules/mathcomp-infotheo/default.nix b/pkgs/development/coq-modules/mathcomp-infotheo/default.nix
index 6a14e67844c8d..cc7d6973c4689 100644
--- a/pkgs/development/coq-modules/mathcomp-infotheo/default.nix
+++ b/pkgs/development/coq-modules/mathcomp-infotheo/default.nix
@@ -7,10 +7,12 @@
   inherit version;
 
   defaultVersion = with lib.versions; lib.switch [ coq.version mathcomp-analysis.version] [
+    { cases = [ (isGe "8.17") (isGe "1.0") ];                    out = "0.7.1"; }
     { cases = [ (isGe "8.17") (range "0.6.6" "0.7.0") ];         out = "0.6.1"; }
     { cases = [ (range "8.17" "8.18") (range "0.6.0" "0.6.7") ]; out = "0.5.2"; }
     { cases = [ (range "8.15" "8.16") (range "0.5.4" "0.6.5") ]; out = "0.5.1"; }
   ] null;
+  release."0.7.1".sha256 = "sha256-/4Elb35SmscG6EjEcHYDo+AmWrpBUlygZL0WhaD+fcY=";
   release."0.6.1".sha256 = "sha256-tFB5lrwRPIlHkP+ebgcJwu03Cc9yVaOINOAo8Bf2LT4=";
   release."0.5.1".sha256 = "sha256-yBBl5l+V+dggsg5KM59Yo9CULKog/xxE8vrW+ZRnX7Y=";
   release."0.5.2".sha256 = "sha256-8WAnAV53c0pMTdwj8XcUDUkLZbpUgIQbEOgOb63uHQA=";
diff --git a/pkgs/development/haskell-modules/cabal2nix-unstable.nix b/pkgs/development/haskell-modules/cabal2nix-unstable.nix
index b16a9abfe8a2e..55894a0ea2a90 100644
--- a/pkgs/development/haskell-modules/cabal2nix-unstable.nix
+++ b/pkgs/development/haskell-modules/cabal2nix-unstable.nix
@@ -8,10 +8,10 @@
 }:
 mkDerivation {
   pname = "cabal2nix";
-  version = "unstable-2024-04-21";
+  version = "unstable-2024-05-20";
   src = fetchzip {
-    url = "https://github.com/NixOS/cabal2nix/archive/f8e6bf749a158a5ed866c57deee907b5f16c38e5.tar.gz";
-    sha256 = "0c73mvza65iy46fv8c8cadsy7klk4jzmimm1mfdavvm8i2cr5476";
+    url = "https://github.com/NixOS/cabal2nix/archive/79b73778680e2ae27302dce430beee302299f496.tar.gz";
+    sha256 = "0xjrnf9x1f4jl4bsxc6kv5q7rsbn3vs0ddidj9qf6mzzzqxq14p3";
   };
   postUnpack = "sourceRoot+=/cabal2nix; echo source root reset to $sourceRoot";
   isLibrary = true;
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index 5e99af26502fd..552e5309cdb6e 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -423,22 +423,22 @@ self: super: {
 
   # Manually maintained
   cachix-api = overrideCabal (drv: {
-    version = "1.7.3";
+    version = "1.7.4";
     src = pkgs.fetchFromGitHub {
       owner = "cachix";
       repo = "cachix";
-      rev = "v1.7.3";
-      sha256 = "sha256-BBhOFK4OuCD7ilNrdfeAILBR2snxl29gBk58szZ4460=";
+      rev = "v1.7.4";
+      sha256 = "sha256-lHy5kgx6J8uD+16SO47dPrbob98sh+W1tf4ceSqPVK4=";
     };
     postUnpack = "sourceRoot=$sourceRoot/cachix-api";
   }) super.cachix-api;
   cachix = (overrideCabal (drv: {
-    version = "1.7.3";
+    version = "1.7.4";
     src = pkgs.fetchFromGitHub {
       owner = "cachix";
       repo = "cachix";
-      rev = "v1.7.3";
-      sha256 = "sha256-BBhOFK4OuCD7ilNrdfeAILBR2snxl29gBk58szZ4460=";
+      rev = "v1.7.4";
+      sha256 = "sha256-lHy5kgx6J8uD+16SO47dPrbob98sh+W1tf4ceSqPVK4=";
     };
     postUnpack = "sourceRoot=$sourceRoot/cachix";
   }) (lib.pipe
@@ -448,13 +448,6 @@ self: super: {
         [
          (addBuildTool self.hercules-ci-cnix-store.nixPackage)
          (addBuildTool pkgs.buildPackages.pkg-config)
-         (addBuildDepend self.immortal)
-         # should be removed once hackage packages catch up
-         (addBuildDepend self.crypton)
-         (addBuildDepend self.generic-lens)
-         (addBuildDepend self.amazonka)
-         (addBuildDepend self.amazonka-core)
-         (addBuildDepend self.amazonka-s3)
         ]
   ));
 
diff --git a/pkgs/development/haskell-modules/configuration-darwin.nix b/pkgs/development/haskell-modules/configuration-darwin.nix
index ee3f0503d994b..701c86200bd51 100644
--- a/pkgs/development/haskell-modules/configuration-darwin.nix
+++ b/pkgs/development/haskell-modules/configuration-darwin.nix
@@ -325,6 +325,14 @@ self: super: ({
     libraryHaskellDepends = with self; [ base bytestring jsaddle-wkwebview reflex reflex-dom-core text ]; # cabal2nix doesn't add darwin-only deps
   }) super.reflex-dom;
 
+  # Remove a problematic assert, the length is sometimes 1 instead of 2 on darwin
+  di-core = overrideCabal (drv: {
+    preConfigure = ''
+      substituteInPlace test/Main.hs --replace \
+        "2 @=? List.length (List.nub (List.sort (map Di.log_time logs)))" ""
+    '';
+  }) super.di-core;
+
 } // lib.optionalAttrs pkgs.stdenv.isAarch64 {  # aarch64-darwin
 
   # https://github.com/fpco/unliftio/issues/87
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
index b19a5e9b1d904..4a194192ee4b4 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
@@ -95,7 +95,7 @@ self: super: {
   ghc-lib-parser-ex = addBuildDepend self.ghc-lib-parser super.ghc-lib-parser-ex;
 
   # This became a core library in ghc 8.10., so we don’t have an "exception" attribute anymore.
-  exceptions = self.exceptions_0_10_7;
+  exceptions = self.exceptions_0_10_8;
 
   # vector 0.12.2 indroduced doctest checks that don’t work on older compilers
   vector = dontCheck super.vector;
diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix
index 551a0ee99baee..5248e2d3ab918 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix
@@ -59,8 +59,8 @@ self: super: {
   megaparsec = doDistribute self.megaparsec_9_6_1;
   # TODO: remove when aeson updates or launches a revision
   # see https://github.com/haskell/aeson/issues/1089 and https://github.com/haskell/aeson/pulls/1088
-  aeson = doJailbreak (doDistribute self.aeson_2_2_1_0);
-  attoparsec-aeson = doDistribute self.attoparsec-aeson_2_2_0_1;
+  aeson = doJailbreak (doDistribute self.aeson_2_2_2_0);
+  attoparsec-aeson = doDistribute self.attoparsec-aeson_2_2_2_0;
   xmonad = doDistribute self.xmonad_0_18_0;
   apply-refact = self.apply-refact_0_14_0_0;
   ormolu = self.ormolu_0_7_4_0;
diff --git a/pkgs/development/haskell-modules/configuration-ghcjs.nix b/pkgs/development/haskell-modules/configuration-ghcjs.nix
index f90f3094ab9e4..c74fdb09232c2 100644
--- a/pkgs/development/haskell-modules/configuration-ghcjs.nix
+++ b/pkgs/development/haskell-modules/configuration-ghcjs.nix
@@ -27,7 +27,7 @@ self: super:
   # GHCJS does not ship with the same core packages as GHC.
   # https://github.com/ghcjs/ghcjs/issues/676
   stm = doJailbreak self.stm_2_5_3_1;
-  exceptions = dontCheck self.exceptions_0_10_7;
+  exceptions = dontCheck self.exceptions_0_10_8;
 
 ## OTHER PACKAGES
 
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
index d2fd55ccc26ac..d97a98caf77fc 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
@@ -742,6 +742,7 @@ broken-packages:
   - changelog-d # failure in job https://hydra.nixos.org/build/257082502 at 2024-04-27
   - changelog-d # failure in job https://hydra.nixos.org/build/259607598 at 2024-05-15
   - changelog-d # failure in job https://hydra.nixos.org/build/259957724 at 2024-05-19
+  - changelog-d # failure in job https://hydra.nixos.org/build/260724402 at 2024-05-25
   - changelogged # failure in job https://hydra.nixos.org/build/233211675 at 2023-09-02
   - character-cases # failure in job https://hydra.nixos.org/build/233197636 at 2023-09-02
   - charter # failure in job https://hydra.nixos.org/build/233237264 at 2023-09-02
@@ -764,7 +765,6 @@ broken-packages:
   - ChristmasTree # failure in job https://hydra.nixos.org/build/233259648 at 2023-09-02
   - chronograph # failure in job https://hydra.nixos.org/build/233232822 at 2023-09-02
   - chr-parse # failure in job https://hydra.nixos.org/build/233243933 at 2023-09-02
-  - chs-cabal # failure in job https://hydra.nixos.org/build/259964491 at 2024-05-19
   - chunky # failure in job https://hydra.nixos.org/build/233216440 at 2023-09-02
   - church # failure in job https://hydra.nixos.org/build/233223920 at 2023-09-02
   - church-maybe # failure in job https://hydra.nixos.org/build/233258572 at 2023-09-02
@@ -1992,6 +1992,7 @@ broken-packages:
   - ghci-history-parser # failure in job https://hydra.nixos.org/build/233204448 at 2023-09-02
   - ghci-lib # failure in job https://hydra.nixos.org/build/233216644 at 2023-09-02
   - ghci-ng # failure in job https://hydra.nixos.org/build/233229533 at 2023-09-02
+  - ghc-internal # failure in job https://hydra.nixos.org/build/260723678 at 2024-05-25
   - ghcitui # failure in job https://hydra.nixos.org/build/252737339 at 2024-03-16
   - ghcjs-base-stub # timeout
   - ghcjs-dom-javascript # failure in job https://hydra.nixos.org/build/255688382 at 2024-04-16
@@ -4119,6 +4120,7 @@ broken-packages:
   - non-empty-zipper # failure in job https://hydra.nixos.org/build/233244341 at 2023-09-02
   - nonlinear-optimization # failure in job https://hydra.nixos.org/build/233204674 at 2023-09-02
   - noodle # failure in job https://hydra.nixos.org/build/233195125 at 2023-09-02
+  - no-recursion # failure in job https://hydra.nixos.org/build/260711915 at 2024-05-25
   - normalization-insensitive # failure in job https://hydra.nixos.org/build/233239612 at 2023-09-02
   - no-role-annots # failure in job https://hydra.nixos.org/build/233229589 at 2023-09-02
   - notcpp # failure in job https://hydra.nixos.org/build/233216543 at 2023-09-02
@@ -4933,6 +4935,7 @@ broken-packages:
   - readline-statevar # failure in job https://hydra.nixos.org/build/233226053 at 2023-09-02
   - readme-lhs # failure in job https://hydra.nixos.org/build/233248229 at 2023-09-02
   - readshp # failure in job https://hydra.nixos.org/build/233197835 at 2023-09-02
+  - real-dice # failure in job https://hydra.nixos.org/build/260725788 at 2024-05-25
   - really-simple-xml-parser # failure in job https://hydra.nixos.org/build/233195945 at 2023-09-02
   - reanimate-svg # failure in job https://hydra.nixos.org/build/233242271 at 2023-09-02
   - reasonable-lens # failure in job https://hydra.nixos.org/build/233233111 at 2023-09-02
@@ -5795,7 +5798,6 @@ broken-packages:
   - supplemented # failure in job https://hydra.nixos.org/build/233237397 at 2023-09-02
   - supply-chain-core # failure in job https://hydra.nixos.org/build/252715612 at 2024-03-16
   - surjective # failure in job https://hydra.nixos.org/build/233242908 at 2023-09-02
-  - sv2v # failure in job https://hydra.nixos.org/build/233190750 at 2023-09-02
   - sv-core # failure in job https://hydra.nixos.org/build/233217245 at 2023-09-02
   - SVD2HS # failure in job https://hydra.nixos.org/build/233248575 at 2023-09-02
   - svfactor # failure in job https://hydra.nixos.org/build/233256743 at 2023-09-02
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
index 2e34bb560adbb..d5be691e5969f 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
@@ -35,6 +35,7 @@ default-package-overrides:
   - extensions < 0.1.0.2 # Incompatible with Cabal < 3.12, the newest extensions version is only needed on ghc 9.10
   # 2024-05-10: need to match hlegder from stackage
   - hledger-ui < 1.33
+  - chs-cabal < 0.1.1.2 # Incompatible with Cabal < 3.12
 
 
 extra-packages:
@@ -64,6 +65,7 @@ extra-packages:
   - ghc-exactprint == 0.6.*             # 2022-12-12: needed for GHC < 9.2
   - ghc-exactprint == 1.5.*             # 2023-03-30: needed for GHC == 9.2
   - ghc-exactprint == 1.6.*             # 2023-03-30: needed for GHC == 9.4
+  - ghc-exactprint == 1.8.*             # 2024-05-20: needed for GHC == 9.8
   - ghc-lib == 9.2.*                    # 2022-02-17: preserve for GHC 9.2
   - ghc-lib-parser == 9.2.*             # 2022-02-17: preserve for GHC 9.2
   - ghc-lib-parser == 9.8.*             # 2024-05-19: preserve for GHC 9.8
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
index 7588586a25a39..b048efbfb5455 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
@@ -532,7 +532,6 @@ dont-distribute-packages:
  - apotiki
  - approx-rand-test
  - arbor-monad-metric-datadog
- - archive-libarchive
  - archive-tar-bytestring
  - archlinux-web
  - arduino-copilot
@@ -617,6 +616,7 @@ dont-distribute-packages:
  - bamstats
  - barley
  - base32-bytestring
+ - base_4_20_0_0
  - baserock-schema
  - basic
  - batchd
@@ -637,6 +637,7 @@ dont-distribute-packages:
  - bearriver
  - beautifHOL
  - bech32-th
+ - bech32-th_1_1_7
  - bein
  - belka
  - bff
@@ -1514,6 +1515,7 @@ dont-distribute-packages:
  - geolite-csv
  - getemx
  - ghc-dump-util
+ - ghc-experimental
  - ghc-imported-from
  - ghc-instances
  - ghc-mod
@@ -2567,7 +2569,6 @@ dont-distribute-packages:
  - lha
  - lhae
  - lhe
- - libarchive
  - libconfig
  - libcspm
  - libgraph
@@ -2817,7 +2818,6 @@ dont-distribute-packages:
  - mps
  - mptcp-pm
  - mptcpanalyzer
- - ms-tds
  - msgpack-aeson
  - msgpack-arbitrary
  - msgpack-binary
@@ -2827,7 +2827,6 @@ dont-distribute-packages:
  - msgpack-rpc-conduit
  - msgpack-testsuite
  - msi-kb-backlit
- - mssql-simple
  - mstate
  - mtgoxapi
  - mu-avro
@@ -4228,6 +4227,7 @@ dont-distribute-packages:
  - werewolf-slack
  - wgpu-hs
  - what4
+ - what4_1_6
  - wheb-mongo
  - wheb-redis
  - wheb-strapped
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index 4f3617628fc67..7496c31cd5601 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -822,6 +822,8 @@ self: {
        pname = "Agda";
        version = "2.6.4.3";
        sha256 = "18h3vwj182sp6pkh4274x0b3qg3cn3v0571jicabqhvxqmpckvbl";
+       revision = "1";
+       editedCabalFile = "0z1zbj4gba5xqgrb3lz3fpmsv6mv8zyrhvl4338k8xc22m5ns1m8";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -6385,8 +6387,8 @@ self: {
      }:
      mkDerivation {
        pname = "FiniteCategories";
-       version = "0.6.4.0";
-       sha256 = "10j6bipj0z86q87fnfd9iq2s43n2dixhfzh8y3yv18hs5jf4cgi0";
+       version = "0.6.5.0";
+       sha256 = "00vdcd8lliwril814r9da57cdjfkq6fpa613j2kadhx9bic5rphs";
        libraryHaskellDepends = [
          base containers directory filepath random text WeakSets
        ];
@@ -17422,6 +17424,27 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "PyF_0_11_3_0" = callPackage
+    ({ mkDerivation, base, bytestring, deepseq, filepath, ghc, hspec
+     , HUnit, mtl, parsec, process, template-haskell, temporary, text
+     , time
+     }:
+     mkDerivation {
+       pname = "PyF";
+       version = "0.11.3.0";
+       sha256 = "1nwn3pf3wmi08jrfrmk8rbgfviha48ackm6crxrsxxcmmlrmsncy";
+       libraryHaskellDepends = [
+         base bytestring ghc mtl parsec template-haskell text time
+       ];
+       testHaskellDepends = [
+         base bytestring deepseq filepath hspec HUnit process
+         template-haskell temporary text time
+       ];
+       description = "Quasiquotations for a python like interpolated string formatter";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "QIO" = callPackage
     ({ mkDerivation, base, containers, mtl, old-time, random }:
      mkDerivation {
@@ -18427,6 +18450,8 @@ self: {
        pname = "RoundingFiasco";
        version = "0.1.0.0";
        sha256 = "1n51zrbngiickyh7mqm3jnvnf7qcbjdrqz5q4pjqpx9cl9hx7yl0";
+       revision = "1";
+       editedCabalFile = "1gy0r9k1szc27p5l4jyib7qyiqbkyd7w4l737j9k9l9hpda5fb8i";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
        description = "rounding variants floor, ceil and truncate for floating point operations +-*/√…";
@@ -26056,27 +26081,27 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "aeson_2_2_1_0" = callPackage
+  "aeson_2_2_2_0" = callPackage
     ({ mkDerivation, base, base-compat, base-orphans, base16-bytestring
-     , bytestring, containers, data-fix, deepseq, Diff, directory, dlist
-     , exceptions, filepath, generic-deriving, generically, ghc-prim
-     , hashable, indexed-traversable, integer-conversion
-     , integer-logarithms, network-uri, nothunks, OneTuple, primitive
-     , QuickCheck, quickcheck-instances, scientific, semialign, strict
-     , tagged, tasty, tasty-golden, tasty-hunit, tasty-quickcheck
-     , template-haskell, text, text-iso8601, text-short, th-abstraction
-     , these, time, time-compat, unordered-containers, uuid-types
-     , vector, witherable
+     , bytestring, character-ps, containers, data-fix, deepseq, Diff
+     , directory, dlist, exceptions, filepath, generic-deriving
+     , generically, ghc-prim, hashable, indexed-traversable
+     , integer-conversion, integer-logarithms, network-uri, nothunks
+     , OneTuple, primitive, QuickCheck, quickcheck-instances, scientific
+     , semialign, strict, tagged, tasty, tasty-golden, tasty-hunit
+     , tasty-quickcheck, template-haskell, text, text-iso8601
+     , text-short, th-abstraction, these, time, time-compat
+     , unordered-containers, uuid-types, vector, witherable
      }:
      mkDerivation {
        pname = "aeson";
-       version = "2.2.1.0";
-       sha256 = "0zsxkb7lizn1c1a5q4jzg4wyxb17njx2rahxf9fdn4hdx38fykli";
+       version = "2.2.2.0";
+       sha256 = "0xk2zl4j64zjymib0qyx889jyghx0fa1nvsz0fx2py9kcd2f3gdk";
        revision = "1";
-       editedCabalFile = "1jrny4i1hc335yz5vc2r1nx1lnpy5q5jqqg1fc2y2cw2vam62fm2";
+       editedCabalFile = "18kglyqghxv5gpp9c8kn2rr0h2c09x3rw9rl3a4j3h2l23y0s3dc";
        libraryHaskellDepends = [
-         base bytestring containers data-fix deepseq dlist exceptions
-         generically ghc-prim hashable indexed-traversable
+         base bytestring character-ps containers data-fix deepseq dlist
+         exceptions generically ghc-prim hashable indexed-traversable
          integer-conversion integer-logarithms network-uri OneTuple
          primitive QuickCheck scientific semialign strict tagged
          template-haskell text text-iso8601 text-short th-abstraction these
@@ -28400,8 +28425,8 @@ self: {
        pname = "algebraic-graphs";
        version = "0.7";
        sha256 = "0s75h92qb9jdfdyzh0fraxpzj0jl4xvcbqq9cwgba2k9306rl5ai";
-       revision = "2";
-       editedCabalFile = "1psgkw2qcdv91cij564jzlsyx7qjs8z7y7y6lfhciilbzkzvpy3m";
+       revision = "3";
+       editedCabalFile = "010i8dl3zd484fbamq7k6i5cl0as2zsj2fis4rpm9giyickkr3ny";
        libraryHaskellDepends = [
          array base containers deepseq transformers
        ];
@@ -39413,7 +39438,6 @@ self: {
        libraryToolDepends = [ cpphs ];
        description = "Common interface using libarchive";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "archive-sig" = callPackage
@@ -42401,17 +42425,17 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "attoparsec-aeson_2_2_0_1" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, bytestring
+  "attoparsec-aeson_2_2_2_0" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, bytestring, character-ps
      , integer-conversion, primitive, scientific, text, vector
      }:
      mkDerivation {
        pname = "attoparsec-aeson";
-       version = "2.2.0.1";
-       sha256 = "02f406d5jh038qn8cccr0fbxkczhgzplmnfb448hrl25gcxg5ifg";
+       version = "2.2.2.0";
+       sha256 = "1pcyiwni9kvpg97k3sm9qrxcl2n8rh698af3867zzqbgl4ijr6zy";
        libraryHaskellDepends = [
-         aeson attoparsec base bytestring integer-conversion primitive
-         scientific text vector
+         aeson attoparsec base bytestring character-ps integer-conversion
+         primitive scientific text vector
        ];
        description = "Parsing of aeson's Value with attoparsec";
        license = lib.licenses.bsd3;
@@ -42575,6 +42599,22 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "attoparsec-iso8601_1_1_1_0" = callPackage
+    ({ mkDerivation, attoparsec, base, integer-conversion, text, time
+     , time-compat
+     }:
+     mkDerivation {
+       pname = "attoparsec-iso8601";
+       version = "1.1.1.0";
+       sha256 = "0yn9l9drza1wcj59a9dzm4vnihwmsxk6zd3fqg6kgww1an8x3k9l";
+       libraryHaskellDepends = [
+         attoparsec base integer-conversion text time time-compat
+       ];
+       description = "Parsing of ISO 8601 dates, originally from aeson";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "attoparsec-iteratee" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, iteratee
      , transformers
@@ -43216,6 +43256,22 @@ self: {
        mainProgram = "autoexporter";
      }) {};
 
+  "autoexporter_2_0_0_12" = callPackage
+    ({ mkDerivation, base, Cabal-syntax, directory, filepath }:
+     mkDerivation {
+       pname = "autoexporter";
+       version = "2.0.0.12";
+       sha256 = "1ilnvpkgdbw5qg2czzh346mgrkx0dnrvalx0b93fxz4r12sg10na";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base Cabal-syntax directory filepath ];
+       executableHaskellDepends = [ base ];
+       description = "Automatically re-export modules";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "autoexporter";
+     }) {};
+
   "autom" = callPackage
     ({ mkDerivation, base, bytestring, colour, ghc-prim, gloss
      , JuicyPixels, random, vector
@@ -45788,14 +45844,14 @@ self: {
        broken = true;
      }) {};
 
-  "base_4_19_1_0" = callPackage
-    ({ mkDerivation, ghc-bignum, ghc-prim, rts }:
+  "base_4_20_0_0" = callPackage
+    ({ mkDerivation, ghc-internal, ghc-prim }:
      mkDerivation {
        pname = "base";
-       version = "4.19.1.0";
-       sha256 = "0f1ynq04cmvyn26krin835q0zygiy541a6fdcqazwdg2sx5pi3ls";
-       libraryHaskellDepends = [ ghc-bignum ghc-prim rts ];
-       description = "Basic libraries";
+       version = "4.20.0.0";
+       sha256 = "15l9g5v12411baix23ck30s2633mw957xsh2bnxjlrcqjfpqhqbw";
+       libraryHaskellDepends = [ ghc-internal ghc-prim ];
+       description = "Core data structures and operations";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
      }) {};
@@ -47543,6 +47599,37 @@ self: {
        broken = true;
      }) {};
 
+  "bech32_1_1_7" = callPackage
+    ({ mkDerivation, array, base, base58-bytestring, bytestring
+     , containers, deepseq, extra, hspec, hspec-discover, memory
+     , optparse-applicative, prettyprinter, prettyprinter-ansi-terminal
+     , process, QuickCheck, text, vector
+     }:
+     mkDerivation {
+       pname = "bech32";
+       version = "1.1.7";
+       sha256 = "1ql79scbjxrmllizywhzdys1bx565lqvj81851wzdkww662lhvpg";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         array base bytestring containers extra text
+       ];
+       executableHaskellDepends = [
+         base base58-bytestring bytestring extra memory optparse-applicative
+         prettyprinter prettyprinter-ansi-terminal text
+       ];
+       testHaskellDepends = [
+         base base58-bytestring bytestring containers deepseq extra hspec
+         memory process QuickCheck text vector
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Implementation of the Bech32 cryptocurrency address format (BIP 0173)";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "bech32";
+       broken = true;
+     }) {};
+
   "bech32-th" = callPackage
     ({ mkDerivation, base, bech32, hspec, hspec-discover
      , template-haskell, text
@@ -47559,6 +47646,22 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "bech32-th_1_1_7" = callPackage
+    ({ mkDerivation, base, bech32, hspec, hspec-discover
+     , template-haskell, text
+     }:
+     mkDerivation {
+       pname = "bech32-th";
+       version = "1.1.7";
+       sha256 = "0a71jcvgnfsn24d2bppiprx4yb5cnsr85rsgzax3547shiqpli1n";
+       libraryHaskellDepends = [ base bech32 template-haskell text ];
+       testHaskellDepends = [ base bech32 hspec template-haskell ];
+       testToolDepends = [ hspec-discover ];
+       description = "Template Haskell extensions to the Bech32 library";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "bed-and-breakfast" = callPackage
     ({ mkDerivation, array, base, binary, cpphs, deepseq, QuickCheck
      , template-haskell
@@ -48897,6 +49000,24 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "binary-orphans_1_0_5" = callPackage
+    ({ mkDerivation, base, binary, OneTuple, QuickCheck
+     , quickcheck-instances, tagged, tasty, tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "binary-orphans";
+       version = "1.0.5";
+       sha256 = "13a08if69wdmc8hb7jynhllgh8jh7qbk9spygb096l9aijgaxyrr";
+       libraryHaskellDepends = [ base binary ];
+       testHaskellDepends = [
+         base binary OneTuple QuickCheck quickcheck-instances tagged tasty
+         tasty-quickcheck
+       ];
+       description = "Compatibility package for binary; provides instances";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "binary-parser" = callPackage
     ({ mkDerivation, base, base-prelude, bytestring, mtl, tasty
      , tasty-hunit, tasty-quickcheck, text, transformers
@@ -53836,6 +53957,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "boring_0_2_2" = callPackage
+    ({ mkDerivation, base, tagged, transformers }:
+     mkDerivation {
+       pname = "boring";
+       version = "0.2.2";
+       sha256 = "11pgndkjvy2j0jfaww92nmlkn2r27v6a253hzdc7dcb9zwgsz2wj";
+       libraryHaskellDepends = [ base tagged transformers ];
+       description = "Boring and Absurd types";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "boring-game" = callPackage
     ({ mkDerivation, base, gloss }:
      mkDerivation {
@@ -55811,14 +55944,14 @@ self: {
      }:
      mkDerivation {
        pname = "build";
-       version = "1.0";
-       sha256 = "1ga8qjv2p94y2nd6dmwz940vkbmx51kvcvysfvbxadl29n4wg840";
+       version = "1.1";
+       sha256 = "0p9skg7agf6hpf5n7kpzk77cj7z8dnivkkjalqipl15196lcxwkj";
        libraryHaskellDepends = [
          algebraic-graphs base containers extra filepath mtl random
          transformers
        ];
        testHaskellDepends = [ base containers extra mtl transformers ];
-       description = "Build systems a la carte";
+       description = "Build Systems à la Carte";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
        broken = true;
@@ -56133,6 +56266,24 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "burrito_2_0_1_10" = callPackage
+    ({ mkDerivation, base, bytestring, containers, hspec, parsec
+     , QuickCheck, template-haskell, text, transformers
+     }:
+     mkDerivation {
+       pname = "burrito";
+       version = "2.0.1.10";
+       sha256 = "1c8nfh90x0s7ccjznlkk73k99bk2c3n6rdfaw5pszad7ma8zmmc4";
+       libraryHaskellDepends = [
+         base bytestring containers parsec template-haskell text
+         transformers
+       ];
+       testHaskellDepends = [ base containers hspec QuickCheck text ];
+       description = "Parse and render URI templates";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "burst-detection" = callPackage
     ({ mkDerivation, base, criterion, deepseq }:
      mkDerivation {
@@ -58393,8 +58544,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-gild";
-       version = "1.3.1.0";
-       sha256 = "1ghrzw1fqslyhy9hmsmwwyv7kfbzf3bm9d0bzvf2k62s7yihrs4p";
+       version = "1.3.1.2";
+       sha256 = "15ds4x9vh5hfxbrh8k3w719jxs1mfhx8kaj035nj891r5c6llpb2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -59648,8 +59799,8 @@ self: {
      }:
      mkDerivation {
        pname = "cachix";
-       version = "1.7.2";
-       sha256 = "0fcdg55p6z7wi0q4pn3gs9xc9byhfnpzcxf1g784j4fl3321fy9z";
+       version = "1.7.3";
+       sha256 = "0xgcqgdawzb8ckdc4w0yp5lbdxmj3cd0w93wzp2nx585pi1ils7i";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -59674,9 +59825,9 @@ self: {
          stm-chans stm-conduit time uuid websockets
        ];
        testHaskellDepends = [
-         aeson base bytestring cachix-api containers dhall directory extra
-         here hspec protolude retry servant-auth-client servant-client-core
-         temporary time
+         aeson async base bytestring cachix-api containers dhall directory
+         extra here hspec protolude retry servant-auth-client
+         servant-client-core stm temporary time versions
        ];
        testToolDepends = [ hspec-discover ];
        description = "Command-line client for Nix binary cache hosting https://cachix.org";
@@ -59693,8 +59844,8 @@ self: {
      }:
      mkDerivation {
        pname = "cachix-api";
-       version = "1.7.2";
-       sha256 = "1xb5w9hqf0qgwf1b3w3v43civd95m9gqjplrm9wkhjhscqgz3drz";
+       version = "1.7.3";
+       sha256 = "0srzvhmvp927qnk31p0nlal7wl14205s1a27frj68g2yi4a1w92j";
        libraryHaskellDepends = [
          aeson async base bytestring conduit cryptonite deriving-aeson
          exceptions http-media jose memory nix-narinfo protolude resourcet
@@ -64851,13 +65002,25 @@ self: {
     ({ mkDerivation, base, Cabal, chs-deps }:
      mkDerivation {
        pname = "chs-cabal";
+       version = "0.1.1.1";
+       sha256 = "0fvf26394rpn9g4f3rp13bq8rrhzs9d95k7nbcpayzml2j9rsv3l";
+       revision = "2";
+       editedCabalFile = "1vv61klw11fhnn5ki0z2x0k6d7vvj622bjj05mdlx8sdjqijlbgd";
+       libraryHaskellDepends = [ base Cabal chs-deps ];
+       description = "Cabal with c2hs dependencies";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "chs-cabal_0_1_1_2" = callPackage
+    ({ mkDerivation, base, Cabal, chs-deps }:
+     mkDerivation {
+       pname = "chs-cabal";
        version = "0.1.1.2";
        sha256 = "1qh234dx3d3l3nxb67alv0ggwqipp1502krq11fgq3hp0jhcm8b8";
        libraryHaskellDepends = [ base Cabal chs-deps ];
        description = "Cabal with c2hs dependencies";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "chs-deps" = callPackage
@@ -68548,8 +68711,8 @@ self: {
      }:
      mkDerivation {
        pname = "cobot-io";
-       version = "0.1.5.3";
-       sha256 = "0zjvv8k928q9cdsqvwmgpypjinwrxsia6qzxmga8q2xg9rdgx9fc";
+       version = "0.1.5.5";
+       sha256 = "1j41byh9swjj09rlwjxdhwvdnjm2gnf8y4zxv0mwpgmdc18bwszy";
        libraryHaskellDepends = [
          array attoparsec base binary bytestring cobot containers
          data-msgpack deepseq filepath http-conduit hyraxAbif lens linear
@@ -68964,6 +69127,8 @@ self: {
        pname = "coercible-subtypes";
        version = "0.3.0.1";
        sha256 = "1mji6jlgc2lk6lczn10c2rchm10h2my3gs9p3r9yd6ij8ixki4sx";
+       revision = "1";
+       editedCabalFile = "000w9bg2r1n6r40a40i450gysq8yr59xpjrqwf6dzgzyxxfa9sxb";
        libraryHaskellDepends = [ base profunctors ];
        description = "Coercible but only in one direction";
        license = lib.licenses.bsd3;
@@ -69509,8 +69674,8 @@ self: {
        pname = "colonnade";
        version = "1.2.0.2";
        sha256 = "1asjx71gp26a15v7g3p8bfddb5nnzky6672c35xx35hq73mhykr4";
-       revision = "5";
-       editedCabalFile = "1f4m7lqksb7lvzs3j5v8c04l2mmq7pq1d8w7p8y9chy595rrb1kn";
+       revision = "6";
+       editedCabalFile = "1ny5nbrf5nic2xsilz7xg44y2bcviki6gs4rmg6ydfk5v291qfgn";
        libraryHaskellDepends = [
          base bytestring contravariant profunctors semigroups text vector
        ];
@@ -70059,6 +70224,32 @@ self: {
        maintainers = [ lib.maintainers.thielema ];
      }) {};
 
+  "comfort-array_0_5_5" = callPackage
+    ({ mkDerivation, base, bifunctors, ChasingBottoms, containers
+     , deepseq, doctest-exitcode-stdio, doctest-lib, guarded-allocation
+     , non-empty, prelude-compat, primitive, QuickCheck, semigroups
+     , storable-record, storablevector, tagged, transformers
+     , transformers-compat, utility-ht
+     }:
+     mkDerivation {
+       pname = "comfort-array";
+       version = "0.5.5";
+       sha256 = "0jyhlxm64di682i2hwf1f1mw6f7xjwhb1ihnp8dh9vsg93hwik5i";
+       libraryHaskellDepends = [
+         base bifunctors containers deepseq guarded-allocation non-empty
+         prelude-compat primitive QuickCheck semigroups storable-record
+         storablevector tagged transformers transformers-compat utility-ht
+       ];
+       testHaskellDepends = [
+         base ChasingBottoms containers deepseq doctest-exitcode-stdio
+         doctest-lib QuickCheck tagged utility-ht
+       ];
+       description = "Arrays where the index type is a function of the shape type";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.thielema ];
+     }) {};
+
   "comfort-array-shape" = callPackage
     ({ mkDerivation, base, ChasingBottoms, comfort-array, containers
      , doctest-exitcode-stdio, doctest-lib, fixed-length, non-empty
@@ -70107,6 +70298,31 @@ self: {
        maintainers = [ lib.maintainers.thielema ];
      }) {};
 
+  "comfort-blas_0_0_3" = callPackage
+    ({ mkDerivation, base, blas-ffi, comfort-array, containers, deepseq
+     , doctest-exitcode-stdio, doctest-lib, guarded-allocation
+     , netlib-ffi, non-empty, QuickCheck, semigroups, storablevector
+     , transformers, utility-ht
+     }:
+     mkDerivation {
+       pname = "comfort-blas";
+       version = "0.0.3";
+       sha256 = "1zadvjx095kxp4rl5ml120xh0ihaz7v5391fim5gdsgwdh00fwmp";
+       libraryHaskellDepends = [
+         base blas-ffi comfort-array containers deepseq guarded-allocation
+         netlib-ffi non-empty semigroups storablevector transformers
+         utility-ht
+       ];
+       testHaskellDepends = [
+         base comfort-array containers doctest-exitcode-stdio doctest-lib
+         netlib-ffi QuickCheck utility-ht
+       ];
+       description = "Numerical Basic Linear Algebra using BLAS";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.thielema ];
+     }) {};
+
   "comfort-fftw" = callPackage
     ({ mkDerivation, base, comfort-array, deepseq
      , doctest-exitcode-stdio, doctest-lib, fftw-ffi, netlib-ffi
@@ -70491,12 +70707,12 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "commutative-semigroups_0_2" = callPackage
+  "commutative-semigroups_0_2_0_1" = callPackage
     ({ mkDerivation, base, containers }:
      mkDerivation {
        pname = "commutative-semigroups";
-       version = "0.2";
-       sha256 = "0jkqfslrvyh17p9llf1ga249fcnhfjlp1rb3nvj0078a19c0xcd8";
+       version = "0.2.0.1";
+       sha256 = "1p5nyy6mdbn12j6sl7wlzc3crn291lzdmc2ml5ccvrw6cnh5bq72";
        libraryHaskellDepends = [ base containers ];
        description = "Commutative semigroups";
        license = lib.licenses.bsd3;
@@ -76149,10 +76365,11 @@ self: {
      }:
      mkDerivation {
        pname = "cornelis";
-       version = "0.2.0.0";
-       sha256 = "10frpbc0944pv5vc4qlh5blww8z5y6318gb5lhlrm3pm28sbxy1k";
+       version = "0.2.0.1";
+       sha256 = "056d2lw1m36zqgv2lma4a3bm2zlwc5zmpf5dsqyjrgzmwd50kdpc";
        isLibrary = true;
        isExecutable = true;
+       enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson async base bytestring containers diff-loc directory filepath
          fingertree generic-lens hspec lens levenshtein megaparsec mtl
@@ -76404,6 +76621,34 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "country_0_2_4_2" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, bytebuild, bytehash
+     , byteslice, bytestring, compact, contiguous, deepseq, gauge
+     , hashable, primitive, primitive-unlifted, QuickCheck
+     , quickcheck-classes, scientific, tasty, tasty-quickcheck, text
+     , text-short, unordered-containers
+     }:
+     mkDerivation {
+       pname = "country";
+       version = "0.2.4.2";
+       sha256 = "0pfxf1bmkp7025qv92mrhpi1snkrfrxv4bj84m3h34nhra9a3rwn";
+       libraryHaskellDepends = [
+         aeson attoparsec base bytebuild bytehash byteslice bytestring
+         contiguous deepseq hashable primitive primitive-unlifted scientific
+         text text-short unordered-containers
+       ];
+       testHaskellDepends = [
+         base byteslice primitive QuickCheck quickcheck-classes tasty
+         tasty-quickcheck text text-short
+       ];
+       benchmarkHaskellDepends = [
+         base bytehash bytestring compact gauge text
+       ];
+       description = "Country data type and functions";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "country-codes" = callPackage
     ({ mkDerivation, aeson, base, deepseq, HTF, HUnit, shakespeare
      , text
@@ -78950,6 +79195,25 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "crypton-connection_0_4_0" = callPackage
+    ({ mkDerivation, base, basement, bytestring, containers
+     , crypton-x509, crypton-x509-store, crypton-x509-system
+     , crypton-x509-validation, data-default-class, network, socks, tls
+     }:
+     mkDerivation {
+       pname = "crypton-connection";
+       version = "0.4.0";
+       sha256 = "0gmmj1r2y21x50ahp35m3zcy7mnsagj8mvp4y2sr4114x5c57gf5";
+       libraryHaskellDepends = [
+         base basement bytestring containers crypton-x509 crypton-x509-store
+         crypton-x509-system crypton-x509-validation data-default-class
+         network socks tls
+       ];
+       description = "Simple and easy network connections API";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "crypton-x509" = callPackage
     ({ mkDerivation, asn1-encoding, asn1-parse, asn1-types, base
      , bytestring, containers, crypton, hourglass, memory, mtl, pem
@@ -85093,6 +85357,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "dec_0_0_6" = callPackage
+    ({ mkDerivation, base, boring }:
+     mkDerivation {
+       pname = "dec";
+       version = "0.0.6";
+       sha256 = "0bbzn9kqb1zdvi4kd37p3lhx0rkdbyq98hqcn9qv5y67s6a3c5gv";
+       libraryHaskellDepends = [ base boring ];
+       description = "Decidable propositions";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "decepticons" = callPackage
     ({ mkDerivation, base, comonad-transformers }:
      mkDerivation {
@@ -85269,8 +85545,8 @@ self: {
      }:
      mkDerivation {
        pname = "deep-transformations";
-       version = "0.2.2";
-       sha256 = "1sjqvpbb3b90fpxmj0i7zarkj97m6q259l77kgdzjlbcnnd980ws";
+       version = "0.2.3";
+       sha256 = "1ahpvm0ix9qkzr8wki3rdd2abcwdm9wlp246cpmc71yc7wrlbm4j";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base generic-lens rank2classes template-haskell transformers
@@ -89901,12 +90177,12 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
-  "directory_1_3_8_4" = callPackage
+  "directory_1_3_8_5" = callPackage
     ({ mkDerivation, base, filepath, time, unix }:
      mkDerivation {
        pname = "directory";
-       version = "1.3.8.4";
-       sha256 = "0r10g7a68r5asjgs5r0zpjzq0qiqf5i8h5bmaylpm6ikwnj9irx4";
+       version = "1.3.8.5";
+       sha256 = "0s57dq5l02b9z3h17slw3yg73mzdx15pzj02xg91avpwvmafsr78";
        libraryHaskellDepends = [ base filepath time unix ];
        testHaskellDepends = [ base filepath time unix ];
        description = "Platform-agnostic library for filesystem operations";
@@ -91305,8 +91581,8 @@ self: {
      }:
      mkDerivation {
        pname = "distribution-nixpkgs";
-       version = "1.7.0.1";
-       sha256 = "0yaha7arm9cn9sxacqwmr2qcnw2cxn53xww11im00mx7gk127rh2";
+       version = "1.7.1";
+       sha256 = "19jzsqva4bnnjyq0zgqmqrvlgb6x3jxjqg398kwzk5syrxbap9nl";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bytestring Cabal containers deepseq language-nix lens
@@ -94564,8 +94840,8 @@ self: {
        pname = "dual-tree";
        version = "0.2.3.1";
        sha256 = "19nm34d166fhlkk7npx0iq9kbx7300a82bg75q1sx98jqfa4nffh";
-       revision = "2";
-       editedCabalFile = "1qlrrvw3j9h12nj105aa5ckri5580xgbi16gph70i5w2crmrvphw";
+       revision = "3";
+       editedCabalFile = "154wamfjywc7k8sm7kx7ylwzd8s8xngj2p9kpi1kr8b42n4f9v4y";
        libraryHaskellDepends = [ base monoid-extras semigroups ];
        testHaskellDepends = [
          base monoid-extras QuickCheck semigroups testing-feat
@@ -98159,6 +98435,30 @@ self: {
        license = lib.licenses.mpl20;
      }) {};
 
+  "elm-street_0_2_2_1" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, directory, filepath
+     , hspec, prettyprinter, servant, servant-server, text, time, wai
+     , warp
+     }:
+     mkDerivation {
+       pname = "elm-street";
+       version = "0.2.2.1";
+       sha256 = "0hn3fxpmrwb162r8diijg0dp3rpz241nizdcbclq8friii13c3m4";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base directory filepath prettyprinter text time
+       ];
+       executableHaskellDepends = [
+         base directory filepath servant servant-server text wai warp
+       ];
+       testHaskellDepends = [ aeson base bytestring hspec ];
+       doHaddock = false;
+       description = "Crossing the road between Haskell and Elm";
+       license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "elm-syntax" = callPackage
     ({ mkDerivation, base, bound, deriving-compat, hashable
      , prettyprinter, text, unordered-containers
@@ -98550,6 +98850,8 @@ self: {
        pname = "emacs-module";
        version = "0.2.1";
        sha256 = "0xmydwd9b78943cqxwx3pk71lp9chr879rpkf2fhfl2g6xvhrf86";
+       revision = "1";
+       editedCabalFile = "0m616p4mli1785yqr5qq52bi6cwgsqkapam75xq27d1dni0nc7h9";
        libraryHaskellDepends = [
          base bytestring deepseq exceptions filepath monad-control
          monad-interleave mtl prettyprinter prettyprinter-combinators
@@ -98560,6 +98862,27 @@ self: {
        license = lib.licenses.asl20;
      }) {};
 
+  "emacs-module_0_2_1_1" = callPackage
+    ({ mkDerivation, base, bytestring, deepseq, exceptions, filepath
+     , monad-control, monad-interleave, mtl, os-string, prettyprinter
+     , prettyprinter-combinators, primitive, template-haskell, text
+     , transformers-base, tuples-homogenous-h98, vector, void
+     }:
+     mkDerivation {
+       pname = "emacs-module";
+       version = "0.2.1.1";
+       sha256 = "1s8h935xlkfxp04fgkd1025a3sg8phs8fx18iaji7hkvifpykgfj";
+       libraryHaskellDepends = [
+         base bytestring deepseq exceptions filepath monad-control
+         monad-interleave mtl os-string prettyprinter
+         prettyprinter-combinators primitive template-haskell text
+         transformers-base tuples-homogenous-h98 vector void
+       ];
+       description = "Utilities to write Emacs dynamic modules";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "email" = callPackage
     ({ mkDerivation, array, base, bytestring, encoding, HaskellNet
      , hsemail, old-locale, old-time, parsec, process, time
@@ -98645,26 +98968,16 @@ self: {
      }) {};
 
   "email-validator" = callPackage
-    ({ mkDerivation, base, bytestring, cmdargs, dns, doctest
-     , email-validate, HUnit, parallel-io, pcre-light, tasty
-     , tasty-hunit
-     }:
+    ({ mkDerivation, base }:
      mkDerivation {
        pname = "email-validator";
-       version = "1.0.1";
-       sha256 = "0nn1lrl1dv9zg9kvw46253jdb6cfzh5wn70n71pv85adc544001s";
+       version = "1.8.7";
+       sha256 = "1gd1irn7a4mxd99m0r4s5px3jib8wri67gpsdhryc37zn4l7n89q";
        isLibrary = false;
        isExecutable = true;
-       executableHaskellDepends = [
-         base bytestring cmdargs dns email-validate HUnit parallel-io
-         pcre-light tasty tasty-hunit
-       ];
-       testHaskellDepends = [
-         base bytestring doctest email-validate HUnit pcre-light tasty
-         tasty-hunit
-       ];
+       executableHaskellDepends = [ base ];
        description = "Perform basic syntax and deliverability checks on email addresses";
-       license = lib.licenses.agpl3Only;
+       license = lib.licenses.agpl3Plus;
        mainProgram = "email-validator";
      }) {};
 
@@ -100107,11 +100420,31 @@ self: {
        pname = "equational-reasoning";
        version = "0.7.0.2";
        sha256 = "18pmg7c103yprldbzh0c3wz2mbiidi14ildymsfggnxica6w05qg";
+       revision = "1";
+       editedCabalFile = "0qqswv42lwkv6y4hssniv4my9l9kxyvh84b2gmyqky1ijcny5y6k";
+       libraryHaskellDepends = [
+         base containers template-haskell th-desugar void
+       ];
+       description = "Proof assistant for Haskell using DataKinds & PolyKinds";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "equational-reasoning_0_7_0_3" = callPackage
+    ({ mkDerivation, base, containers, template-haskell, th-desugar
+     , void
+     }:
+     mkDerivation {
+       pname = "equational-reasoning";
+       version = "0.7.0.3";
+       sha256 = "0pr7m6afb6yi4g86pk08i27xxs9n4dszxkra6lm3icm72szygw2j";
+       revision = "1";
+       editedCabalFile = "1vh3m63xwisa4izz2y900xr28jny85dkapxcxpmwx0qh39nbsrpy";
        libraryHaskellDepends = [
          base containers template-haskell th-desugar void
        ];
        description = "Proof assistant for Haskell using DataKinds & PolyKinds";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "equational-reasoning-induction" = callPackage
@@ -100230,21 +100563,20 @@ self: {
 
   "erebos-tester" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory, filepath
-     , generic-deriving, Glob, haskeline, HsYAML, lens, linux-namespaces
-     , megaparsec, mtl, parser-combinators, process, regex-tdfa
-     , scientific, stm, template-haskell, text, th-compat, unix
+     , Glob, haskeline, HsYAML, linux-namespaces, megaparsec, mtl
+     , parser-combinators, process, regex-tdfa, scientific, stm
+     , template-haskell, text, th-compat, unix
      }:
      mkDerivation {
        pname = "erebos-tester";
-       version = "0.2.1";
-       sha256 = "19k77irlgihhrq3zzyp2nvny5xqbgy140hr0d9jwd4cwmb3czidd";
+       version = "0.2.2";
+       sha256 = "156597h0sriwjm5rivlmvizn76i5c984bs87v39zj0yyr2qzk0f7";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         base bytestring containers directory filepath generic-deriving Glob
-         haskeline HsYAML lens linux-namespaces megaparsec mtl
-         parser-combinators process regex-tdfa scientific stm
-         template-haskell text th-compat unix
+         base bytestring containers directory filepath Glob haskeline HsYAML
+         linux-namespaces megaparsec mtl parser-combinators process
+         regex-tdfa scientific stm template-haskell text th-compat unix
        ];
        description = "Test framework with virtual network using Linux namespaces";
        license = lib.licenses.gpl3Only;
@@ -104847,8 +105179,8 @@ self: {
        pname = "falsify";
        version = "0.2.0";
        sha256 = "1fhj70q6kfd98892gxfy3mc8wxxyr80g4rzapaici4zd3zczz2fd";
-       revision = "1";
-       editedCabalFile = "0i740c9nfjpgygdzq6gzjdcaj94m5dyf2bybbdx9xgw0kacmxbc2";
+       revision = "2";
+       editedCabalFile = "1cr3lx1i89jb9sx4pqlgnb03gdav28hhn0i7prv63kjyzjn10p82";
        libraryHaskellDepends = [
          base base16-bytestring binary bytestring containers data-default
          mtl optics-core optparse-applicative selective sop-core splitmix
@@ -105037,6 +105369,27 @@ self: {
        maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
+  "fast-logger_3_2_3" = callPackage
+    ({ mkDerivation, array, async, auto-update, base, bytestring
+     , directory, easy-file, filepath, hspec, hspec-discover, stm, text
+     , unix-compat, unix-time
+     }:
+     mkDerivation {
+       pname = "fast-logger";
+       version = "3.2.3";
+       sha256 = "0af4228rnv2g3fgw00vx85fh0ngi092bx54awx1cd1jjkmpdyn73";
+       libraryHaskellDepends = [
+         array auto-update base bytestring directory easy-file filepath stm
+         text unix-compat unix-time
+       ];
+       testHaskellDepends = [ async base bytestring directory hspec ];
+       testToolDepends = [ hspec-discover ];
+       description = "A fast logging system";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.sternenseemann ];
+     }) {};
+
   "fast-math" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -109628,6 +109981,19 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "flow_2_0_0_5" = callPackage
+    ({ mkDerivation, base, HUnit }:
+     mkDerivation {
+       pname = "flow";
+       version = "2.0.0.5";
+       sha256 = "1g2fg0mdw0i2c91x3vgdzwhasmk1an5x5w5wy8dpv3hvc2van3jk";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base HUnit ];
+       description = "Write more understandable Haskell";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "flow-er" = callPackage
     ({ mkDerivation, base, doctest, flow, QuickCheck }:
      mkDerivation {
@@ -112046,8 +112412,8 @@ self: {
      }:
      mkDerivation {
        pname = "freckle-app";
-       version = "1.15.3.0";
-       sha256 = "1d31s4zzazxvsiswavw1yxddm5c8krx5b1sf99sjlj8m3wwf7skz";
+       version = "1.15.4.0";
+       sha256 = "0vrc34946jh37g4mbydwdj40nj6b1mlhrdq3ipn3lbjzvxapmb4d";
        libraryHaskellDepends = [
          aeson annotated-exception autodocodec autodocodec-openapi3
          aws-xray-client-persistent aws-xray-client-wai base bcp47 Blammo
@@ -112111,8 +112477,8 @@ self: {
        pname = "free";
        version = "5.2";
        sha256 = "12agp68cwwixcwfwnvk2xamg34a2x6ax7s1naxv66chpi5y7z1kj";
-       revision = "4";
-       editedCabalFile = "0vic3p2viip8gjww8fx19ax6ry7y34h7xclvhzkvmbspjh9d219x";
+       revision = "5";
+       editedCabalFile = "0vn4rk8gw60571j4smw8x7jldigj3i84jr0rycxlkag94w6rrr1i";
        libraryHaskellDepends = [
          base comonad containers distributive exceptions indexed-traversable
          mtl profunctors semigroupoids template-haskell th-abstraction
@@ -112636,6 +113002,8 @@ self: {
        pname = "freer-simple";
        version = "1.2.1.2";
        sha256 = "11ypffdkpaxc03hlik6ymilhnk41fy7m92zzwqjma97g614vn0lw";
+       revision = "2";
+       editedCabalFile = "0p5d7q1bi4prw9mp6fgrz04xb6di47ywadkh788r0chxjdd2dzgl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -113509,17 +113877,16 @@ self: {
 
   "ftp-client" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, containers
-     , crypton-connection, exceptions, hspec, network, transformers
+     , crypton-connection, data-default-class, exceptions, hspec
+     , network, transformers
      }:
      mkDerivation {
        pname = "ftp-client";
-       version = "0.5.1.5";
-       sha256 = "08sxbk4s3prh22b1c19cv571fgdc5k9347i17jqmvfwjl3lkv5w7";
-       revision = "2";
-       editedCabalFile = "0lhm04d5msi9k6v2fiaiwl99bxc024rgggjjg8lm8kpsxq2wx11i";
+       version = "0.5.1.6";
+       sha256 = "0xlrmzngdzg8h7lcb6kaz1zcm3kd1rdax4xs0h048iz7f78q18dg";
        libraryHaskellDepends = [
-         attoparsec base bytestring containers crypton-connection exceptions
-         network transformers
+         attoparsec base bytestring containers crypton-connection
+         data-default-class exceptions network transformers
        ];
        testHaskellDepends = [ base bytestring hspec ];
        description = "Transfer files with FTP and FTPS";
@@ -114101,10 +114468,8 @@ self: {
      }:
      mkDerivation {
        pname = "functor-products";
-       version = "0.1.2.1";
-       sha256 = "0zyh311ayqdnjjs0j939b8968jajjry4igxi27xsgpgdya3qmk7d";
-       revision = "1";
-       editedCabalFile = "12rnvjxf68d1nxfc1sw4vmzgq6yd0079s95c4k2rxkqibx9cm0xg";
+       version = "0.1.2.2";
+       sha256 = "16wz70z13knkqx2xhj61hsnvsq9qky1c5avhfdahimswyi8qasfd";
        libraryHaskellDepends = [
          base microlens singletons singletons-base text vinyl
        ];
@@ -117079,8 +117444,8 @@ self: {
        pname = "generically";
        version = "0.1.1";
        sha256 = "1ks3pi6mpma83xffplz8vmimyhvzpnhmcgvk3bvl3c64pqva9i84";
-       revision = "2";
-       editedCabalFile = "0z2rjz0ap63zjpj4166fxl09zfrlpmzn85pi3l0vhlr8pi4w13ip";
+       revision = "3";
+       editedCabalFile = "1hl8690xqb6af5i5jn5s55s29hpx9fq1ghdnxi5l1li2q25666qv";
        libraryHaskellDepends = [ base ];
        description = "Generically newtype to use with DerivingVia";
        license = lib.licenses.bsd3;
@@ -118627,7 +118992,7 @@ self: {
        mainProgram = "gh-pocket-knife";
      }) {};
 
-  "ghc_9_8_2" = callPackage
+  "ghc_9_10_1" = callPackage
     ({ mkDerivation, alex, array, base, binary, bytestring, Cabal
      , containers, deepseq, deriveConstants, directory, exceptions
      , filepath, genprimopcode, ghc-boot, ghc-heap, ghci, happy, hpc
@@ -118636,8 +119001,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc";
-       version = "9.8.2";
-       sha256 = "1q396jkd3j8g7kc2vbkfhrpv1wqa8h1ahfh7jvbgycxmn0vzfh9h";
+       version = "9.10.1";
+       sha256 = "0vdhjqfcwjnhr2dijjqcwvybfy2pvfsynh87wh9hbak9w0ppwvha";
        setupHaskellDepends = [
          base Cabal containers directory filepath process
        ];
@@ -118719,30 +119084,31 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "ghc-boot_9_8_1" = callPackage
+  "ghc-boot_9_10_1" = callPackage
     ({ mkDerivation, base, binary, bytestring, Cabal, containers
-     , deepseq, directory, filepath, ghc-boot-th, unix
+     , deepseq, directory, filepath, ghc-boot-th, ghc-platform, unix
      }:
      mkDerivation {
        pname = "ghc-boot";
-       version = "9.8.1";
-       sha256 = "080qalf35kvf9qgyn9w59m1szwl5n8ahvjdzqr7vrd5kf0f9cczz";
+       version = "9.10.1";
+       sha256 = "02sqxmc2f8lb95hrabj088618sd9by9ypvsrs2f2753dg1xqlbzg";
        setupHaskellDepends = [ base Cabal directory filepath ];
        libraryHaskellDepends = [
          base binary bytestring containers deepseq directory filepath
-         ghc-boot-th unix
+         ghc-boot-th ghc-platform unix
        ];
        description = "Shared functionality between GHC and its boot libraries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-     }) {};
+       broken = true;
+     }) {ghc-platform = null;};
 
-  "ghc-boot-th_9_8_1" = callPackage
+  "ghc-boot-th_9_10_1" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "ghc-boot-th";
-       version = "9.8.1";
-       sha256 = "16vsirgz8g0zmika6pr638mh4s5xrgwsc6dgnhyhwryg10mabp66";
+       version = "9.10.1";
+       sha256 = "1lzwhidhv9dv70i7nkjzbli2qc8s4fbzps311ihz73wx3sdvrrrr";
        libraryHaskellDepends = [ base ];
        description = "Shared functionality between GHC and the @template-haskell@ library";
        license = lib.licenses.bsd3;
@@ -119282,6 +119648,31 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "ghc-exactprint_1_9_0_0" = callPackage
+    ({ mkDerivation }:
+     mkDerivation {
+       pname = "ghc-exactprint";
+       version = "1.9.0.0";
+       sha256 = "195y3yy7bjrx3b21nqrhxrnbxidaydb9g28i37wqx5glv8y65v51";
+       isLibrary = true;
+       isExecutable = true;
+       description = "ExactPrint for GHC";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "ghc-experimental" = callPackage
+    ({ mkDerivation, base, ghc-internal, ghc-prim }:
+     mkDerivation {
+       pname = "ghc-experimental";
+       version = "0.1.0.0";
+       sha256 = "144s8ja4jdasq65db1q4342ny1cd0d1ad48axd9gzv1h0mmqkz4f";
+       libraryHaskellDepends = [ base ghc-internal ghc-prim ];
+       description = "Experimental features of GHC's standard library";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "ghc-gc-hook" = callPackage
     ({ mkDerivation, base, clock }:
      mkDerivation {
@@ -119324,14 +119715,12 @@ self: {
        broken = true;
      }) {};
 
-  "ghc-heap_9_8_1" = callPackage
+  "ghc-heap_9_10_1" = callPackage
     ({ mkDerivation, base, containers, ghc-prim, rts }:
      mkDerivation {
        pname = "ghc-heap";
-       version = "9.8.1";
-       sha256 = "1z0gghf7ki2sz60ikgdw3d42djphl5lf27z8mfnzcvxp3p6ajxmz";
-       revision = "1";
-       editedCabalFile = "0n7ba0gwaxpsknb5kxpis7ji9172xvim63di83gl63avp0sjdwd5";
+       version = "9.10.1";
+       sha256 = "1vkvi646gspj0i4llq40asdjmzwwczglci0qi8rv7lq75v6g1kl6";
        libraryHaskellDepends = [ base containers ghc-prim rts ];
        description = "Functions for walking GHC's heap";
        license = lib.licenses.bsd3;
@@ -119447,6 +119836,19 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "ghc-internal" = callPackage
+    ({ mkDerivation, ghc-bignum, ghc-prim, rts }:
+     mkDerivation {
+       pname = "ghc-internal";
+       version = "9.1001.0";
+       sha256 = "0z38v4gnyis99r3rli2g3dyg948d98lhd1ylz5irbghnvrn8myhl";
+       libraryHaskellDepends = [ ghc-bignum ghc-prim rts ];
+       description = "Basic libraries";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "ghc-justdoit" = callPackage
     ({ mkDerivation, base, ghc, hashable, inspection-testing }:
      mkDerivation {
@@ -119872,8 +120274,8 @@ self: {
        pname = "ghc-paths";
        version = "0.1.0.12";
        sha256 = "1164w9pqnf7rjm05mmfjznz7rrn415blrkk1kjc0gjvks1vfdjvf";
-       revision = "5";
-       editedCabalFile = "12y71qx0yjxxjjzvkpx12ld0fkmpkli8qxpfxp3xfnz8w0gxbv9c";
+       revision = "6";
+       editedCabalFile = "13j23fnlh18zqh5m4y8b5skhavq9kjx2jl6kyxvmfcmdi3q4nwjf";
        setupHaskellDepends = [ base Cabal directory ];
        libraryHaskellDepends = [ base ];
        description = "Knowledge of GHC's installation directories";
@@ -120401,6 +120803,19 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "ghc-trace-events_0_1_2_9" = callPackage
+    ({ mkDerivation, base, bytestring, tasty-bench, text }:
+     mkDerivation {
+       pname = "ghc-trace-events";
+       version = "0.1.2.9";
+       sha256 = "01fk87z47jf8hm7dahjnfdmg2m26gi00f64va0p8l6rnirzxz9z9";
+       libraryHaskellDepends = [ base bytestring text ];
+       benchmarkHaskellDepends = [ base bytestring tasty-bench ];
+       description = "Faster traceEvent and traceMarker, and binary object logging for eventlog";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "ghc-typelits-extra" = callPackage
     ({ mkDerivation, base, containers, ghc, ghc-bignum, ghc-prim
      , ghc-tcplugins-extra, ghc-typelits-knownnat
@@ -123792,6 +124207,28 @@ self: {
        mainProgram = "github-release";
      }) {};
 
+  "github-release_2_0_0_11" = callPackage
+    ({ mkDerivation, aeson, base, burrito, bytestring, http-client
+     , http-client-tls, http-types, mime-types, optparse-generic, text
+     , unordered-containers
+     }:
+     mkDerivation {
+       pname = "github-release";
+       version = "2.0.0.11";
+       sha256 = "04zgg55zp5ggrisc5nkz4fjmx50cdgjayffcrf7y8gsi6wk96f81";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base burrito bytestring http-client http-client-tls
+         http-types mime-types optparse-generic text unordered-containers
+       ];
+       executableHaskellDepends = [ base ];
+       description = "Upload files to GitHub releases";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "github-release";
+     }) {};
+
   "github-rest" = callPackage
     ({ mkDerivation, aeson, aeson-qq, base, bytestring, http-client
      , http-client-tls, http-types, jwt, mtl, scientific, tasty
@@ -133866,7 +134303,7 @@ self: {
      }) {};
 
   "haddock_2_23_1" = callPackage
-    ({ mkDerivation, base, filepath, haddock-api }:
+    ({ mkDerivation, base, filepath, haddock-api, haddock-test }:
      mkDerivation {
        pname = "haddock";
        version = "2.23.1";
@@ -133874,9 +134311,7 @@ self: {
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [ base haddock-api ];
-       testHaskellDepends = [ base filepath ];
-       doCheck = false;
-       preCheck = "unset GHC_PACKAGE_PATH";
+       testHaskellDepends = [ base filepath haddock-test ];
        description = "A documentation-generation tool for Haskell libraries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -133884,7 +134319,7 @@ self: {
      }) {};
 
   "haddock" = callPackage
-    ({ mkDerivation, base, filepath, haddock-api }:
+    ({ mkDerivation, base, filepath, haddock-api, haddock-test }:
      mkDerivation {
        pname = "haddock";
        version = "2.29.1";
@@ -133892,9 +134327,7 @@ self: {
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [ base haddock-api ];
-       testHaskellDepends = [ base filepath ];
-       doCheck = false;
-       preCheck = "unset GHC_PACKAGE_PATH";
+       testHaskellDepends = [ base filepath haddock-test ];
        description = "A documentation-generation tool for Haskell libraries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -134193,21 +134626,16 @@ self: {
      }) {};
 
   "haeredes" = callPackage
-    ({ mkDerivation, base, bytestring, cmdargs, dns, doctest, filemanip
-     , iproute, parallel-io, process
-     }:
+    ({ mkDerivation, base }:
      mkDerivation {
        pname = "haeredes";
-       version = "0.5.3";
-       sha256 = "10pjkgwqyij2vd6q2n6g53n11h6fqv9g2zr57bym8dp2j22p2jzh";
+       version = "1.8.7";
+       sha256 = "160yr3s54r4wb8rpb7g9gzk52csqgy702i4kdm39m2fjk0jk96bj";
        isLibrary = false;
        isExecutable = true;
-       executableHaskellDepends = [
-         base bytestring cmdargs dns iproute parallel-io
-       ];
-       testHaskellDepends = [ base doctest filemanip process ];
+       executableHaskellDepends = [ base ];
        description = "Confirm delegation of NS and MX records";
-       license = lib.licenses.agpl3Only;
+       license = lib.licenses.agpl3Plus;
        mainProgram = "haeredes";
      }) {};
 
@@ -139869,6 +140297,26 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "haskell-src-meta_0_8_14" = callPackage
+    ({ mkDerivation, base, containers, haskell-src-exts, HUnit, pretty
+     , syb, tasty, tasty-hunit, template-haskell, th-orphans
+     }:
+     mkDerivation {
+       pname = "haskell-src-meta";
+       version = "0.8.14";
+       sha256 = "0dkillxs6rzznw01v72j92r013ff6q2wrm5wfr98d24nh1fcp404";
+       libraryHaskellDepends = [
+         base haskell-src-exts pretty syb template-haskell th-orphans
+       ];
+       testHaskellDepends = [
+         base containers haskell-src-exts HUnit pretty syb tasty tasty-hunit
+         template-haskell
+       ];
+       description = "Parse source to template-haskell abstract syntax";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "haskell-src-meta-mwotton" = callPackage
     ({ mkDerivation, base, containers, ghc-prim, haskell-src-exts
      , pretty, syb, template-haskell
@@ -141460,8 +141908,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskoin-store";
-       version = "1.5.4";
-       sha256 = "0g2rl50q29rp65lggjggrjx6i3c9glblfl5z4psqmjcqmlbijg20";
+       version = "1.5.5";
+       sha256 = "0p6cbvw2d6xskzm7wcgp6b2dzirnd38r64mvdp0njy2s1prlf92n";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -143515,23 +143963,16 @@ self: {
      }) {};
 
   "hath" = callPackage
-    ({ mkDerivation, base, cmdargs, process, split, tasty, tasty-hunit
-     , tasty-quickcheck
-     }:
+    ({ mkDerivation, base }:
      mkDerivation {
        pname = "hath";
-       version = "0.5.7";
-       sha256 = "0ma4myb0cnia0j31a8863a2c80ynw9aa85ls9r688cd9gl1dbhfy";
+       version = "1.8.7";
+       sha256 = "1ca1szny8s51x3i9nfgglq573vy8f64cfng3cq11vb391pifqncd";
        isLibrary = false;
        isExecutable = true;
-       executableHaskellDepends = [
-         base cmdargs split tasty tasty-hunit tasty-quickcheck
-       ];
-       testHaskellDepends = [
-         base process split tasty tasty-hunit tasty-quickcheck
-       ];
-       description = "Hath manipulates network blocks in CIDR notation";
-       license = lib.licenses.agpl3Only;
+       executableHaskellDepends = [ base ];
+       description = "Manipulates network blocks in CIDR notation";
+       license = lib.licenses.agpl3Plus;
        mainProgram = "hath";
      }) {};
 
@@ -145575,8 +146016,8 @@ self: {
      }:
      mkDerivation {
        pname = "hedgehog-extras";
-       version = "0.6.3.0";
-       sha256 = "0zh01kd50130jnvcc0azk9b44645gakmg2mahvvw0h3xhnzxvy0v";
+       version = "0.6.4.0";
+       sha256 = "1v0pq397ll9s07bq4pa1m1pw413kbnd04nzr3gm3f75c2c0yrd9p";
        libraryHaskellDepends = [
          aeson aeson-pretty async base bytestring deepseq Diff directory
          exceptions filepath hedgehog http-conduit lifted-async lifted-base
@@ -146693,8 +147134,8 @@ self: {
      }:
      mkDerivation {
        pname = "hercules-ci-agent";
-       version = "0.10.2";
-       sha256 = "08j5pp0a8nhm74qs0wnymiyg5kmqd8vr9bxf713jq6m0czw6rw3j";
+       version = "0.10.3";
+       sha256 = "1gfvlr37zzwnwnlixndwi9955c1n4yn67ffhif70d06bpjvh037k";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -146744,16 +147185,16 @@ self: {
   "hercules-ci-api" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, cookie
      , exceptions, hashable, hercules-ci-api-core, hspec, http-api-data
-     , http-media, lens, lens-aeson, memory, network-uri, openapi3
-     , profunctors, protolude, QuickCheck, quickcheck-classes, servant
-     , servant-auth, servant-auth-swagger, servant-openapi3
-     , servant-swagger, servant-swagger-ui-core, string-conv, swagger2
-     , text, time, uuid, vector
+     , http-media, insert-ordered-containers, lens, lens-aeson, memory
+     , network-uri, openapi3, profunctors, protolude, QuickCheck
+     , quickcheck-classes, servant, servant-auth, servant-auth-swagger
+     , servant-openapi3, servant-swagger, servant-swagger-ui-core
+     , string-conv, swagger2, text, time, uuid, vector
      }:
      mkDerivation {
        pname = "hercules-ci-api";
-       version = "0.8.3.0";
-       sha256 = "02lkh7dwcr0am9dk1v38p8jad2hfxh453i5f6073jnmpgwca0gv5";
+       version = "0.8.4.0";
+       sha256 = "1p25kbi01p6ww4vnxzqyrivw86ja3mzgd18r9703z75sfk9h2xvf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -146765,10 +147206,10 @@ self: {
        ];
        executableHaskellDepends = [
          aeson base bytestring containers cookie exceptions hashable
-         http-api-data http-media lens memory network-uri openapi3
-         profunctors servant servant-auth servant-auth-swagger
-         servant-openapi3 servant-swagger servant-swagger-ui-core
-         string-conv swagger2 text time uuid
+         http-api-data http-media insert-ordered-containers lens memory
+         network-uri openapi3 profunctors servant servant-auth
+         servant-auth-swagger servant-openapi3 servant-swagger
+         servant-swagger-ui-core string-conv swagger2 text time uuid
        ];
        testHaskellDepends = [
          aeson base bytestring containers exceptions hashable
@@ -146892,8 +147333,8 @@ self: {
      }:
      mkDerivation {
        pname = "hercules-ci-cnix-expr";
-       version = "0.3.6.2";
-       sha256 = "07alrxwxlkwlz9z6jp9c1n2fcq1bw8426gv031hpvfmdw22n0byz";
+       version = "0.3.6.3";
+       sha256 = "1mwsdc8xdf8c9cpzkvhg6z450d4n6s1ijraznzzvkgh0zwqggddq";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal cabal-pkg-config-version-hook ];
        libraryHaskellDepends = [
@@ -146922,8 +147363,8 @@ self: {
      }:
      mkDerivation {
        pname = "hercules-ci-cnix-store";
-       version = "0.3.5.1";
-       sha256 = "1mmcmnh6bwfxyrwkn294zypj2z8qcdla60cym2xnyap6siv389f1";
+       version = "0.3.6.0";
+       sha256 = "02l5bdqxz5gc2zam3n69nbrhny3hkd6pk37sw5qls9wkf5bm3ah7";
        setupHaskellDepends = [ base Cabal cabal-pkg-config-version-hook ];
        libraryHaskellDepends = [
          base bytestring conduit containers inline-c inline-c-cpp protolude
@@ -148925,6 +149366,8 @@ self: {
        pname = "hie-bios";
        version = "0.14.0";
        sha256 = "1caszgj3x3l13q6w26snx49yqyzjfgiik4403gl3mfalkrgbvk2g";
+       revision = "1";
+       editedCabalFile = "1g9gagj12jpazrq9zwq8vwv5saf23gqjgcvzcg81q7s4bn115l72";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -150516,26 +150959,30 @@ self: {
      }) {};
 
   "hix" = callPackage
-    ({ mkDerivation, aeson, base, Cabal, casing, exon, extra
-     , filepattern, generic-lens, hedgehog, incipit-base, lens
-     , lens-regex-pcre, optparse-applicative, path, path-io, random
-     , tasty, tasty-hedgehog, transformers, unix
+    ({ mkDerivation, aeson, base, bytestring, Cabal, cabal-install
+     , cabal-install-solver, casing, containers, exceptions, exon, extra
+     , filepattern, generic-lens, generics-sop, hedgehog, http-client
+     , http-client-tls, http-types, incipit-base, lens, lens-regex-pcre
+     , optparse-applicative, path, path-io, pretty, random, tasty
+     , tasty-hedgehog, these, time, transformers, typed-process, unix
      }:
      mkDerivation {
        pname = "hix";
-       version = "0.6.9";
-       sha256 = "02ihihlxxvcndm7hjiwknj1dar4d3hdwrg83zsr6q1w7gssr9bbi";
+       version = "0.7.0";
+       sha256 = "15dhr9xszg64kdswywc8pd8kfawq02mcarhh4lyq21g9cynvbk6g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base Cabal casing exon extra filepattern generic-lens
-         incipit-base lens lens-regex-pcre optparse-applicative path path-io
-         random transformers unix
+         aeson base bytestring Cabal cabal-install cabal-install-solver
+         casing containers exceptions exon extra filepattern generic-lens
+         generics-sop http-client http-client-tls http-types incipit-base
+         lens lens-regex-pcre optparse-applicative path path-io pretty
+         random these time transformers typed-process unix
        ];
        executableHaskellDepends = [ base incipit-base ];
        testHaskellDepends = [
-         base Cabal exon hedgehog incipit-base path path-io tasty
-         tasty-hedgehog transformers
+         aeson base Cabal exon extra hedgehog incipit-base path path-io
+         tasty tasty-hedgehog these transformers
        ];
        description = "Haskell/Nix development build tools";
        license = "BSD-2-Clause-Patent";
@@ -151035,6 +151482,8 @@ self: {
        pname = "hledger";
        version = "1.33.1";
        sha256 = "14vx74c1lj4kj81p9qrdi9ln8fs15dk3xz0yy3aaq7xp979jj21f";
+       revision = "1";
+       editedCabalFile = "1bbh8vbc8n539manidahnkqvskg4wzmf6y00f8wxga80dm5djadl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -151328,6 +151777,8 @@ self: {
        pname = "hledger-lib";
        version = "1.33.1";
        sha256 = "12l3c6ixmfb65c566vgrfksggrpgab11f1v658dk5gy482p994vb";
+       revision = "1";
+       editedCabalFile = "1wkp0lyihjqc7figv29sw37g7d6i7zwzddi8jvjqpbpcffrcj81r";
        libraryHaskellDepends = [
          aeson aeson-pretty ansi-terminal array base base-compat
          blaze-markup bytestring call-stack cassava cassava-megaparsec
@@ -151444,6 +151895,8 @@ self: {
        pname = "hledger-ui";
        version = "1.33.1";
        sha256 = "1x05jdm6aargcnghvmdayzacigc8is5ra8xpnava499kwqk5x66i";
+       revision = "1";
+       editedCabalFile = "0q29ix824in8mwdr6mg13b7hrzpv55mkrfwm5r84jsv1mxlbslvp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -151532,6 +151985,8 @@ self: {
        pname = "hledger-web";
        version = "1.33.1";
        sha256 = "1f5xk0s93n2r8ar0l3hxfxxvi5gbb2sn1fhlg8mvkjbh93krywqr";
+       revision = "1";
+       editedCabalFile = "040sls51agm49s2p9wdpq5vly3d210dib87q312dlk6238p7hap5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -164552,8 +165007,8 @@ self: {
        pname = "http-media";
        version = "0.8.1.1";
        sha256 = "10zi0c6v0vngxadlbzfp1y1fgyx1ac5gvyvl0gv6gl8m3grss80r";
-       revision = "1";
-       editedCabalFile = "0vlaxmh1qqli981bwn3hw0hqfy6spkijdywycnhxi0z1qg5837fk";
+       revision = "2";
+       editedCabalFile = "12bj8xqpvaxvrnif4qzkjamdxdrlg2hsfqa7q5n2irzr2hpkjni0";
        libraryHaskellDepends = [
          base bytestring case-insensitive containers utf8-string
        ];
@@ -167064,19 +167519,21 @@ self: {
      }) {};
 
   "hw-polysemy" = callPackage
-    ({ mkDerivation, base, bytestring, contravariant, Diff, directory
-     , filepath, ghc-prim, polysemy, polysemy-log, polysemy-plugin
-     , polysemy-time, process, stm, tasty, tasty-discover
-     , tasty-hedgehog, text, time
+    ({ mkDerivation, aeson, async, base, bytestring, contravariant
+     , Diff, directory, filepath, generic-lens, ghc-prim, lens, network
+     , polysemy, polysemy-log, polysemy-plugin, polysemy-time, process
+     , resourcet, stm, tasty, tasty-discover, tasty-hedgehog, temporary
+     , text, time, unliftio, yaml
      }:
      mkDerivation {
        pname = "hw-polysemy";
-       version = "0.2.0.0";
-       sha256 = "15y9qy5sb35x52cczabrkc4dc9z1sz8mipmi1wqc8z37x91py840";
+       version = "0.2.4.2";
+       sha256 = "1czisgq8yv8gmr9ixs72y7yfajs95333698blfnj2ipngcmkrh09";
        libraryHaskellDepends = [
-         base bytestring contravariant Diff directory filepath ghc-prim
-         polysemy polysemy-log polysemy-plugin polysemy-time process stm
-         text time
+         aeson async base bytestring contravariant Diff directory filepath
+         generic-lens ghc-prim lens network polysemy polysemy-log
+         polysemy-plugin polysemy-time process resourcet stm temporary text
+         time unliftio yaml
        ];
        testHaskellDepends = [
          base filepath polysemy polysemy-log polysemy-plugin tasty
@@ -170720,8 +171177,8 @@ self: {
      }:
      mkDerivation {
        pname = "imp";
-       version = "1.0.2.0";
-       sha256 = "1r0z0s6q8xfjyk098w3p1qvs8d8fl6y2mna867j7i8ksvvjm5khd";
+       version = "1.0.2.1";
+       sha256 = "09j8dw4lh6acfjcr51fh4i7qzlriqybb5gw3cjxyis3hj7sqxivf";
        libraryHaskellDepends = [
          base Cabal-syntax containers exceptions ghc transformers
        ];
@@ -171687,6 +172144,18 @@ self: {
        license = lib.licenses.bsd2;
      }) {};
 
+  "indexed-traversable_0_1_4" = callPackage
+    ({ mkDerivation, array, base, containers, transformers }:
+     mkDerivation {
+       pname = "indexed-traversable";
+       version = "0.1.4";
+       sha256 = "08ivs1shxnvw5fzklvg7yh4xy0nnh3gsglm059fa5m9svyphkgjq";
+       libraryHaskellDepends = [ array base containers transformers ];
+       description = "FunctorWithIndex, FoldableWithIndex, TraversableWithIndex";
+       license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "indexed-traversable-instances" = callPackage
     ({ mkDerivation, base, containers, indexed-traversable, OneTuple
      , QuickCheck, quickcheck-instances, tagged, tasty, tasty-quickcheck
@@ -171711,6 +172180,29 @@ self: {
        license = lib.licenses.bsd2;
      }) {};
 
+  "indexed-traversable-instances_0_1_2" = callPackage
+    ({ mkDerivation, base, containers, indexed-traversable, OneTuple
+     , QuickCheck, quickcheck-instances, tagged, tasty, tasty-quickcheck
+     , transformers, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "indexed-traversable-instances";
+       version = "0.1.2";
+       sha256 = "1hf75x729c3348yvgxk0pjab2mmwi0xxcw3h2yb6c78lp8pvcarw";
+       libraryHaskellDepends = [
+         base indexed-traversable OneTuple tagged unordered-containers
+         vector
+       ];
+       testHaskellDepends = [
+         base containers indexed-traversable OneTuple QuickCheck
+         quickcheck-instances tasty tasty-quickcheck transformers
+         unordered-containers vector
+       ];
+       description = "More instances of FunctorWithIndex, FoldableWithIndex, TraversableWithIndex";
+       license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "indextype" = callPackage
     ({ mkDerivation, base, hspec }:
      mkDerivation {
@@ -173023,6 +173515,8 @@ self: {
        pname = "int-supply";
        version = "1.0.0";
        sha256 = "0h7yi4clvy44gb2nxjv50m5lnlgqdkj781pv0iqlgwyqjigwappz";
+       revision = "1";
+       editedCabalFile = "0365vb3l7lj0zpj92xxm02idsqhnsdynsp0v1vn2653lkfyajkm7";
        libraryHaskellDepends = [ base ];
        description = "A simple, efficient supply of integers using atomic fetch-and-add";
        license = lib.licenses.bsd3;
@@ -174217,8 +174711,8 @@ self: {
      }:
      mkDerivation {
        pname = "io-classes";
-       version = "1.4.1.0";
-       sha256 = "059krkisax9g51s0qb03sb139r3ivxl2l02599ybkpzq9rc7mkgl";
+       version = "1.5.0.0";
+       sha256 = "1iwzmi6z3v9sx7n3x8yg1xa262i898f6vddxhx9lhgby0hw3r4i9";
        libraryHaskellDepends = [
          array async base bytestring mtl primitive stm time
        ];
@@ -174230,8 +174724,8 @@ self: {
     ({ mkDerivation, array, base, io-classes, mtl, si-timers }:
      mkDerivation {
        pname = "io-classes-mtl";
-       version = "0.1.1.0";
-       sha256 = "1g7pzlf5iiv2rvkj4jiwfcc63f2zg4bic1xlwa4n67dqi7fmh80l";
+       version = "0.1.2.0";
+       sha256 = "06lcz96rja31hk3229zxz9ip45c2xqr563kv66jc2f9zyjy7z8s7";
        libraryHaskellDepends = [ array base io-classes mtl si-timers ];
        description = "Experimental MTL instances for io-classes";
        license = lib.licenses.asl20;
@@ -174306,17 +174800,17 @@ self: {
 
   "io-sim" = callPackage
     ({ mkDerivation, array, base, containers, criterion, deepseq
-     , exceptions, io-classes, nothunks, primitive, psqueues, QuickCheck
-     , quiet, si-timers, strict-stm, tasty, tasty-hunit
+     , exceptions, io-classes, nothunks, parallel, primitive, psqueues
+     , QuickCheck, quiet, si-timers, strict-stm, tasty, tasty-hunit
      , tasty-quickcheck, time
      }:
      mkDerivation {
        pname = "io-sim";
-       version = "1.4.1.0";
-       sha256 = "03izkywq5s82hpy70hana6nlaj9frk072531ahfvja913879aw43";
+       version = "1.5.0.0";
+       sha256 = "0074ngiwrs7fnrllnzh7dz5k1f5dv65d7b9bjmx6kzfn38pmmn0v";
        libraryHaskellDepends = [
-         base containers deepseq exceptions io-classes nothunks primitive
-         psqueues QuickCheck quiet si-timers strict-stm time
+         base containers deepseq exceptions io-classes nothunks parallel
+         primitive psqueues QuickCheck quiet si-timers strict-stm time
        ];
        testHaskellDepends = [
          array base containers io-classes QuickCheck si-timers strict-stm
@@ -176481,8 +176975,10 @@ self: {
      }:
      mkDerivation {
        pname = "jacinda";
-       version = "3.0.1.0";
-       sha256 = "0s0zsxh9jvdg9ya6qy99psazixgsmplajwbccpg2mn33rv2lfccf";
+       version = "3.0.2.0";
+       sha256 = "0b18681ggx6syfix318j1wlycz3fm9g4r6p1vgqgfgxgv8kmyw9w";
+       revision = "2";
+       editedCabalFile = "12dnkgsf44wfcizdyd5z2l4hh4wg97cd816l909r9q70z2hszqpp";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -176554,19 +177050,20 @@ self: {
      }) {};
 
   "jackpolynomials" = callPackage
-    ({ mkDerivation, array, base, combinat, containers, hspray
+    ({ mkDerivation, array, base, combinat, containers, extra, hspray
      , hypergeomatrix, ilist, lens, miniterion, numeric-prelude, tasty
-     , tasty-hunit
+     , tasty-hunit, unordered-containers
      }:
      mkDerivation {
        pname = "jackpolynomials";
-       version = "1.4.0.0";
-       sha256 = "1h23lhcxvv5yymircn9wqapyjv19wvp2fvd0gvyq8a35s98y289q";
+       version = "1.4.1.0";
+       sha256 = "153y4p18a5bz803il9v7nacsqki4mw1szw0pdx5qk9jyh9vnalkb";
        libraryHaskellDepends = [
-         array base combinat containers hspray ilist lens numeric-prelude
+         array base combinat containers extra hspray ilist lens
+         numeric-prelude unordered-containers
        ];
        testHaskellDepends = [
-         base combinat hspray hypergeomatrix tasty tasty-hunit
+         base combinat containers hspray hypergeomatrix tasty tasty-hunit
        ];
        benchmarkHaskellDepends = [ base hspray miniterion ];
        description = "Jack, zonal, Schur and skew Schur polynomials";
@@ -178560,6 +179057,23 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "json-feed_2_0_0_12" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, filepath, hspec
+     , mime-types, network-uri, tagsoup, text, time
+     }:
+     mkDerivation {
+       pname = "json-feed";
+       version = "2.0.0.12";
+       sha256 = "16rkzj280f735va17zl7lrp8yr1b8avjk9gqfa67pk31zn08yicc";
+       libraryHaskellDepends = [
+         aeson base bytestring mime-types network-uri tagsoup text time
+       ];
+       testHaskellDepends = [ base bytestring filepath hspec ];
+       description = "JSON Feed";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "json-fu" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring, containers
      , hashable, hspec, mtl, syb, text, time, unordered-containers
@@ -180897,6 +181411,28 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "katip-wai_0_1_2_4" = callPackage
+    ({ mkDerivation, aeson, async, base, bytestring, clock, containers
+     , hspec, hspec-discover, http-client, http-types, katip, network
+     , stm, text, uuid, wai, warp
+     }:
+     mkDerivation {
+       pname = "katip-wai";
+       version = "0.1.2.4";
+       sha256 = "0vpjqdr4x68ffjzlwj5f7vhslkwqybj95ynvj8ap9fhq0nhmmp3q";
+       libraryHaskellDepends = [
+         aeson base bytestring clock http-types katip network text uuid wai
+       ];
+       testHaskellDepends = [
+         aeson async base bytestring containers hspec http-client http-types
+         katip stm text uuid wai warp
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "WAI middleware for logging request and response info through katip";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "katt" = callPackage
     ({ mkDerivation, aeson, base, bytestring, ConfigFile, containers
      , directory, errors, filepath, lens, mtl, parsec, text, url, wreq
@@ -182285,6 +182821,8 @@ self: {
        pname = "ki";
        version = "1.0.1.1";
        sha256 = "1rvjwq765wy99j60x7d5v7zyq8hf52gfjiypc37a9r7gx1y4hir9";
+       revision = "1";
+       editedCabalFile = "0735l77vpcz341cydp8f91vrgzwzwzh4pg4nqwaqzyl1dhsfq02v";
        libraryHaskellDepends = [ base containers ];
        testHaskellDepends = [ base stm tasty tasty-hunit ];
        description = "A lightweight structured concurrency library";
@@ -183626,6 +184164,19 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "lackey_2_0_0_8" = callPackage
+    ({ mkDerivation, base, hspec, servant, servant-foreign, text }:
+     mkDerivation {
+       pname = "lackey";
+       version = "2.0.0.8";
+       sha256 = "1lqvy29zcqmmv7bvrprriip5537j73j8zfbwl505a9b17ym97sr7";
+       libraryHaskellDepends = [ base servant-foreign text ];
+       testHaskellDepends = [ base hspec servant text ];
+       description = "Generate Ruby clients from Servant APIs";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "lacroix" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -186209,6 +186760,39 @@ self: {
        maintainers = [ lib.maintainers.thielema ];
      }) {};
 
+  "lapack_0_5_2" = callPackage
+    ({ mkDerivation, base, blas-ffi, blaze-html, boxes, ChasingBottoms
+     , comfort-array, comfort-array-shape, comfort-blas, containers
+     , data-ref, deepseq, doctest-exitcode-stdio, guarded-allocation
+     , hyper, lapack-ffi, lazyio, monoid-transformer, netlib-ffi
+     , non-empty, QuickCheck, quickcheck-transformer, random, semigroups
+     , Stream, tagged, text, tfp, transformers, unique-logic-tf
+     , utility-ht
+     }:
+     mkDerivation {
+       pname = "lapack";
+       version = "0.5.2";
+       sha256 = "02slhxbg0ijcx2msrf17ymh17h14j95ia0nhb5mfiqdsxi8rwnda";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base blas-ffi blaze-html boxes comfort-array comfort-array-shape
+         comfort-blas containers deepseq guarded-allocation hyper lapack-ffi
+         lazyio netlib-ffi non-empty semigroups Stream tagged text tfp
+         transformers utility-ht
+       ];
+       testHaskellDepends = [
+         base ChasingBottoms comfort-array comfort-array-shape data-ref
+         doctest-exitcode-stdio monoid-transformer netlib-ffi non-empty
+         QuickCheck quickcheck-transformer random semigroups tfp
+         transformers unique-logic-tf utility-ht
+       ];
+       description = "Numerical Linear Algebra using LAPACK";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.thielema ];
+     }) {};
+
   "lapack-carray" = callPackage
     ({ mkDerivation, base, carray, lapack-ffi, netlib-carray
      , netlib-ffi, storable-complex, transformers
@@ -186706,6 +187290,31 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "lattices_2_2_1" = callPackage
+    ({ mkDerivation, base, containers, deepseq, hashable
+     , integer-logarithms, QuickCheck, quickcheck-instances, tagged
+     , tasty, tasty-quickcheck, transformers, universe-base
+     , universe-reverse-instances, unordered-containers
+     }:
+     mkDerivation {
+       pname = "lattices";
+       version = "2.2.1";
+       sha256 = "0rknzbzwcbg87hjiz4jwqb81w14pywkipxjrrlrp0m5i8ciky1i7";
+       libraryHaskellDepends = [
+         base containers deepseq hashable integer-logarithms QuickCheck
+         tagged transformers universe-base universe-reverse-instances
+         unordered-containers
+       ];
+       testHaskellDepends = [
+         base containers QuickCheck quickcheck-instances tasty
+         tasty-quickcheck transformers universe-base
+         universe-reverse-instances unordered-containers
+       ];
+       description = "Fine-grained library for constructing and manipulating lattices";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "launchdarkly-server-sdk" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, base16-bytestring
      , bytestring, clock, containers, cryptohash, exceptions, extra
@@ -188103,6 +188712,8 @@ self: {
        pname = "lens";
        version = "5.3.2";
        sha256 = "1629gyy38l48ifhlwxlbjbrzahphcqgmad5sz2qlr2z2cq3bq4zz";
+       revision = "1";
+       editedCabalFile = "0xpmk9cd73frn5hb4g6h62rkrjxs091hmxajimn61cnnbg85ckb4";
        libraryHaskellDepends = [
          array assoc base base-orphans bifunctors bytestring call-stack
          comonad containers contravariant distributive exceptions filepath
@@ -189151,7 +189762,6 @@ self: {
        ];
        description = "Haskell interface to libarchive";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) libarchive;};
 
   "libarchive-conduit" = callPackage
@@ -192255,6 +192865,8 @@ self: {
        pname = "liquid-prelude";
        version = "0.9.2.8.1";
        sha256 = "1yan7blwns2r39qgrrzn2q7z9j6m72jllnl523w61frr7yzlxkck";
+       revision = "1";
+       editedCabalFile = "08zwppn1jpf1cpz1f3pq18wxdl20spmkkfj604kn8x0bz4d0386d";
        setupHaskellDepends = [ base Cabal liquidhaskell-boot ];
        libraryHaskellDepends = [
          base bytestring containers ghc-prim liquidhaskell
@@ -192480,28 +193092,16 @@ self: {
      }) {};
 
   "list-remote-forwards" = callPackage
-    ({ mkDerivation, base, bytestring, cmdargs, configurator
-     , containers, directory, dns, doctest, filemanip, filepath, HDBC
-     , HDBC-postgresql, HDBC-sqlite3, MissingH, tasty, tasty-hunit
-     }:
+    ({ mkDerivation, base }:
      mkDerivation {
        pname = "list-remote-forwards";
-       version = "0.0.3";
-       sha256 = "0c7fm8mbhhh9nhcib5d0k2gipfkcsvpkg5x4xb7x75x0i099q6jf";
+       version = "1.8.7";
+       sha256 = "1gzb2nmd119s7vgy2m6ir3d879sk5rm8m19igizqrmbyrvmspzbz";
        isLibrary = false;
        isExecutable = true;
-       executableHaskellDepends = [
-         base bytestring cmdargs configurator containers directory dns
-         filepath HDBC HDBC-postgresql HDBC-sqlite3 MissingH tasty
-         tasty-hunit
-       ];
-       testHaskellDepends = [
-         base bytestring cmdargs configurator containers directory dns
-         doctest filemanip filepath HDBC HDBC-sqlite3 MissingH tasty
-         tasty-hunit
-       ];
+       executableHaskellDepends = [ base ];
        description = "List all remote forwards for mail accounts stored in a SQL database";
-       license = lib.licenses.agpl3Only;
+       license = lib.licenses.agpl3Plus;
        mainProgram = "list-remote-forwards";
      }) {};
 
@@ -192522,6 +193122,23 @@ self: {
        broken = true;
      }) {};
 
+  "list-shuffle_1_0_0_1" = callPackage
+    ({ mkDerivation, base, deepseq, hedgehog, primitive, random
+     , tasty-bench
+     }:
+     mkDerivation {
+       pname = "list-shuffle";
+       version = "1.0.0.1";
+       sha256 = "1qcgkkhwnbrl729va8zgv5k6b4lpfy15bbkqnnx0nqz0d91xiqcr";
+       libraryHaskellDepends = [ base primitive random ];
+       testHaskellDepends = [ base hedgehog random ];
+       benchmarkHaskellDepends = [ base deepseq random tasty-bench ];
+       description = "List shuffling and sampling";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "list-singleton" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -192664,6 +193281,20 @@ self: {
        maintainers = [ lib.maintainers.Gabriella439 ];
      }) {};
 
+  "list-transformer_1_1_1" = callPackage
+    ({ mkDerivation, base, doctest, mmorph, mtl }:
+     mkDerivation {
+       pname = "list-transformer";
+       version = "1.1.1";
+       sha256 = "172dmmw2hbmgzym2fdllwdnk5kcwrw8ljks6azpyzz99ppzk6gr0";
+       libraryHaskellDepends = [ base mmorph mtl ];
+       testHaskellDepends = [ base doctest ];
+       description = "List monad transformer";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.Gabriella439 ];
+     }) {};
+
   "list-tries" = callPackage
     ({ mkDerivation, base, binary, ChasingBottoms, containers, dlist
      , HUnit, QuickCheck, template-haskell, test-framework
@@ -195783,6 +196414,8 @@ self: {
        pname = "lsp";
        version = "2.6.0.0";
        sha256 = "1wimb5y1757l8k1kinlv1y43n7kmjzdh18gayarfm32dsmllahi5";
+       revision = "1";
+       editedCabalFile = "1p9lvb18m69jdz99d8bn59h2dn3gwalnf4j0sf7j1p2cj9yv8srm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -195872,6 +196505,8 @@ self: {
        pname = "lsp-test";
        version = "0.17.0.2";
        sha256 = "1nyqv66rqs316dx1yl1n3ydcxl1lkdvxri8chgvw88c67p84ss45";
+       revision = "1";
+       editedCabalFile = "04pr949939z5wpi5ir4pjks8zx1r99pgrb4f7wxqpm1g0l25vzgx";
        libraryHaskellDepends = [
          aeson aeson-pretty ansi-terminal async base bytestring co-log-core
          conduit conduit-parse containers data-default Diff directory
@@ -195975,6 +196610,8 @@ self: {
        pname = "lsp-types";
        version = "2.2.0.0";
        sha256 = "0h3mdnilhk6mg4vnhmnynq18vhj9kfbw5k9bsqa7mrgr8rjsy7jy";
+       revision = "1";
+       editedCabalFile = "05rz0q5w8ijac7ciia06lcdim6lycq3y5ni5kl7fbjhp39z9l11g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -197859,26 +198496,16 @@ self: {
      }) {};
 
   "mailbox-count" = callPackage
-    ({ mkDerivation, base, cmdargs, configurator, containers, directory
-     , doctest, filemanip, filepath, HDBC, HDBC-postgresql, HDBC-sqlite3
-     , MissingH, tasty, tasty-hunit
-     }:
+    ({ mkDerivation, base }:
      mkDerivation {
        pname = "mailbox-count";
-       version = "0.0.6";
-       sha256 = "0pjy1l63wzic55snhkxq7hv4iscda3np5f5dl5lb9vmh0hlx4x1k";
+       version = "1.8.7";
+       sha256 = "1sxanzwjddihh5nli80z64r5zlaz06wpaz6c57a1ijzs7pgwpw82";
        isLibrary = false;
        isExecutable = true;
-       executableHaskellDepends = [
-         base cmdargs configurator containers directory filepath HDBC
-         HDBC-postgresql HDBC-sqlite3 MissingH tasty tasty-hunit
-       ];
-       testHaskellDepends = [
-         base cmdargs configurator containers directory doctest filemanip
-         filepath HDBC HDBC-sqlite3 MissingH tasty tasty-hunit
-       ];
+       executableHaskellDepends = [ base ];
        description = "Count mailboxes in a SQL database";
-       license = lib.licenses.agpl3Only;
+       license = lib.licenses.agpl3Plus;
        mainProgram = "mailbox-count";
      }) {};
 
@@ -198903,6 +199530,34 @@ self: {
        broken = true;
      }) {};
 
+  "mappings_0_3_1_0" = callPackage
+    ({ mkDerivation, base, cond, containers, formatting, hspec
+     , hspec-discover, indexed-traversable, partialord
+     }:
+     mkDerivation {
+       pname = "mappings";
+       version = "0.3.1.0";
+       sha256 = "1yf6qvsipjfq8s9z9lk7q29m3dkpa5kgvjpkm4wap5vawp2rzqyd";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base cond containers formatting indexed-traversable partialord
+       ];
+       executableHaskellDepends = [
+         base cond containers formatting indexed-traversable partialord
+       ];
+       testHaskellDepends = [
+         base cond containers formatting hspec indexed-traversable
+         partialord
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Types which represent functions k -> v";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "view";
+       broken = true;
+     }) {};
+
   "mappy" = callPackage
     ({ mkDerivation, ansi-terminal, base, containers, directory
      , haskeline, hspec, parsec, QuickCheck
@@ -203161,6 +203816,28 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "microstache_1_0_3" = callPackage
+    ({ mkDerivation, aeson, base, base-orphans, bytestring, containers
+     , deepseq, directory, filepath, parsec, tasty, tasty-hunit, text
+     , transformers, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "microstache";
+       version = "1.0.3";
+       sha256 = "13w9macbi0krdilyp7dvzcg48di89biyz1axd7vvl3ylggjr1wim";
+       libraryHaskellDepends = [
+         aeson base containers deepseq directory filepath parsec text
+         transformers unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base base-orphans bytestring containers parsec tasty
+         tasty-hunit text
+       ];
+       description = "Mustache templates for Haskell";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "microtimer" = callPackage
     ({ mkDerivation, base, time }:
      mkDerivation {
@@ -206257,6 +206934,23 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "monad-chronicle_1_0_2" = callPackage
+    ({ mkDerivation, base, data-default-class, mtl, semigroupoids
+     , these, transformers, transformers-compat
+     }:
+     mkDerivation {
+       pname = "monad-chronicle";
+       version = "1.0.2";
+       sha256 = "1mmp2r75b3j9l0rvxjvl1znlr7x4d8baj6ykffdsbnf9v59h0dcx";
+       libraryHaskellDepends = [
+         base data-default-class mtl semigroupoids these transformers
+         transformers-compat
+       ];
+       description = "These as a transformer, ChronicleT";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "monad-classes" = callPackage
     ({ mkDerivation, base, conduit, data-lens-light, ghc-prim, mmorph
      , monad-control, peano, reflection, tasty, tasty-hunit
@@ -208151,8 +208845,8 @@ self: {
        pname = "monoid-extras";
        version = "0.6.2";
        sha256 = "1qaxp0cf2cvzvfpk7x9mjz1zmlpjfzxij8v2n45w89s7bq9ckvlw";
-       revision = "2";
-       editedCabalFile = "08ydfb0n886qzy940lfvyv1pcj51yhpa0kz6pwn7lm22fh1hb5pf";
+       revision = "3";
+       editedCabalFile = "16ff0ffc8my9jkylcsyskb6bpb1hpjsg2shv2vnrb54r7gqfqy8v";
        libraryHaskellDepends = [ base groups semigroupoids ];
        benchmarkHaskellDepends = [ base criterion semigroups ];
        description = "Various extra monoid-related definitions and utilities";
@@ -208258,6 +208952,28 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "monoid-subclasses_1_2_5_1" = callPackage
+    ({ mkDerivation, base, bytestring, commutative-semigroups
+     , containers, primes, QuickCheck, quickcheck-instances, tasty
+     , tasty-quickcheck, text, vector
+     }:
+     mkDerivation {
+       pname = "monoid-subclasses";
+       version = "1.2.5.1";
+       sha256 = "0xrbsk4cd8gncw8s0wdg02pmds8wxf237qkbncr73wfwbidshl15";
+       libraryHaskellDepends = [
+         base bytestring commutative-semigroups containers primes text
+         vector
+       ];
+       testHaskellDepends = [
+         base bytestring containers primes QuickCheck quickcheck-instances
+         tasty tasty-quickcheck text vector
+       ];
+       description = "Subclasses of Monoid";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "monoid-transformer" = callPackage
     ({ mkDerivation, base, semigroups }:
      mkDerivation {
@@ -208322,8 +209038,8 @@ self: {
      }:
      mkDerivation {
        pname = "monoidmap";
-       version = "0.0.1.3";
-       sha256 = "1hi4sqky1wwgx5i9cjn6dsf5dim9k5lw74j8a0wghq2rwab7b2ng";
+       version = "0.0.1.4";
+       sha256 = "0nv8ahq9m9xp68nj0qkl49ijz7iqbm073542z9d1phs96xs62d7g";
        libraryHaskellDepends = [
          base containers deepseq groups monoid-subclasses
          nonempty-containers nothunks
@@ -208424,8 +209140,8 @@ self: {
      }:
      mkDerivation {
        pname = "monomer-flatpak-example";
-       version = "0.0.15.4";
-       sha256 = "0cmrmr562crwwp52ij1m1z9p0sdl5054kjknfxwxk93w5djlg5kd";
+       version = "0.0.15.5";
+       sha256 = "0b517ahaaabxv4ii06kl5yckkskilhs18kr2wcvv0jv9b0pmgmx7";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -210185,27 +210901,26 @@ self: {
      }) {};
 
   "ms-tds" = callPackage
-    ({ mkDerivation, array, base, binary, bytestring, crypto-random
-     , data-default-class, mtl, network, template-haskell, text, time
-     , tls, uuid-types, x509-store, x509-system
+    ({ mkDerivation, array, base, binary, bytestring, crypton
+     , crypton-x509-store, crypton-x509-system, data-default-class, mtl
+     , network, template-haskell, text, time, tls, uuid-types
      }:
      mkDerivation {
        pname = "ms-tds";
-       version = "0.4.0.2";
-       sha256 = "0lkvl74ckxsdxwvrm45z5gk2ax65yfpd00j86w8iax4askz76vxc";
+       version = "0.4.0.3";
+       sha256 = "15s7k87x3lx3w71gnsfcbikv9cpffm3vi46qd6v6g3kqa896k898";
        libraryHaskellDepends = [
-         array base binary bytestring crypto-random data-default-class mtl
-         network template-haskell text time tls uuid-types x509-store
-         x509-system
+         array base binary bytestring crypton crypton-x509-store
+         crypton-x509-system data-default-class mtl network template-haskell
+         text time tls uuid-types
        ];
        testHaskellDepends = [
-         array base binary bytestring crypto-random data-default-class mtl
-         network template-haskell text time tls uuid-types x509-store
-         x509-system
+         array base binary bytestring crypton crypton-x509-store
+         crypton-x509-system data-default-class mtl network template-haskell
+         text time tls uuid-types
        ];
        description = "TDS Protocol implemented in Haskell";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "msgpack" = callPackage
@@ -210473,23 +211188,23 @@ self: {
 
   "mssql-simple" = callPackage
     ({ mkDerivation, base, binary, bytestring, hostname, ms-tds, mtl
-     , network, template-haskell, text, time, tls, uuid-types
+     , network, template-haskell, text, time, tls, transformers
+     , uuid-types
      }:
      mkDerivation {
        pname = "mssql-simple";
-       version = "0.6.0.4";
-       sha256 = "0kw1cvyy07k8jfnj8wgxr2bc0ppinblmj2x7crnyk51s90m0gmc7";
+       version = "0.6.0.5";
+       sha256 = "0d1cj0qfrnqqr12i976d3ynk4yg45fys38xcnixvz8wz20kv00mn";
        libraryHaskellDepends = [
          base binary bytestring hostname ms-tds mtl network template-haskell
-         text time tls uuid-types
+         text time tls transformers uuid-types
        ];
        testHaskellDepends = [
          base binary bytestring hostname ms-tds mtl network template-haskell
-         text time tls uuid-types
+         text time tls transformers uuid-types
        ];
        description = "SQL Server client library implemented in Haskell";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "mstate" = callPackage
@@ -215369,6 +216084,23 @@ self: {
        maintainers = [ lib.maintainers.thielema ];
      }) {};
 
+  "netlib-ffi_0_1_2" = callPackage
+    ({ mkDerivation, base, deepseq, guarded-allocation
+     , storable-complex, transformers
+     }:
+     mkDerivation {
+       pname = "netlib-ffi";
+       version = "0.1.2";
+       sha256 = "18i2d4852r7zf97fp1szdzk1smkajgdf4lyn4qi85hkqfvz31qcv";
+       libraryHaskellDepends = [
+         base deepseq guarded-allocation storable-complex transformers
+       ];
+       description = "Helper modules for FFI to BLAS and LAPACK";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.thielema ];
+     }) {};
+
   "netlines" = callPackage
     ({ mkDerivation, base, bytestring, contstuff, enumerator, HTF
      , random, text, time
@@ -217493,8 +218225,8 @@ self: {
      }:
      mkDerivation {
        pname = "ngx-export-distribution";
-       version = "0.5.4.2";
-       sha256 = "1ihv8mpgwxkhbx0rg3fl3vwvc4qyqjrf2j8hsvca3bpvii4xm5yz";
+       version = "0.5.4.3";
+       sha256 = "0aryjiyjvxza1w03x8lc6lj21v912i53nmljw9inf0n64lb2sbbr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base Cabal directory filepath ];
@@ -218484,13 +219216,15 @@ self: {
     ({ mkDerivation, base, Cabal, cabal-doctest, doctest, ghc }:
      mkDerivation {
        pname = "no-recursion";
-       version = "0.1.1.0";
-       sha256 = "1696872aswsh00br5wwr5ccc77ab52qvznhbjkng26vcn08mdf0w";
+       version = "0.1.2.0";
+       sha256 = "1asf13irq2py0pjd20l8kncxjj1mv0di9kbsjj0czpj51nqvmsvf";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [ base ghc ];
        testHaskellDepends = [ base doctest ];
        description = "A GHC plugin to remove support for recursion";
        license = lib.licenses.agpl3Plus;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "no-role-annots" = callPackage
@@ -218967,8 +219701,8 @@ self: {
        pname = "nonempty-vector";
        version = "0.2.3";
        sha256 = "18xcsw2c9gy03dvrlanh799j1ab6dkpd6wwgj8b681r12ha04dqa";
-       revision = "1";
-       editedCabalFile = "0kn1s5ssan9m4xwf10y2ymba4zw2j18j6dvbpr6iral3rrlgngdw";
+       revision = "2";
+       editedCabalFile = "1gpbla0lrqn3ix422zz7qklq9vg2kp5v0lnl97jcy74g5p40533r";
        libraryHaskellDepends = [ base deepseq primitive vector ];
        testHaskellDepends = [
          base QuickCheck tasty tasty-quickcheck vector
@@ -220451,12 +221185,12 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "numhask_0_12_0_2" = callPackage
+  "numhask_0_12_0_3" = callPackage
     ({ mkDerivation, base, QuickCheck }:
      mkDerivation {
        pname = "numhask";
-       version = "0.12.0.2";
-       sha256 = "0qrqhfmrdq5gbvad649vfv65lvr9q4051d5zyibq5ljr242yl04s";
+       version = "0.12.0.3";
+       sha256 = "0rxh2avhfb2m5ss8b70k7dv3scla9ki7a8d73hnqlcfp7vjwm9qk";
        libraryHaskellDepends = [ base QuickCheck ];
        description = "A numeric class hierarchy";
        license = lib.licenses.bsd3;
@@ -225258,6 +225992,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "ordered-containers_0_2_4" = callPackage
+    ({ mkDerivation, base, containers, hashable }:
+     mkDerivation {
+       pname = "ordered-containers";
+       version = "0.2.4";
+       sha256 = "0ip5msvvyj5zbsci6fv9f3x6p3wpwrrqpq4yhz104ag14hz6g89x";
+       libraryHaskellDepends = [ base containers hashable ];
+       description = "Set- and Map-like types that remember the order elements were inserted";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "ordering-duplicates" = callPackage
     ({ mkDerivation, base, contravariant, lens, mtl, profunctors
      , semigroupoids
@@ -225674,6 +226420,8 @@ self: {
        pname = "ormolu";
        version = "0.7.4.0";
        sha256 = "1s7a9crjhbsmjkdvpv8ycygpiikv96s96p3lmjik4pb3q7idir2z";
+       revision = "1";
+       editedCabalFile = "0cr96kxx13l6vjmgx3jan0xcr7zn68gnihfqsdz6fi7jbd34jhzl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -227312,6 +228060,8 @@ self: {
        pname = "pandoc-cli";
        version = "3.2";
        sha256 = "03nibp6m9nv91h9f6kvj73w7qhbz74qva787zlk7p3m8ayldjwa5";
+       revision = "1";
+       editedCabalFile = "0f3jyg9ln69ggi4shmny5rqqxpyl5w1gmri11iy4z5a1y1v7nr2l";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -227353,6 +228103,8 @@ self: {
        pname = "pandoc-crossref";
        version = "0.3.17.1";
        sha256 = "0md7i54rnvgn0yll7mwhi124nak0pfmpga34vnd996r6fgmnq5fb";
+       revision = "1";
+       editedCabalFile = "0vfhhzqihc911l8j94pn8mljl9l1zfgzrihm3967g0y43agp6h2s";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -227933,6 +228685,26 @@ self: {
        license = lib.licenses.gpl2Plus;
      }) {};
 
+  "pandoc-server_0_1_0_6" = callPackage
+    ({ mkDerivation, aeson, base, base64-bytestring, bytestring
+     , containers, data-default, doctemplates, pandoc, pandoc-types
+     , servant-server, skylighting, text, unicode-collation, wai
+     , wai-cors
+     }:
+     mkDerivation {
+       pname = "pandoc-server";
+       version = "0.1.0.6";
+       sha256 = "18ip1s19dkhfl3bjn6m8hg7g527gka0z6bbjvsc8qq5pchmi6vs3";
+       libraryHaskellDepends = [
+         aeson base base64-bytestring bytestring containers data-default
+         doctemplates pandoc pandoc-types servant-server skylighting text
+         unicode-collation wai wai-cors
+       ];
+       description = "Pandoc document conversion as an HTTP servant-server";
+       license = lib.licenses.gpl2Plus;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "pandoc-sidenote" = callPackage
     ({ mkDerivation, base, mtl, pandoc-types, text }:
      mkDerivation {
@@ -230674,6 +231446,24 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "path-io_1_8_2" = callPackage
+    ({ mkDerivation, base, containers, directory, dlist, exceptions
+     , filepath, hspec, path, temporary, time, transformers, unix-compat
+     }:
+     mkDerivation {
+       pname = "path-io";
+       version = "1.8.2";
+       sha256 = "1a4s4fc2rbzri1cb27gzlm0v24k5g2975smvqg2j4d4h6xmpzbfd";
+       libraryHaskellDepends = [
+         base containers directory dlist exceptions filepath path temporary
+         time transformers unix-compat
+       ];
+       testHaskellDepends = [ base exceptions hspec path unix-compat ];
+       description = "Interface to ‘directory’ package for users of ‘path’";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "path-like" = callPackage
     ({ mkDerivation, base, path }:
      mkDerivation {
@@ -230896,6 +231686,28 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "patrol_1_0_0_8" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, case-insensitive
+     , containers, exceptions, hspec, http-client, http-types
+     , network-uri, text, time, uuid
+     }:
+     mkDerivation {
+       pname = "patrol";
+       version = "1.0.0.8";
+       sha256 = "0117g6am2g4057apz5xl2jya929bg7sbk4v7mqkllijph6sjycp2";
+       libraryHaskellDepends = [
+         aeson base bytestring case-insensitive containers exceptions
+         http-client http-types network-uri text time uuid
+       ];
+       testHaskellDepends = [
+         aeson base bytestring case-insensitive containers exceptions hspec
+         http-client http-types network-uri text time uuid
+       ];
+       description = "Sentry SDK";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "patronscraper" = callPackage
     ({ mkDerivation, base, HandsomeSoup, hxt }:
      mkDerivation {
@@ -231572,6 +232384,28 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "pdf-toolbox-content_0_1_2" = callPackage
+    ({ mkDerivation, attoparsec, base, base16-bytestring, bytestring
+     , containers, hspec, io-streams, pdf-toolbox-core, scientific, text
+     , vector
+     }:
+     mkDerivation {
+       pname = "pdf-toolbox-content";
+       version = "0.1.2";
+       sha256 = "1pxzn6ja0k29qb1sr000ksyscjilf8clk3li94i26z1kgxjqf05s";
+       libraryHaskellDepends = [
+         attoparsec base base16-bytestring bytestring containers io-streams
+         pdf-toolbox-core scientific text vector
+       ];
+       testHaskellDepends = [
+         attoparsec base bytestring containers hspec io-streams
+         pdf-toolbox-core
+       ];
+       description = "A collection of tools for processing PDF files";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "pdf-toolbox-core" = callPackage
     ({ mkDerivation, attoparsec, base, base16-bytestring, bytestring
      , cipher-aes, cipher-rc4, containers, crypto-api, cryptohash
@@ -231597,6 +232431,30 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "pdf-toolbox-core_0_1_2" = callPackage
+    ({ mkDerivation, attoparsec, base, base16-bytestring, bytestring
+     , cipher-aes, cipher-rc4, containers, crypto-api, cryptohash
+     , hashable, hspec, io-streams, scientific, unordered-containers
+     , vector
+     }:
+     mkDerivation {
+       pname = "pdf-toolbox-core";
+       version = "0.1.2";
+       sha256 = "0i1078lj7q0xm52bnxnhhi8wdgnbwh029423g6hm9mj815lq825n";
+       libraryHaskellDepends = [
+         attoparsec base base16-bytestring bytestring cipher-aes cipher-rc4
+         containers crypto-api cryptohash hashable io-streams scientific
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         attoparsec base bytestring hspec io-streams unordered-containers
+         vector
+       ];
+       description = "A collection of tools for processing PDF files";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "pdf-toolbox-document" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory, hspec
      , io-streams, pdf-toolbox-content, pdf-toolbox-core, text
@@ -231618,6 +232476,28 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "pdf-toolbox-document_0_1_3" = callPackage
+    ({ mkDerivation, base, bytestring, containers, directory, hspec
+     , io-streams, pdf-toolbox-content, pdf-toolbox-core, text
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "pdf-toolbox-document";
+       version = "0.1.3";
+       sha256 = "1yywab2xzp69k59636b63akb6nc4g9ql58qj11wkrdsvwvcv9lbb";
+       libraryHaskellDepends = [
+         base bytestring containers io-streams pdf-toolbox-content
+         pdf-toolbox-core text unordered-containers vector
+       ];
+       testHaskellDepends = [
+         base directory hspec io-streams pdf-toolbox-core
+         unordered-containers
+       ];
+       description = "A collection of tools for processing PDF files";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "pdf-toolbox-viewer" = callPackage
     ({ mkDerivation, base, bytestring, cairo, containers, directory
      , filepath, gtk, io-streams, pdf-toolbox-content
@@ -237593,8 +238473,8 @@ self: {
      }:
      mkDerivation {
        pname = "playlists";
-       version = "0.5.1";
-       sha256 = "1hrxmp33pzmvpg9j102hjradnlq261hs9amqkivqjfn9y4pb8inm";
+       version = "0.5.2";
+       sha256 = "03wkr5gvxjn3i3idbqlakwqb9kmpbmgsysx8sq25x3lszp74rdxj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -238749,8 +239629,8 @@ self: {
     ({ mkDerivation, attoparsec, base, containers, ghc, text }:
      mkDerivation {
        pname = "pollock";
-       version = "0.1.0.0";
-       sha256 = "06wrizz358ihpfi8abdnx4xf4nfql3ah5333ag0lblym8qapsyw6";
+       version = "0.1.0.1";
+       sha256 = "0ac33p84bizw2b2dndx3jlpwmfd707xcfd7d96ai6if04db43rzr";
        libraryHaskellDepends = [ attoparsec base containers ghc text ];
        description = "Functionality to help examine Haddock information of a module";
        license = lib.licenses.mit;
@@ -239106,10 +239986,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-blockfrost";
-       version = "0.1.0.0";
-       sha256 = "1lykz8gqgj7kwkr9rp3cvwk2ak469h023ga0dlzz1azmmm8gbabn";
-       revision = "1";
-       editedCabalFile = "0mqa48iib7jn1y6xipfx0mvjmqxbgj1g6gxw5l239mbvg0mh0616";
+       version = "0.1.1.0";
+       sha256 = "0vix900hxi9rns556l2nk0hmmbcshac8b028m9pxk9ybax2w3bqq";
        libraryHaskellDepends = [
          base blockfrost-api blockfrost-client polysemy polysemy-plugin text
        ];
@@ -241037,6 +241915,28 @@ self: {
        broken = true;
      }) {};
 
+  "postgis-trivial" = callPackage
+    ({ mkDerivation, base, binary, bytestring, bytestring-lexing
+     , containers, cpu, data-binary-ieee754, HUnit, mtl
+     , postgresql-simple, storable-record, vector
+     }:
+     mkDerivation {
+       pname = "postgis-trivial";
+       version = "0.0.1.0";
+       sha256 = "0bp2x77xcc24p7la6cxddb0y717gqzdr37gxnm8386sb5bwfqrcj";
+       libraryHaskellDepends = [
+         base binary bytestring bytestring-lexing containers cpu
+         data-binary-ieee754 mtl postgresql-simple storable-record vector
+       ];
+       testHaskellDepends = [
+         base binary bytestring bytestring-lexing containers cpu
+         data-binary-ieee754 HUnit mtl postgresql-simple storable-record
+         vector
+       ];
+       description = "PostGIS extention driver based on postgresql-simple package";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "postgres-embedded" = callPackage
     ({ mkDerivation, base, bytestring, directory, filepath, network
      , postgresql-simple, process
@@ -242502,8 +243402,8 @@ self: {
        pname = "pqueue";
        version = "1.5.0.0";
        sha256 = "00hzrhz3n55ahyv2h183l72jsl3q01p4ns0063p0vjaa5j6qpy0v";
-       revision = "1";
-       editedCabalFile = "1n9gypnfgqlc1b6djjbkcr8r7bxqf8mpfd7avcf11s529gzk9qgg";
+       revision = "2";
+       editedCabalFile = "1amdr1bfh01jkrzq335gjz3bv7nflmah6icvg3m1pyghcqmcrbbx";
        libraryHaskellDepends = [ base deepseq indexed-traversable ];
        testHaskellDepends = [
          base deepseq indexed-traversable tasty tasty-quickcheck
@@ -243748,8 +244648,8 @@ self: {
        pname = "prettyprinter-interp";
        version = "0.2.0.0";
        sha256 = "0ml068y49n0s6p0nq0qfv5dmpkpkbd9p06hkj582yn2a1h32x0ff";
-       revision = "3";
-       editedCabalFile = "079c6ri9aahi4whnxzyh5d3nnawmjvn1kjkq6jdsnp96bflkkhv9";
+       revision = "4";
+       editedCabalFile = "05b86w6670f61hl0dxn7bjhwjx19236qi3ivknwcryim8nrb2kij";
        libraryHaskellDepends = [
          base prettyprinter string-interpolate template-haskell text
        ];
@@ -244792,6 +245692,8 @@ self: {
        pname = "process";
        version = "1.6.20.0";
        sha256 = "16prkmaj4dz394pg40w5xgbxlh5kbhhliwawdcqs57q0qchs5zff";
+       revision = "1";
+       editedCabalFile = "00yabbj6vjlxnslp516a824gwkx9hxx9a9j8izxib17i6gg974ra";
        libraryHaskellDepends = [ base deepseq directory filepath unix ];
        description = "Process libraries";
        license = lib.licenses.bsd3;
@@ -248263,20 +249165,22 @@ self: {
 
   "push-notify-apn" = callPackage
     ({ mkDerivation, aeson, base, base16-bytestring, binary, bytestring
-     , containers, data-default, hspec, http2, http2-client, lifted-base
-     , mtl, optparse-applicative, random, resource-pool, semigroups
-     , text, time, tls, x509, x509-store, x509-system
+     , containers, crypton-x509, crypton-x509-store, crypton-x509-system
+     , data-default, hspec, http2, http2-client, lifted-base, mtl
+     , optparse-applicative, random, resource-pool, semigroups, text
+     , time, tls
      }:
      mkDerivation {
        pname = "push-notify-apn";
-       version = "0.3.0.2";
-       sha256 = "1iirjbqzgxh6skdpkk2w600kk6y0z6a11jcnzyayi81akfqm4jmn";
+       version = "0.4.0.0";
+       sha256 = "0b5si5c6mhs4a9845qjl0svlgwb7vc0mzr9br20027f44l49dpzl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson base base16-bytestring binary bytestring containers
-         data-default http2 http2-client lifted-base mtl random
-         resource-pool semigroups text time tls x509 x509-store x509-system
+         crypton-x509 crypton-x509-store crypton-x509-system data-default
+         http2 http2-client lifted-base mtl random resource-pool semigroups
+         text time tls
        ];
        executableHaskellDepends = [
          base bytestring optparse-applicative semigroups text
@@ -249747,6 +250651,8 @@ self: {
        pname = "queues";
        version = "1.0.0";
        sha256 = "0mnn6lgd7101lrmwqy4lf04ncq8ci2kfxydm1rlh879gjvzz3lsr";
+       revision = "1";
+       editedCabalFile = "1bjjbpx4zm3rkkrpd7sh7ji65g84a6vi34skxkg18zhqcyj3d7wv";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base containers hedgehog ];
        benchmarkHaskellDepends = [ base containers tasty-bench ];
@@ -250039,6 +250945,27 @@ self: {
        license = lib.licenses.asl20;
      }) {};
 
+  "quickcheck-groups_0_0_1_3" = callPackage
+    ({ mkDerivation, base, groups, hspec, hspec-discover, pretty-show
+     , QuickCheck, quickcheck-classes, semigroupoids
+     }:
+     mkDerivation {
+       pname = "quickcheck-groups";
+       version = "0.0.1.3";
+       sha256 = "0qig24h7i04ggwna9zx5al66810mhvkv066kq5w3jw0s95lxg3n8";
+       libraryHaskellDepends = [
+         base groups pretty-show QuickCheck quickcheck-classes semigroupoids
+       ];
+       testHaskellDepends = [
+         base groups hspec QuickCheck quickcheck-classes
+       ];
+       testToolDepends = [ hspec-discover ];
+       doHaddock = false;
+       description = "Testing group class instances with QuickCheck";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "quickcheck-higherorder" = callPackage
     ({ mkDerivation, base, QuickCheck, tasty, tasty-hunit
      , tasty-quickcheck, test-fun
@@ -250081,6 +251008,32 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "quickcheck-instances_0_3_31" = callPackage
+    ({ mkDerivation, array, base, bytestring, case-insensitive
+     , containers, data-fix, hashable, integer-logarithms, old-time
+     , OneTuple, primitive, QuickCheck, scientific, splitmix, strict
+     , tagged, text, text-short, these, time-compat, transformers
+     , unordered-containers, uuid-types, vector
+     }:
+     mkDerivation {
+       pname = "quickcheck-instances";
+       version = "0.3.31";
+       sha256 = "0bsfh6fwc8h3jzkqrqk56rm6iphrmlrp80pa2z1gs79mz4d7w64v";
+       libraryHaskellDepends = [
+         array base bytestring case-insensitive containers data-fix hashable
+         integer-logarithms old-time OneTuple primitive QuickCheck
+         scientific splitmix strict tagged text text-short these time-compat
+         transformers unordered-containers uuid-types vector
+       ];
+       testHaskellDepends = [
+         base containers primitive QuickCheck tagged uuid-types
+       ];
+       benchmarkHaskellDepends = [ base bytestring QuickCheck ];
+       description = "Common quickcheck instances";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "quickcheck-io" = callPackage
     ({ mkDerivation, base, HUnit, QuickCheck }:
      mkDerivation {
@@ -250138,6 +251091,32 @@ self: {
        license = lib.licenses.asl20;
      }) {};
 
+  "quickcheck-monoid-subclasses_0_3_0_4" = callPackage
+    ({ mkDerivation, base, bytestring, commutative-semigroups
+     , containers, hspec, hspec-discover, monoid-subclasses, pretty-show
+     , QuickCheck, quickcheck-classes, quickcheck-instances
+     , semigroupoids, text, vector
+     }:
+     mkDerivation {
+       pname = "quickcheck-monoid-subclasses";
+       version = "0.3.0.4";
+       sha256 = "1ndyk2l8m5g7vx5q5kmkawv3v8s5yydfg7snr203188zamskcq85";
+       libraryHaskellDepends = [
+         base containers monoid-subclasses pretty-show QuickCheck
+         quickcheck-classes quickcheck-instances semigroupoids
+       ];
+       testHaskellDepends = [
+         base bytestring commutative-semigroups containers hspec
+         monoid-subclasses QuickCheck quickcheck-classes
+         quickcheck-instances text vector
+       ];
+       testToolDepends = [ hspec-discover ];
+       doHaddock = false;
+       description = "Testing monoid subclass instances with QuickCheck";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "quickcheck-poly" = callPackage
     ({ mkDerivation, base, haskell98, hint, MonadCatchIO-mtl
      , QuickCheck, regex-compat, regex-tdfa
@@ -250199,8 +251178,8 @@ self: {
      }:
      mkDerivation {
        pname = "quickcheck-quid";
-       version = "0.0.1.3";
-       sha256 = "0f2y91znim4745fdgl37y2lgv1qf3isn698w2ix15ibcs6yvkczy";
+       version = "0.0.1.4";
+       sha256 = "1s1pqqs0v22vigq913v7qjqx95xmfrfg46khiac5qp982swz9vnv";
        libraryHaskellDepends = [
          base containers deepseq extra hashable QuickCheck text
        ];
@@ -251353,8 +252332,8 @@ self: {
      }:
      mkDerivation {
        pname = "radix-tree";
-       version = "1.0.0.0";
-       sha256 = "1cyh6fqrl175mzl2g2565r0wv2jay0xgmv8fih91jqg5rrvgs4hq";
+       version = "1.0.0.1";
+       sha256 = "0jzr4zhznxh45pivsa6falk4pbcizm7bx1kfb108a8bx00i4s885";
        libraryHaskellDepends = [
          base bytestring deepseq primitive template-haskell text
        ];
@@ -251724,6 +252703,19 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "rampart_2_0_0_8" = callPackage
+    ({ mkDerivation, base, hspec }:
+     mkDerivation {
+       pname = "rampart";
+       version = "2.0.0.8";
+       sha256 = "1sdagiz1075kvad525f3q72krn7hvhkrbq1j4dwca4i4p77jdi17";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base hspec ];
+       description = "Determine how intervals relate to each other";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "ramus" = callPackage
     ({ mkDerivation, base, criterion, hspec, QuickCheck, quickcheck-io
      }:
@@ -252343,6 +253335,29 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "rank2classes_1_5_3_1" = callPackage
+    ({ mkDerivation, base, Cabal, cabal-doctest, data-functor-logistic
+     , distributive, doctest, markdown-unlit, tasty, tasty-hunit
+     , template-haskell, transformers
+     }:
+     mkDerivation {
+       pname = "rank2classes";
+       version = "1.5.3.1";
+       sha256 = "1gbcc6damm3wix4g7lk046cf0qsmy8i06mz54id5gw6qccbicnsh";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         base data-functor-logistic distributive template-haskell
+         transformers
+       ];
+       testHaskellDepends = [
+         base data-functor-logistic distributive doctest tasty tasty-hunit
+       ];
+       testToolDepends = [ markdown-unlit ];
+       description = "standard type constructor class hierarchy, only with methods of rank 2 types";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "rapid" = callPackage
     ({ mkDerivation, async, base, containers, foreign-store, stm }:
      mkDerivation {
@@ -252663,6 +253678,25 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "ratel_2_0_0_12" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, case-insensitive
+     , containers, filepath, hspec, http-client, http-client-tls
+     , http-types, uuid
+     }:
+     mkDerivation {
+       pname = "ratel";
+       version = "2.0.0.12";
+       sha256 = "015riig033fm3pmgm90j2rlynyk5vnd3d9z6izh63ab76kppyh6s";
+       libraryHaskellDepends = [
+         aeson base bytestring case-insensitive containers http-client
+         http-client-tls http-types uuid
+       ];
+       testHaskellDepends = [ base filepath hspec ];
+       description = "Notify Honeybadger about exceptions";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "ratel-wai" = callPackage
     ({ mkDerivation, base, bytestring, case-insensitive, containers
      , http-client, ratel, wai
@@ -252678,6 +253712,22 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "ratel-wai_2_0_0_7" = callPackage
+    ({ mkDerivation, base, bytestring, case-insensitive, containers
+     , http-client, ratel, wai
+     }:
+     mkDerivation {
+       pname = "ratel-wai";
+       version = "2.0.0.7";
+       sha256 = "02a6jv5hri6y26idgfxpnyhfjsgiwc1ssks3pn7vcqlahampqa5i";
+       libraryHaskellDepends = [
+         base bytestring case-insensitive containers http-client ratel wai
+       ];
+       description = "Notify Honeybadger about exceptions via a WAI middleware";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "ratelimiter" = callPackage
     ({ mkDerivation, base, containers, extra, mtl, time, timespan
      , vector
@@ -252824,14 +253874,14 @@ self: {
        broken = true;
      }) {};
 
-  "rattletrap_13_0_2" = callPackage
+  "rattletrap_13_0_3" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, array, base, bytestring
      , containers, filepath, http-client, http-client-tls, text
      }:
      mkDerivation {
        pname = "rattletrap";
-       version = "13.0.2";
-       sha256 = "0yrq5ydwp3p1mw5srk2x4rsv4x466xlkb7468v1mgvhnbd9i85cf";
+       version = "13.0.3";
+       sha256 = "0rs1hskmx13ahcqg6dxx46nc0pijc14d8bikjsdm1y17z2wzidcm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -254024,6 +255074,24 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "real-dice" = callPackage
+    ({ mkDerivation, base, extra, mtl, primes, QuickCheck, random }:
+     mkDerivation {
+       pname = "real-dice";
+       version = "0.1.0.2";
+       sha256 = "0vkdkyrlmja0aa8h4q04p3rlzvcd0lb4pr07f191dbnd7siwk9dw";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base mtl primes ];
+       executableHaskellDepends = [ base mtl random ];
+       testHaskellDepends = [ base extra mtl primes QuickCheck ];
+       description = "Random number generation based on physical media touched by humans";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "real-dice";
+       broken = true;
+     }) {};
+
   "really-simple-xml-parser" = callPackage
     ({ mkDerivation, base, parsec }:
      mkDerivation {
@@ -261817,6 +262885,26 @@ self: {
        broken = true;
      }) {};
 
+  "roc-id_0_2_0_3" = callPackage
+    ({ mkDerivation, base, hspec, MonadRandom, Only, QuickCheck, text
+     , vector-sized
+     }:
+     mkDerivation {
+       pname = "roc-id";
+       version = "0.2.0.3";
+       sha256 = "1alniidc069v24gamc4ch058pfqs97hz5mmsgjhidz8j1294pii5";
+       libraryHaskellDepends = [
+         base MonadRandom Only text vector-sized
+       ];
+       testHaskellDepends = [
+         base hspec MonadRandom Only QuickCheck text vector-sized
+       ];
+       description = "Implementation of the ROC (Taiwan) National ID standard";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "rock" = callPackage
     ({ mkDerivation, base, constraints, constraints-extras
      , dependent-hashmap, dependent-sum, deriving-compat, hashable
@@ -264903,6 +265991,19 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "salve_2_0_0_5" = callPackage
+    ({ mkDerivation, base, HUnit }:
+     mkDerivation {
+       pname = "salve";
+       version = "2.0.0.5";
+       sha256 = "1n86a61rn5mmxi4whfwxv3ydn47h4537swqgwbg5adys9hwk7pqp";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base HUnit ];
+       description = "Semantic version numbers and constraints";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "salvia" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory, fclabels
      , MaybeT-transformers, monads-fd, network, old-locale, process
@@ -265641,8 +266742,8 @@ self: {
      }:
      mkDerivation {
        pname = "saturn";
-       version = "1.0.0.3";
-       sha256 = "0xilcnica1bzi310x2dv1igdpzk91sqzbzqpjkjd7g6v93pl9xhv";
+       version = "1.0.0.5";
+       sha256 = "16apync9z5lk3vph40sqxcj391788h7chz2zv55kcdsfam56yq83";
        libraryHaskellDepends = [
          base containers hspec parsec QuickCheck text time
        ];
@@ -269055,6 +270156,25 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "semialign_1_3_1" = callPackage
+    ({ mkDerivation, base, containers, hashable, indexed-traversable
+     , indexed-traversable-instances, semigroupoids, tagged, these
+     , transformers, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "semialign";
+       version = "1.3.1";
+       sha256 = "1xwx1icyggjbjflgn75bsqw34dmpsd15qqmz13ljxv7zak17ps36";
+       libraryHaskellDepends = [
+         base containers hashable indexed-traversable
+         indexed-traversable-instances semigroupoids tagged these
+         transformers unordered-containers vector
+       ];
+       description = "Align and Zip type-classes from the common Semialign ancestor";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "semialign-extras" = callPackage
     ({ mkDerivation, base, doctest, lens, QuickCheck, semialign
      , semialign-indexed, these, witherable
@@ -270129,8 +271249,8 @@ self: {
        pname = "servant";
        version = "0.20.1";
        sha256 = "1s8vapj8qb8l5snjzxd63d9rvxwa1vw6g77cg8nynrzzppwp7xwl";
-       revision = "2";
-       editedCabalFile = "137yfr7mxfx2r3pkdfwsxv7xxch5l20yirj82186djyg36q5021z";
+       revision = "4";
+       editedCabalFile = "0yd1v3vk7lay3f9jnkybqc57am4qkgnxaz5s8rnc243agmrd4shs";
        libraryHaskellDepends = [
          aeson attoparsec base base-compat bifunctors bytestring
          case-insensitive constraints deepseq http-api-data http-media
@@ -270252,8 +271372,8 @@ self: {
        pname = "servant-auth-client";
        version = "0.4.1.1";
        sha256 = "1fs00p15hz2lqspby2xg6h0zxmlljm6wgi0wk73a4gavyg26dgqq";
-       revision = "4";
-       editedCabalFile = "014sbmbvksm4znxxs1h7lvww86ly7sh0zj9w99byxd29s4z4yh8m";
+       revision = "5";
+       editedCabalFile = "1dbq1451jj49hbjfrdhr47k3rpwj825rbvj3f79w75rzyl3hyg75";
        libraryHaskellDepends = [
          base bytestring containers servant servant-auth servant-client-core
        ];
@@ -270308,8 +271428,8 @@ self: {
        pname = "servant-auth-docs";
        version = "0.2.10.1";
        sha256 = "03dnh6x0y34npmv9w2f3hc9r1brlzf2rki6c6ngvwb3dvichhykv";
-       revision = "2";
-       editedCabalFile = "09gnjhxdf5kw26c4ah2012lq2z4mg9mdnln8j9xcsg35212mv8c9";
+       revision = "3";
+       editedCabalFile = "12irngkv4irmjkmarnpyfknq9iwz9xigcgldmg6y9sscjjv7xh7r";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base lens servant servant-auth servant-docs
@@ -270372,8 +271492,8 @@ self: {
        pname = "servant-auth-server";
        version = "0.4.8.0";
        sha256 = "0drny9m2js619pkxxa1mxji5x4r46kpv3qnmswyrb3kc0ck5c2af";
-       revision = "4";
-       editedCabalFile = "1cib954pc6x4qawyizxlr9qg9838rahyihdiv4qiz09i19m8n6zj";
+       revision = "6";
+       editedCabalFile = "0rvb6jwjmkdrbc2q92si19arf5gi80x3m1g67354bncdaa81n81z";
        libraryHaskellDepends = [
          aeson base base64-bytestring blaze-builder bytestring
          case-insensitive cookie data-default-class entropy http-types jose
@@ -270400,8 +271520,8 @@ self: {
        pname = "servant-auth-swagger";
        version = "0.2.10.2";
        sha256 = "0f4sn0xlsq8lcnyj0q978bamfav6jmfkkccrg2k5l7rndif4nmwg";
-       revision = "2";
-       editedCabalFile = "0gw3pv4jwn5d4gah5l2x4gf9by7wqi40vj9syjv65xgshvcnk8gd";
+       revision = "3";
+       editedCabalFile = "0cvs7qwjdbr1f6n49pwjkq1cmkhya658207cmi8b70ghm5wvqfgi";
        libraryHaskellDepends = [
          base lens servant servant-auth servant-swagger swagger2 text
        ];
@@ -270608,8 +271728,8 @@ self: {
        pname = "servant-blaze";
        version = "0.9.1";
        sha256 = "08fvy904mz5xjqda702kq4ch25m3nda1yhpp4g7i62j0jmxs2ji6";
-       revision = "2";
-       editedCabalFile = "1bc933vfxwdcpgfxy34dkxpadv8j1j053rjxfl4lj0gajwxc5x48";
+       revision = "3";
+       editedCabalFile = "1f8rhp5g029m2ymrrn96ahbd1kn9nw3nk0c5wjbmfmby1avmppix";
        libraryHaskellDepends = [ base blaze-html http-media servant ];
        testHaskellDepends = [ base blaze-html servant-server wai warp ];
        description = "Blaze-html support for servant";
@@ -270726,8 +271846,8 @@ self: {
        pname = "servant-client";
        version = "0.20";
        sha256 = "0xmjqc54yq5akhw5ydbx5k0c1pnrryma8nczwyzvwx4vazrk0pbn";
-       revision = "3";
-       editedCabalFile = "0awk9s22228mm4ff3bc165djvykihbkk6vqvfak0mz1m7dypi7fq";
+       revision = "6";
+       editedCabalFile = "0a2ix2r0fwdjfpd74sbgksiadzp1x8l5dm66k0g51dvj0v64njcn";
        libraryHaskellDepends = [
          base base-compat bytestring containers deepseq exceptions
          http-client http-media http-types kan-extensions monad-control mtl
@@ -270756,8 +271876,8 @@ self: {
        pname = "servant-client-core";
        version = "0.20";
        sha256 = "012bdf3c44bqzb0ycns4pcxb0zidqqn7lpzz9316kiwy0wb4jx56";
-       revision = "3";
-       editedCabalFile = "02q7fvmqvc1n5h0bh4q28vaphhnms34lr6ckxbxrmc5wwcz8qkgv";
+       revision = "4";
+       editedCabalFile = "10zypw7b7p3b3hb293ik44n45c9s875jnr919ramfx3bpiqchb5g";
        libraryHaskellDepends = [
          aeson base base-compat base64-bytestring bytestring constraints
          containers deepseq exceptions free http-media http-types
@@ -270848,8 +271968,8 @@ self: {
        pname = "servant-conduit";
        version = "0.16";
        sha256 = "037vqqq5k2jm6s7gg2shb6iyvjfblsr41ifjpryfxmsib669vs9f";
-       revision = "1";
-       editedCabalFile = "1isnhvhqlzhz37wz19gjbz5i27mmg2qzy6qpma2wlbja22s14ywp";
+       revision = "2";
+       editedCabalFile = "0vxil0jr3iv4a9bf1rvy7qpbmffic1ga8drm6yl6csd64n4a3jvn";
        libraryHaskellDepends = [
          base bytestring conduit mtl resourcet servant unliftio-core
        ];
@@ -270953,8 +272073,8 @@ self: {
        pname = "servant-docs";
        version = "0.13";
        sha256 = "0i91my86bcnn0jckf2qlfyx1zfbg8w6959v7iim60s3mdx9yjp67";
-       revision = "2";
-       editedCabalFile = "1awdlcvi24rqjzx01qff4an4srzqbyrcihxvazha0ypr2w94wz15";
+       revision = "4";
+       editedCabalFile = "16m0glwz8x4k8cjp14jz9gq68q30wmz37qx39f3b4qrh3924hnsm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -271200,8 +272320,8 @@ self: {
        pname = "servant-foreign";
        version = "0.16";
        sha256 = "15pir0x7dcyjmw71g4w00qgvcxyvhbkywzc3bvvaaprk5bjb3bmv";
-       revision = "2";
-       editedCabalFile = "1mvp8r90kj0hnl95hzwdf5pja69h44vlwjypygzgjxn1j0lmrj2f";
+       revision = "4";
+       editedCabalFile = "0nm2nkivil7yh66syvw1a41g1lif75h7wc07rh9bnl7ncqfvdnal";
        libraryHaskellDepends = [
          base base-compat http-types lens servant text
        ];
@@ -271392,8 +272512,8 @@ self: {
        pname = "servant-http-streams";
        version = "0.20";
        sha256 = "1pakvvw8m7dkwf8zfrh2gan1hs5zp4mgnn4bp0wiy49mc3zzlxwi";
-       revision = "3";
-       editedCabalFile = "1liw4vv8agbfyc1nks5qzidp24ia8zm8rj9sz05hapnrsv3q5d74";
+       revision = "6";
+       editedCabalFile = "0sq87z14wijr0dv0yclbz9k7g4plfjq8bqcn5wi7wq0h3ak7fzzg";
        libraryHaskellDepends = [
          base base-compat bytestring case-insensitive containers deepseq
          exceptions http-common http-media http-streams http-types
@@ -271588,8 +272708,8 @@ self: {
        pname = "servant-lucid";
        version = "0.9.0.6";
        sha256 = "1z894w9hfcnsdwivy2qvwa254l9d9bsbdjvzlvksxy92aw1p6fd0";
-       revision = "1";
-       editedCabalFile = "1b76mpiicbx9n062q7br0da6hbmwrbkkc881rh87l0snl03rzpmp";
+       revision = "2";
+       editedCabalFile = "1m2w1g8j4zrghiw7s20zzm5v026vwxmfjgcxn30s4ml2a0787kp1";
        libraryHaskellDepends = [ base http-media lucid servant text ];
        testHaskellDepends = [ base lucid servant-server wai warp ];
        description = "Servant support for lucid";
@@ -271605,8 +272725,8 @@ self: {
        pname = "servant-machines";
        version = "0.16";
        sha256 = "0c2cz96m9lbzr318i4vpy55y37xagh7sf1g0hvxbsvwhnzqa4532";
-       revision = "1";
-       editedCabalFile = "1fw4ls9s9y6rndr2ky7m50msmssaidq1afmy8gsjksc6px3xk4y9";
+       revision = "2";
+       editedCabalFile = "0nrrrh73bryg9xh025zdmk1kdmnm0kzrisbyhxrmqc514ayzkrr8";
        libraryHaskellDepends = [ base bytestring machines mtl servant ];
        testHaskellDepends = [
          base base-compat bytestring http-client http-media machines servant
@@ -271694,8 +272814,8 @@ self: {
        pname = "servant-multipart";
        version = "0.12.1";
        sha256 = "1p55kb3zhq25ncp7wimhggssn68abfgsnlldk13rk1iajaj6y8y5";
-       revision = "6";
-       editedCabalFile = "092n8hgzl90pqfd4faxbyy692ay92wc5s4c6vfa4zjf358zpkjgl";
+       revision = "7";
+       editedCabalFile = "0gvnh6bnd9g8pwyf2x4c2hz8q3fs8ax5cfjwj1ina2hbbyscz3jm";
        libraryHaskellDepends = [
          base bytestring directory lens resourcet servant servant-docs
          servant-foreign servant-multipart-api servant-server
@@ -271734,8 +272854,8 @@ self: {
        pname = "servant-multipart-client";
        version = "0.12.2";
        sha256 = "0djvbfc1yk8dzadav3lfrq99m7grcxxgxaifj8nc173yfdjdq4y2";
-       revision = "1";
-       editedCabalFile = "1v51mgy6j307sbfi52w6j85wfch178r6gap3d2nx1sws3hh35vh4";
+       revision = "2";
+       editedCabalFile = "0rbk9racnb97kwqlkzlcr3m2k0ias7s0bzfw7251gvyvwy1mf478";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -271949,8 +273069,8 @@ self: {
        pname = "servant-pipes";
        version = "0.16";
        sha256 = "00n2rmv4aar49247is2sgy58nal64lv05zci9lhkbgmmmi1hqd10";
-       revision = "1";
-       editedCabalFile = "0n2l14bsb020ixp8z84m2znjbgma37pdp2yrpq8x64g912qayj63";
+       revision = "2";
+       editedCabalFile = "1xm1mi12qmwwxy3yqm6ys37q33f8hvq2sqyrvqw9rilkiqs2w8yr";
        libraryHaskellDepends = [
          base bytestring monad-control mtl pipes pipes-safe servant
        ];
@@ -272204,18 +273324,18 @@ self: {
      , bytestring, case-insensitive, clock, data-default-class, hspec
      , hspec-core, hspec-discover, http-client, http-media, http-types
      , mtl, pretty, process, QuickCheck, quickcheck-io, servant
-     , servant-blaze, servant-client, servant-server, split
-     , string-conversions, temporary, text, time, transformers, warp
+     , servant-blaze, servant-client, servant-server, split, temporary
+     , text, time, transformers, warp
      }:
      mkDerivation {
        pname = "servant-quickcheck";
-       version = "0.0.10.0";
-       sha256 = "072q2nxapx9p1fkcs862a9irjhlg0sfpbr72a1m9a5lrfhf9ahmc";
+       version = "0.1.0.0";
+       sha256 = "0bb6h0x1hcms10qmwxka7b6y8b1pigwa639sw0n1dn2jipzwxbla";
        libraryHaskellDepends = [
          aeson base base-compat-batteries bytestring case-insensitive clock
          data-default-class hspec http-client http-media http-types mtl
          pretty process QuickCheck servant servant-client servant-server
-         split string-conversions temporary text time warp
+         split temporary text time warp
        ];
        testHaskellDepends = [
          aeson base base-compat-batteries blaze-html bytestring hspec
@@ -272507,8 +273627,8 @@ self: {
        pname = "servant-server";
        version = "0.20";
        sha256 = "1gp8pslk2sspi5vzrl1nimndpif7jhgzlffi2mzf1ap1bdwgxchk";
-       revision = "4";
-       editedCabalFile = "1y1pilkixlm116cr4q7rsawfxkwv7iahq9cqq4nidc4py482ccbg";
+       revision = "5";
+       editedCabalFile = "1k9rfv4pql4x7qb6gs4yzrfmyp2snfw8640mqaknbg9mc8ic28bc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -272819,8 +273939,8 @@ self: {
        pname = "servant-swagger";
        version = "1.2";
        sha256 = "1dim4vlsd9zcz3ra0qwvb4hlbj0iarxygz78ksw8nbvqgbym3zjh";
-       revision = "3";
-       editedCabalFile = "1gm7nf0jazlapgg6dvaq4r0nskz23819871rfj84panr9icf8dgj";
+       revision = "4";
+       editedCabalFile = "0qvd4p0g8djj67g7c4nh2y9z4x6k778y3037w2m4622412fvyyfv";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          aeson aeson-pretty base base-compat bytestring hspec http-media
@@ -273972,6 +275092,8 @@ self: {
        pname = "sexp";
        version = "0.7";
        sha256 = "19blk6nzbsm9syx45zzlmqxq1mi2prv0jq12cf83b4kf4pvwk32n";
+       revision = "1";
+       editedCabalFile = "1scf46ghsg33h1yc0g7xgim46wn4yh3wh647h0ni8acb841qxkrq";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -276140,8 +277262,8 @@ self: {
      }:
      mkDerivation {
        pname = "si-timers";
-       version = "1.4.0.0";
-       sha256 = "0mw53f830qhk99q5q1hbbh2ci2fzqg5k71lzjp39h50jxa6g776d";
+       version = "1.5.0.0";
+       sha256 = "0mpxcwjvymgawy8934sa8hkzz14dwagi8lbr1gqr9q5400wzixwk";
        libraryHaskellDepends = [
          base deepseq io-classes mtl nothunks stm time
        ];
@@ -284455,25 +285577,16 @@ self: {
      }) {};
 
   "spline3" = callPackage
-    ({ mkDerivation, base, cmdargs, doctest, MissingH, repa
-     , repa-algorithms, repa-io, tasty, tasty-hunit, tasty-quickcheck
-     , vector
-     }:
+    ({ mkDerivation, base }:
      mkDerivation {
        pname = "spline3";
-       version = "1.0.1";
-       sha256 = "12jpbzmwixhrd6a67ay7rgqbh61d70ffmcn83k0yl6qqkyn2hqkv";
+       version = "1.8.7";
+       sha256 = "0p3j5hnhyd8dig6zy0n5fkv9ppb01350qnblkdsvw5gmsgd9q8mj";
        isLibrary = false;
        isExecutable = true;
-       executableHaskellDepends = [
-         base cmdargs MissingH repa repa-algorithms repa-io tasty
-         tasty-hunit tasty-quickcheck vector
-       ];
-       testHaskellDepends = [
-         base doctest repa tasty tasty-hunit tasty-quickcheck vector
-       ];
-       description = "A parallel implementation of the Sorokina/Zeilfelder spline scheme";
-       license = lib.licenses.agpl3Only;
+       executableHaskellDepends = [ base ];
+       description = "Parallel implementation of the Sorokina/Zeilfelder spline scheme";
+       license = lib.licenses.agpl3Plus;
        mainProgram = "spline3";
      }) {};
 
@@ -286132,22 +287245,22 @@ self: {
        mainProgram = "stack-all";
      }) {};
 
-  "stack-all_0_5_2" = callPackage
+  "stack-all_0_6_1" = callPackage
     ({ mkDerivation, aeson, base, cached-json-file, config-ini
      , directory, extra, filepath, http-query, process, simple-cmd
      , simple-cmd-args, text
      }:
      mkDerivation {
        pname = "stack-all";
-       version = "0.5.2";
-       sha256 = "0ih25r2avwl6f2nqxa7sqaf070mnr27baw9wxfyr2pvv9i9nv6an";
+       version = "0.6.1";
+       sha256 = "0k5gvvl9vh7znscf5b4d3bpsr1mhz58pmh7ny1fdm9p08n3i8dlz";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
          aeson base cached-json-file config-ini directory extra filepath
          http-query process simple-cmd simple-cmd-args text
        ];
-       description = "CLI tool for building across Stackage major versions";
+       description = "CLI tool for building over Stackage major versions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
        mainProgram = "stack-all";
@@ -290389,14 +291502,29 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "strict-list_0_1_7_5" = callPackage
+    ({ mkDerivation, base, deepseq, hashable, rerebase, semigroupoids
+     , tasty, tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "strict-list";
+       version = "0.1.7.5";
+       sha256 = "0sr307zs8jjcwawpzfpgpmyarf0ldk19472i4vzpxvkv7wzgzqy3";
+       libraryHaskellDepends = [ base deepseq hashable semigroupoids ];
+       testHaskellDepends = [ rerebase tasty tasty-quickcheck ];
+       description = "Strict linked list";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "strict-mvar" = callPackage
     ({ mkDerivation, base, io-classes, io-sim, nothunks, QuickCheck
      , tasty, tasty-quickcheck
      }:
      mkDerivation {
        pname = "strict-mvar";
-       version = "1.4.0.0";
-       sha256 = "052naxgy92l2mnavf6a4wbiqir78zwd3r8bzq0l7zyy63kh7lr4d";
+       version = "1.5.0.0";
+       sha256 = "0pj6wiy0njzl71p0d0z8asr72v4xzy22lmnj454h372ixgwidjfh";
        libraryHaskellDepends = [ base io-classes ];
        testHaskellDepends = [
          base io-sim nothunks QuickCheck tasty tasty-quickcheck
@@ -290422,8 +291550,8 @@ self: {
     ({ mkDerivation, array, base, io-classes, stm }:
      mkDerivation {
        pname = "strict-stm";
-       version = "1.4.0.0";
-       sha256 = "0aq5qwxlqv369yi02z0gndb87pjv8mwpcaqphpd0ig563jivs4f8";
+       version = "1.5.0.0";
+       sha256 = "1p8vjdymsjkgz0ahk83smh1mfr79r1ysv1dsw1wwn8sax4jyzwyn";
        libraryHaskellDepends = [ array base io-classes stm ];
        description = "Strict STM interface polymorphic over stm implementation";
        license = lib.licenses.asl20;
@@ -290441,6 +291569,19 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "strict-tuple_0_1_5_4" = callPackage
+    ({ mkDerivation, base, bifunctors, deepseq, hashable }:
+     mkDerivation {
+       pname = "strict-tuple";
+       version = "0.1.5.4";
+       sha256 = "1znx5lmi7lgn4jzkr73lsc2xac0ypl65bx0pa1hxrc4c74ilysbk";
+       libraryHaskellDepends = [ base bifunctors deepseq hashable ];
+       testHaskellDepends = [ base ];
+       description = "Strict tuples";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "strict-tuple-lens" = callPackage
     ({ mkDerivation, base, lens, strict-tuple }:
      mkDerivation {
@@ -291233,6 +292374,24 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "strive_6_0_0_12" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, data-default, gpolyline
+     , http-client, http-client-tls, http-types, template-haskell, text
+     , time, transformers
+     }:
+     mkDerivation {
+       pname = "strive";
+       version = "6.0.0.12";
+       sha256 = "1376pkfkzm3pvhl1k8kqls20vj00zfhyhriccwlzvw918h4f73nc";
+       libraryHaskellDepends = [
+         aeson base bytestring data-default gpolyline http-client
+         http-client-tls http-types template-haskell text time transformers
+       ];
+       description = "A client for the Strava V3 API";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "strong-path" = callPackage
     ({ mkDerivation, base, exceptions, filepath, hashable, hspec, path
      , tasty, tasty-discover, tasty-hspec, tasty-quickcheck
@@ -292986,9 +294145,7 @@ self: {
        executableToolDepends = [ alex happy ];
        description = "SystemVerilog to Verilog conversion";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "sv2v";
-       broken = true;
      }) {};
 
   "svfactor" = callPackage
@@ -297592,6 +298749,35 @@ self: {
        mainProgram = "tasty-autocollect";
      }) {};
 
+  "tasty-autocollect_0_4_3" = callPackage
+    ({ mkDerivation, base, bytestring, containers, directory
+     , explainable-predicates, filepath, ghc, tasty
+     , tasty-expected-failure, tasty-golden, tasty-hunit
+     , tasty-quickcheck, template-haskell, temporary, text, transformers
+     , typed-process
+     }:
+     mkDerivation {
+       pname = "tasty-autocollect";
+       version = "0.4.3";
+       sha256 = "0pidvmxkyddx3kdyhhx335cn8hyi66y4n2xvpdk5sg1zg2w29ggl";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring containers directory filepath ghc tasty
+         tasty-expected-failure template-haskell text transformers
+       ];
+       executableHaskellDepends = [ base text ];
+       testHaskellDepends = [
+         base bytestring containers directory explainable-predicates
+         filepath tasty tasty-golden tasty-hunit tasty-quickcheck temporary
+         text typed-process
+       ];
+       description = "Autocollection of tasty tests";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "tasty-autocollect";
+     }) {};
+
   "tasty-bdd" = callPackage
     ({ mkDerivation, aeson, aeson-qq, base, exceptions, free, HUnit
      , microlens, microlens-th, mtl, pretty, pretty-show
@@ -297922,8 +299108,8 @@ self: {
        pname = "tasty-hspec";
        version = "1.2.0.4";
        sha256 = "1hk1nkjvhp89xxgzj6dhbgw0fknnghpng6afq4i39hjkwv5p78ni";
-       revision = "3";
-       editedCabalFile = "1ky8lis1bxig6zc213azb4nkg9hjzhsrk7p4hw28dang0x91x3wy";
+       revision = "4";
+       editedCabalFile = "1i2wq9cir6l861g51g9rya8s37629ljbbrrh37vk76mv85lb38vj";
        libraryHaskellDepends = [
          base hspec hspec-api hspec-core QuickCheck tasty tasty-quickcheck
          tasty-smallcheck
@@ -299444,12 +300630,12 @@ self: {
        broken = true;
      }) {};
 
-  "template-haskell_2_21_0_0" = callPackage
+  "template-haskell_2_22_0_0" = callPackage
     ({ mkDerivation, base, ghc-boot-th, ghc-prim, pretty }:
      mkDerivation {
        pname = "template-haskell";
-       version = "2.21.0.0";
-       sha256 = "0p8f53dscddr513r8p3ljwyc1pa7n520prxb47bz8dj5mvjxm89d";
+       version = "2.22.0.0";
+       sha256 = "0cn9n5jyzn9h1ab76rr2cyxaysh2rk7ywcj92lxsf49fah4vx35g";
        libraryHaskellDepends = [ base ghc-boot-th ghc-prim pretty ];
        description = "Support library for Template Haskell";
        license = lib.licenses.bsd3;
@@ -301512,6 +302698,8 @@ self: {
        pname = "text";
        version = "2.1.1";
        sha256 = "1azy4kzy23nhck4mxfrqdd754z8nbwpxqdgdfqjdgx45nalds374";
+       revision = "1";
+       editedCabalFile = "0zg8nlri1lhhyhzwl38xsil23j4xgc47ycjk0jl0f1jx0n8zphvq";
        libraryHaskellDepends = [
          array base binary bytestring deepseq ghc-prim system-cxx-std-lib
          template-haskell
@@ -301571,6 +302759,8 @@ self: {
        pname = "text-ansi";
        version = "0.3.0.1";
        sha256 = "0iiq5zlcjh25mf9b4vlhyc1dwglwh8b03qj1wasbngzvmphvcy00";
+       revision = "1";
+       editedCabalFile = "14i37ffh5v4ppz7s2nx9qsmjrc1baj1pvslnxk72amzyiwf2yfx6";
        libraryHaskellDepends = [ base text text-builder-linear ];
        description = "Text styling for ANSI terminals";
        license = lib.licenses.bsd3;
@@ -301922,6 +303112,31 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "text-iso8601_0_1_1" = callPackage
+    ({ mkDerivation, attoparsec, attoparsec-iso8601, base
+     , integer-conversion, QuickCheck, quickcheck-instances, tasty
+     , tasty-bench, tasty-hunit, tasty-quickcheck, text, time
+     , time-compat
+     }:
+     mkDerivation {
+       pname = "text-iso8601";
+       version = "0.1.1";
+       sha256 = "00l2m3xj39mrz7lbmbnir4k9jbn3jm3xa2q6zkh0zr7arsvx5slx";
+       libraryHaskellDepends = [
+         base integer-conversion text time time-compat
+       ];
+       testHaskellDepends = [
+         base QuickCheck quickcheck-instances tasty tasty-hunit
+         tasty-quickcheck text time-compat
+       ];
+       benchmarkHaskellDepends = [
+         attoparsec attoparsec-iso8601 base tasty-bench text time-compat
+       ];
+       description = "Converting time to and from ISO 8601 text";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "text-json-qq" = callPackage
     ({ mkDerivation, base, haskell-src-meta, json, json-qq, parsec
      , template-haskell
@@ -303638,6 +304853,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "these_1_2_1" = callPackage
+    ({ mkDerivation, assoc, base, binary, deepseq, hashable }:
+     mkDerivation {
+       pname = "these";
+       version = "1.2.1";
+       sha256 = "1pp44amwvpl0m762zahg632prlxx0ca2r10n3a0bznjy6qrxkmhp";
+       libraryHaskellDepends = [ assoc base binary deepseq hashable ];
+       description = "An either-or-both data type";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "these-lens" = callPackage
     ({ mkDerivation, base, lens, these }:
      mkDerivation {
@@ -303651,6 +304878,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "these-lens_1_0_2" = callPackage
+    ({ mkDerivation, base, lens, these }:
+     mkDerivation {
+       pname = "these-lens";
+       version = "1.0.2";
+       sha256 = "159dp25rbhcnmpxvvabjl8s9df9mvqi30p81vrmh7kgg86xa050y";
+       libraryHaskellDepends = [ base lens these ];
+       description = "Lenses for These";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "these-optics" = callPackage
     ({ mkDerivation, base, optics-core, these }:
      mkDerivation {
@@ -303664,6 +304903,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "these-optics_1_0_2" = callPackage
+    ({ mkDerivation, base, optics-core, these }:
+     mkDerivation {
+       pname = "these-optics";
+       version = "1.0.2";
+       sha256 = "0a63xfqj841i7pwdjzg067ixs0lj9ngwfjps6yyk5gyqqmhirqsv";
+       libraryHaskellDepends = [ base optics-core these ];
+       description = "Optics for These";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "these-skinny" = callPackage
     ({ mkDerivation, base, deepseq, ghc-prim }:
      mkDerivation {
@@ -305431,6 +306682,22 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "timer-wheel_1_0_0_1" = callPackage
+    ({ mkDerivation, atomic-primops, base, ki, primitive, random
+     , tasty-bench
+     }:
+     mkDerivation {
+       pname = "timer-wheel";
+       version = "1.0.0.1";
+       sha256 = "0sshn0i25f4bdb6wj6xg4shkq5ylpiq4803wp6ra1qvyg9kbx5za";
+       libraryHaskellDepends = [ atomic-primops base ki primitive ];
+       testHaskellDepends = [ base ki random ];
+       benchmarkHaskellDepends = [ base ki random tasty-bench ];
+       description = "A timer wheel";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "timerep" = callPackage
     ({ mkDerivation, attoparsec, base, monoid-subclasses, QuickCheck
      , tasty, tasty-hunit, tasty-quickcheck, text, time
@@ -305572,8 +306839,8 @@ self: {
     ({ mkDerivation, base, containers, text }:
      mkDerivation {
        pname = "timestats";
-       version = "0.1.1";
-       sha256 = "1yrr6a0p83h2y2n36x65qz937y9dyzvff1q5zfcskyja43jpaimp";
+       version = "0.1.3";
+       sha256 = "11qif48pc5fisighqw5c7iq9asbfzpnx2w6wxasw0gfpwmphcwyf";
        libraryHaskellDepends = [ base containers text ];
        testHaskellDepends = [ base text ];
        description = "A library for profiling time in Haskell applications";
@@ -309773,8 +311040,8 @@ self: {
        pname = "trie-simple";
        version = "0.4.2";
        sha256 = "1ai4fn35312z6ydwadi0rxscglwqawjrzq6p1i2kpbf7vmflznjg";
-       revision = "2";
-       editedCabalFile = "1acm5zh0lmz20gakq5ghmrgb87w76350gfxim25y4rh4jzr39wv1";
+       revision = "4";
+       editedCabalFile = "1f4mc1jvn5nz7mgwlip7lhfkbnba6hpa4vwkbw52bp0qx063b9y5";
        libraryHaskellDepends = [
          base containers deepseq hashable indexed-traversable matchable mtl
          semialign these witherable
@@ -310023,10 +311290,8 @@ self: {
     ({ mkDerivation, base, containers, template-haskell, time }:
      mkDerivation {
        pname = "true-name";
-       version = "0.1.0.3";
-       sha256 = "0s74fi3zfzk3apvwjz1c0k0ij24kdvlrn8lply9c04kyd20fyc66";
-       revision = "2";
-       editedCabalFile = "0rb9wbkbz6hsm9cz0j954a9hdyyw80r55vr99pp70ljf0ysgk9w2";
+       version = "0.2.0.0";
+       sha256 = "1cn67zs0nhsiqqrn05rlmnvmw87i8n2j0mi63xq5zbkmj0jqinqs";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [ base containers template-haskell time ];
        description = "Template Haskell hack to violate module abstractions";
@@ -310388,6 +311653,8 @@ self: {
        pname = "ttc";
        version = "1.4.0.0";
        sha256 = "0kp3kpdv5hf13qri8ms8jb9ydyn3fpviw0wgkqb3g2m4ccyl8ssq";
+       revision = "1";
+       editedCabalFile = "0g0p1fq7r90dd89alky78x6cl5g7mq7cs5j033cwy9s1jck17km0";
        libraryHaskellDepends = [
          base bytestring template-haskell text text-short
        ];
@@ -312210,8 +313477,8 @@ self: {
     ({ mkDerivation, base, defun-core }:
      mkDerivation {
        pname = "type-level-show";
-       version = "0.1.0";
-       sha256 = "0k73cl28lrws6ys1xkrrh47yh89a2k3ddfzjpp47gsz1p3048cqs";
+       version = "0.1.1";
+       sha256 = "150k54mf15pj2jghhvr76y9yvljn4q25vrg3zwmvbn93gd1zhy20";
        libraryHaskellDepends = [ base defun-core ];
        description = "Utilities for writing Show-like type families";
        license = lib.licenses.mit;
@@ -315911,6 +317178,23 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "universe_1_2_3" = callPackage
+    ({ mkDerivation, universe-base, universe-instances-extended
+     , universe-reverse-instances, universe-some
+     }:
+     mkDerivation {
+       pname = "universe";
+       version = "1.2.3";
+       sha256 = "1miibyzjnmhd5pkhhxg0v58aa4v5p5bbiygnk911366347zh7642";
+       libraryHaskellDepends = [
+         universe-base universe-instances-extended
+         universe-reverse-instances universe-some
+       ];
+       description = "A class for finite and recursively enumerable types";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "universe-base" = callPackage
     ({ mkDerivation, base, containers, QuickCheck, tagged, transformers
      }:
@@ -315926,6 +317210,20 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "universe-base_1_1_4" = callPackage
+    ({ mkDerivation, base, containers, QuickCheck, tagged, transformers
+     }:
+     mkDerivation {
+       pname = "universe-base";
+       version = "1.1.4";
+       sha256 = "160yyhbvfnl88kbxx4rpmb03b4mqhkig833flqzxq9r96ygmirdf";
+       libraryHaskellDepends = [ base containers tagged transformers ];
+       testHaskellDepends = [ base containers QuickCheck ];
+       description = "A class for finite and recursively enumerable types";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "universe-dependent-sum" = callPackage
     ({ mkDerivation, base, universe-some }:
      mkDerivation {
@@ -315939,6 +317237,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "universe-dependent-sum_1_3_1" = callPackage
+    ({ mkDerivation, base, universe-some }:
+     mkDerivation {
+       pname = "universe-dependent-sum";
+       version = "1.3.1";
+       sha256 = "0nxhw5wbyq0nf6m4kz64815iqwkif8clkg7gd60bbzwzg4wvjgxc";
+       libraryHaskellDepends = [ base universe-some ];
+       description = "Universe instances for types from dependent-sum";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "universe-instances-base" = callPackage
     ({ mkDerivation, base, universe-base }:
      mkDerivation {
@@ -315971,6 +317281,22 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "universe-instances-extended_1_1_4" = callPackage
+    ({ mkDerivation, adjunctions, base, comonad, containers
+     , universe-base
+     }:
+     mkDerivation {
+       pname = "universe-instances-extended";
+       version = "1.1.4";
+       sha256 = "0kvwba4hd4ikwprrcyqh32mvbcy47gs47gc8ssh6m23jlj9rll2h";
+       libraryHaskellDepends = [
+         adjunctions base comonad containers universe-base
+       ];
+       description = "Universe instances for types from selected extra packages";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "universe-instances-trans" = callPackage
     ({ mkDerivation, base, universe-base }:
      mkDerivation {
@@ -315999,6 +317325,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "universe-reverse-instances_1_1_2" = callPackage
+    ({ mkDerivation, base, containers, universe-base }:
+     mkDerivation {
+       pname = "universe-reverse-instances";
+       version = "1.1.2";
+       sha256 = "0kipii0wjsw8zhc8ajr4x7j8jiff4r92bdanpzf6fddzdd6a2ai5";
+       libraryHaskellDepends = [ base containers universe-base ];
+       description = "Instances of standard classes that are made possible by enumerations";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "universe-some" = callPackage
     ({ mkDerivation, base, some, template-haskell, th-abstraction
      , transformers, universe-base
@@ -316018,6 +317356,24 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "universe-some_1_2_2" = callPackage
+    ({ mkDerivation, base, some, template-haskell, th-abstraction
+     , transformers, universe-base
+     }:
+     mkDerivation {
+       pname = "universe-some";
+       version = "1.2.2";
+       sha256 = "1w6jd4mn2dzp9p147xwzaaq32l5zm906i8rd3aisw86chq2ivzzb";
+       libraryHaskellDepends = [
+         base some template-haskell th-abstraction transformers
+         universe-base
+       ];
+       testHaskellDepends = [ base some template-haskell universe-base ];
+       description = "Universe instances for Some from some";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "universe-th" = callPackage
     ({ mkDerivation, base, checkers, composition, DebugTraceHelpers
      , HUnit, mtl, QuickCheck, template-haskell, test-framework
@@ -318590,6 +319946,28 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "uuid-types_1_0_6" = callPackage
+    ({ mkDerivation, base, binary, bytestring, deepseq, hashable
+     , QuickCheck, random, tasty, tasty-hunit, tasty-quickcheck
+     , template-haskell, text
+     }:
+     mkDerivation {
+       pname = "uuid-types";
+       version = "1.0.6";
+       sha256 = "0zimp0v7hx073rcb4y9l463jfg4y3yqxdbmw975d6vrx919xj3by";
+       libraryHaskellDepends = [
+         base binary bytestring deepseq hashable random template-haskell
+         text
+       ];
+       testHaskellDepends = [
+         base binary bytestring QuickCheck tasty tasty-hunit
+         tasty-quickcheck template-haskell
+       ];
+       description = "Type definitions for Universally Unique Identifiers";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "uulib" = callPackage
     ({ mkDerivation, base, ghc-prim }:
      mkDerivation {
@@ -319001,8 +320379,8 @@ self: {
        pname = "validation-selective";
        version = "0.2.0.0";
        sha256 = "11s9qsp5w19lbk6vg6psr3864xdsx2kmx3gcmnn2qkx6wsblx24s";
-       revision = "3";
-       editedCabalFile = "079g21xgk02pcw2bfwmr0nx1vaaig7062qxr4zj6i7v12pgnvg35";
+       revision = "4";
+       editedCabalFile = "01q9py4gs3hq1dbiny0irfpirdl1b08nydd56za1nfqf24d7z16c";
        libraryHaskellDepends = [ base deepseq selective ];
        testHaskellDepends = [
          base doctest hedgehog hspec hspec-hedgehog selective text
@@ -326595,6 +327973,8 @@ self: {
        pname = "websockets";
        version = "0.13.0.0";
        sha256 = "1da95b71akggyikbxdmja3gcaqrz8sp6ri5jrsyavc2ickvi9y4s";
+       revision = "2";
+       editedCabalFile = "1wnj6c9vzgnmidxcy6jpv19b73qvnx4irxbqsncd688px7f7766m";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -327172,6 +328552,51 @@ self: {
        mainProgram = "quickstart";
      }) {};
 
+  "what4_1_6" = callPackage
+    ({ mkDerivation, async, attoparsec, base, bifunctors, bimap
+     , BoundedChan, bv-sized, bytestring, concurrent-extra, config-value
+     , containers, contravariant, deepseq, deriving-compat, directory
+     , exceptions, filepath, fingertree, ghc-prim, hashable, hashtables
+     , hedgehog, io-streams, lens, libBF, lumberjack, megaparsec, mtl
+     , ordered-containers, panic, parameterized-utils, parsec
+     , prettyprinter, process, QuickCheck, s-cargot, scientific, stm
+     , tasty, tasty-checklist, tasty-expected-failure, tasty-hedgehog
+     , tasty-hunit, tasty-quickcheck, tasty-sugar, template-haskell
+     , temporary, text, th-lift, th-lift-instances, time, transformers
+     , unliftio, unordered-containers, utf8-string, vector, versions
+     , zenc
+     }:
+     mkDerivation {
+       pname = "what4";
+       version = "1.6";
+       sha256 = "123p9h1fajwf5brv9qbs9kx7w7wwrl6md0arpjsj7klrz14qnn5j";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         async attoparsec base bifunctors bimap BoundedChan bv-sized
+         bytestring concurrent-extra config-value containers deepseq
+         deriving-compat directory exceptions filepath fingertree ghc-prim
+         hashable hashtables io-streams lens libBF megaparsec mtl
+         ordered-containers panic parameterized-utils parsec prettyprinter
+         process s-cargot scientific stm template-haskell temporary text
+         th-lift th-lift-instances time transformers unliftio
+         unordered-containers utf8-string vector versions zenc
+       ];
+       executableHaskellDepends = [ base parameterized-utils ];
+       testHaskellDepends = [
+         async base bv-sized bytestring containers contravariant directory
+         exceptions hedgehog io-streams libBF lumberjack ordered-containers
+         parameterized-utils prettyprinter process QuickCheck tasty
+         tasty-checklist tasty-expected-failure tasty-hedgehog tasty-hunit
+         tasty-quickcheck tasty-sugar temporary text transformers versions
+       ];
+       description = "Solver-agnostic symbolic values support for issuing queries";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "quickstart";
+     }) {};
+
   "wheb-mongo" = callPackage
     ({ mkDerivation, base, bson, mongoDB, mtl, text, Wheb }:
      mkDerivation {
@@ -327818,6 +329243,26 @@ self: {
        maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
+  "witch_1_2_1_1" = callPackage
+    ({ mkDerivation, base, bytestring, containers, HUnit, tagged
+     , template-haskell, text, time, transformers
+     }:
+     mkDerivation {
+       pname = "witch";
+       version = "1.2.1.1";
+       sha256 = "0zllz1wg2jpldjnyjkswrshs3agr8bbqnb6agv4avfgvffpj0rw1";
+       libraryHaskellDepends = [
+         base bytestring containers tagged template-haskell text time
+       ];
+       testHaskellDepends = [
+         base bytestring containers HUnit tagged text time transformers
+       ];
+       description = "Convert values from one type into another";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.maralorn ];
+     }) {};
+
   "with-index" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -327918,8 +329363,8 @@ self: {
        pname = "witherable";
        version = "0.4.2";
        sha256 = "0121ic4xkv3k568j23zp22a5lrv0k11h94fq7cbijd18fjr2n3br";
-       revision = "4";
-       editedCabalFile = "1f6kb8cslgqq4x3mbg1gcxfbd9qb5a8hmrv802mm7zzhbnridiff";
+       revision = "5";
+       editedCabalFile = "1z16l02afhc69j8jjmlp9pfh8radd5sv4alwk3m7lx6lql7b3iph";
        libraryHaskellDepends = [
          base base-orphans containers hashable indexed-traversable
          indexed-traversable-instances transformers unordered-containers
@@ -327933,6 +329378,30 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "witherable_0_5" = callPackage
+    ({ mkDerivation, base, base-orphans, containers, hashable
+     , indexed-traversable, indexed-traversable-instances, QuickCheck
+     , quickcheck-instances, tasty, tasty-quickcheck, transformers
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "witherable";
+       version = "0.5";
+       sha256 = "1lccj7s6b2x3w1zq15fffwxwj9yqq0z0ra9k06y3rcb5wk0lqhs8";
+       libraryHaskellDepends = [
+         base base-orphans containers hashable indexed-traversable
+         indexed-traversable-instances transformers unordered-containers
+         vector
+       ];
+       testHaskellDepends = [
+         base containers hashable QuickCheck quickcheck-instances tasty
+         tasty-quickcheck transformers unordered-containers vector
+       ];
+       description = "filterable traversable";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "witherable-class" = callPackage
     ({ mkDerivation, base, witherable }:
      mkDerivation {
@@ -329758,6 +331227,23 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "wuss_2_0_1_9" = callPackage
+    ({ mkDerivation, base, bytestring, crypton-connection, data-default
+     , exceptions, network, websockets
+     }:
+     mkDerivation {
+       pname = "wuss";
+       version = "2.0.1.9";
+       sha256 = "0v3jqyh21iq8d3vkij4gkzdq7ks8ykxi9lz2v4caskwvnj5bdvs9";
+       libraryHaskellDepends = [
+         base bytestring crypton-connection data-default exceptions network
+         websockets
+       ];
+       description = "Secure WebSocket (WSS) clients";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "wx" = callPackage
     ({ mkDerivation, base, stm, time, wxcore }:
      mkDerivation {
@@ -331178,8 +332664,8 @@ self: {
        pname = "xml-lens";
        version = "0.3.1";
        sha256 = "0i6c4xqacinhxnyszzna7s9x79rrcs1c7jq6zimcwh4302l5d6cm";
-       revision = "2";
-       editedCabalFile = "0n4clndkzg6cjw0slkbrn64byzdnlsxrf6va3xgvsry9d1i18ihf";
+       revision = "3";
+       editedCabalFile = "1zwkii9klqaknnf06h56nvh9090xczqff1mq89mq7wk9y585qd3s";
        libraryHaskellDepends = [
          base case-insensitive containers lens text xml-conduit
        ];
@@ -338196,6 +339682,8 @@ self: {
        pname = "zip-archive";
        version = "0.4.3.2";
        sha256 = "0p6b4n4z3qa9f5vh25lqf7b8gdf5qcfs4zsnlzr12m0xgysfdnk1";
+       revision = "1";
+       editedCabalFile = "0vz55ja77fvza28clp1xn92ca1621dqhpb2gm4zi2yjjsp8gc95j";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
diff --git a/pkgs/development/interpreters/bqn/cbqn/cbqn-bytecode.nix b/pkgs/development/interpreters/bqn/cbqn/cbqn-bytecode.nix
deleted file mode 100644
index d311f3d61ebd4..0000000000000
--- a/pkgs/development/interpreters/bqn/cbqn/cbqn-bytecode.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib
-, fetchFromGitHub
-, stdenvNoCC
-}:
-
-stdenvNoCC.mkDerivation {
-  pname = "cbqn-bytecode";
-  version = "unstable-2023-05-17";
-
-  src = fetchFromGitHub {
-    owner = "dzaima";
-    repo = "cbqnBytecode";
-    rev = "32db4dfbfc753835bf112f3d8ae2991d8aebbe3d";
-    hash = "sha256-9uBPrEESn/rB9u0xXwKaQ7ABveQWPc8LRMPlnI/79kg=";
-  };
-
-  dontConfigure = true;
-  dontBuild = true;
-
-  installPhase = ''
-    runHook preInstall
-
-    install -D $src/gen/{compiles,explain,formatter,runtime0,runtime1,runtime1x,src} -t $out/dev
-
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/dzaima/cbqnBytecode";
-    description = "CBQN precompiled bytecode";
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ AndersonTorres sternenseemann synthetica shnarazk detegr ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/development/interpreters/bqn/cbqn/default.nix b/pkgs/development/interpreters/bqn/cbqn/default.nix
index 6f5b889883910..f78eb807b4cfe 100644
--- a/pkgs/development/interpreters/bqn/cbqn/default.nix
+++ b/pkgs/development/interpreters/bqn/cbqn/default.nix
@@ -1,53 +1,36 @@
-{ callPackage
-, lib
-, stdenv
-, stdenvNoCC
+{ lib
+, callPackage
 , fetchFromGitHub
 , fixDarwinDylibNames
-, genBytecode ? false
-, bqn-path ? null
+, libffi
 , mbqn-source
+, pkg-config
+, stdenv
+# Boolean flags
 , enableReplxx ? false
 , enableLibcbqn ? ((stdenv.hostPlatform.isLinux || stdenv.hostPlatform.isDarwin) && !enableReplxx)
-, libffi
-, pkg-config
+, generateBytecode ? false
+# "Configurable" options
+, bqn-interpreter
 }:
 
 let
-  cbqn-bytecode-submodule =
-    callPackage ./cbqn-bytecode.nix { inherit lib fetchFromGitHub stdenvNoCC; };
-  replxx-submodule = callPackage ./replxx.nix { inherit lib fetchFromGitHub stdenvNoCC; };
-  singeli-submodule = callPackage ./singeli.nix { inherit lib fetchFromGitHub stdenvNoCC; };
+  sources = callPackage ./sources.nix { };
 in
-assert genBytecode -> ((bqn-path != null) && (mbqn-source != null));
-
 stdenv.mkDerivation rec {
-  pname = "cbqn" + lib.optionalString (!genBytecode) "-standalone";
-  version = "0.5.0";
-
-  src = fetchFromGitHub {
-    owner = "dzaima";
-    repo = "CBQN";
-    rev = "v${version}";
-    hash = "sha256-PCpePevWQ+aPG6Yx3WqBZ4yTeyJsCGkYMSY6kzGDL1U=";
-  };
+  pname = "cbqn" + lib.optionalString (!generateBytecode) "-standalone";
+  inherit (sources.cbqn) version src;
 
   nativeBuildInputs = [
     pkg-config
-  ] ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
+    fixDarwinDylibNames
+  ];
 
   buildInputs = [
     libffi
   ];
 
-  dontConfigure = true;
-  doInstallCheck = true;
-
-  postPatch = ''
-    sed -i '/SHELL =.*/ d' makefile
-    patchShebangs build/build
-  '';
-
   makeFlags = [
     "CC=${stdenv.cc.targetPrefix}cc"
   ];
@@ -64,19 +47,6 @@ stdenv.mkDerivation rec {
     "shared-o3"
   ];
 
-  preBuild = ''
-    # Purity: avoids git downloading bytecode files
-    mkdir -p build/bytecodeLocal/gen
-    cp -r ${singeli-submodule}/dev/* build/singeliLocal/
-  '' + (if genBytecode then ''
-    ${bqn-path} ./build/genRuntime ${mbqn-source} build/bytecodeLocal/
-  '' else ''
-    cp -r ${cbqn-bytecode-submodule}/dev/* build/bytecodeLocal/gen/
-  '')
-  + lib.optionalString enableReplxx ''
-    cp -r ${replxx-submodule}/dev/* build/replxxLocal/
-  '';
-
   outputs = [
     "out"
   ] ++ lib.optionals enableLibcbqn [
@@ -84,6 +54,32 @@ stdenv.mkDerivation rec {
     "dev"
   ];
 
+  dontConfigure = true;
+
+  doInstallCheck = true;
+
+  strictDeps = true;
+
+  postPatch = ''
+    sed -i '/SHELL =.*/ d' makefile
+    patchShebangs build/build
+  '';
+
+  preBuild = ''
+    mkdir -p build/singeliLocal/
+    cp -r ${sources.singeli.src}/* build/singeliLocal/
+  '' + (if generateBytecode then ''
+    mkdir -p build/bytecodeLocal/gen
+    ${bqn-interpreter} ./build/genRuntime ${mbqn-source} build/bytecodeLocal/
+  '' else ''
+    mkdir -p build/bytecodeLocal/gen
+    cp -r ${sources.cbqn-bytecode.src}/* build/bytecodeLocal/
+  '')
+  + lib.optionalString enableReplxx ''
+    mkdir -p build/replxxLocal/
+    cp -r ${sources.replxx.src}/* build/replxxLocal/
+  '';
+
   installPhase = ''
     runHook preInstall
 
@@ -121,12 +117,26 @@ stdenv.mkDerivation rec {
     runHook postInstallCheck
   '';
 
-  meta = with lib; {
+  meta = {
     homepage = "https://github.com/dzaima/CBQN/";
     description = "BQN implementation in C";
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ AndersonTorres sternenseemann synthetica shnarazk detegr ];
-    platforms = platforms.all;
+    license = with lib.licenses; [
+      # https://github.com/dzaima/CBQN?tab=readme-ov-file#licensing
+      asl20
+      boost
+      gpl3Only
+      lgpl3Only
+      mit
+      mpl20
+    ];
     mainProgram = "cbqn";
+    maintainers = with lib.maintainers; [
+      AndersonTorres
+      detegr
+      shnarazk
+      sternenseemann
+      synthetica
+    ];
+    platforms = lib.platforms.all;
   };
 }
diff --git a/pkgs/development/interpreters/bqn/cbqn/replxx.nix b/pkgs/development/interpreters/bqn/cbqn/replxx.nix
deleted file mode 100644
index 71b479a4cda48..0000000000000
--- a/pkgs/development/interpreters/bqn/cbqn/replxx.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ lib
-, fetchFromGitHub
-, stdenvNoCC
-}:
-
-stdenvNoCC.mkDerivation {
-  pname = "replxx";
-  version = "unstable-2023-10-31";
-
-  src = fetchFromGitHub {
-    owner = "dzaima";
-    repo = "replxx";
-    rev = "13f7b60f4f79c2f14f352a76d94860bad0fc7ce9";
-    hash = "sha256-xPuQ5YBDSqhZCwssbaN/FcTZlc3ampYl7nfl2bbsgBA=";
-  };
-
-  dontConfigure = true;
-  # The CBQN derivation will build replxx, here we just provide the source files.
-  dontBuild = true;
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/dev
-    cp -r $src $out/dev
-
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/dzaima/replxx";
-    description = "A replxx fork for CBQN";
-    license = licenses.free;
-    maintainers = with maintainers; [ AndersonTorres sternenseemann synthetica shnarazk detegr ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/development/interpreters/bqn/cbqn/singeli.nix b/pkgs/development/interpreters/bqn/cbqn/singeli.nix
deleted file mode 100644
index 212b96b6cb3f0..0000000000000
--- a/pkgs/development/interpreters/bqn/cbqn/singeli.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ lib
-, fetchFromGitHub
-, stdenvNoCC
-}:
-
-stdenvNoCC.mkDerivation {
-  pname = "singeli";
-  version = "unstable-2023-11-22";
-
-  src = fetchFromGitHub {
-    owner = "mlochbaum";
-    repo = "Singeli";
-    rev = "528faaf9e2a7f4f3434365bcd91d6c18c87c4f08";
-    hash = "sha256-/z1KHqflCqPGC9JU80jtgqdk2mkX06eWSziuf4TU4TM=";
-  };
-
-  dontConfigure = true;
-  # The CBQN derivation will build Singeli, here we just provide the source files.
-  dontBuild = true;
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/dev
-    cp -r $src $out/dev
-
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/mlochbaum/Singeli";
-    description = "A metaprogramming DSL for SIMD";
-    license = licenses.isc;
-    maintainers = with maintainers; [ AndersonTorres sternenseemann synthetica shnarazk detegr ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/development/interpreters/bqn/cbqn/sources.nix b/pkgs/development/interpreters/bqn/cbqn/sources.nix
new file mode 100644
index 0000000000000..3b9ca78533e36
--- /dev/null
+++ b/pkgs/development/interpreters/bqn/cbqn/sources.nix
@@ -0,0 +1,60 @@
+# Sources required to build CBQN
+# Update them all at the same time, or else misbuilds will happen!
+# TODO: automate the update of this file
+
+{
+  fetchFromGitHub,
+}:
+
+{
+  cbqn = let
+    self = {
+      pname = "cbqn";
+      version = "0.7.0";
+
+      src = fetchFromGitHub {
+        owner = "dzaima";
+        repo = "CBQN";
+        rev = "v${self.version}";
+        hash = "sha256-TUK0HrJ1IyiVi9Y3S1IrK/d4/EZxdRdWyxsAwj79KEc=";
+      };
+    };
+  in
+    self;
+
+  cbqn-bytecode = {
+    pname = "cbqn-bytecode";
+    version = "0-unstable-2024-05-22";
+
+    src = fetchFromGitHub {
+      owner = "dzaima";
+      repo = "cbqnBytecode";
+      rev = "c5674783c11d7569e5a4d166600ffcde2409331d";
+      hash = "sha256-y7gqHzUxVUUVryutlq3Upuso8r3ZRSyF7ydMg1OVlwA=";
+    };
+  };
+
+  replxx = {
+    pname = "replxx";
+    version = "0-unstable-2023-10-31";
+
+    src = fetchFromGitHub {
+      owner = "dzaima";
+      repo = "replxx";
+      rev = "13f7b60f4f79c2f14f352a76d94860bad0fc7ce9";
+      hash = "sha256-xPuQ5YBDSqhZCwssbaN/FcTZlc3ampYl7nfl2bbsgBA=";
+    };
+  };
+
+  singeli = {
+    pname = "singeli";
+    version = "0-unstable-2024-02-26";
+
+    src = fetchFromGitHub {
+      owner = "mlochbaum";
+      repo = "Singeli";
+      rev = "ce6ef5d06d35777f0016bbfe0c6c1cf6a9c1b48e";
+      hash = "sha256-dDoWoq4LYMD2CKyPxXDAwoeH2E+f0FDyvngtWPEr67w=";
+    };
+  };
+}
diff --git a/pkgs/development/interpreters/emilua/default.nix b/pkgs/development/interpreters/emilua/default.nix
index e71c47ae59cbc..396164b14a891 100644
--- a/pkgs/development/interpreters/emilua/default.nix
+++ b/pkgs/development/interpreters/emilua/default.nix
@@ -98,13 +98,11 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  # Skipped test: libpsx
-  # Known issue with no-new-privs disabled in the Nix build environment.
-  checkPhase = ''
-    runHook preCheck
-    meson test --print-errorlogs --no-suite libpsx
-    runHook postCheck
-  '';
+  mesonCheckFlags = [
+    # Skipped test: libpsx
+    # Known issue with no-new-privs disabled in the Nix build environment.
+    "--no-suite" "libpsx"
+  ];
 
   meta = with lib; {
     description = "Lua execution engine";
diff --git a/pkgs/development/interpreters/gauche/default.nix b/pkgs/development/interpreters/gauche/default.nix
index aa58be639b9d1..d596455fe0155 100644
--- a/pkgs/development/interpreters/gauche/default.nix
+++ b/pkgs/development/interpreters/gauche/default.nix
@@ -21,6 +21,8 @@ stdenv.mkDerivation rec {
   '';
 
   postPatch = ''
+    substituteInPlace ext/package-templates/configure \
+      --replace "#!/usr/bin/env gosh" "#!$out/bin/gosh"
     patchShebangs .
   '';
 
diff --git a/pkgs/development/interpreters/lfe/2.1.nix b/pkgs/development/interpreters/lfe/2.1.nix
index f239aa94b78ff..2270c0a219d63 100644
--- a/pkgs/development/interpreters/lfe/2.1.nix
+++ b/pkgs/development/interpreters/lfe/2.1.nix
@@ -1,4 +1,4 @@
-{ fetchpatch, mkDerivation }:
+{ mkDerivation }:
 
 mkDerivation {
   version = "2.1.3";
diff --git a/pkgs/development/interpreters/lua-5/default.nix b/pkgs/development/interpreters/lua-5/default.nix
index bbd93c725f731..a7587dafe3920 100644
--- a/pkgs/development/interpreters/lua-5/default.nix
+++ b/pkgs/development/interpreters/lua-5/default.nix
@@ -1,5 +1,5 @@
 # similar to interpreters/python/default.nix
-{ stdenv, config, lib, callPackage, fetchFromGitHub, fetchurl, fetchpatch, makeBinaryWrapper }:
+{ stdenv, config, lib, callPackage, fetchFromGitHub, fetchurl, makeBinaryWrapper }:
 
 
 let
diff --git a/pkgs/development/interpreters/luajit/2.0.nix b/pkgs/development/interpreters/luajit/2.0.nix
index 29ad88f0ec160..9ad3099143c8d 100644
--- a/pkgs/development/interpreters/luajit/2.0.nix
+++ b/pkgs/development/interpreters/luajit/2.0.nix
@@ -1,18 +1,19 @@
 { self, callPackage, fetchFromGitHub, lib, passthruFun }:
 
-callPackage ./default.nix rec {
+callPackage ./default.nix {
   # The patch version is the timestamp of the git commit,
   # obtain via `cat $(nix-build -A luajit_2_0.src)/.relver`
-  version = "2.0.1693340858";
+  version = "2.0.1713483859";
 
   src = fetchFromGitHub {
     owner = "LuaJIT";
     repo = "LuaJIT";
-    rev = "c6ee7e19d107b4f9a140bb2ccf99162e26318c69";
-    hash = "sha256-3/7ASZRniytw5RkOy0F9arHkZevq6dxmya+Ba3A5IIA=";
+    rev = "9b5e837ac2dfdc0638830c048a47ca9378c504d3";
+    hash = "sha256-GflF/sELSNanc9G4WMzoOadUBOFSs6OwqhAXa4sudWA=";
   };
 
-  extraMeta = { # this isn't precise but it at least stops the useless Hydra build
+  extraMeta = {
+    # this isn't precise but it at least stops the useless Hydra build
     platforms = with lib; filter (p: !hasPrefix "aarch64-" p)
       (platforms.linux ++ platforms.darwin);
   };
diff --git a/pkgs/development/interpreters/luajit/2.1.nix b/pkgs/development/interpreters/luajit/2.1.nix
index cf8531b7352d4..90d7769e1d57d 100644
--- a/pkgs/development/interpreters/luajit/2.1.nix
+++ b/pkgs/development/interpreters/luajit/2.1.nix
@@ -1,15 +1,15 @@
 { self, callPackage, fetchFromGitHub, passthruFun }:
 
-callPackage ./default.nix rec {
+callPackage ./default.nix {
   # The patch version is the timestamp of the git commit,
   # obtain via `cat $(nix-build -A luajit_2_1.src)/.relver`
-  version = "2.1.1693350652";
+  version = "2.1.1713773202";
 
   src = fetchFromGitHub {
     owner = "LuaJIT";
     repo = "LuaJIT";
-    rev = "41fb94defa8f830ce69a8122b03f6ac3216d392a";
-    hash = "sha256-iY80CA97RqJ9gF1Kl7ms/lC6m6KScjxWmljh5Gy7Brg=";
+    rev = "5790d253972c9d78a0c2aece527eda5b134bbbf7";
+    hash = "sha256-WG8AWDI182/9O7NrZlQ6ZH/esyYE2pWXMuSzWUuntSA=";
   };
 
   inherit self passthruFun;
diff --git a/pkgs/development/interpreters/php/generic.nix b/pkgs/development/interpreters/php/generic.nix
index 68ca8e4d3bbaa..b2e07d9276815 100644
--- a/pkgs/development/interpreters/php/generic.nix
+++ b/pkgs/development/interpreters/php/generic.nix
@@ -164,7 +164,7 @@ let
                 nixos = lib.recurseIntoAttrs nixosTests."php${lib.strings.replaceStrings [ "." ] [ "" ] (lib.versions.majorMinor php.version)}";
                 package = tests.php;
               };
-              inherit (php-packages) extensions buildPecl mkComposerRepository buildComposerProject composerHooks mkExtension;
+              inherit (php-packages) extensions buildPecl mkComposerRepository buildComposerProject buildComposerWithPlugin composerHooks mkExtension;
               packages = php-packages.tools;
               meta = php.meta // {
                 outputsToInstall = [ "out" ];
diff --git a/pkgs/development/interpreters/python/cpython/default.nix b/pkgs/development/interpreters/python/cpython/default.nix
index 37b9d19fe88d9..f32787c04c8dc 100644
--- a/pkgs/development/interpreters/python/cpython/default.nix
+++ b/pkgs/development/interpreters/python/cpython/default.nix
@@ -121,6 +121,9 @@ let
     versionOlder
   ;
 
+  # mixes libc and libxcrypt headers and libs and causes segfaults on importing crypt
+  libxcrypt = if stdenv.hostPlatform.isFreeBSD then null else inputs.libxcrypt;
+
   buildPackages = pkgsBuildHost;
   inherit (passthru) pythonOnBuildForHost;
 
@@ -261,6 +264,7 @@ let
 
     multiarch =
       if isDarwin then "darwin"
+      else if isFreeBSD then ""
       else if isWindows then ""
       else "${multiarchCpu}-${machdep}-${pythonAbiName}";
 
@@ -445,7 +449,11 @@ in with passthru; stdenv.mkDerivation (finalAttrs: {
     "LDFLAGS=-static"
   ];
 
-  preConfigure = optionalString (pythonOlder "3.12") ''
+  preConfigure = ''
+    # Attempt to purify some of the host info collection
+    sed -E -i -e 's/uname -r/echo/g' -e 's/uname -n/echo nixpkgs/g' config.guess
+    sed -E -i -e 's/uname -r/echo/g' -e 's/uname -n/echo nixpkgs/g' configure
+  '' + optionalString (pythonOlder "3.12") ''
     # Improve purity
     for path in /usr /sw /opt /pkg; do
       substituteInPlace ./setup.py --replace-warn $path /no-such-path
@@ -476,10 +484,10 @@ in with passthru; stdenv.mkDerivation (finalAttrs: {
   postInstall = let
     # References *not* to nuke from (sys)config files
     keep-references = concatMapStringsSep " " (val: "-e ${val}") ([
-      (placeholder "out") libxcrypt
-    ] ++ optionals tzdataSupport [
-      tzdata
-    ]);
+      (placeholder "out")
+    ] ++ lib.optional (libxcrypt != null) libxcrypt
+      ++ lib.optional tzdataSupport tzdata
+    );
   in lib.optionalString enableFramework ''
     for dir in include lib share; do
       ln -s $out/Library/Frameworks/Python.framework/Versions/Current/$dir $out/$dir
@@ -661,7 +669,7 @@ in with passthru; stdenv.mkDerivation (finalAttrs: {
     '';
     license = licenses.psfl;
     pkgConfigModules = [ "python3" ];
-    platforms = platforms.linux ++ platforms.darwin ++ platforms.windows;
+    platforms = platforms.linux ++ platforms.darwin ++ platforms.windows ++ platforms.freebsd;
     mainProgram = executable;
   };
 })
diff --git a/pkgs/development/interpreters/ruby/rubygems/default.nix b/pkgs/development/interpreters/ruby/rubygems/default.nix
index 8c0bc2208c10c..9ad7a04eab066 100644
--- a/pkgs/development/interpreters/ruby/rubygems/default.nix
+++ b/pkgs/development/interpreters/ruby/rubygems/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "rubygems";
-  version = "3.5.9";
+  version = "3.5.11";
 
   src = fetchurl {
     url = "https://rubygems.org/rubygems/rubygems-${version}.tgz";
-    hash = "sha256-KyA2Qhkea7ns4ZB19iJ1qIUmMZsSRoTEZmdBXcpDY/E=";
+    hash = "sha256-RSG1L4Q2IKn8XKdBRSa3RjsJiVZMOugLJraPvRMEyBg=";
   };
 
   patches = [
diff --git a/pkgs/development/interpreters/s9fes/default.nix b/pkgs/development/interpreters/s9fes/default.nix
index 7cf60b00eb9b0..4107b28e1cf9f 100644
--- a/pkgs/development/interpreters/s9fes/default.nix
+++ b/pkgs/development/interpreters/s9fes/default.nix
@@ -22,7 +22,11 @@ stdenv.mkDerivation rec {
   '';
 
   buildInputs = [ ncurses ];
+  preBuild = ''
+    makeFlagsArray+=(CFLAGS="-O2 -std=c89")
+  '';
   makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "PREFIX=$(out)" ];
+
   enableParallelBuilding = true;
   # ...-bash-5.2-p15/bin/bash: line 1: ...-s9fes-20181205/bin/s9help: No such file or directory
   # make: *** [Makefile:157: install-util] Error 1
diff --git a/pkgs/development/interpreters/wasmer/default.nix b/pkgs/development/interpreters/wasmer/default.nix
index a509107ec1636..ed9139af17b8e 100644
--- a/pkgs/development/interpreters/wasmer/default.nix
+++ b/pkgs/development/interpreters/wasmer/default.nix
@@ -14,16 +14,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wasmer";
-  version = "4.2.7";
+  version = "4.3.1";
 
   src = fetchFromGitHub {
     owner = "wasmerio";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-jyA1DUouODq9giAWeGOw7VMGwA+FbyqpEU77jtCb5v4=";
+    hash = "sha256-1bxxy0Dso54cYQIZC9UUjtkgL1eyd3oRbhaYCwI0otw=";
   };
 
-  cargoHash = "sha256-EpHM8YaT2Ty9IBX/gXEa9n8006A9Y5/fq/ueODxHlnc=";
+  cargoHash = "sha256-3MwQZdFIWqHvELpIGlqsn/VKyobWki7OcMXQrjbxwKk=";
 
   nativeBuildInputs = [
     rustPlatform.bindgenHook
diff --git a/pkgs/development/interpreters/wasmtime/default.nix b/pkgs/development/interpreters/wasmtime/default.nix
index afa65741892c9..f880cf81a7210 100644
--- a/pkgs/development/interpreters/wasmtime/default.nix
+++ b/pkgs/development/interpreters/wasmtime/default.nix
@@ -1,4 +1,4 @@
-{ rustPlatform, fetchFromGitHub, Security, lib, stdenv }:
+{ rustPlatform, rustfmt, fetchFromGitHub, Security, lib, stdenv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "wasmtime";
@@ -21,11 +21,20 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
-  # SIMD tests are only executed on platforms that support all
-  # required processor features (e.g. SSE3, SSSE3 and SSE4.1 on x86_64):
-  # https://github.com/bytecodealliance/wasmtime/blob/v9.0.0/cranelift/codegen/src/isa/x64/mod.rs#L220
-  doCheck = with stdenv.buildPlatform; (isx86_64 -> sse3Support && ssse3Support && sse4_1Support);
-  cargoTestFlags = ["--package" "wasmtime-runtime"];
+  # rustfmt is brought into scope to fix the following
+  #   warning: cranelift-codegen@0.108.0:
+  #   Failed to run `rustfmt` on ISLE-generated code: Os
+  #   { code: 2, kind: NotFound, message: "No such file or directory" }
+  nativeBuildInputs = [ rustfmt ];
+
+  doCheck = with stdenv.buildPlatform;
+    # SIMD tests are only executed on platforms that support all
+    # required processor features (e.g. SSE3, SSSE3 and SSE4.1 on x86_64):
+    # https://github.com/bytecodealliance/wasmtime/blob/v9.0.0/cranelift/codegen/src/isa/x64/mod.rs#L220
+    (isx86_64 -> sse3Support && ssse3Support && sse4_1Support) &&
+    # The dependency `wasi-preview1-component-adapter` fails to build because of:
+    # error: linker `rust-lld` not found
+    !isAarch64;
 
   postInstall = ''
     # move libs from out to dev
diff --git a/pkgs/development/libraries/CoinMP/0001-change-more-reinterpret_cast-from-NULL-to-C-cast-see.patch b/pkgs/development/libraries/CoinMP/0001-change-more-reinterpret_cast-from-NULL-to-C-cast-see.patch
new file mode 100644
index 0000000000000..fccba169df490
--- /dev/null
+++ b/pkgs/development/libraries/CoinMP/0001-change-more-reinterpret_cast-from-NULL-to-C-cast-see.patch
@@ -0,0 +1,95 @@
+From 0259f2b936ee0d9288ff39c509c69a66f5b13b80 Mon Sep 17 00:00:00 2001
+From: Stefan Vigerske <svigerske@gams.com>
+Date: Mon, 11 Mar 2019 16:34:25 +0000
+Subject: [PATCH 1/2] change more reinterpret_cast from NULL to C-cast, see
+ also #93
+
+---
+ Clp/src/AbcSimplex.cpp | 48 +++++++++++++++++++++---------------------
+ Clp/src/ClpModel.cpp   |  2 +-
+ 2 files changed, 25 insertions(+), 25 deletions(-)
+
+diff --git a/Clp/src/AbcSimplex.cpp b/Clp/src/AbcSimplex.cpp
+index 0eacd91e..1715e6d8 100644
+--- a/Clp/src/AbcSimplex.cpp
++++ b/Clp/src/AbcSimplex.cpp
+@@ -368,19 +368,19 @@ AbcSimplex::gutsOfInitialize(int numberRows,int numberColumns,bool doMore)
+     // say Steepest pricing
+     abcDualRowPivot_ = new AbcDualRowSteepest();
+     abcPrimalColumnPivot_ = new AbcPrimalColumnSteepest();
+-    internalStatus_ = newArray(reinterpret_cast<unsigned char *>(NULL),
++    internalStatus_ = newArray((unsigned char *)NULL,
+ 			       sizeArray+maximumNumberTotal_);
+-    abcLower_ = newArray(reinterpret_cast<double *>(NULL),sizeArray);
+-    abcUpper_ = newArray(reinterpret_cast<double *>(NULL),sizeArray);
+-    abcCost_ = newArray(reinterpret_cast<double *>(NULL),sizeArray+maximumNumberTotal_);
+-    abcDj_ = newArray(reinterpret_cast<double *>(NULL),sizeArray);
+-    abcSolution_ = newArray(reinterpret_cast<double *>(NULL),sizeArray+maximumNumberTotal_);
+-    //fromExternal_ = newArray(reinterpret_cast<int *>(NULL),sizeArray);
+-    //toExternal_ = newArray(reinterpret_cast<int *>(NULL),sizeArray);
+-    scaleFromExternal_ = newArray(reinterpret_cast<double *>(NULL),sizeArray);
+-    offset_ = newArray(reinterpret_cast<double *>(NULL),sizeArray);
+-    abcPerturbation_ = newArray(reinterpret_cast<double *>(NULL),sizeArray);
+-    abcPivotVariable_ = newArray(reinterpret_cast<int *>(NULL),maximumAbcNumberRows_);
++    abcLower_ = newArray((double *)NULL,sizeArray);
++    abcUpper_ = newArray((double *)NULL,sizeArray);
++    abcCost_ = newArray((double *)NULL,sizeArray+maximumNumberTotal_);
++    abcDj_ = newArray((double *)NULL,sizeArray);
++    abcSolution_ = newArray((double *)NULL,sizeArray+maximumNumberTotal_);
++    //fromExternal_ = newArray((int *)NULL,sizeArray);
++    //toExternal_ = newArray((int *)NULL,sizeArray);
++    scaleFromExternal_ = newArray((double *)NULL,sizeArray);
++    offset_ = newArray((double *)NULL,sizeArray);
++    abcPerturbation_ = newArray((double *)NULL,sizeArray);
++    abcPivotVariable_ = newArray((int *)NULL,maximumAbcNumberRows_);
+     // Fill perturbation array
+     setupPointers(maximumAbcNumberRows_,maximumAbcNumberColumns_);
+     fillPerturbation(0,maximumNumberTotal_);
+@@ -554,19 +554,19 @@ AbcSimplex::createSubProblem(int numberColumns,const int * whichColumn)
+   subProblem->maximumNumberTotal_= maximumAbcNumberRows_+numberColumns;
+   subProblem->numberTotalWithoutFixed_= subProblem->numberTotal_;
+   int sizeArray=2*subProblem->maximumNumberTotal_+maximumAbcNumberRows_;
+-  subProblem->internalStatus_ = newArray(reinterpret_cast<unsigned char *>(NULL),
++  subProblem->internalStatus_ = newArray((unsigned char *)NULL,
+ 					 sizeArray+subProblem->maximumNumberTotal_);
+-  subProblem->abcLower_ = newArray(reinterpret_cast<double *>(NULL),sizeArray);
+-  subProblem->abcUpper_ = newArray(reinterpret_cast<double *>(NULL),sizeArray);
+-  subProblem->abcCost_ = newArray(reinterpret_cast<double *>(NULL),sizeArray+subProblem->maximumNumberTotal_);
+-  subProblem->abcDj_ = newArray(reinterpret_cast<double *>(NULL),sizeArray);
+-  subProblem->abcSolution_ = newArray(reinterpret_cast<double *>(NULL),sizeArray+subProblem->maximumNumberTotal_);
+-  //fromExternal_ = newArray(reinterpret_cast<int *>(NULL),sizeArray);
+-  //toExternal_ = newArray(reinterpret_cast<int *>(NULL),sizeArray);
+-  subProblem->scaleFromExternal_ = newArray(reinterpret_cast<double *>(NULL),sizeArray);
+-  subProblem->offset_ = newArray(reinterpret_cast<double *>(NULL),sizeArray);
+-  subProblem->abcPerturbation_ = newArray(reinterpret_cast<double *>(NULL),sizeArray);
+-  subProblem->abcPivotVariable_ = newArray(reinterpret_cast<int *>(NULL),maximumAbcNumberRows_);
++  subProblem->abcLower_ = newArray((double *)NULL,sizeArray);
++  subProblem->abcUpper_ = newArray((double *)NULL,sizeArray);
++  subProblem->abcCost_ = newArray((double *)NULL,sizeArray+subProblem->maximumNumberTotal_);
++  subProblem->abcDj_ = newArray((double *)NULL,sizeArray);
++  subProblem->abcSolution_ = newArray((double *)NULL,sizeArray+subProblem->maximumNumberTotal_);
++  //fromExternal_ = newArray((int *)NULL,sizeArray);
++  //toExternal_ = newArray((int *)NULL,sizeArray);
++  subProblem->scaleFromExternal_ = newArray((double *)NULL,sizeArray);
++  subProblem->offset_ = newArray((double *)NULL,sizeArray);
++  subProblem->abcPerturbation_ = newArray((double *)NULL,sizeArray);
++  subProblem->abcPivotVariable_ = newArray((int *)NULL,maximumAbcNumberRows_);
+   subProblem->setupPointers(maximumAbcNumberRows_,numberColumns);
+   // could use arrays - but for now be safe
+   int * backward = new int [numberFullColumns+numberRows_];
+diff --git a/Clp/src/ClpModel.cpp b/Clp/src/ClpModel.cpp
+index 1fc905c4..83aa3b63 100644
+--- a/Clp/src/ClpModel.cpp
++++ b/Clp/src/ClpModel.cpp
+@@ -3845,7 +3845,7 @@ ClpModel::writeMps(const char *filename,
+      writer.setMpsData(*(matrix_->getPackedMatrix()), COIN_DBL_MAX,
+                        getColLower(), getColUpper(),
+                        objective,
+-                       reinterpret_cast<const char*> (NULL) /*integrality*/,
++                       (const char*)NULL /*integrality*/,
+                        getRowLower(), getRowUpper(),
+                        columnNames, rowNames);
+      // Pass in array saying if each variable integer
+-- 
+2.37.3
+
diff --git a/pkgs/development/libraries/CoinMP/0001-use-static_cast-for-static-cast-fixes-319.patch b/pkgs/development/libraries/CoinMP/0001-use-static_cast-for-static-cast-fixes-319.patch
new file mode 100644
index 0000000000000..3f1790bd50c39
--- /dev/null
+++ b/pkgs/development/libraries/CoinMP/0001-use-static_cast-for-static-cast-fixes-319.patch
@@ -0,0 +1,25 @@
+From b36a5bd502fbf6b8ad31b6bc35c7bab4aff24313 Mon Sep 17 00:00:00 2001
+From: Stefan Vigerske <svigerske@gams.com>
+Date: Mon, 20 Jul 2020 18:39:20 +0200
+Subject: [PATCH] use static_cast for static cast, fixes #319
+
+---
+ Cbc/src/CbcModel.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Cbc/src/CbcModel.cpp b/Cbc/src/CbcModel.cpp
+index 8603942b..239bf0b4 100644
+--- a/Cbc/src/CbcModel.cpp
++++ b/Cbc/src/CbcModel.cpp
+@@ -5357,7 +5357,7 @@ void CbcModel::branchAndBound(int doStatistics)
+         OsiClpSolverInterface * clpSolver
+         = dynamic_cast<OsiClpSolverInterface *> (solver_);
+         if (clpSolver)
+-            clpSolver->setFakeObjective(reinterpret_cast<double *> (NULL));
++            clpSolver->setFakeObjective(static_cast<double *> (NULL));
+     }
+ #endif
+     moreSpecialOptions_ = saveMoreSpecialOptions;
+-- 
+2.37.3
+
diff --git a/pkgs/development/libraries/CoinMP/0002-change-reinterpret_cast-of-NULL-to-C-style-case-fixe.patch b/pkgs/development/libraries/CoinMP/0002-change-reinterpret_cast-of-NULL-to-C-style-case-fixe.patch
new file mode 100644
index 0000000000000..b1ca1806b5a9c
--- /dev/null
+++ b/pkgs/development/libraries/CoinMP/0002-change-reinterpret_cast-of-NULL-to-C-style-case-fixe.patch
@@ -0,0 +1,26 @@
+From 4571de031e528bc145590d6a1be5ceb87bd8cdb5 Mon Sep 17 00:00:00 2001
+From: Stefan Vigerske <svigerske@gams.com>
+Date: Mon, 11 Mar 2019 16:29:20 +0000
+Subject: [PATCH 2/2] change reinterpret_cast of NULL to C-style case, fixes
+ #93
+
+---
+ Clp/src/OsiClp/OsiClpSolverInterface.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Clp/src/OsiClp/OsiClpSolverInterface.cpp b/Clp/src/OsiClp/OsiClpSolverInterface.cpp
+index 55dd4dcd..a0217d42 100644
+--- a/Clp/src/OsiClp/OsiClpSolverInterface.cpp
++++ b/Clp/src/OsiClp/OsiClpSolverInterface.cpp
+@@ -1448,7 +1448,7 @@ OsiClpSolverInterface::setupForRepeatedUse(int senseOfAdventure, int printOut)
+   if (stopPrinting) {
+     CoinMessages * messagesPointer = modelPtr_->messagesPointer();
+     // won't even build messages 
+-    messagesPointer->setDetailMessages(100,10000,reinterpret_cast<int *> (NULL));
++    messagesPointer->setDetailMessages(100,10000,(int*)NULL);
+   }
+ #endif
+ }
+-- 
+2.37.3
+
diff --git a/pkgs/development/libraries/CoinMP/default.nix b/pkgs/development/libraries/CoinMP/default.nix
index 0a2954f4a7dd4..7b829305b0319 100644
--- a/pkgs/development/libraries/CoinMP/default.nix
+++ b/pkgs/development/libraries/CoinMP/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchurl, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "CoinMP";
@@ -9,6 +9,22 @@ stdenv.mkDerivation rec {
     sha256 = "13d3j1sdcjzpijp4qks3n0zibk649ac3hhv88hkk8ffxrc6gnn9l";
   };
 
+  patches = [
+    # backport build fixes for pkgsMusl.CoinMP
+    (fetchpatch {
+      url = "https://github.com/coin-or/Cgl/commit/57d8c71cd50dc27a89eaeb4672499bca55f1fd72.patch";
+      extraPrefix = "Cgl/";
+      stripLen = 1;
+      hash = "sha256-NdwXpIL1w6kHVfhBFscTlpriQOfUXx860/4x7pK+698=";
+    })
+    # https://github.com/coin-or/Clp/commit/b637e1d633425ae21ec041bf7f9e06f56b741de0
+    ./0001-change-more-reinterpret_cast-from-NULL-to-C-cast-see.patch
+    # https://github.com/coin-or/Clp/commit/e749fe6b11a90006d744af2ca2691220862e3a59
+    ./0002-change-reinterpret_cast-of-NULL-to-C-style-case-fixe.patch
+    # https://github.com/coin-or/Cbc/commit/584fd12fba6a562d49864f44bedd13ee32d06999
+    ./0001-use-static_cast-for-static-cast-fixes-319.patch
+  ];
+
   enableParallelBuilding = true;
 
   env = lib.optionalAttrs stdenv.cc.isClang {
diff --git a/pkgs/development/libraries/SDL2/default.nix b/pkgs/development/libraries/SDL2/default.nix
index 1e63f3bfdef18..0096f3b265b64 100644
--- a/pkgs/development/libraries/SDL2/default.nix
+++ b/pkgs/development/libraries/SDL2/default.nix
@@ -58,13 +58,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "SDL2";
-  version = "2.30.2";
+  version = "2.30.3";
 
   src = fetchFromGitHub {
     owner = "libsdl-org";
     repo = "SDL";
     rev = "release-${finalAttrs.version}";
-    hash = "sha256-yYYtsF6+IKynXpfay0rUmCQPdL8vp6dlmon8N7UG89A=";
+    hash = "sha256-ycY/AkWulV3vAu/+vKw+j/b6jTZWjqKjIgjRwqNHFl8=";
   };
   dontDisableStatic = if withStatic then 1 else 0;
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/abseil-cpp/202111.nix b/pkgs/development/libraries/abseil-cpp/202111.nix
index 0c1a173eca44b..076d1e8504833 100644
--- a/pkgs/development/libraries/abseil-cpp/202111.nix
+++ b/pkgs/development/libraries/abseil-cpp/202111.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , static ? stdenv.hostPlatform.isStatic
 , cxxStandard ? null
diff --git a/pkgs/development/libraries/allegro/5.nix b/pkgs/development/libraries/allegro/5.nix
index eaf227fa60d14..ac9704b617e97 100644
--- a/pkgs/development/libraries/allegro/5.nix
+++ b/pkgs/development/libraries/allegro/5.nix
@@ -3,7 +3,6 @@
 , cmake
 , enet
 , fetchFromGitHub
-, fetchpatch
 , flac
 , freetype
 , gtk3
diff --git a/pkgs/development/libraries/apr/default.nix b/pkgs/development/libraries/apr/default.nix
index 6428489173daa..dfa97d200e913 100644
--- a/pkgs/development/libraries/apr/default.nix
+++ b/pkgs/development/libraries/apr/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, buildPackages, autoreconfHook }:
+{ lib, stdenv, fetchurl, buildPackages, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   pname = "apr";
diff --git a/pkgs/development/libraries/assimp/default.nix b/pkgs/development/libraries/assimp/default.nix
index 8019c6cc943f1..201ebb14a337e 100644
--- a/pkgs/development/libraries/assimp/default.nix
+++ b/pkgs/development/libraries/assimp/default.nix
@@ -8,14 +8,14 @@
 
 stdenv.mkDerivation rec {
   pname = "assimp";
-  version = "5.3.1";
+  version = "5.4.1";
   outputs = [ "out" "lib" "dev" ];
 
   src = fetchFromGitHub {
     owner = "assimp";
     repo = "assimp";
     rev = "v${version}";
-    hash = "sha256-/1A8n7oe9WsF3FpbLZxhifzrdj38t9l5Kc8Q5jfDoyY=";
+    hash = "sha256-F3aaEaHZyOLES6zOYqHRG0BtaKk9d/bAHCtal6FsIWc=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/aubio/default.nix b/pkgs/development/libraries/aubio/default.nix
index 89f81e26de407..6702eb91c9b17 100644
--- a/pkgs/development/libraries/aubio/default.nix
+++ b/pkgs/development/libraries/aubio/default.nix
@@ -15,7 +15,6 @@ stdenv.mkDerivation rec {
   buildInputs = [ alsa-lib fftw libjack2 libsamplerate libsndfile ];
 
   strictDeps = true;
-  dontAddWafCrossFlags = true;
   wafFlags = lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "--disable-tests";
 
   postPatch = ''
diff --git a/pkgs/development/libraries/audio/libopenmpt/default.nix b/pkgs/development/libraries/audio/libopenmpt/default.nix
index da288f145613e..0f4c3509244d8 100644
--- a/pkgs/development/libraries/audio/libopenmpt/default.nix
+++ b/pkgs/development/libraries/audio/libopenmpt/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libopenmpt";
-  version = "0.7.6";
+  version = "0.7.7";
 
   outputs = [ "out" "dev" "bin" ];
 
   src = fetchurl {
     url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}+release.autotools.tar.gz";
-    hash = "sha256-Fi1yowa7LhFMJPolJn0NCgrBbzn9laXA38daZm7l5PU=";
+    hash = "sha256-WMaiiXISaCim9ljghK7nqo+L/bdaC9DjRcf/Km2e8Iw=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/aws-c-auth/default.nix b/pkgs/development/libraries/aws-c-auth/default.nix
index c15cbe8bde401..d07a7fc529964 100644
--- a/pkgs/development/libraries/aws-c-auth/default.nix
+++ b/pkgs/development/libraries/aws-c-auth/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-c-auth";
-  version = "0.7.18";
+  version = "0.7.22";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "aws-c-auth";
     rev = "v${version}";
-    hash = "sha256-JWYJz8ugYvXDvtJ5dRWVcA8F3PdjxO8aCc8l0jghYXg=";
+    hash = "sha256-8+SFag3hRQ+1aOK2vuHOV/gXE1qUIlAW5LNJDmUORLs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/boost/1.75.nix b/pkgs/development/libraries/boost/1.75.nix
index ec77070c932c0..c8971119c9924 100644
--- a/pkgs/development/libraries/boost/1.75.nix
+++ b/pkgs/development/libraries/boost/1.75.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.75.0";
diff --git a/pkgs/development/libraries/boost/1.77.nix b/pkgs/development/libraries/boost/1.77.nix
index 3da1a455ead4b..72663044d9c93 100644
--- a/pkgs/development/libraries/boost/1.77.nix
+++ b/pkgs/development/libraries/boost/1.77.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.77.0";
diff --git a/pkgs/development/libraries/boost/1.78.nix b/pkgs/development/libraries/boost/1.78.nix
index 2cc818e63ce03..53a3f300a792b 100644
--- a/pkgs/development/libraries/boost/1.78.nix
+++ b/pkgs/development/libraries/boost/1.78.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.78.0";
diff --git a/pkgs/development/libraries/boost/1.79.nix b/pkgs/development/libraries/boost/1.79.nix
index 87975e2846d30..91e13edf2265a 100644
--- a/pkgs/development/libraries/boost/1.79.nix
+++ b/pkgs/development/libraries/boost/1.79.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.79.0";
diff --git a/pkgs/development/libraries/boost/1.80.nix b/pkgs/development/libraries/boost/1.80.nix
index 1aab51af78a74..79281cd1c70a0 100644
--- a/pkgs/development/libraries/boost/1.80.nix
+++ b/pkgs/development/libraries/boost/1.80.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.80.0";
diff --git a/pkgs/development/libraries/boost/1.81.nix b/pkgs/development/libraries/boost/1.81.nix
index 2376255303e29..3d8474f1df6ab 100644
--- a/pkgs/development/libraries/boost/1.81.nix
+++ b/pkgs/development/libraries/boost/1.81.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.81.0";
diff --git a/pkgs/development/libraries/boost/1.82.nix b/pkgs/development/libraries/boost/1.82.nix
index 193d07ef7562f..cf3a7fe3734c9 100644
--- a/pkgs/development/libraries/boost/1.82.nix
+++ b/pkgs/development/libraries/boost/1.82.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.82.0";
diff --git a/pkgs/development/libraries/boost/1.83.nix b/pkgs/development/libraries/boost/1.83.nix
index df5c5a5bbd31c..446c759d335f9 100644
--- a/pkgs/development/libraries/boost/1.83.nix
+++ b/pkgs/development/libraries/boost/1.83.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.83.0";
diff --git a/pkgs/development/libraries/boost/1.84.nix b/pkgs/development/libraries/boost/1.84.nix
index a55f55afaae0e..bfcfdfbfd7cfd 100644
--- a/pkgs/development/libraries/boost/1.84.nix
+++ b/pkgs/development/libraries/boost/1.84.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.84.0";
diff --git a/pkgs/development/libraries/boost/1.85.nix b/pkgs/development/libraries/boost/1.85.nix
index 2a3252d38c574..a95789800e1bd 100644
--- a/pkgs/development/libraries/boost/1.85.nix
+++ b/pkgs/development/libraries/boost/1.85.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.85.0";
diff --git a/pkgs/development/libraries/c-ares/default.nix b/pkgs/development/libraries/c-ares/default.nix
index 87b86036cff28..e0bc7941b39e6 100644
--- a/pkgs/development/libraries/c-ares/default.nix
+++ b/pkgs/development/libraries/c-ares/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, writeTextDir
+{ lib, stdenv, fetchurl, updateAutotoolsGnuConfigScriptsHook
 , withCMake ? true, cmake
 
 # sensitive downstream packages
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" "man" ];
 
-  nativeBuildInputs = lib.optionals withCMake [ cmake ];
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ] ++ lib.optionals withCMake [ cmake ];
 
   cmakeFlags = [] ++ lib.optionals stdenv.hostPlatform.isStatic [
     "-DCARES_SHARED=OFF"
diff --git a/pkgs/development/libraries/cairo/default.nix b/pkgs/development/libraries/cairo/default.nix
index 7408a43272e97..e2483bb141a57 100644
--- a/pkgs/development/libraries/cairo/default.nix
+++ b/pkgs/development/libraries/cairo/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, gtk-doc, meson, ninja, pkg-config, python3
+{ lib, stdenv, fetchurl, gtk-doc, meson, ninja, pkg-config, python3
 , docbook_xsl, fontconfig, freetype, libpng, pixman, zlib
 , x11Support? !stdenv.isDarwin || true, libXext, libXrender
 , gobjectSupport ? true, glib
diff --git a/pkgs/development/libraries/cereal/1.3.2.nix b/pkgs/development/libraries/cereal/1.3.2.nix
index 5a44b26426c79..0005df8818441 100644
--- a/pkgs/development/libraries/cereal/1.3.2.nix
+++ b/pkgs/development/libraries/cereal/1.3.2.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 }:
 
diff --git a/pkgs/development/libraries/ceres-solver/default.nix b/pkgs/development/libraries/ceres-solver/default.nix
index 7052c98d8ef8f..da5afde02627a 100644
--- a/pkgs/development/libraries/ceres-solver/default.nix
+++ b/pkgs/development/libraries/ceres-solver/default.nix
@@ -1,6 +1,5 @@
 { lib
 , stdenv
-, fetchpatch
 , fetchurl
 , blas
 , cmake
diff --git a/pkgs/development/libraries/cmocka/default.nix b/pkgs/development/libraries/cmocka/default.nix
index 6c88d1baebfa8..9a7ea037785bf 100644
--- a/pkgs/development/libraries/cmocka/default.nix
+++ b/pkgs/development/libraries/cmocka/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, fetchpatch, lib, stdenv, cmake }:
+{ fetchurl, lib, stdenv, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "cmocka";
diff --git a/pkgs/development/libraries/cogl/default.nix b/pkgs/development/libraries/cogl/default.nix
index 987d90e269955..93f75767697f9 100644
--- a/pkgs/development/libraries/cogl/default.nix
+++ b/pkgs/development/libraries/cogl/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch
 , pkg-config
 , libGL
 , glib
diff --git a/pkgs/development/libraries/crocoddyl/default.nix b/pkgs/development/libraries/crocoddyl/default.nix
index efba136122988..d9bb52f617acc 100644
--- a/pkgs/development/libraries/crocoddyl/default.nix
+++ b/pkgs/development/libraries/crocoddyl/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , example-robot-data
 , pinocchio
diff --git a/pkgs/development/libraries/dbxml/default.nix b/pkgs/development/libraries/dbxml/default.nix
index b6dcf908c4f92..f50b53d47e05c 100644
--- a/pkgs/development/libraries/dbxml/default.nix
+++ b/pkgs/development/libraries/dbxml/default.nix
@@ -28,6 +28,8 @@ stdenv.mkDerivation rec {
     "--with-berkeleydb=${db62.out}"
     "--with-xerces=${xercesc}"
     "--with-xqilla=${xqilla}"
+    # code uses register storage specifier
+    "CXXFLAGS=-std=c++14"
   ];
 
   preConfigure = ''
diff --git a/pkgs/development/libraries/drogon/default.nix b/pkgs/development/libraries/drogon/default.nix
index 2cdc6cfafb366..1710d6046e338 100644
--- a/pkgs/development/libraries/drogon/default.nix
+++ b/pkgs/development/libraries/drogon/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, jsoncpp, libossp_uuid, zlib, lib, fetchpatch
+{ stdenv, fetchFromGitHub, cmake, jsoncpp, libossp_uuid, zlib, lib
 # optional but of negligible size
 , openssl, brotli, c-ares
 # optional databases
diff --git a/pkgs/development/libraries/duckdb/default.nix b/pkgs/development/libraries/duckdb/default.nix
index 343574f251a8b..c222b117fff94 100644
--- a/pkgs/development/libraries/duckdb/default.nix
+++ b/pkgs/development/libraries/duckdb/default.nix
@@ -1,8 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
-, substituteAll
 , cmake
 , ninja
 , openssl
diff --git a/pkgs/development/libraries/editline/default.nix b/pkgs/development/libraries/editline/default.nix
index 4f891a24f1f0a..e3c9ba32f3921 100644
--- a/pkgs/development/libraries/editline/default.nix
+++ b/pkgs/development/libraries/editline/default.nix
@@ -26,6 +26,8 @@ stdenv.mkDerivation rec {
     })
   ];
 
+  configureFlags = [ (lib.enableFeature true "sigstop") ];
+
   nativeBuildInputs = [ autoreconfHook ];
 
   outputs = [ "out" "dev" "man" "doc" ];
diff --git a/pkgs/development/libraries/egl-wayland/default.nix b/pkgs/development/libraries/egl-wayland/default.nix
index f84b44007e299..626cd52df7a84 100644
--- a/pkgs/development/libraries/egl-wayland/default.nix
+++ b/pkgs/development/libraries/egl-wayland/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , eglexternalplatform
 , pkg-config
 , meson
diff --git a/pkgs/development/libraries/enet/default.nix b/pkgs/development/libraries/enet/default.nix
index 53aec96fe705b..cb57f5a2f07e0 100644
--- a/pkgs/development/libraries/enet/default.nix
+++ b/pkgs/development/libraries/enet/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "enet";
-  version = "1.3.17";
+  version = "1.3.18";
 
   src = fetchurl {
     url = "http://enet.bespin.org/download/${pname}-${version}.tar.gz";
-    sha256 = "1p6f9mby86af6cs7pv6h48032ip9g32c05cb7d9mimam8lchz3x3";
+    sha256 = "sha256-KooMU2DWi7T80R8uTEfGmXbo0shbEJ3X1gsRgaT4XTY=";
   };
 
   meta = {
diff --git a/pkgs/development/libraries/exiv2/default.nix b/pkgs/development/libraries/exiv2/default.nix
index 0ef833b8aa234..5880ea1feed5e 100644
--- a/pkgs/development/libraries/exiv2/default.nix
+++ b/pkgs/development/libraries/exiv2/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , doxygen
 , gettext
diff --git a/pkgs/development/libraries/expat/default.nix b/pkgs/development/libraries/expat/default.nix
index 9944277e946b6..a26fd46abfde9 100644
--- a/pkgs/development/libraries/expat/default.nix
+++ b/pkgs/development/libraries/expat/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, updateAutotoolsGnuConfigScriptsHook
 # for passthru.tests
 , python3
 , perlPackages
@@ -29,6 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   strictDeps = true;
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
 
   outputs = [ "out" "dev" ]; # TODO: fix referrers
   outputBin = "dev";
diff --git a/pkgs/development/libraries/fcgi/default.nix b/pkgs/development/libraries/fcgi/default.nix
index 5c7f0c44f91c9..5b87be3b1a634 100644
--- a/pkgs/development/libraries/fcgi/default.nix
+++ b/pkgs/development/libraries/fcgi/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   pname = "fcgi";
diff --git a/pkgs/development/libraries/fcl/default.nix b/pkgs/development/libraries/fcl/default.nix
index 4e13a3f7113f3..0c6790db9f702 100644
--- a/pkgs/development/libraries/fcl/default.nix
+++ b/pkgs/development/libraries/fcl/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, eigen, libccd, octomap }:
+{ lib, stdenv, fetchFromGitHub, cmake, eigen, libccd, octomap }:
 
 stdenv.mkDerivation rec {
   pname = "fcl";
diff --git a/pkgs/development/libraries/fmt/default.nix b/pkgs/development/libraries/fmt/default.nix
index 4dd6d86fdaeb4..9ce329df79573 100644
--- a/pkgs/development/libraries/fmt/default.nix
+++ b/pkgs/development/libraries/fmt/default.nix
@@ -1,6 +1,6 @@
 { lib
 , stdenv
-, fetchFromGitHub, fetchpatch
+, fetchFromGitHub
 , cmake
 , enableShared ? !stdenv.hostPlatform.isStatic
 
diff --git a/pkgs/development/libraries/folks/default.nix b/pkgs/development/libraries/folks/default.nix
index 0f40be439a3ab..cfcdfe6ed0795 100644
--- a/pkgs/development/libraries/folks/default.nix
+++ b/pkgs/development/libraries/folks/default.nix
@@ -90,12 +90,10 @@ stdenv.mkDerivation (finalAttrs: {
   # occur inconsistently
   doCheck = false;
 
-  # Prevents e-d-s add-contacts-stress-test from timing out
-  checkPhase = ''
-    runHook preCheck
-    meson test --timeout-multiplier 4
-    runHook postCheck
-  '';
+  mesonCheckFlags = [
+    # Prevents e-d-s add-contacts-stress-test from timing out
+    "--timeout-multiplier" "4"
+  ];
 
   postPatch = lib.optionalString telepathySupport ''
     patchShebangs tests/tools/manager-file.py
diff --git a/pkgs/development/libraries/fox/default.nix b/pkgs/development/libraries/fox/default.nix
index 49526b99c53b9..2715e2c80ca43 100644
--- a/pkgs/development/libraries/fox/default.nix
+++ b/pkgs/development/libraries/fox/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch
 , libpng
 , libjpeg
 , libtiff
diff --git a/pkgs/development/libraries/fuzzylite/default.nix b/pkgs/development/libraries/fuzzylite/default.nix
index 1fd6d6506c288..6f07d6a034274 100644
--- a/pkgs/development/libraries/fuzzylite/default.nix
+++ b/pkgs/development/libraries/fuzzylite/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , ninja
 , useFloat ? false
diff --git a/pkgs/development/libraries/gdbm/default.nix b/pkgs/development/libraries/gdbm/default.nix
index e1a3def0ba420..d6ed7d32e7016 100644
--- a/pkgs/development/libraries/gdbm/default.nix
+++ b/pkgs/development/libraries/gdbm/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl }:
+{ stdenv, lib, fetchurl, updateAutotoolsGnuConfigScriptsHook }:
 
 stdenv.mkDerivation rec {
   pname = "gdbm";
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-dLEIHSH/8TrkvXwW5dblBKTCb3zeHcoNljpIQXS7ys0=";
   };
 
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
+
   doCheck = true; # not cross;
 
   # Linking static stubs on cygwin requires correct ordering.
diff --git a/pkgs/development/libraries/gdcm/default.nix b/pkgs/development/libraries/gdcm/default.nix
index 9d6db6fca684b..18058af21cb1d 100644
--- a/pkgs/development/libraries/gdcm/default.nix
+++ b/pkgs/development/libraries/gdcm/default.nix
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gdcm";
-  version = "3.0.23";
+  version = "3.0.24";
 
   src = fetchFromGitHub {
     owner = "malaterre";
     repo = "GDCM";
     rev = "refs/tags/v${version}";
-    hash = "sha256-zwIPWcjTrfbdNBzAqwV6lU2l6sx+e4Yi7dprdem6AeE=";
+    hash = "sha256-Zlb6UCP4aFZOJJNhFQBBrwzst+f37gs1zaCBMTOUgZE=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/development/libraries/gdk-pixbuf/default.nix b/pkgs/development/libraries/gdk-pixbuf/default.nix
index f9fd75f1a6af9..d8d51bc19920b 100644
--- a/pkgs/development/libraries/gdk-pixbuf/default.nix
+++ b/pkgs/development/libraries/gdk-pixbuf/default.nix
@@ -21,12 +21,11 @@
 , buildPackages
 , withIntrospection ? lib.meta.availableOn stdenv.hostPlatform gobject-introspection && stdenv.hostPlatform.emulatorAvailable buildPackages
 , gobject-introspection
-, fetchpatch
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gdk-pixbuf";
-  version = "2.42.11";
+  version = "2.42.12";
 
   outputs = [ "out" "dev" "man" ]
     ++ lib.optional withIntrospection "devdoc"
@@ -36,18 +35,12 @@ stdenv.mkDerivation (finalAttrs: {
     inherit (finalAttrs) pname version;
   in fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-Sdy0AjiHCGR+jDIdVrb7MPIeUeUV0MWpQiaNIwUqLwA=";
+    hash = "sha256-uVBbNEW5p+SM7TR2DDvLc+lm3zrJTJWhSMtmmrdI48c=";
   };
 
   patches = [
     # Move installed tests to a separate output
     ./installed-tests-path.patch
-    # Remove post 2.42.11
-    (fetchpatch {
-      name = "fix-meson.build-typo.patch";
-      url = "https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/commit/238893d8cd6f9c2616a05ab521a29651a17a38c2.patch";
-      hash = "sha256-6IhdNH6hhygSXD7EJo/hoBLFeb2lJlBIHNBPTkA3Do0=";
-    })
   ];
 
   # gdk-pixbuf-thumbnailer is not wrapped therefore strictDeps will work
diff --git a/pkgs/development/libraries/geoclue/default.nix b/pkgs/development/libraries/geoclue/default.nix
index df58e5dc9e193..3c6a40eeb5cb4 100644
--- a/pkgs/development/libraries/geoclue/default.nix
+++ b/pkgs/development/libraries/geoclue/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitLab
-, fetchpatch
 , intltool
 , meson
 , mesonEmulatorHook
diff --git a/pkgs/development/libraries/geos/3.11.nix b/pkgs/development/libraries/geos/3.11.nix
index 90bdfdb0d6058..dd18855508d13 100644
--- a/pkgs/development/libraries/geos/3.11.nix
+++ b/pkgs/development/libraries/geos/3.11.nix
@@ -29,6 +29,11 @@ stdenv.mkDerivation (finalAttrs: {
 
   nativeBuildInputs = [ cmake ];
 
+  # https://github.com/libgeos/geos/issues/930
+  cmakeFlags = lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
+    "-DCMAKE_CTEST_ARGUMENTS=--exclude-regex;unit-geom-Envelope"
+  ];
+
   doCheck = true;
 
   passthru.tests = {
diff --git a/pkgs/development/libraries/gettext/default.nix b/pkgs/development/libraries/gettext/default.nix
index 8f0b277a73c4c..7a0d7a3ee667b 100644
--- a/pkgs/development/libraries/gettext/default.nix
+++ b/pkgs/development/libraries/gettext/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, libiconv, xz, bash
+{ stdenv, lib, fetchurl, libiconv, bash, updateAutotoolsGnuConfigScriptsHook
 }:
 
 # Note: this package is used for bootstrapping fetchurl, and thus
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   LDFLAGS = lib.optionalString stdenv.isSunOS "-lm -lmd -lmp -luutil -lnvpair -lnsl -lidmap -lavl -lsec";
 
   configureFlags = [
-     "--disable-csharp" "--with-xz"
+     "--disable-csharp"
   ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
     # On cross building, gettext supposes that the wchar.h from libc
     # does not fulfill gettext needs, so it tries to work with its
@@ -51,8 +51,7 @@ stdenv.mkDerivation rec {
 
   strictDeps = true;
   nativeBuildInputs = [
-    xz
-    xz.bin
+    updateAutotoolsGnuConfigScriptsHook
   ];
   buildInputs = lib.optionals (!stdenv.hostPlatform.isMinGW) [
     bash
diff --git a/pkgs/development/libraries/giflib/default.nix b/pkgs/development/libraries/giflib/default.nix
index 677db06e5083c..5e60b3d9a57b6 100644
--- a/pkgs/development/libraries/giflib/default.nix
+++ b/pkgs/development/libraries/giflib/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchurl
-, fetchpatch
 , fixDarwinDylibNames
 , pkgsStatic
 }:
diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix
index feef4630afd8c..a60ba9fae6bfd 100644
--- a/pkgs/development/libraries/glib/default.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -2,6 +2,7 @@
 , lib
 , stdenv
 , fetchurl
+, fetchpatch
 , gettext
 , meson
 , ninja
@@ -73,6 +74,15 @@ stdenv.mkDerivation (finalAttrs: {
     ./quark_init_on_demand.patch
     ./gobject_init_on_demand.patch
   ] ++ [
+    # Fix double-free & segfault issues on menu and dbus connection action group export failures
+    # https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4073
+    # Remove when version > 2.80.2
+    (fetchpatch {
+      name = "GLib-Fix-memory-problems-on-gmenuexporter-and-gactiongroupexporter-error-paths.patch";
+      url = "https://gitlab.gnome.org/GNOME/glib/-/commit/b9490a499a004618c883f180b1081a166ff1a86b.patch";
+      hash = "sha256-c6uZ9NEhg26/2RdgjQ4s5ErCDm5HH6T/tfJXTwh/H6o=";
+    })
+
     # This patch lets GLib's GDesktopAppInfo API watch and notice changes
     # to the Nix user and system profiles.  That way, the list of available
     # applications shown by the desktop environment is immediately updated
@@ -269,14 +279,6 @@ stdenv.mkDerivation (finalAttrs: {
     ln -s $PWD/glib/libglib-${librarySuffix} $out/lib/libglib-${librarySuffix}
   '';
 
-  checkPhase = ''
-    runHook preCheck
-
-    meson test --print-errorlogs
-
-    runHook postCheck
-  '';
-
   postCheck = ''
     rm $out/lib/libgobject-${librarySuffix}
     rm $out/lib/libgio-${librarySuffix}
diff --git a/pkgs/development/libraries/globalarrays/default.nix b/pkgs/development/libraries/globalarrays/default.nix
index f7bc072f1757d..ee7876e548d40 100644
--- a/pkgs/development/libraries/globalarrays/default.nix
+++ b/pkgs/development/libraries/globalarrays/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchpatch, fetchFromGitHub, autoreconfHook
+{ lib, stdenv, fetchFromGitHub, autoreconfHook
 , blas, gfortran, openssh, mpi
 } :
 
diff --git a/pkgs/development/libraries/gnome-online-accounts/default.nix b/pkgs/development/libraries/gnome-online-accounts/default.nix
index 740f7d94f1d99..43ce34ec2ed4f 100644
--- a/pkgs/development/libraries/gnome-online-accounts/default.nix
+++ b/pkgs/development/libraries/gnome-online-accounts/default.nix
@@ -31,13 +31,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-online-accounts";
-  version = "3.50.1";
+  version = "3.50.2";
 
   outputs = [ "out" "dev" ] ++ lib.optionals enableBackend [ "man" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-online-accounts/${lib.versions.majorMinor finalAttrs.version}/gnome-online-accounts-${finalAttrs.version}.tar.xz";
-    hash = "sha256-Qu5D/R4pQrn/YQYlLM3INGAoFVCL96OlLAvf/6Vur0A=";
+    hash = "sha256-3xatl10TnGv8TrsuyLuDJyl6eR7yvwuXfHgHavX6qY4=";
   };
 
   mesonFlags = [
diff --git a/pkgs/development/libraries/gstreamer/bad/default.nix b/pkgs/development/libraries/gstreamer/bad/default.nix
index b94769af76f44..91639c441b481 100644
--- a/pkgs/development/libraries/gstreamer/bad/default.nix
+++ b/pkgs/development/libraries/gstreamer/bad/default.nix
@@ -112,13 +112,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-plugins-bad";
-  version = "1.24.2";
+  version = "1.24.3";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-RI4yeHvIK1hsbLL4HJqO9AT+pPd/JVZv4G5Zej9ZE2s=";
+    hash = "sha256-6Q8mx9ycdvSqWZt1jP1tjBDWoLnLJluiw8m984iFWPg=";
   };
 
   patches = [
@@ -140,7 +140,7 @@ stdenv.mkDerivation rec {
     gobject-introspection
   ] ++ lib.optionals enableDocumentation [
     hotdoc
-  ] ++ lib.optionals stdenv.isLinux [
+  ] ++ lib.optionals (gst-plugins-base.waylandEnabled && stdenv.isLinux) [
     wayland # for wayland-scanner
   ];
 
@@ -211,7 +211,7 @@ stdenv.mkDerivation rec {
     bluez
   ] ++ lib.optionals microdnsSupport [
     libmicrodns
-  ] ++ lib.optionals stdenv.isLinux [
+  ] ++ lib.optionals (gst-plugins-base.waylandEnabled && stdenv.isLinux) [
     libva # vaapi requires libva -> libdrm -> libpciaccess, which is Linux-only in nixpkgs
     wayland
     wayland-protocols
@@ -305,6 +305,7 @@ stdenv.mkDerivation rec {
   ++ lib.optionals (!stdenv.isLinux) [
     "-Ddoc=disabled" # needs gstcuda to be enabled which is Linux-only
     "-Dnvcodec=disabled" # Linux-only
+  ] ++ lib.optionals (!stdenv.isLinux || !gst-plugins-base.waylandEnabled) [
     "-Dva=disabled" # see comment on `libva` in `buildInputs`
   ] ++ lib.optionals (!stdenv.isLinux || !guiSupport) [
     "-Ddirectfb=disabled"
@@ -322,8 +323,8 @@ stdenv.mkDerivation rec {
     "-Duvch264=disabled" # requires gudev
     "-Dv4l2codecs=disabled" # requires gudev
     "-Dladspa=disabled" # requires lrdf
-  ] ++ lib.optionals (!stdenv.isLinux || !stdenv.isx86_64) [
-    "-Dqsv=disabled" # Linux (and Windows) x86 only
+  ] ++ lib.optionals (!stdenv.isLinux || !stdenv.isx86_64 || !gst-plugins-base.waylandEnabled) [
+    "-Dqsv=disabled" # Linux (and Windows) x86 only, makes va required
   ] ++ lib.optionals (!gst-plugins-base.glEnabled) [
     "-Dgl=disabled"
   ] ++ lib.optionals (!gst-plugins-base.waylandEnabled || !guiSupport) [
diff --git a/pkgs/development/libraries/gstreamer/base/default.nix b/pkgs/development/libraries/gstreamer/base/default.nix
index 72dbef5c6dee0..f48fe22f50001 100644
--- a/pkgs/development/libraries/gstreamer/base/default.nix
+++ b/pkgs/development/libraries/gstreamer/base/default.nix
@@ -46,7 +46,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gst-plugins-base";
-  version = "1.24.2";
+  version = "1.24.3";
 
   outputs = [ "out" "dev" ];
 
@@ -54,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
     inherit (finalAttrs) pname version;
   in fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-KC8cyAZcm2Lragog+56DKPjlKW3yRYtyNtqnKcQa52k=";
+    hash = "sha256-8QlDl+qnky8G5X67sHWqM6osduS3VjChawLI1K9Ggy4=";
   };
 
   strictDeps = true;
diff --git a/pkgs/development/libraries/gstreamer/core/default.nix b/pkgs/development/libraries/gstreamer/core/default.nix
index eb9231155b80a..3136b6f886755 100644
--- a/pkgs/development/libraries/gstreamer/core/default.nix
+++ b/pkgs/development/libraries/gstreamer/core/default.nix
@@ -25,7 +25,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gstreamer";
-  version = "1.24.2";
+  version = "1.24.3";
 
   outputs = [
     "bin"
@@ -37,7 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
     inherit (finalAttrs) pname version;
   in fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-nK/dI70YDxaBxWzTpoeahJfM8k2m9CKmtvNW+gdKhIE=";
+    hash = "sha256-EiXvSjKfrhytxexyfaskmtVn6AcoeUk1Yc65HtNKpBQ=";
   };
 
   depsBuildBuild = [
diff --git a/pkgs/development/libraries/gstreamer/devtools/default.nix b/pkgs/development/libraries/gstreamer/devtools/default.nix
index 5b1d4c8618cea..44a79bb2c998d 100644
--- a/pkgs/development/libraries/gstreamer/devtools/default.nix
+++ b/pkgs/development/libraries/gstreamer/devtools/default.nix
@@ -17,11 +17,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-devtools";
-  version = "1.24.2";
+  version = "1.24.3";
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-/dfDDBqhuweADdmKUeVSEQZWGYNeSIn1yS/oI7hs2PQ=";
+    hash = "sha256-uREUov2Vj0Ks9EEYbofivsk1OO81qfgkgREZc2D/sjc=";
   };
 
   outputs = [
diff --git a/pkgs/development/libraries/gstreamer/ges/default.nix b/pkgs/development/libraries/gstreamer/ges/default.nix
index 0838dec0fdb06..79ece373b57d0 100644
--- a/pkgs/development/libraries/gstreamer/ges/default.nix
+++ b/pkgs/development/libraries/gstreamer/ges/default.nix
@@ -18,7 +18,7 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-editing-services";
-  version = "1.24.2";
+  version = "1.24.3";
 
   outputs = [
     "out"
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-cgF3jqXZN0QMU9dDndEqpaxoQGiK8fBJmFInUHS5kHM=";
+    hash = "sha256-z3QyFWiLATkFzSyff+3aIeLTTIRDQJkMbqJdEKA3KT8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/gstreamer/good/default.nix b/pkgs/development/libraries/gstreamer/good/default.nix
index 1cf3fef79f08a..bd301e7b45c22 100644
--- a/pkgs/development/libraries/gstreamer/good/default.nix
+++ b/pkgs/development/libraries/gstreamer/good/default.nix
@@ -58,13 +58,13 @@ assert raspiCameraSupport -> (stdenv.isLinux && stdenv.isAarch32);
 
 stdenv.mkDerivation rec {
   pname = "gst-plugins-good";
-  version = "1.24.2";
+  version = "1.24.3";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-bjR8ctS4sohtiQ/+n2dnqe2wLyAViOjDpXLc0I2YUr0=";
+    hash = "sha256-FQ+RTmHcBWALaLiMoQPHzCJxMBWOOJ6p6hWfQFCi67A=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/gstreamer/libav/default.nix b/pkgs/development/libraries/gstreamer/libav/default.nix
index 35d0b461d9bc9..872627009e215 100644
--- a/pkgs/development/libraries/gstreamer/libav/default.nix
+++ b/pkgs/development/libraries/gstreamer/libav/default.nix
@@ -18,11 +18,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-libav";
-  version = "1.24.2";
+  version = "1.24.3";
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-lig4ZI4Uzop4Miqxb4TH2E2Gpte+u2V0rAXeqEp8fJs=";
+    hash = "sha256-2cWxUkaKRcH6g1FBBCIJCnGScHrXTS4aQ2f1JU4YjZE=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/gstreamer/rs/default.nix b/pkgs/development/libraries/gstreamer/rs/default.nix
index d1f1259635fa9..d4afb8ce7618a 100644
--- a/pkgs/development/libraries/gstreamer/rs/default.nix
+++ b/pkgs/development/libraries/gstreamer/rs/default.nix
@@ -29,6 +29,7 @@
 , nix-update-script
 # specifies a limited subset of plugins to build (the default `null` means all plugins supported on the stdenv platform)
 , plugins ? null
+, withGtkPlugins ? true
 # Checks meson.is_cross_build(), so even canExecute isn't enough.
 , enableDocumentation ? stdenv.hostPlatform == stdenv.buildPlatform && plugins == null
 , hotdoc
@@ -114,7 +115,7 @@ let
       "reqwest" # tests hang on darwin
       "threadshare" # tests cannot bind to localhost on darwin
       "webp" # not supported on darwin (upstream crate issue)
-    ] ++ lib.optionals (!gst-plugins-base.glEnabled) [
+    ] ++ lib.optionals (!gst-plugins-base.glEnabled || !withGtkPlugins) [
       # these require gstreamer-gl
       "gtk4"
       "livesync"
diff --git a/pkgs/development/libraries/gstreamer/rtsp-server/default.nix b/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
index cb848efca39f9..db56d895f7876 100644
--- a/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
+++ b/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-rtsp-server";
-  version = "1.24.2";
+  version = "1.24.3";
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-5MhKeGdefv7zsm6cueLkJzGEIbStnuS1E2767rtrugw=";
+    hash = "sha256-YmKOzKeLj1tRxZpNYCxl6SBf/FDDyDzWH6sfY0i2NWU=";
   };
 
   outputs = [
diff --git a/pkgs/development/libraries/gstreamer/ugly/default.nix b/pkgs/development/libraries/gstreamer/ugly/default.nix
index 40b6e169c225a..0b39bad01020b 100644
--- a/pkgs/development/libraries/gstreamer/ugly/default.nix
+++ b/pkgs/development/libraries/gstreamer/ugly/default.nix
@@ -25,13 +25,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-plugins-ugly";
-  version = "1.24.2";
+  version = "1.24.3";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-RdqYvxBAyUcv1Z9icSgt4lo3IauFt4qq+BBJSVUPvvU=";
+    hash = "sha256-TJUTQcTGSGMLb+EjTsET2B3S0khSm/K1R44K0HfIDtM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/gstreamer/vaapi/default.nix b/pkgs/development/libraries/gstreamer/vaapi/default.nix
index a5cd9cace4e74..cdad2eaf232d9 100644
--- a/pkgs/development/libraries/gstreamer/vaapi/default.nix
+++ b/pkgs/development/libraries/gstreamer/vaapi/default.nix
@@ -24,11 +24,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gstreamer-vaapi";
-  version = "1.24.2";
+  version = "1.24.3";
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-zFq4yIRD4PW/I9YRC0qsM99Z5K5ib1NtlosWBcx7li8=";
+    hash = "sha256-hF8u/g3KjasjTd6PsJHaLNBqnSpoNCK1bctoiVT5Bw4=";
   };
 
   outputs = [
diff --git a/pkgs/development/libraries/gtk/3.x.nix b/pkgs/development/libraries/gtk/3.x.nix
index b2b156051bf89..5664332898e1f 100644
--- a/pkgs/development/libraries/gtk/3.x.nix
+++ b/pkgs/development/libraries/gtk/3.x.nix
@@ -64,7 +64,7 @@ in
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gtk+3";
-  version = "3.24.41";
+  version = "3.24.42";
 
   outputs = [ "out" "dev" ] ++ lib.optional withIntrospection "devdoc";
   outputBin = "dev";
@@ -78,7 +78,7 @@ stdenv.mkDerivation (finalAttrs: {
     inherit (finalAttrs) version;
   in fetchurl {
     url = "mirror://gnome/sources/gtk+/${lib.versions.majorMinor version}/gtk+-${version}.tar.xz";
-    sha256 = "sha256-R9phSHrzCHqUvEkpb9AlygvAL5bvBsVW58iYi9ZRtvo=";
+    sha256 = "sha256-UPifYVCS1N0Bu9dZcZ+L04Dl8Un2/XipRyXi3hEjd+I=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/gtk/4.x.nix b/pkgs/development/libraries/gtk/4.x.nix
index 34a5582ffa676..7d0417beb8c5b 100644
--- a/pkgs/development/libraries/gtk/4.x.nix
+++ b/pkgs/development/libraries/gtk/4.x.nix
@@ -70,7 +70,7 @@ in
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gtk4";
-  version = "4.14.3";
+  version = "4.14.4";
 
   outputs = [ "out" "dev" ] ++ lib.optionals x11Support [ "devdoc" ];
   outputBin = "dev";
@@ -82,7 +82,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   src = fetchurl {
     url = with finalAttrs; "mirror://gnome/sources/gtk/${lib.versions.majorMinor version}/gtk-${version}.tar.xz";
-    hash = "sha256-K+XIWL3vEQTTeEjJd5wIk3LI0xUD9u/EuU5TtUb8mkM=";
+    hash = "sha256-RDUYuX6DSPn2QwrENbEBD5psUgf03Gp81dJOOCDO5jM=";
   };
 
   depsBuildBuild = [
diff --git a/pkgs/development/libraries/gvfs/default.nix b/pkgs/development/libraries/gvfs/default.nix
index aba944becf763..d60f95c548391 100644
--- a/pkgs/development/libraries/gvfs/default.nix
+++ b/pkgs/development/libraries/gvfs/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchurl
-, fetchpatch2
 , meson
 , ninja
 , pkg-config
@@ -46,13 +45,13 @@
 , gsettings-desktop-schemas
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gvfs";
-  version = "1.54.0";
+  version = "1.54.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gvfs/${lib.versions.majorMinor version}/gvfs-${version}.tar.xz";
-    hash = "sha256-9T2B34bC6GzdJRgsLYpmmiI3HoNiPe0bnVQW3Pxt42Y=";
+    url = "mirror://gnome/sources/gvfs/${lib.versions.majorMinor finalAttrs.version}/gvfs-${finalAttrs.version}.tar.xz";
+    hash = "sha256-rEo7zLf+FQIVjvD95cl5q0RxJVfQKKjk8wop8PvZ0Z8=";
   };
 
   patches = [
@@ -138,13 +137,13 @@ stdenv.mkDerivation rec {
   ];
 
   doCheck = false; # fails with "ModuleNotFoundError: No module named 'gi'"
-  doInstallCheck = doCheck;
+  doInstallCheck = finalAttrs.doCheck;
 
   separateDebugInfo = true;
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = "gvfs";
       versionPolicy = "odd-unstable";
     };
   };
@@ -155,4 +154,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     maintainers = teams.gnome.members;
   };
-}
+})
diff --git a/pkgs/development/libraries/hpp-fcl/default.nix b/pkgs/development/libraries/hpp-fcl/default.nix
index 59bf04f726091..64a4d08832369 100644
--- a/pkgs/development/libraries/hpp-fcl/default.nix
+++ b/pkgs/development/libraries/hpp-fcl/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , doxygen
 , boost
diff --git a/pkgs/development/libraries/java/commons/fileupload/default.nix b/pkgs/development/libraries/java/commons/fileupload/default.nix
index 40c66909213e1..6c9235117355a 100644
--- a/pkgs/development/libraries/java/commons/fileupload/default.nix
+++ b/pkgs/development/libraries/java/commons/fileupload/default.nix
@@ -1,12 +1,12 @@
 {lib, stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  version = "1.4";
+  version = "1.5";
   pname = "commons-fileupload";
 
   src = fetchurl {
     url    = "mirror://apache/commons/fileupload/binaries/${pname}-${version}-bin.tar.gz";
-    sha256 = "1avfv4gljp7flra767yzas54vfb6az9s1nhxfjv48jj2x0llxxkx";
+    sha256 = "sha256-r7EGiih4qOCbjaL7Wg+plbe0m3CuFWXs/RmbfGLmj1g=";
   };
   installPhase = ''
     tar xf ${src}
diff --git a/pkgs/development/libraries/jemalloc/default.nix b/pkgs/development/libraries/jemalloc/default.nix
index 902c0d77739c2..7541e6b0c1a31 100644
--- a/pkgs/development/libraries/jemalloc/default.nix
+++ b/pkgs/development/libraries/jemalloc/default.nix
@@ -26,6 +26,12 @@ stdenv.mkDerivation rec {
       url = "https://github.com/jemalloc/jemalloc/commit/d00ecee6a8dfa90afcb1bbc0858985c17bef6559.patch";
       hash = "sha256-N5i4IxGJ4SSAgFiq5oGRnrNeegdk2flw9Sh2mP0yl4c=";
     })
+    # fix linking with libc++, can be removed in the next update (after 5.3.0).
+    # https://github.com/jemalloc/jemalloc/pull/2348
+    (fetchpatch {
+      url = "https://github.com/jemalloc/jemalloc/commit/4422f88d17404944a312825a1aec96cd9dc6c165.patch";
+      hash = "sha256-dunkE7XHzltn5bOb/rSHqzpRniAFuGubBStJeCxh0xo=";
+    })
   ];
 
   configureFlags =
diff --git a/pkgs/development/libraries/jose/default.nix b/pkgs/development/libraries/jose/default.nix
index 967886ae86c6d..39e10e2dbebd4 100644
--- a/pkgs/development/libraries/jose/default.nix
+++ b/pkgs/development/libraries/jose/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "jose";
-  version = "13";
+  version = "14";
 
   src = fetchFromGitHub {
     owner = "latchset";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-XkYvBjPmwhwo2p8/jTXazHRAgSGkI7LTLUlqbxMxlys=";
+    hash = "sha256-rMNPJaCtVpbwIkMQzBNpmRct6S/NelTwjmsuB0RP6R8=";
   };
 
   nativeBuildInputs = [ meson pkg-config ninja asciidoc ];
diff --git a/pkgs/development/libraries/kde-frameworks/baloo.nix b/pkgs/development/libraries/kde-frameworks/baloo.nix
index 2a264d47c24c9..c7a813058454c 100644
--- a/pkgs/development/libraries/kde-frameworks/baloo.nix
+++ b/pkgs/development/libraries/kde-frameworks/baloo.nix
@@ -1,6 +1,5 @@
 { mkDerivation
 , lib
-, fetchpatch
 , extra-cmake-modules
 , kauth
 , kconfig
diff --git a/pkgs/development/libraries/kde-frameworks/knewstuff/default.nix b/pkgs/development/libraries/kde-frameworks/knewstuff/default.nix
index 6e554b5faaadf..0e1633b2f1c12 100644
--- a/pkgs/development/libraries/kde-frameworks/knewstuff/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/knewstuff/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, fetchpatch,
+  mkDerivation,
   extra-cmake-modules,
   attica, karchive, kcompletion, kconfig, kcoreaddons, ki18n, kiconthemes,
   kio, kitemviews, kpackage, kservice, ktextwidgets, kwidgetsaddons, kxmlgui, qtbase,
diff --git a/pkgs/development/libraries/kde-frameworks/krunner.nix b/pkgs/development/libraries/kde-frameworks/krunner.nix
index a56e56a2fe092..1ed8619a2fa27 100644
--- a/pkgs/development/libraries/kde-frameworks/krunner.nix
+++ b/pkgs/development/libraries/kde-frameworks/krunner.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, fetchpatch,
+  mkDerivation,
   extra-cmake-modules,
   kconfig, kcoreaddons, ki18n, kio, kservice, plasma-framework, qtbase,
   qtdeclarative, solid, threadweaver, kwindowsystem
diff --git a/pkgs/development/libraries/kde-frameworks/purpose.nix b/pkgs/development/libraries/kde-frameworks/purpose.nix
index ee4e9584641c1..cdc8d4d32d23f 100644
--- a/pkgs/development/libraries/kde-frameworks/purpose.nix
+++ b/pkgs/development/libraries/kde-frameworks/purpose.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, extra-cmake-modules, intltool, qtbase
 , accounts-qt, qtdeclarative, kaccounts-integration, kconfig, kcoreaddons, ki18n, kio, kirigami2
-, fetchpatch, signond
+, signond
 }:
 
 mkDerivation {
diff --git a/pkgs/development/libraries/kerberos/krb5.nix b/pkgs/development/libraries/kerberos/krb5.nix
index 9f3fbdbf7eb04..8dd68af4fd1d5 100644
--- a/pkgs/development/libraries/kerberos/krb5.nix
+++ b/pkgs/development/libraries/kerberos/krb5.nix
@@ -74,6 +74,11 @@ stdenv.mkDerivation rec {
   postPatch = ''
     substituteInPlace config/shlib.conf \
         --replace "'ld " "'${stdenv.cc.targetPrefix}ld "
+  ''
+  # this could be accomplished by updateAutotoolsGnuConfigScriptsHook, but that causes infinite recursion
+  # necessary for FreeBSD code path in configure
+  + ''
+    substituteInPlace ./config/config.guess --replace-fail /usr/bin/uname uname
   '';
 
   libFolders = [ "util" "include" "lib" "build-tools" ];
diff --git a/pkgs/development/libraries/ldb/default.nix b/pkgs/development/libraries/ldb/default.nix
index cdcf21edd799c..3a1a8a8ebf1dc 100644
--- a/pkgs/development/libraries/ldb/default.nix
+++ b/pkgs/development/libraries/ldb/default.nix
@@ -12,6 +12,7 @@
 , docbook_xml_dtd_42
 , cmocka
 , wafHook
+, buildPackages
 , libxcrypt
 , testers
 }:
@@ -62,6 +63,9 @@ stdenv.mkDerivation (finalAttrs: {
     "--bundled-libraries=NONE"
     "--builtin-libraries=replace"
     "--without-ldb-lmdb"
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "--cross-compile"
+    "--cross-execute=${stdenv.hostPlatform.emulator buildPackages}"
   ];
 
   # python-config from build Python gives incorrect values when cross-compiling.
diff --git a/pkgs/development/libraries/level-zero/default.nix b/pkgs/development/libraries/level-zero/default.nix
index a098a0ea5b6b3..c59822a32308c 100644
--- a/pkgs/development/libraries/level-zero/default.nix
+++ b/pkgs/development/libraries/level-zero/default.nix
@@ -3,6 +3,8 @@
 , cmake
 , fetchFromGitHub
 , fmt_9
+, intel-compute-runtime
+, openvino
 , spdlog
 , stdenv
 , substituteAll
@@ -10,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "level-zero";
-  version = "1.16.15";
+  version = "1.17.2";
 
   src = fetchFromGitHub {
     owner = "oneapi-src";
     repo = "level-zero";
     rev = "refs/tags/v${version}";
-    hash = "sha256-J+XIqaV1ThD0RqqcyIkzvTWCkIztjkHzGzUbj0qojJs=";
+    hash = "sha256-ha/xpp+scLau+cTIyixwo8TgAJrb2DVboGDPWibxb08=";
   };
 
   patches = [
@@ -34,6 +36,10 @@ stdenv.mkDerivation rec {
     addOpenGLRunpath $out/lib/libze_loader.so
   '';
 
+  passthru.tests = {
+    inherit intel-compute-runtime openvino;
+  };
+
   meta = with lib; {
     description = "oneAPI Level Zero Specification Headers and Loader";
     homepage = "https://github.com/oneapi-src/level-zero";
diff --git a/pkgs/development/libraries/libadwaita/default.nix b/pkgs/development/libraries/libadwaita/default.nix
index 1301f9fe923d9..7f7f93c37949d 100644
--- a/pkgs/development/libraries/libadwaita/default.nix
+++ b/pkgs/development/libraries/libadwaita/default.nix
@@ -22,7 +22,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libadwaita";
-  version = "1.5.0";
+  version = "1.5.1";
 
   outputs = [ "out" "dev" "devdoc" ];
   outputBin = "devdoc"; # demo app
@@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "GNOME";
     repo = "libadwaita";
     rev = finalAttrs.version;
-    hash = "sha256-uEaBI2jHlMdVprMGRZe/8HszO3nEBUJaJtvJjrMOjE4=";
+    hash = "sha256-dH0VPIt6SGTDcb1I72cKnNlyqZ3dptvKmMDjOd17BfA=";
   };
 
   depsBuildBuild = [
diff --git a/pkgs/development/libraries/libbladeRF/default.nix b/pkgs/development/libraries/libbladeRF/default.nix
index ce570b76bc082..158493b80e905 100644
--- a/pkgs/development/libraries/libbladeRF/default.nix
+++ b/pkgs/development/libraries/libbladeRF/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch, pkg-config, cmake, git, doxygen, help2man, ncurses, tecla
+{ stdenv, lib, fetchFromGitHub, pkg-config, cmake, git, doxygen, help2man, ncurses, tecla
 , libusb1, udev }:
 
 stdenv.mkDerivation rec {
diff --git a/pkgs/development/libraries/libbluray/default.nix b/pkgs/development/libraries/libbluray/default.nix
index 552259ce3babe..f50172851d618 100644
--- a/pkgs/development/libraries/libbluray/default.nix
+++ b/pkgs/development/libraries/libbluray/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, pkg-config, fontconfig, autoreconfHook, DiskArbitration
+{ lib, stdenv, fetchurl, pkg-config, fontconfig, autoreconfHook, DiskArbitration
 , withJava ? false, jdk17, ant, stripJavaArchivesHook
 , withAACS ? false, libaacs
 , withBDplus ? false, libbdplus
diff --git a/pkgs/development/libraries/libcdr/default.nix b/pkgs/development/libraries/libcdr/default.nix
index 64695aaa55d72..bf08acf001288 100644
--- a/pkgs/development/libraries/libcdr/default.nix
+++ b/pkgs/development/libraries/libcdr/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, libwpg, libwpd, lcms, pkg-config, librevenge, icu, boost, cppunit }:
+{ lib, stdenv, fetchurl, libwpg, libwpd, lcms, pkg-config, librevenge, icu, boost, cppunit }:
 
 stdenv.mkDerivation rec {
   pname = "libcdr";
diff --git a/pkgs/development/libraries/libcxxrt/default.nix b/pkgs/development/libraries/libcxxrt/default.nix
index b9c3f82558a45..1858ca1e97e92 100644
--- a/pkgs/development/libraries/libcxxrt/default.nix
+++ b/pkgs/development/libraries/libcxxrt/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation {
   pname = "libcxxrt";
-  version = "4.0.10-unstable-2024-04-15";
+  version = "4.0.10-unstable-2024-05-26";
 
   src = fetchFromGitHub {
     owner = "libcxxrt";
     repo = "libcxxrt";
-    rev = "25541e312f7094e9c90895000d435af520d42418";
-    sha256 = "d5uhtlO+28uc2Xnf5trXsy43jgmzBHs2jZhCK57qRM4=";
+    rev = "c62fe9963148f283b2fbb7eb9888785cfb16d77c";
+    sha256 = "XxXH6pE2v6WTh1ATJ7Fgd3SFw49L44YchtMlPKX4kYw=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/libdigidocpp/default.nix b/pkgs/development/libraries/libdigidocpp/default.nix
index 7f706a220afcf..d957d2d05d0d2 100644
--- a/pkgs/development/libraries/libdigidocpp/default.nix
+++ b/pkgs/development/libraries/libdigidocpp/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, cmake, minizip, pcsclite, opensc, openssl
+{ lib, stdenv, fetchurl, cmake, minizip, pcsclite, opensc, openssl
 , xercesc, xml-security-c, pkg-config, xsd, zlib, xalanc, xxd }:
 
 stdenv.mkDerivation rec {
diff --git a/pkgs/development/libraries/libev/default.nix b/pkgs/development/libraries/libev/default.nix
index 750cb3974cf75..aa9f078d42b09 100644
--- a/pkgs/development/libraries/libev/default.nix
+++ b/pkgs/development/libraries/libev/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl
+{ lib, stdenv, fetchurl, updateAutotoolsGnuConfigScriptsHook
 , # Note: -static hasn’t work on darwin
   static ? with stdenv.hostPlatform; isStatic && !isDarwin
 }:
@@ -17,6 +17,8 @@ stdenv.mkDerivation rec {
     sha256 = "1sjs4324is7fp21an4aas2z4dwsvs6z4xwrmp72vwpq1s6wbfzjh";
   };
 
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
+
   configureFlags = lib.optional (static) "LDFLAGS=-static";
 
   meta = {
diff --git a/pkgs/development/libraries/libevdev/default.nix b/pkgs/development/libraries/libevdev/default.nix
index c8db600dce810..34af29955abbf 100644
--- a/pkgs/development/libraries/libevdev/default.nix
+++ b/pkgs/development/libraries/libevdev/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, python3 }:
+{ lib, stdenv, fetchurl, python3 }:
 
 stdenv.mkDerivation rec {
   pname = "libevdev";
diff --git a/pkgs/development/libraries/libewf/default.nix b/pkgs/development/libraries/libewf/default.nix
index dffacc7d276c7..6c149b0186ee2 100644
--- a/pkgs/development/libraries/libewf/default.nix
+++ b/pkgs/development/libraries/libewf/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, fetchpatch, lib, stdenv, zlib, openssl, libuuid, pkg-config, bzip2 }:
+{ fetchurl, lib, stdenv, zlib, openssl, libuuid, pkg-config, bzip2 }:
 
 stdenv.mkDerivation rec {
   version = "20231119";
diff --git a/pkgs/development/libraries/libfaketime/default.nix b/pkgs/development/libraries/libfaketime/default.nix
index f44702582f27a..2cb94d11fd670 100644
--- a/pkgs/development/libraries/libfaketime/default.nix
+++ b/pkgs/development/libraries/libfaketime/default.nix
@@ -18,6 +18,11 @@ stdenv.mkDerivation rec {
       url = "https://github.com/wolfcw/libfaketime/commit/e0e6b79568d36a8fd2b3c41f7214769221182128.patch";
       sha256 = "sha256-KwwP76v0DXNW73p/YBvwUOPdKMAcVdbQSKexD/uFOYo=";
     })
+    (fetchpatch {
+      name = "LFS64.patch";
+      url = "https://github.com/wolfcw/libfaketime/commit/f32986867addc9d22b0fab29c1c927f079d44ac1.patch";
+      hash = "sha256-fIXuxxcV9J2IcgwcwSrMo4maObkH9WYv1DC/wdtbq/g=";
+    })
   ] ++ (lib.optionals stdenv.cc.isClang [
     # https://github.com/wolfcw/libfaketime/issues/277
     ./0001-Remove-unsupported-clang-flags.patch
diff --git a/pkgs/development/libraries/libffi/3.3.nix b/pkgs/development/libraries/libffi/3.3.nix
index 294717d1fb1cd..76d1113eae19e 100644
--- a/pkgs/development/libraries/libffi/3.3.nix
+++ b/pkgs/development/libraries/libffi/3.3.nix
@@ -1,5 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch
-, autoreconfHook
+{ lib, stdenv, fetchurl
 
 , doCheck ? true # test suite depends on dejagnu which cannot be used during bootstrapping
 , dejagnu
diff --git a/pkgs/development/libraries/libffi/default.nix b/pkgs/development/libraries/libffi/default.nix
index edd16ec21506e..6028cf3f736d4 100644
--- a/pkgs/development/libraries/libffi/default.nix
+++ b/pkgs/development/libraries/libffi/default.nix
@@ -1,5 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch
-, autoreconfHook
+{ lib, stdenv, fetchurl
 
   # test suite depends on dejagnu which cannot be used during bootstrapping
   # dejagnu also requires tcl which can't be built statically at the moment
diff --git a/pkgs/development/libraries/libgdiplus/default.nix b/pkgs/development/libraries/libgdiplus/default.nix
index e71aedd2cbcfa..4d315b042ee99 100644
--- a/pkgs/development/libraries/libgdiplus/default.nix
+++ b/pkgs/development/libraries/libgdiplus/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchzip, pkg-config, glib, cairo, Carbon, fontconfig
 , libtiff, giflib, libjpeg, libpng
-, libXrender, libexif, autoreconfHook, fetchpatch }:
+, libXrender, libexif, autoreconfHook }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libgdiplus";
diff --git a/pkgs/development/libraries/libgeotiff/default.nix b/pkgs/development/libraries/libgeotiff/default.nix
index 9b160e6b29e89..021a7e3ad574d 100644
--- a/pkgs/development/libraries/libgeotiff/default.nix
+++ b/pkgs/development/libraries/libgeotiff/default.nix
@@ -10,14 +10,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.7.1";
+  version = "1.7.2";
   pname = "libgeotiff";
 
   src = fetchFromGitHub {
     owner = "OSGeo";
     repo = "libgeotiff";
     rev = version;
-    hash = "sha256-bE6UAUKiorriTgYrqhxbMAN2NEtmV/8IIfF02RUghSI=";
+    hash = "sha256-PXMbOC3I1yrFrFUek9BMxFT3YW9KxwP3+xZUHs7xm7Y=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/libgpg-error/default.nix b/pkgs/development/libraries/libgpg-error/default.nix
index 1d262a0a44023..15c83ffd4e983 100644
--- a/pkgs/development/libraries/libgpg-error/default.nix
+++ b/pkgs/development/libraries/libgpg-error/default.nix
@@ -17,11 +17,11 @@
   };
 in stdenv.mkDerivation (rec {
   pname = "libgpg-error";
-  version = "1.48";
+  version = "1.49";
 
   src = fetchurl {
     url = "mirror://gnupg/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-ic4a6JPhIpJLhY3oTcT2eq4p/6YQ6/Zo1apTkEVmPW8=";
+    sha256 = "sha256-i3nVRjnb9KvAi1QG+y835mmi3sCR3QJPuH3TZxMcY6k=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/libgtop/default.nix b/pkgs/development/libraries/libgtop/default.nix
index ae49384835909..b7ad5c8bd241c 100644
--- a/pkgs/development/libraries/libgtop/default.nix
+++ b/pkgs/development/libraries/libgtop/default.nix
@@ -10,15 +10,15 @@
 , deterministic-uname
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "libgtop";
-  version = "2.41.2";
+  version = "2.41.3";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-2QJs2KSNJ83/0zL41gqSdktWQk5SLEIM0ToB9A2vksM=";
+    url = "mirror://gnome/sources/libgtop/${lib.versions.majorMinor finalAttrs.version}/libgtop-${finalAttrs.version}.tar.xz";
+    hash = "sha256-d1Z235WOLqJFL3Vo8osupYEGPTEnc91cC3Ykwbmy2ow=";
   };
 
   nativeBuildInputs = [
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = "libgtop";
       versionPolicy = "odd-unstable";
     };
   };
@@ -48,4 +48,4 @@ stdenv.mkDerivation rec {
     maintainers = teams.gnome.members;
     platforms = platforms.unix;
   };
-}
+})
diff --git a/pkgs/development/libraries/libmd/default.nix b/pkgs/development/libraries/libmd/default.nix
index bf156fb1c55dd..867bd5dc9ba3e 100644
--- a/pkgs/development/libraries/libmd/default.nix
+++ b/pkgs/development/libraries/libmd/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, autoreconfHook }:
+{ lib, stdenv, fetchurl, autoreconfHook }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libmd";
diff --git a/pkgs/development/libraries/libopenshot-audio/default.nix b/pkgs/development/libraries/libopenshot-audio/default.nix
index bbec90a4055ae..005422295236e 100644
--- a/pkgs/development/libraries/libopenshot-audio/default.nix
+++ b/pkgs/development/libraries/libopenshot-audio/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , alsa-lib
 , cmake
 , doxygen
diff --git a/pkgs/development/libraries/libopus/default.nix b/pkgs/development/libraries/libopus/default.nix
index d247b8b0efa6c..a841d1cfa903d 100644
--- a/pkgs/development/libraries/libopus/default.nix
+++ b/pkgs/development/libraries/libopus/default.nix
@@ -1,6 +1,5 @@
 { lib
 , stdenv
-, fetchpatch
 , fetchurl
 , gitUpdater
 , meson
diff --git a/pkgs/development/libraries/libplacebo/default.nix b/pkgs/development/libraries/libplacebo/default.nix
index 558acc4bbbeb8..5759d9bed505b 100644
--- a/pkgs/development/libraries/libplacebo/default.nix
+++ b/pkgs/development/libraries/libplacebo/default.nix
@@ -15,6 +15,7 @@
 , libdovi
 , xxHash
 , fast-float
+, vulkanSupport ? true
 }:
 
 stdenv.mkDerivation rec {
@@ -33,13 +34,11 @@ stdenv.mkDerivation rec {
     meson
     ninja
     pkg-config
-    vulkan-headers
     python3Packages.jinja2
     python3Packages.glad2
   ];
 
   buildInputs = [
-    vulkan-loader
     shaderc
     lcms2
     libGL
@@ -47,15 +46,19 @@ stdenv.mkDerivation rec {
     libunwind
     libdovi
     xxHash
+    vulkan-headers
+  ] ++ lib.optionals vulkanSupport [
+    vulkan-loader
   ] ++ lib.optionals (!stdenv.cc.isGNU) [
     fast-float
   ];
 
   mesonFlags = with lib; [
-    (mesonOption "vulkan-registry" "${vulkan-headers}/share/vulkan/registry/vk.xml")
     (mesonBool "demos" false) # Don't build and install the demo programs
     (mesonEnable "d3d11" false) # Disable the Direct3D 11 based renderer
     (mesonEnable "glslang" false) # rely on shaderc for GLSL compilation instead
+    (mesonEnable "vk-proc-addr" vulkanSupport)
+    (mesonOption "vulkan-registry" "${vulkan-headers}/share/vulkan/registry/vk.xml")
   ] ++ optionals stdenv.isDarwin [
     (mesonEnable "unwind" false) # libplacebo doesn’t build with `darwin.libunwind`
   ];
diff --git a/pkgs/development/libraries/libraspberrypi/default.nix b/pkgs/development/libraries/libraspberrypi/default.nix
index 14f02d8481e95..bb7508b1cec5f 100644
--- a/pkgs/development/libraries/libraspberrypi/default.nix
+++ b/pkgs/development/libraries/libraspberrypi/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , pkg-config
 }:
diff --git a/pkgs/development/libraries/librsvg/default.nix b/pkgs/development/libraries/librsvg/default.nix
index a682b39bbcd80..b5f2ffd76b032 100644
--- a/pkgs/development/libraries/librsvg/default.nix
+++ b/pkgs/development/libraries/librsvg/default.nix
@@ -42,7 +42,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "librsvg";
-  version = "2.58.0";
+  version = "2.58.1";
 
   outputs = [ "out" "dev" ] ++ lib.optionals withIntrospection [
     "devdoc"
@@ -50,13 +50,13 @@ stdenv.mkDerivation (finalAttrs: {
 
   src = fetchurl {
     url = "mirror://gnome/sources/librsvg/${lib.versions.majorMinor finalAttrs.version}/librsvg-${finalAttrs.version}.tar.xz";
-    hash = "sha256-18REqSZAa1l5C+DerhluGO0mBZ2lc/oaqeycp2WKVZw=";
+    hash = "sha256-NyhZYpCoV20wXQbsiv30c1Fv7unf8i4DI16sQz1Wgk4=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit (finalAttrs) src;
     name = "librsvg-deps-${finalAttrs.version}";
-    hash = "sha256-ta+3KkDtqTLGoKknUn89c+3XHzvcZyPFPFpgLH5f5uw=";
+    hash = "sha256-FIW92Cr83YkGTOe/xjyZGZvHYSrG70GBpHc9l0sMjLg=";
     # TODO: move this to fetchCargoTarball
     dontConfigure = true;
   };
diff --git a/pkgs/development/libraries/libschrift/default.nix b/pkgs/development/libraries/libschrift/default.nix
index 443550e8a0a16..c1a7e1bc7703f 100644
--- a/pkgs/development/libraries/libschrift/default.nix
+++ b/pkgs/development/libraries/libschrift/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch }:
+{ lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "libschrift";
diff --git a/pkgs/development/libraries/libshumate/default.nix b/pkgs/development/libraries/libshumate/default.nix
index cc6723162a085..d0e6e95ad0c7b 100644
--- a/pkgs/development/libraries/libshumate/default.nix
+++ b/pkgs/development/libraries/libshumate/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch2
 , gi-docgen
 , meson
 , ninja
@@ -21,26 +20,18 @@
 , gnome
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "libshumate";
-  version = "1.2.1";
+  version = "1.2.2";
 
   outputs = [ "out" "dev" "devdoc" ];
   outputBin = "devdoc"; # demo app
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-EQXuB34hR/KgOc3fphb6XLlDiIPdlAQn4RaZ3NZUnBE=";
+    url = "mirror://gnome/sources/libshumate/${lib.versions.majorMinor finalAttrs.version}/libshumate-${finalAttrs.version}.tar.xz";
+    hash = "sha256-b1h1effy1gs40/RyfrGo0v6snL3AGOU/9fdyqGCPpEs=";
   };
 
-  patches = [
-    (fetchpatch2 {
-      # Fix tests https://gitlab.gnome.org/GNOME/libshumate/-/merge_requests/236
-      url = "https://gitlab.gnome.org/GNOME/libshumate/-/commit/852615b0df2252ea67f4f82e9ace2fc2794467b3.patch";
-      hash = "sha256-Ksye3zNNYmzP4O+QFDVODXUkFJOLDVMEZNfGXwbxWhs=";
-    })
-  ];
-
   depsBuildBuild = [
     # required to find native gi-docgen when cross compiling
     pkg-config
@@ -95,7 +86,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = "libshumate";
     };
   };
 
@@ -107,4 +98,4 @@ stdenv.mkDerivation rec {
     maintainers = teams.gnome.members;
     platforms = platforms.unix;
   };
-}
+})
diff --git a/pkgs/development/libraries/libssh2/default.nix b/pkgs/development/libraries/libssh2/default.nix
index f7a51da9fa672..653575c5563b2 100644
--- a/pkgs/development/libraries/libssh2/default.nix
+++ b/pkgs/development/libraries/libssh2/default.nix
@@ -15,6 +15,12 @@ stdenv.mkDerivation rec {
     ./CVE-2023-48795.patch
   ];
 
+  # this could be accomplished by updateAutotoolsGnuConfigScriptsHook, but that causes infinite recursion
+  # necessary for FreeBSD code path in configure
+  postPatch = ''
+    substituteInPlace ./config.guess --replace-fail /usr/bin/uname uname
+  '';
+
   outputs = [ "out" "dev" "devdoc" ];
 
   propagatedBuildInputs = [ openssl ]; # see Libs: in libssh2.pc
diff --git a/pkgs/development/libraries/libtiff/default.nix b/pkgs/development/libraries/libtiff/default.nix
index c8871a4ba68e8..f1e5c7da1803d 100644
--- a/pkgs/development/libraries/libtiff/default.nix
+++ b/pkgs/development/libraries/libtiff/default.nix
@@ -10,8 +10,10 @@
 , lerc
 , libdeflate
 , libjpeg
+, libwebp
 , xz
 , zlib
+, zstd
 
   # for passthru.tests
 , libgeotiff
@@ -62,14 +64,19 @@ stdenv.mkDerivation (finalAttrs: {
 
   buildInputs = [
     lerc
+    zstd
   ];
 
   # TODO: opengl support (bogus configure detection)
   propagatedBuildInputs = [
     libdeflate
     libjpeg
+    # libwebp depends on us; this will cause infinite
+    # recursion otherwise
+    (libwebp.override { tiffSupport = false; })
     xz
     zlib
+    zstd
   ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/libuninameslist/default.nix b/pkgs/development/libraries/libuninameslist/default.nix
index 3cbb78d83ce9b..1b8a4395ad2e9 100644
--- a/pkgs/development/libraries/libuninameslist/default.nix
+++ b/pkgs/development/libraries/libuninameslist/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libuninameslist";
-  version = "20230916";
+  version = "20240524";
 
   src = fetchFromGitHub {
     owner = "fontforge";
     repo = pname;
     rev = version;
-    sha256 = "sha256-8mLXTvi4KbU4NiCPaJINTeFbnTAabGDg8ufpSHSqy0Y=";
+    sha256 = "sha256-LANwM0fhCsscXAdI/qGOmUWDzAhe3g9w3J68g4szDZQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libunwind/default.nix b/pkgs/development/libraries/libunwind/default.nix
index 5144abc6dc5b6..d13cc33fae312 100644
--- a/pkgs/development/libraries/libunwind/default.nix
+++ b/pkgs/development/libraries/libunwind/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch, autoreconfHook, xz, buildPackages }:
+{ stdenv, lib, fetchFromGitHub, autoreconfHook, xz, buildPackages }:
 
 stdenv.mkDerivation rec {
   pname = "libunwind";
diff --git a/pkgs/development/libraries/libusb1/default.nix b/pkgs/development/libraries/libusb1/default.nix
index 9114fe5ec47f5..bd8561e0e8a3f 100644
--- a/pkgs/development/libraries/libusb1/default.nix
+++ b/pkgs/development/libraries/libusb1/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , autoreconfHook
 , doxygen
 , pkg-config
diff --git a/pkgs/development/libraries/libvncserver/default.nix b/pkgs/development/libraries/libvncserver/default.nix
index 4880c835a1eb3..84e0dba1dd252 100644
--- a/pkgs/development/libraries/libvncserver/default.nix
+++ b/pkgs/development/libraries/libvncserver/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , libjpeg
 , openssl
diff --git a/pkgs/development/libraries/libwpe/default.nix b/pkgs/development/libraries/libwpe/default.nix
index a29dd6b2627bb..c78ee91a20926 100644
--- a/pkgs/development/libraries/libwpe/default.nix
+++ b/pkgs/development/libraries/libwpe/default.nix
@@ -7,7 +7,6 @@
 , libGL
 , ninja
 , libX11
-, webkitgtk
 }:
 
 stdenv.mkDerivation rec {
@@ -35,7 +34,7 @@ stdenv.mkDerivation rec {
     description = "General-purpose library for WPE WebKit";
     license = licenses.bsd2;
     homepage = "https://wpewebkit.org";
-    maintainers = webkitgtk.meta.maintainers ++ (with maintainers; [ matthewbauer ]);
+    maintainers = with maintainers; [ matthewbauer ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/libwpe/fdo.nix b/pkgs/development/libraries/libwpe/fdo.nix
index 3e2fada38c327..d54d9706cbd18 100644
--- a/pkgs/development/libraries/libwpe/fdo.nix
+++ b/pkgs/development/libraries/libwpe/fdo.nix
@@ -11,7 +11,6 @@
 , libxkbcommon
 , libGL
 , libX11
-, webkitgtk
  }:
 
 stdenv.mkDerivation rec {
@@ -48,7 +47,7 @@ stdenv.mkDerivation rec {
     description = "Freedesktop.org backend for WPE WebKit";
     license = licenses.bsd2;
     homepage = "https://wpewebkit.org";
-    maintainers = webkitgtk.meta.maintainers ++ (with maintainers; [ matthewbauer ]);
+    maintainers = with maintainers; [ matthewbauer ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/libxcrypt/default.nix b/pkgs/development/libraries/libxcrypt/default.nix
index d71cb7027570a..efd3acb643fbe 100644
--- a/pkgs/development/libraries/libxcrypt/default.nix
+++ b/pkgs/development/libraries/libxcrypt/default.nix
@@ -15,6 +15,12 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-5eH0yu4KAd4q7ibjE4gH1tPKK45nKHlm0f79ZeH9iUM=";
   };
 
+  # this could be accomplished by updateAutotoolsGnuConfigScriptsHook, but that causes infinite recursion
+  # necessary for FreeBSD code path in configure
+  postPatch = ''
+    substituteInPlace ./build-aux/m4-autogen/config.guess --replace-fail /usr/bin/uname uname
+  '';
+
   outputs = [
     "out"
     "man"
diff --git a/pkgs/development/libraries/libxml2/default.nix b/pkgs/development/libraries/libxml2/default.nix
index d2e614b331a1a..79fe8c9f52dac 100644
--- a/pkgs/development/libraries/libxml2/default.nix
+++ b/pkgs/development/libraries/libxml2/default.nix
@@ -4,7 +4,6 @@
 , zlib
 , pkg-config
 , autoreconfHook
-, xz
 , libintl
 , python
 , gettext
@@ -37,6 +36,11 @@ stdenv.mkDerivation (finalAttrs: rec {
     hash = "sha256-JK54/xNjqXPm2L66lBp5RdoqwFbhm1OVautpJ/1s+1Y=";
   };
 
+  # https://gitlab.gnome.org/GNOME/libxml2/-/issues/725
+  postPatch = if stdenv.hostPlatform.isFreeBSD then ''
+    substituteInPlace ./configure.ac --replace-fail pthread_join pthread_create
+  '' else null;
+
   strictDeps = true;
 
   nativeBuildInputs = [
@@ -52,11 +56,6 @@ stdenv.mkDerivation (finalAttrs: rec {
     ncurses
   ] ++ lib.optionals (stdenv.isDarwin && pythonSupport && python?isPy2 && python.isPy2) [
     libintl
-  ] ++ lib.optionals stdenv.isFreeBSD [
-    # Libxml2 has an optional dependency on liblzma.  However, on impure
-    # platforms, it may end up using that from /usr/lib, and thus lack a
-    # RUNPATH for that, leading to undefined references for its users.
-    xz
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/libraries/lmdb/default.nix b/pkgs/development/libraries/lmdb/default.nix
index 8c65d02bf565b..7c907e9ef70f4 100644
--- a/pkgs/development/libraries/lmdb/default.nix
+++ b/pkgs/development/libraries/lmdb/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "lmdb";
-  version = "0.9.32";
+  version = "0.9.33";
 
   src = fetchFromGitLab {
     domain = "git.openldap.org";
     owner = "openldap";
     repo = "openldap";
     rev = "LMDB_${version}";
-    sha256 = "sha256-29ZrGIiGqrvX+WsPRs2V25hPmAJSHTHaGo19nMldsb8=";
+    sha256 = "sha256-5IBoJ3jaNXao5zVzb0LDM8RGid4s8DGQpjVqrVPLpXQ=";
   };
 
   postUnpack = "sourceRoot=\${sourceRoot}/libraries/liblmdb";
diff --git a/pkgs/development/libraries/lzo/default.nix b/pkgs/development/libraries/lzo/default.nix
index 480e2bb909cd3..43d551819a657 100644
--- a/pkgs/development/libraries/lzo/default.nix
+++ b/pkgs/development/libraries/lzo/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl}:
+{ lib, stdenv, fetchurl, updateAutotoolsGnuConfigScriptsHook }:
 
 stdenv.mkDerivation rec {
   pname = "lzo";
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0wm04519pd3g8hqpjqhfr72q8qmbiwqaxcs3cndny9h86aa95y60";
   };
 
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
+
   configureFlags = lib.optional (!stdenv.hostPlatform.isStatic) "--enable-shared" ;
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/malcontent/default.nix b/pkgs/development/libraries/malcontent/default.nix
index f346906eadc23..2f4044aaed349 100644
--- a/pkgs/development/libraries/malcontent/default.nix
+++ b/pkgs/development/libraries/malcontent/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchFromGitLab
-, fetchpatch
 , meson
 , ninja
 , pkg-config
diff --git a/pkgs/development/libraries/matio/default.nix b/pkgs/development/libraries/matio/default.nix
index aebd147806367..bf4c1f724e16d 100644
--- a/pkgs/development/libraries/matio/default.nix
+++ b/pkgs/development/libraries/matio/default.nix
@@ -1,10 +1,10 @@
 { lib, stdenv, fetchurl }:
 stdenv.mkDerivation rec {
   pname = "matio";
-  version = "1.5.26";
+  version = "1.5.27";
   src = fetchurl {
     url = "mirror://sourceforge/matio/${pname}-${version}.tar.gz";
-    sha256 = "sha256-i0fCn1jkaNunpVVTccanKtTGqosV9FmysLZaMDwGOTM=";
+    sha256 = "sha256-CmqgCxjEUStjqNJ5BrB5yMbtQdSyhE96SuWY4Y0i07M=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/mediastreamer/msopenh264.nix b/pkgs/development/libraries/mediastreamer/msopenh264.nix
index 83a96175cba55..353dcd4aafdf1 100644
--- a/pkgs/development/libraries/mediastreamer/msopenh264.nix
+++ b/pkgs/development/libraries/mediastreamer/msopenh264.nix
@@ -1,7 +1,6 @@
 { autoreconfHook
 , cmake
 , fetchFromGitLab
-, fetchpatch
 , mediastreamer
 , openh264
 , pkg-config
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index 80621fd9bbb52..79c9c0cdf18b6 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -7,7 +7,6 @@
 , elfutils
 , expat
 , fetchCrate
-, fetchpatch
 , fetchurl
 , file
 , flex
diff --git a/pkgs/development/libraries/minizip-ng/default.nix b/pkgs/development/libraries/minizip-ng/default.nix
index 5be1f2e519253..baf6a4f687a43 100644
--- a/pkgs/development/libraries/minizip-ng/default.nix
+++ b/pkgs/development/libraries/minizip-ng/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , gtest
 , pkg-config
diff --git a/pkgs/development/libraries/minizip/default.nix b/pkgs/development/libraries/minizip/default.nix
index 586dd113f1d10..44cba9767b36e 100644
--- a/pkgs/development/libraries/minizip/default.nix
+++ b/pkgs/development/libraries/minizip/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, zlib, autoreconfHook, fetchpatch }:
+{ lib, stdenv, zlib, autoreconfHook }:
 
 stdenv.mkDerivation {
   pname = "minizip";
diff --git a/pkgs/development/libraries/mlib/default.nix b/pkgs/development/libraries/mlib/default.nix
index f3415adadf74d..91e1271278333 100644
--- a/pkgs/development/libraries/mlib/default.nix
+++ b/pkgs/development/libraries/mlib/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mlib";
-  version = "0.7.2";
+  version = "0.7.3";
 
   src = fetchFromGitHub {
     owner = "P-p-H-d";
     repo = pname;
     rev = "V${version}";
-    hash = "sha256-wt/wLtvAZ19ZiLIjPrKbqVztLyXEa8hy6cEkaCO+tuY=";
+    hash = "sha256-r8ol923tNkZ13QXWjWpMrN6rBjjjg5XoBCho4OKdyvY=";
   };
 
   makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "PREFIX=$(out)" ];
diff --git a/pkgs/development/libraries/monocypher/default.nix b/pkgs/development/libraries/monocypher/default.nix
index b37cfffabc0ee..f5853385ba913 100644
--- a/pkgs/development/libraries/monocypher/default.nix
+++ b/pkgs/development/libraries/monocypher/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch }:
+{ lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
   pname = "monocypher";
diff --git a/pkgs/development/libraries/motif/default.nix b/pkgs/development/libraries/motif/default.nix
index 92d0098fc9840..8551510b476ca 100644
--- a/pkgs/development/libraries/motif/default.nix
+++ b/pkgs/development/libraries/motif/default.nix
@@ -26,8 +26,8 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ libXp libXau ];
 
-  prePatch = lib.optionalString (!demoSupport) ''
-    sed '/^SUBDIRS =,^$/s/\<demos\>//' -i Makefile.{am,in}
+  postPatch = lib.optionalString (!demoSupport) ''
+    sed 's/\<demos\>//' -i Makefile.{am,in}
   '';
 
   patches = [
@@ -38,6 +38,27 @@ stdenv.mkDerivation rec {
       url = "https://raw.githubusercontent.com/void-linux/void-packages/b9a1110dabb01c052dadc1abae1413bd4afe3652/srcpkgs/motif/patches/02-${name}";
       sha256 = "13vzpf8yxvhf4gl7q0yzlr6ak1yzx382fsqsrv5lc8jbbg4nwrrq";
     })
+    (fetchpatch {
+      name = "missing-headers.patch";
+      url = "https://gitlab.freedesktop.org/xorg/lib/libxpm/-/commit/4cedf181bcfe13e5d206554c51edb82cb17e7ad5.patch";
+      extraPrefix = "lib/Xm/";
+      stripLen = 2;
+      hash = "sha256-WlagHOgf2gZDxXN+SSEW6de1FuN4fbpd9zviMwo1+HI=";
+    })
+    (fetchurl {
+      name = "noreturn.patch";
+      url = "https://dev.gentoo.org/~ulm/distfiles/motif-2.3.8-patches-5.tar.xz";
+      downloadToTemp = true;
+      postFetch = ''
+        tar -xOf $downloadedFile patch/12_all_noreturn.patch > $out
+      '';
+      hash = "sha256-FyaBfqD/TuJVFFHZlp1/b1MyL8BJAfV43ktuusgxbfE=";
+    })
+    (fetchpatch {
+      url = "https://raw.githubusercontent.com/macports/macports-ports/acc8c7cb2247d9892bf5a52eb92431a4c0c8e1cd/x11/openmotif/files/wcs-functions.patch";
+      extraPrefix = "";
+      hash = "sha256-w3zCUs/RbnRoUJ0sNCI00noEOkov/IGV/zIygakSQqc=";
+    })
   ];
 
   enableParallelBuilding = true;
@@ -48,5 +69,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = with licenses; [ lgpl21Plus ];
     maintainers = with maintainers; [ qyliss ];
+    broken = demoSupport && stdenv.cc.isClang && lib.versionAtLeast stdenv.cc.version "16";
   };
 }
diff --git a/pkgs/development/libraries/mpdecimal/default.nix b/pkgs/development/libraries/mpdecimal/default.nix
index 514c61ffcb0c0..687abab7d45b9 100644
--- a/pkgs/development/libraries/mpdecimal/default.nix
+++ b/pkgs/development/libraries/mpdecimal/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchurl, updateAutotoolsGnuConfigScriptsHook }:
 
 stdenv.mkDerivation rec {
   pname = "mpdecimal";
@@ -10,6 +10,8 @@ stdenv.mkDerivation rec {
     hash = "sha256-lCRFwyRbInMP1Bpnp8XCMdEcsbmTa5wPdjNPt9C0Row=";
   };
 
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
+
   configureFlags = [ "LD=${stdenv.cc.targetPrefix}cc" ];
 
   postInstall = ''
diff --git a/pkgs/development/libraries/mtxclient/default.nix b/pkgs/development/libraries/mtxclient/default.nix
index 13816faefce9a..1c589f1af6d54 100644
--- a/pkgs/development/libraries/mtxclient/default.nix
+++ b/pkgs/development/libraries/mtxclient/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , pkg-config
 , coeurl
diff --git a/pkgs/development/libraries/ncurses/default.nix b/pkgs/development/libraries/ncurses/default.nix
index 2d383c876cba4..85bf4bee634e0 100644
--- a/pkgs/development/libraries/ncurses/default.nix
+++ b/pkgs/development/libraries/ncurses/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , fetchurl
 , buildPackages
+, updateAutotoolsGnuConfigScriptsHook
 , ncurses
 , pkg-config
 , abiVersion ? "6"
@@ -13,11 +14,11 @@
 }:
 
 stdenv.mkDerivation (finalAttrs: {
-  version = "6.4";
+  version = "6.4.20221231";
   pname = "ncurses" + lib.optionalString (abiVersion == "5") "-abi5-compat";
 
   src = fetchurl {
-    url = "https://invisible-island.net/archives/ncurses/ncurses-${finalAttrs.version}.tar.gz";
+    url = "https://invisible-island.net/archives/ncurses/ncurses-${lib.versions.majorMinor finalAttrs.version}.tar.gz";
     hash = "sha256-aTEoPZrIfFBz8wtikMTHXyFjK7T8NgOsgQCBK+0kgVk=";
   };
 
@@ -39,7 +40,7 @@ stdenv.mkDerivation (finalAttrs: {
     ++ lib.optionals stdenv.hostPlatform.isWindows [
       "--enable-sp-funcs"
       "--enable-term-driver"
-  ] ++ lib.optionals (stdenv.hostPlatform.isUnix && stdenv.hostPlatform.isStatic) [
+  ] ++ lib.optionals (stdenv.hostPlatform.isUnix && enableStatic) [
       # For static binaries, the point is to have a standalone binary with
       # minimum dependencies. So here we make sure that binaries using this
       # package won't depend on a terminfo database located in the Nix store.
@@ -51,7 +52,16 @@ stdenv.mkDerivation (finalAttrs: {
       ]}"
   ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
     "--with-build-cc=${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc"
-  ];
+  ] ++ (lib.optionals (stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17") [
+      # lld17+ passes `--no-undefined-version` by default and makes this a hard
+      # error; ncurses' `resulting.map` version script references symbols that
+      # aren't present.
+      #
+      # See: https://lists.gnu.org/archive/html/bug-ncurses/2024-05/msg00086.html
+      #
+      # For now we allow this with `--undefined-version`:
+      "LDFLAGS=-Wl,--undefined-version"
+  ]);
 
   # Only the C compiler, and explicitly not C++ compiler needs this flag on solaris:
   CFLAGS = lib.optionalString stdenv.isSunOS "-D_XOPEN_SOURCE_EXTENDED";
@@ -59,6 +69,7 @@ stdenv.mkDerivation (finalAttrs: {
   strictDeps = true;
 
   nativeBuildInputs = [
+    updateAutotoolsGnuConfigScriptsHook
     pkg-config
   ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
    # for `tic`, build already depends on for build `cc` so it's weird the build doesn't just build `tic`.
diff --git a/pkgs/development/libraries/nghttp2/default.nix b/pkgs/development/libraries/nghttp2/default.nix
index 5566b0c8f67df..0fe8f1d88d513 100644
--- a/pkgs/development/libraries/nghttp2/default.nix
+++ b/pkgs/development/libraries/nghttp2/default.nix
@@ -67,6 +67,12 @@ stdenv.mkDerivation rec {
     export TZDIR=${tzdata}/share/zoneinfo
   '';
 
+  # this could be accomplished by updateAutotoolsGnuConfigScriptsHook, but that causes infinite recursion
+  # necessary for FreeBSD code path in configure
+  postPatch = ''
+    substituteInPlace ./config.guess --replace-fail /usr/bin/uname uname
+  '';
+
   postInstall = lib.optionalString (enableApp) ''
     installShellCompletion --bash doc/bash_completion/{h2load,nghttp,nghttpd,nghttpx}
   '' + lib.optionalString (!enableApp) ''
diff --git a/pkgs/development/libraries/nghttp3/default.nix b/pkgs/development/libraries/nghttp3/default.nix
index 849a464b1c0dc..bb7e56ee42404 100644
--- a/pkgs/development/libraries/nghttp3/default.nix
+++ b/pkgs/development/libraries/nghttp3/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nghttp3";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "ngtcp2";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-kJt4aQGNiJ0XhlEKunR8jYKytv3rh23jRrNelCDe/Kk=";
+    hash = "sha256-MPycG8Fd7GJnp7WyFlGzbuTCYIF+xq6I7oeqXKFOehQ=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/libraries/ntirpc/default.nix b/pkgs/development/libraries/ntirpc/default.nix
index 39acba13d73e1..5ae6380849c8f 100644
--- a/pkgs/development/libraries/ntirpc/default.nix
+++ b/pkgs/development/libraries/ntirpc/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ntirpc";
-  version = "5.0";
+  version = "5.8";
 
   src = fetchFromGitHub {
     owner = "nfs-ganesha";
     repo = "ntirpc";
     rev = "v${version}";
-    sha256 = "sha256-xqnfo07EHwendzibIz187vdaenHwxg078D6zJvoyewc=";
+    sha256 = "sha256-t9InlnlwVts9mlrH8sHaaTYSrjJKlkFlGs1YCmZzjdE=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/opencascade-occt/default.nix b/pkgs/development/libraries/opencascade-occt/default.nix
index 664968de64324..a09cacaf39286 100644
--- a/pkgs/development/libraries/opencascade-occt/default.nix
+++ b/pkgs/development/libraries/opencascade-occt/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch
 , cmake
 , ninja
 , tcl
diff --git a/pkgs/development/libraries/opencv/3.x.nix b/pkgs/development/libraries/opencv/3.x.nix
index 5e9409368cc70..adb6532bd6825 100644
--- a/pkgs/development/libraries/opencv/3.x.nix
+++ b/pkgs/development/libraries/opencv/3.x.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchFromGitHub
-, fetchpatch
 , callPackage
 , cmake, pkg-config, unzip, zlib, pcre, hdf5
 , glog, boost, gflags, protobuf_21
@@ -16,7 +15,7 @@
 , enableContrib   ? true
 
 , enableCuda      ? config.cudaSupport
-, cudaPackages ? { }
+, cudaPackages
 , enableUnfree    ? false
 , enableIpp       ? false
 , enablePython    ? false, pythonPackages ? null
@@ -296,6 +295,8 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Open Computer Vision Library with more than 500 algorithms";
     homepage = "https://opencv.org/";
+    # OpenCV 3 won't build with CUDA 12+
+    broken = enableCuda && cudaPackages.cudaAtLeast "12";
     license = with licenses; if enableUnfree then unfree else bsd3;
     maintainers = with maintainers; [mdaiter basvandijk];
     platforms = with platforms; linux ++ darwin;
diff --git a/pkgs/development/libraries/openfec/default.nix b/pkgs/development/libraries/openfec/default.nix
index dd6b0ce10c0b0..35ce5806aea77 100644
--- a/pkgs/development/libraries/openfec/default.nix
+++ b/pkgs/development/libraries/openfec/default.nix
@@ -20,10 +20,13 @@ stdenv.mkDerivation rec {
     cmake
   ];
 
-  cmakeFlags = [ "-DDEBUG:STRING=OFF" ];
+  cmakeFlags = [
+    "-DDEBUG:STRING=OFF"
+    (lib.cmakeBool "BUILD_STATIC_LIBS" stdenv.hostPlatform.isStatic)
+  ];
 
   installPhase =
-    let so = stdenv.hostPlatform.extensions.sharedLibrary;
+    let so = stdenv.hostPlatform.extensions.library;
     in ''
       # This is pretty horrible but sadly there is not installation procedure
       # provided.
diff --git a/pkgs/development/libraries/openxr-loader/default.nix b/pkgs/development/libraries/openxr-loader/default.nix
index ec4c327d784b4..f153d7f2f18b6 100644
--- a/pkgs/development/libraries/openxr-loader/default.nix
+++ b/pkgs/development/libraries/openxr-loader/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openxr-loader";
-  version = "1.1.36";
+  version = "1.1.37";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "OpenXR-SDK-Source";
     rev = "release-${version}";
-    sha256 = "sha256-Ki2tp8a67AjIMIGDpWWqCnpMmeZpJ8uPezKE2KWrOjA=";
+    sha256 = "sha256-J9IfhTFFSY+rK0DqFdXtINo7nlGUcy2Lljq81T417qc=";
   };
 
   nativeBuildInputs = [ cmake python3 pkg-config ];
diff --git a/pkgs/development/libraries/pcre2/default.nix b/pkgs/development/libraries/pcre2/default.nix
index c30a3c379d1de..3450f910effef 100644
--- a/pkgs/development/libraries/pcre2/default.nix
+++ b/pkgs/development/libraries/pcre2/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, updateAutotoolsGnuConfigScriptsHook
 , withJitSealloc ? true
 }:
 
@@ -13,6 +14,8 @@ stdenv.mkDerivation rec {
     hash = "sha256-4qU5hP8LB9/bWuRIa7ubIcyo598kNAlsyb8bcow1C8s=";
   };
 
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
+
   postPatch = ''
     # Fix jit autodetection:
     #   https://github.com/PCRE2Project/pcre2/pull/396
diff --git a/pkgs/development/libraries/physics/geant4/default.nix b/pkgs/development/libraries/physics/geant4/default.nix
index 9dcaea8be041a..ded942cca26fe 100644
--- a/pkgs/development/libraries/physics/geant4/default.nix
+++ b/pkgs/development/libraries/physics/geant4/default.nix
@@ -9,7 +9,7 @@
 , enableRaytracerX11   ? false
 
 # Standard build environment with cmake.
-, lib, stdenv, fetchurl, fetchpatch, cmake
+, lib, stdenv, fetchurl, cmake
 
 , clhep
 , expat
diff --git a/pkgs/development/libraries/physics/rivet/default.nix b/pkgs/development/libraries/physics/rivet/default.nix
index a59b34147a9f4..24bc628201946 100644
--- a/pkgs/development/libraries/physics/rivet/default.nix
+++ b/pkgs/development/libraries/physics/rivet/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, fastjet, fastjet-contrib, ghostscript, hepmc, imagemagick, less, python3, rsync, texliveBasic, yoda, which, makeWrapper }:
+{ lib, stdenv, fetchurl, fastjet, fastjet-contrib, ghostscript, hepmc, imagemagick, less, python3, rsync, texliveBasic, yoda, which, makeWrapper }:
 
 stdenv.mkDerivation rec {
   pname = "rivet";
diff --git a/pkgs/development/libraries/pipewire/default.nix b/pkgs/development/libraries/pipewire/default.nix
index 2c2442547ebbd..c3532d93683d9 100644
--- a/pkgs/development/libraries/pipewire/default.nix
+++ b/pkgs/development/libraries/pipewire/default.nix
@@ -75,7 +75,7 @@ assert ldacbtSupport -> bluezSupport;
 
 stdenv.mkDerivation(finalAttrs: {
   pname = "pipewire";
-  version = "1.0.6";
+  version = "1.0.7";
 
   outputs = [
     "out"
@@ -91,7 +91,7 @@ stdenv.mkDerivation(finalAttrs: {
     owner = "pipewire";
     repo = "pipewire";
     rev = finalAttrs.version;
-    sha256 = "sha256-JrKSsYCMNRHHh92Sn/03Bq2gPaXNYTqmwaLXkE0axdA=";
+    sha256 = "sha256-YzI+hkX1ZdeTfxuKaw5P9OYPtkWtUg9cNo32wLCgjNU=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/plasma-wayland-protocols/default.nix b/pkgs/development/libraries/plasma-wayland-protocols/default.nix
index 9f2798ce51b61..99e8b3fd9d11d 100644
--- a/pkgs/development/libraries/plasma-wayland-protocols/default.nix
+++ b/pkgs/development/libraries/plasma-wayland-protocols/default.nix
@@ -7,11 +7,11 @@
 
 mkDerivation rec {
   pname = "plasma-wayland-protocols";
-  version = "1.12.0";
+  version = "1.13.0";
 
   src = fetchurl {
     url = "mirror://kde/stable/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-FIO/0nnLkTyDV5tdccWPmVh2T5ukMDs2R+EAfLcNT54=";
+    hash = "sha256-3Ud+NS9f9uasaGKGxLIrGb9aSSG4XuWn2gK7eqEV1X4=";
   };
 
   nativeBuildInputs = [ extra-cmake-modules ];
diff --git a/pkgs/development/libraries/polkit/default.nix b/pkgs/development/libraries/polkit/default.nix
index 69b2233a8559b..b6066b1b56c53 100644
--- a/pkgs/development/libraries/polkit/default.nix
+++ b/pkgs/development/libraries/polkit/default.nix
@@ -53,6 +53,8 @@ stdenv.mkDerivation rec {
     # Allow changing base for paths in pkg-config file as before.
     # https://gitlab.freedesktop.org/polkit/polkit/-/merge_requests/100
     ./0001-build-Use-datarootdir-in-Meson-generated-pkg-config-.patch
+
+    ./elogind.patch
   ];
 
   depsBuildBuild = [
@@ -178,6 +180,10 @@ stdenv.mkDerivation rec {
     description = "A toolkit for defining and handling the policy that allows unprivileged processes to speak to privileged processes";
     license = licenses.lgpl2Plus;
     platforms = platforms.linux;
+    badPlatforms = [
+      # mandatory libpolkit-gobject shared library
+      lib.systems.inspect.platformPatterns.isStatic
+    ];
     maintainers = teams.freedesktop.members ++ (with maintainers; [ ]);
   };
 }
diff --git a/pkgs/development/libraries/polkit/elogind.patch b/pkgs/development/libraries/polkit/elogind.patch
new file mode 100644
index 0000000000000..e7d97a7b131c1
--- /dev/null
+++ b/pkgs/development/libraries/polkit/elogind.patch
@@ -0,0 +1,66 @@
+From 78e625dbafa8543b17ffaf9c42cf90c9cf9a612e Mon Sep 17 00:00:00 2001
+From: Alyssa Ross <hi@alyssa.is>
+Date: Wed, 8 May 2024 11:20:42 +0200
+Subject: [PATCH] Fix configuration with elogind
+
+Previously, it would try to get sysusers_dir from systemd even though
+systemd_dep was undefined.  Determining systemd_systemdsystemunitdir
+from systemd was already checking for systemd logind specifically, and
+systemd_sysusers_dir is only used in the systemd logind case, so move
+both of those into the systemd-logind-specific branch above.
+
+(cherry picked from commit b58b58af10c390ab9a11a4cfe6a4ff3d50cc0fa5)
+---
+ meson.build | 22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 2f81c90..0888322 100644
+--- a/meson.build
++++ b/meson.build
+@@ -202,6 +202,16 @@ if enable_logind
+     if not logind_dep.found()
+       logind_dep = dependency('libsystemd-login', not_found_message: 'libsystemd support requested but libsystemd or libsystemd-login library not found')
+     endif
++
++    # systemd unit / service files
++    systemd_systemdsystemunitdir = get_option('systemdsystemunitdir')
++    if systemd_systemdsystemunitdir == '' and session_tracking == 'libsystemd-login'
++      systemd_dep = dependency('systemd', not_found_message: 'systemd required but not found, please provide a valid systemd user unit dir or disable it')
++      # FIXME: systemd.pc file does not use variables with relative paths, so `define_variable` cannot be used
++      systemd_systemdsystemunitdir = systemd_dep.get_pkgconfig_variable('systemdsystemunitdir')
++    endif
++
++    systemd_sysusers_dir = systemd_dep.get_pkgconfig_variable('sysusers_dir', default: '/usr/lib/sysusers.d')
+   else
+     logind_dep = dependency('libelogind', not_found_message: 'libelogind support requested but libelogind library not found')
+   endif
+@@ -210,16 +220,6 @@ if enable_logind
+   config_h.set10('HAVE_' + func.to_upper(), cc.has_function(func, dependencies: logind_dep))
+   func = 'sd_pidfd_get_session'
+   config_h.set10('HAVE_' + func.to_upper(), cc.has_function(func, dependencies: logind_dep))
+-
+-  # systemd unit / service files
+-  systemd_systemdsystemunitdir = get_option('systemdsystemunitdir')
+-  if systemd_systemdsystemunitdir == '' and session_tracking == 'libsystemd-login'
+-    systemd_dep = dependency('systemd', not_found_message: 'systemd required but not found, please provide a valid systemd user unit dir or disable it')
+-    # FIXME: systemd.pc file does not use variables with relative paths, so `define_variable` cannot be used
+-    systemd_systemdsystemunitdir = systemd_dep.get_pkgconfig_variable('systemdsystemunitdir')
+-  endif
+-
+-  systemd_sysusers_dir = systemd_dep.get_pkgconfig_variable('sysusers_dir', default: '/usr/lib/sysusers.d')
+ endif
+ config_h.set('HAVE_LIBSYSTEMD', enable_logind)
+ 
+@@ -404,7 +404,7 @@ output += '        introspection:            ' + enable_introspection.to_string(
+ output += '        Distribution/OS:          ' + os_type + '\n'
+ output += '        Authentication framework: ' + auth_fw + '\n'
+ output += '        Session tracking:         ' + session_tracking + '\n'
+-if enable_logind
++if session_tracking == 'logind'
+   output += '        systemdsystemunitdir:     ' + systemd_systemdsystemunitdir + '\n'
+ endif
+ output += '        polkitd user:             ' + polkitd_user + ' \n'
+-- 
+2.44.0
+
diff --git a/pkgs/development/libraries/popt/default.nix b/pkgs/development/libraries/popt/default.nix
index fdccb4d093367..e97629b0dfd05 100644
--- a/pkgs/development/libraries/popt/default.nix
+++ b/pkgs/development/libraries/popt/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , fetchurl
 , fetchpatch2
+, updateAutotoolsGnuConfigScriptsHook
 }:
 
 stdenv.mkDerivation rec {
@@ -13,6 +14,8 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-wlpIOPyOTByKrLi9Yg7bMISj1jv4mH/a08onWMYyQPk=";
   };
 
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
+
   patches = lib.optionals stdenv.isCygwin [
     ./1.16-cygwin.patch
     ./1.16-vpath.patch
diff --git a/pkgs/development/libraries/proj/default.nix b/pkgs/development/libraries/proj/default.nix
index daab5ac2a5663..0a0ae87dc628d 100644
--- a/pkgs/development/libraries/proj/default.nix
+++ b/pkgs/development/libraries/proj/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , pkg-config
 , buildPackages
diff --git a/pkgs/development/libraries/protobuf/27.nix b/pkgs/development/libraries/protobuf/27.nix
new file mode 100644
index 0000000000000..8b80ad681c1c2
--- /dev/null
+++ b/pkgs/development/libraries/protobuf/27.nix
@@ -0,0 +1,6 @@
+{ callPackage, ... } @ args:
+
+callPackage ./generic.nix ({
+  version = "27.0";
+  hash = "sha256-QVgDGyNTCSYU/rXTMcHUefUGVjwkkjnpq0Kq+eXK/bo=";
+} // args)
diff --git a/pkgs/development/libraries/protobufc/default.nix b/pkgs/development/libraries/protobufc/default.nix
index d152512783f0e..5a39725275508 100644
--- a/pkgs/development/libraries/protobufc/default.nix
+++ b/pkgs/development/libraries/protobufc/default.nix
@@ -10,15 +10,17 @@
 
 stdenv.mkDerivation rec {
   pname = "protobuf-c";
-  version = "unstable-2023-07-08";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "protobuf-c";
     repo = "protobuf-c";
-    rev = "fa86fddbd000316772d1deb5a8d1201fa7599ef7";
-    hash = "sha256-pmqZYFREPgSrWPekymTglhtAv6gQR1gP3dOl3hqjYig=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-Dkpcc7ZfvAIVY91trRiHuiRFcUGUbQxbheYKTBcq80I=";
   };
 
+  outputs = [ "out" "dev" "lib" ];
+
   nativeBuildInputs = [ autoreconfHook pkg-config ];
 
   buildInputs = [ protobuf zlib ];
diff --git a/pkgs/development/libraries/python-qt/default.nix b/pkgs/development/libraries/python-qt/default.nix
index 2b7ac684974e6..404aa4921c4ef 100644
--- a/pkgs/development/libraries/python-qt/default.nix
+++ b/pkgs/development/libraries/python-qt/default.nix
@@ -2,7 +2,6 @@
   lib,
   stdenv,
   fetchFromGitHub,
-  fetchpatch,
   python3,
   qmake,
   qtwebengine,
diff --git a/pkgs/development/libraries/qt-5/5.15/default.nix b/pkgs/development/libraries/qt-5/5.15/default.nix
index a8885fc5647bc..38ee3973c0f24 100644
--- a/pkgs/development/libraries/qt-5/5.15/default.nix
+++ b/pkgs/development/libraries/qt-5/5.15/default.nix
@@ -190,6 +190,10 @@ let
         hash = "sha256-s4GsGMJTBNWw2gTJuIEP3tqT82AmTsR2mbj59m2p6rM=";
       })
       ./qtwebengine-link-pulseaudio.patch
+      # Fixes Chromium build failure with Ninja 1.12.
+      # See: https://bugreports.qt.io/browse/QTBUG-124375
+      # Backport of: https://code.qt.io/cgit/qt/qtwebengine-chromium.git/commit/?id=a766045f65f934df3b5f1aa63bc86fbb3e003a09
+      ./qtwebengine-ninja-1.12.patch
     ] ++ lib.optionals stdenv.isDarwin [
       ./qtwebengine-darwin-no-platform-check.patch
       ./qtwebengine-mac-dont-set-dsymutil-path.patch
diff --git a/pkgs/development/libraries/qt-5/5.15/qtwebengine-ninja-1.12.patch b/pkgs/development/libraries/qt-5/5.15/qtwebengine-ninja-1.12.patch
new file mode 100644
index 0000000000000..c70788516fd4e
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.15/qtwebengine-ninja-1.12.patch
@@ -0,0 +1,11 @@
+diff -ur a/src/3rdparty/chromium/content/public/browser/BUILD.gn b/src/3rdparty/chromium/content/public/browser/BUILD.gn
+--- a/src/3rdparty/chromium/content/public/browser/BUILD.gn	1969-12-31 19:00:01.000000000 -0500
++++ b/src/3rdparty/chromium/content/public/browser/BUILD.gn	2024-05-29 22:12:36.416136269 -0400
+@@ -469,6 +469,7 @@
+     "//build:chromeos_buildflags",
+     "//cc",
+     "//components/viz/host",
++    "//components/spellcheck:buildflags",
+     "//content/browser",  # Must not be public_deps!
+     "//device/fido",
+     "//gpu",
diff --git a/pkgs/development/libraries/qt-5/modules/qtwebengine.nix b/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
index 44007bec07b84..0194d3b43902c 100644
--- a/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
@@ -24,7 +24,7 @@
 , MediaPlayer, MediaAccessibility, SecurityInterface, Vision, CoreML, OpenDirectory, Accelerate
 , cups, openbsm, runCommand, xcbuild, writeScriptBin
 , ffmpeg_4 ? null
-, lib, stdenv, fetchpatch
+, lib, stdenv
 , version ? null
 , qtCompatVersion
 , pipewireSupport ? stdenv.isLinux
diff --git a/pkgs/development/libraries/qt-6/default.nix b/pkgs/development/libraries/qt-6/default.nix
index c4b8512079546..c724bd21d11ff 100644
--- a/pkgs/development/libraries/qt-6/default.nix
+++ b/pkgs/development/libraries/qt-6/default.nix
@@ -4,7 +4,6 @@
 , generateSplicesForMkScope
 , makeScopeWithSplicing'
 , fetchurl
-, fetchpatch
 , fetchpatch2
 , makeSetupHook
 , makeWrapper
diff --git a/pkgs/development/libraries/range-v3/default.nix b/pkgs/development/libraries/range-v3/default.nix
index 77db5869f62a1..9b9c2bd39d648 100644
--- a/pkgs/development/libraries/range-v3/default.nix
+++ b/pkgs/development/libraries/range-v3/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake }:
+{ lib, stdenv, fetchFromGitHub, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "range-v3";
diff --git a/pkgs/development/libraries/readline/8.2.nix b/pkgs/development/libraries/readline/8.2.nix
index 72e3370576e72..7bf5caf4060f1 100644
--- a/pkgs/development/libraries/readline/8.2.nix
+++ b/pkgs/development/libraries/readline/8.2.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchpatch, fetchurl
+, updateAutotoolsGnuConfigScriptsHook
 , ncurses, termcap
 , curses-library ?
     if stdenv.hostPlatform.isWindows
@@ -20,6 +21,7 @@ stdenv.mkDerivation rec {
 
   strictDeps = true;
   propagatedBuildInputs = [ curses-library ];
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
 
   patchFlags = [ "-p0" ];
 
diff --git a/pkgs/development/libraries/rnnoise-plugin/default.nix b/pkgs/development/libraries/rnnoise-plugin/default.nix
index 39a8f1a4b6a6f..e1aaba5270546 100644
--- a/pkgs/development/libraries/rnnoise-plugin/default.nix
+++ b/pkgs/development/libraries/rnnoise-plugin/default.nix
@@ -17,13 +17,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "rnnoise-plugin";
-  version = "1.03";
+  version = "1.10";
 
   src = fetchFromGitHub {
     owner = "werman";
     repo = "noise-suppression-for-voice";
     rev = "v${version}";
-    sha256 = "sha256-1DgrpGYF7G5Zr9vbgtKm/Yv0HSdI7LrFYPSGKYNnNDQ=";
+    sha256 = "sha256-sfwHd5Fl2DIoGuPDjELrPp5KpApZJKzQikCJmCzhtY8=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/development/libraries/rocksdb/default.nix b/pkgs/development/libraries/rocksdb/default.nix
index c584ef2976d1c..0491ef2e67254 100644
--- a/pkgs/development/libraries/rocksdb/default.nix
+++ b/pkgs/development/libraries/rocksdb/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , ninja
 , bzip2
@@ -18,13 +17,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "rocksdb";
-  version = "9.1.1";
+  version = "9.2.1";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = finalAttrs.pname;
     rev = "v${finalAttrs.version}";
-    hash = "sha256-/Xf0bzNJPclH9IP80QNaABfhj4IAR5LycYET18VFCXc=";
+    hash = "sha256-Zifn5Gu/4h6TaEqSaWQ2mFdryeAarqbHWW3fKUGGFac=";
   };
 
   nativeBuildInputs = [ cmake ninja ];
diff --git a/pkgs/development/libraries/rubberband/default.nix b/pkgs/development/libraries/rubberband/default.nix
index 7830e62ccb181..66b3dbbea3fb1 100644
--- a/pkgs/development/libraries/rubberband/default.nix
+++ b/pkgs/development/libraries/rubberband/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config, libsamplerate, libsndfile, fftw
-, lv2, jdk
+, lv2, jdk_headless
 , vamp-plugin-sdk, ladspaH, meson, ninja, darwin }:
 
 stdenv.mkDerivation rec {
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     hash = "sha256-2e+J4rjvn4WxOsPC+uww4grPLJ86nIxFzmN/K8leV2w=";
   };
 
-  nativeBuildInputs = [ pkg-config meson ninja jdk ];
+  nativeBuildInputs = [ pkg-config meson ninja jdk_headless ];
   buildInputs = [ libsamplerate libsndfile fftw vamp-plugin-sdk ladspaH lv2 ] ++ lib.optionals stdenv.isDarwin
     (with darwin.apple_sdk.frameworks; [Accelerate CoreGraphics CoreVideo]);
   makeFlags = [ "AR:=$(AR)" ];
diff --git a/pkgs/development/libraries/s2n-tls/default.nix b/pkgs/development/libraries/s2n-tls/default.nix
index 36f11372775d7..60e6eaf5b5350 100644
--- a/pkgs/development/libraries/s2n-tls/default.nix
+++ b/pkgs/development/libraries/s2n-tls/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "s2n-tls";
-  version = "1.4.12";
+  version = "1.4.14";
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-gOCnRuJ1YM+SkrOJ/5TGANl442e7Umh3HK5DFNLJi/A=";
+    hash = "sha256-FEEjsJ5l87yuFDDzJPcAQ0O7OG6neK5PX+DMY5OIKJM=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/science/math/libamplsolver/default.nix b/pkgs/development/libraries/science/math/libamplsolver/default.nix
index a40091bac8b50..cbcc9ce766db7 100644
--- a/pkgs/development/libraries/science/math/libamplsolver/default.nix
+++ b/pkgs/development/libraries/science/math/libamplsolver/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, substitute, fetchurl, fetchpatch }:
+{ lib, stdenv, substitute, fetchurl }:
 
 stdenv.mkDerivation rec {
   pname = "libamplsolver";
diff --git a/pkgs/development/libraries/science/math/zn_poly/default.nix b/pkgs/development/libraries/science/math/zn_poly/default.nix
index bdaf6e6284ef1..1c61bb07471be 100644
--- a/pkgs/development/libraries/science/math/zn_poly/default.nix
+++ b/pkgs/development/libraries/science/math/zn_poly/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitLab
-, fetchpatch
 , gmp
 , python3
 , tune ? false # tune to hardware, impure
diff --git a/pkgs/development/libraries/sentry-native/default.nix b/pkgs/development/libraries/sentry-native/default.nix
index ec95184707d02..7e14664847f48 100644
--- a/pkgs/development/libraries/sentry-native/default.nix
+++ b/pkgs/development/libraries/sentry-native/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sentry-native";
-  version = "0.7.2";
+  version = "0.7.4";
 
   src = fetchFromGitHub {
     owner = "getsentry";
     repo = "sentry-native";
     rev = version;
-    hash = "sha256-0yFRDQ/f0oVbpZ4wev28xCTVkbXr58Tt0Czda3ppRWk=";
+    hash = "sha256-vmoBTFhSSYMzbjQIGTCvMvOvVv+2y23RZx589rMR5bs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/spandsp/3.nix b/pkgs/development/libraries/spandsp/3.nix
index 9e916273809f0..772388405c49f 100644
--- a/pkgs/development/libraries/spandsp/3.nix
+++ b/pkgs/development/libraries/spandsp/3.nix
@@ -1,11 +1,4 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, audiofile
-, libtiff
-, autoreconfHook
-, fetchpatch
-, buildPackages
+{ fetchFromGitHub
 , callPackage
 }:
 
diff --git a/pkgs/development/libraries/spandsp/default.nix b/pkgs/development/libraries/spandsp/default.nix
index cf5e53c3f9117..38e250ddef907 100644
--- a/pkgs/development/libraries/spandsp/default.nix
+++ b/pkgs/development/libraries/spandsp/default.nix
@@ -1,11 +1,4 @@
-{ lib
-, stdenv
-, fetchurl
-, audiofile
-, libtiff
-, buildPackages
-, fetchpatch
-, autoreconfHook
+{ fetchurl
 , callPackage
 }:
 
diff --git a/pkgs/development/libraries/sqlite/default.nix b/pkgs/development/libraries/sqlite/default.nix
index fe39cac8a25f8..1932d659d1803 100644
--- a/pkgs/development/libraries/sqlite/default.nix
+++ b/pkgs/development/libraries/sqlite/default.nix
@@ -1,4 +1,5 @@
 { lib, stdenv, fetchurl, zlib, readline, ncurses
+, updateAutotoolsGnuConfigScriptsHook
 
 # for tests
 , python3Packages, sqldiff, sqlite-analyzer, tracker
@@ -27,6 +28,7 @@ stdenv.mkDerivation rec {
   outputs = [ "bin" "dev" "out" ];
   separateDebugInfo = stdenv.isLinux;
 
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
   buildInputs = [ zlib ] ++ lib.optionals interactive [ readline ncurses ];
 
   # required for aarch64 but applied for all arches for simplicity
diff --git a/pkgs/development/libraries/symengine/default.nix b/pkgs/development/libraries/symengine/default.nix
index cc08b7ff3c2e8..8bd5b7055a598 100644
--- a/pkgs/development/libraries/symengine/default.nix
+++ b/pkgs/development/libraries/symengine/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "symengine";
-  version = "0.11.2";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "symengine";
     repo = "symengine";
     rev = "v${version}";
-    hash = "sha256-CwVDpDbx00r7Fys+5r1n0m/E86zTx1i4ti5JCcVp20g=";
+    hash = "sha256-SfifujR2VM1OlPN0ZRUC3hWImXO/8PuiyrBdpyNoKW4=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/talloc/default.nix b/pkgs/development/libraries/talloc/default.nix
index 73cb8a65a162d..793fc1ccf5cb5 100644
--- a/pkgs/development/libraries/talloc/default.nix
+++ b/pkgs/development/libraries/talloc/default.nix
@@ -9,6 +9,7 @@
 , docbook_xml_dtd_42
 , fixDarwinDylibNames
 , wafHook
+, buildPackages
 }:
 
 stdenv.mkDerivation rec {
@@ -50,6 +51,9 @@ stdenv.mkDerivation rec {
     "--enable-talloc-compat1"
     "--bundled-libraries=NONE"
     "--builtin-libraries=replace"
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "--cross-compile"
+    "--cross-execute=${stdenv.hostPlatform.emulator buildPackages}"
   ];
 
   # python-config from build Python gives incorrect values when cross-compiling.
diff --git a/pkgs/development/libraries/tbb/2020_3.nix b/pkgs/development/libraries/tbb/2020_3.nix
index 55bb9849d9190..aa526591eb9e8 100644
--- a/pkgs/development/libraries/tbb/2020_3.nix
+++ b/pkgs/development/libraries/tbb/2020_3.nix
@@ -57,6 +57,7 @@ stdenv.mkDerivation rec {
   ] ++ (lib.optional (stdenv.buildPlatform != stdenv.hostPlatform)
     (if stdenv.hostPlatform.isAarch64 then "arch=arm64"
     else if stdenv.hostPlatform.isx86_64 then "arch=intel64"
+    else if stdenv.hostPlatform.isi686 then "arch=ia32"
     else throw "Unsupported cross architecture"));
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/tdb/default.nix b/pkgs/development/libraries/tdb/default.nix
index 1a289f7c2d618..f8b3d4df4b703 100644
--- a/pkgs/development/libraries/tdb/default.nix
+++ b/pkgs/development/libraries/tdb/default.nix
@@ -2,6 +2,7 @@
 , fetchurl
 , pkg-config
 , wafHook
+, buildPackages
 , python3
 , readline
 , libxslt
@@ -46,6 +47,9 @@ stdenv.mkDerivation rec {
   wafConfigureFlags = [
     "--bundled-libraries=NONE"
     "--builtin-libraries=replace"
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "--cross-compile"
+    "--cross-execute=${stdenv.hostPlatform.emulator buildPackages}"
   ];
 
   postFixup = if stdenv.isDarwin
diff --git a/pkgs/development/libraries/tdlib/default.nix b/pkgs/development/libraries/tdlib/default.nix
index 0d60f0412267c..018836913e486 100644
--- a/pkgs/development/libraries/tdlib/default.nix
+++ b/pkgs/development/libraries/tdlib/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation {
   pname = "tdlib";
-  version = "1.8.28";
+  version = "1.8.29";
 
   src = fetchFromGitHub {
     owner = "tdlib";
@@ -11,8 +11,8 @@ stdenv.mkDerivation {
     # The tdlib authors do not set tags for minor versions, but
     # external programs depending on tdlib constrain the minor
     # version, hence we set a specific commit with a known version.
-    rev = "38d31da77a72619cf7ec5d479338a48274cc7446";
-    hash = "sha256-y6Gt8gDfvIBJd/2O4vTs38DzAPyL9pAZBbrf2qcv9cY=";
+    rev = "af69dd4397b6dc1bf23ba0fd0bf429fcba6454f6";
+    hash = "sha256-2RhKSxy0AvuA74LHI86pqUxv9oJZ+ZxxDe4TPI5UYxE=";
   };
 
   buildInputs = [ gperf openssl readline zlib ];
diff --git a/pkgs/development/libraries/tevent/default.nix b/pkgs/development/libraries/tevent/default.nix
index 18e4522de9ea2..d4a7d9c4342d9 100644
--- a/pkgs/development/libraries/tevent/default.nix
+++ b/pkgs/development/libraries/tevent/default.nix
@@ -10,6 +10,7 @@
 , docbook_xml_dtd_42
 , which
 , wafHook
+, buildPackages
 , libxcrypt
 }:
 
@@ -52,6 +53,9 @@ stdenv.mkDerivation rec {
   wafConfigureFlags = [
     "--bundled-libraries=NONE"
     "--builtin-libraries=replace"
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "--cross-compile"
+    "--cross-execute=${stdenv.hostPlatform.emulator buildPackages}"
   ];
 
   # python-config from build Python gives incorrect values when cross-compiling.
diff --git a/pkgs/development/libraries/tk/8.6.nix b/pkgs/development/libraries/tk/8.6.nix
index fbf4560517547..c5317a8545dd5 100644
--- a/pkgs/development/libraries/tk/8.6.nix
+++ b/pkgs/development/libraries/tk/8.6.nix
@@ -2,7 +2,6 @@
 , stdenv
 , callPackage
 , fetchurl
-, fetchpatch
 , tcl
 , ...
 } @ args:
diff --git a/pkgs/development/libraries/tpm2-tss/default.nix b/pkgs/development/libraries/tpm2-tss/default.nix
index 354ab06d26b23..b28d031be83ad 100644
--- a/pkgs/development/libraries/tpm2-tss/default.nix
+++ b/pkgs/development/libraries/tpm2-tss/default.nix
@@ -15,13 +15,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "tpm2-tss";
-  version = "4.1.1";
+  version = "4.1.3";
 
   src = fetchFromGitHub {
     owner = "tpm2-software";
     repo = pname;
     rev = version;
-    hash = "sha256-paqTQ7DQI0Nd8q0qUPRa2UZ/oE5nrVEq5KUiG8hRXuQ=";
+    hash = "sha256-BP28utEUI9g1VNv3lCXuiKrDtEImFQxxZfIjLiE3Wr8=";
   };
 
   outputs = [ "out" "man" "dev" ];
diff --git a/pkgs/development/libraries/umockdev/default.nix b/pkgs/development/libraries/umockdev/default.nix
index 2d543f5a5364f..b7926eecb4f24 100644
--- a/pkgs/development/libraries/umockdev/default.nix
+++ b/pkgs/development/libraries/umockdev/default.nix
@@ -2,7 +2,6 @@
 , lib
 , docbook-xsl-nons
 , fetchurl
-, fetchpatch
 , glib
 , gobject-introspection
 , gtk-doc
@@ -22,13 +21,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "umockdev";
-  version = "0.18.1";
+  version = "0.18.2";
 
   outputs = [ "bin" "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "https://github.com/martinpitt/umockdev/releases/download/${finalAttrs.version}/umockdev-${finalAttrs.version}.tar.xz";
-    hash = "sha256-ZRtoaQM7sUiBNu1zxY6SRfWwGFYmHhzqBBAwuD+x7Xw=";
+    hash = "sha256-1HKV6IA8bWfgdgMcIlgeP470aIAj1I925ed2qM7IkHM=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/vte/default.nix b/pkgs/development/libraries/vte/default.nix
index 89af6e847a887..1d93b6e6adecf 100644
--- a/pkgs/development/libraries/vte/default.nix
+++ b/pkgs/development/libraries/vte/default.nix
@@ -32,14 +32,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "vte";
-  version = "0.76.1";
+  version = "0.76.2";
 
   outputs = [ "out" "dev" ]
     ++ lib.optional (gtkVersion != null) "devdoc";
 
   src = fetchurl {
     url = "mirror://gnome/sources/vte/${lib.versions.majorMinor finalAttrs.version}/vte-${finalAttrs.version}.tar.xz";
-    hash = "sha256-CE6D73ZXdCaaSynfl8oi7cNDuaHYFDPTALjLLQh6HsI=";
+    hash = "sha256-49xggtW9cPiq+qrSzfyvflHaa6AKkZsR3axu+gnHKEc=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix b/pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix
index e28ea0da6b0a7..00af282c5277b 100644
--- a/pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix
+++ b/pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix
@@ -19,13 +19,13 @@
 , webp-pixbuf-loader
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "xdg-desktop-portal-gnome";
-  version = "46.1";
+  version = "46.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-fo2WI+nZaonAiXYWgnzUQdzygykn048TXHIlUrEXKqE=";
+    url = "mirror://gnome/sources/xdg-desktop-portal-gnome/${lib.versions.major finalAttrs.version}/xdg-desktop-portal-gnome-${finalAttrs.version}.tar.xz";
+    hash = "sha256-tcZeol6Eg1AtAzphO+bca3GIOsB/Gj5HStGAScR9FtY=";
   };
 
   nativeBuildInputs = [
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = "xdg-desktop-portal-gnome";
     };
   };
 
@@ -75,4 +75,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     license = licenses.lgpl21Plus;
   };
-}
+})
diff --git a/pkgs/development/libraries/xgboost/default.nix b/pkgs/development/libraries/xgboost/default.nix
index 0018a73341e31..ecb90117b6fe4 100644
--- a/pkgs/development/libraries/xgboost/default.nix
+++ b/pkgs/development/libraries/xgboost/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , lib
 , fetchFromGitHub
+, fetchpatch
 , cmake
 , gtest
 , doCheck ? true
@@ -27,11 +28,12 @@ let
   # This ensures xgboost gets the correct libstdc++ when
   # built with cuda support. This may be removed once
   # #226165 rewrites cudaStdenv
-  inherit (cudaPackages) backendStdenv;
-  stdenv = if cudaSupport then backendStdenv else inputs.stdenv;
+  effectiveStdenv = if cudaSupport then cudaPackages.backendStdenv else inputs.stdenv;
+  # Ensures we don't use the stdenv value by accident.
+  stdenv = builtins.throw "Use effectiveStdenv instead of stdenv in xgboost derivation.";
 in
 
-stdenv.mkDerivation rec {
+effectiveStdenv.mkDerivation rec {
   pnameBase = "xgboost";
   # prefix with r when building the R library
   # The R package build results in a special xgboost.so file
@@ -56,8 +58,16 @@ stdenv.mkDerivation rec {
     hash = "sha256-LWco3A6zwdnAf8blU4qjW7PFEeZaTcJlVTwVrs7nwWM=";
   };
 
+  patches = lib.optionals (cudaSupport && cudaPackages.cudaMajorMinorVersion == "12.4") [
+    (fetchpatch {
+      name = "Fix compilation with the ctk 12.4.";
+      url = "https://github.com/dmlc/xgboost/pull/10123.patch";
+      hash = "sha256-iP9mll9pg8T2ztCR7dBPnLP17/x3ImJFrr5G3e2dqHo=";
+    })
+  ];
+
   nativeBuildInputs = [ cmake ]
-    ++ lib.optionals stdenv.isDarwin [ llvmPackages.openmp ]
+    ++ lib.optionals effectiveStdenv.isDarwin [ llvmPackages.openmp ]
     ++ lib.optionals cudaSupport [ autoAddDriverRunpath ]
     ++ lib.optionals rLibrary [ R ];
 
@@ -75,13 +85,9 @@ stdenv.mkDerivation rec {
     "-DUSE_CUDA=ON"
     # Their CMakeLists.txt does not respect CUDA_HOST_COMPILER, instead using the CXX compiler.
     # https://github.com/dmlc/xgboost/blob/ccf43d4ba0a94e2f0a3cc5a526197539ae46f410/CMakeLists.txt#L145
-    "-DCMAKE_C_COMPILER=${cudaPackages.backendStdenv.cc}/bin/gcc"
-    "-DCMAKE_CXX_COMPILER=${cudaPackages.backendStdenv.cc}/bin/g++"
-  ] ++ lib.optionals
-    (cudaSupport
-      && lib.versionAtLeast cudaPackages.cudatoolkit.version "11.4.0")
-    [ "-DBUILD_WITH_CUDA_CUB=ON" ]
-    ++ lib.optionals ncclSupport [ "-DUSE_NCCL=ON" ]
+    "-DCMAKE_C_COMPILER=${effectiveStdenv.cc}/bin/gcc"
+    "-DCMAKE_CXX_COMPILER=${effectiveStdenv.cc}/bin/g++"
+  ] ++ lib.optionals ncclSupport [ "-DUSE_NCCL=ON" ]
     ++ lib.optionals rLibrary [ "-DR_LIB=ON" ];
 
   preConfigure = lib.optionals rLibrary ''
@@ -104,7 +110,7 @@ stdenv.mkDerivation rec {
   GTEST_FILTER =
     let
       # Upstream Issue: https://github.com/xtensor-stack/xsimd/issues/456
-      filteredTests = lib.optionals stdenv.hostPlatform.isDarwin [
+      filteredTests = lib.optionals effectiveStdenv.hostPlatform.isDarwin [
         "ThreadGroup.TimerThread"
         "ThreadGroup.TimerThreadSimple"
       ];
@@ -112,8 +118,7 @@ stdenv.mkDerivation rec {
     "-${builtins.concatStringsSep ":" filteredTests}";
 
   installPhase =
-    let libname = "libxgboost${stdenv.hostPlatform.extensions.sharedLibrary}";
-    in ''
+    ''
       runHook preInstall
     ''
     # the R library option builds a completely different binary xgboost.so instead of
@@ -137,6 +142,7 @@ stdenv.mkDerivation rec {
     description =
       "Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library";
     homepage = "https://github.com/dmlc/xgboost";
+    broken = cudaSupport && cudaPackages.cudaOlder "11.4";
     license = licenses.asl20;
     mainProgram = "xgboost";
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/xsimd/default.nix b/pkgs/development/libraries/xsimd/default.nix
index d775cef4d6734..db761aae70941 100644
--- a/pkgs/development/libraries/xsimd/default.nix
+++ b/pkgs/development/libraries/xsimd/default.nix
@@ -1,39 +1,28 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , cmake
 , doctest
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "xsimd";
-  version = "12.1.1";
+  version = "13.0.0";
   src = fetchFromGitHub {
     owner = "xtensor-stack";
     repo = "xsimd";
     rev = finalAttrs.version;
-    hash = "sha256-ofUFieeRtpnzNv3Ad5oYwKWb2XcqQHoj601TIhydJyI=";
+    hash = "sha256-qElJYW5QDj3s59L3NgZj5zkhnUMzIP2mBa1sPks3/CE=";
   };
   patches = [
-    # Ideally, Accelerate/Accelerate.h should be used for this implementation,
-    # but it doesn't work... Needs a Darwin user to debug this. We apply this
-    # patch unconditionally, because the #if macros make sure it doesn't
-    # interfer with the Linux implementations.
-    ./fix-darwin-exp10-implementation.patch
-  ] ++ lib.optionals stdenv.isDarwin [
-    # https://github.com/xtensor-stack/xsimd/issues/807
-    ./disable-test_error_gamma-test.patch
-  ] ++ lib.optionals (stdenv.isDarwin || stdenv.hostPlatform.isMusl) [
-    # - Darwin report: https://github.com/xtensor-stack/xsimd/issues/917
-    # - Musl   report: https://github.com/xtensor-stack/xsimd/issues/798
-    ./disable-exp10-test.patch
-  ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
-    # https://github.com/xtensor-stack/xsimd/issues/798
-    ./disable-polar-test.patch
-  ] ++ lib.optionals stdenv.hostPlatform.isMusl [
-    # Fix suggested here: https://github.com/xtensor-stack/xsimd/issues/798#issuecomment-1356884601
-    # Upstream didn't merge that from some reason.
-    ./fix-atan-test.patch
+    # Fix of https://github.com/xtensor-stack/xsimd/pull/1024 for
+    # https://github.com/xtensor-stack/xsimd/issues/456 and
+    # https://github.com/xtensor-stack/xsimd/issues/807,
+    (fetchpatch {
+      url = "https://github.com/xtensor-stack/xsimd/commit/c8a87ed6e04b6782f48f94713adfb0cad6c11ddf.patch";
+      hash = "sha256-2/FvBGdqTPcayD7rdHPSzL+F8IYKAfMW0WBJ0cW9EZ0=";
+    })
   ];
 
   nativeBuildInputs = [
@@ -41,7 +30,9 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   cmakeFlags = [
-    "-DBUILD_TESTS=${if (finalAttrs.finalPackage.doCheck && stdenv.hostPlatform == stdenv.buildPlatform) then "ON" else "OFF"}"
+    # Always build the tests, even if not running them, because testing whether
+    # they can be built is a test in itself.
+    "-DBUILD_TESTS=ON"
   ];
 
   doCheck = true;
diff --git a/pkgs/development/libraries/xsimd/disable-exp10-test.patch b/pkgs/development/libraries/xsimd/disable-exp10-test.patch
deleted file mode 100644
index 8d2940c3b080b..0000000000000
--- a/pkgs/development/libraries/xsimd/disable-exp10-test.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-commit 87433035c70578507e08565723c99158290f2488
-Author: Doron Behar <doron.behar@gmail.com>
-Date:   Tue Aug 1 13:26:04 2023 +0300
-
-    Darwin & Musl: Disable failing exp10 test
-
---- a/test/test_xsimd_api.cpp
-+++ b/test/test_xsimd_api.cpp
-@@ -515,15 +515,6 @@ struct xsimd_api_float_types_functions
-         value_type val(2);
-         CHECK_EQ(extract(xsimd::exp(T(val))), std::exp(val));
-     }
--    void test_exp10()
--    {
--        value_type val(2);
--#ifdef EMSCRIPTEN
--        CHECK_EQ(extract(xsimd::exp10(T(val))), doctest::Approx(std::pow(value_type(10), val)));
--#else
--        CHECK_EQ(extract(xsimd::exp10(T(val))), std::pow(value_type(10), val));
--#endif
--    }
-     void test_exp2()
-     {
-         value_type val(2);
-@@ -813,11 +804,6 @@ TEST_CASE_TEMPLATE("[xsimd api | float types functions]", B, FLOAT_TYPES)
-         Test.test_exp();
-     }
- 
--    SUBCASE("exp10")
--    {
--        Test.test_exp10();
--    }
--
-     SUBCASE("exp2")
-     {
-         Test.test_exp2();
diff --git a/pkgs/development/libraries/xsimd/disable-polar-test.patch b/pkgs/development/libraries/xsimd/disable-polar-test.patch
deleted file mode 100644
index 91128f43c2d5c..0000000000000
--- a/pkgs/development/libraries/xsimd/disable-polar-test.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-commit 9374b88b97911d9c6e19d5e764e25183cd45d534
-Author: Doron Behar <doron.behar@gmail.com>
-Date:   Tue Aug 1 13:29:16 2023 +0300
-
-    aarch64-Darwin: Disable failing polar test
-
---- a/test/test_xsimd_api.cpp
-+++ b/test/test_xsimd_api.cpp
-@@ -661,17 +661,6 @@ struct xsimd_api_float_types_functions
-         value_type val1(4);
-         CHECK_EQ(extract(xsimd::nextafter(T(val0), T(val1))), std::nextafter(val0, val1));
-     }
--    void test_polar()
--    {
--        value_type val0(3);
--        value_type val1(4);
--#ifndef EMSCRIPTEN
--        CHECK_EQ(extract(xsimd::polar(T(val0), T(val1))), std::polar(val0, val1));
--#else
--        CHECK_EQ(std::real(extract(xsimd::polar(T(val0), T(val1)))), doctest::Approx(std::real(std::polar(val0, val1))));
--        CHECK_EQ(std::imag(extract(xsimd::polar(T(val0), T(val1)))), doctest::Approx(std::imag(std::polar(val0, val1))));
--#endif
--    }
-     void test_pow()
-     {
-         value_type val0(2);
-@@ -931,11 +920,6 @@ TEST_CASE_TEMPLATE("[xsimd api | float types functions]", B, FLOAT_TYPES)
-         Test.test_nextafter();
-     }
- 
--    SUBCASE("polar")
--    {
--        Test.test_polar();
--    }
--
-     SUBCASE("pow")
-     {
-         Test.test_pow();
diff --git a/pkgs/development/libraries/xsimd/disable-test_error_gamma-test.patch b/pkgs/development/libraries/xsimd/disable-test_error_gamma-test.patch
deleted file mode 100644
index a7344d231b8db..0000000000000
--- a/pkgs/development/libraries/xsimd/disable-test_error_gamma-test.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-commit 3f751cef6b27ec13418a92c5b5f36b22bb5ffd55
-Author: Doron Behar <doron.behar@gmail.com>
-Date:   Tue Aug 1 13:24:34 2023 +0300
-
-    Darwin: Disable failing test from test_error_gamma.cpp
-
-diff --git a/test/test_error_gamma.cpp b/test/test_error_gamma.cpp
-index 214cbb5..299e5b8 100644
---- a/test/test_error_gamma.cpp
-+++ b/test/test_error_gamma.cpp
-@@ -131,25 +131,6 @@ struct error_gamma_test
-             INFO("lgamma");
-             CHECK_EQ(diff, 0);
-         }
--#if !(XSIMD_WITH_AVX && !XSIMD_WITH_AVX2)
--
--        // tgamma (negative input)
--        {
--            std::transform(gamma_neg_input.cbegin(), gamma_neg_input.cend(), expected.begin(),
--                           [](const value_type& v)
--                           { return std::lgamma(v); });
--            batch_type in, out;
--            for (size_t i = 0; i < nb_input; i += size)
--            {
--                detail::load_batch(in, gamma_neg_input, i);
--                out = lgamma(in);
--                detail::store_batch(out, res, i);
--            }
--            size_t diff = detail::get_nb_diff(res, expected);
--            INFO("lgamma (negative input)");
--            CHECK_EQ(diff, 0);
--        }
--#endif
-     }
- };
- 
diff --git a/pkgs/development/libraries/xsimd/fix-atan-test.patch b/pkgs/development/libraries/xsimd/fix-atan-test.patch
deleted file mode 100644
index 3d1517610aae5..0000000000000
--- a/pkgs/development/libraries/xsimd/fix-atan-test.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-commit f60dad2c1d8ad47fbff761ce1cb027fc7c3a40e8
-Author: Doron Behar <doron.behar@gmail.com>
-Date:   Tue Aug 1 13:47:37 2023 +0300
-
-    Musl: Fix atan test from test_complex_trigonometric.cpp
-
-diff --git a/test/test_complex_trigonometric.cpp b/test/test_complex_trigonometric.cpp
-index a486110..691db77 100644
---- a/test/test_complex_trigonometric.cpp
-+++ b/test/test_complex_trigonometric.cpp
-@@ -155,7 +155,7 @@ struct complex_trigonometric_test
-             out = atan(in);
-             detail::store_batch(out, res, i);
-         }
--        size_t diff = detail::get_nb_diff(res, expected);
-+        size_t diff = detail::get_nb_diff_near(res, expected, 1e-12);
-         CHECK_EQ(diff, 0);
-     }
- 
diff --git a/pkgs/development/libraries/xsimd/fix-darwin-exp10-implementation.patch b/pkgs/development/libraries/xsimd/fix-darwin-exp10-implementation.patch
deleted file mode 100644
index caa7db0bcc134..0000000000000
--- a/pkgs/development/libraries/xsimd/fix-darwin-exp10-implementation.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git i/include/xsimd/arch/xsimd_scalar.hpp w/include/xsimd/arch/xsimd_scalar.hpp
-index 9066da6..7aa3b6b 100644
---- i/include/xsimd/arch/xsimd_scalar.hpp
-+++ w/include/xsimd/arch/xsimd_scalar.hpp
-@@ -502,16 +502,7 @@ namespace xsimd
-         return !(x0 == x1);
-     }
- 
--#if defined(__APPLE__)
--    inline float exp10(const float& x) noexcept
--    {
--        return __exp10f(x);
--    }
--    inline double exp10(const double& x) noexcept
--    {
--        return __exp10(x);
--    }
--#elif defined(__GLIBC__)
-+#if defined(__GLIBC__)
-     inline float exp10(const float& x) noexcept
-     {
-         return ::exp10f(x);
diff --git a/pkgs/development/libraries/xtensor/default.nix b/pkgs/development/libraries/xtensor/default.nix
index 678f87af74cfa..da85a37ab5bc0 100644
--- a/pkgs/development/libraries/xtensor/default.nix
+++ b/pkgs/development/libraries/xtensor/default.nix
@@ -13,24 +13,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "xtensor";
-  version = "0.24.7";
+  version = "0.25.0";
 
   src = fetchFromGitHub {
     owner = "xtensor-stack";
     repo = "xtensor";
     rev = finalAttrs.version;
-    hash = "sha256-dVbpcBW+jK9nIl5efk5LdKdBm8CkaJWEZ0ZY7ZuApwk=";
+    hash = "sha256-hVfdtYcJ6mzqj0AUu6QF9aVKQGYKd45RngY6UN3yOH4=";
   };
-  patches = [
-    # Support for xsimd 11
-    (fetchpatch {
-      url = "https://github.com/xtensor-stack/xtensor/commit/77a650a8018e0be6fcc76bf66685ff352ae23ef1.patch";
-      hash = "sha256-vOdUzzsSK+lYcA7fZXWOTVV202GZC0DhkMMjzggnmWE=";
-    })
-    # A single test fails on Darwin, see:
-    # https://github.com/xtensor-stack/xtensor/issues/2718
-    ./remove-failing-test_xinfo.patch
-  ];
 
   nativeBuildInputs = [
     cmake
@@ -38,18 +28,15 @@ stdenv.mkDerivation (finalAttrs: {
   propagatedBuildInputs = [
     nlohmann_json
     xtl
-  ] ++ lib.optionals (!(stdenv.isAarch64 && stdenv.isLinux)) [
-    # xsimd support is broken on aarch64-linux, see:
-    # https://github.com/xtensor-stack/xsimd/issues/945
     xsimd
   ];
 
-  cmakeFlags = let
-    cmakeBool = x: if x then "ON" else "OFF";
-  in [
-    "-DBUILD_TESTS=${cmakeBool finalAttrs.finalPackage.doCheck}"
-    "-DXTENSOR_ENABLE_ASSERT=${cmakeBool enableAssertions}"
-    "-DXTENSOR_CHECK_DIMENSION=${cmakeBool enableBoundChecks}"
+  cmakeFlags = [
+    # Always build the tests, even if not running them, because testing whether
+    # they can be built is a test in itself.
+    (lib.cmakeBool "BUILD_TESTS" true)
+    (lib.cmakeBool "XTENSOR_ENABLE_ASSERT" enableAssertions)
+    (lib.cmakeBool "XTENSOR_CHECK_DIMENSION" enableBoundChecks)
   ];
 
   doCheck = true;
@@ -59,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
   checkTarget = "xtest";
 
   meta = with lib; {
-    description = "Multi-dimensional arrays with broadcasting and lazy computing.";
+    description = "Multi-dimensional arrays with broadcasting and lazy computing";
     homepage = "https://github.com/xtensor-stack/xtensor";
     license = licenses.bsd3;
     maintainers = with maintainers; [ cpcloud ];
diff --git a/pkgs/development/libraries/xtensor/remove-failing-test_xinfo.patch b/pkgs/development/libraries/xtensor/remove-failing-test_xinfo.patch
deleted file mode 100644
index c3352c453c598..0000000000000
--- a/pkgs/development/libraries/xtensor/remove-failing-test_xinfo.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git i/test/CMakeLists.txt w/test/CMakeLists.txt
-index 46127597..727b66bd 100644
---- i/test/CMakeLists.txt
-+++ w/test/CMakeLists.txt
-@@ -189,7 +189,6 @@ set(XTENSOR_TESTS
-     test_xhistogram.cpp
-     test_xpad.cpp
-     test_xindex_view.cpp
--    test_xinfo.cpp
-     test_xio.cpp
-     test_xlayout.cpp
-     test_xmanipulation.cpp
diff --git a/pkgs/development/libraries/zziplib/default.nix b/pkgs/development/libraries/zziplib/default.nix
index c40cf9594cfa9..cae01170f290b 100644
--- a/pkgs/development/libraries/zziplib/default.nix
+++ b/pkgs/development/libraries/zziplib/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , perl
 , pkg-config
diff --git a/pkgs/development/lua-modules/generated-packages.nix b/pkgs/development/lua-modules/generated-packages.nix
index 46f0d5310cfa8..276ee77363253 100644
--- a/pkgs/development/lua-modules/generated-packages.nix
+++ b/pkgs/development/lua-modules/generated-packages.nix
@@ -2662,6 +2662,27 @@ buildLuarocksPackage {
   };
 }) {};
 
+psl = callPackage({ buildLuarocksPackage, fetchurl, fetchzip }:
+buildLuarocksPackage {
+  pname = "psl";
+  version = "0.3-0";
+  knownRockspec = (fetchurl {
+    url    = "mirror://luarocks/psl-0.3-0.rockspec";
+    sha256 = "1x7sc8n780k67v31bvqqxhh6ihy0k91zmp6xcxmkifr0gd008x9z";
+  }).outPath;
+  src = fetchzip {
+    url    = "https://github.com/daurnimator/lua-psl/archive/v0.3.zip";
+    sha256 = "1x9zskjn6fp9343w9314104128ik4lbk98pg6zfhl1v35107m1jx";
+  };
+
+
+  meta = {
+    homepage = "https://github.com/daurnimator/lua-psl";
+    description = "Bindings to libpsl, a C library that handles the Public Suffix List (PSL)";
+    license.fullName = "MIT";
+  };
+}) {};
+
 rapidjson = callPackage({ buildLuarocksPackage, cmake, fetchFromGitHub, fetchurl, luaOlder }:
 buildLuarocksPackage {
   pname = "rapidjson";
diff --git a/pkgs/development/lua-modules/overrides.nix b/pkgs/development/lua-modules/overrides.nix
index 7eea1ba9930c8..3291cc97cf5dd 100644
--- a/pkgs/development/lua-modules/overrides.nix
+++ b/pkgs/development/lua-modules/overrides.nix
@@ -29,6 +29,7 @@
 , libiconv
 , libmpack
 , libmysqlclient
+, libpsl
 , libuuid
 , libuv
 , libxcrypt
@@ -617,6 +618,15 @@ in
     dontPatchShebangs = true;
   });
 
+  psl = prev.psl.overrideAttrs (drv: {
+    buildInputs = drv.buildInputs or [ ] ++ [ libpsl ];
+
+    luarocksConfig.variables = drv.luarocksConfig.variables // {
+      PSL_INCDIR = lib.getDev libpsl + "/include";
+      PSL_DIR = lib.getLib libpsl;
+    };
+  });
+
   rapidjson = prev.rapidjson.overrideAttrs (oa: {
     preBuild = ''
       sed -i '/set(CMAKE_CXX_FLAGS/d' CMakeLists.txt
@@ -724,6 +734,9 @@ in
       hash = "sha256-2P+mokkjdj2PccQG/kAGnIoUPVnK2FqNfYpHPhsp8kw=";
     };
 
+    NIX_LDFLAGS = lib.optionalString stdenv.isDarwin
+      (if lua.pkgs.isLuaJIT then "-lluajit-${lua.luaversion}" else "-llua");
+
     nativeBuildInputs = oa.nativeBuildInputs ++ [
       cargo
       rustPlatform.cargoSetupHook
diff --git a/pkgs/development/mobile/androidenv/ndk-bundle/default.nix b/pkgs/development/mobile/androidenv/ndk-bundle/default.nix
index 0b104abe1f9a9..30a2e8171acc1 100644
--- a/pkgs/development/mobile/androidenv/ndk-bundle/default.nix
+++ b/pkgs/development/mobile/androidenv/ndk-bundle/default.nix
@@ -24,7 +24,11 @@ deployAndroidPackage rec {
       addAutoPatchelfSearchPath $out/libexec/android-sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64
     fi
 
-    find toolchains -type d -name bin -or -name lib64 | while read dir; do
+    if [ -d $out/libexec/android-sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib ]; then
+      addAutoPatchelfSearchPath $out/libexec/android-sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib
+    fi
+
+    find toolchains -type d -name bin -or -name lib64 -or -name lib | while read dir; do
       autoPatchelf "$dir"
     done
 
diff --git a/pkgs/development/mobile/genymotion/default.nix b/pkgs/development/mobile/genymotion/default.nix
index a2e81531c174a..80e82ec0208bc 100644
--- a/pkgs/development/mobile/genymotion/default.nix
+++ b/pkgs/development/mobile/genymotion/default.nix
@@ -29,11 +29,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "genymotion";
-  version = "3.6.0";
+  version = "3.7.0";
   src = fetchurl {
     url = "https://dl.genymotion.com/releases/genymotion-${version}/genymotion-${version}-linux_x64.bin";
     name = "genymotion-${version}-linux_x64.bin";
-    sha256 = "sha256-CS1A9udt47bhgnYJqqkCG3z4XaPVHmz417VTsY2ccOA=";
+    sha256 = "sha256-JBz6rfKm4hX+Mr+xU3VgzxbFKj+SDr9/ulJ6KrmzAnM=";
   };
 
   nativeBuildInputs = [ makeWrapper which xdg-utils ];
diff --git a/pkgs/development/node-packages/aliases.nix b/pkgs/development/node-packages/aliases.nix
index 64708d8ffd925..cfa45ca713b80 100644
--- a/pkgs/development/node-packages/aliases.nix
+++ b/pkgs/development/node-packages/aliases.nix
@@ -133,9 +133,24 @@ mapAliases {
   stf = throw "stf was removed because it was broken"; # added 2023-08-21
   inherit (pkgs) stylelint; # added 2023-09-13
   surge = pkgs.surge-cli; # Added 2023-09-08
+  inherit (pkgs) svelte-language-server; # Added 2024-05-12
   swagger = throw "swagger was removed because it was broken and abandoned upstream"; # added 2023-09-09
   tedicross = throw "tedicross was removed because it was broken"; # added 2023-09-09
   inherit (pkgs) terser; # Added 2023-08-31
+  inherit (pkgs) textlint; # Added 2024-05-13
+  textlint-plugin-latex = throw "textlint-plugin-latex was removed because it is unmaintained for years. Please use textlint-plugin-latex2e instead."; # Added 2024-05-17
+  inherit (pkgs) textlint-rule-abbr-within-parentheses; # Added 2024-05-17
+  inherit (pkgs) textlint-rule-alex; # Added 2024-05-16
+  inherit (pkgs) textlint-rule-common-misspellings; # Added 2024-05-25
+  inherit (pkgs) textlint-rule-diacritics; # Added 2024-05-16
+  inherit (pkgs) textlint-rule-en-max-word-count; # Added 2024-05-17
+  inherit (pkgs) textlint-rule-max-comma; # Added 2024-05-15
+  inherit (pkgs) textlint-rule-no-start-duplicated-conjunction; # Added 2024-05-17
+  inherit (pkgs) textlint-rule-period-in-list-item; # Added 2024-05-17
+  inherit (pkgs) textlint-rule-stop-words; # Added 2024-05-17
+  inherit (pkgs) textlint-rule-terminology; # Added 2024-05-17
+  inherit (pkgs) textlint-rule-unexpanded-acronym; # Added 2024-05-17
+  inherit (pkgs) textlint-rule-write-good; # Added 2024-05-16
   thelounge = pkgs.thelounge; # Added 2023-05-22
   three = throw "three was removed because it was no longer needed"; # Added 2023-09-08
   inherit (pkgs) titanium; # added 2023-08-17
diff --git a/pkgs/development/node-packages/main-programs.nix b/pkgs/development/node-packages/main-programs.nix
index 90093aaafde12..d2b2da19a2dd6 100644
--- a/pkgs/development/node-packages/main-programs.nix
+++ b/pkgs/development/node-packages/main-programs.nix
@@ -52,7 +52,6 @@
   purty = "purty";
   pscid = "pscid";
   remod-cli = "remod";
-  svelte-language-server = "svelteserver";
   teck-programmer = "teck-firmware-upgrade";
   typescript-language-server = "typescript-language-server";
   uglify-js = "uglifyjs";
diff --git a/pkgs/development/node-packages/node-packages.json b/pkgs/development/node-packages/node-packages.json
index c0d021e9f4728..112add22d4465 100644
--- a/pkgs/development/node-packages/node-packages.json
+++ b/pkgs/development/node-packages/node-packages.json
@@ -216,25 +216,10 @@
 , "sql-formatter"
 , "stackdriver-statsd-backend"
 , "svelte-check"
-, "svelte-language-server"
 , "svgo"
 , "tailwindcss"
 , "teck-programmer"
 , "tern"
-, "textlint"
-, "textlint-plugin-latex"
-, "textlint-rule-abbr-within-parentheses"
-, "textlint-rule-alex"
-, "textlint-rule-common-misspellings"
-, "textlint-rule-diacritics"
-, "textlint-rule-en-max-word-count"
-, "textlint-rule-max-comma"
-, "textlint-rule-no-start-duplicated-conjunction"
-, "textlint-rule-period-in-list-item"
-, "textlint-rule-stop-words"
-, "textlint-rule-terminology"
-, "textlint-rule-unexpanded-acronym"
-, "textlint-rule-write-good"
 , "thelounge-plugin-closepms"
 , "thelounge-plugin-giphy"
 , "thelounge-plugin-shortcuts"
diff --git a/pkgs/development/node-packages/node-packages.nix b/pkgs/development/node-packages/node-packages.nix
index 9b498be3b7faa..df8eaabd73b7f 100644
--- a/pkgs/development/node-packages/node-packages.nix
+++ b/pkgs/development/node-packages/node-packages.nix
@@ -92612,264 +92612,6 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
-  svelte-language-server = nodeEnv.buildNodePackage {
-    name = "svelte-language-server";
-    packageName = "svelte-language-server";
-    version = "0.16.5";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/svelte-language-server/-/svelte-language-server-0.16.5.tgz";
-      sha512 = "gzGlDikWDQZn+ccX0hyCamzGuTEXMwGNiXOXiNBtK+HJg+aL7wKcHnjwHg72K4K5s85OIYZE0zUj6JXjkAJkKQ==";
-    };
-    dependencies = [
-      sources."@ampproject/remapping-2.3.0"
-      sources."@babel/code-frame-7.23.5"
-      sources."@babel/compat-data-7.23.5"
-      sources."@babel/core-7.24.0"
-      sources."@babel/generator-7.23.6"
-      sources."@babel/helper-compilation-targets-7.23.6"
-      sources."@babel/helper-environment-visitor-7.22.20"
-      sources."@babel/helper-function-name-7.23.0"
-      sources."@babel/helper-hoist-variables-7.22.5"
-      sources."@babel/helper-module-imports-7.22.15"
-      sources."@babel/helper-module-transforms-7.23.3"
-      sources."@babel/helper-simple-access-7.22.5"
-      sources."@babel/helper-split-export-declaration-7.22.6"
-      sources."@babel/helper-string-parser-7.23.4"
-      sources."@babel/helper-validator-identifier-7.22.20"
-      sources."@babel/helper-validator-option-7.23.5"
-      sources."@babel/helpers-7.24.0"
-      sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.24.0"
-      sources."@babel/template-7.24.0"
-      sources."@babel/traverse-7.24.0"
-      sources."@babel/types-7.24.0"
-      sources."@emmetio/abbreviation-2.3.3"
-      sources."@emmetio/css-abbreviation-2.1.8"
-      sources."@emmetio/scanner-1.0.4"
-      sources."@jridgewell/gen-mapping-0.3.5"
-      sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.2.1"
-      sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.25"
-      sources."@nodelib/fs.scandir-2.1.5"
-      sources."@nodelib/fs.stat-2.0.5"
-      sources."@nodelib/fs.walk-1.2.8"
-      sources."@types/pug-2.0.10"
-      (sources."@vscode/emmet-helper-2.8.4" // {
-        dependencies = [
-          sources."vscode-uri-2.1.2"
-        ];
-      })
-      sources."@vscode/l10n-0.0.18"
-      sources."acorn-7.4.1"
-      sources."ansi-styles-3.2.1"
-      sources."anymatch-3.1.3"
-      sources."asap-2.0.6"
-      sources."assert-never-1.2.1"
-      sources."atob-2.1.2"
-      sources."babel-walk-3.0.0-canary-5"
-      sources."balanced-match-1.0.2"
-      sources."binary-extensions-2.3.0"
-      sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
-      sources."browserslist-4.23.0"
-      sources."buffer-crc32-0.2.13"
-      sources."call-bind-1.0.7"
-      sources."caniuse-lite-1.0.30001599"
-      sources."chalk-2.4.2"
-      sources."character-parser-2.2.0"
-      sources."chokidar-3.6.0"
-      sources."coffeescript-2.7.0"
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
-      sources."concat-map-0.0.1"
-      sources."constantinople-4.0.1"
-      sources."convert-source-map-2.0.0"
-      sources."copy-anything-2.0.6"
-      sources."css-3.0.0"
-      sources."debug-4.3.4"
-      sources."decode-uri-component-0.2.2"
-      sources."dedent-js-1.0.1"
-      sources."define-data-property-1.1.4"
-      sources."detect-indent-6.1.0"
-      sources."doctypes-1.1.0"
-      sources."electron-to-chromium-1.4.710"
-      sources."emmet-2.4.7"
-      sources."errno-0.1.8"
-      sources."es-define-property-1.0.0"
-      sources."es-errors-1.3.0"
-      sources."es6-promise-3.3.1"
-      sources."escalade-3.1.2"
-      sources."escape-string-regexp-1.0.5"
-      sources."estree-walker-2.0.2"
-      sources."fast-glob-3.3.2"
-      sources."fastq-1.17.1"
-      sources."fill-range-7.0.1"
-      sources."fs.realpath-1.0.0"
-      sources."function-bind-1.1.2"
-      sources."gensync-1.0.0-beta.2"
-      sources."get-intrinsic-1.2.4"
-      sources."glob-7.2.3"
-      sources."glob-parent-5.1.2"
-      sources."globals-11.12.0"
-      sources."gopd-1.0.1"
-      sources."graceful-fs-4.2.11"
-      sources."has-flag-3.0.0"
-      sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.3"
-      sources."has-symbols-1.0.3"
-      sources."has-tostringtag-1.0.2"
-      sources."hasown-2.0.2"
-      sources."iconv-lite-0.6.3"
-      sources."image-size-0.5.5"
-      sources."immutable-4.3.5"
-      sources."inflight-1.0.6"
-      sources."inherits-2.0.4"
-      sources."is-binary-path-2.1.0"
-      sources."is-core-module-2.13.1"
-      sources."is-expression-4.0.0"
-      sources."is-extglob-2.1.1"
-      sources."is-glob-4.0.3"
-      sources."is-number-7.0.0"
-      sources."is-promise-2.2.2"
-      sources."is-regex-1.1.4"
-      sources."is-what-3.14.1"
-      sources."jiti-1.21.0"
-      sources."js-stringify-1.0.2"
-      sources."js-tokens-4.0.0"
-      sources."jsesc-2.5.2"
-      sources."json5-2.2.3"
-      sources."jsonc-parser-2.3.1"
-      sources."jstransformer-1.0.0"
-      sources."less-4.2.0"
-      sources."lilconfig-3.1.1"
-      sources."lodash-4.17.21"
-      sources."lower-case-2.0.2"
-      sources."lru-cache-5.1.1"
-      sources."magic-string-0.30.8"
-      (sources."make-dir-2.1.0" // {
-        dependencies = [
-          sources."semver-5.7.2"
-        ];
-      })
-      sources."merge2-1.4.1"
-      sources."micromatch-4.0.5"
-      sources."mime-1.6.0"
-      sources."min-indent-1.0.1"
-      sources."minimatch-3.1.2"
-      sources."minimist-1.2.8"
-      sources."mkdirp-0.5.6"
-      sources."ms-2.1.2"
-      sources."nanoid-3.3.7"
-      sources."needle-3.3.1"
-      sources."no-case-3.0.4"
-      sources."node-releases-2.0.14"
-      sources."normalize-path-3.0.0"
-      sources."object-assign-4.1.1"
-      sources."once-1.4.0"
-      sources."parse-node-version-1.0.1"
-      sources."pascal-case-3.1.2"
-      sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.7"
-      sources."picocolors-1.0.0"
-      sources."picomatch-2.3.1"
-      sources."pify-4.0.1"
-      sources."postcss-8.4.36"
-      sources."postcss-load-config-5.0.3"
-      sources."prettier-3.2.5"
-      sources."prettier-plugin-svelte-3.2.2"
-      sources."promise-7.3.1"
-      sources."prr-1.0.1"
-      sources."pug-3.0.2"
-      sources."pug-attrs-3.0.0"
-      sources."pug-code-gen-3.0.2"
-      sources."pug-error-2.0.0"
-      sources."pug-filters-4.0.0"
-      sources."pug-lexer-5.0.1"
-      sources."pug-linker-4.0.0"
-      sources."pug-load-3.0.0"
-      sources."pug-parser-6.0.0"
-      sources."pug-runtime-3.0.1"
-      sources."pug-strip-comments-2.0.0"
-      sources."pug-walk-2.0.0"
-      sources."queue-microtask-1.2.3"
-      sources."readdirp-3.6.0"
-      sources."resolve-1.22.8"
-      sources."reusify-1.0.4"
-      sources."rimraf-2.7.1"
-      sources."run-parallel-1.2.0"
-      sources."safer-buffer-2.1.2"
-      sources."sander-0.5.1"
-      sources."sass-1.72.0"
-      sources."sax-1.3.0"
-      sources."semver-6.3.1"
-      sources."set-function-length-1.2.2"
-      sources."sorcery-0.11.0"
-      sources."source-map-0.6.1"
-      sources."source-map-js-1.1.0"
-      sources."source-map-resolve-0.6.0"
-      sources."strip-indent-3.0.0"
-      (sources."stylus-0.55.0" // {
-        dependencies = [
-          sources."debug-3.1.0"
-          sources."mkdirp-1.0.4"
-          sources."ms-2.0.0"
-          sources."sax-1.2.4"
-          sources."source-map-0.7.4"
-        ];
-      })
-      sources."sugarss-4.0.1"
-      sources."supports-color-5.5.0"
-      sources."supports-preserve-symlinks-flag-1.0.0"
-      sources."svelte-3.59.2"
-      sources."svelte-preprocess-5.1.3"
-      sources."svelte2tsx-0.7.4"
-      sources."to-fast-properties-2.0.0"
-      sources."to-regex-range-5.0.1"
-      sources."token-stream-1.0.0"
-      sources."tslib-2.6.2"
-      sources."typescript-5.4.2"
-      (sources."typescript-auto-import-cache-0.3.2" // {
-        dependencies = [
-          sources."lru-cache-6.0.0"
-          sources."semver-7.6.0"
-          sources."yallist-4.0.0"
-        ];
-      })
-      sources."update-browserslist-db-1.0.13"
-      sources."void-elements-3.1.0"
-      (sources."vscode-css-languageservice-6.2.12" // {
-        dependencies = [
-          sources."vscode-languageserver-types-3.17.5"
-        ];
-      })
-      (sources."vscode-html-languageservice-5.1.2" // {
-        dependencies = [
-          sources."vscode-languageserver-types-3.17.5"
-        ];
-      })
-      sources."vscode-jsonrpc-8.0.2"
-      sources."vscode-languageserver-8.0.2"
-      sources."vscode-languageserver-protocol-3.17.2"
-      sources."vscode-languageserver-textdocument-1.0.11"
-      sources."vscode-languageserver-types-3.17.2"
-      sources."vscode-nls-5.2.0"
-      sources."vscode-uri-3.0.8"
-      sources."with-7.0.2"
-      sources."wrappy-1.0.2"
-      sources."yallist-3.1.1"
-      sources."yaml-2.4.1"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "A language server for Svelte";
-      homepage = "https://github.com/sveltejs/language-tools#readme";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
   svgo = nodeEnv.buildNodePackage {
     name = "svgo";
     packageName = "svgo";
@@ -93160,1221 +92902,6 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
-  textlint = nodeEnv.buildNodePackage {
-    name = "textlint";
-    packageName = "textlint";
-    version = "14.0.4";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint/-/textlint-14.0.4.tgz";
-      sha512 = "xPQkC/BftPjizjs31wci/791EjwfN11iRLrNKiPVBogYd1r+6TnSxbCERZhgXCGcD9tEHss0kOYc0+vPEEG8jg==";
-    };
-    dependencies = [
-      sources."@aashutoshrathi/word-wrap-1.2.6"
-      sources."@azu/format-text-1.0.2"
-      sources."@azu/style-format-1.0.1"
-      sources."@textlint/ast-node-types-14.0.4"
-      sources."@textlint/ast-tester-14.0.4"
-      sources."@textlint/ast-traverse-14.0.4"
-      sources."@textlint/config-loader-14.0.4"
-      sources."@textlint/feature-flag-14.0.4"
-      sources."@textlint/fixer-formatter-14.0.4"
-      sources."@textlint/kernel-14.0.4"
-      sources."@textlint/linter-formatter-14.0.4"
-      sources."@textlint/markdown-to-ast-14.0.4"
-      sources."@textlint/module-interop-14.0.4"
-      sources."@textlint/source-code-fixer-14.0.4"
-      sources."@textlint/text-to-ast-14.0.4"
-      sources."@textlint/textlint-plugin-markdown-14.0.4"
-      sources."@textlint/textlint-plugin-text-14.0.4"
-      sources."@textlint/types-14.0.4"
-      sources."@textlint/utils-14.0.4"
-      sources."@types/mdast-3.0.15"
-      sources."@types/unist-2.0.10"
-      sources."ajv-8.12.0"
-      sources."ansi-regex-5.0.1"
-      sources."ansi-styles-4.3.0"
-      sources."argparse-1.0.10"
-      sources."astral-regex-2.0.0"
-      sources."bail-1.0.5"
-      sources."balanced-match-1.0.2"
-      sources."boundary-2.0.0"
-      sources."brace-expansion-1.1.11"
-      sources."ccount-1.1.0"
-      sources."chalk-4.1.2"
-      sources."character-entities-1.2.4"
-      sources."character-entities-legacy-1.1.4"
-      sources."character-reference-invalid-1.1.4"
-      sources."charenc-0.0.2"
-      sources."color-convert-2.0.1"
-      sources."color-name-1.1.4"
-      sources."concat-map-0.0.1"
-      sources."crypt-0.0.2"
-      sources."debug-4.3.4"
-      sources."deep-is-0.1.4"
-      sources."diff-5.2.0"
-      sources."emoji-regex-8.0.0"
-      sources."error-ex-1.3.2"
-      sources."escape-string-regexp-4.0.0"
-      sources."esprima-4.0.1"
-      sources."extend-3.0.2"
-      sources."fast-deep-equal-3.1.3"
-      sources."fast-equals-4.0.3"
-      sources."fast-levenshtein-2.0.6"
-      sources."fault-1.0.4"
-      sources."file-entry-cache-5.0.1"
-      sources."find-up-2.1.0"
-      sources."flat-cache-2.0.1"
-      sources."flatted-2.0.2"
-      sources."format-0.2.2"
-      sources."fs.realpath-1.0.0"
-      sources."function-bind-1.1.2"
-      sources."get-stdin-5.0.1"
-      sources."glob-7.2.3"
-      sources."graceful-fs-4.2.11"
-      sources."has-flag-4.0.0"
-      sources."hasown-2.0.2"
-      sources."hosted-git-info-2.8.9"
-      sources."inflight-1.0.6"
-      sources."inherits-2.0.4"
-      sources."is-alphabetical-1.0.4"
-      sources."is-alphanumerical-1.0.4"
-      sources."is-arrayish-0.2.1"
-      sources."is-buffer-2.0.5"
-      sources."is-core-module-2.13.1"
-      sources."is-decimal-1.0.4"
-      sources."is-fullwidth-code-point-3.0.0"
-      sources."is-hexadecimal-1.0.4"
-      sources."is-plain-obj-2.1.0"
-      sources."is-utf8-0.2.1"
-      sources."js-yaml-3.14.1"
-      sources."json-parse-better-errors-1.0.2"
-      sources."json-schema-traverse-1.0.0"
-      sources."json5-2.2.3"
-      sources."levn-0.4.1"
-      sources."load-json-file-1.1.0"
-      sources."locate-path-2.0.0"
-      sources."lodash-4.17.21"
-      sources."lodash.truncate-4.4.2"
-      sources."longest-streak-2.0.4"
-      sources."markdown-table-2.0.0"
-      (sources."md5-2.3.0" // {
-        dependencies = [
-          sources."is-buffer-1.1.6"
-        ];
-      })
-      sources."mdast-util-find-and-replace-1.1.1"
-      sources."mdast-util-footnote-0.1.7"
-      sources."mdast-util-from-markdown-0.8.5"
-      sources."mdast-util-frontmatter-0.2.0"
-      sources."mdast-util-gfm-0.1.2"
-      sources."mdast-util-gfm-autolink-literal-0.1.3"
-      sources."mdast-util-gfm-strikethrough-0.2.3"
-      sources."mdast-util-gfm-table-0.1.6"
-      sources."mdast-util-gfm-task-list-item-0.1.6"
-      sources."mdast-util-to-markdown-0.6.5"
-      sources."mdast-util-to-string-2.0.0"
-      sources."micromark-2.11.4"
-      sources."micromark-extension-footnote-0.3.2"
-      sources."micromark-extension-frontmatter-0.2.2"
-      sources."micromark-extension-gfm-0.3.3"
-      sources."micromark-extension-gfm-autolink-literal-0.5.7"
-      sources."micromark-extension-gfm-strikethrough-0.6.5"
-      sources."micromark-extension-gfm-table-0.4.3"
-      sources."micromark-extension-gfm-tagfilter-0.3.0"
-      sources."micromark-extension-gfm-task-list-item-0.3.3"
-      sources."minimatch-3.1.2"
-      sources."minimist-1.2.8"
-      sources."mkdirp-0.5.6"
-      sources."ms-2.1.2"
-      sources."normalize-package-data-2.5.0"
-      sources."once-1.4.0"
-      sources."optionator-0.9.3"
-      sources."p-limit-1.3.0"
-      sources."p-locate-2.0.0"
-      sources."p-try-1.0.0"
-      sources."parse-entities-2.0.0"
-      sources."parse-json-2.2.0"
-      sources."path-exists-3.0.0"
-      sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.7"
-      sources."path-to-glob-pattern-2.0.1"
-      sources."path-type-1.1.0"
-      sources."pify-2.3.0"
-      sources."pinkie-2.0.4"
-      sources."pinkie-promise-2.0.1"
-      sources."pluralize-2.0.0"
-      sources."prelude-ls-1.2.1"
-      sources."punycode-2.3.1"
-      (sources."rc-config-loader-4.1.3" // {
-        dependencies = [
-          sources."argparse-2.0.1"
-          sources."js-yaml-4.1.0"
-        ];
-      })
-      sources."read-pkg-1.1.0"
-      (sources."read-pkg-up-3.0.0" // {
-        dependencies = [
-          sources."load-json-file-4.0.0"
-          sources."parse-json-4.0.0"
-          sources."path-type-3.0.0"
-          sources."pify-3.0.0"
-          sources."read-pkg-3.0.0"
-          sources."strip-bom-3.0.0"
-        ];
-      })
-      sources."remark-footnotes-3.0.0"
-      sources."remark-frontmatter-3.0.0"
-      sources."remark-gfm-1.0.0"
-      sources."remark-parse-9.0.0"
-      sources."repeat-string-1.6.1"
-      sources."require-from-string-2.0.2"
-      sources."resolve-1.22.8"
-      sources."rimraf-2.6.3"
-      sources."semver-5.7.2"
-      sources."slice-ansi-4.0.0"
-      sources."spdx-correct-3.2.0"
-      sources."spdx-exceptions-2.5.0"
-      sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.17"
-      sources."sprintf-js-1.0.3"
-      sources."string-width-4.2.3"
-      sources."strip-ansi-6.0.1"
-      sources."strip-bom-2.0.0"
-      sources."structured-source-4.0.0"
-      sources."supports-color-7.2.0"
-      sources."supports-preserve-symlinks-flag-1.0.0"
-      sources."table-6.8.1"
-      sources."text-table-0.2.0"
-      sources."traverse-0.6.8"
-      sources."trough-1.0.5"
-      sources."try-resolve-1.0.1"
-      sources."type-check-0.4.0"
-      sources."unified-9.2.2"
-      sources."unique-concat-0.2.2"
-      sources."unist-util-is-4.1.0"
-      sources."unist-util-stringify-position-2.0.3"
-      sources."unist-util-visit-parents-3.1.1"
-      sources."uri-js-4.4.1"
-      sources."validate-npm-package-license-3.0.4"
-      sources."vfile-4.2.1"
-      sources."vfile-message-2.0.4"
-      sources."wrappy-1.0.2"
-      sources."write-1.0.3"
-      sources."zwitch-1.0.5"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "The pluggable linting tool for text and markdown.";
-      homepage = "https://github.com/textlint/textlint/";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  textlint-plugin-latex = nodeEnv.buildNodePackage {
-    name = "textlint-plugin-latex";
-    packageName = "textlint-plugin-latex";
-    version = "1.0.4";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-plugin-latex/-/textlint-plugin-latex-1.0.4.tgz";
-      sha512 = "ILjivll38Ry+R13ZYG8gGEjPxUP712MSZZIIqm7cV7iUIzysvKQyyf5hYHiNZD/+ijVzlje8RiB49IbvQ7K7mw==";
-    };
-    dependencies = [
-      sources."@textlint/ast-node-types-4.4.3"
-      sources."txt-to-ast-3.0.3"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "Latex plugin for [textlint](https://github.com/textlint/textlint &#34;textlint&#34;).";
-      homepage = "https://github.com/elzup/textlint-plugin-latex";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  textlint-rule-abbr-within-parentheses = nodeEnv.buildNodePackage {
-    name = "textlint-rule-abbr-within-parentheses";
-    packageName = "textlint-rule-abbr-within-parentheses";
-    version = "1.0.2";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-abbr-within-parentheses/-/textlint-rule-abbr-within-parentheses-1.0.2.tgz";
-      sha512 = "GcAtxXttLsZfN75tSCo3V8/RTlglvhnn7McNTgI0uS4ADr67RoD64bSVIs4p/nY3sMNsf1taPjKnhZIQLuVjZg==";
-    };
-    dependencies = [
-      sources."call-bind-1.0.7"
-      sources."define-data-property-1.1.4"
-      sources."define-properties-1.2.1"
-      sources."es-define-property-1.0.0"
-      sources."es-errors-1.3.0"
-      sources."function-bind-1.1.2"
-      sources."functions-have-names-1.2.3"
-      sources."get-intrinsic-1.2.4"
-      sources."gopd-1.0.1"
-      sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.3"
-      sources."has-symbols-1.0.3"
-      sources."hasown-2.0.2"
-      sources."match-index-1.0.3"
-      sources."object-keys-1.1.1"
-      sources."regexp.prototype.flags-1.5.2"
-      sources."set-function-length-1.2.2"
-      sources."set-function-name-2.0.2"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "textlint rule check that abbreviations within parentheses.";
-      homepage = "https://github.com/azu/textlint-rule-abbr-within-parentheses";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  textlint-rule-alex = nodeEnv.buildNodePackage {
-    name = "textlint-rule-alex";
-    packageName = "textlint-rule-alex";
-    version = "5.0.0";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-alex/-/textlint-rule-alex-5.0.0.tgz";
-      sha512 = "8HkUNY0HezGhzQbIMPvZBVdjKIkJ3Wqi29sSMM4Pc89Hdvcpn9Yr8YQoZi/mFn/njSKm/3AYtKoIMx4ziKDDqg==";
-    };
-    dependencies = [
-      sources."@babel/code-frame-7.23.5"
-      sources."@babel/helper-validator-identifier-7.22.20"
-      sources."@babel/highlight-7.23.4"
-      sources."@isaacs/cliui-8.0.2"
-      sources."@npmcli/config-6.4.1"
-      (sources."@npmcli/map-workspaces-3.0.4" // {
-        dependencies = [
-          sources."glob-10.3.10"
-          sources."minimatch-9.0.3"
-        ];
-      })
-      sources."@npmcli/name-from-folder-2.0.0"
-      sources."@pnpm/config.env-replace-1.1.0"
-      (sources."@pnpm/network.ca-file-1.0.2" // {
-        dependencies = [
-          sources."graceful-fs-4.2.10"
-        ];
-      })
-      sources."@pnpm/npm-conf-2.2.2"
-      sources."@sindresorhus/is-5.6.0"
-      sources."@szmarczak/http-timer-5.0.1"
-      sources."@textlint/ast-node-types-13.4.1"
-      sources."@types/acorn-4.0.6"
-      sources."@types/concat-stream-2.0.3"
-      sources."@types/debug-4.1.12"
-      sources."@types/estree-1.0.5"
-      sources."@types/estree-jsx-1.0.5"
-      sources."@types/hast-2.3.10"
-      sources."@types/http-cache-semantics-4.0.4"
-      sources."@types/is-empty-1.2.3"
-      sources."@types/mdast-3.0.15"
-      sources."@types/minimist-1.2.5"
-      sources."@types/ms-0.7.34"
-      sources."@types/nlcst-1.0.4"
-      sources."@types/node-18.19.25"
-      sources."@types/normalize-package-data-2.4.4"
-      sources."@types/supports-color-8.1.3"
-      sources."@types/unist-2.0.10"
-      sources."abbrev-2.0.0"
-      sources."acorn-8.11.3"
-      sources."acorn-jsx-5.3.2"
-      sources."alex-11.0.1"
-      (sources."ansi-align-3.0.1" // {
-        dependencies = [
-          sources."emoji-regex-8.0.0"
-          sources."string-width-4.2.3"
-          sources."strip-ansi-6.0.1"
-        ];
-      })
-      sources."ansi-regex-5.0.1"
-      sources."ansi-styles-3.2.1"
-      sources."array-iterate-2.0.1"
-      sources."arrify-1.0.1"
-      sources."bail-2.0.2"
-      sources."balanced-match-1.0.2"
-      sources."boundary-2.0.0"
-      (sources."boxen-7.1.1" // {
-        dependencies = [
-          sources."chalk-5.3.0"
-          sources."type-fest-2.19.0"
-        ];
-      })
-      sources."brace-expansion-2.0.1"
-      sources."bubble-stream-error-1.0.0"
-      sources."buffer-from-1.1.2"
-      sources."cacheable-lookup-7.0.0"
-      sources."cacheable-request-10.2.14"
-      sources."camelcase-7.0.1"
-      (sources."camelcase-keys-8.0.2" // {
-        dependencies = [
-          sources."type-fest-2.19.0"
-        ];
-      })
-      sources."ccount-2.0.1"
-      sources."chalk-2.4.2"
-      sources."character-entities-2.0.2"
-      sources."character-entities-html4-2.1.0"
-      sources."character-entities-legacy-3.0.0"
-      sources."character-reference-invalid-2.0.1"
-      sources."ci-info-4.0.0"
-      sources."cli-boxes-3.0.0"
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
-      sources."comma-separated-tokens-2.0.3"
-      (sources."concat-stream-2.0.0" // {
-        dependencies = [
-          sources."readable-stream-3.6.2"
-          sources."string_decoder-1.3.0"
-        ];
-      })
-      (sources."config-chain-1.1.13" // {
-        dependencies = [
-          sources."ini-1.3.8"
-        ];
-      })
-      sources."configstore-6.0.0"
-      sources."core-util-is-1.0.3"
-      sources."cross-spawn-7.0.3"
-      (sources."crypto-random-string-4.0.0" // {
-        dependencies = [
-          sources."type-fest-1.4.0"
-        ];
-      })
-      sources."cuss-2.2.0"
-      sources."debug-4.3.4"
-      sources."decamelize-6.0.0"
-      (sources."decamelize-keys-1.1.1" // {
-        dependencies = [
-          sources."decamelize-1.2.0"
-          sources."map-obj-1.0.1"
-        ];
-      })
-      sources."decode-named-character-reference-1.0.2"
-      (sources."decompress-response-6.0.0" // {
-        dependencies = [
-          sources."mimic-response-3.1.0"
-        ];
-      })
-      sources."deep-extend-0.6.0"
-      sources."defer-to-connect-2.0.1"
-      sources."dequal-2.0.3"
-      sources."diff-5.2.0"
-      sources."dot-prop-6.0.1"
-      sources."duplexer-0.1.2"
-      sources."eastasianwidth-0.2.0"
-      sources."emoji-regex-9.2.2"
-      sources."end-of-stream-1.4.4"
-      sources."error-ex-1.3.2"
-      sources."escape-goat-4.0.0"
-      sources."escape-string-regexp-1.0.5"
-      sources."estree-util-is-identifier-name-2.1.0"
-      sources."estree-util-visit-1.2.1"
-      sources."event-stream-3.1.7"
-      sources."extend-3.0.2"
-      sources."fault-2.0.1"
-      sources."find-up-6.3.0"
-      sources."foreground-child-3.1.1"
-      sources."form-data-encoder-2.1.4"
-      sources."format-0.2.2"
-      sources."from-0.1.7"
-      sources."fs.realpath-1.0.0"
-      sources."function-bind-1.1.2"
-      sources."get-stream-6.0.1"
-      sources."git-diff-tree-1.1.0"
-      sources."git-spawned-stream-1.0.1"
-      sources."glob-8.1.0"
-      (sources."global-dirs-3.0.1" // {
-        dependencies = [
-          sources."ini-2.0.0"
-        ];
-      })
-      sources."got-12.6.1"
-      sources."graceful-fs-4.2.11"
-      sources."hard-rejection-2.1.0"
-      sources."has-flag-3.0.0"
-      sources."has-yarn-3.0.0"
-      sources."hasown-2.0.2"
-      sources."hast-util-embedded-2.0.1"
-      sources."hast-util-from-parse5-7.1.2"
-      sources."hast-util-has-property-2.0.1"
-      sources."hast-util-is-body-ok-link-2.0.0"
-      sources."hast-util-is-element-2.1.3"
-      sources."hast-util-parse-selector-3.1.1"
-      sources."hast-util-phrasing-2.0.2"
-      sources."hast-util-to-nlcst-2.2.0"
-      sources."hast-util-to-string-2.0.0"
-      sources."hast-util-whitespace-2.0.1"
-      sources."hastscript-7.2.0"
-      sources."hosted-git-info-5.2.1"
-      sources."http-cache-semantics-4.1.1"
-      (sources."http2-wrapper-2.2.1" // {
-        dependencies = [
-          sources."quick-lru-5.1.1"
-        ];
-      })
-      sources."ignore-5.3.1"
-      sources."import-lazy-4.0.0"
-      sources."import-meta-resolve-2.2.2"
-      sources."imurmurhash-0.1.4"
-      sources."indent-string-5.0.0"
-      sources."inflight-1.0.6"
-      sources."inherits-2.0.4"
-      sources."ini-4.1.2"
-      sources."is-alphabetical-2.0.1"
-      sources."is-alphanumerical-2.0.1"
-      sources."is-arrayish-0.2.1"
-      sources."is-buffer-2.0.5"
-      (sources."is-ci-3.0.1" // {
-        dependencies = [
-          sources."ci-info-3.9.0"
-        ];
-      })
-      sources."is-core-module-2.13.1"
-      sources."is-decimal-2.0.1"
-      sources."is-empty-1.2.0"
-      sources."is-fullwidth-code-point-3.0.0"
-      sources."is-hexadecimal-2.0.1"
-      sources."is-installed-globally-0.4.0"
-      sources."is-npm-6.0.0"
-      sources."is-obj-2.0.0"
-      sources."is-path-inside-3.0.3"
-      sources."is-plain-obj-1.1.0"
-      sources."is-typedarray-1.0.0"
-      sources."is-yarn-global-0.4.1"
-      sources."isarray-0.0.1"
-      sources."isexe-2.0.0"
-      sources."jackspeak-2.3.6"
-      sources."js-tokens-4.0.0"
-      sources."json-buffer-3.0.1"
-      sources."json-parse-even-better-errors-2.3.1"
-      sources."keyv-4.5.4"
-      sources."kind-of-6.0.3"
-      sources."kleur-4.1.5"
-      sources."latest-version-7.0.0"
-      sources."limit-spawn-0.0.3"
-      sources."lines-and-columns-1.2.4"
-      sources."load-plugin-5.1.0"
-      sources."locate-path-7.2.0"
-      sources."longest-streak-3.1.0"
-      sources."lowercase-keys-3.0.0"
-      sources."lru-cache-7.18.3"
-      sources."map-obj-4.3.0"
-      sources."map-stream-0.1.0"
-      sources."markdown-table-3.0.3"
-      sources."mdast-comment-marker-2.1.2"
-      (sources."mdast-util-find-and-replace-2.2.2" // {
-        dependencies = [
-          sources."escape-string-regexp-5.0.0"
-        ];
-      })
-      sources."mdast-util-from-markdown-1.3.1"
-      sources."mdast-util-frontmatter-1.0.1"
-      sources."mdast-util-gfm-2.0.2"
-      sources."mdast-util-gfm-autolink-literal-1.0.3"
-      sources."mdast-util-gfm-footnote-1.0.2"
-      sources."mdast-util-gfm-strikethrough-1.0.3"
-      sources."mdast-util-gfm-table-1.0.7"
-      sources."mdast-util-gfm-task-list-item-1.0.2"
-      sources."mdast-util-mdx-2.0.1"
-      sources."mdast-util-mdx-expression-1.3.2"
-      sources."mdast-util-mdx-jsx-2.1.4"
-      sources."mdast-util-mdxjs-esm-1.3.1"
-      sources."mdast-util-phrasing-3.0.1"
-      sources."mdast-util-to-markdown-1.5.0"
-      sources."mdast-util-to-nlcst-5.2.1"
-      sources."mdast-util-to-string-3.2.0"
-      sources."meow-11.0.0"
-      sources."micromark-3.2.0"
-      sources."micromark-core-commonmark-1.1.0"
-      sources."micromark-extension-frontmatter-1.1.1"
-      sources."micromark-extension-gfm-2.0.3"
-      sources."micromark-extension-gfm-autolink-literal-1.0.5"
-      sources."micromark-extension-gfm-footnote-1.1.2"
-      sources."micromark-extension-gfm-strikethrough-1.0.7"
-      sources."micromark-extension-gfm-table-1.0.7"
-      sources."micromark-extension-gfm-tagfilter-1.0.2"
-      sources."micromark-extension-gfm-task-list-item-1.0.5"
-      sources."micromark-extension-mdx-expression-1.0.8"
-      sources."micromark-extension-mdx-jsx-1.0.5"
-      sources."micromark-extension-mdx-md-1.0.1"
-      sources."micromark-extension-mdxjs-1.0.1"
-      sources."micromark-extension-mdxjs-esm-1.0.5"
-      sources."micromark-factory-destination-1.1.0"
-      sources."micromark-factory-label-1.1.0"
-      sources."micromark-factory-mdx-expression-1.0.9"
-      sources."micromark-factory-space-1.1.0"
-      sources."micromark-factory-title-1.1.0"
-      sources."micromark-factory-whitespace-1.1.0"
-      sources."micromark-util-character-1.2.0"
-      sources."micromark-util-chunked-1.1.0"
-      sources."micromark-util-classify-character-1.1.0"
-      sources."micromark-util-combine-extensions-1.1.0"
-      sources."micromark-util-decode-numeric-character-reference-1.1.0"
-      sources."micromark-util-decode-string-1.1.0"
-      sources."micromark-util-encode-1.1.0"
-      sources."micromark-util-events-to-acorn-1.2.3"
-      sources."micromark-util-html-tag-name-1.2.0"
-      sources."micromark-util-normalize-identifier-1.1.0"
-      sources."micromark-util-resolve-all-1.1.0"
-      sources."micromark-util-sanitize-uri-1.2.0"
-      sources."micromark-util-subtokenize-1.1.0"
-      sources."micromark-util-symbol-1.1.0"
-      sources."micromark-util-types-1.1.0"
-      sources."mimic-response-4.0.0"
-      sources."min-indent-1.0.1"
-      sources."minimatch-5.1.6"
-      sources."minimist-1.2.8"
-      sources."minimist-options-4.1.0"
-      sources."minipass-7.0.4"
-      sources."mri-1.2.0"
-      sources."ms-2.1.2"
-      sources."nlcst-is-literal-2.1.1"
-      sources."nlcst-normalize-3.1.1"
-      sources."nlcst-search-3.1.1"
-      sources."nlcst-to-string-3.1.1"
-      sources."nopt-7.2.0"
-      sources."normalize-package-data-4.0.1"
-      sources."normalize-url-8.0.1"
-      sources."npm-normalize-package-bin-3.0.1"
-      sources."object-keys-0.4.0"
-      sources."once-1.4.0"
-      sources."p-cancelable-3.0.0"
-      sources."p-limit-4.0.0"
-      sources."p-locate-6.0.0"
-      sources."package-json-8.1.1"
-      (sources."parse-english-5.0.0" // {
-        dependencies = [
-          sources."nlcst-to-string-2.0.4"
-        ];
-      })
-      sources."parse-entities-4.0.1"
-      sources."parse-json-5.2.0"
-      (sources."parse-latin-5.0.1" // {
-        dependencies = [
-          sources."unist-util-modify-children-3.1.1"
-          sources."unist-util-visit-children-2.0.2"
-        ];
-      })
-      sources."parse5-6.0.1"
-      sources."path-exists-5.0.0"
-      sources."path-key-3.1.1"
-      (sources."path-scurry-1.10.1" // {
-        dependencies = [
-          sources."lru-cache-10.2.0"
-        ];
-      })
-      sources."pause-stream-0.0.11"
-      sources."pluralize-8.0.0"
-      sources."proc-log-3.0.0"
-      sources."process-nextick-args-1.0.7"
-      sources."property-information-6.4.1"
-      sources."proto-list-1.2.4"
-      sources."pump-1.0.3"
-      sources."pump-chain-1.0.0"
-      sources."pupa-3.1.0"
-      sources."quick-lru-6.1.2"
-      sources."quotation-2.0.3"
-      (sources."rc-1.2.8" // {
-        dependencies = [
-          sources."ini-1.3.8"
-        ];
-      })
-      (sources."read-package-json-fast-3.0.2" // {
-        dependencies = [
-          sources."json-parse-even-better-errors-3.0.1"
-        ];
-      })
-      (sources."read-pkg-7.1.0" // {
-        dependencies = [
-          sources."hosted-git-info-4.1.0"
-          sources."lru-cache-6.0.0"
-          sources."normalize-package-data-3.0.3"
-          sources."type-fest-2.19.0"
-        ];
-      })
-      (sources."read-pkg-up-9.1.0" // {
-        dependencies = [
-          sources."type-fest-2.19.0"
-        ];
-      })
-      sources."readable-stream-1.0.34"
-      sources."redent-4.0.0"
-      sources."registry-auth-token-5.0.2"
-      sources."registry-url-6.0.1"
-      sources."rehype-parse-8.0.5"
-      sources."rehype-retext-3.0.2"
-      sources."remark-frontmatter-4.0.1"
-      sources."remark-gfm-3.0.1"
-      sources."remark-mdx-2.0.0"
-      sources."remark-message-control-7.1.1"
-      sources."remark-parse-10.0.2"
-      sources."remark-retext-5.0.1"
-      sources."resolve-alpn-1.2.1"
-      sources."responselike-3.0.0"
-      sources."retext-english-4.1.0"
-      sources."retext-equality-6.6.0"
-      sources."retext-profanities-7.2.2"
-      sources."sade-1.8.1"
-      sources."safe-buffer-5.2.1"
-      (sources."semver-7.6.0" // {
-        dependencies = [
-          sources."lru-cache-6.0.0"
-        ];
-      })
-      sources."semver-diff-4.0.0"
-      sources."shebang-command-2.0.0"
-      sources."shebang-regex-3.0.0"
-      sources."signal-exit-4.1.0"
-      sources."sliced-1.0.1"
-      sources."space-separated-tokens-2.0.2"
-      (sources."spawn-to-readstream-0.1.3" // {
-        dependencies = [
-          sources."through2-0.4.2"
-        ];
-      })
-      sources."spdx-correct-3.2.0"
-      sources."spdx-exceptions-2.5.0"
-      sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.17"
-      sources."split-0.2.10"
-      (sources."split-transform-stream-0.1.1" // {
-        dependencies = [
-          sources."bubble-stream-error-0.0.1"
-          sources."through2-0.4.2"
-        ];
-      })
-      sources."stream-combiner-0.0.4"
-      sources."string-width-5.1.2"
-      (sources."string-width-cjs-4.2.3" // {
-        dependencies = [
-          sources."emoji-regex-8.0.0"
-          sources."strip-ansi-6.0.1"
-        ];
-      })
-      sources."string_decoder-0.10.31"
-      sources."stringify-entities-4.0.3"
-      (sources."strip-ansi-7.1.0" // {
-        dependencies = [
-          sources."ansi-regex-6.0.1"
-        ];
-      })
-      sources."strip-ansi-cjs-6.0.1"
-      sources."strip-indent-4.0.0"
-      sources."strip-json-comments-2.0.1"
-      sources."structured-source-4.0.0"
-      sources."supports-color-5.5.0"
-      (sources."textlint-rule-helper-2.3.1" // {
-        dependencies = [
-          sources."unist-util-is-4.1.0"
-          sources."unist-util-visit-2.0.3"
-          sources."unist-util-visit-parents-3.1.1"
-        ];
-      })
-      sources."through-2.3.8"
-      (sources."through2-2.0.0" // {
-        dependencies = [
-          sources."isarray-1.0.0"
-          sources."readable-stream-2.0.6"
-          sources."xtend-4.0.2"
-        ];
-      })
-      sources."to-vfile-7.2.4"
-      sources."trim-newlines-4.1.1"
-      sources."trough-2.2.0"
-      sources."type-fest-3.13.1"
-      sources."typedarray-0.0.6"
-      sources."typedarray-to-buffer-3.1.5"
-      sources."undici-types-5.26.5"
-      sources."unherit-3.0.1"
-      (sources."unified-10.1.2" // {
-        dependencies = [
-          sources."is-plain-obj-4.1.0"
-        ];
-      })
-      sources."unified-diff-4.0.1"
-      (sources."unified-engine-10.1.0" // {
-        dependencies = [
-          sources."is-plain-obj-4.1.0"
-          sources."lines-and-columns-2.0.4"
-          sources."parse-json-6.0.2"
-        ];
-      })
-      (sources."unified-message-control-4.0.0" // {
-        dependencies = [
-          sources."unist-util-visit-3.1.0"
-          sources."unist-util-visit-parents-4.1.1"
-        ];
-      })
-      sources."unique-string-3.0.0"
-      sources."unist-util-inspect-7.0.2"
-      sources."unist-util-is-5.2.1"
-      (sources."unist-util-modify-children-2.0.0" // {
-        dependencies = [
-          sources."array-iterate-1.1.4"
-        ];
-      })
-      sources."unist-util-position-4.0.4"
-      sources."unist-util-position-from-estree-1.1.2"
-      sources."unist-util-remove-position-4.0.2"
-      sources."unist-util-stringify-position-3.0.3"
-      sources."unist-util-visit-4.1.2"
-      sources."unist-util-visit-children-1.1.4"
-      sources."unist-util-visit-parents-5.1.3"
-      (sources."update-notifier-6.0.2" // {
-        dependencies = [
-          sources."chalk-5.3.0"
-        ];
-      })
-      sources."util-deprecate-1.0.2"
-      sources."uvu-0.5.6"
-      sources."validate-npm-package-license-3.0.4"
-      sources."vfile-5.3.7"
-      sources."vfile-find-up-6.1.0"
-      sources."vfile-location-4.1.0"
-      sources."vfile-message-3.1.4"
-      (sources."vfile-reporter-7.0.5" // {
-        dependencies = [
-          sources."supports-color-9.4.0"
-        ];
-      })
-      sources."vfile-sort-3.0.1"
-      sources."vfile-statistics-2.0.1"
-      sources."walk-up-path-3.0.1"
-      sources."web-namespaces-2.0.1"
-      sources."which-2.0.2"
-      sources."widest-line-4.0.1"
-      (sources."wrap-ansi-8.1.0" // {
-        dependencies = [
-          sources."ansi-styles-6.2.1"
-        ];
-      })
-      (sources."wrap-ansi-cjs-7.0.0" // {
-        dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."emoji-regex-8.0.0"
-          sources."string-width-4.2.3"
-          sources."strip-ansi-6.0.1"
-        ];
-      })
-      sources."wrappy-1.0.2"
-      (sources."write-file-atomic-3.0.3" // {
-        dependencies = [
-          sources."signal-exit-3.0.7"
-        ];
-      })
-      sources."xdg-basedir-5.1.0"
-      sources."xtend-2.1.2"
-      sources."yallist-4.0.0"
-      sources."yaml-2.4.1"
-      sources."yargs-parser-21.1.1"
-      sources."yocto-queue-1.0.0"
-      sources."zwitch-2.0.4"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "textlint rule for alex";
-      homepage = "https://github.com/textlint-rule/textlint-rule-alex";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  textlint-rule-common-misspellings = nodeEnv.buildNodePackage {
-    name = "textlint-rule-common-misspellings";
-    packageName = "textlint-rule-common-misspellings";
-    version = "1.0.1";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-common-misspellings/-/textlint-rule-common-misspellings-1.0.1.tgz";
-      sha512 = "f5KWhQFJzJBUX3RirAS25aSkAaaOHeSHtBeb7d49O+vxnAX3dZBS5DB/e5M1kR4tifW4qae64oqWZygoGYWkjQ==";
-    };
-    dependencies = [
-      sources."misspellings-1.1.0"
-      sources."textlint-rule-helper-1.2.0"
-      sources."unist-util-is-3.0.0"
-      sources."unist-util-visit-1.4.1"
-      sources."unist-util-visit-parents-2.1.2"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "textlint rule to check common misspellings";
-      homepage = "https://github.com/io-monad/textlint-rule-common-misspellings";
-      license = "GPL-3.0";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  textlint-rule-diacritics = nodeEnv.buildNodePackage {
-    name = "textlint-rule-diacritics";
-    packageName = "textlint-rule-diacritics";
-    version = "1.0.0";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-diacritics/-/textlint-rule-diacritics-1.0.0.tgz";
-      sha512 = "hhJvDZzhV+sKD7walPQ4VmWkBw5o1T/lFLRsoDsAJF+LYhD89R5/L4yFVtxFRUkP9VZ5cvoUIPkYjZvkPEawTA==";
-    };
-    dependencies = [
-      sources."match-casing-1.0.3"
-      sources."strip-json-comments-3.1.1"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "Textlint rule to check correct usage of diacritics";
-      homepage = "https://github.com/sapegin/textlint-rule-diacritics";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  textlint-rule-en-max-word-count = nodeEnv.buildNodePackage {
-    name = "textlint-rule-en-max-word-count";
-    packageName = "textlint-rule-en-max-word-count";
-    version = "2.0.1";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-en-max-word-count/-/textlint-rule-en-max-word-count-2.0.1.tgz";
-      sha512 = "gZMxUU+/O8QIchBQoo50QryknmMKahb2vBj89wVvk+Dhvp70nAJKSkpt2vjZVYBWCxpIKysQlwheBjrFZWpkfg==";
-    };
-    dependencies = [
-      sources."@textlint/ast-node-types-13.4.1"
-      sources."@types/unist-2.0.10"
-      sources."bail-1.0.5"
-      sources."boundary-2.0.0"
-      sources."ccount-1.1.0"
-      sources."comma-separated-tokens-1.0.8"
-      sources."extend-3.0.2"
-      sources."hast-util-from-parse5-5.0.3"
-      sources."hast-util-parse-selector-2.2.5"
-      sources."hastscript-5.1.2"
-      sources."is-buffer-2.0.5"
-      sources."is-plain-obj-2.1.0"
-      sources."parse5-5.1.1"
-      sources."property-information-5.6.0"
-      sources."rehype-parse-6.0.2"
-      sources."sentence-splitter-4.4.1"
-      sources."space-separated-tokens-1.1.5"
-      sources."structured-source-4.0.0"
-      sources."textlint-util-to-string-3.3.4"
-      sources."trough-1.0.5"
-      sources."unified-8.4.2"
-      sources."unist-util-stringify-position-2.0.3"
-      sources."vfile-4.2.1"
-      sources."vfile-message-2.0.4"
-      sources."web-namespaces-1.1.4"
-      sources."xtend-4.0.2"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "textlint rule that specify the maximum word count of a sentence.";
-      homepage = "https://github.com/textlint-rule/textlint-rule-en-max-word-count";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  textlint-rule-max-comma = nodeEnv.buildNodePackage {
-    name = "textlint-rule-max-comma";
-    packageName = "textlint-rule-max-comma";
-    version = "4.0.0";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-max-comma/-/textlint-rule-max-comma-4.0.0.tgz";
-      sha512 = "2vKKXNg1YuTqr9/FrHvOGEHFe+6lNSDtzuEv+KRB+tuaj++UNa/YPvyY34UdDYuHUSKNcYdto8GlIUhAJDW9WQ==";
-    };
-    dependencies = [
-      sources."@textlint/ast-node-types-13.4.1"
-      sources."@types/unist-2.0.10"
-      sources."bail-1.0.5"
-      sources."boundary-2.0.0"
-      sources."ccount-1.1.0"
-      sources."comma-separated-tokens-1.0.8"
-      sources."extend-3.0.2"
-      sources."hast-util-from-parse5-5.0.3"
-      sources."hast-util-parse-selector-2.2.5"
-      sources."hastscript-5.1.2"
-      sources."is-buffer-2.0.5"
-      sources."is-plain-obj-2.1.0"
-      sources."parse5-5.1.1"
-      sources."property-information-5.6.0"
-      sources."rehype-parse-6.0.2"
-      sources."sentence-splitter-5.0.0"
-      sources."space-separated-tokens-1.1.5"
-      sources."structured-source-4.0.0"
-      sources."textlint-util-to-string-3.3.4"
-      sources."trough-1.0.5"
-      sources."unified-8.4.2"
-      sources."unist-util-stringify-position-2.0.3"
-      sources."vfile-4.2.1"
-      sources."vfile-message-2.0.4"
-      sources."web-namespaces-1.1.4"
-      sources."xtend-4.0.2"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "textlint rule that limit maxinum comma(,) count of sentence.";
-      homepage = "https://github.com/azu/textlint-rule-max-comma#readme";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  textlint-rule-no-start-duplicated-conjunction = nodeEnv.buildNodePackage {
-    name = "textlint-rule-no-start-duplicated-conjunction";
-    packageName = "textlint-rule-no-start-duplicated-conjunction";
-    version = "2.0.2";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-no-start-duplicated-conjunction/-/textlint-rule-no-start-duplicated-conjunction-2.0.2.tgz";
-      sha512 = "HydBbkWjnMn4KrnlpnusY1BGjIG+64UySxRCvRphUAIiuJL2nbkdrIIiOjwfQhllKUa7Sf33bs6RAcbEWjZVfg==";
-    };
-    dependencies = [
-      sources."@textlint/ast-node-types-4.4.3"
-      sources."@types/unist-2.0.10"
-      sources."boundary-1.0.1"
-      sources."buffer-from-1.1.2"
-      sources."concat-stream-2.0.0"
-      sources."inherits-2.0.4"
-      sources."object-assign-4.1.1"
-      sources."object_values-0.1.2"
-      sources."readable-stream-3.6.2"
-      sources."safe-buffer-5.2.1"
-      sources."sentence-splitter-3.2.3"
-      sources."string_decoder-1.3.0"
-      sources."structured-source-3.0.2"
-      (sources."textlint-rule-helper-2.3.1" // {
-        dependencies = [
-          sources."@textlint/ast-node-types-13.4.1"
-          sources."boundary-2.0.0"
-          sources."structured-source-4.0.0"
-        ];
-      })
-      sources."typedarray-0.0.6"
-      sources."unist-util-is-4.1.0"
-      sources."unist-util-visit-2.0.3"
-      sources."unist-util-visit-parents-3.1.1"
-      sources."util-deprecate-1.0.2"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "textlint rule that check no start with duplicated conjunction.";
-      homepage = "https://github.com/textlint-rule/textlint-rule-no-start-duplicated-conjunction";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  textlint-rule-period-in-list-item = nodeEnv.buildNodePackage {
-    name = "textlint-rule-period-in-list-item";
-    packageName = "textlint-rule-period-in-list-item";
-    version = "1.0.1";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-period-in-list-item/-/textlint-rule-period-in-list-item-1.0.1.tgz";
-      sha512 = "dNPa4WzePcgsz8A+CxFGQgKNZCEvjjwMCu3DFcpYB4eKuhcSISEiS/mvEO42oGAALJluYdYVZxN3yMD6XzkLBA==";
-    };
-    dependencies = [
-      sources."check-ends-with-period-3.0.2"
-      sources."emoji-regex-10.3.0"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "textlint rule that check with or without period in list item.";
-      homepage = "https://github.com/textlint-rule/textlint-rule-period-in-list-item";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  textlint-rule-stop-words = nodeEnv.buildNodePackage {
-    name = "textlint-rule-stop-words";
-    packageName = "textlint-rule-stop-words";
-    version = "4.0.0";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-stop-words/-/textlint-rule-stop-words-4.0.0.tgz";
-      sha512 = "vP99cbTyapn+Hviom2doO3pJtjlhKlZvlHTf21zoB22CxJx2w3S7Ie169neB5U4Xsei+NodHf5tnwT933mO19A==";
-    };
-    dependencies = [
-      sources."@textlint/ast-node-types-13.4.1"
-      sources."@types/unist-2.0.10"
-      sources."boundary-2.0.0"
-      sources."lodash-4.17.21"
-      sources."split-lines-2.1.0"
-      sources."structured-source-4.0.0"
-      sources."textlint-rule-helper-2.3.1"
-      sources."unist-util-is-4.1.0"
-      sources."unist-util-visit-2.0.3"
-      sources."unist-util-visit-parents-3.1.1"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "Textlint rule to find filler words, buzzwords and chiches";
-      homepage = "https://github.com/sapegin/textlint-rule-stop-words";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  textlint-rule-terminology = nodeEnv.buildNodePackage {
-    name = "textlint-rule-terminology";
-    packageName = "textlint-rule-terminology";
-    version = "4.0.1";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-terminology/-/textlint-rule-terminology-4.0.1.tgz";
-      sha512 = "wKiVhc2B9HP2MFU4x7ZDx+oM5u43ETpKWTLHKvdhPRZ0+davi4M8mFmkZVovDIMO7igsGjixikcvFmnCMg3kmQ==";
-    };
-    dependencies = [
-      sources."@textlint/ast-node-types-13.4.1"
-      sources."@types/unist-2.0.10"
-      sources."boundary-2.0.0"
-      sources."lodash-4.17.21"
-      sources."strip-json-comments-3.1.1"
-      sources."structured-source-4.0.0"
-      sources."textlint-rule-helper-2.3.1"
-      sources."unist-util-is-4.1.0"
-      sources."unist-util-visit-2.0.3"
-      sources."unist-util-visit-parents-3.1.1"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "TextLint rule to check correct terms spelling";
-      homepage = "https://github.com/sapegin/textlint-rule-terminology";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  textlint-rule-unexpanded-acronym = nodeEnv.buildNodePackage {
-    name = "textlint-rule-unexpanded-acronym";
-    packageName = "textlint-rule-unexpanded-acronym";
-    version = "1.2.4";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-unexpanded-acronym/-/textlint-rule-unexpanded-acronym-1.2.4.tgz";
-      sha512 = "F1kV06CdonOM2awtXjCSRYUsRJfDfZIujQQo4zEMqNqD6UwpkapxpZOiwcwbeaQz00+17ljbJEoGqIe2XeiU+w==";
-    };
-    dependencies = [
-      sources."array-buffer-byte-length-1.0.1"
-      sources."array-includes-3.1.7"
-      sources."arraybuffer.prototype.slice-1.0.3"
-      sources."available-typed-arrays-1.0.7"
-      sources."call-bind-1.0.7"
-      sources."data-view-buffer-1.0.1"
-      sources."data-view-byte-length-1.0.1"
-      sources."data-view-byte-offset-1.0.0"
-      sources."define-data-property-1.1.4"
-      sources."define-properties-1.2.1"
-      sources."es-abstract-1.23.2"
-      sources."es-define-property-1.0.0"
-      sources."es-errors-1.3.0"
-      sources."es-object-atoms-1.0.0"
-      sources."es-set-tostringtag-2.0.3"
-      sources."es-to-primitive-1.2.1"
-      sources."for-each-0.3.3"
-      sources."function-bind-1.1.2"
-      sources."function.prototype.name-1.1.6"
-      sources."functions-have-names-1.2.3"
-      sources."get-intrinsic-1.2.4"
-      sources."get-symbol-description-1.0.2"
-      sources."globalthis-1.0.3"
-      sources."gopd-1.0.1"
-      sources."has-bigints-1.0.2"
-      sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.3"
-      sources."has-symbols-1.0.3"
-      sources."has-tostringtag-1.0.2"
-      sources."hasown-2.0.2"
-      sources."internal-slot-1.0.7"
-      sources."is-array-buffer-3.0.4"
-      sources."is-bigint-1.0.4"
-      sources."is-boolean-object-1.1.2"
-      sources."is-callable-1.2.7"
-      sources."is-capitalized-1.0.0"
-      sources."is-data-view-1.0.1"
-      sources."is-date-object-1.0.5"
-      sources."is-negative-zero-2.0.3"
-      sources."is-number-object-1.0.7"
-      sources."is-regex-1.1.4"
-      sources."is-shared-array-buffer-1.0.3"
-      sources."is-string-1.0.7"
-      sources."is-symbol-1.0.4"
-      sources."is-typed-array-1.1.13"
-      sources."is-weakref-1.0.2"
-      sources."isarray-2.0.5"
-      sources."object-inspect-1.13.1"
-      sources."object-keys-1.1.1"
-      sources."object.assign-4.1.5"
-      sources."possible-typed-array-names-1.0.0"
-      sources."regexp.prototype.flags-1.5.2"
-      sources."safe-array-concat-1.1.2"
-      sources."safe-regex-test-1.0.3"
-      sources."set-function-length-1.2.2"
-      sources."set-function-name-2.0.2"
-      sources."side-channel-1.0.6"
-      sources."string.prototype.trim-1.2.9"
-      sources."string.prototype.trimend-1.0.8"
-      sources."string.prototype.trimstart-1.0.7"
-      sources."typed-array-buffer-1.0.2"
-      sources."typed-array-byte-length-1.0.1"
-      sources."typed-array-byte-offset-1.0.2"
-      sources."typed-array-length-1.0.5"
-      sources."unbox-primitive-1.0.2"
-      sources."which-boxed-primitive-1.0.2"
-      sources."which-typed-array-1.1.15"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "textlint rule that check unexpanded acronym word.";
-      homepage = "https://github.com/textlint-rule/textlint-rule-unexpanded-acronym";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  textlint-rule-write-good = nodeEnv.buildNodePackage {
-    name = "textlint-rule-write-good";
-    packageName = "textlint-rule-write-good";
-    version = "2.0.0";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-write-good/-/textlint-rule-write-good-2.0.0.tgz";
-      sha512 = "yvOJavJD+PgyUzvsoLDDzDtgCVBva/HNhEvsFnYVugrWz0qy2hr+/4B4wkzjro4wfPbwz20GQe5h13N4DeUEeA==";
-    };
-    dependencies = [
-      sources."@textlint/ast-node-types-13.4.1"
-      sources."@types/unist-2.0.10"
-      sources."adverb-where-0.2.6"
-      sources."boundary-2.0.0"
-      sources."commander-2.20.3"
-      sources."e-prime-0.10.4"
-      sources."no-cliches-0.3.6"
-      sources."passive-voice-0.1.0"
-      sources."structured-source-4.0.0"
-      sources."textlint-rule-helper-2.3.1"
-      sources."too-wordy-0.3.6"
-      sources."unist-util-is-4.1.0"
-      sources."unist-util-visit-2.0.3"
-      sources."unist-util-visit-parents-3.1.1"
-      sources."weasel-words-0.1.1"
-      sources."write-good-1.0.8"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "textlint rule to check your English style with write good";
-      homepage = "https://github.com/textlint-rule/textlint-rule-write-good";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
   thelounge-plugin-closepms = nodeEnv.buildNodePackage {
     name = "thelounge-plugin-closepms";
     packageName = "thelounge-plugin-closepms";
diff --git a/pkgs/development/ocaml-modules/bap/default.nix b/pkgs/development/ocaml-modules/bap/default.nix
index 0d2b4247bd423..a56bce316ef6d 100644
--- a/pkgs/development/ocaml-modules/bap/default.nix
+++ b/pkgs/development/ocaml-modules/bap/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchurl, fetchpatch
+{ lib, stdenv, fetchFromGitHub, fetchurl
 , ocaml, findlib, ocamlbuild, ocaml_oasis
 , bitstring, camlzip, cmdliner, core_kernel, ezjsonm, fileutils, mmap, lwt, ocamlgraph, ocurl, re, uri, zarith, piqi, piqi-ocaml, uuidm, llvm, frontc, ounit, ppx_jane, parsexp
 , utop, libxml2, ncurses
diff --git a/pkgs/development/ocaml-modules/bisect_ppx/default.nix b/pkgs/development/ocaml-modules/bisect_ppx/default.nix
index 114e638fa6c44..4d01125188dc7 100644
--- a/pkgs/development/ocaml-modules/bisect_ppx/default.nix
+++ b/pkgs/development/ocaml-modules/bisect_ppx/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, fetchpatch, buildDunePackage, cmdliner, ppxlib }:
+{ lib, fetchFromGitHub, buildDunePackage, cmdliner, ppxlib }:
 
 buildDunePackage rec {
   pname = "bisect_ppx";
diff --git a/pkgs/development/ocaml-modules/bistro/default.nix b/pkgs/development/ocaml-modules/bistro/default.nix
index fd409b51091d6..bb424a5ce9aeb 100644
--- a/pkgs/development/ocaml-modules/bistro/default.nix
+++ b/pkgs/development/ocaml-modules/bistro/default.nix
@@ -1,6 +1,4 @@
 { lib
-, ocaml
-, fetchpatch
 , fetchFromGitHub
 , buildDunePackage
 , base64
diff --git a/pkgs/development/ocaml-modules/bytestring/default.nix b/pkgs/development/ocaml-modules/bytestring/default.nix
new file mode 100644
index 0000000000000..3714846ee6b5c
--- /dev/null
+++ b/pkgs/development/ocaml-modules/bytestring/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, ppxlib
+, rio
+, sedlex
+, spices
+, uutf
+, qcheck
+}:
+
+buildDunePackage rec {
+  pname = "bytestring";
+  version = "0.0.8";
+
+  minimalOCamlVersion = "5.1";
+
+  src = fetchurl {
+    url = "https://github.com/riot-ml/riot/releases/download/${version}/riot-${version}.tbz";
+    hash = "sha256-SsiDz53b9bMIT9Q3IwDdB3WKy98WSd9fiieU41qZpeE=";
+  };
+
+  propagatedBuildInputs = [
+    ppxlib
+    sedlex
+    spices
+    rio
+    uutf
+  ];
+
+  checkInputs = [
+    qcheck
+  ];
+
+  # Checks fail with OCaml 5.2
+  doCheck = false;
+
+  meta = {
+    description = "Efficient, immutable, pattern-matchable, UTF friendly byte strings";
+    homepage = "https://github.com/riot-ml/riot";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
+
diff --git a/pkgs/development/ocaml-modules/colors/default.nix b/pkgs/development/ocaml-modules/colors/default.nix
new file mode 100644
index 0000000000000..0335d5e425ba4
--- /dev/null
+++ b/pkgs/development/ocaml-modules/colors/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, mdx
+}:
+
+buildDunePackage rec {
+  pname = "colors";
+  version = "0.0.1";
+
+  minimalOCamlVersion = "4.13";
+
+  src = fetchurl {
+    url = "https://github.com/leostera/colors/releases/download/${version}/colors-${version}.tbz";
+    hash = "sha256-fY1j9FODVnifwsI8qkKm0QSmssgWqYFXJ7y8o7/KmEY=";
+  };
+
+  doCheck = true;
+
+  checkInputs = [
+    mdx
+  ];
+
+  nativeCheckInputs = [
+    mdx.bin
+  ];
+
+  meta = {
+    description = "A pure OCaml library for manipulating colors across color spaces";
+    homepage = "https://github.com/leostera/colors";
+    changelog = "https://github.com/leostera/colors/blob/${version}/CHANGES.md";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/config/default.nix b/pkgs/development/ocaml-modules/config/default.nix
new file mode 100644
index 0000000000000..43ad500602ee7
--- /dev/null
+++ b/pkgs/development/ocaml-modules/config/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, ppxlib
+, spices
+}:
+
+buildDunePackage rec {
+  pname = "config";
+  version = "0.0.3";
+
+  src = fetchurl {
+    url = "https://github.com/ocaml-sys/config.ml/releases/download/${version}/config-${version}.tbz";
+    hash = "sha256-bcRCfLX2ro8vnQTJiX2aYGJC+eD26vkPynMYg817YFM=";
+  };
+
+  propagatedBuildInputs = [
+    ppxlib
+    spices
+  ];
+
+  meta = {
+    description = "Ergonomic, lightweight conditional compilation through attributes";
+    homepage = "https://github.com/ocaml-sys/config.ml";
+    license = lib.licenses.mit;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/eio/default.nix b/pkgs/development/ocaml-modules/eio/default.nix
index d90b40d1fe2c8..60e09d35db7b1 100644
--- a/pkgs/development/ocaml-modules/eio/default.nix
+++ b/pkgs/development/ocaml-modules/eio/default.nix
@@ -1,6 +1,6 @@
 { lib
 , ocaml
-, version ? if lib.versionAtLeast ocaml.version "5.1" then "1.0" else "0.12"
+, version ? if lib.versionAtLeast ocaml.version "5.1" then "1.1" else "0.12"
 , buildDunePackage
 , bigstringaf
 , cstruct
@@ -24,9 +24,9 @@ let
       minimalOCamlVersion = "5.0";
       hash = "sha256-2EhHzoX/t4ZBSWrSS+PGq1zCxohc7a1q4lfsrFnZJqA=";
     };
-    "1.0" = {
+    "1.1" = {
       minimalOCamlVersion = "5.1";
-      hash = "sha256-2iYNnaOLPd6fMWZSogsTomHPkLhaJJisZpt9Vk5hlC0=";
+      hash = "sha256-NGEEiEB38UCzV04drMwCISlgxu/reTyAPj5ri6/qD6s=";
     };
   }."${version}";
 in
diff --git a/pkgs/development/ocaml-modules/eio/linux.nix b/pkgs/development/ocaml-modules/eio/linux.nix
index b376f709794a5..f6ed30d4e80d1 100644
--- a/pkgs/development/ocaml-modules/eio/linux.nix
+++ b/pkgs/development/ocaml-modules/eio/linux.nix
@@ -7,7 +7,7 @@
 
 buildDunePackage {
   pname = "eio_linux";
-  inherit (eio) meta src version;
+  inherit (eio) meta src patches version;
 
   minimalOCamlVersion = "5.0";
 
diff --git a/pkgs/development/ocaml-modules/eio/main.nix b/pkgs/development/ocaml-modules/eio/main.nix
index 410e535512755..a65b27b8db411 100644
--- a/pkgs/development/ocaml-modules/eio/main.nix
+++ b/pkgs/development/ocaml-modules/eio/main.nix
@@ -8,7 +8,7 @@
 
 buildDunePackage {
   pname = "eio_main";
-  inherit (eio) meta src version;
+  inherit (eio) meta src patches version;
 
   minimalOCamlVersion = "5.0";
 
diff --git a/pkgs/development/ocaml-modules/eio/posix.nix b/pkgs/development/ocaml-modules/eio/posix.nix
index cba34a0d63899..c18cdd506141e 100644
--- a/pkgs/development/ocaml-modules/eio/posix.nix
+++ b/pkgs/development/ocaml-modules/eio/posix.nix
@@ -10,7 +10,7 @@
 
 buildDunePackage {
   pname = "eio_posix";
-  inherit (eio) meta src version;
+  inherit (eio) meta src patches version;
 
   minimalOCamlVersion = "5.0";
 
diff --git a/pkgs/development/ocaml-modules/git/unix.nix b/pkgs/development/ocaml-modules/git/unix.nix
index 28bfb40cf8cbc..adad5dc0792eb 100644
--- a/pkgs/development/ocaml-modules/git/unix.nix
+++ b/pkgs/development/ocaml-modules/git/unix.nix
@@ -1,11 +1,11 @@
-{ buildDunePackage, fetchpatch, git
+{ buildDunePackage, git
 , rresult, result, bigstringaf
 , fmt, bos, fpath, uri, digestif, logs, lwt
 , mirage-clock, mirage-clock-unix, astring, awa, cmdliner
 , decompress, domain-name, ipaddr, mtime
 , tcpip, awa-mirage, mirage-flow, mirage-unix
 , alcotest, alcotest-lwt, base64, cstruct
-, ke, mirage-crypto-rng, ocurl, git-binary
+, ke, mirage-crypto-rng, git-binary
 , ptime, mimic, ca-certs-nss, tls, tls-mirage
 , cacert, happy-eyeballs-lwt, git-mirage
 }:
diff --git a/pkgs/development/ocaml-modules/gluon/default.nix b/pkgs/development/ocaml-modules/gluon/default.nix
new file mode 100644
index 0000000000000..df700d933ebfc
--- /dev/null
+++ b/pkgs/development/ocaml-modules/gluon/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, bytestring
+, config
+, libc
+, rio
+, uri
+}:
+
+buildDunePackage rec {
+  pname = "gluon";
+  version = "0.0.9";
+
+  minimalOCamlVersion = "5.1";
+
+  src = fetchurl {
+    url = "https://github.com/riot-ml/gluon/releases/download/${version}/gluon-${version}.tbz";
+    hash = "sha256-YWJCPokY1A7TGqCGoxJl14oKDVeMNybEEB7KiK92WSo=";
+  };
+
+  buildInputs = [
+    config
+  ];
+
+  propagatedBuildInputs = [
+    bytestring
+    libc
+    rio
+    uri
+  ];
+
+  meta = {
+    description = "A minimal, portable, and fast API on top of the operating-system's evented I/O API";
+    homepage = "https://github.com/riot-ml/gluon";
+    changelog = "https://github.com/riot-ml/gluon/blob/${version}/CHANGES.md";
+    license = lib.licenses.mit;
+    maintainers = [ ];
+  };
+}
+
+
diff --git a/pkgs/development/ocaml-modules/httpaf/default.nix b/pkgs/development/ocaml-modules/httpaf/default.nix
index 6dce28fb20202..336b74f8277be 100644
--- a/pkgs/development/ocaml-modules/httpaf/default.nix
+++ b/pkgs/development/ocaml-modules/httpaf/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, fetchpatch, buildDunePackage
+{ lib, fetchFromGitHub, buildDunePackage
 , angstrom, faraday, result, alcotest
 }:
 
diff --git a/pkgs/development/ocaml-modules/libc/default.nix b/pkgs/development/ocaml-modules/libc/default.nix
new file mode 100644
index 0000000000000..13e0f04ddfc78
--- /dev/null
+++ b/pkgs/development/ocaml-modules/libc/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, config
+}:
+
+buildDunePackage rec {
+  pname = "libc";
+  version = "0.0.1";
+
+  src = fetchurl {
+    url = "https://github.com/ocaml-sys/libc.ml/releases/download/${version}/libc-${version}.tbz";
+    hash = "sha256-e5x5Yae7V6qOpq+aLZaV+6L9ldy9qDqd9Kc8nkAsENg=";
+  };
+
+  buildInputs = [
+    config
+  ];
+
+  meta = {
+    description = "Raw definitions and bindings to platforms system libraries";
+    homepage = "https://github.com/ocaml-sys/libc.ml";
+    license = lib.licenses.mit;
+  };
+}
+
diff --git a/pkgs/development/ocaml-modules/minttea/default.nix b/pkgs/development/ocaml-modules/minttea/default.nix
index 8d81317edd1f3..75ff04929f9b3 100644
--- a/pkgs/development/ocaml-modules/minttea/default.nix
+++ b/pkgs/development/ocaml-modules/minttea/default.nix
@@ -7,13 +7,13 @@
 
 buildDunePackage rec {
   pname = "minttea";
-  version = "0.0.1";
+  version = "0.0.3";
 
   minimalOCamlVersion = "5.1";
 
   src = fetchurl {
     url = "https://github.com/leostera/minttea/releases/download/${version}/minttea-${version}.tbz";
-    hash = "sha256-+4nVeYKx2A2i2nll/PbStcEa+Dvxd0T7e/KsdJqY4bI=";
+    hash = "sha256-WEaJVCCvsmKcF8+yzovljt8dGWaIv4UmAr74jq6Vo9M=";
   };
 
   propagatedBuildInputs = [
@@ -21,8 +21,6 @@ buildDunePackage rec {
     tty
   ];
 
-  doCheck = true;
-
   meta = {
     description = "A fun, functional, and stateful way to build terminal apps in OCaml heavily inspired by Go's BubbleTea";
     homepage = "https://github.com/leostera/minttea";
diff --git a/pkgs/development/ocaml-modules/piqi-ocaml/default.nix b/pkgs/development/ocaml-modules/piqi-ocaml/default.nix
index 39ae5a86c5982..ae1efafb22516 100644
--- a/pkgs/development/ocaml-modules/piqi-ocaml/default.nix
+++ b/pkgs/development/ocaml-modules/piqi-ocaml/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, ocaml, findlib, piqi, stdlib-shims, num }:
+{ lib, stdenv, fetchFromGitHub, ocaml, findlib, piqi, stdlib-shims, num }:
 
 stdenv.mkDerivation rec {
   version = "0.7.8";
diff --git a/pkgs/development/ocaml-modules/pyml/default.nix b/pkgs/development/ocaml-modules/pyml/default.nix
index ed7f2ef559edf..d5840c8af53dd 100644
--- a/pkgs/development/ocaml-modules/pyml/default.nix
+++ b/pkgs/development/ocaml-modules/pyml/default.nix
@@ -1,7 +1,6 @@
 { buildDunePackage
 , lib
 , fetchFromGitHub
-, fetchpatch
 , utop
 , python3
 , stdcompat
diff --git a/pkgs/development/ocaml-modules/rio/default.nix b/pkgs/development/ocaml-modules/rio/default.nix
new file mode 100644
index 0000000000000..853670be35288
--- /dev/null
+++ b/pkgs/development/ocaml-modules/rio/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, cstruct
+}:
+
+buildDunePackage rec {
+  pname = "rio";
+  version = "0.0.8";
+
+  minimalOCamlVersion = "5.1";
+
+  src = fetchurl {
+    url = "https://github.com/riot-ml/riot/releases/download/${version}/riot-${version}.tbz";
+    hash = "sha256-SsiDz53b9bMIT9Q3IwDdB3WKy98WSd9fiieU41qZpeE=";
+  };
+
+  propagatedBuildInputs = [
+    cstruct
+  ];
+
+  meta = {
+    description = "Ergonomic, composable, efficient read/write streams";
+    homepage = "https://github.com/riot-ml/riot";
+    changelog = "https://github.com/riot-ml/riot/blob/${version}/CHANGES.md";
+    license = lib.licenses.mit;
+    maintainers = [ ];
+  };
+}
+
diff --git a/pkgs/development/ocaml-modules/riot/default.nix b/pkgs/development/ocaml-modules/riot/default.nix
index a6f599639111f..4e88d0c8d0901 100644
--- a/pkgs/development/ocaml-modules/riot/default.nix
+++ b/pkgs/development/ocaml-modules/riot/default.nix
@@ -1,36 +1,34 @@
 { lib
 , buildDunePackage
-, cstruct
 , fetchurl
-, mdx
-, poll
-, ptime
+, mirage-crypto-rng
+, mtime
+, gluon
+, randomconv
+, rio
 , telemetry
-, uri
+, tls
 }:
 
 buildDunePackage rec {
   pname = "riot";
-  version = "0.0.7";
+  version = "0.0.8";
 
   minimalOCamlVersion = "5.1";
 
   src = fetchurl {
     url = "https://github.com/leostera/riot/releases/download/${version}/riot-${version}.tbz";
-    hash = "sha256-t+PMBh4rZXi82dUljv3nLzZX5o1iagBbQ9FfGnr/dp4=";
+    hash = "sha256-SsiDz53b9bMIT9Q3IwDdB3WKy98WSd9fiieU41qZpeE=";
   };
 
   propagatedBuildInputs = [
-    cstruct
-    poll
-    ptime
+    gluon
+    mirage-crypto-rng
+    mtime
+    randomconv
+    rio
     telemetry
-    uri
-  ];
-
-  checkInputs = [
-    mdx
-    mdx.bin
+    tls
   ];
 
   doCheck = false; # fails on sandbox
diff --git a/pkgs/development/ocaml-modules/spices/default.nix b/pkgs/development/ocaml-modules/spices/default.nix
new file mode 100644
index 0000000000000..a1d6b06d156bb
--- /dev/null
+++ b/pkgs/development/ocaml-modules/spices/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, colors
+, tty
+}:
+
+buildDunePackage rec {
+  pname = "spices";
+  version = "0.0.2";
+
+  minimalOCamlVersion = "5.1";
+
+  src = fetchurl {
+    url = "https://github.com/leostera/minttea/releases/download/${version}/minttea-${version}.tbz";
+    hash = "sha256-0eB7OuxcPdv9bf2aIQEeir44mQfx5W2AJj7Vb4pGtLI=";
+  };
+
+  propagatedBuildInputs = [
+    colors
+    tty
+  ];
+
+  doCheck = true;
+
+  meta = {
+    description = "Declarative styles for TUI applications";
+    homepage = "https://github.com/leostera/minttea";
+    changelog = "https://github.com/leostera/minttea/blob/${version}/CHANGES.md";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
+
diff --git a/pkgs/development/ocaml-modules/uring/default.nix b/pkgs/development/ocaml-modules/uring/default.nix
index 9da63a8cd895c..c78e794b8034e 100644
--- a/pkgs/development/ocaml-modules/uring/default.nix
+++ b/pkgs/development/ocaml-modules/uring/default.nix
@@ -3,7 +3,6 @@
 , cstruct
 , dune-configurator
 , fetchurl
-, fetchpatch
 , fmt
 , optint
 , mdx
diff --git a/pkgs/development/perl-modules/Bio-BigFile/default.nix b/pkgs/development/perl-modules/Bio-BigFile/default.nix
index 516b6d014c5a4..3c360c2396a8d 100644
--- a/pkgs/development/perl-modules/Bio-BigFile/default.nix
+++ b/pkgs/development/perl-modules/Bio-BigFile/default.nix
@@ -3,14 +3,12 @@
  IOString,
  buildPerlModule,
  fetchFromGitHub,
- fetchpatch,
  fetchurl,
  kent,
  lib,
  libmysqlclient,
  libpng,
  openssl,
- perl
 }:
 
 buildPerlModule rec {
diff --git a/pkgs/development/php-packages/apcu/default.nix b/pkgs/development/php-packages/apcu/default.nix
index f8b8ff1d83b7e..9cfe9b96cf34d 100644
--- a/pkgs/development/php-packages/apcu/default.nix
+++ b/pkgs/development/php-packages/apcu/default.nix
@@ -3,8 +3,6 @@
   lib,
   pcre2,
   fetchFromGitHub,
-  php,
-  fetchpatch,
 }:
 
 let
diff --git a/pkgs/development/php-packages/composer-local-repo-plugin/composer.lock b/pkgs/development/php-packages/composer-local-repo-plugin/composer.lock
new file mode 100644
index 0000000000000..1cd1d3b233cdd
--- /dev/null
+++ b/pkgs/development/php-packages/composer-local-repo-plugin/composer.lock
@@ -0,0 +1,72 @@
+{
+    "_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": "04664aa86ba468bc6c83825839823dd7",
+    "packages": [
+        {
+            "name": "nix-community/composer-local-repo-plugin",
+            "version": "1.1.0",
+            "dist": {
+                "type": "path",
+                "url": "./src",
+                "reference": "56bd0f1fb990aa295ca43fc23141b7147a3b5490"
+            },
+            "require": {
+                "composer-plugin-api": "^2",
+                "php": ">= 7.2"
+            },
+            "require-dev": {
+                "composer/composer": "^2.6 || ^2.7",
+                "phpunit/phpunit": "^8"
+            },
+            "type": "composer-plugin",
+            "extra": {
+                "class": "NixCommunity\\ComposerLocalRepoPlugin\\Plugin"
+            },
+            "autoload": {
+                "psr-4": {
+                    "NixCommunity\\ComposerLocalRepoPlugin\\": "src"
+                }
+            },
+            "autoload-dev": {
+                "psr-4": {
+                    "test\\NixCommunity\\ComposerLocalRepoPlugin\\": "test"
+                }
+            },
+            "scripts": {
+                "changelog-unreleased": [
+                    "auto-changelog -c .auto-changelog -u"
+                ],
+                "changelog-version": [
+                    "auto-changelog -c .auto-changelog -v"
+                ]
+            },
+            "license": [
+                "MIT"
+            ],
+            "description": "A plugin for Composer which provides a command to create local Composer repository for your projects.",
+            "homepage": "https://github.com/nix-community/composer-local-repo-plugin",
+            "funding": [
+                {
+                    "type": "github",
+                    "url": "https://github.com/drupol"
+                }
+            ],
+            "transport-options": {
+                "relative": true
+            }
+        }
+    ],
+    "packages-dev": [],
+    "aliases": [],
+    "minimum-stability": "stable",
+    "stability-flags": [],
+    "prefer-stable": false,
+    "prefer-lowest": false,
+    "platform": [],
+    "platform-dev": [],
+    "plugin-api-version": "2.6.0"
+}
diff --git a/pkgs/development/php-packages/composer-local-repo-plugin/default.nix b/pkgs/development/php-packages/composer-local-repo-plugin/default.nix
new file mode 100644
index 0000000000000..d6199a5686595
--- /dev/null
+++ b/pkgs/development/php-packages/composer-local-repo-plugin/default.nix
@@ -0,0 +1,33 @@
+{
+  lib,
+  fetchFromGitHub,
+  php,
+}:
+
+let
+  version = "1.1.0";
+in
+php.buildComposerWithPlugin {
+  pname = "nix-community/composer-local-repo-plugin";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "nix-community";
+    repo = "composer-local-repo-plugin";
+    rev = version;
+    hash = "sha256-edbn07r/Uc1g0qOuVBZBs6N1bMN5kIfA1b4FCufdw5M=";
+  };
+
+  composerLock = ./composer.lock;
+  vendorHash = "sha256-SL3HiYTVaUwcEfnRO932MWgOP1VRkxTl3lxLbW0qiTY=";
+
+  meta = {
+    changelog = "https://github.com/nix-community/composer-local-repo-plugin/releases/tag/${version}";
+    description = "Composer plugin that facilitates the creation of a local composer type repository";
+    homepage = "https://github.com/nix-community/composer-local-repo-plugin";
+    license = lib.licenses.mit;
+    mainProgram = "composer";
+    maintainers = with lib.maintainers; [ drupol ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/php-packages/composer/default.nix b/pkgs/development/php-packages/composer/default.nix
index d98c3155bb91f..d8bfca7c348fb 100644
--- a/pkgs/development/php-packages/composer/default.nix
+++ b/pkgs/development/php-packages/composer/default.nix
@@ -1,7 +1,8 @@
 {
   lib,
-  callPackage,
+  stdenvNoCC,
   fetchFromGitHub,
+  callPackage,
   php,
   unzip,
   _7zz,
@@ -12,7 +13,10 @@
   makeBinaryWrapper,
 }:
 
-php.buildComposerProject (finalAttrs: {
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "composer";
+  version = "2.7.6";
+
   # Hash used by ../../../build-support/php/pkgs/composer-phar.nix to
   # use together with the version from this package to keep the
   # bootstrap phar file up-to-date together with the end user composer
@@ -24,9 +28,6 @@ php.buildComposerProject (finalAttrs: {
     inherit (finalAttrs.passthru) pharHash;
   };
 
-  pname = "composer";
-  version = "2.7.6";
-
   src = fetchFromGitHub {
     owner = "composer";
     repo = "composer";
@@ -36,21 +37,78 @@ php.buildComposerProject (finalAttrs: {
 
   nativeBuildInputs = [ makeBinaryWrapper ];
 
-  postInstall = ''
+  buildInputs = [ php ];
+
+  vendor = stdenvNoCC.mkDerivation {
+    pname = "${finalAttrs.pname}-vendor";
+
+    inherit (finalAttrs) src version;
+
+    nativeBuildInputs = [
+      cacert
+      finalAttrs.composer
+    ];
+
+    dontPatchShebangs = true;
+    doCheck = true;
+
+    buildPhase = ''
+      runHook preBuild
+
+      composer install --no-dev --no-interaction --no-progress --optimize-autoloader
+
+      runHook postBuild
+    '';
+
+    checkPhase = ''
+      runHook preCheck
+
+      composer validate
+
+      runHook postCheck
+    '';
+
+    installPhase = ''
+      runHook preInstall
+
+      cp -ar . $out/
+
+      runHook postInstall
+    '';
+
+    env = {
+      COMPOSER_CACHE_DIR = "/dev/null";
+      COMPOSER_DISABLE_NETWORK = "0";
+      COMPOSER_HTACCESS_PROTECT = "0";
+      COMPOSER_MIRROR_PATH_REPOS = "1";
+      COMPOSER_ROOT_VERSION = finalAttrs.version;
+    };
+
+    outputHashMode = "recursive";
+    outputHashAlgo = "sha256";
+    outputHash = "sha256-AyX57oV5Jf8U4B9tEl+b2Rnt/Igu7ockEap0wfN9b2Q=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out
+    cp -ar ${finalAttrs.vendor}/* $out/
+    chmod +w $out/bin
+
     wrapProgram $out/bin/composer \
       --prefix PATH : ${
         lib.makeBinPath [
           _7zz
-          cacert
           curl
           git
           unzip
           xz
         ]
       }
-  '';
 
-  vendorHash = "sha256-dNNV9fTyGyRoGeDV/vBjn0aMgkaUMsrKQv5AOoiYokQ=";
+    runHook postInstall
+  '';
 
   meta = {
     changelog = "https://github.com/composer/composer/releases/tag/${finalAttrs.version}";
diff --git a/pkgs/development/php-packages/cyclonedx-php-composer/composer.lock b/pkgs/development/php-packages/cyclonedx-php-composer/composer.lock
new file mode 100644
index 0000000000000..d57ce5b100d0e
--- /dev/null
+++ b/pkgs/development/php-packages/cyclonedx-php-composer/composer.lock
@@ -0,0 +1,571 @@
+{
+    "_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": "c949500f008befd2980bd7f80454c43b",
+    "packages": [
+        {
+            "name": "composer/spdx-licenses",
+            "version": "1.5.8",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/composer/spdx-licenses.git",
+                "reference": "560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a",
+                "reference": "560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^5.3.2 || ^7.0 || ^8.0"
+            },
+            "require-dev": {
+                "phpstan/phpstan": "^0.12.55",
+                "symfony/phpunit-bridge": "^4.2 || ^5"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "1.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Composer\\Spdx\\": "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": "SPDX licenses list and validation library.",
+            "keywords": [
+                "license",
+                "spdx",
+                "validator"
+            ],
+            "support": {
+                "irc": "ircs://irc.libera.chat:6697/composer",
+                "issues": "https://github.com/composer/spdx-licenses/issues",
+                "source": "https://github.com/composer/spdx-licenses/tree/1.5.8"
+            },
+            "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": "2023-11-20T07:44:33+00:00"
+        },
+        {
+            "name": "cyclonedx/cyclonedx-library",
+            "version": "v3.3.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/CycloneDX/cyclonedx-php-library.git",
+                "reference": "cad0f92b36c85f36b3d3c11ff96002af5f20cd10"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/CycloneDX/cyclonedx-php-library/zipball/cad0f92b36c85f36b3d3c11ff96002af5f20cd10",
+                "reference": "cad0f92b36c85f36b3d3c11ff96002af5f20cd10",
+                "shasum": ""
+            },
+            "require": {
+                "composer/spdx-licenses": "^1.5",
+                "ext-dom": "*",
+                "ext-json": "*",
+                "ext-libxml": "*",
+                "opis/json-schema": "^2.0",
+                "package-url/packageurl-php": "^1.0",
+                "php": "^8.1"
+            },
+            "require-dev": {
+                "ext-simplexml": "*",
+                "roave/security-advisories": "dev-latest"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "3.x-dev"
+                },
+                "composer-normalize": {
+                    "indent-size": 4,
+                    "indent-style": "space"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "CycloneDX\\Core\\": "src/Core/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Jan Kowalleck",
+                    "email": "jan.kowalleck@gmail.com",
+                    "homepage": "https://github.com/jkowalleck"
+                }
+            ],
+            "description": "Work with CycloneDX documents.",
+            "homepage": "https://github.com/CycloneDX/cyclonedx-php-library/#readme",
+            "keywords": [
+                "CycloneDX",
+                "HBOM",
+                "OBOM",
+                "SBOM",
+                "SaaSBOM",
+                "bill-of-materials",
+                "bom",
+                "models",
+                "normalizer",
+                "owasp",
+                "package-url",
+                "purl",
+                "serializer",
+                "software-bill-of-materials",
+                "spdx",
+                "validator",
+                "vdr",
+                "vex"
+            ],
+            "support": {
+                "docs": "https://cyclonedx-php-library.readthedocs.io",
+                "issues": "https://github.com/CycloneDX/cyclonedx-php-library/issues",
+                "source": "https://github.com/CycloneDX/cyclonedx-php-library/"
+            },
+            "funding": [
+                {
+                    "url": "https://owasp.org/donate/?reponame=www-project-cyclonedx&title=OWASP+CycloneDX",
+                    "type": "other"
+                }
+            ],
+            "time": "2024-05-06T13:34:55+00:00"
+        },
+        {
+            "name": "cyclonedx/cyclonedx-php-composer",
+            "version": "5.2.0",
+            "dist": {
+                "type": "path",
+                "url": "./src",
+                "reference": "88ae6a60b882d72668d409b0d4fcc9bfa0c66259"
+            },
+            "require": {
+                "composer-plugin-api": "^2.3",
+                "cyclonedx/cyclonedx-library": "^3.3",
+                "package-url/packageurl-php": "^1.0",
+                "php": "^8.1"
+            },
+            "require-dev": {
+                "composer/composer": "^2.3.0",
+                "roave/security-advisories": "dev-latest"
+            },
+            "type": "composer-plugin",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "4.x-dev"
+                },
+                "class": "CycloneDX\\Composer\\Plugin",
+                "composer-normalize": {
+                    "indent-size": 4,
+                    "indent-style": "space"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "CycloneDX\\Composer\\": "src/"
+                }
+            },
+            "autoload-dev": {
+                "psr-4": {
+                    "CycloneDX\\Tests\\": "tests/"
+                }
+            },
+            "scripts": {
+                "clean": [
+                    "rm -rf reports",
+                    "@php tools/psalm/vendor/vimeo/psalm/psalm --clear-cache",
+                    "@php tools/psalm/vendor/vimeo/psalm/psalm --clear-global-cache",
+                    "rm -rf .*.cache",
+                    "rm -rf .tmp"
+                ],
+                "cs-fix": [
+                    "@php tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/php-cs-fixer fix --diff"
+                ],
+                "dev-setup": [
+                    "@composer -d tools/composer-normalize update",
+                    "@composer -d tools/composer-require-checker update",
+                    "@composer -d tools/composer-unused update",
+                    "@composer -d tools/php-cs-fixer update",
+                    "@composer -d tools/psalm update",
+                    "@composer -d tools/phpunit update",
+                    "@composer update"
+                ],
+                "normalize": [
+                    "@composer -d tools/composer-normalize normalize --diff $PWD/composer.json"
+                ],
+                "test": [
+                    "@composer validate",
+                    "@test:psalm",
+                    "@test:phpunit",
+                    "@test:cs-fixer",
+                    "@test:composer-unused",
+                    "@test:composer-require-checker",
+                    "@test:composer-normalize"
+                ],
+                "test:composer-normalize": [
+                    "@composer -d tools/composer-normalize normalize --dry-run $PWD/composer.json"
+                ],
+                "test:composer-require-checker": [
+                    "@putenv XDEBUG_MODE=off",
+                    "@php tools/composer-require-checker/vendor/maglnet/composer-require-checker/bin/composer-require-checker check"
+                ],
+                "test:composer-unused": [
+                    "@php tools/composer-unused/vendor/icanhazstring/composer-unused/bin/composer-unused --excludeDir=tools"
+                ],
+                "test:cs-fixer": [
+                    "@php tools/php-cs-fixer/vendor/friendsofphp/php-cs-fixer/php-cs-fixer fix --dry-run --diff"
+                ],
+                "test:phpunit": [
+                    "@php -d zend.assertions=1 -d assert.exception=1 -d display_errors=On -d error_reporting=-1 -d log_errors_max_len=0 -d memory_limit=-1 tools/phpunit/vendor/phpunit/phpunit/phpunit"
+                ],
+                "test:psalm": [
+                    "@php tools/psalm/vendor/vimeo/psalm/psalm"
+                ]
+            },
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Jan Kowalleck",
+                    "email": "jan.kowalleck@gmail.com",
+                    "homepage": "https://github.com/jkowalleck"
+                }
+            ],
+            "description": "Creates CycloneDX Software Bill-of-Materials (SBOM) from PHP Composer projects",
+            "homepage": "https://github.com/CycloneDX/cyclonedx-php-composer/#readme",
+            "keywords": [
+                "BOM",
+                "CycloneDX",
+                "PURL",
+                "SBOM",
+                "SPDX",
+                "bill-of-materials",
+                "composer",
+                "package-url",
+                "software-bill-of-materials"
+            ],
+            "support": {
+                "issues": "https://github.com/CycloneDX/cyclonedx-php-composer/issues",
+                "source": "https://github.com/CycloneDX/cyclonedx-php-composer/"
+            },
+            "funding": [
+                {
+                    "type": "other",
+                    "url": "https://owasp.org/donate/?reponame=www-project-cyclonedx&title=OWASP+CycloneDX"
+                }
+            ],
+            "transport-options": {
+                "relative": true
+            }
+        },
+        {
+            "name": "opis/json-schema",
+            "version": "2.3.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/opis/json-schema.git",
+                "reference": "c48df6d7089a45f01e1c82432348f2d5976f9bfb"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/opis/json-schema/zipball/c48df6d7089a45f01e1c82432348f2d5976f9bfb",
+                "reference": "c48df6d7089a45f01e1c82432348f2d5976f9bfb",
+                "shasum": ""
+            },
+            "require": {
+                "ext-json": "*",
+                "opis/string": "^2.0",
+                "opis/uri": "^1.0",
+                "php": "^7.4 || ^8.0"
+            },
+            "require-dev": {
+                "ext-bcmath": "*",
+                "ext-intl": "*",
+                "phpunit/phpunit": "^9.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Opis\\JsonSchema\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Sorin Sarca",
+                    "email": "sarca_sorin@hotmail.com"
+                },
+                {
+                    "name": "Marius Sarca",
+                    "email": "marius.sarca@gmail.com"
+                }
+            ],
+            "description": "Json Schema Validator for PHP",
+            "homepage": "https://opis.io/json-schema",
+            "keywords": [
+                "json",
+                "json-schema",
+                "schema",
+                "validation",
+                "validator"
+            ],
+            "support": {
+                "issues": "https://github.com/opis/json-schema/issues",
+                "source": "https://github.com/opis/json-schema/tree/2.3.0"
+            },
+            "time": "2022-01-08T20:38:03+00:00"
+        },
+        {
+            "name": "opis/string",
+            "version": "2.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/opis/string.git",
+                "reference": "9ebf1a1f873f502f6859d11210b25a4bf5d141e7"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/opis/string/zipball/9ebf1a1f873f502f6859d11210b25a4bf5d141e7",
+                "reference": "9ebf1a1f873f502f6859d11210b25a4bf5d141e7",
+                "shasum": ""
+            },
+            "require": {
+                "ext-iconv": "*",
+                "ext-json": "*",
+                "php": "^7.4 || ^8.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^9.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Opis\\String\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Marius Sarca",
+                    "email": "marius.sarca@gmail.com"
+                },
+                {
+                    "name": "Sorin Sarca",
+                    "email": "sarca_sorin@hotmail.com"
+                }
+            ],
+            "description": "Multibyte strings as objects",
+            "homepage": "https://opis.io/string",
+            "keywords": [
+                "multi-byte",
+                "opis",
+                "string",
+                "string manipulation",
+                "utf-8"
+            ],
+            "support": {
+                "issues": "https://github.com/opis/string/issues",
+                "source": "https://github.com/opis/string/tree/2.0.1"
+            },
+            "time": "2022-01-14T15:42:23+00:00"
+        },
+        {
+            "name": "opis/uri",
+            "version": "1.1.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/opis/uri.git",
+                "reference": "0f3ca49ab1a5e4a6681c286e0b2cc081b93a7d5a"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/opis/uri/zipball/0f3ca49ab1a5e4a6681c286e0b2cc081b93a7d5a",
+                "reference": "0f3ca49ab1a5e4a6681c286e0b2cc081b93a7d5a",
+                "shasum": ""
+            },
+            "require": {
+                "opis/string": "^2.0",
+                "php": "^7.4 || ^8.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^9"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Opis\\Uri\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Marius Sarca",
+                    "email": "marius.sarca@gmail.com"
+                },
+                {
+                    "name": "Sorin Sarca",
+                    "email": "sarca_sorin@hotmail.com"
+                }
+            ],
+            "description": "Build, parse and validate URIs and URI-templates",
+            "homepage": "https://opis.io",
+            "keywords": [
+                "URI Template",
+                "parse url",
+                "punycode",
+                "uri",
+                "uri components",
+                "url",
+                "validate uri"
+            ],
+            "support": {
+                "issues": "https://github.com/opis/uri/issues",
+                "source": "https://github.com/opis/uri/tree/1.1.0"
+            },
+            "time": "2021-05-22T15:57:08+00:00"
+        },
+        {
+            "name": "package-url/packageurl-php",
+            "version": "1.1.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/package-url/packageurl-php.git",
+                "reference": "32058ad61f0d8b457fa26e7860bbd8b903196d3f"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/package-url/packageurl-php/zipball/32058ad61f0d8b457fa26e7860bbd8b903196d3f",
+                "reference": "32058ad61f0d8b457fa26e7860bbd8b903196d3f",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.3 || ^8.0"
+            },
+            "require-dev": {
+                "ext-json": "*",
+                "phpunit/phpunit": "9.6.16",
+                "roave/security-advisories": "dev-latest"
+            },
+            "type": "library",
+            "extra": {
+                "composer-normalize": {
+                    "indent-size": 4,
+                    "indent-style": "space"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "PackageUrl\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Jan Kowalleck",
+                    "email": "jan.kowalleck@gmail.com",
+                    "homepage": "https://github.com/jkowalleck"
+                }
+            ],
+            "description": "Builder and parser based on the package URL (purl) specification.",
+            "homepage": "https://github.com/package-url/packageurl-php#readme",
+            "keywords": [
+                "package",
+                "package-url",
+                "packageurl",
+                "purl",
+                "url"
+            ],
+            "support": {
+                "issues": "https://github.com/package-url/packageurl-php/issues",
+                "source": "https://github.com/package-url/packageurl-php/tree/1.1.2"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sponsors/jkowalleck",
+                    "type": "github"
+                }
+            ],
+            "time": "2024-02-05T11:20:07+00:00"
+        }
+    ],
+    "packages-dev": [],
+    "aliases": [],
+    "minimum-stability": "stable",
+    "stability-flags": [],
+    "prefer-stable": false,
+    "prefer-lowest": false,
+    "platform": [],
+    "platform-dev": [],
+    "plugin-api-version": "2.6.0"
+}
diff --git a/pkgs/development/php-packages/cyclonedx-php-composer/default.nix b/pkgs/development/php-packages/cyclonedx-php-composer/default.nix
new file mode 100644
index 0000000000000..d3af20b63bc73
--- /dev/null
+++ b/pkgs/development/php-packages/cyclonedx-php-composer/default.nix
@@ -0,0 +1,33 @@
+{
+  lib,
+  fetchFromGitHub,
+  php,
+}:
+
+let
+  version = "5.2.0";
+in
+php.buildComposerWithPlugin {
+  pname = "cyclonedx/cyclonedx-php-composer";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "CycloneDX";
+    repo = "cyclonedx-php-composer";
+    rev = "v${version}";
+    hash = "sha256-0fb1QiuVJqcB7CAEyB0y60/O9iiibT06mccZYe52dFQ=";
+  };
+
+  composerLock = ./composer.lock;
+  vendorHash = "sha256-QPlHWXXksetNSsv3olmCtPA/VsFVPV09rYQEsPezZoE=";
+
+  meta = {
+    changelog = "https://github.com/CycloneDX/cyclonedx-php-composer/releases/tag/v${version}";
+    description = "Composer plugin that facilitates the creation of a CycloneDX Software Bill of Materials (SBOM) from PHP Composer projects";
+    homepage = "https://github.com/CycloneDX/cyclonedx-php-composer";
+    license = lib.licenses.asl20;
+    mainProgram = "composer";
+    maintainers = with lib.maintainers; [ drupol ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/php-packages/mongodb/default.nix b/pkgs/development/php-packages/mongodb/default.nix
index 8a1b224627d0a..f79a308a33ce7 100644
--- a/pkgs/development/php-packages/mongodb/default.nix
+++ b/pkgs/development/php-packages/mongodb/default.nix
@@ -16,13 +16,13 @@
 
 buildPecl rec {
   pname = "mongodb";
-  version = "1.19.0";
+  version = "1.19.1";
 
   src = fetchFromGitHub {
     owner = "mongodb";
     repo = "mongo-php-driver";
     rev = version;
-    hash = "sha256-hog6bOKAhLwZMjrUD5yOJ607B1MLYaZJjq6CXIYPlH4=";
+    hash = "sha256-5HGQDgZZu+miPijJD/Y48WlUVfxjkeU9gA7hByzxb/o=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/php-packages/phpstan/default.nix b/pkgs/development/php-packages/phpstan/default.nix
index 1016e27d8322d..dc44afc3bc97a 100644
--- a/pkgs/development/php-packages/phpstan/default.nix
+++ b/pkgs/development/php-packages/phpstan/default.nix
@@ -6,16 +6,16 @@
 
 php.buildComposerProject (finalAttrs: {
   pname = "phpstan";
-  version = "1.11.1";
+  version = "1.11.2";
 
   src = fetchFromGitHub {
     owner = "phpstan";
     repo = "phpstan-src";
     rev = finalAttrs.version;
-    hash = "sha256-CMIWxxryDDA38uyGl3SIooliU0ElAY1iAqnexn2Uq58=";
+    hash = "sha256-g1YIFqNo1UTmNrgS+lAkDXSnKsmhLj+Itoi3tgxdx4Y=";
   };
 
-  vendorHash = "sha256-CSkwBBV6b2inpQu4TKBR23Du11mzr3rV6GtprzHAOgQ=";
+  vendorHash = "sha256-sFV22B5ohbDvclb1nuvpMhhfKjEe7FAFCqWfIguAY8M=";
   composerStrictValidation = false;
 
   meta = {
diff --git a/pkgs/development/python-modules/accelerate/default.nix b/pkgs/development/python-modules/accelerate/default.nix
index 9c3cf1171dca0..eb02220e50352 100644
--- a/pkgs/development/python-modules/accelerate/default.nix
+++ b/pkgs/development/python-modules/accelerate/default.nix
@@ -88,6 +88,7 @@ buildPythonPackage rec {
     ++ lib.optionals (pythonAtLeast "3.12") [
       # RuntimeError: Dynamo is not supported on Python 3.12+
       "test_convert_to_fp32"
+      "test_dynamo_extract_model"
       "test_send_to_device_compiles"
     ]
     ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
diff --git a/pkgs/development/python-modules/aiocache/default.nix b/pkgs/development/python-modules/aiocache/default.nix
index 17e60970e4fa8..54a2bfb88ef78 100644
--- a/pkgs/development/python-modules/aiocache/default.nix
+++ b/pkgs/development/python-modules/aiocache/default.nix
@@ -58,10 +58,15 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
-    # calls apache benchmark and fails, no usable output
+    # Test calls apache benchmark and fails, no usable output
     "test_concurrency_error_rates"
   ];
 
+  disabledTestPaths = [
+    # Benchmark and performance tests are not relevant for Nixpkgs
+    "tests/performance/"
+  ];
+
   preCheck = ''
     ${lib.getBin pkgs.redis}/bin/redis-server &
     REDIS_PID=$!
@@ -83,7 +88,7 @@ buildPythonPackage rec {
     description = "Python API Rate Limit Decorator";
     homepage = "https://github.com/aio-libs/aiocache";
     changelog = "https://github.com/aio-libs/aiocache/releases/tag/v${version}";
-    license = with licenses; [ bsd3 ];
+    license = licenses.bsd3;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/aioitertools/default.nix b/pkgs/development/python-modules/aioitertools/default.nix
index 3f4870df41ad8..6d59d99d14c8a 100644
--- a/pkgs/development/python-modules/aioitertools/default.nix
+++ b/pkgs/development/python-modules/aioitertools/default.nix
@@ -1,7 +1,6 @@
 {
   lib,
   buildPythonPackage,
-  fetchpatch,
   fetchPypi,
   pythonOlder,
 
diff --git a/pkgs/development/python-modules/aioquic/default.nix b/pkgs/development/python-modules/aioquic/default.nix
index 4b909ecb4aca5..f3191a7f8ddff 100644
--- a/pkgs/development/python-modules/aioquic/default.nix
+++ b/pkgs/development/python-modules/aioquic/default.nix
@@ -4,7 +4,6 @@
   certifi,
   cryptography,
   fetchPypi,
-  fetchpatch,
   openssl,
   pylsqpack,
   pyopenssl,
@@ -16,26 +15,19 @@
 
 buildPythonPackage rec {
   pname = "aioquic";
-  version = "0.9.25";
+  version = "1.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-cHlceJBTJthVwq5SQHIjSq5YbHibgSkuJy0CHpsEMKM=";
+    hash = "sha256-7THCta+pjFtsr6TzYUnerx3/bFppcB6t0nFnQV+fFmA=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/aiortc/aioquic/commit/e899593805e0b31325a1d347504eb8e6100fe87d.diff";
-      hash = "sha256-TTpIIWX/R4k2KxhsN17O9cRW/dN0AARYnju8JTht3D8=";
-    })
-  ];
-
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     certifi
     cryptography
     pylsqpack
diff --git a/pkgs/development/python-modules/aiorecollect/default.nix b/pkgs/development/python-modules/aiorecollect/default.nix
index 9cb3cca5d666f..57a59497bbc62 100644
--- a/pkgs/development/python-modules/aiorecollect/default.nix
+++ b/pkgs/development/python-modules/aiorecollect/default.nix
@@ -4,7 +4,6 @@
   aresponses,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   freezegun,
   poetry-core,
   pytest-asyncio,
diff --git a/pkgs/development/python-modules/aiosasl/default.nix b/pkgs/development/python-modules/aiosasl/default.nix
index 81f96c4d1b1b1..fe977cc1bbec8 100644
--- a/pkgs/development/python-modules/aiosasl/default.nix
+++ b/pkgs/development/python-modules/aiosasl/default.nix
@@ -5,13 +5,16 @@
   fetchpatch,
   pyopenssl,
   pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "aiosasl";
   version = "0.5.0";
+  pyproject = true;
 
-  format = "setuptools";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "horazont";
@@ -28,6 +31,14 @@ buildPythonPackage rec {
     })
   ];
 
+  postPatch = ''
+    # https://github.com/horazont/aiosasl/issues/28
+    substituteInPlace tests/test_aiosasl.py \
+      --replace-fail "assertRaisesRegexp" "assertRaisesRegex"
+  '';
+
+  build-system = [ setuptools ];
+
   nativeCheckInputs = [
     pyopenssl
     pytestCheckHook
diff --git a/pkgs/development/python-modules/aioshutil/default.nix b/pkgs/development/python-modules/aioshutil/default.nix
index 599745e19180d..1aeccdce9fe9c 100644
--- a/pkgs/development/python-modules/aioshutil/default.nix
+++ b/pkgs/development/python-modules/aioshutil/default.nix
@@ -10,18 +10,23 @@
 
 buildPythonPackage rec {
   pname = "aioshutil";
-  version = "1.3";
-  format = "pyproject";
+  version = "1.4";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "kumaraditya303";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-XIGjiLjoyS/7vUDIyBPvHNMyHOBa0gsg/c/vGgrhZAg=";
+    repo = "aioshutil";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-OGxD7GusRcHpz7FdUpa/dJ6/jIAVexbTvXfouVw0C+I=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace-fail " --cov aioshutil --cov-report xml" ""
+  '';
+
   nativeBuildInputs = [ setuptools-scm ];
 
   nativeCheckInputs = [
@@ -29,17 +34,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  postPatch = ''
-    substituteInPlace setup.cfg \
-      --replace " --cov aioshutil --cov-report xml" ""
-  '';
-
   pythonImportsCheck = [ "aioshutil" ];
 
   meta = with lib; {
     description = "Asynchronous version of function of shutil module";
     homepage = "https://github.com/kumaraditya303/aioshutil";
-    license = with licenses; [ bsd3 ];
+    license = licenses.bsd3;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/aioswitcher/default.nix b/pkgs/development/python-modules/aioswitcher/default.nix
index bd6b8df30a915..cfdde67b22dd6 100644
--- a/pkgs/development/python-modules/aioswitcher/default.nix
+++ b/pkgs/development/python-modules/aioswitcher/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "aioswitcher";
-  version = "3.4.2";
+  version = "3.4.3";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "TomerFi";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-UpwIzwOl1yKqK8KxFDXAWoZFkQ+1r1sUcDfx6AxRdNw=";
+    hash = "sha256-yKHSExtnO9m8Tc3BmCqV8tJs59ynKOqUmekaOatGRTc=";
   };
 
   __darwinAllowLocalNetworking = true;
diff --git a/pkgs/development/python-modules/aioxmpp/default.nix b/pkgs/development/python-modules/aioxmpp/default.nix
index 1608a234e721f..9e770ae06522c 100644
--- a/pkgs/development/python-modules/aioxmpp/default.nix
+++ b/pkgs/development/python-modules/aioxmpp/default.nix
@@ -1,27 +1,32 @@
 {
   lib,
-  buildPythonPackage,
-  fetchFromGitHub,
-  aiosasl,
   aioopenssl,
+  aiosasl,
   babel,
+  buildPythonPackage,
   dnspython,
+  fetchFromGitHub,
   lxml,
   multidict,
-  pyasn1,
   pyasn1-modules,
+  pyasn1,
   pyopenssl,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  pythonRelaxDepsHook,
   pytz,
+  setuptools,
   sortedcollections,
   tzlocal,
-  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "aioxmpp";
   version = "0.13.3";
+  pyproject = true;
 
-  format = "setuptools";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "horazont";
@@ -30,7 +35,15 @@ buildPythonPackage rec {
     hash = "sha256-bQPKEM5eKhFI3Kx3U1espdxqjnG4yUgOXmYCrd98PDo=";
   };
 
-  propagatedBuildInputs = [
+  pythonRelaxDeps = [
+    "lxml"
+  ];
+
+  build-system = [ setuptools ];
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
+
+  dependencies = [
     aiosasl
     aioopenssl
     babel
@@ -60,12 +73,23 @@ buildPythonPackage rec {
   disabledTests = [
     # AttributeError: 'zoneinfo.ZoneInfo' object has no attribute 'normalize'
     "test_convert_field_datetime_default_locale"
+  ] ++ lib.optionals (pythonAtLeast "3.12") [
+    # asyncio issues
+    "test_is_abstract"
+    "Testbackground"
+    "TestCapturingXSO"
+    "Testcheck_x509"
+    "TestClient"
+    "TestIntegerType"
+    "TestStanzaStream"
+    "TestStanzaToken"
+    "TestXMLStream"
   ];
 
   meta = {
-    changelog = "https://github.com/horazont/aioxmpp/blob/${src.rev}/docs/api/changelog.rst";
     description = "Pure-python XMPP library for asyncio";
     homepage = "https://github.com/horazont/aioxmpp";
+    changelog = "https://github.com/horazont/aioxmpp/blob/${src.rev}/docs/api/changelog.rst";
     license = lib.licenses.lgpl3Plus;
     maintainers = with lib.maintainers; [ dotlambda ];
   };
diff --git a/pkgs/development/python-modules/amazon-kclpy/default.nix b/pkgs/development/python-modules/amazon-kclpy/default.nix
index 4a95e78603113..3186ade269996 100644
--- a/pkgs/development/python-modules/amazon-kclpy/default.nix
+++ b/pkgs/development/python-modules/amazon-kclpy/default.nix
@@ -2,45 +2,49 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  python,
+  fetchpatch,
+  setuptools,
   mock,
-  boto,
-  pytest,
+  boto3,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "amazon-kclpy";
-  version = "2.1.3";
-  format = "setuptools";
+  version = "2.1.4";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "amazon-kinesis-client-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-3BhccRJd6quElXZSix1aVIqWr9wdcTTziDhnIOLiPPo=";
+    hash = "sha256-TWIGu7WuoaPhk8cz+hMXvGLIPQ5kly8aj20ZtvTZzwg=";
   };
 
-  # argparse is just required for python2.6
-  prePatch = ''
-    substituteInPlace setup.py \
-      --replace "'argparse'," ""
-  '';
+  patches = [
+    (fetchpatch {
+      name = "remove-deprecated-boto.patch";
+      url = "https://github.com/awslabs/amazon-kinesis-client-python/commit/bd2c442cdd1b0e2c99d3471c1d3ffcc9161a7c42.patch";
+      hash = "sha256-5W0qItDGjx1F6IllzLH57XCpToKrAu9mTbzv/1wMXuY=";
+    })
+  ];
+
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     mock
-    boto
+    boto3
   ];
 
-  nativeCheckInputs = [ pytest ];
+  pythonImportsCheck = [ "amazon_kclpy" ];
 
-  checkPhase = ''
-    ${python.interpreter} -m pytest
-  '';
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Amazon Kinesis Client Library for Python";
     homepage = "https://github.com/awslabs/amazon-kinesis-client-python";
-    license = licenses.amazonsl;
+    license = licenses.asl20;
     maintainers = with maintainers; [ psyanticy ];
+    broken = true;
   };
 }
diff --git a/pkgs/development/python-modules/amcrest/default.nix b/pkgs/development/python-modules/amcrest/default.nix
index 4fffb467ef73d..0a217c6f7832b 100644
--- a/pkgs/development/python-modules/amcrest/default.nix
+++ b/pkgs/development/python-modules/amcrest/default.nix
@@ -3,11 +3,10 @@
   argcomplete,
   buildPythonPackage,
   fetchFromGitHub,
+  fetchpatch2,
   httpx,
   mock,
   pytestCheckHook,
-  pythonAtLeast,
-  pythonOlder,
   requests,
   responses,
   setuptools,
@@ -20,9 +19,6 @@ buildPythonPackage rec {
   version = "1.9.8";
   pyproject = true;
 
-  # Still uses distutils, https://github.com/tchellomello/python-amcrest/issues/234
-  disabled = pythonOlder "3.7" || pythonAtLeast "3.12";
-
   src = fetchFromGitHub {
     owner = "tchellomello";
     repo = "python-amcrest";
@@ -30,6 +26,15 @@ buildPythonPackage rec {
     hash = "sha256-v0jWEZo06vltEq//suGrvJ/AeeDxUG5CCFhbf03q34w=";
   };
 
+  patches = [
+    (fetchpatch2 {
+      # https://github.com/tchellomello/python-amcrest/pull/235
+      name = "replace-distutils.patch";
+      url = "https://github.com/tchellomello/python-amcrest/commit/ec56049c0f5b49bc4c5bcf0acb7fea89ec1c1df4.patch";
+      hash = "sha256-ym+Bn795y+JqhNMk4NPnOVr3DwO9DkUV0d9LEaz3CMo=";
+    })
+  ];
+
   build-system = [ setuptools ];
 
   dependencies = [
diff --git a/pkgs/development/python-modules/ansible/default.nix b/pkgs/development/python-modules/ansible/default.nix
index 1c6457a5f7699..d2b531a0066fe 100644
--- a/pkgs/development/python-modules/ansible/default.nix
+++ b/pkgs/development/python-modules/ansible/default.nix
@@ -22,7 +22,7 @@
 
 let
   pname = "ansible";
-  version = "9.5.1";
+  version = "9.6.0";
 in
 buildPythonPackage {
   inherit pname version;
@@ -32,7 +32,7 @@ buildPythonPackage {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-PCeLyWQrl/yVOyugW5nNgIAedb81Z9+qHLUTH+DsHs0=";
+    hash = "sha256-WHMqStdKdG0pns+ki3qRyyF+LAvTpEST8tnymvLzq2E=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/apricot-select/default.nix b/pkgs/development/python-modules/apricot-select/default.nix
index b50707e96e6fa..f05e9b8e5e95f 100644
--- a/pkgs/development/python-modules/apricot-select/default.nix
+++ b/pkgs/development/python-modules/apricot-select/default.nix
@@ -2,6 +2,7 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
+  apricot-select,
   numba,
   numpy,
   pynose,
@@ -37,15 +38,15 @@ buildPythonPackage rec {
   dependencies = [
     numba
     numpy
+    scikit-learn
     scipy
+    torchvision
     tqdm
   ];
 
   nativeCheckInputs = [
     pynose
     pytestCheckHook
-    scikit-learn
-    torchvision
   ];
 
   pythonImportsCheck = [ "apricot" ];
@@ -56,6 +57,21 @@ buildPythonPackage rec {
     "tests/test_optimizers/test_knapsack_feature_based.py"
   ];
 
+  # NOTE: These tests seem to be flaky.
+  disabledTests = [
+    "test_digits_modular"
+    "test_digits_modular_object"
+    "test_digits_modular_sparse"
+    "test_digits_sqrt_modular"
+    "test_digits_sqrt_modular_object"
+    "test_digits_sqrt_modular_sparse"
+  ];
+
+  # NOTE: Tests are disabled by default because they can run for hours and timeout on Hydra.
+  doCheck = false;
+
+  passthru.tests.check = apricot-select.overridePythonAttrs { doCheck = true; };
+
   meta = with lib; {
     description = "Module for submodular optimization for the purpose of selecting subsets of massive data sets";
     homepage = "https://github.com/jmschrei/apricot";
diff --git a/pkgs/development/python-modules/argh/default.nix b/pkgs/development/python-modules/argh/default.nix
index 145682871993c..ee3a26f91ee0d 100644
--- a/pkgs/development/python-modules/argh/default.nix
+++ b/pkgs/development/python-modules/argh/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchPypi,
-  fetchpatch,
   flit-core,
   iocapture,
   mock,
diff --git a/pkgs/development/python-modules/asteval/default.nix b/pkgs/development/python-modules/asteval/default.nix
index d625dfe3448ed..e9eed2ac38e0e 100644
--- a/pkgs/development/python-modules/asteval/default.nix
+++ b/pkgs/development/python-modules/asteval/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "asteval";
-  version = "0.9.32";
+  version = "0.9.33";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "lmfit";
     repo = "asteval";
     rev = "refs/tags/${version}";
-    hash = "sha256-3eML5lEKEUlp3Fwdgvk31an83x8no5ichskKvzYJDsE=";
+    hash = "sha256-j07HH84cn2AA5DyMcM7sXiBubCjZP67RJXVcErMPyBk=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/asyncwhois/default.nix b/pkgs/development/python-modules/asyncwhois/default.nix
index 938ff02ce7e81..cc8879e35df4e 100644
--- a/pkgs/development/python-modules/asyncwhois/default.nix
+++ b/pkgs/development/python-modules/asyncwhois/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "asyncwhois";
-  version = "1.1.2";
+  version = "1.1.3";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "pogzyb";
     repo = "asyncwhois";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ESVgK4Z26OAamdHPEVxysnlJ0rEUlr8KNd24fawHuEg=";
+    hash = "sha256-+FSf2H+IlLJlbZvzSH/Speyt+D2ZdXhQIKJpZYRfIyg=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/atlassian-python-api/default.nix b/pkgs/development/python-modules/atlassian-python-api/default.nix
index 922f3831b5e04..78775f666f500 100644
--- a/pkgs/development/python-modules/atlassian-python-api/default.nix
+++ b/pkgs/development/python-modules/atlassian-python-api/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "atlassian-python-api";
-  version = "3.41.11";
+  version = "3.41.13";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "atlassian-api";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-yQqy+pFl5TK4CEUM+vpwl+pkUjBuc0xvqC9o1ZC5m7c=";
+    hash = "sha256-ldSiO9exbF89KDaspj3kIzAZzOfr/6ohlOyQ5mBxo/U=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/autopep8/default.nix b/pkgs/development/python-modules/autopep8/default.nix
index 316d9edc1a1da..005e97875c148 100644
--- a/pkgs/development/python-modules/autopep8/default.nix
+++ b/pkgs/development/python-modules/autopep8/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   glibcLocales,
   pycodestyle,
   pytestCheckHook,
diff --git a/pkgs/development/python-modules/awkward-cpp/default.nix b/pkgs/development/python-modules/awkward-cpp/default.nix
index e7a85e47a9a77..9b4a45c2f4053 100644
--- a/pkgs/development/python-modules/awkward-cpp/default.nix
+++ b/pkgs/development/python-modules/awkward-cpp/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "awkward-cpp";
-  version = "33";
+  version = "34";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-VQrevM0ynRjQLpUibQuJaYGI/TPkTwdFCULGkogZJ9g=";
+    hash = "sha256-OayBTXafOK3ppfbDm4Wwe7wFr1Y0L7FXQu3OEjf54Ek=";
   };
 
   build-system = [
@@ -35,11 +35,11 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "awkward_cpp" ];
 
-  meta = with lib; {
+  meta = {
     description = "CPU kernels and compiled extensions for Awkward Array";
     homepage = "https://github.com/scikit-hep/awkward";
     changelog = "https://github.com/scikit-hep/awkward/releases/tag/v${version}";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ veprbl ];
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ veprbl ];
   };
 }
diff --git a/pkgs/development/python-modules/awkward/default.nix b/pkgs/development/python-modules/awkward/default.nix
index d0d028be234a5..f7f613148f9e5 100644
--- a/pkgs/development/python-modules/awkward/default.nix
+++ b/pkgs/development/python-modules/awkward/default.nix
@@ -25,7 +25,7 @@
 
 buildPythonPackage rec {
   pname = "awkward";
-  version = "2.6.4";
+  version = "2.6.5";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     owner = "scikit-hep";
     repo = "awkward";
     rev = "refs/tags/v${version}";
-    hash = "sha256-hoNxNxWfoSlBg6CsKvgEknM4vd+rN/9EFD5nC2y45OA=";
+    hash = "sha256-HDO626bK5BH/mdLuGkeYIOz8X2N9/rkTLhQNzG1erYA=";
   };
 
   build-system = [
@@ -80,11 +80,11 @@ buildPythonPackage rec {
     # Disable tests dependending on jax on darwin
   ] ++ lib.optionals stdenv.isDarwin [ "tests/test_2603_custom_behaviors_with_jax.py" ];
 
-  meta = with lib; {
+  meta = {
     description = "Manipulate JSON-like data with NumPy-like idioms";
     homepage = "https://github.com/scikit-hep/awkward";
     changelog = "https://github.com/scikit-hep/awkward/releases/tag/v${version}";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ veprbl ];
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ veprbl ];
   };
 }
diff --git a/pkgs/development/python-modules/aws-encryption-sdk/default.nix b/pkgs/development/python-modules/aws-encryption-sdk/default.nix
index 2094ab1e3c4d2..35e3af8980d19 100644
--- a/pkgs/development/python-modules/aws-encryption-sdk/default.nix
+++ b/pkgs/development/python-modules/aws-encryption-sdk/default.nix
@@ -15,19 +15,19 @@
 
 buildPythonPackage rec {
   pname = "aws-encryption-sdk";
-  version = "3.2.0";
+  version = "3.3.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-QwT8+M4qo/qYsaz/ejvzzQUowynAxDe1Xg9Fa79iNH4=";
+    hash = "sha256-6yrboU9IHNg9cWmrjmQplIltOaSmTheWkEprSSVmE7A=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     attrs
     boto3
     cryptography
diff --git a/pkgs/development/python-modules/awscrt/default.nix b/pkgs/development/python-modules/awscrt/default.nix
index 05daf72893dfc..658afb0245475 100644
--- a/pkgs/development/python-modules/awscrt/default.nix
+++ b/pkgs/development/python-modules/awscrt/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "awscrt";
-  version = "0.20.9";
+  version = "0.20.10";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-JDeFrJ7mSUXgR5wjhDJVRfKVl1dXQ86Ew3FVbRAU5j4=";
+    hash = "sha256-vGmN6MU61KLqsWRrkhlqWE6tFwplxltZyIOFWt6lly8=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [
diff --git a/pkgs/development/python-modules/ax/default.nix b/pkgs/development/python-modules/ax/default.nix
index ac6f96e48f2aa..dddcc6e1ebeb5 100644
--- a/pkgs/development/python-modules/ax/default.nix
+++ b/pkgs/development/python-modules/ax/default.nix
@@ -2,11 +2,13 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
+  ax,
   botorch,
   ipywidgets,
   jinja2,
   pandas,
   plotly,
+  python,
   setuptools,
   setuptools-scm,
   typeguard,
@@ -79,6 +81,11 @@ buildPythonPackage rec {
   ];
   pythonImportsCheck = [ "ax" ];
 
+  # Many portions of the test suite fail under Python 3.12
+  doCheck = lib.versions.majorMinor python.version != "3.12";
+
+  passthru.tests.check = ax.overridePythonAttrs { doCheck = true; };
+
   meta = with lib; {
     description = "Ax is an accessible, general-purpose platform for understanding, managing, deploying, and automating adaptive experiments";
     homepage = "https://ax.dev/";
diff --git a/pkgs/development/python-modules/bambi/default.nix b/pkgs/development/python-modules/bambi/default.nix
index 9f051f511c4dd..f2447b2c9d125 100644
--- a/pkgs/development/python-modules/bambi/default.nix
+++ b/pkgs/development/python-modules/bambi/default.nix
@@ -87,5 +87,7 @@ buildPythonPackage rec {
     changelog = "https://github.com/bambinos/bambi/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ bcdarwin ];
+    # https://github.com/NixOS/nixpkgs/issues/310940
+    broken = true;
   };
 }
diff --git a/pkgs/development/python-modules/bash-kernel/default.nix b/pkgs/development/python-modules/bash-kernel/default.nix
index 8ed6a8c79cfee..0df270f8a2b7a 100644
--- a/pkgs/development/python-modules/bash-kernel/default.nix
+++ b/pkgs/development/python-modules/bash-kernel/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchPypi,
-  fetchpatch,
   flit-core,
   ipykernel,
   python,
diff --git a/pkgs/development/python-modules/bc-detect-secrets/default.nix b/pkgs/development/python-modules/bc-detect-secrets/default.nix
index 7e2a162df53f4..a09cd1938fa93 100644
--- a/pkgs/development/python-modules/bc-detect-secrets/default.nix
+++ b/pkgs/development/python-modules/bc-detect-secrets/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "bc-detect-secrets";
-  version = "1.5.10";
+  version = "1.5.11";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "bridgecrewio";
     repo = "detect-secrets";
     rev = "refs/tags/${version}";
-    hash = "sha256-b0t5xv4fWiErQsYvDKTJuweiGLqS2WpR9ECGo/cpvQ8=";
+    hash = "sha256-JUpeG3qSiMjQBo3p4AvSP7XgoYy+RJTw797IKhbmCu4=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/bluetooth-sensor-state-data/default.nix b/pkgs/development/python-modules/bluetooth-sensor-state-data/default.nix
index c242f7d8d5ccd..d3e3a36ff885e 100644
--- a/pkgs/development/python-modules/bluetooth-sensor-state-data/default.nix
+++ b/pkgs/development/python-modules/bluetooth-sensor-state-data/default.nix
@@ -11,38 +11,39 @@
 
 buildPythonPackage rec {
   pname = "bluetooth-sensor-state-data";
-  version = "1.6.2";
-  format = "pyproject";
+  version = "1.7.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "Bluetooth-Devices";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-NC0l3wbQKz4MVM0kHbXBAUol74ir7V/JQgeYCVuyRs4=";
+    repo = "bluetooth-sensor-state-data";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-phiK+2tULBE78d1X/TsaT2kLRHxiCiuLMkaI7S6tqJ8=";
   };
 
-  nativeBuildInputs = [ poetry-core ];
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail " --cov=bluetooth_sensor_state_data --cov-report=term-missing:skip-covered" ""
+  '';
+
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     home-assistant-bluetooth
     sensor-state-data
   ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace " --cov=bluetooth_sensor_state_data --cov-report=term-missing:skip-covered" ""
-  '';
-
   pythonImportsCheck = [ "bluetooth_sensor_state_data" ];
 
   meta = with lib; {
     description = "Models for storing and converting Bluetooth Sensor State Data";
     homepage = "https://github.com/bluetooth-devices/bluetooth-sensor-state-data";
-    license = with licenses; [ asl20 ];
+    changelog = "https://github.com/Bluetooth-Devices/bluetooth-sensor-state-data/releases/tag/v${version}";
+    license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/boltztrap2/default.nix b/pkgs/development/python-modules/boltztrap2/default.nix
index 7994a26618eeb..16e9c8f76d474 100644
--- a/pkgs/development/python-modules/boltztrap2/default.nix
+++ b/pkgs/development/python-modules/boltztrap2/default.nix
@@ -8,16 +8,18 @@
   matplotlib,
   ase,
   netcdf4,
-  pytest,
   pythonOlder,
   cython,
   cmake,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "boltztrap2";
   version = "24.1.1";
-  format = "setuptools";
+
+  pyproject = true;
+  build-system = [ setuptools ];
 
   disabled = pythonOlder "3.5";
 
@@ -27,6 +29,11 @@ buildPythonPackage rec {
     hash = "sha256-kgv4lPBxcBmRKihaTwPRz8bHTWAWUOGZADtJUb3y+C4=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace-fail "USE_CYTHON = False" "USE_CYTHON = True"
+  '';
+
   dontUseCmakeConfigure = true;
 
   nativeBuildInputs = [
@@ -34,7 +41,7 @@ buildPythonPackage rec {
     cython
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     spglib
     numpy
     scipy
diff --git a/pkgs/development/python-modules/boto3-stubs/default.nix b/pkgs/development/python-modules/boto3-stubs/default.nix
index 6a6dc2ee0ef5e..c8342b3f6d37d 100644
--- a/pkgs/development/python-modules/boto3-stubs/default.nix
+++ b/pkgs/development/python-modules/boto3-stubs/default.nix
@@ -366,7 +366,7 @@
 
 buildPythonPackage rec {
   pname = "boto3-stubs";
-  version = "1.34.110";
+  version = "1.34.113";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -374,7 +374,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "boto3_stubs";
     inherit version;
-    hash = "sha256-S1Xvok7jS1T/5QaJnwvfqMqEMfbUuSItY0fdkOabpzU=";
+    hash = "sha256-Fqr40Jec/WX4UFNqLM9DRNAPEmOKo3emW3bAAzjzXFA=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/boto3/default.nix b/pkgs/development/python-modules/boto3/default.nix
index a98441952ed67..274f742015207 100644
--- a/pkgs/development/python-modules/boto3/default.nix
+++ b/pkgs/development/python-modules/boto3/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "boto3";
-  version = "1.34.58"; # N.B: if you change this, change botocore and awscli to a matching version
+  inherit (botocore) version; # N.B: botocore, boto3, awscli needs to be updated in lockstep, bump botocore version for updating these.
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "boto";
     repo = "boto3";
     rev = "refs/tags/${version}";
-    hash = "sha256-2L4pHjrDoy7dPZm0nx+NXZV/K3ZVx7FrNGYZTMrwAs4=";
+    hash = "sha256-1qnWJjYsDc70VkHYbKt0X26f0f4TugqMiS1FeaPjhq4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/botocore/default.nix b/pkgs/development/python-modules/botocore/default.nix
index 4d2237c461f7d..7022fe5eb8768 100644
--- a/pkgs/development/python-modules/botocore/default.nix
+++ b/pkgs/development/python-modules/botocore/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "botocore";
-  version = "1.34.87"; # N.B: if you change this, change boto3 and awscli to a matching version
+  version = "1.34.109"; # N.B: if you change this, change boto3 and awscli to a matching version
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-o6TYV/CUHZih5c6M1kw5BiJx/qC+TZ89DWr/bLWBI7k=";
+    hash = "sha256-gEghJSWXgh9yI8s7/KKipROuC7mnHo4iYFr/aGbhPnE=";
   };
 
   pythonRelaxDeps = [ "urllib3" ];
diff --git a/pkgs/development/python-modules/broadbean/default.nix b/pkgs/development/python-modules/broadbean/default.nix
index 50bc96bdea6d1..e1c47cea6d312 100644
--- a/pkgs/development/python-modules/broadbean/default.nix
+++ b/pkgs/development/python-modules/broadbean/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchPypi,
-  fetchpatch,
   pythonOlder,
   setuptools,
   versioningit,
diff --git a/pkgs/development/python-modules/bugsnag/default.nix b/pkgs/development/python-modules/bugsnag/default.nix
index d6f2cc38be6ed..18466cb31cb39 100644
--- a/pkgs/development/python-modules/bugsnag/default.nix
+++ b/pkgs/development/python-modules/bugsnag/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "bugsnag";
-  version = "4.7.0";
+  version = "4.7.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+w0lI2goXYnfX2KB+DNFPXl6UCOhg5o17zggalyYXr8=";
+    hash = "sha256-mECP4X1KfzAKVlNUB6ZEi5hE2bUoxEUnkIho/DZG6HM=";
   };
 
   propagatedBuildInputs = [ webob ];
diff --git a/pkgs/development/python-modules/caio/default.nix b/pkgs/development/python-modules/caio/default.nix
index f8c3df017a8a9..61a2a6ecb4e7f 100644
--- a/pkgs/development/python-modules/caio/default.nix
+++ b/pkgs/development/python-modules/caio/default.nix
@@ -7,22 +7,25 @@
   pytest-aiohttp,
   pytestCheckHook,
   pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "caio";
   version = "0.9.13";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "mosquito";
-    repo = pname;
+    repo = "caio";
     rev = "refs/tags/${version}";
     hash = "sha256-Q87NuL6yZ5uKImQqqdKTMWNyfUOb4NaZDEvNdqZbHDk=";
   };
 
+  build-system = [ setuptools ];
+
   nativeCheckInputs = [
     aiomisc
     pytest-aiohttp
diff --git a/pkgs/development/python-modules/camelot/default.nix b/pkgs/development/python-modules/camelot/default.nix
index 4331d564b716d..08b73672bcae3 100644
--- a/pkgs/development/python-modules/camelot/default.nix
+++ b/pkgs/development/python-modules/camelot/default.nix
@@ -1,12 +1,10 @@
 {
   lib,
-  stdenv,
   buildPythonPackage,
   chardet,
   openpyxl,
   charset-normalizer,
   fetchPypi,
-  fetchpatch,
   pythonOlder,
   pandas,
   tabulate,
diff --git a/pkgs/development/python-modules/cartopy/default.nix b/pkgs/development/python-modules/cartopy/default.nix
index 9df147a45c5fc..d37818d00be72 100644
--- a/pkgs/development/python-modules/cartopy/default.nix
+++ b/pkgs/development/python-modules/cartopy/default.nix
@@ -3,7 +3,6 @@
   buildPythonPackage,
   pythonOlder,
   fetchPypi,
-  fetchpatch,
   cython,
   setuptools-scm,
   geos,
diff --git a/pkgs/development/python-modules/casbin/default.nix b/pkgs/development/python-modules/casbin/default.nix
index 81c0dd3c24b6b..0670369db9c56 100644
--- a/pkgs/development/python-modules/casbin/default.nix
+++ b/pkgs/development/python-modules/casbin/default.nix
@@ -23,9 +23,9 @@ buildPythonPackage rec {
     hash = "sha256-MeTOxDrk6pvJ1L9ZOKzWhXK8WXo0jWXGKEKR7y0ejbQ=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     simpleeval
     wcmatch
   ];
diff --git a/pkgs/development/python-modules/cf-xarray/default.nix b/pkgs/development/python-modules/cf-xarray/default.nix
index e2707a4d45f2c..2ea7714f20811 100644
--- a/pkgs/development/python-modules/cf-xarray/default.nix
+++ b/pkgs/development/python-modules/cf-xarray/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "cf-xarray";
-  version = "0.9.0";
+  version = "0.9.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "xarray-contrib";
     repo = "cf-xarray";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MlI5Wx0GOcXPRb/p0sPyAtbf84g3LQKVxCZLBfEIGLo=";
+    hash = "sha256-Og84lB99576G3IZz8LNafF86TyYP+ooe2tL8wb60RPw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/chromadb/default.nix b/pkgs/development/python-modules/chromadb/default.nix
index 471b6111a93d3..ed4c8d541a145 100644
--- a/pkgs/development/python-modules/chromadb/default.nix
+++ b/pkgs/development/python-modules/chromadb/default.nix
@@ -150,10 +150,11 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "The AI-native open-source embedding database";
-    mainProgram = "chroma";
     homepage = "https://github.com/chroma-core/chroma";
     changelog = "https://github.com/chroma-core/chroma/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "chroma";
+    broken = stdenv.isLinux && stdenv.isAarch64;
   };
 }
diff --git a/pkgs/development/python-modules/circus/default.nix b/pkgs/development/python-modules/circus/default.nix
index 7445dd1a64653..2a2d8e3c5d5fd 100644
--- a/pkgs/development/python-modules/circus/default.nix
+++ b/pkgs/development/python-modules/circus/default.nix
@@ -6,6 +6,7 @@
   flit-core,
   psutil,
   pytestCheckHook,
+  pythonOlder,
   pyyaml,
   pyzmq,
   tornado,
@@ -14,16 +15,18 @@
 buildPythonPackage rec {
   pname = "circus";
   version = "0.18.0";
-  format = "pyproject";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-GTzoIk4GjO1mckz0gxBvtmdLUaV1g6waDn7Xp+6Mcas=";
   };
 
-  nativeBuildInputs = [ flit-core ];
+  build-system = [ flit-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     psutil
     pyzmq
     tornado
@@ -41,38 +44,39 @@ buildPythonPackage rec {
 
   disabledTests = [
     # these tests raise circus.tests.support.TimeoutException
-    "test_reload1"
-    "test_reload2"
+    "test_add_start"
+    "test_add"
+    "test_command_already_running"
+    "test_dummy"
+    "test_exits_within_graceful_timeout"
+    "test_full_stats"
+    "test_handler"
+    "test_handler"
+    "test_inherited"
+    "test_kills_after_graceful_timeout"
+    "test_launch_cli"
+    "test_max_age"
     "test_reload_sequential"
     "test_reload_uppercase"
     "test_reload_wid_1_worker"
     "test_reload_wid_4_workers"
-    "test_add"
-    "test_add_start"
-    "test_command_already_running"
-    "test_launch_cli"
-    "test_handler"
+    "test_reload1"
+    "test_reload2"
     "test_resource_watcher_max_cpu"
-    "test_resource_watcher_max_mem"
     "test_resource_watcher_max_mem_abs"
+    "test_resource_watcher_max_mem"
     "test_resource_watcher_min_cpu"
-    "test_resource_watcher_min_mem"
     "test_resource_watcher_min_mem_abs"
-    "test_full_stats"
-    "test_watchdog_discovery_found"
-    "test_watchdog_discovery_not_found"
-    "test_dummy"
-    "test_handler"
-    "test_stdin_socket"
-    "test_stop_and_restart"
-    "test_stream"
-    "test_inherited"
+    "test_resource_watcher_min_mem"
     "test_set_before_launch"
     "test_set_by_arbiter"
-    "test_max_age"
     "test_signal"
-    "test_exits_within_graceful_timeout"
-    "test_kills_after_graceful_timeout"
+    "test_stdin_socket"
+    "test_stop_and_restart"
+    "test_stream"
+    "test_venv"
+    "test_watchdog_discovery_found"
+    "test_watchdog_discovery_not_found"
     # this test requires socket communication
     "test_plugins"
   ];
@@ -82,6 +86,8 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "A process and socket manager";
     homepage = "https://github.com/circus-tent/circus";
+    changelog = "https://github.com/circus-tent/circus/releases/tag/${version}";
     license = licenses.asl20;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/clarabel/default.nix b/pkgs/development/python-modules/clarabel/default.nix
index 7dbd7a352b082..8762410587dad 100644
--- a/pkgs/development/python-modules/clarabel/default.nix
+++ b/pkgs/development/python-modules/clarabel/default.nix
@@ -12,18 +12,18 @@
 
 buildPythonPackage rec {
   pname = "clarabel";
-  version = "0.7.1";
+  version = "0.8.1";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-owqxNfR1xbx4Mp/X31dSkRVeYFW8rwISTrYQuK0XY5Y=";
+    hash = "sha256-03GEFzlvzLeedKVeDokdHGArwjunh3Zm8cJQL90mI+o=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-Tg9K66WIIAZyua8QlKrlUnpRJRmuxe7ihIr2Vqg79NQ=";
+    hash = "sha256-9zBr9SUd8jJDSqRX9Xs0mDV5gck/qfqJ3VfEAOz7EsA=";
   };
 
   nativeBuildInputs = with rustPlatform; [
diff --git a/pkgs/development/python-modules/cleanlab/default.nix b/pkgs/development/python-modules/cleanlab/default.nix
index e90989967b110..1d42c24609f8b 100644
--- a/pkgs/development/python-modules/cleanlab/default.nix
+++ b/pkgs/development/python-modules/cleanlab/default.nix
@@ -3,42 +3,45 @@
   buildPythonPackage,
   fetchFromGitHub,
   pythonOlder,
+  numpy,
   scikit-learn,
   termcolor,
   tqdm,
   pandas,
   setuptools,
   # test dependencies
+  datasets,
+  fasttext,
+  hypothesis,
+  keras,
+  matplotlib,
   pytestCheckHook,
   pytest-lazy-fixture,
+  skorch,
   tensorflow,
   torch,
-  datasets,
   torchvision,
-  keras,
-  fasttext,
-  hypothesis,
   wget,
-  matplotlib,
-  skorch,
 }:
 
 buildPythonPackage rec {
   pname = "cleanlab";
-  version = "2.6.1";
+  version = "2.6.5";
   pyproject = true;
-  disabled = pythonOlder "3.7";
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "cleanlab";
-    repo = pname;
+    repo = "cleanlab";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+uJtm/t6Ri25V/9N/2fcOgCOBaBy8PrsM/tO1uX7FEY=";
+    hash = "sha256-wehvGh27Ey1YK+eWTjT6jRwa7yqPpx3P0HUNePoljpw=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
+    numpy
     scikit-learn
     termcolor
     tqdm
@@ -53,18 +56,18 @@ buildPythonPackage rec {
   doCheck = true;
 
   nativeCheckInputs = [
+    datasets
+    fasttext
+    hypothesis
+    keras
+    matplotlib
     pytestCheckHook
     pytest-lazy-fixture
+    skorch
     tensorflow
     torch
-    datasets
     torchvision
-    keras
-    fasttext
-    hypothesis
     wget
-    matplotlib
-    skorch
   ];
 
   disabledTests = [
@@ -77,13 +80,15 @@ buildPythonPackage rec {
     "tests/test_dataset.py"
     # Requires the datasets we just prevented from downloading
     "tests/datalab/test_cleanvision_integration.py"
+    # Fails because of issues with the keras derivation
+    "tests/test_frameworks.py"
   ];
 
-  meta = with lib; {
+  meta = {
     description = "The standard data-centric AI package for data quality and machine learning with messy, real-world data and labels.";
     homepage = "https://github.com/cleanlab/cleanlab";
     changelog = "https://github.com/cleanlab/cleanlab/releases/tag/v${version}";
-    license = licenses.agpl3Only;
-    maintainers = with maintainers; [ happysalada ];
+    license = lib.licenses.agpl3Only;
+    maintainers = with lib.maintainers; [ happysalada ];
   };
 }
diff --git a/pkgs/development/python-modules/clickgen/default.nix b/pkgs/development/python-modules/clickgen/default.nix
index b23f1d170b290..8e1f92aca382e 100644
--- a/pkgs/development/python-modules/clickgen/default.nix
+++ b/pkgs/development/python-modules/clickgen/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "clickgen";
-  version = "2.2.2";
+  version = "2.2.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "ful1e5";
     repo = "clickgen";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Lsb0FvJohwsXofpcq7OgWfhl/3qVxAqY0wdvum6ywSQ=";
+    hash = "sha256-hYorjqm/FCnff3ZTgIlicwmSLA9ZnHGDyPt1BcijBII=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/clickhouse-connect/default.nix b/pkgs/development/python-modules/clickhouse-connect/default.nix
index c0cefdb58431d..d3763045dd8e9 100644
--- a/pkgs/development/python-modules/clickhouse-connect/default.nix
+++ b/pkgs/development/python-modules/clickhouse-connect/default.nix
@@ -24,7 +24,7 @@
 }:
 buildPythonPackage rec {
   pname = "clickhouse-connect";
-  version = "0.7.8";
+  version = "0.7.10";
 
   format = "setuptools";
 
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     repo = "clickhouse-connect";
     owner = "ClickHouse";
     rev = "refs/tags/v${version}";
-    hash = "sha256-tdf9aYKAFpRyaqGGNxXs4bzmY6mdhKZ5toFBJRmD2VY=";
+    hash = "sha256-joY8T0BrqoysHl3PFmx8BqQjvROAD67O0nDLOOEZ7OI=";
   };
 
   nativeBuildInputs = [ cython ];
diff --git a/pkgs/development/python-modules/cnvkit/default.nix b/pkgs/development/python-modules/cnvkit/default.nix
index 4769bd2e57c60..1667a010a40e0 100644
--- a/pkgs/development/python-modules/cnvkit/default.nix
+++ b/pkgs/development/python-modules/cnvkit/default.nix
@@ -1,7 +1,6 @@
 {
   lib,
   fetchFromGitHub,
-  fetchpatch,
   rPackages,
   buildPythonPackage,
   biopython,
diff --git a/pkgs/development/python-modules/color-operations/default.nix b/pkgs/development/python-modules/color-operations/default.nix
new file mode 100644
index 0000000000000..e4189e06809a5
--- /dev/null
+++ b/pkgs/development/python-modules/color-operations/default.nix
@@ -0,0 +1,51 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+
+  colormath,
+  cython,
+  oldest-supported-numpy,
+  setuptools,
+}:
+
+buildPythonPackage rec {
+  pname = "color-operations";
+  version = "0.1.3";
+  pyproject = true;
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "vincentsarago";
+    repo = "color-operations";
+    rev = version;
+    hash = "sha256-KsrgilcNK2ufPKrhtGdf8mdlFzhsHB2jHN+WDlZqabc=";
+  };
+
+  nativeBuildInputs = [
+    cython
+    setuptools
+  ];
+
+  propagatedBuildInputs = [ oldest-supported-numpy ];
+
+  nativeCheckInputs = [
+    colormath
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    python setup.py build_ext --inplace
+  '';
+
+  pythonImportsCheck = [ "color_operations" ];
+
+  meta = {
+    description = "Apply basic color-oriented image operations. Fork of rio-color";
+    homepage = "https://github.com/vincentsarago/color-operations";
+    license = lib.licenses.mit;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/craft-parts/default.nix b/pkgs/development/python-modules/craft-parts/default.nix
index 83fbd2f7bb021..3a137744d68f8 100644
--- a/pkgs/development/python-modules/craft-parts/default.nix
+++ b/pkgs/development/python-modules/craft-parts/default.nix
@@ -27,7 +27,7 @@
 
 buildPythonPackage rec {
   pname = "craft-parts";
-  version = "1.30.0";
+  version = "1.31.0";
 
   pyproject = true;
 
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     owner = "canonical";
     repo = "craft-parts";
     rev = "refs/tags/${version}";
-    hash = "sha256-JEf5JYDBH4Pm5ke++7GkpimM8Ec0dFe1GGxruntjmVE=";
+    hash = "sha256-DohH81xhUfZI3NfmX6aDaOC/QLiddsxPzrc1vgFECTg=";
   };
 
   patches = [ ./bash-path.patch ];
diff --git a/pkgs/development/python-modules/curio/default.nix b/pkgs/development/python-modules/curio/default.nix
index 03a5454f55cec..087d85405e260 100644
--- a/pkgs/development/python-modules/curio/default.nix
+++ b/pkgs/development/python-modules/curio/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   disabledTests =
     [
+      "test_cpu" # timing sensitive
       "test_aside_basic" # times out
       "test_write_timeout" # flaky, does not always time out
       "test_aside_cancel" # fails because modifies PYTHONPATH and cant find pytest
diff --git a/pkgs/development/python-modules/cyclonedx-python-lib/default.nix b/pkgs/development/python-modules/cyclonedx-python-lib/default.nix
index 4a2318693becc..5b3dac5c094dc 100644
--- a/pkgs/development/python-modules/cyclonedx-python-lib/default.nix
+++ b/pkgs/development/python-modules/cyclonedx-python-lib/default.nix
@@ -24,7 +24,7 @@
 
 buildPythonPackage rec {
   pname = "cyclonedx-python-lib";
-  version = "7.3.4";
+  version = "7.4.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -33,7 +33,7 @@ buildPythonPackage rec {
     owner = "CycloneDX";
     repo = "cyclonedx-python-lib";
     rev = "refs/tags/v${version}";
-    hash = "sha256-rFxCeQTCQSpg0LQYyOxhk150KOUyV9PXdXo1mOA0KPw=";
+    hash = "sha256-cR/E0xVPl2iBgjhX9xv8nftmmTDWjDUqRgvNqcAWzRo=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/dask-expr/default.nix b/pkgs/development/python-modules/dask-expr/default.nix
index 457a2b5ddf332..ea2de99a21e2f 100644
--- a/pkgs/development/python-modules/dask-expr/default.nix
+++ b/pkgs/development/python-modules/dask-expr/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "dask";
     repo = "dask-expr";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ltsRKbb/p+qHeNiX0oeZUKbbjPoPxSM4uFnWUFqoqhc=";
+    hash = "sha256-N+hvalSn8mwlAaN3Xhu+YxECORfLN4UHutwmeiGR9WI=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/datasets/default.nix b/pkgs/development/python-modules/datasets/default.nix
index 4ba7b08c0fb03..76f53b224e161 100644
--- a/pkgs/development/python-modules/datasets/default.nix
+++ b/pkgs/development/python-modules/datasets/default.nix
@@ -4,7 +4,6 @@
   buildPythonPackage,
   dill,
   fetchFromGitHub,
-  fetchpatch,
   fsspec,
   huggingface-hub,
   importlib-metadata,
diff --git a/pkgs/development/python-modules/datashape/default.nix b/pkgs/development/python-modules/datashape/default.nix
index 6f6651a6c6175..64d0afae90c1e 100644
--- a/pkgs/development/python-modules/datashape/default.nix
+++ b/pkgs/development/python-modules/datashape/default.nix
@@ -7,6 +7,8 @@
   numpy,
   multipledispatch,
   python-dateutil,
+  setuptools,
+  versioneer,
 }:
 
 let
@@ -29,18 +31,28 @@ in
 buildPythonPackage rec {
   pname = "datashape";
   version = "0.5.4";
-  format = "setuptools";
+
+  pyproject = true;
+  build-system = [
+    setuptools
+    versioneer
+  ];
 
   src = fetcher {
     inherit pname version;
     sha256 = "0rhlj2kjj1vx5m73wnc5518rd6cs1zsbgpsvzk893n516k69shcf";
   };
 
+  postPatch = ''
+    # Remove vendorized versioneer.py
+    rm versioneer.py
+  '';
+
   nativeCheckInputs = [
     pytest
     mock
   ];
-  propagatedBuildInputs = [
+  dependencies = [
     numpy
     multipledispatch
     python-dateutil
diff --git a/pkgs/development/python-modules/deepdiff/default.nix b/pkgs/development/python-modules/deepdiff/default.nix
index dc82f82718322..e16fd6e90cc30 100644
--- a/pkgs/development/python-modules/deepdiff/default.nix
+++ b/pkgs/development/python-modules/deepdiff/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
   '';
 
   propagatedBuildInputs = [
+    click
     ordered-set
     orjson
   ];
diff --git a/pkgs/development/python-modules/deezer-python/default.nix b/pkgs/development/python-modules/deezer-python/default.nix
index 812f9eba2469d..0bd136e6fcebb 100644
--- a/pkgs/development/python-modules/deezer-python/default.nix
+++ b/pkgs/development/python-modules/deezer-python/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "deezer-python";
-  version = "6.1.1";
+  version = "6.2.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -23,15 +23,20 @@ buildPythonPackage rec {
     owner = "browniebroke";
     repo = "deezer-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-pzEXiWKMP2Wqme/pqfTMHxWH/4YcCS6u865wslHrUqI=";
+    hash = "sha256-Y1y8FBxpGpNIWCZbel9fdGLGC9VM9h1BvHtUxCZxp/A=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace " --cov=deezer" ""
+      --replace-fail " --cov=deezer" ""
   '';
 
-  nativeBuildInputs = [ poetry-core ];
+  build-system = [ poetry-core ];
+
+  dependencies = [
+    requests
+    tornado
+  ];
 
   nativeCheckInputs = [
     environs
@@ -40,11 +45,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  propagatedBuildInputs = [
-    requests
-    tornado
-  ];
-
   pythonImportsCheck = [ "deezer" ];
 
   disabledTests = [
diff --git a/pkgs/development/python-modules/django-cryptography/default.nix b/pkgs/development/python-modules/django-cryptography/default.nix
index 74ede8be539eb..d5849498ecfde 100644
--- a/pkgs/development/python-modules/django-cryptography/default.nix
+++ b/pkgs/development/python-modules/django-cryptography/default.nix
@@ -4,7 +4,6 @@
   django,
   django-appconf,
   fetchFromGitHub,
-  fetchpatch,
   lib,
   python,
   pythonOlder,
diff --git a/pkgs/development/python-modules/django-import-export/default.nix b/pkgs/development/python-modules/django-import-export/default.nix
index a57a770444eda..f9898a8d6f9eb 100644
--- a/pkgs/development/python-modules/django-import-export/default.nix
+++ b/pkgs/development/python-modules/django-import-export/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "django-import-export";
-  version = "4.0.3";
+  version = "4.0.5";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "django-import-export";
     repo = "django-import-export";
     rev = "refs/tags/${version}";
-    hash = "sha256-ItJx9yJSy88/OvkpjGDWGBOMk5YlSquicSWi0tbKeWE=";
+    hash = "sha256-jH/f2eebVcvd96XpaN2eBh5Yx5n0DRbDeKPh7+AaTE8=";
   };
 
   pythonRelaxDeps = [ "tablib" ];
diff --git a/pkgs/development/python-modules/django-js-reverse/default.nix b/pkgs/development/python-modules/django-js-reverse/default.nix
index 9fedef235c113..3e344f881395d 100644
--- a/pkgs/development/python-modules/django-js-reverse/default.nix
+++ b/pkgs/development/python-modules/django-js-reverse/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   pythonAtLeast,
-  fetchpatch,
   fetchFromGitHub,
   python,
   django,
diff --git a/pkgs/development/python-modules/django-modeltranslation/default.nix b/pkgs/development/python-modules/django-modeltranslation/default.nix
index eb6458d6a96cd..be8cf7def52f7 100644
--- a/pkgs/development/python-modules/django-modeltranslation/default.nix
+++ b/pkgs/development/python-modules/django-modeltranslation/default.nix
@@ -11,7 +11,7 @@
 let
   # 0.18.12 was yanked from PyPI, it refers to this issue:
   # https://github.com/deschler/django-modeltranslation/issues/701
-  version = "0.18.13";
+  version = "0.19.0";
 in
 buildPythonPackage {
   pname = "django-modeltranslation";
@@ -21,7 +21,7 @@ buildPythonPackage {
     owner = "deschler";
     repo = "django-modeltranslation";
     rev = "refs/tags/v${version}";
-    hash = "sha256-9tfB5/XMLnwn+AgaT9TkHtc3HcHiD4pme/+BW1uztIs=";
+    hash = "sha256-Ypz1C+Dx1v61A7LvIsW644qfFjNHQ7KXeKewQ5MAgi0=";
   };
 
   # Remove all references to pytest-cov
diff --git a/pkgs/development/python-modules/django-nose/default.nix b/pkgs/development/python-modules/django-nose/default.nix
deleted file mode 100644
index 2f3d1da6fdf63..0000000000000
--- a/pkgs/development/python-modules/django-nose/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-  lib,
-  buildPythonPackage,
-  fetchPypi,
-  nose,
-  django,
-}:
-
-buildPythonPackage rec {
-  pname = "django-nose";
-  version = "1.4.7";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "a4885cd002d65fd2de96e2bb2563ef477c3fbe207009360c015fca5c3b5561b7";
-  };
-
-  # vast dependency list
-  doCheck = false;
-
-  propagatedBuildInputs = [
-    django
-    nose
-  ];
-
-  meta = with lib; {
-    description = "Provides all the goodness of nose in your Django tests";
-    homepage = "https://github.com/django-nose/django-nose";
-    license = licenses.bsd3;
-  };
-}
diff --git a/pkgs/development/python-modules/django-oauth-toolkit/default.nix b/pkgs/development/python-modules/django-oauth-toolkit/default.nix
index 01b81de8aa24b..fdde98dd5ee5f 100644
--- a/pkgs/development/python-modules/django-oauth-toolkit/default.nix
+++ b/pkgs/development/python-modules/django-oauth-toolkit/default.nix
@@ -20,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "django-oauth-toolkit";
-  version = "2.3.0";
+  version = "2.4.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "jazzband";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-oGg5MD9p4PSUVkt5pGLwjAF4SHHf4Aqr+/3FsuFaybY=";
+    hash = "sha256-nfLjjVp+6OsjFdJHUZ2gzZic/E/sCklj+YeFyb/EZdw=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/django-pattern-library/default.nix b/pkgs/development/python-modules/django-pattern-library/default.nix
index 79fb13d7fa18b..0aaa35f940dc0 100644
--- a/pkgs/development/python-modules/django-pattern-library/default.nix
+++ b/pkgs/development/python-modules/django-pattern-library/default.nix
@@ -1,7 +1,6 @@
 {
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   lib,
 
   # build-system
diff --git a/pkgs/development/python-modules/django-ratelimit/default.nix b/pkgs/development/python-modules/django-ratelimit/default.nix
new file mode 100644
index 0000000000000..ca0216a9de5c3
--- /dev/null
+++ b/pkgs/development/python-modules/django-ratelimit/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, buildPythonPackage
+, django
+, django-redis
+, fetchFromGitHub
+, pymemcache
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "django-ratelimit";
+  version = "4.1.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "jsocol";
+    repo = "django-ratelimit";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ZMtZSKOIIRSqH6eyC7bBeua7YLKyWW6NOXN/MDv9fy4=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    django
+    django-redis
+    pymemcache
+  ];
+
+  pythonImportsCheck = [
+    "django_ratelimit"
+  ];
+
+  checkPhase = ''
+    runHook preCheck
+
+    export DJANGO_SETTINGS_MODULE=test_settings
+    python -m django test django_ratelimit
+
+    runHook postCheck
+  '';
+
+
+  meta = with lib; {
+    description = "Cache-based rate-limiting for Django";
+    homepage = "https://github.com/jsocol/django-ratelimit";
+    changelog = "https://github.com/jsocol/django-ratelimit/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ derdennisop ];
+  };
+}
diff --git a/pkgs/development/python-modules/django-silk/default.nix b/pkgs/development/python-modules/django-silk/default.nix
index a5cbf8e8aa2a9..796e07c93a3e6 100644
--- a/pkgs/development/python-modules/django-silk/default.nix
+++ b/pkgs/development/python-modules/django-silk/default.nix
@@ -5,7 +5,6 @@
   django,
   factory-boy,
   fetchFromGitHub,
-  fetchpatch,
   freezegun,
   gprof2dot,
   jinja2,
diff --git a/pkgs/development/python-modules/django/5.nix b/pkgs/development/python-modules/django/5.nix
index ba599684fd717..233fa75322359 100644
--- a/pkgs/development/python-modules/django/5.nix
+++ b/pkgs/development/python-modules/django/5.nix
@@ -3,7 +3,6 @@
   stdenv,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch2,
   pythonAtLeast,
   pythonOlder,
   substituteAll,
diff --git a/pkgs/development/python-modules/docker-py/default.nix b/pkgs/development/python-modules/docker-py/default.nix
deleted file mode 100644
index 159722a7a7567..0000000000000
--- a/pkgs/development/python-modules/docker-py/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{
-  lib,
-  buildPythonPackage,
-  fetchPypi,
-  six,
-  requests,
-  websocket-client,
-  docker-pycreds,
-}:
-
-buildPythonPackage rec {
-  version = "1.10.6";
-  format = "setuptools";
-  pname = "docker-py";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "05f49f6hnl7npmi7kigg0ibqk8s3fhzx1ivvz1kqvlv4ay3paajc";
-  };
-
-  # The tests access the network.
-  doCheck = false;
-
-  propagatedBuildInputs = [
-    six
-    requests
-    websocket-client
-    docker-pycreds
-  ];
-
-  meta = {
-    description = "Python library for the Docker Remote API";
-    homepage = "https://github.com/docker/docker-py/";
-    license = lib.licenses.asl20;
-    maintainers = [ lib.maintainers.pmiddend ];
-  };
-}
diff --git a/pkgs/development/python-modules/docker/default.nix b/pkgs/development/python-modules/docker/default.nix
index 38b3ab00e068b..77a7d25266457 100644
--- a/pkgs/development/python-modules/docker/default.nix
+++ b/pkgs/development/python-modules/docker/default.nix
@@ -2,12 +2,12 @@
   lib,
   stdenv,
   buildPythonPackage,
-  fetchPypi,
+  fetchFromGitHub,
   pythonOlder,
 
   # build-system
-  setuptools,
-  setuptools-scm,
+  hatchling,
+  hatch-vcs,
 
   # dependencies
   packaging,
@@ -24,29 +24,32 @@
 
 buildPythonPackage rec {
   pname = "docker";
-  version = "7.0.0";
-  format = "pyproject";
+  version = "7.1.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-Mjc2+5LNlBj8XnEzvJU+EanaBPRIP4KLUn21U/Hn5aM=";
+  src = fetchFromGitHub {
+    owner = "docker";
+    repo = "docker-py";
+    rev = "refs/tags/${version}";
+    hash = "sha256-sk6TZLek+fRkKq7kG9g6cR9lvfPC8v8qUXKb7Tq4pLU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-    setuptools-scm
+  build-system = [
+    hatchling
+    hatch-vcs
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     packaging
     requests
     urllib3
   ];
 
-  passthru.optional-dependencies = {
+  optional-dependencies = {
     ssh = [ paramiko ];
+    tls = [];
     websockets = [ websocket-client ];
   };
 
@@ -54,7 +57,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     pytestCheckHook
-  ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
+  ] ++ lib.flatten (lib.attrValues optional-dependencies);
 
   pytestFlagsArray = [ "tests/unit" ];
 
diff --git a/pkgs/development/python-modules/dot2tex/default.nix b/pkgs/development/python-modules/dot2tex/default.nix
index 5fbe44c98d553..acd9bbc34a1f9 100644
--- a/pkgs/development/python-modules/dot2tex/default.nix
+++ b/pkgs/development/python-modules/dot2tex/default.nix
@@ -1,7 +1,6 @@
 {
   lib,
   buildPythonPackage,
-  fetchpatch,
   fetchPypi,
   substituteAll,
   pyparsing,
diff --git a/pkgs/development/python-modules/dploot/default.nix b/pkgs/development/python-modules/dploot/default.nix
index d8afa8317043f..4104ec2ac44b0 100644
--- a/pkgs/development/python-modules/dploot/default.nix
+++ b/pkgs/development/python-modules/dploot/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "dploot";
-  version = "2.7.1";
+  version = "2.7.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-vNL5xrZkfYO11i8ERqD9637vrMb3Gkmo3RjvQ1ONXbY=";
+    hash = "sha256-Vbaghcomf9gRso4DN/cpJ4j7t6AU2vg2OhucKbfS1hc=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/ds4drv/default.nix b/pkgs/development/python-modules/ds4drv/default.nix
index 0eca163928fad..d4ebc468f9ef5 100644
--- a/pkgs/development/python-modules/ds4drv/default.nix
+++ b/pkgs/development/python-modules/ds4drv/default.nix
@@ -5,12 +5,15 @@
   evdev,
   pyudev,
   bluez,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "ds4drv";
   version = "0.5.1";
-  format = "setuptools";
+
+  pyproject = true;
+  build-system = [ setuptools ];
 
   # PyPi only carries py3 wheel
   src = fetchFromGitHub {
@@ -20,7 +23,12 @@ buildPythonPackage rec {
     sha256 = "0vinpla0apizzykcyfis79mrm1i6fhns83nkzw85svypdhkx2g8v";
   };
 
-  propagatedBuildInputs = [
+  postPatch = ''
+    substituteInPlace ds4drv/config.py \
+      --replace-fail SafeConfigParser ConfigParser
+  '';
+
+  dependencies = [
     evdev
     pyudev
   ];
diff --git a/pkgs/development/python-modules/dtw-python/default.nix b/pkgs/development/python-modules/dtw-python/default.nix
index 99567f3fd0c2f..a8481e78c7440 100644
--- a/pkgs/development/python-modules/dtw-python/default.nix
+++ b/pkgs/development/python-modules/dtw-python/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "dtw-python";
-  version = "1.4.2";
+  version = "1.4.4";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "DynamicTimeWarping";
     repo = "dtw-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Y0XzAPc2iJIp799gXTO7bUcHuOrDyqkd64DulLbdcAg=";
+    hash = "sha256-9+0NxQAvhVeH9RcBPTr1CjIjTqTsiUz68UIne5dErvw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/duckdb-engine/default.nix b/pkgs/development/python-modules/duckdb-engine/default.nix
index eb596f7413ecc..5b13f55ebed96 100644
--- a/pkgs/development/python-modules/duckdb-engine/default.nix
+++ b/pkgs/development/python-modules/duckdb-engine/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "duckdb-engine";
-  version = "0.12.0";
+  version = "0.12.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     repo = "duckdb_engine";
     owner = "Mause";
     rev = "refs/tags/v${version}";
-    hash = "sha256-cm0vbz0VZ2Ws6FDWJO16q4KZW2obs0CBNrfY9jmR+6A=";
+    hash = "sha256-+l6sRZHJnLfei1LR8WHqpC+0+91VLYKXn2e0w9+QRyk=";
   };
 
   nativeBuildInputs = [ poetry-core ];
diff --git a/pkgs/development/python-modules/ecos/default.nix b/pkgs/development/python-modules/ecos/default.nix
index defeaeb95cb69..6daec8eb775d7 100644
--- a/pkgs/development/python-modules/ecos/default.nix
+++ b/pkgs/development/python-modules/ecos/default.nix
@@ -2,44 +2,43 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  nose,
-  numpy,
+  oldest-supported-numpy,
+  pytestCheckHook,
   pythonOlder,
   scipy,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "ecos";
-  version = "2.0.11";
-  format = "setuptools";
+  version = "2.0.13";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "embotech";
     repo = "ecos-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-jflmXR7fuGRSyI6NoQrHFvkKqF/D4iq47StNSCdLbqQ=";
+    hash = "sha256-3NcZBZ7fnwiMelGssa74b5PgmXmNZhP4etNRpyrCkpo=";
     fetchSubmodules = true;
   };
 
-  propagatedBuildInputs = [
-    numpy
+  build-system = [ setuptools ];
+
+  dependencies = [
+    oldest-supported-numpy
     scipy
   ];
 
-  nativeCheckInputs = [ nose ];
-
-  checkPhase = ''
-    cd ./src
-    nosetests test_interface.py test_interface_bb.py
-  '';
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "ecos" ];
 
   meta = with lib; {
     description = "Python interface for ECOS";
     homepage = "https://github.com/embotech/ecos-python";
+    changelog = "https://github.com/embotech/ecos-python/releases/tag/v${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ drewrisinger ];
   };
diff --git a/pkgs/development/python-modules/ed25519/default.nix b/pkgs/development/python-modules/ed25519/default.nix
index ca34e5dcfeb94..1f10b9be005d8 100644
--- a/pkgs/development/python-modules/ed25519/default.nix
+++ b/pkgs/development/python-modules/ed25519/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   pythonOlder,
   setuptools,
   versioneer,
diff --git a/pkgs/development/python-modules/elastic-apm/default.nix b/pkgs/development/python-modules/elastic-apm/default.nix
index 25ef39efea064..a9eccc7bbbc6f 100644
--- a/pkgs/development/python-modules/elastic-apm/default.nix
+++ b/pkgs/development/python-modules/elastic-apm/default.nix
@@ -33,7 +33,7 @@
 
 buildPythonPackage rec {
   pname = "elastic-apm";
-  version = "6.22.0";
+  version = "6.22.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -42,7 +42,7 @@ buildPythonPackage rec {
     owner = "elastic";
     repo = "apm-agent-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-VuVx+QUiV4M/ebyv2uF/YZwfvcaPDJAEi55fXfoIttU=";
+    hash = "sha256-AHKF+o0iZ+c1JFq3lL5XdHBDAae9qTR1OJvwuUVsaeU=";
   };
 
   pythonRelaxDeps = [ "wrapt" ];
diff --git a/pkgs/development/python-modules/elastic-transport/default.nix b/pkgs/development/python-modules/elastic-transport/default.nix
index dac3236e6c7e2..4f569fc29a53e 100644
--- a/pkgs/development/python-modules/elastic-transport/default.nix
+++ b/pkgs/development/python-modules/elastic-transport/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "elastic-transport";
-  version = "8.13.0";
+  version = "8.13.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "elastic";
     repo = "elastic-transport-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-KmZCaAbzbfqbPwFuF43ckwgVhZVbPvwjF7uqPKHml9Q=";
+    hash = "sha256-zxx5BvqQf5ipaOANKpThWUTsfhDkNMJqUejAWH68wpo=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/elasticsearch8/default.nix b/pkgs/development/python-modules/elasticsearch8/default.nix
index 9b9f77d177b08..e36ec5eab06ce 100644
--- a/pkgs/development/python-modules/elasticsearch8/default.nix
+++ b/pkgs/development/python-modules/elasticsearch8/default.nix
@@ -4,29 +4,33 @@
   buildPythonPackage,
   elastic-transport,
   fetchPypi,
+  orjson,
   pythonOlder,
   requests,
+  setuptools,
   urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "elasticsearch8";
-  version = "8.13.0";
-  format = "setuptools";
+  version = "8.13.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-NWg+/dr8jXCCLeXBAXY1yL6/2CB0xCO5tswY4y/5erw=";
+    hash = "sha256-rl8IoV8kt68AJSkPMDx3d9eB6+2yPBgFpGEU6g+RjQ4=";
   };
 
-  nativeBuildInputs = [ elastic-transport ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [ requests ];
+  dependencies = [ elastic-transport ];
 
   passthru.optional-dependencies = {
     async = [ aiohttp ];
+    requests = [ requests ];
+    orjson = [ orjson ];
   };
 
   # Check is disabled because running them destroy the content of the local cluster!
diff --git a/pkgs/development/python-modules/elkm1-lib/default.nix b/pkgs/development/python-modules/elkm1-lib/default.nix
index cf8c39c308dd9..a1c04262a5bb8 100644
--- a/pkgs/development/python-modules/elkm1-lib/default.nix
+++ b/pkgs/development/python-modules/elkm1-lib/default.nix
@@ -3,7 +3,6 @@
   async-timeout,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   poetry-core,
   pyserial-asyncio-fast,
   pytest-asyncio,
diff --git a/pkgs/development/python-modules/envisage/default.nix b/pkgs/development/python-modules/envisage/default.nix
index 5eab0a1a3ddac..94964c9a581a8 100644
--- a/pkgs/development/python-modules/envisage/default.nix
+++ b/pkgs/development/python-modules/envisage/default.nix
@@ -3,7 +3,6 @@
   apptools,
   buildPythonPackage,
   fetchPypi,
-  fetchpatch,
   ipython,
   pytestCheckHook,
   pythonAtLeast,
diff --git a/pkgs/development/python-modules/envoy-reader/default.nix b/pkgs/development/python-modules/envoy-reader/default.nix
index 53d67fba45068..3f91c0c69e6a7 100644
--- a/pkgs/development/python-modules/envoy-reader/default.nix
+++ b/pkgs/development/python-modules/envoy-reader/default.nix
@@ -4,7 +4,6 @@
   buildPythonPackage,
   envoy-utils,
   fetchFromGitHub,
-  fetchpatch,
   httpx,
   pyjwt,
   pytest-asyncio,
diff --git a/pkgs/development/python-modules/faraday-agent-parameters-types/default.nix b/pkgs/development/python-modules/faraday-agent-parameters-types/default.nix
index 4970f246fab93..ac88fb2249be4 100644
--- a/pkgs/development/python-modules/faraday-agent-parameters-types/default.nix
+++ b/pkgs/development/python-modules/faraday-agent-parameters-types/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "faraday-agent-parameters-types";
-  version = "1.5.1";
+  version = "1.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "faraday_agent_parameters_types";
     inherit version;
-    hash = "sha256-Bh1s0IeUEa4EnGElQn5ruBxFSbcOqsrDqbw1nVjdi5s=";
+    hash = "sha256-yw4u1xhfY9WYLSf9CNAsiDpY7y2Llf8j4gDoNZjACw0=";
   };
 
   postPatch = ''
@@ -27,9 +27,9 @@ buildPythonPackage rec {
       --replace-warn '"pytest-runner",' ""
   '';
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     marshmallow
     packaging
   ];
@@ -50,7 +50,7 @@ buildPythonPackage rec {
     description = "Collection of Faraday agent parameters types";
     homepage = "https://github.com/infobyte/faraday_agent_parameters_types";
     changelog = "https://github.com/infobyte/faraday_agent_parameters_types/blob/${version}/CHANGELOG.md";
-    license = with licenses; [ gpl3Plus ];
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/faraday-plugins/default.nix b/pkgs/development/python-modules/faraday-plugins/default.nix
index ec509ea3841b3..7668dd48da547 100644
--- a/pkgs/development/python-modules/faraday-plugins/default.nix
+++ b/pkgs/development/python-modules/faraday-plugins/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "faraday-plugins";
-  version = "1.17.0";
+  version = "1.18.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -29,17 +29,17 @@ buildPythonPackage rec {
     owner = "infobyte";
     repo = "faraday_plugins";
     rev = "refs/tags/${version}";
-    hash = "sha256-EE61RPantD1u9NNhyPRjoRkBifM3u16b0BC2aQC8UBA=";
+    hash = "sha256-oYE7Iik0+CbOfxF9IeeZotpGqV8TTz15MxJEC4VBrhk=";
   };
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace-warn "version=version," "version='${version}',"
+      --replace-fail "version=version," "version='${version}',"
   '';
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     beautifulsoup4
     click
     colorama
@@ -73,10 +73,10 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Security tools report parsers for Faraday";
-    mainProgram = "faraday-plugins";
     homepage = "https://github.com/infobyte/faraday_plugins";
     changelog = "https://github.com/infobyte/faraday_plugins/releases/tag/${version}";
-    license = with licenses; [ gpl3Only ];
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "faraday-plugins";
   };
 }
diff --git a/pkgs/development/python-modules/faster-fifo/default.nix b/pkgs/development/python-modules/faster-fifo/default.nix
index 63f0011a17a4a..1b6d4a0ce90d2 100644
--- a/pkgs/development/python-modules/faster-fifo/default.nix
+++ b/pkgs/development/python-modules/faster-fifo/default.nix
@@ -2,8 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  stdenv,
-  gcc12Stdenv,
 
   # build-system
   cython,
@@ -14,22 +12,16 @@
   unittestCheckHook,
 }:
 
-let
-  stdenv' = if stdenv.isLinux then gcc12Stdenv else stdenv;
-in
 buildPythonPackage rec {
   pname = "faster-fifo";
-  version = "1.4.5";
+  version = "1.4.6";
   format = "pyproject";
 
-  # https://github.com/alex-petrenko/faster-fifo/issues/47\
-  stdenv = stdenv';
-
   src = fetchFromGitHub {
     owner = "alex-petrenko";
     repo = "faster-fifo";
     rev = "v${version}";
-    hash = "sha256-35kD+RWXwUXHG5leTVj4wY6hJAjDka69YczgSTIbCeg=";
+    hash = "sha256-vgaaIJTtNg2XqEZ9TB7tTMPJ9yMyWjtfdgNU/lcNLcg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/fastparquet/default.nix b/pkgs/development/python-modules/fastparquet/default.nix
index 40c841b385360..4add91da09261 100644
--- a/pkgs/development/python-modules/fastparquet/default.nix
+++ b/pkgs/development/python-modules/fastparquet/default.nix
@@ -1,62 +1,61 @@
 {
   lib,
   buildPythonPackage,
-  fetchFromGitHub,
-  python,
+  cramjam,
   cython,
-  oldest-supported-numpy,
-  setuptools,
-  setuptools-scm,
+  fetchFromGitHub,
+  fsspec,
+  git,
   numpy,
+  oldest-supported-numpy,
+  packaging,
   pandas,
-  cramjam,
-  fsspec,
-  thrift,
-  python-lzo,
   pytestCheckHook,
+  python-lzo,
+  python,
   pythonOlder,
-  packaging,
+  setuptools-scm,
+  setuptools,
   wheel,
 }:
 
 buildPythonPackage rec {
   pname = "fastparquet";
-  version = "2024.2.0";
+  version = "2024.5.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "dask";
     repo = "fastparquet";
     rev = "refs/tags/${version}";
-    hash = "sha256-e0gnC/HMYdrYdEwy6qNOD1J52xgN2x81oCG03YNsYjg=";
+    hash = "sha256-YiaVkpPzH8ZmTiEtCom9xLbKzByIt7Ilig/WlmGrYH4=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace-fail '"pytest-runner"' ""
-
-    sed -i \
-      -e "/pytest-runner/d" \
-      -e '/"git", "status"/d' setup.py
+      --replace-fail "numpy>=2.0.0rc1" "oldest-supported-numpy"
   '';
 
-  nativeBuildInputs = [
-    cython
-    oldest-supported-numpy
+  build-system = [
     setuptools
     setuptools-scm
     wheel
   ];
 
-  propagatedBuildInputs = [
+  nativeBuildInputs = [
+    cython
+    git
+    oldest-supported-numpy
+  ];
+
+  dependencies = [
     cramjam
     fsspec
     numpy
-    pandas
-    thrift
     packaging
+    pandas
   ];
 
   passthru.optional-dependencies = {
@@ -82,7 +81,8 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Implementation of the parquet format";
     homepage = "https://github.com/dask/fastparquet";
-    license = with licenses; [ asl20 ];
+    changelog = "https://github.com/dask/fastparquet/blob/${version}/docs/source/releasenotes.rst";
+    license = licenses.asl20;
     maintainers = with maintainers; [ veprbl ];
   };
 }
diff --git a/pkgs/development/python-modules/fido2/default.nix b/pkgs/development/python-modules/fido2/default.nix
index 5ce442d56bd2d..8b5a06c4a1fc5 100644
--- a/pkgs/development/python-modules/fido2/default.nix
+++ b/pkgs/development/python-modules/fido2/default.nix
@@ -3,38 +3,33 @@
   buildPythonPackage,
   cryptography,
   fetchPypi,
-  mock,
   poetry-core,
-  pyfakefs,
+  pyscard,
   pythonOlder,
-  six,
-  unittestCheckHook,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "fido2";
   version = "1.1.3";
-  format = "pyproject";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-JhAPIm0SztYhymGYUozhft9nt430KHruEoX+481aqfw=";
   };
 
-  nativeBuildInputs = [ poetry-core ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    cryptography
-    six
-  ];
+  dependencies = [ cryptography ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-    mock
-    pyfakefs
-  ];
+  passthru.optional-dependencies = {
+    pcsc = [ pyscard ];
+  };
+
+  nativeCheckInputs = [ pytestCheckHook ];
 
   unittestFlagsArray = [ "-v" ];
 
diff --git a/pkgs/development/python-modules/flask-babel/default.nix b/pkgs/development/python-modules/flask-babel/default.nix
index f1e911f0e3213..dfeda89807aaf 100644
--- a/pkgs/development/python-modules/flask-babel/default.nix
+++ b/pkgs/development/python-modules/flask-babel/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
 
   # build-system
   poetry-core,
diff --git a/pkgs/development/python-modules/flax/default.nix b/pkgs/development/python-modules/flax/default.nix
index 8d860b56886ff..7c443368bd41f 100644
--- a/pkgs/development/python-modules/flax/default.nix
+++ b/pkgs/development/python-modules/flax/default.nix
@@ -26,7 +26,7 @@
 
 buildPythonPackage rec {
   pname = "flax";
-  version = "0.8.3";
+  version = "0.8.4";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     owner = "google";
     repo = "flax";
     rev = "refs/tags/v${version}";
-    hash = "sha256-uDGTyksUZTTL6FiTJP+qteFLOjr75dcTj9yRJ6Jm8xU=";
+    hash = "sha256-ZwqKZdJ9LOfWTav5nE9xMsMw/DbryqQUuu5fqeugBzY=";
   };
 
   build-system = [
@@ -86,7 +86,7 @@ buildPythonPackage rec {
     # `tensorflow_datasets`, `vocabulary`) so the benefits of trying to run them
     # would be limited anyway.
     "examples/*"
-    "flax/experimental/nnx/examples/*"
+    "flax/nnx/examples/*"
     # See https://github.com/google/flax/issues/3232.
     "tests/jax_utils_test.py"
     # Requires tree
@@ -98,11 +98,11 @@ buildPythonPackage rec {
     "test_overwrite_checkpoints0"
   ];
 
-  meta = with lib; {
+  meta = {
     description = "Neural network library for JAX";
     homepage = "https://github.com/google/flax";
     changelog = "https://github.com/google/flax/releases/tag/v${version}";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ ndl ];
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ ndl ];
   };
 }
diff --git a/pkgs/development/python-modules/fontbakery/default.nix b/pkgs/development/python-modules/fontbakery/default.nix
index 89de0dbe68311..d985755364193 100644
--- a/pkgs/development/python-modules/fontbakery/default.nix
+++ b/pkgs/development/python-modules/fontbakery/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   callPackage,
-  fetchpatch,
   fetchPypi,
   axisregistry,
   babelfont,
diff --git a/pkgs/development/python-modules/fontfeatures/default.nix b/pkgs/development/python-modules/fontfeatures/default.nix
index 8902a962a910b..b6a4482b4ba40 100644
--- a/pkgs/development/python-modules/fontfeatures/default.nix
+++ b/pkgs/development/python-modules/fontfeatures/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchPypi,
-  fetchpatch,
   beziers,
   fonttools,
   fs,
diff --git a/pkgs/development/python-modules/foolscap/default.nix b/pkgs/development/python-modules/foolscap/default.nix
index 5c322bd8debde..5db308aa20cd5 100644
--- a/pkgs/development/python-modules/foolscap/default.nix
+++ b/pkgs/development/python-modules/foolscap/default.nix
@@ -1,32 +1,42 @@
 {
-  lib,
   buildPythonPackage,
   fetchPypi,
+  lib,
   mock,
   pyopenssl,
   pytestCheckHook,
   pythonOlder,
-  service-identity,
+  setuptools,
   six,
   twisted,
   txi2p-tahoe,
   txtorcon,
+  versioneer,
 }:
 
 buildPythonPackage rec {
   pname = "foolscap";
   version = "23.3.0";
 
-  disabled = pythonOlder "3.7";
+  pyproject = true;
+  build-system = [
+    setuptools
+    versioneer
+  ];
 
-  format = "setuptools";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-Vu7oXC1brsgBwr2q59TAgx8j1AFRbi5mjRNIWZTbkUU=";
   };
 
-  propagatedBuildInputs = [
+  postPatch = ''
+    # Remove vendorized versioneer.py
+    rm versioneer.py
+  '';
+
+  dependencies = [
     six
     twisted
     pyopenssl
diff --git a/pkgs/development/python-modules/geodatasets/default.nix b/pkgs/development/python-modules/geodatasets/default.nix
new file mode 100644
index 0000000000000..306c152dffa9f
--- /dev/null
+++ b/pkgs/development/python-modules/geodatasets/default.nix
@@ -0,0 +1,54 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+
+  geopandas,
+  pooch,
+  pyogrio,
+  setuptools-scm,
+}:
+
+buildPythonPackage rec {
+  pname = "geodatasets";
+  version = "2023.12.0";
+  pyproject = true;
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "geopandas";
+    repo = "geodatasets";
+    rev = version;
+    hash = "sha256-yecAky3lCKcSgW4kkYTBNnyKyIWnGSBL600wVgGN8CE=";
+  };
+
+  build-system = [ setuptools-scm ];
+
+  propagatedBuildInputs = [ pooch ];
+
+  nativeCheckInputs = [
+    geopandas
+    pyogrio
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    export HOME=$TMPDIR
+  '';
+
+  pytestFlagsArray = [
+    # disable tests which require network access
+    "-m 'not request'"
+  ];
+
+  pythonImportsCheck = [ "geodatasets" ];
+
+  meta = {
+    description = "Spatial data examples";
+    homepage = "https://geodatasets.readthedocs.io/";
+    license = lib.licenses.bsd3;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/gmpy2/default.nix b/pkgs/development/python-modules/gmpy2/default.nix
index 7bf82ed02b2dd..58f4cc08f6720 100644
--- a/pkgs/development/python-modules/gmpy2/default.nix
+++ b/pkgs/development/python-modules/gmpy2/default.nix
@@ -51,11 +51,17 @@ buildPythonPackage rec {
     mpmath
   ];
 
-  disabledTests = lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
-    # issue with some overflow logic
-    "test_mpz_to_bytes"
-    "test_mpz_from_bytes"
-  ];
+  disabledTests =
+    lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
+      # issue with some overflow logic
+      "test_mpz_to_bytes"
+      "test_mpz_from_bytes"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # TypeError: mpq() requires numeric or string argument
+      # not sure why it only fails on Darwin
+      "test_mpq_from_Decimal"
+    ];
 
   pythonImportsCheck = [ "gmpy2" ];
 
diff --git a/pkgs/development/python-modules/goodwe/default.nix b/pkgs/development/python-modules/goodwe/default.nix
index d2e8b5495f14c..ef2976a2694a3 100644
--- a/pkgs/development/python-modules/goodwe/default.nix
+++ b/pkgs/development/python-modules/goodwe/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "goodwe";
-  version = "0.4.3";
+  version = "0.4.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "marcelblijleven";
     repo = "goodwe";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Hj/iTFGUqvMeFQso6wCbkUmoGOSCEtMsO8HaQ/UQKeM=";
+    hash = "sha256-Si2sdqaAhENF/PjaJeD3VdZATecJUsX7TtfX819800A=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/gophish/default.nix b/pkgs/development/python-modules/gophish/default.nix
new file mode 100644
index 0000000000000..8a7d8c90d487c
--- /dev/null
+++ b/pkgs/development/python-modules/gophish/default.nix
@@ -0,0 +1,65 @@
+{
+  lib,
+  appdirs,
+  buildPythonPackage,
+  certifi,
+  chardet,
+  fetchFromGitHub,
+  idna,
+  packaging,
+  pyparsing,
+  python-dateutil,
+  pythonOlder,
+  pythonRelaxDepsHook,
+  requests,
+  setuptools,
+  six,
+  urllib3,
+}:
+
+buildPythonPackage rec {
+  pname = "gophish";
+  version = "0.5.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "gophish";
+    repo = "api-client-python";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ITwwU/Xixyi9JSWbYf606HB7S5E4jiI0lEYcOdNg3mo=";
+  };
+
+  pythonRelaxDeps = true;
+
+  build-system = [ setuptools ];
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
+
+  dependencies = [
+    appdirs
+    certifi
+    chardet
+    idna
+    packaging
+    pyparsing
+    python-dateutil
+    requests
+    six
+    urllib3
+  ];
+
+  pythonImportsCheck = [ "gophish" ];
+
+  # Module has no test
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Module to interact with Gophish";
+    homepage = "https://github.com/gophish/api-client-python";
+    changelog = "https://github.com/gophish/api-client-python/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/graph-tool/default.nix b/pkgs/development/python-modules/graph-tool/default.nix
index 460adeaa54e50..d6272068a366e 100644
--- a/pkgs/development/python-modules/graph-tool/default.nix
+++ b/pkgs/development/python-modules/graph-tool/default.nix
@@ -2,6 +2,7 @@
   buildPythonPackage,
   lib,
   fetchurl,
+  stdenv,
 
   autoreconfHook,
   boost,
@@ -24,12 +25,12 @@
 
 buildPythonPackage rec {
   pname = "graph-tool";
+  version = "2.65";
   format = "other";
-  version = "2.45";
 
   src = fetchurl {
     url = "https://downloads.skewed.de/graph-tool/graph-tool-${version}.tar.bz2";
-    hash = "sha256-+S2nrM/aArKXke/k8LPtkzKfJyMq9NOvwHySQh7Ghmg=";
+    hash = "sha256-ozpFv9rri2toG8BeNTqzoJdkwB06GdJ69XjtPkjUKZw=";
   };
 
   configureFlags = [
@@ -48,7 +49,7 @@ buildPythonPackage rec {
   ];
 
   # https://git.skewed.de/count0/graph-tool/-/wikis/installation-instructions#manual-compilation
-  propagatedBuildInputs = [
+  dependencies = [
     boost
     cairomm
     cgal
@@ -69,6 +70,7 @@ buildPythonPackage rec {
     description = "Python module for manipulation and statistical analysis of graphs";
     homepage = "https://graph-tool.skewed.de";
     license = licenses.lgpl3Plus;
+    broken = stdenv.isDarwin;
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/griffe/default.nix b/pkgs/development/python-modules/griffe/default.nix
index 2fd12f9386745..eaccbad286829 100644
--- a/pkgs/development/python-modules/griffe/default.nix
+++ b/pkgs/development/python-modules/griffe/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "griffe";
-  version = "0.45.1";
+  version = "0.45.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "mkdocstrings";
     repo = "griffe";
     rev = "refs/tags/${version}";
-    hash = "sha256-NmCnhImkdo2zAHhl2fLknV0rXXmJ9A+FL1uXUBF4IPk=";
+    hash = "sha256-mWJNEZPZgpqJ15HuptpjD9e14CYh4TNFbE38zI42wRk=";
   };
 
   build-system = [ pdm-backend ];
diff --git a/pkgs/development/python-modules/gssapi/default.nix b/pkgs/development/python-modules/gssapi/default.nix
index ab8ea417d800f..44a7b87ec7c3b 100644
--- a/pkgs/development/python-modules/gssapi/default.nix
+++ b/pkgs/development/python-modules/gssapi/default.nix
@@ -55,6 +55,9 @@ buildPythonPackage rec {
 
   buildInputs = lib.optionals stdenv.isDarwin [ GSS ];
 
+  # k5test is marked as broken on darwin
+  doCheck = !stdenv.isDarwin;
+
   nativeCheckInputs = [
     k5test
     parameterized
diff --git a/pkgs/development/python-modules/gst-python/default.nix b/pkgs/development/python-modules/gst-python/default.nix
index 77e37baa7c0d5..f2cc5a2edfac1 100644
--- a/pkgs/development/python-modules/gst-python/default.nix
+++ b/pkgs/development/python-modules/gst-python/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "gst-python";
-  version = "1.24.2";
+  version = "1.24.3";
 
   format = "other";
 
@@ -26,7 +26,7 @@ buildPythonPackage rec {
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/gst-python/${pname}-${version}.tar.xz";
-    hash = "sha256-vZDzvIrxfc478mtmU377SVGGn/zmQD9ZhGG5heKy144=";
+    hash = "sha256-7Ns+K6lOosgrk6jHFdWn4E+XJqiDjAprF2lJKP0ehZU=";
   };
 
   # Python 2.x is not supported.
diff --git a/pkgs/development/python-modules/ha-philipsjs/default.nix b/pkgs/development/python-modules/ha-philipsjs/default.nix
index 939dfdd8afca1..805665b2b756e 100644
--- a/pkgs/development/python-modules/ha-philipsjs/default.nix
+++ b/pkgs/development/python-modules/ha-philipsjs/default.nix
@@ -9,23 +9,26 @@
   pytestCheckHook,
   pythonOlder,
   respx,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "ha-philipsjs";
-  version = "3.1.1";
-  format = "setuptools";
+  version = "3.2.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "danielperna84";
-    repo = pname;
+    repo = "ha-philipsjs";
     rev = "refs/tags/${version}";
-    hash = "sha256-r8uqToxkJg9j89UUZpxsPXutWPefAYDW95zFBKU9Al4=";
+    hash = "sha256-gN7TPbNGw1vT0oAE6+Kg4V3J5dhYH+Gvv3JwptQ2aMk=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     cryptography
     httpx
   ];
@@ -40,7 +43,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "haphilipsjs" ];
 
   meta = with lib; {
-    description = "Python library to interact with Philips TVs with jointSPACE API";
+    description = "Library to interact with Philips TVs with jointSPACE API";
     homepage = "https://github.com/danielperna84/ha-philipsjs";
     changelog = "https://github.com/danielperna84/ha-philipsjs/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/hdbscan/default.nix b/pkgs/development/python-modules/hdbscan/default.nix
index 99194c06e2ee7..2fedf4792c645 100644
--- a/pkgs/development/python-modules/hdbscan/default.nix
+++ b/pkgs/development/python-modules/hdbscan/default.nix
@@ -1,7 +1,6 @@
 {
   lib,
   buildPythonPackage,
-  fetchpatch,
   cython,
   numpy,
   pytestCheckHook,
diff --git a/pkgs/development/python-modules/heatzypy/default.nix b/pkgs/development/python-modules/heatzypy/default.nix
index 843c8cbf1348b..78baf88849c7f 100644
--- a/pkgs/development/python-modules/heatzypy/default.nix
+++ b/pkgs/development/python-modules/heatzypy/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "heatzypy";
-  version = "2.5.4";
+  version = "2.5.5";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "Cyr-ius";
     repo = "heatzypy";
     rev = "refs/tags/${version}";
-    hash = "sha256-A01e3duNQmVv9vyOs6+gF/BdevLiYi/uXSq5bKmuRao=";
+    hash = "sha256-S1wIVeUTbtF5omImt38YNvZEutyCEYMGExccs0FIK44=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/herepy/default.nix b/pkgs/development/python-modules/herepy/default.nix
index e50103e8c74c9..64c39bb8f830a 100644
--- a/pkgs/development/python-modules/herepy/default.nix
+++ b/pkgs/development/python-modules/herepy/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "herepy";
-  version = "3.6.2";
+  version = "3.6.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "abdullahselek";
     repo = "HerePy";
     rev = "refs/tags/${version}";
-    hash = "sha256-+DI9wjYVAUKdGEXWhbV9Xp0oOazcB+sS89ugIZuZM2w=";
+    hash = "sha256-ht4EZBfREU7tDNo6tCPyECjm0H+yuhjsfJ60M4ss0jE=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/httpauth/default.nix b/pkgs/development/python-modules/httpauth/default.nix
index d984be30aa4b6..7ff2ef6d2e1ea 100644
--- a/pkgs/development/python-modules/httpauth/default.nix
+++ b/pkgs/development/python-modules/httpauth/default.nix
@@ -5,13 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.3";
+  version = "0.4";
   format = "setuptools";
   pname = "httpauth";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0qas7876igyz978pgldp5r7n7pis8n4vf0v87gxr9l7p7if5lr3l";
+    sha256 = "sha256-lehPEuxYV4SQsdL1RWBqTNFIGz2pSoTs+nlkQ5fPX8M=";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/huggingface-hub/default.nix b/pkgs/development/python-modules/huggingface-hub/default.nix
index c8a198c57bbae..e72e987779fbe 100644
--- a/pkgs/development/python-modules/huggingface-hub/default.nix
+++ b/pkgs/development/python-modules/huggingface-hub/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "huggingface-hub";
-  version = "0.23.0";
+  version = "0.23.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = "huggingface_hub";
     rev = "refs/tags/v${version}";
-    hash = "sha256-FfevPGec++3auA4Zxu84mhpD0RGatcPgDKi7LkmOVss=";
+    hash = "sha256-BXuFX4Y7t3Y3I/W3MIlUJ1zwTZ1CHpJ1aoHNHhnuz0M=";
   };
 
   build-system = [ setuptools ];
@@ -44,12 +44,12 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "huggingface_hub" ];
 
-  meta = with lib; {
+  meta = {
     description = "Download and publish models and other files on the huggingface.co hub";
     mainProgram = "huggingface-cli";
     homepage = "https://github.com/huggingface/huggingface_hub";
     changelog = "https://github.com/huggingface/huggingface_hub/releases/tag/v${version}";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ GaetanLepage ];
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
   };
 }
diff --git a/pkgs/development/python-modules/hypothesis/default.nix b/pkgs/development/python-modules/hypothesis/default.nix
index 8a00cae1e1a4a..a76b8e2ff29d3 100644
--- a/pkgs/development/python-modules/hypothesis/default.nix
+++ b/pkgs/development/python-modules/hypothesis/default.nix
@@ -23,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "hypothesis";
-  version = "6.100.1";
+  version = "6.103.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     owner = "HypothesisWorks";
     repo = "hypothesis";
     rev = "hypothesis-python-${version}";
-    hash = "sha256-3Mwa1nS6rvFBcU5QXLH4/wa38qCvDX9sRina1aJS1Rs=";
+    hash = "sha256-sll0GAI1nvBQvRqgpTkLpj7GQI988AftDQHV1zh2t1w=";
   };
 
   # I tried to package sphinx-selective-exclude, but it throws
@@ -73,16 +73,18 @@ buildPythonPackage rec {
   pytestFlagsArray = [ "tests/cover" ];
 
   disabledTests =
-    if (pythonOlder "3.10") then
-      [
-        # not sure why these tests fail with only 3.9
-        # FileNotFoundError: [Errno 2] No such file or directory: 'git'
-        "test_observability"
-        "test_assume_has_status_reason"
-        "test_observability_captures_stateful_reprs"
-      ]
-    else
-      null;
+    [
+      # racy, fails to find a file sometimes
+      "test_recreate_charmap"
+      "test_uses_cached_charmap"
+    ]
+    ++ lib.optionals (pythonOlder "3.10") [
+      # not sure why these tests fail with only 3.9
+      # FileNotFoundError: [Errno 2] No such file or directory: 'git'
+      "test_observability"
+      "test_assume_has_status_reason"
+      "test_observability_captures_stateful_reprs"
+    ];
 
   pythonImportsCheck = [ "hypothesis" ];
 
diff --git a/pkgs/development/python-modules/hyppo/default.nix b/pkgs/development/python-modules/hyppo/default.nix
index 896bbe640cc08..2d3f2563ad011 100644
--- a/pkgs/development/python-modules/hyppo/default.nix
+++ b/pkgs/development/python-modules/hyppo/default.nix
@@ -3,6 +3,7 @@
   buildPythonPackage,
   pythonOlder,
   fetchFromGitHub,
+  setuptools,
   pytestCheckHook,
   autograd,
   numba,
@@ -16,7 +17,7 @@
 buildPythonPackage rec {
   pname = "hyppo";
   version = "0.4.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
@@ -27,6 +28,14 @@ buildPythonPackage rec {
     hash = "sha256-QRE3oSxTEobTQ/7DzCAUOdjzIZmWUn9bgPmJWj6JuZg=";
   };
 
+  # some of the doctests (4/21) are broken, e.g. unbound variables, nondeterministic with insufficient tolerance, etc.
+  # (note upstream's .circleci/config.yml only tests test_*.py files despite their pytest.ini adding --doctest-modules)
+  postPatch = ''
+    substituteInPlace pytest.ini --replace-fail "addopts = --doctest-modules" ""
+  '';
+
+  build-system = [ setuptools ];
+
   propagatedBuildInputs = [
     autograd
     numba
@@ -40,15 +49,14 @@ buildPythonPackage rec {
     matplotlib
     seaborn
   ];
-  disabledTestPaths = [
-    "docs"
-    "benchmarks"
-    "examples"
+  pytestFlagsArray = [
+    "hyppo"
   ];
 
   meta = with lib; {
     homepage = "https://github.com/neurodata/hyppo";
     description = "Python package for multivariate hypothesis testing";
+    changelog = "https://github.com/neurodata/hyppo/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ bcdarwin ];
   };
diff --git a/pkgs/development/python-modules/ics/default.nix b/pkgs/development/python-modules/ics/default.nix
index c347b177587cd..2f973a6dc9812 100644
--- a/pkgs/development/python-modules/ics/default.nix
+++ b/pkgs/development/python-modules/ics/default.nix
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   version = "0.7.2";
   pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "ics-py";
@@ -25,9 +25,14 @@ buildPythonPackage rec {
     hash = "sha256-hdtnET7YfSb85+TGwpwzoxOfxPT7VSj9eKSiV6AXUS8=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace-fail "--pep8" ""
+  '';
+
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     attrs
     arrow
     tatsu
@@ -38,18 +43,13 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  postPatch = ''
-    # 0.8 will move to python-dateutil
-    substituteInPlace requirements.txt \
-      --replace "arrow>=0.11,<0.15" "arrow"
-    substituteInPlace setup.cfg --replace "--pep8" ""
-  '';
-
   disabledTests = [
     # Failure seems to be related to arrow > 1.0
     "test_event"
     # Broke with TatSu 5.7:
     "test_many_lines"
+    # AssertionError: 'Europe/Berlin' not found in "tzfile('Atlantic/Jan_Mayen')"
+    "test_timezone_not_dropped"
   ];
 
   pythonImportsCheck = [ "ics" ];
diff --git a/pkgs/development/python-modules/import-expression/default.nix b/pkgs/development/python-modules/import-expression/default.nix
index 4dc6d053154d3..3407aa277152c 100644
--- a/pkgs/development/python-modules/import-expression/default.nix
+++ b/pkgs/development/python-modules/import-expression/default.nix
@@ -1,7 +1,7 @@
 {
   lib,
   buildPythonPackage,
-  fetchFromGitHub,
+  fetchPypi,
   fetchpatch,
   pytestCheckHook,
   astunparse,
@@ -9,25 +9,17 @@
 }:
 buildPythonPackage rec {
   pname = "import-expression";
-  version = "1.1.4";
+  version = "1.1.5";
   pyproject = true;
 
-  src = fetchFromGitHub {
-    owner = "ioistired";
-    repo = "import-expression-parser";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-mll2NePB7fthzltLOk6D9BgaDpH6GaW4psqcGun/0qM=";
+  src = fetchPypi {
+    inherit version;
+    pname = "import_expression";
+    hash = "sha256-mVlYj8/I3LFEoHJRds/vbCjH2x/C1oNiUCXmh1FtQME=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/ioistired/import-expression-parser/commit/3daf968c3163b64685aa529740e132f0df5ab262.patch";
-      hash = "sha256-2Ubv3onor2D26udZbDDMb3iNLopEIRnIcO/X6WUVmJU=";
-    })
-  ];
-
-  nativeBuildInputs = [ setuptools ];
-  propagatedBuildInputs = [ astunparse ];
+  build-system = [ setuptools ];
+  dependencies = [ astunparse ];
   nativeCheckInputs = [ pytestCheckHook ];
   pytestFlagsArray = [ "tests.py" ];
 
diff --git a/pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix b/pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix
index 29420769833ed..e52ce4a2ea18b 100644
--- a/pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix
+++ b/pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix
@@ -1,7 +1,6 @@
 {
   lib,
   buildPythonPackage,
-  fetchpatch,
   fetchPypi,
   pythonOlder,
   setuptools,
diff --git a/pkgs/development/python-modules/intake-parquet/default.nix b/pkgs/development/python-modules/intake-parquet/default.nix
index a1b241f92ce4d..fe6fa3b2a656d 100644
--- a/pkgs/development/python-modules/intake-parquet/default.nix
+++ b/pkgs/development/python-modules/intake-parquet/default.nix
@@ -1,13 +1,14 @@
 {
   lib,
   buildPythonPackage,
-  fetchFromGitHub,
-  pandas,
   dask,
   fastparquet,
+  fetchFromGitHub,
+  pandas,
   pyarrow,
-  setuptools,
   pythonOlder,
+  setuptools,
+  versioneer,
 }:
 
 buildPythonPackage rec {
@@ -28,11 +29,17 @@ buildPythonPackage rec {
     # Break circular dependency
     substituteInPlace requirements.txt \
       --replace-fail "intake" ""
+
+    # Remove vendorized versioneer.py
+    rm versioneer.py
   '';
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [
+    setuptools
+    versioneer
+  ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     pandas
     dask
     fastparquet
diff --git a/pkgs/development/python-modules/jsonargparse/default.nix b/pkgs/development/python-modules/jsonargparse/default.nix
index dfe1e12df9009..3b65beacc6177 100644
--- a/pkgs/development/python-modules/jsonargparse/default.nix
+++ b/pkgs/development/python-modules/jsonargparse/default.nix
@@ -26,7 +26,7 @@
 
 buildPythonPackage rec {
   pname = "jsonargparse";
-  version = "4.28.0";
+  version = "4.29.0";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     owner = "omni-us";
     repo = "jsonargparse";
     rev = "refs/tags/v${version}";
-    hash = "sha256-iw6ntzFkvMg5baOgeUzf3qV1eGGqywINd7e6N781llQ=";
+    hash = "sha256-L+bGyn6O3lGu4FPclNFUeIzQhpznBxdkofUS5yCRM3Y=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/kivy/default.nix b/pkgs/development/python-modules/kivy/default.nix
index 9b39aa1fd058d..a4a5da1640a6a 100644
--- a/pkgs/development/python-modules/kivy/default.nix
+++ b/pkgs/development/python-modules/kivy/default.nix
@@ -3,7 +3,6 @@
   stdenv,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   pkg-config,
   cython_0,
   docutils,
diff --git a/pkgs/development/python-modules/langchain-community/default.nix b/pkgs/development/python-modules/langchain-community/default.nix
index e8e028570abd9..684591f833eb6 100644
--- a/pkgs/development/python-modules/langchain-community/default.nix
+++ b/pkgs/development/python-modules/langchain-community/default.nix
@@ -1,40 +1,55 @@
 {
   lib,
   buildPythonPackage,
-  fetchPypi,
+  fetchFromGitHub,
   poetry-core,
   pythonOlder,
   aiohttp,
   dataclasses-json,
+  duckdb-engine,
+  langchain,
   langchain-core,
   langsmith,
+  lark,
   numpy,
+  pandas,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
   pyyaml,
   requests,
+  requests-mock,
+  responses,
   sqlalchemy,
+  syrupy,
   tenacity,
+  toml,
   typer,
 }:
 
 buildPythonPackage rec {
   pname = "langchain-community";
-  version = "0.0.38";
+  version = "0.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    pname = "langchain_community";
-    inherit version;
-    hash = "sha256-En/Et1vGe2L+gnxmwC5xWnMP74/mm9ICPUZrqwa1gQ0=";
+  src = fetchFromGitHub {
+    owner = "langchain-ai";
+    repo = "langchain";
+    rev = "langchain-community==${version}";
+    hash = "sha256-h8ZJiQYmyvzaRrEVNS7SamJTq4zY7J1IgYdQiVBFh4I=";
   };
 
+  sourceRoot = "${src.name}/libs/community";
+
   build-system = [ poetry-core ];
 
   dependencies = [
     aiohttp
     dataclasses-json
     langchain-core
+    langchain
     langsmith
     numpy
     pyyaml
@@ -49,12 +64,29 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "langchain_community" ];
 
-  # PyPI source does not have tests
-  doCheck = false;
+  nativeCheckInputs = [
+    duckdb-engine
+    lark
+    pandas
+    pytest-asyncio
+    pytest-mock
+    pytestCheckHook
+    requests-mock
+    responses
+    syrupy
+    toml
+  ];
+
+  pytestFlagsArray = [ "tests/unit_tests" ];
+
+  passthru = {
+    updateScript = langchain-core.updateScript;
+  };
 
   meta = with lib; {
     description = "Community contributed LangChain integrations";
     homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/community";
+    changelog = "https://github.com/langchain-ai/langchain/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ natsukium ];
   };
diff --git a/pkgs/development/python-modules/langchain-core/default.nix b/pkgs/development/python-modules/langchain-core/default.nix
index 8cfa8cafd9ee1..cf919d3404da4 100644
--- a/pkgs/development/python-modules/langchain-core/default.nix
+++ b/pkgs/development/python-modules/langchain-core/default.nix
@@ -1,33 +1,43 @@
 {
   lib,
-  anyio,
   buildPythonPackage,
-  fetchPypi,
+  fetchFromGitHub,
+  freezegun,
+  grandalf,
   jsonpatch,
   langsmith,
+  numpy,
   packaging,
   poetry-core,
   pydantic,
+  pytest-asyncio,
+  pytest-mock,
+  pytest-xdist,
+  pytestCheckHook,
   pythonOlder,
   pythonRelaxDepsHook,
   pyyaml,
-  requests,
+  syrupy,
   tenacity,
+  writeScript,
 }:
 
 buildPythonPackage rec {
   pname = "langchain-core";
-  version = "0.1.52";
+  version = "0.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    pname = "langchain_core";
-    inherit version;
-    hash = "sha256-CEw/xFL1ppZsKKs+xdvIuNJvw/YzeAc5KPTinZC2OT8=";
+  src = fetchFromGitHub {
+    owner = "langchain-ai";
+    repo = "langchain";
+    rev = "langchain-core==${version}";
+    hash = "sha256-D0y6kW5bWcCKW2TwVPlZcAUxqADgsOm9fWySAjHYYIg=";
   };
 
+  sourceRoot = "${src.name}/libs/core";
+
   pythonRelaxDeps = [
     "langsmith"
     "packaging"
@@ -38,24 +48,46 @@ buildPythonPackage rec {
   nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
-    anyio
     jsonpatch
     langsmith
     packaging
     pydantic
     pyyaml
-    requests
     tenacity
   ];
 
   pythonImportsCheck = [ "langchain_core" ];
 
-  # PyPI source does not have tests
-  doCheck = false;
+  nativeCheckInputs = [
+    freezegun
+    grandalf
+    numpy
+    pytest-asyncio
+    pytest-mock
+    pytest-xdist
+    pytestCheckHook
+    syrupy
+  ];
+
+  pytestFlagsArray = [ "tests/unit_tests" ];
+
+  passthru = {
+    updateScript = writeScript "update.sh" ''
+      #!/usr/bin/env nix-shell
+      #!nix-shell -i bash -p nix-update
+
+      set -eu -o pipefail
+      nix-update --commit --version-regex 'langchain-core==(.*)' python3Packages.langchain-core
+      nix-update --commit --version-regex 'langchain-text-splitters==(.*)' python3Packages.langchain-text-splitters
+      nix-update --commit --version-regex 'langchain==(.*)' python3Packages.langchain
+      nix-update --commit --version-regex 'langchain-community==(.*)' python3Packages.langchain-community
+    '';
+  };
 
   meta = with lib; {
     description = "Building applications with LLMs through composability";
     homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/core";
+    changelog = "https://github.com/langchain-ai/langchain/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ natsukium ];
   };
diff --git a/pkgs/development/python-modules/langchain-text-splitters/default.nix b/pkgs/development/python-modules/langchain-text-splitters/default.nix
index 3f8fa837af7a3..73a1e722019a4 100644
--- a/pkgs/development/python-modules/langchain-text-splitters/default.nix
+++ b/pkgs/development/python-modules/langchain-text-splitters/default.nix
@@ -1,41 +1,51 @@
 {
   lib,
   buildPythonPackage,
-  fetchPypi,
+  fetchFromGitHub,
   poetry-core,
   langchain-core,
-  lxml,
+  pytest-asyncio,
+  pytestCheckHook,
   pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "langchain-text-splitters";
-  version = "0.0.2";
+  version = "0.2.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
 
-  src = fetchPypi {
-    pname = "langchain_text_splitters";
-    inherit version;
-    hash = "sha256-rIkn3AugjrpwL2lhye19986tjeGan3EBqyteo0IBs8E=";
+  src = fetchFromGitHub {
+    owner = "langchain-ai";
+    repo = "langchain";
+    rev = "refs/tags/langchain-text-splitters==${version}";
+    hash = "sha256-QrgZ0j/YdOgEgLeQNSKjOIwqdr/Izuw9Gh6eKQ/00tQ=";
   };
 
+  sourceRoot = "${src.name}/libs/text-splitters";
+
   build-system = [ poetry-core ];
 
-  dependencies = [
-    langchain-core
-    lxml
+  dependencies = [ langchain-core ];
+
+  pythonImportsCheck = [ "langchain_text_splitters" ];
+
+  nativeCheckInputs = [
+    pytest-asyncio
+    pytestCheckHook
   ];
 
-  # PyPI source does not have tests
-  doCheck = false;
+  pytestFlagsArray = [ "tests/unit_tests" ];
 
-  pythonImportsCheck = [ "langchain_text_splitters" ];
+  passthru = {
+    inherit (langchain-core) updateScript;
+  };
 
   meta = with lib; {
     description = "Build context-aware reasoning applications";
     homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/text-splitters";
+    changelog = "https://github.com/langchain-ai/langchain/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/langchain/default.nix b/pkgs/development/python-modules/langchain/default.nix
index 804f63a88e9ff..94dad83b0f318 100644
--- a/pkgs/development/python-modules/langchain/default.nix
+++ b/pkgs/development/python-modules/langchain/default.nix
@@ -10,13 +10,10 @@
   chardet,
   clarifai,
   cohere,
-  dataclasses-json,
   esprima,
   fetchFromGitHub,
   freezegun,
   huggingface-hub,
-  jsonpatch,
-  langchain-community,
   langchain-core,
   langchain-text-splitters,
   langsmith,
@@ -51,7 +48,7 @@
 
 buildPythonPackage rec {
   pname = "langchain";
-  version = "0.1.52";
+  version = "0.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -59,8 +56,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "langchain-ai";
     repo = "langchain";
-    rev = "refs/tags/langchain-core==${version}";
-    hash = "sha256-H8rtysRIwyuJEUFI93vid3MsqReyRCER88xztsuYpOc=";
+    rev = "refs/tags/langchain==${version}";
+    hash = "sha256-cLJhdeft9XNLk5njSBaEBSuP31c2VFCJ1ET+ypo6mNY=";
   };
 
   sourceRoot = "${src.name}/libs/langchain";
@@ -71,9 +68,6 @@ buildPythonPackage rec {
 
   dependencies = [
     aiohttp
-    dataclasses-json
-    jsonpatch
-    langchain-community
     langchain-core
     langchain-text-splitters
     langsmith
@@ -166,6 +160,10 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "langchain" ];
 
+  passthru = {
+    updateScript = langchain-core.updateScript;
+  };
+
   meta = with lib; {
     description = "Building applications with LLMs through composability";
     homepage = "https://github.com/langchain-ai/langchain";
diff --git a/pkgs/development/python-modules/langsmith/default.nix b/pkgs/development/python-modules/langsmith/default.nix
index 2685a5260c163..c02aae4844a30 100644
--- a/pkgs/development/python-modules/langsmith/default.nix
+++ b/pkgs/development/python-modules/langsmith/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "langsmith";
-  version = "0.1.60";
+  version = "0.1.63";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "langchain-ai";
     repo = "langsmith-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-YoJ9rdbc4lcQ0ZxE0bYCa+VMKO2kqJRTpxZz4QGPzzM=";
+    hash = "sha256-zIrSQubYB5AuwAF0hktT/wY5/ktwQJ4Z/3F6po2wC3o=";
   };
 
   sourceRoot = "${src.name}/python";
diff --git a/pkgs/development/python-modules/latex2pydata/default.nix b/pkgs/development/python-modules/latex2pydata/default.nix
new file mode 100644
index 0000000000000..f6b9654aaad51
--- /dev/null
+++ b/pkgs/development/python-modules/latex2pydata/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, setuptools
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "latex2pydata";
+  version = "0.2.0";
+
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-lFYGBFox7fv/vlfqZN3xsh9UIRCQ+C5Cizq9j4RTcJ0=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  meta = {
+    homepage = "https://github.com/gpoore/latex2pydata";
+    description = "Send data from LaTeX to Python using Python literal format";
+    license = lib.licenses.bsd3;
+    platforms = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ romildo ];
+  };
+}
diff --git a/pkgs/development/python-modules/ledgerblue/default.nix b/pkgs/development/python-modules/ledgerblue/default.nix
index 093002f65433f..0a1f6841d3909 100644
--- a/pkgs/development/python-modules/ledgerblue/default.nix
+++ b/pkgs/development/python-modules/ledgerblue/default.nix
@@ -24,14 +24,14 @@
 
 buildPythonPackage rec {
   pname = "ledgerblue";
-  version = "0.1.53";
+  version = "0.1.54";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-j5FCQnp+MNrJ8zgYeLRuWF+Gdq0FwJeBYyJALb+H8So=";
+    hash = "sha256-Hn99ST6RnER6XI6+rqA3O9/aC+whYoTOzeoHGF/fFz4=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/ledgerwallet/default.nix b/pkgs/development/python-modules/ledgerwallet/default.nix
index b24d831b1e8fc..ebf686427df35 100644
--- a/pkgs/development/python-modules/ledgerwallet/default.nix
+++ b/pkgs/development/python-modules/ledgerwallet/default.nix
@@ -2,7 +2,6 @@
   lib,
   stdenv,
   fetchFromGitHub,
-  fetchpatch,
   buildPythonPackage,
   cryptography,
   click,
diff --git a/pkgs/development/python-modules/libpysal/default.nix b/pkgs/development/python-modules/libpysal/default.nix
new file mode 100644
index 0000000000000..af52f048cb96e
--- /dev/null
+++ b/pkgs/development/python-modules/libpysal/default.nix
@@ -0,0 +1,86 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+
+  beautifulsoup4,
+  fiona,
+  geodatasets,
+  geopandas,
+  numpy,
+  packaging,
+  pandas,
+  platformdirs,
+  requests,
+  scikit-learn,
+  scipy,
+  setuptools-scm,
+  shapely,
+}:
+
+buildPythonPackage rec {
+  pname = "libpysal";
+  version = "4.10";
+  pyproject = true;
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "pysal";
+    repo = "libpysal";
+    rev = "v${version}";
+    hash = "sha256-jzSkIFSIXc039KR4fS1HOI/Rj0mHwbArn2hD+zfAZDg=";
+  };
+
+  build-system = [ setuptools-scm ];
+
+  propagatedBuildInputs = [
+    beautifulsoup4
+    fiona
+    geopandas
+    numpy
+    packaging
+    pandas
+    platformdirs
+    requests
+    scikit-learn
+    scipy
+    shapely
+  ];
+
+  nativeCheckInputs = [
+    geodatasets
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    export HOME=$TMPDIR
+  '';
+
+  # requires network access
+  disabledTestPaths = [
+    "libpysal/cg/tests/test_geoJSON.py"
+    "libpysal/examples/tests/test_available.py"
+    "libpysal/graph/tests/test_base.py"
+    "libpysal/graph/tests/test_builders.py"
+    "libpysal/graph/tests/test_contiguity.py"
+    "libpysal/graph/tests/test_kernel.py"
+    "libpysal/graph/tests/test_matching.py"
+    "libpysal/graph/tests/test_plotting.py"
+    "libpysal/graph/tests/test_triangulation.py"
+    "libpysal/graph/tests/test_utils.py"
+    "libpysal/graph/tests/test_set_ops.py"
+    "libpysal/weights/tests/test_contiguity.py"
+    "libpysal/weights/tests/test_util.py"
+  ];
+
+  pythonImportsCheck = [ "libpysal" ];
+
+  meta = {
+    description = "A library of spatial analysis functions";
+    homepage = "https://pysal.org/libpysal/";
+    license = lib.licenses.bsd3;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/libvirt/default.nix b/pkgs/development/python-modules/libvirt/default.nix
index e5ccec9371eeb..f424240f91ea1 100644
--- a/pkgs/development/python-modules/libvirt/default.nix
+++ b/pkgs/development/python-modules/libvirt/default.nix
@@ -2,16 +2,17 @@
   lib,
   buildPythonPackage,
   fetchFromGitLab,
+  setuptools,
   pkg-config,
   lxml,
   libvirt,
-  nose,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "libvirt";
   version = "10.0.0";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchFromGitLab {
     owner = "libvirt";
@@ -20,16 +21,17 @@ buildPythonPackage rec {
     hash = "sha256-zl1Hfm7flRflNjIpLoLAlPDysYlieC05HEd/mzFW8pU=";
   };
 
+  build-system = [ setuptools ];
+
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
     libvirt
     lxml
   ];
 
-  nativeCheckInputs = [ nose ];
-  checkPhase = ''
-    nosetests
-  '';
+  pythonImportsCheck = [ "libvirt" ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     homepage = "https://libvirt.org/python.html";
diff --git a/pkgs/development/python-modules/life360/default.nix b/pkgs/development/python-modules/life360/default.nix
index 89a097d6e5652..7e001e79b5f5d 100644
--- a/pkgs/development/python-modules/life360/default.nix
+++ b/pkgs/development/python-modules/life360/default.nix
@@ -5,31 +5,34 @@
   fetchFromGitHub,
   pytestCheckHook,
   pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "life360";
-  version = "6.0.1";
-  format = "setuptools";
+  version = "7.0.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "pnbruckner";
-    repo = pname;
+    repo = "life360";
     rev = "refs/tags/v${version}";
-    hash = "sha256-USqSkjOHlH0K/RlRYpn/gz6dHW8/uEVpsc4HeUZ3Emg=";
+    hash = "sha256-GkCs479lXcnCvb5guxyc+ZuZdiH4n8uD2VbkC+yijgg=";
   };
 
-  propagatedBuildInputs = [ aiohttp ];
+  build-system = [ setuptools ];
 
-  # Project has no tests
+  dependencies = [ aiohttp ];
+
+  # Module has no tests
   doCheck = false;
 
   pythonImportsCheck = [ "life360" ];
 
   meta = with lib; {
-    description = "Python module to interact with Life360";
+    description = "Module to interact with Life360";
     homepage = "https://github.com/pnbruckner/life360";
     changelog = "https://github.com/pnbruckner/life360/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/litellm/default.nix b/pkgs/development/python-modules/litellm/default.nix
index 068566ea139f7..d55ecbefaf0d7 100644
--- a/pkgs/development/python-modules/litellm/default.nix
+++ b/pkgs/development/python-modules/litellm/default.nix
@@ -34,7 +34,7 @@
 
 buildPythonPackage rec {
   pname = "litellm";
-  version = "1.37.16";
+  version = "1.38.8";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -43,7 +43,7 @@ buildPythonPackage rec {
     owner = "BerriAI";
     repo = "litellm";
     rev = "refs/tags/v${version}";
-    hash = "sha256-WOkblyzncIn1F67qlh8rTosCal6j4zlXsHHrWbwhJOo=";
+    hash = "sha256-JzSAdr238wRAl2HGd6RVEgbHC4b2xw1GsYRCHSVVaQk=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/llama-index-core/default.nix b/pkgs/development/python-modules/llama-index-core/default.nix
index c5043d3d4a052..eff0165238cc7 100644
--- a/pkgs/development/python-modules/llama-index-core/default.nix
+++ b/pkgs/development/python-modules/llama-index-core/default.nix
@@ -8,6 +8,7 @@
   fetchFromGitHub,
   fetchzip,
   fsspec,
+  jsonpath-ng,
   llamaindex-py-client,
   nest-asyncio,
   networkx,
@@ -23,10 +24,11 @@
   pythonOlder,
   pyyaml,
   requests,
-  tree-sitter,
+  spacy,
   sqlalchemy,
   tenacity,
   tiktoken,
+  tree-sitter,
   typing-inspect,
 }:
 
@@ -44,7 +46,7 @@ in
 
 buildPythonPackage rec {
   pname = "llama-index-core";
-  version = "0.10.36";
+  version = "0.10.39";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -53,7 +55,7 @@ buildPythonPackage rec {
     owner = "run-llama";
     repo = "llama_index";
     rev = "refs/tags/v${version}";
-    hash = "sha256-yP/60DLg43UOOogxbDvb1p5n8dnfBUjGhcfO5g5g0gA=";
+    hash = "sha256-mSzVUTC6O/qf9EtA9UKmGKsv50SJp0tZwg+kmqFCGLE=";
   };
 
   sourceRoot = "${src.name}/${pname}";
@@ -80,6 +82,7 @@ buildPythonPackage rec {
     deprecated
     dirtyjson
     fsspec
+    jsonpath-ng
     llamaindex-py-client
     nest-asyncio
     networkx
@@ -90,6 +93,7 @@ buildPythonPackage rec {
     pillow
     pyyaml
     requests
+    spacy
     sqlalchemy
     tenacity
     tiktoken
diff --git a/pkgs/development/python-modules/llama-index-embeddings-gemini/default.nix b/pkgs/development/python-modules/llama-index-embeddings-gemini/default.nix
index ddbc8fc05e0f0..bea5dec85e19f 100644
--- a/pkgs/development/python-modules/llama-index-embeddings-gemini/default.nix
+++ b/pkgs/development/python-modules/llama-index-embeddings-gemini/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-embeddings-gemini";
-  version = "0.1.6";
+  version = "0.1.7";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_embeddings_gemini";
     inherit version;
-    hash = "sha256-HYwYA67/7gDxE7ZxQkkyblgwE83gZXuDmUuseXujr5g=";
+    hash = "sha256-0ob6t9pFaIsbDyt9+QOKFQctS6s99tEvdstn39iyVpA=";
   };
 
   pythonRelaxDeps = [ "google-generativeai" ];
diff --git a/pkgs/development/python-modules/llama-index-embeddings-google/default.nix b/pkgs/development/python-modules/llama-index-embeddings-google/default.nix
index cebedfe90b629..87ed37e9601da 100644
--- a/pkgs/development/python-modules/llama-index-embeddings-google/default.nix
+++ b/pkgs/development/python-modules/llama-index-embeddings-google/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-embeddings-google";
-  version = "0.1.5";
+  version = "0.1.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_embeddings_google";
     inherit version;
-    hash = "sha256-mJ+H4klmGlpTGXLErlLNWH5IUpGyXnbAhNsgT5fwCHs=";
+    hash = "sha256-XPqZ+4aZfrTGU4sOLxMElG6kuGVJa8/3uxW+icSHpzQ=";
   };
 
   pythonRelaxDeps = [ "google-generativeai" ];
diff --git a/pkgs/development/python-modules/llama-index-embeddings-openai/default.nix b/pkgs/development/python-modules/llama-index-embeddings-openai/default.nix
index 22b2b9f675789..f6027aee43f84 100644
--- a/pkgs/development/python-modules/llama-index-embeddings-openai/default.nix
+++ b/pkgs/development/python-modules/llama-index-embeddings-openai/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-embeddings-openai";
-  version = "0.1.9";
+  version = "0.1.10";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_embeddings_openai";
     inherit version;
-    hash = "sha256-D9KSsvmgrUU0p5DWN0cmvIhYUxiAh+sBgWfc8jlkOSQ=";
+    hash = "sha256-G8H8m0Z3OhKHDF0wl9NzXXyjOAXxJGKo41ropuXOHPY=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/llama-index-llms-ollama/default.nix b/pkgs/development/python-modules/llama-index-llms-ollama/default.nix
index 0a5cb7e3aede3..d8680ab104a19 100644
--- a/pkgs/development/python-modules/llama-index-llms-ollama/default.nix
+++ b/pkgs/development/python-modules/llama-index-llms-ollama/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-llms-ollama";
-  version = "0.1.4";
+  version = "0.1.5";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_llms_ollama";
     inherit version;
-    hash = "sha256-ebwZw9p1rfWrGjYd9aHF3CsubKOL1/Ei/mV4AgQxhtk=";
+    hash = "sha256-dWl9lshg2H6AzOkMnqQly9I2kYRY4P6q7gNZcGi6mEQ=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/llama-index-llms-openai/default.nix b/pkgs/development/python-modules/llama-index-llms-openai/default.nix
index a6987b224fc5d..0bcedaa6fbb59 100644
--- a/pkgs/development/python-modules/llama-index-llms-openai/default.nix
+++ b/pkgs/development/python-modules/llama-index-llms-openai/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-llms-openai";
-  version = "0.1.19";
+  version = "0.1.21";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_llms_openai";
     inherit version;
-    hash = "sha256-9htkqZeJLkJPs81UcJDSecWyEO8VthT8Od6FTTzKp+c=";
+    hash = "sha256-6dYxE1FgrIcJPNfVrj4yxN6/juqvop7kc5Z1hnFV13M=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/llama-index-readers-file/default.nix b/pkgs/development/python-modules/llama-index-readers-file/default.nix
index d0f42bec9eed4..cf76dd2e810ee 100644
--- a/pkgs/development/python-modules/llama-index-readers-file/default.nix
+++ b/pkgs/development/python-modules/llama-index-readers-file/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-readers-file";
-  version = "0.1.22";
+  version = "0.1.23";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_readers_file";
     inherit version;
-    hash = "sha256-N95UrQz73GB8GVUyuaKSQXpHFPV3c1cLhwJ7jcOB8OI=";
+    hash = "sha256-/ejstYjnA4SeUdwPB19W0fXbO8FHndAMIbQuk7gbYmc=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/llama-index-readers-s3/default.nix b/pkgs/development/python-modules/llama-index-readers-s3/default.nix
index b43eb933ff780..893ea6338ee77 100644
--- a/pkgs/development/python-modules/llama-index-readers-s3/default.nix
+++ b/pkgs/development/python-modules/llama-index-readers-s3/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-readers-s3";
-  version = "0.1.7";
+  version = "0.1.8";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_readers_s3";
     inherit version;
-    hash = "sha256-xj7uRsc56Wv/SF4OPo/jc+43PabJ4vaM5HcxhnxTzY8=";
+    hash = "sha256-O8V9b52gcsWm0bfHlNThIvxPox7d+qK4KzvPWT0fkGc=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/losant-rest/default.nix b/pkgs/development/python-modules/losant-rest/default.nix
index 21a2857119763..81157ed9d23e6 100644
--- a/pkgs/development/python-modules/losant-rest/default.nix
+++ b/pkgs/development/python-modules/losant-rest/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "losant-rest";
-  version = "1.19.6";
+  version = "1.19.7";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "Losant";
     repo = "losant-rest-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-sbNR95FhcRhgHh/ulLC8lL6EHal0BBK3wP6i29VElmY=";
+    hash = "sha256-gn8YTnCAmAcmQxpgtitk2eRy3spveuU0peeHu/iSnCE=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/mahotas/default.nix b/pkgs/development/python-modules/mahotas/default.nix
index 419c1c572de1b..144aae89c79d4 100644
--- a/pkgs/development/python-modules/mahotas/default.nix
+++ b/pkgs/development/python-modules/mahotas/default.nix
@@ -1,7 +1,6 @@
 {
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   pillow,
   scipy,
   numpy,
diff --git a/pkgs/development/python-modules/manifestoo-core/default.nix b/pkgs/development/python-modules/manifestoo-core/default.nix
index ce3cd3a6ef282..3b74218301a37 100644
--- a/pkgs/development/python-modules/manifestoo-core/default.nix
+++ b/pkgs/development/python-modules/manifestoo-core/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "manifestoo-core";
-  version = "1.5";
+  version = "1.6";
   format = "pyproject";
 
   src = fetchPypi {
     inherit version;
     pname = "manifestoo_core";
-    hash = "sha256-a3v2WfJ42bh2LlAsH9ekpLFsAlOiTTLGNknTW2mTxCI=";
+    hash = "sha256-gOWu01Z1lxhMJELyxvU5A5AskVEqCoLV/auydM5/QCE=";
   };
 
   nativeBuildInputs = [ hatch-vcs ];
diff --git a/pkgs/development/python-modules/mapclassify/default.nix b/pkgs/development/python-modules/mapclassify/default.nix
new file mode 100644
index 0000000000000..0045daf1bd9fd
--- /dev/null
+++ b/pkgs/development/python-modules/mapclassify/default.nix
@@ -0,0 +1,58 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+
+  geopandas,
+  libpysal,
+  networkx,
+  numpy,
+  pandas,
+  scikit-learn,
+  scipy,
+  setuptools-scm,
+}:
+
+buildPythonPackage rec {
+  pname = "mapclassify";
+  version = "2.6.1";
+  pyproject = true;
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "pysal";
+    repo = "mapclassify";
+    rev = "v${version}";
+    hash = "sha256-lb2Ui6zdx6MQBtBrL/Xj9k7cm6De8aLEuBLZDhPPDnE=";
+  };
+
+  build-system = [ setuptools-scm ];
+
+  propagatedBuildInputs = [
+    networkx
+    numpy
+    pandas
+    scikit-learn
+    scipy
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    geopandas
+    libpysal
+  ];
+
+  # requires network access
+  disabledTestPaths = [ "mapclassify/tests/test_greedy.py" ];
+
+  pythonImportsCheck = [ "mapclassify" ];
+
+  meta = {
+    description = "Classification Schemes for Choropleth Maps";
+    homepage = "https://pysal.org/mapclassify/";
+    license = lib.licenses.bsd3;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/marimo/default.nix b/pkgs/development/python-modules/marimo/default.nix
index 36317c489c7b6..bbe15353e09c6 100644
--- a/pkgs/development/python-modules/marimo/default.nix
+++ b/pkgs/development/python-modules/marimo/default.nix
@@ -17,19 +17,20 @@
   tomlkit,
   uvicorn,
   websockets,
+  pyyaml,
   pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "marimo";
-  version = "0.6.0";
+  version = "0.6.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-L6ICaaMRrMOr/d8CJGcXxOYCWTVh8ObckW7xNeLRB2Q=";
+    hash = "sha256-sp3lQPLpU5qvHKQ02c/Ga1M8IsbmOX5nz2XPBMbGj30=";
   };
 
   build-system = [ setuptools ];
@@ -48,6 +49,7 @@ buildPythonPackage rec {
     tomlkit
     uvicorn
     websockets
+    pyyaml
   ];
 
   nativeCheckInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/mdx-truly-sane-lists/default.nix b/pkgs/development/python-modules/mdx-truly-sane-lists/default.nix
index 07dc9f00277cf..61e7408c96ad6 100644
--- a/pkgs/development/python-modules/mdx-truly-sane-lists/default.nix
+++ b/pkgs/development/python-modules/mdx-truly-sane-lists/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   markdown,
   python,
 }:
diff --git a/pkgs/development/python-modules/microsoft-kiota-abstractions/default.nix b/pkgs/development/python-modules/microsoft-kiota-abstractions/default.nix
index a92965db33987..dfe65b63c4549 100644
--- a/pkgs/development/python-modules/microsoft-kiota-abstractions/default.nix
+++ b/pkgs/development/python-modules/microsoft-kiota-abstractions/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "microsoft-kiota-abstractions";
-  version = "1.3.2";
+  version = "1.3.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "microsoft";
     repo = "kiota-abstractions-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-n9Erm21slKm+zDblhSHA5Cwxkyrcyx0w09ua3bUc5XI=";
+    hash = "sha256-TgHj5Ga6Aw/sN2Hobn0OocFB/iGRHTKEeOa2j2aqnRY=";
   };
 
   build-system = [ flit-core ];
diff --git a/pkgs/development/python-modules/minio/default.nix b/pkgs/development/python-modules/minio/default.nix
index 98910a55da2d2..17d7b4e3096b0 100644
--- a/pkgs/development/python-modules/minio/default.nix
+++ b/pkgs/development/python-modules/minio/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "minio";
-  version = "7.2.6";
+  version = "7.2.7";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "minio";
     repo = "minio-py";
     rev = "refs/tags/${version}";
-    hash = "sha256-zK+D2DNgh1cASdA2gstNW0ODUu7Dn6vMY01mcrdSSo0=";
+    hash = "sha256-Qb3KPwSODtIqwS4FfR+DHphx4duPsNdMlHt2rpdV2+Y=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/mizani/default.nix b/pkgs/development/python-modules/mizani/default.nix
index 1442938bea0ce..ecc1667175c2c 100644
--- a/pkgs/development/python-modules/mizani/default.nix
+++ b/pkgs/development/python-modules/mizani/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "mizani";
-  version = "0.11.3";
+  version = "0.11.4";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "has2k1";
     repo = "mizani";
     rev = "refs/tags/v${version}";
-    hash = "sha256-aEataiB432yKnQ80TxJvsU9DO9wI4ZVGq1k73qeuEv0=";
+    hash = "sha256-2XBvjlVSEjeNc7UlPZ00cNrWVuHh/FgDwkvWus7ndr4=";
   };
 
   build-system = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/mkdocstrings-python/default.nix b/pkgs/development/python-modules/mkdocstrings-python/default.nix
index 5e634d2da0eaf..67ad47544107b 100644
--- a/pkgs/development/python-modules/mkdocstrings-python/default.nix
+++ b/pkgs/development/python-modules/mkdocstrings-python/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "mkdocstrings-python";
-  version = "1.10.2";
+  version = "1.10.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "mkdocstrings";
     repo = "python";
     rev = "refs/tags/${version}";
-    hash = "sha256-Dz74q7bsa8bInxn4RpP9MFXFDEL2yWifDe64K8AOl8k=";
+    hash = "sha256-OiG/dPsWO2Z4lGUlgPePRcsrotCu+fwesKhhh6YjmnU=";
   };
 
   build-system = [ pdm-backend ];
diff --git a/pkgs/development/python-modules/mne-python/default.nix b/pkgs/development/python-modules/mne-python/default.nix
index 03a7657031c6a..62ae19e2a49ab 100644
--- a/pkgs/development/python-modules/mne-python/default.nix
+++ b/pkgs/development/python-modules/mne-python/default.nix
@@ -2,20 +2,18 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  setuptools,
-  setuptools-scm,
+  hatchling,
+  hatch-vcs,
   numpy,
   scipy,
   pytestCheckHook,
   pytest-timeout,
-  pytest-harvest,
   matplotlib,
   decorator,
   jinja2,
   pooch,
   tqdm,
   packaging,
-  importlib-resources,
   lazy-loader,
   h5io,
   pymatreader,
@@ -24,27 +22,27 @@
 
 buildPythonPackage rec {
   pname = "mne-python";
-  version = "1.6.1";
+  version = "1.7.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "mne-tools";
     repo = "mne-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-U1aMqcUZ3BcwqwOYh/qfG5PhacwBVioAgNc52uaoJL0";
+    hash = "sha256-Nrar6Iw/jROuo4QTI7TktJSR5IdPSOQcbR+lycH52LI=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml  \
-      --replace "--cov-report=" ""  \
-      --replace "--cov-branch" ""
+      --replace-fail "--cov-report=" ""  \
+      --replace-fail "--cov-branch" ""
   '';
 
   nativeBuildInputs = [
-    setuptools
-    setuptools-scm
+    hatchling
+    hatch-vcs
   ];
 
   propagatedBuildInputs = [
@@ -57,19 +55,16 @@ buildPythonPackage rec {
     packaging
     jinja2
     lazy-loader
-  ] ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ];
+  ];
 
-  passthru.optional-dependencies = {
-    hdf5 = [
-      h5io
-      pymatreader
-    ];
-  };
+  passthru.optional-dependencies.hdf5 = [
+    h5io
+    pymatreader
+  ];
 
   nativeCheckInputs = [
     pytestCheckHook
     pytest-timeout
-    pytest-harvest
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
   preCheck = ''
diff --git a/pkgs/development/python-modules/model-checker/default.nix b/pkgs/development/python-modules/model-checker/default.nix
index 685282decd33e..86a1567e55720 100644
--- a/pkgs/development/python-modules/model-checker/default.nix
+++ b/pkgs/development/python-modules/model-checker/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "model-checker";
-  version = "0.3.13";
+  version = "0.4.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "model_checker";
     inherit version;
-    hash = "sha256-3LVes+orRl8tNhhbUUDa1VM/tFf8Y1pAzKknmrjA6e4=";
+    hash = "sha256-Ypp1h4qfrY3q27Oohf/UXsl2Vlmuj78hPhlcAzXVMq4=";
   };
 
   # z3 does not provide a dist-info, so python-runtime-deps-check will fail
diff --git a/pkgs/development/python-modules/morecantile/default.nix b/pkgs/development/python-modules/morecantile/default.nix
new file mode 100644
index 0000000000000..00a6a7c533b47
--- /dev/null
+++ b/pkgs/development/python-modules/morecantile/default.nix
@@ -0,0 +1,54 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+
+  attrs,
+  click,
+  flit,
+  mercantile,
+  pydantic,
+  pyproj,
+  rasterio,
+}:
+
+buildPythonPackage rec {
+  pname = "morecantile";
+  version = "5.3.0";
+  pyproject = true;
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "developmentseed";
+    repo = "morecantile";
+    rev = version;
+    hash = "sha256-F7xYQrOngoRsZjmS6ZHRGN0/GD53AYcMQzyY1LZ1O7I=";
+  };
+
+  nativeBuildInputs = [ flit ];
+
+  propagatedBuildInputs = [
+    attrs
+    click
+    pydantic
+    pyproj
+  ];
+
+  nativeCheckInputs = [
+    mercantile
+    pytestCheckHook
+    rasterio
+  ];
+
+  pythonImportsCheck = [ "morecantile" ];
+
+  meta = {
+    description = "Construct and use map tile grids in different projection";
+    homepage = "https://developmentseed.org/morecantile/";
+    license = lib.licenses.mit;
+    maintainers = lib.teams.geospatial.members;
+    mainProgram = "morecantile";
+  };
+}
diff --git a/pkgs/development/python-modules/mpi4py/default.nix b/pkgs/development/python-modules/mpi4py/default.nix
index 1c3d0a2f850f7..43c4040fba72d 100644
--- a/pkgs/development/python-modules/mpi4py/default.nix
+++ b/pkgs/development/python-modules/mpi4py/default.nix
@@ -1,7 +1,6 @@
 {
   lib,
   fetchPypi,
-  fetchpatch,
   python,
   buildPythonPackage,
   mpi,
diff --git a/pkgs/development/python-modules/msoffcrypto-tool/default.nix b/pkgs/development/python-modules/msoffcrypto-tool/default.nix
index 830a37164a5e0..1c709d57884d4 100644
--- a/pkgs/development/python-modules/msoffcrypto-tool/default.nix
+++ b/pkgs/development/python-modules/msoffcrypto-tool/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "msoffcrypto-tool";
-  version = "5.4.0";
+  version = "5.4.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "nolze";
     repo = "msoffcrypto-tool";
     rev = "refs/tags/v${version}";
-    hash = "sha256-1LTFwXTIvFdrYyI1pDUPzQHw3/043+FGHDnKYWaomY0=";
+    hash = "sha256-BVm4hMKvvNI3bJ82t4NIRcx8o8mgQgoulIerDwoVIT0=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/mutag/default.nix b/pkgs/development/python-modules/mutag/default.nix
index c0a173a7da9cd..2d42f2008aa62 100644
--- a/pkgs/development/python-modules/mutag/default.nix
+++ b/pkgs/development/python-modules/mutag/default.nix
@@ -2,30 +2,39 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  isPy3k,
   pyparsing,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage {
   pname = "mutag";
-  version = "0.0.2-2ffa0258ca";
-  format = "setuptools";
-  disabled = !isPy3k;
+  version = "0.0.2-unstable-2018-08-20";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "aroig";
     repo = "mutag";
-    rev = "2ffa0258cadaf79313241f43bf2c1caaf197d9c2";
-    hash = "sha256-YT3DGvYPyTuB70gg6p/3oXcTahEPcNuSIqe56xu3rSs=";
+    rev = "9425169eb5d4aa9eb09f2809a09b83855b3acbef";
+    hash = "sha256-fEMmFRoFyLkqusAuhdx3XEPaPsu1x86ACAz9Vkl9YfA=";
   };
 
-  propagatedBuildInputs = [ pyparsing ];
+  build-system = [ setuptools ];
+
+  dependencies = [ pyparsing ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "mutag" ];
 
   meta = with lib; {
-    homepage = "https://github.com/aroig/mutag";
     description = "A script to change email tags in a mu indexed maildir";
-    mainProgram = "mutag";
-    license = licenses.gpl3;
+    homepage = "https://github.com/aroig/mutag";
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
+    mainProgram = "mutag";
   };
 }
diff --git a/pkgs/development/python-modules/netapp-ontap/default.nix b/pkgs/development/python-modules/netapp-ontap/default.nix
index 9b114fd1bb043..d6ba44815d3bf 100644
--- a/pkgs/development/python-modules/netapp-ontap/default.nix
+++ b/pkgs/development/python-modules/netapp-ontap/default.nix
@@ -1,28 +1,33 @@
 {
   lib,
   buildPythonPackage,
-  fetchPypi,
   cliche,
+  fetchPypi,
   marshmallow,
-  pytestCheckHook,
+  pythonOlder,
   recline,
   requests,
   requests-toolbelt,
+  setuptools,
   urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "netapp-ontap";
-  version = "9.14.1.0";
-  format = "setuptools";
+  version = "9.15.1.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     pname = "netapp_ontap";
     inherit version;
-    sha256 = "sha256-nh7SHcyujTVXSgxQajRA4EueN6Hf8cKueQbsbnr6+qw=";
+    hash = "sha256-cw8wfMKBbzN4HWLg8Xxzpnv05atKWeTZlBaBIaNWTvo=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     marshmallow
     requests
     requests-toolbelt
@@ -32,16 +37,16 @@ buildPythonPackage rec {
     recline
   ];
 
-  # no tests in sdist and no other download available
+  # No tests in sdist and no other download available
   doCheck = false;
 
   pythonImportsCheck = [ "netapp_ontap" ];
 
   meta = with lib; {
     description = "A library for working with ONTAP's REST APIs simply in Python";
-    mainProgram = "ontap-cli";
     homepage = "https://devnet.netapp.com/restapi.php";
     license = licenses.bsd3;
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "ontap-cli";
   };
 }
diff --git a/pkgs/development/python-modules/nibe/default.nix b/pkgs/development/python-modules/nibe/default.nix
index e424523b6d8f0..1df23ea573cb6 100644
--- a/pkgs/development/python-modules/nibe/default.nix
+++ b/pkgs/development/python-modules/nibe/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "nibe";
-  version = "2.9.0";
+  version = "2.10.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -29,12 +29,12 @@ buildPythonPackage rec {
     owner = "yozik04";
     repo = "nibe";
     rev = "refs/tags/${version}";
-    hash = "sha256-j8P/lhBjlsmnOc4Cv/a2Hdf2EPO8CEpT4IOQHtiBgQA=";
+    hash = "sha256-g43lXQzsQ1Serq6oIMcnAYwUppdEVcBkYGEoy3NIwqo=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     async-modbus
     async-timeout
     construct
@@ -62,7 +62,7 @@ buildPythonPackage rec {
     description = "Library for the communication with Nibe heatpumps";
     homepage = "https://github.com/yozik04/nibe";
     changelog = "https://github.com/yozik04/nibe/releases/tag/${version}";
-    license = with licenses; [ gpl3Plus ];
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/nose-exclude/default.nix b/pkgs/development/python-modules/nose-exclude/default.nix
deleted file mode 100644
index 81d4e1a3cb750..0000000000000
--- a/pkgs/development/python-modules/nose-exclude/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-  stdenv,
-  lib,
-  buildPythonPackage,
-  fetchPypi,
-  nose,
-}:
-
-buildPythonPackage rec {
-  pname = "nose-exclude";
-  version = "0.5.0";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "f78fa8b41eeb815f0486414f710f1eea0949e346cfb11d59ba6295ed69e84304";
-  };
-
-  propagatedBuildInputs = [ nose ];
-
-  # "OSError: AF_UNIX path too long" for darwin
-  doCheck = !stdenv.isDarwin;
-
-  meta = {
-    license = lib.licenses.lgpl21;
-    description = "Exclude specific directories from nosetests runs";
-    homepage = "https://github.com/kgrandis/nose-exclude";
-  };
-}
diff --git a/pkgs/development/python-modules/notifications-python-client/default.nix b/pkgs/development/python-modules/notifications-python-client/default.nix
index 3ec2874c45917..1915ccd3fee98 100644
--- a/pkgs/development/python-modules/notifications-python-client/default.nix
+++ b/pkgs/development/python-modules/notifications-python-client/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "notifications-python-client";
-  version = "9.0.0";
+  version = "9.1.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "alphagov";
     repo = "notifications-python-client";
     rev = "refs/tags/${version}";
-    hash = "sha256-HDxCVwagHFenx0S2TPxiMIyyq4ovxe0yNi76sX2CC9s=";
+    hash = "sha256-qjiI+aTJLOz3XSTHKrpZrJ/wg1xP+V7ww0//xX3Kf1E=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/okonomiyaki/default.nix b/pkgs/development/python-modules/okonomiyaki/default.nix
index d68f9d5b92831..5845857ea1650 100644
--- a/pkgs/development/python-modules/okonomiyaki/default.nix
+++ b/pkgs/development/python-modules/okonomiyaki/default.nix
@@ -12,6 +12,7 @@
   mock,
   packaging,
   testfixtures,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -58,5 +59,6 @@ buildPythonPackage rec {
     description = "An experimental library aimed at consolidating a lot of low-level code used for Enthought's eggs";
     maintainers = with maintainers; [ genericnerdyusername ];
     license = licenses.bsd3;
+    broken = pythonAtLeast "3.12"; # multiple tests are failing
   };
 }
diff --git a/pkgs/development/python-modules/ome-zarr/default.nix b/pkgs/development/python-modules/ome-zarr/default.nix
index d14f7a7cca0dc..05786117dc9e1 100644
--- a/pkgs/development/python-modules/ome-zarr/default.nix
+++ b/pkgs/development/python-modules/ome-zarr/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "ome-zarr";
-  version = "0.8.3";
+  version = "0.9.0";
   format = "setuptools";
   disabled = pythonOlder "3.6";
 
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "ome";
     repo = "ome-zarr-py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-JuNXVse/n/lFbNaLwMcir8NBHiRxcbYvtbxePwI6YoY=";
+    hash = "sha256-YOG9+ONf2OnkSZBL/Vb8Inebx4XDSGJb2fqypaWebhY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/openai/default.nix b/pkgs/development/python-modules/openai/default.nix
index d29d6deec1293..3a33a4b9b4642 100644
--- a/pkgs/development/python-modules/openai/default.nix
+++ b/pkgs/development/python-modules/openai/default.nix
@@ -25,7 +25,7 @@
 
 buildPythonPackage rec {
   pname = "openai";
-  version = "1.28.0";
+  version = "1.30.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7.1";
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     owner = "openai";
     repo = "openai-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-zWvrLCAN/OsSiNLQ2jvEh9anoSpMXgEYhAFwh9btWEM=";
+    hash = "sha256-Z11gyTZ3UMlcWV3OFxVgMcFF11W+nm2dj2KK1ivTjEI=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/opensfm/default.nix b/pkgs/development/python-modules/opensfm/default.nix
index dc7f6d4163a8e..bd5b97ab2852a 100644
--- a/pkgs/development/python-modules/opensfm/default.nix
+++ b/pkgs/development/python-modules/opensfm/default.nix
@@ -3,7 +3,6 @@
   stdenv,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   cmake,
   opencv4,
   ceres-solver,
diff --git a/pkgs/development/python-modules/oras/default.nix b/pkgs/development/python-modules/oras/default.nix
index 16a8a9d9fd6b6..987b41dfaa2d6 100644
--- a/pkgs/development/python-modules/oras/default.nix
+++ b/pkgs/development/python-modules/oras/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "oras";
-  version = "0.1.29";
+  version = "0.1.30";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "oras-project";
     repo = "oras-py";
     rev = "refs/tags/${version}";
-    hash = "sha256-ZV+J5zqRBRIddWdmLzzjpZi3M5E/HfkG8lWK9xzy5tw=";
+    hash = "sha256-qdWGqa5W+WI+lQ2TDZUuJF7PSmkc1Kv7UbWL6+Rfyio=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/orjson/default.nix b/pkgs/development/python-modules/orjson/default.nix
index 75440aeaa8606..5bb2acb5dfd8c 100644
--- a/pkgs/development/python-modules/orjson/default.nix
+++ b/pkgs/development/python-modules/orjson/default.nix
@@ -31,7 +31,7 @@
 
 buildPythonPackage rec {
   pname = "orjson";
-  version = "3.10.1";
+  version = "3.10.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -40,13 +40,13 @@ buildPythonPackage rec {
     owner = "ijl";
     repo = "orjson";
     rev = "refs/tags/${version}";
-    hash = "sha256-vEJriLd7f+zlYcMIyhDTkq2kmNc5MaNLHo0qMLS5hro=";
+    hash = "sha256-bK6wA8P/IXEbiuJAx7psd0nUUKjR1jX4scFfJr1MBAk=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-yQkpjedHwgsZiiZEzYV66aa9RepCFW0PBqtD29tfoMI=";
+    hash = "sha256-ilGq+/gPSuNwURUWy2ZxInzmUv+PxYMxd8esxrMpr2o=";
   };
 
   maturinBuildFlags = [ "--interpreter ${python.executable}" ];
diff --git a/pkgs/development/python-modules/oslo-db/default.nix b/pkgs/development/python-modules/oslo-db/default.nix
index 3bb388329b658..6b2c64de5d0c7 100644
--- a/pkgs/development/python-modules/oslo-db/default.nix
+++ b/pkgs/development/python-modules/oslo-db/default.nix
@@ -21,13 +21,13 @@
 
 buildPythonPackage rec {
   pname = "oslo-db";
-  version = "15.0.0";
+  version = "15.1.0";
   pyproject = true;
 
   src = fetchPypi {
     pname = "oslo.db";
     inherit version;
-    hash = "sha256-6QJDUgX1xQtw7mNYY8i06lS9Hr4ABpXAZeMN1C2Xb/o=";
+    hash = "sha256-FqvjqOYf52zaLwPZx9xZEITRnvYU8xiHvylp7fsg6E4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/oslo-log/default.nix b/pkgs/development/python-modules/oslo-log/default.nix
index 9f18906cb8758..882131c7c60b9 100644
--- a/pkgs/development/python-modules/oslo-log/default.nix
+++ b/pkgs/development/python-modules/oslo-log/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "oslo-log";
-  version = "5.5.1";
+  version = "6.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "oslo.log";
     inherit version;
-    hash = "sha256-SEFIUSxdsqizXIPNmX6ZU3Vf2L+oqvbuDMjHrrdCkhA=";
+    hash = "sha256-ifDW+iy6goH4m1CKf+Sb+5far1XFJ4GH1FowaZceaH8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/osqp/default.nix b/pkgs/development/python-modules/osqp/default.nix
index 4d7cc0cad7958..919b6f84a1bf3 100644
--- a/pkgs/development/python-modules/osqp/default.nix
+++ b/pkgs/development/python-modules/osqp/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "osqp";
-  version = "0.6.5";
+  version = "0.6.7";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-soEK7nviNzrdi2wL5a2ZuBAoh3SrykIXUcsDLWpa7e8=";
+    hash = "sha256-O3ARmFV6SZxg67U9fyUBkGSFXHMvTz+84gVdeJ5Tph0=";
   };
 
   dontUseCmakeConfigure = true;
diff --git a/pkgs/development/python-modules/owslib/default.nix b/pkgs/development/python-modules/owslib/default.nix
index e67dc18143fbc..645715a4f0af5 100644
--- a/pkgs/development/python-modules/owslib/default.nix
+++ b/pkgs/development/python-modules/owslib/default.nix
@@ -51,22 +51,10 @@ buildPythonPackage rec {
     export PY_IGNORE_IMPORTMISMATCH=1
   '';
 
-  disabledTests =
-    [
-      # Tests require network access
-      "test_ows_interfaces_wcs"
-      "test_wfs_110_remotemd"
-      "test_wfs_200_remotemd"
-      "test_wms_130_remotemd"
-      "test_wmts_example_informatievlaanderen"
-      "test_opensearch_creodias"
-    ]
-    ++ lib.optionals stdenv.isDarwin [
-      "test_ogcapi_processes_pygeoapi"
-      "test_ogcapi_records_pycsw"
-      "test_ogcapi_records_pygeoapi"
-      "test_wms_getfeatureinfo_130"
-    ];
+  pytestFlagsArray = [
+    # disable tests which require network access
+    "-m 'not online'"
+  ];
 
   meta = with lib; {
     description = "Client for Open Geospatial Consortium web service interface standards";
diff --git a/pkgs/development/python-modules/panel/default.nix b/pkgs/development/python-modules/panel/default.nix
index 30c6c52c67807..b497d6de4cd7c 100644
--- a/pkgs/development/python-modules/panel/default.nix
+++ b/pkgs/development/python-modules/panel/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "panel";
-  version = "1.4.1";
+  version = "1.4.3";
 
   format = "wheel";
 
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   # tries to fetch even more artifacts
   src = fetchPypi {
     inherit pname version format;
-    hash = "sha256-x7ywbO2uY1r06bDXV/+X/7cs9f6jFawyDHeo8pLWZVE=";
+    hash = "sha256-iIBQ9UEcmO6q3bS2faFK7tY4mPVaoIWS7bMzKLzkfWw=";
     dist = "py3";
     python = "py3";
   };
diff --git a/pkgs/development/python-modules/parso/default.nix b/pkgs/development/python-modules/parso/default.nix
index bb0bf239d95aa..2030f79697901 100644
--- a/pkgs/development/python-modules/parso/default.nix
+++ b/pkgs/development/python-modules/parso/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchPypi,
-  fetchpatch,
   pythonAtLeast,
   pythonOlder,
   pytestCheckHook,
diff --git a/pkgs/development/python-modules/pdfplumber/default.nix b/pkgs/development/python-modules/pdfplumber/default.nix
index 1a28900924d5b..d35bf4f2ad1b3 100644
--- a/pkgs/development/python-modules/pdfplumber/default.nix
+++ b/pkgs/development/python-modules/pdfplumber/default.nix
@@ -2,6 +2,7 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
+  ghostscript,
   jupyterlab,
   nbexec,
   pandas,
@@ -45,6 +46,7 @@ buildPythonPackage rec {
   '';
 
   nativeCheckInputs = [
+    ghostscript
     jupyterlab
     nbexec
     pandas
@@ -64,8 +66,8 @@ buildPythonPackage rec {
   disabledTestPaths = [
     # Tests requires pypdfium2
     "tests/test_display.py"
-    # Tests require Ghostscript
-    "tests/test_repair.py"
+    # Tests requires pypdfium2
+    "tests/test_issues.py"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/peaqevcore/default.nix b/pkgs/development/python-modules/peaqevcore/default.nix
index ff4baf1aa2be0..3c55be1d16698 100644
--- a/pkgs/development/python-modules/peaqevcore/default.nix
+++ b/pkgs/development/python-modules/peaqevcore/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "peaqevcore";
-  version = "19.10.8";
+  version = "19.10.12";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-H9AJErjJC/zo5Fy1sZFLw6GCMm4YirMzwWbAhzXM7mg=";
+    hash = "sha256-9k6bFEZychZXr/vE5AznQ36hhm/JXgjByM9wSZmyzts=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pgmpy/default.nix b/pkgs/development/python-modules/pgmpy/default.nix
index ad6b248b0f391..d9505528c64b1 100644
--- a/pkgs/development/python-modules/pgmpy/default.nix
+++ b/pkgs/development/python-modules/pgmpy/default.nix
@@ -2,6 +2,7 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
+  pythonAtLeast,
   pythonOlder,
   # build inputs
   networkx,
@@ -42,6 +43,14 @@ buildPythonPackage {
     hash = "sha256-d2TNcJQ82XxTWdetLgtKXRpFulAEEzrr+cyRewoA6YI=";
   };
 
+  # TODO: Remove this patch after updating to pgmpy 0.1.26.
+  # The PR https://github.com/pgmpy/pgmpy/pull/1745 will have been merged.
+  # It contains the fix below, among other things, which is why we do not use fetchpatch.
+  postPatch = lib.optionalString (pythonAtLeast "3.12") ''
+    substituteInPlace pgmpy/tests/test_estimators/test_MarginalEstimator.py \
+      --replace-fail 'self.assert_' 'self.assertTrue'
+  '';
+
   propagatedBuildInputs = [
     networkx
     numpy
diff --git a/pkgs/development/python-modules/pins/default.nix b/pkgs/development/python-modules/pins/default.nix
index 627bdd0e64e5f..30f9c503c34b1 100644
--- a/pkgs/development/python-modules/pins/default.nix
+++ b/pkgs/development/python-modules/pins/default.nix
@@ -28,7 +28,7 @@
 
 buildPythonPackage rec {
   pname = "pins";
-  version = "0.8.4";
+  version = "0.8.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -37,15 +37,15 @@ buildPythonPackage rec {
     owner = "rstudio";
     repo = "pins-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-rNIjHwFELHoxDxC/T5vPzHA6Ifjz01rJpTK6kjUxOIM=";
+    hash = "sha256-TRwdd0vxqXZgongjooJG5rzTnopUsjfl2I8z3nBocdg=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     appdirs
     fsspec
     humanize
diff --git a/pkgs/development/python-modules/pipdeptree/default.nix b/pkgs/development/python-modules/pipdeptree/default.nix
index 3aa70970fc65c..9b0177ce10ecd 100644
--- a/pkgs/development/python-modules/pipdeptree/default.nix
+++ b/pkgs/development/python-modules/pipdeptree/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "pipdeptree";
-  version = "2.20.0";
+  version = "2.21.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "tox-dev";
     repo = "pipdeptree";
     rev = "refs/tags/${version}";
-    hash = "sha256-Mng5YUM2+T3OFrr4uGVvq5mP0aq10r21pp46tw6lLno=";
+    hash = "sha256-cs04HGmKG1I42AYH1BOfm9tnbSQuCAxo5KOdJ4/ysos=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/plugp100/default.nix b/pkgs/development/python-modules/plugp100/default.nix
new file mode 100644
index 0000000000000..cd2c09467ffd3
--- /dev/null
+++ b/pkgs/development/python-modules/plugp100/default.nix
@@ -0,0 +1,51 @@
+{
+  stdenv,
+  pkgs,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  certifi,
+  scapy,
+  urllib3,
+  semantic-version,
+  aiohttp,
+  jsons,
+  requests,
+  # Test inputs
+  pytestCheckHook,
+  pyyaml,
+  pytest-asyncio,
+  async-timeout,
+  }:
+
+buildPythonPackage rec {
+  pname = "plugp100";
+  version = "5.1.3";
+
+  src = fetchFromGitHub {
+    owner = "petretiandrea";
+    repo = "plugp100";
+    rev = version;
+    sha256 = "sha256-V+9cVBMN8H4oFU51T9BDrLF46xgQHqIsMj8nuPedUGA=";
+  };
+
+  propagatedBuildInputs =
+    [ certifi jsons requests aiohttp semantic-version scapy urllib3 pyyaml ];
+
+  nativeCheckInputs = [ pytestCheckHook pytest-asyncio async-timeout ];
+
+  disabledTestPaths = [
+    "tests/integration/"
+    "tests/unit/hub_child/"
+    "tests/unit/test_plug_strip.py"
+    "tests/unit/test_hub.py "
+    "tests/unit/test_klap_protocol.py"
+  ];
+
+  meta = with lib; {
+    description = "Python library to control Tapo Plug P100 devices";
+    homepage = "https://github.com/petretiandrea/plugp100";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ pyle ];
+  };
+}
diff --git a/pkgs/development/python-modules/plugwise/default.nix b/pkgs/development/python-modules/plugwise/default.nix
index eb9711c6ebd63..9c1aa683003b2 100644
--- a/pkgs/development/python-modules/plugwise/default.nix
+++ b/pkgs/development/python-modules/plugwise/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "plugwise";
-  version = "0.37.8";
+  version = "0.37.9";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "plugwise";
     repo = "python-plugwise";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Mh4BZ0Gnsy046I537R4SZ/rC9Jm7XjF0slAP/0e5Ov8=";
+    hash = "sha256-8o2cTGkoYLrHQsAWnTg7cj9bJ+Wv1/lbHJiZ50jjFxo=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/plux/default.nix b/pkgs/development/python-modules/plux/default.nix
index 5c0d6d1fb28c3..c889943748000 100644
--- a/pkgs/development/python-modules/plux/default.nix
+++ b/pkgs/development/python-modules/plux/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   pytestCheckHook,
   setuptools,
   stevedore,
diff --git a/pkgs/development/python-modules/plyer/default.nix b/pkgs/development/python-modules/plyer/default.nix
index 1bc2ff92675e7..6a77e4a56005a 100644
--- a/pkgs/development/python-modules/plyer/default.nix
+++ b/pkgs/development/python-modules/plyer/default.nix
@@ -3,7 +3,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   keyring,
   mock,
   pytestCheckHook,
diff --git a/pkgs/development/python-modules/ppscore/default.nix b/pkgs/development/python-modules/ppscore/default.nix
index 5593205dba6fb..f523ffce1c82d 100644
--- a/pkgs/development/python-modules/ppscore/default.nix
+++ b/pkgs/development/python-modules/ppscore/default.nix
@@ -2,6 +2,7 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
+  pythonRelaxDepsHook,
   setuptools,
   pandas,
   pytestCheckHook,
@@ -23,7 +24,10 @@ buildPythonPackage rec {
     hash = "sha256-gJStsL8fN17kvXO8EH/NHGIBelPknJzYw5WEvHsFooU=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+    setuptools
+  ];
 
   propagatedBuildInputs = [
     pandas
@@ -32,6 +36,8 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ pytestCheckHook ];
 
+  pythonRelaxDeps = [ "pandas" ];
+
   pythonImportsCheck = [ "ppscore" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/proxy-py/default.nix b/pkgs/development/python-modules/proxy-py/default.nix
index 384dd6c1ec080..6a09b16a5cd9c 100644
--- a/pkgs/development/python-modules/proxy-py/default.nix
+++ b/pkgs/development/python-modules/proxy-py/default.nix
@@ -4,7 +4,6 @@
   bash,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   gnumake,
   h2,
   hpack,
diff --git a/pkgs/development/python-modules/psrpcore/default.nix b/pkgs/development/python-modules/psrpcore/default.nix
index 102d9ce9b7c0c..72c8da5f54078 100644
--- a/pkgs/development/python-modules/psrpcore/default.nix
+++ b/pkgs/development/python-modules/psrpcore/default.nix
@@ -1,5 +1,6 @@
 {
   lib,
+  stdenv,
   buildPythonPackage,
   cryptography,
   fetchFromGitHub,
@@ -42,5 +43,6 @@ buildPythonPackage rec {
     changelog = "https://github.com/jborean93/psrpcore/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/python-modules/ptpython/default.nix b/pkgs/development/python-modules/ptpython/default.nix
index fdacceff4ad35..b9ea300c15842 100644
--- a/pkgs/development/python-modules/ptpython/default.nix
+++ b/pkgs/development/python-modules/ptpython/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "ptpython";
-  version = "3.0.26";
+  version = "3.0.27";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-yPsUBlAtw0nZnFfq8G5xFvOy3qyU8C80K65ocIkJ90M=";
+    hash = "sha256-JLD9qUtz0cmaJ+b9DQi+by582nmi25lcfjx7ixJUutk=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/publicsuffixlist/default.nix b/pkgs/development/python-modules/publicsuffixlist/default.nix
index a693890d45668..d9080684581f2 100644
--- a/pkgs/development/python-modules/publicsuffixlist/default.nix
+++ b/pkgs/development/python-modules/publicsuffixlist/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "publicsuffixlist";
-  version = "0.10.0.20240515";
+  version = "0.10.0.20240525";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-0BlbqefYDjYRIWv5UgjTRInD12l1wGp+nnwJBE5vbXs=";
+    hash = "sha256-uH+o+M/aFLEaGOgdusSXJN7PtHdwD6v3tlhkwRybTjY=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/py-sr25519-bindings/default.nix b/pkgs/development/python-modules/py-sr25519-bindings/default.nix
index 04a037cd9a9bd..51915de513a78 100644
--- a/pkgs/development/python-modules/py-sr25519-bindings/default.nix
+++ b/pkgs/development/python-modules/py-sr25519-bindings/default.nix
@@ -1,7 +1,6 @@
 {
   lib,
   fetchFromGitHub,
-  fetchpatch,
   buildPythonPackage,
   pythonOlder,
   pytestCheckHook,
diff --git a/pkgs/development/python-modules/pyahocorasick/default.nix b/pkgs/development/python-modules/pyahocorasick/default.nix
index 9ae189019fcb0..51ec19016c776 100644
--- a/pkgs/development/python-modules/pyahocorasick/default.nix
+++ b/pkgs/development/python-modules/pyahocorasick/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   pytestCheckHook,
   pythonOlder,
 }:
diff --git a/pkgs/development/python-modules/pyannote-metrics/default.nix b/pkgs/development/python-modules/pyannote-metrics/default.nix
index f5623e28b4404..27d825a2859c4 100644
--- a/pkgs/development/python-modules/pyannote-metrics/default.nix
+++ b/pkgs/development/python-modules/pyannote-metrics/default.nix
@@ -1,19 +1,20 @@
 {
   lib,
   buildPythonPackage,
+  docopt,
   fetchFromGitHub,
-  setuptools,
-  wheel,
+  matplotlib,
+  numpy,
+  pandas,
   pyannote-core,
   pyannote-database,
-  pandas,
-  scipy,
+  pythonOlder,
   scikit-learn,
-  docopt,
-  tabulate,
-  matplotlib,
+  scipy,
+  setuptools,
   sympy,
-  numpy,
+  tabulate,
+  versioneer,
 }:
 
 buildPythonPackage rec {
@@ -21,14 +22,26 @@ buildPythonPackage rec {
   version = "3.2.1";
   pyproject = true;
 
+  disabled = pythonOlder "3.8";
+
   src = fetchFromGitHub {
     owner = "pyannote";
     repo = "pyannote-metrics";
-    rev = version;
+    rev = "refs/tags/${version}";
     hash = "sha256-V4qyaCaFsoikfFILm2sccf6m7lqJSDTdLxS1sr/LXAY=";
   };
 
-  propagatedBuildInputs = [
+  postPatch = ''
+    # Remove vendorized versioneer.py
+    rm versioneer.py
+  '';
+
+  build-system = [
+    setuptools
+    versioneer
+  ];
+
+  dependencies = [
     pyannote-core
     pyannote-database
     pandas
@@ -41,18 +54,14 @@ buildPythonPackage rec {
     numpy
   ];
 
-  nativeBuildInputs = [
-    setuptools
-    wheel
-  ];
-
   pythonImportsCheck = [ "pyannote.metrics" ];
 
   meta = with lib; {
     description = "A toolkit for reproducible evaluation, diagnostic, and error analysis of speaker diarization systems";
-    mainProgram = "pyannote-metrics";
     homepage = "https://github.com/pyannote/pyannote-metrics";
+    changelog = "http://pyannote.github.io/pyannote-metrics/changelog.html";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
+    mainProgram = "pyannote-metrics";
   };
 }
diff --git a/pkgs/development/python-modules/pybids/default.nix b/pkgs/development/python-modules/pybids/default.nix
index 33a00bac9284e..df3af23c98f76 100644
--- a/pkgs/development/python-modules/pybids/default.nix
+++ b/pkgs/development/python-modules/pybids/default.nix
@@ -19,12 +19,12 @@
 
 buildPythonPackage rec {
   pname = "pybids";
-  version = "0.16.4";
+  version = "0.16.5";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-pahl8wi6Sf8AuVqkvi7H90ViHr+9utb14ZVmKK3rFm4=";
+    hash = "sha256-5MAp5CYlOh1WxsXOE/LHVNm/K4VGFaLKWaaKYwKjQIM=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/pycaption/default.nix b/pkgs/development/python-modules/pycaption/default.nix
index 609a3b0341801..b664fa6e0e5fc 100644
--- a/pkgs/development/python-modules/pycaption/default.nix
+++ b/pkgs/development/python-modules/pycaption/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "pycaption";
-  version = "2.2.7";
+  version = "2.2.10";
 
   disabled = pythonOlder "3.8";
 
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "pbs";
     repo = "pycaption";
     rev = "refs/tags/${version}";
-    hash = "sha256-0rh8w4zQN5qAIPwnm7FO6VyPxMdutYFflpY+xWdEm3M=";
+    hash = "sha256-U4ooAKs0vy6jQdUake2R0RKs9lz+DNvS1f3/c2Mck5k=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/pydeconz/default.nix b/pkgs/development/python-modules/pydeconz/default.nix
index 40635ad93fcc4..68e31e0002701 100644
--- a/pkgs/development/python-modules/pydeconz/default.nix
+++ b/pkgs/development/python-modules/pydeconz/default.nix
@@ -9,36 +9,34 @@
   pytestCheckHook,
   pythonOlder,
   setuptools,
-  wheel,
 }:
 
 buildPythonPackage rec {
   pname = "pydeconz";
-  version = "115";
+  version = "116";
   pyproject = true;
 
-  disabled = pythonOlder "3.11";
+  disabled = pythonOlder "3.12";
 
   src = fetchFromGitHub {
     owner = "Kane610";
     repo = "deconz";
     rev = "refs/tags/v${version}";
-    hash = "sha256-NjzONVSJ4GEaIeC5ytnTi8JpZY1yIq3LN8vbMy3n0vs=";
+    hash = "sha256-XtcAs+xKSTJcQN0mCj6ewkT7owvA7nlZ8PhWfL9NZh8=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "--cov=pydeconz --cov-report term-missing" "" \
-      --replace "setuptools==" "setuptools>=" \
-      --replace "wheel==" "wheel>="
+      --replace-fail "--cov=pydeconz --cov-report term-missing" "" \
+      --replace-fail "setuptools==" "setuptools>=" \
+      --replace-fail "wheel==" "wheel>="
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
-    wheel
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     orjson
   ];
@@ -53,10 +51,10 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library wrapping the Deconz REST API";
-    mainProgram = "pydeconz";
     homepage = "https://github.com/Kane610/deconz";
     changelog = "https://github.com/Kane610/deconz/releases/tag/v${version}";
-    license = with licenses; [ mit ];
+    license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "pydeconz";
   };
 }
diff --git a/pkgs/development/python-modules/pyecowitt/default.nix b/pkgs/development/python-modules/pyecowitt/default.nix
index e39c70baca793..0786f87c7e293 100644
--- a/pkgs/development/python-modules/pyecowitt/default.nix
+++ b/pkgs/development/python-modules/pyecowitt/default.nix
@@ -4,23 +4,26 @@
   buildPythonPackage,
   fetchFromGitHub,
   pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pyecowitt";
   version = "0.21";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "garbled1";
-    repo = pname;
-    rev = version;
-    sha256 = "5VdVo6j2HZXSCWU4NvfWzyS/KJfVb7N1KSMeu8TvWaQ=";
+    repo = "pyecowitt";
+    rev = "refs/tags/${version}";
+    hash = "sha256-5VdVo6j2HZXSCWU4NvfWzyS/KJfVb7N1KSMeu8TvWaQ=";
   };
 
-  propagatedBuildInputs = [ aiohttp ];
+  build-system = [ setuptools ];
+
+  dependencies = [ aiohttp ];
 
   # Project thas no tests
   doCheck = false;
@@ -30,7 +33,8 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python module for the EcoWitt Protocol";
     homepage = "https://github.com/garbled1/pyecowitt";
-    license = with licenses; [ asl20 ];
+    changelog = "https://github.com/garbled1/pyecowitt/releases/tag/${version}";
+    license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/pyedimax/default.nix b/pkgs/development/python-modules/pyedimax/default.nix
index 350525b402865..dff8a0ffa899f 100644
--- a/pkgs/development/python-modules/pyedimax/default.nix
+++ b/pkgs/development/python-modules/pyedimax/default.nix
@@ -3,28 +3,35 @@
   buildPythonPackage,
   fetchPypi,
   requests,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pyedimax";
   version = "0.2.1";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1i3gr5vygqh2ryg67sl13aaql7nvf3nbybrg54628r4g7911b5rk";
+    hash = "sha256-M5cVQjqPZCQMKS8vv+xw2x6KlRqB6mOezwLi53fJb8Q=";
   };
 
-  propagatedBuildInputs = [ requests ];
+  build-system = [ setuptools ];
+
+  dependencies = [ requests ];
 
-  # Project has no tests
+  # Module has no tests
   doCheck = false;
+
   pythonImportsCheck = [ "pyedimax" ];
 
   meta = with lib; {
     description = "Python library for interfacing with the Edimax smart plugs";
     homepage = "https://github.com/andreipop2005/pyedimax";
-    license = with licenses; [ mit ];
+    license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/pyenvisalink/default.nix b/pkgs/development/python-modules/pyenvisalink/default.nix
index 54195b8eba57e..84167f4ae58d1 100644
--- a/pkgs/development/python-modules/pyenvisalink/default.nix
+++ b/pkgs/development/python-modules/pyenvisalink/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "pyenvisalink";
-  version = "4.6";
+  version = "4.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-CQvomHYNMrf0oQjNCcLyisxIV2+3TOgEPzA9seZYsOs=";
+    hash = "sha256-b5v/7+B/yyCnKrWCs0scAuIgV1wSLk6cVa57n+HncUw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyexploitdb/default.nix b/pkgs/development/python-modules/pyexploitdb/default.nix
index 4178d616ae8f0..9e2e4f5c33718 100644
--- a/pkgs/development/python-modules/pyexploitdb/default.nix
+++ b/pkgs/development/python-modules/pyexploitdb/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pyexploitdb";
-  version = "0.2.18";
+  version = "0.2.19";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pyExploitDb";
     inherit version;
-    hash = "sha256-pwlS0304aTSrGZFIj5f+jstcFwcy/liqQBW8p7hUhKE=";
+    hash = "sha256-coxO3WQt60b6I2QfhViuTiOp+VuktUoddWjbMxUOx7E=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/pyfireservicerota/default.nix b/pkgs/development/python-modules/pyfireservicerota/default.nix
index 741b11edfcffb..4042c0a235c53 100644
--- a/pkgs/development/python-modules/pyfireservicerota/default.nix
+++ b/pkgs/development/python-modules/pyfireservicerota/default.nix
@@ -3,7 +3,6 @@
   buildPythonPackage,
   pythonOlder,
   fetchPypi,
-  fetchpatch2,
   pdm-backend,
   pytz,
   oauthlib,
diff --git a/pkgs/development/python-modules/pygeos/default.nix b/pkgs/development/python-modules/pygeos/default.nix
deleted file mode 100644
index ebb90ee9fef7f..0000000000000
--- a/pkgs/development/python-modules/pygeos/default.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-{
-  lib,
-  buildPythonPackage,
-  fetchPypi,
-  python,
-  geos_3_11,
-  pytestCheckHook,
-  cython_0,
-  numpy,
-}:
-
-buildPythonPackage rec {
-  pname = "pygeos";
-  version = "0.14";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-MPvBf2SEQgC4UTO4hfz7ZVQbh3lTH270+P5GfT+6diM=";
-  };
-
-  nativeBuildInputs = [
-    geos_3_11 # for geos-config
-    cython_0
-  ];
-
-  propagatedBuildInputs = [ numpy ];
-
-  # The cythonized extensions are required to exist in the pygeos/ directory
-  # for the package to function. Therefore override of buildPhase was
-  # necessary.
-  buildPhase = ''
-    ${python.pythonOnBuildForHost.interpreter} setup.py build_ext --inplace
-    ${python.pythonOnBuildForHost.interpreter} setup.py bdist_wheel
-  '';
-
-  nativeCheckInputs = [ pytestCheckHook ];
-
-  pythonImportsCheck = [ "pygeos" ];
-
-  meta = with lib; {
-    description = "Wraps GEOS geometry functions in numpy ufuncs";
-    homepage = "https://github.com/pygeos/pygeos";
-    changelog = "https://github.com/pygeos/pygeos/blob/${version}/CHANGELOG.rst";
-    license = licenses.bsd3;
-    maintainers = teams.geospatial.members;
-  };
-}
diff --git a/pkgs/development/python-modules/pyinfra/default.nix b/pkgs/development/python-modules/pyinfra/default.nix
index 4bea65f825119..80b1d43ef6ed7 100644
--- a/pkgs/development/python-modules/pyinfra/default.nix
+++ b/pkgs/development/python-modules/pyinfra/default.nix
@@ -6,7 +6,6 @@
   configparser,
   distro,
   fetchFromGitHub,
-  fetchpatch,
   gevent,
   jinja2,
   paramiko,
diff --git a/pkgs/development/python-modules/pyiqvia/default.nix b/pkgs/development/python-modules/pyiqvia/default.nix
index 2af120b22c2e5..dbc41c1c78516 100644
--- a/pkgs/development/python-modules/pyiqvia/default.nix
+++ b/pkgs/development/python-modules/pyiqvia/default.nix
@@ -6,7 +6,6 @@
   backoff,
   certifi,
   fetchFromGitHub,
-  fetchpatch,
   poetry-core,
   pytest-aiohttp,
   pytest-asyncio,
diff --git a/pkgs/development/python-modules/pykdl/default.nix b/pkgs/development/python-modules/pykdl/default.nix
index c5eea5ede8041..6670f6d145d04 100644
--- a/pkgs/development/python-modules/pykdl/default.nix
+++ b/pkgs/development/python-modules/pykdl/default.nix
@@ -42,6 +42,8 @@ toPythonModule (
     ];
     propagatedBuildInputs = [ python ];
 
+    cmakeFlags = [ "-DPYTHON_EXECUTABLE=${lib.getExe python.pythonOnBuildForHost}" ];
+
     meta = with lib; {
       description = "Kinematics and Dynamics Library (Python bindings)";
       homepage = "https://www.orocos.org/kdl.html";
diff --git a/pkgs/development/python-modules/pylast/default.nix b/pkgs/development/python-modules/pylast/default.nix
index 6c0f4e98c4f9a..19e1be9892f30 100644
--- a/pkgs/development/python-modules/pylast/default.nix
+++ b/pkgs/development/python-modules/pylast/default.nix
@@ -13,24 +13,24 @@
 
 buildPythonPackage rec {
   pname = "pylast";
-  version = "5.2.0";
-  format = "pyproject";
+  version = "5.3.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "pylast";
-    repo = pname;
+    repo = "pylast";
     rev = "refs/tags/${version}";
-    hash = "sha256-6yxsqruosSOJ5LeIBbvuEko4s9qU/ObNZiJD5YH/hvY=";
+    hash = "sha256-dgqTNISeyBkZ2m68pqw5rsoyPxLW4wWkv6iqq9bD5Ek=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     hatch-vcs
     hatchling
   ];
 
-  propagatedBuildInputs = [ httpx ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
+  dependencies = [ httpx ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -42,6 +42,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python interface to last.fm (and compatibles)";
     homepage = "https://github.com/pylast/pylast";
+    changelog = "https://github.com/pylast/pylast/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [
       fab
diff --git a/pkgs/development/python-modules/pymongo-inmemory/default.nix b/pkgs/development/python-modules/pymongo-inmemory/default.nix
index da76c5d01df3e..d90652a53726c 100644
--- a/pkgs/development/python-modules/pymongo-inmemory/default.nix
+++ b/pkgs/development/python-modules/pymongo-inmemory/default.nix
@@ -3,7 +3,6 @@
   buildPythonPackage,
   pythonOlder,
   fetchFromGitHub,
-  fetchpatch,
   poetry-core,
   pymongo,
   pytestCheckHook,
@@ -11,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pymongo-inmemory";
-  version = "0.4.1";
+  version = "0.4.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +19,7 @@ buildPythonPackage rec {
     owner = "kaizendorks";
     repo = "pymongo_inmemory";
     rev = "refs/tags/v${version}";
-    hash = "sha256-vYWVMSawk+03ie3PtqOyzd6wxiviq+IzyQ8bvEHNHfc=";
+    hash = "sha256-FDHHf9x62EqNcHjDF2vH8w8WG/15efEe+fDqGiiOe4A=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pyogrio/default.nix b/pkgs/development/python-modules/pyogrio/default.nix
new file mode 100644
index 0000000000000..551fde29bafe8
--- /dev/null
+++ b/pkgs/development/python-modules/pyogrio/default.nix
@@ -0,0 +1,75 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+
+  certifi,
+  cython,
+  gdal,
+  numpy,
+  packaging,
+  setuptools,
+  versioneer,
+  wheel,
+}:
+
+buildPythonPackage rec {
+  pname = "pyogrio";
+  version = "0.8.0";
+  pyproject = true;
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "geopandas";
+    repo = "pyogrio";
+    rev = "v${version}";
+    hash = "sha256-h4Rv5xOWSJSv0nLbosviz5EiF/IsZO5wzBel9YRd0Bg=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail "versioneer[toml]==0.28" "versioneer[toml]"
+  '' + lib.optionalString (!pythonOlder "3.12") ''
+    substituteInPlace setup.py \
+      --replace-fail "distutils" "setuptools._distutils"
+  '';
+
+  nativeBuildInputs = [
+    cython
+    gdal # for gdal-config
+    setuptools
+    versioneer
+    wheel
+  ] ++ versioneer.optional-dependencies.toml;
+
+  buildInputs = [ gdal ];
+
+  propagatedBuildInputs = [
+    certifi
+    numpy
+    packaging
+  ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  preCheck = ''
+    python setup.py build_ext --inplace
+  '';
+
+  pytestFlagsArray = [
+    # disable tests which require network access
+    "-m 'not network'"
+  ];
+
+  pythonImportsCheck = [ "pyogrio" ];
+
+  meta = {
+    description = "Vectorized spatial vector file format I/O using GDAL/OGR";
+    homepage = "https://pyogrio.readthedocs.io/";
+    changelog = "https://github.com/geopandas/pyogrio/blob/${src.rev}/CHANGES.md";
+    license = lib.licenses.mit;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/pyopencl/default.nix b/pkgs/development/python-modules/pyopencl/default.nix
index d0a3ffba5c71c..ffce3a97b0c65 100644
--- a/pkgs/development/python-modules/pyopencl/default.nix
+++ b/pkgs/development/python-modules/pyopencl/default.nix
@@ -3,7 +3,6 @@
   stdenv,
   fetchPypi,
   buildPythonPackage,
-  fetchpatch,
   appdirs,
   cffi,
   decorator,
@@ -15,7 +14,6 @@
   opencl-headers,
   platformdirs,
   pybind11,
-  pytest,
   pytestCheckHook,
   pytools,
   setuptools,
diff --git a/pkgs/development/python-modules/pypck/default.nix b/pkgs/development/python-modules/pypck/default.nix
index e471d902d95b8..d7d4512883989 100644
--- a/pkgs/development/python-modules/pypck/default.nix
+++ b/pkgs/development/python-modules/pypck/default.nix
@@ -13,13 +13,13 @@
 buildPythonPackage rec {
   pname = "pypck";
   version = "0.7.19";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "alengwenus";
-    repo = pname;
+    repo = "pypck";
     rev = "refs/tags/${version}";
     hash = "sha256-D4uUR8A1mrT+mxUswS34hSRczjRkRro/pz9NbMUCPjM=";
   };
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     echo "${version}" > VERSION
   '';
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
   nativeCheckInputs = [
     pytest-asyncio
diff --git a/pkgs/development/python-modules/pypdf/default.nix b/pkgs/development/python-modules/pypdf/default.nix
index c8e89bb74b366..376e655b2608e 100644
--- a/pkgs/development/python-modules/pypdf/default.nix
+++ b/pkgs/development/python-modules/pypdf/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch2,
   pythonOlder,
 
   # build-system
@@ -28,7 +27,7 @@
 
 buildPythonPackage rec {
   pname = "pypdf";
-  version = "4.1.0";
+  version = "4.2.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
@@ -37,18 +36,9 @@ buildPythonPackage rec {
     rev = "refs/tags/${version}";
     # fetch sample files used in tests
     fetchSubmodules = true;
-    hash = "sha256-Z3flDC102FwEaNtef0YAfmAFSxpimQNyxt9tRfpKueg=";
+    hash = "sha256-ksLpxfRxrNVXezF0VjbAqadpF6bv/SAOOnCKabhugo0=";
   };
 
-  patches = [
-    (fetchpatch2 {
-      # add missing test marker on networked test
-      url = "https://github.com/py-pdf/pypdf/commit/f43268734a529d4098e6258bf346148fd24c54f0.patch";
-      includes = [ "tests/test_generic.py" ];
-      hash = "sha256-Ow32UB4crs3OgT+AmA9TNmcO5Y9SoSahybzD3AmWmVk=";
-    })
-  ];
-
   outputs = [
     "out"
     "doc"
@@ -90,18 +80,11 @@ buildPythonPackage rec {
     "'not enable_socket'"
   ];
 
-  disabledTests = [
-    # requires fpdf2 which we don't package yet
-    "test_compression"
-    # infinite recursion when including fpdf2
-    "test_merging_many_temporary_files"
-  ];
-
   meta = with lib; {
     description = "A pure-python PDF library capable of splitting, merging, cropping, and transforming the pages of PDF files";
     homepage = "https://github.com/py-pdf/pypdf";
     changelog = "https://github.com/py-pdf/pypdf/blob/${src.rev}/CHANGELOG.md";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ javaes ];
   };
 }
diff --git a/pkgs/development/python-modules/pyquil/default.nix b/pkgs/development/python-modules/pyquil/default.nix
index dc718777af700..77f2f3df334ed 100644
--- a/pkgs/development/python-modules/pyquil/default.nix
+++ b/pkgs/development/python-modules/pyquil/default.nix
@@ -3,7 +3,6 @@
   buildPythonPackage,
   deprecated,
   fetchFromGitHub,
-  importlib-metadata,
   ipython,
   lark,
   matplotlib-inline,
@@ -12,7 +11,6 @@
   numpy,
   packaging,
   poetry-core,
-  pydantic,
   pytest-asyncio,
   pytest-mock,
   pytestCheckHook,
@@ -27,20 +25,21 @@
   types-deprecated,
   types-python-dateutil,
   types-retry,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "pyquil";
-  version = "4.8.0";
+  version = "4.9.2";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "rigetti";
     repo = "pyquil";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MGI+R3oteqDWsXP+SlAGSRGiQiAj44YG6V7o90A4Krc=";
+    hash = "sha256-TxmQ9QXTTr4Xv37WmgArfK8Q5H1zAu8qx8wRsvK+vVM=";
   };
 
   pythonRelaxDeps = [
@@ -61,7 +60,6 @@ buildPythonPackage rec {
     networkx
     numpy
     packaging
-    pydantic
     qcs-sdk-python
     rpcq
     scipy
@@ -69,7 +67,8 @@ buildPythonPackage rec {
     types-deprecated
     types-python-dateutil
     types-retry
-  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
+    typing-extensions
+  ];
 
   nativeCheckInputs = [
     nest-asyncio
diff --git a/pkgs/development/python-modules/pyregion/default.nix b/pkgs/development/python-modules/pyregion/default.nix
index 50d66c8e7319d..d096a5d0c7b85 100644
--- a/pkgs/development/python-modules/pyregion/default.nix
+++ b/pkgs/development/python-modules/pyregion/default.nix
@@ -3,7 +3,6 @@
   stdenv,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   # needed to build
   cython,
   oldest-supported-numpy,
diff --git a/pkgs/development/python-modules/pyrtlsdr/default.nix b/pkgs/development/python-modules/pyrtlsdr/default.nix
index 4097cfddbdfea..21a3b1b4bd1ab 100644
--- a/pkgs/development/python-modules/pyrtlsdr/default.nix
+++ b/pkgs/development/python-modules/pyrtlsdr/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchPypi,
-  fetchpatch,
   rtl-sdr,
   setuptools,
   pythonOlder,
diff --git a/pkgs/development/python-modules/pyrympro/default.nix b/pkgs/development/python-modules/pyrympro/default.nix
new file mode 100644
index 0000000000000..70ed0c42a0e63
--- /dev/null
+++ b/pkgs/development/python-modules/pyrympro/default.nix
@@ -0,0 +1,39 @@
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pythonOlder,
+}:
+
+buildPythonPackage rec {
+  pname = "pyrympro";
+  version = "0.0.8";
+  pyproject = true;
+
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "OnFreund";
+    repo = "pyrympro";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-mRvKLPgtBgmFDTHqra7GslxsgsJpQ2w/DE0Zgz5jujk=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [ aiohttp ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "pyrympro" ];
+
+  meta = with lib; {
+    description = "Module to interact with Read Your Meter Pro";
+    homepage = "https://github.com/OnFreund/pyrympro";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyside6/default.nix b/pkgs/development/python-modules/pyside6/default.nix
index 5f5285cccfb2a..0144c91bd3e9e 100644
--- a/pkgs/development/python-modules/pyside6/default.nix
+++ b/pkgs/development/python-modules/pyside6/default.nix
@@ -13,6 +13,12 @@ stdenv.mkDerivation rec {
 
   inherit (shiboken6) version src;
 
+  patches = [
+    # stripped down version of https://github.com/pyside/pyside-setup/commit/a0d68856d67ce6e178e3cfc2fccc236707e02fcd
+    # FIXME: remove in next release
+    ./qt-6.7.1.patch
+  ];
+
   sourceRoot = "pyside-setup-everywhere-src-${version}/sources/${pname}";
 
   # FIXME: cmake/Macros/PySideModules.cmake supposes that all Qt frameworks on macOS
diff --git a/pkgs/development/python-modules/pyside6/qt-6.7.1.patch b/pkgs/development/python-modules/pyside6/qt-6.7.1.patch
new file mode 100644
index 0000000000000..8a5ece82d9cea
--- /dev/null
+++ b/pkgs/development/python-modules/pyside6/qt-6.7.1.patch
@@ -0,0 +1,87 @@
+--- a/PySide6/QtMultimedia/CMakeLists.txt
++++ b/PySide6/QtMultimedia/CMakeLists.txt
+@@ -12,6 +12,7 @@ ${QtMultimedia_GEN_DIR}/qaudioinput_wrapper.cpp
+ ${QtMultimedia_GEN_DIR}/qaudiooutput_wrapper.cpp
+ ${QtMultimedia_GEN_DIR}/qaudiosink_wrapper.cpp
+ ${QtMultimedia_GEN_DIR}/qaudiosource_wrapper.cpp
++${QtMultimedia_GEN_DIR}/qaudio_wrapper.cpp
+ ${QtMultimedia_GEN_DIR}/qcameraformat_wrapper.cpp
+ ${QtMultimedia_GEN_DIR}/qcameradevice_wrapper.cpp
+ ${QtMultimedia_GEN_DIR}/qcamera_wrapper.cpp
+@@ -28,7 +29,6 @@ ${QtMultimedia_GEN_DIR}/qmediatimerange_wrapper.cpp
+ ${QtMultimedia_GEN_DIR}/qmediatimerange_interval_wrapper.cpp
+ ${QtMultimedia_GEN_DIR}/qscreencapture_wrapper.cpp
+ ${QtMultimedia_GEN_DIR}/qsoundeffect_wrapper.cpp
+-${QtMultimedia_GEN_DIR}/qtaudio_wrapper.cpp
+ ${QtMultimedia_GEN_DIR}/qtvideo_wrapper.cpp
+ ${QtMultimedia_GEN_DIR}/qvideoframe_wrapper.cpp
+ ${QtMultimedia_GEN_DIR}/qvideoframeformat_wrapper.cpp
+diff --git a/PySide6/QtMultimedia/typesystem_multimedia.xml b/PySide6/QtMultimedia/typesystem_multimedia.xml
+index dd58f41cc..d37eb15fd 100644
+--- a/PySide6/QtMultimedia/typesystem_multimedia.xml
++++ b/PySide6/QtMultimedia/typesystem_multimedia.xml
+@@ -9,7 +9,7 @@
+     <load-typesystem name="QtGui/typesystem_gui.xml" generate="no"/>
+     <load-typesystem name="QtNetwork/typesystem_network.xml" generate="no"/>
+ 
+-    <namespace-type name="QtAudio">
++    <namespace-type name="QAudio">
+         <enum-type name="Error"/>
+         <enum-type name="State"/>
+         <enum-type name="VolumeScale"/>
+@@ -65,9 +65,6 @@
+         </modify-argument>
+       </modify-function>
+       <modify-function signature="stop()" allow-thread="true"/>
+-      <!-- FIXME PYSIDE 7: Remove this (QT6_DECL_NEW_OVERLOAD_TAIL) -->
+-      <declare-function signature="state()const" return-type="QtAudio::State"/>
+-      <declare-function signature="error()const" return-type="QtAudio::Error"/>
+     </object-type>
+ 
+     <object-type name="QAudioSink">
+@@ -82,9 +79,6 @@
+         </modify-argument>
+       </modify-function>
+       <modify-function signature="stop()" allow-thread="true"/>
+-      <!-- FIXME PYSIDE 7: Remove this (QT6_DECL_NEW_OVERLOAD_TAIL) -->
+-      <declare-function signature="state()const" return-type="QtAudio::State"/>
+-      <declare-function signature="error()const" return-type="QtAudio::Error"/>
+     </object-type>
+ 
+     <object-type name="QCamera">
+diff --git a/PySide6/glue/qtmultimedia.cpp b/PySide6/glue/qtmultimedia.cpp
+index d193b1bd3..ac8434b97 100644
+--- a/PySide6/glue/qtmultimedia.cpp
++++ b/PySide6/glue/qtmultimedia.cpp
+@@ -2,6 +2,7 @@
+ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+ 
+ // @snippet qvideoframe-bits
++#include "object.h"
+ %BEGIN_ALLOW_THREADS
+ %RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(%1);
+ %END_ALLOW_THREADS
+@@ -23,5 +24,5 @@ const auto size = %CPPSELF.byteCount();
+ 
+ // @snippet qtaudio-namespace-compatibility-alias
+ Py_INCREF(pyType);
+-PyModule_AddObject(module, "QAudio", reinterpret_cast<PyObject *>(pyType));
++PyModule_AddObject(module, "QtAudio", reinterpret_cast<PyObject *>(pyType));
+ // @snippet qtaudio-namespace-compatibility-alias
+diff --git a/libpyside/signalmanager.cpp b/libpyside/signalmanager.cpp
+index 625e4a405..557f130e0 100644
+--- a/libpyside/signalmanager.cpp
++++ b/libpyside/signalmanager.cpp
+@@ -813,11 +813,6 @@ static PyObject *parseArguments(const QMetaMethod &method, void **args)
+     for (qsizetype i = 0; i < argsSize; ++i) {
+         void *data = args[i+1];
+         auto param = paramTypes.at(i);
+-#if QT_VERSION < QT_VERSION_CHECK(7, 0, 0)
+-        // Qt 6.7 renamed namespace "QAudio"->"QtAudio" except for signals
+-        if (param.startsWith("QAudio::"_ba))
+-            param.insert(1, 't');
+-#endif
+         Shiboken::Conversions::SpecificConverter converter(param.constData());
+         if (!converter) {
+             PyErr_SetString(PyExc_TypeError, msgCannotConvertParameter(method, i).constData());
+
diff --git a/pkgs/development/python-modules/pysigma/default.nix b/pkgs/development/python-modules/pysigma/default.nix
index 5816b43926ac0..daeff84ea7f29 100644
--- a/pkgs/development/python-modules/pysigma/default.nix
+++ b/pkgs/development/python-modules/pysigma/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   jinja2,
   packaging,
   poetry-core,
@@ -16,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "pysigma";
-  version = "0.11.5";
+  version = "0.11.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,7 +24,7 @@ buildPythonPackage rec {
     owner = "SigmaHQ";
     repo = "pySigma";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Mr4etI6VNPWDVZj4A9j3Ka9v+BpFC75MLXppYELIWrg=";
+    hash = "sha256-BPDwGwwstGEBN3FIteyFX05TC/vBhWDiZJJh56Uoclo=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/pystac/default.nix b/pkgs/development/python-modules/pystac/default.nix
new file mode 100644
index 0000000000000..eb7f653db9de0
--- /dev/null
+++ b/pkgs/development/python-modules/pystac/default.nix
@@ -0,0 +1,53 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+
+  html5lib,
+  jsonschema,
+  pytest-cov,
+  pytest-mock,
+  pytest-recording,
+  python-dateutil,
+  requests-mock,
+  setuptools,
+}:
+
+buildPythonPackage rec {
+  pname = "pystac";
+  version = "1.10.1";
+  pyproject = true;
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "stac-utils";
+    repo = "pystac";
+    rev = "v${version}";
+    hash = "sha256-zJGDhKRX50Muo1YDEzfwypMLISnYBYKkPvUULYkUf68=";
+  };
+
+  build-system = [ setuptools ];
+
+  propagatedBuildInputs = [ python-dateutil ];
+
+  nativeCheckInputs = [
+    html5lib
+    jsonschema
+    pytestCheckHook
+    pytest-cov
+    pytest-mock
+    pytest-recording
+    requests-mock
+  ];
+
+  pythonImportsCheck = [ "pystac" ];
+
+  meta = {
+    description = "Python library for working with any SpatioTemporal Asset Catalog (STAC)";
+    homepage = "https://github.com/stac-utils/pystac";
+    license = lib.licenses.asl20;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/pystray/default.nix b/pkgs/development/python-modules/pystray/default.nix
index 07cd05cad5277..a448933fcc78f 100644
--- a/pkgs/development/python-modules/pystray/default.nix
+++ b/pkgs/development/python-modules/pystray/default.nix
@@ -2,6 +2,7 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
+  fetchpatch,
   pillow,
   xlib,
   six,
@@ -15,19 +16,28 @@
 
 buildPythonPackage rec {
   pname = "pystray";
-  version = "0.19.2";
-  format = "pyproject";
+  version = "0.19.5";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "moses-palmer";
     repo = "pystray";
     rev = "v${version}";
-    hash = "sha256-8B178MSe4ujlnGBmQhIu+BoAh1doP9V5cL0ermLQTvs=";
+    hash = "sha256-CZhbaXwKFrRBEomzfFPMQdMkTOl5lbgI64etfDRiRu4=";
   };
 
+  patches = [
+    # fix test_menu_construct_from_none test case
+    # https://github.com/moses-palmer/pystray/pull/133
+    (fetchpatch {
+      url = "https://github.com/moses-palmer/pystray/commit/813007e3034d950d93a2f3e5b029611c3c9c98ad.patch";
+      hash = "sha256-m2LfZcWXSfgxb73dac21VDdMDVz3evzcCz5QjdnfM1U=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "'sphinx >=1.3.1'" ""
+      --replace-fail "'sphinx >=1.3.1'" ""
   '';
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyswitchbot/default.nix b/pkgs/development/python-modules/pyswitchbot/default.nix
index 335f0b8239a7e..ce0b59dcfa862 100644
--- a/pkgs/development/python-modules/pyswitchbot/default.nix
+++ b/pkgs/development/python-modules/pyswitchbot/default.nix
@@ -15,21 +15,21 @@
 
 buildPythonPackage rec {
   pname = "pyswitchbot";
-  version = "0.45.0";
+  version = "0.46.1";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "Danielhiversen";
     repo = "pySwitchbot";
     rev = "refs/tags/${version}";
-    hash = "sha256-lQVUHZvAZ4J0DLlUl30dSz2wwXKb9MK5prkXvub0yNI=";
+    hash = "sha256-fiWjChr7NATkO6jNBlt5kqxaLSSZWcdd7TjQwMP6klY=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     bleak
     bleak-retry-connector
     boto3
diff --git a/pkgs/development/python-modules/pytest-astropy-header/default.nix b/pkgs/development/python-modules/pytest-astropy-header/default.nix
index edaa756b78705..8b87d4422b579 100644
--- a/pkgs/development/python-modules/pytest-astropy-header/default.nix
+++ b/pkgs/development/python-modules/pytest-astropy-header/default.nix
@@ -2,9 +2,7 @@
   lib,
   buildPythonPackage,
   fetchPypi,
-  fetchpatch,
   pytest,
-  pytest-cov,
   pytestCheckHook,
   numpy,
   setuptools-scm,
diff --git a/pkgs/development/python-modules/pytest-httpbin/default.nix b/pkgs/development/python-modules/pytest-httpbin/default.nix
index 7674158066022..8d7f98c78ffe8 100644
--- a/pkgs/development/python-modules/pytest-httpbin/default.nix
+++ b/pkgs/development/python-modules/pytest-httpbin/default.nix
@@ -7,13 +7,13 @@
   pytestCheckHook,
   pythonOlder,
   requests,
-  six,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pytest-httpbin";
   version = "2.0.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -24,12 +24,11 @@ buildPythonPackage rec {
     hash = "sha256-tq9nz2na94HkLACt7xB1MUanh9/JOoe2vyEm5sAq0/4=";
   };
 
+  build-system = [ setuptools ];
+
   buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    httpbin
-    six
-  ];
+  propagatedBuildInputs = [ httpbin ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -39,6 +38,8 @@ buildPythonPackage rec {
   disabledTests = [
     # incompatible with flask 2.3
     "test_redirect_location_is_https_for_secure_server"
+    # Timeout on Hydra
+    "test_dont_crash_on_handshake_timeout"
   ];
 
   __darwinAllowLocalNetworking = true;
@@ -48,6 +49,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Test your HTTP library against a local copy of httpbin.org";
     homepage = "https://github.com/kevin1024/pytest-httpbin";
+    changelog = "https://github.com/kevin1024/pytest-httpbin/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/pytest-test-utils/default.nix b/pkgs/development/python-modules/pytest-test-utils/default.nix
index 6c50a815fa288..3d2c0ecc35876 100644
--- a/pkgs/development/python-modules/pytest-test-utils/default.nix
+++ b/pkgs/development/python-modules/pytest-test-utils/default.nix
@@ -4,7 +4,6 @@
   fetchFromGitHub,
   setuptools,
   setuptools-scm,
-  wheel,
   pytestCheckHook,
   pytest,
   pythonOlder,
@@ -12,22 +11,21 @@
 
 buildPythonPackage rec {
   pname = "pytest-test-utils";
-  version = "0.0.8";
-  format = "pyproject";
+  version = "0.1.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "iterative";
-    repo = pname;
+    repo = "pytest-test-utils";
     rev = "refs/tags/${version}";
-    hash = "sha256-5gB+hnJR2+NQd/n7RGrX1bzfKt8Np7IbWw61SZgNVJY=";
+    hash = "sha256-19oNAFff++7ntMdlnMXYc2w5I+EzGwWJh+rB1IjNZGk=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
-    wheel
   ];
 
   buildInputs = [ pytest ];
@@ -39,6 +37,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Pytest utilities for tests";
     homepage = "https://github.com/iterative/pytest-test-utils";
+    changelog = "https://github.com/iterative/pytest-test-utils/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/pytest-testinfra/default.nix b/pkgs/development/python-modules/pytest-testinfra/default.nix
index d9743ad803e69..888233166693c 100644
--- a/pkgs/development/python-modules/pytest-testinfra/default.nix
+++ b/pkgs/development/python-modules/pytest-testinfra/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "pytest-testinfra";
-  version = "10.1.0";
+  version = "10.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-93Qzm5R3Ws3zqMSjeTqOrS6N/HD/NLd4vhWquhQPoZ4=";
+    hash = "sha256-qHbxRToBtY2U2dk23VA0TCwBrHiAorQdFb3yM67Zzx8=";
   };
 
   build-system = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/python-daemon/default.nix b/pkgs/development/python-modules/python-daemon/default.nix
index 802abf87d0867..bb6cf5d94ea1f 100644
--- a/pkgs/development/python-modules/python-daemon/default.nix
+++ b/pkgs/development/python-modules/python-daemon/default.nix
@@ -8,9 +8,7 @@
   testscenarios,
   testtools,
   twine,
-  python,
   pythonOlder,
-  fetchpatch,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/python-fontconfig/default.nix b/pkgs/development/python-modules/python-fontconfig/default.nix
index 2f90ca56dac6a..314f733ca1706 100644
--- a/pkgs/development/python-modules/python-fontconfig/default.nix
+++ b/pkgs/development/python-modules/python-fontconfig/default.nix
@@ -1,12 +1,13 @@
 {
-  lib,
   buildPythonPackage,
+  cython,
   fetchPypi,
+  fetchpatch,
   fontconfig,
-  python,
-  cython,
   freefont_ttf,
+  lib,
   makeFontsConf,
+  python,
 }:
 
 let
@@ -25,6 +26,16 @@ buildPythonPackage rec {
   buildInputs = [ fontconfig ];
   nativeBuildInputs = [ cython ];
 
+  patches = [
+    # distutils has been removed since python 3.12
+    # See https://github.com/vayn/python-fontconfig/pull/10
+    (fetchpatch {
+      name = "no-distutils.patch";
+      url = "https://github.com/vayn/python-fontconfig/commit/15e1a72c90e93a665569e0ba771ae53c7c8020c8.patch";
+      hash = "sha256-2mAemltWh3+LV4FDOg6uSD09zok3Eyd+v1WJJdouOV8=";
+    })
+  ];
+
   preBuild = ''
     ${python.pythonOnBuildForHost.interpreter} setup.py build_ext -i
   '';
diff --git a/pkgs/development/python-modules/python-ironicclient/default.nix b/pkgs/development/python-modules/python-ironicclient/default.nix
index 703be62e30517..5fc6e9365ad7b 100644
--- a/pkgs/development/python-modules/python-ironicclient/default.nix
+++ b/pkgs/development/python-modules/python-ironicclient/default.nix
@@ -2,8 +2,6 @@
   lib,
   buildPythonPackage,
   fetchPypi,
-  pbr,
-  appdirs,
   cliff,
   dogpile-cache,
   jsonschema,
@@ -11,12 +9,14 @@
   openstacksdk,
   osc-lib,
   oslo-utils,
+  oslotest,
+  pbr,
+  platformdirs,
   pyyaml,
   requests,
-  stevedore,
-  stestr,
   requests-mock,
-  oslotest,
+  stestr,
+  stevedore,
 }:
 
 buildPythonPackage rec {
@@ -30,8 +30,6 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    pbr
-    appdirs
     cliff
     dogpile-cache
     jsonschema
@@ -39,6 +37,8 @@ buildPythonPackage rec {
     openstacksdk
     osc-lib
     oslo-utils
+    pbr
+    platformdirs
     pyyaml
     requests
     stevedore
diff --git a/pkgs/development/python-modules/python-mapnik/default.nix b/pkgs/development/python-modules/python-mapnik/default.nix
index a68a618ccd463..c93adc9f09db8 100644
--- a/pkgs/development/python-modules/python-mapnik/default.nix
+++ b/pkgs/development/python-modules/python-mapnik/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   substituteAll,
   isPyPy,
   python,
diff --git a/pkgs/development/python-modules/python-swiftclient/default.nix b/pkgs/development/python-modules/python-swiftclient/default.nix
index 481b70972d2cd..9f4fca6cc4382 100644
--- a/pkgs/development/python-modules/python-swiftclient/default.nix
+++ b/pkgs/development/python-modules/python-swiftclient/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "python-swiftclient";
-  version = "4.5.0";
+  version = "4.6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-8qCIflo5KXq8BDJRrj+QiRTOFEei+NLcpWcWGGCBQr0=";
+    hash = "sha256-1NGFQEE4k/wWrYd5HXQPgj92NDXoIS5o61PWDaJjgjM=";
   };
 
   # remove duplicate script that will be created by setuptools from the
diff --git a/pkgs/development/python-modules/python-twitter/default.nix b/pkgs/development/python-modules/python-twitter/default.nix
index b085ed0caee8e..c61d726b71616 100644
--- a/pkgs/development/python-modules/python-twitter/default.nix
+++ b/pkgs/development/python-modules/python-twitter/default.nix
@@ -1,22 +1,25 @@
 {
-  lib,
   buildPythonPackage,
   fetchFromGitHub,
   fetchpatch,
   filetype,
   future,
   hypothesis,
+  lib,
   pytestCheckHook,
   pythonOlder,
   requests,
   requests-oauthlib,
   responses,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "python-twitter";
   version = "3.5";
-  format = "setuptools";
+
+  pyproject = true;
+  build-system = [ setuptools ];
 
   disabled = pythonOlder "3.7";
 
@@ -35,7 +38,7 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     filetype
     future
     requests
@@ -53,6 +56,11 @@ buildPythonPackage rec {
       --replace "'pytest-runner'" ""
   '';
 
+  disabledTests = [
+    # AttributeError: 'FileCacheTest' object has no attribute 'assert_'
+    "test_filecache"
+  ];
+
   pythonImportsCheck = [ "twitter" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/python-u2flib-server/default.nix b/pkgs/development/python-modules/python-u2flib-server/default.nix
index d64370a3e095e..e1b44777dfeea 100644
--- a/pkgs/development/python-modules/python-u2flib-server/default.nix
+++ b/pkgs/development/python-modules/python-u2flib-server/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
 
   # propagates
   cryptography,
diff --git a/pkgs/development/python-modules/pythran/default.nix b/pkgs/development/python-modules/pythran/default.nix
index dbf1f0f50527f..e99283bc49ae7 100644
--- a/pkgs/development/python-modules/pythran/default.nix
+++ b/pkgs/development/python-modules/pythran/default.nix
@@ -3,7 +3,6 @@
   python,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   isPy3k,
   substituteAll,
 
diff --git a/pkgs/development/python-modules/pytransportnswv2/default.nix b/pkgs/development/python-modules/pytransportnswv2/default.nix
index 2f4bc7370976c..6b12a533ca336 100644
--- a/pkgs/development/python-modules/pytransportnswv2/default.nix
+++ b/pkgs/development/python-modules/pytransportnswv2/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "pytransportnswv2";
-  version = "0.3.0";
+  version = "0.3.4";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-9bpIu+Uc6eFSEGeEfpVwfrhvLekR8qOd571qMnLTpVg=";
+    hash = "sha256-Vj16Mmi3cH0V7d+GMQUTr1mmOyXcnZ3BarrE8fHWSns=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/pytubefix/default.nix b/pkgs/development/python-modules/pytubefix/default.nix
new file mode 100644
index 0000000000000..01522c0f3c1fb
--- /dev/null
+++ b/pkgs/development/python-modules/pytubefix/default.nix
@@ -0,0 +1,28 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+}:
+
+buildPythonPackage rec {
+  pname = "pytubefix";
+  version = "5.6.3";
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-qYNIQhwSZ3ZG3WMY6qCul1OEno1PWgMlfcFSxN3c6aw=";
+  };
+
+  nativeBuildInputs = [ setuptools-scm ];
+
+  pythonImportsCheck = [ "pytubefix" ];
+
+  meta = {
+    homepage = "https://github.com/JuanBindez/pytubefix";
+    description = "A pytube fork with additional features and fixes";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ roshaen ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyvis/default.nix b/pkgs/development/python-modules/pyvis/default.nix
index d7bc582a551c2..ae152c2286aca 100644
--- a/pkgs/development/python-modules/pyvis/default.nix
+++ b/pkgs/development/python-modules/pyvis/default.nix
@@ -1,7 +1,6 @@
 {
   lib,
   fetchFromGitHub,
-  fetchpatch,
   buildPythonPackage,
   setuptools,
   networkx,
diff --git a/pkgs/development/python-modules/pyvo/default.nix b/pkgs/development/python-modules/pyvo/default.nix
index 382877c477d8b..dd6e670e78237 100644
--- a/pkgs/development/python-modules/pyvo/default.nix
+++ b/pkgs/development/python-modules/pyvo/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchPypi,
-  fetchpatch,
   astropy,
   pillow,
   pythonOlder,
diff --git a/pkgs/development/python-modules/pywlroots/default.nix b/pkgs/development/python-modules/pywlroots/default.nix
index 4d9522b98bb1e..2e2d887b4c792 100644
--- a/pkgs/development/python-modules/pywlroots/default.nix
+++ b/pkgs/development/python-modules/pywlroots/default.nix
@@ -21,14 +21,14 @@
 
 buildPythonPackage rec {
   pname = "pywlroots";
-  version = "0.16.8";
+  version = "0.17.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-jAkDZKAm75MlAMNuX+21ZV6kHb53zgIOJctJC2bXH1k=";
+    hash = "sha256-cssr4UBIwMvInM8bV4YwE6mXf9USSMMAzMcgAefEPbs=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/python-modules/pyxnat/default.nix b/pkgs/development/python-modules/pyxnat/default.nix
index b905ba64bead3..b6f0944cfa5ac 100644
--- a/pkgs/development/python-modules/pyxnat/default.nix
+++ b/pkgs/development/python-modules/pyxnat/default.nix
@@ -9,13 +9,14 @@
   networkx,
   pandas,
   requests,
-  six,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pyxnat";
-  version = "1.6";
-  format = "setuptools";
+  version = "1.6.2";
+  pyproject = true;
+
   disabled = pythonOlder "3.8";
 
   # PyPI dist missing test configuration files:
@@ -23,21 +24,19 @@ buildPythonPackage rec {
     owner = "pyxnat";
     repo = "pyxnat";
     rev = "refs/tags/${version}";
-    hash = "sha256-QejYisvQFN7CsDOx9wAgTHmRZcSEqgIr8twG4XucfZ4=";
+    hash = "sha256-21nTIYbIYlFWNJTxqsuijamqRunpdc7/VBawvrWadWI=";
   };
 
+  build-system = [ setuptools ];
+
   propagatedBuildInputs = [
     lxml
     requests
-    six
   ];
 
-  # future is not used, and pathlib is installed part of python38+
-  # w/o an external package
+  # pathlib is installed part of python38+ w/o an external package
   prePatch = ''
-    substituteInPlace setup.py \
-      --replace "pathlib>=1.0" "" \
-      --replace "future>=0.16" ""
+    substituteInPlace setup.py --replace-fail "pathlib>=1.0" ""
     sed -i '/--cov/d' setup.cfg
   '';
 
@@ -52,15 +51,24 @@ buildPythonPackage rec {
   '';
   pytestFlagsArray = [ "pyxnat" ];
   disabledTestPaths = [
-    # try to access network even though PYXNAT_SKIP_NETWORK_TESTS is set:
+    # require a running local XNAT instance e.g. in a docker container:
+    "pyxnat/tests/attributes_test.py"
+    "pyxnat/tests/custom_variables_test.py"
+    "pyxnat/tests/interfaces_test.py"
     "pyxnat/tests/pipelines_test.py"
+    "pyxnat/tests/provenance_test.py"
+    "pyxnat/tests/prearchive_test.py"
+    "pyxnat/tests/repr_test.py"
+    "pyxnat/tests/resources_test.py"
     "pyxnat/tests/search_test.py"
+    "pyxnat/tests/sessionmirror_test.py"
+    "pyxnat/tests/test_resource_functions.py"
     "pyxnat/tests/user_and_project_management_test.py"
   ];
   disabledTests = [
     # try to access network even though PYXNAT_SKIP_NETWORK_TESTS is set:
-    "test_ashs_volumes"
     "test_inspector_structure"
+    "test_project_manager"
   ];
 
   pythonImportsCheck = [ "pyxnat" ];
diff --git a/pkgs/development/python-modules/qcs-api-client/default.nix b/pkgs/development/python-modules/qcs-api-client/default.nix
index c884dfe01e628..0847a10ce625c 100644
--- a/pkgs/development/python-modules/qcs-api-client/default.nix
+++ b/pkgs/development/python-modules/qcs-api-client/default.nix
@@ -24,16 +24,16 @@
 
 buildPythonPackage rec {
   pname = "qcs-api-client";
-  version = "0.25.0";
+  version = "0.25.1";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "rigetti";
     repo = "qcs-api-client-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-dKjiicrPLRlaIwHwSqpY5dBMTzrZD4xfw3h54IN3rh0=";
+    hash = "sha256-GtHAV4BvBdexjJxlT1jcNklSogYor2aWoQI2QNs/dOQ=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/qcs-sdk-python/Cargo.lock b/pkgs/development/python-modules/qcs-sdk-python/Cargo.lock
index 0c1265d5ac40c..fc65e87b236e6 100644
--- a/pkgs/development/python-modules/qcs-sdk-python/Cargo.lock
+++ b/pkgs/development/python-modules/qcs-sdk-python/Cargo.lock
@@ -912,7 +912,7 @@ dependencies = [
  "futures-sink",
  "futures-util",
  "http",
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
  "slab",
  "tokio",
  "tokio-util",
@@ -1180,9 +1180,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.2.5"
+version = "2.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
 dependencies = [
  "equivalent",
  "hashbrown 0.14.3",
@@ -1901,7 +1901,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
 dependencies = [
  "fixedbitset",
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
 ]
 
 [[package]]
@@ -2124,7 +2124,7 @@ dependencies = [
 
 [[package]]
 name = "qcs"
-version = "0.21.4"
+version = "0.21.7"
 dependencies = [
  "assert2",
  "async-trait",
@@ -2136,7 +2136,7 @@ dependencies = [
  "float-cmp",
  "futures",
  "hex",
- "indexmap 1.9.3",
+ "indexmap 2.2.6",
  "insta",
  "itertools 0.11.0",
  "lazy_static",
@@ -2260,7 +2260,7 @@ dependencies = [
 
 [[package]]
 name = "qcs-sdk-python"
-version = "0.17.4"
+version = "0.17.7"
 dependencies = [
  "async-trait",
  "numpy",
@@ -2290,11 +2290,11 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
 
 [[package]]
 name = "quil-rs"
-version = "0.23.0"
-source = "git+https://github.com/rigetti/quil-rs?tag=quil-py/v0.7.0#3bb618124c2165b7329c58c0f217d8ee9d816e67"
+version = "0.25.1"
+source = "git+https://github.com/rigetti/quil-rs?tag=quil-py/v0.9.1#4179fb03feff6b83edfb7a0448b0b3967ed28212"
 dependencies = [
  "approx",
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
  "itertools 0.12.1",
  "lexical",
  "ndarray",
@@ -3381,7 +3381,7 @@ version = "0.19.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
  "serde",
  "serde_spanned",
  "toml_datetime",
@@ -3394,7 +3394,7 @@ version = "0.22.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c12219811e0c1ba077867254e5ad62ee2c9c190b0d957110750ac0cda1ae96cd"
 dependencies = [
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
  "serde",
  "serde_spanned",
  "toml_datetime",
diff --git a/pkgs/development/python-modules/qcs-sdk-python/default.nix b/pkgs/development/python-modules/qcs-sdk-python/default.nix
index d63eb97b9faa5..b47603e24a55e 100644
--- a/pkgs/development/python-modules/qcs-sdk-python/default.nix
+++ b/pkgs/development/python-modules/qcs-sdk-python/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "qcs-sdk-python";
-  version = "0.17.4";
+  version = "0.17.7";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,13 +24,13 @@ buildPythonPackage rec {
     owner = "rigetti";
     repo = "qcs-sdk-rust";
     rev = "python/v${version}";
-    hash = "sha256-Z/NK+xnugFieJqAbvGaVvxUaz9RC1vpWb4ydZTVbZeU=";
+    hash = "sha256-6Rh5gQH+ObpWGR9rYJfkXnGfG1GjKLn+ckiR7RhKzoE=";
   };
 
   cargoDeps = rustPlatform.importCargoLock {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "quil-rs-0.23.0" = "sha256-l9wj1j7PJ5L497dPlkEpJ4ctAfjUIada5Vbn2h5ioVE=";
+      "quil-rs-0.25.1" = "sha256-zC4DEjCN6y9XeZlzmXHSTbVTpFQ4Srozix89IHDhHXc=";
     };
   };
 
diff --git a/pkgs/development/python-modules/qgrid/default.nix b/pkgs/development/python-modules/qgrid/default.nix
index 5fa79708ffa73..d385c2943704c 100644
--- a/pkgs/development/python-modules/qgrid/default.nix
+++ b/pkgs/development/python-modules/qgrid/default.nix
@@ -4,6 +4,7 @@
   fetchpatch,
   fetchPypi,
   ipywidgets,
+  looseversion,
   notebook,
   pandas,
   pytestCheckHook,
@@ -12,7 +13,7 @@
 buildPythonPackage rec {
   pname = "qgrid";
   version = "1.3.1";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
@@ -28,8 +29,14 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [
+  postPatch = ''
+    substituteInPlace qgrid/grid.py \
+      --replace-fail "from distutils.version import LooseVersion" "from looseversion import LooseVersion"
+  '';
+
+  dependencies = [
     ipywidgets
+    looseversion
     notebook
     pandas
   ];
@@ -48,10 +55,10 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "qgrid" ];
 
-  meta = with lib; {
+  meta = {
     description = "An interactive grid for sorting, filtering, and editing DataFrames in Jupyter notebooks";
     homepage = "https://github.com/quantopian/qgrid";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ GaetanLepage ];
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
   };
 }
diff --git a/pkgs/development/python-modules/qiskit-aer/default.nix b/pkgs/development/python-modules/qiskit-aer/default.nix
index 7106f74578a36..18bd47bf5bf70 100644
--- a/pkgs/development/python-modules/qiskit-aer/default.nix
+++ b/pkgs/development/python-modules/qiskit-aer/default.nix
@@ -1,10 +1,8 @@
 {
-  stdenv,
   lib,
   pythonOlder,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   # C Inputs
   blas,
   catch2,
@@ -26,7 +24,6 @@
   fixtures,
   pytest-timeout,
   qiskit-terra,
-  setuptools,
   testtools,
 }:
 
diff --git a/pkgs/development/python-modules/qtile-extras/default.nix b/pkgs/development/python-modules/qtile-extras/default.nix
index 84cc437e48ca4..28da64efdc1d4 100644
--- a/pkgs/development/python-modules/qtile-extras/default.nix
+++ b/pkgs/development/python-modules/qtile-extras/default.nix
@@ -11,6 +11,7 @@
   pytest-asyncio,
   pytest-lazy-fixture,
   pytestCheckHook,
+  python-dateutil,
   qtile,
   requests,
   setuptools-scm,
@@ -19,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "qtile-extras";
-  version = "0.25.0";
+  version = "0.26.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "elParaguayo";
     repo = "qtile-extras";
     rev = "refs/tags/v${version}";
-    hash = "sha256-OYzSKOVg4D5gKxaEreclYq3D16dl8ddLipSdifokDNY=";
+    hash = "sha256-ywqZggn1k7zezk5CS1y6EWZfLoIWMHmGO8mvqxBaB9g=";
   };
 
   build-system = [ setuptools-scm ];
@@ -41,6 +42,7 @@ buildPythonPackage rec {
     pytest-asyncio
     pytest-lazy-fixture
     pytestCheckHook
+    python-dateutil
     qtile
     requests
     xorgserver
diff --git a/pkgs/development/python-modules/qtile/default.nix b/pkgs/development/python-modules/qtile/default.nix
index 0935969e4db4e..c8e8953bcd4ec 100644
--- a/pkgs/development/python-modules/qtile/default.nix
+++ b/pkgs/development/python-modules/qtile/default.nix
@@ -4,9 +4,9 @@
   fetchFromGitHub,
   cairocffi,
   dbus-next,
-  dbus-python,
   glib,
   iwlib,
+  libcst,
   libdrm,
   libinput,
   libxkbcommon,
@@ -17,7 +17,7 @@
   psutil,
   pulsectl-asyncio,
   pygobject3,
-  python-dateutil,
+  pytz,
   pywayland,
   pywlroots,
   pyxdg,
@@ -34,14 +34,14 @@
 
 buildPythonPackage rec {
   pname = "qtile";
-  version = "0.25.0";
+  version = "0.26.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "qtile";
     repo = "qtile";
     rev = "refs/tags/v${version}";
-    hash = "sha256-j5hpXfUSDUT9nBr6CafIzqdTYQxSWok+ZlQA7bGdVvk=";
+    hash = "sha256-htgrfGBGRlJSm88mmwW92ikXR/M1lr0OTom16TIvdpo=";
   };
 
   patches = [
@@ -50,14 +50,14 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace libqtile/pangocffi.py \
-      --replace libgobject-2.0.so.0 ${glib.out}/lib/libgobject-2.0.so.0 \
-      --replace libpangocairo-1.0.so.0 ${pango.out}/lib/libpangocairo-1.0.so.0 \
-      --replace libpango-1.0.so.0 ${pango.out}/lib/libpango-1.0.so.0
+      --replace-fail libgobject-2.0.so.0 ${glib.out}/lib/libgobject-2.0.so.0 \
+      --replace-fail libpangocairo-1.0.so.0 ${pango.out}/lib/libpangocairo-1.0.so.0 \
+      --replace-fail libpango-1.0.so.0 ${pango.out}/lib/libpango-1.0.so.0
     substituteInPlace libqtile/backend/x11/xcursors.py \
-      --replace libxcb-cursor.so.0 ${xcbutilcursor.out}/lib/libxcb-cursor.so.0
+      --replace-fail libxcb-cursor.so.0 ${xcbutilcursor.out}/lib/libxcb-cursor.so.0
     substituteInPlace libqtile/backend/wayland/cffi/build.py \
-        --replace /usr/include/pixman-1 ${lib.getDev pixman}/include \
-        --replace /usr/include/libdrm ${lib.getDev libdrm}/include/libdrm
+        --replace-fail /usr/include/pixman-1 ${lib.getDev pixman}/include \
+        --replace-fail /usr/include/libdrm ${lib.getDev libdrm}/include/libdrm
   '';
 
   build-system = [
@@ -69,13 +69,13 @@ buildPythonPackage rec {
   dependencies = [
     (cairocffi.override { withXcffib = true; })
     dbus-next
-    dbus-python
     iwlib
+    libcst
     mpd2
     psutil
     pulsectl-asyncio
     pygobject3
-    python-dateutil
+    pytz
     pywayland
     pywlroots
     pyxdg
diff --git a/pkgs/development/python-modules/quantile-forest/default.nix b/pkgs/development/python-modules/quantile-forest/default.nix
index 0b6d5df933b17..e38a6175c09d5 100644
--- a/pkgs/development/python-modules/quantile-forest/default.nix
+++ b/pkgs/development/python-modules/quantile-forest/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "quantile-forest";
-  version = "1.3.5";
+  version = "1.3.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "zillow";
     repo = "quantile-forest";
     rev = "refs/tags/v${version}";
-    hash = "sha256-0zlj9nks5KsgsLSflRW+4uiYlYVQsF0HMkZ3zG3if2E=";
+    hash = "sha256-cYi4idA6gcUd/aVMlIwlCB/jdKpxZtc6xQEhxNSY08Y=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/quil/default.nix b/pkgs/development/python-modules/quil/default.nix
index 1d77ff861e48a..c1530c320617c 100644
--- a/pkgs/development/python-modules/quil/default.nix
+++ b/pkgs/development/python-modules/quil/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "quil";
-  version = "0.7.1";
+  version = "0.9.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,21 +22,17 @@ buildPythonPackage rec {
     owner = "rigetti";
     repo = "quil-rs";
     rev = "quil-py/v${version}";
-    hash = "sha256-GFePbCJnVbzL4cpQ7fy1tk2l7NhAyTVW63lVYTv0/Oo=";
+    hash = "sha256-c9nFF74Mr6S2b7NthRVUnarwxFZ9s5RUaoxYruE6QvI=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     name = "${pname}-${version}";
     inherit src;
-    hash = "sha256-catUGCFbkvov1z52f6eyxogflu61VcjIItgEVEWzkpY=";
+    hash = "sha256-FNkXdBLfKnrD9aUe25uJHi+TtApgFSCryYCY1r8ebho=";
   };
 
   buildAndTestSubdir = "quil-py";
 
-  preConfigure = ''
-    cargo metadata --offline
-  '';
-
   build-system = [
     rustPlatform.cargoSetupHook
     rustPlatform.maturinBuildHook
diff --git a/pkgs/development/python-modules/raylib-python-cffi/default.nix b/pkgs/development/python-modules/raylib-python-cffi/default.nix
new file mode 100644
index 0000000000000..f1d46c1822d14
--- /dev/null
+++ b/pkgs/development/python-modules/raylib-python-cffi/default.nix
@@ -0,0 +1,57 @@
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  cffi,
+  pkg-config,
+  glfw,
+  libffi,
+  raylib,
+  physac,
+  raygui,
+  lib
+}:
+
+buildPythonPackage rec {
+  pname = "raylib-python-cffi";
+  version = "5.0.0.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "electronstudio";
+    repo = "raylib-python-cffi";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-DlnZRJZ0ZnkLii09grA/lGsJHPUYrbaJ55BVWJ8JzfM=";
+  };
+
+  build-system = [ setuptools ];
+  dependencies = [ cffi ];
+
+  patches = [
+    # This patch fixes to the builder script function to call pkg-config
+    # using the library name rather than searching only through raylib
+    ./fix_pyray_builder.patch
+  ];
+
+  nativeBuildInputs = [ pkg-config ];
+
+  # tests require a graphic environment
+  doCheck = false;
+
+  pythonImportsCheck = [ "pyray" ];
+
+  buildInputs = [
+    glfw
+    libffi
+    raylib
+    physac
+    raygui
+  ];
+
+  meta = {
+    description = "Python CFFI bindings for Raylib";
+    homepage = "https://electronstudio.github.io/raylib-python-cffi";
+    license = lib.licenses.epl20;
+    maintainers = with lib.maintainers; [ sigmanificient ];
+  };
+}
diff --git a/pkgs/development/python-modules/raylib-python-cffi/fix_pyray_builder.patch b/pkgs/development/python-modules/raylib-python-cffi/fix_pyray_builder.patch
new file mode 100644
index 0000000000000..0d167e2b0795a
--- /dev/null
+++ b/pkgs/development/python-modules/raylib-python-cffi/fix_pyray_builder.patch
@@ -0,0 +1,61 @@
+--- a/raylib/build.py	2024-05-18 18:36:26.911488056 +0200
++++ b/raylib/build.py	2024-05-18 18:40:04.770587090 +0200
+@@ -32,8 +32,8 @@
+     return subprocess.run(['pkg-config', '--exists', 'raylib'], text=True, stdout=subprocess.PIPE).returncode == 0
+ 
+ 
+-def get_the_include_path():
+-    return subprocess.run(['pkg-config', '--variable=includedir', 'raylib'], text=True,
++def get_the_include_path(libname):
++    return subprocess.run(['pkg-config', '--variable=includedir', libname], text=True,
+                           stdout=subprocess.PIPE).stdout.strip()
+ 
+ 
+@@ -106,9 +106,9 @@
+     if not check_raylib_installed():
+         raise Exception("ERROR: raylib not found by pkg-config.  Please install pkg-config and Raylib.")
+ 
+-    raylib_h = get_the_include_path() + "/raylib.h"
+-    rlgl_h = get_the_include_path() + "/rlgl.h"
+-    raymath_h = get_the_include_path() + "/raymath.h"
++    raylib_h = get_the_include_path("raylib") + "/raylib.h"
++    rlgl_h = get_the_include_path("raylib") + "/rlgl.h"
++    raymath_h = get_the_include_path("raylib") + "/raymath.h"
+ 
+     if not os.path.isfile(raylib_h):
+         raise Exception("ERROR: " + raylib_h + " not found.  Please install Raylib.")
+@@ -125,13 +125,13 @@
+     #include "raymath.h"
+     """
+ 
+-    glfw3_h = get_the_include_path() + "/GLFW/glfw3.h"
++    glfw3_h = get_the_include_path("glfw3") + "/GLFW/glfw3.h"
+     if check_header_exists(glfw3_h):
+         ffi_includes += """
+         #include "GLFW/glfw3.h"
+         """
+ 
+-    raygui_h = get_the_include_path() + "/raygui.h"
++    raygui_h = get_the_include_path("raygui") + "/raygui.h"
+     if check_header_exists(raygui_h):
+         ffi_includes += """
+         #define RAYGUI_IMPLEMENTATION
+@@ -139,7 +139,7 @@
+         #include "raygui.h"
+         """
+ 
+-    physac_h = get_the_include_path() + "/physac.h"
++    physac_h = get_the_include_path("physac") + "/physac.h"
+     if check_header_exists(physac_h):
+         ffi_includes += """
+         #define PHYSAC_IMPLEMENTATION
+@@ -172,7 +172,7 @@
+ 
+     ffibuilder.set_source("raylib._raylib_cffi",
+                           ffi_includes,
+-                          include_dirs=[get_the_include_path()],
++                          include_dirs=[get_the_include_path("libffi")],
+                           extra_link_args=extra_link_args,
+                           extra_compile_args=extra_compile_args,
+                           libraries=libraries)
+
diff --git a/pkgs/development/python-modules/requests-file/default.nix b/pkgs/development/python-modules/requests-file/default.nix
index 2c57e46c5696e..d76cdfbdaefb0 100644
--- a/pkgs/development/python-modules/requests-file/default.nix
+++ b/pkgs/development/python-modules/requests-file/default.nix
@@ -1,21 +1,26 @@
 {
   lib,
-  fetchPypi,
+  fetchFromGitHub,
   buildPythonPackage,
   setuptools,
   setuptools-scm,
   pytestCheckHook,
+  pythonOlder,
   requests,
 }:
 
 buildPythonPackage rec {
   pname = "requests-file";
-  version = "2.0.0";
+  version = "2.1.0";
   pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-IMWTFinFWP2lZsrMEM/izVAkM+Yo9WjDTIDZagzJWXI=";
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "dashea";
+    repo = "requests-file";
+    rev = "refs/tags/${version}";
+    hash = "sha256-JtdtE44yiw2mLMZ0bJv0QiGWb7f8ywPLF7+BUufh/g4=";
   };
 
   build-system = [
@@ -23,7 +28,7 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [ requests ];
+  dependencies = [ requests ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
@@ -32,6 +37,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Transport adapter for fetching file:// URLs with the requests python library";
     homepage = "https://github.com/dashea/requests-file";
+    changelog = "https://github.com/dashea/requests-file/blob/${version}/CHANGES.rst";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/requests/default.nix b/pkgs/development/python-modules/requests/default.nix
index 3c4be1f8c1f6f..a483d00695188 100644
--- a/pkgs/development/python-modules/requests/default.nix
+++ b/pkgs/development/python-modules/requests/default.nix
@@ -7,7 +7,6 @@
   chardet,
   charset-normalizer,
   fetchPypi,
-  fetchpatch,
   idna,
   pysocks,
   pytest-mock,
@@ -19,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "requests";
-  version = "2.31.0";
+  version = "2.32.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -28,7 +27,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-lCxadY+Y15Dq7Ropy27vx/+w0c968Fw9J5Flbb1q0eE=";
+    hash = "sha256-VTZUF3NOsYJVWQqf+euX6eHaho1MzWQCOZ6vaK8gp2A=";
   };
 
   dependencies = [
diff --git a/pkgs/development/python-modules/resend/default.nix b/pkgs/development/python-modules/resend/default.nix
index bbcb620123fc6..d33421f11a9e8 100644
--- a/pkgs/development/python-modules/resend/default.nix
+++ b/pkgs/development/python-modules/resend/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "resend";
-  version = "1.1.0";
+  version = "2.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "resend";
     repo = "resend-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-xLrqkOHdynlwuY3+9aHWgCz8TX9v4RiVCvvPtu6k14c=";
+    hash = "sha256-3dYs3U3UaD3eiLs5s71VfivSurp5R3BiA1r0L5Py7XY=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/rich-rst/default.nix b/pkgs/development/python-modules/rich-rst/default.nix
index ef101fd2fccc2..b4d32731d092c 100644
--- a/pkgs/development/python-modules/rich-rst/default.nix
+++ b/pkgs/development/python-modules/rich-rst/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "rich-rst";
-  version = "1.3.0";
+  version = "1.3.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "wasi-master";
     repo = "rich-rst";
     rev = "refs/tags/v${version}";
-    hash = "sha256-A3SPbu1N5X55c32S8z8UPpmniJT+mdqfb1+zQEJMA5k=";
+    hash = "sha256-jbzGTEth5Qoc0ORFCS3sZMrGUpoQQOVsd+l3/zMWy20=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/rio-tiler/default.nix b/pkgs/development/python-modules/rio-tiler/default.nix
new file mode 100644
index 0000000000000..757dd7c5e1745
--- /dev/null
+++ b/pkgs/development/python-modules/rio-tiler/default.nix
@@ -0,0 +1,65 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+
+  attrs,
+  boto3,
+  cachetools,
+  color-operations,
+  hatchling,
+  httpx,
+  morecantile,
+  numexpr,
+  numpy,
+  pydantic,
+  pystac,
+  rasterio,
+  rioxarray,
+}:
+
+buildPythonPackage rec {
+  pname = "rio-tiler";
+  version = "6.6.1";
+  pyproject = true;
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "cogeotiff";
+    repo = "rio-tiler";
+    rev = version;
+    hash = "sha256-MR6kyoGM3uXt6JiIEfGcsmTmxqlLxUF9Wn+CFuK5LtQ=";
+  };
+
+  build-system = [ hatchling ];
+
+  propagatedBuildInputs = [
+    attrs
+    cachetools
+    color-operations
+    httpx
+    morecantile
+    numexpr
+    numpy
+    pydantic
+    pystac
+    rasterio
+  ];
+
+  nativeCheckInputs = [
+    boto3
+    pytestCheckHook
+    rioxarray
+  ];
+
+  pythonImportsCheck = [ "rio_tiler" ];
+
+  meta = with lib; {
+    description = "User friendly Rasterio plugin to read raster datasets";
+    homepage = "https://cogeotiff.github.io/rio-tiler/";
+    license = licenses.bsd3;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/rioxarray/default.nix b/pkgs/development/python-modules/rioxarray/default.nix
new file mode 100644
index 0000000000000..5394906148c2a
--- /dev/null
+++ b/pkgs/development/python-modules/rioxarray/default.nix
@@ -0,0 +1,57 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+
+  dask,
+  netcdf4,
+  numpy,
+  packaging,
+  pyproj,
+  rasterio,
+  setuptools,
+  xarray,
+}:
+
+buildPythonPackage rec {
+  pname = "rioxarray";
+  version = "0.15.5";
+  pyproject = true;
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "corteva";
+    repo = "rioxarray";
+    rev = version;
+    hash = "sha256-bumFZQktgUqo2lyoLtDXkh6Vv5oS/wobqYpvNYy7La0=";
+  };
+
+  build-system = [ setuptools ];
+
+  propagatedBuildInputs = [
+    numpy
+    packaging
+    pyproj
+    rasterio
+    xarray
+  ];
+
+  nativeCheckInputs = [
+    dask
+    netcdf4
+    pytestCheckHook
+  ];
+
+  disabledTests = [ "test_clip_geojson__no_drop" ];
+
+  pythonImportsCheck = [ "rioxarray" ];
+
+  meta = {
+    description = "geospatial xarray extension powered by rasterio";
+    homepage = "https://corteva.github.io/rioxarray/";
+    license = lib.licenses.asl20;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/riscv-config/default.nix b/pkgs/development/python-modules/riscv-config/default.nix
index dbbf8f7b29d6f..120f9fd5c537b 100644
--- a/pkgs/development/python-modules/riscv-config/default.nix
+++ b/pkgs/development/python-modules/riscv-config/default.nix
@@ -3,7 +3,6 @@
   buildPythonPackage,
   cerberus,
   fetchFromGitHub,
-  fetchpatch,
   pythonOlder,
   pyyaml,
   ruamel-yaml,
diff --git a/pkgs/development/python-modules/rollbar/default.nix b/pkgs/development/python-modules/rollbar/default.nix
index 323f123377e6f..40e97073c7bce 100644
--- a/pkgs/development/python-modules/rollbar/default.nix
+++ b/pkgs/development/python-modules/rollbar/default.nix
@@ -4,7 +4,6 @@
   blinker,
   buildPythonPackage,
   fetchPypi,
-  fetchpatch,
   httpx,
   mock,
   pytestCheckHook,
diff --git a/pkgs/development/python-modules/rpy2/default.nix b/pkgs/development/python-modules/rpy2/default.nix
index 65ae9652cd06b..ba1c265afe423 100644
--- a/pkgs/development/python-modules/rpy2/default.nix
+++ b/pkgs/development/python-modules/rpy2/default.nix
@@ -3,7 +3,6 @@
   lib,
   buildPythonPackage,
   fetchPypi,
-  fetchpatch,
   isPyPy,
   R,
   rWrapper,
diff --git a/pkgs/development/python-modules/ruyaml/default.nix b/pkgs/development/python-modules/ruyaml/default.nix
index 6256f3556107c..0bcd0dd7a71dc 100644
--- a/pkgs/development/python-modules/ruyaml/default.nix
+++ b/pkgs/development/python-modules/ruyaml/default.nix
@@ -3,7 +3,6 @@
   buildPythonPackage,
   distro,
   fetchFromGitHub,
-  fetchpatch,
   pytestCheckHook,
   pythonOlder,
   setuptools-scm,
diff --git a/pkgs/development/python-modules/sanic/default.nix b/pkgs/development/python-modules/sanic/default.nix
index 33779a6f61917..939d68c5f3feb 100644
--- a/pkgs/development/python-modules/sanic/default.nix
+++ b/pkgs/development/python-modules/sanic/default.nix
@@ -3,7 +3,6 @@
   stdenv,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   pythonAtLeast,
 
   # build-system
diff --git a/pkgs/development/python-modules/scalene/default.nix b/pkgs/development/python-modules/scalene/default.nix
index 2abf29f662054..1d635edbedd9d 100644
--- a/pkgs/development/python-modules/scalene/default.nix
+++ b/pkgs/development/python-modules/scalene/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   hypothesis,
-  fetchpatch,
   fetchPypi,
   setuptools,
   setuptools-scm,
diff --git a/pkgs/development/python-modules/scikit-fmm/default.nix b/pkgs/development/python-modules/scikit-fmm/default.nix
index c1a9ba9abcab7..aa97c1b9bb7a5 100644
--- a/pkgs/development/python-modules/scikit-fmm/default.nix
+++ b/pkgs/development/python-modules/scikit-fmm/default.nix
@@ -1,7 +1,9 @@
 {
   lib,
   buildPythonPackage,
+  fetchpatch,
   fetchPypi,
+  meson-python,
   numpy,
   python,
 }:
@@ -9,14 +11,42 @@
 buildPythonPackage rec {
   pname = "scikit-fmm";
   version = "2023.4.2";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-14ccR/ggdyq6kvJWUe8U5NJ96M45PArjwCqzxuJCPAs=";
   };
 
-  propagatedBuildInputs = [ numpy ];
+  # TODO: Remove these patches after another stable release is made.
+  # For now, these allow us to build with Python 3.12+ by switching to Meson
+  # and off the deprecated distutils.
+  patches = [
+    (fetchpatch {
+      name = "first-try-at-meson-build.patch";
+      hash = "sha256-Kclg4YrQZL6ZSVsLh6X6DqdztPjDK35L5dp5PqYjzaY=";
+      url = "https://github.com/scikit-fmm/scikit-fmm/commit/a52c0eccb70077553607a5084152316d136b668b.patch";
+    })
+    (fetchpatch {
+      name = "work-in-progress-on-meson-build.patch";
+      hash = "sha256-WvSwBz7exqe1H+CqdoMfT5jEoIHnyt/nbc/CryuEKiA=";
+      url = "https://github.com/scikit-fmm/scikit-fmm/commit/db0e7a5f51541745027c3d081d7841e74587793e.patch";
+    })
+    (fetchpatch {
+      name = "re-cythonize-the-heap-wrapper.patch";
+      hash = "sha256-ro97+06R0szXQ9I8/sR4JAnFxoQwJeiImDcl1Yp9P0Y=";
+      url = "https://github.com/scikit-fmm/scikit-fmm/commit/4168323e209343facd5f6ba93a85893242e781a2.patch";
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail "oldest-supported-numpy" "numpy"
+  '';
+
+  build-system = [ meson-python ];
+
+  dependencies = [ numpy ];
 
   checkPhase = ''
     mkdir testdir; cd testdir
diff --git a/pkgs/development/python-modules/scikit-hep-testdata/default.nix b/pkgs/development/python-modules/scikit-hep-testdata/default.nix
index c3c76512492b9..0fe761ac660c7 100644
--- a/pkgs/development/python-modules/scikit-hep-testdata/default.nix
+++ b/pkgs/development/python-modules/scikit-hep-testdata/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "scikit-hep-testdata";
-  version = "0.4.44";
+  version = "0.4.45";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "scikit-hep";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-7a1F7180mnbMiEwRWzDQt2EhRsleSoVhWtTc+5DR/2o=";
+    hash = "sha256-Kpn7Z+LJPZ9rNxQLXFtACJvfpRdDs58cy+1QlbbODLA=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/scikit-misc/default.nix b/pkgs/development/python-modules/scikit-misc/default.nix
index 483acaa5de969..5b6e9f347b3c6 100644
--- a/pkgs/development/python-modules/scikit-misc/default.nix
+++ b/pkgs/development/python-modules/scikit-misc/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   cython,
   gfortran,
   git,
diff --git a/pkgs/development/python-modules/scikits-samplerate/default.nix b/pkgs/development/python-modules/scikits-samplerate/default.nix
deleted file mode 100644
index b2cd98d477de8..0000000000000
--- a/pkgs/development/python-modules/scikits-samplerate/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{
-  lib,
-  buildPythonPackage,
-  numpy,
-  libsamplerate,
-  fetchFromGitHub,
-}:
-
-buildPythonPackage {
-  pname = "scikits-samplerate";
-  version = "0.3.3";
-  format = "setuptools";
-
-  src = fetchFromGitHub {
-    owner = "cournape";
-    repo = "samplerate";
-    rev = "a536c97eb2d6195b5f266ea3cc3a35364c4c2210";
-    hash = "sha256-7x03Q6VXfP9p8HCk15IDZ9HeqTyi5F1AlGX/otdh8VU=";
-  };
-
-  buildInputs = [ libsamplerate ];
-
-  propagatedBuildInputs = [ numpy ];
-
-  preConfigure = ''
-    cat > site.cfg << END
-    [samplerate]
-    library_dirs=${libsamplerate.out}/lib
-    include_dirs=${lib.getDev libsamplerate}/include
-    END
-  '';
-
-  doCheck = false;
-
-  meta = with lib; {
-    homepage = "https://github.com/cournape/samplerate";
-    description = "High quality sampling rate convertion from audio data in numpy arrays";
-    license = licenses.gpl2;
-  };
-}
diff --git a/pkgs/development/python-modules/scipy/default.nix b/pkgs/development/python-modules/scipy/default.nix
index 19bba41bfa501..1bd02b708089e 100644
--- a/pkgs/development/python-modules/scipy/default.nix
+++ b/pkgs/development/python-modules/scipy/default.nix
@@ -38,8 +38,8 @@ let
   #     nix-shell maintainers/scripts/update.nix --argstr package python3.pkgs.scipy
   #
   # The update script uses sed regexes to replace them with the updated hashes.
-  version = "1.13.0";
-  srcHash = "sha256-HaYk92hOREHMOXppK+Bs9DrBu9KUVUsZ0KV+isTofUo=";
+  version = "1.13.1";
+  srcHash = "sha256-KpTvBJhiJ/IBjIFQhvS+NhRP3tbyXU5gQnAiFv47sKU=";
   datasetsHashes = {
     ascent = "1qjp35ncrniq9rhzb14icwwykqg2208hcssznn3hz27w39615kh3";
     ecg = "1bwbjp43b7znnwha5hv6wiz3g0bhwrpqpi75s12zidxrbwvd62pj";
@@ -80,12 +80,6 @@ buildPythonPackage {
       hash = "sha256-Vf6/hhwu6X5s8KWhq8bUZKtSkdVu/GtEpGtj8Olxe7s=";
       excludes = [ "doc/source/dev/contributor/meson_advanced.rst" ];
     })
-    # Fix for https://github.com/scipy/scipy/issues/20300 until 1.13.1 is
-    # released. Patch is based upon:
-    # https://github.com/scipy/pocketfft/commit/9367142748fcc9696a1c9e5a99b76ed9897c9daa
-    # Couldn't use fetchpatch because it is a submodule of scipy, and
-    # extraPrefix doesn't fit this purpose.
-    ./pocketfft-aligned_alloc.patch
   ];
 
   # Upstream says in a comment in their pyproject.toml that building against
diff --git a/pkgs/development/python-modules/scipy/pocketfft-aligned_alloc.patch b/pkgs/development/python-modules/scipy/pocketfft-aligned_alloc.patch
deleted file mode 100644
index 80b047c7061c5..0000000000000
--- a/pkgs/development/python-modules/scipy/pocketfft-aligned_alloc.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From fbe3c10d117de98d80a86a10f76d4cd74efc55a8 Mon Sep 17 00:00:00 2001
-From: Martin Reinecke <martin@mpa-garching.mpg.de>
-Date: Fri, 22 Mar 2024 10:53:05 +0100
-Subject: [PATCH] unconditionaly disable use of aligned_alloc
-
----
- pocketfft_hdronly.h | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/scipy/_lib/pocketfft/pocketfft_hdronly.h b/scipy/_lib/pocketfft/pocketfft_hdronly.h
-index 6c98f2d..66eea06 100644
---- a/scipy/_lib/pocketfft/pocketfft_hdronly.h
-+++ b/scipy/_lib/pocketfft/pocketfft_hdronly.h
-@@ -152,11 +152,11 @@ template<> struct VLEN<double> { static constexpr size_t val=2; };
- #endif
- #endif
- 
--// the __MINGW32__ part in the conditional below works around the problem that
--// the standard C++ library on Windows does not provide aligned_alloc() even
--// though the MinGW compiler and MSVC may advertise C++17 compliance.
--// aligned_alloc is only supported from MacOS 10.15.
--#if (__cplusplus >= 201703L) && (!defined(__MINGW32__)) && (!defined(_MSC_VER)) && (__MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_15)
-+// std::aligned_alloc is a bit cursed ... it doesn't exist on MacOS < 10.15
-+// and in musl, and other OSes seem to have even more peculiarities.
-+// Let's unconditionally work around it for now.
-+# if 0
-+//#if (__cplusplus >= 201703L) && (!defined(__MINGW32__)) && (!defined(_MSC_VER)) && (__MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_15)
- inline void *aligned_alloc(size_t align, size_t size)
-   {
-   // aligned_alloc() requires that the requested size is a multiple of "align"
diff --git a/pkgs/development/python-modules/scp/default.nix b/pkgs/development/python-modules/scp/default.nix
index 3a434a496cf35..cf95431301a7c 100644
--- a/pkgs/development/python-modules/scp/default.nix
+++ b/pkgs/development/python-modules/scp/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "scp";
-  version = "0.14.5";
+  version = "0.15.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ZPABWJmz0hLLgIjn1A668Ghoif8OJD1cEkLv6LUPBT4=";
+    hash = "sha256-8bIumTISPM8X7r8Z4JU8bpFI9Yn5PZG4cpQaaWMFyD8=";
   };
 
   propagatedBuildInputs = [ paramiko ];
diff --git a/pkgs/development/python-modules/scrapy/default.nix b/pkgs/development/python-modules/scrapy/default.nix
index 9c688c7445d31..c97b5fc5598a4 100644
--- a/pkgs/development/python-modules/scrapy/default.nix
+++ b/pkgs/development/python-modules/scrapy/default.nix
@@ -5,8 +5,8 @@
   buildPythonPackage,
   cryptography,
   cssselect,
-  fetchPypi,
-  fetchpatch,
+  defusedxml,
+  fetchFromGitHub,
   glibcLocales,
   installShellFiles,
   itemadapter,
@@ -28,32 +28,25 @@
   testfixtures,
   tldextract,
   twisted,
+  uvloop,
   w3lib,
   zope-interface,
 }:
 
 buildPythonPackage rec {
   pname = "scrapy";
-  version = "2.11.1";
+  version = "2.11.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    inherit version;
-    pname = "Scrapy";
-    hash = "sha256-czoDnHQj5StpvygQtTMgk9TkKoSEYDWcB7Auz/j3Pr4=";
+  src = fetchFromGitHub {
+    owner = "scrapy";
+    repo = "scrapy";
+    rev = "refs/tags/${version}";
+    hash = "sha256-EaO1kQ3VSTwEW+r0kSKycOxHNTPwwCVjch1ZBrTU0qQ=";
   };
 
-  patches = [
-    # https://github.com/scrapy/scrapy/pull/6316
-    # fix test_get_func_args. remove on next update
-    (fetchpatch {
-      name = "test_get_func_args.patch";
-      url = "https://github.com/scrapy/scrapy/commit/b1fe97dc6c8509d58b29c61cf7801eeee1b409a9.patch";
-      hash = "sha256-POlmsuW4SD9baKwZieKfmlp2vtdlb7aKQ62VOmNXsr0=";
-    })
-  ];
 
   nativeBuildInputs = [
     installShellFiles
@@ -63,6 +56,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     cryptography
     cssselect
+    defusedxml
     itemadapter
     itemloaders
     lxml
@@ -87,6 +81,7 @@ buildPythonPackage rec {
     pytestCheckHook
     sybil
     testfixtures
+    uvloop
   ];
 
   LC_ALL = "en_US.UTF-8";
@@ -101,11 +96,6 @@ buildPythonPackage rec {
 
   disabledTests =
     [
-      # It's unclear if the failures are related to libxml2, https://github.com/NixOS/nixpkgs/pull/123890
-      "test_nested_css"
-      "test_nested_xpath"
-      "test_flavor_detection"
-      "test_follow_whitespace"
       # Requires network access
       "AnonymousFTPTestCase"
       "FTPFeedStorageTest"
@@ -119,14 +109,6 @@ buildPythonPackage rec {
       "test_timeout_download_from_spider_server_hangs"
       "test_unbounded_response"
       "CookiesMiddlewareTest"
-      # Depends on uvloop
-      "test_asyncio_enabled_reactor_different_loop"
-      "test_asyncio_enabled_reactor_same_loop"
-      # Fails with AssertionError
-      "test_peek_fifo"
-      "test_peek_one_element"
-      "test_peek_lifo"
-      "test_callback_kwargs"
       # Test fails on Hydra
       "test_start_requests_laziness"
     ]
diff --git a/pkgs/development/python-modules/shiboken2/default.nix b/pkgs/development/python-modules/shiboken2/default.nix
index 5d313334ae3a5..abf29ffaff97e 100644
--- a/pkgs/development/python-modules/shiboken2/default.nix
+++ b/pkgs/development/python-modules/shiboken2/default.nix
@@ -7,6 +7,7 @@
   qt5,
   libxcrypt,
   llvmPackages_15,
+  pythonAtLeast,
 }:
 
 stdenv.mkDerivation {
@@ -58,6 +59,6 @@ stdenv.mkDerivation {
     ];
     homepage = "https://wiki.qt.io/Qt_for_Python";
     maintainers = with maintainers; [ gebner ];
-    broken = stdenv.isDarwin;
+    broken = stdenv.isDarwin || pythonAtLeast "3.12";
   };
 }
diff --git a/pkgs/development/python-modules/shiboken6/default.nix b/pkgs/development/python-modules/shiboken6/default.nix
index 98ebbecd521de..5bf11c0a14a59 100644
--- a/pkgs/development/python-modules/shiboken6/default.nix
+++ b/pkgs/development/python-modules/shiboken6/default.nix
@@ -1,6 +1,7 @@
 {
   lib,
   fetchurl,
+  fetchpatch,
   llvmPackages,
   python,
   cmake,
@@ -23,7 +24,16 @@ stdenv'.mkDerivation rec {
 
   sourceRoot = "pyside-setup-everywhere-src-${version}/sources/${pname}";
 
-  patches = [ ./fix-include-qt-headers.patch ];
+  patches = [
+    ./fix-include-qt-headers.patch
+    # Remove this patch when updating to 6.8.0
+    (fetchpatch {
+      name = "backwards-compatibility-with-6.6.x.patch";
+      url = "https://code.qt.io/cgit/pyside/pyside-setup.git/patch/?id=4f9a20e3635f4f0957e0774588b1d9156e88a572";
+      hash = "sha256-B2jhLWopgaSF/rUXMZFPZArDUNojlBgn7kdVyQull+I=";
+      stripLen = 2;
+    })
+  ];
 
   nativeBuildInputs = [
     cmake
diff --git a/pkgs/development/python-modules/single-version/default.nix b/pkgs/development/python-modules/single-version/default.nix
index 72f1c003f99e0..e08878e89f581 100644
--- a/pkgs/development/python-modules/single-version/default.nix
+++ b/pkgs/development/python-modules/single-version/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   poetry-core,
   pytestCheckHook,
 }:
diff --git a/pkgs/development/python-modules/slicer/default.nix b/pkgs/development/python-modules/slicer/default.nix
index 8f7a27e31c538..79e514f7ee9be 100644
--- a/pkgs/development/python-modules/slicer/default.nix
+++ b/pkgs/development/python-modules/slicer/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   dos2unix,
-  fetchpatch,
   fetchPypi,
   pytestCheckHook,
   pythonOlder,
diff --git a/pkgs/development/python-modules/sparklines/default.nix b/pkgs/development/python-modules/sparklines/default.nix
index 15181f436e678..9b7c002e40fc7 100644
--- a/pkgs/development/python-modules/sparklines/default.nix
+++ b/pkgs/development/python-modules/sparklines/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "sparklines";
-  version = "0.4.2";
+  version = "0.5.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "deeplook";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "1hfxp5c4wbyddy7fgmnda819w3dia3i6gqb2323dr2z016p84r7l";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-oit1bDqP96wwfTRCV8V0N9P/+pkdW2WYOWT6u3lb4Xs=";
   };
 
   propagatedBuildInputs = [ future ];
diff --git a/pkgs/development/python-modules/sparse/default.nix b/pkgs/development/python-modules/sparse/default.nix
index b81bb12acf3f6..cfd6569472052 100644
--- a/pkgs/development/python-modules/sparse/default.nix
+++ b/pkgs/development/python-modules/sparse/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "sparse";
-  version = "0.15.1";
+  version = "0.15.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-lzrcuIqNuOPYBHlTMx4m0/ZKVlf5tGprhZxHZjw+75k=";
+    hash = "sha256-1LHFfST/D2Ty/VtalbSbf7hO0geibX1Yzidk3MXHK4Q=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/sphinxcontrib-ditaa/default.nix b/pkgs/development/python-modules/sphinxcontrib-ditaa/default.nix
new file mode 100644
index 0000000000000..db263eab0f5b2
--- /dev/null
+++ b/pkgs/development/python-modules/sphinxcontrib-ditaa/default.nix
@@ -0,0 +1,42 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  unittestCheckHook,
+  setuptools,
+  sphinx,
+  ditaa,
+}:
+
+buildPythonPackage rec {
+  pname = "sphinxcontrib-ditaa";
+  version = "1.0.2";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-V/LhOwWbOP3olYC+ypFqxsp0VrLXBsPd6p3UiQ5fW9M=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [
+    sphinx
+    ditaa
+  ];
+
+  # no tests provided
+  doCheck = false;
+
+  # ? needs docutils exported as runtime dep
+  #pythonImportsCheck = [ "sphinxcontrib.ditaa" ];
+
+  pythonNamespaces = [ "sphinxcontrib" ];
+
+  meta = {
+    description = "Sphinx ditaa extension";
+    homepage = "https://pypi.org/project/sphinxcontrib-ditaa";
+    maintainers = with lib.maintainers; [ rconybea ];
+    license = lib.licenses.bsd2;
+  };
+}
diff --git a/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix b/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
index eebc7ed12ba04..1076db106fcb9 100644
--- a/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
@@ -3,7 +3,6 @@
   buildPythonPackage,
   deepmerge,
   fetchPypi,
-  fetchpatch,
   isPy27,
   setuptools-scm,
   jsonschema,
diff --git a/pkgs/development/python-modules/sqlalchemy-utils/default.nix b/pkgs/development/python-modules/sqlalchemy-utils/default.nix
index 36f8b3ad9c927..e4865cd091af8 100644
--- a/pkgs/development/python-modules/sqlalchemy-utils/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy-utils/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchPypi,
-  fetchpatch,
   pythonOlder,
 
   # runtime
diff --git a/pkgs/development/python-modules/sqlite-utils/default.nix b/pkgs/development/python-modules/sqlite-utils/default.nix
index 4719a7d71417f..99800ceadbcfc 100644
--- a/pkgs/development/python-modules/sqlite-utils/default.nix
+++ b/pkgs/development/python-modules/sqlite-utils/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchPypi,
-  fetchpatch,
   pythonOlder,
   click,
   click-default-group,
diff --git a/pkgs/development/python-modules/strawberry-graphql/default.nix b/pkgs/development/python-modules/strawberry-graphql/default.nix
index 92658dce50867..86d9b8e490455 100644
--- a/pkgs/development/python-modules/strawberry-graphql/default.nix
+++ b/pkgs/development/python-modules/strawberry-graphql/default.nix
@@ -43,16 +43,16 @@
 
 buildPythonPackage rec {
   pname = "strawberry-graphql";
-  version = "0.219.2";
-  format = "pyproject";
+  version = "0.230.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     owner = "strawberry-graphql";
     repo = "strawberry";
     rev = "refs/tags/${version}";
-    hash = "sha256-uIUETjzuDnlQp6wM7uxyLRSMT5uyrXFrI9NilcjP0BU=";
+    hash = "sha256-jhInHoOvPGIEoSddv8+30gY38L6XR5OEATUTdrHbNpA=";
   };
 
   patches = [
@@ -62,22 +62,16 @@ buildPythonPackage rec {
       url = "https://github.com/strawberry-graphql/strawberry/commit/710bb96f47c244e78fc54c921802bcdb48f5f421.patch";
       hash = "sha256-ekUZ2hDPCqwXp9n0YjBikwSkhCmVKUzQk7LrPECcD7Y=";
     })
-    (fetchpatch {
-      # https://github.com/strawberry-graphql/strawberry/pull/3255
-      name = "fix-tests-with-pydantic_2.patch";
-      url = "https://github.com/strawberry-graphql/strawberry/commit/0a0dc284ee6d31d4e82ac7ff1ed9fea4dff39fa6.patch";
-      hash = "sha256-LACWD7XA6YL/apJwhpx3LPCKxKUfa+XWyTLK+Zkxlaw=";
-    })
   ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "--emoji --mypy-ini-file=mypy.ini" "" \
+      --replace-fail "--emoji --mypy-ini-file=mypy.ini" "" \
   '';
 
-  nativeBuildInputs = [ poetry-core ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     graphql-core
     python-dateutil
     typing-extensions
@@ -135,9 +129,8 @@ buildPythonPackage rec {
       rich
       libcst
     ];
-    # starlite = [
-    #   starlite
-    # ];
+    # starlite = [ starlite ];
+    # litestar = [ litestar ];
     pyinstrument = [ pyinstrument ];
   };
 
@@ -169,16 +162,17 @@ buildPythonPackage rec {
     "tests/test_dataloaders.py"
     "tests/utils/test_pretty_print.py"
     "tests/websockets/test_graphql_transport_ws.py"
+    "tests/litestar/"
   ];
 
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
     description = "A GraphQL library for Python that leverages type annotations";
-    mainProgram = "strawberry";
     homepage = "https://strawberry.rocks";
     changelog = "https://github.com/strawberry-graphql/strawberry/blob/${version}/CHANGELOG.md";
-    license = with licenses; [ mit ];
+    license = licenses.mit;
     maintainers = with maintainers; [ izorkin ];
+    mainProgram = "strawberry";
   };
 }
diff --git a/pkgs/development/python-modules/streamlit/default.nix b/pkgs/development/python-modules/streamlit/default.nix
index 5c477b62579ce..eb7dca81db643 100644
--- a/pkgs/development/python-modules/streamlit/default.nix
+++ b/pkgs/development/python-modules/streamlit/default.nix
@@ -34,14 +34,14 @@
 
 buildPythonPackage rec {
   pname = "streamlit";
-  version = "1.34.0";
+  version = "1.35.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-E1o7eaaGsxMrc/IERQrW6IneBPM0nWkpJeCfDiHnS1I=";
+    hash = "sha256-Z51Vu2GJdD9gar8GlmI98L/SI6bQyNlrjWBnjUiR0tY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/stripe/default.nix b/pkgs/development/python-modules/stripe/default.nix
index dd709fd48f33d..4efdf348ecc0e 100644
--- a/pkgs/development/python-modules/stripe/default.nix
+++ b/pkgs/development/python-modules/stripe/default.nix
@@ -10,19 +10,19 @@
 
 buildPythonPackage rec {
   pname = "stripe";
-  version = "9.6.0";
+  version = "9.8.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-kwXYSc6nFdxZxeOdAYkUdbguEO252V7h2BiUV+XeeS8=";
+    hash = "sha256-YxYfynRstqgeIVi/YZUMy4118bcjHH9KyeBYF6q1hrQ=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     requests
     typing-extensions
   ];
diff --git a/pkgs/development/python-modules/svgelements/default.nix b/pkgs/development/python-modules/svgelements/default.nix
index 239b7db7f67ac..7e4709ff5a08f 100644
--- a/pkgs/development/python-modules/svgelements/default.nix
+++ b/pkgs/development/python-modules/svgelements/default.nix
@@ -2,6 +2,7 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
+  fetchpatch,
   setuptools,
   wheel,
   anyio,
@@ -25,7 +26,15 @@ buildPythonPackage rec {
     hash = "sha256-nx2sGXeeh8S17TfRDFifQbdSxc4YGsDNnrPSSbxv7S4=";
   };
 
-  nativeBuildInputs = [
+  patches = [
+    (fetchpatch {
+      name = "fix-assert-tests";
+      url = "https://github.com/meerk40t/svgelements/commit/23da98941a94cf1afed39c10750222ccfee73c9f.patch";
+      hash = "sha256-/53w4eWlaSNEQxuoAxPrN2HciZ3Az2A2SKcIAlNgKAs=";
+    })
+  ];
+
+  build-system = [
     setuptools
     wheel
   ];
@@ -42,10 +51,10 @@ buildPythonPackage rec {
     scipy
   ];
 
-  meta = with lib; {
+  meta = {
     description = "SVG Parsing for Elements, Paths, and other SVG Objects";
     homepage = "https://github.com/meerk40t/svgelements";
-    license = licenses.mit;
-    maintainers = with maintainers; [ GaetanLepage ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
   };
 }
diff --git a/pkgs/development/python-modules/syncedlyrics/default.nix b/pkgs/development/python-modules/syncedlyrics/default.nix
index 5505bb03f75c7..7ec1a229cac4f 100644
--- a/pkgs/development/python-modules/syncedlyrics/default.nix
+++ b/pkgs/development/python-modules/syncedlyrics/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "syncedlyrics";
-  version = "0.9.0";
+  version = "0.10.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "rtcq";
     repo = "syncedlyrics";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Q0Hu403Hxr4iDuZfGQjgTSuNMVgsqd9zLRl9Vc1YzyQ=";
+    hash = "sha256-B3+0DPR30MwPL53YIS/3jmMU73Z0NDDaR0pV8wE6P5Q=";
   };
 
   build-system = [
@@ -44,10 +44,10 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module to get LRC format (synchronized) lyrics";
-    mainProgram = "syncedlyrics";
     homepage = "https://github.com/rtcq/syncedlyrics";
     changelog = "https://github.com/rtcq/syncedlyrics/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "syncedlyrics";
   };
 }
diff --git a/pkgs/development/python-modules/tableaudocumentapi/default.nix b/pkgs/development/python-modules/tableaudocumentapi/default.nix
index f1a6882345a8f..1d9b22ce5b4e7 100644
--- a/pkgs/development/python-modules/tableaudocumentapi/default.nix
+++ b/pkgs/development/python-modules/tableaudocumentapi/default.nix
@@ -5,12 +5,16 @@
   lxml,
   pytestCheckHook,
   pythonOlder,
+  fetchpatch,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "tableaudocumentapi";
   version = "0.11";
-  format = "setuptools";
+
+  pyproject = true;
+  build-system = [ setuptools ];
 
   disabled = pythonOlder "3.7";
 
@@ -18,8 +22,17 @@ buildPythonPackage rec {
     inherit pname version;
     hash = "sha256-g6V1UBf+P21FcZkR3PHoUmdmrQwEvjdd1VKhvNmvOys=";
   };
-
-  propagatedBuildInputs = [ lxml ];
+  patches = [
+    # distutils has been removed since python 3.12
+    # see https://github.com/tableau/document-api-python/pull/255
+    (fetchpatch {
+      name = "no-distutils.patch";
+      url = "https://github.com/tableau/document-api-python/pull/255/commits/59280bbe073060d1249e6404e11303ed6faa84f6.patch";
+      hash = "sha256-mjIF9iP1BQXvqkS0jYNTm8otkhSKLj2b2iHSMZ2K0iI=";
+    })
+  ];
+
+  dependencies = [ lxml ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/tabula-py/default.nix b/pkgs/development/python-modules/tabula-py/default.nix
index 4556443136b2f..0299d511c25a8 100644
--- a/pkgs/development/python-modules/tabula-py/default.nix
+++ b/pkgs/development/python-modules/tabula-py/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "tabula-py";
-  version = "2.9.1";
+  version = "2.9.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "chezou";
     repo = "tabula-py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-C06du4mhpnF2qxcEMZxp5O/8xpNaj9Jp8LFaxBkGF/Q=";
+    hash = "sha256-dEcVIlK3M7zqRMN7W7mnnMPWhM2A4/qvf0aY61ko4yE=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/tappy/default.nix b/pkgs/development/python-modules/tappy/default.nix
index 5c464707f2cc6..332848bafb446 100644
--- a/pkgs/development/python-modules/tappy/default.nix
+++ b/pkgs/development/python-modules/tappy/default.nix
@@ -3,18 +3,33 @@
   buildPythonPackage,
   pythonOlder,
   fetchPypi,
+  setuptools,
+  pyyaml,
+  more-itertools,
   pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "tap.py";
   version = "3.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3c0cd45212ad5a25b35445964e2517efa000a118a1bfc3437dae828892eaf1e1";
+    hash = "sha256-PAzUUhKtWiWzVEWWTiUX76AAoRihv8NDfa6CiJLq8eE=";
+  };
+
+  build-system = [
+    setuptools
+  ];
+
+  optional-dependencies = {
+    yaml = [
+      pyyaml
+      more-itertools
+    ];
   };
 
   nativeCheckInputs = [ pytestCheckHook ];
@@ -25,6 +40,7 @@ buildPythonPackage rec {
     description = "A set of tools for working with the Test Anything Protocol (TAP) in Python";
     homepage = "https://github.com/python-tap/tappy";
     changelog = "https://tappy.readthedocs.io/en/latest/releases.html";
+    mainProgram = "tappy";
     license = licenses.bsd2;
     maintainers = with maintainers; [ sfrijters ];
   };
diff --git a/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix b/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
index 1eee4a02da4f9..88d08613850b7 100644
--- a/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
+++ b/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "tencentcloud-sdk-python";
-  version = "3.0.1152";
+  version = "3.0.1156";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "TencentCloud";
     repo = "tencentcloud-sdk-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-pmmZnTvZwpVD/ECjKzA6LQ2c7McYznJMlKabcYwh3LY=";
+    hash = "sha256-evhgB8MljJBru+6ovMaUMIwSRcVA+zG+EHYtubSVr7o=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/teslajsonpy/default.nix b/pkgs/development/python-modules/teslajsonpy/default.nix
index bbfabbefd78a6..b4c489303dc42 100644
--- a/pkgs/development/python-modules/teslajsonpy/default.nix
+++ b/pkgs/development/python-modules/teslajsonpy/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "teslajsonpy";
-  version = "3.10.3";
+  version = "3.11.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "zabuldon";
     repo = "teslajsonpy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-g5csh014gXdYJ28cBn0Frk5g3zFuZ9ufrypcLcNPwg0=";
+    hash = "sha256-Hb/O4kdmJVN6yGhg/FQ6i0qUrtEuD1dZooJ6pbZ+qig=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/testcontainers/default.nix b/pkgs/development/python-modules/testcontainers/default.nix
index e4757b756b045..561f2bcfeb725 100644
--- a/pkgs/development/python-modules/testcontainers/default.nix
+++ b/pkgs/development/python-modules/testcontainers/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "testcontainers";
-  version = "4.4.1";
+  version = "4.5.0";
   disabled = pythonOlder "3.9";
 
   pyproject = true;
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "testcontainers";
     repo = "testcontainers-python";
     rev = "refs/tags/testcontainers-v${version}";
-    hash = "sha256-osWppbptWpBSHcrHlAqNpn6j2n/qQ7iCobH3TVqB2bc=";
+    hash = "sha256-+kMKxitRRjNGVqMJuDdJA0QnYpLicJ6qdD8tzplEbT8=";
   };
 
   postPatch = ''
@@ -43,12 +43,10 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "testcontainers" ];
 
-  meta = with lib; {
-    description = ''
-      Allows using docker containers for functional and integration testing
-    '';
+  meta = {
+    description = "Allows using docker containers for functional and integration testing";
     homepage = "https://github.com/testcontainers/testcontainers-python";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ onny ];
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ onny ];
   };
 }
diff --git a/pkgs/development/python-modules/thrift/default.nix b/pkgs/development/python-modules/thrift/default.nix
index 37ea571250527..f33ba9cfa2f64 100644
--- a/pkgs/development/python-modules/thrift/default.nix
+++ b/pkgs/development/python-modules/thrift/default.nix
@@ -2,20 +2,28 @@
   lib,
   buildPythonPackage,
   fetchPypi,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
   six,
 }:
 
 buildPythonPackage rec {
   pname = "thrift";
   version = "0.20.0";
-  format = "setuptools";
+  pyproject = true;
+
+  # Still uses distutils
+  disabled = pythonOlder "3.7" || pythonAtLeast "3.12";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-TdZi6t9riuvopBcpUnvWmt9s6qKoaBy+9k0Sc7Po/ro=";
   };
 
-  propagatedBuildInputs = [ six ];
+  build-system = [ setuptools ];
+
+  dependencies = [ six ];
 
   # No tests. Breaks when not disabling.
   doCheck = false;
diff --git a/pkgs/development/python-modules/tokenizers/default.nix b/pkgs/development/python-modules/tokenizers/default.nix
index 18ccce25f08d5..cda6f1b7a58ef 100644
--- a/pkgs/development/python-modules/tokenizers/default.nix
+++ b/pkgs/development/python-modules/tokenizers/default.nix
@@ -99,12 +99,6 @@ buildPythonPackage rec {
       Security
     ];
 
-  # Cargo.lock is outdated
-  # TODO: remove at next release
-  preConfigure = ''
-    cargo update --offline
-  '';
-
   dependencies = [
     numpy
     huggingface-hub
diff --git a/pkgs/development/python-modules/tokenlib/default.nix b/pkgs/development/python-modules/tokenlib/default.nix
index 1b0641574eec3..59a19b81a3f92 100644
--- a/pkgs/development/python-modules/tokenlib/default.nix
+++ b/pkgs/development/python-modules/tokenlib/default.nix
@@ -4,25 +4,40 @@
   fetchFromGitHub,
   requests,
   webob,
+  fetchpatch,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "tokenlib";
-  version = "0.3.1";
-  format = "setuptools";
+  version = "2.0.0";
+
+  pyproject = true;
+  build-system = [ setuptools ];
 
   src = fetchFromGitHub {
     owner = "mozilla-services";
-    repo = pname;
-    rev = "refs/tags/${version}";
-    sha256 = "0bq6dqyfwh29pg8ngmrm4mx4q27an9lsj0p9l79p9snn4g2rxzc8";
+    repo = "tokenlib";
+    rev = "${version}";
+    hash = "sha256-+KybaLb4XAcuBARJUhL5gK71jfNMb8YL8dV5Vzf7yXI=";
   };
 
-  propagatedBuildInputs = [
+  patches = [
+    # fix wrong function name in tests
+    # See https://github.com/mozilla-services/tokenlib/pull/9
+    (fetchpatch {
+      url = "https://github.com/mozilla-services/tokenlib/pull/9/commits/cb7ef761f82f36e40069bd1b8684eec05af3b8a3.patch";
+      hash = "sha256-hc+iydxZu9bFqBD0EQDWMkRs2ibqNAhx6Qxjh6ppKNw=";
+    })
+  ];
+
+  dependencies = [
     requests
     webob
   ];
 
+  pythonImportsCheck = [ "tokenlib" ];
+
   meta = with lib; {
     homepage = "https://github.com/mozilla-services/tokenlib";
     description = "Generic support library for signed-token-based auth schemes";
diff --git a/pkgs/development/python-modules/tololib/default.nix b/pkgs/development/python-modules/tololib/default.nix
index 2ab0dbd7c89ae..03bb2f2ea81e7 100644
--- a/pkgs/development/python-modules/tololib/default.nix
+++ b/pkgs/development/python-modules/tololib/default.nix
@@ -3,7 +3,6 @@
   stdenv,
   buildPythonPackage,
   fetchFromGitLab,
-  fetchpatch,
   pytestCheckHook,
   pythonOlder,
   setuptools-scm,
diff --git a/pkgs/development/python-modules/trainer/default.nix b/pkgs/development/python-modules/trainer/default.nix
index e2c16943fffc9..0c1c14f41eead 100644
--- a/pkgs/development/python-modules/trainer/default.nix
+++ b/pkgs/development/python-modules/trainer/default.nix
@@ -2,6 +2,7 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
+  fetchpatch,
 
   coqpit,
   fsspec,
@@ -30,6 +31,14 @@ buildPythonPackage {
     hash = "sha256-z6TOzWqE3NytkdG3nUzh9GpFVGQEXFyzSQ8gvdB4wiw=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "add-support-for-python312.patch";
+      hash = "sha256-V5RPn/2pGKzQrf/SIRU3imo6nBhpBEJpI7HsFYbVZj4=";
+      url = "https://github.com/coqui-ai/Trainer/commit/0278012c7e6f5972b656d11757add4ab89f6d272.patch";
+    })
+  ];
+
   postPatch = ''
     sed -i 's/^protobuf.*/protobuf/' requirements.txt
   '';
diff --git a/pkgs/development/python-modules/transformers/default.nix b/pkgs/development/python-modules/transformers/default.nix
index 5db1c4b3b12ff..824d607cc380a 100644
--- a/pkgs/development/python-modules/transformers/default.nix
+++ b/pkgs/development/python-modules/transformers/default.nix
@@ -55,7 +55,7 @@
 
 buildPythonPackage rec {
   pname = "transformers";
-  version = "4.41.0";
+  version = "4.41.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -64,7 +64,7 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = "transformers";
     rev = "refs/tags/v${version}";
-    hash = "sha256-FUYQeEksjDasFvQraycNFAx3cLHfDdPpgZssqN8OIJw=";
+    hash = "sha256-eUMdlqHjCmK51hUPxjZq3tOl0o6EjipOziWergHwmPk=";
   };
 
   build-system = [ setuptools ];
@@ -186,14 +186,14 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "transformers" ];
 
-  meta = with lib; {
+  meta = {
     homepage = "https://github.com/huggingface/transformers";
     description = "Natural Language Processing for TensorFlow 2.0 and PyTorch";
     mainProgram = "transformers-cli";
     changelog = "https://github.com/huggingface/transformers/releases/tag/v${version}";
-    license = licenses.asl20;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [
+    license = lib.licenses.asl20;
+    platforms = lib.platforms.unix;
+    maintainers = with lib.maintainers; [
       pashashocky
       happysalada
     ];
diff --git a/pkgs/development/python-modules/truststore/default.nix b/pkgs/development/python-modules/truststore/default.nix
index 53635bcb19685..820d823f81468 100644
--- a/pkgs/development/python-modules/truststore/default.nix
+++ b/pkgs/development/python-modules/truststore/default.nix
@@ -13,21 +13,21 @@
 
 buildPythonPackage rec {
   pname = "truststore";
-  version = "0.8.0";
-  format = "pyproject";
+  version = "0.9.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     owner = "sethmlarson";
-    repo = pname;
+    repo = "truststore";
     rev = "refs/tags/v${version}";
-    hash = "sha256-K11nHzpckNR8pqmgLOo/yCJ2cNQnqPHgjMDPQkpeRkQ=";
+    hash = "sha256-BP88oQ363XFuRMKZqW8wSm1wl5upU+yEgmwktv65JOU=";
   };
 
-  nativeBuildInputs = [ flit-core ];
+  build-system = [ flit-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     httpx
     pyopenssl
@@ -35,14 +35,14 @@ buildPythonPackage rec {
     trustme
   ];
 
-  # tests requires networking
+  # Tests requires networking
   doCheck = false;
 
   pythonImportsCheck = [ "truststore" ];
 
   meta = with lib; {
-    homepage = "https://github.com/sethmlarson/truststore";
     description = "Verify certificates using native system trust stores";
+    homepage = "https://github.com/sethmlarson/truststore";
     changelog = "https://github.com/sethmlarson/truststore/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ anthonyroussel ];
diff --git a/pkgs/development/python-modules/twilio/default.nix b/pkgs/development/python-modules/twilio/default.nix
index 5558ce327290d..ead211c160b1d 100644
--- a/pkgs/development/python-modules/twilio/default.nix
+++ b/pkgs/development/python-modules/twilio/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "twilio";
-  version = "9.0.5";
+  version = "9.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "twilio";
     repo = "twilio-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-q7tY44L8KA29HeoLBJf75Xp3IZSiT5DOkhtZ+7BD7Hg=";
+    hash = "sha256-jOjja+nuh2asYcIO5QVwmXC1vGlbzEhRnMyvq2paCPU=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/types-aiobotocore-packages/default.nix b/pkgs/development/python-modules/types-aiobotocore-packages/default.nix
index dc8f4c86cb2fb..b7ae5e53db882 100644
--- a/pkgs/development/python-modules/types-aiobotocore-packages/default.nix
+++ b/pkgs/development/python-modules/types-aiobotocore-packages/default.nix
@@ -1,5 +1,6 @@
 {
   lib,
+  stdenv,
   aiobotocore,
   botocore,
   buildPythonPackage,
@@ -8,1450 +9,1452 @@
   setuptools,
   typing-extensions,
 }:
+
 let
   toUnderscore = str: builtins.replaceStrings [ "-" ] [ "_" ] str;
-
   buildTypesAiobotocorePackage =
     serviceName: version: hash:
     buildPythonPackage rec {
       pname = "types-aiobotocore-${serviceName}";
       inherit version;
       pyproject = true;
-
       disabled = pythonOlder "3.7";
 
-      src = fetchPypi { inherit pname version hash; };
+      oldStylePackages = [ "gamesparks" "iot-roborunner" "macie" ];
 
+      src = fetchPypi {
+        pname = if builtins.elem serviceName oldStylePackages then
+            "types-aiobotocore-${serviceName}"
+          else
+            "types_aiobotocore_${toUnderscore serviceName}";
+        inherit version hash;
+      };
       build-system = [ setuptools ];
-
       dependencies = [
         aiobotocore
         botocore
       ] ++ lib.optionals (pythonOlder "3.12") [ typing-extensions ];
-
-      # Project has no tests
+      # Module has no tests
       doCheck = false;
-
       pythonImportsCheck = [ "types_aiobotocore_${toUnderscore serviceName}" ];
-
       meta = with lib; {
         description = "Type annotations for aiobotocore ${serviceName}";
         homepage = "https://github.com/youtype/mypy_boto3_builder";
-        license = with licenses; [ mit ];
+        license = licenses.mit;
         maintainers = with maintainers; [ mbalatsko ];
       };
     };
 in
 rec {
   types-aiobotocore-accessanalyzer =
-    buildTypesAiobotocorePackage "accessanalyzer" "2.11.2"
-      "sha256-hUS1ZTj9CbC74Aiinmeh2BEQ2KymcqxuYVSeD12s5xg";
+    buildTypesAiobotocorePackage "accessanalyzer" "2.13.0"
+      "sha256-2rGRzXYKK3p9OCb0navkEMfhOD5KHkn8wcBPL1LaNSw=";
 
   types-aiobotocore-account =
-    buildTypesAiobotocorePackage "account" "2.11.2"
-      "sha256-XtL7R0UrgI/9rSxfNYbA0Lez+DiVyB7R+rhn49Nxerc=";
+    buildTypesAiobotocorePackage "account" "2.13.0"
+      "sha256-AZFkiL11ITJ7BqrQ2n6O36KZTkEnHfWPgCfrNujkSUM=";
 
   types-aiobotocore-acm =
-    buildTypesAiobotocorePackage "acm" "2.11.2"
-      "sha256-vpE1GuvKFPsBf3rTk5V6B4ujFGaHE3wk9yN3j0sM0bo=";
+    buildTypesAiobotocorePackage "acm" "2.13.0"
+      "sha256-3ix+COBwfB2vw9SZdg4VWTll8xnJHklVHGxzETuARIk=";
 
   types-aiobotocore-acm-pca =
-    buildTypesAiobotocorePackage "acm-pca" "2.11.2"
-      "sha256-g9a2ad5hZonlKWGnLQchfT5CAgwqsvseeQBQemCSCQw=";
+    buildTypesAiobotocorePackage "acm-pca" "2.13.0"
+      "sha256-ZnVAvkJfc0T4bjEA2nCXz3HRkqYc25Y/J+1+rs5BP3s=";
 
   types-aiobotocore-alexaforbusiness =
-    buildTypesAiobotocorePackage "alexaforbusiness" "2.12.3"
-      "sha256-eSIy045Ai6VGJTJbCq7sOEskFByShCv1D8S+XyCdP8g=";
+    buildTypesAiobotocorePackage "alexaforbusiness" "2.13.0"
+      "sha256-+w/InoQR2aZ5prieGhgEEp7auBiSSghG5zIIHY5Kyao=";
 
   types-aiobotocore-amp =
-    buildTypesAiobotocorePackage "amp" "2.12.3"
-      "sha256-Q9LX7O74paxJtFgBXpmMHmE5Oymr+KsKc7/a4LkxXsc=";
+    buildTypesAiobotocorePackage "amp" "2.13.0"
+      "sha256-WTFXRsPvia7R7E0E1eUj70j+0gfSz7357jW8rRtjF4M=";
 
   types-aiobotocore-amplify =
-    buildTypesAiobotocorePackage "amplify" "2.12.3"
-      "sha256-/2Ic2KPevRUyQyv2w95ESlGLa1z+j6c7wqO7sJhkglk=";
+    buildTypesAiobotocorePackage "amplify" "2.13.0"
+      "sha256-aTDO+xerXkn8pXEaaP5AMjIxN5WfHjsrwhg+mywYshM=";
 
   types-aiobotocore-amplifybackend =
-    buildTypesAiobotocorePackage "amplifybackend" "2.12.3"
-      "sha256-Z/yUxzo0dmcZbguurdnkplc1xF7Ro7t0Fpp4frqo8fw=";
+    buildTypesAiobotocorePackage "amplifybackend" "2.13.0"
+      "sha256-SjPzrFsewsxhtFZ9I+M8TdogzhIHZ5+EQDezOKjxjzI=";
 
   types-aiobotocore-amplifyuibuilder =
-    buildTypesAiobotocorePackage "amplifyuibuilder" "2.12.3"
-      "sha256-Nziq7FXFXAGfzV36uLVoXJP3N/gA3ydhR1zOL2DAi50=";
+    buildTypesAiobotocorePackage "amplifyuibuilder" "2.13.0"
+      "sha256-X7rXIFPTWoLSH8qeEr82lasrMWmMxIcvf54GqFhrBuI=";
 
   types-aiobotocore-apigateway =
-    buildTypesAiobotocorePackage "apigateway" "2.12.3"
-      "sha256-2k0txnK7EV4REsOEynvy1+twaP5rJVI6yIBO59LSKww=";
+    buildTypesAiobotocorePackage "apigateway" "2.13.0"
+      "sha256-MeO+lzOoycmkMyYRo5oGv38imF3FxE3PqldSByd80IM=";
 
   types-aiobotocore-apigatewaymanagementapi =
-    buildTypesAiobotocorePackage "apigatewaymanagementapi" "2.12.3"
-      "sha256-0GVRVAWl4NrqJScy69zhNt/sFq03gquN2CbEPoja1ug=";
+    buildTypesAiobotocorePackage "apigatewaymanagementapi" "2.13.0"
+      "sha256-nzo28vBn5eB6DTBJd0MKqnWglnVnFvTctK6AvdUUIl4=";
 
   types-aiobotocore-apigatewayv2 =
-    buildTypesAiobotocorePackage "apigatewayv2" "2.12.3"
-      "sha256-+CpKEb30BCdrRAE/3xO3wIBxMXLTyCOJxu4YScDDk6k=";
+    buildTypesAiobotocorePackage "apigatewayv2" "2.13.0"
+      "sha256-09iYkY/l9OlvJ8G6t2RDjidefo7xRcCNvHXwNuct+eM=";
 
   types-aiobotocore-appconfig =
-    buildTypesAiobotocorePackage "appconfig" "2.12.3"
-      "sha256-/90wLlLiPLTKxnAqgqhTbtc1hmSalzwD8yHh7/shrFs=";
+    buildTypesAiobotocorePackage "appconfig" "2.13.0"
+      "sha256-LcRjuQxaVqSaBL2o5zZSwJcFvWpnJppGWrodhxVTylw=";
 
   types-aiobotocore-appconfigdata =
-    buildTypesAiobotocorePackage "appconfigdata" "2.12.3"
-      "sha256-KXNCQswudY3MGCBd37kGXuG6TJz3jzD7Y3LsWLvWPYw=";
+    buildTypesAiobotocorePackage "appconfigdata" "2.13.0"
+      "sha256-GdNvsp/kLjvbk0AXe81RU0OpOy8rNtsYbUCzzsbNqak=";
 
   types-aiobotocore-appfabric =
-    buildTypesAiobotocorePackage "appfabric" "2.12.3"
-      "sha256-1pfpKQ0tmQU3Rm8DGPfDsALecd9XUeeQq/H8Tnp9v4A=";
+    buildTypesAiobotocorePackage "appfabric" "2.13.0"
+      "sha256-Zjrdq4psuqLpx5Dfc+jFz1bJjr6aN/lw4cxdrP1FxYc=";
 
   types-aiobotocore-appflow =
-    buildTypesAiobotocorePackage "appflow" "2.12.3"
-      "sha256-c7pC0InqhtHuDKlEln9lt3tQL6w7Af9vxXuIZnhrdqY=";
+    buildTypesAiobotocorePackage "appflow" "2.13.0"
+      "sha256-3FzQHi9zHeIOw+4VC+4ad+tcgqHkIOnVbwLIDOX29qY=";
 
   types-aiobotocore-appintegrations =
-    buildTypesAiobotocorePackage "appintegrations" "2.12.3"
-      "sha256-lJJXK+Wy6PvAQaCrKDe2GdHEjkuIY+mFmQt62xj21y4=";
+    buildTypesAiobotocorePackage "appintegrations" "2.13.0"
+      "sha256-w8A+hrPeNSIHHcybIYHX3Yv14eAsJeVE5oQaRlqC7cc=";
 
   types-aiobotocore-application-autoscaling =
-    buildTypesAiobotocorePackage "application-autoscaling" "2.12.3"
-      "sha256-n1EMzB6uPQtYz4sSx6uvhk3ONjX9olg+5OkJoX6QUUo=";
+    buildTypesAiobotocorePackage "application-autoscaling" "2.13.0"
+      "sha256-dY3cmGpEBK0IR6A32rv3rQlA0HPRVEQ38uRF1tVHpkE=";
 
   types-aiobotocore-application-insights =
-    buildTypesAiobotocorePackage "application-insights" "2.12.3"
-      "sha256-m9STzjg6PfbKi4mxM28Nh5eDVPPaoSjwLhy6bJ5z8vg=";
+    buildTypesAiobotocorePackage "application-insights" "2.13.0"
+      "sha256-rMjqSqhjIVRwDGWuMh/l42R40HDH/YNO61GJecPS8ns=";
 
   types-aiobotocore-applicationcostprofiler =
-    buildTypesAiobotocorePackage "applicationcostprofiler" "2.12.3"
-      "sha256-fOZzzkp4q11/pM7tFVsUCuxcAbp09icWOq7Ys89u8Q0=";
+    buildTypesAiobotocorePackage "applicationcostprofiler" "2.13.0"
+      "sha256-bwkDaXZzvzs+o1xc7Iw49Q/OkDqgGkERsmc5mg5cDGU=";
 
   types-aiobotocore-appmesh =
-    buildTypesAiobotocorePackage "appmesh" "2.12.3"
-      "sha256-Ovib8qtm+ZCIJ/cQwVB5ksmYpeO8xDoIvkgvnRhL2jY=";
+    buildTypesAiobotocorePackage "appmesh" "2.13.0"
+      "sha256-Q8EH1n2JyREf6C16pa1aaI3G12OtUODcRtffVq4T/kI=";
 
   types-aiobotocore-apprunner =
-    buildTypesAiobotocorePackage "apprunner" "2.12.3"
-      "sha256-hRsWYed0ZwgfgkXRAuVfsmAuaJqTYogLVXtQkDGskMI=";
+    buildTypesAiobotocorePackage "apprunner" "2.13.0"
+      "sha256-jUYqurcU2DLVlWwEglTQciaukFTv27k54AuuROfcySE=";
 
   types-aiobotocore-appstream =
-    buildTypesAiobotocorePackage "appstream" "2.12.3"
-      "sha256-cpXkWYtPnkVDGbkhgy8s5DgvEHYLRe5Huygkfk/W998=";
+    buildTypesAiobotocorePackage "appstream" "2.13.0"
+      "sha256-Zlt7YYpOwMDM3QKu0w+dbdQ+hyEVY7LiZmAj6pwAbpA=";
 
   types-aiobotocore-appsync =
-    buildTypesAiobotocorePackage "appsync" "2.12.3"
-      "sha256-Dem6NGryjCUzQBMCXCNFvop51KhdmIopDUjI2OofEGA=";
+    buildTypesAiobotocorePackage "appsync" "2.13.0"
+      "sha256-8/BY5YO5fpICY/sr65eNlask8ndV2XvywOlx2OrtHyI=";
 
   types-aiobotocore-arc-zonal-shift =
-    buildTypesAiobotocorePackage "arc-zonal-shift" "2.12.3"
-      "sha256-qAMj0+7ywqR/89lUUyRcaqPdVgbARYLdjqMFKOuohZI=";
+    buildTypesAiobotocorePackage "arc-zonal-shift" "2.13.0"
+      "sha256-ekiWpPFp19h60dcWlDh4kDxwKGHMQnGktqf79lyKRl8=";
 
   types-aiobotocore-athena =
-    buildTypesAiobotocorePackage "athena" "2.12.3"
-      "sha256-D1RbyLJdOrMm1dGq6FiRPYEZ1pbMTA14tJEyukqtFXs=";
+    buildTypesAiobotocorePackage "athena" "2.13.0"
+      "sha256-fgYlxpwdOFJJT3M7KL3ZptXAA3Kh5bqI49dlpDTqb/c=";
 
   types-aiobotocore-auditmanager =
-    buildTypesAiobotocorePackage "auditmanager" "2.12.3"
-      "sha256-Oqr3fp5uXPeleOlSFGzqeS7yUcqI+WJlPsLsYTBWfp4=";
+    buildTypesAiobotocorePackage "auditmanager" "2.13.0"
+      "sha256-KSB1DTKg4lqffLOznLbWVkoyJzlzY4vBY/yDs5iU4Zw=";
 
   types-aiobotocore-autoscaling =
-    buildTypesAiobotocorePackage "autoscaling" "2.12.3"
-      "sha256-f32qZpqQ27sujqeA5V7opwQ2LBLuLgcKEvYxgn53Z/A=";
+    buildTypesAiobotocorePackage "autoscaling" "2.13.0"
+      "sha256-TJ7kUw4+I4ULd0C6h1jPxSXcdQdKVCex4kCKDaoh4VA=";
 
   types-aiobotocore-autoscaling-plans =
-    buildTypesAiobotocorePackage "autoscaling-plans" "2.12.3"
-      "sha256-gZItvHv6bKmUJo7N68E43nNipGuVPru1FpirryM613A=";
+    buildTypesAiobotocorePackage "autoscaling-plans" "2.13.0"
+      "sha256-gwrLUcGcLzrHUcr2IC00n5AARmomcplngo4Wen/KLSI=";
 
   types-aiobotocore-backup =
-    buildTypesAiobotocorePackage "backup" "2.12.3"
-      "sha256-n7TwvQPRPpjucEdl8oqhRCyuoUobC94eoaxo3fUcX0k=";
+    buildTypesAiobotocorePackage "backup" "2.13.0"
+      "sha256-zvzQxpvc9BLRhyEFJuGy+eWXBp164g4GNK0h6MlmOus=";
 
   types-aiobotocore-backup-gateway =
-    buildTypesAiobotocorePackage "backup-gateway" "2.12.3"
-      "sha256-y5tONAuzm2ReIX2ZbXkgCdm1mdOwELVTiI/E88y3RRM=";
+    buildTypesAiobotocorePackage "backup-gateway" "2.13.0"
+      "sha256-aEb7RKPyB2bqBY0stzW4pQs7bxo/p2k48/+L5C5YGzg=";
 
   types-aiobotocore-backupstorage =
-    buildTypesAiobotocorePackage "backupstorage" "2.12.3"
-      "sha256-XMNbgsaMB1xCMffocyb8Qm/vVgwUFJ3HR7vjS4WNJjg=";
+    buildTypesAiobotocorePackage "backupstorage" "2.13.0"
+      "sha256-YUKtBdBrdwL2yqDqOovvzDPbcv/sD8JLRnKz3Oh7iSU=";
 
   types-aiobotocore-batch =
-    buildTypesAiobotocorePackage "batch" "2.12.3"
-      "sha256-+agBXcUaXKm0gmrLk5S5CUaivA7UOxQegBFXRwNIRoI=";
+    buildTypesAiobotocorePackage "batch" "2.13.0"
+      "sha256-pbtnM1AriZtRP/HJc41dDlobc3xSsTfTp/zJocuKlg8=";
 
   types-aiobotocore-billingconductor =
-    buildTypesAiobotocorePackage "billingconductor" "2.12.3"
-      "sha256-188KzcjDcJF5uoBKsFNBSxrFThz8HzuF20dUA4+2aqY=";
+    buildTypesAiobotocorePackage "billingconductor" "2.13.0"
+      "sha256-xF44RthHgDDS5ByOypisgNuc+WEMVNrv5HLGzYR9JYE=";
 
   types-aiobotocore-braket =
-    buildTypesAiobotocorePackage "braket" "2.12.3"
-      "sha256-Q17Y1YmrT8DdP/iqeXXFg+Nixx6602jVp7EvwglZXHA=";
+    buildTypesAiobotocorePackage "braket" "2.13.0"
+      "sha256-HrvVOyhXIyyYeWOUGd7/j8Tzl3jTLntxxjvy/Mc7wrE=";
 
   types-aiobotocore-budgets =
-    buildTypesAiobotocorePackage "budgets" "2.12.3"
-      "sha256-R1qcbs1TFd/hqXBbE1byIBHfhX71LXITICQtT1y2E0w=";
+    buildTypesAiobotocorePackage "budgets" "2.13.0"
+      "sha256-xz4ufUY8jlYNfM3s+v1eKTfwd4kNILHyc/R2RnDomJ0=";
 
   types-aiobotocore-ce =
-    buildTypesAiobotocorePackage "ce" "2.12.3"
-      "sha256-zpwmqCaymuhlXNQFmOXRwedgyJXqnbKQkzaJVmL+YcI=";
+    buildTypesAiobotocorePackage "ce" "2.13.0"
+      "sha256-v5BUWy2kn0FCu3Megiz14zRNMz5FA8sU70JAseQ+ta4=";
 
   types-aiobotocore-chime =
-    buildTypesAiobotocorePackage "chime" "2.12.3"
-      "sha256-qoOzWvS2oU27h0G3rDJrD3A7uDTT1nE3r91Jurs1VL8=";
+    buildTypesAiobotocorePackage "chime" "2.13.0"
+      "sha256-77yNiBRXsIHdzq0l3OuDcpgLP+Os8fQ0BHD2mbG6318=";
 
   types-aiobotocore-chime-sdk-identity =
-    buildTypesAiobotocorePackage "chime-sdk-identity" "2.12.3"
-      "sha256-c4lXCVVtzb1nYHpHCkC6GhaKAGh59f10HOF4pt6jDZQ=";
+    buildTypesAiobotocorePackage "chime-sdk-identity" "2.13.0"
+      "sha256-XNCLUW6nzzZjyvHCaaIJ/T4gTM8N+442xCeL8XBNTsI=";
 
   types-aiobotocore-chime-sdk-media-pipelines =
-    buildTypesAiobotocorePackage "chime-sdk-media-pipelines" "2.12.3"
-      "sha256-UiUNm5obofAynGBDUU9dDTnALCgquEeD0CWikJoffcg=";
+    buildTypesAiobotocorePackage "chime-sdk-media-pipelines" "2.13.0"
+      "sha256-qbOkIqemaH4TCqW2/6gYTyfPOlwHyRPLmz5f88HI+b0=";
 
   types-aiobotocore-chime-sdk-meetings =
-    buildTypesAiobotocorePackage "chime-sdk-meetings" "2.12.3"
-      "sha256-PRgs4jqH+H77oq8TJnp8BvxFe+VeGAt2HJqGAswsJ48=";
+    buildTypesAiobotocorePackage "chime-sdk-meetings" "2.13.0"
+      "sha256-TVZRLx8lI0yZN6nOtdq3WhF6OkUFMWGTp25351JTE5E=";
 
   types-aiobotocore-chime-sdk-messaging =
-    buildTypesAiobotocorePackage "chime-sdk-messaging" "2.12.3"
-      "sha256-jhelKCrofsCsoEiQCgkgbmyxPDEzRmrflzsOYEG5VBg=";
+    buildTypesAiobotocorePackage "chime-sdk-messaging" "2.13.0"
+      "sha256-48fjMzUahQ7P4cC0b5JG8czayHNAWuVvgD6v7/LTkjU=";
 
   types-aiobotocore-chime-sdk-voice =
-    buildTypesAiobotocorePackage "chime-sdk-voice" "2.12.3"
-      "sha256-ycz16wpxuooSUJNo2EF578mQ/vuN19wORbRO4KIYAlw=";
+    buildTypesAiobotocorePackage "chime-sdk-voice" "2.13.0"
+      "sha256-lxDHSs3VxWJ4Evu9msY3f9rWb+Fm8yrrsZy8usMu4vE=";
 
   types-aiobotocore-cleanrooms =
-    buildTypesAiobotocorePackage "cleanrooms" "2.12.3"
-      "sha256-chPRscE8/t0zweeG2oI9Ffe9MhUfro3r67WPQMRrVVI=";
+    buildTypesAiobotocorePackage "cleanrooms" "2.13.0"
+      "sha256-AVUVMbvgYxkc8ksqwoFTyjxUbb79Yl4577Scavnj0Cs=";
 
   types-aiobotocore-cloud9 =
-    buildTypesAiobotocorePackage "cloud9" "2.12.3"
-      "sha256-MsppSKc4o0kkEn+YS8fjmRHMMHCk/vp7MzwWSeMbfO8=";
+    buildTypesAiobotocorePackage "cloud9" "2.13.0"
+      "sha256-AYixLXRtXT24h3mFOQ2cWfTLNbXQHmGPnx/VZ7IK4ow=";
 
   types-aiobotocore-cloudcontrol =
-    buildTypesAiobotocorePackage "cloudcontrol" "2.12.3"
-      "sha256-QtvI10XobuCCTdbJZk1JV8rbUnaKp1NhTQA4pOrl/8A=";
+    buildTypesAiobotocorePackage "cloudcontrol" "2.13.0"
+      "sha256-FBRfBadhpoAcLMgAe7hAJbTtjgPRPSlJESuDZPriGv0=";
 
   types-aiobotocore-clouddirectory =
-    buildTypesAiobotocorePackage "clouddirectory" "2.12.3"
-      "sha256-mrLk190wtLVLBY9oLKCBcGgNRRsOF4SAxMnyDvHif2U=";
+    buildTypesAiobotocorePackage "clouddirectory" "2.13.0"
+      "sha256-ELw+jWSGWPeQJNiv18908fodXCKE8/sJ0/wzOgkixuA=";
 
   types-aiobotocore-cloudformation =
-    buildTypesAiobotocorePackage "cloudformation" "2.12.3"
-      "sha256-vjNBwP+SPBXBO9c7W+zOm800kNDfQYHs58ERS82/Hvk=";
+    buildTypesAiobotocorePackage "cloudformation" "2.13.0"
+      "sha256-8s+cGZ339c8Xf/AGFR6Y6Fsdz1pOW3KlYKAuo1e12Ss=";
 
   types-aiobotocore-cloudfront =
-    buildTypesAiobotocorePackage "cloudfront" "2.12.3"
-      "sha256-xD0zbOk1Vjzr3DslNSQqFBIIN4NliV3rVlAmUcgfp7E=";
+    buildTypesAiobotocorePackage "cloudfront" "2.13.0"
+      "sha256-9uGsmz+S8Te3/hOZoIZIqLg0EG3Mz/fM1k8LWSe4rLY=";
 
   types-aiobotocore-cloudhsm =
-    buildTypesAiobotocorePackage "cloudhsm" "2.12.3"
-      "sha256-PXuzI5csFVH9FbW7U0p71U9N3Avmjy0SK4ULdnqyWv4=";
+    buildTypesAiobotocorePackage "cloudhsm" "2.13.0"
+      "sha256-/uqAAVrtejrLdZEFrDhK84nhhr8An4Ha2O6HbcnfPL0=";
 
   types-aiobotocore-cloudhsmv2 =
-    buildTypesAiobotocorePackage "cloudhsmv2" "2.12.3"
-      "sha256-FBC4K4XZglWNdXvaf5vgk0KwlaO4HgQ+CsTxX8RpJSY=";
+    buildTypesAiobotocorePackage "cloudhsmv2" "2.13.0"
+      "sha256-/QZuBKPxLDmZXB15Mlia4nKhVpDniavrHbjsdtg+61g=";
 
   types-aiobotocore-cloudsearch =
-    buildTypesAiobotocorePackage "cloudsearch" "2.12.3"
-      "sha256-0bIEY8/+KkoRXyaxV3XlsvNbhZGgi5Yfkaoe2G8Hx7U=";
+    buildTypesAiobotocorePackage "cloudsearch" "2.13.0"
+      "sha256-TJ8gYpQgqtIJv6COksxKzv0QvlMrnGJF6+vclKxkONM=";
 
   types-aiobotocore-cloudsearchdomain =
-    buildTypesAiobotocorePackage "cloudsearchdomain" "2.12.3"
-      "sha256-sQJloZGuAt3FDiVu0rXB4fs6LQ8Ypwanbhk905JlAWE=";
+    buildTypesAiobotocorePackage "cloudsearchdomain" "2.13.0"
+      "sha256-wzMsnA1GbS8VIc0wCL9hWdsYV/ygCYmorBzEjbQbhTc=";
 
   types-aiobotocore-cloudtrail =
-    buildTypesAiobotocorePackage "cloudtrail" "2.12.3"
-      "sha256-kir3GveVZbvSEjnna0xKETIA/qKLgCZUxQ95WCw25vY=";
+    buildTypesAiobotocorePackage "cloudtrail" "2.13.0"
+      "sha256-2XXac5p2UGkczHqR0h3Nf8Q6pAcfML3b9pMwEXwz2XM=";
 
   types-aiobotocore-cloudtrail-data =
-    buildTypesAiobotocorePackage "cloudtrail-data" "2.12.3"
-      "sha256-o+CM6IzDuQJz/Hcmzs4Z//21ujWzILBVN+TpfW0BnAc=";
+    buildTypesAiobotocorePackage "cloudtrail-data" "2.13.0"
+      "sha256-VcJu3TW7Ha8VBZoJSH3owe6ufCSoIYQqfOfEg1Trx5Y=";
 
   types-aiobotocore-cloudwatch =
-    buildTypesAiobotocorePackage "cloudwatch" "2.12.3"
-      "sha256-s0smSONUSY6hwm81yQXTa0hOe+0FfYHWJ+a2V8vWtnQ=";
+    buildTypesAiobotocorePackage "cloudwatch" "2.13.0"
+      "sha256-BPWVovVZAd/sif+YTkGM/WpOoJp6uwpUMeKmGFd/LGg=";
 
   types-aiobotocore-codeartifact =
-    buildTypesAiobotocorePackage "codeartifact" "2.12.3"
-      "sha256-ueY0F1OWpMsFOOSzsE+P4aJ4r0R5UhoefuNyBL5kFSQ=";
+    buildTypesAiobotocorePackage "codeartifact" "2.13.0"
+      "sha256-kNaKAn54V5xhQv1faxjrhChZ7icBAJJZTqibSdwYTk4=";
 
   types-aiobotocore-codebuild =
-    buildTypesAiobotocorePackage "codebuild" "2.12.3"
-      "sha256-FdTkOmj1ISBgBTcdf0z5QK/LxvsTobvKMqAd4hFK9bc=";
+    buildTypesAiobotocorePackage "codebuild" "2.13.0"
+      "sha256-myGVjxJ/1CvAt913JQXE9/7pGW8anI4F2JrEX7lgaOQ=";
 
   types-aiobotocore-codecatalyst =
-    buildTypesAiobotocorePackage "codecatalyst" "2.12.3"
-      "sha256-J4kvblSIcjSsdtTIcxFEO5Dhno8Q8yrD1t/CYr4wmaQ=";
+    buildTypesAiobotocorePackage "codecatalyst" "2.13.0"
+      "sha256-gCJYgtZcErsh6e/dupRxG2tDdau4wB9nT+HJdRgI6gc=";
 
   types-aiobotocore-codecommit =
-    buildTypesAiobotocorePackage "codecommit" "2.12.3"
-      "sha256-ipolOmnH/0M8Y+GY8qoOPhoDfs1nqMqoMotT2n/BSB8=";
+    buildTypesAiobotocorePackage "codecommit" "2.13.0"
+      "sha256-rcJSBY35FT2aG91rsZqxS3QwYkP9MBfCQLAgR8ZZ60g=";
 
   types-aiobotocore-codedeploy =
-    buildTypesAiobotocorePackage "codedeploy" "2.12.3"
-      "sha256-aEIj+XsEq35mzKliuUICkIoJV3Mx+l7kd+pFP+mX+Us=";
+    buildTypesAiobotocorePackage "codedeploy" "2.13.0"
+      "sha256-pjVsGz/wmxwm3r1a5M9oMqRYACXpzsBJZR62GFQKw9Q=";
 
   types-aiobotocore-codeguru-reviewer =
-    buildTypesAiobotocorePackage "codeguru-reviewer" "2.12.3"
-      "sha256-UxR7jMxmKeqo2dazqRsnGCHmeycL2uwmuOxzN2Ug06I=";
+    buildTypesAiobotocorePackage "codeguru-reviewer" "2.13.0"
+      "sha256-t+ZK1nVpuAEzTzokBQ+HDd9pbRNv/Z+AsYA+3+nHKLE=";
 
   types-aiobotocore-codeguru-security =
-    buildTypesAiobotocorePackage "codeguru-security" "2.12.3"
-      "sha256-Dn8upHxWZMl5QRye+v47vlgi/SqhQi8PUOcVX8no7zQ=";
+    buildTypesAiobotocorePackage "codeguru-security" "2.13.0"
+      "sha256-Or5a/BiJnYMvXDZvCRJ59GsvYr8Um/ziypVohwarFYg=";
 
   types-aiobotocore-codeguruprofiler =
-    buildTypesAiobotocorePackage "codeguruprofiler" "2.12.3"
-      "sha256-s1hhUmQ09fkP7DRGAoajbBrIr8AWioJBXO6vC/kbk9s=";
+    buildTypesAiobotocorePackage "codeguruprofiler" "2.13.0"
+      "sha256-UZHJByboBKeyGYF6SfdFzcuZKAUOyK8Uh92cdQ4Z36g=";
 
   types-aiobotocore-codepipeline =
-    buildTypesAiobotocorePackage "codepipeline" "2.12.3"
-      "sha256-pS8TgS/thI4GJY7TqdSLFjnWltjZraE8QDV02GlL0Zc=";
+    buildTypesAiobotocorePackage "codepipeline" "2.13.0"
+      "sha256-9ewkKGfQeeIPLYsgiq3RI2f8Q+g1/QFaqTvcqpXtPt8=";
 
   types-aiobotocore-codestar =
-    buildTypesAiobotocorePackage "codestar" "2.12.3"
-      "sha256-jciY4abtX0IMbxCGPrOshFQE8jNyqDS67UqUgt0UYe4=";
+    buildTypesAiobotocorePackage "codestar" "2.13.0"
+      "sha256-nvkAGHA2VL7tGHz/VZiWHKRcHDN87eDq8js127VlZMk=";
 
   types-aiobotocore-codestar-connections =
-    buildTypesAiobotocorePackage "codestar-connections" "2.12.3"
-      "sha256-W1/tJKDFRpHB1hsguuAbDCHe+lzh0UAIWlqYVS83MyI=";
+    buildTypesAiobotocorePackage "codestar-connections" "2.13.0"
+      "sha256-huStUWVW5h9PPm4k0IjZoS7mBXYEf1nuc/BbYASjJYo=";
 
   types-aiobotocore-codestar-notifications =
-    buildTypesAiobotocorePackage "codestar-notifications" "2.12.3"
-      "sha256-1r65KMMX+A6Ww3+MgG9kIXH48zI9yxt/FbNXq7ATACs=";
+    buildTypesAiobotocorePackage "codestar-notifications" "2.13.0"
+      "sha256-9Amvc3yj1khFTLpYsqUGPlTRCjbW3J9Y7Htr9gkSEAQ=";
 
   types-aiobotocore-cognito-identity =
-    buildTypesAiobotocorePackage "cognito-identity" "2.12.3"
-      "sha256-Njd/E0EgRqq69EhYhbrmcu71GFvoqG9vI61i4RXIInQ=";
+    buildTypesAiobotocorePackage "cognito-identity" "2.13.0"
+      "sha256-Vr+ZB3RAWOdioDoKn6O8LCQGqM67x+3Yvq6DvYjwbSQ=";
 
   types-aiobotocore-cognito-idp =
-    buildTypesAiobotocorePackage "cognito-idp" "2.12.3"
-      "sha256-eFjfo4grkBO9FGUySGAOclXUjJ+RzaeI0FG7GqZweNc=";
+    buildTypesAiobotocorePackage "cognito-idp" "2.13.0"
+      "sha256-ryZ+wZ3acevXf3gIZV37Lb2t5LGtz6RVrKok6OUYt7Q=";
 
   types-aiobotocore-cognito-sync =
-    buildTypesAiobotocorePackage "cognito-sync" "2.12.3"
-      "sha256-wSOf6kdxIA2oe2a06c9MuIxnvmPb1UZoY+TPKKWNgfA=";
+    buildTypesAiobotocorePackage "cognito-sync" "2.13.0"
+      "sha256-XnAF9Zz+BslG+teKTgWVKqBKxv159gJqRVvP3fF2BU4=";
 
   types-aiobotocore-comprehend =
-    buildTypesAiobotocorePackage "comprehend" "2.12.3"
-      "sha256-TSZn6O5sSqutb+hcA5tJWplkN8jN7q1uVfQyoK6p+sM=";
+    buildTypesAiobotocorePackage "comprehend" "2.13.0"
+      "sha256-NzcktZnXaylZ0OzDWQV9r7G+Yk/QJvqApcBOggk5yg4=";
 
   types-aiobotocore-comprehendmedical =
-    buildTypesAiobotocorePackage "comprehendmedical" "2.12.3"
-      "sha256-foykefLjYtgroFE14HAKJ0qK/vL7U6LGGP3z8P/ZV9E=";
+    buildTypesAiobotocorePackage "comprehendmedical" "2.13.0"
+      "sha256-cn1rch5FwLmFJPM5G8YmKzRuZ5VEyB1vkapOeSg0QEA=";
 
   types-aiobotocore-compute-optimizer =
-    buildTypesAiobotocorePackage "compute-optimizer" "2.12.3"
-      "sha256-HM7wBstqaO6pnvXHGTgiIa1FcdJGImW/2BFl/stRJ/w=";
+    buildTypesAiobotocorePackage "compute-optimizer" "2.13.0"
+      "sha256-e+WsU3fcS7Al+IEibaxaM7lYFFHJNEaW2ULd37wA17o=";
 
   types-aiobotocore-config =
-    buildTypesAiobotocorePackage "config" "2.12.3"
-      "sha256-Ab7L47TU/w5Mk36MJGb3VfHG1wXyHmePDaP37FnQikM=";
+    buildTypesAiobotocorePackage "config" "2.13.0"
+      "sha256-wWrYX1uqUkHegLr3bjyP3TZjBst6+dCMEpK1lXVnMo0=";
 
   types-aiobotocore-connect =
-    buildTypesAiobotocorePackage "connect" "2.12.3"
-      "sha256-R+p+mV/+SMFaWczEwECfoReQ9KBswiYj0jGysFPn/LQ=";
+    buildTypesAiobotocorePackage "connect" "2.13.0"
+      "sha256-OfnncqMXbS7bH7VqKlvMNuj4ixmoli3MlDxrMq1Zmj0=";
 
   types-aiobotocore-connect-contact-lens =
-    buildTypesAiobotocorePackage "connect-contact-lens" "2.12.3"
-      "sha256-KuyJAoend5pAMEEh1EbqUuhWwoFSI5QyJhL/T4fg3vA=";
+    buildTypesAiobotocorePackage "connect-contact-lens" "2.13.0"
+      "sha256-PEOGQ3/cMA2JxN87CyJx4FeuY2l6YP9ZMsVlZQuVnOI=";
 
   types-aiobotocore-connectcampaigns =
-    buildTypesAiobotocorePackage "connectcampaigns" "2.12.3"
-      "sha256-8RDp99dyEgxBQNJbQXMxU6Td6rCKBaOtvk22mGVkMpo=";
+    buildTypesAiobotocorePackage "connectcampaigns" "2.13.0"
+      "sha256-pdEDzu2cBdsdDZ9MBkuXXXouIWLczlnQLLLrJ2ZrdvE=";
 
   types-aiobotocore-connectcases =
-    buildTypesAiobotocorePackage "connectcases" "2.12.3"
-      "sha256-ka9T0Ln54mHiPec74fHYkOBL3RbJJ+hVOSkqh35LBXs=";
+    buildTypesAiobotocorePackage "connectcases" "2.13.0"
+      "sha256-7HQAZPgHTGNmE3cZKsPE3Q1FSD1DOpxhmgx7k2VvRfI=";
 
   types-aiobotocore-connectparticipant =
-    buildTypesAiobotocorePackage "connectparticipant" "2.12.3"
-      "sha256-nAUWrVmTO2PbB4aJERZaZ2NBdE/fH5pyj2UYPxn1BJ0=";
+    buildTypesAiobotocorePackage "connectparticipant" "2.13.0"
+      "sha256-mxTtpPu8ejJhwBUqpIJld9tQgx2+KdZDCWLxgz3KIbI=";
 
   types-aiobotocore-controltower =
-    buildTypesAiobotocorePackage "controltower" "2.12.3"
-      "sha256-tXkoU2hPbB0IYR0QP9yKSLwRknrIcupeeIjHoZD8id4=";
+    buildTypesAiobotocorePackage "controltower" "2.13.0"
+      "sha256-BpX2KPUIEzev3J59SjXr2+87So9AYcPP4NqqqYxg7nM=";
 
   types-aiobotocore-cur =
-    buildTypesAiobotocorePackage "cur" "2.12.3"
-      "sha256-DbLeEVfr1xXtwIT9eqBY6+Enk1AFfF4ChzOeSO2jSc8=";
+    buildTypesAiobotocorePackage "cur" "2.13.0"
+      "sha256-R23tUBiFw3XIwd5dPEKosq+JjOcaan4mefgrnb/tnZ4=";
 
   types-aiobotocore-customer-profiles =
-    buildTypesAiobotocorePackage "customer-profiles" "2.12.3"
-      "sha256-TpmMtpIVdE2SPr+ZaKHUoNqJQFoglcyF4pBIn0jkW9Q=";
+    buildTypesAiobotocorePackage "customer-profiles" "2.13.0"
+      "sha256-g52TkGMLMtLZceDfPEuT/+A/uiVdqnZODxzJUwihin0=";
 
   types-aiobotocore-databrew =
-    buildTypesAiobotocorePackage "databrew" "2.12.3"
-      "sha256-fKUL2ZJgytMhv4rni6lD92M1uh1vnUfFcjh30Tdfofk=";
+    buildTypesAiobotocorePackage "databrew" "2.13.0"
+      "sha256-Gejx2MwkOofstb/goBp0C9qSWcpLW2E5Fgn46VAtK0w=";
 
   types-aiobotocore-dataexchange =
-    buildTypesAiobotocorePackage "dataexchange" "2.12.3"
-      "sha256-x5t5rK4UQ4ltFqSB2dyG6NXrzoJLPBBF8Ovn8Fka8Mo=";
+    buildTypesAiobotocorePackage "dataexchange" "2.13.0"
+      "sha256-fQzxx8jCPu4/TdtNrOQITAEFGzyPccCNK6diQu/4Imo=";
 
   types-aiobotocore-datapipeline =
-    buildTypesAiobotocorePackage "datapipeline" "2.12.3"
-      "sha256-eMMWqVDoEmIJV3P4aA15bXsWEJ1cBpcvFf6elzvKBsM=";
+    buildTypesAiobotocorePackage "datapipeline" "2.13.0"
+      "sha256-GTh5tb9BwtM2zNvAQ47DvwlbgwNhOuL9Vofq3MVJ7ic=";
 
   types-aiobotocore-datasync =
-    buildTypesAiobotocorePackage "datasync" "2.12.3"
-      "sha256-TMD7XAqQivkQJbwBr6B4s629euXQyvxglG+hFhH7C8s=";
+    buildTypesAiobotocorePackage "datasync" "2.13.0"
+      "sha256-wdInWu2P70+17ir7mpBK/qO7+sT5bp/lKIkOQwfk3tk=";
 
   types-aiobotocore-dax =
-    buildTypesAiobotocorePackage "dax" "2.12.3"
-      "sha256-JV8EpsEUOmeGEvSmb2zUboota0wu99TcvBcwkYGFa50=";
+    buildTypesAiobotocorePackage "dax" "2.13.0"
+      "sha256-qFfp+vOsmY43ipbENzgzQXBoNnTQ+jFXyxe9QL7y58c=";
 
   types-aiobotocore-detective =
-    buildTypesAiobotocorePackage "detective" "2.12.3"
-      "sha256-1SRrURvp+hOnYWZsANu8waOJJ4SUBzGPAEFwNFyW4zc=";
+    buildTypesAiobotocorePackage "detective" "2.13.0"
+      "sha256-K9ofKUFMP3qY86xRNgpjZen6R1gOcvVZ0ry9A7geTKQ=";
 
   types-aiobotocore-devicefarm =
-    buildTypesAiobotocorePackage "devicefarm" "2.12.3"
-      "sha256-3XTNHMYWlZUK7o7XQYpnsCq3FHBYuXJ6y2iVM+caKcc=";
+    buildTypesAiobotocorePackage "devicefarm" "2.13.0"
+      "sha256-hfqMkbY/VKpx9Ew0Li9eCiBN17LK/UOZWYpoAZ2IaQo=";
 
   types-aiobotocore-devops-guru =
-    buildTypesAiobotocorePackage "devops-guru" "2.12.3"
-      "sha256-kfeH7r2zaNw3gDH7QqKe2x93kEfzeUMY5aBOJFDz3vE=";
+    buildTypesAiobotocorePackage "devops-guru" "2.13.0"
+      "sha256-nQv5dFtxEwm1PJExUdId8LOXF/stNBIg96wgJJb+nYQ=";
 
   types-aiobotocore-directconnect =
-    buildTypesAiobotocorePackage "directconnect" "2.12.3"
-      "sha256-0fsNThA4QJhTC8JlTJviOv+GwrMvVQxoddvRX4+Nrtk=";
+    buildTypesAiobotocorePackage "directconnect" "2.13.0"
+      "sha256-Gc5vGyASaYsEqYRGX9fbIuOYNVKzdjFYXd20U1Wo8BM=";
 
   types-aiobotocore-discovery =
-    buildTypesAiobotocorePackage "discovery" "2.12.3"
-      "sha256-acjirpyoMe2Mq72IuGHb85q/B0UHhQ2wEJO9Cy+OHmQ=";
+    buildTypesAiobotocorePackage "discovery" "2.13.0"
+      "sha256-Hjq8egh2iPANaq4LehzVS/kMX/Uh0/S7YFFPDuTA+N4=";
 
   types-aiobotocore-dlm =
-    buildTypesAiobotocorePackage "dlm" "2.12.3"
-      "sha256-Z4V00bBobcChsYr6MPJ+pwCV1VJwHVMeks2URMVGzgk=";
+    buildTypesAiobotocorePackage "dlm" "2.13.0"
+      "sha256-fS4Y28YisR0C3MQWQsBwCfKfqaffZCbHu6sZZeao/ds=";
 
   types-aiobotocore-dms =
-    buildTypesAiobotocorePackage "dms" "2.12.3"
-      "sha256-JG8rHk86RHyCEeLPGHERMZ1f+gBAcS+TI+RSfxVWkdI=";
+    buildTypesAiobotocorePackage "dms" "2.13.0"
+      "sha256-BzWDZW/196ajDFw47jOZyTJPcZkAHKgzMYU4NmKeyUg=";
 
   types-aiobotocore-docdb =
-    buildTypesAiobotocorePackage "docdb" "2.12.3"
-      "sha256-t6ybt/wp+YL2qNyI89RzijJT1qPX6cBykQ803F81Q/0=";
+    buildTypesAiobotocorePackage "docdb" "2.13.0"
+      "sha256-oTf+KiNaXrDYdMCZMF+O/tAPmsybWldtT86WhnreN20=";
 
   types-aiobotocore-docdb-elastic =
-    buildTypesAiobotocorePackage "docdb-elastic" "2.12.3"
-      "sha256-MI9e+SYSjbO8PMRFa8VSyAfoupTb8wzhO+DXCcQgu3Q=";
+    buildTypesAiobotocorePackage "docdb-elastic" "2.13.0"
+      "sha256-xK+ixxVGf6Hr/NJGu4k4vlq8V5cpSPViHKsfjusQaKY=";
 
   types-aiobotocore-drs =
-    buildTypesAiobotocorePackage "drs" "2.12.3"
-      "sha256-qsyiQH75/L2HPM/QrQ5nrf9Bh+7xClIQggCWSA/7xho=";
+    buildTypesAiobotocorePackage "drs" "2.13.0"
+      "sha256-v/h5WFjIR51RjwCn02abRfo8fu+tnncldVPd71xJt7s=";
 
   types-aiobotocore-ds =
-    buildTypesAiobotocorePackage "ds" "2.12.3"
-      "sha256-ms93yRBMH/9hVVyN5jGZqP6Su4qdP/oKRHyAMlM5Nis=";
+    buildTypesAiobotocorePackage "ds" "2.13.0"
+      "sha256-Em0eoBCYM0HmkJBgVJKsEyLZDhVu2zW9OKZ5TEQ1xEE=";
 
   types-aiobotocore-dynamodb =
-    buildTypesAiobotocorePackage "dynamodb" "2.12.3"
-      "sha256-sBsjF7ZIldzEN6LyXy9r9zmeKMEX8QXQE7GKYmXrYPg=";
+    buildTypesAiobotocorePackage "dynamodb" "2.13.0"
+      "sha256-AXclEe7W1pqC8JVsOY9afICCUT7lIcwR7De0JMuPbSM=";
 
   types-aiobotocore-dynamodbstreams =
-    buildTypesAiobotocorePackage "dynamodbstreams" "2.12.3"
-      "sha256-0SZQFZf19WRnNA0uTbOoHxfuVZ/Oo4HgttiJcJ+ec3s=";
+    buildTypesAiobotocorePackage "dynamodbstreams" "2.13.0"
+      "sha256-QETi2ToYBF8UQq1+aNW3ZaNEI+haQTQq76yes/U/dpk=";
 
   types-aiobotocore-ebs =
-    buildTypesAiobotocorePackage "ebs" "2.12.3"
-      "sha256-nGyIT/TXqUMRWwA5tIDie1ktVwy0tspw3avgJ//kW5k=";
+    buildTypesAiobotocorePackage "ebs" "2.13.0"
+      "sha256-Oftnt6MpThaa3USfEGZeAvx0pCiY0vQImtNWVwk3ACs=";
 
   types-aiobotocore-ec2 =
-    buildTypesAiobotocorePackage "ec2" "2.12.3"
-      "sha256-8OPqG7wMdu92O0BfGb9zI5Wj+NFA25jWZN0dvzQV0Yo=";
+    buildTypesAiobotocorePackage "ec2" "2.13.0"
+      "sha256-GvUGSs/nQTL3VJpVsFx9mAI9nBx+gnk6yhwRfTpSiSk=";
 
   types-aiobotocore-ec2-instance-connect =
-    buildTypesAiobotocorePackage "ec2-instance-connect" "2.12.3"
-      "sha256-Va2yM0tmcIj4b2wXUzWyhuhv5lhcfCslR0h0C7A5EsY=";
+    buildTypesAiobotocorePackage "ec2-instance-connect" "2.13.0"
+      "sha256-P3kqtbGfUKRCJzZqPjg5DpuUADyo9OQvBzqX+e6eoZw=";
 
   types-aiobotocore-ecr =
-    buildTypesAiobotocorePackage "ecr" "2.12.3"
-      "sha256-FshaLIdFjrTh/bxE9X2to7OMqORJUl/THmE4rhIFbFI=";
+    buildTypesAiobotocorePackage "ecr" "2.13.0"
+      "sha256-Qv3/a0zCZZ7HSH/egZeRBb+8QnWWVIq4FI+UnA/l7Ls=";
 
   types-aiobotocore-ecr-public =
-    buildTypesAiobotocorePackage "ecr-public" "2.12.3"
-      "sha256-GXZ0wSgko3LNMoWFdGAk75Z/ALecaJNJjog9zog+0pY=";
+    buildTypesAiobotocorePackage "ecr-public" "2.13.0"
+      "sha256-yKGswYQKMKkagsVI9Kxae04Xrdrn8dXZSy0BkQ6RzG0=";
 
   types-aiobotocore-ecs =
-    buildTypesAiobotocorePackage "ecs" "2.12.3"
-      "sha256-JumaYfl8+YpgxAnxZF+1IW4Xhw4UuT2wxX979xbGFqc=";
+    buildTypesAiobotocorePackage "ecs" "2.13.0"
+      "sha256-6Bc80WQMAmA8LzLEC/ADFz1kc7oRQLYb7YZH8FOfmVs=";
 
   types-aiobotocore-efs =
-    buildTypesAiobotocorePackage "efs" "2.12.3"
-      "sha256-Ea6AgjHGqrUNP8TF6PFNStVAuRED80agLuzhjdkIUM4=";
+    buildTypesAiobotocorePackage "efs" "2.13.0"
+      "sha256-NIB1DC4qaMXEwrDOHcnRAifKUH0LouzyKlCd7448PZk=";
 
   types-aiobotocore-eks =
-    buildTypesAiobotocorePackage "eks" "2.12.3"
-      "sha256-JceWf2TRg+t55trAJhFAp4YVarc56ZiZYdjB7lhP/cc=";
+    buildTypesAiobotocorePackage "eks" "2.13.0"
+      "sha256-isdFNO1MOrx3O9l4DWjUN/GmfJk2PnprHrAfeaLDkgA=";
 
   types-aiobotocore-elastic-inference =
-    buildTypesAiobotocorePackage "elastic-inference" "2.12.3"
-      "sha256-hhgI8CplzvzbKVPB43udHODE+td4B4Tdk2vls+JNyn4=";
+    buildTypesAiobotocorePackage "elastic-inference" "2.13.0"
+      "sha256-886NH6Lg6mLHdVCRqZ/c+z1DgQ6Yy5DYX7Gd9kf3lMg=";
 
   types-aiobotocore-elasticache =
-    buildTypesAiobotocorePackage "elasticache" "2.12.3"
-      "sha256-DnZqKJCvFFzgjncV6w+Cxi7HTtA7A7t/RGJyQ9icYos=";
+    buildTypesAiobotocorePackage "elasticache" "2.13.0"
+      "sha256-8vm8VQENdxdjhMEg7I9SyQX//LLnKE++SvIRhyCgb7Q=";
 
   types-aiobotocore-elasticbeanstalk =
-    buildTypesAiobotocorePackage "elasticbeanstalk" "2.12.3"
-      "sha256-HC3+b8rFuJshIax6g8oLFMSxxHcbYHP3HDvP2u3UX3U=";
+    buildTypesAiobotocorePackage "elasticbeanstalk" "2.13.0"
+      "sha256-L8/0MxGvGLTfwrNSPyYVtfz46TXJVPn+0pBGPs+SwGo=";
 
   types-aiobotocore-elastictranscoder =
-    buildTypesAiobotocorePackage "elastictranscoder" "2.12.3"
-      "sha256-jXW3LMDaQgXL7QVUJ0OxEUaNfPED5GjXefbWzzf+MGA=";
+    buildTypesAiobotocorePackage "elastictranscoder" "2.13.0"
+      "sha256-UiN9U4WpqgBs8fCcteUTz7bzwFBwJV7mpOMvEZIy7r8=";
 
   types-aiobotocore-elb =
-    buildTypesAiobotocorePackage "elb" "2.12.3"
-      "sha256-L5be76HYM3piIMrbP0QiaLKc6YOdqPMR52fBuNkpLx4=";
+    buildTypesAiobotocorePackage "elb" "2.13.0"
+      "sha256-ok+Ystctf+09dxI2Q+lXeucckPQZSJSyx6fbPsYgOn4=";
 
   types-aiobotocore-elbv2 =
-    buildTypesAiobotocorePackage "elbv2" "2.12.3"
-      "sha256-MCM9zyNpUUt4aAO04aMmPzg+r71VqQzeV4eH+ukBZiw=";
+    buildTypesAiobotocorePackage "elbv2" "2.13.0"
+      "sha256-e8UsYdshyUhdyGxo6ZNhYMw3H5MyL2NjZ6IVDoJN1/0=";
 
   types-aiobotocore-emr =
-    buildTypesAiobotocorePackage "emr" "2.12.3"
-      "sha256-5hCuf3QgmnKhaI8L5BmZfOztgsB9Quy/Zwwu3vutKj0=";
+    buildTypesAiobotocorePackage "emr" "2.13.0"
+      "sha256-k+/+TC9m2v7t9O+etubXMGrD1FJ2Ul2eGYf2MwPYDyc=";
 
   types-aiobotocore-emr-containers =
-    buildTypesAiobotocorePackage "emr-containers" "2.12.3"
-      "sha256-Qq8koQIHkd4ZsuYfAnW7wpCgRzpGaFyKRCN5WQBIqJY=";
+    buildTypesAiobotocorePackage "emr-containers" "2.13.0"
+      "sha256-LFmBCNyHEG5j0oK3waIrVQd1KeE7sd50JdD5J+rjxX4=";
 
   types-aiobotocore-emr-serverless =
-    buildTypesAiobotocorePackage "emr-serverless" "2.12.3"
-      "sha256-b5iOWjrnxCT/enOPOixlD4tdav5DMavg32xlqE2u4DY=";
+    buildTypesAiobotocorePackage "emr-serverless" "2.13.0"
+      "sha256-Y0LOqCJs15OO+n3vmIi0g2DU3DLzus1lvZXQU1FjDVI=";
 
   types-aiobotocore-entityresolution =
-    buildTypesAiobotocorePackage "entityresolution" "2.12.3"
-      "sha256-aIFYYN2GPbDYPjQsbm9D6WPNRAGmFpfkQPhLYwGwZH8=";
+    buildTypesAiobotocorePackage "entityresolution" "2.13.0"
+      "sha256-L1y4kgUBTQx4DfFP9/Yegz0T8I5Qcvv6Ll99NFCuC0Q=";
 
   types-aiobotocore-es =
-    buildTypesAiobotocorePackage "es" "2.12.3"
-      "sha256-xVn8IRXYklNychp8P8z79yVVwlCYzvhmnhSgq9LJv8Y=";
+    buildTypesAiobotocorePackage "es" "2.13.0"
+      "sha256-N1u90rw2M4Sr6CQgB3tXBAmXX/Qu5jG8QHfRn4gmxxU=";
 
   types-aiobotocore-events =
-    buildTypesAiobotocorePackage "events" "2.12.3"
-      "sha256-8n9aFOaZYqQvwnb1Yt509JhZjNisL+dY3PVqkxbwbQA=";
+    buildTypesAiobotocorePackage "events" "2.13.0"
+      "sha256-3E01v7MvD0NC5QXMG7zQ1m66sa9oo6VAzVqMwQaUQ04=";
 
   types-aiobotocore-evidently =
-    buildTypesAiobotocorePackage "evidently" "2.12.3"
-      "sha256-8QZLlmUwuveQf1dXbJZGUJC2XiKA4vrdxG6Ee9F+jPA=";
+    buildTypesAiobotocorePackage "evidently" "2.13.0"
+      "sha256-KDJlHpf+95/H7axc65nY2XNTtxSUox2iAG2SQkRw600=";
 
   types-aiobotocore-finspace =
-    buildTypesAiobotocorePackage "finspace" "2.12.3"
-      "sha256-icXRzSXSn/M50jVun2Evm1QB9m9feFGWazKSvZwCa30=";
+    buildTypesAiobotocorePackage "finspace" "2.13.0"
+      "sha256-or5hhp/ZxYw5DN6LUpAqcR/2bDmRppT1a/9L0+mRcSA=";
 
   types-aiobotocore-finspace-data =
-    buildTypesAiobotocorePackage "finspace-data" "2.12.3"
-      "sha256-dPw16YNaK5CvMNWxdkK0vNVzXcDY3hocWr9ffg2vtGI=";
+    buildTypesAiobotocorePackage "finspace-data" "2.13.0"
+      "sha256-80Y0tP4x+fWeJg+zaS/c3TxYflD8Hto7vNNuDqApRrg=";
 
   types-aiobotocore-firehose =
-    buildTypesAiobotocorePackage "firehose" "2.12.3"
-      "sha256-xcFTvd7d+lrXiJ4SlxiznwFfFRHnxmTZk6vwVurICvc=";
+    buildTypesAiobotocorePackage "firehose" "2.13.0"
+      "sha256-Wtz55HZjmJwAcZhhuGGq4U+LGg+/xfADcXXCtgNVpGQ=";
 
   types-aiobotocore-fis =
-    buildTypesAiobotocorePackage "fis" "2.12.3"
-      "sha256-ivJ/ekU1qvjuOXnLNXUUoGp/xc0DtHnqh4QwqUyIwk8=";
+    buildTypesAiobotocorePackage "fis" "2.13.0"
+      "sha256-8O3BKG+R6CL7CSYWcxPrKfcsJGkSoIbI0DTOXLzS2/Q=";
 
   types-aiobotocore-fms =
-    buildTypesAiobotocorePackage "fms" "2.12.3"
-      "sha256-ddMnkPvFyn2HG88pYapA3TWbOgV6DRLbnSWdd5CauyM=";
+    buildTypesAiobotocorePackage "fms" "2.13.0"
+      "sha256-lUo54nWEsFMcNDC7rpBFc3VhNjafUax1Utc76BWd/bM=";
 
   types-aiobotocore-forecast =
-    buildTypesAiobotocorePackage "forecast" "2.12.3"
-      "sha256-RvaEG2bWIOOOdPOk1A/CW+UTtYMuQ3ZyD0tYfLzOhfc=";
+    buildTypesAiobotocorePackage "forecast" "2.13.0"
+      "sha256-LB2Ms4okxEMMOEwMd8/JykfnzmsOKRsSOF92UAlI+Kw=";
 
   types-aiobotocore-forecastquery =
-    buildTypesAiobotocorePackage "forecastquery" "2.12.3"
-      "sha256-I5vvbmW1BO0ZfKkQEXAhcGb8Q9DMKXDR9AYFcAm6bLM=";
+    buildTypesAiobotocorePackage "forecastquery" "2.13.0"
+      "sha256-atPLPwuCkYDv3vyYQuj9+2VkLx4tL0q5/S8g24oapSY=";
 
   types-aiobotocore-frauddetector =
-    buildTypesAiobotocorePackage "frauddetector" "2.12.3"
-      "sha256-NGi+3jWxWPMlsKGDjdWzcORI6ElDbtVexeVQh71cego=";
+    buildTypesAiobotocorePackage "frauddetector" "2.13.0"
+      "sha256-2XZkPccKpLYIXNKhIRuheJVnAOLr2f8mya/vuefX0d4=";
 
   types-aiobotocore-fsx =
-    buildTypesAiobotocorePackage "fsx" "2.12.3"
-      "sha256-1vl16o9foO6wmumbOvgF3FA8vEOjpCmkcHaktY8pEYY=";
+    buildTypesAiobotocorePackage "fsx" "2.13.0"
+      "sha256-Sxhfg/weC3nSRYdT2BnPiL1zzHMtXV0X0iDar2LQFiY=";
 
   types-aiobotocore-gamelift =
-    buildTypesAiobotocorePackage "gamelift" "2.12.3"
-      "sha256-FARwguNmU+BDV5XyJSL4dqGESEoKmXPjVoPU6ktzRIg=";
+    buildTypesAiobotocorePackage "gamelift" "2.13.0"
+      "sha256-UowdjQc9yaP5Y9XCcynACAUrHJzFZXeeCRWT8NvSLhs=";
 
   types-aiobotocore-gamesparks =
     buildTypesAiobotocorePackage "gamesparks" "2.7.0"
       "sha256-oVbKtuLMPpCQcZYx/cH1Dqjv/t6/uXsveflfFVqfN+8=";
 
   types-aiobotocore-glacier =
-    buildTypesAiobotocorePackage "glacier" "2.12.3"
-      "sha256-Xpob7f0ucl+F+X++5GAdQ4B0IgF4YM7oRFFbm77n4LI=";
+    buildTypesAiobotocorePackage "glacier" "2.13.0"
+      "sha256-lJNVoAMtqdFmzFX9RKmVoW0Ww0EGRWFrB4HpD8EL7i8=";
 
   types-aiobotocore-globalaccelerator =
-    buildTypesAiobotocorePackage "globalaccelerator" "2.12.3"
-      "sha256-aMaPlDZGLvuPDjH5p8bKU0JYRImjheJnpP2oKshtVDY=";
+    buildTypesAiobotocorePackage "globalaccelerator" "2.13.0"
+      "sha256-vYJcni53gQDsns8fPNQTsbSIu2pKlfHOi+Y6ZBsIlrQ=";
 
   types-aiobotocore-glue =
-    buildTypesAiobotocorePackage "glue" "2.12.3"
-      "sha256-d9rFpL4iv1k2zJgE8qQymisVDuOJMEL6ZuQkuV78d0U=";
+    buildTypesAiobotocorePackage "glue" "2.13.0"
+      "sha256-lpk9u8K+XKTHa/U0y42B6WJ/LMH9Sftp958PbwTeJiE=";
 
   types-aiobotocore-grafana =
-    buildTypesAiobotocorePackage "grafana" "2.12.3"
-      "sha256-jmavkKefg/AZMrhU1bhI6Njy78MDNrT+3riIaKIAUlY=";
+    buildTypesAiobotocorePackage "grafana" "2.13.0"
+      "sha256-mnCvxOER/AasPUVwwfLl/jYsb/HgU6n2nJs5vtCgD0Y=";
 
   types-aiobotocore-greengrass =
-    buildTypesAiobotocorePackage "greengrass" "2.12.3"
-      "sha256-zvg/8evrSn14vr9RJXeI4YVOiwva8GwdnCHKkfMygKk=";
+    buildTypesAiobotocorePackage "greengrass" "2.13.0"
+      "sha256-pEBpwnQBOwzbr76xdEggj9Nrp7aPJjRHGV0lpU45GDY=";
 
   types-aiobotocore-greengrassv2 =
-    buildTypesAiobotocorePackage "greengrassv2" "2.12.3"
-      "sha256-3DHm+EPlUQA3LHs1Pbi+B9ipCGg/sN7F5etOzJoXTMY=";
+    buildTypesAiobotocorePackage "greengrassv2" "2.13.0"
+      "sha256-PiioTpD0PMyQStz7C4PP7/jPhCFGPGAJmV6tEroM8TE=";
 
   types-aiobotocore-groundstation =
-    buildTypesAiobotocorePackage "groundstation" "2.12.3"
-      "sha256-0n8ec0H/Nz7Z5Dl7cK/BdxCSIv+wmP/jsS+uL9+ar9Q=";
+    buildTypesAiobotocorePackage "groundstation" "2.13.0"
+      "sha256-doSLPlEx0bEJHGMPDSUXWRmuJwdfiOaDCxkd32kFU/Y=";
 
   types-aiobotocore-guardduty =
-    buildTypesAiobotocorePackage "guardduty" "2.12.3"
-      "sha256-POI2RmnRoUfjx74/MC/Nf9bqxsn3jUnkzHwuY5b7Oy4=";
+    buildTypesAiobotocorePackage "guardduty" "2.13.0"
+      "sha256-HyptnMArByCpLsFRTZWFHIptEaPLujUiyGHDUshW+3w=";
 
   types-aiobotocore-health =
-    buildTypesAiobotocorePackage "health" "2.12.3"
-      "sha256-5sa+9i8KahglRVdJnTqp8zYUHfvGq4GCfcMYhd2qJdU=";
+    buildTypesAiobotocorePackage "health" "2.13.0"
+      "sha256-o+AKZJnVXd/MDaP0Ws2ImRHmudPJkmJIinNtE1HLX90=";
 
   types-aiobotocore-healthlake =
-    buildTypesAiobotocorePackage "healthlake" "2.12.3"
-      "sha256-CQDgDkaJ0hbmsRMxxBXGBOzn2XU5DG4uBFUOl3P4XwY=";
+    buildTypesAiobotocorePackage "healthlake" "2.13.0"
+      "sha256-whj5Wf3XLhhzJz0pH9ewMrrReI+8UiVmnuU9oi+0KRM=";
 
   types-aiobotocore-honeycode =
-    buildTypesAiobotocorePackage "honeycode" "2.12.3"
-      "sha256-NDecqTRmki4/c55vpjW8aCLW9fkKvkDRHAMrf54P9cM=";
+    buildTypesAiobotocorePackage "honeycode" "2.13.0"
+      "sha256-DeeheoQeFEcDH21DSNs2kSR1rjnPLtTgz0yNCFnE+Io=";
 
   types-aiobotocore-iam =
-    buildTypesAiobotocorePackage "iam" "2.12.3"
-      "sha256-0zxf9IpiVF1nxY+Cfk631+vTtjojo8Ky4M69zfU62MQ=";
+    buildTypesAiobotocorePackage "iam" "2.13.0"
+      "sha256-zT6k0pAwR3ActVWyUsE5blqv78xHuQGQlJKvjqI06Os=";
 
   types-aiobotocore-identitystore =
-    buildTypesAiobotocorePackage "identitystore" "2.12.3"
-      "sha256-GZnXAGM2WMamZkyHmxb/+uRfUtLmmXCkN1yRgUmO1pE=";
+    buildTypesAiobotocorePackage "identitystore" "2.13.0"
+      "sha256-rmrC8PXW1KyrZo0T2pA9bsHCGSR3DIPYP827jCPR7Ao=";
 
   types-aiobotocore-imagebuilder =
-    buildTypesAiobotocorePackage "imagebuilder" "2.12.3"
-      "sha256-ValWGfzRPnhA2HVwF/bHfCEv/NCOYoOjVPplRomIXgw=";
+    buildTypesAiobotocorePackage "imagebuilder" "2.13.0"
+      "sha256-rP9XtYKaG8sCSeF0HTGCLofTIbg0iyCjozqUAwQvOFk=";
 
   types-aiobotocore-importexport =
-    buildTypesAiobotocorePackage "importexport" "2.12.3"
-      "sha256-o609SDjx1+dzBTmNSGuoh8H6XLfZLJgaqUJVEmG3gzU=";
+    buildTypesAiobotocorePackage "importexport" "2.13.0"
+      "sha256-iZHJ4C/Ai7cSnWQsUsb9D1eMr8+17XQr+okJkb6KquM=";
 
   types-aiobotocore-inspector =
-    buildTypesAiobotocorePackage "inspector" "2.12.3"
-      "sha256-ymj+ugkTQkGEloCtdnFsmwXtLmMnpgxsgINsZjCnPCI=";
+    buildTypesAiobotocorePackage "inspector" "2.13.0"
+      "sha256-uVr5nzXn9/OlJgcGckH6Qi5eOWULyhwBbDehHxMHk60=";
 
   types-aiobotocore-inspector2 =
-    buildTypesAiobotocorePackage "inspector2" "2.12.3"
-      "sha256-+kC/viBAYxGSP80pStaSD6bIXN5pdwu96NA6lcfIWzM=";
+    buildTypesAiobotocorePackage "inspector2" "2.13.0"
+      "sha256-BENRjvjKgd9fy4zt1LXqcDhUhK/OJG5FyIaSRl+NnPA=";
 
   types-aiobotocore-internetmonitor =
-    buildTypesAiobotocorePackage "internetmonitor" "2.12.3"
-      "sha256-iCVPf+7LtTfRvrX7vKt2DNkfw1xdTCpzlqvA2w4LsjQ=";
+    buildTypesAiobotocorePackage "internetmonitor" "2.13.0"
+      "sha256-bhC316GPUqjSpmrsyZAZgCHcPGubEBXqXsueTnXaAOg=";
 
   types-aiobotocore-iot =
-    buildTypesAiobotocorePackage "iot" "2.12.3"
-      "sha256-YJSr/C6V7yASlg2Ifif8lAYsy9zOo9ficn0DWmWIZB8=";
+    buildTypesAiobotocorePackage "iot" "2.13.0"
+      "sha256-xXYong7il5S1cjAJUJe1d4gSkn+6c/eBe7FIjEmNYl4=";
 
   types-aiobotocore-iot-data =
-    buildTypesAiobotocorePackage "iot-data" "2.12.3"
-      "sha256-7LJRrYAcyil9Trw8gCu7lOkrdcSW5yQeZOrQ1bPL+qE=";
+    buildTypesAiobotocorePackage "iot-data" "2.13.0"
+      "sha256-bQah1T+GlZryFRE8Z7vpNUEVJmXjCX05GWYR5Y8KANk=";
 
   types-aiobotocore-iot-jobs-data =
-    buildTypesAiobotocorePackage "iot-jobs-data" "2.12.3"
-      "sha256-An0qRP6UxBOHwkQ7e/a0ZN9c0drgC8uYz1xXslEwStc=";
+    buildTypesAiobotocorePackage "iot-jobs-data" "2.13.0"
+      "sha256-0lWhcUjZ4R8etiKugTuELzpbF/7+7rfbAsXAmB8OXRM=";
 
   types-aiobotocore-iot-roborunner =
     buildTypesAiobotocorePackage "iot-roborunner" "2.12.2"
       "sha256-O/nGvYfUibI4EvHgONtkYHFv/dZSpHCehXjietPiMJo=";
 
   types-aiobotocore-iot1click-devices =
-    buildTypesAiobotocorePackage "iot1click-devices" "2.12.3"
-      "sha256-5PQV2KlzOpRWkeJhsPFwCZ8iZQp+flTH1UUGn3q3/7k=";
+    buildTypesAiobotocorePackage "iot1click-devices" "2.13.0"
+      "sha256-Ge098mg+jeOxwpBr3BMELnRD0cqZqmRSArHh/m2OsBE=";
 
   types-aiobotocore-iot1click-projects =
-    buildTypesAiobotocorePackage "iot1click-projects" "2.12.3"
-      "sha256-FuC8skyo0yoqd+He5cOKlUUnPiGk9I8vUen0uj5Eqcc=";
+    buildTypesAiobotocorePackage "iot1click-projects" "2.13.0"
+      "sha256-hf5aYWELJQniMsldhHv25/2Rqk3SnSGbJ0OBsdDO/us=";
 
   types-aiobotocore-iotanalytics =
-    buildTypesAiobotocorePackage "iotanalytics" "2.12.3"
-      "sha256-EPHXokF9XO/0EAOnOyhp2MUfs7UHozFKYbWqPeDFweQ=";
+    buildTypesAiobotocorePackage "iotanalytics" "2.13.0"
+      "sha256-T784XUsVCpZKSfl8JtrCA8zYieE7WRFUS0GjGkiMb7M=";
 
   types-aiobotocore-iotdeviceadvisor =
-    buildTypesAiobotocorePackage "iotdeviceadvisor" "2.12.3"
-      "sha256-iZVZJZFCrwmKpYglS/UT4Qew1GdttI7rwn+XduS2DPc=";
+    buildTypesAiobotocorePackage "iotdeviceadvisor" "2.13.0"
+      "sha256-vY8bUjfix0ooShceyA56KkI3VvTQhWQdO2KAFOQK/fs=";
 
   types-aiobotocore-iotevents =
-    buildTypesAiobotocorePackage "iotevents" "2.12.3"
-      "sha256-bxW0Wtqua7ny+kv8bSdyss/MFxLWDMqCxbojBsjtNY4=";
+    buildTypesAiobotocorePackage "iotevents" "2.13.0"
+      "sha256-x7GlfEgtPacEjliok6xIqJ0wYC/AZqYDHPiGrXRmpGg=";
 
   types-aiobotocore-iotevents-data =
-    buildTypesAiobotocorePackage "iotevents-data" "2.12.3"
-      "sha256-jOVKCfHNJmfGHnqG/y75qz6hsYUWrD911KCV3amWldc=";
+    buildTypesAiobotocorePackage "iotevents-data" "2.13.0"
+      "sha256-eCf9pN4Xra2TTjes8hDFegbkmM/pz1onMS5ntJKE1E0=";
 
   types-aiobotocore-iotfleethub =
-    buildTypesAiobotocorePackage "iotfleethub" "2.12.3"
-      "sha256-gp2YjRDGXRFBrHnzs5m/SsugG7U6hh3NvYG8ym5/2FU=";
+    buildTypesAiobotocorePackage "iotfleethub" "2.13.0"
+      "sha256-VMIE+miyZDZRG9BYy/q6Y+FQngScblfnL3UKQVY0VhA=";
 
   types-aiobotocore-iotfleetwise =
-    buildTypesAiobotocorePackage "iotfleetwise" "2.12.3"
-      "sha256-YHZZUZmmmE6T8Z+Vvh4SZEf5xrzzObLKP6EuGY+aIaI=";
+    buildTypesAiobotocorePackage "iotfleetwise" "2.13.0"
+      "sha256-rVC6BOWbPKiivjAyqGlG1sYPwAPMDfy0puzrk+2ow+U=";
 
   types-aiobotocore-iotsecuretunneling =
-    buildTypesAiobotocorePackage "iotsecuretunneling" "2.12.3"
-      "sha256-Bx43NAwPTlPqZrV3SN39amD0on7RJvvXC27QJ9kShWY=";
+    buildTypesAiobotocorePackage "iotsecuretunneling" "2.13.0"
+      "sha256-XtNzPH9a+FZg6RgXuJFkkHj4utt84u/PYWpHz3fQOC8=";
 
   types-aiobotocore-iotsitewise =
-    buildTypesAiobotocorePackage "iotsitewise" "2.12.3"
-      "sha256-fXmG7vvCgM24P+WwPgVlh+uVJdzT3r5dgEf5eU2763w=";
+    buildTypesAiobotocorePackage "iotsitewise" "2.13.0"
+      "sha256-52y4FXYR7Hk3pjNe8Er9j94tGuLnPKx2sf+YJtyg8Sg=";
 
   types-aiobotocore-iotthingsgraph =
-    buildTypesAiobotocorePackage "iotthingsgraph" "2.12.3"
-      "sha256-1rdcWFEfM9paoGxm3NhS/A5tDMCgCoMkGeXUG49i238=";
+    buildTypesAiobotocorePackage "iotthingsgraph" "2.13.0"
+      "sha256-GZBsVNbdQ8J936kW8UfVfOwIw9ftEttSl942pcDxr4A=";
 
   types-aiobotocore-iottwinmaker =
-    buildTypesAiobotocorePackage "iottwinmaker" "2.12.3"
-      "sha256-AEp5cF3vVj5t/M7J4hSuk7KsUIKN9sSpSk2XfH4w8Hk=";
+    buildTypesAiobotocorePackage "iottwinmaker" "2.13.0"
+      "sha256-hE+juDpyRZ0zPsSGMGt037o7NLN0z7Co7m+HCKSh5Fc=";
 
   types-aiobotocore-iotwireless =
-    buildTypesAiobotocorePackage "iotwireless" "2.12.3"
-      "sha256-LfmlJGalNaiZB1UAqG1XwDPNBKxz0hO2S9EiTakmtmA=";
+    buildTypesAiobotocorePackage "iotwireless" "2.13.0"
+      "sha256-O8F7NN8hkQiDJNy8Y3Cx1w1WwUGH0y9YtGIz8Wcj1/E=";
 
   types-aiobotocore-ivs =
-    buildTypesAiobotocorePackage "ivs" "2.12.3"
-      "sha256-vxFbBTyf0psVvc0N8kAEJrX/JumRoWD5GKQ2JmkJkPg=";
+    buildTypesAiobotocorePackage "ivs" "2.13.0"
+      "sha256-dZHvgOfBn61k6VMcFGBmBZ4BrR1TUgTPx55Rvw3+isc=";
 
   types-aiobotocore-ivs-realtime =
-    buildTypesAiobotocorePackage "ivs-realtime" "2.12.3"
-      "sha256-78x0QtBZsBztNaAqiUCtosIf+Lm3DCJqVerRBOLiEXs=";
+    buildTypesAiobotocorePackage "ivs-realtime" "2.13.0"
+      "sha256-LF9SEkOMDBq2yvlQHPBx4pLByEzRtgOZS8x1btm0snc=";
 
   types-aiobotocore-ivschat =
-    buildTypesAiobotocorePackage "ivschat" "2.12.3"
-      "sha256-/yakndOCbZlLhARZ6jd6eG0YLRZjg8Igw4Fc15obqRo=";
+    buildTypesAiobotocorePackage "ivschat" "2.13.0"
+      "sha256-Bv5lSIWGbFJxpMK//ZUm8ewaf0d7XuAgZcYA1EghVtA=";
 
   types-aiobotocore-kafka =
-    buildTypesAiobotocorePackage "kafka" "2.12.3"
-      "sha256-oayTFZfzOURWDfzexxrHxV/JdJDXAmk9LupPWMFZpkc=";
+    buildTypesAiobotocorePackage "kafka" "2.13.0"
+      "sha256-5hMlJfYR8qYQg9S12xwKHxIt7Grv3F0CwUE/p0WP2ZU=";
 
   types-aiobotocore-kafkaconnect =
-    buildTypesAiobotocorePackage "kafkaconnect" "2.12.3"
-      "sha256-pA6EEsfS9W1uK7s92CGqZtk3o+GUI92T/lFOqCQotTI=";
+    buildTypesAiobotocorePackage "kafkaconnect" "2.13.0"
+      "sha256-ecnz27IztSMrBt4xc4DsZbNpliciSswNIOHT3t6tTXg=";
 
   types-aiobotocore-kendra =
-    buildTypesAiobotocorePackage "kendra" "2.12.3"
-      "sha256-RPSoV974cSYfPL1cFnpZjcMQeSENxThtG44zWUemN9E=";
+    buildTypesAiobotocorePackage "kendra" "2.13.0"
+      "sha256-nhKOiHgIC59fwH1HTLusuTgiaOJ5KidRm9DHuGQmQnE=";
 
   types-aiobotocore-kendra-ranking =
-    buildTypesAiobotocorePackage "kendra-ranking" "2.12.3"
-      "sha256-A5o/guqeDNvH27DCB5SAJuOmgSMYSrJjru5qn3sOL6k=";
+    buildTypesAiobotocorePackage "kendra-ranking" "2.13.0"
+      "sha256-FBQDcjY3tx1M3012LzP2FO/1z9WQ9xihburpWv9Tq78=";
 
   types-aiobotocore-keyspaces =
-    buildTypesAiobotocorePackage "keyspaces" "2.12.3"
-      "sha256-1gACiFQAo1iCzITBQIcRNId8S2t3L7ga8MiC1oKQX58=";
+    buildTypesAiobotocorePackage "keyspaces" "2.13.0"
+      "sha256-rEOkdFru0ZbjPWLvC9TlAd46r9bviqEmpKPvL0MqhjI=";
 
   types-aiobotocore-kinesis =
-    buildTypesAiobotocorePackage "kinesis" "2.12.3"
-      "sha256-jcFBnfzUcCyWt5qOgiCx/2Lbf2QEGW4G7JjTNclGy/k=";
+    buildTypesAiobotocorePackage "kinesis" "2.13.0"
+      "sha256-0f/Nl7BqZ+AFAJrckS1DtZGl3QNWCIsJAusVgkXuTvQ=";
 
   types-aiobotocore-kinesis-video-archived-media =
-    buildTypesAiobotocorePackage "kinesis-video-archived-media" "2.12.3"
-      "sha256-DkvRjmHxmyj3TWQK5FxsgpU8vm+I7d7dibkI6rwGg8c=";
+    buildTypesAiobotocorePackage "kinesis-video-archived-media" "2.13.0"
+      "sha256-nl6GBcrpUaBWghji5309vsHGxWuRHe8R1Z0w1OSpf2k=";
 
   types-aiobotocore-kinesis-video-media =
-    buildTypesAiobotocorePackage "kinesis-video-media" "2.12.3"
-      "sha256-cDko/AYbz8KLxheVLhGhYr9eUOxB6R3JCoNCXyOBL48=";
+    buildTypesAiobotocorePackage "kinesis-video-media" "2.13.0"
+      "sha256-EX0Wq0B/2gOhX6ekSDpWUsC57wrVPBXakf7zjLql7i0=";
 
   types-aiobotocore-kinesis-video-signaling =
-    buildTypesAiobotocorePackage "kinesis-video-signaling" "2.12.3"
-      "sha256-f/8FAIf6DFf0ly5qRhG+kFHYzs4whggUsxhphA2bPuM=";
+    buildTypesAiobotocorePackage "kinesis-video-signaling" "2.13.0"
+      "sha256-2YYJskPHKJJGwvfWKT3CA2XZFcJ//dSroaZj8Z3Zz/M=";
 
   types-aiobotocore-kinesis-video-webrtc-storage =
-    buildTypesAiobotocorePackage "kinesis-video-webrtc-storage" "2.12.3"
-      "sha256-dIvQeCqeL+oBy0N+uTcBTbkkNfGfrgKwGYrI8XaLeYQ=";
+    buildTypesAiobotocorePackage "kinesis-video-webrtc-storage" "2.13.0"
+      "sha256-TPueQ1LwzxJVM11CfA5Uy+s1wgZ4cFtFg2h9lwX/Bqk=";
 
   types-aiobotocore-kinesisanalytics =
-    buildTypesAiobotocorePackage "kinesisanalytics" "2.12.3"
-      "sha256-nEc26wCazquuuiOVbWWpa7ab4ZQE0TElsWrbIuL2VHE=";
+    buildTypesAiobotocorePackage "kinesisanalytics" "2.13.0"
+      "sha256-MrjUkjhU9spam5WRWNMNrEaUV+VDj5bLb4jEOpxSnic=";
 
   types-aiobotocore-kinesisanalyticsv2 =
-    buildTypesAiobotocorePackage "kinesisanalyticsv2" "2.12.3"
-      "sha256-MX/moxuQphb6YaO3BeuMhDyvuYG8WEevYizg0yQq4Pw=";
+    buildTypesAiobotocorePackage "kinesisanalyticsv2" "2.13.0"
+      "sha256-ApnELs3BVh05bLJvzFfLgbn1kY2IjItbjZh8xw90UPo=";
 
   types-aiobotocore-kinesisvideo =
-    buildTypesAiobotocorePackage "kinesisvideo" "2.12.3"
-      "sha256-G3kO0yM3jbw1RdRo5JX7Ju2vzsR+7GXeLjyoPGFIEQg=";
+    buildTypesAiobotocorePackage "kinesisvideo" "2.13.0"
+      "sha256-+xPIVVF1QdCbs/yaWKlD5WHc400MwV01BJAKlau85I4=";
 
   types-aiobotocore-kms =
-    buildTypesAiobotocorePackage "kms" "2.12.3"
-      "sha256-6JfxOXCsDjP0QqYqXBiPXp3R31mBL6Z4xUwXMFHGgdI=";
+    buildTypesAiobotocorePackage "kms" "2.13.0"
+      "sha256-Vc7G2TRaxerOVf+wG6T5gHqR0atMP0SdehJe+55GZZc=";
 
   types-aiobotocore-lakeformation =
-    buildTypesAiobotocorePackage "lakeformation" "2.12.3"
-      "sha256-KuXvIcrlvCA7ATv6az1Oeoe0CCysnCUb/B/D9+pd/Q0=";
+    buildTypesAiobotocorePackage "lakeformation" "2.13.0"
+      "sha256-os4//4oH0mvWDeA8TyuZc3WL4Zqs2blepwLx+3W/RKw=";
 
   types-aiobotocore-lambda =
-    buildTypesAiobotocorePackage "lambda" "2.12.3"
-      "sha256-4RSFi2CyKz/0Y3d9xIYM6CpOONTLP1X8rJqzJolVdck=";
+    buildTypesAiobotocorePackage "lambda" "2.13.0"
+      "sha256-M1j3PX0xDOwp6N2kPR2B9q0hzKZ8SlGkNlRNQHl4F3o=";
 
   types-aiobotocore-lex-models =
-    buildTypesAiobotocorePackage "lex-models" "2.12.3"
-      "sha256-EoASjvQ8uJy15SVq5vNek+vMqNgU40/Rj1i1NwWDHuk=";
+    buildTypesAiobotocorePackage "lex-models" "2.13.0"
+      "sha256-i/nA25zWKIpg25TJJqKnFaudaSUjbPc7PHXtixu3rIE=";
 
   types-aiobotocore-lex-runtime =
-    buildTypesAiobotocorePackage "lex-runtime" "2.12.3"
-      "sha256-JbL9RhcnbNll+68jzuiF6coqdMYeYLYkuPJz85Q4gAg=";
+    buildTypesAiobotocorePackage "lex-runtime" "2.13.0"
+      "sha256-0R7Z1p9CVjtWKlhs1n4jDMDheOQXn5jrbxIGK6Hz3+A=";
 
   types-aiobotocore-lexv2-models =
-    buildTypesAiobotocorePackage "lexv2-models" "2.12.3"
-      "sha256-cTndR1V9msDL+8NIqp6HRvSmP/rhZlwVuZwLKBoitZA=";
+    buildTypesAiobotocorePackage "lexv2-models" "2.13.0"
+      "sha256-aLJfuoQrT10rDwqZXGdE8d5WQ5GnSwAhO3ttX4ZhdG8=";
 
   types-aiobotocore-lexv2-runtime =
-    buildTypesAiobotocorePackage "lexv2-runtime" "2.12.3"
-      "sha256-V/PGGRZDXhilxUE5YslkyiJYWulQkEsxQZbaAbPP/cU=";
+    buildTypesAiobotocorePackage "lexv2-runtime" "2.13.0"
+      "sha256-7LXp7pXpgCx083rzIeytSzoRKsI9Lry/k356/mwlWQM=";
 
   types-aiobotocore-license-manager =
-    buildTypesAiobotocorePackage "license-manager" "2.12.3"
-      "sha256-zA+rcTsvrOFB1/st0q9vK4L0YZTGVlk0XNl5gxcxSK0=";
+    buildTypesAiobotocorePackage "license-manager" "2.13.0"
+      "sha256-ayM9VLN9jAmJeMXWmJwa5knSIK/goX+IFP5IJyaYYN0=";
 
   types-aiobotocore-license-manager-linux-subscriptions =
-    buildTypesAiobotocorePackage "license-manager-linux-subscriptions" "2.12.3"
-      "sha256-vGzT4Q90+FeF8tELo3zWp90MqrbNJ95kzovjFbnz9LY=";
+    buildTypesAiobotocorePackage "license-manager-linux-subscriptions" "2.13.0"
+      "sha256-gbVx6et48YFYzqqhhHg1OhhbYBCTUOv7me9mxcFEx/w=";
 
   types-aiobotocore-license-manager-user-subscriptions =
-    buildTypesAiobotocorePackage "license-manager-user-subscriptions" "2.12.3"
-      "sha256-qI9Pw+lK7JGSKEl+wxZz1CmG7UG1AsDmxkHuYY/sQxQ=";
+    buildTypesAiobotocorePackage "license-manager-user-subscriptions" "2.13.0"
+      "sha256-Nm50NIyIhRJ7zy/riVNYZhGW4iJXV1BZdHukpFFQi+c=";
 
   types-aiobotocore-lightsail =
-    buildTypesAiobotocorePackage "lightsail" "2.12.3"
-      "sha256-hl58xChUqHdkl0KtZjMetrR+am1gHIPZtSfRXSQg6ac=";
+    buildTypesAiobotocorePackage "lightsail" "2.13.0"
+      "sha256-POUIiTtEa85VA6s7FtwP8TSNdo1MNe+6IWIDDIKpFMs=";
 
   types-aiobotocore-location =
-    buildTypesAiobotocorePackage "location" "2.12.3"
-      "sha256-nTBbzRhNWl5B1tGlaQVd0eKbnBvy/8fmDZ4kY9de4cU=";
+    buildTypesAiobotocorePackage "location" "2.13.0"
+      "sha256-nVxbggkxC82171TDifKU7NRcohmiWdGKBbAY6cNLZkM=";
 
   types-aiobotocore-logs =
-    buildTypesAiobotocorePackage "logs" "2.12.3"
-      "sha256-mmmR4vLdjfNys1uXGMbvF84/CrI6GKNH/tRkneHI9PQ=";
+    buildTypesAiobotocorePackage "logs" "2.13.0"
+      "sha256-rwImBaQiRyo/FMibogZwe+cuJVNkKCK05R7O6RFt1hc=";
 
   types-aiobotocore-lookoutequipment =
-    buildTypesAiobotocorePackage "lookoutequipment" "2.12.3"
-      "sha256-rSoOIJywU+Vzh73LQac0ugfiu2r25SHdsgIjHmmHZnw=";
+    buildTypesAiobotocorePackage "lookoutequipment" "2.13.0"
+      "sha256-eOB6McK2F4B2c1vQmc26OsU/N8HAVtm3ZUBSZzkRyUA=";
 
   types-aiobotocore-lookoutmetrics =
-    buildTypesAiobotocorePackage "lookoutmetrics" "2.12.3"
-      "sha256-hrVID1/a/McspXe+Tl6VPTApYJpjERa1Hb4QmTtWpBM=";
+    buildTypesAiobotocorePackage "lookoutmetrics" "2.13.0"
+      "sha256-mTfRSAwyOYBk3fcPgcwilZ0o7sEB1U5msLt9AOzUNnY=";
 
   types-aiobotocore-lookoutvision =
-    buildTypesAiobotocorePackage "lookoutvision" "2.12.3"
-      "sha256-KYxkVAaRxZxCHz4FBFNaZUrSLbtumaU1Qh3w467nPjo=";
+    buildTypesAiobotocorePackage "lookoutvision" "2.13.0"
+      "sha256-JyMI0ldwLZcY20vTs5lIda2EjRhnzyJVw3/EQKkxPQs=";
 
   types-aiobotocore-m2 =
-    buildTypesAiobotocorePackage "m2" "2.12.3"
-      "sha256-1f6YJ6a9OqmJ1szPMao5l3zAs97grpDr4SvldDNohV4=";
+    buildTypesAiobotocorePackage "m2" "2.13.0"
+      "sha256-CAqHIVnso4h6Vw7nK3Oy1BbMxywPmHt6oaJcpCQk6GM=";
 
   types-aiobotocore-machinelearning =
-    buildTypesAiobotocorePackage "machinelearning" "2.12.3"
-      "sha256-0b6bNQvxR+OJd/hyM47qAM5/B0ALYEkWJqO5OosKOtw=";
+    buildTypesAiobotocorePackage "machinelearning" "2.13.0"
+      "sha256-MIqF9A9KPW2yzWHeEhX8usTtT92GuAEKAYf9FhjxW90=";
 
   types-aiobotocore-macie =
     buildTypesAiobotocorePackage "macie" "2.7.0"
       "sha256-hJJtGsK2b56nKX1ZhiarC+ffyjHYWRiC8II4oyDZWWw=";
 
   types-aiobotocore-macie2 =
-    buildTypesAiobotocorePackage "macie2" "2.12.3"
-      "sha256-sd30ATrunzj5kqZDJLGd7sGdxtpBcR0Kl1qG2QhqeFk=";
+    buildTypesAiobotocorePackage "macie2" "2.13.0"
+      "sha256-83zr/u4Q6KhFm3Id0nY6yVAtBZhD45jWXaqRdyPftNU=";
 
   types-aiobotocore-managedblockchain =
-    buildTypesAiobotocorePackage "managedblockchain" "2.12.3"
-      "sha256-8uZkHItyZfvSv8rr2PKYLHVDHxeL/f/Z8mcHYXBsiXw=";
+    buildTypesAiobotocorePackage "managedblockchain" "2.13.0"
+      "sha256-ZaQSNpRsGarE8NCcoafeRokn2HfdKApexxLwcz7rUVM=";
 
   types-aiobotocore-managedblockchain-query =
-    buildTypesAiobotocorePackage "managedblockchain-query" "2.12.3"
-      "sha256-n3hInygsT+Zkl4TTjZ7gtkvT7npEvvl6HoNpRW0kI2M=";
+    buildTypesAiobotocorePackage "managedblockchain-query" "2.13.0"
+      "sha256-kjxNEPAKBHsCKnJI+WgdVhEmrVURHfyUUwHOLSNazn0=";
 
   types-aiobotocore-marketplace-catalog =
-    buildTypesAiobotocorePackage "marketplace-catalog" "2.12.3"
-      "sha256-GkzlSr5zRispSfeIe2pmOMlLhxoBctn9EM1VXTnMSkg=";
+    buildTypesAiobotocorePackage "marketplace-catalog" "2.13.0"
+      "sha256-LG6cM9E5KgkMR2On3Z45UN3VgfcBtIPtBpt8OmTbhP8=";
 
   types-aiobotocore-marketplace-entitlement =
-    buildTypesAiobotocorePackage "marketplace-entitlement" "2.12.3"
-      "sha256-61Sgh1moietvRwtc2SrJhWZ5y1ZobI+CiIlL+zkbbgE=";
+    buildTypesAiobotocorePackage "marketplace-entitlement" "2.13.0"
+      "sha256-jPzcbqjrCS22zhDmrOK9KOvYv7y15iY88FSad2t9Dyc=";
 
   types-aiobotocore-marketplacecommerceanalytics =
-    buildTypesAiobotocorePackage "marketplacecommerceanalytics" "2.12.3"
-      "sha256-//+fB39zKqT9n+KIa9fMHoj4Oq5S5bq1vwsnEorPS2g=";
+    buildTypesAiobotocorePackage "marketplacecommerceanalytics" "2.13.0"
+      "sha256-Mtpin8e/YS95wDCII4w4lD9KiL4jXyYbeEDEGaLb38U=";
 
   types-aiobotocore-mediaconnect =
-    buildTypesAiobotocorePackage "mediaconnect" "2.12.3"
-      "sha256-DoIwvqLsCmcUR4UaEvTShKf6sYs3iQDyWkuDxz//cB8=";
+    buildTypesAiobotocorePackage "mediaconnect" "2.13.0"
+      "sha256-/fpb6bsagRYCil2SOWviJjdqNEMJjD7WMemzRf7C63o=";
 
   types-aiobotocore-mediaconvert =
-    buildTypesAiobotocorePackage "mediaconvert" "2.12.3"
-      "sha256-ESAo1QuHtL7T5fZMP15bwxtjDdymDOmz0MX/mcDd82s=";
+    buildTypesAiobotocorePackage "mediaconvert" "2.13.0"
+      "sha256-MSL3mYBrUDBeLitsWfR3Q2mwRzpoclL/oJkaFxc6TTw=";
 
   types-aiobotocore-medialive =
-    buildTypesAiobotocorePackage "medialive" "2.12.3"
-      "sha256-ZF+D7dzjmQNntkyM271BePIbCchA3o1naO/sChfYrGo=";
+    buildTypesAiobotocorePackage "medialive" "2.13.0"
+      "sha256-hZGqU1HI/0et9myUffbJDHFhsCkpl8x5M+iNgsxeNnk=";
 
   types-aiobotocore-mediapackage =
-    buildTypesAiobotocorePackage "mediapackage" "2.12.3"
-      "sha256-OiwnSNch2kbYfNbKNCPSrhg+9yAe4sktibGEQ3MPyXI=";
+    buildTypesAiobotocorePackage "mediapackage" "2.13.0"
+      "sha256-HD2rT2bgrFPGQQrHicz/1jnP9pbLnp+KN/kdA+Dp12U=";
 
   types-aiobotocore-mediapackage-vod =
-    buildTypesAiobotocorePackage "mediapackage-vod" "2.12.3"
-      "sha256-tmBmDVpO4hTT8xMuFpeAl1Gx+m+MacalYwdxKO8k8o4=";
+    buildTypesAiobotocorePackage "mediapackage-vod" "2.13.0"
+      "sha256-iXg4JDx3U42iwFVrpHHqk6yhCnHA0g9NA+f25BR85Ws=";
 
   types-aiobotocore-mediapackagev2 =
-    buildTypesAiobotocorePackage "mediapackagev2" "2.12.3"
-      "sha256-siRePAYIWMPCaivNTOCjhfafut6sQzFYqpiGO4rO+v8=";
+    buildTypesAiobotocorePackage "mediapackagev2" "2.13.0"
+      "sha256-B91QlIhMp9hGgJsToYseTQSB4n3Sgei4Bdgl3RmU5cw=";
 
   types-aiobotocore-mediastore =
-    buildTypesAiobotocorePackage "mediastore" "2.12.3"
-      "sha256-S5o0T8mUQ1ppq4vPdNeBr5FjcNpRtFPRQG4C/MZye2U=";
+    buildTypesAiobotocorePackage "mediastore" "2.13.0"
+      "sha256-2UwHy/6Ni/6rmd+OW1FKXp2jSDueGntuVInNt2kbHR8=";
 
   types-aiobotocore-mediastore-data =
-    buildTypesAiobotocorePackage "mediastore-data" "2.12.3"
-      "sha256-q4AFkM7keYfHWmnFOM5r1xHpVEnDjWsAmyATcfC7264=";
+    buildTypesAiobotocorePackage "mediastore-data" "2.13.0"
+      "sha256-L+Lo4cSR905FO7fkyFgJAhJ7JXmwpZY6yrAs3sI9Pow=";
 
   types-aiobotocore-mediatailor =
-    buildTypesAiobotocorePackage "mediatailor" "2.12.3"
-      "sha256-PLyaXf2/hrmo4YGS6KY8aXyhEv5ewGPWVsGoHS0Ui2g=";
+    buildTypesAiobotocorePackage "mediatailor" "2.13.0"
+      "sha256-eLnheUZLKCaklJuihJbnOi/nK/4G4QWpnpz8PWRYDa0=";
 
   types-aiobotocore-medical-imaging =
-    buildTypesAiobotocorePackage "medical-imaging" "2.12.3"
-      "sha256-3ZFHete+MHeUGomdkD54eCqwDfshP+5Vtf+jTOkRZww=";
+    buildTypesAiobotocorePackage "medical-imaging" "2.13.0"
+      "sha256-5r6e/tA+U8IJhX89/aQBSnEzOECDFqIoQ1t906c8p8s=";
 
   types-aiobotocore-memorydb =
-    buildTypesAiobotocorePackage "memorydb" "2.12.3"
-      "sha256-PB1wrc6y3enPpB+Wk3ciL7F1dgU8bqRxE5FarSaV/80=";
+    buildTypesAiobotocorePackage "memorydb" "2.13.0"
+      "sha256-2IKR1goAmHifDr1emN4VORd9WV1rZMbfEapVc+TQ9WE=";
 
   types-aiobotocore-meteringmarketplace =
-    buildTypesAiobotocorePackage "meteringmarketplace" "2.12.3"
-      "sha256-rKVoKaY63jArGx0R5Y9Xnp7OoztedmbshmB9d338LzM=";
+    buildTypesAiobotocorePackage "meteringmarketplace" "2.13.0"
+      "sha256-M/B4jn9RFGHHa1xbC7JeCQdKPqC7eU2Dv8wEIH0J9jQ=";
 
   types-aiobotocore-mgh =
-    buildTypesAiobotocorePackage "mgh" "2.12.3"
-      "sha256-bUWSyqyUMzvSQSMkqEPJYjhLoAXG1hUcIqHY5bpAito=";
+    buildTypesAiobotocorePackage "mgh" "2.13.0"
+      "sha256-mzvCnITcMJzMfpfRQFyIVpbtfVPY4qy5OLyb3UIlqUo=";
 
   types-aiobotocore-mgn =
-    buildTypesAiobotocorePackage "mgn" "2.12.3"
-      "sha256-I/NeUqOmAXeiF1Sej2LJkMOgKw1Lz4c7YrNJMf+Q4Ac=";
+    buildTypesAiobotocorePackage "mgn" "2.13.0"
+      "sha256-RejNbn28WmZ+ioSAKYFIegfC1AkbkRWLd65IwnWgzHY=";
 
   types-aiobotocore-migration-hub-refactor-spaces =
-    buildTypesAiobotocorePackage "migration-hub-refactor-spaces" "2.12.3"
-      "sha256-0mOX1FRHqlY4FggS/ieTRzc6I4dwoNT6syl0lUiSnFs=";
+    buildTypesAiobotocorePackage "migration-hub-refactor-spaces" "2.13.0"
+      "sha256-HR9zSE6SOLTYqQZV+RowVCV+YfVafbuCvfNvrNYUVgo=";
 
   types-aiobotocore-migrationhub-config =
-    buildTypesAiobotocorePackage "migrationhub-config" "2.12.3"
-      "sha256-CiobxWUFRuAI5qKFDO1zRQj5Xtp+RzMVjwGm2ZSBijY=";
+    buildTypesAiobotocorePackage "migrationhub-config" "2.13.0"
+      "sha256-WWfZkvq+OgnYGrTRcJfLJCZGsjpUy2AsEMkTyb+CUcs=";
 
   types-aiobotocore-migrationhuborchestrator =
-    buildTypesAiobotocorePackage "migrationhuborchestrator" "2.12.3"
-      "sha256-SZ+e7oEbPvRY8J6jLePeoG7osJv7zPtn9SV5z4cU4gU=";
+    buildTypesAiobotocorePackage "migrationhuborchestrator" "2.13.0"
+      "sha256-icVLvU1ZI1/5/owDALeg25qCK1Ny3PVrCvfydIfBCO8=";
 
   types-aiobotocore-migrationhubstrategy =
-    buildTypesAiobotocorePackage "migrationhubstrategy" "2.12.3"
-      "sha256-vO0Tjigj2x/HsA5gPsPU1peloI7GMvHXHe8dtsxSGTg=";
+    buildTypesAiobotocorePackage "migrationhubstrategy" "2.13.0"
+      "sha256-rgKjBmULUFRAFr8b6J9m58aoR2pKkSjLhJY7lkZOKRY=";
 
   types-aiobotocore-mobile =
-    buildTypesAiobotocorePackage "mobile" "2.12.3"
-      "sha256-s1ddYopINo+Q6T9QuD1sQ0P1UYgGxmYaSjxW6eCxK+Y=";
+    buildTypesAiobotocorePackage "mobile" "2.13.0"
+      "sha256-BICpQNN+Br+iDoMeTNSNyNacVgI1OrfcyZkDBl2SoUo=";
 
   types-aiobotocore-mq =
-    buildTypesAiobotocorePackage "mq" "2.12.3"
-      "sha256-tEvBlyvVNNDLRHe8UPzdjnq1hA5QqPDUdtuS2zj6zu0=";
+    buildTypesAiobotocorePackage "mq" "2.13.0"
+      "sha256-+Y1GRkcDbR4SXOIGneHepAS/qrgjnM7K26po8Nf1YsA=";
 
   types-aiobotocore-mturk =
-    buildTypesAiobotocorePackage "mturk" "2.12.3"
-      "sha256-59BieemJgQXv3YyitmffaeD7oxlQAKT8xX/E/VxG0JY=";
+    buildTypesAiobotocorePackage "mturk" "2.13.0"
+      "sha256-s3unZa/uhHtqArgIuBNoWcTnAFj9rduODKfs6gtc2fw=";
 
   types-aiobotocore-mwaa =
-    buildTypesAiobotocorePackage "mwaa" "2.12.3"
-      "sha256-ayUivauZR/s6ivrJA5DFviFgH/rq/f3KYGimULyoizY=";
+    buildTypesAiobotocorePackage "mwaa" "2.13.0"
+      "sha256-ZS8XXr4rroDTCDSuPep8kG7e/h8v9i7499UJrQfgEDk=";
 
   types-aiobotocore-neptune =
-    buildTypesAiobotocorePackage "neptune" "2.12.3"
-      "sha256-bzIzK9sKecGyKvEVWvgwis8Lm9HRP/y49MSnQQb1XGk=";
+    buildTypesAiobotocorePackage "neptune" "2.13.0"
+      "sha256-fvEnIIx66IrTx4exrIJm/KVytf0F+fb3RpmUVE2niXA=";
 
   types-aiobotocore-network-firewall =
-    buildTypesAiobotocorePackage "network-firewall" "2.12.3"
-      "sha256-2Ze/cG5ixrzYm0jZ4hByh7Wz3nAzH3/jyopgFyTUjdg=";
+    buildTypesAiobotocorePackage "network-firewall" "2.13.0"
+      "sha256-R12G5XKsP034MeJ2Tf2bctcrMVlfQ6o9ZDCBpdLN/+E=";
 
   types-aiobotocore-networkmanager =
-    buildTypesAiobotocorePackage "networkmanager" "2.12.3"
-      "sha256-F14ejhHjbv2BmfNng0hmI34+aA8pVCf4L+Cvn2Kx6Jc=";
+    buildTypesAiobotocorePackage "networkmanager" "2.13.0"
+      "sha256-H2tj/8DQqtT1GIZP1FmRuAR/bf5Q5d1VOoCcsgsQxJA=";
 
   types-aiobotocore-nimble =
-    buildTypesAiobotocorePackage "nimble" "2.12.3"
-      "sha256-8WpARJKsOatdQXzmFt30FFri8b1h3bBeyydbZ73kPMc=";
+    buildTypesAiobotocorePackage "nimble" "2.13.0"
+      "sha256-00Di+tYc0/CTTUOu1ax1lNp/2tfCvB58L9ETzqWEjRE=";
 
   types-aiobotocore-oam =
-    buildTypesAiobotocorePackage "oam" "2.12.3"
-      "sha256-qJlO69CxqQnDekL7KRoQEkDd3w5rCxwJ0Z6RRGZxVgU=";
+    buildTypesAiobotocorePackage "oam" "2.13.0"
+      "sha256-q9sBKS2BiiuCGvv+pkm/WSgN70a/KY7gLgxayG3yu98=";
 
   types-aiobotocore-omics =
-    buildTypesAiobotocorePackage "omics" "2.12.3"
-      "sha256-TA4kRoEoYZ6awy9TL550xT0sjVg2FEdfOQLrBEurCTo=";
+    buildTypesAiobotocorePackage "omics" "2.13.0"
+      "sha256-bNahQYb5iuNxk+XQSpf61w68hjGA6Hm62zr70Gj2UeU=";
 
   types-aiobotocore-opensearch =
-    buildTypesAiobotocorePackage "opensearch" "2.12.3"
-      "sha256-uDCRtJuEKNh1HuHCq+YjucLj4VAoHTiqVaOvVnTDJr8=";
+    buildTypesAiobotocorePackage "opensearch" "2.13.0"
+      "sha256-zpvBC/rJ/7+C1JDwpiZtksC964po0TuHPBeW6yvD5ww=";
 
   types-aiobotocore-opensearchserverless =
-    buildTypesAiobotocorePackage "opensearchserverless" "2.12.3"
-      "sha256-KMftaU+mCA1yUnZ1/N1C4N353Lulnmue1Y95GGmIAPg=";
+    buildTypesAiobotocorePackage "opensearchserverless" "2.13.0"
+      "sha256-E3N6ewi/YCAeoHBW5WS0FwkO5YjZURxUJhSnESWuG40=";
 
   types-aiobotocore-opsworks =
-    buildTypesAiobotocorePackage "opsworks" "2.12.3"
-      "sha256-0YVnEY6G5Huj3pnvouc6LaIPHb0uJdRkwF2/EPknFd0=";
+    buildTypesAiobotocorePackage "opsworks" "2.13.0"
+      "sha256-LGOxPGYIIXqu/+4SenVUAWhpo7xiSf76wkv8RmSaWro=";
 
   types-aiobotocore-opsworkscm =
-    buildTypesAiobotocorePackage "opsworkscm" "2.12.3"
-      "sha256-o+tbhUjox4tueImh0cWLqe8Z0xDaDmA1BGMUmFDoEkA=";
+    buildTypesAiobotocorePackage "opsworkscm" "2.13.0"
+      "sha256-inV4lalhHYvkbyIHcG3DQfAllLSW15sUYHr9b0yhg0g=";
 
   types-aiobotocore-organizations =
-    buildTypesAiobotocorePackage "organizations" "2.12.3"
-      "sha256-uZ/hxE2GOIPcbtlyG82sBA+uT4RxAORvck4WjghJ+kg=";
+    buildTypesAiobotocorePackage "organizations" "2.13.0"
+      "sha256-KjQ+zOmxStuXKokL3R1JfZhKwEpH/FRhfhpfz78rZw0=";
 
   types-aiobotocore-osis =
-    buildTypesAiobotocorePackage "osis" "2.12.3"
-      "sha256-kxa5cYYzTSpPmLHV+1ZKjBAC4S9ITmT0p/NI34rQwSs=";
+    buildTypesAiobotocorePackage "osis" "2.13.0"
+      "sha256-LfEOIg6J72v6JBlpl5QFEuqxA28CWJCP+bkhtIvQB6c=";
 
   types-aiobotocore-outposts =
-    buildTypesAiobotocorePackage "outposts" "2.12.3"
-      "sha256-Xf3CuvPjTQODNeSmI+meP7aHj9a26lPGWQ7nWfc/FjE=";
+    buildTypesAiobotocorePackage "outposts" "2.13.0"
+      "sha256-Ss1iKr7EUhLXTT/bSM63HX01NNuKtpKWLodVaZIfNso=";
 
   types-aiobotocore-panorama =
-    buildTypesAiobotocorePackage "panorama" "2.12.3"
-      "sha256-nzkVKxoLpkEBthjyO4d2m8QsEVz2pYsjfBC0sGsTkrY=";
+    buildTypesAiobotocorePackage "panorama" "2.13.0"
+      "sha256-POEZh26xXi3VJWuGaWjf4r8XHL9RKdrEkpb3gqAWWOQ=";
 
   types-aiobotocore-payment-cryptography =
-    buildTypesAiobotocorePackage "payment-cryptography" "2.12.3"
-      "sha256-7H0ew8JQNCUkbNiqCH4jCoO883j5y1hbxXqwwJARuTs=";
+    buildTypesAiobotocorePackage "payment-cryptography" "2.13.0"
+      "sha256-3X8YP4T3ZhW4QG9eUZDK/YEH4GrqsjlYKcajkx3EwrQ=";
 
   types-aiobotocore-payment-cryptography-data =
-    buildTypesAiobotocorePackage "payment-cryptography-data" "2.12.3"
-      "sha256-awVZZf6o0VRTqOl1myJggGdCmwoC5XBTlYSeupceWr0=";
+    buildTypesAiobotocorePackage "payment-cryptography-data" "2.13.0"
+      "sha256-jk2OPWSuPMSU5N4dGhEKacjcker9fWnvKqFAB0CR71o=";
 
   types-aiobotocore-personalize =
-    buildTypesAiobotocorePackage "personalize" "2.12.3"
-      "sha256-j+q16/K4NSdsLmt+vXF3SEy2Kde+/6BxEZ05zOOPI2w=";
+    buildTypesAiobotocorePackage "personalize" "2.13.0"
+      "sha256-ev7xOsnF0HscpYbp8P4tcHCs9NepHHWU0LCetScAlx0=";
 
   types-aiobotocore-personalize-events =
-    buildTypesAiobotocorePackage "personalize-events" "2.12.3"
-      "sha256-YY3hOmgc5ZU1rrN5cbHoIS54eby1AM2vYPz//fGH7Mw=";
+    buildTypesAiobotocorePackage "personalize-events" "2.13.0"
+      "sha256-l3p0VtDiGp8FyXjDjSgiX2IjvLizx9kkv3EvJEIFNBI=";
 
   types-aiobotocore-personalize-runtime =
-    buildTypesAiobotocorePackage "personalize-runtime" "2.12.3"
-      "sha256-D8k7Ui77IvVkpODg7p8SQLO7We3/EYhZaHODsJskJgc=";
+    buildTypesAiobotocorePackage "personalize-runtime" "2.13.0"
+      "sha256-f79eCbB0RFbcNbmPFWpT830y+42QXb5+dM1WTab9cP0=";
 
   types-aiobotocore-pi =
-    buildTypesAiobotocorePackage "pi" "2.12.3"
-      "sha256-sOLfoF0t58cvdvB8LModo1fs8cPovn9gkg0d0opDj1c=";
+    buildTypesAiobotocorePackage "pi" "2.13.0"
+      "sha256-DzpcGn4lfHbUysUx2S2mcSOOTJJhYS0soEFDapYADkE=";
 
   types-aiobotocore-pinpoint =
-    buildTypesAiobotocorePackage "pinpoint" "2.12.3"
-      "sha256-YMB/QCn6zawXBB2Fw4he6CIdZFMz4s91IZIbx1W5RwU=";
+    buildTypesAiobotocorePackage "pinpoint" "2.13.0"
+      "sha256-9CUdzl8WKlgOZK6ovzTT7Kjt9/RuUiER0LAR/T1Su1Q=";
 
   types-aiobotocore-pinpoint-email =
-    buildTypesAiobotocorePackage "pinpoint-email" "2.12.3"
-      "sha256-7MCEh3ICp+3qD6Uijk4/wpEzaP56khP7lG/1RJ26IJg=";
+    buildTypesAiobotocorePackage "pinpoint-email" "2.13.0"
+      "sha256-57zdAVy4B/Xvr2g81zB4z7pkvrQgcCPq+AhV305OS1Y=";
 
   types-aiobotocore-pinpoint-sms-voice =
-    buildTypesAiobotocorePackage "pinpoint-sms-voice" "2.12.3"
-      "sha256-qCnMdlF9VwoTpXxgMObmOa61xzj8NHQoxJriMEbWUPs=";
+    buildTypesAiobotocorePackage "pinpoint-sms-voice" "2.13.0"
+      "sha256-E6p9sQx8+NPVMXMxD8c1UdZrHYH4Qd0A80JHGFhA7ss=";
 
   types-aiobotocore-pinpoint-sms-voice-v2 =
-    buildTypesAiobotocorePackage "pinpoint-sms-voice-v2" "2.12.3"
-      "sha256-eWOhKQR0tTlqLKCmy3zWvRsg5Y0zRKxtQPM8DGEbvuE=";
+    buildTypesAiobotocorePackage "pinpoint-sms-voice-v2" "2.13.0"
+      "sha256-aXh055/gbJJCyG5QVXpIKqw+coxVBGmhw2VPdvZnBik=";
 
   types-aiobotocore-pipes =
-    buildTypesAiobotocorePackage "pipes" "2.12.3"
-      "sha256-kKpp8rQ/co4tJhi1xpuEaIpICy+8sM4grp6bu9HsGMw=";
+    buildTypesAiobotocorePackage "pipes" "2.13.0"
+      "sha256-c42b0kDLfRBE+lJ7r/GUqYqj7Dl/z0aUbpg4y2XEoAU=";
 
   types-aiobotocore-polly =
-    buildTypesAiobotocorePackage "polly" "2.12.3"
-      "sha256-lwU91zv+IhHXBoGtioox9iB7lqGxXwf+s3A43qDZFRw=";
+    buildTypesAiobotocorePackage "polly" "2.13.0"
+      "sha256-be+Ul5pZYU3EuBoSriRHdOECu+8FcIBu/hHsBtMSrCM=";
 
   types-aiobotocore-pricing =
-    buildTypesAiobotocorePackage "pricing" "2.12.3"
-      "sha256-n3bM48N4nqgXA5XQ+2lHgqyfADGP8pt8MDcpd3Afdbc=";
+    buildTypesAiobotocorePackage "pricing" "2.13.0"
+      "sha256-6nulrxv3q74k1Mld1/JtGFx+EQCDuFecxskw1aZvZ3M=";
 
   types-aiobotocore-privatenetworks =
-    buildTypesAiobotocorePackage "privatenetworks" "2.12.3"
-      "sha256-EvxCTzjfaxz3sj7S39I1MvOUo5n4vnc4h0X4bWevSwE=";
+    buildTypesAiobotocorePackage "privatenetworks" "2.13.0"
+      "sha256-dB0R/ZUIIgEyWmlvbrFxh53C3Xq92EGrObd/FiQJlOU=";
 
   types-aiobotocore-proton =
-    buildTypesAiobotocorePackage "proton" "2.12.3"
-      "sha256-/0MAjPO7xXsuePNUGpqpSOORe6GsH8IpbZUj4F9+Jp0=";
+    buildTypesAiobotocorePackage "proton" "2.13.0"
+      "sha256-Urwvd8q8FOwhYhl1oi8onuP3r1Qu3V7kCgfH7mN5t8g=";
 
   types-aiobotocore-qldb =
-    buildTypesAiobotocorePackage "qldb" "2.12.3"
-      "sha256-2LbMUzIge0Jf+iGDI06ne7QP3EMoiVY3m1KOniiRnsw=";
+    buildTypesAiobotocorePackage "qldb" "2.13.0"
+      "sha256-36D0kXk4qitMvkA7If8bZUUdnntEkXFeg2txUzjFzJc=";
 
   types-aiobotocore-qldb-session =
-    buildTypesAiobotocorePackage "qldb-session" "2.12.3"
-      "sha256-Ooj8lzd48n+tcICQgAJT9z//7r+obDdv4jvTNTAhzCw=";
+    buildTypesAiobotocorePackage "qldb-session" "2.13.0"
+      "sha256-39psT/kzcSLJqP3Wy08GBZ9/4guzw/x+ndbNYuLP1ns=";
 
   types-aiobotocore-quicksight =
-    buildTypesAiobotocorePackage "quicksight" "2.12.3"
-      "sha256-aZGpaXSomaU0+oFEEuN1C/1zjA4UAz4vn/Nu2JJThrA=";
+    buildTypesAiobotocorePackage "quicksight" "2.13.0"
+      "sha256-15z6hK1P9LREE8ehE+SzTR6BZqUzkFLjw/x3UGuRNAw=";
 
   types-aiobotocore-ram =
-    buildTypesAiobotocorePackage "ram" "2.12.3"
-      "sha256-bauCdG3Qf4Uiyw0szQL7SBm7QmYSmcDAOW2nW23xlQ0=";
+    buildTypesAiobotocorePackage "ram" "2.13.0"
+      "sha256-LlVfeu1m0FROsfyWrLcZRFU0cZivHfuLIZNbpLhXvuU=";
 
   types-aiobotocore-rbin =
-    buildTypesAiobotocorePackage "rbin" "2.12.3"
-      "sha256-zitp/IE5zJL0qKF5TM3nQdUA1qgSeCSGcK/WS3niRUA=";
+    buildTypesAiobotocorePackage "rbin" "2.13.0"
+      "sha256-AdwPPoUy7jnSTdnAR1w2m9b+txQagRaBUWr8/TOuTjU=";
 
   types-aiobotocore-rds =
-    buildTypesAiobotocorePackage "rds" "2.12.3"
-      "sha256-scJBwjmxy+UmivIBKl5ncB0/JQSeSwSh3wA30EWH/+o=";
+    buildTypesAiobotocorePackage "rds" "2.13.0"
+      "sha256-tq4SeOB2pAsw7p+zHp7l3A9rkCu8Gx9/shuYA0W3gbY=";
 
   types-aiobotocore-rds-data =
-    buildTypesAiobotocorePackage "rds-data" "2.12.3"
-      "sha256-KmEecWh2Z0O6eoRjEClzDC/Vp3qYwrPtdIW6ty2/jM4=";
+    buildTypesAiobotocorePackage "rds-data" "2.13.0"
+      "sha256-n8y+lLePLNr0OQG8V0orUolAk25T9+zjOESwL7hzx0U=";
 
   types-aiobotocore-redshift =
-    buildTypesAiobotocorePackage "redshift" "2.12.3"
-      "sha256-H0GqZM72tVXcvs6ciE9wcqOAQfECU84iKn2VdGaNhIg=";
+    buildTypesAiobotocorePackage "redshift" "2.13.0"
+      "sha256-6wjuDJGyF08s0iVFiz/ZemBxz76ZMiMBO+JBGcBhUL0=";
 
   types-aiobotocore-redshift-data =
-    buildTypesAiobotocorePackage "redshift-data" "2.12.3"
-      "sha256-3eJxMH1JvdJ1n9XnC/6+q7rT5ipaUE/J5G++O1MGf40=";
+    buildTypesAiobotocorePackage "redshift-data" "2.13.0"
+      "sha256-YRCKvcxvjYvLjvh5s02A9EihxBqTsGMDgByhqbFhlmY=";
 
   types-aiobotocore-redshift-serverless =
-    buildTypesAiobotocorePackage "redshift-serverless" "2.12.3"
-      "sha256-+KyAzCuPDV9QTx5COJZjGRpiciYdSHDaaulH++s8Olk=";
+    buildTypesAiobotocorePackage "redshift-serverless" "2.13.0"
+      "sha256-w3xyGATAH0dku7XD4qBR8x4YW9n1lBkxCm45b6oZYw4=";
 
   types-aiobotocore-rekognition =
-    buildTypesAiobotocorePackage "rekognition" "2.12.3"
-      "sha256-AZ3tTUTTQsxIDn7hmq5DkepvOGRA/OBGC7O0Y9ZCqb4=";
+    buildTypesAiobotocorePackage "rekognition" "2.13.0"
+      "sha256-c/74cWPIFaFqZO2/KwuBFzDRFXUN6mGEU4+dhlmZL2c=";
 
   types-aiobotocore-resiliencehub =
-    buildTypesAiobotocorePackage "resiliencehub" "2.12.3"
-      "sha256-mAKlLfWNTYpYA7QJl6VLHv9Kl4xNXKsRFZJbCEpLjdI=";
+    buildTypesAiobotocorePackage "resiliencehub" "2.13.0"
+      "sha256-KWIljOtiUP4vnED4jhtEK+o8KkNd5144rHrGGOFEzSo=";
 
   types-aiobotocore-resource-explorer-2 =
-    buildTypesAiobotocorePackage "resource-explorer-2" "2.12.3"
-      "sha256-Tc2AoAADC9+ElCBKqATsRqAlq12gNcJKr7evJpbZejg=";
+    buildTypesAiobotocorePackage "resource-explorer-2" "2.13.0"
+      "sha256-7TABg31imqlKbOpfhHfEsvBWiuSvXFQXBV5sy4Vypdw=";
 
   types-aiobotocore-resource-groups =
-    buildTypesAiobotocorePackage "resource-groups" "2.12.3"
-      "sha256-U02sdfU+FPpcKf7KP4WEIhwbew7CHnXUhE497fYmEXk=";
+    buildTypesAiobotocorePackage "resource-groups" "2.13.0"
+      "sha256-n94mli/2Ugq3wfsB7nY6xMG/w4mPnpna7nzKd8tuH9s=";
 
   types-aiobotocore-resourcegroupstaggingapi =
-    buildTypesAiobotocorePackage "resourcegroupstaggingapi" "2.12.3"
-      "sha256-Ydf20+setw1400AydFrUHUWQdvNE4g2x23Q9Vn+FG+0=";
+    buildTypesAiobotocorePackage "resourcegroupstaggingapi" "2.13.0"
+      "sha256-TUX08CfZ+ts1c8nnUVQTXueX7A6Kv/+8gVxvIs/r1vs=";
 
   types-aiobotocore-robomaker =
-    buildTypesAiobotocorePackage "robomaker" "2.12.3"
-      "sha256-trj8NpEEUJTB0WEzX1XyVQtofWH/j52oNb9CKL/lpSQ=";
+    buildTypesAiobotocorePackage "robomaker" "2.13.0"
+      "sha256-Rkys6ilXRFonXAt/w97LYfBbqASrs9pLiB79wgzIXxk=";
 
   types-aiobotocore-rolesanywhere =
-    buildTypesAiobotocorePackage "rolesanywhere" "2.12.3"
-      "sha256-xd23IpWelx5jtNTBWtCJZEIG4m/o0dpHlXi82goX8m8=";
+    buildTypesAiobotocorePackage "rolesanywhere" "2.13.0"
+      "sha256-nN6qqN6uhy0NvrubHlYjLurHZxbKqmdMMBS3GM0wcXQ=";
 
   types-aiobotocore-route53 =
-    buildTypesAiobotocorePackage "route53" "2.12.3"
-      "sha256-oEyb1NE+3wDStkvUX0gtJ6Bzp/oHIUw1gyQVdFv0PXw=";
+    buildTypesAiobotocorePackage "route53" "2.13.0"
+      "sha256-CCG6vttkC1uj7gxRxO7xFnd35gAfhhLm5Dj7VVeJEHc=";
 
   types-aiobotocore-route53-recovery-cluster =
-    buildTypesAiobotocorePackage "route53-recovery-cluster" "2.12.3"
-      "sha256-lnWLEXErO3LO4teDnVnkGRawfEXdh2EgkDL9RVp941Q=";
+    buildTypesAiobotocorePackage "route53-recovery-cluster" "2.13.0"
+      "sha256-CQUSDYfeW4Esvi3gTae4xaYZTA6ylPriWV81S6+NeNQ=";
 
   types-aiobotocore-route53-recovery-control-config =
-    buildTypesAiobotocorePackage "route53-recovery-control-config" "2.12.3"
-      "sha256-FsnXHspKP62zQiB0zhX28V3yeLAMNqMW6JHTVtGVjsk=";
+    buildTypesAiobotocorePackage "route53-recovery-control-config" "2.13.0"
+      "sha256-8chbPLryP96xhv2Y6mPLYnAmUp7tz1KL14EB9OED3aA=";
 
   types-aiobotocore-route53-recovery-readiness =
-    buildTypesAiobotocorePackage "route53-recovery-readiness" "2.12.3"
-      "sha256-mAWpWgYqjnoIHJzw3nNNQA5m5bQd+mkU1536hDb2K+w=";
+    buildTypesAiobotocorePackage "route53-recovery-readiness" "2.13.0"
+      "sha256-gaFNIBWhLBXgSdvrztz702QROQbkwd0+VTAjV0zme2Q=";
 
   types-aiobotocore-route53domains =
-    buildTypesAiobotocorePackage "route53domains" "2.12.3"
-      "sha256-sm1A/O/k62QDcmrhv5mpHZ3YqixRWcPnV2VEL9AfkFs=";
+    buildTypesAiobotocorePackage "route53domains" "2.13.0"
+      "sha256-JvPF9T7h4Vz/9lXQ+JZr+NtmUHj2JTcpdUPq1hH9Z0Y=";
 
   types-aiobotocore-route53resolver =
-    buildTypesAiobotocorePackage "route53resolver" "2.12.3"
-      "sha256-wZVYaDPSU5d0xTeCJQcPi0hiLRt4pvrbMozalM3fIUA=";
+    buildTypesAiobotocorePackage "route53resolver" "2.13.0"
+      "sha256-cnyN8S4V+wdlhqhWLwOBlsZxL7LEXy/hPI14+xwCP1o=";
 
   types-aiobotocore-rum =
-    buildTypesAiobotocorePackage "rum" "2.12.3"
-      "sha256-IMk/fTHusesqUz0k9KC0TIDcCiShh+DSdQowOBBpeJg=";
+    buildTypesAiobotocorePackage "rum" "2.13.0"
+      "sha256-xEkOqe5WtYJArHH7MIluw/ANTxo2/Yrh4XZoFW12fAM=";
 
   types-aiobotocore-s3 =
-    buildTypesAiobotocorePackage "s3" "2.12.3"
-      "sha256-UcY0A+OAG3Dfi6HfH2leuknKraIHceX6pWcPsXElzX8=";
+    buildTypesAiobotocorePackage "s3" "2.13.0"
+      "sha256-ENUvZw4nCFffkH2VCfTKg2gzvATLXqh+SbXdPdowJbI=";
 
   types-aiobotocore-s3control =
-    buildTypesAiobotocorePackage "s3control" "2.12.3"
-      "sha256-SSD5mCt392ZE0SmypwASM1HeuqnNFbnBjsI/8Uwy+Y0=";
+    buildTypesAiobotocorePackage "s3control" "2.13.0"
+      "sha256-55qykWmSOXfwrZuLq6xgyPSLp+fW1k4sOm9Az8SPAls=";
 
   types-aiobotocore-s3outposts =
-    buildTypesAiobotocorePackage "s3outposts" "2.12.3"
-      "sha256-iFrAYHvNIpgH+M6HeuogIZJiRiyzLhuOboEF3ipCCug=";
+    buildTypesAiobotocorePackage "s3outposts" "2.13.0"
+      "sha256-ZGWo0IqJls/dZp0nHCjL7kxHoqHThm0IrNH81ecaHiA=";
 
   types-aiobotocore-sagemaker =
-    buildTypesAiobotocorePackage "sagemaker" "2.12.3"
-      "sha256-DTUta+jol6bEAisciUDPaiubNdc7CE1DC2njjPVCuEw=";
+    buildTypesAiobotocorePackage "sagemaker" "2.13.0"
+      "sha256-UEmw6ehUWFpNECvB5fg9hy4MzsSUYbypb+NPwshH97I=";
 
   types-aiobotocore-sagemaker-a2i-runtime =
-    buildTypesAiobotocorePackage "sagemaker-a2i-runtime" "2.12.3"
-      "sha256-+DV7vYutJqk3pcA8gaXVQW2foTKD07elUUFyMi13QT8=";
+    buildTypesAiobotocorePackage "sagemaker-a2i-runtime" "2.13.0"
+      "sha256-0gSeq5TGWisG+7juOwMikhMcZRyVj1K996sHUuQJhJg=";
 
   types-aiobotocore-sagemaker-edge =
-    buildTypesAiobotocorePackage "sagemaker-edge" "2.12.3"
-      "sha256-SFZJnRXUDM5qlvMf6nTso38RmBXKbN3xqOdXFwoCOEc=";
+    buildTypesAiobotocorePackage "sagemaker-edge" "2.13.0"
+      "sha256-BhDbkVmqNNw3thOA7dDBf2wsGsOYnT5jsgXvMiQlSp4=";
 
   types-aiobotocore-sagemaker-featurestore-runtime =
-    buildTypesAiobotocorePackage "sagemaker-featurestore-runtime" "2.12.3"
-      "sha256-PnVM2KeIEodV1RVmiXv6Zh80NfnzxV3ih3RpNYJlnzw=";
+    buildTypesAiobotocorePackage "sagemaker-featurestore-runtime" "2.13.0"
+      "sha256-bPXKu5HDDvU9wPb5Av6n2C1sszO1zAfC395oC1x11yA=";
 
   types-aiobotocore-sagemaker-geospatial =
-    buildTypesAiobotocorePackage "sagemaker-geospatial" "2.12.3"
-      "sha256-Lg2PR/AB5yqsRwUWZfIf7vP7Ig2G8APEZRzCXUm0H48=";
+    buildTypesAiobotocorePackage "sagemaker-geospatial" "2.13.0"
+      "sha256-1mXX7egH6VDSUPnxmSAeBUm4tqh9CS+tDjdu+j/tPWo=";
 
   types-aiobotocore-sagemaker-metrics =
-    buildTypesAiobotocorePackage "sagemaker-metrics" "2.12.3"
-      "sha256-Iv6JOyRcAfkaNdq/m2ot/e8CTZREWIE7V+tEsZNZ3HY=";
+    buildTypesAiobotocorePackage "sagemaker-metrics" "2.13.0"
+      "sha256-wt0NAOC+pb6XTD59ZNLksByX4FwAmrQ2HErj15FUA2E=";
 
   types-aiobotocore-sagemaker-runtime =
-    buildTypesAiobotocorePackage "sagemaker-runtime" "2.12.3"
-      "sha256-/jd4KgxRbV9IzTGDm0BkcQ5UIaRpDyLBUFZXLsaYzA4=";
+    buildTypesAiobotocorePackage "sagemaker-runtime" "2.13.0"
+      "sha256-csZFZFJwaxrWFmhzQjdw7DHfTxdfEt41GUh2OQ52wkg=";
 
   types-aiobotocore-savingsplans =
-    buildTypesAiobotocorePackage "savingsplans" "2.12.3"
-      "sha256-PgrfYlgmvM7QtF0E1z4xi8gGK+ixZykxvdEMpTz3SZw=";
+    buildTypesAiobotocorePackage "savingsplans" "2.13.0"
+      "sha256-WAPagWtRhqsmwrCXGNTai/uargonI8p9PMx6ER3gUus=";
 
   types-aiobotocore-scheduler =
-    buildTypesAiobotocorePackage "scheduler" "2.12.3"
-      "sha256-jXpQJ1Uw2nOVZpkXtUf1mCrS9YykBJcvVMCp5Jz9558=";
+    buildTypesAiobotocorePackage "scheduler" "2.13.0"
+      "sha256-AjAj8QHxU0aOqWMt98M+Qe5v6Dc72ftWuaQ7omTlkRg=";
 
   types-aiobotocore-schemas =
-    buildTypesAiobotocorePackage "schemas" "2.12.3"
-      "sha256-PiRnAEU/+r/VT3SiboaUpU9FRyOs/3Wj5wCJDyzKZNU=";
+    buildTypesAiobotocorePackage "schemas" "2.13.0"
+      "sha256-liVnb5YGMACt8P3NXYudpY8Ai5bVqZuv3Q0/WNrLCHg=";
 
   types-aiobotocore-sdb =
-    buildTypesAiobotocorePackage "sdb" "2.12.3"
-      "sha256-17iQmuTvmeMDkz3fRxYlE/JcCy/XTuCNmlG5EGGY1S8=";
+    buildTypesAiobotocorePackage "sdb" "2.13.0"
+      "sha256-Yl/GGw/5EUPuIsPUbrG+g1icYqlewsFLwFdvUCnrT4E=";
 
   types-aiobotocore-secretsmanager =
-    buildTypesAiobotocorePackage "secretsmanager" "2.12.3"
-      "sha256-Yk0GEeSSl3Bhx9w/uRrrl9oNjpdw4ekye1Ia38fpvXE=";
+    buildTypesAiobotocorePackage "secretsmanager" "2.13.0"
+      "sha256-v0mr8Z2VMpMzPVbnxCoGJ4Oc2Az2QI3Emnci4UMe6sc=";
 
   types-aiobotocore-securityhub =
-    buildTypesAiobotocorePackage "securityhub" "2.12.3"
-      "sha256-iZzzocPVbiWn6ZaHOEu42hcOLJyjgIRWCJpeSiQE3I4=";
+    buildTypesAiobotocorePackage "securityhub" "2.13.0"
+      "sha256-lwsfWc2pkCpsX84z1CfwbWjORqwv+ULpe96Gl4063Fk=";
 
   types-aiobotocore-securitylake =
-    buildTypesAiobotocorePackage "securitylake" "2.12.3"
-      "sha256-q9e+7s3//qaswRo1wwIIhtEz7qszUKuHXXG3n4z8piE=";
+    buildTypesAiobotocorePackage "securitylake" "2.13.0"
+      "sha256-viS9OU1nyW8tk4c0G4oWh48APJf39s/P2Vqo2iLJXbg=";
 
   types-aiobotocore-serverlessrepo =
-    buildTypesAiobotocorePackage "serverlessrepo" "2.12.3"
-      "sha256-sqFr4/WFedUrgVK9PAVffaA4lhEK510679P/RoTv4xw=";
+    buildTypesAiobotocorePackage "serverlessrepo" "2.13.0"
+      "sha256-09grClFgCl+HJX5jmttq7y1HRDuBIn0z16dHO4iRmB4=";
 
   types-aiobotocore-service-quotas =
-    buildTypesAiobotocorePackage "service-quotas" "2.12.3"
-      "sha256-vCRTtFjQfCe38y/wZaxjIfHRLzkqAakDf/sNXtU2TOY=";
+    buildTypesAiobotocorePackage "service-quotas" "2.13.0"
+      "sha256-IKxnbv5AnPFS2MnkruYX3BsQTwrj/dnWhDURTD1/rcU=";
 
   types-aiobotocore-servicecatalog =
-    buildTypesAiobotocorePackage "servicecatalog" "2.12.3"
-      "sha256-9EXbCcvcrXmKktoZXp+LdKXQOi6V9VKHrFVR++XGhOI=";
+    buildTypesAiobotocorePackage "servicecatalog" "2.13.0"
+      "sha256-VhxY09Y/GdngzaNQClwDBxrIsxGGUPnUfhnIEmoFa08=";
 
   types-aiobotocore-servicecatalog-appregistry =
-    buildTypesAiobotocorePackage "servicecatalog-appregistry" "2.12.3"
-      "sha256-VenvRShJhVaZHkM0MN+iEZHGeOeqbAYneRW0lB4+fww=";
+    buildTypesAiobotocorePackage "servicecatalog-appregistry" "2.13.0"
+      "sha256-TCuTVU3ibRuJxqo0YofFDHkKhsqPErqdSIEks1lFGxE=";
 
   types-aiobotocore-servicediscovery =
-    buildTypesAiobotocorePackage "servicediscovery" "2.12.3"
-      "sha256-fK38DE6aGY03HmtIBBhyxX4pjA3XOiKKZJ2iMJeZDP8=";
+    buildTypesAiobotocorePackage "servicediscovery" "2.13.0"
+      "sha256-22jlffIHiNjCGc7Vfz5HhLPrquy/3qTB2MRtjOvKHkk=";
 
   types-aiobotocore-ses =
-    buildTypesAiobotocorePackage "ses" "2.12.3"
-      "sha256-oYoq9cMFB7qKjUccWa4iunjlwizUA/pevKcQiHS68wY=";
+    buildTypesAiobotocorePackage "ses" "2.13.0"
+      "sha256-4pjWdJ2/5iUM6YOs8lhApi0zDFnsrt9Nja3W59sNZpw=";
 
   types-aiobotocore-sesv2 =
-    buildTypesAiobotocorePackage "sesv2" "2.12.3"
-      "sha256-JR16UIvxYyWR+T7Ar9ft8rwxZrqwyzKy5pVJMi6kzbA=";
+    buildTypesAiobotocorePackage "sesv2" "2.13.0"
+      "sha256-Cfmcdmx6SjcL+26o1T6yyC/KDYBx/B0jn4wYZizWTuw=";
 
   types-aiobotocore-shield =
-    buildTypesAiobotocorePackage "shield" "2.12.3"
-      "sha256-tuzWmBEyMr9k4isVkg5ybz7NBwKl5udmHHdokUVILog=";
+    buildTypesAiobotocorePackage "shield" "2.13.0"
+      "sha256-7fo5XF4RMTKWHqDknStr/3T++TCDJvkxXGTw8l2y3n8=";
 
   types-aiobotocore-signer =
-    buildTypesAiobotocorePackage "signer" "2.12.3"
-      "sha256-jy6cpicBp423tHyp6ALwPro0CwPddDfQHdo9KBOOtLo=";
+    buildTypesAiobotocorePackage "signer" "2.13.0"
+      "sha256-Z7q+pNHlTSyagYUkCIQwsOgNousT7s7VnNEyGqi9LqM=";
 
   types-aiobotocore-simspaceweaver =
-    buildTypesAiobotocorePackage "simspaceweaver" "2.12.3"
-      "sha256-fDVnFlLYm+8lfSVfFAGu5sjqrVIjmC0WCPpPbIhyf9w=";
+    buildTypesAiobotocorePackage "simspaceweaver" "2.13.0"
+      "sha256-+0aYuQO2nN1nyNFwSL1Fh/CWfLWkb7tu2ZAPtwG5vxw=";
 
   types-aiobotocore-sms =
-    buildTypesAiobotocorePackage "sms" "2.12.3"
-      "sha256-RF91H0JiSTScbqvFbKHkid/Wp7+Qr/qLc6UT9bltEdY=";
+    buildTypesAiobotocorePackage "sms" "2.13.0"
+      "sha256-K+l4X7/2e4iv1kip9iPZUj22/HsJhhQGZ0H7rUHg/5g=";
 
   types-aiobotocore-sms-voice =
-    buildTypesAiobotocorePackage "sms-voice" "2.12.3"
-      "sha256-nT82/oiMPjWyVbwWLhLjRoQoEMZERe2ET2ti2OnefQw=";
+    buildTypesAiobotocorePackage "sms-voice" "2.13.0"
+      "sha256-6j+YcV4oEB5rZ6k2+Jlzn0irZCd5f1tIIASjKFNkMx4=";
 
   types-aiobotocore-snow-device-management =
-    buildTypesAiobotocorePackage "snow-device-management" "2.12.3"
-      "sha256-ama8FOWJb2czu+++Ps1nSKCnwZxMk9SP0OGHzX02x7Y=";
+    buildTypesAiobotocorePackage "snow-device-management" "2.13.0"
+      "sha256-gWuBHbxl8UkEUL2FQ/Gfb1rKmFNHrON72Bo1lxRbwYU=";
 
   types-aiobotocore-snowball =
-    buildTypesAiobotocorePackage "snowball" "2.12.3"
-      "sha256-elqHFPOYXK8xx1XC5yDkcPJPyY2x0/FKt3Kor+gPk9s=";
+    buildTypesAiobotocorePackage "snowball" "2.13.0"
+      "sha256-gpaamDvztO5syi72/O721Li1YUmjnWbsT2fxTi8TfKQ=";
 
   types-aiobotocore-sns =
-    buildTypesAiobotocorePackage "sns" "2.12.3"
-      "sha256-HfqnblwWhnFpVfFe6a4OLPQXuSZB+SzKRS5u39viIjE=";
+    buildTypesAiobotocorePackage "sns" "2.13.0"
+      "sha256-39J795V0hlag4UXJPL95hwp/nvYsRKrrFfCA/DSh4Dk=";
 
   types-aiobotocore-sqs =
-    buildTypesAiobotocorePackage "sqs" "2.12.3"
-      "sha256-m4tcWZXlixyURA7V1bJvThC1VydPmalqIdz7JrqsEl0=";
+    buildTypesAiobotocorePackage "sqs" "2.13.0"
+      "sha256-/rlkm98WGctndpPkt1ffkeK1+EVBecwouhTK2ycdenU=";
 
   types-aiobotocore-ssm =
-    buildTypesAiobotocorePackage "ssm" "2.12.3"
-      "sha256-Zl8oXCdd7lPPNpIF27EPUfPcTVnwfjCBKfS1/t0ta60=";
+    buildTypesAiobotocorePackage "ssm" "2.13.0"
+      "sha256-Mw6f1xt421x+gA/pmhD9XXDMAIKsDG/oN8/wBVnaRxw=";
 
   types-aiobotocore-ssm-contacts =
-    buildTypesAiobotocorePackage "ssm-contacts" "2.12.3"
-      "sha256-TYFO1JBWesLY+oNg+k4IdR5OOtrddgUgDn7ONGARRKU=";
+    buildTypesAiobotocorePackage "ssm-contacts" "2.13.0"
+      "sha256-lSwXwyKhLxHwAV8Qdkq0IlDg6UnhlBBjFJthHjSv4TY=";
 
   types-aiobotocore-ssm-incidents =
-    buildTypesAiobotocorePackage "ssm-incidents" "2.12.3"
-      "sha256-IzUQDV1C6TGKT+UXA2c9C6HVBlrg3qHynH/+7klH/6E=";
+    buildTypesAiobotocorePackage "ssm-incidents" "2.13.0"
+      "sha256-O4f9e6TkSssRfRW1DWRabocBjElEPyZNbZQwKiGtEmM=";
 
   types-aiobotocore-ssm-sap =
-    buildTypesAiobotocorePackage "ssm-sap" "2.12.3"
-      "sha256-xaXFwmc+VBX005jom+oYI0fjqebI2BN7Mj14+dVXGQE=";
+    buildTypesAiobotocorePackage "ssm-sap" "2.13.0"
+      "sha256-m9FxXdOGc4VrM552FB1QIpLnX0dIT+wcK7zWyXLqCm4=";
 
   types-aiobotocore-sso =
-    buildTypesAiobotocorePackage "sso" "2.12.3"
-      "sha256-ZC4pgxkd0NM+jxOrdiZCoMv39N5dp6yvCfcbkuWxKkE=";
+    buildTypesAiobotocorePackage "sso" "2.13.0"
+      "sha256-biwuRY/iWsjeX61+TXeFmiUbxjPpCuSCrFXXcvwQFW4=";
 
   types-aiobotocore-sso-admin =
-    buildTypesAiobotocorePackage "sso-admin" "2.12.3"
-      "sha256-chLpz3GeLrw6SbnmqeZntzFZb8YseYXswmlU1icccMs=";
+    buildTypesAiobotocorePackage "sso-admin" "2.13.0"
+      "sha256-8K0aNHqTSthROSsUNjoUqeqlkW5ieJx5tjngkNZ+aPY=";
 
   types-aiobotocore-sso-oidc =
-    buildTypesAiobotocorePackage "sso-oidc" "2.12.3"
-      "sha256-P7D0/lG3YJbQi12viIdd/Ykl3PCC1u/EAE0oqZv0zAk=";
+    buildTypesAiobotocorePackage "sso-oidc" "2.13.0"
+      "sha256-cHmk1b0IOwKUKq+QWj6BtkVj1sUI2goELu+uOG1WSX4=";
 
   types-aiobotocore-stepfunctions =
-    buildTypesAiobotocorePackage "stepfunctions" "2.12.3"
-      "sha256-sYm/6MQNZfRL88M6JPhgZUrPV0r2kWfiNT9nPQB1Uwo=";
+    buildTypesAiobotocorePackage "stepfunctions" "2.13.0"
+      "sha256-MFlLufnrOZuVEz0X4saMIZ6NOmoOZz4ErhGu2qmIU+M=";
 
   types-aiobotocore-storagegateway =
-    buildTypesAiobotocorePackage "storagegateway" "2.12.3"
-      "sha256-bdVAioN/pPSA3Ma7PPFhAVL4L1E7clZJzPct0k7ABp8=";
+    buildTypesAiobotocorePackage "storagegateway" "2.13.0"
+      "sha256-NQpTnbyABcbdDOiqNowjyp8eE1FHiiNBP3WfzQuvIWU=";
 
   types-aiobotocore-sts =
-    buildTypesAiobotocorePackage "sts" "2.12.3"
-      "sha256-aQyVJ9UWizJuKDkko6+xHNIONLq3hI+rQfHsPaW6JVU=";
+    buildTypesAiobotocorePackage "sts" "2.13.0"
+      "sha256-l6LidYUiTrHzuCLlLAU+8XHHpMjy6csClPvGOf7o8Zk=";
 
   types-aiobotocore-support =
-    buildTypesAiobotocorePackage "support" "2.12.3"
-      "sha256-pJg8YolBrgYx0FwW3J60x2S9H4XymC0XlBBilb1YIEY=";
+    buildTypesAiobotocorePackage "support" "2.13.0"
+      "sha256-6Y2NJj3bs88agfiUEzMgl/1Zkci45hoVtNIClzcar/Q=";
 
   types-aiobotocore-support-app =
-    buildTypesAiobotocorePackage "support-app" "2.12.3"
-      "sha256-NMG419sd7+MjfBEGjaDYcr7kHCE3R3wAY5rFLzfIg18=";
+    buildTypesAiobotocorePackage "support-app" "2.13.0"
+      "sha256-awkyq4V50G0l5epg1BFD54kMXEYrHe8iso8zlrobvF8=";
 
   types-aiobotocore-swf =
-    buildTypesAiobotocorePackage "swf" "2.12.3"
-      "sha256-HFcaf+erCthcjXILJYmkH1YDM6xGR1DVi9xd61/UmUc=";
+    buildTypesAiobotocorePackage "swf" "2.13.0"
+      "sha256-CIAMqHhr0E0SFz9IyS2fOn/44Xi8oo0WPvVKNsByTfo=";
 
   types-aiobotocore-synthetics =
-    buildTypesAiobotocorePackage "synthetics" "2.12.3"
-      "sha256-91qq9ziYFML/0rdn3SP8glsG9mW1LUjvqPlNDt4Fbwo=";
+    buildTypesAiobotocorePackage "synthetics" "2.13.0"
+      "sha256-1jMVFO/QbT+hh+jYt42E9DWV4uIoamdG5NjqdkOqovI=";
 
   types-aiobotocore-textract =
-    buildTypesAiobotocorePackage "textract" "2.12.3"
-      "sha256-WQFJaP++IIr0eWa810stZzMM0gW5Cxh3CPVTfuFzhYg=";
+    buildTypesAiobotocorePackage "textract" "2.13.0"
+      "sha256-qqgWwtB+7ZvjfQP5JOUrszNtZTDXf44Lb2jrnpQAxmM=";
 
   types-aiobotocore-timestream-query =
-    buildTypesAiobotocorePackage "timestream-query" "2.12.3"
-      "sha256-TOXo/JhCp8+dD0umfIuokpF/lmUgFfsMLOoLtkiZNpg=";
+    buildTypesAiobotocorePackage "timestream-query" "2.13.0"
+      "sha256-9FxDlKjBAlhb+Nu1d3A8AGyvaFXk6ejQI2b7f47SguQ=";
 
   types-aiobotocore-timestream-write =
-    buildTypesAiobotocorePackage "timestream-write" "2.12.3"
-      "sha256-teNvXZu8T74wuYy13s9UvT2sBc/Q8pT27Mj0lP1uDa0=";
+    buildTypesAiobotocorePackage "timestream-write" "2.13.0"
+      "sha256-yrloTL8MYnHkeVEF2Bp8i2QQ3Yh0IRGiY/VGih41lJQ=";
 
   types-aiobotocore-tnb =
-    buildTypesAiobotocorePackage "tnb" "2.12.3"
-      "sha256-y3efi+c+4NOXvdnc+y/PMD2CuFuLDGU9HwFUgkNV8HU=";
+    buildTypesAiobotocorePackage "tnb" "2.13.0"
+      "sha256-Ln5KwCFTs+7T/ONaVj9TeBmSxsOCxXdUokiCa83ozzg=";
 
   types-aiobotocore-transcribe =
-    buildTypesAiobotocorePackage "transcribe" "2.12.3"
-      "sha256-RdPWi2yNUdoDh3vrQGJx7BoF8tfYO2h9e0juwuNZTPY=";
+    buildTypesAiobotocorePackage "transcribe" "2.13.0"
+      "sha256-IFlZRCvhK1vZSB4uHwPa1CP678E8UboL4geqHHivrg4=";
 
   types-aiobotocore-transfer =
-    buildTypesAiobotocorePackage "transfer" "2.12.3"
-      "sha256-svX7Mr99aXUcYxtuFDAuEYvBF16IJqWbRNjubgxtRww=";
+    buildTypesAiobotocorePackage "transfer" "2.13.0"
+      "sha256-IouagvvqSdfFQ5ZryCukEBXSryTHxT34z4aQu4vG/E4=";
 
   types-aiobotocore-translate =
-    buildTypesAiobotocorePackage "translate" "2.12.3"
-      "sha256-AY9NzJprshQe5UPAERG+DquylhKLtec05KMjM+CfJx4=";
+    buildTypesAiobotocorePackage "translate" "2.13.0"
+      "sha256-Th2TUSe1gS/hvUEP8UOx3Yxyse7JEtccznZB4TSDlxQ=";
 
   types-aiobotocore-verifiedpermissions =
-    buildTypesAiobotocorePackage "verifiedpermissions" "2.12.3"
-      "sha256-bH15twDf36YZuWTGhIdl2XsV9CYxrTRstI8+9otJA0A=";
+    buildTypesAiobotocorePackage "verifiedpermissions" "2.13.0"
+      "sha256-rgjP4mUyhAa8hqnsR+EkNHY4U58Vd90xOcj/WZT3Q1E=";
 
   types-aiobotocore-voice-id =
-    buildTypesAiobotocorePackage "voice-id" "2.12.3"
-      "sha256-BA/JY5cusubF2NYIFOotM14O6YHEmcP9PX59ksnj8e0=";
+    buildTypesAiobotocorePackage "voice-id" "2.13.0"
+      "sha256-4ECIbOcUc7DlARzgd+mE0bFr8QDVrpW2ZmMWiFDmIu0=";
 
   types-aiobotocore-vpc-lattice =
-    buildTypesAiobotocorePackage "vpc-lattice" "2.12.3"
-      "sha256-YYH5fIP+7yWLwm/UlAfdQWACsXXuyqGPNVWx1ZTsKq8=";
+    buildTypesAiobotocorePackage "vpc-lattice" "2.13.0"
+      "sha256-H4kG7rpxijqag14yZmNYmSxdSkRcAQw3tD/EVglkMJc=";
 
   types-aiobotocore-waf =
-    buildTypesAiobotocorePackage "waf" "2.12.3"
-      "sha256-3vNi+7zjFmOsphhkiCe3sL3xGc6vJn+QxXfnJiGzeRE=";
+    buildTypesAiobotocorePackage "waf" "2.13.0"
+      "sha256-1W4gNPVBvTCSZiC12iymw2LBRwr7i2MlimBStcjinRY=";
 
   types-aiobotocore-waf-regional =
-    buildTypesAiobotocorePackage "waf-regional" "2.12.3"
-      "sha256-v/NoOoMS6KwZotYZsCIqwQ3EkUusaK5YuCnQz3eBhz8=";
+    buildTypesAiobotocorePackage "waf-regional" "2.13.0"
+      "sha256-xRQlOmoSW0w1L/jvS5aUkh3+mwCFMDem4MR8GmXTLDk=";
 
   types-aiobotocore-wafv2 =
-    buildTypesAiobotocorePackage "wafv2" "2.12.3"
-      "sha256-DI5GBYssyNe5yDUD9EF4+waE1d/SD6iDyNK93Hhbl38=";
+    buildTypesAiobotocorePackage "wafv2" "2.13.0"
+      "sha256-AE1njAVbSJZf2Ce5ra6ARUnqOb/FKQpA8mN2TpFiwJ4=";
 
   types-aiobotocore-wellarchitected =
-    buildTypesAiobotocorePackage "wellarchitected" "2.12.3"
-      "sha256-g+EwfgHlhvFWHlQsjZriiPHFF+VzLlMAo9LtX+AImlc=";
+    buildTypesAiobotocorePackage "wellarchitected" "2.13.0"
+      "sha256-gwk2sUPHH7+k4NcHXMmnSV2lDVZbgZcTJZY8QScoQhY=";
 
   types-aiobotocore-wisdom =
-    buildTypesAiobotocorePackage "wisdom" "2.12.3"
-      "sha256-EHqZb51vIHt4ox9Zd9G/Hl6KGWd7vIipjYn+ru3zwTw=";
+    buildTypesAiobotocorePackage "wisdom" "2.13.0"
+      "sha256-kLp8W+KROrwxNC4hgD41EVtjQuw+CPjgbbz2vFec8Us=";
 
   types-aiobotocore-workdocs =
-    buildTypesAiobotocorePackage "workdocs" "2.12.3"
-      "sha256-/lVbhKOMtyTSZEEgzKH2DySZM1+Jv3LM4TJAauTWyLc=";
+    buildTypesAiobotocorePackage "workdocs" "2.13.0"
+      "sha256-kcFiysNx0GmHJdhgiuAcNWX+WM7p6410oxv11d6nAi8=";
 
   types-aiobotocore-worklink =
-    buildTypesAiobotocorePackage "worklink" "2.12.3"
-      "sha256-agu/CSxY1gjcVTU42I2DR9Rxrk0c9GANXJe16Nx4U1I=";
+    buildTypesAiobotocorePackage "worklink" "2.13.0"
+      "sha256-du7dFEEWnVCZKIOK63SxyakQRXGqqBWUhRPQ7hcsvPo=";
 
   types-aiobotocore-workmail =
-    buildTypesAiobotocorePackage "workmail" "2.12.3"
-      "sha256-XYf1bnCmYZI51uvJY9IG+imcUyqNO1AUc3gWF/jMhkA=";
+    buildTypesAiobotocorePackage "workmail" "2.13.0"
+      "sha256-OtL2BuB9ORvHBjbkgTRcnwyt8g5hml/eIR3JZh5XAE0=";
 
   types-aiobotocore-workmailmessageflow =
-    buildTypesAiobotocorePackage "workmailmessageflow" "2.12.3"
-      "sha256-qMBxt5KkYqfDqWAFJVdch2edQCIl+lP5lyjAGkMriN8=";
+    buildTypesAiobotocorePackage "workmailmessageflow" "2.13.0"
+      "sha256-qCxrMdw7XIUfBnpkUP6CuV3qzaJIDGNEHynh38VxH/c=";
 
   types-aiobotocore-workspaces =
-    buildTypesAiobotocorePackage "workspaces" "2.12.3"
-      "sha256-KLg4Q2VvinCIBhqD33CnpXqSjaex8JlN0vh1BIq1bpE=";
+    buildTypesAiobotocorePackage "workspaces" "2.13.0"
+      "sha256-hP+dRmyRoNOyUXLOtZk92glo80ZJ5RL98++8BWv4dPk=";
 
   types-aiobotocore-workspaces-web =
-    buildTypesAiobotocorePackage "workspaces-web" "2.12.3"
-      "sha256-y+iQviR02Kuy0czNmKJOefkI9AVBgGGXGm8DQPxVoXM=";
+    buildTypesAiobotocorePackage "workspaces-web" "2.13.0"
+      "sha256-no1EEOjNvuRNXlWnOxIQ7ULXyfPzIEAFLfaIDRt4/gg=";
 
   types-aiobotocore-xray =
-    buildTypesAiobotocorePackage "xray" "2.12.3"
-      "sha256-l89VAkb3pdSU559nWIaipZOYsRG1DGz1wEDKOyehe0Q=";
+    buildTypesAiobotocorePackage "xray" "2.13.0"
+      "sha256-Uq7grT2EwFiVvBQNlSFIn00A/gN2Co3DU4fYsW0Bc6U=";
 }
diff --git a/pkgs/development/python-modules/types-aiobotocore/default.nix b/pkgs/development/python-modules/types-aiobotocore/default.nix
index 0c1a13950b7e3..45f86523ac3a6 100644
--- a/pkgs/development/python-modules/types-aiobotocore/default.nix
+++ b/pkgs/development/python-modules/types-aiobotocore/default.nix
@@ -1,16 +1,15 @@
 {
   lib,
+  aiobotocore,
+  botocore-stubs,
+  botocore,
   buildPythonPackage,
   fetchPypi,
   setuptools,
-  botocore-stubs,
-  typing-extensions,
   types-aiobotocore-accessanalyzer,
   types-aiobotocore-account,
-  types-aiobotocore-acm,
   types-aiobotocore-acm-pca,
-  aiobotocore,
-  botocore,
+  types-aiobotocore-acm,
   types-aiobotocore-alexaforbusiness,
   types-aiobotocore-amp,
   types-aiobotocore-amplify,
@@ -34,22 +33,22 @@
   types-aiobotocore-arc-zonal-shift,
   types-aiobotocore-athena,
   types-aiobotocore-auditmanager,
-  types-aiobotocore-autoscaling,
   types-aiobotocore-autoscaling-plans,
-  types-aiobotocore-backup,
+  types-aiobotocore-autoscaling,
   types-aiobotocore-backup-gateway,
+  types-aiobotocore-backup,
   types-aiobotocore-backupstorage,
   types-aiobotocore-batch,
   types-aiobotocore-billingconductor,
   types-aiobotocore-braket,
   types-aiobotocore-budgets,
   types-aiobotocore-ce,
-  types-aiobotocore-chime,
   types-aiobotocore-chime-sdk-identity,
   types-aiobotocore-chime-sdk-media-pipelines,
   types-aiobotocore-chime-sdk-meetings,
   types-aiobotocore-chime-sdk-messaging,
   types-aiobotocore-chime-sdk-voice,
+  types-aiobotocore-chime,
   types-aiobotocore-cleanrooms,
   types-aiobotocore-cloud9,
   types-aiobotocore-cloudcontrol,
@@ -60,8 +59,8 @@
   types-aiobotocore-cloudhsmv2,
   types-aiobotocore-cloudsearch,
   types-aiobotocore-cloudsearchdomain,
-  types-aiobotocore-cloudtrail,
   types-aiobotocore-cloudtrail-data,
+  types-aiobotocore-cloudtrail,
   types-aiobotocore-cloudwatch,
   types-aiobotocore-codeartifact,
   types-aiobotocore-codebuild,
@@ -72,9 +71,9 @@
   types-aiobotocore-codeguru-security,
   types-aiobotocore-codeguruprofiler,
   types-aiobotocore-codepipeline,
-  types-aiobotocore-codestar,
   types-aiobotocore-codestar-connections,
   types-aiobotocore-codestar-notifications,
+  types-aiobotocore-codestar,
   types-aiobotocore-cognito-identity,
   types-aiobotocore-cognito-idp,
   types-aiobotocore-cognito-sync,
@@ -82,8 +81,8 @@
   types-aiobotocore-comprehendmedical,
   types-aiobotocore-compute-optimizer,
   types-aiobotocore-config,
-  types-aiobotocore-connect,
   types-aiobotocore-connect-contact-lens,
+  types-aiobotocore-connect,
   types-aiobotocore-connectcampaigns,
   types-aiobotocore-connectcases,
   types-aiobotocore-connectparticipant,
@@ -102,17 +101,17 @@
   types-aiobotocore-discovery,
   types-aiobotocore-dlm,
   types-aiobotocore-dms,
-  types-aiobotocore-docdb,
   types-aiobotocore-docdb-elastic,
+  types-aiobotocore-docdb,
   types-aiobotocore-drs,
   types-aiobotocore-ds,
   types-aiobotocore-dynamodb,
   types-aiobotocore-dynamodbstreams,
   types-aiobotocore-ebs,
-  types-aiobotocore-ec2,
   types-aiobotocore-ec2-instance-connect,
-  types-aiobotocore-ecr,
+  types-aiobotocore-ec2,
   types-aiobotocore-ecr-public,
+  types-aiobotocore-ecr,
   types-aiobotocore-ecs,
   types-aiobotocore-efs,
   types-aiobotocore-eks,
@@ -122,15 +121,15 @@
   types-aiobotocore-elastictranscoder,
   types-aiobotocore-elb,
   types-aiobotocore-elbv2,
-  types-aiobotocore-emr,
   types-aiobotocore-emr-containers,
   types-aiobotocore-emr-serverless,
+  types-aiobotocore-emr,
   types-aiobotocore-entityresolution,
   types-aiobotocore-es,
   types-aiobotocore-events,
   types-aiobotocore-evidently,
-  types-aiobotocore-finspace,
   types-aiobotocore-finspace-data,
+  types-aiobotocore-finspace,
   types-aiobotocore-firehose,
   types-aiobotocore-fis,
   types-aiobotocore-fms,
@@ -158,16 +157,16 @@
   types-aiobotocore-inspector,
   types-aiobotocore-inspector2,
   types-aiobotocore-internetmonitor,
-  types-aiobotocore-iot,
   types-aiobotocore-iot-data,
   types-aiobotocore-iot-jobs-data,
   types-aiobotocore-iot-roborunner,
+  types-aiobotocore-iot,
   types-aiobotocore-iot1click-devices,
   types-aiobotocore-iot1click-projects,
   types-aiobotocore-iotanalytics,
   types-aiobotocore-iotdeviceadvisor,
-  types-aiobotocore-iotevents,
   types-aiobotocore-iotevents-data,
+  types-aiobotocore-iotevents,
   types-aiobotocore-iotfleethub,
   types-aiobotocore-iotfleetwise,
   types-aiobotocore-iotsecuretunneling,
@@ -175,19 +174,19 @@
   types-aiobotocore-iotthingsgraph,
   types-aiobotocore-iottwinmaker,
   types-aiobotocore-iotwireless,
-  types-aiobotocore-ivs,
   types-aiobotocore-ivs-realtime,
+  types-aiobotocore-ivs,
   types-aiobotocore-ivschat,
   types-aiobotocore-kafka,
   types-aiobotocore-kafkaconnect,
-  types-aiobotocore-kendra,
   types-aiobotocore-kendra-ranking,
+  types-aiobotocore-kendra,
   types-aiobotocore-keyspaces,
-  types-aiobotocore-kinesis,
   types-aiobotocore-kinesis-video-archived-media,
   types-aiobotocore-kinesis-video-media,
   types-aiobotocore-kinesis-video-signaling,
   types-aiobotocore-kinesis-video-webrtc-storage,
+  types-aiobotocore-kinesis,
   types-aiobotocore-kinesisanalytics,
   types-aiobotocore-kinesisanalyticsv2,
   types-aiobotocore-kinesisvideo,
@@ -198,9 +197,9 @@
   types-aiobotocore-lex-runtime,
   types-aiobotocore-lexv2-models,
   types-aiobotocore-lexv2-runtime,
-  types-aiobotocore-license-manager,
   types-aiobotocore-license-manager-linux-subscriptions,
   types-aiobotocore-license-manager-user-subscriptions,
+  types-aiobotocore-license-manager,
   types-aiobotocore-lightsail,
   types-aiobotocore-location,
   types-aiobotocore-logs,
@@ -211,19 +210,19 @@
   types-aiobotocore-machinelearning,
   types-aiobotocore-macie,
   types-aiobotocore-macie2,
-  types-aiobotocore-managedblockchain,
   types-aiobotocore-managedblockchain-query,
+  types-aiobotocore-managedblockchain,
   types-aiobotocore-marketplace-catalog,
   types-aiobotocore-marketplace-entitlement,
   types-aiobotocore-marketplacecommerceanalytics,
   types-aiobotocore-mediaconnect,
   types-aiobotocore-mediaconvert,
   types-aiobotocore-medialive,
-  types-aiobotocore-mediapackage,
   types-aiobotocore-mediapackage-vod,
+  types-aiobotocore-mediapackage,
   types-aiobotocore-mediapackagev2,
-  types-aiobotocore-mediastore,
   types-aiobotocore-mediastore-data,
+  types-aiobotocore-mediastore,
   types-aiobotocore-mediatailor,
   types-aiobotocore-medical-imaging,
   types-aiobotocore-memorydb,
@@ -252,31 +251,31 @@
   types-aiobotocore-osis,
   types-aiobotocore-outposts,
   types-aiobotocore-panorama,
-  types-aiobotocore-payment-cryptography,
   types-aiobotocore-payment-cryptography-data,
-  types-aiobotocore-personalize,
+  types-aiobotocore-payment-cryptography,
   types-aiobotocore-personalize-events,
   types-aiobotocore-personalize-runtime,
+  types-aiobotocore-personalize,
   types-aiobotocore-pi,
-  types-aiobotocore-pinpoint,
   types-aiobotocore-pinpoint-email,
-  types-aiobotocore-pinpoint-sms-voice,
   types-aiobotocore-pinpoint-sms-voice-v2,
+  types-aiobotocore-pinpoint-sms-voice,
+  types-aiobotocore-pinpoint,
   types-aiobotocore-pipes,
   types-aiobotocore-polly,
   types-aiobotocore-pricing,
   types-aiobotocore-privatenetworks,
   types-aiobotocore-proton,
-  types-aiobotocore-qldb,
   types-aiobotocore-qldb-session,
+  types-aiobotocore-qldb,
   types-aiobotocore-quicksight,
   types-aiobotocore-ram,
   types-aiobotocore-rbin,
-  types-aiobotocore-rds,
   types-aiobotocore-rds-data,
-  types-aiobotocore-redshift,
+  types-aiobotocore-rds,
   types-aiobotocore-redshift-data,
   types-aiobotocore-redshift-serverless,
+  types-aiobotocore-redshift,
   types-aiobotocore-rekognition,
   types-aiobotocore-resiliencehub,
   types-aiobotocore-resource-explorer-2,
@@ -284,23 +283,23 @@
   types-aiobotocore-resourcegroupstaggingapi,
   types-aiobotocore-robomaker,
   types-aiobotocore-rolesanywhere,
-  types-aiobotocore-route53,
   types-aiobotocore-route53-recovery-cluster,
   types-aiobotocore-route53-recovery-control-config,
   types-aiobotocore-route53-recovery-readiness,
+  types-aiobotocore-route53,
   types-aiobotocore-route53domains,
   types-aiobotocore-route53resolver,
   types-aiobotocore-rum,
   types-aiobotocore-s3,
   types-aiobotocore-s3control,
   types-aiobotocore-s3outposts,
-  types-aiobotocore-sagemaker,
   types-aiobotocore-sagemaker-a2i-runtime,
   types-aiobotocore-sagemaker-edge,
   types-aiobotocore-sagemaker-featurestore-runtime,
   types-aiobotocore-sagemaker-geospatial,
   types-aiobotocore-sagemaker-metrics,
   types-aiobotocore-sagemaker-runtime,
+  types-aiobotocore-sagemaker,
   types-aiobotocore-savingsplans,
   types-aiobotocore-scheduler,
   types-aiobotocore-schemas,
@@ -310,32 +309,32 @@
   types-aiobotocore-securitylake,
   types-aiobotocore-serverlessrepo,
   types-aiobotocore-service-quotas,
-  types-aiobotocore-servicecatalog,
   types-aiobotocore-servicecatalog-appregistry,
+  types-aiobotocore-servicecatalog,
   types-aiobotocore-servicediscovery,
   types-aiobotocore-ses,
   types-aiobotocore-sesv2,
   types-aiobotocore-shield,
   types-aiobotocore-signer,
   types-aiobotocore-simspaceweaver,
-  types-aiobotocore-sms,
   types-aiobotocore-sms-voice,
+  types-aiobotocore-sms,
   types-aiobotocore-snow-device-management,
   types-aiobotocore-snowball,
   types-aiobotocore-sns,
   types-aiobotocore-sqs,
-  types-aiobotocore-ssm,
   types-aiobotocore-ssm-contacts,
   types-aiobotocore-ssm-incidents,
   types-aiobotocore-ssm-sap,
-  types-aiobotocore-sso,
+  types-aiobotocore-ssm,
   types-aiobotocore-sso-admin,
   types-aiobotocore-sso-oidc,
+  types-aiobotocore-sso,
   types-aiobotocore-stepfunctions,
   types-aiobotocore-storagegateway,
   types-aiobotocore-sts,
-  types-aiobotocore-support,
   types-aiobotocore-support-app,
+  types-aiobotocore-support,
   types-aiobotocore-swf,
   types-aiobotocore-synthetics,
   types-aiobotocore-textract,
@@ -348,8 +347,8 @@
   types-aiobotocore-verifiedpermissions,
   types-aiobotocore-voice-id,
   types-aiobotocore-vpc-lattice,
-  types-aiobotocore-waf,
   types-aiobotocore-waf-regional,
+  types-aiobotocore-waf,
   types-aiobotocore-wafv2,
   types-aiobotocore-wellarchitected,
   types-aiobotocore-wisdom,
@@ -357,19 +356,21 @@
   types-aiobotocore-worklink,
   types-aiobotocore-workmail,
   types-aiobotocore-workmailmessageflow,
-  types-aiobotocore-workspaces,
   types-aiobotocore-workspaces-web,
+  types-aiobotocore-workspaces,
   types-aiobotocore-xray,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "types-aiobotocore";
-  version = "2.12.3";
+  version = "2.13.0";
   pyproject = true;
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-h1dg3vgjPBYErgj8UKEcckCQuzGZr+VfhAuBS1biJ/M=";
+    pname = "types_aiobotocore";
+    inherit version;
+    hash = "sha256-CDDY60I1eMMIChOCvbSQi7ZsKSo0mlOccNlvjypq3+U=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/types-aiobotocore/update.sh b/pkgs/development/python-modules/types-aiobotocore/update.sh
index 4a5a75123c7c9..2ed7a430402c5 100755
--- a/pkgs/development/python-modules/types-aiobotocore/update.sh
+++ b/pkgs/development/python-modules/types-aiobotocore/update.sh
@@ -1,15 +1,17 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -i bash -p nix-update nixpkgs-fmt
+#!nix-shell -i bash -p nix-update nixfmt curl jq
 
 set -eu -o pipefail
 
 source_file=pkgs/development/python-modules/types-aiobotocore-packages/default.nix
 
-version="2.12.3"
-
 #nix-update python312Packages.types-aiobotocore --commit --build
 
 packages=(
+  types-aiobotocore-accessanalyzer
+  types-aiobotocore-account
+  types-aiobotocore-acm
+  types-aiobotocore-acm-pca
   types-aiobotocore-alexaforbusiness
   types-aiobotocore-amp
   types-aiobotocore-amplify
@@ -138,6 +140,7 @@ packages=(
   types-aiobotocore-frauddetector
   types-aiobotocore-fsx
   types-aiobotocore-gamelift
+  # types-aiobotocore-gamesparks  Obsolete, will be removed soon
   types-aiobotocore-glacier
   types-aiobotocore-globalaccelerator
   types-aiobotocore-glue
@@ -159,7 +162,7 @@ packages=(
   types-aiobotocore-iot
   types-aiobotocore-iot-data
   types-aiobotocore-iot-jobs-data
-  types-aiobotocore-iot-roborunner
+  # types-aiobotocore-iot-roborunner  Obsolete, will be removed soon
   types-aiobotocore-iot1click-devices
   types-aiobotocore-iot1click-projects
   types-aiobotocore-iotanalytics
@@ -207,6 +210,7 @@ packages=(
   types-aiobotocore-lookoutvision
   types-aiobotocore-m2
   types-aiobotocore-machinelearning
+  # types-aiobotocore-macie  Obsolete, will be removed soon
   types-aiobotocore-macie2
   types-aiobotocore-managedblockchain
   types-aiobotocore-managedblockchain-query
@@ -359,21 +363,34 @@ packages=(
   types-aiobotocore-xray
 )
 
+version=$(curl -s https://pypi.org/pypi/types-aiobotocore/json | jq -r '.info.version')
+echo "All types-aiobotocore-* packages will be updated to ${version}"
+
 for package in "${packages[@]}"; do
-  echo "Updating ${package}"
+  echo "Updating ${package} ..."
 
-  url="https://pypi.io/packages/source/t/${package}/${package}-${version}.tar.gz"
+  url="https://pypi.io/packages/source/t/${package}/${package//-/_}-${version}.tar.gz"
   hash=$(nix-prefetch-url --type sha256 $url)
   sri_hash="$(nix hash to-sri --type sha256 $hash)"
+  package_short="${package#types-aiobotocore-}"
 
-  awk -i inplace -v package="$package" -v new_version="$version" -v new_sha256="$sri_hash" '
-    $1 == package {
-      $5 = "\"" new_version "\"";
-      $6 = "\"" new_sha256 "\";";
-    }
-    {print}
-  ' $source_file
+  awk -i inplace -v pkg="$package" -v pkg_short="$package_short" -v ver="$version" -v hash="$sri_hash" '
+  {
+      # If the line contains the package name
+      if ($0 ~ "^\\s*" pkg "\\s*=") {
+          print $0
+          inside_block = 1
+      } else if (inside_block && $0 ~ "buildTypesAiobotocorePackage") {
+          print "    buildTypesAiobotocorePackage \"" "" pkg_short "\" \"" ver "\""
+      } else if (inside_block && $0 ~ "sha256-") {
+          print "      \"" hash "\";"
+          inside_block = 0
+      } else {
+          # Preserve blank lines to honor nixfmt
+          print $0
+      }
+  }' ${source_file}
 
 done
 
-nixpkgs-fmt ${source_file}
+nixfmt ${source_file}
diff --git a/pkgs/development/python-modules/types-requests/default.nix b/pkgs/development/python-modules/types-requests/default.nix
index 6cabdc3b89a5e..077a0980df0e0 100644
--- a/pkgs/development/python-modules/types-requests/default.nix
+++ b/pkgs/development/python-modules/types-requests/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "types-requests";
-  version = "2.31.0.20240406";
+  version = "2.32.0.20240523";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-RCjfM8VQOUXHSz9C6CsYHobse3JGIEGaKWbi3mBM4aE=";
+    hash = "sha256-Jrim3jLZ9WEZK5lCtBwKstgBDfVnfKiqFGKJ0R1QX1c=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/typing-extensions/default.nix b/pkgs/development/python-modules/typing-extensions/default.nix
index fbe96efda4190..793b26917617b 100644
--- a/pkgs/development/python-modules/typing-extensions/default.nix
+++ b/pkgs/development/python-modules/typing-extensions/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "typing-extensions";
-  version = "4.11.0";
+  version = "4.12.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "typing_extensions";
     inherit version;
-    hash = "sha256-g/CFvVylnIApX8KoKrXaxnnL4CufM/fYOvaOJBvqUbA=";
+    hash = "sha256-jLzchgbryw2VRTrX3FBl5iN7aqIwox6B0PRAww/tX9g=";
   };
 
   nativeBuildInputs = [ flit-core ];
diff --git a/pkgs/development/python-modules/uarray/default.nix b/pkgs/development/python-modules/uarray/default.nix
index 57dbc81c632dc..731da3b75fbe3 100644
--- a/pkgs/development/python-modules/uarray/default.nix
+++ b/pkgs/development/python-modules/uarray/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   setuptools,
   setuptools-scm,
   matchpy,
diff --git a/pkgs/development/python-modules/unstructured/default.nix b/pkgs/development/python-modules/unstructured/default.nix
index 8bd41b73b907d..640729c71452d 100644
--- a/pkgs/development/python-modules/unstructured/default.nix
+++ b/pkgs/development/python-modules/unstructured/default.nix
@@ -57,7 +57,7 @@
   grpcio,
 }:
 let
-  version = "0.13.7";
+  version = "0.14.2";
   optional-dependencies = {
     huggingflace = [
       langdetect
@@ -100,7 +100,7 @@ buildPythonPackage {
     owner = "Unstructured-IO";
     repo = "unstructured";
     rev = "refs/tags/${version}";
-    hash = "sha256-Ekfa454mL7isMX79bd/YXPPHnetSzo1Mlg/XJakYyDM=";
+    hash = "sha256-zJK4QAfMz2uiMYe3tGxISZB4kKUwKeE44aB6s1iMUPQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/urwid-mitmproxy/default.nix b/pkgs/development/python-modules/urwid-mitmproxy/default.nix
index f830a99066178..09e28d2839635 100644
--- a/pkgs/development/python-modules/urwid-mitmproxy/default.nix
+++ b/pkgs/development/python-modules/urwid-mitmproxy/default.nix
@@ -2,10 +2,7 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
-  glibcLocales,
   pythonOlder,
-  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/velbus-aio/default.nix b/pkgs/development/python-modules/velbus-aio/default.nix
index f754c828dea3d..d7ba738dd86fd 100644
--- a/pkgs/development/python-modules/velbus-aio/default.nix
+++ b/pkgs/development/python-modules/velbus-aio/default.nix
@@ -5,14 +5,14 @@
   fetchFromGitHub,
   pythonOlder,
   pyserial,
-  pyserial-asyncio,
+  pyserial-asyncio-fast,
   pytestCheckHook,
   setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "velbus-aio";
-  version = "2024.4.1";
+  version = "2024.5.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "Cereal2nd";
     repo = "velbus-aio";
     rev = "refs/tags/${version}";
-    hash = "sha256-rskWnH5zFvBuNL5eJ8O4D6htRP/XtFcq1xH8ZXzT1I4=";
+    hash = "sha256-rOuw1Iw6mGoXNSqxOlBappARzSGIlii03Hd8/3jWiQg=";
     fetchSubmodules = true;
   };
 
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   dependencies = [
     backoff
     pyserial
-    pyserial-asyncio
+    pyserial-asyncio-fast
   ];
 
   nativeCheckInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/visions/default.nix b/pkgs/development/python-modules/visions/default.nix
new file mode 100644
index 0000000000000..6d3da09118f97
--- /dev/null
+++ b/pkgs/development/python-modules/visions/default.nix
@@ -0,0 +1,70 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, pytestCheckHook
+, setuptools
+, attrs
+, imagehash
+, matplotlib
+, multimethod
+, networkx
+, numpy
+, pandas
+, pillow
+, pydot
+, pygraphviz
+, shapely
+}:
+
+buildPythonPackage rec {
+  pname = "visions";
+  version = "0.7.6";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "dylan-profiler";
+    repo = "visions";
+    rev = "5fe9dd0c2a5ada0162a005c880bac5296686a5aa";  # no 0.7.6 tag in github
+    hash = "sha256-SZzDXm+faAvrfSOT0fwwAf9IH7upNybwKxbjw1CrHj8=";
+  };
+
+  nativeBuildInputs = [ setuptools ];
+
+  propagatedBuildInputs = [
+    attrs
+    imagehash
+    multimethod
+    networkx
+    numpy
+    pandas
+  ];
+
+  passthru.optional-dependencies = {
+    type-geometry = [ shapely ];
+    type-image-path = [ imagehash pillow ];
+    plotting = [ matplotlib pydot pygraphviz ];
+  };
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+
+  disabledTestPaths = [
+    # requires running Apache Spark:
+    "tests/spark_/typesets/test_spark_standard_set.py"
+  ];
+
+  pythonImportsCheck = [
+    "visions"
+  ];
+
+  meta = with lib; {
+    description = "Type system for data analysis in Python";
+    homepage = "https://dylan-profiler.github.io/visions";
+    license = licenses.bsdOriginal;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/pkgs/development/python-modules/vllm/default.nix b/pkgs/development/python-modules/vllm/default.nix
index 8b06a66c1d018..e2bbe12c639ce 100644
--- a/pkgs/development/python-modules/vllm/default.nix
+++ b/pkgs/development/python-modules/vllm/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   which,
   ninja,
   packaging,
diff --git a/pkgs/development/python-modules/vnoise/default.nix b/pkgs/development/python-modules/vnoise/default.nix
new file mode 100644
index 0000000000000..02f917bc17aca
--- /dev/null
+++ b/pkgs/development/python-modules/vnoise/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, numpy
+, pytestCheckHook
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "vnoise";
+  version = "0.1.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "plottertools";
+    repo = "vnoise";
+    rev = version;
+    hash = "sha256-nflAh3vj48wneM0wy/+M+XD6GC63KZEIFb1x4SS46YI=";
+  };
+
+  nativeBuildInputs = [ setuptools ];
+
+  propagatedBuildInputs = [ numpy ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "vnoise" ];
+
+  meta = with lib; {
+    description = "Vectorized, pure-Python Perlin noise library";
+    homepage = "https://github.com/plottertools/vnoise";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/development/python-modules/watchdog/default.nix b/pkgs/development/python-modules/watchdog/default.nix
index f7879285e19fb..16be1cf5b48ca 100644
--- a/pkgs/development/python-modules/watchdog/default.nix
+++ b/pkgs/development/python-modules/watchdog/default.nix
@@ -4,7 +4,6 @@
   buildPythonPackage,
   CoreServices,
   eventlet,
-  fetchpatch,
   fetchPypi,
   flaky,
   pytest-timeout,
diff --git a/pkgs/development/python-modules/weatherflow4py/default.nix b/pkgs/development/python-modules/weatherflow4py/default.nix
new file mode 100644
index 0000000000000..d3dd7c8fd6fb8
--- /dev/null
+++ b/pkgs/development/python-modules/weatherflow4py/default.nix
@@ -0,0 +1,54 @@
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  dataclasses-json,
+  fetchFromGitHub,
+  marshmallow,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  websockets,
+}:
+
+buildPythonPackage rec {
+  pname = "weatherflow4py";
+  version = "0.2.20";
+  pyproject = true;
+
+  disabled = pythonOlder "3.11";
+
+  src = fetchFromGitHub {
+    owner = "jeeftor";
+    repo = "weatherflow4py";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-kkNGhFhciOfhrbjxLM01YC2IRmkdKEbk4EUyDJZJuxU=";
+  };
+
+  build-system = [ poetry-core ];
+
+  dependencies = [
+    aiohttp
+    dataclasses-json
+    marshmallow
+    websockets
+  ];
+
+  nativeCheckInputs = [
+    aioresponses
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "weatherflow4py" ];
+
+  meta = with lib; {
+    description = "Module to interact with the WeatherFlow REST API";
+    homepage = "https://github.com/jeeftor/weatherflow4py";
+    changelog = "https://github.com/jeeftor/weatherflow4py/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/webssh/default.nix b/pkgs/development/python-modules/webssh/default.nix
index 53896c039da7f..b18dcd38c2a7e 100644
--- a/pkgs/development/python-modules/webssh/default.nix
+++ b/pkgs/development/python-modules/webssh/default.nix
@@ -18,6 +18,10 @@ buildPythonPackage rec {
     hash = "sha256-mRestRJukaf7ti3vIs/MM/R+zpGmK551j5HAM2chBsE=";
   };
 
+  patches = [
+    ./remove-typo-in-test-case.patch
+  ];
+
   propagatedBuildInputs = [
     paramiko
     tornado
@@ -27,11 +31,6 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "webssh" ];
 
-  disabledTests = [
-    # Test fails with AttributeError (possibly related to paramiko update)
-    "test_app_with_bad_host_key"
-  ];
-
   meta = with lib; {
     description = "Web based SSH client";
     mainProgram = "wssh";
diff --git a/pkgs/development/python-modules/webssh/remove-typo-in-test-case.patch b/pkgs/development/python-modules/webssh/remove-typo-in-test-case.patch
new file mode 100644
index 0000000000000..ac7bd94e5b39b
--- /dev/null
+++ b/pkgs/development/python-modules/webssh/remove-typo-in-test-case.patch
@@ -0,0 +1,18 @@
+---
+ tests/test_handler.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/test_handler.py b/tests/test_handler.py
+index a9ad924..950e672 100644
+--- a/tests/test_handler.py
++++ b/tests/test_handler.py
+@@ -336,5 +336,5 @@ class TestIndexHandler(unittest.TestCase):
+         ssh.exec_command.return_value = (stdin, stdout, stderr)
+ 
+         encoding = IndexHandler.get_default_encoding(handler, ssh)
+-        self.assertEquals("utf-8", encoding)
++        self.assertEqual("utf-8", encoding)
+ 
+-- 
+2.44.0
+
diff --git a/pkgs/development/python-modules/wled/default.nix b/pkgs/development/python-modules/wled/default.nix
index c8eaedc383403..0836376c679da 100644
--- a/pkgs/development/python-modules/wled/default.nix
+++ b/pkgs/development/python-modules/wled/default.nix
@@ -1,24 +1,26 @@
 {
   lib,
   aiohttp,
+  aresponses,
   awesomeversion,
   backoff,
   buildPythonPackage,
   cachetools,
   fetchFromGitHub,
   poetry-core,
-  yarl,
-  aresponses,
   pytest-asyncio,
   pytest-xdist,
   pytestCheckHook,
   pythonOlder,
+  typer,
+  yarl,
+  zeroconf,
 }:
 
 buildPythonPackage rec {
   pname = "wled";
-  version = "0.17.1";
-  format = "pyproject";
+  version = "0.18.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.11";
 
@@ -26,19 +28,19 @@ buildPythonPackage rec {
     owner = "frenck";
     repo = "python-wled";
     rev = "refs/tags/v${version}";
-    hash = "sha256-9682AbcADhd9m5XrYeDFiX+sJCCe+pnuvntJDnpzJ+U=";
+    hash = "sha256-0BJgbyDhCPFlHxlEry7Rh/j0nv3D3kRhIqCSW+Irhqk=";
   };
 
   postPatch = ''
     # Upstream doesn't set a version for the pyproject.toml
     substituteInPlace pyproject.toml \
-      --replace "0.0.0" "${version}" \
-      --replace "--cov" ""
+      --replace-fail "0.0.0" "${version}" \
+      --replace-fail "--cov" ""
   '';
 
-  nativeBuildInputs = [ poetry-core ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     awesomeversion
     backoff
@@ -46,6 +48,13 @@ buildPythonPackage rec {
     yarl
   ];
 
+  passthru.optional-dependencies = {
+    cli = [
+      typer
+      zeroconf
+    ];
+  };
+
   nativeCheckInputs = [
     aresponses
     pytest-asyncio
diff --git a/pkgs/development/python-modules/xdis/default.nix b/pkgs/development/python-modules/xdis/default.nix
index 20169ea57e7a2..ebbad75f84088 100644
--- a/pkgs/development/python-modules/xdis/default.nix
+++ b/pkgs/development/python-modules/xdis/default.nix
@@ -3,9 +3,7 @@
   buildPythonPackage,
   click,
   fetchFromGitHub,
-  fetchpatch,
   pytestCheckHook,
-  pythonAtLeast,
   pythonOlder,
   six,
 }:
diff --git a/pkgs/development/python-modules/xtensor-python/default.nix b/pkgs/development/python-modules/xtensor-python/default.nix
index 2467bac97096f..14d063a802d6a 100644
--- a/pkgs/development/python-modules/xtensor-python/default.nix
+++ b/pkgs/development/python-modules/xtensor-python/default.nix
@@ -13,20 +13,24 @@
 toPythonModule (
   stdenv.mkDerivation (finalAttrs: {
     pname = "xtensor-python";
-    version = "0.26.1";
+    version = "0.27.0";
 
     src = fetchFromGitHub {
       owner = "xtensor-stack";
       repo = "xtensor-python";
       rev = finalAttrs.version;
-      sha256 = "sha256-kLFt5Ah5/ZO6wfTZQviVXeIAVok+/F/XCwpgPSagOMo=";
+      hash = "sha256-Cy/aXuiriE/qxSd4Apipzak30DjgE7jX8ai1ThJ/VnE=";
     };
 
     nativeBuildInputs = [ cmake ];
     buildInputs = [ pybind11 ];
     nativeCheckInputs = [ gtest ];
     doCheck = true;
-    cmakeFlags = [ "-DBUILD_TESTS=${if finalAttrs.finalPackage.doCheck then "ON" else "OFF"}" ];
+    cmakeFlags = [
+      # Always build the tests, even if not running them, because testing whether
+      # they can be built is a test in itself.
+      "-DBUILD_TESTS=ON"
+    ];
 
     propagatedBuildInputs = [
       xtensor
diff --git a/pkgs/development/python-modules/xyzservices/default.nix b/pkgs/development/python-modules/xyzservices/default.nix
index 5d9e1d4d48e1d..1e808d5875376 100644
--- a/pkgs/development/python-modules/xyzservices/default.nix
+++ b/pkgs/development/python-modules/xyzservices/default.nix
@@ -12,7 +12,7 @@
 buildPythonPackage rec {
   pname = "xyzservices";
   version = "2024.4.0";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
@@ -24,9 +24,9 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  disabledTests = [
+  pytestFlagsArray = [
     # requires network connections
-    "test_free_providers"
+    "-m 'not request'"
   ];
 
   pythonImportsCheck = [ "xyzservices.providers" ];
@@ -37,11 +37,11 @@ buildPythonPackage rec {
     requests
   ];
 
-  meta = with lib; {
+  meta = {
     changelog = "https://github.com/geopandas/xyzservices/releases/tag/${version}";
     description = "Source of XYZ tiles providers";
     homepage = "https://github.com/geopandas/xyzservices";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
+    license = lib.licenses.bsd3;
+    maintainers = lib.teams.geospatial.members;
   };
 }
diff --git a/pkgs/development/python-modules/yara-python/default.nix b/pkgs/development/python-modules/yara-python/default.nix
index ae1b88bec239b..fb894f05c22af 100644
--- a/pkgs/development/python-modules/yara-python/default.nix
+++ b/pkgs/development/python-modules/yara-python/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "yara-python";
-  version = "4.5.0";
+  version = "4.5.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,18 +18,18 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "VirusTotal";
     repo = "yara-python";
-    rev = "v${version}";
-    hash = "sha256-RcrzzJQdzn+BXEp5M3ziGL6qSgfUN3wJ3JxwgjzVeuk=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-P+OQljzp+ZwVOXAgJqK7GNrqBep40MyVtMKDtT4ZUr8=";
   };
 
   # undefined symbol: yr_finalize
   # https://github.com/VirusTotal/yara-python/issues/7
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "include_dirs=['yara/libyara/include', 'yara/libyara/', '.']" "libraries = ['yara']"
+      --replace-fail "include_dirs=['yara/libyara/include', 'yara/libyara/', '.']" "libraries = ['yara']"
   '';
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
   buildInputs = [ yara ];
 
@@ -44,7 +44,8 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python interface for YARA";
     homepage = "https://github.com/VirusTotal/yara-python";
-    license = with licenses; [ asl20 ];
+    changelog = "https://github.com/VirusTotal/yara-python/releases/tag/v${version}";
+    license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/ydata-profiling/default.nix b/pkgs/development/python-modules/ydata-profiling/default.nix
new file mode 100644
index 0000000000000..8ad3ac1967142
--- /dev/null
+++ b/pkgs/development/python-modules/ydata-profiling/default.nix
@@ -0,0 +1,103 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, pytestCheckHook
+, dacite
+, htmlmin
+, imagehash
+, jinja2
+, matplotlib
+, multimethod
+, numba
+, numpy
+, pandas
+, phik
+, pyarrow
+, pydantic
+, pyyaml
+, requests
+, scipy
+, seaborn
+, statsmodels
+, tqdm
+, typeguard
+, visions
+, wordcloud
+}:
+
+buildPythonPackage rec {
+  pname = "ydata-profiling";
+  version = "4.8.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "ydataai";
+    repo = pname;
+    rev = "refs/tags/${version}";
+    hash = "sha256-tMwhoVnn65EvZK5NBvh/G36W8tH7I9qaL+NTK3IZVdI=";
+  };
+
+  preBuild = ''
+    echo ${version} > VERSION
+  '';
+
+  propagatedBuildInputs = [
+    dacite
+    htmlmin
+    imagehash
+    jinja2
+    matplotlib
+    multimethod
+    numba
+    numpy
+    pandas
+    phik
+    pydantic
+    pyyaml
+    requests
+    scipy
+    seaborn
+    statsmodels
+    tqdm
+    typeguard
+    visions
+    wordcloud
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    pyarrow
+  ];
+  disabledTestPaths = [
+    # needs Spark:
+    "tests/backends/spark_backend"
+    # try to download data:
+    "tests/issues"
+    "tests/unit/test_console.py"
+    "tests/unit/test_dataset_schema.py"
+    "tests/unit/test_modular.py"
+  ];
+  disabledTests = [
+    # try to download data:
+    "test_decorator"
+    "test_example"
+    "test_load"
+    "test_urls"
+  ];
+
+  pythonImportsCheck = [
+    "ydata_profiling"
+  ];
+
+  meta = with lib; {
+    description = "Create HTML profiling reports from Pandas DataFrames";
+    homepage = "https://ydata-profiling.ydata.ai";
+    changelog = "https://github.com/ydataai/ydata-profiling/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ bcdarwin ];
+    mainProgram = "ydata_profiling";
+  };
+}
diff --git a/pkgs/development/python-modules/ytmusicapi/default.nix b/pkgs/development/python-modules/ytmusicapi/default.nix
index edaae03db7cc6..a34b2e7f7e614 100644
--- a/pkgs/development/python-modules/ytmusicapi/default.nix
+++ b/pkgs/development/python-modules/ytmusicapi/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "ytmusicapi";
-  version = "1.7.1";
+  version = "1.7.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "sigma67";
     repo = "ytmusicapi";
     rev = "refs/tags/${version}";
-    hash = "sha256-HMWb9NScT4rRMFsUXw6TW/T0P1eH0a46OegUZ0JceiE=";
+    hash = "sha256-mFjNtZdLpS1jfqF/KZ1p8H0pWUGsIdFDxhc4dZnv6HM=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/zconfig/default.nix b/pkgs/development/python-modules/zconfig/default.nix
index 3fc0d7946757c..ee8eb919c3ebf 100644
--- a/pkgs/development/python-modules/zconfig/default.nix
+++ b/pkgs/development/python-modules/zconfig/default.nix
@@ -14,15 +14,14 @@
 
 buildPythonPackage rec {
   pname = "zconfig";
-  version = "4.0";
+  version = "4.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    pname = "ZConfig";
-    inherit version;
-    hash = "sha256-+NZC+6a6mNCGMb4sH3GtGVfAUf70qj0/ufHgjcYdAVY=";
+    inherit pname version;
+    hash = "sha256-tqed2hV/NpjIdo0s7cJjIW6K8kDTz50JoCpkKREU6yA=";
   };
 
   patches = lib.optional stdenv.hostPlatform.isMusl ./remove-setlocale-test.patch;
diff --git a/pkgs/development/python-modules/zipfile2/default.nix b/pkgs/development/python-modules/zipfile2/default.nix
index e16a0cc6b25b1..967497c009665 100644
--- a/pkgs/development/python-modules/zipfile2/default.nix
+++ b/pkgs/development/python-modules/zipfile2/default.nix
@@ -2,6 +2,7 @@
   buildPythonPackage,
   fetchFromGitHub,
   lib,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -25,5 +26,6 @@ buildPythonPackage rec {
     description = "A backwards-compatible improved zipfile class";
     maintainers = with maintainers; [ genericnerdyusername ];
     license = licenses.psfl;
+    broken = pythonAtLeast "3.12"; # tests are failing because the signature of ZipInfo._decodeExtra changed
   };
 }
diff --git a/pkgs/development/python-modules/zipstream/default.nix b/pkgs/development/python-modules/zipstream/default.nix
deleted file mode 100644
index b48d65cf576ad..0000000000000
--- a/pkgs/development/python-modules/zipstream/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-  lib,
-  buildPythonPackage,
-  fetchPypi,
-  nose,
-}:
-
-buildPythonPackage rec {
-  pname = "zipstream";
-  version = "1.1.4";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "01im5anqdyggmwkigqcjg0qw2a5bnn84h33mfaqjjd69a28lpwif";
-  };
-
-  nativeCheckInputs = [ nose ];
-
-  meta = {
-    description = "A zip archive generator";
-    homepage = "https://github.com/allanlei/python-zipstream";
-    license = lib.licenses.gpl3Plus;
-    maintainers = with lib.maintainers; [ ];
-  };
-}
diff --git a/pkgs/development/r-modules/default.nix b/pkgs/development/r-modules/default.nix
index 8d4004d7580f3..ce5f581be1bcf 100644
--- a/pkgs/development/r-modules/default.nix
+++ b/pkgs/development/r-modules/default.nix
@@ -1498,6 +1498,43 @@ let
       buildInputs = [ cacert ] ++ attrs.buildInputs;
     });
 
+
+    immunotation = let
+      MHC41alleleList = fetchurl {
+        url = "https://services.healthtech.dtu.dk/services/NetMHCpan-4.1/allele.list";
+        hash = "sha256-CRZ+0uHzcq5zK5eONucAChXIXO8tnq5sSEAS80Z7jhg=";
+      };
+
+      MHCII40alleleList = fetchurl {
+        url = "https://services.healthtech.dtu.dk/services/NetMHCIIpan-4.0/alleles_name.list";
+        hash = "sha256-K4Ic2NUs3P4IkvOODwZ0c4Yh8caex5Ih0uO5jXRHp40=";
+      };
+
+      # List of valid countries, regions and ethnic groups
+      # The original page is changing a bit every day, but the relevant
+      # content does not. Use archive.org to get a stable snapshot.
+      # It can be updated from time to time, or when the package becomes
+      # deficient. This may be difficult to know.
+      # Update the snapshot date, and add id_ after it, as described here:
+      # https://web.archive.org/web/20130806040521/http://faq.web.archive.org/page-without-wayback-code/
+      validGeographics = fetchurl {
+        url = "https://web.archive.org/web/20240418194005id_/http://www.allelefrequencies.net/hla6006a.asp";
+        hash = "sha256-m7Wkmh/cPxeqn94LwoznIh+fcFXskmSGErUYj6kTqak=";
+      };
+    in old.immunotation.overrideAttrs (attrs: {
+      patches = [ ./patches/immunotation.patch ];
+      postPatch = ''
+        substituteInPlace "R/external_resources_input.R" --replace-fail \
+          "nix-NetMHCpan-4.1-allele-list" ${MHC41alleleList}
+
+        substituteInPlace "R/external_resources_input.R" --replace-fail \
+          "nix-NETMHCIIpan-4.0-alleles-name-list" ${MHCII40alleleList}
+
+        substituteInPlace "R/AFND_interface.R" --replace-fail \
+          "nix-valid-geographics" ${validGeographics}
+      '';
+    });
+
     rstan = old.rstan.overrideAttrs (attrs: {
       env = (attrs.env or { }) // {
         NIX_CFLAGS_COMPILE = attrs.env.NIX_CFLAGS_COMPILE + " -DBOOST_PHOENIX_NO_VARIADIC_EXPRESSION";
diff --git a/pkgs/development/r-modules/patches/immunotation.patch b/pkgs/development/r-modules/patches/immunotation.patch
new file mode 100644
index 0000000000000..2019e8e50a029
--- /dev/null
+++ b/pkgs/development/r-modules/patches/immunotation.patch
@@ -0,0 +1,47 @@
+diff --git a/R/AFND_interface.R b/R/AFND_interface.R
+index b62e8e0..0f22d85 100644
+--- a/R/AFND_interface.R
++++ b/R/AFND_interface.R
+@@ -244,9 +244,9 @@ check_population <- function(hla_population) {
+ #' @return list of valid countries, regions and ethnic origin
+ #' @keywords internal
+ get_valid_geographics <- function() {
+-    url <- "http://www.allelefrequencies.net/hla6006a.asp?"
+-    html_input <- getURL(url, read_method = "html")
+-    
++    # http://www.allelefrequencies.net/hla6006a.asp?
++    html_input <- xml2::read_html("nix-valid-geographics")
++      
+     rvest_tables <- rvest::html_table(html_input, fill = TRUE)
+     
+     # country
+diff --git a/R/external_resources_input.R b/R/external_resources_input.R
+index c4b1dc1..8fc5881 100644
+--- a/R/external_resources_input.R
++++ b/R/external_resources_input.R
+@@ -74,16 +74,17 @@ getURL <- function(URL, N.TRIES=2L,
+ # MHC I
+ # netmhcI_input_template is an internal variable containing list of valid 
+ # NetMHCpan input alleles
+-netmhcI_input_template <- getURL(
+-    URL="https://services.healthtech.dtu.dk/services/NetMHCpan-4.1/allele.list",
+-    read_method = "delim", delim = "\t",
+-    col_names = c("netmhc_input", "hla_chain_name", "HLA_gene"))
++netmhcI_input_template <- readr::read_delim(
++        # https://services.healthtech.dtu.dk/services/NetMHCpan-4.1/allele.list
++	"nix-NetMHCpan-4.1-allele-list",
++	delim = "\t",
++	skip = 0,
++        col_names = c("netmhc_input", "hla_chain_name", "HLA_gene")
++    )
+ 
+ # MHC II
+-lines <- getURL(
+-    URL = paste0("https://services.healthtech.dtu.dk/services/",
+-    "NetMHCIIpan-4.0/alleles_name.list"),
+-    read_method = "lines")
++# https://services.healthtech.dtu.dk/services/NetMHCIIpan-4.0/alleles_name.list
++lines <- readr::read_lines("nix-NETMHCIIpan-4.0-alleles-name-list")
+ lines_rep <- stringr::str_replace_all(lines, "\t+|\\s\\s+", "\t")
+ netmhcII_input_template <- suppressWarnings(
+     suppressMessages(read.delim(textConnection(lines_rep), sep = "\t")))
diff --git a/pkgs/development/rocm-modules/5/rocm-runtime/default.nix b/pkgs/development/rocm-modules/5/rocm-runtime/default.nix
index f94f49d00bd4c..58730f40817fe 100644
--- a/pkgs/development/rocm-modules/5/rocm-runtime/default.nix
+++ b/pkgs/development/rocm-modules/5/rocm-runtime/default.nix
@@ -7,7 +7,7 @@
 , xxd
 , rocm-device-libs
 , rocm-thunk
-, libelf
+, elfutils
 , libdrm
 , numactl
 , valgrind
@@ -35,7 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   buildInputs = [
     rocm-thunk
-    libelf
+    elfutils
     libdrm
     numactl
     valgrind
diff --git a/pkgs/development/rocm-modules/6/rocm-runtime/default.nix b/pkgs/development/rocm-modules/6/rocm-runtime/default.nix
index f603b708265de..1e728fb73cf79 100644
--- a/pkgs/development/rocm-modules/6/rocm-runtime/default.nix
+++ b/pkgs/development/rocm-modules/6/rocm-runtime/default.nix
@@ -8,7 +8,7 @@
 , xxd
 , rocm-device-libs
 , rocm-thunk
-, libelf
+, elfutils
 , libdrm
 , numactl
 , valgrind
@@ -36,7 +36,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   buildInputs = [
     rocm-thunk
-    libelf
+    elfutils
     libdrm
     numactl
     valgrind
diff --git a/pkgs/development/ruby-modules/bundler/default.nix b/pkgs/development/ruby-modules/bundler/default.nix
index b9389603670d7..581c2544a2205 100644
--- a/pkgs/development/ruby-modules/bundler/default.nix
+++ b/pkgs/development/ruby-modules/bundler/default.nix
@@ -4,8 +4,8 @@ buildRubyGem rec {
   inherit ruby;
   name = "${gemName}-${version}";
   gemName = "bundler";
-  version = "2.5.9";
-  source.sha256 = "sha256-4rYTJb41m85U6w/tiEBO/mfl4fgAPTSiIYQeO3Za7AY=";
+  version = "2.5.11";
+  source.sha256 = "sha256-3XhL/lODSzmlbmQtvG4eyhmi5kVOTVOZTLcpgAWsTC4=";
   dontPatchShebangs = true;
 
   postFixup = ''
diff --git a/pkgs/development/ruby-modules/gem-config/default.nix b/pkgs/development/ruby-modules/gem-config/default.nix
index 02d014bef8995..3a64f7d2fd9d1 100644
--- a/pkgs/development/ruby-modules/gem-config/default.nix
+++ b/pkgs/development/ruby-modules/gem-config/default.nix
@@ -28,7 +28,7 @@
 , bundler, libsass, dart-sass, libexif, libselinux, libsepol, shared-mime-info, libthai, libdatrie
 , CoreServices, DarwinTools, cctools, libtool, discount, exiv2, libepoxy, libxkbcommon, libmaxminddb, libyaml
 , cargo, rustc, rustPlatform
-, autoSignDarwinBinariesHook, fetchpatch
+, autoSignDarwinBinariesHook
 }@args:
 
 let
diff --git a/pkgs/development/tools/aapt/default.nix b/pkgs/development/tools/aapt/default.nix
index c02e644c158b7..bbb986d4d4539 100644
--- a/pkgs/development/tools/aapt/default.nix
+++ b/pkgs/development/tools/aapt/default.nix
@@ -7,17 +7,17 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "aapt";
-  version = "8.0.2-9289358";
+  version = "8.4.1-11315950";
 
   src =
     let
       urlAndHash =
         if stdenvNoCC.isLinux then {
           url = "https://dl.google.com/android/maven2/com/android/tools/build/aapt2/${version}/aapt2-${version}-linux.jar";
-          hash = "sha256-P8eVIS6zaZGPh4Z7SXUiLtZaX1YIsSmGOdvF6Xb1WHI=";
+          hash = "sha256-eSQaZrRtb5aCG320hrXAL256fxa/oMhBC4hcTA1KRxs=";
         } else if stdenvNoCC.isDarwin then {
           url = "https://dl.google.com/android/maven2/com/android/tools/build/aapt2/${version}/aapt2-${version}-osx.jar";
-          hash = "sha256-hDfEPk3IJt+8FbRVEiHQbn24vsuOe6m36UcQsT6tGsQ=";
+          hash = "sha256-LUihNjase79JbUkHDb10A5d6pJ+VXDVfv7m09hkL8kY=";
         } else throw "Unsupport platform: ${stdenvNoCC.system}";
     in
     fetchzip (urlAndHash // {
diff --git a/pkgs/development/tools/algolia-cli/default.nix b/pkgs/development/tools/algolia-cli/default.nix
index 1f2456b8cc618..91a78a78fdce8 100644
--- a/pkgs/development/tools/algolia-cli/default.nix
+++ b/pkgs/development/tools/algolia-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "algolia-cli";
-  version = "1.6.9";
+  version = "1.6.10";
 
   src = fetchFromGitHub {
     owner = "algolia";
     repo = "cli";
     rev = "v${version}";
-    hash = "sha256-I4aANk/FurYsT2e3YFxRgbfpl7nEXgBwNiQeA2LMdkw=";
+    hash = "sha256-hYr2T3BLoBJzcVcINNVdnK3T0Hvs+zwsDkk9iE/csTY=";
   };
 
   vendorHash = "sha256-cNuBTH7L2K4TgD0H9FZ9CjhE5AGXADaniGLD9Lhrtrk=";
diff --git a/pkgs/development/tools/analysis/checkov/default.nix b/pkgs/development/tools/analysis/checkov/default.nix
index 9cf0dc6653b45..911e51ed6ca90 100644
--- a/pkgs/development/tools/analysis/checkov/default.nix
+++ b/pkgs/development/tools/analysis/checkov/default.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "checkov";
-  version = "3.2.92";
+  version = "3.2.106";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "bridgecrewio";
     repo = "checkov";
     rev = "refs/tags/${version}";
-    hash = "sha256-v1StSo9j0Psr3om3qbcE+Ha9Wz7t6EfGzbyAe34M2qY=";
+    hash = "sha256-N62tdVnrgOLHi4k/OpKrAfJ7sBu5Xf8lUAmEqatEAGo=";
   };
 
   patches = [ ./flake8-compat-5.x.patch ];
@@ -34,6 +34,7 @@ python3.pkgs.buildPythonApplication rec {
     "pycep-parser"
     "rustworkx"
     "termcolor"
+    "urllib3"
   ];
 
   pythonRemoveDeps = [
diff --git a/pkgs/development/tools/analysis/checkstyle/default.nix b/pkgs/development/tools/analysis/checkstyle/default.nix
index 1565d7bdc546f..24b8e1715fc45 100644
--- a/pkgs/development/tools/analysis/checkstyle/default.nix
+++ b/pkgs/development/tools/analysis/checkstyle/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenvNoCC, fetchurl, makeBinaryWrapper, jre }:
 
 stdenvNoCC.mkDerivation rec {
-  version = "10.16.0";
+  version = "10.17.0";
   pname = "checkstyle";
 
   src = fetchurl {
     url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-${version}/checkstyle-${version}-all.jar";
-    sha256 = "sha256-0Hmg7WnLAGy9YOipW7Oe6KQDxRiRqZ5eI3bKQGU0aQQ=";
+    sha256 = "sha256-UcNNc4UgwTidcZmKmrDm2r4NfPJiFJ8+AacpRJYGLkI=";
   };
 
   nativeBuildInputs = [ makeBinaryWrapper ];
diff --git a/pkgs/development/tools/analysis/frama-c/default.nix b/pkgs/development/tools/analysis/frama-c/default.nix
index 26cd487d9ebed..2467b124170b6 100644
--- a/pkgs/development/tools/analysis/frama-c/default.nix
+++ b/pkgs/development/tools/analysis/frama-c/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, makeWrapper, writeText
+{ lib, stdenv, fetchurl, writeText
 , graphviz, doxygen
 , ocamlPackages, ltl2ba, coq, why3
 , gdk-pixbuf, wrapGAppsHook3
diff --git a/pkgs/development/tools/analysis/radare2/default.nix b/pkgs/development/tools/analysis/radare2/default.nix
index 61ac7bbfe4640..0efbd75773ff7 100644
--- a/pkgs/development/tools/analysis/radare2/default.nix
+++ b/pkgs/development/tools/analysis/radare2/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , buildPackages
 , pkg-config
 , meson
diff --git a/pkgs/development/tools/analysis/rr/default.nix b/pkgs/development/tools/analysis/rr/default.nix
index 587bb7758909a..3a2ecc4c6d48e 100644
--- a/pkgs/development/tools/analysis/rr/default.nix
+++ b/pkgs/development/tools/analysis/rr/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch
+{ lib, stdenv, fetchFromGitHub
 , cmake, pkg-config, which, makeWrapper
 , libpfm, zlib, python3Packages, procps, gdb, capnproto
 }:
diff --git a/pkgs/development/tools/analysis/stylelint/default.nix b/pkgs/development/tools/analysis/stylelint/default.nix
index f2c478ea49cf1..f60751bc33b15 100644
--- a/pkgs/development/tools/analysis/stylelint/default.nix
+++ b/pkgs/development/tools/analysis/stylelint/default.nix
@@ -2,16 +2,16 @@
 
 buildNpmPackage rec {
   pname = "stylelint";
-  version = "16.5.0";
+  version = "16.6.0";
 
   src = fetchFromGitHub {
     owner = "stylelint";
     repo = "stylelint";
     rev = version;
-    hash = "sha256-kbcf0OPAIeEdh5YI2qqaLJww+ZejfXt/llJTK10nE0M=";
+    hash = "sha256-yNEXtuemNzpy7gIlVUWM5crP0LpLHmiVYznomC5eGYs=";
   };
 
-  npmDepsHash = "sha256-tENUngFWjrmsJErvbmFflwGL0uxou0vQjC/MwfCpm+Y=";
+  npmDepsHash = "sha256-e9helwaAiW3KtPHOWN7S0VxG87nKj6X4lTHTEdXoRZc=";
 
   dontNpmBuild = true;
 
diff --git a/pkgs/development/tools/analysis/tflint-plugins/tflint-ruleset-google.nix b/pkgs/development/tools/analysis/tflint-plugins/tflint-ruleset-google.nix
index 5dd4429280606..5fa8efd23a1c6 100644
--- a/pkgs/development/tools/analysis/tflint-plugins/tflint-ruleset-google.nix
+++ b/pkgs/development/tools/analysis/tflint-plugins/tflint-ruleset-google.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "tflint-ruleset-google";
-  version = "0.28.0";
+  version = "0.29.0";
 
   src = fetchFromGitHub {
     owner = "terraform-linters";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-9/JCpT7zwuT8Tf8Pa2cj/pVlowFbQ8kv2XPvwJf/b10=";
+    hash = "sha256-cflmuvILMJX7jsz6OKPcaN/KezvWiqiv20Sw4vJ/mUk=";
   };
 
-  vendorHash = "sha256-mh8RXD+RD8juhSY2jWGsmwqAnnudIZIZmq8JjHh/eNQ=";
+  vendorHash = "sha256-xxSOjnzqESCOWtXsAGuTwVEoinvBNuJFaxDrIVc1O08=";
 
   # upstream Makefile also does a go test $(go list ./... | grep -v integration)
   preCheck = ''
diff --git a/pkgs/development/tools/analysis/valgrind/default.nix b/pkgs/development/tools/analysis/valgrind/default.nix
index c8046b68cd96d..547f07d2ee6d3 100644
--- a/pkgs/development/tools/analysis/valgrind/default.nix
+++ b/pkgs/development/tools/analysis/valgrind/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "valgrind";
-  version = "3.22.0";
+  version = "3.23.0";
 
   src = fetchurl {
     url = "https://sourceware.org/pub/${pname}/${pname}-${version}.tar.bz2";
-    hash = "sha256-yBHbWt0sX3KZRMr0fE56Zdyqu5Rh5HK1eHZd179tLUw=";
+    hash = "sha256-xcNKM4BFe5t1YG34kBAuffLHArlCDC6++VQPi11WJk0=";
   };
 
   patches = [
@@ -28,18 +28,19 @@ stdenv.mkDerivation rec {
     })
     # Fix build on armv7l.
     # https://bugs.kde.org/show_bug.cgi?id=454346
-    (fetchpatch {
-      url = "https://bugsfiles.kde.org/attachment.cgi?id=149172";
-      sha256 = "sha256-4MASLsEK8wcshboR4YOc6mIt7AvAgDPvqIZyHqlvTEs=";
-    })
-    (fetchpatch {
-      url = "https://bugsfiles.kde.org/attachment.cgi?id=149173";
-      sha256 = "sha256-jX9hD4utWRebbXMJYZ5mu9jecvdrNP05E5J+PnKRTyQ=";
-    })
-    (fetchpatch {
-      url = "https://bugsfiles.kde.org/attachment.cgi?id=149174";
-      sha256 = "sha256-f1YIFIhWhXYVw3/UNEWewDak2mvbAd3aGzK4B+wTlys=";
-    })
+    #   Applied on 3.22.0. Does not apply on 3.23.0.
+    #(fetchpatch {
+    #  url = "https://bugsfiles.kde.org/attachment.cgi?id=149172";
+    #  sha256 = "sha256-4MASLsEK8wcshboR4YOc6mIt7AvAgDPvqIZyHqlvTEs=";
+    #})
+    #(fetchpatch {
+    #  url = "https://bugsfiles.kde.org/attachment.cgi?id=149173";
+    #  sha256 = "sha256-jX9hD4utWRebbXMJYZ5mu9jecvdrNP05E5J+PnKRTyQ=";
+    #})
+    #(fetchpatch {
+    #  url = "https://bugsfiles.kde.org/attachment.cgi?id=149174";
+    #  sha256 = "sha256-f1YIFIhWhXYVw3/UNEWewDak2mvbAd3aGzK4B+wTlys=";
+    #})
   ];
 
   outputs = [ "out" "dev" "man" "doc" ];
diff --git a/pkgs/development/tools/bazel-gazelle/default.nix b/pkgs/development/tools/bazel-gazelle/default.nix
index 6b0a0d09eba23..030b02b1b5265 100644
--- a/pkgs/development/tools/bazel-gazelle/default.nix
+++ b/pkgs/development/tools/bazel-gazelle/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "bazel-gazelle";
-  version = "0.36.0";
+  version = "0.37.0";
 
   src = fetchFromGitHub {
     owner = "bazelbuild";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-jT+h3ehaqA6LLg2Q5JdWeHPwUomRDIapNALwa7nFDJ4=";
+    hash = "sha256-YtgqhwPpkw+lPgsBDCDxkcNsSu1/ZoIhXMuQeZgLXNU=";
   };
 
   vendorHash = null;
diff --git a/pkgs/development/tools/bearer/default.nix b/pkgs/development/tools/bearer/default.nix
index 6eca38cf6f14a..d7437187cd7a9 100644
--- a/pkgs/development/tools/bearer/default.nix
+++ b/pkgs/development/tools/bearer/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "bearer";
-  version = "1.43.5";
+  version = "1.43.6";
 
   src = fetchFromGitHub {
     owner = "bearer";
     repo = "bearer";
     rev = "refs/tags/v${version}";
-    hash = "sha256-VMg07HOPvQK57DWVjuxtt5w1xMM4ansngL8clBOhPSc=";
+    hash = "sha256-Ew9f6L4hrMrIuJzSXbP5bYJLmsq2BRLYBohy0Gy8P2M=";
   };
 
-  vendorHash = "sha256-rRlOWQ5M+aNMsnt7zHphm/SQyvPBZUCWpZH1J7TZe28=";
+  vendorHash = "sha256-XACZVPf1a+TIi2YdHerPkt9QKjS5BQJ5alrsHIG+qRA=";
 
   subPackages = [ "cmd/bearer" ];
 
diff --git a/pkgs/development/tools/build-managers/alire/default.nix b/pkgs/development/tools/build-managers/alire/default.nix
index b7613fe6e0452..6d2e8cce61a88 100644
--- a/pkgs/development/tools/build-managers/alire/default.nix
+++ b/pkgs/development/tools/build-managers/alire/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , gprbuild
 , gnat
 }:
diff --git a/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix b/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
index 9f1058bd9e486..86447d884093f 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "bazel-remote";
-  version = "2.4.3";
+  version = "2.4.4";
 
   src = fetchFromGitHub {
     owner = "buchgr";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-yvdsRc5KZAwzekktSu9tR9R2vvAMi+4JVkvy+ANFkQ8=";
+    hash = "sha256-ncYE48DtH+mIM9ZR7IB38SzQFordhMGLp79poqDKWLE=";
   };
 
-  vendorHash = "sha256-0rmqsUMwk5ytAZc94JzvZTuh0WAmQwBEWSE96yNALE0=";
+  vendorHash = "sha256-7rxrnxZwxqRRQf1sWk8ILi2IV/pYmxBuwHl9khfCrKE=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_5/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_5/default.nix
index 5ef2a183fa0aa..2e1459c16bea9 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_5/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_5/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, callPackage, lib, fetchurl, fetchpatch, fetchFromGitHub, installShellFiles
+{ stdenv, callPackage, lib, fetchurl, fetchFromGitHub, installShellFiles
 , runCommand, runCommandCC, makeWrapper, recurseIntoAttrs
 # this package (through the fixpoint glass)
 , bazel_self
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_6/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_6/default.nix
index 186d585d626e4..5521fcf0d53df 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_6/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_6/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, callPackage, lib, fetchurl, fetchpatch, fetchFromGitHub, installShellFiles
+{ stdenv, callPackage, lib, fetchurl, fetchFromGitHub, installShellFiles
 , runCommand, runCommandCC, makeWrapper, recurseIntoAttrs
 # this package (through the fixpoint glass)
 , bazel_self
diff --git a/pkgs/development/tools/build-managers/bazel/buildtools/default.nix b/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
index 65574129ab938..f5b3e03f8609c 100644
--- a/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "bazel-buildtools";
-  version = "7.1.1";
+  version = "7.1.2";
 
   src = fetchFromGitHub {
     owner = "bazelbuild";
     repo = "buildtools";
     rev = "v${version}";
-    hash = "sha256-funwP4D8ck7RT+0z+42MVud/3Da6HvVhFLTqQIucHrQ=";
+    hash = "sha256-Ax7UKkClYsoqxaR+tsQnTv6BFafl9SkY7MC4kYJNmwY=";
   };
 
   vendorHash = "sha256-DigTREfI6I48wxRpGp/bfH1NbUZ4E1B5UTQXpI0LY1A=";
diff --git a/pkgs/development/tools/build-managers/bear/default.nix b/pkgs/development/tools/build-managers/bear/default.nix
index 2b8d3106f3ce5..2e0c1d54122b9 100644
--- a/pkgs/development/tools/build-managers/bear/default.nix
+++ b/pkgs/development/tools/build-managers/bear/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , ninja
 , pkg-config
diff --git a/pkgs/development/tools/build-managers/bloop/default.nix b/pkgs/development/tools/build-managers/bloop/default.nix
index b7ff801c24ec7..b0be15f162016 100644
--- a/pkgs/development/tools/build-managers/bloop/default.nix
+++ b/pkgs/development/tools/build-managers/bloop/default.nix
@@ -10,7 +10,7 @@
 
 stdenv.mkDerivation rec {
   pname = "bloop";
-  version = "1.5.17";
+  version = "1.5.18";
 
   platform =
     if stdenv.isLinux && stdenv.isx86_64 then "x86_64-pc-linux"
@@ -35,8 +35,8 @@ stdenv.mkDerivation rec {
   bloop-binary = fetchurl rec {
     url = "https://github.com/scalacenter/bloop/releases/download/v${version}/bloop-${platform}";
     sha256 =
-      if stdenv.isLinux && stdenv.isx86_64 then "sha256-lP7j7pPG7wC36sG+d80F2E6ZHPZcOZN/M/j6CniaNGY="
-      else if stdenv.isDarwin && stdenv.isx86_64 then "sha256-awSBYSN4do4w9dAx6JwoexiptfC01vW1/o53Tp13xj0="
+      if stdenv.isLinux && stdenv.isx86_64 then "sha256-gfmsroHyr/xrbQ72x6LNRvIYaxgUjBOxYsyKqc0c9Oo="
+      else if stdenv.isDarwin && stdenv.isx86_64 then "sha256-fluOkbpVy895YyWisfTaDP2yXbqF+gToc1KbVL8Mon8="
       else throw "unsupported platform";
   };
 
diff --git a/pkgs/development/tools/build-managers/buck2/default.nix b/pkgs/development/tools/build-managers/buck2/default.nix
index 3aad79ce1e581..c1e504a2da5db 100644
--- a/pkgs/development/tools/build-managers/buck2/default.nix
+++ b/pkgs/development/tools/build-managers/buck2/default.nix
@@ -38,7 +38,7 @@ let
   buildHashes = builtins.fromJSON (builtins.readFile ./hashes.json);
 
   # our version of buck2; this should be a git tag
-  version = "2024-03-15";
+  version = "2024-05-15";
 
   # the platform-specific, statically linked binary — which is also
   # zstd-compressed
@@ -63,7 +63,7 @@ let
   # tooling
   prelude-src =
     let
-      prelude-hash = "c68a0e4b35928891e72df1738c890bfcb76a6174";
+      prelude-hash = "4e9e6d50b8b461564a7e351ff60b87fe59d7e53b";
       name = "buck2-prelude-${version}.tar.gz";
       hash = buildHashes."_prelude";
       url = "https://github.com/facebook/buck2-prelude/archive/${prelude-hash}.tar.gz";
diff --git a/pkgs/development/tools/build-managers/buck2/hashes.json b/pkgs/development/tools/build-managers/buck2/hashes.json
index 280228e6f4e8e..0aa1592ceb1fc 100644
--- a/pkgs/development/tools/build-managers/buck2/hashes.json
+++ b/pkgs/development/tools/build-managers/buck2/hashes.json
@@ -1,7 +1,7 @@
 { "_comment": "@generated by pkgs/development/tools/build-managers/buck2/update.sh"
-, "_prelude": "sha256-PTetJetdpFU3bKLU1WESMwIEZox86IcrczvCxmaQzoE="
-, "x86_64-linux": "sha256-2vaKYCFRu2fNA/Nsu3HHT5DWtNeMnEfE8FVl7bat1HQ="
-, "x86_64-darwin": "sha256-zzB3sPOCDGWAb4CQO0yjb7Bph+ioi3cJoMYO/2YzXfU="
-, "aarch64-linux": "sha256-sx8rcADlfdAECL/SSHeB7vzxoedqx6+yT7yJp1qLBgM="
-, "aarch64-darwin": "sha256-GKQ8Xfe9iRpgq5SrM6nyyIPBh9gC25uN/vzGRjViQdQ="
+, "_prelude": "sha256-r2opeCtXAFxF3PbqKDKK0+pcySe70hUEtMiX7QlWZCQ="
+, "x86_64-linux": "sha256-Ln2FkZDQRKlTLU+EvcEE0VNW0BdnaZRd9nNeY8YgGVA="
+, "x86_64-darwin": "sha256-qSO+eERWWBH7KKBft/cze3sV04QZl3itpFNud6AFrFM="
+, "aarch64-linux": "sha256-KNYsZv5io4NYa/45rxzx+5ta6L7LrxV/GnqNWT4Y5/k="
+, "aarch64-darwin": "sha256-YUMrU5WsRu9ZAMzUS3xS/FFuiXtfbByMtT49CRGQ8do="
 }
diff --git a/pkgs/development/tools/build-managers/gnumake/default.nix b/pkgs/development/tools/build-managers/gnumake/default.nix
index 774ea50f86238..7c075b7d8b8bc 100644
--- a/pkgs/development/tools/build-managers/gnumake/default.nix
+++ b/pkgs/development/tools/build-managers/gnumake/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, updateAutotoolsGnuConfigScriptsHook
 , guileSupport ? false, guile
 # avoid guile depend on bootstrap to prevent dependency cycles
 , inBootstrap ? false
@@ -31,7 +32,7 @@ stdenv.mkDerivation rec {
     ./0002-remove-impure-dirs.patch
   ];
 
-  nativeBuildInputs = lib.optionals guileEnabled [ pkg-config ];
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ] ++ lib.optionals guileEnabled [ pkg-config ];
   buildInputs = lib.optionals guileEnabled [ guile ];
 
   configureFlags = lib.optional guileEnabled "--with-guile"
diff --git a/pkgs/development/tools/build-managers/moon/default.nix b/pkgs/development/tools/build-managers/moon/default.nix
index 1ffd2b95436db..e9b5052ad1eb9 100644
--- a/pkgs/development/tools/build-managers/moon/default.nix
+++ b/pkgs/development/tools/build-managers/moon/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "moon";
-  version = "1.24.5";
+  version = "1.24.6";
 
   src = fetchFromGitHub {
     owner = "moonrepo";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-9ChvfyXo16wtIKqAHtmmU9veArCX+VtuaG0d6sxz8UE=";
+    hash = "sha256-5K4eKkRL1vUdrTes00WQLzO0BEjK7wWIO6kTwiwuDBk=";
   };
 
-  cargoHash = "sha256-C3uLmPb8nZVu5McfhVjlhE46ehtcoUesx5dNzzY+wAU=";
+  cargoHash = "sha256-LSzaY520eltBZxek1RNEk5bMljac4BpH8ggny/fos7Y=";
 
   env = {
     RUSTFLAGS = "-C strip=symbols";
diff --git a/pkgs/development/tools/build-managers/msbuild/default.nix b/pkgs/development/tools/build-managers/msbuild/default.nix
index 1f5261649b855..c9d6c19c450e9 100644
--- a/pkgs/development/tools/build-managers/msbuild/default.nix
+++ b/pkgs/development/tools/build-managers/msbuild/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, makeWrapper, glibcLocales, mono, nuget, unzip, dotnetCorePackages, writeText, roslyn }:
+{ lib, stdenv, fetchurl, makeWrapper, glibcLocales, mono, nuget, unzip, dotnetCorePackages, writeText, roslyn }:
 
 let
 
diff --git a/pkgs/development/tools/build-managers/scala-cli/sources.json b/pkgs/development/tools/build-managers/scala-cli/sources.json
index aa8a580f45ac8..27db1b9db55e1 100644
--- a/pkgs/development/tools/build-managers/scala-cli/sources.json
+++ b/pkgs/development/tools/build-managers/scala-cli/sources.json
@@ -1,21 +1,21 @@
 {
-  "version": "1.3.1",
+  "version": "1.3.2",
   "assets": {
     "aarch64-darwin": {
       "asset": "scala-cli-aarch64-apple-darwin.gz",
-      "sha256": "04piwgd7jy7m4mx263lmlxfwh839q02b9jzycrr9bydqgfx7i0sk"
+      "sha256": "0xs60pnqsxxkamcq0n0am4jbnx4lgnr91ngcwxk0ccfpqf24jpk8"
     },
     "aarch64-linux": {
       "asset": "scala-cli-aarch64-pc-linux.gz",
-      "sha256": "0f01ilxr7zc0p6jcmn034j16ynjv1r2miik25pqlhcafjhv9sp20"
+      "sha256": "1419s6dnwk703mkp209m5fxqphx8g65h0b2kam3zs9z9rii3mjvs"
     },
     "x86_64-darwin": {
       "asset": "scala-cli-x86_64-apple-darwin.gz",
-      "sha256": "1yj49fskajf1fffkxh5hyg3vcrxyhjgcha1hj61dw0iblazfa440"
+      "sha256": "0ms7yggldckkyayz8wksyg79kgk6xl13g47a2jc7q66syzr495yw"
     },
     "x86_64-linux": {
       "asset": "scala-cli-x86_64-pc-linux.gz",
-      "sha256": "1kr035l4vwv76041yy82347f01kvbl8n676jd3dayzw48xg6j5l2"
+      "sha256": "1jy5xz8n79ck8gxcmy14ldsaj7dfrwrqgdfhp5h39hzvgcs1mjvl"
     }
   }
 }
diff --git a/pkgs/development/tools/build-managers/xmake/default.nix b/pkgs/development/tools/build-managers/xmake/default.nix
index f0d48ac331d1e..d112ba7094a5a 100644
--- a/pkgs/development/tools/build-managers/xmake/default.nix
+++ b/pkgs/development/tools/build-managers/xmake/default.nix
@@ -12,11 +12,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xmake";
-  version = "2.9.1";
+  version = "2.9.2";
 
   src = fetchurl {
     url = "https://github.com/xmake-io/xmake/releases/download/v${version}/xmake-v${version}.tar.gz";
-    hash = "sha256-ox2++MMDrqEmgGi0sawa7BQqxBJMfLfZx+61fEFPjRU=";
+    hash = "sha256-H2F7akVox+s+irDzpnwWmJJFrcVH46fR/YYayzCPtbI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/buildah/default.nix b/pkgs/development/tools/buildah/default.nix
index d1ba00dc616d6..e6c7f0a865ad0 100644
--- a/pkgs/development/tools/buildah/default.nix
+++ b/pkgs/development/tools/buildah/default.nix
@@ -17,13 +17,13 @@
 
 buildGoModule rec {
   pname = "buildah";
-  version = "1.35.4";
+  version = "1.36.0";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "buildah";
     rev = "v${version}";
-    hash = "sha256-lcB23yU7Wn+aILGFLDBnFg30NRDQgJt3J61FmGuQtRo=";
+    hash = "sha256-Ttz1D/jFbxFfpbT2VAkcao2AFwFRD8PLrH8yDSYt3AI=";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/development/tools/capnproto-java/default.nix b/pkgs/development/tools/capnproto-java/default.nix
index fa59a5ad2abf5..73c068543fb3b 100644
--- a/pkgs/development/tools/capnproto-java/default.nix
+++ b/pkgs/development/tools/capnproto-java/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, capnproto, pkg-config }:
+{ lib, stdenv, fetchFromGitHub, capnproto, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "capnproto-java";
diff --git a/pkgs/development/tools/check-jsonschema/default.nix b/pkgs/development/tools/check-jsonschema/default.nix
index c4cd5903ddeb6..a9b976acdb3b9 100644
--- a/pkgs/development/tools/check-jsonschema/default.nix
+++ b/pkgs/development/tools/check-jsonschema/default.nix
@@ -4,7 +4,7 @@ with python3.pkgs;
 
 buildPythonApplication rec {
   pname = "check-jsonschema";
-  version = "0.28.3";
+  version = "0.28.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -13,7 +13,7 @@ buildPythonApplication rec {
     owner = "python-jsonschema";
     repo = "check-jsonschema";
     rev = "refs/tags/${version}";
-    hash = "sha256-1nbaaUr/3yX/ZTTXzlwLKCRsa58UFONQnDWmcvmdhsU=";
+    hash = "sha256-7EHx5XQ3sthxKcD+9ujo5ZXWQ7tZx/f7eN9OiK4k7mc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/tools/cloud-nuke/default.nix b/pkgs/development/tools/cloud-nuke/default.nix
index 122a9826d664a..b402de727cf6e 100644
--- a/pkgs/development/tools/cloud-nuke/default.nix
+++ b/pkgs/development/tools/cloud-nuke/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "cloud-nuke";
-  version = "0.35.0";
+  version = "0.36.0";
 
   src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-mSkQW4fSpylbOS8x/o/578NV+SU4ao/yqB81Ifb7LFQ=";
+    hash = "sha256-OFfcr8BXkTEB6lxImwHVFxnvursGcg83dVWsjegKf4w=";
   };
 
-  vendorHash = "sha256-Fmfr9feTibAjiZaakJalGTS7X2RhGz6engMNhy48Zus=";
+  vendorHash = "sha256-ealTxDNG6uJc0Lb20e8W3zv0azgpwI2kBn92d0lWaoc=";
 
   nativeBuildInputs = [
     makeBinaryWrapper
diff --git a/pkgs/development/tools/cloudsmith-cli/default.nix b/pkgs/development/tools/cloudsmith-cli/default.nix
index bfdb2416bde5a..7de523c937f6e 100644
--- a/pkgs/development/tools/cloudsmith-cli/default.nix
+++ b/pkgs/development/tools/cloudsmith-cli/default.nix
@@ -1,19 +1,37 @@
 { lib
 , python3
-, fetchPypi
+, fetchFromGitHub
+, fetchpatch
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "cloudsmith-cli";
   version = "1.2.3";
-  format = "wheel";
+  format = "setuptools";
 
-  src = fetchPypi {
-    pname = "cloudsmith_cli";
-    inherit format version;
-    hash = "sha256-MIoRLWk6G8uchQlGOYOsg3XliZ1wMrYSOhAEQrus+fQ=";
+  src = fetchFromGitHub {
+    owner = "cloudsmith-io";
+    repo = "cloudsmith-cli";
+    rev = "v${version}";
+    hash = "sha256-a4hLx+INdFq6Ux3XkI5GWgAiGLHCoDA+MP2FNY3E6WA=";
   };
 
+  patches = [
+    # Fix compatibility with urllib3 2.0
+    (fetchpatch {
+      url = "https://github.com/cloudsmith-io/cloudsmith-cli/commit/1a8d2d91c01320537b26778003735d6b694141c2.patch";
+      revert = true;
+      includes = [
+        "cloudsmith_cli/core/rest.py"
+      ];
+      hash = "sha256-Rf3MMJuLr8fzkRqSftIJ1eUbgNdfrng2V609jYvpogc=";
+    })
+  ];
+
+  nativeBuildInputs = with python3.pkgs; [
+    pip
+  ];
+
   propagatedBuildInputs = with python3.pkgs; [
     click
     click-configfile
@@ -30,13 +48,38 @@ python3.pkgs.buildPythonApplication rec {
     setuptools # needs pkg_resources
   ];
 
-  # Wheels have no tests
-  doCheck = false;
+  nativeCheckInputs = with python3.pkgs; [
+    pytestCheckHook
+    pytest-cov
+  ];
+
+  checkInputs = with python3.pkgs; [
+    httpretty
+  ];
 
   pythonImportsCheck = [
     "cloudsmith_cli"
   ];
 
+  postPatch = ''
+    # Permit urllib3 2.0
+    substituteInPlace setup.py \
+      --replace-fail 'urllib3<2.0' 'urllib3'
+  '';
+
+  preCheck = ''
+    # E   _pytest.pathlib.ImportPathMismatchError: ('cloudsmith_cli.cli.tests.conftest', '/build/source/build/lib/cloudsmith_cli/cli/tests/conftest.py', PosixPath('/build/source/cloudsmith_cli/cli/tests/conftest.py'))
+    # ___________ ERROR collecting cloudsmith_cli/core/tests/test_init.py ____________
+    # import file mismatch:
+    # imported module 'cloudsmith_cli.core.tests.test_init' has this __file__ attribute:
+    #   /build/source/build/lib/cloudsmith_cli/core/tests/test_init.py
+    # which is not the same as the test file we want to collect:
+    #   /build/source/cloudsmith_cli/core/tests/test_init.py
+    # HINT: remove __pycache__ / .pyc files and/or use a unique basename for your test file modules
+    # https://github.com/NixOS/nixpkgs/issues/255262
+    cd "$out"
+  '';
+
   meta = with lib; {
     homepage = "https://help.cloudsmith.io/docs/cli/";
     description = "Cloudsmith Command Line Interface";
diff --git a/pkgs/development/tools/coder/default.nix b/pkgs/development/tools/coder/default.nix
index df4522faf26ea..155f2939cf789 100644
--- a/pkgs/development/tools/coder/default.nix
+++ b/pkgs/development/tools/coder/default.nix
@@ -13,21 +13,21 @@ let
 
   channels = {
     stable = {
-      version = "2.10.2";
+      version = "2.10.3";
       hash = {
-        x86_64-linux = "sha256-U3qHEjIKq8JkpDp6TehMs6t5L3GpSGt4D10XSAQ9Ii0=";
-        x86_64-darwin = "sha256-ibfqqxRRD3IfIN2FqSxk5qd7d87RvBgKKFv9F0hACgo=";
-        aarch64-linux = "sha256-HdBVnLKen6W1crZfnc2hpA0cAYIYeYFHKvANwnLqkjY=";
-        aarch64-darwin = "sha256-3sHmR6PTRlBSIdD4rja4y8v0gOY4cbbyhW7qssgpqp8=";
+        x86_64-linux = "sha256-FjvGGJqo1/LskZ6RteaE2q+W6K1zi8mphAD+TzYp6K4=";
+        x86_64-darwin = "sha256-/Z8nOqeFzBfauGDGZtrBheSbSQhtWI3HuE36o0cPJ4Y=";
+        aarch64-linux = "sha256-RI6FqL5GXFCwvgZAO2/evPfZAsO8NatRfTRrkL7jYt0=";
+        aarch64-darwin = "sha256-x1Wf6tyZPUo1y2IdL15v8SjYgYWuiI0wL94oi9Uak6w=";
       };
     };
     mainline = {
-      version = "2.11.0";
+      version = "2.11.2";
       hash = {
-        x86_64-linux = "sha256-aJwL4WCJXxSBrfaUHEECQqedz2lKBOa8sdRItSBpxp4=";
-        x86_64-darwin = "sha256-4D4MoDrEJtawFeUBG9BiJ6HZ9uqx9uQDIHHNB7m2pp8=";
-        aarch64-linux = "sha256-2UlCxykSfnK50OPb61YC42MTTlPL1njf0vpwmqaUbI8=";
-        aarch64-darwin = "sha256-mh0Lr+SH4jZTx1xH7QoqfSLDma5nS61sv31QuOYAgQk=";
+        x86_64-linux = "sha256-kvQPrYGDkfzTOb3c9f3VNdg3oltKmm1Z4pXeHJ9LIyo=";
+        x86_64-darwin = "sha256-AUfbdJNBK2fCJ6Pq4gkH4+y/undu6Nx64wcejVAB7iU=";
+        aarch64-linux = "sha256-FWgTLE3fW/6j1W1FNDqyVOTMGuFqc4e3Eq2tj8IEcWk=";
+        aarch64-darwin = "sha256-oM+dEUYNUcYHemDWYBf5mqUo3aHXEu6LUuLOboGfTrQ=";
       };
     };
   };
diff --git a/pkgs/development/tools/continuous-integration/buildbot/master.nix b/pkgs/development/tools/continuous-integration/buildbot/master.nix
index 7bf5eeab82ec4..2a2911cf131fb 100644
--- a/pkgs/development/tools/continuous-integration/buildbot/master.nix
+++ b/pkgs/development/tools/continuous-integration/buildbot/master.nix
@@ -72,14 +72,14 @@ let
 in
 buildPythonApplication rec {
   pname = "buildbot";
-  version = "3.11.2";
+  version = "3.11.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-x7RaApfIe1x7Py1KLQCcotxU6dJRXTOk67W+QOhNJf0=";
+    hash = "sha256-qcICSsjcgOrLG8zHBx0eSVSiXDAeHPH4roRZI9TZTkk=";
   };
 
   build-system = [
diff --git a/pkgs/development/tools/continuous-integration/buildbot/pkg.nix b/pkgs/development/tools/continuous-integration/buildbot/pkg.nix
index d121ec68cbded..a93cbf28e3b84 100644
--- a/pkgs/development/tools/continuous-integration/buildbot/pkg.nix
+++ b/pkgs/development/tools/continuous-integration/buildbot/pkg.nix
@@ -6,7 +6,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ZgDHPC2j3vV3m7wBZhUUh/Th/oGKq+8RxnfQ71Cr6oY=";
+    hash = "sha256-pO2TmTwbY0cnR+882pl7wDiR6JEK+sHHpAltKmTxiIM=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/tools/continuous-integration/buildbot/plugins.nix b/pkgs/development/tools/continuous-integration/buildbot/plugins.nix
index ade8f2e243d47..7403498a8c614 100644
--- a/pkgs/development/tools/continuous-integration/buildbot/plugins.nix
+++ b/pkgs/development/tools/continuous-integration/buildbot/plugins.nix
@@ -8,7 +8,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-xOsz71kprzKKqvvwpsZTACWf4z+Svx9BQ72xGEZXKdw=";
+      hash = "sha256-EL5iZ257VXnL+29Jr6r3PVeURX1AcugfZ4RLTjClsXo=";
     };
 
     # Remove unnecessary circular dependency on buildbot
@@ -35,7 +35,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-wUiMEAFmqjHXPjnPhsaLWqxvOXyEQIeRBL4W3LB3vkw=";
+      hash = "sha256-5QLw5nXnU+z11E5Tgvu9bbbpCTRpV2zXndukcZPRjtE=";
     };
 
     # Remove unnecessary circular dependency on buildbot
@@ -62,7 +62,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-KerHS5F4b30TvlGeSf6QLUt49S6Iki7O5nex6KPypJY=";
+      hash = "sha256-tzqifo9A/KJF9dLpO7jblVaDjx7++v0wLz1Olc79JxI=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -84,7 +84,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-XrywoVM2ErJ4i7WrRKPRaCOwt5JVDJT6xP7L/Dfv+gk=";
+      hash = "sha256-fzaqYmaO+vWnQpUvOsPCny3W27atcIHsgeGV6dKEJeg=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -106,7 +106,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-mhVbuOhe0BrXHbn8bd41Q7I8Xak7fO8ahIK0r113vGY=";
+      hash = "sha256-BLIs91k8/A4LYMTDgct7TOWFoLU4qK47Javr8qRzkZQ=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -128,7 +128,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-X89XrjdD0GL7MabLWtkQcdCa4Ain1AGre6mXF/inmck=";
+      hash = "sha256-dX+tp+WidfLy612+41jz+do/iXQTaIQPcetG8td3jp4=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -150,7 +150,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-YH5SfYuW07Pp00LoBvcDB8MiHB1HzYWg5kQVICrkS5s=";
+      hash = "sha256-2kLGdvmf2mnF21gkDCf6h+bhnsxveaNNh95qczRY824=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -172,7 +172,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-rmyAsFCTeIYPdrlWDCxlbjw+BCKwcIaTHlK8KJP0T88=";
+      hash = "sha256-rIAbk9+6Wi1PCjizHp9p6jpCwaBgBT5Ch1Sa4VKDoww=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -194,7 +194,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-Ls3NJka5vVTx1GW9bnr3jlulj7/pNkX9omXrTIWrwtU=";
+      hash = "sha256-D9mjEKFrh+ytNbpuN/06XbiBnKjFLopXfjDg28j7niw=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -216,7 +216,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-t3LLZJ+kPcowqSyeRcuH3kEjBEiju1MI0z1qhU6KPBs=";
+      hash = "sha256-q3In0IMAIBUjxSzv4LlH9EJukLYJ3WzoEYkFBZB96W8=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -238,7 +238,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-//MftUqUWE2+RpxRPzDEH7tOCN2D1HD8dETZw1OQe5s=";
+      hash = "sha256-TK4KYn3CWxymTsKWeqHr2i5rdO9ZDHvJrb9RqfKNJV4=";
     };
 
     buildInputs = [ buildbot-pkg ];
diff --git a/pkgs/development/tools/continuous-integration/buildbot/worker.nix b/pkgs/development/tools/continuous-integration/buildbot/worker.nix
index 80e255153b778..071559eccf6c2 100644
--- a/pkgs/development/tools/continuous-integration/buildbot/worker.nix
+++ b/pkgs/development/tools/continuous-integration/buildbot/worker.nix
@@ -28,7 +28,7 @@ buildPythonPackage (rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-7DAo1Yy20FeWXawV4wHzXDGtgyIGDJQuD2joJma96rM=";
+    hash = "sha256-TFymBnUufOEWZ/IUKd7nebZ+yl58ZChFkGrUxOXn28g=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/tools/ctlptl/default.nix b/pkgs/development/tools/ctlptl/default.nix
index 3c2abdd454974..f7dca069d483f 100644
--- a/pkgs/development/tools/ctlptl/default.nix
+++ b/pkgs/development/tools/ctlptl/default.nix
@@ -2,19 +2,21 @@
 
 buildGoModule rec {
   pname = "ctlptl";
-  version = "0.8.28";
+  version = "0.8.29";
 
   src = fetchFromGitHub {
     owner = "tilt-dev";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-GFCyFJrhl6VEnIuZNpIIYgdTHYxeBmaukpJ72xspwFM=";
+    hash = "sha256-4drk8mqFVGXUktPiWuVNzWVBQr4TRcutZgGsF3vpRIE=";
   };
 
-  vendorHash = "sha256-DEUZbqHHYfjD5jGT5nn3UbWT1aODRsLailSorI/W6w4=";
+  vendorHash = "sha256-rf/4xyridcsSlGOVQ91Wr8bHnm7wfuXs6HSPKW2J8hM=";
 
   nativeBuildInputs = [ installShellFiles ];
 
+  subPackages = [ "cmd/ctlptl" ];
+
   ldflags = [
     "-s"
     "-w"
diff --git a/pkgs/development/tools/database/apgdiff/default.nix b/pkgs/development/tools/database/apgdiff/default.nix
index 2aa53fbabd293..8ce720efd6819 100644
--- a/pkgs/development/tools/database/apgdiff/default.nix
+++ b/pkgs/development/tools/database/apgdiff/default.nix
@@ -1,22 +1,33 @@
 { lib
-, stdenvNoCC
-, fetchurl
-, makeWrapper
+, maven
+, fetchFromGitHub
 , jre
+, makeWrapper
 }:
-stdenvNoCC.mkDerivation (finalAttrs: {
-  version = "2.7.0";
+maven.buildMavenPackage rec {
   pname = "apgdiff";
+  version = "2.7.0";
 
-  src = fetchurl {
-    url = "https://github.com/fordfrog/apgdiff/raw/release_${finalAttrs.version}/releases/apgdiff-${finalAttrs.version}.jar";
-    sha256 = "sha256-6OempDmedl6LOwP/s5y0hOIxGDWHd7qM7/opW3UwQ+I=";
+  src = fetchFromGitHub {
+    sparseCheckout = [ "src" ];
+    owner = "fordfrog";
+    repo = "apgdiff";
+    rev = "refs/tags/release_${version}";
+    hash = "sha256-2m+9QNwQV2tJwOabTXE2xjRB5gDrSwyL6zL2op+wmkM=";
   };
 
+  # Fix wrong version string in --help
+  postPatch = ''
+    sed -i 's/VersionNumber=.*/VersionNumber=${version}/' \
+      src/main/resources/cz/startnet/utils/pgdiff/Resources.properties
+  '';
+
+  mvnHash = "sha256-zJQirS8sVqHKZsBukEOf7ox5IeiAVOP6wEHWb4CAyxc=";
+
   nativeBuildInputs = [ makeWrapper ];
 
-  buildCommand = ''
-    install -Dm644 $src $out/lib/apgdiff.jar
+  installPhase = ''
+    install -Dm644 target/apgdiff-${version}.jar $out/lib/apgdiff.jar
 
     mkdir -p $out/bin
     makeWrapper ${jre}/bin/java $out/bin/apgdiff \
@@ -30,7 +41,6 @@ stdenvNoCC.mkDerivation (finalAttrs: {
     homepage = "https://apgdiff.com";
     license = licenses.mit;
     inherit (jre.meta) platforms;
-    sourceProvenance = [ sourceTypes.binaryBytecode ];
     maintainers = [ maintainers.misterio77 ];
   };
-})
+}
diff --git a/pkgs/development/tools/database/clickhouse-backup/default.nix b/pkgs/development/tools/database/clickhouse-backup/default.nix
index a958bba1ac451..4a12be195c83f 100644
--- a/pkgs/development/tools/database/clickhouse-backup/default.nix
+++ b/pkgs/development/tools/database/clickhouse-backup/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "clickhouse-backup";
-  version = "2.5.9";
+  version = "2.5.10";
 
   src = fetchFromGitHub {
     owner = "AlexAkulov";
     repo = "clickhouse-backup";
     rev = "v${version}";
-    hash = "sha256-wzc++enDDjUfj5zYW+hRTOtXkZbFByl2pmFGSrAtUHo=";
+    hash = "sha256-09xRELdWcwyTgvJKE5+srM9Uxb6BIZEQN3pR5ggRhYk=";
   };
 
   vendorHash = "sha256-vwcItklYe6ljFdGTxef19plaI5OMoOtQohY0xZLBUos=";
diff --git a/pkgs/development/tools/database/dblab/default.nix b/pkgs/development/tools/database/dblab/default.nix
index 52a0aefdcc932..0c9680c69289b 100644
--- a/pkgs/development/tools/database/dblab/default.nix
+++ b/pkgs/development/tools/database/dblab/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "dblab";
-  version = "0.22.0";
+  version = "0.23.0";
 
   src = fetchFromGitHub {
     owner = "danvergara";
     repo = "dblab";
     rev = "v${version}";
-    hash = "sha256-eIkHaNFvXU9GGyYOH8lqzvwQQ6pz8zWeO4xY9jP25dU=";
+    hash = "sha256-PXIV9MLdBRTvXwvtKraX3530H/EDz+4HA7SeKyeEJB4=";
   };
 
   vendorHash = "sha256-WzyH3Ja/Znk/9aavIoBQRpJVnGb5o/ded0g92MTa4M4=";
diff --git a/pkgs/development/tools/database/gobang/default.nix b/pkgs/development/tools/database/gobang/default.nix
deleted file mode 100644
index b3611169996cb..0000000000000
--- a/pkgs/development/tools/database/gobang/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib
-, rustPlatform
-, fetchFromGitHub
-, stdenv
-, CoreFoundation
-, Security
-, SystemConfiguration
-}:
-
-rustPlatform.buildRustPackage rec {
-  pname = "gobang";
-  version = "0.1.0-alpha.5";
-
-  src = fetchFromGitHub {
-    owner = "tako8ki";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "02glb3hlprpdc72ji0248a7g0vr36yxr0gfbbms2m25v251dyaa6";
-  };
-
-  cargoSha256 = "sha256-Tiefet5gLpiuYY6Scg5fjnaPiZfVl5Gy2oZFdhgNRxY=";
-
-  buildInputs = lib.optionals stdenv.isDarwin [
-    CoreFoundation
-    Security
-    SystemConfiguration
-  ];
-
-  meta = with lib; {
-    description = "A cross-platform TUI database management tool written in Rust";
-    homepage = "https://github.com/tako8ki/gobang";
-    license = licenses.mit;
-    maintainers = with maintainers; [ figsoda ];
-  };
-}
diff --git a/pkgs/development/tools/database/liquibase/default.nix b/pkgs/development/tools/database/liquibase/default.nix
index 7e6a8334cff40..742884fbacb03 100644
--- a/pkgs/development/tools/database/liquibase/default.nix
+++ b/pkgs/development/tools/database/liquibase/default.nix
@@ -25,11 +25,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "liquibase";
-  version = "4.27.0";
+  version = "4.28.0";
 
   src = fetchurl {
     url = "https://github.com/liquibase/liquibase/releases/download/v${version}/${pname}-${version}.tar.gz";
-    hash = "sha256-UNieH8ECSb8ZjxqP8tgf0LaObKCAXbKKlNOGSXhNgvA=";
+    hash = "sha256-l90H6soEBqCeGuGbQH7qQqfpRMf0Vxkiv/znG0O3XOg=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/database/sqlfluff/default.nix b/pkgs/development/tools/database/sqlfluff/default.nix
index 7db4d2c7d3a5f..9d2d4a36b453b 100644
--- a/pkgs/development/tools/database/sqlfluff/default.nix
+++ b/pkgs/development/tools/database/sqlfluff/default.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "sqlfluff";
-  version = "3.0.6";
+  version = "3.0.7";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "sqlfluff";
     repo = "sqlfluff";
     rev = "refs/tags/${version}";
-    hash = "sha256-VDLUCxDQKWQEeZQkeZP13KNm48GCQ3i4CLOAB/Kermo=";
+    hash = "sha256-nq+c9NHtQ6pMouJEI7YUhgb9+ljlJECP8REL4Gm4B10=";
   };
 
   build-system = with python3.pkgs; [ setuptools ];
diff --git a/pkgs/development/tools/database/vitess/default.nix b/pkgs/development/tools/database/vitess/default.nix
index 2d107cc56246a..d0e2e5d7a0df5 100644
--- a/pkgs/development/tools/database/vitess/default.nix
+++ b/pkgs/development/tools/database/vitess/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "vitess";
-  version = "19.0.3";
+  version = "19.0.4";
 
   src = fetchFromGitHub {
     owner = "vitessio";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Zy54nZCnwyZ1JNPvaKi0/bRt5g5ucPANwer/3pl4dGU=";
+    hash = "sha256-rP2a/t+5FhGIj9T6CQodMp9YXYf3fL5oBdFpAn7e7hw=";
   };
 
-  vendorHash = "sha256-QUzBxYEvxVzv4c8tKiFb+4NLy8RsXh0QTn9twfstMtw=";
+  vendorHash = "sha256-BlHd5GQJwdntmvVti+Jvfw65LrYM+hjwdvQ0duKk5d8=";
 
   buildInputs = [ sqlite ];
 
diff --git a/pkgs/development/tools/devpod/default.nix b/pkgs/development/tools/devpod/default.nix
index 6b66869828d10..ce84ab242f447 100644
--- a/pkgs/development/tools/devpod/default.nix
+++ b/pkgs/development/tools/devpod/default.nix
@@ -23,13 +23,13 @@
 
 let
   pname = "devpod";
-  version = "0.5.4";
+  version = "0.5.8";
 
   src = fetchFromGitHub {
     owner = "loft-sh";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-BXr+2uia5skNRpdo8T+0uOVdh6WmWeC42PGNSURJhas=";
+    sha256 = "sha256-fIksTguHaWlbwUWnANyb/ftx3Fhhiz8k5n7N/7lhspc=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/tools/earthly/default.nix b/pkgs/development/tools/earthly/default.nix
index 0a266560d5598..6662cf4e37659 100644
--- a/pkgs/development/tools/earthly/default.nix
+++ b/pkgs/development/tools/earthly/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "earthly";
-  version = "0.8.11";
+  version = "0.8.12";
 
   src = fetchFromGitHub {
     owner = "earthly";
     repo = "earthly";
     rev = "v${version}";
-    hash = "sha256-73Ftm5/eGqgjtYcvKcRuHGzKnKYdCJ5WqDBsMSSiMuA=";
+    hash = "sha256-9yo2LgZ/c23FcZuOxUTlp1CfwFmg6yvhlOsDpY71Pic=";
   };
 
-  vendorHash = "sha256-Uj7GGRknXtcu64rzS7SSnwQyE84hnGAyiT62vyppDE4=";
+  vendorHash = "sha256-OuZypIUIUDG1Gipg4RYkQZVUD8+G/U3N2VkbP+rnbkc=";
   subPackages = [ "cmd/earthly" "cmd/debugger" ];
 
   CGO_ENABLED = 0;
diff --git a/pkgs/development/tools/esbuild/netlify.nix b/pkgs/development/tools/esbuild/netlify.nix
index 1ed35d64f027c..0d754060c211d 100644
--- a/pkgs/development/tools/esbuild/netlify.nix
+++ b/pkgs/development/tools/esbuild/netlify.nix
@@ -1,7 +1,6 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
-, fetchpatch
 , netlify-cli
 }:
 
diff --git a/pkgs/development/tools/extism-cli/default.nix b/pkgs/development/tools/extism-cli/default.nix
index b9ca4160fe3eb..8ac2f2499fb9e 100644
--- a/pkgs/development/tools/extism-cli/default.nix
+++ b/pkgs/development/tools/extism-cli/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "extism-cli";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "extism";
     repo = "cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-F+Kb9ZAgHkw5kcOSt2Q8Lm+B8B4VPkr4FVYbe6HD+is=";
+    hash = "sha256-t0SbjTuM298Cka2zhavR6bOGDriz2XUGcfAy25se7M4=";
   };
 
-  vendorHash = "sha256-/faWWYwY7oxbIOoqpyXC+EU4gECl/o34M+SFyfMOWj8=";
+  vendorHash = "sha256-5QSZDPRMlLVyOQGCSxNC5BBiuegschkHA0sWvOVAODI=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/development/tools/firebase-tools/default.nix b/pkgs/development/tools/firebase-tools/default.nix
index 4af5783d7112a..2239e42df3ead 100644
--- a/pkgs/development/tools/firebase-tools/default.nix
+++ b/pkgs/development/tools/firebase-tools/default.nix
@@ -8,16 +8,16 @@
 
 buildNpmPackage rec {
   pname = "firebase-tools";
-  version = "13.10.0";
+  version = "13.10.1";
 
   src = fetchFromGitHub {
     owner = "firebase";
     repo = "firebase-tools";
     rev = "v${version}";
-    hash = "sha256-g6VmfVBGAjMH2a+oQpS3fVJm9rRNrYFaVfZ/GeqLSus=";
+    hash = "sha256-20YDBbkMJblZisFewTXLcvgT+Jtr7T/iaCukoTpbNF8=";
   };
 
-  npmDepsHash = "sha256-W+XiuYTFmPgcS03U579/J3HsdPkX9WIHMR33DzWQlr8=";
+  npmDepsHash = "sha256-HSzX4Ptl2WVRf0kw4pDrRoBH6b6JVOB+FD7LymJeaO0=";
 
   postPatch = ''
     ln -s npm-shrinkwrap.json package-lock.json
diff --git a/pkgs/development/tools/fsautocomplete/default.nix b/pkgs/development/tools/fsautocomplete/default.nix
index 3a2374aa9c644..1102580d459b2 100644
--- a/pkgs/development/tools/fsautocomplete/default.nix
+++ b/pkgs/development/tools/fsautocomplete/default.nix
@@ -2,13 +2,13 @@
 
 buildDotnetModule rec {
   pname = "fsautocomplete";
-  version = "0.72.3";
+  version = "0.73.1";
 
   src = fetchFromGitHub {
     owner = "fsharp";
     repo = "FsAutoComplete";
     rev = "v${version}";
-    hash = "sha256-YU2rb1rxlbreSXMO+IGS2BrdfmqntdSlLuxV3zekSaI=";
+    hash = "sha256-esvnbmifLFwzNUHTTwl6yEYPwFgWgKfaZGMQDJ+puus=";
   };
 
   nugetDeps = ./deps.nix;
diff --git a/pkgs/development/tools/fsautocomplete/deps.nix b/pkgs/development/tools/fsautocomplete/deps.nix
index 6dc9faa2b0337..68e3c8061084c 100644
--- a/pkgs/development/tools/fsautocomplete/deps.nix
+++ b/pkgs/development/tools/fsautocomplete/deps.nix
@@ -17,13 +17,13 @@
   (fetchNuGet { pname = "fantomas"; version = "6.3.1"; sha256 = "0kkhdwcw0l7pa1hjil2hjpizjbp618ig32wgni5sfaqmxkc9iywq"; })
   (fetchNuGet { pname = "Fantomas.Client"; version = "0.9.0"; sha256 = "1zixwk61fyk7y9q6f8266kwxi6byr8fmyp1lf57qhbbvhq2waj9d"; })
   (fetchNuGet { pname = "FParsec"; version = "1.1.1"; sha256 = "01s3zrxl9kfx0264wy0m555pfx0s0z165n4fvpgx63jlqwbd8m04"; })
-  (fetchNuGet { pname = "fsharp-analyzers"; version = "0.25.0"; sha256 = "01i9yhqs7b0p9s1j9m8g3yd8w3a3xp9bp8791zmxp31l5ricjdwy"; })
+  (fetchNuGet { pname = "fsharp-analyzers"; version = "0.26.0"; sha256 = "0xgv5kvbwfdvcp6s8x7xagbbi4s3mqa4ixni6pazqvyflbgnah7b"; })
   (fetchNuGet { pname = "FSharp.Analyzers.Build"; version = "0.3.0"; sha256 = "1c9ijc9lvyw4lfnd3m9260c8lwnh6ca91zslr29dpn525z9zgdif"; })
-  (fetchNuGet { pname = "FSharp.Analyzers.SDK"; version = "0.25.0"; sha256 = "13s2bhizbl2ss9944wk3cka1ri22rs7aqhiiz2i9lyaj9jz863cy"; })
-  (fetchNuGet { pname = "FSharp.Compiler.Service"; version = "43.8.200"; sha256 = "1jcp8by02n7vbs11p0gxmb42837l7q841f71ifmrqw7chmg14zik"; })
+  (fetchNuGet { pname = "FSharp.Analyzers.SDK"; version = "0.26.0"; sha256 = "0kvqjm8qk8g8iv1f3jv5ac5jj9y1d4mwsia2zydj5lcdczg3g3p1"; })
+  (fetchNuGet { pname = "FSharp.Compiler.Service"; version = "43.8.300"; sha256 = "0qhs4zg0yxy3b82jvm2m41b9fd8ybfbf7bcdn7097sdly0nd9ywb"; })
   (fetchNuGet { pname = "FSharp.Control.AsyncSeq"; version = "3.2.1"; sha256 = "02c8d8snd529rrcj6lsmab3wdq2sjh90j8sanx50ck9acfn9jd3v"; })
   (fetchNuGet { pname = "FSharp.Control.Reactive"; version = "5.0.5"; sha256 = "0ahvd3s5wfv610ks3b00ya5r71cqm34ap8ywx0pyrzhlsbk1ybqg"; })
-  (fetchNuGet { pname = "FSharp.Core"; version = "8.0.200"; sha256 = "1v0w8n02wshggymckvy9l343yiznjfmif9nfd35f9a32s5wj4dn2"; })
+  (fetchNuGet { pname = "FSharp.Core"; version = "8.0.300"; sha256 = "158xxr9hnhz2ibyzzp2d249angvxfc58ifflm4g3hz8qx9zxaq04"; })
   (fetchNuGet { pname = "FSharp.Data.Adaptive"; version = "1.2.13"; sha256 = "16l1h718h110yl2q83hzy1rpalyqlicdaxln7g0bf8kzq9b2v6rz"; })
   (fetchNuGet { pname = "FSharp.Formatting"; version = "14.0.1"; sha256 = "0sx4jlxzmrdcmc937arc9v0r90qkpf2gd1m9ngkpg88qvqcx4xsa"; })
   (fetchNuGet { pname = "FSharp.UMX"; version = "1.1.0"; sha256 = "1rzf5m38fcpphfhcv359plk2sval16kj00gdfwzpm9gi8wjw8j8k"; })
@@ -41,15 +41,15 @@
   (fetchNuGet { pname = "Grpc.Net.Common"; version = "2.51.0"; sha256 = "1b7iwf5qk4c449mi5lsnf6j99pwwrj79y8zkinzf5j2rslc97r0z"; })
   (fetchNuGet { pname = "Humanizer.Core"; version = "2.14.1"; sha256 = "1ai7hgr0qwd7xlqfd92immddyi41j3ag91h3594yzfsgsy6yhyqi"; })
   (fetchNuGet { pname = "Iced"; version = "1.17.0"; sha256 = "1999xavgpy2h83rh4indiq5mx5l509swqdi1raxj3ab6zvk49zpb"; })
-  (fetchNuGet { pname = "IcedTasks"; version = "0.9.2"; sha256 = "1i4sg398qvxyrprca9jssn4lccwn67zndbg1a3a37cmsms5rlbvj"; })
+  (fetchNuGet { pname = "IcedTasks"; version = "0.11.5"; sha256 = "0l7wzns5dg5jq8ppzvi13cr7nh1kjc0qyj80npy8lr3x86hiz51q"; })
   (fetchNuGet { pname = "ICSharpCode.Decompiler"; version = "7.2.1.6856"; sha256 = "19z68rgzl93lh1h8anbgzw119mhvcgr9nh5q2nxk6qihl2mx97ba"; })
-  (fetchNuGet { pname = "Ionide.Analyzers"; version = "0.10.0"; sha256 = "1z97m2r6p13yg253zlx89x7fd4zvxmkggilav5h5wf4blsfxvzw1"; })
+  (fetchNuGet { pname = "Ionide.Analyzers"; version = "0.11.0"; sha256 = "1wsx7gbr4macmim5z1iz9clgq9xfmg423snb589bvaiyg5k6ha00"; })
   (fetchNuGet { pname = "Ionide.KeepAChangelog.Tasks"; version = "0.1.8"; sha256 = "066zla2rp1sal6by3h3sg6ibpkk52kbhn30bzk58l6ym7q1kqa6b"; })
   (fetchNuGet { pname = "Ionide.LanguageServerProtocol"; version = "0.4.23"; sha256 = "0jfsan2d7aj68xksn1xrdiww1fdz34n7k91r5y4a77jx6h4ngbxq"; })
-  (fetchNuGet { pname = "Ionide.ProjInfo"; version = "0.64.0"; sha256 = "0sbd392f4fwmq4v652ak39md35vcgxl4q05y5dgrk71kpak6pg2w"; })
-  (fetchNuGet { pname = "Ionide.ProjInfo.FCS"; version = "0.64.0"; sha256 = "0srbqyaivq8i6xl20v5hg7zxkvby06zirmcppv1apwh9p1yvi68k"; })
-  (fetchNuGet { pname = "Ionide.ProjInfo.ProjectSystem"; version = "0.64.0"; sha256 = "0rzj97ysw4skavq4amhv5fd0h1dyyqi4rxzxzpd4cd07xc8bnfv6"; })
-  (fetchNuGet { pname = "Ionide.ProjInfo.Sln"; version = "0.64.0"; sha256 = "1yd30n5idc5rbqi7lr8gp4hb51l85q3canqinlaxa6raaml0xxsj"; })
+  (fetchNuGet { pname = "Ionide.ProjInfo"; version = "0.65.0"; sha256 = "0aka78yaj7h3apbr9ia7rdikr2hhyizl1xakks90h47nax00kscz"; })
+  (fetchNuGet { pname = "Ionide.ProjInfo.FCS"; version = "0.65.0"; sha256 = "0kjrn6r6nwd5m5wlb8jpyzaicjcw64dg7w7vqndrwv7nw0wd4di0"; })
+  (fetchNuGet { pname = "Ionide.ProjInfo.ProjectSystem"; version = "0.65.0"; sha256 = "15080y3f0zqvdzi6ks9v6jhih5xsrgi08ji5zym88qvmp81g1m8q"; })
+  (fetchNuGet { pname = "Ionide.ProjInfo.Sln"; version = "0.65.0"; sha256 = "1f2xys28vjx22wgjnlk2jy4zsy7hkjvw692r2pqmki6fb5a5pjql"; })
   (fetchNuGet { pname = "LinkDotNet.StringBuilder"; version = "1.18.0"; sha256 = "0lgh4yjnim9qbqkmkgpx5fi2lha1cgcdbddvbsiw9jzp18fndxly"; })
   (fetchNuGet { pname = "McMaster.NETCore.Plugins"; version = "1.4.0"; sha256 = "1k2qz0qnf2b1kfwbzcynivy93jm7dcwl866d0fl7qlgq5vql7niy"; })
   (fetchNuGet { pname = "MessagePack"; version = "2.5.108"; sha256 = "0cnaz28lhrdmavnxjkakl9q8p2yv8mricvp1b0wxdfnz8v41gwzs"; })
@@ -82,7 +82,7 @@
   (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "6.0.0"; sha256 = "15hb2rbzgri1fq8wpj4ll7czm3rxqzszs02phnhjnncp90m5rmpc"; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "6.0.1"; sha256 = "0kl5ypidmzllyxb91gwy3z950dc416p1y8wikzbdbp0l7aaaxq2p"; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "6.0.0"; sha256 = "1vi67fw7q99gj7jd64gnnfr4d2c0ijpva7g9prps48ja6g91x6a9"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "6.0.0"; sha256 = "08c4fh1n8vsish1vh7h73mva34g0as4ph29s4lvps7kmjb4z64nl"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "5.0.0"; sha256 = "1mma1zxi0b40972cwfvkj9y0w9r7vjbi74784jzcb22pric00k5x"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "6.0.0"; sha256 = "0fd9jii3y3irfcwlsiww1y9npjgabzarh33rn566wpcz24lijszi"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "6.0.2"; sha256 = "1wv54f3p3r2zj1pr9a6z8zqrh2ihm6v6qcw2pjwis1lcc0qb472m"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Logging.Configuration"; version = "6.0.0"; sha256 = "0plx785hk61arjxf0m3ywy9hl5nii25raj4523n3ql7mmv6hxqr1"; })
@@ -114,6 +114,7 @@
   (fetchNuGet { pname = "OpenTelemetry"; version = "1.3.2"; sha256 = "1v9ipc75ipwjhhz4mkyjygw85i6ba5flcbhyspmf90vfi2nk7b79"; })
   (fetchNuGet { pname = "OpenTelemetry.Api"; version = "1.3.2"; sha256 = "0fgl99k6nm3n47vv9mx6y36pnljj2b5g641cs2zsw6l86n57qwv1"; })
   (fetchNuGet { pname = "OpenTelemetry.Exporter.OpenTelemetryProtocol"; version = "1.3.2"; sha256 = "14p6rn68mqrch3ani17vwyl4ggjz680nxkw1nf65xmf1ljlkb4iq"; })
+  (fetchNuGet { pname = "OpenTelemetry.Instrumentation.Runtime"; version = "1.0.0"; sha256 = "02s1g7nizf9dglfgff2fcncigbyplfbwhif7naj1wh7gx5dnig1l"; })
   (fetchNuGet { pname = "Paket"; version = "8.0.3"; sha256 = "12xm100rg82p5fvkn63mmjc8i38q8yvk5327snwzqijlfh3k60n0"; })
   (fetchNuGet { pname = "Perfolizer"; version = "0.2.1"; sha256 = "012aqqi3y3nfikqmn26yajpwd52c04zlzp0p91iyslw7mf26qncy"; })
   (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0rwpqngkqiapqc5c2cpkj7idhngrgss5qpnqg0yh40mbyflcxf8i"; })
@@ -208,5 +209,6 @@
   (fetchNuGet { pname = "System.Threading.Tasks.Dataflow"; version = "7.0.0"; sha256 = "0ham9l8xrmlq2qwin53n82iz1wanci2h695i3cq83jcw4n28qdr9"; })
   (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
   (fetchNuGet { pname = "System.Windows.Extensions"; version = "7.0.0"; sha256 = "11r9f0v7qp365bdpq5ax023yra4qvygljz18dlqs650d44iay669"; })
+  (fetchNuGet { pname = "telplin"; version = "0.9.6"; sha256 = "0wlg6nsy4icf7k0vm32m0466hz5bs97fhx2czfqr0alx14z8n64h"; })
   (fetchNuGet { pname = "YoloDev.Expecto.TestSdk"; version = "0.14.2"; sha256 = "1877gr3f8wl1x3njhgss9psxm21xpqv6cpg625f2mvvak79fzrra"; })
 ]
diff --git a/pkgs/development/tools/ginkgo/default.nix b/pkgs/development/tools/ginkgo/default.nix
index ecbda3802d4d8..e2b468b740af6 100644
--- a/pkgs/development/tools/ginkgo/default.nix
+++ b/pkgs/development/tools/ginkgo/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "ginkgo";
-  version = "2.18.0";
+  version = "2.19.0";
 
   src = fetchFromGitHub {
     owner = "onsi";
     repo = "ginkgo";
     rev = "v${version}";
-    sha256 = "sha256-e8XL79Qj38I+oYJdBut1VL0DlU/tE1q7v1N8JmWjrfA=";
+    sha256 = "sha256-+Kh+Pn0oEq/eDXE+vsYrSOqhSoeQoIueb6mVpT2bljc=";
   };
   vendorHash = "sha256-ccqhuUL99dtIeiEM4hRdi0479I0cyf8pxSZz0G6Vm+w=";
 
diff --git a/pkgs/development/tools/goimports-reviser/default.nix b/pkgs/development/tools/goimports-reviser/default.nix
index 437b27ce8435b..b7bdf8632164d 100644
--- a/pkgs/development/tools/goimports-reviser/default.nix
+++ b/pkgs/development/tools/goimports-reviser/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "goimports-reviser";
-  version = "3.6.4";
+  version = "3.6.5";
 
   src = fetchFromGitHub {
     owner = "incu6us";
     repo = "goimports-reviser";
     rev = "v${version}";
-    hash = "sha256-+GVC/qJnqWm5tsn2Y5BPafapp7ct9kqHWlDNxukEZsM=";
+    hash = "sha256-46s6A1sGqoJR3XihaCkVCxTpManl330mMcJ8hv66zDc=";
   };
   vendorHash = "sha256-z+FeAXPXKi653im2X2WOP1R9gRl/x7UBnndoEXoxdwA=";
 
diff --git a/pkgs/development/tools/golangci-lint/default.nix b/pkgs/development/tools/golangci-lint/default.nix
index c4210b1f37381..e91020494036e 100644
--- a/pkgs/development/tools/golangci-lint/default.nix
+++ b/pkgs/development/tools/golangci-lint/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "golangci-lint";
-  version = "1.58.2";
+  version = "1.59.0";
 
   src = fetchFromGitHub {
     owner = "golangci";
     repo = "golangci-lint";
     rev = "v${version}";
-    hash = "sha256-LVkBIoRzmGQ6aJTOEyW51pdPqi7YOvuuAnaQwm0Fuyw=";
+    hash = "sha256-m4VT4jJa8AQipH1KQOYYEG84cbCS6qXORZQC8PA7838=";
   };
 
-  vendorHash = "sha256-BqNBglFoQQHhXIlI0UYerz0JLKmIzjjwqg2NYIeE14E=";
+  vendorHash = "sha256-ZNoBXSJsLCqRXc09/3woUCJVyeMrFjHIznXMlNz8MsI=";
 
   subPackages = [ "cmd/golangci-lint" ];
 
diff --git a/pkgs/development/tools/goperf/default.nix b/pkgs/development/tools/goperf/default.nix
index ffb644aaea40a..b4147456711df 100644
--- a/pkgs/development/tools/goperf/default.nix
+++ b/pkgs/development/tools/goperf/default.nix
@@ -8,15 +8,15 @@
 
 buildGoModule rec {
   pname = "goperf";
-  version = "0-unstable-2023-11-08";
+  version = "0-unstable-2024-05-10";
 
   src = fetchgit {
     url = "https://go.googlesource.com/perf";
-    rev = "cb71e802ccb878a069712546879bf26489f0f300";
-    hash = "sha256-1NvrelLsy9lrepttXXnggc0oycC6EgJgU80iXDu3IoI=";
+    rev = "bedb9135df6d63a551db71a3fa872a2816e90cf2";
+    hash = "sha256-e2dr/eeKoc0Vpxx29bmxhfYsj13oEFs9h1/mBmDbWM4=";
   };
 
-  vendorHash = "sha256-dJQHqIR6v0yYbxplytkdA98IHtdxnsvi9X6kIESCsB8=";
+  vendorHash = "sha256-MtDvOn+cjlEtObzmYnsQa2BkgIeKr/j18wk5QK3JDuk=";
 
   passthru.updateScript = writeShellScript "update-goperf" ''
     export UPDATE_NIX_ATTR_PATH=goperf
diff --git a/pkgs/development/tools/initool/default.nix b/pkgs/development/tools/initool/default.nix
index e71860eb8d7a5..dd588e1acc69a 100644
--- a/pkgs/development/tools/initool/default.nix
+++ b/pkgs/development/tools/initool/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "initool";
-  version = "0.15.0";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "dbohdan";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-QUCI3E04ggmFORUTYtwdwVJNnbuLwXI2OGwdg5/Ges4=";
+    hash = "sha256-9+XmkXQ2oqwDWmzPSUt7jBKZBGhUVtGkNs371p4V0xA=";
   };
 
   nativeBuildInputs = [ mlton ];
diff --git a/pkgs/development/tools/jaq/default.nix b/pkgs/development/tools/jaq/default.nix
index b95473aac7452..bdae66da33669 100644
--- a/pkgs/development/tools/jaq/default.nix
+++ b/pkgs/development/tools/jaq/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "jaq";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "01mf02";
     repo = "jaq";
     rev = "v${version}";
-    hash = "sha256-QXlHiVlKx9qmW5Cw4IGzjuUSUfoc9IvA5ZkTc1Ev37Q=";
+    hash = "sha256-6HqZBJeUaYykTZLSrqQN0Rt6rvnvzb53T56oy06wIUw=";
   };
 
-  cargoHash = "sha256-9fv8Z9AE9GV/Bq+iAsxUkD/CS25/kOBKKS4SAke/tFk=";
+  cargoHash = "sha256-Zais+yGfrzxKrKA4uAG65uzhamnuYxQEKkIaeiOlcLQ=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Security
diff --git a/pkgs/development/tools/jql/default.nix b/pkgs/development/tools/jql/default.nix
index 95c0ff65e57dc..661526f30b96f 100644
--- a/pkgs/development/tools/jql/default.nix
+++ b/pkgs/development/tools/jql/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "jql";
-  version = "7.1.8";
+  version = "7.1.9";
 
   src = fetchFromGitHub {
     owner = "yamafaktory";
     repo = pname;
     rev = "jql-v${version}";
-    hash = "sha256-TjpbFX7k4coZH8IY4bygLwj8Z4JLQQ9yUqOmmr7NU9s=";
+    hash = "sha256-DNR+5ygTFXmly1XVyV1x3ly+n9MHor/6BlMe+q0JLYA=";
   };
 
-  cargoHash = "sha256-7mzmaXeYZGtUjefC7Zo8wOArBuus7mfu6AaKE4tS5HE=";
+  cargoHash = "sha256-6bB/qqr+IMZz1I8JzxxOM3YVIDO5TW9hLc6PQpQcFx8=";
 
   meta = with lib; {
     description = "A JSON Query Language CLI tool built with Rust";
diff --git a/pkgs/development/tools/language-servers/fortls/default.nix b/pkgs/development/tools/language-servers/fortls/default.nix
index ccb70db0727c4..96db58da00762 100644
--- a/pkgs/development/tools/language-servers/fortls/default.nix
+++ b/pkgs/development/tools/language-servers/fortls/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonApplication rec {
   pname = "fortls";
-  version = "3.0.0";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "fortran-lang";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-kRL4kLX1T2Sontl8f3VO8Hb7uI41JwhZBiH//gdcmNE=";
+    hash = "sha256-4iOE9OkqSu7enEMx4aAaGZ0KDKCT1377Su728JncIso=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/tools/language-servers/neocmakelsp/default.nix b/pkgs/development/tools/language-servers/neocmakelsp/default.nix
index fe2678be6d2c2..d3c8d86a14e12 100644
--- a/pkgs/development/tools/language-servers/neocmakelsp/default.nix
+++ b/pkgs/development/tools/language-servers/neocmakelsp/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "neocmakelsp";
-  version = "0.6.25";
+  version = "0.6.26";
 
   src = fetchFromGitHub {
     owner = "Decodetalkers";
     repo = "neocmakelsp";
     rev = "v${version}";
-    hash = "sha256-2eZ1f0oxCNf0hJEQ8hkvsTwCaAWJrIYCyIY5PNfaxI4=";
+    hash = "sha256-9pCi7bevgE2tO0n1LvhLIcFV8sVpAagkVB8l5WWdIbM=";
   };
 
-  cargoHash = "sha256-mo/d99Y41/pxMzVvI6LkjnhotGV5j0ee4GItly0aqpY=";
+  cargoHash = "sha256-xm+8IDLvPDOFJ6FyeQdpbWgQ9XE6bW5i29W0S9JSQzc=";
 
   meta = with lib; {
     description = "A cmake lsp based on tower-lsp and treesitter";
diff --git a/pkgs/development/tools/language-servers/vhdl-ls/default.nix b/pkgs/development/tools/language-servers/vhdl-ls/default.nix
index f879e400896a4..b1101de64d24b 100644
--- a/pkgs/development/tools/language-servers/vhdl-ls/default.nix
+++ b/pkgs/development/tools/language-servers/vhdl-ls/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "vhdl-ls";
-  version = "0.80.0";
+  version = "0.81.0";
 
   src = fetchFromGitHub {
     owner = "VHDL-LS";
     repo = "rust_hdl";
     rev = "v${version}";
-    hash = "sha256-3p6SmmNnuPoHbA0QmfgvO342AhRx5dI9q4YXypi/2k0=";
+    hash = "sha256-iF8HIfxC7WM5YT85HfCTM5hu5yCFnHpDposGDAO3qJI=";
   };
 
-  cargoHash = "sha256-zAz33P5k6wmQej8u45+lXKHSRVaZhrB5L0jUPjs44W8=";
+  cargoHash = "sha256-hkmaMzeQLd3l6A3xyLAZk+MrEeUKPd7H2N4Nsz7nBmk=";
 
   postPatch = ''
     substituteInPlace vhdl_lang/src/config.rs \
diff --git a/pkgs/development/tools/melange/default.nix b/pkgs/development/tools/melange/default.nix
index 90383cba4c03d..d013f88086e1b 100644
--- a/pkgs/development/tools/melange/default.nix
+++ b/pkgs/development/tools/melange/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "melange";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "chainguard-dev";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-RkX6jS3Oh0pRn7kwNDRi8RQ2apLx3W82yQYI1JLJXjQ=";
+    hash = "sha256-l2KVy3E1JkVPmRPLNSagjlWpkW3wTF4NylWrSwUW/fQ=";
     # populate values that require us to use git. By doing this in postFetch we
     # can delete .git afterwards and maintain better reproducibility of the src.
     leaveDotGit = true;
@@ -25,7 +25,7 @@ buildGoModule rec {
     '';
   };
 
-  vendorHash = "sha256-0IBpnwAkvrGkll/mE67BXb/TmwYJyX2oG/aBqsKcn4g=";
+  vendorHash = "sha256-+O7SXIf1nCiNsIfhq2xkDqjPBwMsv95gWEZmFwIZ7VE=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/development/tools/micronaut/default.nix b/pkgs/development/tools/micronaut/default.nix
index 1adea9552be07..7e9e83ea6fb3a 100644
--- a/pkgs/development/tools/micronaut/default.nix
+++ b/pkgs/development/tools/micronaut/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "micronaut";
-  version = "4.4.2";
+  version = "4.4.3";
 
   src = fetchzip {
     url = "https://github.com/micronaut-projects/micronaut-starter/releases/download/v${version}/micronaut-cli-${version}.zip";
-    sha256 = "sha256-5Loc9H5wqafoZYjPGCJ4kTNulS1/Njgn35T74zHr9s4=";
+    sha256 = "sha256-lRZs/+oClNdSGapBDt9hROfergHi1cGeP5jlkL8LWxs=";
   };
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
diff --git a/pkgs/development/tools/misc/astyle/default.nix b/pkgs/development/tools/misc/astyle/default.nix
index a23e7936985c4..ca714b393ee12 100644
--- a/pkgs/development/tools/misc/astyle/default.nix
+++ b/pkgs/development/tools/misc/astyle/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "astyle";
-  version = "3.4.15";
+  version = "3.4.16";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
-    hash = "sha256-BQTHM7v+lmiLZsEHtt8/oFJj3vq7I4WOQsRLpVRYbms=";
+    hash = "sha256-y3YENPfkYk1e6yd2rDNOeeARGb6kGfyYbt0sJNk4A2Q=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/tools/misc/automake/automake-1.16.x.nix b/pkgs/development/tools/misc/automake/automake-1.16.x.nix
index 0d9572c6f3140..20fe31ef6cd7f 100644
--- a/pkgs/development/tools/misc/automake/automake-1.16.x.nix
+++ b/pkgs/development/tools/misc/automake/automake-1.16.x.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, perl, autoconf }:
+{ lib, stdenv, fetchurl, perl, autoconf, updateAutotoolsGnuConfigScriptsHook }:
 
 stdenv.mkDerivation rec {
   pname = "automake";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   strictDeps = true;
-  nativeBuildInputs = [ autoconf perl ];
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook autoconf perl ];
   buildInputs = [ autoconf ];
 
   setupHook = ./setup-hook.sh;
diff --git a/pkgs/development/tools/misc/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix
index c707d0daec896..a60457e73591e 100644
--- a/pkgs/development/tools/misc/binutils/default.nix
+++ b/pkgs/development/tools/misc/binutils/default.nix
@@ -170,8 +170,13 @@ stdenv.mkDerivation (finalAttrs: {
 
   # As binutils takes part in the stdenv building, we don't want references
   # to the bootstrap-tools libgcc (as uses to happen on arm/mips)
+  #
+  # for FreeBSD it's more complicated. With -static-libgcc, configure
+  # thinks that limits.h does not exist and the build fails for not finding
+  # LONG_MIN. The configure test itself succeeds but the compiler issues a
+  # warning about -static-libgcc being unused.
   env.NIX_CFLAGS_COMPILE =
-    if hostPlatform.isDarwin
+    if (hostPlatform.isDarwin || hostPlatform.isFreeBSD)
     then "-Wno-string-plus-int -Wno-deprecated-declarations"
     else "-static-libgcc";
 
@@ -217,6 +222,14 @@ stdenv.mkDerivation (finalAttrs: {
   ] ++ (if enableShared
       then [ "--enable-shared" "--disable-static" ]
       else [ "--disable-shared" "--enable-static" ])
+  ++ (lib.optionals (stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17") [
+      # lld17+ passes `--no-undefined-version` by default and makes this a hard
+      # error; libctf.ver version script references symbols that aren't present.
+      #
+      # This is fixed upstream and can be removed with the future release of 2.43.
+      # For now we allow this with `--undefined-version`:
+      "LDFLAGS=-Wl,--undefined-version"
+  ])
   ;
 
   # Fails
diff --git a/pkgs/development/tools/misc/blackfire/default.nix b/pkgs/development/tools/misc/blackfire/default.nix
index de6894f6ebe3c..eacae2aed8f7d 100644
--- a/pkgs/development/tools/misc/blackfire/default.nix
+++ b/pkgs/development/tools/misc/blackfire/default.nix
@@ -10,7 +10,7 @@
 
 stdenv.mkDerivation rec {
   pname = "blackfire";
-  version = "2.28.2";
+  version = "2.28.3";
 
   src = passthru.sources.${stdenv.hostPlatform.system} or (throw "Unsupported platform for blackfire: ${stdenv.hostPlatform.system}");
 
@@ -57,23 +57,23 @@ stdenv.mkDerivation rec {
     sources = {
       "x86_64-linux" = fetchurl {
         url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_amd64.deb";
-        sha256 = "ECUWjBlWr2QSvYvzep7MVOrufCRTgLibkmOHAEhg36w=";
+        sha256 = "nku9F29PjoPZL/PppK6HuC5Mk7TEWv4iAUVgoiYmaG8=";
       };
       "i686-linux" = fetchurl {
         url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_i386.deb";
-        sha256 = "cU9WpD+mIcAn1eYc9n6rGi/jML5F7g6BoXtfWAI4P+Y=";
+        sha256 = "xZfjCn0HXqw0fBrZEKc4X2m8aTEiXOFjSEpSdFq9Wvc=";
       };
       "aarch64-linux" = fetchurl {
         url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_arm64.deb";
-        sha256 = "Ej2uFxl8gIW6V7hEGauRWhfdevxoAb5s+yyQi1TYQWQ=";
+        sha256 = "05aI2Ao0++bTiwt6TygY/yvLkmByH604t8EX8T2bGZs=";
       };
       "aarch64-darwin" = fetchurl {
         url = "https://packages.blackfire.io/blackfire/${version}/blackfire-darwin_arm64.pkg.tar.gz";
-        sha256 = "brcOya9uqicGXGVRggYP6yiOriho7zrbO5b3F1XMW+M=";
+        sha256 = "ICG0SGBzpSQoug+5kl7kQ05Q0+0BAKdhRdUUwxgPEb4=";
       };
       "x86_64-darwin" = fetchurl {
         url = "https://packages.blackfire.io/blackfire/${version}/blackfire-darwin_amd64.pkg.tar.gz";
-        sha256 = "M90t91STPtLnW3yd5gvhNC0RQ8aDLPmdXV7dZ03gp/4=";
+        sha256 = "qbhFK8Oe7565sOQMGE68TlyYN1B56kk2ibiBiDWw7VE=";
       };
     };
 
diff --git a/pkgs/development/tools/misc/blackfire/php-probe.nix b/pkgs/development/tools/misc/blackfire/php-probe.nix
index df6e223aeb19a..34389a5506b8a 100644
--- a/pkgs/development/tools/misc/blackfire/php-probe.nix
+++ b/pkgs/development/tools/misc/blackfire/php-probe.nix
@@ -14,47 +14,47 @@ assert lib.assertMsg (!php.ztsSupport) "blackfire only supports non zts versions
 let
   phpMajor = lib.versions.majorMinor php.version;
 
-  version = "1.92.15";
+  version = "1.92.16";
 
   hashes = {
     "x86_64-linux" = {
       system = "amd64";
       hash = {
-        "8.1" = "sha256-CTh3HdTZS5tjnSN5JUX55aioFSqs3FQfy7S5ofXlyBs=";
-        "8.2" = "sha256-q/Zwpvm+pT6JdkC2nX7fEf+eDmWmtLniL+5Cys8kdNI=";
-        "8.3" = "sha256-8MGY3Spa4cWqUL4S/qHKPJql5DRhtvmYEE3oBLNNm3M=";
+        "8.1" = "sha256-HcgIDyz7O3B4PGyNvf87Qw9ddxIyMy4Wt1HunsFDYto=";
+        "8.2" = "sha256-JKUAw3WDw99lFF/Rl4Pw2Wm3EpAQLR0awfyjpiEkOcg=";
+        "8.3" = "sha256-bXSJbLW3Oz4mgSRyzkbSzqP8YTdilKas+W4HtrX8YTk=";
       };
     };
     "i686-linux" = {
       system = "i386";
       hash = {
-        "8.1" = "sha256-mOiBQLXiPYMgHpcPTguEm0hffm+DZnv6MCbFbmRoEdE=";
-        "8.2" = "sha256-3xPG33DSxnQ9a9rbTov5ILi3hPWsruNZJS1NXttxfxQ=";
-        "8.3" = "sha256-4Nk+8ZIZ83/oeygDdhHI0mRRCvOEMmdWJoteDVkYuT4=";
+        "8.1" = "sha256-Eo4teWlzEPw3j/v/5FqFNGykXUZDmWGMLK6LNNkFBRQ=";
+        "8.2" = "sha256-hf4lmaJeSBT1f2fJ3qduen8i8Fat+U/u0LXecaca+J8=";
+        "8.3" = "sha256-p4+/B11BDJlvh+tFfn3rgE/Mp3vJ5QRV/hVZjn9wAUI=";
       };
     };
     "aarch64-linux" = {
       system = "arm64";
       hash = {
-        "8.1" = "sha256-5XUk2v65ceHqnfatLq9E1+J5QRgCDpKxR4ZFpCAsfdI=";
-        "8.2" = "sha256-Lr8wBAXYHXwPokwQMni5tsNncor9ZRjNwtL/5hodUq8=";
-        "8.3" = "sha256-KZLPFaa5NPksfhA99S8qV3FngJTDonhG+MMPkCwxUys=";
+        "8.1" = "sha256-LcOjqZ7WUfm7Woa0S4Zs0jEsErd9yfdSj448s3ym6PA=";
+        "8.2" = "sha256-ZT2QQqMyezZ0FFgBUECvvYxFWZ8UnDPrQB6zLx0m5hU=";
+        "8.3" = "sha256-q8aNtMq/olCms240b0gTyEsTqNYgJWJhdtmzIU0S0jw=";
       };
     };
     "aarch64-darwin" = {
       system = "arm64";
       hash = {
-        "8.1" = "sha256-G5wrH9M+b69BLKRI4n9FydGDV/q7Ch7u+Zvol2+ptwI=";
-        "8.2" = "sha256-zgcYT2oWCa2kc4wLx94nxRjg0sebjdGxuPJNbiBZ/Is=";
-        "8.3" = "sha256-l1zNH47lNpHj7qRgqoxJisn7dU2VzSGFt0v8/9VpYiI=";
+        "8.1" = "sha256-lzOmGL08eQlIYnHzy7wijPiFYC7bS8Rn/6zDMj6Zhj0=";
+        "8.2" = "sha256-PcUZ8elx/wojILwNvH8bF9DxUXBUiSkHzBeD2h2ypGM=";
+        "8.3" = "sha256-8z2zYYvoq8adeYm22TQ6iypjwfh/dKzCbXAkoNIBMpY=";
       };
     };
     "x86_64-darwin" = {
       system = "amd64";
       hash = {
-        "8.1" = "sha256-mmmzmR4yzwmXAl6YoSOKSivF7uixGZYaFQVIqWd0Ud4=";
-        "8.2" = "sha256-1jnw3BADm38C1Hi4lBs5B+kJl1karTljVHxHGEfZmtw=";
-        "8.3" = "sha256-7a2JyeLP4HwyaYsb7zAio2HrUPbBVpVEOUjWKCilkFY=";
+        "8.1" = "sha256-8X3oeEUWdiqurGSreCxe3lmexsBix4KzrWYNWxOfceU=";
+        "8.2" = "sha256-iwJs205ZiInw3Rs6TxBF3iw2/t/wxRMXHQpVnxRPPb4=";
+        "8.3" = "sha256-fshkfbS7wOmevw8ClqPKneIv+UtXYo4sWTatvS9gOnM=";
       };
     };
   };
diff --git a/pkgs/development/tools/misc/coreboot-toolchain/default.nix b/pkgs/development/tools/misc/coreboot-toolchain/default.nix
index 54f3f6e9b459e..51d80b6df9ae9 100644
--- a/pkgs/development/tools/misc/coreboot-toolchain/default.nix
+++ b/pkgs/development/tools/misc/coreboot-toolchain/default.nix
@@ -19,12 +19,12 @@ let
 
     stdenvNoCC.mkDerivation (finalAttrs: {
       pname = "coreboot-toolchain-${arch}";
-      version = "24.02";
+      version = "24.05";
 
       src = fetchgit {
         url = "https://review.coreboot.org/coreboot";
         rev = finalAttrs.version;
-        hash = "sha256-fHulr7w5I9LzBwGt/ZVaN7A3XEd7uQ2eJJifxII7rtk=";
+        hash = "sha256-jTfMFvl3sG3BIVVkpZ81BQ20Bs+2ESE6RMh0fW86rKE=";
         fetchSubmodules = false;
         leaveDotGit = true;
         postFetch = ''
@@ -63,7 +63,7 @@ let
         homepage = "https://www.coreboot.org";
         description = "coreboot toolchain for ${arch} targets";
         license = with licenses; [ bsd2 bsd3 gpl2 lgpl2Plus gpl3Plus ];
-        maintainers = with maintainers; [ felixsinger ];
+        maintainers = with maintainers; [ felixsinger jmbaur ];
         platforms = platforms.linux;
       };
     })
diff --git a/pkgs/development/tools/misc/coreboot-toolchain/stable.nix b/pkgs/development/tools/misc/coreboot-toolchain/stable.nix
index 6f5160e033b72..6656e78220869 100644
--- a/pkgs/development/tools/misc/coreboot-toolchain/stable.nix
+++ b/pkgs/development/tools/misc/coreboot-toolchain/stable.nix
@@ -28,17 +28,17 @@
     };
   }
   {
-    name = "binutils-2.41.tar.xz";
+    name = "binutils-2.42.tar.xz";
     archive = fetchurl {
-      sha256 = "0l3l003dynq11ppr2h8p0cfc7zyky8ilfwg60sbfan9lwa4mg6mf";
-      url = "mirror://gnu/binutils/binutils-2.41.tar.xz";
+      sha256 = "0058hngi16793aja9ih623mfr98dcarmf549nw38nxzwslgx9r7n";
+      url = "mirror://gnu/binutils/binutils-2.42.tar.xz";
     };
   }
   {
-    name = "R06_28_23.tar.gz";
+    name = "acpica-unix-20230628.tar.gz";
     archive = fetchurl {
-      sha256 = "0cadxihshyrjplrx01vna13r1m2f6lj1klw7mh8pg2m0gjdpjj12";
-      url = "https://github.com/acpica/acpica/archive/refs/tags/R06_28_23.tar.gz";
+      sha256 = "1kjwzyfrmw0fhawjvpqib3l5jxdlcpj3vv92sb7ls8ixbrs6m1w6";
+      url = "https://downloadmirror.intel.com/783534/acpica-unix-20230628.tar.gz";
     };
   }
   {
diff --git a/pkgs/development/tools/misc/ctags/wrapped.nix b/pkgs/development/tools/misc/ctags/wrapped.nix
index 2bc3aa5ecf4fa..b3734bbf06a4e 100644
--- a/pkgs/development/tools/misc/ctags/wrapped.nix
+++ b/pkgs/development/tools/misc/ctags/wrapped.nix
@@ -1,78 +1,90 @@
-{ pkgs, ctags }:
-
-with pkgs.lib;
-
-# define some ctags wrappers adding support for some not that common languages
-# customization:
-# a) add stuff here
-# b) override asLang, phpLang, ... using packageOverrides
-# c) use ctagsWrapped.override {args = [ your liste ];}
+{
+  lib,
+  ctags,
+  writeTextFile,
+  runtimeShell,
+  ctagsWrapped,
+  name ? "${ctags.name}-wrapped",
+  args ? lib.concatLists [
+    ctagsWrapped.defaultArgs
+    ctagsWrapped.phpLang
+    ctagsWrapped.jsLang
+    ctagsWrapped.nixLang
+    ctagsWrapped.asLang
+    ctagsWrapped.rubyLang
+  ],
+}:
 
-# install using -iA ctagsWrapped.ctagsWrapped
+# Define a ctags wrapper derivation adding support for some not-that-common languages customization.
+# Override this to provide different args.
 
-{
+writeTextFile {
+  inherit name;
+  executable = true;
+  destination = "/bin/${name}";
+  text = ''
+    #!${runtimeShell}
+    exec ${ctags}/bin/ctags ${lib.concatStringsSep " " (map lib.escapeShellArg args)} "$@"
+  '';
+  derivationArgs = {
+    # Inherit the metadata from the parent `ctags` derivation.
+    inherit (ctags) meta;
 
-  # the derivation. use language extensions specified by args
-  ctagsWrapped = makeOverridable ( {args, name} :  pkgs.writeScriptBin name ''
-  #!${pkgs.runtimeShell}
-  exec ${pkgs.ctags}/bin/ctags ${concatStringsSep " " (map escapeShellArg args)} "$@"
-  '') {
-    args = let x = pkgs.ctagsWrapped; in concatLists [
-      x.defaultArgs x.phpLang x.jsLang x.nixLang x.asLang x.rubyLang
-    ];
-    name = "${ctags.name}-wrapped";
-  };
+    passthru = {
+      # `ctagsWrapped` exists for backwards compatibility; ctagsWrapped used to be an attrset and
+      # now is a derivation, so keep supporting the use of `ctagsWrapped.ctagsWrapped`.
+      inherit ctagsWrapped;
 
-  ### language arguments
+      ### language arguments
 
-  # don't scan version control directories
-  defaultArgs = [
-    "--exclude=.svn"
-    "--exclude=.hg"
-    "--exclude=.git"
-    "--exclude=_darcs"
-    "--sort=yes"
-  ];
+      # don't scan version control directories
+      defaultArgs = [
+        "--exclude=.svn"
+        "--exclude=.hg"
+        "--exclude=.git"
+        "--exclude=_darcs"
+        "--sort=yes"
+      ];
 
-  # actionscript
-  asLang = [
-    "--langdef=ActionScript"
-    "--langmap=ActionScript:.as"
-    "--regex-ActionScript=/function[ \\t]+([A-Za-z0-9_]+)[ \\t]*\\(/\\1/f,function,functions/"
-    "--regex-ActionScript=/function[ \\t]+(set|get)[ \\t]+([A-Za-z0-9_]+)[ \\t]*\\(/\\2/p,property,properties/"
-    "--regex-ActionScript=/interface[ \\t]+[a-z0-9_.]*([A-Z][A-Za-z0-9_]+)/\\1/i,interface,interfaces/"
-    "--regex-ActionScript=/package[ \\t]+([^ \\t]*)/\\1/p/"
-    "--regex-ActionScript=/class[ \\t]+[a-z0-9_.]*([A-Z][A-Za-z0-9_]+)/\\1/c,class,classes/"
-  ];
+      # actionscript
+      asLang = [
+        "--langdef=ActionScript"
+        "--langmap=ActionScript:.as"
+        "--regex-ActionScript=/function[ \\t]+([A-Za-z0-9_]+)[ \\t]*\\(/\\1/f,function,functions/"
+        "--regex-ActionScript=/function[ \\t]+(set|get)[ \\t]+([A-Za-z0-9_]+)[ \\t]*\\(/\\2/p,property,properties/"
+        "--regex-ActionScript=/interface[ \\t]+[a-z0-9_.]*([A-Z][A-Za-z0-9_]+)/\\1/i,interface,interfaces/"
+        "--regex-ActionScript=/package[ \\t]+([^ \\t]*)/\\1/p/"
+        "--regex-ActionScript=/class[ \\t]+[a-z0-9_.]*([A-Z][A-Za-z0-9_]+)/\\1/c,class,classes/"
+      ];
 
-  # PHP
-  phpLang = [
-    "--langmap=PHP:.php"
-    "--regex-PHP=/abstract class ([^ ]*)/\\1/c/"
-    "--regex-PHP=/interface ([^ ]*)/\\1/i/"
-    "--regex-PHP=/function[ \\t]+([^ (]*)/\\1/f/"
-  ];
+      # PHP
+      phpLang = [
+        "--langmap=PHP:.php"
+        "--regex-PHP=/abstract class ([^ ]*)/\\1/c/"
+        "--regex-PHP=/interface ([^ ]*)/\\1/i/"
+        "--regex-PHP=/function[ \\t]+([^ (]*)/\\1/f/"
+      ];
 
-  # Javascript: also find unnamed functions and functions being passed within a dict.
-  # the dict properties is used to implement duck typing in frameworks
-  # var foo = function () { ... }
-  # {
-  # a : function () {}
-  # only recognize names up 100 characters. Else you'll be in trouble scanning compressed .js files.
-  jsLang = [
-    "--regex-JavaScript=/([^ \\t]{1,100})[ \\t]*:[ \\t]*function[ \\t]*\\(/\\1/f/"
-  ];
+      # Javascript: also find unnamed functions and functions being passed within a dict.
+      # the dict properties is used to implement duck typing in frameworks
+      # var foo = function () { ... }
+      # {
+      # a : function () {}
+      # only recognize names up 100 characters. Else you'll be in trouble scanning compressed .js files.
+      jsLang = [ "--regex-JavaScript=/([^ \\t]{1,100})[ \\t]*:[ \\t]*function[ \\t]*\\(/\\1/f/" ];
 
-  # find foo in "foo =", don't think we can do a lot better
-  nixLang = [
-    "--langdef=NIX"
-    "--langmap=NIX:.nix"
-    "--regex-NIX=/([^ \\t*]*)[ \\t]*=/\\1/f/"
-  ];
+      # find foo in "foo =", don't think we can do a lot better
+      nixLang = [
+        "--langdef=NIX"
+        "--langmap=NIX:.nix"
+        "--regex-NIX=/([^ \\t*]*)[ \\t]*=/\\1/f/"
+      ];
 
-  rubyLang = [
-    "--langmap=RUBY:.rb"
-    "--regex-RUBY=/class ([^ ]*)/\\1/c/"
-    "--regex-RUBY=/^[ ]*module[ ]*([^ ]*)/\\1/m/"
-  ];
+      rubyLang = [
+        "--langmap=RUBY:.rb"
+        "--regex-RUBY=/class ([^ ]*)/\\1/c/"
+        "--regex-RUBY=/^[ ]*module[ ]*([^ ]*)/\\1/m/"
+      ];
+    };
+  };
 }
diff --git a/pkgs/development/tools/misc/dejagnu/default.nix b/pkgs/development/tools/misc/dejagnu/default.nix
index 5c7720a2024b4..55581aedce607 100644
--- a/pkgs/development/tools/misc/dejagnu/default.nix
+++ b/pkgs/development/tools/misc/dejagnu/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, lib, stdenv, expect, makeWrapper }:
+{ fetchurl, lib, stdenv, expect, makeWrapper, updateAutotoolsGnuConfigScriptsHook }:
 
 stdenv.mkDerivation rec {
   pname = "dejagnu";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1qx2cv6qkxbiqg87jh217jb62hk3s7dmcs4cz1llm2wmsynfznl7";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook makeWrapper ];
   buildInputs = [ expect ];
 
   # dejagnu-1.6.3 can't successfully run tests in source tree:
diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix
index e607967a1205f..30f824c4e4768 100644
--- a/pkgs/development/tools/misc/gdb/default.nix
+++ b/pkgs/development/tools/misc/gdb/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, targetPackages
 
 # Build time
-, fetchurl, fetchpatch, pkg-config, perl, texinfo, setupDebugInfoDirs, buildPackages
+, fetchurl, pkg-config, perl, texinfo, setupDebugInfoDirs, buildPackages
 
 # Run time
 , ncurses, readline, gmp, mpfr, expat, libipt, zlib, zstd, xz, dejagnu, sourceHighlight, libiconv
diff --git a/pkgs/development/tools/misc/gnum4/default.nix b/pkgs/development/tools/misc/gnum4/default.nix
index 66de4ebf8b02e..5dea7f0595574 100644
--- a/pkgs/development/tools/misc/gnum4/default.nix
+++ b/pkgs/development/tools/misc/gnum4/default.nix
@@ -16,12 +16,17 @@ stdenv.mkDerivation rec {
 
   # https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-devel/m4/m4-1.4.19-r1.ebuild
   patches = lib.optional stdenv.hostPlatform.isLoongArch64 ./loong-fix-build.patch;
-  postPatch = if stdenv.hostPlatform.isLoongArch64 then ''
+  # this could be accomplished by updateAutotoolsGnuConfigScriptsHook, but that causes infinite recursion
+  # necessary for FreeBSD code path in configure
+  postPatch = ''
+    substituteInPlace ./build-aux/config.guess --replace-fail /usr/bin/uname uname
+  '' + lib.optionalString stdenv.hostPlatform.isLoongArch64 ''
     touch ./aclocal.m4 ./lib/config.hin ./configure ./doc/stamp-vti || die
     find . -name Makefile.in -exec touch {} + || die
-  '' else null;
+  '';
 
   strictDeps = true;
+
   enableParallelBuilding = true;
 
   doCheck = false;
diff --git a/pkgs/development/tools/misc/jcli/default.nix b/pkgs/development/tools/misc/jcli/default.nix
index f5d9d7a858998..2b7f14284f164 100644
--- a/pkgs/development/tools/misc/jcli/default.nix
+++ b/pkgs/development/tools/misc/jcli/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub, fetchpatch }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
 buildGoModule rec {
   pname = "jcli";
diff --git a/pkgs/development/tools/misc/libtool/libtool2.nix b/pkgs/development/tools/misc/libtool/libtool2.nix
index 50c064cadfd0e..df07a2f6a5bfe 100644
--- a/pkgs/development/tools/misc/libtool/libtool2.nix
+++ b/pkgs/development/tools/misc/libtool/libtool2.nix
@@ -1,5 +1,6 @@
-{ lib, stdenv, fetchurl, fetchpatch, m4
+{ lib, stdenv, fetchurl, m4
 , runtimeShell
+, updateAutotoolsGnuConfigScriptsHook
 , file
 }:
 
@@ -38,7 +39,7 @@ stdenv.mkDerivation rec {
   # As libtool is an early bootstrap dependency try hard not to
   # add autoconf and automake or help2man dependencies here. That way we can
   # avoid pulling in perl and get away with just an `m4` depend.
-  nativeBuildInputs = [ m4 file ];
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook m4 file ];
   propagatedBuildInputs = [ m4 file ];
 
   # Don't fixup "#! /bin/sh" in Libtool, otherwise it will use the
diff --git a/pkgs/development/tools/misc/lttng-ust/generic.nix b/pkgs/development/tools/misc/lttng-ust/generic.nix
index 89bc888828e20..24d022e4d8512 100644
--- a/pkgs/development/tools/misc/lttng-ust/generic.nix
+++ b/pkgs/development/tools/misc/lttng-ust/generic.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
     mainProgram = "lttng-gen-tp";
     homepage = "https://lttng.org/";
     license = with licenses; [ lgpl21Only gpl2Only mit ];
-    platforms = platforms.linux;
+    platforms = lib.intersectLists platforms.linux liburcu.meta.platforms;
     maintainers = [ maintainers.bjornfor ];
   };
 
diff --git a/pkgs/development/tools/misc/nix-bisect/default.nix b/pkgs/development/tools/misc/nix-bisect/default.nix
index 7c9f474ab531a..9927be16d36a0 100644
--- a/pkgs/development/tools/misc/nix-bisect/default.nix
+++ b/pkgs/development/tools/misc/nix-bisect/default.nix
@@ -1,5 +1,4 @@
 { lib
-, fetchpatch
 , fetchFromGitHub
 , python3
 }:
diff --git a/pkgs/development/tools/misc/pkg-config/default.nix b/pkgs/development/tools/misc/pkg-config/default.nix
index 663f3184b221b..599d282858091 100644
--- a/pkgs/development/tools/misc/pkg-config/default.nix
+++ b/pkgs/development/tools/misc/pkg-config/default.nix
@@ -19,9 +19,14 @@ stdenv.mkDerivation rec {
     ++ lib.optional stdenv.isCygwin ./2.36.3-not-win32.patch;
 
   # These three tests fail due to a (desired) behavior change from our ./requires-private.patch
-  postPatch = if vanilla then null else ''
-    rm -f check/check-requires-private check/check-gtk check/missing
-  '';
+  postPatch =
+    # this could be accomplished by updateAutotoolsGnuConfigScriptsHook, but that causes infinite recursion
+    # necessary for FreeBSD code path in configure
+    ''
+      substituteInPlace ./config.guess ./glib/config.guess --replace-fail /usr/bin/uname uname
+    '' + lib.optionalString (!vanilla) ''
+      rm -f check/check-requires-private check/check-gtk check/missing
+    '';
 
   buildInputs = [ libiconv ];
 
diff --git a/pkgs/development/tools/misc/sccache/default.nix b/pkgs/development/tools/misc/sccache/default.nix
index 5a99ef9b35ecc..a268e1749f0dc 100644
--- a/pkgs/development/tools/misc/sccache/default.nix
+++ b/pkgs/development/tools/misc/sccache/default.nix
@@ -8,17 +8,17 @@
 }:
 
 rustPlatform.buildRustPackage rec {
-  version = "0.8.0";
+  version = "0.8.1";
   pname = "sccache";
 
   src = fetchFromGitHub {
     owner = "mozilla";
     repo = "sccache";
     rev = "v${version}";
-    sha256 = "sha256-GKJKesvOtnZsLcYQjSsnUcolBIqqiYSX0VSZru416mk=";
+    sha256 = "sha256-sP6KTR50Ns4Yf/DGeSK7kB0dF0lraWbx948EOmsy+8c=";
   };
 
-  cargoHash = "sha256-GacjuBLlVawNRFutsjfywYHo34QKJHCPgi/QCPjcaAA=";
+  cargoHash = "sha256-6tiTgyhkPeH/oWcce1U2UsVngEfc4LKbB1zMt7meshA=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/development/tools/misc/terser/default.nix b/pkgs/development/tools/misc/terser/default.nix
index faffc0c0533ef..9fe2e386b7ce7 100644
--- a/pkgs/development/tools/misc/terser/default.nix
+++ b/pkgs/development/tools/misc/terser/default.nix
@@ -2,16 +2,16 @@
 
 buildNpmPackage rec {
   pname = "terser";
-  version = "5.30.4";
+  version = "5.31.0";
 
   src = fetchFromGitHub {
     owner = "terser";
     repo = "terser";
     rev = "v${version}";
-    hash = "sha256-d0zxwUvXa+Nm9p8QkhBhXl73XfJ+dxxt+GHkFtI8Zuk=";
+    hash = "sha256-rZYzeNBUaimetn/NRugsx6Czc0NxMzAKN58DRcae7pM=";
   };
 
-  npmDepsHash = "sha256-7j3hMDVktQxolCMM27SH7y5ZtexnwF//ccilVZ0w5l8=";
+  npmDepsHash = "sha256-SKL//hww6I3RDkqEUBrM0xDSuoPOCArvKKiBz68JtRo=";
 
   meta = with lib; {
     description = "JavaScript parser, mangler and compressor toolkit for ES6+";
diff --git a/pkgs/development/tools/misc/texinfo/common.nix b/pkgs/development/tools/misc/texinfo/common.nix
index 858884461ce26..11144d7581a5f 100644
--- a/pkgs/development/tools/misc/texinfo/common.nix
+++ b/pkgs/development/tools/misc/texinfo/common.nix
@@ -1,7 +1,7 @@
 { version, sha256, patches ? [] }:
 
-{ lib, stdenv, buildPackages, fetchurl, perl, xz, libintl, bash
-, gnulib, gawk, freebsd, libiconv
+{ lib, stdenv, buildPackages, fetchurl, perl, libintl, bash
+, updateAutotoolsGnuConfigScriptsHook, gnulib, gawk, freebsd, libiconv
 
 # we are a dependency of gcc, this simplifies bootstraping
 , interactive ? false, ncurses, procps
@@ -49,7 +49,8 @@ stdenv.mkDerivation {
   # A native compiler is needed to build tools needed at build time
   depsBuildBuild = [ buildPackages.stdenv.cc perl ];
 
-  buildInputs = [ xz.bin bash libintl ]
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
+  buildInputs = [ bash libintl ]
     ++ optionals stdenv.isSunOS [ libiconv gawk ]
     ++ optional interactive ncurses;
 
diff --git a/pkgs/development/tools/misc/texlab/default.nix b/pkgs/development/tools/misc/texlab/default.nix
index 5505273d8566e..ec0320d308080 100644
--- a/pkgs/development/tools/misc/texlab/default.nix
+++ b/pkgs/development/tools/misc/texlab/default.nix
@@ -15,16 +15,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "texlab";
-  version = "5.16.0";
+  version = "5.16.1";
 
   src = fetchFromGitHub {
     owner = "latex-lsp";
     repo = "texlab";
     rev = "refs/tags/v${version}";
-    hash = "sha256-hdco5A6qUUs/kTXdaZKo9WhMq9FcbJyDwUauK4IElIA=";
+    hash = "sha256-oXROZdnmkqb0nd2CdLJO/KYkoe+BriYlfMJXe1yKGTA=";
   };
 
-  cargoHash = "sha256-MlV6+D6fpuIkLGd2lcFmfIXPtJSr5wV9njlqFoANs8o=";
+  cargoHash = "sha256-4GWoTHSQD7DnAsiUWEF2TX+2r3XD3t/9+j/PGL7Haq8=";
 
   outputs = [ "out" ] ++ lib.optional (!isCross) "man";
 
@@ -41,7 +41,7 @@ rustPlatform.buildRustPackage rec {
   # generate the man page
   postInstall = lib.optionalString (!isCross) ''
     # TexLab builds man page separately in CI:
-    # https://github.com/latex-lsp/texlab/blob/v5.16.0/.github/workflows/publish.yml#L117-L121
+    # https://github.com/latex-lsp/texlab/blob/v5.16.1/.github/workflows/publish.yml#L117-L121
     help2man --no-info "$out/bin/texlab" > texlab.1
     installManPage texlab.1
   '';
diff --git a/pkgs/development/tools/misc/ttags/default.nix b/pkgs/development/tools/misc/ttags/default.nix
index c765d0c308d4c..b95bc53e2bea5 100644
--- a/pkgs/development/tools/misc/ttags/default.nix
+++ b/pkgs/development/tools/misc/ttags/default.nix
@@ -1,5 +1,5 @@
 { lib, fetchFromGitHub, rustPlatform, testers, ttags }:
-let version = "0.3.0";
+let version = "0.4.1";
 in rustPlatform.buildRustPackage {
   pname = "ttags";
   inherit version;
@@ -8,10 +8,10 @@ in rustPlatform.buildRustPackage {
     owner = "npezza93";
     repo = "ttags";
     rev = "${version}";
-    hash = "sha256-yqrCcA/+FyGPpX3hhULiwhMfrDWjq+rzT04M+o9ry5s=";
+    hash = "sha256-yKg0KUA/Wa7B/sU1uxgGQR0Wat/bFv3ascqnUCdWKw0=";
   };
 
-  cargoHash = "sha256-jW3xIlo2cN5aoEUp3FxN4pwGFvlg50i5RMNgQopGb88=";
+  cargoHash = "sha256-MZ9QRF5yNw+YtSEu+Qc/J3Ap7+nRDZT7aitunk+x38Y=";
 
   passthru.tests.version = testers.testVersion {
     package = ttags;
diff --git a/pkgs/development/tools/mongosh/package-lock.json b/pkgs/development/tools/mongosh/package-lock.json
index 3cfb31a284948..37d494d0c53ee 100644
--- a/pkgs/development/tools/mongosh/package-lock.json
+++ b/pkgs/development/tools/mongosh/package-lock.json
@@ -1,15 +1,15 @@
 {
   "name": "mongosh",
-  "version": "2.2.5",
+  "version": "2.2.6",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "mongosh",
-      "version": "2.2.5",
+      "version": "2.2.6",
       "license": "Apache-2.0",
       "dependencies": {
-        "@mongosh/cli-repl": "2.2.5"
+        "@mongosh/cli-repl": "2.2.6"
       },
       "bin": {
         "mongosh": "bin/mongosh.js"
@@ -107,535 +107,539 @@
       "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
     },
     "node_modules/@aws-sdk/client-cognito-identity": {
-      "version": "3.556.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.556.0.tgz",
-      "integrity": "sha512-HWd7PyXCuY1Z9KBaufbzpIvS2QeUAak5wfYwylW2DrEvt6A4tjWCBSbbSXNoawqCv/HitA39v953N/1PojJVVQ==",
+      "version": "3.577.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.577.0.tgz",
+      "integrity": "sha512-y1fHORHoufrzj2GcnY52g4ykemFpT0Hu9e9kYa6yR0weQ0WalcG7WcnMNasXMcjr9fDjNze7ZCTuWJSI+HwkTQ==",
       "dependencies": {
         "@aws-crypto/sha256-browser": "3.0.0",
         "@aws-crypto/sha256-js": "3.0.0",
-        "@aws-sdk/client-sts": "3.556.0",
-        "@aws-sdk/core": "3.556.0",
-        "@aws-sdk/credential-provider-node": "3.556.0",
-        "@aws-sdk/middleware-host-header": "3.535.0",
-        "@aws-sdk/middleware-logger": "3.535.0",
-        "@aws-sdk/middleware-recursion-detection": "3.535.0",
-        "@aws-sdk/middleware-user-agent": "3.540.0",
-        "@aws-sdk/region-config-resolver": "3.535.0",
-        "@aws-sdk/types": "3.535.0",
-        "@aws-sdk/util-endpoints": "3.540.0",
-        "@aws-sdk/util-user-agent-browser": "3.535.0",
-        "@aws-sdk/util-user-agent-node": "3.535.0",
-        "@smithy/config-resolver": "^2.2.0",
-        "@smithy/core": "^1.4.2",
-        "@smithy/fetch-http-handler": "^2.5.0",
-        "@smithy/hash-node": "^2.2.0",
-        "@smithy/invalid-dependency": "^2.2.0",
-        "@smithy/middleware-content-length": "^2.2.0",
-        "@smithy/middleware-endpoint": "^2.5.1",
-        "@smithy/middleware-retry": "^2.3.1",
-        "@smithy/middleware-serde": "^2.3.0",
-        "@smithy/middleware-stack": "^2.2.0",
-        "@smithy/node-config-provider": "^2.3.0",
-        "@smithy/node-http-handler": "^2.5.0",
-        "@smithy/protocol-http": "^3.3.0",
-        "@smithy/smithy-client": "^2.5.1",
-        "@smithy/types": "^2.12.0",
-        "@smithy/url-parser": "^2.2.0",
-        "@smithy/util-base64": "^2.3.0",
-        "@smithy/util-body-length-browser": "^2.2.0",
-        "@smithy/util-body-length-node": "^2.3.0",
-        "@smithy/util-defaults-mode-browser": "^2.2.1",
-        "@smithy/util-defaults-mode-node": "^2.3.1",
-        "@smithy/util-endpoints": "^1.2.0",
-        "@smithy/util-middleware": "^2.2.0",
-        "@smithy/util-retry": "^2.2.0",
-        "@smithy/util-utf8": "^2.3.0",
+        "@aws-sdk/client-sso-oidc": "3.577.0",
+        "@aws-sdk/client-sts": "3.577.0",
+        "@aws-sdk/core": "3.576.0",
+        "@aws-sdk/credential-provider-node": "3.577.0",
+        "@aws-sdk/middleware-host-header": "3.577.0",
+        "@aws-sdk/middleware-logger": "3.577.0",
+        "@aws-sdk/middleware-recursion-detection": "3.577.0",
+        "@aws-sdk/middleware-user-agent": "3.577.0",
+        "@aws-sdk/region-config-resolver": "3.577.0",
+        "@aws-sdk/types": "3.577.0",
+        "@aws-sdk/util-endpoints": "3.577.0",
+        "@aws-sdk/util-user-agent-browser": "3.577.0",
+        "@aws-sdk/util-user-agent-node": "3.577.0",
+        "@smithy/config-resolver": "^3.0.0",
+        "@smithy/core": "^2.0.0",
+        "@smithy/fetch-http-handler": "^3.0.0",
+        "@smithy/hash-node": "^3.0.0",
+        "@smithy/invalid-dependency": "^3.0.0",
+        "@smithy/middleware-content-length": "^3.0.0",
+        "@smithy/middleware-endpoint": "^3.0.0",
+        "@smithy/middleware-retry": "^3.0.0",
+        "@smithy/middleware-serde": "^3.0.0",
+        "@smithy/middleware-stack": "^3.0.0",
+        "@smithy/node-config-provider": "^3.0.0",
+        "@smithy/node-http-handler": "^3.0.0",
+        "@smithy/protocol-http": "^4.0.0",
+        "@smithy/smithy-client": "^3.0.0",
+        "@smithy/types": "^3.0.0",
+        "@smithy/url-parser": "^3.0.0",
+        "@smithy/util-base64": "^3.0.0",
+        "@smithy/util-body-length-browser": "^3.0.0",
+        "@smithy/util-body-length-node": "^3.0.0",
+        "@smithy/util-defaults-mode-browser": "^3.0.0",
+        "@smithy/util-defaults-mode-node": "^3.0.0",
+        "@smithy/util-endpoints": "^2.0.0",
+        "@smithy/util-middleware": "^3.0.0",
+        "@smithy/util-retry": "^3.0.0",
+        "@smithy/util-utf8": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@aws-sdk/client-sso": {
-      "version": "3.556.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sso/-/client-sso-3.556.0.tgz",
-      "integrity": "sha512-unXdWS7uvHqCcOyC1de+Fr8m3F2vMg2m24GPea0bg7rVGTYmiyn9mhUX11VCt+ozydrw+F50FQwL6OqoqPocmw==",
+      "version": "3.577.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sso/-/client-sso-3.577.0.tgz",
+      "integrity": "sha512-BwujdXrydlk6UEyPmewm5GqG4nkQ6OVyRhS/SyZP/6UKSFv2/sf391Cmz0hN0itUTH1rR4XeLln8XCOtarkrzg==",
       "dependencies": {
         "@aws-crypto/sha256-browser": "3.0.0",
         "@aws-crypto/sha256-js": "3.0.0",
-        "@aws-sdk/core": "3.556.0",
-        "@aws-sdk/middleware-host-header": "3.535.0",
-        "@aws-sdk/middleware-logger": "3.535.0",
-        "@aws-sdk/middleware-recursion-detection": "3.535.0",
-        "@aws-sdk/middleware-user-agent": "3.540.0",
-        "@aws-sdk/region-config-resolver": "3.535.0",
-        "@aws-sdk/types": "3.535.0",
-        "@aws-sdk/util-endpoints": "3.540.0",
-        "@aws-sdk/util-user-agent-browser": "3.535.0",
-        "@aws-sdk/util-user-agent-node": "3.535.0",
-        "@smithy/config-resolver": "^2.2.0",
-        "@smithy/core": "^1.4.2",
-        "@smithy/fetch-http-handler": "^2.5.0",
-        "@smithy/hash-node": "^2.2.0",
-        "@smithy/invalid-dependency": "^2.2.0",
-        "@smithy/middleware-content-length": "^2.2.0",
-        "@smithy/middleware-endpoint": "^2.5.1",
-        "@smithy/middleware-retry": "^2.3.1",
-        "@smithy/middleware-serde": "^2.3.0",
-        "@smithy/middleware-stack": "^2.2.0",
-        "@smithy/node-config-provider": "^2.3.0",
-        "@smithy/node-http-handler": "^2.5.0",
-        "@smithy/protocol-http": "^3.3.0",
-        "@smithy/smithy-client": "^2.5.1",
-        "@smithy/types": "^2.12.0",
-        "@smithy/url-parser": "^2.2.0",
-        "@smithy/util-base64": "^2.3.0",
-        "@smithy/util-body-length-browser": "^2.2.0",
-        "@smithy/util-body-length-node": "^2.3.0",
-        "@smithy/util-defaults-mode-browser": "^2.2.1",
-        "@smithy/util-defaults-mode-node": "^2.3.1",
-        "@smithy/util-endpoints": "^1.2.0",
-        "@smithy/util-middleware": "^2.2.0",
-        "@smithy/util-retry": "^2.2.0",
-        "@smithy/util-utf8": "^2.3.0",
+        "@aws-sdk/core": "3.576.0",
+        "@aws-sdk/middleware-host-header": "3.577.0",
+        "@aws-sdk/middleware-logger": "3.577.0",
+        "@aws-sdk/middleware-recursion-detection": "3.577.0",
+        "@aws-sdk/middleware-user-agent": "3.577.0",
+        "@aws-sdk/region-config-resolver": "3.577.0",
+        "@aws-sdk/types": "3.577.0",
+        "@aws-sdk/util-endpoints": "3.577.0",
+        "@aws-sdk/util-user-agent-browser": "3.577.0",
+        "@aws-sdk/util-user-agent-node": "3.577.0",
+        "@smithy/config-resolver": "^3.0.0",
+        "@smithy/core": "^2.0.0",
+        "@smithy/fetch-http-handler": "^3.0.0",
+        "@smithy/hash-node": "^3.0.0",
+        "@smithy/invalid-dependency": "^3.0.0",
+        "@smithy/middleware-content-length": "^3.0.0",
+        "@smithy/middleware-endpoint": "^3.0.0",
+        "@smithy/middleware-retry": "^3.0.0",
+        "@smithy/middleware-serde": "^3.0.0",
+        "@smithy/middleware-stack": "^3.0.0",
+        "@smithy/node-config-provider": "^3.0.0",
+        "@smithy/node-http-handler": "^3.0.0",
+        "@smithy/protocol-http": "^4.0.0",
+        "@smithy/smithy-client": "^3.0.0",
+        "@smithy/types": "^3.0.0",
+        "@smithy/url-parser": "^3.0.0",
+        "@smithy/util-base64": "^3.0.0",
+        "@smithy/util-body-length-browser": "^3.0.0",
+        "@smithy/util-body-length-node": "^3.0.0",
+        "@smithy/util-defaults-mode-browser": "^3.0.0",
+        "@smithy/util-defaults-mode-node": "^3.0.0",
+        "@smithy/util-endpoints": "^2.0.0",
+        "@smithy/util-middleware": "^3.0.0",
+        "@smithy/util-retry": "^3.0.0",
+        "@smithy/util-utf8": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@aws-sdk/client-sso-oidc": {
-      "version": "3.556.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.556.0.tgz",
-      "integrity": "sha512-AXKd2TB6nNrksu+OfmHl8uI07PdgzOo4o8AxoRO8SHlwoMAGvcT9optDGVSYoVfgOKTymCoE7h8/UoUfPc11wQ==",
+      "version": "3.577.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.577.0.tgz",
+      "integrity": "sha512-njmKSPDWueWWYVFpFcZ2P3fI6/pdQVDa0FgCyYZhOnJLgEHZIcBBg1AsnkVWacBuLopp9XVt2m+7hO6ugY1/1g==",
       "dependencies": {
         "@aws-crypto/sha256-browser": "3.0.0",
         "@aws-crypto/sha256-js": "3.0.0",
-        "@aws-sdk/client-sts": "3.556.0",
-        "@aws-sdk/core": "3.556.0",
-        "@aws-sdk/middleware-host-header": "3.535.0",
-        "@aws-sdk/middleware-logger": "3.535.0",
-        "@aws-sdk/middleware-recursion-detection": "3.535.0",
-        "@aws-sdk/middleware-user-agent": "3.540.0",
-        "@aws-sdk/region-config-resolver": "3.535.0",
-        "@aws-sdk/types": "3.535.0",
-        "@aws-sdk/util-endpoints": "3.540.0",
-        "@aws-sdk/util-user-agent-browser": "3.535.0",
-        "@aws-sdk/util-user-agent-node": "3.535.0",
-        "@smithy/config-resolver": "^2.2.0",
-        "@smithy/core": "^1.4.2",
-        "@smithy/fetch-http-handler": "^2.5.0",
-        "@smithy/hash-node": "^2.2.0",
-        "@smithy/invalid-dependency": "^2.2.0",
-        "@smithy/middleware-content-length": "^2.2.0",
-        "@smithy/middleware-endpoint": "^2.5.1",
-        "@smithy/middleware-retry": "^2.3.1",
-        "@smithy/middleware-serde": "^2.3.0",
-        "@smithy/middleware-stack": "^2.2.0",
-        "@smithy/node-config-provider": "^2.3.0",
-        "@smithy/node-http-handler": "^2.5.0",
-        "@smithy/protocol-http": "^3.3.0",
-        "@smithy/smithy-client": "^2.5.1",
-        "@smithy/types": "^2.12.0",
-        "@smithy/url-parser": "^2.2.0",
-        "@smithy/util-base64": "^2.3.0",
-        "@smithy/util-body-length-browser": "^2.2.0",
-        "@smithy/util-body-length-node": "^2.3.0",
-        "@smithy/util-defaults-mode-browser": "^2.2.1",
-        "@smithy/util-defaults-mode-node": "^2.3.1",
-        "@smithy/util-endpoints": "^1.2.0",
-        "@smithy/util-middleware": "^2.2.0",
-        "@smithy/util-retry": "^2.2.0",
-        "@smithy/util-utf8": "^2.3.0",
+        "@aws-sdk/client-sts": "3.577.0",
+        "@aws-sdk/core": "3.576.0",
+        "@aws-sdk/credential-provider-node": "3.577.0",
+        "@aws-sdk/middleware-host-header": "3.577.0",
+        "@aws-sdk/middleware-logger": "3.577.0",
+        "@aws-sdk/middleware-recursion-detection": "3.577.0",
+        "@aws-sdk/middleware-user-agent": "3.577.0",
+        "@aws-sdk/region-config-resolver": "3.577.0",
+        "@aws-sdk/types": "3.577.0",
+        "@aws-sdk/util-endpoints": "3.577.0",
+        "@aws-sdk/util-user-agent-browser": "3.577.0",
+        "@aws-sdk/util-user-agent-node": "3.577.0",
+        "@smithy/config-resolver": "^3.0.0",
+        "@smithy/core": "^2.0.0",
+        "@smithy/fetch-http-handler": "^3.0.0",
+        "@smithy/hash-node": "^3.0.0",
+        "@smithy/invalid-dependency": "^3.0.0",
+        "@smithy/middleware-content-length": "^3.0.0",
+        "@smithy/middleware-endpoint": "^3.0.0",
+        "@smithy/middleware-retry": "^3.0.0",
+        "@smithy/middleware-serde": "^3.0.0",
+        "@smithy/middleware-stack": "^3.0.0",
+        "@smithy/node-config-provider": "^3.0.0",
+        "@smithy/node-http-handler": "^3.0.0",
+        "@smithy/protocol-http": "^4.0.0",
+        "@smithy/smithy-client": "^3.0.0",
+        "@smithy/types": "^3.0.0",
+        "@smithy/url-parser": "^3.0.0",
+        "@smithy/util-base64": "^3.0.0",
+        "@smithy/util-body-length-browser": "^3.0.0",
+        "@smithy/util-body-length-node": "^3.0.0",
+        "@smithy/util-defaults-mode-browser": "^3.0.0",
+        "@smithy/util-defaults-mode-node": "^3.0.0",
+        "@smithy/util-endpoints": "^2.0.0",
+        "@smithy/util-middleware": "^3.0.0",
+        "@smithy/util-retry": "^3.0.0",
+        "@smithy/util-utf8": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
-      },
-      "peerDependencies": {
-        "@aws-sdk/credential-provider-node": "^3.556.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@aws-sdk/client-sts": {
-      "version": "3.556.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sts/-/client-sts-3.556.0.tgz",
-      "integrity": "sha512-TsK3js7Suh9xEmC886aY+bv0KdLLYtzrcmVt6sJ/W6EnDXYQhBuKYFhp03NrN2+vSvMGpqJwR62DyfKe1G0QzQ==",
+      "version": "3.577.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sts/-/client-sts-3.577.0.tgz",
+      "integrity": "sha512-509Kklimva1XVlhGbpTpeX3kOP6ORpm44twJxDHpa9TURbmoaxj7veWlnLCbDorxDTrbsDghvYZshvcLsojVpg==",
       "dependencies": {
         "@aws-crypto/sha256-browser": "3.0.0",
         "@aws-crypto/sha256-js": "3.0.0",
-        "@aws-sdk/core": "3.556.0",
-        "@aws-sdk/middleware-host-header": "3.535.0",
-        "@aws-sdk/middleware-logger": "3.535.0",
-        "@aws-sdk/middleware-recursion-detection": "3.535.0",
-        "@aws-sdk/middleware-user-agent": "3.540.0",
-        "@aws-sdk/region-config-resolver": "3.535.0",
-        "@aws-sdk/types": "3.535.0",
-        "@aws-sdk/util-endpoints": "3.540.0",
-        "@aws-sdk/util-user-agent-browser": "3.535.0",
-        "@aws-sdk/util-user-agent-node": "3.535.0",
-        "@smithy/config-resolver": "^2.2.0",
-        "@smithy/core": "^1.4.2",
-        "@smithy/fetch-http-handler": "^2.5.0",
-        "@smithy/hash-node": "^2.2.0",
-        "@smithy/invalid-dependency": "^2.2.0",
-        "@smithy/middleware-content-length": "^2.2.0",
-        "@smithy/middleware-endpoint": "^2.5.1",
-        "@smithy/middleware-retry": "^2.3.1",
-        "@smithy/middleware-serde": "^2.3.0",
-        "@smithy/middleware-stack": "^2.2.0",
-        "@smithy/node-config-provider": "^2.3.0",
-        "@smithy/node-http-handler": "^2.5.0",
-        "@smithy/protocol-http": "^3.3.0",
-        "@smithy/smithy-client": "^2.5.1",
-        "@smithy/types": "^2.12.0",
-        "@smithy/url-parser": "^2.2.0",
-        "@smithy/util-base64": "^2.3.0",
-        "@smithy/util-body-length-browser": "^2.2.0",
-        "@smithy/util-body-length-node": "^2.3.0",
-        "@smithy/util-defaults-mode-browser": "^2.2.1",
-        "@smithy/util-defaults-mode-node": "^2.3.1",
-        "@smithy/util-endpoints": "^1.2.0",
-        "@smithy/util-middleware": "^2.2.0",
-        "@smithy/util-retry": "^2.2.0",
-        "@smithy/util-utf8": "^2.3.0",
+        "@aws-sdk/client-sso-oidc": "3.577.0",
+        "@aws-sdk/core": "3.576.0",
+        "@aws-sdk/credential-provider-node": "3.577.0",
+        "@aws-sdk/middleware-host-header": "3.577.0",
+        "@aws-sdk/middleware-logger": "3.577.0",
+        "@aws-sdk/middleware-recursion-detection": "3.577.0",
+        "@aws-sdk/middleware-user-agent": "3.577.0",
+        "@aws-sdk/region-config-resolver": "3.577.0",
+        "@aws-sdk/types": "3.577.0",
+        "@aws-sdk/util-endpoints": "3.577.0",
+        "@aws-sdk/util-user-agent-browser": "3.577.0",
+        "@aws-sdk/util-user-agent-node": "3.577.0",
+        "@smithy/config-resolver": "^3.0.0",
+        "@smithy/core": "^2.0.0",
+        "@smithy/fetch-http-handler": "^3.0.0",
+        "@smithy/hash-node": "^3.0.0",
+        "@smithy/invalid-dependency": "^3.0.0",
+        "@smithy/middleware-content-length": "^3.0.0",
+        "@smithy/middleware-endpoint": "^3.0.0",
+        "@smithy/middleware-retry": "^3.0.0",
+        "@smithy/middleware-serde": "^3.0.0",
+        "@smithy/middleware-stack": "^3.0.0",
+        "@smithy/node-config-provider": "^3.0.0",
+        "@smithy/node-http-handler": "^3.0.0",
+        "@smithy/protocol-http": "^4.0.0",
+        "@smithy/smithy-client": "^3.0.0",
+        "@smithy/types": "^3.0.0",
+        "@smithy/url-parser": "^3.0.0",
+        "@smithy/util-base64": "^3.0.0",
+        "@smithy/util-body-length-browser": "^3.0.0",
+        "@smithy/util-body-length-node": "^3.0.0",
+        "@smithy/util-defaults-mode-browser": "^3.0.0",
+        "@smithy/util-defaults-mode-node": "^3.0.0",
+        "@smithy/util-endpoints": "^2.0.0",
+        "@smithy/util-middleware": "^3.0.0",
+        "@smithy/util-retry": "^3.0.0",
+        "@smithy/util-utf8": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
-      },
-      "peerDependencies": {
-        "@aws-sdk/credential-provider-node": "^3.556.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@aws-sdk/core": {
-      "version": "3.556.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/core/-/core-3.556.0.tgz",
-      "integrity": "sha512-vJaSaHw2kPQlo11j/Rzuz0gk1tEaKdz+2ser0f0qZ5vwFlANjt08m/frU17ctnVKC1s58bxpctO/1P894fHLrA==",
-      "dependencies": {
-        "@smithy/core": "^1.4.2",
-        "@smithy/protocol-http": "^3.3.0",
-        "@smithy/signature-v4": "^2.3.0",
-        "@smithy/smithy-client": "^2.5.1",
-        "@smithy/types": "^2.12.0",
+      "version": "3.576.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/core/-/core-3.576.0.tgz",
+      "integrity": "sha512-KDvDlbeipSTIf+ffKtTg1m419TK7s9mZSWC8bvuZ9qx6/sjQFOXIKOVqyuli6DnfxGbvRcwoRuY99OcCH1N/0w==",
+      "dependencies": {
+        "@smithy/core": "^2.0.0",
+        "@smithy/protocol-http": "^4.0.0",
+        "@smithy/signature-v4": "^3.0.0",
+        "@smithy/smithy-client": "^3.0.0",
+        "@smithy/types": "^3.0.0",
         "fast-xml-parser": "4.2.5",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@aws-sdk/credential-provider-cognito-identity": {
-      "version": "3.556.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.556.0.tgz",
-      "integrity": "sha512-PKYBjfpLHJZhrIv0M9eJ47yeDaV8NUMVe4vsiHG5tvlvwWGP84k9GJlr51U/s84OzIyXzVpiqP8PU5yKovUFIg==",
-      "dependencies": {
-        "@aws-sdk/client-cognito-identity": "3.556.0",
-        "@aws-sdk/types": "3.535.0",
-        "@smithy/property-provider": "^2.2.0",
-        "@smithy/types": "^2.12.0",
+      "version": "3.577.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.577.0.tgz",
+      "integrity": "sha512-y5yo4RKQSIQEOGLMLziLh0MZ+CxLs2QmTRjh8PkL8ovy12FPyou9Ptr7hIDD5SnCsiItJful5qbmj9e2QSmozw==",
+      "dependencies": {
+        "@aws-sdk/client-cognito-identity": "3.577.0",
+        "@aws-sdk/types": "3.577.0",
+        "@smithy/property-provider": "^3.0.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@aws-sdk/credential-provider-env": {
-      "version": "3.535.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.535.0.tgz",
-      "integrity": "sha512-XppwO8c0GCGSAvdzyJOhbtktSEaShg14VJKg8mpMa1XcgqzmcqqHQjtDWbx5rZheY1VdpXZhpEzJkB6LpQejpA==",
+      "version": "3.577.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.577.0.tgz",
+      "integrity": "sha512-Jxu255j0gToMGEiqufP8ZtKI8HW90lOLjwJ3LrdlD/NLsAY0tOQf1fWc53u28hWmmNGMxmCrL2p66IOgMDhDUw==",
       "dependencies": {
-        "@aws-sdk/types": "3.535.0",
-        "@smithy/property-provider": "^2.2.0",
-        "@smithy/types": "^2.12.0",
+        "@aws-sdk/types": "3.577.0",
+        "@smithy/property-provider": "^3.0.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@aws-sdk/credential-provider-http": {
-      "version": "3.552.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.552.0.tgz",
-      "integrity": "sha512-vsmu7Cz1i45pFEqzVb4JcFmAmVnWFNLsGheZc8SCptlqCO5voETrZZILHYIl4cjKkSDk3pblBOf0PhyjqWW6WQ==",
-      "dependencies": {
-        "@aws-sdk/types": "3.535.0",
-        "@smithy/fetch-http-handler": "^2.5.0",
-        "@smithy/node-http-handler": "^2.5.0",
-        "@smithy/property-provider": "^2.2.0",
-        "@smithy/protocol-http": "^3.3.0",
-        "@smithy/smithy-client": "^2.5.1",
-        "@smithy/types": "^2.12.0",
-        "@smithy/util-stream": "^2.2.0",
+      "version": "3.577.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.577.0.tgz",
+      "integrity": "sha512-n++yhCp67b9+ZRGEdY1jhamB5E/O+QsIDOPSuRmdaSGMCOd82oUEKPgIVEU1bkqxDsBxgiEWuvtfhK6sNiDS0A==",
+      "dependencies": {
+        "@aws-sdk/types": "3.577.0",
+        "@smithy/fetch-http-handler": "^3.0.0",
+        "@smithy/node-http-handler": "^3.0.0",
+        "@smithy/property-provider": "^3.0.0",
+        "@smithy/protocol-http": "^4.0.0",
+        "@smithy/smithy-client": "^3.0.0",
+        "@smithy/types": "^3.0.0",
+        "@smithy/util-stream": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@aws-sdk/credential-provider-ini": {
-      "version": "3.556.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.556.0.tgz",
-      "integrity": "sha512-0Nz4ErOlXhe3muxWYMbPwRMgfKmVbBp36BAE2uv/z5wTbfdBkcgUwaflEvlKCLUTdHzuZsQk+BFS/gVyaUeOuA==",
-      "dependencies": {
-        "@aws-sdk/client-sts": "3.556.0",
-        "@aws-sdk/credential-provider-env": "3.535.0",
-        "@aws-sdk/credential-provider-process": "3.535.0",
-        "@aws-sdk/credential-provider-sso": "3.556.0",
-        "@aws-sdk/credential-provider-web-identity": "3.556.0",
-        "@aws-sdk/types": "3.535.0",
-        "@smithy/credential-provider-imds": "^2.3.0",
-        "@smithy/property-provider": "^2.2.0",
-        "@smithy/shared-ini-file-loader": "^2.4.0",
-        "@smithy/types": "^2.12.0",
+      "version": "3.577.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.577.0.tgz",
+      "integrity": "sha512-q7lHPtv6BjRvChUE3m0tIaEZKxPTaZ1B3lKxGYsFl3VLAu5N8yGCUKwuA1izf4ucT+LyKscVGqK6VDZx1ev3nw==",
+      "dependencies": {
+        "@aws-sdk/credential-provider-env": "3.577.0",
+        "@aws-sdk/credential-provider-process": "3.577.0",
+        "@aws-sdk/credential-provider-sso": "3.577.0",
+        "@aws-sdk/credential-provider-web-identity": "3.577.0",
+        "@aws-sdk/types": "3.577.0",
+        "@smithy/credential-provider-imds": "^3.0.0",
+        "@smithy/property-provider": "^3.0.0",
+        "@smithy/shared-ini-file-loader": "^3.0.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
+      },
+      "peerDependencies": {
+        "@aws-sdk/client-sts": "^3.577.0"
       }
     },
     "node_modules/@aws-sdk/credential-provider-node": {
-      "version": "3.556.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.556.0.tgz",
-      "integrity": "sha512-s1xVtKjyGc60O8qcNIzS1X3H+pWEwEfZ7TgNznVDNyuXvLrlNWiAcigPWGl2aAkc8tGcsSG0Qpyw2KYC939LFg==",
-      "dependencies": {
-        "@aws-sdk/credential-provider-env": "3.535.0",
-        "@aws-sdk/credential-provider-http": "3.552.0",
-        "@aws-sdk/credential-provider-ini": "3.556.0",
-        "@aws-sdk/credential-provider-process": "3.535.0",
-        "@aws-sdk/credential-provider-sso": "3.556.0",
-        "@aws-sdk/credential-provider-web-identity": "3.556.0",
-        "@aws-sdk/types": "3.535.0",
-        "@smithy/credential-provider-imds": "^2.3.0",
-        "@smithy/property-provider": "^2.2.0",
-        "@smithy/shared-ini-file-loader": "^2.4.0",
-        "@smithy/types": "^2.12.0",
+      "version": "3.577.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.577.0.tgz",
+      "integrity": "sha512-epZ1HOMsrXBNczc0HQpv0VMjqAEpc09DUA7Rg3gUJfn8umhML7A7bXnUyqPA+S54q397UYg1leQKdSn23OiwQQ==",
+      "dependencies": {
+        "@aws-sdk/credential-provider-env": "3.577.0",
+        "@aws-sdk/credential-provider-http": "3.577.0",
+        "@aws-sdk/credential-provider-ini": "3.577.0",
+        "@aws-sdk/credential-provider-process": "3.577.0",
+        "@aws-sdk/credential-provider-sso": "3.577.0",
+        "@aws-sdk/credential-provider-web-identity": "3.577.0",
+        "@aws-sdk/types": "3.577.0",
+        "@smithy/credential-provider-imds": "^3.0.0",
+        "@smithy/property-provider": "^3.0.0",
+        "@smithy/shared-ini-file-loader": "^3.0.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@aws-sdk/credential-provider-process": {
-      "version": "3.535.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.535.0.tgz",
-      "integrity": "sha512-9O1OaprGCnlb/kYl8RwmH7Mlg8JREZctB8r9sa1KhSsWFq/SWO0AuJTyowxD7zL5PkeS4eTvzFFHWCa3OO5epA==",
-      "dependencies": {
-        "@aws-sdk/types": "3.535.0",
-        "@smithy/property-provider": "^2.2.0",
-        "@smithy/shared-ini-file-loader": "^2.4.0",
-        "@smithy/types": "^2.12.0",
+      "version": "3.577.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.577.0.tgz",
+      "integrity": "sha512-Gin6BWtOiXxIgITrJ3Nwc+Y2P1uVT6huYR4EcbA/DJUPWyO0n9y5UFLewPvVbLkRn15JeEqErBLUrHclkiOKtw==",
+      "dependencies": {
+        "@aws-sdk/types": "3.577.0",
+        "@smithy/property-provider": "^3.0.0",
+        "@smithy/shared-ini-file-loader": "^3.0.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@aws-sdk/credential-provider-sso": {
-      "version": "3.556.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.556.0.tgz",
-      "integrity": "sha512-ETuBgcnpfxqadEAqhQFWpKoV1C/NAgvs5CbBc5EJbelJ8f4prTdErIHjrRtVT8c02MXj92QwczsiNYd5IoOqyw==",
-      "dependencies": {
-        "@aws-sdk/client-sso": "3.556.0",
-        "@aws-sdk/token-providers": "3.556.0",
-        "@aws-sdk/types": "3.535.0",
-        "@smithy/property-provider": "^2.2.0",
-        "@smithy/shared-ini-file-loader": "^2.4.0",
-        "@smithy/types": "^2.12.0",
+      "version": "3.577.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.577.0.tgz",
+      "integrity": "sha512-iVm5SQvS7EgZTJsRaqUOmDQpBQPPPat42SCbWFvFQOLrl8qewq8OP94hFS5w2mP62zngeYzqhJnDel79HXbxew==",
+      "dependencies": {
+        "@aws-sdk/client-sso": "3.577.0",
+        "@aws-sdk/token-providers": "3.577.0",
+        "@aws-sdk/types": "3.577.0",
+        "@smithy/property-provider": "^3.0.0",
+        "@smithy/shared-ini-file-loader": "^3.0.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@aws-sdk/credential-provider-web-identity": {
-      "version": "3.556.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.556.0.tgz",
-      "integrity": "sha512-R/YAL8Uh8i+dzVjzMnbcWLIGeeRi2mioHVGnVF+minmaIkCiQMZg2HPrdlKm49El+RljT28Nl5YHRuiqzEIwMA==",
-      "dependencies": {
-        "@aws-sdk/client-sts": "3.556.0",
-        "@aws-sdk/types": "3.535.0",
-        "@smithy/property-provider": "^2.2.0",
-        "@smithy/types": "^2.12.0",
+      "version": "3.577.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.577.0.tgz",
+      "integrity": "sha512-ZGHGNRaCtJJmszb9UTnC7izNCtRUttdPlLdMkh41KPS32vfdrBDHs1JrpbZijItRj1xKuOXsiYSXLAaHGcLh8Q==",
+      "dependencies": {
+        "@aws-sdk/types": "3.577.0",
+        "@smithy/property-provider": "^3.0.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
+      },
+      "peerDependencies": {
+        "@aws-sdk/client-sts": "^3.577.0"
       }
     },
     "node_modules/@aws-sdk/credential-providers": {
-      "version": "3.556.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-providers/-/credential-providers-3.556.0.tgz",
-      "integrity": "sha512-CnWP/AEF+sPeO8fabrHy4Oeo52xDFuDQMpjKcI7oJzGF6Ne2ZPTq6wTJQPLeXeg4OzLcK0tT3G4z/27MLdsLsw==",
-      "dependencies": {
-        "@aws-sdk/client-cognito-identity": "3.556.0",
-        "@aws-sdk/client-sso": "3.556.0",
-        "@aws-sdk/client-sts": "3.556.0",
-        "@aws-sdk/credential-provider-cognito-identity": "3.556.0",
-        "@aws-sdk/credential-provider-env": "3.535.0",
-        "@aws-sdk/credential-provider-http": "3.552.0",
-        "@aws-sdk/credential-provider-ini": "3.556.0",
-        "@aws-sdk/credential-provider-node": "3.556.0",
-        "@aws-sdk/credential-provider-process": "3.535.0",
-        "@aws-sdk/credential-provider-sso": "3.556.0",
-        "@aws-sdk/credential-provider-web-identity": "3.556.0",
-        "@aws-sdk/types": "3.535.0",
-        "@smithy/credential-provider-imds": "^2.3.0",
-        "@smithy/property-provider": "^2.2.0",
-        "@smithy/types": "^2.12.0",
+      "version": "3.577.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-providers/-/credential-providers-3.577.0.tgz",
+      "integrity": "sha512-/fzdyyAetJxTPH8f2bh1UkcN48dScLb6LjBj9+wX2BHyKSZUal7+TqPTyme4f3pj1I1EeKhDIYKldR8YyMPIAg==",
+      "dependencies": {
+        "@aws-sdk/client-cognito-identity": "3.577.0",
+        "@aws-sdk/client-sso": "3.577.0",
+        "@aws-sdk/client-sts": "3.577.0",
+        "@aws-sdk/credential-provider-cognito-identity": "3.577.0",
+        "@aws-sdk/credential-provider-env": "3.577.0",
+        "@aws-sdk/credential-provider-http": "3.577.0",
+        "@aws-sdk/credential-provider-ini": "3.577.0",
+        "@aws-sdk/credential-provider-node": "3.577.0",
+        "@aws-sdk/credential-provider-process": "3.577.0",
+        "@aws-sdk/credential-provider-sso": "3.577.0",
+        "@aws-sdk/credential-provider-web-identity": "3.577.0",
+        "@aws-sdk/types": "3.577.0",
+        "@smithy/credential-provider-imds": "^3.0.0",
+        "@smithy/property-provider": "^3.0.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@aws-sdk/middleware-host-header": {
-      "version": "3.535.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.535.0.tgz",
-      "integrity": "sha512-0h6TWjBWtDaYwHMQJI9ulafeS4lLaw1vIxRjbpH0svFRt6Eve+Sy8NlVhECfTU2hNz/fLubvrUxsXoThaLBIew==",
+      "version": "3.577.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.577.0.tgz",
+      "integrity": "sha512-9ca5MJz455CODIVXs0/sWmJm7t3QO4EUa1zf8pE8grLpzf0J94bz/skDWm37Pli13T3WaAQBHCTiH2gUVfCsWg==",
       "dependencies": {
-        "@aws-sdk/types": "3.535.0",
-        "@smithy/protocol-http": "^3.3.0",
-        "@smithy/types": "^2.12.0",
+        "@aws-sdk/types": "3.577.0",
+        "@smithy/protocol-http": "^4.0.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@aws-sdk/middleware-logger": {
-      "version": "3.535.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-logger/-/middleware-logger-3.535.0.tgz",
-      "integrity": "sha512-huNHpONOrEDrdRTvSQr1cJiRMNf0S52NDXtaPzdxiubTkP+vni2MohmZANMOai/qT0olmEVX01LhZ0ZAOgmg6A==",
+      "version": "3.577.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-logger/-/middleware-logger-3.577.0.tgz",
+      "integrity": "sha512-aPFGpGjTZcJYk+24bg7jT4XdIp42mFXSuPt49lw5KygefLyJM/sB0bKKqPYYivW0rcuZ9brQ58eZUNthrzYAvg==",
       "dependencies": {
-        "@aws-sdk/types": "3.535.0",
-        "@smithy/types": "^2.12.0",
+        "@aws-sdk/types": "3.577.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@aws-sdk/middleware-recursion-detection": {
-      "version": "3.535.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.535.0.tgz",
-      "integrity": "sha512-am2qgGs+gwqmR4wHLWpzlZ8PWhm4ktj5bYSgDrsOfjhdBlWNxvPoID9/pDAz5RWL48+oH7I6SQzMqxXsFDikrw==",
+      "version": "3.577.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.577.0.tgz",
+      "integrity": "sha512-pn3ZVEd2iobKJlR3H+bDilHjgRnNrQ6HMmK9ZzZw89Ckn3Dcbv48xOv4RJvu0aU8SDLl/SNCxppKjeLDTPGBNA==",
       "dependencies": {
-        "@aws-sdk/types": "3.535.0",
-        "@smithy/protocol-http": "^3.3.0",
-        "@smithy/types": "^2.12.0",
+        "@aws-sdk/types": "3.577.0",
+        "@smithy/protocol-http": "^4.0.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@aws-sdk/middleware-user-agent": {
-      "version": "3.540.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.540.0.tgz",
-      "integrity": "sha512-8Rd6wPeXDnOYzWj1XCmOKcx/Q87L0K1/EHqOBocGjLVbN3gmRxBvpmR1pRTjf7IsWfnnzN5btqtcAkfDPYQUMQ==",
-      "dependencies": {
-        "@aws-sdk/types": "3.535.0",
-        "@aws-sdk/util-endpoints": "3.540.0",
-        "@smithy/protocol-http": "^3.3.0",
-        "@smithy/types": "^2.12.0",
+      "version": "3.577.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.577.0.tgz",
+      "integrity": "sha512-P55HAXgwmiHHpFx5JEPvOnAbfhN7v6sWv9PBQs+z2tC7QiBcPS0cdJR6PfV7J1n4VPK52/OnrK3l9VxdQ7Ms0g==",
+      "dependencies": {
+        "@aws-sdk/types": "3.577.0",
+        "@aws-sdk/util-endpoints": "3.577.0",
+        "@smithy/protocol-http": "^4.0.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@aws-sdk/region-config-resolver": {
-      "version": "3.535.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.535.0.tgz",
-      "integrity": "sha512-IXOznDiaItBjsQy4Fil0kzX/J3HxIOknEphqHbOfUf+LpA5ugcsxuQQONrbEQusCBnfJyymrldBvBhFmtlU9Wg==",
-      "dependencies": {
-        "@aws-sdk/types": "3.535.0",
-        "@smithy/node-config-provider": "^2.3.0",
-        "@smithy/types": "^2.12.0",
-        "@smithy/util-config-provider": "^2.3.0",
-        "@smithy/util-middleware": "^2.2.0",
+      "version": "3.577.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.577.0.tgz",
+      "integrity": "sha512-4ChCFACNwzqx/xjg3zgFcW8Ali6R9C95cFECKWT/7CUM1D0MGvkclSH2cLarmHCmJgU6onKkJroFtWp0kHhgyg==",
+      "dependencies": {
+        "@aws-sdk/types": "3.577.0",
+        "@smithy/node-config-provider": "^3.0.0",
+        "@smithy/types": "^3.0.0",
+        "@smithy/util-config-provider": "^3.0.0",
+        "@smithy/util-middleware": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@aws-sdk/token-providers": {
-      "version": "3.556.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/token-providers/-/token-providers-3.556.0.tgz",
-      "integrity": "sha512-tvIiugNF0/+2wfuImMrpKjXMx4nCnFWQjQvouObny+wrif/PGqqQYrybwxPJDvzbd965bu1I+QuSv85/ug7xsg==",
-      "dependencies": {
-        "@aws-sdk/client-sso-oidc": "3.556.0",
-        "@aws-sdk/types": "3.535.0",
-        "@smithy/property-provider": "^2.2.0",
-        "@smithy/shared-ini-file-loader": "^2.4.0",
-        "@smithy/types": "^2.12.0",
+      "version": "3.577.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/token-providers/-/token-providers-3.577.0.tgz",
+      "integrity": "sha512-0CkIZpcC3DNQJQ1hDjm2bdSy/Xjs7Ny5YvSsacasGOkNfk+FdkiQy6N67bZX3Zbc9KIx+Nz4bu3iDeNSNplnnQ==",
+      "dependencies": {
+        "@aws-sdk/types": "3.577.0",
+        "@smithy/property-provider": "^3.0.0",
+        "@smithy/shared-ini-file-loader": "^3.0.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
+      },
+      "peerDependencies": {
+        "@aws-sdk/client-sso-oidc": "^3.577.0"
       }
     },
     "node_modules/@aws-sdk/types": {
-      "version": "3.535.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/types/-/types-3.535.0.tgz",
-      "integrity": "sha512-aY4MYfduNj+sRR37U7XxYR8wemfbKP6lx00ze2M2uubn7mZotuVrWYAafbMSXrdEMSToE5JDhr28vArSOoLcSg==",
+      "version": "3.577.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/types/-/types-3.577.0.tgz",
+      "integrity": "sha512-FT2JZES3wBKN/alfmhlo+3ZOq/XJ0C7QOZcDNrpKjB0kqYoKjhVKZ/Hx6ArR0czkKfHzBBEs6y40ebIHx2nSmA==",
       "dependencies": {
-        "@smithy/types": "^2.12.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@aws-sdk/util-endpoints": {
-      "version": "3.540.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-endpoints/-/util-endpoints-3.540.0.tgz",
-      "integrity": "sha512-1kMyQFAWx6f8alaI6UT65/5YW/7pDWAKAdNwL6vuJLea03KrZRX3PMoONOSJpAS5m3Ot7HlWZvf3wZDNTLELZw==",
+      "version": "3.577.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-endpoints/-/util-endpoints-3.577.0.tgz",
+      "integrity": "sha512-FjuUz1Kdy4Zly2q/c58tpdqHd6z7iOdU/caYzoc8jwgAHBDBbIJNQLCU9hXJnPV2M8pWxQDyIZsoVwtmvErPzw==",
       "dependencies": {
-        "@aws-sdk/types": "3.535.0",
-        "@smithy/types": "^2.12.0",
-        "@smithy/util-endpoints": "^1.2.0",
+        "@aws-sdk/types": "3.577.0",
+        "@smithy/types": "^3.0.0",
+        "@smithy/util-endpoints": "^2.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@aws-sdk/util-locate-window": {
-      "version": "3.535.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-locate-window/-/util-locate-window-3.535.0.tgz",
-      "integrity": "sha512-PHJ3SL6d2jpcgbqdgiPxkXpu7Drc2PYViwxSIqvvMKhDwzSB1W3mMvtpzwKM4IE7zLFodZo0GKjJ9AsoXndXhA==",
+      "version": "3.568.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-locate-window/-/util-locate-window-3.568.0.tgz",
+      "integrity": "sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig==",
       "dependencies": {
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@aws-sdk/util-user-agent-browser": {
-      "version": "3.535.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.535.0.tgz",
-      "integrity": "sha512-RWMcF/xV5n+nhaA/Ff5P3yNP3Kur/I+VNZngog4TEs92oB/nwOdAg/2JL8bVAhUbMrjTjpwm7PItziYFQoqyig==",
+      "version": "3.577.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.577.0.tgz",
+      "integrity": "sha512-zEAzHgR6HWpZOH7xFgeJLc6/CzMcx4nxeQolZxVZoB5pPaJd3CjyRhZN0xXeZB0XIRCWmb4yJBgyiugXLNMkLA==",
       "dependencies": {
-        "@aws-sdk/types": "3.535.0",
-        "@smithy/types": "^2.12.0",
+        "@aws-sdk/types": "3.577.0",
+        "@smithy/types": "^3.0.0",
         "bowser": "^2.11.0",
         "tslib": "^2.6.2"
       }
     },
     "node_modules/@aws-sdk/util-user-agent-node": {
-      "version": "3.535.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.535.0.tgz",
-      "integrity": "sha512-dRek0zUuIT25wOWJlsRm97nTkUlh1NDcLsQZIN2Y8KxhwoXXWtJs5vaDPT+qAg+OpcNj80i1zLR/CirqlFg/TQ==",
+      "version": "3.577.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.577.0.tgz",
+      "integrity": "sha512-XqvtFjbSMtycZTWVwDe8DRWovuoMbA54nhUoZwVU6rW9OSD6NZWGR512BUGHFaWzW0Wg8++Dj10FrKTG2XtqfA==",
       "dependencies": {
-        "@aws-sdk/types": "3.535.0",
-        "@smithy/node-config-provider": "^2.3.0",
-        "@smithy/types": "^2.12.0",
+        "@aws-sdk/types": "3.577.0",
+        "@smithy/node-config-provider": "^3.0.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       },
       "peerDependencies": {
         "aws-crt": ">=1.0.0"
@@ -675,20 +679,20 @@
       }
     },
     "node_modules/@babel/core": {
-      "version": "7.24.4",
-      "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.24.4.tgz",
-      "integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==",
+      "version": "7.24.5",
+      "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.24.5.tgz",
+      "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==",
       "dependencies": {
         "@ampproject/remapping": "^2.2.0",
         "@babel/code-frame": "^7.24.2",
-        "@babel/generator": "^7.24.4",
+        "@babel/generator": "^7.24.5",
         "@babel/helper-compilation-targets": "^7.23.6",
-        "@babel/helper-module-transforms": "^7.23.3",
-        "@babel/helpers": "^7.24.4",
-        "@babel/parser": "^7.24.4",
+        "@babel/helper-module-transforms": "^7.24.5",
+        "@babel/helpers": "^7.24.5",
+        "@babel/parser": "^7.24.5",
         "@babel/template": "^7.24.0",
-        "@babel/traverse": "^7.24.1",
-        "@babel/types": "^7.24.0",
+        "@babel/traverse": "^7.24.5",
+        "@babel/types": "^7.24.5",
         "convert-source-map": "^2.0.0",
         "debug": "^4.1.0",
         "gensync": "^1.0.0-beta.2",
@@ -712,11 +716,11 @@
       }
     },
     "node_modules/@babel/generator": {
-      "version": "7.24.4",
-      "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.24.4.tgz",
-      "integrity": "sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==",
+      "version": "7.24.5",
+      "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.24.5.tgz",
+      "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==",
       "dependencies": {
-        "@babel/types": "^7.24.0",
+        "@babel/types": "^7.24.5",
         "@jridgewell/gen-mapping": "^0.3.5",
         "@jridgewell/trace-mapping": "^0.3.25",
         "jsesc": "^2.5.1"
@@ -791,15 +795,15 @@
       }
     },
     "node_modules/@babel/helper-module-transforms": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
-      "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==",
+      "version": "7.24.5",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz",
+      "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==",
       "dependencies": {
         "@babel/helper-environment-visitor": "^7.22.20",
-        "@babel/helper-module-imports": "^7.22.15",
-        "@babel/helper-simple-access": "^7.22.5",
-        "@babel/helper-split-export-declaration": "^7.22.6",
-        "@babel/helper-validator-identifier": "^7.22.20"
+        "@babel/helper-module-imports": "^7.24.3",
+        "@babel/helper-simple-access": "^7.24.5",
+        "@babel/helper-split-export-declaration": "^7.24.5",
+        "@babel/helper-validator-identifier": "^7.24.5"
       },
       "engines": {
         "node": ">=6.9.0"
@@ -809,30 +813,30 @@
       }
     },
     "node_modules/@babel/helper-plugin-utils": {
-      "version": "7.24.0",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz",
-      "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==",
+      "version": "7.24.5",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz",
+      "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==",
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/helper-simple-access": {
-      "version": "7.22.5",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
-      "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
+      "version": "7.24.5",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz",
+      "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==",
       "dependencies": {
-        "@babel/types": "^7.22.5"
+        "@babel/types": "^7.24.5"
       },
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/helper-split-export-declaration": {
-      "version": "7.22.6",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
-      "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
+      "version": "7.24.5",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz",
+      "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==",
       "dependencies": {
-        "@babel/types": "^7.22.5"
+        "@babel/types": "^7.24.5"
       },
       "engines": {
         "node": ">=6.9.0"
@@ -847,9 +851,9 @@
       }
     },
     "node_modules/@babel/helper-validator-identifier": {
-      "version": "7.22.20",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
-      "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
+      "version": "7.24.5",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz",
+      "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==",
       "engines": {
         "node": ">=6.9.0"
       }
@@ -863,24 +867,24 @@
       }
     },
     "node_modules/@babel/helpers": {
-      "version": "7.24.4",
-      "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.24.4.tgz",
-      "integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==",
+      "version": "7.24.5",
+      "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.24.5.tgz",
+      "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==",
       "dependencies": {
         "@babel/template": "^7.24.0",
-        "@babel/traverse": "^7.24.1",
-        "@babel/types": "^7.24.0"
+        "@babel/traverse": "^7.24.5",
+        "@babel/types": "^7.24.5"
       },
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/highlight": {
-      "version": "7.24.2",
-      "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.24.2.tgz",
-      "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==",
+      "version": "7.24.5",
+      "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.24.5.tgz",
+      "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==",
       "dependencies": {
-        "@babel/helper-validator-identifier": "^7.22.20",
+        "@babel/helper-validator-identifier": "^7.24.5",
         "chalk": "^2.4.2",
         "js-tokens": "^4.0.0",
         "picocolors": "^1.0.0"
@@ -890,9 +894,9 @@
       }
     },
     "node_modules/@babel/parser": {
-      "version": "7.24.4",
-      "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.4.tgz",
-      "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==",
+      "version": "7.24.5",
+      "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.5.tgz",
+      "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==",
       "bin": {
         "parser": "bin/babel-parser.js"
       },
@@ -901,11 +905,11 @@
       }
     },
     "node_modules/@babel/plugin-transform-destructuring": {
-      "version": "7.24.1",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.1.tgz",
-      "integrity": "sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==",
+      "version": "7.24.5",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.5.tgz",
+      "integrity": "sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==",
       "dependencies": {
-        "@babel/helper-plugin-utils": "^7.24.0"
+        "@babel/helper-plugin-utils": "^7.24.5"
       },
       "engines": {
         "node": ">=6.9.0"
@@ -915,11 +919,11 @@
       }
     },
     "node_modules/@babel/plugin-transform-parameters": {
-      "version": "7.24.1",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.1.tgz",
-      "integrity": "sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==",
+      "version": "7.24.5",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.5.tgz",
+      "integrity": "sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==",
       "dependencies": {
-        "@babel/helper-plugin-utils": "^7.24.0"
+        "@babel/helper-plugin-utils": "^7.24.5"
       },
       "engines": {
         "node": ">=6.9.0"
@@ -956,18 +960,18 @@
       }
     },
     "node_modules/@babel/traverse": {
-      "version": "7.24.1",
-      "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.24.1.tgz",
-      "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==",
+      "version": "7.24.5",
+      "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.24.5.tgz",
+      "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==",
       "dependencies": {
-        "@babel/code-frame": "^7.24.1",
-        "@babel/generator": "^7.24.1",
+        "@babel/code-frame": "^7.24.2",
+        "@babel/generator": "^7.24.5",
         "@babel/helper-environment-visitor": "^7.22.20",
         "@babel/helper-function-name": "^7.23.0",
         "@babel/helper-hoist-variables": "^7.22.5",
-        "@babel/helper-split-export-declaration": "^7.22.6",
-        "@babel/parser": "^7.24.1",
-        "@babel/types": "^7.24.0",
+        "@babel/helper-split-export-declaration": "^7.24.5",
+        "@babel/parser": "^7.24.5",
+        "@babel/types": "^7.24.5",
         "debug": "^4.3.1",
         "globals": "^11.1.0"
       },
@@ -976,12 +980,12 @@
       }
     },
     "node_modules/@babel/types": {
-      "version": "7.24.0",
-      "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.24.0.tgz",
-      "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==",
+      "version": "7.24.5",
+      "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.24.5.tgz",
+      "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==",
       "dependencies": {
-        "@babel/helper-string-parser": "^7.23.4",
-        "@babel/helper-validator-identifier": "^7.22.20",
+        "@babel/helper-string-parser": "^7.24.1",
+        "@babel/helper-validator-identifier": "^7.24.5",
         "to-fast-properties": "^2.0.0"
       },
       "engines": {
@@ -1105,11 +1109,11 @@
       }
     },
     "node_modules/@mongodb-js/devtools-connect": {
-      "version": "2.6.0",
-      "resolved": "https://registry.npmmirror.com/@mongodb-js/devtools-connect/-/devtools-connect-2.6.0.tgz",
-      "integrity": "sha512-UIMOCfsfhmIj5TWXRfhMSPTfg7zNSGDphlKGABLZ/SP03aI5cAOi1krHTxBjx4p9iTs5E+A6eF+9GTKOTVXISQ==",
+      "version": "2.6.3",
+      "resolved": "https://registry.npmmirror.com/@mongodb-js/devtools-connect/-/devtools-connect-2.6.3.tgz",
+      "integrity": "sha512-oGM/HQ8GJmcSVKcnVz+uNy3m1WFz2a7XqcEa/JJcl+imKDPHritkNVUsPIA9fYMRduuOT9f7ko8uWTVLgcw/qA==",
       "dependencies": {
-        "@mongodb-js/oidc-http-server-pages": "1.1.0",
+        "@mongodb-js/oidc-http-server-pages": "1.1.1",
         "lodash.merge": "^4.6.2",
         "mongodb-connection-string-url": "^3.0.0",
         "socks": "^2.7.3",
@@ -1124,21 +1128,21 @@
       "peerDependencies": {
         "@mongodb-js/oidc-plugin": "^0.4.0",
         "mongodb": "^5.8.1 || ^6.0.0",
-        "mongodb-log-writer": "^1.2.0"
+        "mongodb-log-writer": "^1.4.2"
       }
     },
     "node_modules/@mongodb-js/mongodb-constants": {
-      "version": "0.8.10",
-      "resolved": "https://registry.npmmirror.com/@mongodb-js/mongodb-constants/-/mongodb-constants-0.8.10.tgz",
-      "integrity": "sha512-tLXBNzLzk7KD0UsZaSpAg7bftgiDRVYFjc3zXT+828ENtg7TIvahkzJzoD7K6SwnFjPp8PZ/R36rpEL3zFq9yg==",
+      "version": "0.10.1",
+      "resolved": "https://registry.npmmirror.com/@mongodb-js/mongodb-constants/-/mongodb-constants-0.10.1.tgz",
+      "integrity": "sha512-zs6LSjci2JwkEgc43nmwI4LM0fYRnJpID2tw1NJ2IlqpmW9x1dQFjv1IG401yPr+eoB+Ktzy+EezDrTKl1fMbA==",
       "dependencies": {
         "semver": "^7.5.4"
       }
     },
     "node_modules/@mongodb-js/oidc-http-server-pages": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmmirror.com/@mongodb-js/oidc-http-server-pages/-/oidc-http-server-pages-1.1.0.tgz",
-      "integrity": "sha512-mRzOeYXV1oRnwifRaeV43HZq2s0USLwm9JPYO6Kb0T1oqZhMjzf1VIPSxktiwCf8gKw37uZ8knPdX5aDfQuQ4g=="
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/@mongodb-js/oidc-http-server-pages/-/oidc-http-server-pages-1.1.1.tgz",
+      "integrity": "sha512-zYkANxb4HVDN4zGuU2ud4fL+XpqRxaydCwVZyU9Mh5EhqbrCL5mGH7t3BaGnfdQUw+HVtwP3dmasc+5Hjewk+g=="
     },
     "node_modules/@mongodb-js/oidc-plugin": {
       "version": "0.4.0",
@@ -1155,37 +1159,36 @@
       }
     },
     "node_modules/@mongodb-js/saslprep": {
-      "version": "1.1.5",
-      "resolved": "https://registry.npmmirror.com/@mongodb-js/saslprep/-/saslprep-1.1.5.tgz",
-      "integrity": "sha512-XLNOMH66KhJzUJNwT/qlMnS4WsNDWD5ASdyaSH3EtK+F4r/CFGa3jT4GNi4mfOitGvWXtdLgQJkQjxSVrio+jA==",
+      "version": "1.1.7",
+      "resolved": "https://registry.npmmirror.com/@mongodb-js/saslprep/-/saslprep-1.1.7.tgz",
+      "integrity": "sha512-dCHW/oEX0KJ4NjDULBo3JiOaK5+6axtpBbS+ao2ZInoAL9/YRQLhXzSNAFz7hP4nzLkIqsfYAK/PDE3+XHny0Q==",
       "dependencies": {
         "sparse-bitfield": "^3.0.3"
       }
     },
     "node_modules/@mongosh/arg-parser": {
-      "version": "2.2.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/arg-parser/-/arg-parser-2.2.5.tgz",
-      "integrity": "sha512-SqScPS3QeG6HuMwvyuvImAQ15jfmQ02TS+a5RdwI5r79XmyRAJ6Jm9df8gms+Eqhzl2lvuXkt00sl23sCi26dA==",
+      "version": "2.2.6",
+      "resolved": "https://registry.npmmirror.com/@mongosh/arg-parser/-/arg-parser-2.2.6.tgz",
+      "integrity": "sha512-eQa3NNxgyHsExN3DQi9zCNZKTp1g0z+8CdV+RYPHpRsNXtkjESu6A30qX90UYrtoyFzDt2O7NgocDA7pDh/whw==",
       "dependencies": {
-        "@mongosh/errors": "2.2.5",
-        "@mongosh/i18n": "2.2.5",
-        "mongodb-connection-string-url": "^3.0.0"
+        "@mongosh/errors": "2.2.6",
+        "@mongosh/i18n": "2.2.6",
+        "mongodb-connection-string-url": "^3.0.1"
       },
       "engines": {
         "node": ">=14.15.1"
       }
     },
     "node_modules/@mongosh/async-rewriter2": {
-      "version": "2.2.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/async-rewriter2/-/async-rewriter2-2.2.5.tgz",
-      "integrity": "sha512-ZS6zw8+TnFxfirXdY/fNtQrB35O//MGfBhuoRFPaaVo551QnQWbSkjef2/aSOu0iDGph/iLo8gbRMFPtfdUtLg==",
+      "version": "2.2.6",
+      "resolved": "https://registry.npmmirror.com/@mongosh/async-rewriter2/-/async-rewriter2-2.2.6.tgz",
+      "integrity": "sha512-EYv9MFbWuq8yCBGkSxcnt/lTbiDqrHFhReq6HgoPw4hBctS+hYd2qkroLhAUvoqv78t6PRoZcvynYb7CPOmqTA==",
       "dependencies": {
         "@babel/core": "^7.22.8",
         "@babel/plugin-transform-destructuring": "^7.22.5",
         "@babel/plugin-transform-parameters": "^7.22.5",
         "@babel/plugin-transform-shorthand-properties": "^7.22.5",
-        "@babel/types": "^7.22.5",
-        "@types/babel__core": "^7.20.1"
+        "@babel/types": "^7.22.5"
       },
       "bin": {
         "async-rewrite": "bin/async-rewrite.js"
@@ -1195,12 +1198,12 @@
       }
     },
     "node_modules/@mongosh/autocomplete": {
-      "version": "2.2.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/autocomplete/-/autocomplete-2.2.5.tgz",
-      "integrity": "sha512-ygFpjamjkx5KcRP70iH2IMavGNj19l3nwv8vRXhpC9sdz3hkRcTbl8SjWKWvOSMtm679dYm6ExVgV4f0jqZGFQ==",
+      "version": "2.2.6",
+      "resolved": "https://registry.npmmirror.com/@mongosh/autocomplete/-/autocomplete-2.2.6.tgz",
+      "integrity": "sha512-d1oZZWXLOsJ1gFW1+A8Pdi+PuLALXYI3OwZOMtHSZCwSjR8DED90D9rDjUaOIZHKzTFWubUMRPonD9GQHo/hzg==",
       "dependencies": {
-        "@mongodb-js/mongodb-constants": "^0.8.10",
-        "@mongosh/shell-api": "2.2.5",
+        "@mongodb-js/mongodb-constants": "^0.10.1",
+        "@mongosh/shell-api": "2.2.6",
         "semver": "^7.5.4"
       },
       "engines": {
@@ -1208,36 +1211,37 @@
       }
     },
     "node_modules/@mongosh/cli-repl": {
-      "version": "2.2.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/cli-repl/-/cli-repl-2.2.5.tgz",
-      "integrity": "sha512-TNIfVUJks7D9psvF/nHD7YifuQ0eYca8R8sKdDCuBu/H8xmbmQmARhHO2tGeaI0osR6HJkUunpYgbXwB4hnmHw==",
-      "dependencies": {
-        "@mongosh/arg-parser": "2.2.5",
-        "@mongosh/autocomplete": "2.2.5",
-        "@mongosh/editor": "2.2.5",
-        "@mongosh/errors": "2.2.5",
-        "@mongosh/history": "2.2.5",
-        "@mongosh/i18n": "2.2.5",
-        "@mongosh/import-node-fetch": "2.2.5",
-        "@mongosh/js-multiline-to-singleline": "2.2.5",
-        "@mongosh/logging": "2.2.5",
-        "@mongosh/service-provider-core": "2.2.5",
-        "@mongosh/service-provider-server": "2.2.5",
-        "@mongosh/shell-api": "2.2.5",
-        "@mongosh/shell-evaluator": "2.2.5",
-        "@mongosh/snippet-manager": "2.2.5",
-        "@mongosh/types": "2.2.5",
+      "version": "2.2.6",
+      "resolved": "https://registry.npmmirror.com/@mongosh/cli-repl/-/cli-repl-2.2.6.tgz",
+      "integrity": "sha512-PMQdli4DyYw5HGhxjkQS2gt/UdEiAO2X34AxTa2KkG2oOQHMZJlb8UptijDvVxvYLcqXtlTqCu1ZWe33SE8LvA==",
+      "dependencies": {
+        "@mongosh/arg-parser": "2.2.6",
+        "@mongosh/autocomplete": "2.2.6",
+        "@mongosh/editor": "2.2.6",
+        "@mongosh/errors": "2.2.6",
+        "@mongosh/history": "2.2.6",
+        "@mongosh/i18n": "2.2.6",
+        "@mongosh/import-node-fetch": "2.2.6",
+        "@mongosh/js-multiline-to-singleline": "2.2.6",
+        "@mongosh/logging": "2.2.6",
+        "@mongosh/service-provider-core": "2.2.6",
+        "@mongosh/service-provider-server": "2.2.6",
+        "@mongosh/shell-api": "2.2.6",
+        "@mongosh/shell-evaluator": "2.2.6",
+        "@mongosh/snippet-manager": "2.2.6",
+        "@mongosh/types": "2.2.6",
         "@segment/analytics-node": "^1.3.0",
         "ansi-escape-sequences": "^5.1.2",
-        "askcharacter": "^1.0.0",
-        "askpassword": "^1.2.4",
+        "askcharacter": "^2.0.4",
+        "askpassword": "^2.0.2",
         "escape-string-regexp": "^4.0.0",
         "is-recoverable-error": "^1.0.3",
         "js-yaml": "^4.1.0",
-        "mongodb-connection-string-url": "^3.0.0",
-        "mongodb-log-writer": "^1.4.0",
+        "mongodb-connection-string-url": "^3.0.1",
+        "mongodb-log-writer": "^1.4.2",
         "numeral": "^2.0.6",
-        "pretty-repl": "^4.0.0",
+        "pretty-repl": "^4.0.1",
+        "proxy-agent": "^6.4.0",
         "semver": "^7.5.4",
         "strip-ansi": "^6.0.0",
         "text-table": "^0.2.0",
@@ -1252,21 +1256,21 @@
       "optionalDependencies": {
         "get-console-process-list": "^1.0.4",
         "glibc-version": "^1.0.0",
-        "macos-export-certificate-and-key": "^1.1.1",
-        "mongodb-crypt-library-version": "^1.0.3",
-        "win-export-certificate-and-key": "^1.1.1"
+        "macos-export-certificate-and-key": "^1.1.2",
+        "mongodb-crypt-library-version": "^1.0.5",
+        "win-export-certificate-and-key": "^1.1.2"
       }
     },
     "node_modules/@mongosh/editor": {
-      "version": "2.2.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/editor/-/editor-2.2.5.tgz",
-      "integrity": "sha512-ji7NrcOgTrC9JfDP4QPiB53qPdy9G/Osc01OF3Wm4qS/mFqSB4zgTTV0YLMzYDpG+esIGGhe8yfVrofBj0VX7A==",
-      "dependencies": {
-        "@mongosh/js-multiline-to-singleline": "2.2.5",
-        "@mongosh/service-provider-core": "2.2.5",
-        "@mongosh/shell-api": "2.2.5",
-        "@mongosh/shell-evaluator": "2.2.5",
-        "@mongosh/types": "2.2.5",
+      "version": "2.2.6",
+      "resolved": "https://registry.npmmirror.com/@mongosh/editor/-/editor-2.2.6.tgz",
+      "integrity": "sha512-yqKluTpcy2u3xnuiUeikvYCDdtMjTNTPSbHD6pA0v3kNNOUb5gHDs6SeLAxO7h+7Z8uR61BD2uaYmo0qUw0r0A==",
+      "dependencies": {
+        "@mongosh/js-multiline-to-singleline": "2.2.6",
+        "@mongosh/service-provider-core": "2.2.6",
+        "@mongosh/shell-api": "2.2.6",
+        "@mongosh/shell-evaluator": "2.2.6",
+        "@mongosh/types": "2.2.6",
         "js-beautify": "^1.15.1"
       },
       "engines": {
@@ -1274,40 +1278,40 @@
       }
     },
     "node_modules/@mongosh/errors": {
-      "version": "2.2.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/errors/-/errors-2.2.5.tgz",
-      "integrity": "sha512-UdTod4Evw/X2XW91FG2DJ5E57J+0GLz4zuGxLdPcRcWSdnqZVgd+lTTPC9uzoMoWCs3bv6y54HmoWbqUEYlpEQ==",
+      "version": "2.2.6",
+      "resolved": "https://registry.npmmirror.com/@mongosh/errors/-/errors-2.2.6.tgz",
+      "integrity": "sha512-AFsb8QUMTg7axHkuIlq8wZ0qEKgAB+r1eIQg5BfqpMGhabCdB+2QhV7/VUq/CCOcG+rdqBwLCHodp6HBcLM4HA==",
       "engines": {
         "node": ">=14.15.1"
       }
     },
     "node_modules/@mongosh/history": {
-      "version": "2.2.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/history/-/history-2.2.5.tgz",
-      "integrity": "sha512-LvQQ493B4SFYawf83fE/lfkXtP2o2Y5VKj+tKMiHP1RQqWNxrAPndt3sNHlFpeFGppEzCiXz1mTwu4Lbko0tqA==",
+      "version": "2.2.6",
+      "resolved": "https://registry.npmmirror.com/@mongosh/history/-/history-2.2.6.tgz",
+      "integrity": "sha512-3TuXFo8M0l21EUTYa+sYHqxzRfy8jM/ghlFme3FeLeDPkjahDPieoOwjxZtEorxuojrvKXvFKwJ+FRGrO2hIIg==",
       "dependencies": {
-        "mongodb-connection-string-url": "^3.0.0",
-        "mongodb-redact": "^0.2.2"
+        "mongodb-connection-string-url": "^3.0.1",
+        "mongodb-redact": "^0.2.3"
       },
       "engines": {
         "node": ">=14.15.1"
       }
     },
     "node_modules/@mongosh/i18n": {
-      "version": "2.2.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/i18n/-/i18n-2.2.5.tgz",
-      "integrity": "sha512-jjjO6RniNX5jL2tb8HtOGOuZZVnlc3XxKuPUBwQuk6tbxpJEjSIv1D3U+F4eGNGrfD6rVXRrjw+0SrdzizI/EA==",
+      "version": "2.2.6",
+      "resolved": "https://registry.npmmirror.com/@mongosh/i18n/-/i18n-2.2.6.tgz",
+      "integrity": "sha512-q0bfuI0tQmS+CHJNXBDF34Dlf5jeHYG8RUPawxkYtgvP6WvuFpDbxyog2iN//jZSruIvulqd9gBffhCbbn+IbQ==",
       "dependencies": {
-        "@mongosh/errors": "2.2.5"
+        "@mongosh/errors": "2.2.6"
       },
       "engines": {
         "node": ">=14.15.1"
       }
     },
     "node_modules/@mongosh/import-node-fetch": {
-      "version": "2.2.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/import-node-fetch/-/import-node-fetch-2.2.5.tgz",
-      "integrity": "sha512-RqwYM32AOwwfyTD02WDOHvN/zKDe+/TYFsgU31c4qle51yvlwRs3LPKzuwTYUPLAXxF8MzlzjvHGQGlemCKTTA==",
+      "version": "2.2.6",
+      "resolved": "https://registry.npmmirror.com/@mongosh/import-node-fetch/-/import-node-fetch-2.2.6.tgz",
+      "integrity": "sha512-zQmSYu8NEzYyNQkZ82uMC2auVJIBorfuT/NWGxIkkZozc0eljkJEtgkNiAw6f17gEFzyk7fE46r091SHcXjXUw==",
       "dependencies": {
         "node-fetch": "^3.3.2"
       },
@@ -1316,9 +1320,9 @@
       }
     },
     "node_modules/@mongosh/js-multiline-to-singleline": {
-      "version": "2.2.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/js-multiline-to-singleline/-/js-multiline-to-singleline-2.2.5.tgz",
-      "integrity": "sha512-20qZfBXIxn2VQv48hMxbQgBdr1lQ+jESSjlsYzMovaaRDxaLu0RBm9Vg0+TUSQKsF/ep2ZG4jTyRS/XfSOm8Iw==",
+      "version": "2.2.6",
+      "resolved": "https://registry.npmmirror.com/@mongosh/js-multiline-to-singleline/-/js-multiline-to-singleline-2.2.6.tgz",
+      "integrity": "sha512-M5ak3Sxd2sLQtI3mV5ubQv0vo3YsJlvRaFCvmeQQgGTDT76gwrlYf/f6qDlR6jdIHVELO5cgx4gMDdoSWGQpCw==",
       "dependencies": {
         "@babel/core": "^7.16.12",
         "@babel/types": "^7.21.2"
@@ -1328,31 +1332,31 @@
       }
     },
     "node_modules/@mongosh/logging": {
-      "version": "2.2.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/logging/-/logging-2.2.5.tgz",
-      "integrity": "sha512-NneAPHoyMSkY5/BuIbQJOKuldqLA6QtiitmQV00EP2p/nqC9xX+gtU7i9pUxFFR2qlKHeLjJwQVA9R9qGpOPyA==",
+      "version": "2.2.6",
+      "resolved": "https://registry.npmmirror.com/@mongosh/logging/-/logging-2.2.6.tgz",
+      "integrity": "sha512-D+H6T9OyQJsoUd58hSXxyRbcgM1hPcq5FqwUqUwlYnl9qKMj7W9004JaTBQPu2nYdYcdJvTGqIo9s+8IMGXB2g==",
       "dependencies": {
-        "@mongodb-js/devtools-connect": "^2.6.0",
-        "@mongosh/errors": "2.2.5",
-        "@mongosh/history": "2.2.5",
-        "@mongosh/types": "2.2.5",
-        "mongodb-log-writer": "^1.4.0",
-        "mongodb-redact": "^0.2.2"
+        "@mongodb-js/devtools-connect": "^2.6.3",
+        "@mongosh/errors": "2.2.6",
+        "@mongosh/history": "2.2.6",
+        "@mongosh/types": "2.2.6",
+        "mongodb-log-writer": "^1.4.2",
+        "mongodb-redact": "^0.2.3"
       },
       "engines": {
         "node": ">=14.15.1"
       }
     },
     "node_modules/@mongosh/service-provider-core": {
-      "version": "2.2.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/service-provider-core/-/service-provider-core-2.2.5.tgz",
-      "integrity": "sha512-NiQJkESYyRiX+zEIGE8gE8RINNSGa5cm07DkLB5DM7ebIMNuPbfU7byvh6AcW8R2QQZ0hEKWf4HosW1hnhFAHg==",
+      "version": "2.2.6",
+      "resolved": "https://registry.npmmirror.com/@mongosh/service-provider-core/-/service-provider-core-2.2.6.tgz",
+      "integrity": "sha512-Q1NasVJc8sq+32NLVPQymLiyTsjP4Z4AsALA4IYV8dDzSlpBt8zWFnAWRGAFxLwRRR89TpqN3n1Fj9oR7DFUXw==",
       "dependencies": {
         "@aws-sdk/credential-providers": "^3.525.0",
-        "@mongosh/errors": "2.2.5",
-        "bson": "^6.5.0",
-        "mongodb": "^6.5.0",
-        "mongodb-build-info": "^1.7.1"
+        "@mongosh/errors": "2.2.6",
+        "bson": "^6.7.0",
+        "mongodb": "^6.6.2",
+        "mongodb-build-info": "^1.7.2"
       },
       "engines": {
         "node": ">=14.15.1"
@@ -1362,20 +1366,19 @@
       }
     },
     "node_modules/@mongosh/service-provider-server": {
-      "version": "2.2.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/service-provider-server/-/service-provider-server-2.2.5.tgz",
-      "integrity": "sha512-vq6pJ9SqkEnns4hCEYnc2Rva+rnYAd4Vynpj90gKZwW67ApNNo1RpqXGNRgciFgmiWb+gqJVQk8gD+xytAcYxQ==",
+      "version": "2.2.6",
+      "resolved": "https://registry.npmmirror.com/@mongosh/service-provider-server/-/service-provider-server-2.2.6.tgz",
+      "integrity": "sha512-/4ynmXCKqhz3lSeZ1ybVvFWfYJ21HXAactY9BguPwzI2TGb/g2LcboU86DrVDmxe4+Odg8L0pH7ICIRhlaxjFg==",
       "dependencies": {
-        "@mongodb-js/devtools-connect": "^2.6.0",
+        "@mongodb-js/devtools-connect": "^2.6.3",
         "@mongodb-js/oidc-plugin": "^0.4.0",
-        "@mongosh/errors": "2.2.5",
-        "@mongosh/service-provider-core": "2.2.5",
-        "@mongosh/types": "2.2.5",
-        "@types/sinon-chai": "^3.2.4",
+        "@mongosh/errors": "2.2.6",
+        "@mongosh/service-provider-core": "2.2.6",
+        "@mongosh/types": "2.2.6",
         "aws4": "^1.12.0",
-        "mongodb": "^6.5.0",
-        "mongodb-connection-string-url": "^3.0.0",
-        "socks": "^2.8.1"
+        "mongodb": "^6.6.2",
+        "mongodb-connection-string-url": "^3.0.1",
+        "socks": "^2.8.3"
       },
       "engines": {
         "node": ">=14.15.1"
@@ -1386,44 +1389,44 @@
       }
     },
     "node_modules/@mongosh/shell-api": {
-      "version": "2.2.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/shell-api/-/shell-api-2.2.5.tgz",
-      "integrity": "sha512-FPgzPOudhayvRuD50Hux2Ojs//JhKllOzX4TT3s8qNmcujJpOtQ4BVWTmREEivBSmwkagA2ag374KUlzRlxtTw==",
+      "version": "2.2.6",
+      "resolved": "https://registry.npmmirror.com/@mongosh/shell-api/-/shell-api-2.2.6.tgz",
+      "integrity": "sha512-hwIG3Urj+/IyhuIknQXTWUWQ6aNDda+2xMd3a5psk7WRVYo5BRNT+kBk3QkUXIVUOJ+yNIFomPcd2f4t1zFoOg==",
       "dependencies": {
-        "@mongosh/arg-parser": "2.2.5",
-        "@mongosh/errors": "2.2.5",
-        "@mongosh/history": "2.2.5",
-        "@mongosh/i18n": "2.2.5",
-        "@mongosh/service-provider-core": "2.2.5",
-        "mongodb-redact": "^0.2.2"
+        "@mongosh/arg-parser": "2.2.6",
+        "@mongosh/errors": "2.2.6",
+        "@mongosh/history": "2.2.6",
+        "@mongosh/i18n": "2.2.6",
+        "@mongosh/service-provider-core": "2.2.6",
+        "mongodb-redact": "^0.2.3"
       },
       "engines": {
         "node": ">=14.15.1"
       }
     },
     "node_modules/@mongosh/shell-evaluator": {
-      "version": "2.2.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/shell-evaluator/-/shell-evaluator-2.2.5.tgz",
-      "integrity": "sha512-2RRHBRrK0izXLnVHtWttrOmYM8aDNhPNfmxuxkd5UFMGDYTAQ7JNmBVlvo0jPsWNZLLMCioVDdvvQY+WuyDgzg==",
+      "version": "2.2.6",
+      "resolved": "https://registry.npmmirror.com/@mongosh/shell-evaluator/-/shell-evaluator-2.2.6.tgz",
+      "integrity": "sha512-1R9017ia8mVtFcUtuGiiYe4E1fkwIjtB9dSYeo30GLUGZTAo79GJqHsYDVtC/UNRk2Fb6wCq8/jPi1/r/B9ATg==",
       "dependencies": {
-        "@mongosh/async-rewriter2": "2.2.5",
-        "@mongosh/history": "2.2.5",
-        "@mongosh/shell-api": "2.2.5"
+        "@mongosh/async-rewriter2": "2.2.6",
+        "@mongosh/history": "2.2.6",
+        "@mongosh/shell-api": "2.2.6"
       },
       "engines": {
         "node": ">=14.15.1"
       }
     },
     "node_modules/@mongosh/snippet-manager": {
-      "version": "2.2.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/snippet-manager/-/snippet-manager-2.2.5.tgz",
-      "integrity": "sha512-q9mvh+f7L7QGiCVmIGp7ECmphOCd1jUy0aK2wkbzFl3E6Liwqh0DlJB0Uue2VA72LmJd36kowKFoA8TYo4DgwA==",
-      "dependencies": {
-        "@mongosh/errors": "2.2.5",
-        "@mongosh/import-node-fetch": "2.2.5",
-        "@mongosh/shell-api": "2.2.5",
-        "@mongosh/types": "2.2.5",
-        "bson": "^6.5.0",
+      "version": "2.2.6",
+      "resolved": "https://registry.npmmirror.com/@mongosh/snippet-manager/-/snippet-manager-2.2.6.tgz",
+      "integrity": "sha512-kl2Y6AF3R7BMjUshzPywI5vkf8HOAR5jKlKt18pkkWdOleQ45+X0BVWpiLpBmZXZZGamaa3u20z9qtzuO/HPtQ==",
+      "dependencies": {
+        "@mongosh/errors": "2.2.6",
+        "@mongosh/import-node-fetch": "2.2.6",
+        "@mongosh/shell-api": "2.2.6",
+        "@mongosh/types": "2.2.6",
+        "bson": "^6.7.0",
         "cross-spawn": "^7.0.3",
         "escape-string-regexp": "^4.0.0",
         "joi": "^17.4.0",
@@ -1434,11 +1437,11 @@
       }
     },
     "node_modules/@mongosh/types": {
-      "version": "2.2.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/types/-/types-2.2.5.tgz",
-      "integrity": "sha512-wWt1CQiQZylsgseehJ0ODspZ757l8c01VPsDKhUNFwhikhZiG2hlmPT8hR0D78ZkzQbHkC4ajOObsxkWaBCJ7g==",
+      "version": "2.2.6",
+      "resolved": "https://registry.npmmirror.com/@mongosh/types/-/types-2.2.6.tgz",
+      "integrity": "sha512-+QcymQR4eqdrxhecgmeiZja794M4kuASJn7r8clDgWTBHTSdxyiq3S8bNuNekJU0h2rdcGJZepGnQbV6PBmSww==",
       "dependencies": {
-        "@mongodb-js/devtools-connect": "^2.6.0"
+        "@mongodb-js/devtools-connect": "^2.6.3"
       },
       "engines": {
         "node": ">=14.15.1"
@@ -1550,402 +1553,402 @@
       "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ=="
     },
     "node_modules/@smithy/abort-controller": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/abort-controller/-/abort-controller-2.2.0.tgz",
-      "integrity": "sha512-wRlta7GuLWpTqtFfGo+nZyOO1vEvewdNR1R4rTxpC8XU6vG/NDyrFBhwLZsqg1NUoR1noVaXJPC/7ZK47QCySw==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/abort-controller/-/abort-controller-3.0.0.tgz",
+      "integrity": "sha512-p6GlFGBt9K4MYLu72YuJ523NVR4A8oHlC5M2JO6OmQqN8kAc/uh1JqLE+FizTokrSJGg0CSvC+BrsmGzKtsZKA==",
       "dependencies": {
-        "@smithy/types": "^2.12.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/config-resolver": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/config-resolver/-/config-resolver-2.2.0.tgz",
-      "integrity": "sha512-fsiMgd8toyUba6n1WRmr+qACzXltpdDkPTAaDqc8QqPBUzO+/JKwL6bUBseHVi8tu9l+3JOK+tSf7cay+4B3LA==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/config-resolver/-/config-resolver-3.0.0.tgz",
+      "integrity": "sha512-2GzOfADwYLQugYkKQhIyZyQlM05K+tMKvRnc6eFfZcpJGRfKoMUMYdPlBKmqHwQFXQKBrGV6cxL9oymWgDzvFw==",
       "dependencies": {
-        "@smithy/node-config-provider": "^2.3.0",
-        "@smithy/types": "^2.12.0",
-        "@smithy/util-config-provider": "^2.3.0",
-        "@smithy/util-middleware": "^2.2.0",
+        "@smithy/node-config-provider": "^3.0.0",
+        "@smithy/types": "^3.0.0",
+        "@smithy/util-config-provider": "^3.0.0",
+        "@smithy/util-middleware": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/core": {
-      "version": "1.4.2",
-      "resolved": "https://registry.npmmirror.com/@smithy/core/-/core-1.4.2.tgz",
-      "integrity": "sha512-2fek3I0KZHWJlRLvRTqxTEri+qV0GRHrJIoLFuBMZB4EMg4WgeBGfF0X6abnrNYpq55KJ6R4D6x4f0vLnhzinA==",
-      "dependencies": {
-        "@smithy/middleware-endpoint": "^2.5.1",
-        "@smithy/middleware-retry": "^2.3.1",
-        "@smithy/middleware-serde": "^2.3.0",
-        "@smithy/protocol-http": "^3.3.0",
-        "@smithy/smithy-client": "^2.5.1",
-        "@smithy/types": "^2.12.0",
-        "@smithy/util-middleware": "^2.2.0",
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/core/-/core-2.0.1.tgz",
+      "integrity": "sha512-rcMkjvwxH/bER+oZUPR0yTA0ELD6m3A+d92+CFkdF6HJFCBB1bXo7P5pm21L66XwTN01B6bUhSCQ7cymWRD8zg==",
+      "dependencies": {
+        "@smithy/middleware-endpoint": "^3.0.0",
+        "@smithy/middleware-retry": "^3.0.1",
+        "@smithy/middleware-serde": "^3.0.0",
+        "@smithy/protocol-http": "^4.0.0",
+        "@smithy/smithy-client": "^3.0.1",
+        "@smithy/types": "^3.0.0",
+        "@smithy/util-middleware": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/credential-provider-imds": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/credential-provider-imds/-/credential-provider-imds-2.3.0.tgz",
-      "integrity": "sha512-BWB9mIukO1wjEOo1Ojgl6LrG4avcaC7T/ZP6ptmAaW4xluhSIPZhY+/PI5YKzlk+jsm+4sQZB45Bt1OfMeQa3w==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/credential-provider-imds/-/credential-provider-imds-3.0.0.tgz",
+      "integrity": "sha512-lfmBiFQcA3FsDAPxNfY0L7CawcWtbyWsBOHo34nF095728JLkBX4Y9q/VPPE2r7fqMVK+drmDigqE2/SSQeVRA==",
       "dependencies": {
-        "@smithy/node-config-provider": "^2.3.0",
-        "@smithy/property-provider": "^2.2.0",
-        "@smithy/types": "^2.12.0",
-        "@smithy/url-parser": "^2.2.0",
+        "@smithy/node-config-provider": "^3.0.0",
+        "@smithy/property-provider": "^3.0.0",
+        "@smithy/types": "^3.0.0",
+        "@smithy/url-parser": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/fetch-http-handler": {
-      "version": "2.5.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/fetch-http-handler/-/fetch-http-handler-2.5.0.tgz",
-      "integrity": "sha512-BOWEBeppWhLn/no/JxUL/ghTfANTjT7kg3Ww2rPqTUY9R4yHPXxJ9JhMe3Z03LN3aPwiwlpDIUcVw1xDyHqEhw==",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/fetch-http-handler/-/fetch-http-handler-3.0.1.tgz",
+      "integrity": "sha512-uaH74i5BDj+rBwoQaXioKpI0SHBJFtOVwzrCpxZxphOW0ki5jhj7dXvDMYM2IJem8TpdFvS2iC08sjOblfFGFg==",
       "dependencies": {
-        "@smithy/protocol-http": "^3.3.0",
-        "@smithy/querystring-builder": "^2.2.0",
-        "@smithy/types": "^2.12.0",
-        "@smithy/util-base64": "^2.3.0",
+        "@smithy/protocol-http": "^4.0.0",
+        "@smithy/querystring-builder": "^3.0.0",
+        "@smithy/types": "^3.0.0",
+        "@smithy/util-base64": "^3.0.0",
         "tslib": "^2.6.2"
       }
     },
     "node_modules/@smithy/hash-node": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/hash-node/-/hash-node-2.2.0.tgz",
-      "integrity": "sha512-zLWaC/5aWpMrHKpoDF6nqpNtBhlAYKF/7+9yMN7GpdR8CzohnWfGtMznPybnwSS8saaXBMxIGwJqR4HmRp6b3g==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/hash-node/-/hash-node-3.0.0.tgz",
+      "integrity": "sha512-84qXstNemP3XS5jcof0el6+bDfjzuvhJPQTEfro3lgtbCtKgzPm3MgiS6ehXVPjeQ5+JS0HqmTz8f/RYfzHVxw==",
       "dependencies": {
-        "@smithy/types": "^2.12.0",
-        "@smithy/util-buffer-from": "^2.2.0",
-        "@smithy/util-utf8": "^2.3.0",
+        "@smithy/types": "^3.0.0",
+        "@smithy/util-buffer-from": "^3.0.0",
+        "@smithy/util-utf8": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/invalid-dependency": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/invalid-dependency/-/invalid-dependency-2.2.0.tgz",
-      "integrity": "sha512-nEDASdbKFKPXN2O6lOlTgrEEOO9NHIeO+HVvZnkqc8h5U9g3BIhWsvzFo+UcUbliMHvKNPD/zVxDrkP1Sbgp8Q==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/invalid-dependency/-/invalid-dependency-3.0.0.tgz",
+      "integrity": "sha512-F6wBBaEFgJzj0s4KUlliIGPmqXemwP6EavgvDqYwCH40O5Xr2iMHvS8todmGVZtuJCorBkXsYLyTu4PuizVq5g==",
       "dependencies": {
-        "@smithy/types": "^2.12.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       }
     },
     "node_modules/@smithy/is-array-buffer": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
-      "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/is-array-buffer/-/is-array-buffer-3.0.0.tgz",
+      "integrity": "sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==",
       "dependencies": {
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/middleware-content-length": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/middleware-content-length/-/middleware-content-length-2.2.0.tgz",
-      "integrity": "sha512-5bl2LG1Ah/7E5cMSC+q+h3IpVHMeOkG0yLRyQT1p2aMJkSrZG7RlXHPuAgb7EyaFeidKEnnd/fNaLLaKlHGzDQ==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/middleware-content-length/-/middleware-content-length-3.0.0.tgz",
+      "integrity": "sha512-3C4s4d/iGobgCtk2tnWW6+zSTOBg1PRAm2vtWZLdriwTroFbbWNSr3lcyzHdrQHnEXYCC5K52EbpfodaIUY8sg==",
       "dependencies": {
-        "@smithy/protocol-http": "^3.3.0",
-        "@smithy/types": "^2.12.0",
+        "@smithy/protocol-http": "^4.0.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/middleware-endpoint": {
-      "version": "2.5.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/middleware-endpoint/-/middleware-endpoint-2.5.1.tgz",
-      "integrity": "sha512-1/8kFp6Fl4OsSIVTWHnNjLnTL8IqpIb/D3sTSczrKFnrE9VMNWxnrRKNvpUHOJ6zpGD5f62TPm7+17ilTJpiCQ==",
-      "dependencies": {
-        "@smithy/middleware-serde": "^2.3.0",
-        "@smithy/node-config-provider": "^2.3.0",
-        "@smithy/shared-ini-file-loader": "^2.4.0",
-        "@smithy/types": "^2.12.0",
-        "@smithy/url-parser": "^2.2.0",
-        "@smithy/util-middleware": "^2.2.0",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/middleware-endpoint/-/middleware-endpoint-3.0.0.tgz",
+      "integrity": "sha512-aXOAWztw/5qAfp0NcA2OWpv6ZI/E+Dh9mByif7i91D/0iyYNUcKvskmXiowKESFkuZ7PIMd3VOR4fTibZDs2OQ==",
+      "dependencies": {
+        "@smithy/middleware-serde": "^3.0.0",
+        "@smithy/node-config-provider": "^3.0.0",
+        "@smithy/shared-ini-file-loader": "^3.0.0",
+        "@smithy/types": "^3.0.0",
+        "@smithy/url-parser": "^3.0.0",
+        "@smithy/util-middleware": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/middleware-retry": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/middleware-retry/-/middleware-retry-2.3.1.tgz",
-      "integrity": "sha512-P2bGufFpFdYcWvqpyqqmalRtwFUNUA8vHjJR5iGqbfR6mp65qKOLcUd6lTr4S9Gn/enynSrSf3p3FVgVAf6bXA==",
-      "dependencies": {
-        "@smithy/node-config-provider": "^2.3.0",
-        "@smithy/protocol-http": "^3.3.0",
-        "@smithy/service-error-classification": "^2.1.5",
-        "@smithy/smithy-client": "^2.5.1",
-        "@smithy/types": "^2.12.0",
-        "@smithy/util-middleware": "^2.2.0",
-        "@smithy/util-retry": "^2.2.0",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/middleware-retry/-/middleware-retry-3.0.1.tgz",
+      "integrity": "sha512-hBhSEuL841FhJBK/19WpaGk5YWSzFk/P2UaVjANGKRv3eYNO8Y1lANWgqnuPWjOyCEWMPr58vELFDWpxvRKANw==",
+      "dependencies": {
+        "@smithy/node-config-provider": "^3.0.0",
+        "@smithy/protocol-http": "^4.0.0",
+        "@smithy/service-error-classification": "^3.0.0",
+        "@smithy/smithy-client": "^3.0.1",
+        "@smithy/types": "^3.0.0",
+        "@smithy/util-middleware": "^3.0.0",
+        "@smithy/util-retry": "^3.0.0",
         "tslib": "^2.6.2",
         "uuid": "^9.0.1"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/middleware-serde": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/middleware-serde/-/middleware-serde-2.3.0.tgz",
-      "integrity": "sha512-sIADe7ojwqTyvEQBe1nc/GXB9wdHhi9UwyX0lTyttmUWDJLP655ZYE1WngnNyXREme8I27KCaUhyhZWRXL0q7Q==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/middleware-serde/-/middleware-serde-3.0.0.tgz",
+      "integrity": "sha512-I1vKG1foI+oPgG9r7IMY1S+xBnmAn1ISqployvqkwHoSb8VPsngHDTOgYGYBonuOKndaWRUGJZrKYYLB+Ane6w==",
       "dependencies": {
-        "@smithy/types": "^2.12.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/middleware-stack": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/middleware-stack/-/middleware-stack-2.2.0.tgz",
-      "integrity": "sha512-Qntc3jrtwwrsAC+X8wms8zhrTr0sFXnyEGhZd9sLtsJ/6gGQKFzNB+wWbOcpJd7BR8ThNCoKt76BuQahfMvpeA==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/middleware-stack/-/middleware-stack-3.0.0.tgz",
+      "integrity": "sha512-+H0jmyfAyHRFXm6wunskuNAqtj7yfmwFB6Fp37enytp2q047/Od9xetEaUbluyImOlGnGpaVGaVfjwawSr+i6Q==",
       "dependencies": {
-        "@smithy/types": "^2.12.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/node-config-provider": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/node-config-provider/-/node-config-provider-2.3.0.tgz",
-      "integrity": "sha512-0elK5/03a1JPWMDPaS726Iw6LpQg80gFut1tNpPfxFuChEEklo2yL823V94SpTZTxmKlXFtFgsP55uh3dErnIg==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/node-config-provider/-/node-config-provider-3.0.0.tgz",
+      "integrity": "sha512-buqfaSdDh0zo62EPLf8rGDvcpKwGpO5ho4bXS2cdFhlOta7tBkWJt+O5uiaAeICfIOfPclNOndshDNSanX2X9g==",
       "dependencies": {
-        "@smithy/property-provider": "^2.2.0",
-        "@smithy/shared-ini-file-loader": "^2.4.0",
-        "@smithy/types": "^2.12.0",
+        "@smithy/property-provider": "^3.0.0",
+        "@smithy/shared-ini-file-loader": "^3.0.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/node-http-handler": {
-      "version": "2.5.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/node-http-handler/-/node-http-handler-2.5.0.tgz",
-      "integrity": "sha512-mVGyPBzkkGQsPoxQUbxlEfRjrj6FPyA3u3u2VXGr9hT8wilsoQdZdvKpMBFMB8Crfhv5dNkKHIW0Yyuc7eABqA==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/node-http-handler/-/node-http-handler-3.0.0.tgz",
+      "integrity": "sha512-3trD4r7NOMygwLbUJo4eodyQuypAWr7uvPnebNJ9a70dQhVn+US8j/lCnvoJS6BXfZeF7PkkkI0DemVJw+n+eQ==",
       "dependencies": {
-        "@smithy/abort-controller": "^2.2.0",
-        "@smithy/protocol-http": "^3.3.0",
-        "@smithy/querystring-builder": "^2.2.0",
-        "@smithy/types": "^2.12.0",
+        "@smithy/abort-controller": "^3.0.0",
+        "@smithy/protocol-http": "^4.0.0",
+        "@smithy/querystring-builder": "^3.0.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/property-provider": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/property-provider/-/property-provider-2.2.0.tgz",
-      "integrity": "sha512-+xiil2lFhtTRzXkx8F053AV46QnIw6e7MV8od5Mi68E1ICOjCeCHw2XfLnDEUHnT9WGUIkwcqavXjfwuJbGlpg==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/property-provider/-/property-provider-3.0.0.tgz",
+      "integrity": "sha512-LmbPgHBswdXCrkWWuUwBm9w72S2iLWyC/5jet9/Y9cGHtzqxi+GVjfCfahkvNV4KXEwgnH8EMpcrD9RUYe0eLQ==",
       "dependencies": {
-        "@smithy/types": "^2.12.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/protocol-http": {
-      "version": "3.3.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-3.3.0.tgz",
-      "integrity": "sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==",
+      "version": "4.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-4.0.0.tgz",
+      "integrity": "sha512-qOQZOEI2XLWRWBO9AgIYuHuqjZ2csyr8/IlgFDHDNuIgLAMRx2Bl8ck5U5D6Vh9DPdoaVpuzwWMa0xcdL4O/AQ==",
       "dependencies": {
-        "@smithy/types": "^2.12.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/querystring-builder": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/querystring-builder/-/querystring-builder-2.2.0.tgz",
-      "integrity": "sha512-L1kSeviUWL+emq3CUVSgdogoM/D9QMFaqxL/dd0X7PCNWmPXqt+ExtrBjqT0V7HLN03Vs9SuiLrG3zy3JGnE5A==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/querystring-builder/-/querystring-builder-3.0.0.tgz",
+      "integrity": "sha512-bW8Fi0NzyfkE0TmQphDXr1AmBDbK01cA4C1Z7ggwMAU5RDz5AAv/KmoRwzQAS0kxXNf/D2ALTEgwK0U2c4LtRg==",
       "dependencies": {
-        "@smithy/types": "^2.12.0",
-        "@smithy/util-uri-escape": "^2.2.0",
+        "@smithy/types": "^3.0.0",
+        "@smithy/util-uri-escape": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/querystring-parser": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/querystring-parser/-/querystring-parser-2.2.0.tgz",
-      "integrity": "sha512-BvHCDrKfbG5Yhbpj4vsbuPV2GgcpHiAkLeIlcA1LtfpMz3jrqizP1+OguSNSj1MwBHEiN+jwNisXLGdajGDQJA==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/querystring-parser/-/querystring-parser-3.0.0.tgz",
+      "integrity": "sha512-UzHwthk0UEccV4dHzPySnBy34AWw3V9lIqUTxmozQ+wPDAO9csCWMfOLe7V9A2agNYy7xE+Pb0S6K/J23JSzfQ==",
       "dependencies": {
-        "@smithy/types": "^2.12.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/service-error-classification": {
-      "version": "2.1.5",
-      "resolved": "https://registry.npmmirror.com/@smithy/service-error-classification/-/service-error-classification-2.1.5.tgz",
-      "integrity": "sha512-uBDTIBBEdAQryvHdc5W8sS5YX7RQzF683XrHePVdFmAgKiMofU15FLSM0/HU03hKTnazdNRFa0YHS7+ArwoUSQ==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/service-error-classification/-/service-error-classification-3.0.0.tgz",
+      "integrity": "sha512-3BsBtOUt2Gsnc3X23ew+r2M71WwtpHfEDGhHYHSDg6q1t8FrWh15jT25DLajFV1H+PpxAJ6gqe9yYeRUsmSdFA==",
       "dependencies": {
-        "@smithy/types": "^2.12.0"
+        "@smithy/types": "^3.0.0"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/shared-ini-file-loader": {
-      "version": "2.4.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.4.0.tgz",
-      "integrity": "sha512-WyujUJL8e1B6Z4PBfAqC/aGY1+C7T0w20Gih3yrvJSk97gpiVfB+y7c46T4Nunk+ZngLq0rOIdeVeIklk0R3OA==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.0.0.tgz",
+      "integrity": "sha512-REVw6XauXk8xE4zo5aGL7Rz4ywA8qNMUn8RtWeTRQsgAlmlvbJ7CEPBcaXU2NDC3AYBgYAXrGyWD8XrN8UGDog==",
       "dependencies": {
-        "@smithy/types": "^2.12.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/signature-v4": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/signature-v4/-/signature-v4-2.3.0.tgz",
-      "integrity": "sha512-ui/NlpILU+6HAQBfJX8BBsDXuKSNrjTSuOYArRblcrErwKFutjrCNb/OExfVRyj9+26F9J+ZmfWT+fKWuDrH3Q==",
-      "dependencies": {
-        "@smithy/is-array-buffer": "^2.2.0",
-        "@smithy/types": "^2.12.0",
-        "@smithy/util-hex-encoding": "^2.2.0",
-        "@smithy/util-middleware": "^2.2.0",
-        "@smithy/util-uri-escape": "^2.2.0",
-        "@smithy/util-utf8": "^2.3.0",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/signature-v4/-/signature-v4-3.0.0.tgz",
+      "integrity": "sha512-kXFOkNX+BQHe2qnLxpMEaCRGap9J6tUGLzc3A9jdn+nD4JdMwCKTJ+zFwQ20GkY+mAXGatyTw3HcoUlR39HwmA==",
+      "dependencies": {
+        "@smithy/is-array-buffer": "^3.0.0",
+        "@smithy/types": "^3.0.0",
+        "@smithy/util-hex-encoding": "^3.0.0",
+        "@smithy/util-middleware": "^3.0.0",
+        "@smithy/util-uri-escape": "^3.0.0",
+        "@smithy/util-utf8": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/smithy-client": {
-      "version": "2.5.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/smithy-client/-/smithy-client-2.5.1.tgz",
-      "integrity": "sha512-jrbSQrYCho0yDaaf92qWgd+7nAeap5LtHTI51KXqmpIFCceKU3K9+vIVTUH72bOJngBMqa4kyu1VJhRcSrk/CQ==",
-      "dependencies": {
-        "@smithy/middleware-endpoint": "^2.5.1",
-        "@smithy/middleware-stack": "^2.2.0",
-        "@smithy/protocol-http": "^3.3.0",
-        "@smithy/types": "^2.12.0",
-        "@smithy/util-stream": "^2.2.0",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/smithy-client/-/smithy-client-3.0.1.tgz",
+      "integrity": "sha512-KAiFY4Y4jdHxR+4zerH/VBhaFKM8pbaVmJZ/CWJRwtM/CmwzTfXfvYwf6GoUwiHepdv+lwiOXCuOl6UBDUEINw==",
+      "dependencies": {
+        "@smithy/middleware-endpoint": "^3.0.0",
+        "@smithy/middleware-stack": "^3.0.0",
+        "@smithy/protocol-http": "^4.0.0",
+        "@smithy/types": "^3.0.0",
+        "@smithy/util-stream": "^3.0.1",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/types": {
-      "version": "2.12.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/types/-/types-2.12.0.tgz",
-      "integrity": "sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/types/-/types-3.0.0.tgz",
+      "integrity": "sha512-VvWuQk2RKFuOr98gFhjca7fkBS+xLLURT8bUjk5XQoV0ZLm7WPwWPPY3/AwzTLuUBDeoKDCthfe1AsTUWaSEhw==",
       "dependencies": {
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/url-parser": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/url-parser/-/url-parser-2.2.0.tgz",
-      "integrity": "sha512-hoA4zm61q1mNTpksiSWp2nEl1dt3j726HdRhiNgVJQMj7mLp7dprtF57mOB6JvEk/x9d2bsuL5hlqZbBuHQylQ==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/url-parser/-/url-parser-3.0.0.tgz",
+      "integrity": "sha512-2XLazFgUu+YOGHtWihB3FSLAfCUajVfNBXGGYjOaVKjLAuAxx3pSBY3hBgLzIgB17haf59gOG3imKqTy8mcrjw==",
       "dependencies": {
-        "@smithy/querystring-parser": "^2.2.0",
-        "@smithy/types": "^2.12.0",
+        "@smithy/querystring-parser": "^3.0.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       }
     },
     "node_modules/@smithy/util-base64": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-base64/-/util-base64-2.3.0.tgz",
-      "integrity": "sha512-s3+eVwNeJuXUwuMbusncZNViuhv2LjVJ1nMwTqSA0XAC7gjKhqqxRdJPhR8+YrkoZ9IiIbFk/yK6ACe/xlF+hw==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-base64/-/util-base64-3.0.0.tgz",
+      "integrity": "sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==",
       "dependencies": {
-        "@smithy/util-buffer-from": "^2.2.0",
-        "@smithy/util-utf8": "^2.3.0",
+        "@smithy/util-buffer-from": "^3.0.0",
+        "@smithy/util-utf8": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/util-body-length-browser": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-body-length-browser/-/util-body-length-browser-2.2.0.tgz",
-      "integrity": "sha512-dtpw9uQP7W+n3vOtx0CfBD5EWd7EPdIdsQnWTDoFf77e3VUf05uA7R7TGipIo8e4WL2kuPdnsr3hMQn9ziYj5w==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-body-length-browser/-/util-body-length-browser-3.0.0.tgz",
+      "integrity": "sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==",
       "dependencies": {
         "tslib": "^2.6.2"
       }
     },
     "node_modules/@smithy/util-body-length-node": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-body-length-node/-/util-body-length-node-2.3.0.tgz",
-      "integrity": "sha512-ITWT1Wqjubf2CJthb0BuT9+bpzBfXeMokH/AAa5EJQgbv9aPMVfnM76iFIZVFf50hYXGbtiV71BHAthNWd6+dw==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-body-length-node/-/util-body-length-node-3.0.0.tgz",
+      "integrity": "sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==",
       "dependencies": {
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/util-buffer-from": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
-      "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-buffer-from/-/util-buffer-from-3.0.0.tgz",
+      "integrity": "sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==",
       "dependencies": {
-        "@smithy/is-array-buffer": "^2.2.0",
+        "@smithy/is-array-buffer": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/util-config-provider": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-config-provider/-/util-config-provider-2.3.0.tgz",
-      "integrity": "sha512-HZkzrRcuFN1k70RLqlNK4FnPXKOpkik1+4JaBoHNJn+RnJGYqaa3c5/+XtLOXhlKzlRgNvyaLieHTW2VwGN0VQ==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-config-provider/-/util-config-provider-3.0.0.tgz",
+      "integrity": "sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==",
       "dependencies": {
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/util-defaults-mode-browser": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.2.1.tgz",
-      "integrity": "sha512-RtKW+8j8skk17SYowucwRUjeh4mCtnm5odCL0Lm2NtHQBsYKrNW0od9Rhopu9wF1gHMfHeWF7i90NwBz/U22Kw==",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.1.tgz",
+      "integrity": "sha512-nW5kEzdJn1Bn5TF+gOPHh2rcPli8JU9vSSXLbfg7uPnfR1TMRQqs9zlYRhIb87NeSxIbpdXOI94tvXSy+fvDYg==",
       "dependencies": {
-        "@smithy/property-provider": "^2.2.0",
-        "@smithy/smithy-client": "^2.5.1",
-        "@smithy/types": "^2.12.0",
+        "@smithy/property-provider": "^3.0.0",
+        "@smithy/smithy-client": "^3.0.1",
+        "@smithy/types": "^3.0.0",
         "bowser": "^2.11.0",
         "tslib": "^2.6.2"
       },
@@ -1954,16 +1957,16 @@
       }
     },
     "node_modules/@smithy/util-defaults-mode-node": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.3.1.tgz",
-      "integrity": "sha512-vkMXHQ0BcLFysBMWgSBLSk3+leMpFSyyFj8zQtv5ZyUBx8/owVh1/pPEkzmW/DR/Gy/5c8vjLDD9gZjXNKbrpA==",
-      "dependencies": {
-        "@smithy/config-resolver": "^2.2.0",
-        "@smithy/credential-provider-imds": "^2.3.0",
-        "@smithy/node-config-provider": "^2.3.0",
-        "@smithy/property-provider": "^2.2.0",
-        "@smithy/smithy-client": "^2.5.1",
-        "@smithy/types": "^2.12.0",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.1.tgz",
+      "integrity": "sha512-TFk+Qb+elLc/MOhtSp+50fstyfZ6avQbgH2d96xUBpeScu+Al9elxv+UFAjaTHe0HQe5n+wem8ZLpXvU8lwV6Q==",
+      "dependencies": {
+        "@smithy/config-resolver": "^3.0.0",
+        "@smithy/credential-provider-imds": "^3.0.0",
+        "@smithy/node-config-provider": "^3.0.0",
+        "@smithy/property-provider": "^3.0.0",
+        "@smithy/smithy-client": "^3.0.1",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
@@ -1971,158 +1974,99 @@
       }
     },
     "node_modules/@smithy/util-endpoints": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-endpoints/-/util-endpoints-1.2.0.tgz",
-      "integrity": "sha512-BuDHv8zRjsE5zXd3PxFXFknzBG3owCpjq8G3FcsXW3CykYXuEqM3nTSsmLzw5q+T12ZYuDlVUZKBdpNbhVtlrQ==",
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-endpoints/-/util-endpoints-2.0.0.tgz",
+      "integrity": "sha512-+exaXzEY3DNt2qtA2OtRNSDlVrE4p32j1JSsQkzA5AdP0YtJNjkYbYhJxkFmPYcjI1abuwopOZCwUmv682QkiQ==",
       "dependencies": {
-        "@smithy/node-config-provider": "^2.3.0",
-        "@smithy/types": "^2.12.0",
+        "@smithy/node-config-provider": "^3.0.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">= 14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/util-hex-encoding": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-hex-encoding/-/util-hex-encoding-2.2.0.tgz",
-      "integrity": "sha512-7iKXR+/4TpLK194pVjKiasIyqMtTYJsgKgM242Y9uzt5dhHnUDvMNb+3xIhRJ9QhvqGii/5cRUt4fJn3dtXNHQ==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-hex-encoding/-/util-hex-encoding-3.0.0.tgz",
+      "integrity": "sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==",
       "dependencies": {
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/util-middleware": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-middleware/-/util-middleware-2.2.0.tgz",
-      "integrity": "sha512-L1qpleXf9QD6LwLCJ5jddGkgWyuSvWBkJwWAZ6kFkdifdso+sk3L3O1HdmPvCdnCK3IS4qWyPxev01QMnfHSBw==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-middleware/-/util-middleware-3.0.0.tgz",
+      "integrity": "sha512-q5ITdOnV2pXHSVDnKWrwgSNTDBAMHLptFE07ua/5Ty5WJ11bvr0vk2a7agu7qRhrCFRQlno5u3CneU5EELK+DQ==",
       "dependencies": {
-        "@smithy/types": "^2.12.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/util-retry": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-retry/-/util-retry-2.2.0.tgz",
-      "integrity": "sha512-q9+pAFPTfftHXRytmZ7GzLFFrEGavqapFc06XxzZFcSIGERXMerXxCitjOG1prVDR9QdjqotF40SWvbqcCpf8g==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-retry/-/util-retry-3.0.0.tgz",
+      "integrity": "sha512-nK99bvJiziGv/UOKJlDvFF45F00WgPLKVIGUfAK+mDhzVN2hb/S33uW2Tlhg5PVBoqY7tDVqL0zmu4OxAHgo9g==",
       "dependencies": {
-        "@smithy/service-error-classification": "^2.1.5",
-        "@smithy/types": "^2.12.0",
+        "@smithy/service-error-classification": "^3.0.0",
+        "@smithy/types": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">= 14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/util-stream": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-stream/-/util-stream-2.2.0.tgz",
-      "integrity": "sha512-17faEXbYWIRst1aU9SvPZyMdWmqIrduZjVOqCPMIsWFNxs5yQQgFrJL6b2SdiCzyW9mJoDjFtgi53xx7EH+BXA==",
-      "dependencies": {
-        "@smithy/fetch-http-handler": "^2.5.0",
-        "@smithy/node-http-handler": "^2.5.0",
-        "@smithy/types": "^2.12.0",
-        "@smithy/util-base64": "^2.3.0",
-        "@smithy/util-buffer-from": "^2.2.0",
-        "@smithy/util-hex-encoding": "^2.2.0",
-        "@smithy/util-utf8": "^2.3.0",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-stream/-/util-stream-3.0.1.tgz",
+      "integrity": "sha512-7F7VNNhAsfMRA8I986YdOY5fE0/T1/ZjFF6OLsqkvQVNP3vZ/szYDfGCyphb7ioA09r32K/0qbSFfNFU68aSzA==",
+      "dependencies": {
+        "@smithy/fetch-http-handler": "^3.0.1",
+        "@smithy/node-http-handler": "^3.0.0",
+        "@smithy/types": "^3.0.0",
+        "@smithy/util-base64": "^3.0.0",
+        "@smithy/util-buffer-from": "^3.0.0",
+        "@smithy/util-hex-encoding": "^3.0.0",
+        "@smithy/util-utf8": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/util-uri-escape": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-uri-escape/-/util-uri-escape-2.2.0.tgz",
-      "integrity": "sha512-jtmJMyt1xMD/d8OtbVJ2gFZOSKc+ueYJZPW20ULW1GOp/q/YIM0wNh+u8ZFao9UaIGz4WoPW8hC64qlWLIfoDA==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-uri-escape/-/util-uri-escape-3.0.0.tgz",
+      "integrity": "sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==",
       "dependencies": {
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
+        "node": ">=16.0.0"
       }
     },
     "node_modules/@smithy/util-utf8": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
-      "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==",
+      "version": "3.0.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-utf8/-/util-utf8-3.0.0.tgz",
+      "integrity": "sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==",
       "dependencies": {
-        "@smithy/util-buffer-from": "^2.2.0",
+        "@smithy/util-buffer-from": "^3.0.0",
         "tslib": "^2.6.2"
       },
       "engines": {
-        "node": ">=14.0.0"
-      }
-    },
-    "node_modules/@types/babel__core": {
-      "version": "7.20.5",
-      "resolved": "https://registry.npmmirror.com/@types/babel__core/-/babel__core-7.20.5.tgz",
-      "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
-      "dependencies": {
-        "@babel/parser": "^7.20.7",
-        "@babel/types": "^7.20.7",
-        "@types/babel__generator": "*",
-        "@types/babel__template": "*",
-        "@types/babel__traverse": "*"
-      }
-    },
-    "node_modules/@types/babel__generator": {
-      "version": "7.6.8",
-      "resolved": "https://registry.npmmirror.com/@types/babel__generator/-/babel__generator-7.6.8.tgz",
-      "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==",
-      "dependencies": {
-        "@babel/types": "^7.0.0"
-      }
-    },
-    "node_modules/@types/babel__template": {
-      "version": "7.4.4",
-      "resolved": "https://registry.npmmirror.com/@types/babel__template/-/babel__template-7.4.4.tgz",
-      "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
-      "dependencies": {
-        "@babel/parser": "^7.1.0",
-        "@babel/types": "^7.0.0"
+        "node": ">=16.0.0"
       }
     },
-    "node_modules/@types/babel__traverse": {
-      "version": "7.20.5",
-      "resolved": "https://registry.npmmirror.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz",
-      "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==",
-      "dependencies": {
-        "@babel/types": "^7.20.7"
-      }
-    },
-    "node_modules/@types/chai": {
-      "version": "4.3.14",
-      "resolved": "https://registry.npmmirror.com/@types/chai/-/chai-4.3.14.tgz",
-      "integrity": "sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w=="
-    },
-    "node_modules/@types/sinon": {
-      "version": "17.0.3",
-      "resolved": "https://registry.npmmirror.com/@types/sinon/-/sinon-17.0.3.tgz",
-      "integrity": "sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw==",
-      "dependencies": {
-        "@types/sinonjs__fake-timers": "*"
-      }
-    },
-    "node_modules/@types/sinon-chai": {
-      "version": "3.2.12",
-      "resolved": "https://registry.npmmirror.com/@types/sinon-chai/-/sinon-chai-3.2.12.tgz",
-      "integrity": "sha512-9y0Gflk3b0+NhQZ/oxGtaAJDvRywCa5sIyaVnounqLvmf93yBF4EgIRspePtkMs3Tr844nCclYMlcCNmLCvjuQ==",
-      "dependencies": {
-        "@types/chai": "*",
-        "@types/sinon": "*"
-      }
-    },
-    "node_modules/@types/sinonjs__fake-timers": {
-      "version": "8.1.5",
-      "resolved": "https://registry.npmmirror.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz",
-      "integrity": "sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ=="
+    "node_modules/@tootallnate/quickjs-emscripten": {
+      "version": "0.23.0",
+      "resolved": "https://registry.npmmirror.com/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz",
+      "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA=="
     },
     "node_modules/@types/webidl-conversions": {
       "version": "7.0.3",
@@ -2130,9 +2074,9 @@
       "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA=="
     },
     "node_modules/@types/whatwg-url": {
-      "version": "11.0.4",
-      "resolved": "https://registry.npmmirror.com/@types/whatwg-url/-/whatwg-url-11.0.4.tgz",
-      "integrity": "sha512-lXCmTWSHJvf0TRSO58nm978b8HJ/EdsSsEKLd3ODHFjo+3VGAyyTp4v50nWvwtzBxSMQrVOK7tcuN0zGPLICMw==",
+      "version": "11.0.5",
+      "resolved": "https://registry.npmmirror.com/@types/whatwg-url/-/whatwg-url-11.0.5.tgz",
+      "integrity": "sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==",
       "dependencies": {
         "@types/webidl-conversions": "*"
       }
@@ -2244,6 +2188,17 @@
         "acorn": "^6.1.0 || ^7 || ^8"
       }
     },
+    "node_modules/agent-base": {
+      "version": "7.1.1",
+      "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-7.1.1.tgz",
+      "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
+      "dependencies": {
+        "debug": "^4.3.4"
+      },
+      "engines": {
+        "node": ">= 14"
+      }
+    },
     "node_modules/ansi-escape-sequences": {
       "version": "5.1.2",
       "resolved": "https://registry.npmmirror.com/ansi-escape-sequences/-/ansi-escape-sequences-5.1.2.tgz",
@@ -2293,20 +2248,31 @@
       "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
     },
     "node_modules/askcharacter": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/askcharacter/-/askcharacter-1.0.0.tgz",
-      "integrity": "sha512-WsJcKyOh7iOWQSWcwPVE//yDUSXn3WvL+bgT9JYdEuiY/xeg1Vgwl5re72ZzufhXOwoiCrWWxW4CscRrxb3kZg==",
+      "version": "2.0.4",
+      "resolved": "https://registry.npmmirror.com/askcharacter/-/askcharacter-2.0.4.tgz",
+      "integrity": "sha512-SlLS4gA0/6BTcmUfuwySw5n3m8aOI3QlT3GTcQkmJwAVM/olola+S+g/FXggApIidQEKklLfGBZEmZ7Ru69CQw==",
       "dependencies": {
-        "hijack-stream": "^1.0.0"
+        "hijack-stream": "^2.0.0"
       }
     },
     "node_modules/askpassword": {
-      "version": "1.2.4",
-      "resolved": "https://registry.npmmirror.com/askpassword/-/askpassword-1.2.4.tgz",
-      "integrity": "sha512-HR27ScUv/j6vHSKU0AN+y3pGA3iqXzD09qqJl6JjVqSJRk7QiKPJt+W4tFhozMbiTsOh/QrIkeRi+Okd97VkRA==",
+      "version": "2.0.2",
+      "resolved": "https://registry.npmmirror.com/askpassword/-/askpassword-2.0.2.tgz",
+      "integrity": "sha512-9j9uyceJQ8rezozTs8pM0cc+b+kn0UbfohhoMii4o/4YRj1IntvCCtRBDYG7bcbL+8f2xJ53Y34WXTUnzgcUyg==",
       "dependencies": {
-        "handle-backspaces": "^1.0.0",
-        "hijack-stream": "^1.0.0"
+        "handle-backspaces": "^2.0.0",
+        "hijack-stream": "^2.0.0"
+      }
+    },
+    "node_modules/ast-types": {
+      "version": "0.13.4",
+      "resolved": "https://registry.npmmirror.com/ast-types/-/ast-types-0.13.4.tgz",
+      "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==",
+      "dependencies": {
+        "tslib": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=4"
       }
     },
     "node_modules/aws4": {
@@ -2338,6 +2304,14 @@
         }
       ]
     },
+    "node_modules/basic-ftp": {
+      "version": "5.0.5",
+      "resolved": "https://registry.npmmirror.com/basic-ftp/-/basic-ftp-5.0.5.tgz",
+      "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==",
+      "engines": {
+        "node": ">=10.0.0"
+      }
+    },
     "node_modules/big-integer": {
       "version": "1.6.52",
       "resolved": "https://registry.npmmirror.com/big-integer/-/big-integer-1.6.52.tgz",
@@ -2482,9 +2456,9 @@
       }
     },
     "node_modules/bson": {
-      "version": "6.6.0",
-      "resolved": "https://registry.npmmirror.com/bson/-/bson-6.6.0.tgz",
-      "integrity": "sha512-BVINv2SgcMjL4oYbBuCQTpE3/VKOSxrOA8Cj/wQP7izSzlBGVomdm+TcUd0Pzy0ytLSSDweCKQ6X3f5veM5LQA==",
+      "version": "6.7.0",
+      "resolved": "https://registry.npmmirror.com/bson/-/bson-6.7.0.tgz",
+      "integrity": "sha512-w2IquM5mYzYZv6rs3uN2DZTOBe2a0zXLj53TGDqwF4l6Sz/XsISrisXOJihArF9+BZ6Cq/GjVht7Sjfmri7ytQ==",
       "engines": {
         "node": ">=16.20.1"
       }
@@ -2553,9 +2527,9 @@
       }
     },
     "node_modules/caniuse-lite": {
-      "version": "1.0.30001612",
-      "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001612.tgz",
-      "integrity": "sha512-lFgnZ07UhaCcsSZgWW0K5j4e69dK1u/ltrL9lTUiFOwNHs12S3UMIEYgBV0Z6C6hRDev7iRnMzzYmKabYdXF9g==",
+      "version": "1.0.30001620",
+      "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz",
+      "integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==",
       "funding": [
         {
           "type": "opencollective",
@@ -2787,6 +2761,19 @@
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
+    "node_modules/degenerator": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmmirror.com/degenerator/-/degenerator-5.0.1.tgz",
+      "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==",
+      "dependencies": {
+        "ast-types": "^0.13.4",
+        "escodegen": "^2.1.0",
+        "esprima": "^4.0.1"
+      },
+      "engines": {
+        "node": ">= 14"
+      }
+    },
     "node_modules/depd": {
       "version": "2.0.0",
       "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz",
@@ -2849,9 +2836,9 @@
       "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
     },
     "node_modules/electron-to-chromium": {
-      "version": "1.4.748",
-      "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.748.tgz",
-      "integrity": "sha512-VWqjOlPZn70UZ8FTKUOkUvBLeTQ0xpty66qV0yJcAGY2/CthI4xyW9aEozRVtuwv3Kpf5xTesmJUcPwuJmgP4A=="
+      "version": "1.4.774",
+      "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.774.tgz",
+      "integrity": "sha512-132O1XCd7zcTkzS3FgkAzKmnBuNJjK8WjcTtNuoylj7MYbqw5eXehjQ5OK91g0zm7OTKIPeaAG4CPoRfD9M1Mg=="
     },
     "node_modules/emoji-regex": {
       "version": "9.2.2",
@@ -2996,6 +2983,54 @@
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
+    "node_modules/escodegen": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/escodegen/-/escodegen-2.1.0.tgz",
+      "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==",
+      "dependencies": {
+        "esprima": "^4.0.1",
+        "estraverse": "^5.2.0",
+        "esutils": "^2.0.2"
+      },
+      "bin": {
+        "escodegen": "bin/escodegen.js",
+        "esgenerate": "bin/esgenerate.js"
+      },
+      "engines": {
+        "node": ">=6.0"
+      },
+      "optionalDependencies": {
+        "source-map": "~0.6.1"
+      }
+    },
+    "node_modules/esprima": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz",
+      "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+      "bin": {
+        "esparse": "bin/esparse.js",
+        "esvalidate": "bin/esvalidate.js"
+      },
+      "engines": {
+        "node": ">=4"
+      }
+    },
+    "node_modules/estraverse": {
+      "version": "5.3.0",
+      "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz",
+      "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+      "engines": {
+        "node": ">=4.0"
+      }
+    },
+    "node_modules/esutils": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz",
+      "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
     "node_modules/etag": {
       "version": "1.8.1",
       "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz",
@@ -3249,6 +3284,19 @@
       "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
       "optional": true
     },
+    "node_modules/fs-extra": {
+      "version": "11.2.0",
+      "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-11.2.0.tgz",
+      "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
+      "dependencies": {
+        "graceful-fs": "^4.2.0",
+        "jsonfile": "^6.0.1",
+        "universalify": "^2.0.0"
+      },
+      "engines": {
+        "node": ">=14.14"
+      }
+    },
     "node_modules/fs-minipass": {
       "version": "2.1.0",
       "resolved": "https://registry.npmmirror.com/fs-minipass/-/fs-minipass-2.1.0.tgz",
@@ -3335,6 +3383,28 @@
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
+    "node_modules/get-uri": {
+      "version": "6.0.3",
+      "resolved": "https://registry.npmmirror.com/get-uri/-/get-uri-6.0.3.tgz",
+      "integrity": "sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==",
+      "dependencies": {
+        "basic-ftp": "^5.0.2",
+        "data-uri-to-buffer": "^6.0.2",
+        "debug": "^4.3.4",
+        "fs-extra": "^11.2.0"
+      },
+      "engines": {
+        "node": ">= 14"
+      }
+    },
+    "node_modules/get-uri/node_modules/data-uri-to-buffer": {
+      "version": "6.0.2",
+      "resolved": "https://registry.npmmirror.com/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz",
+      "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==",
+      "engines": {
+        "node": ">= 14"
+      }
+    },
     "node_modules/github-from-package": {
       "version": "0.0.0",
       "resolved": "https://registry.npmmirror.com/github-from-package/-/github-from-package-0.0.0.tgz",
@@ -3365,21 +3435,21 @@
       }
     },
     "node_modules/glob": {
-      "version": "10.3.12",
-      "resolved": "https://registry.npmmirror.com/glob/-/glob-10.3.12.tgz",
-      "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==",
+      "version": "10.3.15",
+      "resolved": "https://registry.npmmirror.com/glob/-/glob-10.3.15.tgz",
+      "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==",
       "dependencies": {
         "foreground-child": "^3.1.0",
         "jackspeak": "^2.3.6",
         "minimatch": "^9.0.1",
         "minipass": "^7.0.4",
-        "path-scurry": "^1.10.2"
+        "path-scurry": "^1.11.0"
       },
       "bin": {
         "glob": "dist/esm/bin.mjs"
       },
       "engines": {
-        "node": ">=16 || 14 >=14.17"
+        "node": ">=16 || 14 >=14.18"
       },
       "funding": {
         "url": "https://github.com/sponsors/isaacs"
@@ -3404,10 +3474,15 @@
         "url": "https://github.com/sponsors/ljharb"
       }
     },
+    "node_modules/graceful-fs": {
+      "version": "4.2.11",
+      "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz",
+      "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
+    },
     "node_modules/handle-backspaces": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/handle-backspaces/-/handle-backspaces-1.0.0.tgz",
-      "integrity": "sha512-w11NXUn51gVN50nTW5MOuhKuko9xZonnHDe5LlapaOZvuyxDXVDn9b1ZtG0IJTABGbL/UGeSitqHgo9Bb7nDhQ=="
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/handle-backspaces/-/handle-backspaces-2.0.1.tgz",
+      "integrity": "sha512-l6yTgp6ihz8SjmzFOnYzuGqcqFMHGlTCiPMGmFRv0Yl4SnVq71l4miKYOAQ4cxUCjMfclzQYc0PvrmIHZETZYw=="
     },
     "node_modules/has-flag": {
       "version": "3.0.0",
@@ -3478,9 +3553,9 @@
       }
     },
     "node_modules/hijack-stream": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/hijack-stream/-/hijack-stream-1.0.0.tgz",
-      "integrity": "sha512-9riBbIorIgSvsLQHL/rKEK6vJBexhgSRZC/tkieuei7a1U+CHgrXJVqW+RPswgEyuPbxcGCpx0QXO3iJuKRrrw=="
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/hijack-stream/-/hijack-stream-2.0.1.tgz",
+      "integrity": "sha512-RDOUBy7x+iz6ljj7qQOjXZv3RKFLGjXTYV0Kdl7K3R3YlxqoyFt7PLxfbw3yYriHzZSzXp7Y/oaw1f58YvL1ig=="
     },
     "node_modules/http-errors": {
       "version": "2.0.0",
@@ -3497,6 +3572,30 @@
         "node": ">= 0.8"
       }
     },
+    "node_modules/http-proxy-agent": {
+      "version": "7.0.2",
+      "resolved": "https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
+      "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
+      "dependencies": {
+        "agent-base": "^7.1.0",
+        "debug": "^4.3.4"
+      },
+      "engines": {
+        "node": ">= 14"
+      }
+    },
+    "node_modules/https-proxy-agent": {
+      "version": "7.0.4",
+      "resolved": "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz",
+      "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==",
+      "dependencies": {
+        "agent-base": "^7.0.2",
+        "debug": "4"
+      },
+      "engines": {
+        "node": ">= 14"
+      }
+    },
     "node_modules/human-signals": {
       "version": "4.3.1",
       "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-4.3.1.tgz",
@@ -3681,9 +3780,9 @@
       }
     },
     "node_modules/joi": {
-      "version": "17.13.0",
-      "resolved": "https://registry.npmmirror.com/joi/-/joi-17.13.0.tgz",
-      "integrity": "sha512-9qcrTyoBmFZRNHeVP4edKqIUEgFzq7MHvTNSDuHSqkpOPtiBkgNgcmTSqmiw1kw9tdKaiddvIDv/eCJDxmqWCA==",
+      "version": "17.13.1",
+      "resolved": "https://registry.npmmirror.com/joi/-/joi-17.13.1.tgz",
+      "integrity": "sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg==",
       "dependencies": {
         "@hapi/hoek": "^9.3.0",
         "@hapi/topo": "^5.1.0",
@@ -3771,6 +3870,17 @@
         "node": ">=6"
       }
     },
+    "node_modules/jsonfile": {
+      "version": "6.1.0",
+      "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz",
+      "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+      "dependencies": {
+        "universalify": "^2.0.0"
+      },
+      "optionalDependencies": {
+        "graceful-fs": "^4.1.6"
+      }
+    },
     "node_modules/kerberos": {
       "version": "2.1.0",
       "resolved": "https://registry.npmmirror.com/kerberos/-/kerberos-2.1.0.tgz",
@@ -3824,9 +3934,9 @@
       }
     },
     "node_modules/macos-export-certificate-and-key": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmmirror.com/macos-export-certificate-and-key/-/macos-export-certificate-and-key-1.1.1.tgz",
-      "integrity": "sha512-J2g0dJRLG3DghmdCkbJnif/zPmSylj6ql//xBYff5allzNlHPnWxRoyho9XznBYLbPJw4jZlKjMO69jtV8VC7Q==",
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/macos-export-certificate-and-key/-/macos-export-certificate-and-key-1.1.2.tgz",
+      "integrity": "sha512-kd4ba3kVKZXy46p4tg3X19dmwaXjtz0La5It6Rt6PbtwP+YcQ0F7ab8MjcSHOvz9NSXmAU15qQG53OlBDAPDzQ==",
       "hasInstallScript": true,
       "optional": true,
       "os": [
@@ -3945,9 +4055,9 @@
       }
     },
     "node_modules/minipass": {
-      "version": "7.0.4",
-      "resolved": "https://registry.npmmirror.com/minipass/-/minipass-7.0.4.tgz",
-      "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
+      "version": "7.1.1",
+      "resolved": "https://registry.npmmirror.com/minipass/-/minipass-7.1.1.tgz",
+      "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==",
       "engines": {
         "node": ">=16 || 14 >=14.17"
       }
@@ -3998,12 +4108,12 @@
       "optional": true
     },
     "node_modules/mongodb": {
-      "version": "6.5.0",
-      "resolved": "https://registry.npmmirror.com/mongodb/-/mongodb-6.5.0.tgz",
-      "integrity": "sha512-Fozq68InT+JKABGLqctgtb8P56pRrJFkbhW0ux+x1mdHeyinor8oNzJqwLjV/t5X5nJGfTlluxfyMnOXNggIUA==",
+      "version": "6.6.2",
+      "resolved": "https://registry.npmmirror.com/mongodb/-/mongodb-6.6.2.tgz",
+      "integrity": "sha512-ZF9Ugo2JCG/GfR7DEb4ypfyJJyiKbg5qBYKRintebj8+DNS33CyGMkWbrS9lara+u+h+yEOGSRiLhFO/g1s1aw==",
       "dependencies": {
         "@mongodb-js/saslprep": "^1.1.5",
-        "bson": "^6.4.0",
+        "bson": "^6.7.0",
         "mongodb-connection-string-url": "^3.0.0"
       },
       "engines": {
@@ -4043,9 +4153,9 @@
       }
     },
     "node_modules/mongodb-build-info": {
-      "version": "1.7.1",
-      "resolved": "https://registry.npmmirror.com/mongodb-build-info/-/mongodb-build-info-1.7.1.tgz",
-      "integrity": "sha512-he4lTotY5AkGSc4Js9Dtqvx4W7x5JSNa9xtvR08y1tUyhglHG1tV+NnuUTrysXA0hNHMMvOd/Hh4Ez9Po84p1g==",
+      "version": "1.7.2",
+      "resolved": "https://registry.npmmirror.com/mongodb-build-info/-/mongodb-build-info-1.7.2.tgz",
+      "integrity": "sha512-eoLFZvCIjcwijYJdxvYupj1c+55VAVm0o4gBJjrcDxxmmpm+bC4Ix9ayZbyhQdVXDZAGDi03NA0GghXjBVXnxg==",
       "dependencies": {
         "mongodb-connection-string-url": "^3.0.0"
       }
@@ -4066,18 +4176,18 @@
       }
     },
     "node_modules/mongodb-connection-string-url": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmmirror.com/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.0.tgz",
-      "integrity": "sha512-t1Vf+m1I5hC2M5RJx/7AtxgABy1cZmIPQRMXw+gEIPn/cZNF3Oiy+l0UIypUwVB5trcWHq3crg2g3uAR9aAwsQ==",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.1.tgz",
+      "integrity": "sha512-XqMGwRX0Lgn05TDB4PyG2h2kKO/FfWJyCzYQbIhXUxz7ETt0I/FqHjUeqj37irJ+Dl1ZtU82uYyj14u2XsZKfg==",
       "dependencies": {
         "@types/whatwg-url": "^11.0.2",
         "whatwg-url": "^13.0.0"
       }
     },
     "node_modules/mongodb-crypt-library-version": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmmirror.com/mongodb-crypt-library-version/-/mongodb-crypt-library-version-1.0.3.tgz",
-      "integrity": "sha512-w+T89kF9fC7npcf7m/+OUeXasf5TSL0GlugOCxzdXQFykV5MdU2yvcuuDZz4MD1pJickvGxBcw41jGg2s4lJ0g==",
+      "version": "1.0.5",
+      "resolved": "https://registry.npmmirror.com/mongodb-crypt-library-version/-/mongodb-crypt-library-version-1.0.5.tgz",
+      "integrity": "sha512-RLTxgBOpK1Ht1FvGpitI6EkFuYGk/CB6ImDJHzB9Iv/iKwVANu4OynaiJOoZQQTaZZCetmyAgMXwNHhMLCRyJw==",
       "hasInstallScript": true,
       "optional": true,
       "dependencies": {
@@ -4089,18 +4199,18 @@
       }
     },
     "node_modules/mongodb-log-writer": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmmirror.com/mongodb-log-writer/-/mongodb-log-writer-1.4.0.tgz",
-      "integrity": "sha512-hQrn8Xu58Z9uLmd2oncvu/b5KNxxKaW6MUrVRI/xObz/yzYNVWF3V4rgK9Ort72nOCmMD3PWOS+ZoZBtxgKibA==",
+      "version": "1.4.2",
+      "resolved": "https://registry.npmmirror.com/mongodb-log-writer/-/mongodb-log-writer-1.4.2.tgz",
+      "integrity": "sha512-ZQYBgW1IZtuRWsv9hF0mjpfDg6usMawkkWKnFb/goXosbW0YyxVA9OHt32TJfppGK/U2p7jQx4V9DxRFsFmmKw==",
       "dependencies": {
         "bson": "^4.5.1 || ^5.0.0 || ^6.0.0",
         "heap-js": "^2.3.0"
       }
     },
     "node_modules/mongodb-redact": {
-      "version": "0.2.2",
-      "resolved": "https://registry.npmmirror.com/mongodb-redact/-/mongodb-redact-0.2.2.tgz",
-      "integrity": "sha512-tmgDpSBymFtKggsLzpa0vDYaqh2wEXOswBZtJkXvbPKP0ThfPwoFYXtOukactU6WZsC4RYmpSPM4P6582FR/Xw==",
+      "version": "0.2.3",
+      "resolved": "https://registry.npmmirror.com/mongodb-redact/-/mongodb-redact-0.2.3.tgz",
+      "integrity": "sha512-a6ZPWlC9yf6F/n6ylKyyTO2PXZeD6nPKWwBmAIlOtOH4v82DIfsgO4Bpml10/YSwFxF1+VY8NHohmxofzpB4Yw==",
       "dependencies": {
         "lodash": "^4.17.15"
       }
@@ -4124,6 +4234,14 @@
         "node": ">= 0.6"
       }
     },
+    "node_modules/netmask": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmmirror.com/netmask/-/netmask-2.0.2.tgz",
+      "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==",
+      "engines": {
+        "node": ">= 0.4.0"
+      }
+    },
     "node_modules/node-abi": {
       "version": "3.62.0",
       "resolved": "https://registry.npmmirror.com/node-abi/-/node-abi-3.62.0.tgz",
@@ -4192,9 +4310,9 @@
       "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw=="
     },
     "node_modules/nopt": {
-      "version": "7.2.0",
-      "resolved": "https://registry.npmmirror.com/nopt/-/nopt-7.2.0.tgz",
-      "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==",
+      "version": "7.2.1",
+      "resolved": "https://registry.npmmirror.com/nopt/-/nopt-7.2.1.tgz",
+      "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==",
       "dependencies": {
         "abbrev": "^2.0.0"
       },
@@ -4356,6 +4474,36 @@
         "node-addon-api": "^4.3.0"
       }
     },
+    "node_modules/pac-proxy-agent": {
+      "version": "7.0.1",
+      "resolved": "https://registry.npmmirror.com/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz",
+      "integrity": "sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==",
+      "dependencies": {
+        "@tootallnate/quickjs-emscripten": "^0.23.0",
+        "agent-base": "^7.0.2",
+        "debug": "^4.3.4",
+        "get-uri": "^6.0.1",
+        "http-proxy-agent": "^7.0.0",
+        "https-proxy-agent": "^7.0.2",
+        "pac-resolver": "^7.0.0",
+        "socks-proxy-agent": "^8.0.2"
+      },
+      "engines": {
+        "node": ">= 14"
+      }
+    },
+    "node_modules/pac-resolver": {
+      "version": "7.0.1",
+      "resolved": "https://registry.npmmirror.com/pac-resolver/-/pac-resolver-7.0.1.tgz",
+      "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==",
+      "dependencies": {
+        "degenerator": "^5.0.0",
+        "netmask": "^2.0.2"
+      },
+      "engines": {
+        "node": ">= 14"
+      }
+    },
     "node_modules/parseurl": {
       "version": "1.3.3",
       "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz",
@@ -4373,24 +4521,24 @@
       }
     },
     "node_modules/path-scurry": {
-      "version": "1.10.2",
-      "resolved": "https://registry.npmmirror.com/path-scurry/-/path-scurry-1.10.2.tgz",
-      "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==",
+      "version": "1.11.1",
+      "resolved": "https://registry.npmmirror.com/path-scurry/-/path-scurry-1.11.1.tgz",
+      "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
       "dependencies": {
         "lru-cache": "^10.2.0",
         "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
       },
       "engines": {
-        "node": ">=16 || 14 >=14.17"
+        "node": ">=16 || 14 >=14.18"
       },
       "funding": {
         "url": "https://github.com/sponsors/isaacs"
       }
     },
     "node_modules/path-scurry/node_modules/lru-cache": {
-      "version": "10.2.0",
-      "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.2.0.tgz",
-      "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==",
+      "version": "10.2.2",
+      "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.2.2.tgz",
+      "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==",
       "engines": {
         "node": "14 || >=16.14"
       }
@@ -4401,9 +4549,9 @@
       "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
     },
     "node_modules/picocolors": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz",
-      "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.1.tgz",
+      "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew=="
     },
     "node_modules/prebuild-install": {
       "version": "7.1.1",
@@ -4432,9 +4580,9 @@
       }
     },
     "node_modules/pretty-repl": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/pretty-repl/-/pretty-repl-4.0.0.tgz",
-      "integrity": "sha512-2WmwcEXvMDQ3UVb/emuYb0M7dVVU1NSm7L7lf9nwGxvzWovUbLaXWUve8VqOoAO34GQBQ2l+nYcXY0HGllNc5Q==",
+      "version": "4.0.1",
+      "resolved": "https://registry.npmmirror.com/pretty-repl/-/pretty-repl-4.0.1.tgz",
+      "integrity": "sha512-Ve+ZNS5fwxylks3TTR4su7SaNAHVOh++7J5R8VKFAHIjmAMS8X79rnETc/JJoqay52cfgeHum7vm2+9hFSys9Q==",
       "dependencies": {
         "ansi-regex": "^5.0.1",
         "chalk": "^4.1.1",
@@ -4526,6 +4674,37 @@
         "node": ">= 0.10"
       }
     },
+    "node_modules/proxy-agent": {
+      "version": "6.4.0",
+      "resolved": "https://registry.npmmirror.com/proxy-agent/-/proxy-agent-6.4.0.tgz",
+      "integrity": "sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==",
+      "dependencies": {
+        "agent-base": "^7.0.2",
+        "debug": "^4.3.4",
+        "http-proxy-agent": "^7.0.1",
+        "https-proxy-agent": "^7.0.3",
+        "lru-cache": "^7.14.1",
+        "pac-proxy-agent": "^7.0.1",
+        "proxy-from-env": "^1.1.0",
+        "socks-proxy-agent": "^8.0.2"
+      },
+      "engines": {
+        "node": ">= 14"
+      }
+    },
+    "node_modules/proxy-agent/node_modules/lru-cache": {
+      "version": "7.18.3",
+      "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-7.18.3.tgz",
+      "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/proxy-from-env": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+      "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+    },
     "node_modules/pump": {
       "version": "3.0.0",
       "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.0.tgz",
@@ -4610,9 +4789,9 @@
       }
     },
     "node_modules/resolve-mongodb-srv": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmmirror.com/resolve-mongodb-srv/-/resolve-mongodb-srv-1.1.3.tgz",
-      "integrity": "sha512-TrD4ebxN+1wfGhTl1uEKPSReCK13OscqpatIFKabCivrfQSDeVB4GYxpbm5F7yryyniuCxiEDxyyJO3a0UPQjw==",
+      "version": "1.1.5",
+      "resolved": "https://registry.npmmirror.com/resolve-mongodb-srv/-/resolve-mongodb-srv-1.1.5.tgz",
+      "integrity": "sha512-flu1XTSLDJHvTnWu2aJh2w9jgGPcNYJn2obMkuzXiyWSz0MLXu9IRCjvirJ4zRoCPHJJPt3uLQVNJTrzFRWd1w==",
       "optional": true,
       "dependencies": {
         "whatwg-url": "^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0"
@@ -4747,12 +4926,9 @@
       "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
     },
     "node_modules/semver": {
-      "version": "7.6.0",
-      "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.0.tgz",
-      "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
-      "dependencies": {
-        "lru-cache": "^6.0.0"
-      },
+      "version": "7.6.2",
+      "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.2.tgz",
+      "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
       "bin": {
         "semver": "bin/semver.js"
       },
@@ -4760,22 +4936,6 @@
         "node": ">=10"
       }
     },
-    "node_modules/semver/node_modules/lru-cache": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
-      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-      "dependencies": {
-        "yallist": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
-    "node_modules/semver/node_modules/yallist": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
-      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
-    },
     "node_modules/send": {
       "version": "0.18.0",
       "resolved": "https://registry.npmmirror.com/send/-/send-0.18.0.tgz",
@@ -4966,6 +5126,28 @@
         "npm": ">= 3.0.0"
       }
     },
+    "node_modules/socks-proxy-agent": {
+      "version": "8.0.3",
+      "resolved": "https://registry.npmmirror.com/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz",
+      "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==",
+      "dependencies": {
+        "agent-base": "^7.1.1",
+        "debug": "^4.3.4",
+        "socks": "^2.7.1"
+      },
+      "engines": {
+        "node": ">= 14"
+      }
+    },
+    "node_modules/source-map": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
+      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+      "optional": true,
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
     "node_modules/sparse-bitfield": {
       "version": "3.0.3",
       "resolved": "https://registry.npmmirror.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
@@ -5116,9 +5298,9 @@
       }
     },
     "node_modules/system-ca": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/system-ca/-/system-ca-1.0.2.tgz",
-      "integrity": "sha512-/6CCJOKB5Fpi0x7/DCbV7uiFPgwGCeJsAaSondXS2DjLBv7ER2worVGvQWJqPM0kgOKO6auaCcSWpJKnrDmXjw==",
+      "version": "1.0.3",
+      "resolved": "https://registry.npmmirror.com/system-ca/-/system-ca-1.0.3.tgz",
+      "integrity": "sha512-FHwdyDHM/J6SjHNVEp532J5rWsO0oPB/szZGsP/8I2s78mPLQhE0WwKTGi/RJulqTICekINsczg5q44n/1b+lQ==",
       "optionalDependencies": {
         "macos-export-certificate-and-key": "^1.1.1",
         "win-export-certificate-and-key": "^1.1.1"
@@ -5259,6 +5441,14 @@
         "node": ">= 0.6"
       }
     },
+    "node_modules/universalify": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz",
+      "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+      "engines": {
+        "node": ">= 10.0.0"
+      }
+    },
     "node_modules/unpipe": {
       "version": "1.0.0",
       "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz",
@@ -5276,9 +5466,9 @@
       }
     },
     "node_modules/update-browserslist-db": {
-      "version": "1.0.13",
-      "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
-      "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
+      "version": "1.0.16",
+      "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz",
+      "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==",
       "funding": [
         {
           "type": "opencollective",
@@ -5294,8 +5484,8 @@
         }
       ],
       "dependencies": {
-        "escalade": "^3.1.1",
-        "picocolors": "^1.0.0"
+        "escalade": "^3.1.2",
+        "picocolors": "^1.0.1"
       },
       "bin": {
         "update-browserslist-db": "cli.js"
@@ -5381,9 +5571,9 @@
       }
     },
     "node_modules/win-export-certificate-and-key": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmmirror.com/win-export-certificate-and-key/-/win-export-certificate-and-key-1.1.1.tgz",
-      "integrity": "sha512-wvF1DKlbt/PLOSdnKzIqv0Ipj+87n2VYOJFbkqBoN7l3l244reT7Lf6+Dnu86bYVWoVpq3ZZG417OLNHFnkP6A==",
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/win-export-certificate-and-key/-/win-export-certificate-and-key-1.1.2.tgz",
+      "integrity": "sha512-3Su7Xdt9UR8pZicWQDcGSWNL6We/NzAGxe7AeQ1Z/zAeGHWlTKAh3HemGvIvxLRPsk4NW9D/QL3cL6SIvFcTvQ==",
       "hasInstallScript": true,
       "optional": true,
       "os": [
@@ -5391,10 +5581,16 @@
       ],
       "dependencies": {
         "bindings": "^1.5.0",
-        "node-addon-api": "^4.3.0",
+        "node-addon-api": "^3.1.0",
         "node-forge": "^1.2.1"
       }
     },
+    "node_modules/win-export-certificate-and-key/node_modules/node-addon-api": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmmirror.com/node-addon-api/-/node-addon-api-3.2.1.tgz",
+      "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==",
+      "optional": true
+    },
     "node_modules/wrap-ansi": {
       "version": "8.1.0",
       "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
diff --git a/pkgs/development/tools/mongosh/source.json b/pkgs/development/tools/mongosh/source.json
index c8989a8a2b1d9..a5d214f717008 100644
--- a/pkgs/development/tools/mongosh/source.json
+++ b/pkgs/development/tools/mongosh/source.json
@@ -1,6 +1,6 @@
 {
-  "version": "2.2.5",
-  "integrity": "sha512-kQ9X6xgWgE91whL8JMpLzucSiCFO+eCAH5BRiKJfvZOSUkG3VGc+JvRiffbtqq2KAA5nex4u0xEAl/SwlroPkg==",
-  "filename": "mongosh-2.2.5.tgz",
-  "deps": "sha256-PD3H45WEDP/DoCHCQuDNh/5Znca6f3TAOJL4wtQOnXI="
+  "version": "2.2.6",
+  "integrity": "sha512-ksL2zesQ82i6/km7ec4Ii3rtFDIPf4tmLDjkts/Kf+l6OGn54lox6sh/eDRMflggm8XYdFOYQFiLADzRtQwVOA==",
+  "filename": "mongosh-2.2.6.tgz",
+  "deps": "sha256-/zvqFRIGroP1YLSTlKv+ZKzB4c/Y78mn8BM8lnbqj/M="
 }
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix b/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
index ed68482d0a86f..54067eb63d217 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
@@ -5,12 +5,12 @@
 
 buildDunePackage rec {
   pname = "js_of_ocaml-compiler";
-  version = "5.8.1";
+  version = "5.8.2";
   minimalOCamlVersion = "4.08";
 
   src = fetchurl {
     url = "https://github.com/ocsigen/js_of_ocaml/releases/download/${version}/js_of_ocaml-${version}.tbz";
-    hash = "sha256-DohuELJzqMSNn0U9XEuHacofPrpe6VDgsYha3JQ/SlM=";
+    hash = "sha256-ciAZS9L5sU2VgVOlogZ1A1nXtJ3hL+iNdFDThc7L8Eo=";
   };
 
   nativeBuildInputs = [ menhir ];
diff --git a/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix b/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix
index fcb43938112d1..bad8dc09a1c1c 100644
--- a/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix
+++ b/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix
@@ -1,26 +1,16 @@
-{ lib, stdenv, fetchFromGitHub, ocamlPackages }:
+{ lib, fetchFromGitHub, ocamlPackages }:
 
-stdenv.mkDerivation rec {
+ocamlPackages.buildDunePackage rec {
   pname = "ocsigen-i18n";
-  version = "3.7.0";
+  version = "4.0.0";
 
-  strictDeps = true;
-
-  nativeBuildInputs = with ocamlPackages; [ ocaml findlib ];
-  buildInputs = with ocamlPackages; [ ppx_tools ];
-
-  dontStrip = true;
-
-  installPhase = ''
-    mkdir -p $out/bin
-    make bindir=$out/bin install
-  '';
+  buildInputs = with ocamlPackages; [ ppxlib ];
 
   src = fetchFromGitHub {
     owner = "besport";
     repo = "ocsigen-i18n";
     rev = version;
-    sha256 = "sha256-PmdDyn+MUcNFrZpP/KLGQzdXUFRr+dYRAZjTZxHSeaw=";
+    hash = "sha256-NIl1YUTws8Ff4nrqdhU7oS/TN0lxVQgrtyEZtpS1ojM=";
   };
 
   meta = {
diff --git a/pkgs/development/tools/okteto/default.nix b/pkgs/development/tools/okteto/default.nix
index 79514af491938..be53e197bd9bb 100644
--- a/pkgs/development/tools/okteto/default.nix
+++ b/pkgs/development/tools/okteto/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "okteto";
-  version = "2.27.1";
+  version = "2.27.2";
 
   src = fetchFromGitHub {
     owner = "okteto";
     repo = "okteto";
     rev = version;
-    hash = "sha256-CpU29+dVC/OHZdVtbQKSUwoBHsUUb2ZmBNtU1YSa/UA=";
+    hash = "sha256-aackeTtByetowH0SVk4/+Pwyeywe6Vpb/mRHudhzLao=";
   };
 
   vendorHash = "sha256-RpkKWz/cJ1StbpVydqpSfA6uwIYgKa1YOCJVXZRer6k=";
diff --git a/pkgs/development/tools/ols/default.nix b/pkgs/development/tools/ols/default.nix
index 613dd0f5acbdc..2823cdc3b45ad 100644
--- a/pkgs/development/tools/ols/default.nix
+++ b/pkgs/development/tools/ols/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation {
   pname = "ols";
-  version = "0-unstable-2024-05-18";
+  version = "0-unstable-2024-05-22";
 
   src = fetchFromGitHub {
     owner = "DanielGavin";
     repo = "ols";
-    rev = "b5b6733320bd866b6895cc2f44910f180dda4e0b";
-    hash = "sha256-Mok77ioHklE3jeSFT2um1XgrnRuQf0ysDcTo3Fjukmk=";
+    rev = "a2f333bfbdd187aa7463ae230f7a617f6bccb611";
+    hash = "sha256-sM8UkfuzQib0L8mUhmtVZAjbZKA07aY2YLvooj3zdc0=";
   };
 
   passthru.updateScript = unstableGitUpdater {
diff --git a/pkgs/development/tools/opcr-policy/default.nix b/pkgs/development/tools/opcr-policy/default.nix
index 641dd140d8b26..c3bd6ecbd9c04 100644
--- a/pkgs/development/tools/opcr-policy/default.nix
+++ b/pkgs/development/tools/opcr-policy/default.nix
@@ -5,15 +5,15 @@
 
 buildGoModule rec {
   pname = "opcr-policy";
-  version = "0.2.13";
+  version = "0.2.14";
 
   src = fetchFromGitHub {
     owner = "opcr-io";
     repo = "policy";
     rev = "v${version}";
-    sha256 = "sha256-flmTVEEM0vEU4Aul7+PPo0ut1xv63l4HljEPXSPd6SU=";
+    sha256 = "sha256-0sa0tBEgcd4OXCA2taKUrEkifkcIq1hRrx9tOcdcpeY=";
   };
-  vendorHash = "sha256-XmJafFW5Hb8A8mKz/ewJIKMQ5hiZlAJk2yFdTB3VxNg=";
+  vendorHash = "sha256-vqH3f1kfcOG04PPzC4izzKBJPZ3SSlK7y7nKhOJ9GdE=";
 
   ldflags = [ "-s" "-w" "-X github.com/opcr-io/policy/pkg/version.ver=${version}" ];
 
diff --git a/pkgs/development/tools/rain/default.nix b/pkgs/development/tools/rain/default.nix
index 8132c23704585..58fdb1f97f55e 100644
--- a/pkgs/development/tools/rain/default.nix
+++ b/pkgs/development/tools/rain/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "rain";
-  version = "1.8.6";
+  version = "1.9.0";
 
   src = fetchFromGitHub {
     owner = "aws-cloudformation";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-wQ767MgLSdcNm3Z1HL8VgmUk2tMFmIyACMaMhPr4lmY=";
+    sha256 = "sha256-a+oKQB2pbheC1wLIQh+g5E/dYCIfdnGEZ7hKsHZrNxs=";
   };
 
-  vendorHash = "sha256-SXgyxf8pqSZzlMoOissGLBfeXueY4aSkCcd7ahT2KMA=";
+  vendorHash = "sha256-UBFOtgHf1HNERLWQGJqYlmAd8PKu2Qk49R+gVpdosuk=";
 
   subPackages = [ "cmd/rain" ];
 
diff --git a/pkgs/development/tools/reindeer/default.nix b/pkgs/development/tools/reindeer/default.nix
index e613ef36804ca..b90ff1b1912c6 100644
--- a/pkgs/development/tools/reindeer/default.nix
+++ b/pkgs/development/tools/reindeer/default.nix
@@ -11,7 +11,7 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "reindeer";
-  version = "2024.05.13.00";
+  version = "2024.05.20.00";
 
   src = fetchFromGitHub {
     owner = "facebookincubator";
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
     hash = "sha256-yXHBcb4/IsT39x4J5baJ8JdgG+riJACr8DKpDdi6ARw=";
   };
 
-  cargoHash = "sha256-PYIeXKAuYhb6OARuefYZwP9OgPMvcoKnEnbVUztBqDY=";
+  cargoHash = "sha256-8+3sjN0v/XfDlVu8vvi2DoyrECaR9SA6XeKb6AZ+6XQ=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs =
diff --git a/pkgs/development/tools/rubyfmt/default.nix b/pkgs/development/tools/rubyfmt/default.nix
index 15457e80aad9e..756340e3f091e 100644
--- a/pkgs/development/tools/rubyfmt/default.nix
+++ b/pkgs/development/tools/rubyfmt/default.nix
@@ -13,6 +13,7 @@
 , libunwind
 , libxcrypt
 , libyaml
+, rust-jemalloc-sys-unprefixed
 , Foundation
 , Security
 }:
@@ -40,6 +41,7 @@ rustPlatform.buildRustPackage rec {
     zlib
     libxcrypt
     libyaml
+    rust-jemalloc-sys-unprefixed
   ] ++ lib.optionals stdenv.isDarwin [
     readline
     libiconv
diff --git a/pkgs/development/tools/ruff/Cargo.lock b/pkgs/development/tools/ruff/Cargo.lock
new file mode 100644
index 0000000000000..6efb7b99e761d
--- /dev/null
+++ b/pkgs/development/tools/ruff/Cargo.lock
@@ -0,0 +1,3698 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "Inflector"
+version = "0.11.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "ahash"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
+dependencies = [
+ "cfg-if",
+ "getrandom",
+ "once_cell",
+ "version_check",
+ "zerocopy",
+]
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "allocator-api2"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
+
+[[package]]
+name = "android-tzdata"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
+
+[[package]]
+name = "android_system_properties"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "anes"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
+
+[[package]]
+name = "annotate-snippets"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7021ce4924a3f25f802b2cccd1af585e39ea1a363a1aa2e72afe54b67a3a7a7"
+
+[[package]]
+name = "annotate-snippets"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccaf7e9dfbb6ab22c82e473cd1a8a7bd313c19a5b7e40970f3d89ef5a5c9e81e"
+dependencies = [
+ "unicode-width",
+ "yansi-term",
+]
+
+[[package]]
+name = "anstream"
+version = "0.6.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
+
+[[package]]
+name = "anstyle-parse"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
+dependencies = [
+ "anstyle",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.83"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25bdb32cbbdce2b519a9cd7df3a678443100e265d5e25ca763b7572a5104f5f3"
+
+[[package]]
+name = "argfile"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7c5c8e418080ef8aa932039d12eda7b6f5043baf48f1523c166fbc32d004534"
+dependencies = [
+ "fs-err",
+ "os_str_bytes",
+]
+
+[[package]]
+name = "arrayvec"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
+
+[[package]]
+name = "autocfg"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80"
+
+[[package]]
+name = "base64"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51"
+
+[[package]]
+name = "bincode"
+version = "1.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
+
+[[package]]
+name = "bstr"
+version = "1.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
+dependencies = [
+ "memchr",
+ "regex-automata 0.4.6",
+ "serde",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
+
+[[package]]
+name = "cachedir"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4703f3937077db8fa35bee3c8789343c1aec2585f0146f09d658d4ccc0e8d873"
+dependencies = [
+ "tempfile",
+]
+
+[[package]]
+name = "cast"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
+
+[[package]]
+name = "cc"
+version = "1.0.95"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d32a725bc159af97c3e629873bb9f88fb8cf8a4867175f76dc987815ea07c83b"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
+[[package]]
+name = "chic"
+version = "1.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a5b5db619f3556839cb2223ae86ff3f9a09da2c5013be42bc9af08c9589bf70c"
+dependencies = [
+ "annotate-snippets 0.6.1",
+]
+
+[[package]]
+name = "chrono"
+version = "0.4.38"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
+dependencies = [
+ "android-tzdata",
+ "iana-time-zone",
+ "num-traits",
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "ciborium"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e"
+dependencies = [
+ "ciborium-io",
+ "ciborium-ll",
+ "serde",
+]
+
+[[package]]
+name = "ciborium-io"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757"
+
+[[package]]
+name = "ciborium-ll"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9"
+dependencies = [
+ "ciborium-io",
+ "half",
+]
+
+[[package]]
+name = "clap"
+version = "4.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0"
+dependencies = [
+ "clap_builder",
+ "clap_derive",
+]
+
+[[package]]
+name = "clap_builder"
+version = "4.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "clap_lex",
+ "strsim 0.11.1",
+ "terminal_size",
+]
+
+[[package]]
+name = "clap_complete"
+version = "4.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd79504325bf38b10165b02e89b4347300f855f273c4cb30c4a3209e6583275e"
+dependencies = [
+ "clap",
+]
+
+[[package]]
+name = "clap_complete_command"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "183495371ea78d4c9ff638bfc6497d46fed2396e4f9c50aebc1278a4a9919a3d"
+dependencies = [
+ "clap",
+ "clap_complete",
+ "clap_complete_fig",
+ "clap_complete_nushell",
+]
+
+[[package]]
+name = "clap_complete_fig"
+version = "4.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54b3e65f91fabdd23cac3d57d39d5d938b4daabd070c335c006dccb866a61110"
+dependencies = [
+ "clap",
+ "clap_complete",
+]
+
+[[package]]
+name = "clap_complete_nushell"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d02bc8b1a18ee47c4d2eec3fb5ac034dc68ebea6125b1509e9ccdffcddce66e"
+dependencies = [
+ "clap",
+ "clap_complete",
+]
+
+[[package]]
+name = "clap_derive"
+version = "4.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64"
+dependencies = [
+ "heck 0.5.0",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
+
+[[package]]
+name = "clearscreen"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2f8c93eb5f77c9050c7750e14f13ef1033a40a0aac70c6371535b6763a01438c"
+dependencies = [
+ "nix",
+ "terminfo",
+ "thiserror",
+ "which",
+ "winapi",
+]
+
+[[package]]
+name = "codspeed"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3a104ac948e0188b921eb3fcbdd55dcf62e542df4c7ab7e660623f6288302089"
+dependencies = [
+ "colored",
+ "libc",
+ "serde_json",
+]
+
+[[package]]
+name = "codspeed-criterion-compat"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "722c36bdc62d9436d027256ce2627af81ac7a596dfc7d13d849d0d212448d7fe"
+dependencies = [
+ "codspeed",
+ "colored",
+ "criterion",
+]
+
+[[package]]
+name = "colorchoice"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+
+[[package]]
+name = "colored"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8"
+dependencies = [
+ "lazy_static",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "console"
+version = "0.15.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
+dependencies = [
+ "encode_unicode",
+ "lazy_static",
+ "libc",
+ "unicode-width",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "console_error_panic_hook"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "console_log"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be8aed40e4edbf4d3b4431ab260b63fdc40f5780a4766824329ea0f1eefe3c0f"
+dependencies = [
+ "log",
+ "web-sys",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
+
+[[package]]
+name = "countme"
+version = "3.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7704b5fdd17b18ae31c4c1da5a2e0305a2bf17b5249300a9ee9ed7b72114c636"
+
+[[package]]
+name = "crc32fast"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "criterion"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f"
+dependencies = [
+ "anes",
+ "cast",
+ "ciborium",
+ "clap",
+ "criterion-plot",
+ "is-terminal",
+ "itertools 0.10.5",
+ "num-traits",
+ "once_cell",
+ "oorandom",
+ "regex",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "tinytemplate",
+ "walkdir",
+]
+
+[[package]]
+name = "criterion-plot"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
+dependencies = [
+ "cast",
+ "itertools 0.10.5",
+]
+
+[[package]]
+name = "crossbeam"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8"
+dependencies = [
+ "crossbeam-channel",
+ "crossbeam-deque",
+ "crossbeam-epoch",
+ "crossbeam-queue",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
+dependencies = [
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-queue"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+
+[[package]]
+name = "crunchy"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
+
+[[package]]
+name = "ctrlc"
+version = "3.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "672465ae37dc1bc6380a6547a8883d5dd397b0f1faaad4f265726cc7042a5345"
+dependencies = [
+ "nix",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "darling"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim 0.10.0",
+ "syn",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
+dependencies = [
+ "darling_core",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "dashmap"
+version = "5.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
+dependencies = [
+ "cfg-if",
+ "hashbrown 0.14.5",
+ "lock_api",
+ "once_cell",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "diff"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
+
+[[package]]
+name = "dirs"
+version = "4.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
+dependencies = [
+ "dirs-sys 0.3.7",
+]
+
+[[package]]
+name = "dirs"
+version = "5.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
+dependencies = [
+ "dirs-sys 0.4.1",
+]
+
+[[package]]
+name = "dirs-sys"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi",
+]
+
+[[package]]
+name = "dirs-sys"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
+dependencies = [
+ "libc",
+ "option-ext",
+ "redox_users",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "drop_bomb"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bda8e21c04aca2ae33ffc2fd8c23134f3cac46db123ba97bd9d3f3b8a4a85e1"
+
+[[package]]
+name = "dyn-clone"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125"
+
+[[package]]
+name = "either"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2"
+
+[[package]]
+name = "encode_unicode"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
+
+[[package]]
+name = "env_filter"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea"
+dependencies = [
+ "log",
+ "regex",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.11.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "env_filter",
+ "humantime",
+ "log",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984"
+
+[[package]]
+name = "fern"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9f0c14694cbd524c8720dd69b0e3179344f04ebb5f90f2e4a440c6ea3b2f1ee"
+dependencies = [
+ "log",
+]
+
+[[package]]
+name = "filetime"
+version = "0.2.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "flate2"
+version = "1.0.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
+dependencies = [
+ "crc32fast",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "fs-err"
+version = "2.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "fsevent-sys"
+version = "4.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "getopts"
+version = "0.2.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
+dependencies = [
+ "unicode-width",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "libc",
+ "wasi",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
+[[package]]
+name = "globset"
+version = "0.4.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
+dependencies = [
+ "aho-corasick",
+ "bstr",
+ "log",
+ "regex-automata 0.4.6",
+ "regex-syntax 0.8.3",
+]
+
+[[package]]
+name = "half"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888"
+dependencies = [
+ "cfg-if",
+ "crunchy",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+[[package]]
+name = "hashbrown"
+version = "0.14.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
+dependencies = [
+ "ahash",
+ "allocator-api2",
+]
+
+[[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+
+[[package]]
+name = "hexf-parse"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df"
+
+[[package]]
+name = "home"
+version = "0.5.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "humantime"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+ "windows-core",
+]
+
+[[package]]
+name = "iana-time-zone-haiku"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "ident_case"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+
+[[package]]
+name = "idna"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "ignore"
+version = "0.4.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1"
+dependencies = [
+ "crossbeam-deque",
+ "globset",
+ "log",
+ "memchr",
+ "regex-automata 0.4.6",
+ "same-file",
+ "walkdir",
+ "winapi-util",
+]
+
+[[package]]
+name = "imara-diff"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e98c1d0ad70fc91b8b9654b1f33db55e59579d3b3de2bffdced0fdb810570cb8"
+dependencies = [
+ "ahash",
+ "hashbrown 0.12.3",
+]
+
+[[package]]
+name = "imperative"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b70798296d538cdaa6d652941fcc795963f8b9878b9e300c9fab7a522bd2fc0"
+dependencies = [
+ "phf",
+ "rust-stemmers",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
+dependencies = [
+ "equivalent",
+ "hashbrown 0.14.5",
+ "serde",
+]
+
+[[package]]
+name = "indicatif"
+version = "0.17.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3"
+dependencies = [
+ "console",
+ "instant",
+ "number_prefix",
+ "portable-atomic",
+ "unicode-width",
+ "vt100",
+]
+
+[[package]]
+name = "indoc"
+version = "2.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5"
+
+[[package]]
+name = "inotify"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff"
+dependencies = [
+ "bitflags 1.3.2",
+ "inotify-sys",
+ "libc",
+]
+
+[[package]]
+name = "inotify-sys"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "insta"
+version = "1.38.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3eab73f58e59ca6526037208f0e98851159ec1633cf17b6cd2e1f2c3fd5d53cc"
+dependencies = [
+ "console",
+ "globset",
+ "lazy_static",
+ "linked-hash-map",
+ "regex",
+ "serde",
+ "similar",
+ "walkdir",
+]
+
+[[package]]
+name = "insta-cmd"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffeeefa927925cced49ccb01bf3e57c9d4cd132df21e576eb9415baeab2d3de6"
+dependencies = [
+ "insta",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "is-docker"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "is-macro"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59a85abdc13717906baccb5a1e435556ce0df215f242892f721dff62bf25288f"
+dependencies = [
+ "Inflector",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "is-terminal"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "is-wsl"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5"
+dependencies = [
+ "is-docker",
+ "once_cell",
+]
+
+[[package]]
+name = "itertools"
+version = "0.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itertools"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
+
+[[package]]
+name = "jod-thread"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b23360e99b8717f20aaa4598f5a6541efbe30630039fbc7706cf954a87947ae"
+
+[[package]]
+name = "js-sys"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "kqueue"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c"
+dependencies = [
+ "kqueue-sys",
+ "libc",
+]
+
+[[package]]
+name = "kqueue-sys"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b"
+dependencies = [
+ "bitflags 1.3.2",
+ "libc",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "lexical-parse-float"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f"
+dependencies = [
+ "lexical-parse-integer",
+ "lexical-util",
+ "static_assertions",
+]
+
+[[package]]
+name = "lexical-parse-integer"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9"
+dependencies = [
+ "lexical-util",
+ "static_assertions",
+]
+
+[[package]]
+name = "lexical-util"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc"
+dependencies = [
+ "static_assertions",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.154"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346"
+
+[[package]]
+name = "libcst"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f1e25d1b119ab5c2f15a6e081bb94a8d547c5c2ad065f5fd0dbb683f31ced91"
+dependencies = [
+ "chic",
+ "libcst_derive",
+ "memchr",
+ "paste",
+ "peg",
+ "regex",
+ "thiserror",
+]
+
+[[package]]
+name = "libcst_derive"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4a5011f2d59093de14a4a90e01b9d85dee9276e58a25f0107dcee167dd601be0"
+dependencies = [
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "libmimalloc-sys"
+version = "0.1.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81eb4061c0582dedea1cbc7aff2240300dd6982e0239d1c99e65c1dbf4a30ba7"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "libredox"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
+dependencies = [
+ "bitflags 2.5.0",
+ "libc",
+]
+
+[[package]]
+name = "linked-hash-map"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+
+[[package]]
+name = "lock_api"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
+
+[[package]]
+name = "lsp-server"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "248f65b78f6db5d8e1b1604b4098a28b43d21a8eb1deeca22b1c421b276c7095"
+dependencies = [
+ "crossbeam-channel",
+ "log",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "lsp-types"
+version = "0.95.1"
+source = "git+https://github.com/astral-sh/lsp-types.git?rev=3512a9f#3512a9f33eadc5402cfab1b8f7340824c8ca1439"
+dependencies = [
+ "bitflags 1.3.2",
+ "serde",
+ "serde_json",
+ "serde_repr",
+ "url",
+]
+
+[[package]]
+name = "matchers"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
+dependencies = [
+ "regex-automata 0.1.10",
+]
+
+[[package]]
+name = "matches"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
+
+[[package]]
+name = "matchit"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "540f1c43aed89909c0cc0cc604e3bb2f7e7a341a3728a9e6cfe760e733cd11ed"
+
+[[package]]
+name = "memchr"
+version = "2.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
+
+[[package]]
+name = "mimalloc"
+version = "0.1.41"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f41a2280ded0da56c8cf898babb86e8f10651a34adcfff190ae9a1159c6908d"
+dependencies = [
+ "libmimalloc-sys",
+]
+
+[[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
+name = "miniz_oxide"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
+dependencies = [
+ "adler",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
+dependencies = [
+ "libc",
+ "log",
+ "wasi",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "natord"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "308d96db8debc727c3fd9744aac51751243420e46edf401010908da7f8d5e57c"
+
+[[package]]
+name = "newtype-uuid"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3526cb7c660872e401beaf3297f95f548ce3b4b4bdd8121b7c0713771d7c4a6e"
+dependencies = [
+ "uuid",
+]
+
+[[package]]
+name = "nix"
+version = "0.28.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
+dependencies = [
+ "bitflags 2.5.0",
+ "cfg-if",
+ "cfg_aliases",
+ "libc",
+]
+
+[[package]]
+name = "nom"
+version = "7.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+dependencies = [
+ "memchr",
+ "minimal-lexical",
+]
+
+[[package]]
+name = "notify"
+version = "6.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
+dependencies = [
+ "bitflags 2.5.0",
+ "crossbeam-channel",
+ "filetime",
+ "fsevent-sys",
+ "inotify",
+ "kqueue",
+ "libc",
+ "log",
+ "mio",
+ "walkdir",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "nu-ansi-term"
+version = "0.46.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
+dependencies = [
+ "overload",
+ "winapi",
+]
+
+[[package]]
+name = "nu-ansi-term"
+version = "0.49.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c073d3c1930d0751774acf49e66653acecb416c3a54c6ec095a9b11caddb5a68"
+dependencies = [
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "number_prefix"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "oorandom"
+version = "11.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
+
+[[package]]
+name = "option-ext"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
+
+[[package]]
+name = "os_str_bytes"
+version = "6.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "overload"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+
+[[package]]
+name = "parking_lot"
+version = "0.12.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "paste"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
+
+[[package]]
+name = "path-absolutize"
+version = "3.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4af381fe79fa195b4909485d99f73a80792331df0625188e707854f0b3383f5"
+dependencies = [
+ "path-dedot",
+]
+
+[[package]]
+name = "path-dedot"
+version = "3.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07ba0ad7e047712414213ff67533e6dd477af0a4e1d14fb52343e53d30ea9397"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "path-slash"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42"
+
+[[package]]
+name = "pathdiff"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
+
+[[package]]
+name = "peg"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "400bcab7d219c38abf8bd7cc2054eb9bbbd4312d66f6a5557d572a203f646f61"
+dependencies = [
+ "peg-macros",
+ "peg-runtime",
+]
+
+[[package]]
+name = "peg-macros"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46e61cce859b76d19090f62da50a9fe92bab7c2a5f09e183763559a2ac392c90"
+dependencies = [
+ "peg-runtime",
+ "proc-macro2",
+ "quote",
+]
+
+[[package]]
+name = "peg-runtime"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "36bae92c60fa2398ce4678b98b2c4b5a7c61099961ca1fa305aec04a9ad28922"
+
+[[package]]
+name = "pep440_rs"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0c29f9c43de378b4e4e0cd7dbcce0e5cfb80443de8c05620368b2948bc936a1"
+dependencies = [
+ "once_cell",
+ "regex",
+ "serde",
+ "unicode-width",
+]
+
+[[package]]
+name = "pep440_rs"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca0a570e7ec9171250cac57614e901f62408094b54b3798bb920d3cf0d4a0e09"
+dependencies = [
+ "once_cell",
+ "serde",
+ "unicode-width",
+ "unscanny",
+]
+
+[[package]]
+name = "pep508_rs"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "910c513bea0f4f833122321c0f20e8c704e01de98692f6989c2ec21f43d88b1e"
+dependencies = [
+ "once_cell",
+ "pep440_rs 0.4.0",
+ "regex",
+ "serde",
+ "thiserror",
+ "tracing",
+ "unicode-width",
+ "url",
+]
+
+[[package]]
+name = "percent-encoding"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+
+[[package]]
+name = "phf"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
+dependencies = [
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_codegen"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
+dependencies = [
+ "phf_shared",
+ "rand",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
+
+[[package]]
+name = "pmutil"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52a40bc70c2c58040d2d8b167ba9a5ff59fc9dab7ad44771cfde3dcfde7a09c6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "portable-atomic"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "pretty_assertions"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66"
+dependencies = [
+ "diff",
+ "yansi",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.82"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "pyproject-toml"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95c3dd745f99aa3c554b7bb00859f7d18c2f1d6afd749ccc86d60b61e702abd9"
+dependencies = [
+ "indexmap",
+ "pep440_rs 0.4.0",
+ "pep508_rs",
+ "serde",
+ "toml",
+]
+
+[[package]]
+name = "quick-junit"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cfc1a6a5406a114913df2df8507998c755311b55b78584bed5f6e88f6417c4d4"
+dependencies = [
+ "chrono",
+ "indexmap",
+ "newtype-uuid",
+ "quick-xml",
+ "strip-ansi-escapes",
+ "thiserror",
+ "uuid",
+]
+
+[[package]]
+name = "quick-xml"
+version = "0.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rayon"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "red_knot"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "bitflags 2.5.0",
+ "crossbeam",
+ "ctrlc",
+ "dashmap",
+ "hashbrown 0.14.5",
+ "indexmap",
+ "notify",
+ "parking_lot",
+ "rayon",
+ "ruff_index",
+ "ruff_notebook",
+ "ruff_python_ast",
+ "ruff_python_parser",
+ "ruff_text_size",
+ "rustc-hash",
+ "smol_str",
+ "tempfile",
+ "textwrap",
+ "tracing",
+ "tracing-subscriber",
+ "tracing-tree",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891"
+dependencies = [
+ "getrandom",
+ "libredox",
+ "thiserror",
+]
+
+[[package]]
+name = "regex"
+version = "1.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata 0.4.6",
+ "regex-syntax 0.8.3",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+dependencies = [
+ "regex-syntax 0.6.29",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax 0.8.3",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
+
+[[package]]
+name = "result-like"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abf7172fef6a7d056b5c26bf6c826570267562d51697f4982ff3ba4aec68a9df"
+dependencies = [
+ "result-like-derive",
+]
+
+[[package]]
+name = "result-like-derive"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8d6574c02e894d66370cfc681e5d68fedbc9a548fb55b30a96b3f0ae22d0fe5"
+dependencies = [
+ "pmutil",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "ring"
+version = "0.17.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
+dependencies = [
+ "cc",
+ "cfg-if",
+ "getrandom",
+ "libc",
+ "spin",
+ "untrusted",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "ruff"
+version = "0.4.5"
+dependencies = [
+ "anyhow",
+ "argfile",
+ "bincode",
+ "bitflags 2.5.0",
+ "cachedir",
+ "chrono",
+ "clap",
+ "clap_complete_command",
+ "clearscreen",
+ "colored",
+ "filetime",
+ "ignore",
+ "insta",
+ "insta-cmd",
+ "is-macro",
+ "itertools 0.12.1",
+ "log",
+ "mimalloc",
+ "notify",
+ "path-absolutize",
+ "rayon",
+ "regex",
+ "ruff_cache",
+ "ruff_diagnostics",
+ "ruff_linter",
+ "ruff_macros",
+ "ruff_notebook",
+ "ruff_python_ast",
+ "ruff_python_formatter",
+ "ruff_server",
+ "ruff_source_file",
+ "ruff_text_size",
+ "ruff_workspace",
+ "rustc-hash",
+ "serde",
+ "serde_json",
+ "shellexpand",
+ "strum",
+ "tempfile",
+ "test-case",
+ "thiserror",
+ "tikv-jemallocator",
+ "toml",
+ "tracing",
+ "tracing-subscriber",
+ "tracing-tree",
+ "walkdir",
+ "wild",
+]
+
+[[package]]
+name = "ruff_benchmark"
+version = "0.0.0"
+dependencies = [
+ "codspeed-criterion-compat",
+ "criterion",
+ "mimalloc",
+ "once_cell",
+ "ruff_linter",
+ "ruff_python_ast",
+ "ruff_python_formatter",
+ "ruff_python_index",
+ "ruff_python_parser",
+ "serde",
+ "serde_json",
+ "tikv-jemallocator",
+ "ureq",
+ "url",
+]
+
+[[package]]
+name = "ruff_cache"
+version = "0.0.0"
+dependencies = [
+ "filetime",
+ "glob",
+ "globset",
+ "itertools 0.12.1",
+ "regex",
+ "ruff_macros",
+ "seahash",
+]
+
+[[package]]
+name = "ruff_dev"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "clap",
+ "ignore",
+ "imara-diff",
+ "indicatif",
+ "indoc",
+ "itertools 0.12.1",
+ "libcst",
+ "pretty_assertions",
+ "rayon",
+ "regex",
+ "ruff",
+ "ruff_diagnostics",
+ "ruff_formatter",
+ "ruff_linter",
+ "ruff_notebook",
+ "ruff_python_ast",
+ "ruff_python_codegen",
+ "ruff_python_formatter",
+ "ruff_python_parser",
+ "ruff_python_stdlib",
+ "ruff_python_trivia",
+ "ruff_workspace",
+ "schemars",
+ "serde",
+ "serde_json",
+ "similar",
+ "strum",
+ "tempfile",
+ "toml",
+ "tracing",
+ "tracing-indicatif",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "ruff_diagnostics"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "is-macro",
+ "log",
+ "ruff_text_size",
+ "serde",
+]
+
+[[package]]
+name = "ruff_formatter"
+version = "0.0.0"
+dependencies = [
+ "drop_bomb",
+ "ruff_cache",
+ "ruff_macros",
+ "ruff_text_size",
+ "rustc-hash",
+ "schemars",
+ "serde",
+ "static_assertions",
+ "tracing",
+ "unicode-width",
+]
+
+[[package]]
+name = "ruff_index"
+version = "0.0.0"
+dependencies = [
+ "ruff_macros",
+ "static_assertions",
+]
+
+[[package]]
+name = "ruff_linter"
+version = "0.4.5"
+dependencies = [
+ "aho-corasick",
+ "annotate-snippets 0.9.2",
+ "anyhow",
+ "bitflags 2.5.0",
+ "chrono",
+ "clap",
+ "colored",
+ "fern",
+ "glob",
+ "globset",
+ "imperative",
+ "insta",
+ "is-macro",
+ "is-wsl",
+ "itertools 0.12.1",
+ "libcst",
+ "log",
+ "memchr",
+ "natord",
+ "once_cell",
+ "path-absolutize",
+ "pathdiff",
+ "pep440_rs 0.6.0",
+ "pyproject-toml",
+ "quick-junit",
+ "regex",
+ "result-like",
+ "ruff_cache",
+ "ruff_diagnostics",
+ "ruff_macros",
+ "ruff_notebook",
+ "ruff_python_ast",
+ "ruff_python_codegen",
+ "ruff_python_index",
+ "ruff_python_literal",
+ "ruff_python_parser",
+ "ruff_python_semantic",
+ "ruff_python_stdlib",
+ "ruff_python_trivia",
+ "ruff_source_file",
+ "ruff_text_size",
+ "rustc-hash",
+ "schemars",
+ "serde",
+ "serde_json",
+ "similar",
+ "smallvec",
+ "strum",
+ "strum_macros",
+ "test-case",
+ "thiserror",
+ "toml",
+ "typed-arena",
+ "unicode-width",
+ "unicode_names2",
+ "url",
+]
+
+[[package]]
+name = "ruff_macros"
+version = "0.0.0"
+dependencies = [
+ "itertools 0.12.1",
+ "proc-macro2",
+ "quote",
+ "ruff_python_trivia",
+ "syn",
+]
+
+[[package]]
+name = "ruff_notebook"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "itertools 0.12.1",
+ "once_cell",
+ "rand",
+ "ruff_diagnostics",
+ "ruff_source_file",
+ "ruff_text_size",
+ "serde",
+ "serde_json",
+ "serde_with",
+ "test-case",
+ "thiserror",
+ "uuid",
+]
+
+[[package]]
+name = "ruff_python_ast"
+version = "0.0.0"
+dependencies = [
+ "aho-corasick",
+ "bitflags 2.5.0",
+ "is-macro",
+ "itertools 0.12.1",
+ "once_cell",
+ "ruff_python_trivia",
+ "ruff_source_file",
+ "ruff_text_size",
+ "rustc-hash",
+ "serde",
+]
+
+[[package]]
+name = "ruff_python_ast_integration_tests"
+version = "0.0.0"
+dependencies = [
+ "insta",
+ "ruff_python_ast",
+ "ruff_python_parser",
+ "ruff_python_trivia",
+ "ruff_text_size",
+]
+
+[[package]]
+name = "ruff_python_codegen"
+version = "0.0.0"
+dependencies = [
+ "once_cell",
+ "ruff_python_ast",
+ "ruff_python_literal",
+ "ruff_python_parser",
+ "ruff_source_file",
+]
+
+[[package]]
+name = "ruff_python_formatter"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "clap",
+ "countme",
+ "insta",
+ "itertools 0.12.1",
+ "memchr",
+ "once_cell",
+ "regex",
+ "ruff_cache",
+ "ruff_formatter",
+ "ruff_macros",
+ "ruff_python_ast",
+ "ruff_python_index",
+ "ruff_python_parser",
+ "ruff_python_trivia",
+ "ruff_source_file",
+ "ruff_text_size",
+ "rustc-hash",
+ "schemars",
+ "serde",
+ "serde_json",
+ "similar",
+ "smallvec",
+ "static_assertions",
+ "thiserror",
+ "tracing",
+ "unicode-width",
+]
+
+[[package]]
+name = "ruff_python_index"
+version = "0.0.0"
+dependencies = [
+ "ruff_python_ast",
+ "ruff_python_parser",
+ "ruff_python_trivia",
+ "ruff_source_file",
+ "ruff_text_size",
+]
+
+[[package]]
+name = "ruff_python_literal"
+version = "0.0.0"
+dependencies = [
+ "bitflags 2.5.0",
+ "hexf-parse",
+ "itertools 0.12.1",
+ "lexical-parse-float",
+ "ruff_python_ast",
+ "unic-ucd-category",
+]
+
+[[package]]
+name = "ruff_python_parser"
+version = "0.0.0"
+dependencies = [
+ "annotate-snippets 0.9.2",
+ "anyhow",
+ "bitflags 2.5.0",
+ "bstr",
+ "insta",
+ "is-macro",
+ "itertools 0.12.1",
+ "memchr",
+ "ruff_python_ast",
+ "ruff_source_file",
+ "ruff_text_size",
+ "rustc-hash",
+ "static_assertions",
+ "unicode-ident",
+ "unicode-normalization",
+ "unicode_names2",
+ "walkdir",
+]
+
+[[package]]
+name = "ruff_python_resolver"
+version = "0.0.0"
+dependencies = [
+ "env_logger",
+ "insta",
+ "log",
+ "tempfile",
+]
+
+[[package]]
+name = "ruff_python_semantic"
+version = "0.0.0"
+dependencies = [
+ "bitflags 2.5.0",
+ "is-macro",
+ "ruff_index",
+ "ruff_python_ast",
+ "ruff_python_parser",
+ "ruff_python_stdlib",
+ "ruff_source_file",
+ "ruff_text_size",
+ "rustc-hash",
+]
+
+[[package]]
+name = "ruff_python_stdlib"
+version = "0.0.0"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "ruff_python_trivia"
+version = "0.0.0"
+dependencies = [
+ "itertools 0.12.1",
+ "ruff_source_file",
+ "ruff_text_size",
+ "unicode-ident",
+]
+
+[[package]]
+name = "ruff_python_trivia_integration_tests"
+version = "0.0.0"
+dependencies = [
+ "insta",
+ "ruff_python_index",
+ "ruff_python_parser",
+ "ruff_python_trivia",
+ "ruff_source_file",
+ "ruff_text_size",
+]
+
+[[package]]
+name = "ruff_server"
+version = "0.2.2"
+dependencies = [
+ "anyhow",
+ "crossbeam",
+ "insta",
+ "jod-thread",
+ "libc",
+ "lsp-server",
+ "lsp-types",
+ "regex",
+ "ruff_diagnostics",
+ "ruff_formatter",
+ "ruff_linter",
+ "ruff_notebook",
+ "ruff_python_ast",
+ "ruff_python_codegen",
+ "ruff_python_formatter",
+ "ruff_python_index",
+ "ruff_python_parser",
+ "ruff_source_file",
+ "ruff_text_size",
+ "ruff_workspace",
+ "rustc-hash",
+ "serde",
+ "serde_json",
+ "shellexpand",
+ "tracing",
+ "walkdir",
+]
+
+[[package]]
+name = "ruff_source_file"
+version = "0.0.0"
+dependencies = [
+ "memchr",
+ "once_cell",
+ "ruff_text_size",
+ "serde",
+]
+
+[[package]]
+name = "ruff_text_size"
+version = "0.0.0"
+dependencies = [
+ "schemars",
+ "serde",
+ "serde_test",
+ "static_assertions",
+]
+
+[[package]]
+name = "ruff_wasm"
+version = "0.0.0"
+dependencies = [
+ "console_error_panic_hook",
+ "console_log",
+ "js-sys",
+ "log",
+ "ruff_formatter",
+ "ruff_linter",
+ "ruff_python_ast",
+ "ruff_python_codegen",
+ "ruff_python_formatter",
+ "ruff_python_index",
+ "ruff_python_parser",
+ "ruff_python_trivia",
+ "ruff_source_file",
+ "ruff_text_size",
+ "ruff_workspace",
+ "serde",
+ "serde-wasm-bindgen",
+ "wasm-bindgen",
+ "wasm-bindgen-test",
+]
+
+[[package]]
+name = "ruff_workspace"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "colored",
+ "dirs 5.0.1",
+ "glob",
+ "globset",
+ "ignore",
+ "is-macro",
+ "itertools 0.12.1",
+ "log",
+ "matchit",
+ "path-absolutize",
+ "path-slash",
+ "pep440_rs 0.6.0",
+ "regex",
+ "ruff_cache",
+ "ruff_formatter",
+ "ruff_linter",
+ "ruff_macros",
+ "ruff_python_ast",
+ "ruff_python_formatter",
+ "ruff_source_file",
+ "rustc-hash",
+ "schemars",
+ "serde",
+ "shellexpand",
+ "strum",
+ "tempfile",
+ "toml",
+]
+
+[[package]]
+name = "rust-stemmers"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e46a2036019fdb888131db7a4c847a1063a7493f971ed94ea82c67eada63ca54"
+dependencies = [
+ "serde",
+ "serde_derive",
+]
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
+[[package]]
+name = "rustix"
+version = "0.38.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
+dependencies = [
+ "bitflags 2.5.0",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rustls"
+version = "0.22.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432"
+dependencies = [
+ "log",
+ "ring",
+ "rustls-pki-types",
+ "rustls-webpki",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "rustls-pki-types"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "beb461507cee2c2ff151784c52762cf4d9ff6a61f3e80968600ed24fa837fa54"
+
+[[package]]
+name = "rustls-webpki"
+version = "0.102.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3bce581c0dd41bce533ce695a1437fa16a7ab5ac3ccfa99fe1a620a7885eabf"
+dependencies = [
+ "ring",
+ "rustls-pki-types",
+ "untrusted",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47"
+
+[[package]]
+name = "ryu"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
+
+[[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "schemars"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc6e7ed6919cb46507fb01ff1654309219f62b4d603822501b0b80d42f6f21ef"
+dependencies = [
+ "dyn-clone",
+ "schemars_derive",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "schemars_derive"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "185f2b7aa7e02d418e453790dde16890256bbd2bcd04b7dc5348811052b53f49"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "serde_derive_internals",
+ "syn",
+]
+
+[[package]]
+name = "scoped-tls"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "seahash"
+version = "4.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
+
+[[package]]
+name = "serde"
+version = "1.0.201"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "780f1cebed1629e4753a1a38a3c72d30b97ec044f0aef68cb26650a3c5cf363c"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde-wasm-bindgen"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8302e169f0eddcc139c70f139d19d6467353af16f9fce27e8c30158036a1e16b"
+dependencies = [
+ "js-sys",
+ "serde",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.201"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c5e405930b9796f1c00bee880d03fc7e0bb4b9a11afc776885ffe84320da2865"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "serde_derive_internals"
+version = "0.29.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "330f01ce65a3a5fe59a60c82f3c9a024b573b8a6e875bd233fe5f934e71d54e3"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.117"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_repr"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_test"
+version = "1.0.176"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a2f49ace1498612d14f7e0b8245519584db8299541dfe31a06374a828d620ab"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_with"
+version = "3.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ad483d2ab0149d5a5ebcd9972a3852711e0153d863bf5a5d0391d28883c4a20"
+dependencies = [
+ "serde",
+ "serde_derive",
+ "serde_with_macros",
+]
+
+[[package]]
+name = "serde_with_macros"
+version = "3.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "65569b702f41443e8bc8bbb1c5779bd0450bbe723b56198980e80ec45780bce2"
+dependencies = [
+ "darling",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "sharded-slab"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "shellexpand"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da03fa3b94cc19e3ebfc88c4229c49d8f08cdbd1228870a45f0ffdf84988e14b"
+dependencies = [
+ "dirs 5.0.1",
+]
+
+[[package]]
+name = "similar"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa42c91313f1d05da9b26f267f931cf178d4aba455b4c4622dd7355eb80c6640"
+
+[[package]]
+name = "siphasher"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
+
+[[package]]
+name = "smallvec"
+version = "1.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
+
+[[package]]
+name = "smawk"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c"
+
+[[package]]
+name = "smol_str"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6845563ada680337a52d43bb0b29f396f2d911616f6573012645b9e3d048a49"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "spin"
+version = "0.9.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+
+[[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
+name = "strip-ansi-escapes"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55ff8ef943b384c414f54aefa961dd2bd853add74ec75e7ac74cf91dba62bcfa"
+dependencies = [
+ "vte",
+]
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "strsim"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
+
+[[package]]
+name = "strum"
+version = "0.26.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29"
+dependencies = [
+ "strum_macros",
+]
+
+[[package]]
+name = "strum_macros"
+version = "0.26.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro2",
+ "quote",
+ "rustversion",
+ "syn",
+]
+
+[[package]]
+name = "subtle"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
+
+[[package]]
+name = "syn"
+version = "2.0.63"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf5be731623ca1a1fb7d8be6f261a3be6d3e2337b8a1f97be944d020c8fcb704"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "rustix",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "terminal_size"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
+dependencies = [
+ "rustix",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "terminfo"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "666cd3a6681775d22b200409aad3b089c5b99fb11ecdd8a204d9d62f8148498f"
+dependencies = [
+ "dirs 4.0.0",
+ "fnv",
+ "nom",
+ "phf",
+ "phf_codegen",
+]
+
+[[package]]
+name = "test-case"
+version = "3.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb2550dd13afcd286853192af8601920d959b14c401fcece38071d53bf0768a8"
+dependencies = [
+ "test-case-macros",
+]
+
+[[package]]
+name = "test-case-core"
+version = "3.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adcb7fd841cd518e279be3d5a3eb0636409487998a4aff22f3de87b81e88384f"
+dependencies = [
+ "cfg-if",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "test-case-macros"
+version = "3.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+ "test-case-core",
+]
+
+[[package]]
+name = "textwrap"
+version = "0.16.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9"
+dependencies = [
+ "smawk",
+ "unicode-linebreak",
+ "unicode-width",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "579e9083ca58dd9dcf91a9923bb9054071b9ebbd800b342194c9feb0ee89fc18"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+]
+
+[[package]]
+name = "tikv-jemalloc-sys"
+version = "0.5.4+5.3.0-patched"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9402443cb8fd499b6f327e40565234ff34dbda27460c5b47db0db77443dd85d1"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "tikv-jemallocator"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "965fe0c26be5c56c94e38ba547249074803efd52adfb66de62107d95aab3eaca"
+dependencies = [
+ "libc",
+ "tikv-jemalloc-sys",
+]
+
+[[package]]
+name = "tinytemplate"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
+dependencies = [
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "toml"
+version = "0.8.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef"
+dependencies = [
+ "indexmap",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "tracing"
+version = "0.1.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+dependencies = [
+ "log",
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+dependencies = [
+ "once_cell",
+ "valuable",
+]
+
+[[package]]
+name = "tracing-indicatif"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "069580424efe11d97c3fef4197fa98c004fa26672cc71ad8770d224e23b1951d"
+dependencies = [
+ "indicatif",
+ "tracing",
+ "tracing-core",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "tracing-log"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
+dependencies = [
+ "log",
+ "once_cell",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-subscriber"
+version = "0.3.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
+dependencies = [
+ "matchers",
+ "nu-ansi-term 0.46.0",
+ "once_cell",
+ "regex",
+ "sharded-slab",
+ "smallvec",
+ "thread_local",
+ "tracing",
+ "tracing-core",
+ "tracing-log",
+]
+
+[[package]]
+name = "tracing-tree"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "65139ecd2c3f6484c3b99bc01c77afe21e95473630747c7aca525e78b0666675"
+dependencies = [
+ "nu-ansi-term 0.49.0",
+ "tracing-core",
+ "tracing-log",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "typed-arena"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a"
+
+[[package]]
+name = "unic-char-property"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221"
+dependencies = [
+ "unic-char-range",
+]
+
+[[package]]
+name = "unic-char-range"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc"
+
+[[package]]
+name = "unic-common"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc"
+
+[[package]]
+name = "unic-ucd-category"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b8d4591f5fcfe1bd4453baaf803c40e1b1e69ff8455c47620440b46efef91c0"
+dependencies = [
+ "matches",
+ "unic-char-property",
+ "unic-char-range",
+ "unic-ucd-version",
+]
+
+[[package]]
+name = "unic-ucd-version"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4"
+dependencies = [
+ "unic-common",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "unicode-linebreak"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-width"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
+
+[[package]]
+name = "unicode_names2"
+version = "1.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "addeebf294df7922a1164f729fb27ebbbcea99cc32b3bf08afab62757f707677"
+dependencies = [
+ "phf",
+ "unicode_names2_generator",
+]
+
+[[package]]
+name = "unicode_names2_generator"
+version = "1.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f444b8bba042fe3c1251ffaca35c603f2dc2ccc08d595c65a8c4f76f3e8426c0"
+dependencies = [
+ "getopts",
+ "log",
+ "phf_codegen",
+ "rand",
+]
+
+[[package]]
+name = "unscanny"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e9df2af067a7953e9c3831320f35c1cc0600c30d44d9f7a12b01db1cd88d6b47"
+
+[[package]]
+name = "untrusted"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
+
+[[package]]
+name = "ureq"
+version = "2.9.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d11a831e3c0b56e438a28308e7c810799e3c118417f342d30ecec080105395cd"
+dependencies = [
+ "base64",
+ "flate2",
+ "log",
+ "once_cell",
+ "rustls",
+ "rustls-pki-types",
+ "rustls-webpki",
+ "url",
+ "webpki-roots",
+]
+
+[[package]]
+name = "url"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+ "serde",
+]
+
+[[package]]
+name = "utf8parse"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+
+[[package]]
+name = "uuid"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
+dependencies = [
+ "getrandom",
+ "rand",
+ "uuid-macro-internal",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "uuid-macro-internal"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9881bea7cbe687e36c9ab3b778c36cd0487402e270304e8b1296d5085303c1a2"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "valuable"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "vt100"
+version = "0.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "84cd863bf0db7e392ba3bd04994be3473491b31e66340672af5d11943c6274de"
+dependencies = [
+ "itoa",
+ "log",
+ "unicode-width",
+ "vte",
+]
+
+[[package]]
+name = "vte"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f5022b5fbf9407086c180e9557be968742d839e68346af7792b8592489732197"
+dependencies = [
+ "arrayvec",
+ "utf8parse",
+ "vte_generate_state_changes",
+]
+
+[[package]]
+name = "vte_generate_state_changes"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff"
+dependencies = [
+ "proc-macro2",
+ "quote",
+]
+
+[[package]]
+name = "walkdir"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
+dependencies = [
+ "same-file",
+ "winapi-util",
+]
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.42"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
+
+[[package]]
+name = "wasm-bindgen-test"
+version = "0.3.42"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9bf62a58e0780af3e852044583deee40983e5886da43a271dd772379987667b"
+dependencies = [
+ "console_error_panic_hook",
+ "js-sys",
+ "scoped-tls",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-bindgen-test-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-test-macro"
+version = "0.3.42"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7f89739351a2e03cb94beb799d47fb2cac01759b40ec441f7de39b00cbf7ef0"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "web-sys"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "webpki-roots"
+version = "0.26.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009"
+dependencies = [
+ "rustls-pki-types",
+]
+
+[[package]]
+name = "which"
+version = "6.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8211e4f58a2b2805adfbefbc07bab82958fc91e3836339b1ab7ae32465dce0d7"
+dependencies = [
+ "either",
+ "home",
+ "rustix",
+ "winsafe",
+]
+
+[[package]]
+name = "wild"
+version = "2.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3131afc8c575281e1e80f36ed6a092aa502c08b18ed7524e86fbbb12bb410e1"
+dependencies = [
+ "glob",
+]
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
+
+[[package]]
+name = "winnow"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0c976aaaa0e1f90dbb21e9587cdaf1d9679a1cde8875c0d6bd83ab96a208352"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winsafe"
+version = "0.0.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904"
+
+[[package]]
+name = "yansi"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
+
+[[package]]
+name = "yansi-term"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe5c30ade05e61656247b2e334a031dfd0cc466fadef865bdcdea8d537951bf1"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "zerocopy"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "zeroize"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
diff --git a/pkgs/development/tools/ruff/default.nix b/pkgs/development/tools/ruff/default.nix
index cc5caf9951cd2..4e540a1ddc8c5 100644
--- a/pkgs/development/tools/ruff/default.nix
+++ b/pkgs/development/tools/ruff/default.nix
@@ -10,16 +10,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ruff";
-  version = "0.4.4";
+  version = "0.4.5";
 
   src = fetchFromGitHub {
     owner = "astral-sh";
     repo = "ruff";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ViXKGcuDla428mI2Am67gtOxfia5VfR+ry2qyczXO/I=";
+    hash = "sha256-+8JKzKKWPQEanU2mh8p5sRjnoU6DawTQQi43qRXVXIg=";
   };
 
-  cargoHash = "sha256-VVdIWUQaquVX/8szJ30qPGtG6rFfRadeIvDONd8swro=";
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "lsp-types-0.95.1" = "sha256-8Oh299exWXVi6A39pALOISNfp8XBya8z+KT/Z7suRxQ=";
+    };
+  };
 
   nativeBuildInputs = [
     installShellFiles
@@ -47,12 +52,12 @@ rustPlatform.buildRustPackage rec {
     inherit ruff-lsp;
   };
 
-  meta = with lib; {
+  meta = {
     description = "An extremely fast Python linter";
     homepage = "https://github.com/astral-sh/ruff";
     changelog = "https://github.com/astral-sh/ruff/releases/tag/v${version}";
-    license = licenses.mit;
+    license = lib.licenses.mit;
     mainProgram = "ruff";
-    maintainers = with maintainers; [ figsoda ];
+    maintainers = with lib.maintainers; [ figsoda ];
   };
 }
diff --git a/pkgs/development/tools/rust/cargo-binstall/default.nix b/pkgs/development/tools/rust/cargo-binstall/default.nix
index 50d3c984cf21d..7391ea07d0616 100644
--- a/pkgs/development/tools/rust/cargo-binstall/default.nix
+++ b/pkgs/development/tools/rust/cargo-binstall/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-binstall";
-  version = "1.6.7";
+  version = "1.6.8";
 
   src = fetchFromGitHub {
     owner = "cargo-bins";
     repo = "cargo-binstall";
     rev = "v${version}";
-    hash = "sha256-BMWcLEoqX8uHXazitOuzon5Sef3xMQ0b6Lk0IiVGFP8=";
+    hash = "sha256-VCAoY5bn5hsO+hkPtphDB0keFVsrowtFHivrpnTIcNo=";
   };
 
-  cargoHash = "sha256-nAp2wySQ8u9lgixE9M6ri/Mk4BUBBe3CLHnqUv+mdxk=";
+  cargoHash = "sha256-OQ7l7lqDISH21eZ5JGLdE8+cysptVTv5+EZ3PkMs9vg=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/development/tools/rust/cargo-chef/default.nix b/pkgs/development/tools/rust/cargo-chef/default.nix
index 27cc6e1042d78..277bc441226b3 100644
--- a/pkgs/development/tools/rust/cargo-chef/default.nix
+++ b/pkgs/development/tools/rust/cargo-chef/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-chef";
-  version = "0.1.66";
+  version = "0.1.67";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-I4lD3+WFaW0kPmw5lPybDCRkG/at6VQH6l7pmngwoLU=";
+    sha256 = "sha256-5bvA3lss+F2Wx0SSx5KRCmpERdIXUkUhFP+zRn8aZH0=";
   };
 
-  cargoHash = "sha256-tSr4m10zS+/JynGmNY0+aoiYDATYwuyfr1VGKmIkHg4=";
+  cargoHash = "sha256-EIpi1k5GffGCk+fzHSW32T+ZLkRfswnEGZdER95TyBk=";
 
   meta = with lib; {
     description = "A cargo-subcommand to speed up Rust Docker builds using Docker layer caching";
diff --git a/pkgs/development/tools/rust/cargo-component/default.nix b/pkgs/development/tools/rust/cargo-component/default.nix
index eb216bbab11d6..12e88a77b4bd7 100644
--- a/pkgs/development/tools/rust/cargo-component/default.nix
+++ b/pkgs/development/tools/rust/cargo-component/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-component";
-  version = "0.12.0";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "bytecodealliance";
     repo = "cargo-component";
     rev = "v${version}";
-    hash = "sha256-SYmKxcU2CxvIFLWoNWBjhJBxIfhZqO2LTyv8WUbuyAY=";
+    hash = "sha256-e1oticOXOimLXwymRbZ/eQEiqmvqWKgvPuBkdYarkxI=";
   };
 
-  cargoHash = "sha256-ZbvZBdJ14fQxdVYvPQjCkT5o0Ip9AJyhATGLRAwFfp4=";
+  cargoHash = "sha256-pn4johqO1K9FKtitH2wNDtf1QUcGlJMvC0WTwG9myD0=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/development/tools/rust/cargo-cyclonedx/default.nix b/pkgs/development/tools/rust/cargo-cyclonedx/default.nix
index 79f0b5d2eb3db..a5e44e1590d81 100644
--- a/pkgs/development/tools/rust/cargo-cyclonedx/default.nix
+++ b/pkgs/development/tools/rust/cargo-cyclonedx/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-cyclonedx";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "CycloneDX";
     repo = "cyclonedx-rust-cargo";
     rev = "${pname}-${version}";
-    hash = "sha256-791FZR9dmwVjORrkpm8el+2VMEEKJG+yKKqq+R1I9U4=";
+    hash = "sha256-FQM2H/W9p0wmI1GGxnleDGU1y9hpz/Fnxi0KhF2RYeA=";
   };
 
-  cargoHash = "sha256-Cbi1cnUy6HKkgBXVjK0xItx2pzuYVob/Qz4o8eT6Fws=";
+  cargoHash = "sha256-Y4OoQ3JG0syKBJ2KDJ5qzwu/gI+/unvrTafQ+UYiZYA=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/development/tools/rust/cargo-dist/default.nix b/pkgs/development/tools/rust/cargo-dist/default.nix
index 04aae84d0d860..6d55e580291e9 100644
--- a/pkgs/development/tools/rust/cargo-dist/default.nix
+++ b/pkgs/development/tools/rust/cargo-dist/default.nix
@@ -14,16 +14,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-dist";
-  version = "0.13.2";
+  version = "0.14.1";
 
   src = fetchFromGitHub {
     owner = "axodotdev";
     repo = "cargo-dist";
     rev = "v${version}";
-    hash = "sha256-sD3Y/FFfUgMtvBoSP0BBhS5aCZy+TkyO8S28q8Hoc5I=";
+    hash = "sha256-4NsEvmIvgyv186WwMVxjo/PM4ccUtcIVCde4pwXUX98=";
   };
 
-  cargoHash = "sha256-efVhaL1yUEpOgNZ4Bog1OB37lT1yQHJVE9M938jnGeE=";
+  cargoHash = "sha256-89YN0P6dsmliOf8mv5ugyWPbg/aflACfkDaZp8f1HBo=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/development/tools/rust/cargo-local-registry/default.nix b/pkgs/development/tools/rust/cargo-local-registry/default.nix
index 0b2f31d05a805..36a52bc1763a8 100644
--- a/pkgs/development/tools/rust/cargo-local-registry/default.nix
+++ b/pkgs/development/tools/rust/cargo-local-registry/default.nix
@@ -42,11 +42,6 @@ rustPlatform.buildRustPackage rec {
   # tests require internet access
   doCheck = false;
 
-  # Cargo.lock is outdated
-  preConfigure = ''
-    cargo metadata --offline
-  '';
-
   meta = with lib; {
     description = "A cargo subcommand to manage local registries";
     mainProgram = "cargo-local-registry";
diff --git a/pkgs/development/tools/rust/cargo-mobile2/default.nix b/pkgs/development/tools/rust/cargo-mobile2/default.nix
index 1aecd6d91973b..2bcf7484fc67b 100644
--- a/pkgs/development/tools/rust/cargo-mobile2/default.nix
+++ b/pkgs/development/tools/rust/cargo-mobile2/default.nix
@@ -12,7 +12,7 @@
 let
   inherit (darwin.apple_sdk.frameworks) CoreServices;
   pname = "cargo-mobile2";
-  version = "0.11.1";
+  version = "0.12.0";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -20,14 +20,14 @@ rustPlatform.buildRustPackage {
     owner = "tauri-apps";
     repo = pname;
     rev = "cargo-mobile2-v${version}";
-    hash = "sha256-HLDuWEKLij1hTKxf3lrAb4d2DIHzzkj4kuiZXgQwH4Q=";
+    hash = "sha256-x9Vby8QTe6swJLoT6mjsqzmxv24jfnxsy5v8yC3qveU=";
   };
 
   # Manually specify the sourceRoot since this crate depends on other crates in the workspace. Relevant info at
   # https://discourse.nixos.org/t/difficulty-using-buildrustpackage-with-a-src-containing-multiple-cargo-workspaces/10202
   # sourceRoot = "${src.name}/tooling/cli";
 
-  cargoHash = "sha256-jCsP5xhNkqnwz8HocUzzf17omU8WDNrL/WVj/lP+51w=";
+  cargoHash = "sha256-t0+GbN+btZyRNcSh8DfJw5NT/ntV3NmRYVHZDE9VjLo=";
 
   preBuild = ''
     mkdir -p $out/share/
diff --git a/pkgs/development/tools/rust/cargo-ndk/default.nix b/pkgs/development/tools/rust/cargo-ndk/default.nix
index 1c80788aebbd5..b1068127483bb 100644
--- a/pkgs/development/tools/rust/cargo-ndk/default.nix
+++ b/pkgs/development/tools/rust/cargo-ndk/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-ndk";
-  version = "3.5.5";
+  version = "3.5.6";
 
   src = fetchFromGitHub {
     owner = "bbqsrc";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-2nL+NE4ntZbm2DdPZEoJLDeMAxaPXgrSSIvwAThlLlA=";
+    sha256 = "sha256-piNKtmDssDeB+DznLl0uufT5BFiVCMmYGuRmBUr5QWQ=";
   };
 
-  cargoHash = "sha256-Fa1pkHdjngJx7FwfvSQ76D61NPYC88jXqYnjWx6K2f8=";
+  cargoHash = "sha256-sIKan8LnGv4sGVrGOUOKSD3R4fNRu5yBFATm5MWDTSU=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     CoreGraphics
diff --git a/pkgs/development/tools/rust/cargo-nextest/default.nix b/pkgs/development/tools/rust/cargo-nextest/default.nix
index de0af79902080..00515c2252af6 100644
--- a/pkgs/development/tools/rust/cargo-nextest/default.nix
+++ b/pkgs/development/tools/rust/cargo-nextest/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-nextest";
-  version = "0.9.70";
+  version = "0.9.72";
 
   src = fetchFromGitHub {
     owner = "nextest-rs";
     repo = "nextest";
     rev = "cargo-nextest-${version}";
-    hash = "sha256-YTeKcdUszI/0RCAq6Gcakl3hfUSUo3CfVCMod/IPYhw=";
+    hash = "sha256-FQM1SVzGgmu6HHijP9kKEJPhhzSLs/jo36b4qnx0lb4=";
   };
 
-  cargoHash = "sha256-FH9ODkK84bPPYyHP4kKcHKWpJ3FV1NC8S/NQFvV63Gw=";
+  cargoHash = "sha256-2ttG9lPIkLRzDPcDNZjROOIIDhcEHfBvs/DTniZtQUY=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.SystemConfiguration
diff --git a/pkgs/development/tools/rust/cargo-pgrx/buildPgrxExtension.nix b/pkgs/development/tools/rust/cargo-pgrx/buildPgrxExtension.nix
index 6aae84d3463bc..f75bab1439363 100644
--- a/pkgs/development/tools/rust/cargo-pgrx/buildPgrxExtension.nix
+++ b/pkgs/development/tools/rust/cargo-pgrx/buildPgrxExtension.nix
@@ -119,7 +119,7 @@ let
 
       NIX_PGLIBDIR="${postgresql}/lib" \
       PGRX_BUILD_FLAGS="--frozen -j $NIX_BUILD_CORES ${builtins.concatStringsSep " " cargoBuildFlags}" \
-      cargo-pgrx pgrx package \
+      cargo pgrx package \
         --pg-config ${postgresql}/bin/pg_config \
         ${maybeDebugFlag} \
         --features "${builtins.concatStringsSep " " buildFeatures}" \
diff --git a/pkgs/development/tools/rust/cargo-public-api/default.nix b/pkgs/development/tools/rust/cargo-public-api/default.nix
index 11e5ba601c3e3..c3a42b7a059a2 100644
--- a/pkgs/development/tools/rust/cargo-public-api/default.nix
+++ b/pkgs/development/tools/rust/cargo-public-api/default.nix
@@ -10,14 +10,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-public-api";
-  version = "0.34.1";
+  version = "0.34.2";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-fNQ4FfOaS38KGhI/hCRLdtYmb0FXkoXyJsbcT+1K6Ow=";
+    hash = "sha256-cqFpvhlhgmytv8MzhwKafZYTWwLUXl9o2FQPCY8EN6Y=";
   };
 
-  cargoHash = "sha256-DwhaVn6nuy2KbXaRcIUQN6iS85ONwAbCWX+vxfa0F7U=";
+  cargoHash = "sha256-HaZqvsM8QsHo5sdMKHrKdTdWgHIXpBiU3eTojqZXIDA=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/development/tools/rust/cargo-readme/default.nix b/pkgs/development/tools/rust/cargo-readme/default.nix
index 2b5fb7abc69b5..aa4a6cf5ea37e 100644
--- a/pkgs/development/tools/rust/cargo-readme/default.nix
+++ b/pkgs/development/tools/rust/cargo-readme/default.nix
@@ -1,4 +1,4 @@
-{ lib, rustPlatform, fetchFromGitHub, fetchpatch }:
+{ lib, rustPlatform, fetchFromGitHub }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-readme";
diff --git a/pkgs/development/tools/rust/cargo-shuttle/Cargo.lock b/pkgs/development/tools/rust/cargo-shuttle/Cargo.lock
index 944f8e8112df2..c892c4047178c 100644
--- a/pkgs/development/tools/rust/cargo-shuttle/Cargo.lock
+++ b/pkgs/development/tools/rust/cargo-shuttle/Cargo.lock
@@ -18,13 +18,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
+name = "aes"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0"
+dependencies = [
+ "cfg-if",
+ "cipher",
+ "cpufeatures",
+]
+
+[[package]]
 name = "ahash"
-version = "0.8.6"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
 dependencies = [
  "cfg-if",
- "getrandom 0.2.11",
+ "getrandom 0.2.14",
  "once_cell",
  "version_check",
  "zerocopy",
@@ -32,24 +43,18 @@ dependencies = [
 
 [[package]]
 name = "aho-corasick"
-version = "1.1.2"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "allocator-api2"
-version = "0.2.16"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
-
-[[package]]
-name = "ambient-authority"
-version = "0.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e9d4ee0d472d1cd2e28c97dfa124b3d8d992e10eb0a035f33f5d12e3a177ba3b"
+checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f"
 
 [[package]]
 name = "android-tzdata"
@@ -68,9 +73,9 @@ dependencies = [
 
 [[package]]
 name = "anstream"
-version = "0.6.4"
+version = "0.6.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
 dependencies = [
  "anstyle",
  "anstyle-parse",
@@ -82,9 +87,9 @@ dependencies = [
 
 [[package]]
 name = "anstyle"
-version = "1.0.4"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
 
 [[package]]
 name = "anstyle-parse"
@@ -97,9 +102,9 @@ dependencies = [
 
 [[package]]
 name = "anstyle-query"
-version = "1.0.1"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3a318f1f38d2418400f8209655bfd825785afd25aa30bb7ba6cc792e4596748"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
 dependencies = [
  "windows-sys 0.52.0",
 ]
@@ -116,21 +121,15 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.75"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
-
-[[package]]
-name = "arbitrary"
-version = "1.3.2"
+version = "1.0.82"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110"
+checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519"
 
 [[package]]
 name = "arc-swap"
-version = "1.6.0"
+version = "1.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
+checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457"
 
 [[package]]
 name = "arrayvec"
@@ -189,9 +188,9 @@ dependencies = [
 
 [[package]]
 name = "assert_cmd"
-version = "2.0.12"
+version = "2.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88903cb14723e4d4003335bb7f8a14f27691649105346a0f0957466c096adfe6"
+checksum = "ed72493ac66d5804837f480ab3766c72bdfab91a65e565fc54fa9e42db0073a8"
 dependencies = [
  "anstyle",
  "bstr",
@@ -219,7 +218,7 @@ version = "0.2.3"
 source = "git+https://github.com/shuttle-hq/posthog-rs?branch=main#4a8299fde3080bff550620c0853be9b83fee8f44"
 dependencies = [
  "posthog-core",
- "reqwest",
+ "reqwest 0.11.27",
  "serde",
  "serde_json",
  "thiserror",
@@ -245,7 +244,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
@@ -256,8 +255,8 @@ checksum = "e1b39347f478f57a40cbaf82cbaebb4a350acc757cda30fc7ff88707a11d1d81"
 dependencies = [
  "futures-util",
  "http-types",
- "hyper 0.14.27",
- "hyper-rustls",
+ "hyper 0.14.28",
+ "hyper-rustls 0.24.2",
  "serde",
  "serde_json",
  "serde_path_to_error",
@@ -270,13 +269,13 @@ dependencies = [
 
 [[package]]
 name = "async-trait"
-version = "0.1.74"
+version = "0.1.80"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
+checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
@@ -289,20 +288,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "atomic-write-file"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "edcdbedc2236483ab103a53415653d6b4442ea6141baf1ffa85df29635e88436"
-dependencies = [
- "nix 0.27.1",
- "rand 0.8.5",
-]
-
-[[package]]
 name = "autocfg"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80"
 
 [[package]]
 name = "aws-config"
@@ -322,10 +311,10 @@ dependencies = [
  "aws-smithy-types",
  "aws-types",
  "bytes",
- "fastrand 2.0.1",
+ "fastrand 2.0.2",
  "hex",
- "http 0.2.11",
- "hyper 0.14.27",
+ "http 0.2.12",
+ "hyper 0.14.28",
  "ring 0.16.20",
  "time",
  "tokio",
@@ -342,7 +331,7 @@ checksum = "70a66ac8ef5fa9cf01c2d999f39d16812e90ec1467bd382cbbb74ba23ea86201"
 dependencies = [
  "aws-smithy-async",
  "aws-smithy-types",
- "fastrand 2.0.1",
+ "fastrand 2.0.2",
  "tokio",
  "tracing",
  "zeroize",
@@ -359,8 +348,8 @@ dependencies = [
  "aws-smithy-types",
  "aws-types",
  "bytes",
- "http 0.2.11",
- "http-body 0.4.5",
+ "http 0.2.12",
+ "http-body 0.4.6",
  "lazy_static",
  "percent-encoding",
  "pin-project-lite",
@@ -381,8 +370,8 @@ dependencies = [
  "aws-smithy-runtime-api",
  "aws-smithy-types",
  "aws-types",
- "fastrand 2.0.1",
- "http 0.2.11",
+ "fastrand 2.0.2",
+ "http 0.2.12",
  "percent-encoding",
  "tracing",
  "uuid",
@@ -407,7 +396,7 @@ dependencies = [
  "aws-smithy-types",
  "aws-smithy-xml",
  "aws-types",
- "http 0.2.11",
+ "http 0.2.12",
  "regex",
  "tokio-stream",
  "tracing",
@@ -431,7 +420,7 @@ dependencies = [
  "aws-smithy-types",
  "aws-types",
  "bytes",
- "http 0.2.11",
+ "http 0.2.12",
  "regex",
  "tokio-stream",
  "tracing",
@@ -456,7 +445,7 @@ dependencies = [
  "aws-smithy-types",
  "aws-smithy-xml",
  "aws-types",
- "http 0.2.11",
+ "http 0.2.12",
  "regex",
  "tracing",
 ]
@@ -471,7 +460,7 @@ dependencies = [
  "form_urlencoded",
  "hex",
  "hmac",
- "http 0.2.11",
+ "http 0.2.12",
  "once_cell",
  "percent-encoding",
  "regex",
@@ -503,14 +492,14 @@ dependencies = [
  "aws-smithy-http-tower",
  "aws-smithy-types",
  "bytes",
- "fastrand 2.0.1",
- "http 0.2.11",
- "http-body 0.4.5",
- "hyper 0.14.27",
- "hyper-rustls",
+ "fastrand 2.0.2",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "hyper 0.14.28",
+ "hyper-rustls 0.24.2",
  "lazy_static",
  "pin-project-lite",
- "rustls",
+ "rustls 0.21.11",
  "tokio",
  "tower",
  "tracing",
@@ -526,9 +515,9 @@ dependencies = [
  "bytes",
  "bytes-utils",
  "futures-core",
- "http 0.2.11",
- "http-body 0.4.5",
- "hyper 0.14.27",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "hyper 0.14.28",
  "once_cell",
  "percent-encoding",
  "pin-project-lite",
@@ -547,8 +536,8 @@ dependencies = [
  "aws-smithy-http",
  "aws-smithy-types",
  "bytes",
- "http 0.2.11",
- "http-body 0.4.5",
+ "http 0.2.12",
+ "http-body 0.4.6",
  "pin-project-lite",
  "tower",
  "tracing",
@@ -585,9 +574,9 @@ dependencies = [
  "aws-smithy-runtime-api",
  "aws-smithy-types",
  "bytes",
- "fastrand 2.0.1",
- "http 0.2.11",
- "http-body 0.4.5",
+ "fastrand 2.0.2",
+ "http 0.2.12",
+ "http-body 0.4.6",
  "once_cell",
  "pin-project-lite",
  "pin-utils",
@@ -605,7 +594,7 @@ dependencies = [
  "aws-smithy-http",
  "aws-smithy-types",
  "bytes",
- "http 0.2.11",
+ "http 0.2.12",
  "tokio",
  "tracing",
 ]
@@ -644,7 +633,7 @@ dependencies = [
  "aws-smithy-client",
  "aws-smithy-http",
  "aws-smithy-types",
- "http 0.2.11",
+ "http 0.2.12",
  "rustc_version 0.4.0",
  "tracing",
 ]
@@ -657,14 +646,14 @@ checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf"
 dependencies = [
  "async-trait",
  "axum-core",
- "base64 0.21.5",
+ "base64 0.21.7",
  "bitflags 1.3.2",
  "bytes",
  "futures-util",
  "headers",
- "http 0.2.11",
- "http-body 0.4.5",
- "hyper 0.14.27",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "hyper 0.14.28",
  "itoa",
  "matchit",
  "memchr",
@@ -694,8 +683,8 @@ dependencies = [
  "async-trait",
  "bytes",
  "futures-util",
- "http 0.2.11",
- "http-body 0.4.5",
+ "http 0.2.12",
+ "http-body 0.4.6",
  "mime",
  "rustversion",
  "tower-layer",
@@ -712,8 +701,8 @@ dependencies = [
  "axum-core",
  "bytes",
  "futures-util",
- "http 0.2.11",
- "http-body 0.4.5",
+ "http 0.2.12",
+ "http-body 0.4.6",
  "mime",
  "pin-project-lite",
  "serde",
@@ -732,22 +721,22 @@ dependencies = [
  "arc-swap",
  "bytes",
  "futures-util",
- "http 0.2.11",
- "http-body 0.4.5",
- "hyper 0.14.27",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "hyper 0.14.28",
  "pin-project-lite",
- "rustls",
- "rustls-pemfile",
+ "rustls 0.21.11",
+ "rustls-pemfile 1.0.4",
  "tokio",
- "tokio-rustls",
+ "tokio-rustls 0.24.1",
  "tower-service",
 ]
 
 [[package]]
 name = "backtrace"
-version = "0.3.69"
+version = "0.3.71"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d"
 dependencies = [
  "addr2line",
  "cc",
@@ -766,9 +755,15 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
 
 [[package]]
 name = "base64"
-version = "0.21.5"
+version = "0.21.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+
+[[package]]
+name = "base64"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51"
 
 [[package]]
 name = "base64-simd"
@@ -787,24 +782,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
 
 [[package]]
-name = "basic-toml"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f2139706359229bfa8f19142ac1155b4b80beafb7a60471ac5dd109d4a19778"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "bincode"
-version = "1.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
-dependencies = [
- "serde",
-]
-
-[[package]]
 name = "bit-set"
 version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -827,9 +804,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
 dependencies = [
  "serde",
 ]
@@ -861,14 +838,14 @@ version = "0.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f03db470b3c0213c47e978da93200259a1eb4dae2e5512cba9955e2b540a6fc6"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "bollard-stubs",
  "bytes",
  "futures-core",
  "futures-util",
  "hex",
- "http 0.2.11",
- "hyper 0.14.27",
+ "http 0.2.12",
+ "hyper 0.14.28",
  "hyperlocal",
  "log",
  "pin-project-lite",
@@ -892,20 +869,20 @@ checksum = "b58071e8fd9ec1e930efd28e3a90c1251015872a2ce49f81f36421b86466932e"
 dependencies = [
  "serde",
  "serde_repr",
- "serde_with 3.4.0",
+ "serde_with 3.7.0",
 ]
 
 [[package]]
 name = "bson"
-version = "2.7.0"
+version = "2.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58da0ae1e701ea752cc46c1bb9f39d5ecefc7395c3ecd526261a566d4f16e0c2"
+checksum = "4d43b38e074cc0de2957f10947e376a1d88b9c4dbab340b590800cc1b2e066b2"
 dependencies = [
  "ahash",
  "base64 0.13.1",
  "bitvec",
  "hex",
- "indexmap 1.9.3",
+ "indexmap 2.2.6",
  "js-sys",
  "once_cell",
  "rand 0.8.5",
@@ -918,29 +895,20 @@ dependencies = [
 
 [[package]]
 name = "bstr"
-version = "1.8.0"
+version = "1.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c"
+checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
 dependencies = [
  "memchr",
- "regex-automata 0.4.3",
+ "regex-automata 0.4.6",
  "serde",
 ]
 
 [[package]]
-name = "btoi"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9dd6407f73a9b8b6162d8a2ef999fe6afd7cc15902ebf42c5cd296addf17e0ad"
-dependencies = [
- "num-traits",
-]
-
-[[package]]
 name = "bumpalo"
-version = "3.14.0"
+version = "3.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
 
 [[package]]
 name = "byteorder"
@@ -950,9 +918,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
-version = "1.5.0"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
 
 [[package]]
 name = "bytes-utils"
@@ -965,126 +933,60 @@ dependencies = [
 ]
 
 [[package]]
-name = "camino"
-version = "1.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "cap-fs-ext"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b779b2d0a001c125b4584ad586268fb4b92d957bff8d26d7fe0dd78283faa814"
-dependencies = [
- "cap-primitives",
- "cap-std",
- "io-lifetimes",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "cap-net-ext"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ffc30dee200c20b4dcb80572226f42658e1d9c4b668656d7cc59c33d50e396e"
-dependencies = [
- "cap-primitives",
- "cap-std",
- "rustix",
- "smallvec",
-]
-
-[[package]]
-name = "cap-primitives"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2bf30c373a3bee22c292b1b6a7a26736a38376840f1af3d2d806455edf8c3899"
-dependencies = [
- "ambient-authority",
- "fs-set-times",
- "io-extras",
- "io-lifetimes",
- "ipnet",
- "maybe-owned",
- "rustix",
- "windows-sys 0.48.0",
- "winx",
-]
-
-[[package]]
-name = "cap-rand"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "577de6cff7c2a47d6b13efe5dd28bf116bd7f8f7db164ea95b7cc2640711f522"
-dependencies = [
- "ambient-authority",
- "rand 0.8.5",
-]
-
-[[package]]
-name = "cap-std"
-version = "2.0.0"
+name = "bzip2"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84bade423fa6403efeebeafe568fdb230e8c590a275fba2ba978dd112efcf6e9"
+checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8"
 dependencies = [
- "cap-primitives",
- "io-extras",
- "io-lifetimes",
- "rustix",
+ "bzip2-sys",
+ "libc",
 ]
 
 [[package]]
-name = "cap-time-ext"
-version = "2.0.0"
+name = "bzip2-sys"
+version = "0.1.11+1.0.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8f52b3c8f4abfe3252fd0a071f3004aaa3b18936ec97bdbd8763ce03aff6247"
+checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc"
 dependencies = [
- "cap-primitives",
- "once_cell",
- "rustix",
- "winx",
+ "cc",
+ "libc",
+ "pkg-config",
 ]
 
 [[package]]
-name = "cargo-lock"
-version = "9.0.0"
+name = "camino"
+version = "1.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e11c675378efb449ed3ce8de78d75d0d80542fc98487c26aba28eb3b82feac72"
+checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c"
 dependencies = [
- "semver 1.0.20",
  "serde",
- "toml 0.7.8",
- "url",
 ]
 
 [[package]]
 name = "cargo-platform"
-version = "0.1.5"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e34637b3140142bdf929fb439e8aa4ebad7651ebf7b1080b3930aa16ac1459ff"
+checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "cargo-shuttle"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "anyhow",
  "assert_cmd",
  "async-trait",
  "bollard",
- "cargo_metadata 0.18.1",
+ "cargo_metadata",
  "chrono",
  "clap",
  "clap_complete",
  "clap_mangen",
  "crossterm 0.27.0",
  "dialoguer",
- "dirs 5.0.1",
+ "dirs",
  "dunce",
  "flate2",
  "futures",
@@ -1099,25 +1001,22 @@ dependencies = [
  "percent-encoding",
  "portpicker",
  "regex",
- "reqwest",
- "reqwest-middleware",
- "reqwest-retry",
+ "reqwest 0.11.27",
  "rexpect",
  "rmp-serde",
- "semver 1.0.20",
+ "semver 1.0.22",
  "serde",
  "serde_json",
  "shuttle-common",
  "shuttle-common-tests",
  "shuttle-proto",
  "shuttle-service",
- "strum 0.25.0",
+ "strum 0.26.2",
  "tar",
  "tempfile",
  "tokio",
  "tokio-tungstenite",
- "tokiotest-httpserver",
- "toml 0.8.8",
+ "toml",
  "toml_edit 0.20.7",
  "tonic 0.10.2",
  "tracing",
@@ -1126,20 +1025,7 @@ dependencies = [
  "uuid",
  "walkdir",
  "webbrowser",
-]
-
-[[package]]
-name = "cargo_metadata"
-version = "0.15.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a"
-dependencies = [
- "camino",
- "cargo-platform",
- "semver 1.0.20",
- "serde",
- "serde_json",
- "thiserror",
+ "zip",
 ]
 
 [[package]]
@@ -1150,7 +1036,7 @@ checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037"
 dependencies = [
  "camino",
  "cargo-platform",
- "semver 1.0.20",
+ "semver 1.0.22",
  "serde",
  "serde_json",
  "thiserror",
@@ -1158,9 +1044,9 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.83"
+version = "1.0.94"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+checksum = "17f6e324229dc011159fcc089755d1e2e216a90d43a7dea6853ca740b84f35e7"
 dependencies = [
  "jobserver",
  "libc",
@@ -1173,16 +1059,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
 
 [[package]]
-name = "cfg-expr"
-version = "0.15.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3"
-dependencies = [
- "smallvec",
- "target-lexicon",
-]
-
-[[package]]
 name = "cfg-if"
 version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1190,9 +1066,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "chrono"
-version = "0.4.31"
+version = "0.4.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
+checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
@@ -1200,14 +1076,24 @@ dependencies = [
  "num-traits",
  "serde",
  "wasm-bindgen",
- "windows-targets 0.48.5",
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "cipher"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
+dependencies = [
+ "crypto-common",
+ "inout",
 ]
 
 [[package]]
 name = "clap"
-version = "4.4.11"
+version = "4.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfaff671f6b22ca62406885ece523383b9b64022e341e53e009a62ebc47a45f2"
+checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -1215,48 +1101,48 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.4.11"
+version = "4.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a216b506622bb1d316cd51328dce24e07bdff4a6128a47c7e7fad11878d5adbb"
+checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
 dependencies = [
  "anstream",
  "anstyle",
  "clap_lex",
- "strsim",
+ "strsim 0.11.1",
 ]
 
 [[package]]
 name = "clap_complete"
-version = "4.4.4"
+version = "4.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bffe91f06a11b4b9420f62103854e90867812cd5d01557f853c5ee8e791b12ae"
+checksum = "dd79504325bf38b10165b02e89b4347300f855f273c4cb30c4a3209e6583275e"
 dependencies = [
  "clap",
 ]
 
 [[package]]
 name = "clap_derive"
-version = "4.4.7"
+version = "4.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
+checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64"
 dependencies = [
- "heck",
+ "heck 0.5.0",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.6.0"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
 
 [[package]]
 name = "clap_mangen"
-version = "0.2.15"
+version = "0.2.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3be86020147691e1d2ef58f75346a3d4d94807bfc473e377d52f09f0f7d77f7"
+checksum = "e1dd95b5ebb5c1c54581dd6346f3ed6a79a3eef95dd372fc2ac13d535535300e"
 dependencies = [
  "clap",
  "roff",
@@ -1276,20 +1162,19 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
 
 [[package]]
 name = "colored"
-version = "2.0.4"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6"
+checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8"
 dependencies = [
- "is-terminal",
  "lazy_static",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "combine"
-version = "4.6.6"
+version = "4.6.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4"
+checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd"
 dependencies = [
  "bytes",
  "memchr",
@@ -1324,22 +1209,28 @@ dependencies = [
 
 [[package]]
 name = "console"
-version = "0.15.7"
+version = "0.15.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8"
+checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
 dependencies = [
  "encode_unicode",
  "lazy_static",
  "libc",
  "unicode-width",
- "windows-sys 0.45.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "const-oid"
-version = "0.9.5"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
+
+[[package]]
+name = "constant_time_eq"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f"
+checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
 
 [[package]]
 name = "convert_case"
@@ -1364,137 +1255,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
-name = "cpp_demangle"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eeaa953eaad386a53111e47172c2fedba671e5684c8dd601a5f474f4f118710f"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
 name = "cpufeatures"
-version = "0.2.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "cranelift-bforest"
-version = "0.100.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "751cbf89e513f283c0641eb7f95dc72fda5051dd95ca203d1dc45e26bc89dba8"
-dependencies = [
- "cranelift-entity",
-]
-
-[[package]]
-name = "cranelift-codegen"
-version = "0.100.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "210730edc05121e915201cc36595e1f00062094669fa07ac362340e3627b3dc5"
-dependencies = [
- "bumpalo",
- "cranelift-bforest",
- "cranelift-codegen-meta",
- "cranelift-codegen-shared",
- "cranelift-control",
- "cranelift-entity",
- "cranelift-isle",
- "gimli",
- "hashbrown 0.14.3",
- "log",
- "regalloc2",
- "smallvec",
- "target-lexicon",
-]
-
-[[package]]
-name = "cranelift-codegen-meta"
-version = "0.100.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5dc7fdf210c53db047f3eaf49b3a89efee0cc3d9a2ce0c0f0236933273d0c53"
-dependencies = [
- "cranelift-codegen-shared",
-]
-
-[[package]]
-name = "cranelift-codegen-shared"
-version = "0.100.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f46875cc87d963119d78fe5c19852757dc6eea3cb9622c0df69c26b242cd44b4"
-
-[[package]]
-name = "cranelift-control"
-version = "0.100.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "375dca8f58d8a801a85e11730c1529c5c4a9c3593dfb12118391ac437b037155"
-dependencies = [
- "arbitrary",
-]
-
-[[package]]
-name = "cranelift-entity"
-version = "0.100.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc619b86fe3c72f43fc417c9fd67a04ec0c98296e5940922d9fd9e6eedf72521"
-dependencies = [
- "serde",
- "serde_derive",
-]
-
-[[package]]
-name = "cranelift-frontend"
-version = "0.100.1"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7eb607fd19ae264da18f9f2532e7302b826f7fbf77bf88365fc075f2e3419436"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
- "cranelift-codegen",
- "log",
- "smallvec",
- "target-lexicon",
-]
-
-[[package]]
-name = "cranelift-isle"
-version = "0.100.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9fe806a6470dddfdf79e878af6a96afb1235a09fe3e21f9e0c2f18d402820432"
-
-[[package]]
-name = "cranelift-native"
-version = "0.100.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fac7f1722660b10af1f7229c0048f716bfd8bd344549b0e06e3eb6417ec3fe5b"
-dependencies = [
- "cranelift-codegen",
  "libc",
- "target-lexicon",
-]
-
-[[package]]
-name = "cranelift-wasm"
-version = "0.100.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1b65810be56b619c3c55debade92798d999f34bf0670370c578afab5d905f06"
-dependencies = [
- "cranelift-codegen",
- "cranelift-entity",
- "cranelift-frontend",
- "itertools 0.10.5",
- "log",
- "smallvec",
- "wasmparser 0.112.0",
- "wasmtime-types",
 ]
 
 [[package]]
 name = "crc"
-version = "3.0.1"
+version = "3.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe"
+checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636"
 dependencies = [
  "crc-catalog",
 ]
@@ -1507,65 +1280,55 @@ checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5"
 
 [[package]]
 name = "crc32fast"
-version = "1.3.2"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
 dependencies = [
  "cfg-if",
 ]
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.8"
+version = "0.5.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
+checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95"
 dependencies = [
- "cfg-if",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-deque"
-version = "0.8.3"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
 dependencies = [
- "cfg-if",
  "crossbeam-epoch",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.15"
+version = "0.9.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
 dependencies = [
- "autocfg",
- "cfg-if",
  "crossbeam-utils",
- "memoffset 0.9.0",
- "scopeguard",
 ]
 
 [[package]]
 name = "crossbeam-queue"
-version = "0.3.8"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add"
+checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35"
 dependencies = [
- "cfg-if",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.16"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
-dependencies = [
- "cfg-if",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
 name = "crossterm"
@@ -1577,7 +1340,7 @@ dependencies = [
  "crossterm_winapi",
  "libc",
  "mio",
- "parking_lot 0.12.1",
+ "parking_lot",
  "signal-hook",
  "signal-hook-mio",
  "winapi",
@@ -1589,11 +1352,11 @@ version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "crossterm_winapi",
  "libc",
  "mio",
- "parking_lot 0.12.1",
+ "parking_lot",
  "signal-hook",
  "signal-hook-mio",
  "winapi",
@@ -1620,12 +1383,12 @@ dependencies = [
 
 [[package]]
 name = "ctor"
-version = "0.2.5"
+version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37e366bff8cd32dd8754b0991fb66b279dc48f598c3a18914852a6673deef583"
+checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f"
 dependencies = [
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
@@ -1634,8 +1397,18 @@ version = "0.13.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c"
 dependencies = [
- "darling_core",
- "darling_macro",
+ "darling_core 0.13.4",
+ "darling_macro 0.13.4",
+]
+
+[[package]]
+name = "darling"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391"
+dependencies = [
+ "darling_core 0.20.8",
+ "darling_macro 0.20.8",
 ]
 
 [[package]]
@@ -1648,22 +1421,60 @@ dependencies = [
  "ident_case",
  "proc-macro2",
  "quote",
- "strsim",
+ "strsim 0.10.0",
  "syn 1.0.109",
 ]
 
 [[package]]
+name = "darling_core"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim 0.10.0",
+ "syn 2.0.59",
+]
+
+[[package]]
 name = "darling_macro"
 version = "0.13.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835"
 dependencies = [
- "darling_core",
+ "darling_core 0.13.4",
  "quote",
  "syn 1.0.109",
 ]
 
 [[package]]
+name = "darling_macro"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
+dependencies = [
+ "darling_core 0.20.8",
+ "quote",
+ "syn 2.0.59",
+]
+
+[[package]]
+name = "dashmap"
+version = "5.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
+dependencies = [
+ "cfg-if",
+ "hashbrown 0.14.3",
+ "lock_api",
+ "once_cell",
+ "parking_lot_core",
+]
+
+[[package]]
 name = "data-encoding"
 version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1671,14 +1482,13 @@ checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
 
 [[package]]
 name = "deadpool"
-version = "0.9.5"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "421fe0f90f2ab22016f32a9881be5134fdd71c65298917084b0c7477cbc3856e"
+checksum = "fb84100978c1c7b37f09ed3ce3e5f843af02c2a2c431bae5b19230dad2c1b490"
 dependencies = [
  "async-trait",
  "deadpool-runtime",
  "num_cpus",
- "retain_mut",
  "tokio",
 ]
 
@@ -1689,19 +1499,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "63dfa964fe2a66f3fde91fc70b267fe193d822c7e603e2a675a49a7f46ad3f49"
 
 [[package]]
-name = "debugid"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d"
-dependencies = [
- "uuid",
-]
-
-[[package]]
 name = "der"
-version = "0.7.8"
+version = "0.7.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c"
+checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0"
 dependencies = [
  "const-oid",
  "pem-rfc7468",
@@ -1724,9 +1525,9 @@ dependencies = [
 
 [[package]]
 name = "deranged"
-version = "0.3.10"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
 dependencies = [
  "powerfmt",
  "serde",
@@ -1763,9 +1564,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de"
 dependencies = [
  "console",
- "fuzzy-matcher",
  "shell-words",
- "tempfile",
  "thiserror",
  "zeroize",
 ]
@@ -1795,42 +1594,12 @@ dependencies = [
 ]
 
 [[package]]
-name = "directories-next"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc"
-dependencies = [
- "cfg-if",
- "dirs-sys-next",
-]
-
-[[package]]
-name = "dirs"
-version = "4.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
-dependencies = [
- "dirs-sys 0.3.7",
-]
-
-[[package]]
 name = "dirs"
 version = "5.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
 dependencies = [
- "dirs-sys 0.4.1",
-]
-
-[[package]]
-name = "dirs-sys"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
-dependencies = [
- "libc",
- "redox_users",
- "winapi",
+ "dirs-sys",
 ]
 
 [[package]]
@@ -1846,17 +1615,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "dirs-sys-next"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
-dependencies = [
- "libc",
- "redox_users",
- "winapi",
-]
-
-[[package]]
 name = "displaydoc"
 version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1864,7 +1622,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
@@ -1887,9 +1645,9 @@ checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
 
 [[package]]
 name = "either"
-version = "1.9.0"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2"
 dependencies = [
  "serde",
 ]
@@ -1902,9 +1660,9 @@ checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
 
 [[package]]
 name = "encoding_rs"
-version = "0.8.33"
+version = "0.8.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"
 dependencies = [
  "cfg-if",
 ]
@@ -1915,25 +1673,13 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "21cdad81446a7f7dc43f6a77409efeb9733d2fa65553efef6018ef257c959b73"
 dependencies = [
- "heck",
+ "heck 0.4.1",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
 ]
 
 [[package]]
-name = "enum-as-inner"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a"
-dependencies = [
- "heck",
- "proc-macro2",
- "quote",
- "syn 2.0.39",
-]
-
-[[package]]
 name = "equivalent"
 version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1967,19 +1713,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
 
 [[package]]
-name = "fallible-iterator"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649"
-
-[[package]]
 name = "faster-hex"
-version = "0.8.1"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "239f7bfb930f820ab16a9cd95afc26f88264cf6905c960b340a615384aa3338a"
-dependencies = [
- "serde",
-]
+checksum = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183"
 
 [[package]]
 name = "fastrand"
@@ -1992,20 +1729,9 @@ dependencies = [
 
 [[package]]
 name = "fastrand"
-version = "2.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
-
-[[package]]
-name = "fd-lock"
-version = "4.0.1"
+version = "2.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b93f7a0db71c99f68398f80653ed05afb0b00e062e1a20c7ff849c4edfabbbcc"
-dependencies = [
- "cfg-if",
- "rustix",
- "windows-sys 0.52.0",
-]
+checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984"
 
 [[package]]
 name = "filetime"
@@ -2015,7 +1741,7 @@ checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.4.1",
+ "redox_syscall",
  "windows-sys 0.52.0",
 ]
 
@@ -2063,20 +1789,9 @@ dependencies = [
 
 [[package]]
 name = "fqdn"
-version = "0.3.2"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3d76ed310eb8c6f88ddde3e976d015f4f91761fe98d7d41e497db542318fca9"
-
-[[package]]
-name = "fs-set-times"
-version = "0.20.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "033b337d725b97690d86893f9de22b67b80dcc4e9ad815f348254c38119db8fb"
-dependencies = [
- "io-lifetimes",
- "rustix",
- "windows-sys 0.52.0",
-]
+checksum = "1bf664d6b0598fea5600b85cddc79e60d4c1f262f42faf75c2d77dc2164c9a8b"
 
 [[package]]
 name = "funty"
@@ -2086,9 +1801,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
 
 [[package]]
 name = "futures"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -2101,9 +1816,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -2111,15 +1826,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -2134,14 +1849,14 @@ checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f"
 dependencies = [
  "futures-core",
  "lock_api",
- "parking_lot 0.12.1",
+ "parking_lot",
 ]
 
 [[package]]
 name = "futures-io"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
 name = "futures-lite"
@@ -2160,32 +1875,32 @@ dependencies = [
 
 [[package]]
 name = "futures-macro"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
 
 [[package]]
 name = "futures-task"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
 name = "futures-util"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -2200,37 +1915,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "fuzzy-matcher"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94"
-dependencies = [
- "thread_local",
-]
-
-[[package]]
-name = "fxhash"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
-dependencies = [
- "byteorder",
-]
-
-[[package]]
-name = "fxprof-processed-profile"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27d12c0aed7f1e24276a241aadc4cb8ea9f83000f34bc062b7cc2d51e3b0fabd"
-dependencies = [
- "bitflags 2.4.1",
- "debugid",
- "fxhash",
- "serde",
- "serde_json",
-]
-
-[[package]]
 name = "generic-array"
 version = "0.14.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2253,9 +1937,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.11"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
+checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -2269,19 +1953,14 @@ name = "gimli"
 version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
-dependencies = [
- "fallible-iterator",
- "indexmap 2.1.0",
- "stable_deref_trait",
-]
 
 [[package]]
 name = "git2"
-version = "0.18.2"
+version = "0.18.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b3ba52851e73b46a4c3df1d89343741112003f0f6f13beb0dfac9e457c3fdcd"
+checksum = "232e6a7bfe35766bf715e55a88b39a700596c0ccfd88cd3680b4cdb40d66ef70"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "libc",
  "libgit2-sys",
  "log",
@@ -2290,12 +1969,13 @@ dependencies = [
 
 [[package]]
 name = "gix"
-version = "0.55.2"
+version = "0.62.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "002667cd1ebb789313d0d0afe3d23b2821cf3b0e91605095f0e6d8751f0ceeea"
+checksum = "5631c64fb4cd48eee767bf98a3cbc5c9318ef3bb71074d4c099a2371510282b6"
 dependencies = [
  "gix-actor",
  "gix-attributes",
+ "gix-command",
  "gix-commitgraph",
  "gix-config",
  "gix-credentials",
@@ -2336,32 +2016,30 @@ dependencies = [
  "gix-worktree",
  "gix-worktree-state",
  "once_cell",
- "parking_lot 0.12.1",
- "reqwest",
+ "parking_lot",
  "smallvec",
  "thiserror",
- "unicode-normalization",
 ]
 
 [[package]]
 name = "gix-actor"
-version = "0.28.1"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2eadca029ef716b4378f7afb19f7ee101fde9e58ba1f1445971315ac866db417"
+checksum = "45c3a3bde455ad2ee8ba8a195745241ce0b770a8a26faae59fcf409d01b28c46"
 dependencies = [
  "bstr",
- "btoi",
  "gix-date",
+ "gix-utils",
  "itoa",
  "thiserror",
- "winnow",
+ "winnow 0.6.6",
 ]
 
 [[package]]
 name = "gix-attributes"
-version = "0.20.1"
+version = "0.22.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f395469d38c76ec47cd1a6c5a53fbc3f13f737b96eaf7535f4e6b367e643381"
+checksum = "eefb48f42eac136a4a0023f49a54ec31be1c7a9589ed762c45dcb9b953f7ecc8"
 dependencies = [
  "bstr",
  "gix-glob",
@@ -2376,50 +2054,53 @@ dependencies = [
 
 [[package]]
 name = "gix-bitmap"
-version = "0.2.8"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d49e1a13a30d3f88be4bceae184dd13a2d3fb9ffa7515f7ed7ae771b857f4916"
+checksum = "a371db66cbd4e13f0ed9dc4c0fea712d7276805fccc877f77e96374d317e87ae"
 dependencies = [
  "thiserror",
 ]
 
 [[package]]
 name = "gix-chunk"
-version = "0.4.5"
+version = "0.4.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d411ecd9b558b0c20b3252b7e409eec48eabc41d18324954fe526bac6e2db55f"
+checksum = "45c8751169961ba7640b513c3b24af61aa962c967aaf04116734975cd5af0c52"
 dependencies = [
  "thiserror",
 ]
 
 [[package]]
 name = "gix-command"
-version = "0.2.10"
+version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c576cfbf577f72c097b5f88aedea502cd62952bdc1fb3adcab4531d5525a4c7"
+checksum = "f90009020dc4b3de47beed28e1334706e0a330ddd17f5cfeb097df3b15a54b77"
 dependencies = [
  "bstr",
+ "gix-path",
+ "gix-trace",
+ "shell-words",
 ]
 
 [[package]]
 name = "gix-commitgraph"
-version = "0.22.1"
+version = "0.24.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85a7007ba021f059803afaf6f8a48872422abc20550ac12ede6ddea2936cec36"
+checksum = "f7b102311085da4af18823413b5176d7c500fb2272eaf391cfa8635d8bcb12c4"
 dependencies = [
  "bstr",
  "gix-chunk",
  "gix-features",
  "gix-hash",
- "memmap2 0.9.0",
+ "memmap2",
  "thiserror",
 ]
 
 [[package]]
 name = "gix-config"
-version = "0.31.0"
+version = "0.36.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cae98c6b4c66c09379bc35274b172587d6b0ac369a416c39128ad8c6454f9bb"
+checksum = "7580e05996e893347ad04e1eaceb92e1c0e6a3ffe517171af99bf6b6df0ca6e5"
 dependencies = [
  "bstr",
  "gix-config-value",
@@ -2433,16 +2114,16 @@ dependencies = [
  "smallvec",
  "thiserror",
  "unicode-bom",
- "winnow",
+ "winnow 0.6.6",
 ]
 
 [[package]]
 name = "gix-config-value"
-version = "0.14.1"
+version = "0.14.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6419db582ea84dfb58c7e7b0af7fd62c808aa14954af2936a33f89b0f4ed018e"
+checksum = "fbd06203b1a9b33a78c88252a625031b094d9e1b647260070c25b09910c0a804"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "bstr",
  "gix-path",
  "libc",
@@ -2451,9 +2132,9 @@ dependencies = [
 
 [[package]]
 name = "gix-credentials"
-version = "0.21.0"
+version = "0.24.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c5c5d74069b842a1861e581027ac6b7ad9ff66f5911c89b9f45484d7ebda6a4"
+checksum = "5c70146183bd3c7119329a3c7392d1aa0e0adbe48d727f4df31828fe6d8fdaa1"
 dependencies = [
  "bstr",
  "gix-command",
@@ -2461,15 +2142,16 @@ dependencies = [
  "gix-path",
  "gix-prompt",
  "gix-sec",
+ "gix-trace",
  "gix-url",
  "thiserror",
 ]
 
 [[package]]
 name = "gix-date"
-version = "0.8.1"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "468dfbe411f335f01525a1352271727f8e7772075a93fa747260f502086b30be"
+checksum = "180b130a4a41870edfbd36ce4169c7090bca70e195da783dea088dd973daa59c"
 dependencies = [
  "bstr",
  "itoa",
@@ -2479,10 +2161,11 @@ dependencies = [
 
 [[package]]
 name = "gix-diff"
-version = "0.37.0"
+version = "0.43.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "931394f69fb8c9ed6afc0aae3487bd869e936339bcc13ed8884472af072e0554"
+checksum = "a5fbc24115b957346cd23fb0f47d830eb799c46c89cdcf2f5acc9bf2938c2d01"
 dependencies = [
+ "bstr",
  "gix-hash",
  "gix-object",
  "thiserror",
@@ -2490,12 +2173,13 @@ dependencies = [
 
 [[package]]
 name = "gix-discover"
-version = "0.26.0"
+version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a45d5cf0321178883e38705ab2b098f625d609a7d4c391b33ac952eff2c490f2"
+checksum = "64bab49087ed3710caf77e473dc0efc54ca33d8ccc6441359725f121211482b1"
 dependencies = [
  "bstr",
  "dunce",
+ "gix-fs",
  "gix-hash",
  "gix-path",
  "gix-ref",
@@ -2505,15 +2189,16 @@ dependencies = [
 
 [[package]]
 name = "gix-features"
-version = "0.36.1"
+version = "0.38.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d46a4a5c6bb5bebec9c0d18b65ada20e6517dbd7cf855b87dd4bbdce3a771b2"
+checksum = "db4254037d20a247a0367aa79333750146a369719f0c6617fec4f5752cc62b37"
 dependencies = [
  "bytes",
  "crc32fast",
  "flate2",
  "gix-hash",
  "gix-trace",
+ "gix-utils",
  "libc",
  "once_cell",
  "prodash",
@@ -2524,9 +2209,9 @@ dependencies = [
 
 [[package]]
 name = "gix-filter"
-version = "0.6.0"
+version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92f674d3fdb6b1987b04521ec9a5b7be8650671f2c4bbd17c3c81e2a364242ff"
+checksum = "5c0d1f01af62bfd2fb3dd291acc2b29d4ab3e96ad52a679174626508ce98ef12"
 dependencies = [
  "bstr",
  "encoding_rs",
@@ -2538,26 +2223,28 @@ dependencies = [
  "gix-path",
  "gix-quote",
  "gix-trace",
+ "gix-utils",
  "smallvec",
  "thiserror",
 ]
 
 [[package]]
 name = "gix-fs"
-version = "0.8.1"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20e86eb040f5776a5ade092282e51cdcad398adb77d948b88d17583c2ae4e107"
+checksum = "e2184c40e7910529677831c8b481acf788ffd92427ed21fad65b6aa637e631b8"
 dependencies = [
  "gix-features",
+ "gix-utils",
 ]
 
 [[package]]
 name = "gix-glob"
-version = "0.14.1"
+version = "0.16.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5db19298c5eeea2961e5b3bf190767a2d1f09b8802aeb5f258e42276350aff19"
+checksum = "682bdc43cb3c00dbedfcc366de2a849b582efd8d886215dbad2ea662ec156bb5"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "bstr",
  "gix-features",
  "gix-path",
@@ -2565,9 +2252,9 @@ dependencies = [
 
 [[package]]
 name = "gix-hash"
-version = "0.13.2"
+version = "0.14.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99c1e554a87759e672c7d2e37211e761aa390c61ffcd3753a57c51173143f3cb"
+checksum = "f93d7df7366121b5018f947a04d37f034717e113dcf9ccd85c34b58e57a74d5e"
 dependencies = [
  "faster-hex",
  "thiserror",
@@ -2575,37 +2262,38 @@ dependencies = [
 
 [[package]]
 name = "gix-hashtable"
-version = "0.4.1"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "feb61880816d7ec4f0b20606b498147d480860ddd9133ba542628df2f548d3ca"
+checksum = "7ddf80e16f3c19ac06ce415a38b8591993d3f73aede049cb561becb5b3a8e242"
 dependencies = [
  "gix-hash",
  "hashbrown 0.14.3",
- "parking_lot 0.12.1",
+ "parking_lot",
 ]
 
 [[package]]
 name = "gix-ignore"
-version = "0.9.1"
+version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a215cc8cf21645bca131fcf6329d3ebd46299c47dbbe27df71bb1ca9e328b879"
+checksum = "640dbeb4f5829f9fc14d31f654a34a0350e43a24e32d551ad130d99bf01f63f1"
 dependencies = [
  "bstr",
  "gix-glob",
  "gix-path",
+ "gix-trace",
  "unicode-bom",
 ]
 
 [[package]]
 name = "gix-index"
-version = "0.26.0"
+version = "0.32.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c83a4fcc121b2f2e109088f677f89f85e7a8ebf39e8e6659c0ae54d4283b1650"
+checksum = "881ab3b1fa57f497601a5add8289e72a7ae09471fc0b9bbe483b628ae8e418a1"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "bstr",
- "btoi",
  "filetime",
+ "fnv",
  "gix-bitmap",
  "gix-features",
  "gix-fs",
@@ -2613,17 +2301,21 @@ dependencies = [
  "gix-lock",
  "gix-object",
  "gix-traverse",
+ "gix-utils",
+ "hashbrown 0.14.3",
  "itoa",
- "memmap2 0.7.1",
+ "libc",
+ "memmap2",
+ "rustix",
  "smallvec",
  "thiserror",
 ]
 
 [[package]]
 name = "gix-lock"
-version = "11.0.1"
+version = "13.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e5c65e6a29830a435664891ced3f3c1af010f14900226019590ee0971a22f37"
+checksum = "e7c359f81f01b8352063319bcb39789b7ea0887b406406381106e38c4a34d049"
 dependencies = [
  "gix-tempfile",
  "gix-utils",
@@ -2632,22 +2324,22 @@ dependencies = [
 
 [[package]]
 name = "gix-macros"
-version = "0.1.1"
+version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02a5bcaf6704d9354a3071cede7e77d366a5980c7352e102e2c2f9b645b1d3ae"
+checksum = "1dff438f14e67e7713ab9332f5fd18c8f20eb7eb249494f6c2bf170522224032"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
 name = "gix-negotiate"
-version = "0.9.0"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a5cdcf491ecc9ce39dcc227216c540355fe0024ae7c38e94557752ca5ebb67f"
+checksum = "54ba98f8c8c06870dfc167d192ca38a38261867b836cb89ac80bc9176dba975e"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "gix-commitgraph",
  "gix-date",
  "gix-hash",
@@ -2659,47 +2351,48 @@ dependencies = [
 
 [[package]]
 name = "gix-object"
-version = "0.38.0"
+version = "0.42.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "740f2a44267f58770a1cb3a3d01d14e67b089c7136c48d4bddbb3cfd2bf86a51"
+checksum = "3d4f8efae72030df1c4a81d02dbe2348e748d9b9a11e108ed6efbd846326e051"
 dependencies = [
  "bstr",
- "btoi",
  "gix-actor",
  "gix-date",
  "gix-features",
  "gix-hash",
+ "gix-utils",
  "gix-validate",
  "itoa",
  "smallvec",
  "thiserror",
- "winnow",
+ "winnow 0.6.6",
 ]
 
 [[package]]
 name = "gix-odb"
-version = "0.54.0"
+version = "0.60.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8630b56cb80d8fa684d383dad006a66401ee8314e12fbf0e566ddad8c115143b"
+checksum = "e8bbb43d2fefdc4701ffdf9224844d05b136ae1b9a73c2f90710c8dd27a93503"
 dependencies = [
  "arc-swap",
  "gix-date",
  "gix-features",
+ "gix-fs",
  "gix-hash",
  "gix-object",
  "gix-pack",
  "gix-path",
  "gix-quote",
- "parking_lot 0.12.1",
+ "parking_lot",
  "tempfile",
  "thiserror",
 ]
 
 [[package]]
 name = "gix-pack"
-version = "0.44.0"
+version = "0.50.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1431ba2e30deff1405920693d54ab231c88d7c240dd6ccc936ee223d8f8697c3"
+checksum = "b58bad27c7677fa6b587aab3a1aca0b6c97373bd371a0a4290677c838c9bcaf1"
 dependencies = [
  "clru",
  "gix-chunk",
@@ -2709,39 +2402,41 @@ dependencies = [
  "gix-object",
  "gix-path",
  "gix-tempfile",
- "memmap2 0.7.1",
- "parking_lot 0.12.1",
+ "memmap2",
+ "parking_lot",
  "smallvec",
  "thiserror",
 ]
 
 [[package]]
 name = "gix-packetline"
-version = "0.16.7"
+version = "0.17.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a8384b1e964151aff0d5632dd9b191059d07dff358b96bd940f1b452600d7ab"
+checksum = "b70486beda0903b6d5b65dfa6e40585098cdf4e6365ca2dff4f74c387354a515"
 dependencies = [
  "bstr",
  "faster-hex",
+ "gix-trace",
  "thiserror",
 ]
 
 [[package]]
 name = "gix-packetline-blocking"
-version = "0.16.6"
+version = "0.17.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d8395f7501c84d6a1fe902035fdfd8cd86d89e2dd6be0200ec1a72fd3c92d39"
+checksum = "c31d42378a3d284732e4d589979930d0d253360eccf7ec7a80332e5ccb77e14a"
 dependencies = [
  "bstr",
  "faster-hex",
+ "gix-trace",
  "thiserror",
 ]
 
 [[package]]
 name = "gix-path"
-version = "0.10.1"
+version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d86d6fac2fabe07b67b7835f46d07571f68b11aa1aaecae94fe722ea4ef305e1"
+checksum = "23623cf0f475691a6d943f898c4d0b89f5c1a2a64d0f92bce0e0322ee6528783"
 dependencies = [
  "bstr",
  "gix-trace",
@@ -2752,11 +2447,11 @@ dependencies = [
 
 [[package]]
 name = "gix-pathspec"
-version = "0.4.1"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dbbb92f75a38ef043c8bb830b339b38d0698d7f3746968b5fcbade7a880494d"
+checksum = "ea9f934a111e0efdf93ae06e3648427e60e783099fbebd6a53a7a2ffb10a1e65"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "bstr",
  "gix-attributes",
  "gix-config-value",
@@ -2767,51 +2462,51 @@ dependencies = [
 
 [[package]]
 name = "gix-prompt"
-version = "0.7.0"
+version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c9a913769516f5e9d937afac206fb76428e3d7238e538845842887fda584678"
+checksum = "f5325eb17ce7b5e5d25dec5c2315d642a09d55b9888b3bf46b7d72e1621a55d8"
 dependencies = [
  "gix-command",
  "gix-config-value",
- "parking_lot 0.12.1",
+ "parking_lot",
  "rustix",
  "thiserror",
 ]
 
 [[package]]
 name = "gix-protocol"
-version = "0.41.1"
+version = "0.45.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "391e3feabdfa5f90dad6673ce59e3291ac28901b2ff248d86c5a7fbde0391e0e"
+checksum = "aed3bb6179835a3250403baa9d7022579e559fc45f2efc416d9de1a14b5acf11"
 dependencies = [
  "bstr",
- "btoi",
  "gix-credentials",
  "gix-date",
  "gix-features",
  "gix-hash",
  "gix-transport",
+ "gix-utils",
  "maybe-async",
  "thiserror",
- "winnow",
+ "winnow 0.6.6",
 ]
 
 [[package]]
 name = "gix-quote"
-version = "0.4.8"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f84845efa535468bc79c5a87b9d29219f1da0313c8ecf0365a5daa7e72786f2"
+checksum = "cbff4f9b9ea3fa7a25a70ee62f545143abef624ac6aa5884344e70c8b0a1d9ff"
 dependencies = [
  "bstr",
- "btoi",
+ "gix-utils",
  "thiserror",
 ]
 
 [[package]]
 name = "gix-ref"
-version = "0.38.0"
+version = "0.43.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ec2f6d07ac88d2fb8007ee3fa3e801856fb9d82e7366ec0ca332eb2c9d74a52"
+checksum = "fd4aba68b925101cb45d6df328979af0681364579db889098a0de75b36c77b65"
 dependencies = [
  "gix-actor",
  "gix-date",
@@ -2822,17 +2517,18 @@ dependencies = [
  "gix-object",
  "gix-path",
  "gix-tempfile",
+ "gix-utils",
  "gix-validate",
- "memmap2 0.7.1",
+ "memmap2",
  "thiserror",
- "winnow",
+ "winnow 0.6.6",
 ]
 
 [[package]]
 name = "gix-refspec"
-version = "0.19.0"
+version = "0.23.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccb0974cc41dbdb43a180c7f67aa481e1c1e160fcfa8f4a55291fd1126c1a6e7"
+checksum = "dde848865834a54fe4d9b4573f15d0e9a68eaf3d061b42d3ed52b4b8acf880b2"
 dependencies = [
  "bstr",
  "gix-hash",
@@ -2844,9 +2540,9 @@ dependencies = [
 
 [[package]]
 name = "gix-revision"
-version = "0.23.0"
+version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ca97ac73459a7f3766aa4a5638a6e37d56d4c7962bc1986fbaf4883d0772588"
+checksum = "9e34196e1969bd5d36e2fbc4467d893999132219d503e23474a8ad2b221cb1e8"
 dependencies = [
  "bstr",
  "gix-date",
@@ -2860,9 +2556,9 @@ dependencies = [
 
 [[package]]
 name = "gix-revwalk"
-version = "0.9.0"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a16d8c892e4cd676d86f0265bf9d40cefd73d8d94f86b213b8b77d50e77efae0"
+checksum = "e0a7d393ae814eeaae41a333c0ff684b243121cc61ccdc5bbe9897094588047d"
 dependencies = [
  "gix-commitgraph",
  "gix-date",
@@ -2875,21 +2571,21 @@ dependencies = [
 
 [[package]]
 name = "gix-sec"
-version = "0.10.1"
+version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a36ea2c5907d64a9b4b5d3cc9f430e6c30f0509646b5e38eb275ca57c5bf29e2"
+checksum = "fddc27984a643b20dd03e97790555804f98cf07404e0e552c0ad8133266a79a1"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "gix-path",
  "libc",
- "windows",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "gix-submodule"
-version = "0.5.0"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bba78c8d12aa24370178453ec3a472ff08dfaa657d116229f57f2c9cd469a1c2"
+checksum = "4fb7ea05666362472fecd44c1fc35fe48a5b9b841b431cc4f85b95e6f20c23ec"
 dependencies = [
  "bstr",
  "gix-config",
@@ -2902,30 +2598,30 @@ dependencies = [
 
 [[package]]
 name = "gix-tempfile"
-version = "11.0.1"
+version = "13.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "388dd29114a86ec69b28d1e26d6d63a662300ecf61ab3f4cc578f7d7dc9e7e23"
+checksum = "a761d76594f4443b675e85928e4902dec333273836bd386906f01e7e346a0d11"
 dependencies = [
  "gix-fs",
  "libc",
  "once_cell",
- "parking_lot 0.12.1",
+ "parking_lot",
  "tempfile",
 ]
 
 [[package]]
 name = "gix-trace"
-version = "0.1.4"
+version = "0.1.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b686a35799b53a9825575ca3f06481d0a053a409c4d97ffcf5ddd67a8760b497"
+checksum = "f924267408915fddcd558e3f37295cc7d6a3e50f8bd8b606cee0808c3915157e"
 
 [[package]]
 name = "gix-transport"
-version = "0.38.0"
+version = "0.42.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f209a93364e24f20319751bc11092272e2f3fe82bb72592b2822679cf5be752"
+checksum = "9d2f783b2fe86bf2a8cf1f3b8669d65b01ab4932f32cc0101d3893e1b16a3bd6"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "bstr",
  "gix-command",
  "gix-credentials",
@@ -2934,16 +2630,17 @@ dependencies = [
  "gix-quote",
  "gix-sec",
  "gix-url",
- "reqwest",
+ "reqwest 0.12.4",
  "thiserror",
 ]
 
 [[package]]
 name = "gix-traverse"
-version = "0.34.0"
+version = "0.39.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14d050ec7d4e1bb76abf0636cf4104fb915b70e54e3ced9a4427c999100ff38a"
+checksum = "f4029ec209b0cc480d209da3837a42c63801dd8548f09c1f4502c60accb62aeb"
 dependencies = [
+ "bitflags 2.5.0",
  "gix-commitgraph",
  "gix-date",
  "gix-hash",
@@ -2956,9 +2653,9 @@ dependencies = [
 
 [[package]]
 name = "gix-url"
-version = "0.25.2"
+version = "0.27.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c427a1a11ccfa53a4a2da47d9442c2241deee63a154bc15cc14b8312fbc4005"
+checksum = "0db829ebdca6180fbe32be7aed393591df6db4a72dbbc0b8369162390954d1cf"
 dependencies = [
  "bstr",
  "gix-features",
@@ -2970,18 +2667,19 @@ dependencies = [
 
 [[package]]
 name = "gix-utils"
-version = "0.1.6"
+version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f82c41937f00e15a1f6cb0b55307f0ca1f77f4407ff2bf440be35aa688c6a3e"
+checksum = "35192df7fd0fa112263bad8021e2df7167df4cc2a6e6d15892e1e55621d3d4dc"
 dependencies = [
- "fastrand 2.0.1",
+ "fastrand 2.0.2",
+ "unicode-normalization",
 ]
 
 [[package]]
 name = "gix-validate"
-version = "0.8.1"
+version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75b7d8e4274be69f284bbc7e6bb2ccf7065dbcdeba22d8c549f2451ae426883f"
+checksum = "e39fc6e06044985eac19dd34d474909e517307582e462b2eb4c8fa51b6241545"
 dependencies = [
  "bstr",
  "thiserror",
@@ -2989,9 +2687,9 @@ dependencies = [
 
 [[package]]
 name = "gix-worktree"
-version = "0.27.0"
+version = "0.33.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ddaf79e721dba64fe726a42f297a3c8ed42e55cdc0d81ca68452f2def3c2d7fd"
+checksum = "f06ca5dd164678914fc9280ba9d1ffeb66499ccc16ab1278c513828beee88401"
 dependencies = [
  "bstr",
  "gix-attributes",
@@ -3007,9 +2705,9 @@ dependencies = [
 
 [[package]]
 name = "gix-worktree-state"
-version = "0.4.0"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34a2fcccdcaf3c71c00a03df31c9aa459d444cabbec4ed9ca1fa64e43406bed4"
+checksum = "70b4bcac42d5b3197d38e3f15f6eb277c5e6d6a1669c7beabed8f666dba1c9b8"
 dependencies = [
  "bstr",
  "gix-features",
@@ -3040,29 +2738,23 @@ dependencies = [
  "aho-corasick",
  "bstr",
  "log",
- "regex-automata 0.4.3",
- "regex-syntax 0.8.2",
+ "regex-automata 0.4.6",
+ "regex-syntax 0.8.3",
 ]
 
 [[package]]
-name = "guppy-workspace-hack"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92620684d99f750bae383ecb3be3748142d6095760afd5cbcf2261e9a279d780"
-
-[[package]]
 name = "h2"
-version = "0.3.24"
+version = "0.3.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
+checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
 dependencies = [
  "bytes",
  "fnv",
  "futures-core",
  "futures-sink",
  "futures-util",
- "http 0.2.11",
- "indexmap 2.1.0",
+ "http 0.2.12",
+ "indexmap 2.2.6",
  "slab",
  "tokio",
  "tokio-util",
@@ -3071,17 +2763,17 @@ dependencies = [
 
 [[package]]
 name = "h2"
-version = "0.4.2"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31d030e59af851932b72ceebadf4a2b5986dba4c3b99dd2493f8273a0f151943"
+checksum = "816ec7294445779408f36fe57bc5b7fc1cf59664059096c65f905c1c61f58069"
 dependencies = [
  "bytes",
  "fnv",
  "futures-core",
  "futures-sink",
  "futures-util",
- "http 1.0.0",
- "indexmap 2.1.0",
+ "http 1.1.0",
+ "indexmap 2.2.6",
  "slab",
  "tokio",
  "tokio-util",
@@ -3096,15 +2788,6 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
 
 [[package]]
 name = "hashbrown"
-version = "0.13.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
-dependencies = [
- "ahash",
-]
-
-[[package]]
-name = "hashbrown"
 version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
@@ -3128,10 +2811,10 @@ version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "bytes",
  "headers-core",
- "http 0.2.11",
+ "http 0.2.12",
  "httpdate",
  "mime",
  "sha1",
@@ -3143,7 +2826,7 @@ version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429"
 dependencies = [
- "http 0.2.11",
+ "http 0.2.12",
 ]
 
 [[package]]
@@ -3156,10 +2839,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+[[package]]
 name = "hermit-abi"
-version = "0.3.3"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
 
 [[package]]
 name = "hex"
@@ -3169,9 +2858,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
 
 [[package]]
 name = "hkdf"
-version = "0.12.3"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437"
+checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
 dependencies = [
  "hmac",
 ]
@@ -3187,11 +2876,11 @@ dependencies = [
 
 [[package]]
 name = "home"
-version = "0.5.5"
+version = "0.5.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
+checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
 dependencies = [
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -3207,9 +2896,9 @@ dependencies = [
 
 [[package]]
 name = "http"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
+checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
 dependencies = [
  "bytes",
  "fnv",
@@ -3218,9 +2907,9 @@ dependencies = [
 
 [[package]]
 name = "http"
-version = "1.0.0"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea"
+checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
 dependencies = [
  "bytes",
  "fnv",
@@ -3229,12 +2918,12 @@ dependencies = [
 
 [[package]]
 name = "http-body"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
 dependencies = [
  "bytes",
- "http 0.2.11",
+ "http 0.2.12",
  "pin-project-lite",
 ]
 
@@ -3245,18 +2934,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
 dependencies = [
  "bytes",
- "http 1.0.0",
+ "http 1.1.0",
 ]
 
 [[package]]
 name = "http-body-util"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41cb79eb393015dadd30fc252023adb0b2400a0caee0fa2a077e6e21a551e840"
+checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d"
 dependencies = [
  "bytes",
- "futures-util",
- "http 1.0.0",
+ "futures-core",
+ "http 1.1.0",
  "http-body 1.0.0",
  "pin-project-lite",
 ]
@@ -3268,16 +2957,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f"
 
 [[package]]
-name = "http-serde"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f560b665ad9f1572cfcaf034f7fb84338a7ce945216d64a90fd81f046a3caee"
-dependencies = [
- "http 0.2.11",
- "serde",
-]
-
-[[package]]
 name = "http-types"
 version = "2.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3287,7 +2966,7 @@ dependencies = [
  "async-channel",
  "base64 0.13.1",
  "futures-lite",
- "http 0.2.11",
+ "http 0.2.12",
  "infer",
  "pin-project-lite",
  "rand 0.7.3",
@@ -3312,22 +2991,22 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
 
 [[package]]
 name = "hyper"
-version = "0.14.27"
+version = "0.14.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468"
+checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
 dependencies = [
  "bytes",
  "futures-channel",
  "futures-core",
  "futures-util",
- "h2 0.3.24",
- "http 0.2.11",
- "http-body 0.4.5",
+ "h2 0.3.26",
+ "http 0.2.12",
+ "http-body 0.4.6",
  "httparse",
  "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2 0.4.10",
+ "socket2 0.5.6",
  "tokio",
  "tower-service",
  "tracing",
@@ -3336,20 +3015,21 @@ dependencies = [
 
 [[package]]
 name = "hyper"
-version = "1.1.0"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5aa53871fc917b1a9ed87b683a5d86db645e23acb32c2e0785a353e522fb75"
+checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d"
 dependencies = [
  "bytes",
  "futures-channel",
  "futures-util",
- "h2 0.4.2",
- "http 1.0.0",
+ "h2 0.4.4",
+ "http 1.1.0",
  "http-body 1.0.0",
  "httparse",
  "httpdate",
  "itoa",
  "pin-project-lite",
+ "smallvec",
  "tokio",
  "want",
 ]
@@ -3359,7 +3039,7 @@ name = "hyper-reverse-proxy"
 version = "0.5.2-dev"
 source = "git+https://github.com/chesedo/hyper-reverse-proxy?branch=bug/host_header#5f82b7dffe940abf896fe47dadf6c8e87ddc670b"
 dependencies = [
- "hyper 0.14.27",
+ "hyper 0.14.28",
  "lazy_static",
  "tokio",
  "tracing",
@@ -3372,13 +3052,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
 dependencies = [
  "futures-util",
- "http 0.2.11",
- "hyper 0.14.27",
+ "http 0.2.12",
+ "hyper 0.14.28",
  "log",
- "rustls",
+ "rustls 0.21.11",
  "rustls-native-certs",
  "tokio",
- "tokio-rustls",
+ "tokio-rustls 0.24.1",
+]
+
+[[package]]
+name = "hyper-rustls"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c"
+dependencies = [
+ "futures-util",
+ "http 1.1.0",
+ "hyper 1.3.1",
+ "hyper-util",
+ "rustls 0.22.4",
+ "rustls-pki-types",
+ "tokio",
+ "tokio-rustls 0.25.0",
+ "tower-service",
 ]
 
 [[package]]
@@ -3387,7 +3084,7 @@ version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1"
 dependencies = [
- "hyper 0.14.27",
+ "hyper 0.14.28",
  "pin-project-lite",
  "tokio",
  "tokio-io-timeout",
@@ -3395,19 +3092,21 @@ dependencies = [
 
 [[package]]
 name = "hyper-util"
-version = "0.1.2"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdea9aac0dbe5a9240d68cfd9501e2db94222c6dc06843e06640b9e07f0fdc67"
+checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa"
 dependencies = [
  "bytes",
  "futures-channel",
  "futures-util",
- "http 1.0.0",
+ "http 1.1.0",
  "http-body 1.0.0",
- "hyper 1.1.0",
+ "hyper 1.3.1",
  "pin-project-lite",
- "socket2 0.5.5",
+ "socket2 0.5.6",
  "tokio",
+ "tower",
+ "tower-service",
  "tracing",
 ]
 
@@ -3419,16 +3118,16 @@ checksum = "0fafdf7b2b2de7c9784f76e02c0935e65a8117ec3b768644379983ab333ac98c"
 dependencies = [
  "futures-util",
  "hex",
- "hyper 0.14.27",
+ "hyper 0.14.28",
  "pin-project",
  "tokio",
 ]
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.58"
+version = "0.1.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
@@ -3448,12 +3147,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "id-arena"
-version = "2.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005"
-
-[[package]]
 name = "ident_case"
 version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3472,16 +3165,6 @@ dependencies = [
 
 [[package]]
 name = "idna"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
-dependencies = [
- "unicode-bidi",
- "unicode-normalization",
-]
-
-[[package]]
-name = "idna"
 version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
@@ -3492,15 +3175,15 @@ dependencies = [
 
 [[package]]
 name = "ignore"
-version = "0.4.21"
+version = "0.4.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "747ad1b4ae841a78e8aba0d63adbfbeaea26b517b63705d47856b73015d27060"
+checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1"
 dependencies = [
  "crossbeam-deque",
  "globset",
  "log",
  "memchr",
- "regex-automata 0.4.3",
+ "regex-automata 0.4.6",
  "same-file",
  "walkdir",
  "winapi-util",
@@ -3519,9 +3202,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.1.0"
+version = "2.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
 dependencies = [
  "equivalent",
  "hashbrown 0.14.3",
@@ -3530,9 +3213,9 @@ dependencies = [
 
 [[package]]
 name = "indicatif"
-version = "0.17.7"
+version = "0.17.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25"
+checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3"
 dependencies = [
  "console",
  "instant",
@@ -3543,9 +3226,9 @@ dependencies = [
 
 [[package]]
 name = "indoc"
-version = "2.0.4"
+version = "2.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
+checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5"
 
 [[package]]
 name = "infer"
@@ -3554,15 +3237,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "64e9829a50b42bb782c1df523f78d332fe371b10c661e78b7a3c34b0198e9fac"
 
 [[package]]
+name = "inout"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
 name = "instant"
 version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
 dependencies = [
  "cfg-if",
- "js-sys",
- "wasm-bindgen",
- "web-sys",
 ]
 
 [[package]]
@@ -3571,9 +3260,9 @@ version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f3d50eb225913c1903c788287ddd0b16369771e5abc988756a5e5927390ba04f"
 dependencies = [
- "base64 0.21.5",
- "hyper 0.14.27",
- "hyper-rustls",
+ "base64 0.21.7",
+ "hyper 0.14.28",
+ "hyper-rustls 0.24.2",
  "ring 0.16.20",
  "serde",
  "serde_json",
@@ -3591,31 +3280,15 @@ dependencies = [
 ]
 
 [[package]]
-name = "io-extras"
-version = "0.18.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c301e73fb90e8a29e600a9f402d095765f74310d582916a952f618836a1bd1ed"
-dependencies = [
- "io-lifetimes",
- "windows-sys 0.52.0",
-]
-
-[[package]]
-name = "io-lifetimes"
-version = "2.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a611371471e98973dbcab4e0ec66c31a10bc356eeb4d54a0e05eac8158fe38c"
-
-[[package]]
 name = "ipconfig"
 version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f"
 dependencies = [
- "socket2 0.5.5",
+ "socket2 0.5.6",
  "widestring",
  "windows-sys 0.48.0",
- "winreg",
+ "winreg 0.50.0",
 ]
 
 [[package]]
@@ -3625,17 +3298,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
 
 [[package]]
-name = "is-terminal"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
-dependencies = [
- "hermit-abi",
- "rustix",
- "windows-sys 0.48.0",
-]
-
-[[package]]
 name = "itertools"
 version = "0.10.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3646,47 +3308,18 @@ dependencies = [
 
 [[package]]
 name = "itertools"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
-dependencies = [
- "either",
-]
-
-[[package]]
-name = "itertools"
-version = "0.12.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0"
+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
 dependencies = [
  "either",
 ]
 
 [[package]]
 name = "itoa"
-version = "1.0.9"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
-
-[[package]]
-name = "ittapi"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25a5c0b993601cad796222ea076565c5d9f337d35592f8622c753724f06d7271"
-dependencies = [
- "anyhow",
- "ittapi-sys",
- "log",
-]
-
-[[package]]
-name = "ittapi-sys"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb7b5e473765060536a660eed127f758cf1a810c73e49063264959c60d1727d9"
-dependencies = [
- "cc",
-]
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
 
 [[package]]
 name = "jni"
@@ -3712,32 +3345,32 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
 
 [[package]]
 name = "jobserver"
-version = "0.1.27"
+version = "0.1.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d"
+checksum = "685a7d121ee3f65ae4fddd72b25a04bb36b6af81bc0828f7d5434c0fe60fa3a2"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "js-sys"
-version = "0.3.66"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
 dependencies = [
  "wasm-bindgen",
 ]
 
 [[package]]
 name = "jsonwebtoken"
-version = "9.2.0"
+version = "9.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c7ea04a7c5c055c175f189b6dc6ba036fd62306b58c66c9f6389036c503a3f4"
+checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "js-sys",
- "pem 3.0.2",
- "ring 0.17.7",
+ "pem 3.0.4",
+ "ring 0.17.8",
  "serde",
  "serde_json",
  "simple_asn1",
@@ -3762,16 +3395,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "leb128"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67"
-
-[[package]]
 name = "libc"
-version = "0.2.150"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libgit2-sys"
@@ -3793,13 +3420,12 @@ checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
 
 [[package]]
 name = "libredox"
-version = "0.0.1"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "libc",
- "redox_syscall 0.4.1",
 ]
 
 [[package]]
@@ -3815,9 +3441,9 @@ dependencies = [
 
 [[package]]
 name = "libz-sys"
-version = "1.1.12"
+version = "1.1.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b"
+checksum = "5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9"
 dependencies = [
  "cc",
  "libc",
@@ -3833,9 +3459,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.12"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
 
 [[package]]
 name = "lock_api"
@@ -3849,9 +3475,9 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.20"
+version = "0.4.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
 
 [[package]]
 name = "lru-cache"
@@ -3863,15 +3489,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "mach"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa"
-dependencies = [
- "libc",
-]
-
-[[package]]
 name = "malloc_buf"
 version = "0.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3909,22 +3526,16 @@ checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94"
 
 [[package]]
 name = "maybe-async"
-version = "0.2.7"
+version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f1b8c13cb1f814b634a96b2c725449fe7ed464a7b8781de8688be5ffbd3f305"
+checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.59",
 ]
 
 [[package]]
-name = "maybe-owned"
-version = "0.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4facc753ae494aeb6e3c22f839b158aebd4f9270f55cd3c79906c45476c47ab4"
-
-[[package]]
 name = "md-5"
 version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3936,33 +3547,15 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
-
-[[package]]
-name = "memfd"
-version = "0.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64"
-dependencies = [
- "rustix",
-]
-
-[[package]]
-name = "memmap2"
-version = "0.7.1"
+version = "2.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f49388d20533534cd19360ad3d6a7dadc885944aa802ba3995040c5ec11288c6"
-dependencies = [
- "libc",
-]
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
 
 [[package]]
 name = "memmap2"
-version = "0.9.0"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "deaba38d7abf1d4cca21cc89e932e542ba2b9258664d2a9ef0e61512039c9375"
+checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
 dependencies = [
  "libc",
 ]
@@ -3977,15 +3570,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "memoffset"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
 name = "mime"
 version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4009,18 +3593,18 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
 dependencies = [
  "adler",
 ]
 
 [[package]]
 name = "mio"
-version = "0.8.10"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
  "log",
@@ -4030,9 +3614,9 @@ dependencies = [
 
 [[package]]
 name = "mongodb"
-version = "2.7.1"
+version = "2.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7c926772050c3a3f87c837626bf6135c8ca688d91d31dd39a3da547fc2bc9fe"
+checksum = "ef206acb1b72389b49bc9985efe7eb1f8a9bb18e5680d262fac26c07f44025f1"
 dependencies = [
  "async-trait",
  "base64 0.13.1",
@@ -4053,8 +3637,8 @@ dependencies = [
  "percent-encoding",
  "rand 0.8.5",
  "rustc_version_runtime",
- "rustls",
- "rustls-pemfile",
+ "rustls 0.21.11",
+ "rustls-pemfile 1.0.4",
  "serde",
  "serde_bytes",
  "serde_with 1.14.0",
@@ -4062,30 +3646,17 @@ dependencies = [
  "sha2",
  "socket2 0.4.10",
  "stringprep",
- "strsim",
+ "strsim 0.10.0",
  "take_mut",
  "thiserror",
  "tokio",
- "tokio-rustls",
+ "tokio-rustls 0.24.1",
  "tokio-util",
- "trust-dns-proto 0.21.2",
- "trust-dns-resolver 0.21.2",
+ "trust-dns-proto",
+ "trust-dns-resolver",
  "typed-builder",
  "uuid",
- "webpki-roots",
-]
-
-[[package]]
-name = "nbuild-core"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e5ab1b0a3450a5031ae7d555bb0c71dd3b15bf8a2f2af79e00aec91f69a4a0e"
-dependencies = [
- "cargo-lock",
- "cargo_metadata 0.15.4",
- "target-spec",
- "thiserror",
- "tracing",
+ "webpki-roots 0.25.4",
 ]
 
 [[package]]
@@ -4104,22 +3675,11 @@ dependencies = [
  "bitflags 1.3.2",
  "cfg-if",
  "libc",
- "memoffset 0.6.5",
+ "memoffset",
  "pin-utils",
 ]
 
 [[package]]
-name = "nix"
-version = "0.27.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
-dependencies = [
- "bitflags 2.4.1",
- "cfg-if",
- "libc",
-]
-
-[[package]]
 name = "nom"
 version = "7.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4168,20 +3728,25 @@ dependencies = [
 ]
 
 [[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
 name = "num-integer"
-version = "0.1.45"
+version = "0.1.46"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
 dependencies = [
- "autocfg",
  "num-traits",
 ]
 
 [[package]]
 name = "num-iter"
-version = "0.1.43"
+version = "0.1.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
+checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9"
 dependencies = [
  "autocfg",
  "num-integer",
@@ -4190,9 +3755,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.17"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
 dependencies = [
  "autocfg",
  "libm",
@@ -4210,9 +3775,9 @@ dependencies = [
 
 [[package]]
 name = "num_threads"
-version = "0.1.6"
+version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
+checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
 dependencies = [
  "libc",
 ]
@@ -4234,13 +3799,10 @@ dependencies = [
 
 [[package]]
 name = "object"
-version = "0.32.1"
+version = "0.32.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
 dependencies = [
- "crc32fast",
- "hashbrown 0.14.3",
- "indexmap 2.1.0",
  "memchr",
 ]
 
@@ -4289,7 +3851,7 @@ checksum = "1e32339a5dc40459130b3bd269e9892439f55b33e772d2a9d402a789baaf4e8a"
 dependencies = [
  "futures-core",
  "futures-sink",
- "indexmap 2.1.0",
+ "indexmap 2.2.6",
  "js-sys",
  "once_cell",
  "pin-project-lite",
@@ -4318,7 +3880,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7e448fc8ad3687b1dd9073087941834f54093624c015a7fbd1f1efc5a38a7737"
 dependencies = [
  "async-trait",
- "http 0.2.11",
+ "http 0.2.12",
  "indexmap 1.9.3",
  "lazy_static",
  "opentelemetry 0.12.0",
@@ -4334,7 +3896,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "69a853d37ac1c02889211517007a99b2a90d3d7e89526f9af037ada84f1326a1"
 dependencies = [
  "async-trait",
- "http 0.2.11",
+ "http 0.2.12",
  "opentelemetry 0.12.0",
  "thiserror",
 ]
@@ -4347,8 +3909,9 @@ checksum = "7f51189ce8be654f9b5f7e70e49967ed894e84a06fc35c6c042e64ac1fc5399e"
 dependencies = [
  "async-trait",
  "bytes",
- "http 0.2.11",
+ "http 0.2.12",
  "opentelemetry 0.21.0",
+ "reqwest 0.11.27",
 ]
 
 [[package]]
@@ -4359,12 +3922,14 @@ checksum = "f24cda83b20ed2433c68241f918d0f6fdec8b1d43b7a9590ab4420c5095ca930"
 dependencies = [
  "async-trait",
  "futures-core",
- "http 0.2.11",
+ "http 0.2.12",
  "opentelemetry 0.21.0",
+ "opentelemetry-http 0.10.0",
  "opentelemetry-proto",
  "opentelemetry-semantic-conventions",
  "opentelemetry_sdk",
  "prost 0.11.9",
+ "reqwest 0.11.27",
  "thiserror",
  "tokio",
  "tonic 0.9.2",
@@ -4393,9 +3958,9 @@ dependencies = [
 
 [[package]]
 name = "opentelemetry_sdk"
-version = "0.21.1"
+version = "0.21.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "968ba3f2ca03e90e5187f5e4f46c791ef7f2c163ae87789c8ce5f5ca3b7b7de5"
+checksum = "2f16aec8a98a457a52664d69e0091bac3a0abd18ead9b641cb00202ba4e0efe4"
 dependencies = [
  "async-trait",
  "crossbeam-channel",
@@ -4430,16 +3995,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "os_pipe"
-version = "1.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ae859aa07428ca9a929b936690f8b12dc5f11dd8c6992a18ca93919f28bc177"
-dependencies = [
- "libc",
- "windows-sys 0.48.0",
-]
-
-[[package]]
 name = "outref"
 version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4459,50 +4014,36 @@ checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
 
 [[package]]
 name = "parking_lot"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
-dependencies = [
- "instant",
- "lock_api",
- "parking_lot_core 0.8.6",
-]
-
-[[package]]
-name = "parking_lot"
 version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
 dependencies = [
  "lock_api",
- "parking_lot_core 0.9.9",
+ "parking_lot_core",
 ]
 
 [[package]]
 name = "parking_lot_core"
-version = "0.8.6"
+version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
  "cfg-if",
- "instant",
  "libc",
- "redox_syscall 0.2.16",
+ "redox_syscall",
  "smallvec",
- "winapi",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
-name = "parking_lot_core"
-version = "0.9.9"
+name = "password-hash"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700"
 dependencies = [
- "cfg-if",
- "libc",
- "redox_syscall 0.4.1",
- "smallvec",
- "windows-targets 0.48.5",
+ "base64ct",
+ "rand_core 0.6.4",
+ "subtle",
 ]
 
 [[package]]
@@ -4518,6 +4059,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917"
 dependencies = [
  "digest",
+ "hmac",
+ "password-hash",
+ "sha2",
 ]
 
 [[package]]
@@ -4535,17 +4079,17 @@ version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6b13fe415cdf3c8e44518e18a7c95a13431d9bdf6d15367d82b23c377fdd441a"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "serde",
 ]
 
 [[package]]
 name = "pem"
-version = "3.0.2"
+version = "3.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3163d2912b7c3b52d651a055f2c7eec9ba5cd22d26ef75b8dd3a59980b185923"
+checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.22.0",
  "serde",
 ]
 
@@ -4565,30 +4109,58 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
+name = "permit-client-rs"
+version = "2.0.0"
+source = "git+https://github.com/shuttle-hq/permit-client-rs?rev=19085ba#19085ba73bb87c879731590f4a3a988e92d076ac"
+dependencies = [
+ "reqwest 0.11.27",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "serde_with 2.3.3",
+ "url",
+ "uuid",
+]
+
+[[package]]
+name = "permit-pdp-client-rs"
+version = "0.2.0"
+source = "git+https://github.com/shuttle-hq/permit-pdp-client-rs?rev=37c7296#37c72968adf360aa4e2386c3f0c918b823fb919f"
+dependencies = [
+ "reqwest 0.11.27",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "serde_with 2.3.3",
+ "url",
+ "uuid",
+]
+
+[[package]]
 name = "pin-project"
-version = "1.1.3"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
+checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.1.3"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
+checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.13"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
 
 [[package]]
 name = "pin-utils"
@@ -4619,9 +4191,9 @@ dependencies = [
 
 [[package]]
 name = "pkg-config"
-version = "0.3.27"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
 [[package]]
 name = "portable-atomic"
@@ -4663,13 +4235,12 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 
 [[package]]
 name = "predicates"
-version = "3.0.4"
+version = "3.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6dfc28575c2e3f19cb3c73b93af36460ae898d426eba6fc15b9bd2a5220758a0"
+checksum = "68b87bfd4605926cdfefc1c3b5f8fe560e3feca9d5552cf68c466d3d8236c7e8"
 dependencies = [
  "anstyle",
  "difflib",
- "itertools 0.11.0",
  "predicates-core",
 ]
 
@@ -4725,18 +4296,18 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.70"
+version = "1.0.81"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
+checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "prodash"
-version = "26.2.2"
+version = "28.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "794b5bf8e2d19b53dcdcec3e4bba628e20f5b6062503ba89281fa7037dd7bbcf"
+checksum = "744a264d26b88a6a7e37cbad97953fa233b94d585236310bcbc88474b4092d79"
 
 [[package]]
 name = "proptest"
@@ -4746,13 +4317,13 @@ checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf"
 dependencies = [
  "bit-set",
  "bit-vec",
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "lazy_static",
  "num-traits",
  "rand 0.8.5",
  "rand_chacha 0.3.1",
  "rand_xorshift",
- "regex-syntax 0.8.2",
+ "regex-syntax 0.8.3",
  "rusty-fork",
  "tempfile",
  "unarray",
@@ -4770,12 +4341,12 @@ dependencies = [
 
 [[package]]
 name = "prost"
-version = "0.12.3"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a"
+checksum = "d0f5d036824e4761737860779c906171497f6d55681139d8312388f8fe398922"
 dependencies = [
  "bytes",
- "prost-derive 0.12.3",
+ "prost-derive 0.12.4",
 ]
 
 [[package]]
@@ -4793,53 +4364,27 @@ dependencies = [
 
 [[package]]
 name = "prost-derive"
-version = "0.12.3"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e"
+checksum = "19de2de2a00075bf566bee3bd4db014b11587e84184d3f7a791bc17f1a8e9e48"
 dependencies = [
  "anyhow",
- "itertools 0.11.0",
+ "itertools 0.12.1",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
 name = "prost-types"
-version = "0.12.3"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "193898f59edcf43c26227dcd4c8427f00d99d61e95dcde58dabd49fa291d470e"
+checksum = "3235c33eb02c1f1e212abdbe34c78b264b038fb58ca612664343271e36e55ffe"
 dependencies = [
- "prost 0.12.3",
+ "prost 0.12.4",
 ]
 
 [[package]]
-name = "psm"
-version = "0.1.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874"
-dependencies = [
- "cc",
-]
-
-[[package]]
-name = "pulldown-cmark"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77a1a2f1f0a7ecff9c31abbe177637be0e97a0aef46cf8738ece09327985d998"
-dependencies = [
- "bitflags 1.3.2",
- "memchr",
- "unicase",
-]
-
-[[package]]
-name = "queues"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1475abae4f8ad4998590fe3acfe20104f0a5d48fc420c817cd2c09c3f56151f0"
-
-[[package]]
 name = "quick-error"
 version = "1.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4847,9 +4392,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
 
 [[package]]
 name = "quote"
-version = "1.0.33"
+version = "1.0.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
 dependencies = [
  "proc-macro2",
 ]
@@ -4919,7 +4464,7 @@ version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
 dependencies = [
- "getrandom 0.2.11",
+ "getrandom 0.2.14",
 ]
 
 [[package]]
@@ -4947,32 +4492,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
 
 [[package]]
-name = "rayon"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
-dependencies = [
- "either",
- "rayon-core",
-]
-
-[[package]]
-name = "rayon-core"
-version = "1.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
-dependencies = [
- "crossbeam-deque",
- "crossbeam-utils",
-]
-
-[[package]]
 name = "rcgen"
 version = "0.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "52c4f3084aa3bc7dfbba4eff4fab2a54db4324965d8872ab933565e6fbd83bc6"
 dependencies = [
- "pem 3.0.2",
+ "pem 3.0.4",
  "ring 0.16.20",
  "time",
  "yasna",
@@ -4980,15 +4505,6 @@ dependencies = [
 
 [[package]]
 name = "redox_syscall"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
-dependencies = [
- "bitflags 1.3.2",
-]
-
-[[package]]
-name = "redox_syscall"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
@@ -4998,38 +4514,25 @@ dependencies = [
 
 [[package]]
 name = "redox_users"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
+checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891"
 dependencies = [
- "getrandom 0.2.11",
+ "getrandom 0.2.14",
  "libredox",
  "thiserror",
 ]
 
 [[package]]
-name = "regalloc2"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad156d539c879b7a24a363a2016d77961786e71f48f2e2fc8302a92abd2429a6"
-dependencies = [
- "hashbrown 0.13.2",
- "log",
- "rustc-hash",
- "slice-group-by",
- "smallvec",
-]
-
-[[package]]
 name = "regex"
-version = "1.10.2"
+version = "1.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-automata 0.4.3",
- "regex-syntax 0.8.2",
+ "regex-automata 0.4.6",
+ "regex-syntax 0.8.3",
 ]
 
 [[package]]
@@ -5043,13 +4546,13 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.4.3"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-syntax 0.8.2",
+ "regex-syntax 0.8.3",
 ]
 
 [[package]]
@@ -5060,26 +4563,26 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
 
 [[package]]
 name = "regex-syntax"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
 
 [[package]]
 name = "reqwest"
-version = "0.11.22"
+version = "0.11.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b"
+checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "bytes",
  "encoding_rs",
  "futures-core",
  "futures-util",
- "h2 0.3.24",
- "http 0.2.11",
- "http-body 0.4.5",
- "hyper 0.14.27",
- "hyper-rustls",
+ "h2 0.3.26",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "hyper 0.14.28",
+ "hyper-rustls 0.24.2",
  "ipnet",
  "js-sys",
  "log",
@@ -5088,60 +4591,68 @@ dependencies = [
  "once_cell",
  "percent-encoding",
  "pin-project-lite",
- "rustls",
- "rustls-pemfile",
+ "rustls 0.21.11",
+ "rustls-native-certs",
+ "rustls-pemfile 1.0.4",
  "serde",
  "serde_json",
  "serde_urlencoded",
+ "sync_wrapper",
  "system-configuration",
  "tokio",
- "tokio-rustls",
+ "tokio-rustls 0.24.1",
  "tower-service",
- "trust-dns-resolver 0.23.2",
  "url",
  "wasm-bindgen",
  "wasm-bindgen-futures",
  "web-sys",
- "webpki-roots",
- "winreg",
+ "webpki-roots 0.25.4",
+ "winreg 0.50.0",
 ]
 
 [[package]]
-name = "reqwest-middleware"
-version = "0.2.4"
+name = "reqwest"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88a3e86aa6053e59030e7ce2d2a3b258dd08fc2d337d52f73f6cb480f5858690"
+checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10"
 dependencies = [
- "anyhow",
- "async-trait",
- "http 0.2.11",
- "reqwest",
+ "base64 0.22.0",
+ "bytes",
+ "encoding_rs",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "h2 0.4.4",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "http-body-util",
+ "hyper 1.3.1",
+ "hyper-rustls 0.26.0",
+ "hyper-util",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustls 0.22.4",
+ "rustls-pemfile 2.1.2",
+ "rustls-pki-types",
  "serde",
- "task-local-extensions",
- "thiserror",
-]
-
-[[package]]
-name = "reqwest-retry"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9af20b65c2ee9746cc575acb6bd28a05ffc0d15e25c992a8f4462d8686aacb4f"
-dependencies = [
- "anyhow",
- "async-trait",
- "chrono",
- "futures",
- "getrandom 0.2.11",
- "http 0.2.11",
- "hyper 0.14.27",
- "parking_lot 0.11.2",
- "reqwest",
- "reqwest-middleware",
- "retry-policies",
- "task-local-extensions",
+ "serde_json",
+ "serde_urlencoded",
+ "sync_wrapper",
+ "system-configuration",
  "tokio",
- "tracing",
- "wasm-timer",
+ "tokio-rustls 0.25.0",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "webpki-roots 0.26.1",
+ "winreg 0.52.0",
 ]
 
 [[package]]
@@ -5155,30 +4666,13 @@ dependencies = [
 ]
 
 [[package]]
-name = "retain_mut"
-version = "0.1.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4389f1d5789befaf6029ebd9f7dac4af7f7e3d61b69d4f30e2ac02b57e7712b0"
-
-[[package]]
-name = "retry-policies"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17dd00bff1d737c40dbcd47d4375281bf4c17933f9eef0a185fc7bacca23ecbd"
-dependencies = [
- "anyhow",
- "chrono",
- "rand 0.8.5",
-]
-
-[[package]]
 name = "rexpect"
 version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "01ff60778f96fb5a48adbe421d21bf6578ed58c0872d712e7e08593c195adff8"
 dependencies = [
  "comma",
- "nix 0.25.1",
+ "nix",
  "regex",
  "tempfile",
  "thiserror",
@@ -5201,23 +4695,24 @@ dependencies = [
 
 [[package]]
 name = "ring"
-version = "0.17.7"
+version = "0.17.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
+checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
 dependencies = [
  "cc",
- "getrandom 0.2.11",
+ "cfg-if",
+ "getrandom 0.2.14",
  "libc",
  "spin 0.9.8",
  "untrusted 0.9.0",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "rmp"
-version = "0.8.12"
+version = "0.8.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f9860a6cc38ed1da53456442089b4dfa35e7cedaa326df63017af88385e6b20"
+checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4"
 dependencies = [
  "byteorder",
  "num-traits",
@@ -5226,9 +4721,9 @@ dependencies = [
 
 [[package]]
 name = "rmp-serde"
-version = "1.1.2"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bffea85eea980d8a74453e5d02a8d93028f3c34725de143085a844ebe953258a"
+checksum = "938a142ab806f18b88a97b0dea523d39e0fd730a064b035726adcfc58a8a5188"
 dependencies = [
  "byteorder",
  "rmp",
@@ -5288,7 +4783,7 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
 dependencies = [
- "semver 1.0.20",
+ "semver 1.0.22",
 ]
 
 [[package]]
@@ -5312,39 +4807,51 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.26"
+version = "0.38.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9470c4bf8246c8daf25f9598dca807fb6510347b1e1cfa55749113850c79d88a"
+checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "errno",
- "itoa",
  "libc",
  "linux-raw-sys",
- "once_cell",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "rustls"
-version = "0.21.9"
+version = "0.21.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9"
+checksum = "7fecbfb7b1444f477b345853b1fce097a2c6fb637b2bfb87e6bc5db0f043fae4"
 dependencies = [
  "log",
- "ring 0.17.7",
- "rustls-webpki",
+ "ring 0.17.8",
+ "rustls-webpki 0.101.7",
  "sct",
 ]
 
 [[package]]
+name = "rustls"
+version = "0.22.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432"
+dependencies = [
+ "log",
+ "ring 0.17.8",
+ "rustls-pki-types",
+ "rustls-webpki 0.102.3",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
 name = "rustls-native-certs"
 version = "0.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00"
 dependencies = [
  "openssl-probe",
- "rustls-pemfile",
+ "rustls-pemfile 1.0.4",
  "schannel",
  "security-framework",
 ]
@@ -5355,16 +4862,43 @@ version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "2.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d"
+dependencies = [
+ "base64 0.22.0",
+ "rustls-pki-types",
 ]
 
 [[package]]
+name = "rustls-pki-types"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247"
+
+[[package]]
 name = "rustls-webpki"
 version = "0.101.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
 dependencies = [
- "ring 0.17.7",
+ "ring 0.17.8",
+ "untrusted 0.9.0",
+]
+
+[[package]]
+name = "rustls-webpki"
+version = "0.102.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3bce581c0dd41bce533ce695a1437fa16a7ab5ac3ccfa99fe1a620a7885eabf"
+dependencies = [
+ "ring 0.17.8",
+ "rustls-pki-types",
  "untrusted 0.9.0",
 ]
 
@@ -5381,15 +4915,15 @@ dependencies = [
  "itertools 0.10.5",
  "lazy_static",
  "rustc-hash",
- "strsim",
+ "strsim 0.10.0",
  "unicode-normalization",
 ]
 
 [[package]]
 name = "rustversion"
-version = "1.0.14"
+version = "1.0.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+checksum = "80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47"
 
 [[package]]
 name = "rusty-fork"
@@ -5405,9 +4939,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.15"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "same-file"
@@ -5420,11 +4954,11 @@ dependencies = [
 
 [[package]]
 name = "schannel"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88"
+checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
 dependencies = [
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -5439,15 +4973,15 @@ version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
 dependencies = [
- "ring 0.17.7",
+ "ring 0.17.8",
  "untrusted 0.9.0",
 ]
 
 [[package]]
 name = "security-framework"
-version = "2.9.2"
+version = "2.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
+checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6"
 dependencies = [
  "bitflags 1.3.2",
  "core-foundation",
@@ -5458,9 +4992,9 @@ dependencies = [
 
 [[package]]
 name = "security-framework-sys"
-version = "2.9.1"
+version = "2.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
+checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -5477,9 +5011,9 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.20"
+version = "1.0.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
+checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
 dependencies = [
  "serde",
 ]
@@ -5492,40 +5026,40 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
 
 [[package]]
 name = "serde"
-version = "1.0.193"
+version = "1.0.198"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
+checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_bytes"
-version = "0.11.12"
+version = "0.11.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff"
+checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.193"
+version = "1.0.198"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
+checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.108"
+version = "1.0.116"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
+checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813"
 dependencies = [
- "indexmap 2.1.0",
+ "indexmap 2.2.6",
  "itoa",
  "ryu",
  "serde",
@@ -5533,9 +5067,9 @@ dependencies = [
 
 [[package]]
 name = "serde_path_to_error"
-version = "0.1.14"
+version = "0.1.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4beec8bce849d58d06238cb50db2e1c417cfeafa4c63f692b15c82b7c80f8335"
+checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6"
 dependencies = [
  "itoa",
  "serde",
@@ -5565,20 +5099,20 @@ dependencies = [
 
 [[package]]
 name = "serde_repr"
-version = "0.1.17"
+version = "0.1.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145"
+checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.4"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
 dependencies = [
  "serde",
 ]
@@ -5602,22 +5136,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff"
 dependencies = [
  "serde",
- "serde_with_macros",
+ "serde_with_macros 1.5.2",
 ]
 
 [[package]]
 name = "serde_with"
-version = "3.4.0"
+version = "2.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23"
+checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.13.1",
  "chrono",
  "hex",
  "indexmap 1.9.3",
- "indexmap 2.1.0",
  "serde",
  "serde_json",
+ "serde_with_macros 2.3.3",
+ "time",
+]
+
+[[package]]
+name = "serde_with"
+version = "3.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee80b0e361bbf88fd2f6e242ccd19cfda072cb0faa6ae694ecee08199938569a"
+dependencies = [
+ "base64 0.21.7",
+ "chrono",
+ "hex",
+ "indexmap 1.9.3",
+ "indexmap 2.2.6",
+ "serde",
+ "serde_derive",
+ "serde_json",
  "time",
 ]
 
@@ -5627,13 +5178,50 @@ version = "1.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082"
 dependencies = [
- "darling",
+ "darling 0.13.4",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
 ]
 
 [[package]]
+name = "serde_with_macros"
+version = "2.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f"
+dependencies = [
+ "darling 0.20.8",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.59",
+]
+
+[[package]]
+name = "serial_test"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "953ad9342b3aaca7cb43c45c097dd008d4907070394bd0751a0aa8817e5a018d"
+dependencies = [
+ "dashmap",
+ "futures",
+ "lazy_static",
+ "log",
+ "parking_lot",
+ "serial_test_derive",
+]
+
+[[package]]
+name = "serial_test_derive"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.59",
+]
+
+[[package]]
 name = "sha-1"
 version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5688,55 +5276,49 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
 
 [[package]]
-name = "shellexpand"
-version = "2.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ccc8076840c4da029af4f87e4e8daeb0fca6b87bbb02e10cb60b791450e11e4"
-dependencies = [
- "dirs 4.0.0",
-]
-
-[[package]]
 name = "shuttle-admin"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "anyhow",
+ "bytes",
  "clap",
- "dirs 5.0.1",
- "reqwest",
+ "dirs",
+ "reqwest 0.11.27",
  "serde",
  "serde_json",
+ "shuttle-backends",
  "shuttle-common",
  "tokio",
- "toml 0.8.8",
+ "toml",
  "tracing",
  "tracing-subscriber",
 ]
 
 [[package]]
 name = "shuttle-auth"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "anyhow",
  "async-stripe",
  "async-trait",
  "axum",
  "axum-extra",
- "base64 0.21.5",
+ "base64 0.21.7",
  "chrono",
  "clap",
  "ctor",
- "http 0.2.11",
- "hyper 0.14.27",
+ "http 0.2.12",
+ "hyper 0.14.28",
  "jsonwebtoken",
  "once_cell",
  "opentelemetry 0.21.0",
  "pem 2.0.1",
  "portpicker",
  "pretty_assertions",
- "ring 0.17.7",
+ "ring 0.17.8",
  "serde",
  "serde_json",
+ "shuttle-backends",
  "shuttle-common",
  "shuttle-common-tests",
  "sqlx",
@@ -5746,100 +5328,109 @@ dependencies = [
  "tracing",
  "tracing-opentelemetry",
  "tracing-subscriber",
+ "ulid",
  "wiremock",
 ]
 
 [[package]]
-name = "shuttle-builder"
-version = "0.39.0"
+name = "shuttle-backends"
+version = "0.45.0"
 dependencies = [
+ "anyhow",
  "async-trait",
- "clap",
- "flate2",
- "hex",
- "nbuild-core",
- "os_pipe",
+ "axum",
+ "base64 0.21.7",
+ "bytes",
+ "ctor",
+ "headers",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "hyper 0.14.28",
+ "jsonwebtoken",
+ "opentelemetry 0.21.0",
+ "opentelemetry-appender-tracing",
+ "opentelemetry-http 0.10.0",
+ "opentelemetry-otlp",
+ "opentelemetry_sdk",
+ "permit-client-rs",
+ "permit-pdp-client-rs",
+ "pin-project",
  "portpicker",
- "pretty_assertions",
+ "reqwest 0.11.27",
+ "ring 0.17.8",
+ "rustrict",
+ "serde",
+ "serde_json",
+ "serial_test",
  "shuttle-common",
  "shuttle-common-tests",
  "shuttle-proto",
- "tar",
- "tempfile",
+ "sqlx",
+ "strum 0.26.2",
+ "test-context",
  "thiserror",
  "tokio",
- "toml 0.8.8",
  "tonic 0.10.2",
+ "tower",
+ "tower-http",
  "tracing",
+ "tracing-fluent-assertions",
+ "tracing-opentelemetry",
  "tracing-subscriber",
- "ulid",
+ "ttl_cache",
+ "uuid",
+ "wiremock",
 ]
 
 [[package]]
 name = "shuttle-codegen"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "pretty_assertions",
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "reqwest",
+ "reqwest 0.11.27",
  "serde",
  "serde_json",
  "shuttle-common-tests",
- "syn 2.0.39",
+ "syn 2.0.59",
  "tokio",
  "trybuild",
 ]
 
 [[package]]
 name = "shuttle-common"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "anyhow",
  "async-trait",
  "axum",
- "base64 0.21.5",
  "bytes",
  "chrono",
  "comfy-table",
  "crossterm 0.27.0",
  "headers",
- "http 0.2.11",
- "http-body 0.4.5",
- "http-serde",
- "hyper 0.14.27",
+ "http 0.2.12",
+ "http-body 0.4.6",
  "jsonwebtoken",
- "once_cell",
  "opentelemetry 0.21.0",
- "opentelemetry-appender-tracing",
  "opentelemetry-http 0.10.0",
- "opentelemetry-otlp",
- "opentelemetry_sdk",
  "pin-project",
  "proptest",
  "rand 0.8.5",
- "reqwest",
- "ring 0.17.7",
- "rmp-serde",
- "rustrict",
- "semver 1.0.20",
+ "reqwest 0.11.27",
+ "semver 1.0.22",
  "serde",
  "serde_json",
  "sqlx",
- "strum 0.25.0",
- "test-context",
+ "strum 0.26.2",
  "thiserror",
- "tokio",
  "tonic 0.10.2",
  "tower",
- "tower-http 0.4.4",
  "tracing",
- "tracing-core",
- "tracing-fluent-assertions",
  "tracing-opentelemetry",
  "tracing-subscriber",
- "ttl_cache",
  "url",
  "uuid",
  "wiremock",
@@ -5848,12 +5439,12 @@ dependencies = [
 
 [[package]]
 name = "shuttle-common-tests"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "cargo-shuttle",
- "hyper 0.14.27",
+ "hyper 0.14.28",
  "portpicker",
- "reqwest",
+ "reqwest 0.11.27",
  "serde",
  "shuttle-common",
  "shuttle-proto",
@@ -5866,19 +5457,19 @@ dependencies = [
 
 [[package]]
 name = "shuttle-deployer"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "anyhow",
  "async-trait",
  "axum",
- "cargo_metadata 0.18.1",
+ "cargo_metadata",
  "chrono",
  "clap",
  "ctor",
  "flate2",
  "hex",
  "home",
- "hyper 0.14.27",
+ "hyper 0.14.28",
  "hyper-reverse-proxy",
  "once_cell",
  "opentelemetry 0.21.0",
@@ -5888,18 +5479,19 @@ dependencies = [
  "rmp-serde",
  "serde",
  "serde_json",
+ "shuttle-backends",
  "shuttle-common",
  "shuttle-common-tests",
  "shuttle-proto",
  "shuttle-service",
  "sqlx",
- "strum 0.25.0",
+ "strum 0.26.2",
  "tar",
  "tempfile",
  "thiserror",
  "tokio",
  "tokio-stream",
- "toml 0.8.8",
+ "toml",
  "tonic 0.10.2",
  "tower",
  "tracing",
@@ -5911,7 +5503,7 @@ dependencies = [
 
 [[package]]
 name = "shuttle-gateway"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "anyhow",
  "async-posthog",
@@ -5925,8 +5517,8 @@ dependencies = [
  "flate2",
  "fqdn",
  "futures",
- "http 0.2.11",
- "hyper 0.14.27",
+ "http 0.2.12",
+ "hyper 0.14.28",
  "hyper-reverse-proxy",
  "instant-acme",
  "jsonwebtoken",
@@ -5941,27 +5533,29 @@ dependencies = [
  "portpicker",
  "rand 0.8.5",
  "rcgen",
- "reqwest",
- "ring 0.17.7",
+ "reqwest 0.11.27",
+ "ring 0.17.8",
  "rmp-serde",
- "rustls",
- "rustls-pemfile",
+ "rustls 0.21.11",
+ "rustls-pemfile 1.0.4",
+ "semver 1.0.22",
  "serde",
  "serde_json",
+ "shuttle-backends",
  "shuttle-common",
  "shuttle-common-tests",
- "shuttle-orchestrator",
  "shuttle-proto",
  "snailquote",
  "sqlx",
- "strum 0.25.0",
+ "strum 0.26.2",
  "tar",
  "tempfile",
  "test-context",
+ "thiserror",
  "tokio",
  "tonic 0.10.2",
  "tower",
- "tower-http 0.4.4",
+ "tower-http",
  "tower-sanitize-path",
  "tracing",
  "tracing-opentelemetry",
@@ -5974,7 +5568,7 @@ dependencies = [
 
 [[package]]
 name = "shuttle-logger"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "async-trait",
  "chrono",
@@ -5985,6 +5579,7 @@ dependencies = [
  "pretty_assertions",
  "prost-types",
  "serde_json",
+ "shuttle-backends",
  "shuttle-common",
  "shuttle-common-tests",
  "shuttle-proto",
@@ -5998,24 +5593,19 @@ dependencies = [
 ]
 
 [[package]]
-name = "shuttle-orchestrator"
-version = "0.39.0"
-
-[[package]]
 name = "shuttle-proto"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "anyhow",
  "async-trait",
  "chrono",
  "futures-core",
- "http 0.2.11",
+ "http 0.2.12",
  "portpicker",
- "prost 0.12.3",
+ "prost 0.12.4",
  "prost-types",
  "serde_json",
  "shuttle-common",
- "test-context",
  "tokio",
  "tonic 0.10.2",
  "tower",
@@ -6024,7 +5614,7 @@ dependencies = [
 
 [[package]]
 name = "shuttle-provisioner"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "aws-config",
  "aws-sdk-rds",
@@ -6034,9 +5624,10 @@ dependencies = [
  "mongodb",
  "once_cell",
  "portpicker",
- "prost 0.12.3",
+ "prost 0.12.4",
  "rand 0.8.5",
  "serde_json",
+ "shuttle-backends",
  "shuttle-common",
  "shuttle-common-tests",
  "shuttle-proto",
@@ -6050,7 +5641,7 @@ dependencies = [
 
 [[package]]
 name = "shuttle-resource-recorder"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "async-trait",
  "chrono",
@@ -6059,11 +5650,12 @@ dependencies = [
  "pretty_assertions",
  "prost-types",
  "serde_json",
+ "shuttle-backends",
  "shuttle-common",
  "shuttle-common-tests",
  "shuttle-proto",
  "sqlx",
- "strum 0.25.0",
+ "strum 0.26.2",
  "thiserror",
  "tokio",
  "tonic 0.10.2",
@@ -6074,18 +5666,12 @@ dependencies = [
 
 [[package]]
 name = "shuttle-runtime"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "anyhow",
  "async-trait",
- "cap-std",
- "chrono",
  "colored",
- "futures",
- "hyper 0.14.27",
  "portpicker",
- "prost-types",
- "rmp-serde",
  "serde",
  "serde_json",
  "shuttle-codegen",
@@ -6093,24 +5679,21 @@ dependencies = [
  "shuttle-proto",
  "shuttle-service",
  "strfmt",
- "thiserror",
  "tokio",
  "tokio-stream",
+ "tokio-util",
  "tonic 0.10.2",
  "tracing-subscriber",
  "uuid",
- "wasi-common",
- "wasmtime",
- "wasmtime-wasi",
 ]
 
 [[package]]
 name = "shuttle-service"
-version = "0.39.0"
+version = "0.45.0"
 dependencies = [
  "anyhow",
  "async-trait",
- "cargo_metadata 0.18.1",
+ "cargo_metadata",
  "dunce",
  "serde",
  "shuttle-common",
@@ -6118,7 +5701,7 @@ dependencies = [
  "strfmt",
  "thiserror",
  "tokio",
- "toml 0.8.8",
+ "toml",
  "tracing",
 ]
 
@@ -6184,16 +5767,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "slice-group-by"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7"
-
-[[package]]
 name = "smallvec"
-version = "1.11.2"
+version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
 name = "smart-default"
@@ -6237,12 +5814,12 @@ dependencies = [
 
 [[package]]
 name = "socket2"
-version = "0.5.5"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
 dependencies = [
  "libc",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -6271,27 +5848,21 @@ dependencies = [
 ]
 
 [[package]]
-name = "sptr"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a"
-
-[[package]]
 name = "sqlformat"
 version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ce81b7bd7c4493975347ef60d8c7e8b742d4694f4c49f93e0a12ea263938176c"
 dependencies = [
- "itertools 0.12.0",
+ "itertools 0.12.1",
  "nom",
  "unicode_categories",
 ]
 
 [[package]]
 name = "sqlx"
-version = "0.7.3"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dba03c279da73694ef99763320dea58b51095dfe87d001b1d4b5fe78ba8763cf"
+checksum = "c9a2ccff1a000a5a59cd33da541d9f2fdcd9e6e8229cc200565942bff36d0aaa"
 dependencies = [
  "sqlx-core",
  "sqlx-macros",
@@ -6302,9 +5873,9 @@ dependencies = [
 
 [[package]]
 name = "sqlx-core"
-version = "0.7.3"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d84b0a3c3739e220d94b3239fd69fb1f74bc36e16643423bd99de3b43c21bfbd"
+checksum = "24ba59a9342a3d9bab6c56c118be528b27c9b60e490080e9711a04dccac83ef6"
 dependencies = [
  "ahash",
  "atoi",
@@ -6313,7 +5884,6 @@ dependencies = [
  "chrono",
  "crc",
  "crossbeam-queue",
- "dotenvy",
  "either",
  "event-listener",
  "futures-channel",
@@ -6323,14 +5893,14 @@ dependencies = [
  "futures-util",
  "hashlink",
  "hex",
- "indexmap 2.1.0",
+ "indexmap 2.2.6",
  "log",
  "memchr",
  "once_cell",
  "paste",
  "percent-encoding",
- "rustls",
- "rustls-pemfile",
+ "rustls 0.21.11",
+ "rustls-pemfile 1.0.4",
  "serde",
  "serde_json",
  "sha2",
@@ -6342,14 +5912,14 @@ dependencies = [
  "tracing",
  "url",
  "uuid",
- "webpki-roots",
+ "webpki-roots 0.25.4",
 ]
 
 [[package]]
 name = "sqlx-macros"
-version = "0.7.3"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89961c00dc4d7dffb7aee214964b065072bff69e36ddb9e2c107541f75e4f2a5"
+checksum = "4ea40e2345eb2faa9e1e5e326db8c34711317d2b5e08d0d5741619048a803127"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -6360,14 +5930,13 @@ dependencies = [
 
 [[package]]
 name = "sqlx-macros-core"
-version = "0.7.3"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0bd4519486723648186a08785143599760f7cc81c52334a55d6a83ea1e20841"
+checksum = "5833ef53aaa16d860e92123292f1f6a3d53c34ba8b1969f152ef1a7bb803f3c8"
 dependencies = [
- "atomic-write-file",
  "dotenvy",
  "either",
- "heck",
+ "heck 0.4.1",
  "hex",
  "once_cell",
  "proc-macro2",
@@ -6387,13 +5956,13 @@ dependencies = [
 
 [[package]]
 name = "sqlx-mysql"
-version = "0.7.3"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e37195395df71fd068f6e2082247891bc11e3289624bbc776a0cdfa1ca7f1ea4"
+checksum = "1ed31390216d20e538e447a7a9b959e06ed9fc51c37b514b46eb758016ecd418"
 dependencies = [
  "atoi",
- "base64 0.21.5",
- "bitflags 2.4.1",
+ "base64 0.21.7",
+ "bitflags 2.5.0",
  "byteorder",
  "bytes",
  "chrono",
@@ -6431,13 +6000,13 @@ dependencies = [
 
 [[package]]
 name = "sqlx-postgres"
-version = "0.7.3"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6ac0ac3b7ccd10cc96c7ab29791a7dd236bd94021f31eec7ba3d46a74aa1c24"
+checksum = "7c824eb80b894f926f89a0b9da0c7f435d27cdd35b8c655b114e58223918577e"
 dependencies = [
  "atoi",
- "base64 0.21.5",
- "bitflags 2.4.1",
+ "base64 0.21.7",
+ "bitflags 2.5.0",
  "byteorder",
  "chrono",
  "crc",
@@ -6459,7 +6028,6 @@ dependencies = [
  "rand 0.8.5",
  "serde",
  "serde_json",
- "sha1",
  "sha2",
  "smallvec",
  "sqlx-core",
@@ -6472,9 +6040,9 @@ dependencies = [
 
 [[package]]
 name = "sqlx-sqlite"
-version = "0.7.3"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "210976b7d948c7ba9fced8ca835b11cbb2d677c59c79de41ac0d397e14547490"
+checksum = "b244ef0a8414da0bed4bb1910426e890b19e5e9bccc27ada6b797d05c55ae0aa"
 dependencies = [
  "atoi",
  "chrono",
@@ -6496,12 +6064,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "stable_deref_trait"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
-
-[[package]]
 name = "static_assertions"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6531,6 +6093,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
+name = "strsim"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
+
+[[package]]
 name = "strum"
 version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6538,11 +6106,11 @@ checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f"
 
 [[package]]
 name = "strum"
-version = "0.25.0"
+version = "0.26.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
+checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29"
 dependencies = [
- "strum_macros 0.25.3",
+ "strum_macros 0.26.2",
 ]
 
 [[package]]
@@ -6551,7 +6119,7 @@ version = "0.24.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
 dependencies = [
- "heck",
+ "heck 0.4.1",
  "proc-macro2",
  "quote",
  "rustversion",
@@ -6560,22 +6128,22 @@ dependencies = [
 
 [[package]]
 name = "strum_macros"
-version = "0.25.3"
+version = "0.26.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
+checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946"
 dependencies = [
- "heck",
+ "heck 0.4.1",
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
 name = "subtle"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
 
 [[package]]
 name = "syn"
@@ -6590,9 +6158,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.39"
+version = "2.0.59"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
+checksum = "4a6531ffc7b071655e4ce2e04bd464c4830bb585a61cabb96cf808f05172615a"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -6639,22 +6207,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "system-interface"
-version = "0.26.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27ce32341b2c0b70c144bbf35627fdc1ef18c76ced5e5e7b3ee8b5ba6b2ab6a0"
-dependencies = [
- "bitflags 2.4.1",
- "cap-fs-ext",
- "cap-std",
- "fd-lock",
- "io-lifetimes",
- "rustix",
- "windows-sys 0.48.0",
- "winx",
-]
-
-[[package]]
 name = "take_mut"
 version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6678,49 +6230,22 @@ dependencies = [
 ]
 
 [[package]]
-name = "target-lexicon"
-version = "0.12.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a"
-
-[[package]]
-name = "target-spec"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bf4306559bd50cb358e7af5692694d6f6fad95cf2c0bea2571dd419f5298e12"
-dependencies = [
- "cfg-expr",
- "guppy-workspace-hack",
- "target-lexicon",
-]
-
-[[package]]
-name = "task-local-extensions"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba323866e5d033818e3240feeb9f7db2c4296674e4d9e16b97b7bf8f490434e8"
-dependencies = [
- "pin-utils",
-]
-
-[[package]]
 name = "tempfile"
-version = "3.8.1"
+version = "3.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if",
- "fastrand 2.0.1",
- "redox_syscall 0.4.1",
+ "fastrand 2.0.2",
  "rustix",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "termcolor"
-version = "1.4.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
 dependencies = [
  "winapi-util",
 ]
@@ -6733,50 +6258,50 @@ checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
 
 [[package]]
 name = "test-context"
-version = "0.1.4"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "055831a02a4f5aa28fede67f2902014273eb8c21b958ac5ebbd59b71ef30dbc3"
+checksum = "6676ab8513edfd2601a108621103fdb45cac9098305ca25ec93f7023b06b05d9"
 dependencies = [
- "async-trait",
  "futures",
  "test-context-macros",
 ]
 
 [[package]]
 name = "test-context-macros"
-version = "0.1.4"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8901a55b0a7a06ebc4a674dcca925170da8e613fa3b163a1df804ed10afb154d"
+checksum = "78ea17a2dc368aeca6f554343ced1b1e31f76d63683fa8016e5844bd7a5144a1"
 dependencies = [
+ "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.59",
 ]
 
 [[package]]
 name = "thiserror"
-version = "1.0.50"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
+checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.50"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
+checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
 name = "thread_local"
-version = "1.1.7"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
 dependencies = [
  "cfg-if",
  "once_cell",
@@ -6784,13 +6309,14 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.30"
+version = "0.3.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5"
+checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
 dependencies = [
  "deranged",
  "itoa",
  "libc",
+ "num-conv",
  "num_threads",
  "powerfmt",
  "serde",
@@ -6806,10 +6332,11 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.15"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20"
+checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
 dependencies = [
+ "num-conv",
  "time-core",
 ]
 
@@ -6830,19 +6357,19 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.34.0"
+version = "1.37.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9"
+checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787"
 dependencies = [
  "backtrace",
  "bytes",
  "libc",
  "mio",
  "num_cpus",
- "parking_lot 0.12.1",
+ "parking_lot",
  "pin-project-lite",
  "signal-hook-registry",
- "socket2 0.5.5",
+ "socket2 0.5.6",
  "tokio-macros",
  "windows-sys 0.48.0",
 ]
@@ -6865,7 +6392,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
@@ -6874,32 +6401,30 @@ version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
 dependencies = [
- "rustls",
+ "rustls 0.21.11",
  "tokio",
 ]
 
 [[package]]
-name = "tokio-stream"
-version = "0.1.14"
+name = "tokio-rustls"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842"
+checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
 dependencies = [
- "futures-core",
- "pin-project-lite",
+ "rustls 0.22.4",
+ "rustls-pki-types",
  "tokio",
 ]
 
 [[package]]
-name = "tokio-test"
-version = "0.4.3"
+name = "tokio-stream"
+version = "0.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e89b3cbabd3ae862100094ae433e1def582cf86451b4e9bf83aa7ac1d8a7d719"
+checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af"
 dependencies = [
- "async-stream",
- "bytes",
  "futures-core",
+ "pin-project-lite",
  "tokio",
- "tokio-stream",
 ]
 
 [[package]]
@@ -6910,11 +6435,11 @@ checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c"
 dependencies = [
  "futures-util",
  "log",
- "rustls",
+ "rustls 0.21.11",
  "tokio",
- "tokio-rustls",
+ "tokio-rustls 0.24.1",
  "tungstenite",
- "webpki-roots",
+ "webpki-roots 0.25.4",
 ]
 
 [[package]]
@@ -6933,53 +6458,15 @@ dependencies = [
 ]
 
 [[package]]
-name = "tokiotest-httpserver"
-version = "0.2.1"
-source = "git+https://github.com/shuttle-hq/tokiotest-httpserver?branch=feat/body#ca413a227397f0d0441b4454581ddd803acabdd7"
-dependencies = [
- "async-trait",
- "futures",
- "hyper 0.14.27",
- "lazy_static",
- "queues",
- "serde_json",
- "test-context",
- "tokio",
- "tokio-test",
- "tower-http 0.2.5",
-]
-
-[[package]]
-name = "toml"
-version = "0.5.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "toml"
-version = "0.7.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257"
-dependencies = [
- "serde",
- "serde_spanned",
- "toml_datetime",
- "toml_edit 0.19.15",
-]
-
-[[package]]
 name = "toml"
-version = "0.8.8"
+version = "0.8.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
+checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.21.0",
+ "toml_edit 0.22.9",
 ]
 
 [[package]]
@@ -6993,39 +6480,26 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.19.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
-dependencies = [
- "indexmap 2.1.0",
- "serde",
- "serde_spanned",
- "toml_datetime",
- "winnow",
-]
-
-[[package]]
-name = "toml_edit"
 version = "0.20.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81"
 dependencies = [
- "indexmap 2.1.0",
+ "indexmap 2.2.6",
  "toml_datetime",
- "winnow",
+ "winnow 0.5.40",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.21.0"
+version = "0.22.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
+checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4"
 dependencies = [
- "indexmap 2.1.0",
+ "indexmap 2.2.6",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow",
+ "winnow 0.6.6",
 ]
 
 [[package]]
@@ -7036,14 +6510,14 @@ checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a"
 dependencies = [
  "async-trait",
  "axum",
- "base64 0.21.5",
+ "base64 0.21.7",
  "bytes",
  "futures-core",
  "futures-util",
- "h2 0.3.24",
- "http 0.2.11",
- "http-body 0.4.5",
- "hyper 0.14.27",
+ "h2 0.3.26",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "hyper 0.14.28",
  "hyper-timeout",
  "percent-encoding",
  "pin-project",
@@ -7065,16 +6539,16 @@ dependencies = [
  "async-stream",
  "async-trait",
  "axum",
- "base64 0.21.5",
+ "base64 0.21.7",
  "bytes",
- "h2 0.3.24",
- "http 0.2.11",
- "http-body 0.4.5",
- "hyper 0.14.27",
+ "h2 0.3.26",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "hyper 0.14.28",
  "hyper-timeout",
  "percent-encoding",
  "pin-project",
- "prost 0.12.3",
+ "prost 0.12.4",
  "tokio",
  "tokio-stream",
  "tower",
@@ -7105,34 +6579,16 @@ dependencies = [
 
 [[package]]
 name = "tower-http"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aba3f3efabf7fb41fae8534fc20a817013dd1c12cb45441efb6c82e6556b4cd8"
-dependencies = [
- "bitflags 1.3.2",
- "bytes",
- "futures-core",
- "futures-util",
- "http 0.2.11",
- "http-body 0.4.5",
- "http-range-header",
- "pin-project-lite",
- "tower-layer",
- "tower-service",
-]
-
-[[package]]
-name = "tower-http"
 version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "bytes",
  "futures-core",
  "futures-util",
- "http 0.2.11",
- "http-body 0.4.5",
+ "http 0.2.12",
+ "http-body 0.4.6",
  "http-range-header",
  "pin-project-lite",
  "tower-layer",
@@ -7152,7 +6608,7 @@ version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4f8277387194ad48739f3516a54ef4486927ba53b8d889871f3715fb8f99f5aa"
 dependencies = [
- "http 0.2.11",
+ "http 0.2.12",
  "tower-layer",
  "tower-service",
  "url-escape",
@@ -7184,7 +6640,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
@@ -7234,7 +6690,7 @@ dependencies = [
  "tracing-core",
  "tracing-log",
  "tracing-subscriber",
- "web-time",
+ "web-time 0.2.4",
 ]
 
 [[package]]
@@ -7277,7 +6733,7 @@ dependencies = [
  "async-trait",
  "cfg-if",
  "data-encoding",
- "enum-as-inner 0.4.0",
+ "enum-as-inner",
  "futures-channel",
  "futures-io",
  "futures-util",
@@ -7294,31 +6750,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "trust-dns-proto"
-version = "0.23.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3119112651c157f4488931a01e586aa459736e9d6046d3bd9105ffb69352d374"
-dependencies = [
- "async-trait",
- "cfg-if",
- "data-encoding",
- "enum-as-inner 0.6.0",
- "futures-channel",
- "futures-io",
- "futures-util",
- "idna 0.4.0",
- "ipnet",
- "once_cell",
- "rand 0.8.5",
- "smallvec",
- "thiserror",
- "tinyvec",
- "tokio",
- "tracing",
- "url",
-]
-
-[[package]]
 name = "trust-dns-resolver"
 version = "0.21.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -7330,33 +6761,12 @@ dependencies = [
  "lazy_static",
  "log",
  "lru-cache",
- "parking_lot 0.12.1",
+ "parking_lot",
  "resolv-conf",
  "smallvec",
  "thiserror",
  "tokio",
- "trust-dns-proto 0.21.2",
-]
-
-[[package]]
-name = "trust-dns-resolver"
-version = "0.23.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10a3e6c3aff1718b3c73e395d1f35202ba2ffa847c6a62eea0db8fb4cfe30be6"
-dependencies = [
- "cfg-if",
- "futures-util",
- "ipconfig",
- "lru-cache",
- "once_cell",
- "parking_lot 0.12.1",
- "rand 0.8.5",
- "resolv-conf",
- "smallvec",
- "thiserror",
- "tokio",
- "tracing",
- "trust-dns-proto 0.23.2",
+ "trust-dns-proto",
 ]
 
 [[package]]
@@ -7367,17 +6777,17 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
 
 [[package]]
 name = "trybuild"
-version = "1.0.85"
+version = "1.0.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "196a58260a906cedb9bf6d8034b6379d0c11f552416960452f267402ceeddff1"
+checksum = "8ad7eb6319ebadebca3dacf1f85a93bc54b73dd81b9036795f73de7ddfe27d5a"
 dependencies = [
- "basic-toml",
  "glob",
  "once_cell",
  "serde",
  "serde_derive",
  "serde_json",
  "termcolor",
+ "toml",
 ]
 
 [[package]]
@@ -7398,11 +6808,11 @@ dependencies = [
  "byteorder",
  "bytes",
  "data-encoding",
- "http 0.2.11",
+ "http 0.2.12",
  "httparse",
  "log",
  "rand 0.8.5",
- "rustls",
+ "rustls 0.21.11",
  "sha1",
  "thiserror",
  "url",
@@ -7428,12 +6838,14 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
 
 [[package]]
 name = "ulid"
-version = "1.1.0"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e37c4b6cbcc59a8dcd09a6429fbc7890286bcbb79215cea7b38a3c4c0921d93"
+checksum = "34778c17965aa2a08913b57e1f34db9b4a63f5de31768b55bf20d2795f921259"
 dependencies = [
+ "getrandom 0.2.14",
  "rand 0.8.5",
  "serde",
+ "web-time 1.1.0",
 ]
 
 [[package]]
@@ -7453,9 +6865,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.14"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-bom"
@@ -7471,18 +6883,18 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
 dependencies = [
  "tinyvec",
 ]
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.10.1"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
 
 [[package]]
 name = "unicode-width"
@@ -7555,11 +6967,11 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
 name = "uuid"
-version = "1.6.1"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560"
+checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
 dependencies = [
- "getrandom 0.2.11",
+ "getrandom 0.2.14",
  "serde",
 ]
 
@@ -7604,9 +7016,9 @@ checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
 
 [[package]]
 name = "walkdir"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
 dependencies = [
  "same-file",
  "winapi-util",
@@ -7634,54 +7046,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
-name = "wasi-cap-std-sync"
-version = "13.0.1"
+name = "wasite"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77c4db6155e71cfae4ed732d87c2583faf4bbdcb77372697eb77d636f46108ba"
-dependencies = [
- "anyhow",
- "async-trait",
- "cap-fs-ext",
- "cap-rand",
- "cap-std",
- "cap-time-ext",
- "fs-set-times",
- "io-extras",
- "io-lifetimes",
- "is-terminal",
- "once_cell",
- "rustix",
- "system-interface",
- "tracing",
- "wasi-common",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "wasi-common"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf3f291b2a567f266ac488715f1742f62b2ca633524708c62ead9c0f71b7d72c"
-dependencies = [
- "anyhow",
- "bitflags 2.4.1",
- "cap-rand",
- "cap-std",
- "io-extras",
- "log",
- "rustix",
- "thiserror",
- "tracing",
- "wasmtime",
- "wiggle",
- "windows-sys 0.48.0",
-]
+checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -7689,24 +7063,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.39"
+version = "0.4.42"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12"
+checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -7716,9 +7090,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -7726,462 +7100,38 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.89"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
-
-[[package]]
-name = "wasm-encoder"
-version = "0.32.0"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ba64e81215916eaeb48fee292f29401d69235d62d8b8fd92a7b2844ec5ae5f7"
-dependencies = [
- "leb128",
-]
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
-name = "wasm-encoder"
-version = "0.38.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ad2b51884de9c7f4fe2fd1043fccb8dcad4b1e29558146ee57a144d15779f3f"
-dependencies = [
- "leb128",
-]
-
-[[package]]
-name = "wasm-timer"
-version = "0.2.5"
+name = "web-sys"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f"
+checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
 dependencies = [
- "futures",
  "js-sys",
- "parking_lot 0.11.2",
- "pin-utils",
  "wasm-bindgen",
- "wasm-bindgen-futures",
- "web-sys",
 ]
 
 [[package]]
-name = "wasmparser"
-version = "0.112.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e986b010f47fcce49cf8ea5d5f9e5d2737832f12b53ae8ae785bbe895d0877bf"
-dependencies = [
- "indexmap 2.1.0",
- "semver 1.0.20",
-]
-
-[[package]]
-name = "wasmparser"
-version = "0.118.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95ee9723b928e735d53000dec9eae7b07a60e490c85ab54abb66659fc61bfcd9"
-dependencies = [
- "indexmap 2.1.0",
- "semver 1.0.20",
-]
-
-[[package]]
-name = "wasmprinter"
-version = "0.2.75"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d027eb8294904fc715ac0870cebe6b0271e96b90605ee21511e7565c4ce568c"
-dependencies = [
- "anyhow",
- "wasmparser 0.118.1",
-]
-
-[[package]]
-name = "wasmtime"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0263693caa1486bd4d26a5f18511948a706c9290689386b81b851ce088063ce"
-dependencies = [
- "anyhow",
- "async-trait",
- "bincode",
- "bumpalo",
- "cfg-if",
- "encoding_rs",
- "fxprof-processed-profile",
- "indexmap 2.1.0",
- "libc",
- "log",
- "object",
- "once_cell",
- "paste",
- "psm",
- "rayon",
- "serde",
- "serde_derive",
- "serde_json",
- "target-lexicon",
- "wasm-encoder 0.32.0",
- "wasmparser 0.112.0",
- "wasmtime-cache",
- "wasmtime-component-macro",
- "wasmtime-component-util",
- "wasmtime-cranelift",
- "wasmtime-environ",
- "wasmtime-fiber",
- "wasmtime-jit",
- "wasmtime-runtime",
- "wasmtime-winch",
- "wat",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "wasmtime-asm-macros"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4711e5969236ecfbe70c807804ff9ffb5206c1dbb5c55c5e8200d9f7e8e76adf"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "wasmtime-cache"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b79f9f79188e5a26b6911b79d3171c06699d9a17ae07f6a265c51635b8d80c2"
-dependencies = [
- "anyhow",
- "base64 0.21.5",
- "bincode",
- "directories-next",
- "log",
- "rustix",
- "serde",
- "serde_derive",
- "sha2",
- "toml 0.5.11",
- "windows-sys 0.48.0",
- "zstd",
-]
-
-[[package]]
-name = "wasmtime-component-macro"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed724d0f41c21bcf8754651a59d0423c530069ddca4cf3822768489ad313a812"
-dependencies = [
- "anyhow",
- "proc-macro2",
- "quote",
- "syn 2.0.39",
- "wasmtime-component-util",
- "wasmtime-wit-bindgen",
- "wit-parser",
-]
-
-[[package]]
-name = "wasmtime-component-util"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e7d69464b94bd312a27d93d0b482cd74bedf01f030199ef0740d6300ebca1d3"
-
-[[package]]
-name = "wasmtime-cranelift"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e63f53c61ba05eb815f905c1738ad82c95333dd42ef5a8cc2aa3d7dfb2b08d7"
-dependencies = [
- "anyhow",
- "cfg-if",
- "cranelift-codegen",
- "cranelift-control",
- "cranelift-entity",
- "cranelift-frontend",
- "cranelift-native",
- "cranelift-wasm",
- "gimli",
- "log",
- "object",
- "target-lexicon",
- "thiserror",
- "wasmparser 0.112.0",
- "wasmtime-cranelift-shared",
- "wasmtime-environ",
- "wasmtime-versioned-export-macros",
-]
-
-[[package]]
-name = "wasmtime-cranelift-shared"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f6b197d68612f7dc3a17aa9f9587533715ecb8b4755609ce9baf7fb92b74ddc"
-dependencies = [
- "anyhow",
- "cranelift-codegen",
- "cranelift-control",
- "cranelift-native",
- "gimli",
- "object",
- "target-lexicon",
- "wasmtime-environ",
-]
-
-[[package]]
-name = "wasmtime-environ"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18e2558c8b04fd27764d8601d46b8dc39555b79720a41e626bce210a80758932"
-dependencies = [
- "anyhow",
- "cranelift-entity",
- "gimli",
- "indexmap 2.1.0",
- "log",
- "object",
- "serde",
- "serde_derive",
- "target-lexicon",
- "thiserror",
- "wasm-encoder 0.32.0",
- "wasmparser 0.112.0",
- "wasmprinter",
- "wasmtime-component-util",
- "wasmtime-types",
-]
-
-[[package]]
-name = "wasmtime-fiber"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a615a2cf64a49c0dc659c7d850c6cd377b975e0abfdcf0888b282d274a82e730"
-dependencies = [
- "cc",
- "cfg-if",
- "rustix",
- "wasmtime-asm-macros",
- "wasmtime-versioned-export-macros",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "wasmtime-jit"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd775514b8034b85b0323bfdc60abb1c28d27dbf6e22aad083ed57dac95cf72e"
-dependencies = [
- "addr2line",
- "anyhow",
- "bincode",
- "cfg-if",
- "cpp_demangle",
- "gimli",
- "ittapi",
- "log",
- "object",
- "rustc-demangle",
- "rustix",
- "serde",
- "serde_derive",
- "target-lexicon",
- "wasmtime-environ",
- "wasmtime-jit-debug",
- "wasmtime-jit-icache-coherence",
- "wasmtime-runtime",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "wasmtime-jit-debug"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c054e27c6ce2a6191edabe89e646da013044dd5369e1d203c89f977f9bd32937"
-dependencies = [
- "object",
- "once_cell",
- "rustix",
- "wasmtime-versioned-export-macros",
-]
-
-[[package]]
-name = "wasmtime-jit-icache-coherence"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f323977cddf4a262d1b856366b665c5b4d01793c57b79fb42505b9fd9e61e5b"
-dependencies = [
- "cfg-if",
- "libc",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "wasmtime-runtime"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29e26461bba043f73cb4183f4ce0d606c0eaac112475867b11e5ea36fe1cac8e"
-dependencies = [
- "anyhow",
- "cc",
- "cfg-if",
- "encoding_rs",
- "indexmap 2.1.0",
- "libc",
- "log",
- "mach",
- "memfd",
- "memoffset 0.9.0",
- "paste",
- "rand 0.8.5",
- "rustix",
- "sptr",
- "wasm-encoder 0.32.0",
- "wasmtime-asm-macros",
- "wasmtime-environ",
- "wasmtime-fiber",
- "wasmtime-jit-debug",
- "wasmtime-versioned-export-macros",
- "wasmtime-wmemcheck",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "wasmtime-types"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fd7e9b29fee64eea5058cb5e7cb3480b52c2f1312d431d16ea8617ceebeb421"
-dependencies = [
- "cranelift-entity",
- "serde",
- "serde_derive",
- "thiserror",
- "wasmparser 0.112.0",
-]
-
-[[package]]
-name = "wasmtime-versioned-export-macros"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6362c557c36d8ad4aaab735f14ed9e4f78d6b40ec85a02a88fd859af87682e52"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.39",
-]
-
-[[package]]
-name = "wasmtime-wasi"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52c9e79f73320d96cd7644b021502dffee09dd92300b073f3541ae44e9ae377c"
-dependencies = [
- "anyhow",
- "async-trait",
- "bitflags 2.4.1",
- "bytes",
- "cap-fs-ext",
- "cap-net-ext",
- "cap-rand",
- "cap-std",
- "cap-time-ext",
- "fs-set-times",
- "futures",
- "io-extras",
- "io-lifetimes",
- "is-terminal",
- "libc",
- "once_cell",
- "rustix",
- "system-interface",
- "thiserror",
- "tokio",
- "tracing",
- "wasi-cap-std-sync",
- "wasi-common",
- "wasmtime",
- "wiggle",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "wasmtime-winch"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa5fc7212424c04c01a20bfa66c4c518e8749dde6546f5e05815dcacbec80723"
-dependencies = [
- "anyhow",
- "cranelift-codegen",
- "gimli",
- "object",
- "target-lexicon",
- "wasmparser 0.112.0",
- "wasmtime-cranelift-shared",
- "wasmtime-environ",
- "winch-codegen",
-]
-
-[[package]]
-name = "wasmtime-wit-bindgen"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcc03bd58f77a68dc6a0b2ba2f8e64b1f902b50389d21bbcc690ef2f3bb87198"
-dependencies = [
- "anyhow",
- "heck",
- "indexmap 2.1.0",
- "wit-parser",
-]
-
-[[package]]
-name = "wasmtime-wmemcheck"
-version = "13.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e485bf54eba675ca615f8f55788d3a8cd44e7bd09b8b4011edc22c2c41d859e"
-
-[[package]]
-name = "wast"
-version = "35.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ef140f1b49946586078353a453a1d28ba90adfc54dde75710bc1931de204d68"
-dependencies = [
- "leb128",
-]
-
-[[package]]
-name = "wast"
-version = "69.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1ee37317321afde358e4d7593745942c48d6d17e0e6e943704de9bbee121e7a"
-dependencies = [
- "leb128",
- "memchr",
- "unicode-width",
- "wasm-encoder 0.38.1",
-]
-
-[[package]]
-name = "wat"
-version = "1.0.82"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aeb338ee8dee4d4cd05e6426683f21c5087dc7cfc8903e839ccf48d43332da3c"
-dependencies = [
- "wast 69.0.1",
-]
-
-[[package]]
-name = "web-sys"
-version = "0.3.66"
+name = "web-time"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f"
+checksum = "aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -8189,9 +7139,9 @@ dependencies = [
 
 [[package]]
 name = "web-time"
-version = "0.2.3"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57099a701fb3a8043f993e8228dc24229c7b942e2b009a1b962e54489ba1d3bf"
+checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -8199,9 +7149,9 @@ dependencies = [
 
 [[package]]
 name = "webbrowser"
-version = "0.8.12"
+version = "0.8.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82b2391658b02c27719fc5a0a73d6e696285138e8b12fba9d4baa70451023c71"
+checksum = "db67ae75a9405634f5882791678772c94ff5f16a66535aae186e26aa0841fc8b"
 dependencies = [
  "core-foundation",
  "home",
@@ -8216,63 +7166,34 @@ dependencies = [
 
 [[package]]
 name = "webpki-roots"
-version = "0.25.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10"
-
-[[package]]
-name = "whoami"
-version = "1.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50"
-
-[[package]]
-name = "widestring"
-version = "1.0.2"
+version = "0.25.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8"
+checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
 
 [[package]]
-name = "wiggle"
-version = "13.0.1"
+name = "webpki-roots"
+version = "0.26.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e81ddbdc400b38d04241d740d0406ef343bd242c460f252fe59f29ad964ad24c"
+checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009"
 dependencies = [
- "anyhow",
- "async-trait",
- "bitflags 2.4.1",
- "thiserror",
- "tracing",
- "wasmtime",
- "wiggle-macro",
+ "rustls-pki-types",
 ]
 
 [[package]]
-name = "wiggle-generate"
-version = "13.0.1"
+name = "whoami"
+version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c993123d6db1a1908ef8352aabdf2e681a3dcdedc3656beb747e4db16d3cf08"
+checksum = "a44ab49fad634e88f55bf8f9bb3abd2f27d7204172a112c7c9987e01c1c94ea9"
 dependencies = [
- "anyhow",
- "heck",
- "proc-macro2",
- "quote",
- "shellexpand",
- "syn 2.0.39",
- "witx",
+ "redox_syscall",
+ "wasite",
 ]
 
 [[package]]
-name = "wiggle-macro"
-version = "13.0.1"
+name = "widestring"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "476e3e09bc68e82624b70a322265515523754cb9e05fcacceabd216e276bc2ed"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.39",
- "wiggle-generate",
-]
+checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311"
 
 [[package]]
 name = "winapi"
@@ -8306,37 +7227,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
-name = "winch-codegen"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9b01ca6722f7421c9cdbe4c9b62342ce864d0a9e8736d56dac717a86b1a65ae"
-dependencies = [
- "anyhow",
- "cranelift-codegen",
- "gimli",
- "regalloc2",
- "smallvec",
- "target-lexicon",
- "wasmparser 0.112.0",
- "wasmtime-environ",
-]
-
-[[package]]
-name = "windows"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
-dependencies = [
- "windows-targets 0.48.5",
-]
-
-[[package]]
 name = "windows-core"
-version = "0.51.1"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.48.5",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -8363,7 +7259,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -8398,17 +7294,18 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.0",
- "windows_aarch64_msvc 0.52.0",
- "windows_i686_gnu 0.52.0",
- "windows_i686_msvc 0.52.0",
- "windows_x86_64_gnu 0.52.0",
- "windows_x86_64_gnullvm 0.52.0",
- "windows_x86_64_msvc 0.52.0",
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
 ]
 
 [[package]]
@@ -8425,9 +7322,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -8443,9 +7340,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -8461,9 +7358,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.0"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -8479,9 +7382,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -8497,9 +7400,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -8515,9 +7418,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.0"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -8533,15 +7436,24 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.0"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
+
+[[package]]
+name = "winnow"
+version = "0.5.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
 
 [[package]]
 name = "winnow"
-version = "0.5.25"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7e87b8dfbe3baffbe687eef2e164e32286eff31a5ee16463ce03d991643ec94"
+checksum = "f0c976aaaa0e1f90dbb21e9587cdaf1d9679a1cde8875c0d6bd83ab96a208352"
 dependencies = [
  "memchr",
 ]
@@ -8557,29 +7469,29 @@ dependencies = [
 ]
 
 [[package]]
-name = "winx"
-version = "0.36.3"
+name = "winreg"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9643b83820c0cd246ecabe5fa454dd04ba4fa67996369466d0747472d337346"
+checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5"
 dependencies = [
- "bitflags 2.4.1",
- "windows-sys 0.52.0",
+ "cfg-if",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "wiremock"
-version = "0.6.0-rc.3"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94819bffc61c498ea8219c8ba084523abd5465ccb0c11be4d9ebc9fa1fbc3617"
+checksum = "ec874e1eef0df2dcac546057fe5e29186f09c378181cd7b635b4b7bcc98e9d81"
 dependencies = [
  "assert-json-diff",
  "async-trait",
- "base64 0.21.5",
+ "base64 0.21.7",
  "deadpool",
  "futures",
- "http 1.0.0",
+ "http 1.1.0",
  "http-body-util",
- "hyper 1.1.0",
+ "hyper 1.3.1",
  "hyper-util",
  "log",
  "once_cell",
@@ -8591,36 +7503,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "wit-parser"
-version = "0.11.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a39edca9abb16309def3843af73b58d47d243fe33a9ceee572446bcc57556b9a"
-dependencies = [
- "anyhow",
- "id-arena",
- "indexmap 2.1.0",
- "log",
- "pulldown-cmark",
- "semver 1.0.20",
- "serde",
- "serde_json",
- "unicode-xid",
- "url",
-]
-
-[[package]]
-name = "witx"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e366f27a5cabcddb2706a78296a40b8fcc451e1a6aba2fc1d94b4a01bdaaef4b"
-dependencies = [
- "anyhow",
- "log",
- "thiserror",
- "wast 35.0.2",
-]
-
-[[package]]
 name = "wyz"
 version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8648,11 +7530,13 @@ dependencies = [
 
 [[package]]
 name = "xattr"
-version = "1.0.1"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985"
+checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
 dependencies = [
  "libc",
+ "linux-raw-sys",
+ "rustix",
 ]
 
 [[package]]
@@ -8678,22 +7562,22 @@ dependencies = [
 
 [[package]]
 name = "zerocopy"
-version = "0.7.31"
+version = "0.7.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c4061bedbb353041c12f413700357bec76df2c7e2ca8e4df8bac24c6bf68e3d"
+checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
 dependencies = [
  "zerocopy-derive",
 ]
 
 [[package]]
 name = "zerocopy-derive"
-version = "0.7.31"
+version = "0.7.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a"
+checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.59",
 ]
 
 [[package]]
@@ -8703,6 +7587,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
 
 [[package]]
+name = "zip"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261"
+dependencies = [
+ "aes",
+ "byteorder",
+ "bzip2",
+ "constant_time_eq",
+ "crc32fast",
+ "crossbeam-utils",
+ "flate2",
+ "hmac",
+ "pbkdf2",
+ "sha1",
+ "time",
+ "zstd",
+]
+
+[[package]]
 name = "zstd"
 version = "0.11.2+zstd.1.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8723,9 +7627,9 @@ dependencies = [
 
 [[package]]
 name = "zstd-sys"
-version = "2.0.9+zstd.1.5.5"
+version = "2.0.10+zstd.1.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656"
+checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa"
 dependencies = [
  "cc",
  "pkg-config",
diff --git a/pkgs/development/tools/rust/cargo-shuttle/default.nix b/pkgs/development/tools/rust/cargo-shuttle/default.nix
index fcc7ff4756f95..e24eb149d9a78 100644
--- a/pkgs/development/tools/rust/cargo-shuttle/default.nix
+++ b/pkgs/development/tools/rust/cargo-shuttle/default.nix
@@ -10,13 +10,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-shuttle";
-  version = "0.39.0";
+  version = "0.45.0";
 
   src = fetchFromGitHub {
     owner = "shuttle-hq";
     repo = "shuttle";
     rev = "v${version}";
-    hash = "sha256-U6C6pUl6Re3fYt5KlBItpErboYXctsotunsUpWmZxiY=";
+    hash = "sha256-bjGyLfeo11Y55WqPwcUxnNkexozlxC61/rSa65gBGZ4=";
   };
 
   cargoLock = {
@@ -24,7 +24,8 @@ rustPlatform.buildRustPackage rec {
     outputHashes = {
       "async-posthog-0.2.3" = "sha256-V0f9+UKZkqh80p7UjINEbAW9y8cKBmJTRjAJZV3no1M=";
       "hyper-reverse-proxy-0.5.2-dev" = "sha256-R1ZXGgWvwHWRHmKX823QLqM6ZJW+tzWUXigKkAyI5OE=";
-      "tokiotest-httpserver-0.2.1" = "sha256-IPUaglIDwCUoczCCnX+R1IBqtc0s8b8toKEL8zN3/i8=";
+      "permit-client-rs-2.0.0" = "sha256-MxsgqPbvWDYDOb3oGuD1I6d3cdcGAhfoWsI7cwfhrb4=";
+      "permit-pdp-client-rs-0.2.0" = "sha256-F9wSvo3WzoRXjZb+We0Bvcwx3rRSG1QxXPsvrmtIN38=";
     };
   };
 
diff --git a/pkgs/development/tools/rust/cargo-tauri/default.nix b/pkgs/development/tools/rust/cargo-tauri/default.nix
index 26f99c332a434..16ebba70ec20c 100644
--- a/pkgs/development/tools/rust/cargo-tauri/default.nix
+++ b/pkgs/development/tools/rust/cargo-tauri/default.nix
@@ -17,20 +17,20 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "tauri";
-  version = "1.6.6";
+  version = "1.6.7";
 
   src = fetchFromGitHub {
     owner = "tauri-apps";
     repo = pname;
     rev = "tauri-v${version}";
-    hash = "sha256-RttKRAjkD12E8gvOum/ynHecsvrZWw3br3OzQuvutcA=";
+    hash = "sha256-XlF6OUkk9Djo28e9ntZ2EFwVyGB1nuSrCGnreSnZsRQ=";
   };
 
   # Manually specify the sourceRoot since this crate depends on other crates in the workspace. Relevant info at
   # https://discourse.nixos.org/t/difficulty-using-buildrustpackage-with-a-src-containing-multiple-cargo-workspaces/10202
   sourceRoot = "${src.name}/tooling/cli";
 
-  cargoHash = "sha256-vxLFw+tD6+IdV58A6nmFwuhcgbCBpcMfpej8VsBmJ1w=";
+  cargoHash = "sha256-r1lxSQAGpEXpicwuwVkQhLdMKUX36TuS5Y9MQNV28ek=";
 
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isLinux [ glibc libsoup cairo gtk3 webkitgtk ]
     ++ lib.optionals stdenv.isDarwin [ CoreServices Security SystemConfiguration ];
diff --git a/pkgs/development/tools/rust/sqlx-cli/default.nix b/pkgs/development/tools/rust/sqlx-cli/default.nix
index 81c02a0d636b8..fed8c02a5eaf4 100644
--- a/pkgs/development/tools/rust/sqlx-cli/default.nix
+++ b/pkgs/development/tools/rust/sqlx-cli/default.nix
@@ -27,12 +27,6 @@ rustPlatform.buildRustPackage rec {
 
   cargoHash = "sha256-sMyK1v4pJmmlN47mvgUkpLBjcpmT346VSp984IpvVWY=";
 
-  # Prepare the Cargo.lock for offline use.
-  # See https://github.com/NixOS/nixpkgs/issues/261412
-  postConfigure = ''
-    cargo metadata --offline > /dev/null
-  '';
-
   buildNoDefaultFeatures = true;
   buildFeatures = [
     "native-tls"
diff --git a/pkgs/development/tools/sentry-cli/default.nix b/pkgs/development/tools/sentry-cli/default.nix
index e291ed8eab377..188568c43f450 100644
--- a/pkgs/development/tools/sentry-cli/default.nix
+++ b/pkgs/development/tools/sentry-cli/default.nix
@@ -11,13 +11,13 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "sentry-cli";
-  version = "2.31.2";
+  version = "2.32.1";
 
   src = fetchFromGitHub {
     owner = "getsentry";
     repo = "sentry-cli";
     rev = version;
-    sha256 = "sha256-UL8PJnz+fV67F0t24OEReF4tIUa8S2NzICYgUU7fgUo=";
+    sha256 = "sha256-N92qv1CjOSeoknIbf+LA0oAzy75uRGjOpcpHCg7g5lY=";
   };
   doCheck = false;
 
@@ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ CoreServices Security SystemConfiguration ];
   nativeBuildInputs = [ installShellFiles pkg-config ];
 
-  cargoHash = "sha256-S1NwnPn3PRL6GoRBFEhhNuy9StrAhG5qCDW2uWNyU4E=";
+  cargoHash = "sha256-9L02ox2T+dBRx+mmFpy5Bktsyp3C/havfZoDaNevIMw=";
 
   postInstall = ''
     installShellCompletion --cmd sentry-cli \
diff --git a/pkgs/development/tools/supabase-cli/default.nix b/pkgs/development/tools/supabase-cli/default.nix
index b1c29170193f5..ea6be10d98fe6 100644
--- a/pkgs/development/tools/supabase-cli/default.nix
+++ b/pkgs/development/tools/supabase-cli/default.nix
@@ -9,16 +9,16 @@
 
 buildGoModule rec {
   pname = "supabase-cli";
-  version = "1.168.1";
+  version = "1.169.5";
 
   src = fetchFromGitHub {
     owner = "supabase";
     repo = "cli";
     rev = "v${version}";
-    hash = "sha256-sgc3Nm8K09DYY8CN/UMzLelK10qQrqHfMq+oSq3qPU0=";
+    hash = "sha256-H0y/eBmUG5nT/EsF1iC5hbhRBhR8jwwxlYav4Q7bSqM=";
   };
 
-  vendorHash = "sha256-PNu5eFY4Cfq35hKPTH1gTlc6G5rnD7BKGxhhzZkLfQg=";
+  vendorHash = "sha256-wZ+yYPwmePKMfYTve3Ha7teSx1mlHLnc1ZaZE6ZEdu4=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/development/tools/teller/default.nix b/pkgs/development/tools/teller/default.nix
index a918e6759bfe2..16e44c4637c6c 100644
--- a/pkgs/development/tools/teller/default.nix
+++ b/pkgs/development/tools/teller/default.nix
@@ -1,70 +1,57 @@
-{ lib, buildGoModule, fetchFromGitHub, nix-update-script }:
+{
+  lib,
+  rustPlatform,
+  fetchFromGitHub,
+  nix-update-script,
+  protobuf,
+  stdenv,
+  darwin,
+  pkg-config,
+  openssl,
+}:
 let
   pname = "teller";
-  version = "1.5.6";
-  date = "2022-10-13";
+  version = "2.0.7";
+  date = "2024-05-19";
 in
-buildGoModule {
+rustPlatform.buildRustPackage {
   inherit pname version;
 
   src = fetchFromGitHub {
     owner = "tellerops";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-vgrfWKKXf4C4qkbGiB3ndtJy1VyTx2NJs2QiOSFFZkE=";
+    hash = "sha256-CI74nMMTIPwjJfy7ASR19V6EbYZ62NoAOxlP3Xt2BuI=";
   };
 
-  vendorHash = null;
+  cargoHash = "sha256-iqZX+9l3TWrFuaQreNz4RrCgPQCyKJt6RJ1UeKYaNRs=";
 
-  # use make instead of default checks because e2e does not work with `buildGoDir`
-  checkPhase = ''
-    runHook preCheck
-    HOME="$(mktemp -d)"
-    # We do not set trimpath for tests, in case they reference test assets
-    export GOFLAGS=''${GOFLAGS//-trimpath/}
-
-    make test
-
-    # e2e tests can fail on first try
+  nativeBuildInputs = [
+    protobuf
+    pkg-config
+  ];
 
-    max_iteration=3
-    for i in $(seq 1 $max_iteration)
-    do
-      make e2e
-      result=$?
-      if [[ $result -eq 0 ]]
-      then
-        echo "e2e tests passed"
-        break
-      else
-        echo "e2e tests failed, retrying..."
-        sleep 1
-      fi
-    done
+  buildInputs = [
+    openssl
+  ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.SystemConfiguration ];
 
-    if [[ $result -ne 0 ]]
-    then
-      echo "e2e tests failed after $max_iteration attempts"
-    fi
+  doCheck = false;
 
-    runHook postCheck
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/teller --version 2>&1 | grep ${version};
   '';
 
   passthru.updateScript = nix-update-script { };
 
-  ldflags = [
-    "-s"
-    "-w"
-    "-X main.version=${version}"
-    "-X main.commit=${version}"
-    "-X main.date=${date}"
-  ];
-
   meta = with lib; {
     homepage = "https://github.com/tellerops/teller/";
     description = "Cloud native secrets management for developers";
     mainProgram = "teller";
     license = licenses.asl20;
-    maintainers = with maintainers; [ wahtique ];
+    maintainers = with maintainers; [
+      cameronraysmith
+      wahtique
+    ];
   };
 }
diff --git a/pkgs/development/tools/twilio-cli/default.nix b/pkgs/development/tools/twilio-cli/default.nix
index 414a855bea11d..80c46140e4a0c 100644
--- a/pkgs/development/tools/twilio-cli/default.nix
+++ b/pkgs/development/tools/twilio-cli/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "twilio-cli";
-  version = "5.19.4";
+  version = "5.20.0";
 
   src = fetchzip {
     url = "https://twilio-cli-prod.s3.amazonaws.com/twilio-v${finalAttrs.version}/twilio-v${finalAttrs.version}.tar.gz";
-    hash = "sha256-dSM3B9C+H0sTnxCkElDXKWUxNtctW1Jgh/nRFWEXc2A=";
+    hash = "sha256-PTA/TsmppbBG8LvofKe8vBjaotShbohEM8tNq1D6q6Y=";
   };
 
   buildInputs = [ nodejs-slim ];
diff --git a/pkgs/development/tools/viceroy/default.nix b/pkgs/development/tools/viceroy/default.nix
index 6dff9bf9037f5..e4aa62b99ff30 100644
--- a/pkgs/development/tools/viceroy/default.nix
+++ b/pkgs/development/tools/viceroy/default.nix
@@ -2,18 +2,18 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "viceroy";
-  version = "0.9.6";
+  version = "0.9.7";
 
   src = fetchFromGitHub {
     owner = "fastly";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-tJLx/dts7C5yupJX2jkRiAQumlPtlg2HzFx11jQczzE=";
+    hash = "sha256-oPeHu/EVcGFE7sSwmMWHnT+xAxayZlfyIk/sM64Q+Hw=";
   };
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
-  cargoHash = "sha256-LMdi1Xx6Tq8q+DQHpNDwmtQO+8hiVXjEP7fDIpbN2DU=";
+  cargoHash = "sha256-z24qvgej2bWq0T4OgRnALJda4xGf5/s1O4ij2igCeyU=";
 
   cargoTestFlags = [
     "--package viceroy-lib"
diff --git a/pkgs/development/tools/wasmedge/default.nix b/pkgs/development/tools/wasmedge/default.nix
index 4346b51efac89..25468947b5c7c 100644
--- a/pkgs/development/tools/wasmedge/default.nix
+++ b/pkgs/development/tools/wasmedge/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "wasmedge";
-  version = "0.13.5";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "WasmEdge";
     repo = "WasmEdge";
     rev = finalAttrs.version;
-    sha256 = "sha256-JaFaqYIwcRXYl5JukAfViUn8VTpMPThFO8EaVTPIudA=";
+    sha256 = "sha256-JPuJIM5OU1qCvFZEQ3gDNBZsIiJijtWLAVGp54z7lt0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/xqilla/default.nix b/pkgs/development/tools/xqilla/default.nix
index 352f41f47bb49..ad568f42673c9 100644
--- a/pkgs/development/tools/xqilla/default.nix
+++ b/pkgs/development/tools/xqilla/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, xercesc }:
+{ lib, stdenv, fetchurl, fetchpatch, darwin, xercesc }:
 
 stdenv.mkDerivation rec {
   pname = "xqilla";
@@ -17,7 +17,18 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  configureFlags = [ "--with-xerces=${xercesc}" ];
+  configureFlags = [
+    "--with-xerces=${xercesc}"
+    # code uses register storage specifier
+    "CXXFLAGS=-std=c++14"
+  ];
+
+  buildInputs = [
+    xercesc
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin (with darwin.apple_sdk.frameworks; [
+    CoreServices
+    SystemConfiguration
+  ]);
 
   meta = with lib; {
     description = "An XQuery and XPath 2 library and command line utility written in C++, implemented on top of the Xerces-C library";
diff --git a/pkgs/development/web/bun/default.nix b/pkgs/development/web/bun/default.nix
index 38f926c22ecac..e769924b86291 100644
--- a/pkgs/development/web/bun/default.nix
+++ b/pkgs/development/web/bun/default.nix
@@ -12,7 +12,7 @@
 }:
 
 stdenvNoCC.mkDerivation rec {
-  version = "1.1.8";
+  version = "1.1.9";
   pname = "bun";
 
   src = passthru.sources.${stdenvNoCC.hostPlatform.system} or (throw "Unsupported system: ${stdenvNoCC.hostPlatform.system}");
@@ -51,19 +51,19 @@ stdenvNoCC.mkDerivation rec {
     sources = {
       "aarch64-darwin" = fetchurl {
         url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-darwin-aarch64.zip";
-        hash = "sha256-n5ElTDuD0fap+llzrXN7de937jYaAG8dpJlKUB0npT4=";
+        hash = "sha256-gk3Zi8AcpMTCexL8ASY29W2LcwYICpD2QwpvuEbQpB4=";
       };
       "aarch64-linux" = fetchurl {
         url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-linux-aarch64.zip";
-        hash = "sha256-4/kEyaF2kmu8MAjlrPgBqKFDId8bBibu3Zll3b0w8Ro=";
+        hash = "sha256-F5yfovHAsWeLiQ4Uigrm0hy3gwz8pK5PA6AuZiyrfOI=";
       };
       "x86_64-darwin" = fetchurl {
         url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-darwin-x64.zip";
-        hash = "sha256-btyslaKqdk86whAnQV0on7NWTBTRTegFvMsOl0YyloY=";
+        hash = "sha256-HV8iVZwHPPyini8rCVMnSHmqL7HUM27uOSfaTcdnnZ0=";
       };
       "x86_64-linux" = fetchurl {
         url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-linux-x64.zip";
-        hash = "sha256-JuDT+8FHbamdMVCDeSTGPYOvhPY2EZ9XeD2zjHEj36Y=";
+        hash = "sha256-yIz/CWKTSKoeOTb/2rxbyYovw0rralSj0r2ZMPu29i8=";
       };
     };
     updateScript = writeShellScript "update-bun" ''
diff --git a/pkgs/development/web/edge-runtime/Cargo.lock b/pkgs/development/web/edge-runtime/Cargo.lock
new file mode 100644
index 0000000000000..d21116d0f79b0
--- /dev/null
+++ b/pkgs/development/web/edge-runtime/Cargo.lock
@@ -0,0 +1,7117 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "Inflector"
+version = "0.11.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
+dependencies = [
+ "lazy_static",
+ "regex",
+]
+
+[[package]]
+name = "addr2line"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "aead"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0"
+dependencies = [
+ "crypto-common",
+ "generic-array",
+]
+
+[[package]]
+name = "aead-gcm-stream"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4a09ecb526d53de2842cc876ee5c9b51161ee60399edeca4cf74892a01b48177"
+dependencies = [
+ "aead",
+ "aes",
+ "cipher",
+ "ctr",
+ "ghash",
+ "subtle",
+]
+
+[[package]]
+name = "aes"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2"
+dependencies = [
+ "cfg-if 1.0.0",
+ "cipher",
+ "cpufeatures",
+]
+
+[[package]]
+name = "aes-gcm"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1"
+dependencies = [
+ "aead",
+ "aes",
+ "cipher",
+ "ctr",
+ "ghash",
+ "subtle",
+]
+
+[[package]]
+name = "aes-kw"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69fa2b352dcefb5f7f3a5fb840e02665d311d878955380515e4fd50095dd3d8c"
+dependencies = [
+ "aes",
+]
+
+[[package]]
+name = "ahash"
+version = "0.8.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42cd52102d3df161c77a887b608d7a4897d7cc112886a9537b738a887a03aaff"
+dependencies = [
+ "cfg-if 1.0.0",
+ "once_cell",
+ "version_check 0.9.4",
+ "zerocopy",
+]
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "alloc-no-stdlib"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
+
+[[package]]
+name = "alloc-stdlib"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
+dependencies = [
+ "alloc-no-stdlib",
+]
+
+[[package]]
+name = "allocator-api2"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
+
+[[package]]
+name = "android_system_properties"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "ansi_term"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "anstream"
+version = "0.6.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
+
+[[package]]
+name = "anstyle-parse"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
+dependencies = [
+ "anstyle",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
+
+[[package]]
+name = "approx"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f2a05fd1bd10b2527e20a2cd32d8873d115b8b39fe219ee25f42a8aca6ba278"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "arrayvec"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "ash"
+version = "0.37.3+1.3.251"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39e9c3835d686b0a6084ab4234fcd1b07dbf6e4767dce60874b12356a25ecd4a"
+dependencies = [
+ "libloading 0.7.4",
+]
+
+[[package]]
+name = "asn1-rs"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0"
+dependencies = [
+ "asn1-rs-derive",
+ "asn1-rs-impl",
+ "displaydoc",
+ "nom 7.1.3",
+ "num-traits",
+ "rusticata-macros",
+ "thiserror",
+ "time",
+]
+
+[[package]]
+name = "asn1-rs-derive"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 1.0.109",
+ "synstructure",
+]
+
+[[package]]
+name = "asn1-rs-impl"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "ast_node"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3e3e06ec6ac7d893a0db7127d91063ad7d9da8988f8a1a256f03729e6eec026"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "swc_macros_common",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "async-compression"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a116f46a969224200a0a97f29cfd4c50e7534e4b4826bd23ea2c3c533039c82c"
+dependencies = [
+ "brotli",
+ "flate2",
+ "futures-core",
+ "memchr",
+ "pin-project-lite",
+ "tokio",
+]
+
+[[package]]
+name = "async-trait"
+version = "0.1.77"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "async-tungstenite"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef0f8d64ef9351752fbe5462f242c625d9c4910d2bc3f7ec44c43857ca123f5d"
+dependencies = [
+ "futures-io",
+ "futures-util",
+ "log",
+ "pin-project-lite",
+ "tungstenite",
+]
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi 0.1.19",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "auto_impl"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "823b8bb275161044e2ac7a25879cb3e2480cb403e3943022c7c769c599b756aa"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "backtrace"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if 1.0.0",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "base"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "async-tungstenite",
+ "bytes",
+ "cityhash",
+ "cooked-waker",
+ "cpu_timer",
+ "ctor",
+ "deno_ast",
+ "deno_broadcast_channel",
+ "deno_canvas",
+ "deno_config",
+ "deno_console",
+ "deno_core",
+ "deno_crypto",
+ "deno_fetch",
+ "deno_fs",
+ "deno_http",
+ "deno_io",
+ "deno_net",
+ "deno_npm",
+ "deno_semver",
+ "deno_tls",
+ "deno_url",
+ "deno_web",
+ "deno_webgpu",
+ "deno_webidl",
+ "deno_websocket",
+ "enum-as-inner 0.6.0",
+ "eszip",
+ "event_worker",
+ "fastwebsockets 0.4.4",
+ "flume",
+ "futures-util",
+ "http 0.2.11",
+ "http_utils",
+ "httparse",
+ "hyper 0.14.28",
+ "import_map",
+ "log",
+ "monch",
+ "notify",
+ "once_cell",
+ "pin-project",
+ "reqwest",
+ "rustls-pemfile 2.1.0",
+ "sb_ai",
+ "sb_core",
+ "sb_env",
+ "sb_fs",
+ "sb_graph",
+ "sb_module_loader",
+ "sb_node",
+ "sb_npm",
+ "sb_os",
+ "sb_workers",
+ "scopeguard",
+ "serde",
+ "serial_test",
+ "thiserror",
+ "tls-listener",
+ "tokio",
+ "tokio-rustls 0.25.0",
+ "tokio-util",
+ "tungstenite",
+ "url",
+ "urlencoding",
+ "uuid",
+]
+
+[[package]]
+name = "base16ct"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf"
+
+[[package]]
+name = "base32"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23ce669cd6c8588f79e15cf450314f9638f967fc5770ff1c7c1deb0925ea7cfa"
+
+[[package]]
+name = "base64"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+
+[[package]]
+name = "base64"
+version = "0.21.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+
+[[package]]
+name = "base64-simd"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195"
+dependencies = [
+ "outref",
+ "vsimd",
+]
+
+[[package]]
+name = "base64ct"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
+
+[[package]]
+name = "better_scoped_tls"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "794edcc9b3fb07bb4aecaa11f093fd45663b4feadb782d68303a2268bc2701de"
+dependencies = [
+ "scoped-tls",
+]
+
+[[package]]
+name = "bincode"
+version = "1.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "bindgen"
+version = "0.49.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c07087f3d5731bf3fb375a81841b99597e25dc11bd3bc72d16d43adf6624a6e"
+dependencies = [
+ "bitflags 1.3.2",
+ "cexpr",
+ "cfg-if 0.1.10",
+ "clang-sys",
+ "clap 2.34.0",
+ "env_logger 0.6.2",
+ "fxhash",
+ "lazy_static",
+ "log",
+ "peeking_take_while",
+ "proc-macro2 0.4.30",
+ "quote 0.6.13",
+ "regex",
+ "shlex",
+ "which 2.0.1",
+]
+
+[[package]]
+name = "bit-set"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
+dependencies = [
+ "bit-vec",
+]
+
+[[package]]
+name = "bit-vec"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "block"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
+
+[[package]]
+name = "block-buffer"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "block-padding"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "brotli"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f"
+dependencies = [
+ "alloc-no-stdlib",
+ "alloc-stdlib",
+ "brotli-decompressor",
+]
+
+[[package]]
+name = "brotli-decompressor"
+version = "2.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f"
+dependencies = [
+ "alloc-no-stdlib",
+ "alloc-stdlib",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+
+[[package]]
+name = "bytemuck"
+version = "1.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f"
+
+[[package]]
+name = "byteorder"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+
+[[package]]
+name = "bytes"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+
+[[package]]
+name = "cache_control"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bf2a5fb3207c12b5d208ebc145f967fea5cac41a021c37417ccc31ba40f39ee"
+
+[[package]]
+name = "cauchy"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ff11ddd2af3b5e80dd0297fee6e56ac038d9bdc549573cdb51bd6d2efe7f05e"
+dependencies = [
+ "num-complex",
+ "num-traits",
+ "rand",
+ "serde",
+]
+
+[[package]]
+name = "cbc"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6"
+dependencies = [
+ "cipher",
+]
+
+[[package]]
+name = "cblas-sys"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6feecd82cce51b0204cf063f0041d69f24ce83f680d87514b004248e7b0fa65"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.83"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "cexpr"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fce5b5fb86b0c57c20c834c1b412fd09c77c8a59b9473f86272709e78874cd1d"
+dependencies = [
+ "nom 4.2.3",
+]
+
+[[package]]
+name = "cfg-if"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "chrono"
+version = "0.4.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1"
+dependencies = [
+ "iana-time-zone",
+ "num-integer",
+ "num-traits",
+ "winapi",
+]
+
+[[package]]
+name = "cipher"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
+dependencies = [
+ "crypto-common",
+ "inout",
+]
+
+[[package]]
+name = "cityhash"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7ecb82e5b6394ea8408bc8f454d50c75f339ca89f9af90a6ff8694e6a1c63da"
+dependencies = [
+ "bindgen",
+ "cc",
+ "clap 2.34.0",
+ "libc",
+]
+
+[[package]]
+name = "clang-sys"
+version = "0.28.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81de550971c976f176130da4b2978d3b524eaa0fd9ac31f3ceb5ae1231fb4853"
+dependencies = [
+ "glob",
+ "libc",
+ "libloading 0.5.2",
+]
+
+[[package]]
+name = "clap"
+version = "2.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
+dependencies = [
+ "ansi_term",
+ "atty",
+ "bitflags 1.3.2",
+ "strsim 0.8.0",
+ "term_size",
+ "textwrap",
+ "unicode-width",
+ "vec_map",
+ "yaml-rust",
+]
+
+[[package]]
+name = "clap"
+version = "4.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f"
+dependencies = [
+ "clap_builder",
+]
+
+[[package]]
+name = "clap_builder"
+version = "4.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "clap_lex",
+ "strsim 0.11.0",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
+
+[[package]]
+name = "cli"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "base",
+ "clap 4.5.0",
+ "deno_core",
+ "dotenv-build",
+ "env_logger 0.10.2",
+ "glob",
+ "log",
+ "sb_graph",
+ "tokio",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "codespan-reporting"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
+dependencies = [
+ "termcolor",
+ "unicode-width",
+]
+
+[[package]]
+name = "color_quant"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
+
+[[package]]
+name = "colorchoice"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+
+[[package]]
+name = "const-oid"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
+
+[[package]]
+name = "convert_case"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
+
+[[package]]
+name = "cooked-waker"
+version = "5.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "147be55d677052dabc6b22252d5dd0fd4c29c8c27aa4f2fbef0f94aa003b406f"
+
+[[package]]
+name = "core-foundation"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
+
+[[package]]
+name = "core-graphics-types"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "libc",
+]
+
+[[package]]
+name = "cpu_timer"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "ctor",
+ "futures",
+ "libc",
+ "log",
+ "nix",
+ "once_cell",
+ "signal-hook",
+ "signal-hook-tokio",
+ "tokio",
+]
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "crc"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49fc9a695bca7f35f5f4c15cddc84415f66a74ea78eef08e90c5024f2b540e23"
+dependencies = [
+ "crc-catalog",
+]
+
+[[package]]
+name = "crc-catalog"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccaeedb56da03b09f598226e25e80088cb4cd25f316e6e4df7d695f0feeb1403"
+
+[[package]]
+name = "crc32fast"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
+dependencies = [
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
+dependencies = [
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+
+[[package]]
+name = "crunchy"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
+
+[[package]]
+name = "crypto-bigint"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76"
+dependencies = [
+ "generic-array",
+ "rand_core",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "crypto-common"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+dependencies = [
+ "generic-array",
+ "rand_core",
+ "typenum",
+]
+
+[[package]]
+name = "ctor"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e"
+dependencies = [
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "ctr"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835"
+dependencies = [
+ "cipher",
+]
+
+[[package]]
+name = "curve25519-dalek"
+version = "4.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348"
+dependencies = [
+ "cfg-if 1.0.0",
+ "cpufeatures",
+ "curve25519-dalek-derive",
+ "fiat-crypto",
+ "platforms",
+ "rustc_version 0.4.0",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "curve25519-dalek-derive"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "d3d12"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e16e44ab292b1dddfdaf7be62cfd8877df52f2f3fde5858d95bab606be259f20"
+dependencies = [
+ "bitflags 2.4.2",
+ "libloading 0.8.1",
+ "winapi",
+]
+
+[[package]]
+name = "darling"
+version = "0.14.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.14.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "strsim 0.10.0",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.14.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e"
+dependencies = [
+ "darling_core",
+ "quote 1.0.35",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "dashmap"
+version = "5.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
+dependencies = [
+ "cfg-if 1.0.0",
+ "hashbrown 0.14.3",
+ "lock_api",
+ "once_cell",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "data-encoding"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
+
+[[package]]
+name = "data-url"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41b319d1b62ffbd002e057f36bebd1f42b9f97927c9577461d855f3513c4289f"
+
+[[package]]
+name = "debugid"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d"
+dependencies = [
+ "serde",
+ "uuid",
+]
+
+[[package]]
+name = "deno_ast"
+version = "0.32.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6fa239d4d69bb6c61bd73e0fc23e3688c7e87e1f47f2f37f4cff7a0080017299"
+dependencies = [
+ "anyhow",
+ "base64 0.21.7",
+ "deno_media_type",
+ "dprint-swc-ext",
+ "serde",
+ "swc_atoms",
+ "swc_bundler",
+ "swc_common",
+ "swc_config",
+ "swc_config_macro",
+ "swc_ecma_ast",
+ "swc_ecma_codegen",
+ "swc_ecma_codegen_macros",
+ "swc_ecma_dep_graph",
+ "swc_ecma_loader",
+ "swc_ecma_parser",
+ "swc_ecma_transforms_base",
+ "swc_ecma_transforms_classes",
+ "swc_ecma_transforms_macros",
+ "swc_ecma_transforms_optimization",
+ "swc_ecma_transforms_proposal",
+ "swc_ecma_transforms_react",
+ "swc_ecma_transforms_typescript",
+ "swc_ecma_utils",
+ "swc_ecma_visit",
+ "swc_eq_ignore_macros",
+ "swc_graph_analyzer",
+ "swc_macros_common",
+ "swc_visit",
+ "swc_visit_macros",
+ "text_lines",
+ "url",
+]
+
+[[package]]
+name = "deno_broadcast_channel"
+version = "0.130.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37d0a2bcd833ba9aa02337c79108124a53e40b6491d78bb0588772fd62059c02"
+dependencies = [
+ "async-trait",
+ "deno_core",
+ "tokio",
+ "uuid",
+]
+
+[[package]]
+name = "deno_cache_dir"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2bbb245d9a3719b5eb2b5195aaaa25108c3c93d1762b181a20fb1af1c7703eaf"
+dependencies = [
+ "anyhow",
+ "deno_media_type",
+ "indexmap 2.2.3",
+ "log",
+ "once_cell",
+ "parking_lot",
+ "ring",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "url",
+]
+
+[[package]]
+name = "deno_canvas"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cefb86183b4156b4222f128be746c5c96e3528e95eedc6f819f3cd57ecf7b3e"
+dependencies = [
+ "deno_core",
+ "deno_webgpu",
+ "image",
+ "serde",
+ "tokio",
+]
+
+[[package]]
+name = "deno_config"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aca0a5b9d2693efb14c8c80d66a052464f24cbf6b3473648037e282c0c616917"
+dependencies = [
+ "anyhow",
+ "glob",
+ "indexmap 2.2.3",
+ "jsonc-parser",
+ "log",
+ "percent-encoding",
+ "serde",
+ "serde_json",
+ "url",
+]
+
+[[package]]
+name = "deno_console"
+version = "0.136.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "598ab6c4aeb4bd4e3e31d90b8f6dd772f25ed92fc979ff12c641074ef4553030"
+dependencies = [
+ "deno_core",
+]
+
+[[package]]
+name = "deno_core"
+version = "0.256.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd5997286bcc46199bbae727f43ee65cf4bd073ac2d240a36a6ceae3bfab14ac"
+dependencies = [
+ "anyhow",
+ "bit-set",
+ "bit-vec",
+ "bytes",
+ "cooked-waker",
+ "deno_core_icudata",
+ "deno_ops",
+ "deno_unsync",
+ "futures",
+ "libc",
+ "log",
+ "memoffset 0.9.0",
+ "parking_lot",
+ "pin-project",
+ "serde",
+ "serde_json",
+ "serde_v8",
+ "smallvec",
+ "sourcemap 7.0.1",
+ "static_assertions",
+ "tokio",
+ "url",
+ "v8",
+]
+
+[[package]]
+name = "deno_core_icudata"
+version = "0.0.73"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a13951ea98c0a4c372f162d669193b4c9d991512de9f2381dd161027f34b26b1"
+
+[[package]]
+name = "deno_crypto"
+version = "0.150.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe3cc83b7fe945183ef27be203c54276abef9fbda4844722f10e0af341a316fd"
+dependencies = [
+ "aes",
+ "aes-gcm",
+ "aes-kw",
+ "base64 0.21.7",
+ "cbc",
+ "const-oid",
+ "ctr",
+ "curve25519-dalek",
+ "deno_core",
+ "deno_web",
+ "elliptic-curve",
+ "num-traits",
+ "once_cell",
+ "p256",
+ "p384",
+ "p521",
+ "rand",
+ "ring",
+ "rsa",
+ "serde",
+ "serde_bytes",
+ "sha1",
+ "sha2",
+ "signature",
+ "spki",
+ "tokio",
+ "uuid",
+ "x25519-dalek",
+]
+
+[[package]]
+name = "deno_fetch"
+version = "0.160.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5860515fb73057028018761e937edc4c910207d40d9d9721bb0bb1dfc355fb54"
+dependencies = [
+ "bytes",
+ "data-url",
+ "deno_core",
+ "deno_tls",
+ "dyn-clone",
+ "http 0.2.11",
+ "pin-project",
+ "reqwest",
+ "serde",
+ "serde_json",
+ "tokio",
+ "tokio-util",
+]
+
+[[package]]
+name = "deno_fs"
+version = "0.46.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a3eae95f88e4c5a348586b0f9d0d6f3e94aa89c6457f299d9cefed7f1ad4a30"
+dependencies = [
+ "async-trait",
+ "deno_core",
+ "deno_io",
+ "filetime",
+ "fs3",
+ "libc",
+ "log",
+ "nix",
+ "rand",
+ "rayon",
+ "serde",
+ "tokio",
+ "winapi",
+]
+
+[[package]]
+name = "deno_graph"
+version = "0.64.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0eb6ad784fa5885867ba00e0db8ddcb2d98a4a0234fe336d50a13092e268c44"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "data-url",
+ "deno_ast",
+ "deno_semver",
+ "encoding_rs",
+ "futures",
+ "import_map",
+ "indexmap 2.2.3",
+ "log",
+ "monch",
+ "once_cell",
+ "parking_lot",
+ "regex",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "url",
+]
+
+[[package]]
+name = "deno_http"
+version = "0.133.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94007415787d966f964fb2c46ce81721a9de3a23943f22935dae9c56dfad77ec"
+dependencies = [
+ "async-compression",
+ "async-trait",
+ "base64 0.21.7",
+ "brotli",
+ "bytes",
+ "cache_control",
+ "deno_core",
+ "deno_net",
+ "deno_websocket",
+ "flate2",
+ "http 0.2.11",
+ "http 1.0.0",
+ "httparse",
+ "hyper 0.14.28",
+ "hyper 1.1.0",
+ "hyper-util",
+ "itertools 0.10.5",
+ "memmem",
+ "mime",
+ "once_cell",
+ "percent-encoding",
+ "phf",
+ "pin-project",
+ "ring",
+ "scopeguard",
+ "serde",
+ "smallvec",
+ "thiserror",
+ "tokio",
+ "tokio-util",
+]
+
+[[package]]
+name = "deno_io"
+version = "0.46.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "484a121382c19f70413bb43c4a1d79a8feab6f84edd0efaaee28ef4ea3a70926"
+dependencies = [
+ "async-trait",
+ "deno_core",
+ "filetime",
+ "fs3",
+ "once_cell",
+ "tokio",
+ "winapi",
+]
+
+[[package]]
+name = "deno_lockfile"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f348633cc4425b2a9011436e256b1ae8f6c8026ec2705d852baee8643dc5562"
+dependencies = [
+ "ring",
+ "serde",
+ "serde_json",
+ "thiserror",
+]
+
+[[package]]
+name = "deno_media_type"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a798670c20308e5770cc0775de821424ff9e85665b602928509c8c70430b3ee0"
+dependencies = [
+ "data-url",
+ "serde",
+ "url",
+]
+
+[[package]]
+name = "deno_native_certs"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4785d0bdc13819b665b71e4fb7e119d859568471e4c245ec5610857e70c9345"
+dependencies = [
+ "dlopen2",
+ "dlopen2_derive",
+ "once_cell",
+ "rustls-native-certs",
+ "rustls-pemfile 1.0.4",
+]
+
+[[package]]
+name = "deno_net"
+version = "0.128.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0342543e781289ca794756301f4ea9e08185ecc63843c135c719b5a29f51857"
+dependencies = [
+ "deno_core",
+ "deno_tls",
+ "enum-as-inner 0.5.1",
+ "log",
+ "pin-project",
+ "rustls-tokio-stream",
+ "serde",
+ "socket2",
+ "tokio",
+ "trust-dns-proto",
+ "trust-dns-resolver",
+]
+
+[[package]]
+name = "deno_npm"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "376262760b173ff01f8f5d05d58a64f6d863472396afb5582590fa0949342854"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "deno_lockfile",
+ "deno_semver",
+ "futures",
+ "log",
+ "monch",
+ "serde",
+ "thiserror",
+]
+
+[[package]]
+name = "deno_ops"
+version = "0.132.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02163d08afdd6fcf21e37c399c7425987c7170203a853052a800e80c91c2e87b"
+dependencies = [
+ "proc-macro-rules",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "strum",
+ "strum_macros",
+ "syn 2.0.48",
+ "thiserror",
+]
+
+[[package]]
+name = "deno_semver"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b49e14effd9df8ed261f7a1a34ac19bbaf0fa940c59bd19a6d8313cf41525e1c"
+dependencies = [
+ "monch",
+ "once_cell",
+ "serde",
+ "thiserror",
+ "url",
+]
+
+[[package]]
+name = "deno_tls"
+version = "0.123.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "334380ef454db2148df9aba7541bc8250bb4e6fb183ece9fdb293be0462eb7ad"
+dependencies = [
+ "deno_core",
+ "deno_native_certs",
+ "once_cell",
+ "rustls 0.21.11",
+ "rustls-pemfile 1.0.4",
+ "rustls-webpki 0.101.7",
+ "serde",
+ "webpki-roots",
+]
+
+[[package]]
+name = "deno_unsync"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30dff7e03584dbae188dae96a0f1876740054809b2ad0cf7c9fc5d361f20e739"
+dependencies = [
+ "tokio",
+]
+
+[[package]]
+name = "deno_url"
+version = "0.136.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7978221ce33221ac7a18b649a5a18fe7983fbe2fddf5a6959fc672089c10f9a9"
+dependencies = [
+ "deno_core",
+ "serde",
+ "urlpattern",
+]
+
+[[package]]
+name = "deno_web"
+version = "0.167.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67d78f50e55155b77abbf8fa6bdc24f68442c91742e03b67b66cc258f4b31cd1"
+dependencies = [
+ "async-trait",
+ "base64-simd",
+ "bytes",
+ "deno_core",
+ "encoding_rs",
+ "flate2",
+ "futures",
+ "serde",
+ "tokio",
+ "uuid",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "deno_webgpu"
+version = "0.103.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ef171e8bc24e2c3e6934543784832fb5c3b29f0385f23ff604fc84c103d1283"
+dependencies = [
+ "deno_core",
+ "raw-window-handle",
+ "serde",
+ "tokio",
+ "wgpu-core",
+ "wgpu-hal",
+ "wgpu-types",
+]
+
+[[package]]
+name = "deno_webidl"
+version = "0.136.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41eff4e69896e0f7fc432271c369052efd1d0b57a3d352688e2df800d1aa8dd9"
+dependencies = [
+ "deno_core",
+]
+
+[[package]]
+name = "deno_websocket"
+version = "0.141.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "370c0f3137a37362a4737b92a4838ce2e848ee1a99ca7a4fc840293d15d841c4"
+dependencies = [
+ "bytes",
+ "deno_core",
+ "deno_net",
+ "deno_tls",
+ "fastwebsockets 0.6.0",
+ "h2 0.4.4",
+ "http 1.0.0",
+ "http-body-util",
+ "hyper 1.1.0",
+ "hyper-util",
+ "once_cell",
+ "rustls-tokio-stream",
+ "serde",
+ "tokio",
+]
+
+[[package]]
+name = "deno_webstorage"
+version = "0.131.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cec9b81da6c28b78b801f995b167e021c9a0f8364080cabbd5eead7112be0032"
+dependencies = [
+ "deno_core",
+ "deno_web",
+ "rusqlite",
+ "serde",
+]
+
+[[package]]
+name = "deno_whoami"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e75e4caa92b98a27f09c671d1399aee0f5970aa491b9a598523aac000a2192e3"
+dependencies = [
+ "libc",
+ "whoami",
+]
+
+[[package]]
+name = "der"
+version = "0.7.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c"
+dependencies = [
+ "const-oid",
+ "pem-rfc7468",
+ "zeroize",
+]
+
+[[package]]
+name = "der-parser"
+version = "8.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e"
+dependencies = [
+ "asn1-rs",
+ "displaydoc",
+ "nom 7.1.3",
+ "num-bigint",
+ "num-traits",
+ "rusticata-macros",
+]
+
+[[package]]
+name = "deranged"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
+dependencies = [
+ "powerfmt",
+]
+
+[[package]]
+name = "derive_builder"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8"
+dependencies = [
+ "derive_builder_macro",
+]
+
+[[package]]
+name = "derive_builder_core"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f"
+dependencies = [
+ "darling",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "derive_builder_macro"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e"
+dependencies = [
+ "derive_builder_core",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "derive_more"
+version = "0.99.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
+dependencies = [
+ "convert_case",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "rustc_version 0.4.0",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "digest"
+version = "0.10.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+dependencies = [
+ "block-buffer",
+ "const-oid",
+ "crypto-common",
+ "subtle",
+]
+
+[[package]]
+name = "displaydoc"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "dlopen2"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6bc2c7ed06fd72a8513ded8d0d2f6fd2655a85d6885c48cae8625d80faf28c03"
+dependencies = [
+ "dlopen2_derive",
+ "libc",
+ "once_cell",
+ "winapi",
+]
+
+[[package]]
+name = "dlopen2_derive"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "dotenv-build"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4547f16c17f6051a12cdb8c62b803f94bee6807c74aa7c530b30b737df981fc"
+
+[[package]]
+name = "dprint-swc-ext"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b2f24ce6b89a06ae3eb08d5d4f88c05d0aef1fa58e2eba8dd92c97b84210c25"
+dependencies = [
+ "bumpalo",
+ "num-bigint",
+ "rustc-hash",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_ecma_parser",
+ "text_lines",
+]
+
+[[package]]
+name = "dsa"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48bc224a9084ad760195584ce5abb3c2c34a225fa312a128ad245a6b412b7689"
+dependencies = [
+ "digest",
+ "num-bigint-dig",
+ "num-traits",
+ "pkcs8",
+ "rfc6979",
+ "sha2",
+ "signature",
+ "zeroize",
+]
+
+[[package]]
+name = "dyn-clone"
+version = "1.0.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d"
+
+[[package]]
+name = "ecb"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a8bfa975b1aec2145850fcaa1c6fe269a16578c44705a532ae3edc92b8881c7"
+dependencies = [
+ "cipher",
+]
+
+[[package]]
+name = "ecdsa"
+version = "0.16.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca"
+dependencies = [
+ "der",
+ "digest",
+ "elliptic-curve",
+ "rfc6979",
+ "signature",
+ "spki",
+]
+
+[[package]]
+name = "either"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
+
+[[package]]
+name = "elliptic-curve"
+version = "0.13.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47"
+dependencies = [
+ "base16ct",
+ "crypto-bigint",
+ "digest",
+ "ff",
+ "generic-array",
+ "group",
+ "hkdf",
+ "pem-rfc7468",
+ "pkcs8",
+ "rand_core",
+ "sec1",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "encoding_rs"
+version = "0.8.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+dependencies = [
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "enum-as-inner"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116"
+dependencies = [
+ "heck",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "enum-as-inner"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a"
+dependencies = [
+ "heck",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3"
+dependencies = [
+ "atty",
+ "humantime 1.3.0",
+ "log",
+ "regex",
+ "termcolor",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580"
+dependencies = [
+ "humantime 2.1.0",
+ "is-terminal",
+ "log",
+ "regex",
+ "termcolor",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
+dependencies = [
+ "errno-dragonfly",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "errno"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "errno-dragonfly"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "esaxx-rs"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d817e038c30374a4bcb22f94d0a8a0e216958d4c3dcde369b1439fec4bdda6e6"
+
+[[package]]
+name = "eszip"
+version = "0.60.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a060f8bb81229bd98c26e1c0efc066be2460558ee9187e73e40a89bd2c949f06"
+dependencies = [
+ "anyhow",
+ "base64 0.21.7",
+ "deno_ast",
+ "deno_graph",
+ "deno_npm",
+ "deno_semver",
+ "futures",
+ "hashlink",
+ "serde",
+ "serde_json",
+ "sha2",
+ "thiserror",
+ "url",
+]
+
+[[package]]
+name = "event_worker"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "deno_core",
+ "log",
+ "serde",
+ "tokio",
+ "uuid",
+]
+
+[[package]]
+name = "failure"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86"
+dependencies = [
+ "backtrace",
+]
+
+[[package]]
+name = "fallible-iterator"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7"
+
+[[package]]
+name = "fallible-streaming-iterator"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
+
+[[package]]
+name = "faster-hex"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "fastwebsockets"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e6185b6dc9dddc4db0dedd2e213047e93bcbf7a0fb092abc4c4e4f3195efdb4"
+dependencies = [
+ "base64 0.21.7",
+ "hyper 0.14.28",
+ "pin-project",
+ "rand",
+ "sha1",
+ "simdutf8",
+ "thiserror",
+ "tokio",
+ "utf-8",
+]
+
+[[package]]
+name = "fastwebsockets"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f63dd7b57f9b33b1741fa631c9522eb35d43e96dcca4a6a91d5e4ca7c93acdc1"
+dependencies = [
+ "base64 0.21.7",
+ "http-body-util",
+ "hyper 1.1.0",
+ "hyper-util",
+ "pin-project",
+ "rand",
+ "sha1",
+ "simdutf8",
+ "thiserror",
+ "tokio",
+ "utf-8",
+]
+
+[[package]]
+name = "fdeflate"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
+dependencies = [
+ "simd-adler32",
+]
+
+[[package]]
+name = "ff"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449"
+dependencies = [
+ "rand_core",
+ "subtle",
+]
+
+[[package]]
+name = "fiat-crypto"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1676f435fc1dadde4d03e43f5d62b259e1ce5f40bd4ffb21db2b42ebe59c1382"
+
+[[package]]
+name = "filetime"
+version = "0.2.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
+dependencies = [
+ "cfg-if 1.0.0",
+ "libc",
+ "redox_syscall",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "fixedbitset"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
+
+[[package]]
+name = "flate2"
+version = "1.0.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743"
+dependencies = [
+ "crc32fast",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "float-cmp"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "flume"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+ "nanorand",
+ "spin 0.9.8",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "foreign-types"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
+dependencies = [
+ "foreign-types-macros",
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-macros"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "from_variant"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3a0b11eeb173ce52f84ebd943d42e58813a2ebb78a6a3ff0a243b71c5199cd7b"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "swc_macros_common",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "fs3"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb17cf6ed704f72485332f6ab65257460c4f9f3083934cf402bf9f5b3b600a90"
+dependencies = [
+ "libc",
+ "rustc_version 0.2.3",
+ "winapi",
+]
+
+[[package]]
+name = "fslock"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04412b8935272e3a9bae6f48c7bfff74c2911f60525404edfdd28e49884c3bfb"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "futures"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+
+[[package]]
+name = "futures-macro"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
+
+[[package]]
+name = "futures-task"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+
+[[package]]
+name = "futures-util"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "memchr",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "fxhash"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
+dependencies = [
+ "byteorder",
+]
+
+[[package]]
+name = "generic-array"
+version = "0.14.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+dependencies = [
+ "typenum",
+ "version_check 0.9.4",
+ "zeroize",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
+dependencies = [
+ "cfg-if 1.0.0",
+ "js-sys",
+ "libc",
+ "wasi",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "ghash"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40"
+dependencies = [
+ "opaque-debug",
+ "polyval",
+]
+
+[[package]]
+name = "gimli"
+version = "0.28.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
+
+[[package]]
+name = "gl_generator"
+version = "0.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d"
+dependencies = [
+ "khronos_api",
+ "log",
+ "xml-rs",
+]
+
+[[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
+[[package]]
+name = "glow"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd348e04c43b32574f2de31c8bb397d96c9fcfa1371bd4ca6d8bdc464ab121b1"
+dependencies = [
+ "js-sys",
+ "slotmap",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "glutin_wgl_sys"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8098adac955faa2d31079b65dc48841251f69efd3ac25477903fc424362ead"
+dependencies = [
+ "gl_generator",
+]
+
+[[package]]
+name = "gpu-alloc"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171"
+dependencies = [
+ "bitflags 2.4.2",
+ "gpu-alloc-types",
+]
+
+[[package]]
+name = "gpu-alloc-types"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4"
+dependencies = [
+ "bitflags 2.4.2",
+]
+
+[[package]]
+name = "gpu-allocator"
+version = "0.23.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "40fe17c8a05d60c38c0a4e5a3c802f2f1ceb66b76c67d96ffb34bef0475a7fad"
+dependencies = [
+ "backtrace",
+ "log",
+ "presser",
+ "thiserror",
+ "winapi",
+ "windows",
+]
+
+[[package]]
+name = "gpu-descriptor"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c"
+dependencies = [
+ "bitflags 2.4.2",
+ "gpu-descriptor-types",
+ "hashbrown 0.14.3",
+]
+
+[[package]]
+name = "gpu-descriptor-types"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c"
+dependencies = [
+ "bitflags 2.4.2",
+]
+
+[[package]]
+name = "group"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
+dependencies = [
+ "ff",
+ "rand_core",
+ "subtle",
+]
+
+[[package]]
+name = "h2"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http 0.2.11",
+ "indexmap 2.2.3",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "h2"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "816ec7294445779408f36fe57bc5b7fc1cf59664059096c65f905c1c61f58069"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http 1.0.0",
+ "indexmap 2.2.3",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "half"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872"
+dependencies = [
+ "cfg-if 1.0.0",
+ "crunchy",
+]
+
+[[package]]
+name = "halfbrown"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5681137554ddff44396e5f149892c769d45301dd9aa19c51602a89ee214cb0ec"
+dependencies = [
+ "hashbrown 0.13.2",
+ "serde",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+[[package]]
+name = "hashbrown"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
+dependencies = [
+ "ahash",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+dependencies = [
+ "ahash",
+ "allocator-api2",
+]
+
+[[package]]
+name = "hashlink"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7"
+dependencies = [
+ "hashbrown 0.14.3",
+]
+
+[[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd"
+
+[[package]]
+name = "hex"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+
+[[package]]
+name = "hexf-parse"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df"
+
+[[package]]
+name = "hkdf"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
+dependencies = [
+ "hmac",
+]
+
+[[package]]
+name = "hmac"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
+dependencies = [
+ "digest",
+]
+
+[[package]]
+name = "home"
+version = "0.5.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "hostname"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867"
+dependencies = [
+ "libc",
+ "match_cfg",
+ "winapi",
+]
+
+[[package]]
+name = "hstr"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17fafeca18cf0927e23ea44d7a5189c10536279dfe9094e0dfa953053fbb5377"
+dependencies = [
+ "new_debug_unreachable",
+ "once_cell",
+ "phf",
+ "rustc-hash",
+ "smallvec",
+]
+
+[[package]]
+name = "http"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http-body"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
+dependencies = [
+ "bytes",
+ "http 0.2.11",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "http-body"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
+dependencies = [
+ "bytes",
+ "http 1.0.0",
+]
+
+[[package]]
+name = "http-body-util"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41cb79eb393015dadd30fc252023adb0b2400a0caee0fa2a077e6e21a551e840"
+dependencies = [
+ "bytes",
+ "futures-util",
+ "http 1.0.0",
+ "http-body 1.0.0",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "http_utils"
+version = "0.1.0"
+dependencies = [
+ "bytes",
+ "futures-util",
+ "http 0.2.11",
+ "hyper 0.14.28",
+ "tokio",
+ "tokio-util",
+]
+
+[[package]]
+name = "httparse"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
+
+[[package]]
+name = "httpdate"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
+
+[[package]]
+name = "humantime"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
+dependencies = [
+ "quick-error",
+]
+
+[[package]]
+name = "humantime"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+[[package]]
+name = "hyper"
+version = "0.14.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "h2 0.3.26",
+ "http 0.2.11",
+ "http-body 0.4.6",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "socket2",
+ "tokio",
+ "tower-service",
+ "tracing",
+ "want",
+]
+
+[[package]]
+name = "hyper"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb5aa53871fc917b1a9ed87b683a5d86db645e23acb32c2e0785a353e522fb75"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "h2 0.4.4",
+ "http 1.0.0",
+ "http-body 1.0.0",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "tokio",
+ "want",
+]
+
+[[package]]
+name = "hyper-rustls"
+version = "0.24.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
+dependencies = [
+ "futures-util",
+ "http 0.2.11",
+ "hyper 0.14.28",
+ "rustls 0.21.11",
+ "tokio",
+ "tokio-rustls 0.24.1",
+]
+
+[[package]]
+name = "hyper-util"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bdea9aac0dbe5a9240d68cfd9501e2db94222c6dc06843e06640b9e07f0fdc67"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "http 1.0.0",
+ "http-body 1.0.0",
+ "hyper 1.1.0",
+ "pin-project-lite",
+ "socket2",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+ "windows-core 0.52.0",
+]
+
+[[package]]
+name = "iana-time-zone-haiku"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "ident_case"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+
+[[package]]
+name = "idna"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
+dependencies = [
+ "matches",
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "idna"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "idna"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "if_chain"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed"
+
+[[package]]
+name = "image"
+version = "0.24.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "034bbe799d1909622a74d1193aa50147769440040ff36cb2baa947609b0a4e23"
+dependencies = [
+ "bytemuck",
+ "byteorder",
+ "color_quant",
+ "num-traits",
+ "png",
+]
+
+[[package]]
+name = "import_map"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ecd467768fe83c2860e70e5de5297a7366a230ff53e1da2158bdac2384cd39d"
+dependencies = [
+ "indexmap 1.9.3",
+ "log",
+ "serde",
+ "serde_json",
+ "url",
+]
+
+[[package]]
+name = "indexmap"
+version = "1.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
+dependencies = [
+ "autocfg",
+ "hashbrown 0.12.3",
+ "serde",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177"
+dependencies = [
+ "equivalent",
+ "hashbrown 0.14.3",
+ "serde",
+]
+
+[[package]]
+name = "inotify"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff"
+dependencies = [
+ "bitflags 1.3.2",
+ "inotify-sys",
+ "libc",
+]
+
+[[package]]
+name = "inotify-sys"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "inout"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
+dependencies = [
+ "block-padding",
+ "generic-array",
+]
+
+[[package]]
+name = "ipconfig"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f"
+dependencies = [
+ "socket2",
+ "widestring",
+ "windows-sys 0.48.0",
+ "winreg",
+]
+
+[[package]]
+name = "ipnet"
+version = "2.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
+
+[[package]]
+name = "is-macro"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59a85abdc13717906baccb5a1e435556ce0df215f242892f721dff62bf25288f"
+dependencies = [
+ "Inflector",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "is-terminal"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
+dependencies = [
+ "hermit-abi 0.3.6",
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "itertools"
+version = "0.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itertools"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itertools"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+
+[[package]]
+name = "js-sys"
+version = "0.3.68"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "jsonc-parser"
+version = "0.23.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7725c320caac8c21d8228c1d055af27a995d371f78cc763073d3e068323641b5"
+dependencies = [
+ "serde_json",
+]
+
+[[package]]
+name = "k256"
+version = "0.13.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b"
+dependencies = [
+ "cfg-if 1.0.0",
+ "ecdsa",
+ "elliptic-curve",
+ "once_cell",
+ "sha2",
+ "signature",
+]
+
+[[package]]
+name = "khronos-egl"
+version = "6.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76"
+dependencies = [
+ "libc",
+ "libloading 0.8.1",
+ "pkg-config",
+]
+
+[[package]]
+name = "khronos_api"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc"
+
+[[package]]
+name = "kqueue"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c"
+dependencies = [
+ "kqueue-sys",
+ "libc",
+]
+
+[[package]]
+name = "kqueue-sys"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b"
+dependencies = [
+ "bitflags 1.3.2",
+ "libc",
+]
+
+[[package]]
+name = "lapack"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a7f0050af10913bc5e4f6091df38870cb5d4e45094d3dd551c1aff9d1d59b26"
+dependencies = [
+ "lapack-sys",
+ "libc",
+ "num-complex",
+]
+
+[[package]]
+name = "lapack-sys"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1d3a8a9f07310243de6c6226f039f14bce8d2f4c96b5d30ddbcfa31eb4e94ad"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "lax"
+version = "0.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccd3ec1cacffe7a44aee66f9e85d87e3ac69b472b546449884bd1fc1ca8ab359"
+dependencies = [
+ "cauchy",
+ "lapack",
+ "num-traits",
+ "thiserror",
+]
+
+[[package]]
+name = "lazy-regex"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d12be4595afdf58bd19e4a9f4e24187da2a66700786ff660a418e9059937a4c"
+dependencies = [
+ "lazy-regex-proc_macros",
+ "once_cell",
+ "regex",
+]
+
+[[package]]
+name = "lazy-regex-proc_macros"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44bcd58e6c97a7fcbaffcdc95728b393b8d98933bfadad49ed4097845b57ef0b"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "regex",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+dependencies = [
+ "spin 0.5.2",
+]
+
+[[package]]
+name = "lexical-core"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46"
+dependencies = [
+ "lexical-parse-float",
+ "lexical-parse-integer",
+ "lexical-util",
+ "lexical-write-float",
+ "lexical-write-integer",
+]
+
+[[package]]
+name = "lexical-parse-float"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f"
+dependencies = [
+ "lexical-parse-integer",
+ "lexical-util",
+ "static_assertions",
+]
+
+[[package]]
+name = "lexical-parse-integer"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9"
+dependencies = [
+ "lexical-util",
+ "static_assertions",
+]
+
+[[package]]
+name = "lexical-util"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc"
+dependencies = [
+ "static_assertions",
+]
+
+[[package]]
+name = "lexical-write-float"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862"
+dependencies = [
+ "lexical-util",
+ "lexical-write-integer",
+ "static_assertions",
+]
+
+[[package]]
+name = "lexical-write-integer"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446"
+dependencies = [
+ "lexical-util",
+ "static_assertions",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.153"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+
+[[package]]
+name = "libloading"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753"
+dependencies = [
+ "cc",
+ "winapi",
+]
+
+[[package]]
+name = "libloading"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
+dependencies = [
+ "cfg-if 1.0.0",
+ "winapi",
+]
+
+[[package]]
+name = "libloading"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
+dependencies = [
+ "cfg-if 1.0.0",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "libm"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
+
+[[package]]
+name = "libsqlite3-sys"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "afc22eff61b133b115c6e8c74e818c628d6d5e7a502afea6f64dee076dd94326"
+dependencies = [
+ "cc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "libz-sys"
+version = "1.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6"
+dependencies = [
+ "cc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "linked-hash-map"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+
+[[package]]
+name = "lock_api"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+
+[[package]]
+name = "lru-cache"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c"
+dependencies = [
+ "linked-hash-map",
+]
+
+[[package]]
+name = "macro_rules_attribute"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a82271f7bc033d84bbca59a3ce3e4159938cb08a9c3aebbe54d215131518a13"
+dependencies = [
+ "macro_rules_attribute-proc_macro",
+ "paste",
+]
+
+[[package]]
+name = "macro_rules_attribute-proc_macro"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8dd856d451cc0da70e2ef2ce95a18e39a93b7558bedf10201ad28503f918568"
+
+[[package]]
+name = "malloc_buf"
+version = "0.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "match_cfg"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
+
+[[package]]
+name = "matchers"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
+dependencies = [
+ "regex-automata 0.1.10",
+]
+
+[[package]]
+name = "matches"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
+
+[[package]]
+name = "matrixmultiply"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2"
+dependencies = [
+ "autocfg",
+ "rawpointer",
+]
+
+[[package]]
+name = "md-5"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
+dependencies = [
+ "cfg-if 1.0.0",
+ "digest",
+]
+
+[[package]]
+name = "md4"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7da5ac363534dce5fabf69949225e174fbf111a498bf0ff794c8ea1fba9f3dda"
+dependencies = [
+ "digest",
+]
+
+[[package]]
+name = "memchr"
+version = "2.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+
+[[package]]
+name = "memmem"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a64a92489e2744ce060c349162be1c5f33c6969234104dbd99ddb5feb08b8c15"
+
+[[package]]
+name = "memoffset"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "metal"
+version = "0.27.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c43f73953f8cbe511f021b58f18c3ce1c3d1ae13fe953293e13345bf83217f25"
+dependencies = [
+ "bitflags 2.4.2",
+ "block",
+ "core-graphics-types",
+ "foreign-types",
+ "log",
+ "objc",
+ "paste",
+]
+
+[[package]]
+name = "mime"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
+
+[[package]]
+name = "mime_guess"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef"
+dependencies = [
+ "mime",
+ "unicase",
+]
+
+[[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
+name = "miniz_oxide"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
+dependencies = [
+ "adler",
+ "simd-adler32",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
+dependencies = [
+ "libc",
+ "log",
+ "wasi",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "monch"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b52c1b33ff98142aecea13138bd399b68aa7ab5d9546c300988c345004001eea"
+
+[[package]]
+name = "monostate"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "878c2a1f1c70e5724fa28f101ca787b6a7e8ad5c5e4ae4ca3b0fa4a419fa9075"
+dependencies = [
+ "monostate-impl",
+ "serde",
+]
+
+[[package]]
+name = "monostate-impl"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f686d68a09079e63b1d2c64aa305095887ce50565f00a922ebfaeeee0d9ba6ce"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "naga"
+version = "0.14.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae585df4b6514cf8842ac0f1ab4992edc975892704835b549cf818dc0191249e"
+dependencies = [
+ "bit-set",
+ "bitflags 2.4.2",
+ "codespan-reporting",
+ "hexf-parse",
+ "indexmap 2.2.3",
+ "log",
+ "num-traits",
+ "rustc-hash",
+ "serde",
+ "spirv",
+ "termcolor",
+ "thiserror",
+ "unicode-xid 0.2.4",
+]
+
+[[package]]
+name = "nanorand"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "ndarray"
+version = "0.15.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adb12d4e967ec485a5f71c6311fe28158e9d6f4bc4a447b474184d0f91a8fa32"
+dependencies = [
+ "approx",
+ "cblas-sys",
+ "libc",
+ "matrixmultiply",
+ "num-complex",
+ "num-integer",
+ "num-traits",
+ "rawpointer",
+]
+
+[[package]]
+name = "ndarray-linalg"
+version = "0.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f87ff36428f228c6056204d0f5cb8c5165f0db0a065429faace3edbc2718f1f"
+dependencies = [
+ "cauchy",
+ "lax",
+ "ndarray",
+ "num-complex",
+ "num-traits",
+ "rand",
+ "thiserror",
+]
+
+[[package]]
+name = "new_debug_unreachable"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
+
+[[package]]
+name = "nix"
+version = "0.26.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a"
+dependencies = [
+ "bitflags 1.3.2",
+ "cfg-if 1.0.0",
+ "libc",
+ "memoffset 0.7.1",
+ "pin-utils",
+ "static_assertions",
+]
+
+[[package]]
+name = "nom"
+version = "4.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6"
+dependencies = [
+ "memchr",
+ "version_check 0.1.5",
+]
+
+[[package]]
+name = "nom"
+version = "7.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+dependencies = [
+ "memchr",
+ "minimal-lexical",
+]
+
+[[package]]
+name = "notify"
+version = "6.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
+dependencies = [
+ "bitflags 2.4.2",
+ "filetime",
+ "inotify",
+ "kqueue",
+ "libc",
+ "log",
+ "mio",
+ "walkdir",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "nu-ansi-term"
+version = "0.46.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
+dependencies = [
+ "overload",
+ "winapi",
+]
+
+[[package]]
+name = "num-bigint"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+ "rand",
+ "serde",
+]
+
+[[package]]
+name = "num-bigint-dig"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151"
+dependencies = [
+ "byteorder",
+ "lazy_static",
+ "libm",
+ "num-integer",
+ "num-iter",
+ "num-traits",
+ "rand",
+ "serde",
+ "smallvec",
+ "zeroize",
+]
+
+[[package]]
+name = "num-complex"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6"
+dependencies = [
+ "num-traits",
+ "rand",
+ "serde",
+]
+
+[[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
+name = "num-integer"
+version = "0.1.46"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "num-iter"
+version = "0.1.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+dependencies = [
+ "autocfg",
+ "libm",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+dependencies = [
+ "hermit-abi 0.3.6",
+ "libc",
+]
+
+[[package]]
+name = "objc"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
+dependencies = [
+ "malloc_buf",
+ "objc_exception",
+]
+
+[[package]]
+name = "objc_exception"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "object"
+version = "0.32.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "oid-registry"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff"
+dependencies = [
+ "asn1-rs",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "onig"
+version = "6.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f"
+dependencies = [
+ "bitflags 1.3.2",
+ "libc",
+ "once_cell",
+ "onig_sys",
+]
+
+[[package]]
+name = "onig_sys"
+version = "69.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7"
+dependencies = [
+ "cc",
+ "pkg-config",
+]
+
+[[package]]
+name = "opaque-debug"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "ort"
+version = "2.0.0-rc.0"
+source = "git+https://github.com/pykeio/ort#2abc210f3958c5b94528cc71c6c8781813a2cc2f"
+dependencies = [
+ "half",
+ "libloading 0.8.1",
+ "ndarray",
+ "ort-sys",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "ort-sys"
+version = "2.0.0-rc.0"
+source = "git+https://github.com/pykeio/ort#2abc210f3958c5b94528cc71c6c8781813a2cc2f"
+
+[[package]]
+name = "outref"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4030760ffd992bef45b0ae3f10ce1aba99e33464c90d14dd7c039884963ddc7a"
+
+[[package]]
+name = "overload"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+
+[[package]]
+name = "p224"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30c06436d66652bc2f01ade021592c80a2aad401570a18aa18b82e440d2b9aa1"
+dependencies = [
+ "ecdsa",
+ "elliptic-curve",
+ "primeorder",
+ "sha2",
+]
+
+[[package]]
+name = "p256"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b"
+dependencies = [
+ "ecdsa",
+ "elliptic-curve",
+ "primeorder",
+ "sha2",
+]
+
+[[package]]
+name = "p384"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209"
+dependencies = [
+ "ecdsa",
+ "elliptic-curve",
+ "primeorder",
+ "sha2",
+]
+
+[[package]]
+name = "p521"
+version = "0.13.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fc9e2161f1f215afdfce23677034ae137bbd45016a880c2eb3ba8eb95f085b2"
+dependencies = [
+ "base16ct",
+ "ecdsa",
+ "elliptic-curve",
+ "primeorder",
+ "rand_core",
+ "sha2",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+dependencies = [
+ "cfg-if 1.0.0",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "password-hash"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166"
+dependencies = [
+ "base64ct",
+ "rand_core",
+ "subtle",
+]
+
+[[package]]
+name = "paste"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
+
+[[package]]
+name = "path-clean"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ecba01bf2678719532c5e3059e0b5f0811273d94b397088b82e3bd0a78c78fdd"
+
+[[package]]
+name = "pathdiff"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
+
+[[package]]
+name = "pbkdf2"
+version = "0.12.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2"
+dependencies = [
+ "digest",
+ "hmac",
+]
+
+[[package]]
+name = "peeking_take_while"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
+
+[[package]]
+name = "pem-rfc7468"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412"
+dependencies = [
+ "base64ct",
+]
+
+[[package]]
+name = "percent-encoding"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+
+[[package]]
+name = "petgraph"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
+dependencies = [
+ "fixedbitset",
+ "indexmap 2.2.3",
+]
+
+[[package]]
+name = "phf"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
+dependencies = [
+ "phf_macros",
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
+dependencies = [
+ "phf_shared",
+ "rand",
+]
+
+[[package]]
+name = "phf_macros"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "pin-project"
+version = "1.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0"
+dependencies = [
+ "pin-project-internal",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "1.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkcs1"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f"
+dependencies = [
+ "der",
+ "pkcs8",
+ "spki",
+]
+
+[[package]]
+name = "pkcs8"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"
+dependencies = [
+ "der",
+ "spki",
+]
+
+[[package]]
+name = "pkg-config"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+
+[[package]]
+name = "platforms"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c"
+
+[[package]]
+name = "pmutil"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52a40bc70c2c58040d2d8b167ba9a5ff59fc9dab7ad44771cfde3dcfde7a09c6"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "png"
+version = "0.17.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f6c3c3e617595665b8ea2ff95a86066be38fb121ff920a9c0eb282abcd1da5a"
+dependencies = [
+ "bitflags 1.3.2",
+ "crc32fast",
+ "fdeflate",
+ "flate2",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "polyval"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb"
+dependencies = [
+ "cfg-if 1.0.0",
+ "cpufeatures",
+ "opaque-debug",
+ "universal-hash",
+]
+
+[[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "presser"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa"
+
+[[package]]
+name = "primeorder"
+version = "0.13.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6"
+dependencies = [
+ "elliptic-curve",
+]
+
+[[package]]
+name = "proc-macro-rules"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07c277e4e643ef00c1233393c673f655e3672cf7eb3ba08a00bdd0ea59139b5f"
+dependencies = [
+ "proc-macro-rules-macros",
+ "proc-macro2 1.0.78",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "proc-macro-rules-macros"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "207fffb0fe655d1d47f6af98cc2793405e85929bdbc420d685554ff07be27ac7"
+dependencies = [
+ "once_cell",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "0.4.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
+dependencies = [
+ "unicode-xid 0.1.0",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.78"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "profiling"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f0f7f43585c34e4fdd7497d746bc32e14458cf11c69341cc0587b1d825dde42"
+
+[[package]]
+name = "psm"
+version = "0.1.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "quick-error"
+version = "1.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+
+[[package]]
+name = "quote"
+version = "0.6.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
+dependencies = [
+ "proc-macro2 0.4.30",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+dependencies = [
+ "proc-macro2 1.0.78",
+]
+
+[[package]]
+name = "radix_fmt"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce082a9940a7ace2ad4a8b7d0b1eac6aa378895f18be598230c5f2284ac05426"
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "range-alloc"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab"
+
+[[package]]
+name = "raw-window-handle"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
+
+[[package]]
+name = "rawpointer"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
+
+[[package]]
+name = "rayon"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-cond"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "059f538b55efd2309c9794130bc149c6a553db90e9d99c2030785c82f0bd7df9"
+dependencies = [
+ "either",
+ "itertools 0.11.0",
+ "rayon",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "ref-cast"
+version = "1.0.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4846d4c50d1721b1a3bef8af76924eef20d5e723647333798c1b519b3a9473f"
+dependencies = [
+ "ref-cast-impl",
+]
+
+[[package]]
+name = "ref-cast-impl"
+version = "1.0.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5fddb4f8d99b0a2ebafc65a87a69a7b9875e4b1ae1f00db265d300ef7f28bccc"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "regex"
+version = "1.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata 0.4.5",
+ "regex-syntax 0.8.2",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+dependencies = [
+ "regex-syntax 0.6.29",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax 0.8.2",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+
+[[package]]
+name = "relative-path"
+version = "1.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e898588f33fdd5b9420719948f9f2a32c922a246964576f71ba7f24f80610fbc"
+
+[[package]]
+name = "reqwest"
+version = "0.11.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1"
+dependencies = [
+ "async-compression",
+ "base64 0.21.7",
+ "bytes",
+ "encoding_rs",
+ "futures-core",
+ "futures-util",
+ "h2 0.3.26",
+ "http 0.2.11",
+ "http-body 0.4.6",
+ "hyper 0.14.28",
+ "hyper-rustls",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "mime_guess",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustls 0.21.11",
+ "rustls-pemfile 1.0.4",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "tokio",
+ "tokio-rustls 0.24.1",
+ "tokio-socks",
+ "tokio-util",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-streams",
+ "web-sys",
+ "webpki-roots",
+ "winreg",
+]
+
+[[package]]
+name = "resolv-conf"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00"
+dependencies = [
+ "hostname",
+ "quick-error",
+]
+
+[[package]]
+name = "rfc6979"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2"
+dependencies = [
+ "hmac",
+ "subtle",
+]
+
+[[package]]
+name = "ring"
+version = "0.17.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
+dependencies = [
+ "cc",
+ "getrandom",
+ "libc",
+ "spin 0.9.8",
+ "untrusted",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "ripemd"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f"
+dependencies = [
+ "digest",
+]
+
+[[package]]
+name = "ron"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94"
+dependencies = [
+ "base64 0.21.7",
+ "bitflags 2.4.2",
+ "serde",
+ "serde_derive",
+]
+
+[[package]]
+name = "rsa"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc"
+dependencies = [
+ "const-oid",
+ "digest",
+ "num-bigint-dig",
+ "num-integer",
+ "num-traits",
+ "pkcs1",
+ "pkcs8",
+ "rand_core",
+ "signature",
+ "spki",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "rusqlite"
+version = "0.29.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "549b9d036d571d42e6e85d1c1425e2ac83491075078ca9a15be021c56b1641f2"
+dependencies = [
+ "bitflags 2.4.2",
+ "fallible-iterator",
+ "fallible-streaming-iterator",
+ "hashlink",
+ "libsqlite3-sys",
+ "smallvec",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
+[[package]]
+name = "rustc_version"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
+dependencies = [
+ "semver 0.9.0",
+]
+
+[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver 1.0.21",
+]
+
+[[package]]
+name = "rusticata-macros"
+version = "4.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632"
+dependencies = [
+ "nom 7.1.3",
+]
+
+[[package]]
+name = "rustix"
+version = "0.38.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
+dependencies = [
+ "bitflags 2.4.2",
+ "errno 0.3.8",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rustls"
+version = "0.21.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7fecbfb7b1444f477b345853b1fce097a2c6fb637b2bfb87e6bc5db0f043fae4"
+dependencies = [
+ "log",
+ "ring",
+ "rustls-webpki 0.101.7",
+ "sct",
+]
+
+[[package]]
+name = "rustls"
+version = "0.22.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41"
+dependencies = [
+ "log",
+ "ring",
+ "rustls-pki-types",
+ "rustls-webpki 0.102.2",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "rustls-native-certs"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00"
+dependencies = [
+ "openssl-probe",
+ "rustls-pemfile 1.0.4",
+ "schannel",
+ "security-framework",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
+dependencies = [
+ "base64 0.21.7",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c333bb734fcdedcea57de1602543590f545f127dc8b533324318fd492c5c70b"
+dependencies = [
+ "base64 0.21.7",
+ "rustls-pki-types",
+]
+
+[[package]]
+name = "rustls-pki-types"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ede67b28608b4c60685c7d54122d4400d90f62b40caee7700e700380a390fa8"
+
+[[package]]
+name = "rustls-tokio-stream"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ded7a36e8ac05b8ada77a84c5ceec95361942ee9dedb60a82f93f788a791aae8"
+dependencies = [
+ "futures",
+ "rustls 0.21.11",
+ "socket2",
+ "tokio",
+]
+
+[[package]]
+name = "rustls-webpki"
+version = "0.101.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
+name = "rustls-webpki"
+version = "0.102.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610"
+dependencies = [
+ "ring",
+ "rustls-pki-types",
+ "untrusted",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+
+[[package]]
+name = "ryu"
+version = "1.0.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
+
+[[package]]
+name = "ryu-js"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4950d85bc52415f8432144c97c4791bd0c4f7954de32a7270ee9cccd3c22b12b"
+
+[[package]]
+name = "salsa20"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213"
+dependencies = [
+ "cipher",
+]
+
+[[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "sb_ai"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "deno_core",
+ "log",
+ "ndarray",
+ "ndarray-linalg",
+ "once_cell",
+ "ort",
+ "rand",
+ "serde",
+ "tokenizers",
+ "tokio",
+]
+
+[[package]]
+name = "sb_core"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "base64 0.21.7",
+ "bytes",
+ "cache_control",
+ "chrono",
+ "data-url",
+ "deno_ast",
+ "deno_cache_dir",
+ "deno_core",
+ "deno_crypto",
+ "deno_fetch",
+ "deno_fs",
+ "deno_graph",
+ "deno_http",
+ "deno_net",
+ "deno_tls",
+ "deno_web",
+ "deno_websocket",
+ "deno_webstorage",
+ "encoding_rs",
+ "enum-as-inner 0.6.0",
+ "faster-hex",
+ "fs3",
+ "futures",
+ "http 0.2.11",
+ "httparse",
+ "hyper 0.14.28",
+ "import_map",
+ "indexmap 2.2.3",
+ "libc",
+ "log",
+ "memmem",
+ "once_cell",
+ "percent-encoding",
+ "ring",
+ "sb_node",
+ "scopeguard",
+ "serde",
+ "thiserror",
+ "tokio",
+ "tokio-util",
+ "twox-hash",
+]
+
+[[package]]
+name = "sb_env"
+version = "0.1.0"
+dependencies = [
+ "deno_core",
+ "sb_core",
+ "sb_node",
+]
+
+[[package]]
+name = "sb_fs"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "deno_ast",
+ "deno_core",
+ "deno_fs",
+ "deno_io",
+ "deno_npm",
+ "deno_semver",
+ "eszip",
+ "import_map",
+ "log",
+ "once_cell",
+ "sb_core",
+ "sb_node",
+ "sb_npm",
+ "serde",
+ "thiserror",
+ "tokio",
+]
+
+[[package]]
+name = "sb_graph"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "deno_ast",
+ "deno_config",
+ "deno_core",
+ "deno_fs",
+ "deno_lockfile",
+ "deno_npm",
+ "deno_semver",
+ "deno_web",
+ "eszip",
+ "glob",
+ "import_map",
+ "log",
+ "once_cell",
+ "sb_core",
+ "sb_fs",
+ "sb_node",
+ "sb_npm",
+ "serde",
+ "tokio",
+ "urlencoding",
+]
+
+[[package]]
+name = "sb_module_loader"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "deno_ast",
+ "deno_core",
+ "deno_fs",
+ "deno_npm",
+ "deno_semver",
+ "deno_tls",
+ "eszip",
+ "import_map",
+ "log",
+ "monch",
+ "once_cell",
+ "sb_core",
+ "sb_fs",
+ "sb_graph",
+ "sb_node",
+ "sb_npm",
+ "serde",
+ "tokio",
+]
+
+[[package]]
+name = "sb_node"
+version = "0.1.0"
+dependencies = [
+ "aead-gcm-stream",
+ "aes",
+ "brotli",
+ "bytes",
+ "cbc",
+ "const-oid",
+ "data-encoding",
+ "deno_core",
+ "deno_fetch",
+ "deno_fs",
+ "deno_media_type",
+ "deno_net",
+ "deno_whoami",
+ "digest",
+ "dsa",
+ "ecb",
+ "elliptic-curve",
+ "errno 0.2.8",
+ "h2 0.3.26",
+ "hex",
+ "hkdf",
+ "http 0.2.11",
+ "idna 0.3.0",
+ "indexmap 2.2.3",
+ "k256",
+ "lazy-regex",
+ "libc",
+ "libz-sys",
+ "md-5",
+ "md4",
+ "nix",
+ "num-bigint",
+ "num-bigint-dig",
+ "num-integer",
+ "num-traits",
+ "once_cell",
+ "p224",
+ "p256",
+ "p384",
+ "path-clean",
+ "pbkdf2",
+ "pin-project-lite",
+ "rand",
+ "regex",
+ "reqwest",
+ "ring",
+ "ripemd",
+ "rsa",
+ "scrypt",
+ "serde",
+ "sha-1",
+ "sha2",
+ "signature",
+ "simd-json",
+ "tokio",
+ "typenum",
+ "url",
+ "winapi",
+ "windows-sys 0.48.0",
+ "x25519-dalek",
+ "x509-parser",
+]
+
+[[package]]
+name = "sb_npm"
+version = "0.1.0"
+dependencies = [
+ "async-trait",
+ "base32",
+ "base64 0.21.7",
+ "bincode",
+ "deno_ast",
+ "deno_core",
+ "deno_fs",
+ "deno_graph",
+ "deno_lockfile",
+ "deno_npm",
+ "deno_semver",
+ "flate2",
+ "hex",
+ "indexmap 2.2.3",
+ "log",
+ "once_cell",
+ "percent-encoding",
+ "ring",
+ "sb_core",
+ "sb_node",
+ "serde",
+ "tar",
+ "thiserror",
+]
+
+[[package]]
+name = "sb_os"
+version = "0.1.0"
+dependencies = [
+ "deno_core",
+ "libc",
+ "sb_core",
+ "serde",
+]
+
+[[package]]
+name = "sb_workers"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "bytes",
+ "deno_config",
+ "deno_core",
+ "deno_http",
+ "enum-as-inner 0.6.0",
+ "event_worker",
+ "futures-util",
+ "http_utils",
+ "hyper 0.14.28",
+ "log",
+ "sb_core",
+ "sb_graph",
+ "scopeguard",
+ "serde",
+ "thiserror",
+ "tokio",
+ "tokio-util",
+ "uuid",
+]
+
+[[package]]
+name = "schannel"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "scoped-tls"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "scrypt"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f"
+dependencies = [
+ "password-hash",
+ "pbkdf2",
+ "salsa20",
+ "sha2",
+]
+
+[[package]]
+name = "sct"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
+name = "sec1"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc"
+dependencies = [
+ "base16ct",
+ "der",
+ "generic-array",
+ "pkcs8",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "security-framework"
+version = "2.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "core-foundation-sys",
+ "libc",
+ "security-framework-sys",
+]
+
+[[package]]
+name = "security-framework-sys"
+version = "2.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "semver"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
+dependencies = [
+ "semver-parser",
+]
+
+[[package]]
+name = "semver"
+version = "1.0.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
+
+[[package]]
+name = "semver-parser"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
+
+[[package]]
+name = "serde"
+version = "1.0.196"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_bytes"
+version = "0.11.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.196"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.113"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79"
+dependencies = [
+ "indexmap 2.2.3",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_urlencoded"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+dependencies = [
+ "form_urlencoded",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_v8"
+version = "0.165.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88862d513bcbc04a7f93b0f454dffd0b01a5c0d8e1964c7532ec55f52b9a6351"
+dependencies = [
+ "bytes",
+ "derive_more",
+ "num-bigint",
+ "serde",
+ "smallvec",
+ "thiserror",
+ "v8",
+]
+
+[[package]]
+name = "serial_test"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "953ad9342b3aaca7cb43c45c097dd008d4907070394bd0751a0aa8817e5a018d"
+dependencies = [
+ "dashmap",
+ "futures",
+ "lazy_static",
+ "log",
+ "parking_lot",
+ "serial_test_derive",
+]
+
+[[package]]
+name = "serial_test_derive"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "sha-1"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f"
+dependencies = [
+ "cfg-if 1.0.0",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sha1"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
+dependencies = [
+ "cfg-if 1.0.0",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sha2"
+version = "0.10.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
+dependencies = [
+ "cfg-if 1.0.0",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sharded-slab"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "shlex"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
+
+[[package]]
+name = "signal-hook"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
+dependencies = [
+ "libc",
+ "signal-hook-registry",
+]
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "signal-hook-tokio"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "213241f76fb1e37e27de3b6aa1b068a2c333233b59cca6634f634b80a27ecf1e"
+dependencies = [
+ "futures-core",
+ "libc",
+ "signal-hook",
+ "tokio",
+]
+
+[[package]]
+name = "signature"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
+dependencies = [
+ "digest",
+ "rand_core",
+]
+
+[[package]]
+name = "simd-adler32"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
+
+[[package]]
+name = "simd-json"
+version = "0.13.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2faf8f101b9bc484337a6a6b0409cf76c139f2fb70a9e3aee6b6774be7bfbf76"
+dependencies = [
+ "getrandom",
+ "halfbrown",
+ "lexical-core",
+ "ref-cast",
+ "serde",
+ "serde_json",
+ "simdutf8",
+ "value-trait",
+]
+
+[[package]]
+name = "simdutf8"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a"
+
+[[package]]
+name = "siphasher"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
+
+[[package]]
+name = "slab"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "slotmap"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a"
+dependencies = [
+ "version_check 0.9.4",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+
+[[package]]
+name = "smartstring"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29"
+dependencies = [
+ "autocfg",
+ "static_assertions",
+ "version_check 0.9.4",
+]
+
+[[package]]
+name = "socket2"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+dependencies = [
+ "libc",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "sourcemap"
+version = "6.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4cbf65ca7dc576cf50e21f8d0712d96d4fcfd797389744b7b222a85cdf5bd90"
+dependencies = [
+ "data-encoding",
+ "debugid",
+ "if_chain",
+ "rustc_version 0.2.3",
+ "serde",
+ "serde_json",
+ "unicode-id",
+ "url",
+]
+
+[[package]]
+name = "sourcemap"
+version = "7.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10da010a590ed2fa9ca8467b00ce7e9c5a8017742c0c09c45450efc172208c4b"
+dependencies = [
+ "data-encoding",
+ "debugid",
+ "if_chain",
+ "rustc_version 0.2.3",
+ "serde",
+ "serde_json",
+ "unicode-id",
+ "url",
+]
+
+[[package]]
+name = "spin"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+
+[[package]]
+name = "spin"
+version = "0.9.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+dependencies = [
+ "lock_api",
+]
+
+[[package]]
+name = "spirv"
+version = "0.2.0+1.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "246bfa38fe3db3f1dfc8ca5a2cdeb7348c78be2112740cc0ec8ef18b6d94f830"
+dependencies = [
+ "bitflags 1.3.2",
+ "num-traits",
+]
+
+[[package]]
+name = "spki"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
+dependencies = [
+ "base64ct",
+ "der",
+]
+
+[[package]]
+name = "spm_precompiled"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5851699c4033c63636f7ea4cf7b7c1f1bf06d0cc03cfb42e711de5a5c46cf326"
+dependencies = [
+ "base64 0.13.1",
+ "nom 7.1.3",
+ "serde",
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "stacker"
+version = "0.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce"
+dependencies = [
+ "cc",
+ "cfg-if 1.0.0",
+ "libc",
+ "psm",
+ "winapi",
+]
+
+[[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
+name = "string_enum"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b650ea2087d32854a0f20b837fc56ec987a1cb4f758c9757e1171ee9812da63"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "swc_macros_common",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "strsim"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "strsim"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
+
+[[package]]
+name = "strum"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
+dependencies = [
+ "strum_macros",
+]
+
+[[package]]
+name = "strum_macros"
+version = "0.25.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
+dependencies = [
+ "heck",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "rustversion",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "subtle"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
+
+[[package]]
+name = "swc_atoms"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d538eaaa6f085161d088a04cf0a3a5a52c5a7f2b3bd9b83f73f058b0ed357c0"
+dependencies = [
+ "hstr",
+ "once_cell",
+ "rustc-hash",
+ "serde",
+]
+
+[[package]]
+name = "swc_bundler"
+version = "0.223.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d7530df85b1a56f6a879ca102dc59718db4bcd6bfff55fb8bb379fbeab6c88c"
+dependencies = [
+ "anyhow",
+ "crc",
+ "indexmap 2.2.3",
+ "is-macro",
+ "once_cell",
+ "parking_lot",
+ "petgraph",
+ "radix_fmt",
+ "relative-path",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_ecma_codegen",
+ "swc_ecma_loader",
+ "swc_ecma_parser",
+ "swc_ecma_transforms_base",
+ "swc_ecma_transforms_optimization",
+ "swc_ecma_utils",
+ "swc_ecma_visit",
+ "swc_fast_graph",
+ "swc_graph_analyzer",
+ "tracing",
+]
+
+[[package]]
+name = "swc_common"
+version = "0.33.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b3ae36feceded27f0178dc9dabb49399830847ffb7f866af01798844de8f973"
+dependencies = [
+ "ast_node",
+ "better_scoped_tls",
+ "cfg-if 1.0.0",
+ "either",
+ "from_variant",
+ "new_debug_unreachable",
+ "num-bigint",
+ "once_cell",
+ "rustc-hash",
+ "serde",
+ "siphasher",
+ "sourcemap 6.4.1",
+ "swc_atoms",
+ "swc_eq_ignore_macros",
+ "swc_visit",
+ "tracing",
+ "unicode-width",
+ "url",
+]
+
+[[package]]
+name = "swc_config"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "112884e66b60e614c0f416138b91b8b82b7fea6ed0ecc5e26bad4726c57a6c99"
+dependencies = [
+ "indexmap 2.2.3",
+ "serde",
+ "serde_json",
+ "swc_config_macro",
+]
+
+[[package]]
+name = "swc_config_macro"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b2574f75082322a27d990116cd2a24de52945fc94172b24ca0b3e9e2a6ceb6b"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "swc_macros_common",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "swc_ecma_ast"
+version = "0.110.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79401a45da704f4fb2552c5bf86ee2198e8636b121cb81f8036848a300edd53b"
+dependencies = [
+ "bitflags 2.4.2",
+ "is-macro",
+ "num-bigint",
+ "phf",
+ "scoped-tls",
+ "serde",
+ "string_enum",
+ "swc_atoms",
+ "swc_common",
+ "unicode-id",
+]
+
+[[package]]
+name = "swc_ecma_codegen"
+version = "0.146.54"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99b61ca275e3663238b71c4b5da8e6fb745bde9989ef37d94984dfc81fc6d009"
+dependencies = [
+ "memchr",
+ "num-bigint",
+ "once_cell",
+ "rustc-hash",
+ "serde",
+ "sourcemap 6.4.1",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_ecma_codegen_macros",
+ "tracing",
+]
+
+[[package]]
+name = "swc_ecma_codegen_macros"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "394b8239424b339a12012ceb18726ed0244fce6bf6345053cb9320b2791dcaa5"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "swc_macros_common",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "swc_ecma_dep_graph"
+version = "0.113.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59fc6ac1a84afe910182dcda33d70a16545e6058529d51afb63bd6be8764370f"
+dependencies = [
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_ecma_visit",
+]
+
+[[package]]
+name = "swc_ecma_loader"
+version = "0.45.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c5713ab3429530c10bdf167170ebbde75b046c8003558459e4de5aaec62ce0f1"
+dependencies = [
+ "anyhow",
+ "pathdiff",
+ "serde",
+ "swc_common",
+ "tracing",
+]
+
+[[package]]
+name = "swc_ecma_parser"
+version = "0.141.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4d17401dd95048a6a62b777d533c0999dabdd531ef9d667e22f8ae2a2a0d294"
+dependencies = [
+ "either",
+ "new_debug_unreachable",
+ "num-bigint",
+ "num-traits",
+ "phf",
+ "serde",
+ "smallvec",
+ "smartstring",
+ "stacker",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "tracing",
+ "typed-arena",
+]
+
+[[package]]
+name = "swc_ecma_transforms_base"
+version = "0.135.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d4ab26ec124b03e47f54d4daade8e9a9dcd66d3a4ca3cd47045f138d267a60e"
+dependencies = [
+ "better_scoped_tls",
+ "bitflags 2.4.2",
+ "indexmap 2.2.3",
+ "once_cell",
+ "phf",
+ "rustc-hash",
+ "serde",
+ "smallvec",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_ecma_parser",
+ "swc_ecma_utils",
+ "swc_ecma_visit",
+ "tracing",
+]
+
+[[package]]
+name = "swc_ecma_transforms_classes"
+version = "0.124.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fe4376c024fa04394cafb8faecafb4623722b92dbbe46532258cc0a6b569d9c"
+dependencies = [
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_ecma_transforms_base",
+ "swc_ecma_utils",
+ "swc_ecma_visit",
+]
+
+[[package]]
+name = "swc_ecma_transforms_macros"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17e309b88f337da54ef7fe4c5b99c2c522927071f797ee6c9fb8b6bf2d100481"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "swc_macros_common",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "swc_ecma_transforms_optimization"
+version = "0.196.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fec185cf4d18e90b7c8b18b0d1f04a5707e6f4c7b57c1bfd5086392cd07b75a9"
+dependencies = [
+ "dashmap",
+ "indexmap 2.2.3",
+ "once_cell",
+ "petgraph",
+ "rustc-hash",
+ "serde_json",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_ecma_parser",
+ "swc_ecma_transforms_base",
+ "swc_ecma_transforms_macros",
+ "swc_ecma_utils",
+ "swc_ecma_visit",
+ "swc_fast_graph",
+ "tracing",
+]
+
+[[package]]
+name = "swc_ecma_transforms_proposal"
+version = "0.169.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed89d6ff74f60de490fb56e1cc505b057905e36c13d405d7d61dd5c9f6ee8fc9"
+dependencies = [
+ "either",
+ "rustc-hash",
+ "serde",
+ "smallvec",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_ecma_transforms_base",
+ "swc_ecma_transforms_classes",
+ "swc_ecma_transforms_macros",
+ "swc_ecma_utils",
+ "swc_ecma_visit",
+]
+
+[[package]]
+name = "swc_ecma_transforms_react"
+version = "0.181.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e31a2f879fd21d18080b6c42e633e0ae8c6f3d54b83c1de876767d82b458c999"
+dependencies = [
+ "base64 0.21.7",
+ "dashmap",
+ "indexmap 2.2.3",
+ "once_cell",
+ "serde",
+ "sha-1",
+ "string_enum",
+ "swc_atoms",
+ "swc_common",
+ "swc_config",
+ "swc_ecma_ast",
+ "swc_ecma_parser",
+ "swc_ecma_transforms_base",
+ "swc_ecma_transforms_macros",
+ "swc_ecma_utils",
+ "swc_ecma_visit",
+]
+
+[[package]]
+name = "swc_ecma_transforms_typescript"
+version = "0.186.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e4263372cc7cd1a3b4570ccf7438f3c1e1575f134fd05cdf074edb322480a5b"
+dependencies = [
+ "ryu-js",
+ "serde",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_ecma_transforms_base",
+ "swc_ecma_transforms_react",
+ "swc_ecma_utils",
+ "swc_ecma_visit",
+]
+
+[[package]]
+name = "swc_ecma_utils"
+version = "0.125.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7cead1083e46b0f072a82938f16d366014468f7510350957765bb4d013496890"
+dependencies = [
+ "indexmap 2.2.3",
+ "num_cpus",
+ "once_cell",
+ "rustc-hash",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_ecma_visit",
+ "tracing",
+ "unicode-id",
+]
+
+[[package]]
+name = "swc_ecma_visit"
+version = "0.96.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1d0100c383fb08b6f34911ab6f925950416a5d14404c1cd520d59fb8dfbb3bf"
+dependencies = [
+ "num-bigint",
+ "swc_atoms",
+ "swc_common",
+ "swc_ecma_ast",
+ "swc_visit",
+ "tracing",
+]
+
+[[package]]
+name = "swc_eq_ignore_macros"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "695a1d8b461033d32429b5befbf0ad4d7a2c4d6ba9cd5ba4e0645c615839e8e4"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "swc_fast_graph"
+version = "0.21.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8acfc056067a0fbfe26a4763c1eb246e813fdbe6b376415d07915e96e15481b6"
+dependencies = [
+ "indexmap 2.2.3",
+ "petgraph",
+ "rustc-hash",
+ "swc_common",
+]
+
+[[package]]
+name = "swc_graph_analyzer"
+version = "0.22.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c6e0110c0433c27221f03e45419b7e18d1db4d472db309088caa458ac2f304e"
+dependencies = [
+ "auto_impl",
+ "petgraph",
+ "swc_common",
+ "swc_fast_graph",
+ "tracing",
+]
+
+[[package]]
+name = "swc_macros_common"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50176cfc1cbc8bb22f41c6fe9d1ec53fbe057001219b5954961b8ad0f336fce9"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "swc_visit"
+version = "0.5.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b27078d8571abe23aa52ef608dd1df89096a37d867cf691cbb4f4c392322b7c9"
+dependencies = [
+ "either",
+ "swc_visit_macros",
+]
+
+[[package]]
+name = "swc_visit_macros"
+version = "0.5.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa8bb05975506741555ea4d10c3a3bdb0e2357cd58e1a4a4332b8ebb4b44c34d"
+dependencies = [
+ "Inflector",
+ "pmutil",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "swc_macros_common",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.48"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "unicode-ident",
+]
+
+[[package]]
+name = "synstructure"
+version = "0.12.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 1.0.109",
+ "unicode-xid 0.2.4",
+]
+
+[[package]]
+name = "tar"
+version = "0.4.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb"
+dependencies = [
+ "filetime",
+ "libc",
+ "xattr",
+]
+
+[[package]]
+name = "term_size"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e4129646ca0ed8f45d09b929036bafad5377103edd06e50bf574b353d2b08d9"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "text_lines"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7fd5828de7deaa782e1dd713006ae96b3bee32d3279b79eb67ecf8072c059bcf"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "textwrap"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+dependencies = [
+ "term_size",
+ "unicode-width",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
+dependencies = [
+ "cfg-if 1.0.0",
+ "once_cell",
+]
+
+[[package]]
+name = "time"
+version = "0.3.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
+dependencies = [
+ "deranged",
+ "itoa",
+ "num-conv",
+ "powerfmt",
+ "serde",
+ "time-core",
+ "time-macros",
+]
+
+[[package]]
+name = "time-core"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
+
+[[package]]
+name = "time-macros"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
+dependencies = [
+ "num-conv",
+ "time-core",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "tls-listener"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce110c38c3c9b6e5cc4fe72e60feb5b327750388a10a276e3d5d7d431e3dc76c"
+dependencies = [
+ "futures-util",
+ "pin-project-lite",
+ "thiserror",
+ "tokio",
+ "tokio-rustls 0.25.0",
+]
+
+[[package]]
+name = "tokenizers"
+version = "0.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3dd47962b0ba36e7fd33518fbf1754d136fd1474000162bbf2a8b5fcb2d3654d"
+dependencies = [
+ "aho-corasick",
+ "derive_builder",
+ "esaxx-rs",
+ "getrandom",
+ "itertools 0.12.1",
+ "lazy_static",
+ "log",
+ "macro_rules_attribute",
+ "monostate",
+ "onig",
+ "paste",
+ "rand",
+ "rayon",
+ "rayon-cond",
+ "regex",
+ "regex-syntax 0.8.2",
+ "serde",
+ "serde_json",
+ "spm_precompiled",
+ "thiserror",
+ "unicode-normalization-alignments",
+ "unicode-segmentation",
+ "unicode_categories",
+]
+
+[[package]]
+name = "tokio"
+version = "1.36.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
+dependencies = [
+ "backtrace",
+ "bytes",
+ "libc",
+ "mio",
+ "num_cpus",
+ "parking_lot",
+ "pin-project-lite",
+ "signal-hook-registry",
+ "socket2",
+ "tokio-macros",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "tokio-macros"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
+dependencies = [
+ "rustls 0.21.11",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
+dependencies = [
+ "rustls 0.22.2",
+ "rustls-pki-types",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-socks"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51165dfa029d2a65969413a6cc96f354b86b464498702f174a4efa13608fd8c0"
+dependencies = [
+ "either",
+ "futures-util",
+ "thiserror",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-util"
+version = "0.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "futures-io",
+ "futures-sink",
+ "futures-util",
+ "hashbrown 0.14.3",
+ "pin-project-lite",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "tower-service"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
+
+[[package]]
+name = "tracing"
+version = "0.1.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+dependencies = [
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+dependencies = [
+ "once_cell",
+ "valuable",
+]
+
+[[package]]
+name = "tracing-log"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
+dependencies = [
+ "log",
+ "once_cell",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-subscriber"
+version = "0.3.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
+dependencies = [
+ "matchers",
+ "nu-ansi-term",
+ "once_cell",
+ "regex",
+ "sharded-slab",
+ "smallvec",
+ "thread_local",
+ "tracing",
+ "tracing-core",
+ "tracing-log",
+]
+
+[[package]]
+name = "trust-dns-proto"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f7f83d1e4a0e4358ac54c5c3681e5d7da5efc5a7a632c90bb6d6669ddd9bc26"
+dependencies = [
+ "async-trait",
+ "cfg-if 1.0.0",
+ "data-encoding",
+ "enum-as-inner 0.5.1",
+ "futures-channel",
+ "futures-io",
+ "futures-util",
+ "idna 0.2.3",
+ "ipnet",
+ "lazy_static",
+ "rand",
+ "serde",
+ "smallvec",
+ "thiserror",
+ "tinyvec",
+ "tokio",
+ "tracing",
+ "url",
+]
+
+[[package]]
+name = "trust-dns-resolver"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aff21aa4dcefb0a1afbfac26deb0adc93888c7d295fb63ab273ef276ba2b7cfe"
+dependencies = [
+ "cfg-if 1.0.0",
+ "futures-util",
+ "ipconfig",
+ "lazy_static",
+ "lru-cache",
+ "parking_lot",
+ "resolv-conf",
+ "serde",
+ "smallvec",
+ "thiserror",
+ "tokio",
+ "tracing",
+ "trust-dns-proto",
+]
+
+[[package]]
+name = "try-lock"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
+
+[[package]]
+name = "tungstenite"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1"
+dependencies = [
+ "byteorder",
+ "bytes",
+ "data-encoding",
+ "http 1.0.0",
+ "httparse",
+ "log",
+ "rand",
+ "sha1",
+ "thiserror",
+ "url",
+ "utf-8",
+]
+
+[[package]]
+name = "twox-hash"
+version = "1.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675"
+dependencies = [
+ "cfg-if 1.0.0",
+ "rand",
+ "static_assertions",
+]
+
+[[package]]
+name = "typed-arena"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a"
+
+[[package]]
+name = "typenum"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+
+[[package]]
+name = "unic-char-property"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221"
+dependencies = [
+ "unic-char-range",
+]
+
+[[package]]
+name = "unic-char-range"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc"
+
+[[package]]
+name = "unic-common"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc"
+
+[[package]]
+name = "unic-ucd-ident"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987"
+dependencies = [
+ "unic-char-property",
+ "unic-char-range",
+ "unic-ucd-version",
+]
+
+[[package]]
+name = "unic-ucd-version"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4"
+dependencies = [
+ "unic-common",
+]
+
+[[package]]
+name = "unicase"
+version = "2.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
+dependencies = [
+ "version_check 0.9.4",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
+
+[[package]]
+name = "unicode-id"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1b6def86329695390197b82c1e244a54a131ceb66c996f2088a3876e2ae083f"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-normalization-alignments"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43f613e4fa046e69818dd287fdc4bc78175ff20331479dab6e1b0f98d57062de"
+dependencies = [
+ "smallvec",
+]
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
+
+[[package]]
+name = "unicode-width"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
+
+[[package]]
+name = "unicode-xid"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
+
+[[package]]
+name = "unicode_categories"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e"
+
+[[package]]
+name = "universal-hash"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
+dependencies = [
+ "crypto-common",
+ "subtle",
+]
+
+[[package]]
+name = "untrusted"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
+
+[[package]]
+name = "url"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
+dependencies = [
+ "form_urlencoded",
+ "idna 0.4.0",
+ "percent-encoding",
+ "serde",
+]
+
+[[package]]
+name = "urlencoding"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
+
+[[package]]
+name = "urlpattern"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9bd5ff03aea02fa45b13a7980151fe45009af1980ba69f651ec367121a31609"
+dependencies = [
+ "derive_more",
+ "regex",
+ "serde",
+ "unic-ucd-ident",
+ "url",
+]
+
+[[package]]
+name = "utf-8"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
+
+[[package]]
+name = "utf8parse"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+
+[[package]]
+name = "uuid"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
+dependencies = [
+ "getrandom",
+ "serde",
+]
+
+[[package]]
+name = "v8"
+version = "0.83.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f6c8a960dd2eb74b22eda64f7e9f3d1688f82b80202828dc0425ebdeda826ef"
+dependencies = [
+ "bitflags 2.4.2",
+ "fslock",
+ "once_cell",
+ "which 5.0.0",
+]
+
+[[package]]
+name = "valuable"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+
+[[package]]
+name = "value-trait"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dad8db98c1e677797df21ba03fca7d3bf9bec3ca38db930954e4fe6e1ea27eb4"
+dependencies = [
+ "float-cmp",
+ "halfbrown",
+ "itoa",
+ "ryu",
+]
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "vec_map"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+
+[[package]]
+name = "version_check"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "vsimd"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64"
+
+[[package]]
+name = "walkdir"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
+dependencies = [
+ "same-file",
+ "winapi-util",
+]
+
+[[package]]
+name = "want"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
+dependencies = [
+ "try-lock",
+]
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wasite"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f"
+dependencies = [
+ "cfg-if 1.0.0",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.41"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97"
+dependencies = [
+ "cfg-if 1.0.0",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed"
+dependencies = [
+ "quote 1.0.35",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838"
+
+[[package]]
+name = "wasm-streams"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4609d447824375f43e1ffbc051b50ad8f4b3ae8219680c94452ea05eb240ac7"
+dependencies = [
+ "futures-util",
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
+name = "web-sys"
+version = "0.3.68"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "webpki-roots"
+version = "0.25.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
+
+[[package]]
+name = "wgpu-core"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef91c1d62d1e9e81c79e600131a258edf75c9531cbdbde09c44a011a47312726"
+dependencies = [
+ "arrayvec",
+ "bit-vec",
+ "bitflags 2.4.2",
+ "codespan-reporting",
+ "log",
+ "naga",
+ "parking_lot",
+ "profiling",
+ "raw-window-handle",
+ "ron",
+ "rustc-hash",
+ "serde",
+ "smallvec",
+ "thiserror",
+ "web-sys",
+ "wgpu-hal",
+ "wgpu-types",
+]
+
+[[package]]
+name = "wgpu-hal"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b84ecc802da3eb67b4cf3dd9ea6fe45bbb47ef13e6c49c5c3240868a9cc6cdd9"
+dependencies = [
+ "android_system_properties",
+ "arrayvec",
+ "ash",
+ "bit-set",
+ "bitflags 2.4.2",
+ "block",
+ "core-graphics-types",
+ "d3d12",
+ "glow",
+ "glutin_wgl_sys",
+ "gpu-alloc",
+ "gpu-allocator",
+ "gpu-descriptor",
+ "js-sys",
+ "khronos-egl",
+ "libc",
+ "libloading 0.8.1",
+ "log",
+ "metal",
+ "naga",
+ "objc",
+ "once_cell",
+ "parking_lot",
+ "profiling",
+ "range-alloc",
+ "raw-window-handle",
+ "rustc-hash",
+ "smallvec",
+ "thiserror",
+ "wasm-bindgen",
+ "web-sys",
+ "wgpu-types",
+ "winapi",
+]
+
+[[package]]
+name = "wgpu-types"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d5ed5f0edf0de351fe311c53304986315ce866f394a2e6df0c4b3c70774bcdd"
+dependencies = [
+ "bitflags 2.4.2",
+ "js-sys",
+ "serde",
+ "web-sys",
+]
+
+[[package]]
+name = "which"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b57acb10231b9493c8472b20cb57317d0679a49e0bdbee44b3b803a6473af164"
+dependencies = [
+ "failure",
+ "libc",
+]
+
+[[package]]
+name = "which"
+version = "5.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14"
+dependencies = [
+ "either",
+ "home",
+ "once_cell",
+ "rustix",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "whoami"
+version = "1.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a44ab49fad634e88f55bf8f9bb3abd2f27d7204172a112c7c9987e01c1c94ea9"
+dependencies = [
+ "redox_syscall",
+ "wasite",
+ "web-sys",
+]
+
+[[package]]
+name = "widestring"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows"
+version = "0.51.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9"
+dependencies = [
+ "windows-core 0.51.1",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.51.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
+ "windows-targets 0.52.0",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.0",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.0",
+ "windows_aarch64_msvc 0.52.0",
+ "windows_i686_gnu 0.52.0",
+ "windows_i686_msvc 0.52.0",
+ "windows_x86_64_gnu 0.52.0",
+ "windows_x86_64_gnullvm 0.52.0",
+ "windows_x86_64_msvc 0.52.0",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+
+[[package]]
+name = "winreg"
+version = "0.50.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
+dependencies = [
+ "cfg-if 1.0.0",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "x25519-dalek"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277"
+dependencies = [
+ "curve25519-dalek",
+ "rand_core",
+ "serde",
+ "zeroize",
+]
+
+[[package]]
+name = "x509-parser"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7069fba5b66b9193bd2c5d3d4ff12b839118f6bcbef5328efafafb5395cf63da"
+dependencies = [
+ "asn1-rs",
+ "data-encoding",
+ "der-parser",
+ "lazy_static",
+ "nom 7.1.3",
+ "oid-registry",
+ "rusticata-macros",
+ "thiserror",
+ "time",
+]
+
+[[package]]
+name = "xattr"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
+dependencies = [
+ "libc",
+ "linux-raw-sys",
+ "rustix",
+]
+
+[[package]]
+name = "xml-rs"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a"
+
+[[package]]
+name = "yaml-rust"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e66366e18dc58b46801afbf2ca7661a9f59cc8c5962c29892b6039b4f86fa992"
+
+[[package]]
+name = "zerocopy"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "zeroize"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
+dependencies = [
+ "zeroize_derive",
+]
+
+[[package]]
+name = "zeroize_derive"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.48",
+]
diff --git a/pkgs/development/web/edge-runtime/default.nix b/pkgs/development/web/edge-runtime/default.nix
index a8e9dbe824a4e..e5653777529ae 100644
--- a/pkgs/development/web/edge-runtime/default.nix
+++ b/pkgs/development/web/edge-runtime/default.nix
@@ -11,7 +11,7 @@
 
 let
   pname = "edge-runtime";
-  version = "1.14.0";
+  version = "1.53.2";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -20,11 +20,16 @@ rustPlatform.buildRustPackage {
     owner = "supabase";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-63XStzO4Jt6ObWuzcBf2QwCIWsStXvhQ0XaJabELhWg=";
+    hash = "sha256-CJT7q1QPpZScTo7MxCrK6dF5EvSVePMh7wgimVn6u/8=";
     fetchSubmodules = true;
   };
 
-  cargoHash = "sha256-JwwdvvpqgSbl0Xyb5pQ5hzZRrrCnDSjwV+ikdO2pXCk=";
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "ort-2.0.0-rc.0" = "sha256-j3g9ES2ZLmAAcPYgszBGDG16HiFJTnohwxSvXypFGTw=";
+    };
+  };
 
   nativeBuildInputs = [ pkg-config rustPlatform.bindgenHook ];
 
@@ -35,33 +40,19 @@ rustPlatform.buildRustPackage {
   # To avoid this we pre-download the file and export it via RUSTY_V8_ARCHIVE
   RUSTY_V8_ARCHIVE = callPackage ./librusty_v8.nix { };
 
+  # For version tag
+  GIT_V_TAG = version;
+
   passthru.updateScript = nix-update-script { };
 
-  preCheck = ''
-    export HOME=$(mktemp -d)
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/edge-runtime --help
+    runHook postInstallCheck
   '';
 
-  checkFlags = [
-    # tries to make a network access
-    "--skip=deno_runtime::test::test_main_rt_fs"
-    "--skip=deno_runtime::test::test_main_runtime_creation"
-    "--skip=deno_runtime::test::test_os_env_vars"
-    "--skip=deno_runtime::test::test_os_ops"
-    "--skip=deno_runtime::test::test_user_runtime_creation"
-    "--skip=test_custom_readable_stream_response"
-    "--skip=test_import_map_file_path"
-    "--skip=test_import_map_inline"
-    "--skip=test_main_worker_options_request"
-    "--skip=test_main_worker_post_request"
-    "--skip=test_null_body_with_204_status"
-    "--skip=test_null_body_with_204_status_post"
-    "--skip=test_file_upload"
-    "--skip=test_oak_server"
-    "--skip=test_tls_throw_invalid_data"
-    "--skip=test_user_worker_json_imports"
-    "--skip=node::analyze::tests::test_esm_code_with_node_globals"
-    "--skip=node::analyze::tests::test_esm_code_with_node_globals_with_shebang"
-  ];
+  doCheck = false;
 
   meta = with lib; {
     description = "A server based on Deno runtime, capable of running JavaScript, TypeScript, and WASM services";
diff --git a/pkgs/development/web/edge-runtime/librusty_v8.nix b/pkgs/development/web/edge-runtime/librusty_v8.nix
index 1e0a306c13b6c..7e8f9eafc498e 100644
--- a/pkgs/development/web/edge-runtime/librusty_v8.nix
+++ b/pkgs/development/web/edge-runtime/librusty_v8.nix
@@ -10,11 +10,11 @@ let
   };
 in
 fetch_librusty_v8 {
-  version = "0.74.3";
+  version = "0.83.2";
   shas = {
-    x86_64-linux = "sha256-8pa8nqA6rbOSBVnp2Q8/IQqh/rfYQU57hMgwU9+iz4A=";
-    aarch64-linux = "sha256-3kXOV8rlCNbNBdXgOtd3S94qO+JIKyOByA4WGX+XVP0=";
-    x86_64-darwin = "sha256-iBBVKZiSoo08YEQ8J/Rt1/5b7a+2xjtuS6QL/Wod5nQ=";
-    aarch64-darwin = "sha256-Djnuc3l/jQKvBf1aej8LG5Ot2wPT0m5Zo1B24l1UHsM=";
+    x86_64-linux = "sha256-RJNdy5jRZK3dTgrHsWuZZAHUyy1EogyNNuBekZ3Arrk=";
+    aarch64-linux = "sha256-mpOmuqtd7ob6xvrgH4P/6GLa/hXTS/ok0WOYo7+7ZhI=";
+    x86_64-darwin = "sha256-2o8CvJ3r5+4PLNGTySqPPDTqbU0piX4D1UtZMscMdHU=";
+    aarch64-darwin = "sha256-WHeITWSHjZxfQJndxcjsp4yIERKrKXSHFZ0UBc43p8o=";
   };
 }
diff --git a/pkgs/development/web/flyctl/default.nix b/pkgs/development/web/flyctl/default.nix
index d085da78de3c5..6ff332b5a5cda 100644
--- a/pkgs/development/web/flyctl/default.nix
+++ b/pkgs/development/web/flyctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "flyctl";
-  version = "0.2.55";
+  version = "0.2.58";
 
   src = fetchFromGitHub {
     owner = "superfly";
     repo = "flyctl";
     rev = "v${version}";
-    hash = "sha256-yCRaF600UrDmazsgTRp/grWtkULeSQedE5m69K6h/4Q=";
+    hash = "sha256-aXiBDPl/x/xeu+fNrxs+JejVtSZu8KZKbrSetJj4/Pk=";
   };
 
-  vendorHash = "sha256-1hlWyr41t8J4naN5QbEtfCv3npe/kvMH5NKKaxYvLYk=";
+  vendorHash = "sha256-NmogEh3xWQ/opMm9UarpfuH3MJzJ9+qb0KX/O+i/pcA=";
 
   subPackages = [ "." ];
 
@@ -34,11 +34,6 @@ buildGoModule rec {
     HOME=$(mktemp -d)
   '';
 
-  checkFlags = [
-    # these tests require network
-    "-skip=TestToTestMachineConfig"
-  ];
-
   # We override checkPhase to be able to test ./... while using subPackages
   checkPhase = ''
     runHook preCheck
diff --git a/pkgs/development/web/insomnia/default.nix b/pkgs/development/web/insomnia/default.nix
index 0d9b0e422b507..d46a098e89f9d 100644
--- a/pkgs/development/web/insomnia/default.nix
+++ b/pkgs/development/web/insomnia/default.nix
@@ -1,100 +1,75 @@
-{ lib, stdenv, makeWrapper, fetchurl, dpkg, alsa-lib, atk, cairo, cups, dbus, expat
-, fontconfig, freetype, gdk-pixbuf, glib, pango, mesa, nspr, nss, gtk3
-, at-spi2-atk, gsettings-desktop-schemas, gobject-introspection, wrapGAppsHook3
-, libX11, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext
-, libXfixes, libXi, libXrandr, libXrender, libXtst, libxcb, libxshmfence, nghttp2
-, libudev0-shim, glibc, curl, openssl, autoPatchelfHook }:
-
+{
+  lib,
+  stdenv,
+  fetchurl,
+  appimageTools
+}:
 let
-  runtimeLibs = lib.makeLibraryPath [
-    curl
-    glibc
-    libudev0-shim
-    nghttp2
-    openssl
-    stdenv.cc.cc.lib
-  ];
-in stdenv.mkDerivation rec {
   pname = "insomnia";
-  version = "8.6.1";
+  version = "9.0.0";
 
   src = fetchurl {
-    url = "https://github.com/Kong/insomnia/releases/download/core%40${version}/Insomnia.Core-${version}.deb";
-    hash = "sha256-qy2j6kdmtDgfTab8gTz7eb/uNKwtzbxcoJHNibVa35c=";
-  };
-
-  nativeBuildInputs = [
-    autoPatchelfHook
-    dpkg
-    makeWrapper
-    gobject-introspection
-    wrapGAppsHook3
-  ];
-
-  buildInputs = [
-    alsa-lib
-    at-spi2-atk
-    atk
-    cairo
-    cups
-    dbus
-    expat
-    fontconfig
-    freetype
-    gdk-pixbuf
-    glib
-    pango
-    gtk3
-    gsettings-desktop-schemas
-    libX11
-    libXScrnSaver
-    libXcomposite
-    libXcursor
-    libXdamage
-    libXext
-    libXfixes
-    libXi
-    libXrandr
-    libXrender
-    libXtst
-    libxcb
-    libxshmfence
-    mesa # for libgbm
-    nspr
-    nss
-  ];
+    x86_64-darwin = {
+      url = "https://github.com/Kong/insomnia/releases/download/core%40${version}/Insomnia.Core-${version}.dmg";
+      hash = "sha256-QIArPdThQcNTUgrXpWP8JHaZfrZ/6ztekIvzFdoWjsY=";
+    };
+    x86_64-linux = {
+      url = "https://github.com/Kong/insomnia/releases/download/core%40${version}/Insomnia.Core-${version}.AppImage";
+      hash = "sha256-2UiqopYmNxnDcIqQMn/H89ugvOtTWkHH4LrmKkQErSs=";
+    };
+  }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
 
-  dontBuild = true;
-  dontConfigure = true;
-  dontWrapGApps = true;
+  meta = with lib; {
+    homepage = "https://insomnia.rest";
+    description = " The open-source, cross-platform API client for GraphQL, REST, WebSockets, SSE and gRPC. With Cloud, Local and Git storage. ";
+    mainProgram = "insomnia";
+    changelog = "https://github.com/Kong/insomnia/releases/tag/core@${version}";
+    license = licenses.asl20;
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    maintainers = with maintainers; [ markus1189 babariviere kashw2 DataHearth ];
+  };
+in
+if stdenv.isDarwin then stdenv.mkDerivation {
+  inherit pname version src meta;
+    sourceRoot = ".";
 
-  unpackPhase = "dpkg-deb -x $src .";
+    unpackCmd = ''
+    echo "Creating temp directory"
+    mnt=$(TMPDIR=/tmp mktemp -d -t nix-XXXXXXXXXX)
+    function finish {
+      echo "Ejecting temp directory"
+      /usr/bin/hdiutil detach $mnt -force
+      rm -rf $mnt
+    }
+    # Detach volume when receiving SIG "0"
+    trap finish EXIT
+    # Mount DMG file
+    echo "Mounting DMG file into \"$mnt\""
+    /usr/bin/hdiutil attach -nobrowse -mountpoint $mnt $curSrc
+    # Copy content to local dir for later use
+    echo 'Copying extracted content into "sourceRoot"'
+    cp -a $mnt/Insomnia.app $PWD/
+  '';
 
   installPhase = ''
-    mkdir -p $out/share/insomnia $out/lib $out/bin
-
-    mv usr/share/* $out/share/
-    mv opt/Insomnia/* $out/share/insomnia
-
-    ln -s $out/share/insomnia/insomnia $out/bin/insomnia
-    sed -i 's|\/opt\/Insomnia|'$out'/bin|g' $out/share/applications/insomnia.desktop
+    runHook preInstall
+    mkdir -p "$out/Applications"
+    mv Insomnia.app $out/Applications/
+    runHook postInstall
   '';
+} else appimageTools.wrapType2 {
+  inherit pname version src meta;
 
-  preFixup = ''
-    wrapProgramShell "$out/bin/insomnia" \
-        "''${gappsWrapperArgs[@]}" \
-        --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland --enable-features=WaylandWindowDecorations}}" \
-        --prefix LD_LIBRARY_PATH : ${runtimeLibs}
+  extraInstallCommands = let
+    appimageContents = appimageTools.extract {
+      inherit pname version src;
+    };
+  in ''
+    # Install XDG Desktop file and its icon
+    install -Dm444 ${appimageContents}/insomnia.desktop -t $out/share/applications
+    install -Dm444 ${appimageContents}/insomnia.png -t $out/share/pixmaps
+    # Replace wrong exec statement in XDG Desktop file
+    substituteInPlace $out/share/applications/insomnia.desktop \
+        --replace-fail 'Exec=AppRun --no-sandbox %U' 'Exec=insomnia'
   '';
-
-  meta = with lib; {
-    homepage = "https://insomnia.rest/";
-    description = "The most intuitive cross-platform REST API Client";
-    mainProgram = "insomnia";
-    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
-    license = licenses.mit;
-    platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ markus1189 babariviere kashw2 ];
-  };
-
 }
diff --git a/pkgs/development/web/nodejs/v18.nix b/pkgs/development/web/nodejs/v18.nix
index c4a97a47a4b62..6b3ca7635e436 100644
--- a/pkgs/development/web/nodejs/v18.nix
+++ b/pkgs/development/web/nodejs/v18.nix
@@ -1,4 +1,4 @@
-{ callPackage, lib, overrideCC, pkgs, buildPackages, fetchpatch, openssl, python3, enableNpm ? true }:
+{ callPackage, lib, overrideCC, pkgs, buildPackages, openssl, python3, enableNpm ? true }:
 
 let
   # Clang 16+ cannot build Node v18 due to -Wenum-constexpr-conversion errors.
diff --git a/pkgs/games/chiaki4deck/default.nix b/pkgs/games/chiaki4deck/default.nix
index 7bdce8d1df421..54e3c978c4da0 100644
--- a/pkgs/games/chiaki4deck/default.nix
+++ b/pkgs/games/chiaki4deck/default.nix
@@ -35,13 +35,13 @@
 
 stdenv.mkDerivation rec {
   pname = "chiaki4deck";
-  version = "1.7.0";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "streetpea";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-gJafzBryuGDU8ke3JTKkQdSEND+btSZ93Ei7ZRsqchg=";
+    hash = "sha256-dSipQH04NSB6t9ZmDq9cjFTmtabnzPRwL9ssmEEmEws=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/games/fheroes2/default.nix b/pkgs/games/fheroes2/default.nix
index bc96eb5cfcc35..0508fda010930 100644
--- a/pkgs/games/fheroes2/default.nix
+++ b/pkgs/games/fheroes2/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fheroes2";
-  version = "1.0.13";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "ihhub";
     repo = "fheroes2";
     rev = version;
-    hash = "sha256-uR46G1DISurBk17GQdo+x94F2cP0+157PxjdG2s1Ik4=";
+    hash = "sha256-a4IZX0aq2iXLPKTVRWxkr50vhCEqAMUA0z50rOpEIjU=";
   };
 
   nativeBuildInputs = [ imagemagick ];
diff --git a/pkgs/games/hmcl/default.nix b/pkgs/games/hmcl/default.nix
index 9426b611f3a69..2ff06a19219d9 100644
--- a/pkgs/games/hmcl/default.nix
+++ b/pkgs/games/hmcl/default.nix
@@ -18,7 +18,7 @@
 }:
 
 let
-  version = "3.5.7";
+  version = "3.5.8";
   icon = fetchurl {
     url = "https://github.com/huanghongxun/HMCL/raw/release-${version}/HMCLauncher/HMCL/HMCL.ico";
     hash = "sha256-+EYL33VAzKHOMp9iXoJaSGZfv+ymDDYIx6i/1o47Dmc=";
@@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   src = fetchurl {
     url = "https://github.com/huanghongxun/HMCL/releases/download/release-${version}/HMCL-${version}.jar";
-    hash = "sha256-ziqcauetWoFn58kBJ0KnqX5CPNC/Sn7DD/Buxdi977I=";
+    hash = "sha256-HRTXJhKtRB+pANMAZ9R1kNsSbl/Rr6a8wMhfaPeD/40=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/games/instawow/default.nix b/pkgs/games/instawow/default.nix
index f451521554166..0793ece2960f1 100644
--- a/pkgs/games/instawow/default.nix
+++ b/pkgs/games/instawow/default.nix
@@ -2,14 +2,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "instawow";
-  version = "4.3.0";
+  version = "4.4.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "layday";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-U4Y+P+fSyqxT0oHJXn2gwxPOJtnYBwaq9ca+FvGBUkA=";
+    sha256 = "sha256-LSn8b29IEPimwLpmYU7vRRH2dcyaCCr/dk9MzBIW4U0=";
   };
 
   extras = [ ];  # Disable GUI, most dependencies are not packaged.
diff --git a/pkgs/games/minetest/default.nix b/pkgs/games/minetest/default.nix
index fcea007ff5988..ff6a59e08ad72 100644
--- a/pkgs/games/minetest/default.nix
+++ b/pkgs/games/minetest/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, gitUpdater
 , cmake
 , irrlichtmt
 , coreutils
@@ -128,6 +129,10 @@ stdenv.mkDerivation (finalAttrs: {
     mv $out/minetest.app $out/Applications
   '';
 
+  passthru.updateScript = gitUpdater {
+    ignoredVersions = "^[^.]+$|.*-android$";
+  };
+
   meta = with lib; {
     homepage = "https://minetest.net/";
     description = "Infinite-world block sandbox game";
diff --git a/pkgs/games/nile/default.nix b/pkgs/games/nile/default.nix
index 928ba0743d04b..a0dc32db86212 100644
--- a/pkgs/games/nile/default.nix
+++ b/pkgs/games/nile/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonApplication rec {
   pname = "nile";
-  version = "1.0.3-unstable-2024-05-10";
+  version = "1.0.3-unstable-2024-05-25";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "imLinguin";
     repo = "nile";
-    rev = "74e3ca979b2a66f9174c04fd0279211e0276ac9c";
-    hash = "sha256-ezX9MLQsULRvX+X2NXYBQnKRzBRt9eN9JnJinzysI9o=";
+    rev = "6e6968c37aef59772248de8602374b4831202854";
+    hash = "sha256-0UHXF9It/JjHMfBzQM5GRn4FU9rNrh3EM90M8Ki/fTE=";
   };
 
   disabled = pythonOlder "3.8";
diff --git a/pkgs/games/openttd/default.nix b/pkgs/games/openttd/default.nix
index 69a2c75fa4637..268cead62dc47 100644
--- a/pkgs/games/openttd/default.nix
+++ b/pkgs/games/openttd/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchzip, cmake, pkg-config
+{ lib, stdenv, fetchzip, cmake, pkg-config
 , SDL2, libpng, zlib, xz, freetype, fontconfig
 , nlohmann_json, curl, icu, harfbuzz, expat, glib, pcre2
 , withOpenGFX ? true, withOpenSFX ? true, withOpenMSX ? true
@@ -32,11 +32,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "openttd";
-  version = "13.4";
+  version = "14.1";
 
-  src = fetchurl {
+  src = fetchzip {
     url = "https://cdn.openttd.org/openttd-releases/${version}/${pname}-${version}-source.tar.xz";
-    hash = "sha256-Kh3roBv+WOIYiHn0UMP6TzgZJxq0m/NI3WZUXwQNFG8=";
+    hash = "sha256-YT4IE/rJ9pnpeMWKbOra6AbSUwW19RwOKlXkxwoMeKY=";
   };
 
   nativeBuildInputs = [ cmake pkg-config makeWrapper ];
diff --git a/pkgs/games/shattered-pixel-dungeon/default.nix b/pkgs/games/shattered-pixel-dungeon/default.nix
index dd5b5c0828035..701e2070fa90d 100644
--- a/pkgs/games/shattered-pixel-dungeon/default.nix
+++ b/pkgs/games/shattered-pixel-dungeon/default.nix
@@ -5,13 +5,13 @@
 
 callPackage ./generic.nix rec {
   pname = "shattered-pixel-dungeon";
-  version = "2.4.0";
+  version = "2.4.1";
 
   src = fetchFromGitHub {
     owner = "00-Evan";
     repo = "shattered-pixel-dungeon";
     rev = "v${version}";
-    hash = "sha256-WTmzSuEoXLhr14vm2eQAmhmbTX/v7uKioQ1DcLnvAUw=";
+    hash = "sha256-mt8Zezj/EVsolC2iGNx6E11yO5XahNK7Q3EAohDjT8E=";
   };
 
   depsHash = "sha256-vihoR0bPh7590sRxeYJ1uuynNRxtRBuiFUrdmsRNUJc=";
diff --git a/pkgs/games/shattered-pixel-dungeon/experienced-pixel-dungeon.nix b/pkgs/games/shattered-pixel-dungeon/experienced-pixel-dungeon.nix
index 26d89978c1a21..72ce4f790ad49 100644
--- a/pkgs/games/shattered-pixel-dungeon/experienced-pixel-dungeon.nix
+++ b/pkgs/games/shattered-pixel-dungeon/experienced-pixel-dungeon.nix
@@ -4,18 +4,18 @@
 
 callPackage ./generic.nix rec {
   pname = "experienced-pixel-dungeon";
-  version = "2.17.2";
+  version = "2.18";
 
   src = fetchFromGitHub {
     owner = "TrashboxBobylev";
     repo = "Experienced-Pixel-Dungeon-Redone";
     rev = "ExpPD-${version}";
-    hash = "sha256-eX+wPw2Bi37yQZ+ftjEkiGzvheJZingqDqy1481ABvs=";
+    hash = "sha256-jOKHBd9LaDn3oqLdQWqAcJnicktlbkDGw00nT8JveoI=";
   };
 
   postPatch = ''
     substituteInPlace build.gradle \
-      --replace-fail "gdxControllersVersion = '2.2.3-SNAPSHOT'" "gdxControllersVersion = '2.2.3'"
+      --replace-fail "gdxControllersVersion = '2.2.4-SNAPSHOT'" "gdxControllersVersion = '2.2.3'"
   '';
 
   depsHash = "sha256-PyBEhlOOVD3/YH4SWs1yMkdg3U96znk1/VV6SAr8S30=";
diff --git a/pkgs/games/shattered-pixel-dungeon/shorter-pixel-dungeon.nix b/pkgs/games/shattered-pixel-dungeon/shorter-pixel-dungeon.nix
index 6b52ebe0b5f34..7d775e7e6ed58 100644
--- a/pkgs/games/shattered-pixel-dungeon/shorter-pixel-dungeon.nix
+++ b/pkgs/games/shattered-pixel-dungeon/shorter-pixel-dungeon.nix
@@ -4,13 +4,13 @@
 
 callPackage ./generic.nix rec {
   pname = "shorter-pixel-dungeon";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "TrashboxBobylev";
     repo = "Shorter-Pixel-Dungeon";
     rev = "Short-${version}";
-    hash = "sha256-dfBFAXlMjazTjvvRZ87H48OmitZuHhaa3qUF81pF4wc=";
+    hash = "sha256-iG90T/Ho8/JY3HgkACiBnGdbUGsVRlfxXbcNFHhzZi4=";
   };
 
   postPatch = ''
@@ -18,7 +18,7 @@ callPackage ./generic.nix rec {
       --replace-fail "gdxControllersVersion = '2.2.4-SNAPSHOT'" "gdxControllersVersion = '2.2.3'"
   '';
 
-  depsHash = "sha256-MUUeWZUCVPakK1MJwn0lPnjAlLpPWB/J17Ad68XRcHg=";
+  depsHash = "sha256-PyBEhlOOVD3/YH4SWs1yMkdg3U96znk1/VV6SAr8S30=";
 
   desktopName = "Shorter Pixel Dungeon";
 
diff --git a/pkgs/games/steam/fhsenv.nix b/pkgs/games/steam/fhsenv.nix
index 95668e1ecea99..559aee92c9f34 100644
--- a/pkgs/games/steam/fhsenv.nix
+++ b/pkgs/games/steam/fhsenv.nix
@@ -190,11 +190,14 @@ in buildFHSEnv rec {
     libvdpau
 
     # required by coreutils stuff to run correctly
-    # Steam ends up with LD_LIBRARY_PATH=<bunch of runtime stuff>:/usr/lib:<etc>
+    # Steam ends up with LD_LIBRARY_PATH=/usr/lib:<bunch of runtime stuff>:<etc>
     # which overrides DT_RUNPATH in our binaries, so it tries to dynload the
     # very old versions of stuff from the runtime.
     # FIXME: how do we even fix this correctly
     attr
+    # same thing, but for Xwayland (usually via gamescope), already in the closure
+    libkrb5
+    keyutils
   ] ++ lib.optionals withGameSpecificLibraries [
     # Not formally in runtime but needed by some games
     at-spi2-atk
diff --git a/pkgs/games/vintagestory/default.nix b/pkgs/games/vintagestory/default.nix
index 7134139c62505..e16b36ff67e51 100644
--- a/pkgs/games/vintagestory/default.nix
+++ b/pkgs/games/vintagestory/default.nix
@@ -20,11 +20,11 @@
 
 stdenv.mkDerivation rec {
   pname = "vintagestory";
-  version = "1.19.7";
+  version = "1.19.8";
 
   src = fetchurl {
     url = "https://cdn.vintagestory.at/gamefiles/stable/vs_client_linux-x64_${version}.tar.gz";
-    hash = "sha256-C+vPsoMlo6EKmzf+XkvIhrDGG7EccU8c36GZt0/1r1Q=";
+    hash = "sha256-R6J+ACYDQpOzJZFBizsQGOexR7lMyeoZqz9TnWxfwyM=";
   };
 
 
diff --git a/pkgs/kde/default.nix b/pkgs/kde/default.nix
index 02c8650e6ec6c..10579baeca18e 100644
--- a/pkgs/kde/default.nix
+++ b/pkgs/kde/default.nix
@@ -3,7 +3,6 @@
   generateSplicesForMkScope,
   makeScopeWithSplicing',
   fetchurl,
-  fetchFromGitLab,
   libsForQt5,
   qt6Packages,
   cmark,
@@ -65,6 +64,7 @@
       kdiagram = self.callPackage ./misc/kdiagram {};
       kdsoap-ws-discovery-client = self.callPackage ./misc/kdsoap-ws-discovery-client {};
       kirigami-addons = self.callPackage ./misc/kirigami-addons {};
+      kio-extras-kf5 = self.callPackage ./misc/kio-extras-kf5 {};
       kio-fuse = self.callPackage ./misc/kio-fuse {};
       ktextaddons = self.callPackage ./misc/ktextaddons {};
       kunifiedpush = self.callPackage ./misc/kunifiedpush {};
diff --git a/pkgs/kde/gear/accessibility-inspector/default.nix b/pkgs/kde/gear/accessibility-inspector/default.nix
new file mode 100644
index 0000000000000..1197f29330085
--- /dev/null
+++ b/pkgs/kde/gear/accessibility-inspector/default.nix
@@ -0,0 +1,4 @@
+{mkKdeDerivation}:
+mkKdeDerivation {
+  pname = "accessibility-inspector";
+}
diff --git a/pkgs/kde/gear/akonadi-search/default.nix b/pkgs/kde/gear/akonadi-search/default.nix
index 416dd91a9ee5b..e8b38642a940e 100644
--- a/pkgs/kde/gear/akonadi-search/default.nix
+++ b/pkgs/kde/gear/akonadi-search/default.nix
@@ -7,7 +7,7 @@
   cargo,
   rustc,
   # provided as callPackage input to enable easier overrides through overlays
-  cargoHash ? "sha256-fY0mQiYS/CMThOVsWp8NgxpWfUph2dZ7hj7W5JUJ2J4=",
+  cargoHash ? "sha256-xT1SkW5iJy5Y9CK0CSxp+08XXjrbljxZzwYo2fEqxYE=",
 }:
 mkKdeDerivation rec {
   pname = "akonadi-search";
diff --git a/pkgs/kde/gear/angelfish/default.nix b/pkgs/kde/gear/angelfish/default.nix
index 0d9b4a341f05d..cda589932b9d6 100644
--- a/pkgs/kde/gear/angelfish/default.nix
+++ b/pkgs/kde/gear/angelfish/default.nix
@@ -8,7 +8,7 @@
   cargo,
   rustc,
   # provided as callPackage input to enable easier overrides through overlays
-  cargoHash ? "sha256-QJZJqdixPThgiKnruKetmzhbvtY/MsGy4v+OdQiEFR8=",
+  cargoHash ? "sha256-94f4DKRXcp3o6l3zbQzCpH2ZOztZMEAHa9ookPxbeDU=",
   qcoro,
 }:
 mkKdeDerivation rec {
diff --git a/pkgs/kde/gear/audex/default.nix b/pkgs/kde/gear/audex/default.nix
new file mode 100644
index 0000000000000..c6043d6416089
--- /dev/null
+++ b/pkgs/kde/gear/audex/default.nix
@@ -0,0 +1,10 @@
+{
+  mkKdeDerivation,
+  libcdio,
+  libcdio-paranoia,
+}:
+mkKdeDerivation {
+  pname = "audex";
+
+  extraBuildInputs = [libcdio libcdio-paranoia];
+}
diff --git a/pkgs/kde/gear/bovo/default.nix b/pkgs/kde/gear/bovo/default.nix
index 9e8ae9b05153d..5bafedfd1b141 100644
--- a/pkgs/kde/gear/bovo/default.nix
+++ b/pkgs/kde/gear/bovo/default.nix
@@ -1,10 +1,13 @@
 {
   mkKdeDerivation,
   qtsvg,
+  _7zz,
 }:
 mkKdeDerivation {
   pname = "bovo";
 
+  extraNativeBuildInputs = [_7zz];
   extraBuildInputs = [qtsvg];
+
   meta.mainProgram = "bovo";
 }
diff --git a/pkgs/kde/gear/calindori/default.nix b/pkgs/kde/gear/calindori/default.nix
index f0b21c7986a70..41efa7a9e48f3 100644
--- a/pkgs/kde/gear/calindori/default.nix
+++ b/pkgs/kde/gear/calindori/default.nix
@@ -1,15 +1,9 @@
 {
   mkKdeDerivation,
   qtsvg,
-  qqc2-desktop-style,
 }:
 mkKdeDerivation {
   pname = "calindori";
 
-  extraBuildInputs = [
-    qtsvg
-    qqc2-desktop-style
-  ];
-  # FIXME(qt5)
-  meta.broken = true;
+  extraBuildInputs = [qtsvg];
 }
diff --git a/pkgs/kde/gear/default.nix b/pkgs/kde/gear/default.nix
index 1ffcdc770e216..b0560b868ee30 100644
--- a/pkgs/kde/gear/default.nix
+++ b/pkgs/kde/gear/default.nix
@@ -1,4 +1,5 @@
 {callPackage}: {
+  accessibility-inspector = callPackage ./accessibility-inspector {};
   akonadi = callPackage ./akonadi {};
   akonadi-calendar = callPackage ./akonadi-calendar {};
   akonadi-calendar-tools = callPackage ./akonadi-calendar-tools {};
@@ -15,6 +16,7 @@
   arianna = callPackage ./arianna {};
   ark = callPackage ./ark {};
   artikulate = callPackage ./artikulate {};
+  audex = callPackage ./audex {};
   audiocd-kio = callPackage ./audiocd-kio {};
   audiotube = callPackage ./audiotube {};
   baloo-widgets = callPackage ./baloo-widgets {};
@@ -34,6 +36,7 @@
   falkon = callPackage ./falkon {};
   ffmpegthumbs = callPackage ./ffmpegthumbs {};
   filelight = callPackage ./filelight {};
+  francis = callPackage ./francis {};
   ghostwriter = callPackage ./ghostwriter {};
   granatier = callPackage ./granatier {};
   grantlee-editor = callPackage ./grantlee-editor {};
@@ -51,6 +54,7 @@
   kalarm = callPackage ./kalarm {};
   kalgebra = callPackage ./kalgebra {};
   kalk = callPackage ./kalk {};
+  kalm = callPackage ./kalm {};
   kalzium = callPackage ./kalzium {};
   kamera = callPackage ./kamera {};
   kamoso = callPackage ./kamoso {};
@@ -112,7 +116,6 @@
   kimap = callPackage ./kimap {};
   kio-admin = callPackage ./kio-admin {};
   kio-extras = callPackage ./kio-extras {};
-  kio-extras-kf5 = callPackage ./kio-extras-kf5 {};
   kio-gdrive = callPackage ./kio-gdrive {};
   kio-zeroconf = callPackage ./kio-zeroconf {};
   kipi-plugins = callPackage ./kipi-plugins {};
@@ -236,6 +239,7 @@
   signon-kwallet-extension = callPackage ./signon-kwallet-extension {};
   skanlite = callPackage ./skanlite {};
   skanpage = callPackage ./skanpage {};
+  skladnik = callPackage ./skladnik {};
   spectacle = callPackage ./spectacle {};
   step = callPackage ./step {};
   svgpart = callPackage ./svgpart {};
diff --git a/pkgs/kde/gear/francis/default.nix b/pkgs/kde/gear/francis/default.nix
new file mode 100644
index 0000000000000..f17f21c8ea21f
--- /dev/null
+++ b/pkgs/kde/gear/francis/default.nix
@@ -0,0 +1,9 @@
+{
+  mkKdeDerivation,
+  qtsvg,
+}:
+mkKdeDerivation {
+  pname = "francis";
+
+  extraBuildInputs = [qtsvg];
+}
diff --git a/pkgs/kde/gear/kalm/default.nix b/pkgs/kde/gear/kalm/default.nix
new file mode 100644
index 0000000000000..0c4eee90bc31e
--- /dev/null
+++ b/pkgs/kde/gear/kalm/default.nix
@@ -0,0 +1,4 @@
+{mkKdeDerivation}:
+mkKdeDerivation {
+  pname = "kalm";
+}
diff --git a/pkgs/kde/gear/katomic/default.nix b/pkgs/kde/gear/katomic/default.nix
index 9a0f9b743d9e0..e9dcd6ebe040c 100644
--- a/pkgs/kde/gear/katomic/default.nix
+++ b/pkgs/kde/gear/katomic/default.nix
@@ -1,5 +1,11 @@
-{mkKdeDerivation}:
+{
+  mkKdeDerivation,
+  _7zz
+}:
 mkKdeDerivation {
   pname = "katomic";
+
+  extraNativeBuildInputs = [_7zz];
+
   meta.mainProgram = "katomic";
 }
diff --git a/pkgs/kde/gear/kblackbox/default.nix b/pkgs/kde/gear/kblackbox/default.nix
index 3f8995ce537e3..26156c9195a92 100644
--- a/pkgs/kde/gear/kblackbox/default.nix
+++ b/pkgs/kde/gear/kblackbox/default.nix
@@ -1,10 +1,13 @@
 {
   mkKdeDerivation,
   qtsvg,
+  _7zz,
 }:
 mkKdeDerivation {
   pname = "kblackbox";
 
+  extraNativeBuildInputs = [_7zz];
   extraBuildInputs = [qtsvg];
+
   meta.mainProgram = "kblackbox";
 }
diff --git a/pkgs/kde/gear/kbounce/default.nix b/pkgs/kde/gear/kbounce/default.nix
index 8ddeef47bfb6e..e93c9e50d6731 100644
--- a/pkgs/kde/gear/kbounce/default.nix
+++ b/pkgs/kde/gear/kbounce/default.nix
@@ -1,10 +1,13 @@
 {
   mkKdeDerivation,
   qtsvg,
+  _7zz,
 }:
 mkKdeDerivation {
   pname = "kbounce";
 
+  extraNativeBuildInputs = [_7zz];
   extraBuildInputs = [qtsvg];
+
   meta.mainProgram = "kbounce";
 }
diff --git a/pkgs/kde/gear/kdepim-addons/default.nix b/pkgs/kde/gear/kdepim-addons/default.nix
index fded9e9b02058..e5df18eb90046 100644
--- a/pkgs/kde/gear/kdepim-addons/default.nix
+++ b/pkgs/kde/gear/kdepim-addons/default.nix
@@ -8,7 +8,7 @@
   corrosion,
   alpaka,
   # provided as callPackage input to enable easier overrides through overlays
-  cargoHash ? "sha256-Yt1Gxw9Q1Q108YRJoUIpeNZlGjZ7yabLW3bRO4+x6Vo=",
+  cargoHash ? "sha256-AMOgchdx9754rkGJg8IdsNgYgH8esnlrreuY5AFZlwE=",
 }:
 mkKdeDerivation rec {
   pname = "kdepim-addons";
diff --git a/pkgs/kde/gear/kfourinline/default.nix b/pkgs/kde/gear/kfourinline/default.nix
index 5e1d6fba0ef0a..2c77d372fc16c 100644
--- a/pkgs/kde/gear/kfourinline/default.nix
+++ b/pkgs/kde/gear/kfourinline/default.nix
@@ -1,9 +1,11 @@
 {
   mkKdeDerivation,
   qtsvg,
+  _7zz,
 }:
 mkKdeDerivation {
   pname = "kfourinline";
 
+  extraNativeBuildInputs = [_7zz];
   extraBuildInputs = [qtsvg];
 }
diff --git a/pkgs/kde/gear/kjumpingcube/default.nix b/pkgs/kde/gear/kjumpingcube/default.nix
index 1f1daf12d2348..0141748b39dce 100644
--- a/pkgs/kde/gear/kjumpingcube/default.nix
+++ b/pkgs/kde/gear/kjumpingcube/default.nix
@@ -1,10 +1,13 @@
 {
   mkKdeDerivation,
   qtsvg,
+  _7zz,
 }:
 mkKdeDerivation {
   pname = "kjumpingcube";
 
+  extraNativeBuildInputs = [_7zz];
   extraBuildInputs = [qtsvg];
+
   meta.mainProgram = "kjumpingcube";
 }
diff --git a/pkgs/kde/gear/klickety/default.nix b/pkgs/kde/gear/klickety/default.nix
index 574bddccf00b3..339fa31003a56 100644
--- a/pkgs/kde/gear/klickety/default.nix
+++ b/pkgs/kde/gear/klickety/default.nix
@@ -1,5 +1,11 @@
-{mkKdeDerivation}:
+{
+  mkKdeDerivation,
+  _7zz,
+}:
 mkKdeDerivation {
   pname = "klickety";
+
+  extraNativeBuildInputs = [_7zz];
+
   meta.mainProgram = "klickety";
 }
diff --git a/pkgs/kde/gear/klines/default.nix b/pkgs/kde/gear/klines/default.nix
index 58a8f6f8c4654..52bb95c0d787d 100644
--- a/pkgs/kde/gear/klines/default.nix
+++ b/pkgs/kde/gear/klines/default.nix
@@ -1,5 +1,11 @@
-{mkKdeDerivation}:
+{
+  mkKdeDerivation,
+  _7zz,
+}:
 mkKdeDerivation {
   pname = "klines";
+
+  extraNativeBuildInputs = [_7zz];
+
   meta.mainProgram = "klines";
 }
diff --git a/pkgs/kde/gear/kmines/default.nix b/pkgs/kde/gear/kmines/default.nix
index 5c333ae11da5a..687cf0d29480e 100644
--- a/pkgs/kde/gear/kmines/default.nix
+++ b/pkgs/kde/gear/kmines/default.nix
@@ -1,5 +1,11 @@
-{mkKdeDerivation}:
+{
+  mkKdeDerivation,
+  _7zz,
+}:
 mkKdeDerivation {
   pname = "kmines";
+
+  extraNativeBuildInputs = [_7zz];
+
   meta.mainProgram = "kmines";
 }
diff --git a/pkgs/kde/gear/knavalbattle/default.nix b/pkgs/kde/gear/knavalbattle/default.nix
index 3168f2b5729c5..abd9281ff52ec 100644
--- a/pkgs/kde/gear/knavalbattle/default.nix
+++ b/pkgs/kde/gear/knavalbattle/default.nix
@@ -1,5 +1,11 @@
-{mkKdeDerivation}:
+{
+  mkKdeDerivation,
+  _7zz,
+}:
 mkKdeDerivation {
   pname = "knavalbattle";
+
+  extraNativeBuildInputs = [_7zz];
+
   meta.mainProgram = "knavalbattle";
 }
diff --git a/pkgs/kde/gear/kolf/default.nix b/pkgs/kde/gear/kolf/default.nix
index 51a31e5e753ae..39657f077a7d4 100644
--- a/pkgs/kde/gear/kolf/default.nix
+++ b/pkgs/kde/gear/kolf/default.nix
@@ -1,5 +1,11 @@
-{mkKdeDerivation}:
+{
+  mkKdeDerivation,
+  _7zz,
+}:
 mkKdeDerivation {
   pname = "kolf";
+
+  extraNativeBuildInputs = [_7zz];
+
   meta.mainProgram = "kolf";
 }
diff --git a/pkgs/kde/gear/kollision/default.nix b/pkgs/kde/gear/kollision/default.nix
index f8e816437bb45..299549d475130 100644
--- a/pkgs/kde/gear/kollision/default.nix
+++ b/pkgs/kde/gear/kollision/default.nix
@@ -1,5 +1,11 @@
-{mkKdeDerivation}:
+{
+  mkKdeDerivation,
+  _7zz,
+}:
 mkKdeDerivation {
   pname = "kollision";
+
+  extraNativeBuildInputs = [_7zz];
+
   meta.mainProgram = "kollision";
 }
diff --git a/pkgs/kde/gear/kreversi/default.nix b/pkgs/kde/gear/kreversi/default.nix
index facc50b28b15a..3f5591c299b6a 100644
--- a/pkgs/kde/gear/kreversi/default.nix
+++ b/pkgs/kde/gear/kreversi/default.nix
@@ -1,10 +1,13 @@
 {
   mkKdeDerivation,
   qtsvg,
+  _7zz,
 }:
 mkKdeDerivation {
   pname = "kreversi";
 
+  extraNativeBuildInputs = [_7zz];
   extraBuildInputs = [qtsvg];
+
   meta.mainProgram = "kreversi";
 }
diff --git a/pkgs/kde/gear/krfb/default.nix b/pkgs/kde/gear/krfb/default.nix
index eadb9fffb756e..3ab41fcc4f511 100644
--- a/pkgs/kde/gear/krfb/default.nix
+++ b/pkgs/kde/gear/krfb/default.nix
@@ -1,28 +1,18 @@
 {
   mkKdeDerivation,
-  fetchpatch,
+  pkg-config,
   qtwayland,
   libvncserver,
+  pipewire,
   xorg,
 }:
 mkKdeDerivation {
   pname = "krfb";
 
-  # Backports.
-  # FIXME: remove in next release
-  patches = [
-    # Build fix for Qt 6.7.1
-    ./fix-build-with-qt-6.7.1.diff
-    # Wayland crash fix
-    (fetchpatch {
-      url = "https://invent.kde.org/network/krfb/-/commit/6e7a5ba56966ea1b67400be9ab7c82885abb76be.diff";
-      hash = "sha256-kqD4B2Nixw8KMCOc4RpoEmvII2JZYBPxog6TT/BPuFs=";
-    })
-  ];
-
   extraCmakeFlags = [
     "-DQtWaylandScanner_EXECUTABLE=${qtwayland}/libexec/qtwaylandscanner"
   ];
 
-  extraBuildInputs = [qtwayland libvncserver xorg.libXdamage];
+  extraNativeBuildInputs = [pkg-config];
+  extraBuildInputs = [qtwayland libvncserver pipewire xorg.libXdamage];
 }
diff --git a/pkgs/kde/gear/krfb/fix-build-with-qt-6.7.1.diff b/pkgs/kde/gear/krfb/fix-build-with-qt-6.7.1.diff
deleted file mode 100644
index d9ee35d4ca001..0000000000000
--- a/pkgs/kde/gear/krfb/fix-build-with-qt-6.7.1.diff
+++ /dev/null
@@ -1,51 +0,0 @@
-diff --git a/framebuffers/pipewire/CMakeLists.txt b/framebuffers/pipewire/CMakeLists.txt
-index 99f4562..3bf5f63 100644
---- a/framebuffers/pipewire/CMakeLists.txt
-+++ b/framebuffers/pipewire/CMakeLists.txt
-@@ -9,11 +9,6 @@ set (krfb_framebuffer_pw_SRCS
-      screencasting.cpp
- )
- 
--ecm_add_qtwayland_client_protocol(krfb_framebuffer_pw_SRCS
--    PROTOCOL ${PLASMA_WAYLAND_PROTOCOLS_DIR}/screencast.xml
--    BASENAME zkde-screencast-unstable-v1
--)
--
- ecm_qt_declare_logging_category(krfb_framebuffer_pw_SRCS
-     HEADER krfb_fb_pipewire_debug.h
-     IDENTIFIER KRFB_FB_PIPEWIRE
-@@ -38,6 +33,18 @@ add_library(krfb_framebuffer_pw
-     MODULE
-     ${krfb_framebuffer_pw_SRCS}
- )
-+
-+if (Qt6_VERSION VERSION_LESS "6.7.1")
-+    ecm_add_qtwayland_client_protocol(krfb_framebuffer_pw
-+        PROTOCOL ${PLASMA_WAYLAND_PROTOCOLS_DIR}/screencast.xml
-+        BASENAME zkde-screencast-unstable-v1
-+    )
-+else()
-+    qt6_generate_wayland_protocol_client_sources(krfb_framebuffer_pw
-+        FILES ${PLASMA_WAYLAND_PROTOCOLS_DIR}/screencast.xml
-+    )
-+endif()
-+
- set_property(TARGET krfb_framebuffer_pw PROPERTY C_STANDARD 99)
- 
- target_link_libraries(krfb_framebuffer_pw
-diff --git a/framebuffers/pipewire/screencasting.cpp b/framebuffers/pipewire/screencasting.cpp
-index 3c4d1ab..c338699 100644
---- a/framebuffers/pipewire/screencasting.cpp
-+++ b/framebuffers/pipewire/screencasting.cpp
-@@ -5,7 +5,11 @@
- */
- 
- #include "screencasting.h"
-+#if QT_VERSION < QT_VERSION_CHECK(6, 7, 1)
- #include "qwayland-zkde-screencast-unstable-v1.h"
-+#else
-+#include "qwayland-screencast.h"
-+#endif
- #include <KWayland/Client/registry.h>
- #include <QDebug>
- #include <QRect>
diff --git a/pkgs/kde/gear/ksudoku/default.nix b/pkgs/kde/gear/ksudoku/default.nix
index b11d44f488f9a..15ac4e2ce4f8d 100644
--- a/pkgs/kde/gear/ksudoku/default.nix
+++ b/pkgs/kde/gear/ksudoku/default.nix
@@ -1,10 +1,13 @@
 {
   mkKdeDerivation,
   qtsvg,
+  _7zz,
 }:
 mkKdeDerivation {
   pname = "ksudoku";
 
   extraBuildInputs = [qtsvg];
+  extraNativeBuildInputs = [_7zz];
+
   meta.mainProgram = "ksudoku";
 }
diff --git a/pkgs/kde/gear/kubrick/default.nix b/pkgs/kde/gear/kubrick/default.nix
index d5ca09e42887b..a194ebae5b682 100644
--- a/pkgs/kde/gear/kubrick/default.nix
+++ b/pkgs/kde/gear/kubrick/default.nix
@@ -1,11 +1,14 @@
 {
   mkKdeDerivation,
   qtsvg,
+  _7zz,
   libGLU,
 }:
 mkKdeDerivation {
   pname = "kubrick";
 
+  extraNativeBuildInputs = [_7zz];
   extraBuildInputs = [qtsvg libGLU];
+
   meta.mainProgram = "kubrick";
 }
diff --git a/pkgs/kde/gear/lskat/default.nix b/pkgs/kde/gear/lskat/default.nix
index 131cb34c0365b..eefb95f9e1b40 100644
--- a/pkgs/kde/gear/lskat/default.nix
+++ b/pkgs/kde/gear/lskat/default.nix
@@ -1,10 +1,13 @@
 {
   mkKdeDerivation,
   qtsvg,
+  _7zz,
 }:
 mkKdeDerivation {
   pname = "lskat";
 
+  extraNativeBuildInputs = [_7zz];
   extraBuildInputs = [qtsvg];
+
   meta.mainProgram = "lskat";
 }
diff --git a/pkgs/kde/gear/picmi/default.nix b/pkgs/kde/gear/picmi/default.nix
index 8838b657bc472..341cd3922aff5 100644
--- a/pkgs/kde/gear/picmi/default.nix
+++ b/pkgs/kde/gear/picmi/default.nix
@@ -1,10 +1,13 @@
 {
   mkKdeDerivation,
   qtsvg,
+  _7zz,
 }:
 mkKdeDerivation {
   pname = "picmi";
 
+  extraNativeBuildInputs = [_7zz];
   extraBuildInputs = [qtsvg];
+
   meta.mainProgram = "picmi";
 }
diff --git a/pkgs/kde/gear/skanpage/default.nix b/pkgs/kde/gear/skanpage/default.nix
index b6db869472cfe..c855041220c9a 100644
--- a/pkgs/kde/gear/skanpage/default.nix
+++ b/pkgs/kde/gear/skanpage/default.nix
@@ -1,5 +1,6 @@
 {
   mkKdeDerivation,
+  qtwebengine,
   tesseractLanguages ? [],
   tesseract5,
   leptonica,
@@ -8,6 +9,7 @@ mkKdeDerivation {
   pname = "skanpage";
 
   extraBuildInputs = [
+    qtwebengine
     (tesseract5.override {enableLanguages = tesseractLanguages;})
     leptonica
   ];
diff --git a/pkgs/kde/gear/skladnik/default.nix b/pkgs/kde/gear/skladnik/default.nix
new file mode 100644
index 0000000000000..ae4dd03f3e3c3
--- /dev/null
+++ b/pkgs/kde/gear/skladnik/default.nix
@@ -0,0 +1,4 @@
+{mkKdeDerivation}:
+mkKdeDerivation {
+  pname = "skladnik";
+}
diff --git a/pkgs/kde/gear/spectacle/default.nix b/pkgs/kde/gear/spectacle/default.nix
index 3232b6402bd04..576c2de08a5ea 100644
--- a/pkgs/kde/gear/spectacle/default.nix
+++ b/pkgs/kde/gear/spectacle/default.nix
@@ -2,10 +2,11 @@
   mkKdeDerivation,
   qtwayland,
   qtmultimedia,
+  opencv,
 }:
 mkKdeDerivation {
   pname = "spectacle";
 
-  extraBuildInputs = [qtwayland qtmultimedia];
+  extraBuildInputs = [qtwayland qtmultimedia opencv];
   meta.mainProgram = "spectacle";
 }
diff --git a/pkgs/kde/generated/licenses.json b/pkgs/kde/generated/licenses.json
index 5b3e4359cf94d..82ecdcb4cd955 100644
--- a/pkgs/kde/generated/licenses.json
+++ b/pkgs/kde/generated/licenses.json
@@ -1,4 +1,13 @@
 {
+  "accessibility-inspector": [
+    "BSD-2-Clause",
+    "BSD-3-Clause",
+    "CC0-1.0",
+    "LGPL-2.0-or-later",
+    "LGPL-2.1-only",
+    "LGPL-3.0-only",
+    "LicenseRef-KDE-Accepted-LGPL"
+  ],
   "akonadi": [
     "BSD-3-Clause",
     "CC0-1.0",
@@ -159,6 +168,11 @@
     "LGPL-3.0-only",
     "LicenseRef-KDE-Accepted-LGPL"
   ],
+  "audex": [
+    "CC0-1.0",
+    "GPL-3.0-or-later",
+    "LGPL-2.0-or-later"
+  ],
   "audiocd-kio": [
     "BSD-3-Clause",
     "CC0-1.0",
@@ -255,9 +269,11 @@
     "CC0-1.0"
   ],
   "breeze-icons": [
+    "CC-BY-SA-4.0",
     "CC0-1.0",
     "LGPL-2.0-or-later",
     "LGPL-2.1-only",
+    "LGPL-2.1-or-later",
     "LGPL-3.0-only",
     "LicenseRef-KDE-Accepted-LGPL"
   ],
@@ -331,8 +347,7 @@
   ],
   "dolphin-plugins": [
     "CC0-1.0",
-    "GPL-2.0-or-later",
-    "MIT"
+    "GPL-2.0-or-later"
   ],
   "dragon": [
     "CC0-1.0",
@@ -413,6 +428,14 @@
     "LGPL-3.0-only",
     "LicenseRef-KDE-Accepted-LGPL"
   ],
+  "francis": [
+    "BSD-2-Clause",
+    "BSD-3-Clause",
+    "CC0-1.0",
+    "GPL-3.0-or-later",
+    "LGPL-2.0-or-later",
+    "LGPL-2.1-or-later"
+  ],
   "ghostwriter": [
     "Apache-2.0",
     "BSD-3-Clause",
@@ -527,6 +550,11 @@
     "GPL-2.0-or-later",
     "GPL-3.0-or-later"
   ],
+  "kalm": [
+    "BSD-2-Clause",
+    "CC0-1.0",
+    "LGPL-2.1-or-later"
+  ],
   "kalzium": [
     "BSD-3-Clause",
     "CC0-1.0",
@@ -1266,23 +1294,6 @@
     "LicenseRef-KDE-Accepted-LGPL",
     "MIT"
   ],
-  "kio-extras-kf5": [
-    "BSD-2-Clause",
-    "BSD-3-Clause",
-    "CC0-1.0",
-    "GPL-2.0-only",
-    "GPL-2.0-or-later",
-    "GPL-3.0-only",
-    "GPL-3.0-or-later",
-    "LGPL-2.0-only",
-    "LGPL-2.0-or-later",
-    "LGPL-2.1-only",
-    "LGPL-2.1-or-later",
-    "LGPL-3.0-only",
-    "LicenseRef-KDE-Accepted-GPL",
-    "LicenseRef-KDE-Accepted-LGPL",
-    "MIT"
-  ],
   "kio-gdrive": [
     "CC0-1.0",
     "GPL-2.0-only",
@@ -1301,6 +1312,7 @@
     "CC0-1.0"
   ],
   "kirigami": [
+    "BSD-2-Clause",
     "BSD-3-Clause",
     "CC0-1.0",
     "FSFAP",
@@ -1419,10 +1431,12 @@
     "Qt-Commercial-exception-1.0"
   ],
   "kmail-account-wizard": [
-    "BSD-2-Clause",
     "BSD-3-Clause",
     "CC0-1.0",
-    "LGPL-2.0-or-later"
+    "LGPL-2.0-or-later",
+    "LGPL-2.1-only",
+    "LGPL-3.0-only",
+    "LicenseRef-KDE-Accepted-LGPL"
   ],
   "kmailtransport": [
     "BSD-3-Clause",
@@ -1470,6 +1484,7 @@
     "GPL-2.0-or-later"
   ],
   "knavalbattle": [
+    "BSD-3-Clause",
     "CC0-1.0",
     "GPL-2.0-or-later"
   ],
@@ -1533,6 +1548,7 @@
     "LicenseRef-KDE-Accepted-LGPL"
   ],
   "kolf": [
+    "BSD-3-Clause",
     "CC0-1.0"
   ],
   "kollision": [
@@ -1610,7 +1626,6 @@
     "BSD-3-Clause",
     "CC-BY-SA-4.0",
     "CC0-1.0",
-    "GPL-3.0-only",
     "GPL-3.0-or-later"
   ],
   "konversation": [
@@ -1938,6 +1953,7 @@
     "GPL-2.0-or-later"
   ],
   "kubrick": [
+    "BSD-3-Clause",
     "CC0-1.0",
     "GPL-2.0-or-later"
   ],
@@ -2360,7 +2376,6 @@
     "GPL-2.0-only",
     "GPL-2.0-or-later",
     "GPL-3.0-only",
-    "GPL-3.0-or-later",
     "LGPL-2.0-only",
     "LGPL-2.0-or-later",
     "LicenseRef-KDE-Accepted-GPL",
@@ -2397,7 +2412,8 @@
     "GPL-2.0-or-later",
     "GPL-3.0-only",
     "LGPL-2.1-or-later",
-    "LicenseRef-KDE-Accepted-GPL"
+    "LicenseRef-KDE-Accepted-GPL",
+    "MIT"
   ],
   "partitionmanager": [
     "CC-BY-4.0",
@@ -2705,7 +2721,8 @@
     "LGPL-3.0-only",
     "LicenseRef-KDE-Accepted-LGPL",
     "LicenseRef-KFQF-Accepted-GPL",
-    "LicenseRef-Qt-Commercial"
+    "LicenseRef-Qt-Commercial",
+    "MIT"
   ],
   "rocs": [
     "BSD-2-Clause",
@@ -2741,6 +2758,13 @@
     "GPL-3.0-only",
     "LicenseRef-KDE-Accepted-GPL"
   ],
+  "skladnik": [
+    "BSD-3-Clause",
+    "CC-BY-SA-4.0",
+    "CC0-1.0",
+    "GFDL-1.2-or-later",
+    "GPL-2.0-or-later"
+  ],
   "solid": [
     "BSD-3-Clause",
     "CC0-1.0",
diff --git a/pkgs/kde/generated/sources/frameworks.json b/pkgs/kde/generated/sources/frameworks.json
index ed0b7e489a2bd..1dea7ed6c3583 100644
--- a/pkgs/kde/generated/sources/frameworks.json
+++ b/pkgs/kde/generated/sources/frameworks.json
@@ -290,14 +290,14 @@
     "hash": "sha256-gpxS2xXWm5Dm0isI3qze3NE0I8kB5Nq2OJPoFLTnaFg="
   },
   "kwallet": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kwallet-6.2.0.tar.xz",
-    "hash": "sha256-LlgRmmRCywDjAU8BY26HIzfP82LsHvEgyvK6AYE70sE="
+    "version": "6.2.1",
+    "url": "mirror://kde/stable/frameworks/6.2/kwallet-6.2.1.tar.xz",
+    "hash": "sha256-UQxoGPso3ZHCqQxNBWgwEMrxs56a8bOoy7O0t8Yhk7w="
   },
   "kwidgetsaddons": {
-    "version": "6.2.0",
-    "url": "mirror://kde/stable/frameworks/6.2/kwidgetsaddons-6.2.0.tar.xz",
-    "hash": "sha256-A87y9mrsa397InbEfnIL2rk5sFt3twNF5/B2096tghE="
+    "version": "6.2.2",
+    "url": "mirror://kde/stable/frameworks/6.2/kwidgetsaddons-6.2.2.tar.xz",
+    "hash": "sha256-ORvVeEatFFHEoa39Cc+/qMI7FL8ra/cQhCNgtX2QBJ0="
   },
   "kwindowsystem": {
     "version": "6.2.0",
diff --git a/pkgs/kde/generated/sources/gear.json b/pkgs/kde/generated/sources/gear.json
index 96499269a4d1c..3f59e4f7e162b 100644
--- a/pkgs/kde/generated/sources/gear.json
+++ b/pkgs/kde/generated/sources/gear.json
@@ -1,1232 +1,1252 @@
 {
+  "accessibility-inspector": {
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/accessibility-inspector-24.05.0.tar.xz",
+    "hash": "sha256-bIgwqq3GEN0UEqT+Qo1ETE5aP5/k4c0DftkzTwZG6pg="
+  },
   "akonadi": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/akonadi-24.02.2.tar.xz",
-    "hash": "sha256-G3kjaVbz10BL0j3JBz4RK1NWpkFW5PvDJMQJwTJb80M="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/akonadi-24.05.0.tar.xz",
+    "hash": "sha256-6YGDb7POV0he07XE7UYTG8EsDUzXw3jYy2KPnF9TjZk="
   },
   "akonadi-calendar": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/akonadi-calendar-24.02.2.tar.xz",
-    "hash": "sha256-kwGV5yLPJowUZa41Nmq+++bw02o/cnCNDLAi5iiK6Fk="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/akonadi-calendar-24.05.0.tar.xz",
+    "hash": "sha256-Lv05KE6p2+Y86dSpbmIFUlA3DLA4kxn1h6mw7P9I0tY="
   },
   "akonadi-calendar-tools": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/akonadi-calendar-tools-24.02.2.tar.xz",
-    "hash": "sha256-dbbLxrznmjtUpdLJR6FNWR6BIgpey8QpTo5JMOYJsDc="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/akonadi-calendar-tools-24.05.0.tar.xz",
+    "hash": "sha256-qjMkoAvmG5p6ACGzznGgyrMMmt6PyPidJFHp9vqj5UI="
   },
   "akonadiconsole": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/akonadiconsole-24.02.2.tar.xz",
-    "hash": "sha256-6KXlu1fRMkX8pLxr8b3f8ZJDb/7+gjUfSVb317l8ObQ="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/akonadiconsole-24.05.0.tar.xz",
+    "hash": "sha256-81/2NI3rvTAnH0HXPT8DZXoZVnOP8phBcyhrRIGU3ZE="
   },
   "akonadi-contacts": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/akonadi-contacts-24.02.2.tar.xz",
-    "hash": "sha256-7/C8KnAVgEE32cMvTCAQDKEeX5SosRkVPNBi67BW9R8="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/akonadi-contacts-24.05.0.tar.xz",
+    "hash": "sha256-8AMhc0SVJHe3399XoL2iPKFzpS7O90jTFyPFkwn+2UI="
   },
   "akonadi-import-wizard": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/akonadi-import-wizard-24.02.2.tar.xz",
-    "hash": "sha256-+VCKPaYySF9mM4fP2DKtanZ+r/IIa6Y+AQowNE+dXxU="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/akonadi-import-wizard-24.05.0.tar.xz",
+    "hash": "sha256-L1cHleGkV/dRQi7kP12tJEebCa42mfoVr2YP270hZY0="
   },
   "akonadi-mime": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/akonadi-mime-24.02.2.tar.xz",
-    "hash": "sha256-sGUWJr2lOgujbIBE0RRyOcxVHvAO7R3/+DiKFm0c5BM="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/akonadi-mime-24.05.0.tar.xz",
+    "hash": "sha256-plgg19J1B5tHnLIPD8UW9Z+EbCm13NConTNQxpcoAPw="
   },
   "akonadi-notes": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/akonadi-notes-24.02.2.tar.xz",
-    "hash": "sha256-BATXrYrse4g4s5CdnPIi0mf01vO1Hya9jsyjmn2LWFU="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/akonadi-notes-24.05.0.tar.xz",
+    "hash": "sha256-mXb2bmDAvKJaezPuyHEfQ8FKl9seZZzeqRSWjtJDGZA="
   },
   "akonadi-search": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/akonadi-search-24.02.2.tar.xz",
-    "hash": "sha256-bPrMpULzFzrS+TuqCPu3ddE5AqG6UAV+Ex9IZr6mK54="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/akonadi-search-24.05.0.tar.xz",
+    "hash": "sha256-2VsVGQ+MP20yBYY2JnPPI5r9NJxXyOApLJgrc03H410="
   },
   "akregator": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/akregator-24.02.2.tar.xz",
-    "hash": "sha256-lGd55Rup4KrkF6DXTCmFXWfUYVCKejSyZOpY1zdqymo="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/akregator-24.05.0.tar.xz",
+    "hash": "sha256-qV+n9eHq0k5Wx7UAxf3+MRGZVITBgd64E7MAIhIJm7M="
   },
   "alligator": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/alligator-24.02.2.tar.xz",
-    "hash": "sha256-ridOcusOuZdfGTyCNUQkQW58yeLZ/Xe1efVPsqs/7VU="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/alligator-24.05.0.tar.xz",
+    "hash": "sha256-RziRlNQfGV4bI9iwq4gxXz0gceI1KWJlndMybPfzxeU="
   },
   "analitza": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/analitza-24.02.2.tar.xz",
-    "hash": "sha256-SdYM5D277bBHooHdLfaigY2Ok0B3R0nQeqelYj9szJs="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/analitza-24.05.0.tar.xz",
+    "hash": "sha256-tJqBTcQdPr6ydXmqk2wMtNt8SXYkhle5IBj5mWFlRbo="
   },
   "angelfish": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/angelfish-24.02.2.tar.xz",
-    "hash": "sha256-XTqwdHOUKLbTD2oS1oOgXxDf9h9UOwU59aGaFfxMg/E="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/angelfish-24.05.0.tar.xz",
+    "hash": "sha256-yltDFftPP2VisEXy8xJBzo/1x7vgyrgMU0lC3804Cnw="
   },
   "arianna": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/arianna-24.02.2.tar.xz",
-    "hash": "sha256-NymiP5TSN5+1h/6QBDb/uSygOuMClu6le5YlqbS+uz4="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/arianna-24.05.0.tar.xz",
+    "hash": "sha256-OV+WXxeItC+vFcXb0YyU/+Br+QJgIrupCH+YxpYAsoQ="
   },
   "ark": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ark-24.02.2.tar.xz",
-    "hash": "sha256-BjdPXHwq7nqTwEv9e2s7quqzli6Cd8kIf+pUupgFvc4="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/ark-24.05.0.tar.xz",
+    "hash": "sha256-cLFJ8CJutATJ2VeXHoapS8TAccGqGk0jPEkeX9tj+dc="
   },
   "artikulate": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/artikulate-24.02.2.tar.xz",
-    "hash": "sha256-di0yr7ij+PilNs4zpyCIjr2ZZ7T7/qineSWj7QBDuzo="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/artikulate-24.05.0.tar.xz",
+    "hash": "sha256-kUBnBKcxXXvlnYQ0i4W+MAag4tagtbbmVdy09rQs9Rk="
+  },
+  "audex": {
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/audex-24.05.0.tar.xz",
+    "hash": "sha256-WBCMw/Gm4QwhvRXEQ7/zBLLWUkCiW5jFTcSHsNEYfOk="
   },
   "audiocd-kio": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/audiocd-kio-24.02.2.tar.xz",
-    "hash": "sha256-ig/BKoaU7MiSO1RcXKsgYgQEvXe4SoDkt0yAq05XWho="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/audiocd-kio-24.05.0.tar.xz",
+    "hash": "sha256-V07l2An23i6L7F7cMYqzD5AdD7FWYApap9Jdrw2/MnQ="
   },
   "audiotube": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/audiotube-24.02.2.tar.xz",
-    "hash": "sha256-/XIaC46IllW6tZBmtygIBxt2Dr7P8b5H9a36dDqqXjI="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/audiotube-24.05.0.tar.xz",
+    "hash": "sha256-zxlGHbImtub20p5OSswgI/Y4GYKjtz24h31TwgTlo7c="
   },
   "baloo-widgets": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/baloo-widgets-24.02.2.tar.xz",
-    "hash": "sha256-J2tVfDY9o2fRxpUOsOGrLK44mqt7U9r2qeJDH4fe6hU="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/baloo-widgets-24.05.0.tar.xz",
+    "hash": "sha256-PSHv1kHCt83uzrxKS5OM3TtPPIfMJgAU49pxHSKp9rc="
   },
   "blinken": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/blinken-24.02.2.tar.xz",
-    "hash": "sha256-hdwL/bbA2n7/s2q2QS8OvTzLndjn53X0y0HAC2/4VmY="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/blinken-24.05.0.tar.xz",
+    "hash": "sha256-WL0Nxy0g5w0tJQFRjm4QzJ7D+pwCSqbQmnsoylWEKEQ="
   },
   "bomber": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/bomber-24.02.2.tar.xz",
-    "hash": "sha256-uhke2hB/YF+j7IvjEZtrPQcqV2EBJ5xPa0vg0Be4l1c="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/bomber-24.05.0.tar.xz",
+    "hash": "sha256-4xJmlRR71hA4/SuRH3sEoKZDRS29N4333uAG0wjtgi0="
   },
   "bovo": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/bovo-24.02.2.tar.xz",
-    "hash": "sha256-oFIrL6rOogHqfpDFrarfNE8lf13s/EQUBwhIrLeKx4g="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/bovo-24.05.0.tar.xz",
+    "hash": "sha256-09EavFONoctc28o5mtDfoGTjlaO8PsKGDGu2x+tB0SU="
   },
   "calendarsupport": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/calendarsupport-24.02.2.tar.xz",
-    "hash": "sha256-kGZxMgtfMr2e3PIS5moWxUbRlhUL0zMKr4qwkxsLBzE="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/calendarsupport-24.05.0.tar.xz",
+    "hash": "sha256-UMhbZlrZ7zt6UUIWrdUmX78kI2I3kmdUmj7XI4SMvMc="
   },
   "calindori": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/calindori-24.02.2.tar.xz",
-    "hash": "sha256-oPvoWm2TPJ0HlLVWzzdlGTlCS4+7bdMwjHNrqAcx5H8="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/calindori-24.05.0.tar.xz",
+    "hash": "sha256-E1nOyaeKLlLJMP3PmfmSN/W59Rpao2+boI8F4p0G9jY="
   },
   "cantor": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/cantor-24.02.2.tar.xz",
-    "hash": "sha256-HNY0Thm1fsmMEDUGkg3kEqVUG2E3fEPctRYq45wrm/U="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/cantor-24.05.0.tar.xz",
+    "hash": "sha256-dREEXdoQIOd3m23O+/lPYRWu/h+N6iLipYzQrArh4aI="
   },
   "cervisia": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/cervisia-24.02.2.tar.xz",
-    "hash": "sha256-+pGS/G/ZtLqH/8mlzF8n3+7+1/OuZ6DYoyRYBdTw5Cs="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/cervisia-24.05.0.tar.xz",
+    "hash": "sha256-+5uo9rzp3OmUnUh8Z7qDcfqC/wudTKenh0FFMKrzmZI="
   },
   "colord-kde": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/colord-kde-24.02.2.tar.xz",
-    "hash": "sha256-wzuEuILOv3pzm/R7J4+QLhRFBHDTCpYJGJfH1Hh1eEA="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/colord-kde-24.05.0.tar.xz",
+    "hash": "sha256-lJGSTIvMCJpkzdT2hLa3gx7wU5l5XrKxCUIOsezV3HU="
   },
   "dolphin": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/dolphin-24.02.2.tar.xz",
-    "hash": "sha256-UIREkNRRWcoWwdjZ9fBwHxGHcuSwmtrScINbZ7smpwE="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/dolphin-24.05.0.tar.xz",
+    "hash": "sha256-4AnOc0NVSBoI//8T5van24trdPoyADCzXZGAodnKB5Q="
   },
   "dolphin-plugins": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/dolphin-plugins-24.02.2.tar.xz",
-    "hash": "sha256-FLqewFaFXgEMzpzYyxTieIKHGZ8cyPUugKLUpLjFCw0="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/dolphin-plugins-24.05.0.tar.xz",
+    "hash": "sha256-cVMp916yLW9ZuqvF3voao3xz6hbWIUHA6uaVMlwBrC4="
   },
   "dragon": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/dragon-24.02.2.tar.xz",
-    "hash": "sha256-L/hf4lWnbUmCWSUSkDaQ4W5FLdzWSbbccCScBV9Nz5g="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/dragon-24.05.0.tar.xz",
+    "hash": "sha256-tOghEE07tjv71E9t03FBtCPmTOXbLU6VkVIUhgFQ34s="
   },
   "elisa": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/elisa-24.02.2.tar.xz",
-    "hash": "sha256-CCGLpznqCs6Cu6aqmFdYFNz99p/rYVljmPXTN8KVbA8="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/elisa-24.05.0.tar.xz",
+    "hash": "sha256-LTdxJcs0MteiILDpBxMzSOZ9JRyM2mDCXgS7oNJOjfc="
   },
   "eventviews": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/eventviews-24.02.2.tar.xz",
-    "hash": "sha256-UqyX3NJw4uDBOJtx+XRXSSMw1Mn15GpNi3ZbaV6PVe0="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/eventviews-24.05.0.tar.xz",
+    "hash": "sha256-gDNR57hV+heQ6/wemOqzRftrcFWNSvl7N6o0QEAleR8="
   },
   "falkon": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/falkon-24.02.2.tar.xz",
-    "hash": "sha256-+GB4MNmXWfVTNq19jo87+d+WlstWMqTjCFhuiSDX6cs="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/falkon-24.05.0.tar.xz",
+    "hash": "sha256-kggxPYiw9fuoTnfpn0KNgr3j04A5uPEmIAMsdeZEkZ0="
   },
   "ffmpegthumbs": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ffmpegthumbs-24.02.2.tar.xz",
-    "hash": "sha256-COjDKHOkm25liGrVAdMl+AUyQMZojAg1NIKDE/YMJFo="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/ffmpegthumbs-24.05.0.tar.xz",
+    "hash": "sha256-ozfE8ZwTPvRyt8Nk1IEtl5wHi1WaUbnH1t8aoeynBGc="
   },
   "filelight": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/filelight-24.02.2.tar.xz",
-    "hash": "sha256-FVG9/ef8fkI0xmU9WmE4+e/vyei97aqqaDNUcoNou44="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/filelight-24.05.0.tar.xz",
+    "hash": "sha256-DHdv8NsyPUffuWdyzvY7IxHs7t6UBJSUOw8+i/ipq4w="
+  },
+  "francis": {
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/francis-24.05.0.tar.xz",
+    "hash": "sha256-Zkf1VmCx0MMlwNWqPaUW8ArO0Pe2V6fSu/pqoF1y3/M="
   },
   "ghostwriter": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ghostwriter-24.02.2.tar.xz",
-    "hash": "sha256-Ct8M7/UWNvXnM5H+MzXiY8Whdw68hmLxSgNGpm26F04="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/ghostwriter-24.05.0.tar.xz",
+    "hash": "sha256-rhuCZBfcUK8b26igOsuGzqpjDEs+0L9tPIEW0NT2XDg="
   },
   "granatier": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/granatier-24.02.2.tar.xz",
-    "hash": "sha256-H2wCX633JVAYC8Nrv4E1sHJGaIkEv9ehxm+QCDLSvck="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/granatier-24.05.0.tar.xz",
+    "hash": "sha256-scZmT4fQo8dna2PKxHcuHlAJvHVrirjlAzDdcglx3ZY="
   },
   "grantlee-editor": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/grantlee-editor-24.02.2.tar.xz",
-    "hash": "sha256-M1l1Rt2dTwnPDq1Oy04SaT9qg71CTjB2g+THRBL1JnA="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/grantlee-editor-24.05.0.tar.xz",
+    "hash": "sha256-Zqns6Adbiivzzz0IYY2YIjqVShr3ykVWpg7fTvCJFB8="
   },
   "grantleetheme": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/grantleetheme-24.02.2.tar.xz",
-    "hash": "sha256-VIlfJVFtJ0xL/PfPWRCdXNLj9602GZaKflSnOn61qVg="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/grantleetheme-24.05.0.tar.xz",
+    "hash": "sha256-uo55sP1GAHTfufJM7ftgbDyL3lkB4oM0lnlgd28pJ5g="
   },
   "gwenview": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/gwenview-24.02.2.tar.xz",
-    "hash": "sha256-XxhgQHb+4pfnIutd1PRZafDgDGXs6TnnsSRj9X33i54="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/gwenview-24.05.0.tar.xz",
+    "hash": "sha256-se2CcMpPeWfHY2lnoYqLm/FyiXD2z4p+EbQj0Lzq5LA="
   },
   "incidenceeditor": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/incidenceeditor-24.02.2.tar.xz",
-    "hash": "sha256-L+I9hvAy5ZyXolpEPmzwpe3hNGnKGcbI1TMFjeZUJRc="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/incidenceeditor-24.05.0.tar.xz",
+    "hash": "sha256-K6hYRgMfoOVcO+9Zds6kTE9tXFyPmeeysaqO4CHhGCo="
   },
   "isoimagewriter": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/isoimagewriter-24.02.2.tar.xz",
-    "hash": "sha256-lsddWNFO9ySQ2tSrYrcr9aedXNkCns+noonfGoP4sYY="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/isoimagewriter-24.05.0.tar.xz",
+    "hash": "sha256-Nl9mo+qPKx9sjAn4fyiT7Gc3r5bldQE2Q1WGVa3lAeE="
   },
   "itinerary": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/itinerary-24.02.2.tar.xz",
-    "hash": "sha256-eCGsmCUwFlshH0633jIl3rdn7TVrxQUXbcNkDoVMOxw="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/itinerary-24.05.0.tar.xz",
+    "hash": "sha256-tjHIF54+pT9I1opIWDRwovlKR108iTcl6NJB99dvlxs="
   },
   "juk": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/juk-24.02.2.tar.xz",
-    "hash": "sha256-5XHlttb7Jz9Ar+8bX7KTO2OtuRcNEoI9EXWHn/sr+oM="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/juk-24.05.0.tar.xz",
+    "hash": "sha256-mExAW9VQcXbyvDEyTbloe23e5MpS6bN9vSeXj4yuV3M="
   },
   "k3b": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/k3b-24.02.2.tar.xz",
-    "hash": "sha256-YEfZQZO6FlDOcfQQC7oHhgI0VfTGoS4UydVDBYpOjkU="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/k3b-24.05.0.tar.xz",
+    "hash": "sha256-jgxH9vLI08LjiV3I6bAgWxqM4DcpOyDEfNN9QkZFOtA="
   },
   "kaccounts-integration": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kaccounts-integration-24.02.2.tar.xz",
-    "hash": "sha256-1Qs9eQ2N9qJNGv52YPp8bmHDgVnXdzgPh7gTyR0G0wc="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kaccounts-integration-24.05.0.tar.xz",
+    "hash": "sha256-jyAiwel9Wg0FSqtzpzjVatJYAK/xRcyDf/ZcqVAmw+g="
   },
   "kaccounts-providers": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kaccounts-providers-24.02.2.tar.xz",
-    "hash": "sha256-Ti9uioVPthqxnwD4/2dsj9l7GhK3BIXmZSt0r6N0nBg="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kaccounts-providers-24.05.0.tar.xz",
+    "hash": "sha256-Mrsh0NrLjblfss2WUSkPBODZGs2ttGdj7sqBs1G0WEo="
   },
   "kaddressbook": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kaddressbook-24.02.2.tar.xz",
-    "hash": "sha256-9ujQeY+Wf0XpJ5j2iUQ3XY0IjajDP2UAyk6mCxdH76M="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kaddressbook-24.05.0.tar.xz",
+    "hash": "sha256-sdJ9+HX1rBe5lr3GaK80BYLcI1hSs1ikdfAC8YUkE1E="
   },
   "kajongg": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kajongg-24.02.2.tar.xz",
-    "hash": "sha256-wj6afAznRNhX5W5GtoVqyDRF9yzLYYPo6Xfw5aOCRT8="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kajongg-24.05.0.tar.xz",
+    "hash": "sha256-X0Ie68zuj3au6yjEXr6n1lZ2lMem9/ryPzbOXxVOoXI="
   },
   "kalarm": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kalarm-24.02.2.tar.xz",
-    "hash": "sha256-LrlXBP+sQ6O96UISGmOm/zp/We54P8YU6w0CFuV4b/4="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kalarm-24.05.0.tar.xz",
+    "hash": "sha256-uLSs/UUR3rHQS/zzwX/DmVpK03NI4/rpR+RJmcShDWY="
   },
   "kalgebra": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kalgebra-24.02.2.tar.xz",
-    "hash": "sha256-oFvJWvkuRduH56GKkH5H9WsbiRtb2C9h7QFVs9rzTug="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kalgebra-24.05.0.tar.xz",
+    "hash": "sha256-v46chi9OKDCQ8BMpnv++WVQeQD+ciL4rr++SgiS0hWI="
   },
   "kalk": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kalk-24.02.2.tar.xz",
-    "hash": "sha256-i85J/DofNyYDlroZfA0K/6YMIFFiSwVbRzakfmcJUWM="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kalk-24.05.0.tar.xz",
+    "hash": "sha256-EZlYtQ1uEDshnBE4Gp9makx/UJAAw1/zOqiqWsZDAJE="
+  },
+  "kalm": {
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kalm-24.05.0.tar.xz",
+    "hash": "sha256-VZmdWHLntFafXDG4k/GfkaL98Niai6Tmctm2nkWhurY="
   },
   "kalzium": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kalzium-24.02.2.tar.xz",
-    "hash": "sha256-TGwX7FhH23FMEaJJ3kWZ1B3In8BLo4E53JCn/hX/Fqs="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kalzium-24.05.0.tar.xz",
+    "hash": "sha256-uB3/bjzuQL21jAopa7Drn0abYHMW+I5gQg37KjK5n4Y="
   },
   "kamera": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kamera-24.02.2.tar.xz",
-    "hash": "sha256-5ZTVkaqrHz3V+uzwJtd8DX7gJcNmL3xV50NGCM7bVNQ="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kamera-24.05.0.tar.xz",
+    "hash": "sha256-txJ4zgq0QhI3OkPRZVPPqZtAf3GmxpIJxTb3BKJTkG8="
   },
   "kamoso": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kamoso-24.02.2.tar.xz",
-    "hash": "sha256-f9cuA5hFh9mKGGeWCtqcOkTnyWjFSG/HdWP507tdCWs="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kamoso-24.05.0.tar.xz",
+    "hash": "sha256-ARJD3hrvogP3hRDXXrUSjBve5DXUURemQu/ib5miCQ4="
   },
   "kanagram": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kanagram-24.02.2.tar.xz",
-    "hash": "sha256-s5rbg39f78IFPRocFfpVHgVOohR6AVxGGRTZyvyeR1w="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kanagram-24.05.0.tar.xz",
+    "hash": "sha256-x+3GgldPSGxKrdwEaDNtg4/fvvM779ajr80W2eplHZ8="
   },
   "kapman": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kapman-24.02.2.tar.xz",
-    "hash": "sha256-3j0LLttJQQXXOdR9eCUkJSO36M2M5VGpUNQDfm4+eeo="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kapman-24.05.0.tar.xz",
+    "hash": "sha256-cng9BQIOWHTzleo/ujdc1Lh64d/HBpatkhJtv40503M="
   },
   "kapptemplate": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kapptemplate-24.02.2.tar.xz",
-    "hash": "sha256-wrv56L0aZjynOEffETrZVQu4QT5MCBO1B54Bp0hjo1o="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kapptemplate-24.05.0.tar.xz",
+    "hash": "sha256-jQoJkyQ35ndHfSp9zqC2HTLFvv5v6q6tqIPx1mg4Vg4="
   },
   "kasts": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kasts-24.02.2.tar.xz",
-    "hash": "sha256-Tcf2XvflSBY9V6vAfRSStu0ca2RQgKJoYUsEjIICCN8="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kasts-24.05.0.tar.xz",
+    "hash": "sha256-+h7PGExxrLiLGYPWscctgS4s88k3zMefyIXel8uLYII="
   },
   "kate": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kate-24.02.2.tar.xz",
-    "hash": "sha256-HdrLCTmDGkPiucGr2Nflr+/nZ4mEIzMmNlU3Dpn1Q00="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kate-24.05.0.tar.xz",
+    "hash": "sha256-0txf3wmQaNMVvpVi0zTJgMgO9t9810AAE6vDjUpO1iY="
   },
   "katomic": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/katomic-24.02.2.tar.xz",
-    "hash": "sha256-5tIIENASeTWZtY6FCzZKgl6R1nnOb28xwPX+4+ar2aA="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/katomic-24.05.0.tar.xz",
+    "hash": "sha256-0eUpr6OrhbrkfkhEjhe4+wuXF/DV8TWX8UD08mi3Jhw="
   },
   "kbackup": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kbackup-24.02.2.tar.xz",
-    "hash": "sha256-Amcdci6yJESCj3qZNqtEmdavnaS8ea6zOHAR3TclcVg="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kbackup-24.05.0.tar.xz",
+    "hash": "sha256-nV8wwRsNjujMHwyx/+SxWr9H5OIwvNIDmzulpxFYvm8="
   },
   "kblackbox": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kblackbox-24.02.2.tar.xz",
-    "hash": "sha256-NTTlrAQPxCf/PlBF8ZkAPDpDq7H7YZfRnvsPblAgAPY="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kblackbox-24.05.0.tar.xz",
+    "hash": "sha256-LVmBnbzXQKpQ/lrheOHZm7eGODp6uleZIFwbR2DebIA="
   },
   "kblocks": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kblocks-24.02.2.tar.xz",
-    "hash": "sha256-rOcasBtCOHtrxJhypwg9c4pvHAhMeli1c6Tx8ZCKkGM="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kblocks-24.05.0.tar.xz",
+    "hash": "sha256-t8ahzvjxMLBDYxBTcfdzvVUcivwOaPj99J2CEA9CtOg="
   },
   "kbounce": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kbounce-24.02.2.tar.xz",
-    "hash": "sha256-g9AImDCZw2BwG7EJ3/myZAsQ3KQfhk6CD1nvX3C9qqY="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kbounce-24.05.0.tar.xz",
+    "hash": "sha256-pNrXWpi5MT8gsRi4+6Fgjl2JHKSrZOVDuhwOJ1zgRV0="
   },
   "kbreakout": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kbreakout-24.02.2.tar.xz",
-    "hash": "sha256-lEMvZ0NGPhx06rZr1+kaKDs1xHGi0DwOtLYZz95Y21M="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kbreakout-24.05.0.tar.xz",
+    "hash": "sha256-k7vN0m5jmRre7UUG6dM4qNNdSAwBTDIYmCRKmKXcYUs="
   },
   "kbruch": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kbruch-24.02.2.tar.xz",
-    "hash": "sha256-mwAEF9T5epRyDKzaKrffIAAEv4LggtPUB83DvYeKd+I="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kbruch-24.05.0.tar.xz",
+    "hash": "sha256-ZcA/oALhG2KSr9X/AYc7HG+1Y2DC/128LF0oDZotDrg="
   },
   "kcachegrind": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kcachegrind-24.02.2.tar.xz",
-    "hash": "sha256-HEMJn6QqOJ6f+SYTtVDmYGqd6dW1ehCksIq1E+Wme5w="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kcachegrind-24.05.0.tar.xz",
+    "hash": "sha256-IrGVjPw+pjXgisUiR+NffSDPrqQceujWUpfz5PBafLM="
   },
   "kcalc": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kcalc-24.02.2.tar.xz",
-    "hash": "sha256-nMLSdjX4WK+3vzD55+m+8sBN6mU+4zuqQxZdo+V5e50="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kcalc-24.05.0.tar.xz",
+    "hash": "sha256-oGCRgcWtzdTe02/MYYXlCZqXqxOEZUP1gcBODHuqiWQ="
   },
   "kcalutils": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kcalutils-24.02.2.tar.xz",
-    "hash": "sha256-ikf/BefvIY4qSDbY2xYoDvYx6bkNm13/jFakzK6NHI0="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kcalutils-24.05.0.tar.xz",
+    "hash": "sha256-jG+ZL3Y2LVQJ/Sij6Z1cNtozIDQNcOCWycZuZruQFy0="
   },
   "kcharselect": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kcharselect-24.02.2.tar.xz",
-    "hash": "sha256-oYVEVRN8xl9518cQJGwWv9DdVYMbocH88hRuiR4p/SU="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kcharselect-24.05.0.tar.xz",
+    "hash": "sha256-zpEnS2Yi+K/7FaXCnUn55Fh1v87QGX4EWw2bOf4vbNA="
   },
   "kclock": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kclock-24.02.2.tar.xz",
-    "hash": "sha256-mumHKzXstbCLnonGe42zi+qYVJT0YC6Y7j90AQbtYFo="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kclock-24.05.0.tar.xz",
+    "hash": "sha256-lt6+BetBGLpKgGTkNXx11UcWrQ1+S7a5aykb6tyOucY="
   },
   "kcolorchooser": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kcolorchooser-24.02.2.tar.xz",
-    "hash": "sha256-fx18e/2oDPYnpyvrYtCUTgUoc/SIBO6ZquwTORmABaw="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kcolorchooser-24.05.0.tar.xz",
+    "hash": "sha256-5GwL6UWMIyohBekWXY38WCSZ97BywSNO9lc5ZXu6K6U="
   },
   "kcron": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kcron-24.02.2.tar.xz",
-    "hash": "sha256-LFWHivRYz8e4PM9ZLaVxc2kywn2CQSBDMZtx7rrXELU="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kcron-24.05.0.tar.xz",
+    "hash": "sha256-JlkNn7fP+SKKKxTcuCTX4i2GwKQgQtbJkk/a2/Dvsj4="
   },
   "kdebugsettings": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdebugsettings-24.02.2.tar.xz",
-    "hash": "sha256-D/ClEQy1i4EhaMtit5+2bj60W9iLfKWBEdXjhk7PukA="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kdebugsettings-24.05.0.tar.xz",
+    "hash": "sha256-2cH4lRc9Ea1yZlBHgTB0eBAGvawIaMn6DxWbPZ7D+oE="
   },
   "kdeconnect-kde": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdeconnect-kde-24.02.2.tar.xz",
-    "hash": "sha256-6ASRDSse1PX2zjaRXHnRHFW+bO4PJl2SNNlqLCcADa0="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kdeconnect-kde-24.05.0.tar.xz",
+    "hash": "sha256-sF9e4WQWCn/6oSaaJ/0qVQBt0An2bGvxBTC84tnZgM0="
   },
   "kde-dev-scripts": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kde-dev-scripts-24.02.2.tar.xz",
-    "hash": "sha256-/pmwM1oKsrD/CbMx/CQD+tpm5jfv1RV3rSGgpAEJGd8="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kde-dev-scripts-24.05.0.tar.xz",
+    "hash": "sha256-hXPP528NycSczNGjDDXSqGSFuZswkF3ZU6i3iEcslN8="
   },
   "kde-dev-utils": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kde-dev-utils-24.02.2.tar.xz",
-    "hash": "sha256-qmb4jZJxiqcpxkStN8aS4AWmMZBSihQgGRUhMpvb3U4="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kde-dev-utils-24.05.0.tar.xz",
+    "hash": "sha256-SbAzghe1hnDkPT2uXhMPLrn1Jdl/3IUtndBPmTUEEIk="
   },
   "kdeedu-data": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdeedu-data-24.02.2.tar.xz",
-    "hash": "sha256-Vr/rOVLH2SF/q9iT/y/ae/JZq+FYMQWGxugSsIu4tJc="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kdeedu-data-24.05.0.tar.xz",
+    "hash": "sha256-a95Vz3WHKzn2NOOc5NK/D1hoLnoHNMfssOnCY2h+lqM="
   },
   "kdegraphics-mobipocket": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdegraphics-mobipocket-24.02.2.tar.xz",
-    "hash": "sha256-kRFWFg5KwC8wJhGN4/MAiWIw+OCmvXp/z1yVvEFsvSo="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kdegraphics-mobipocket-24.05.0.tar.xz",
+    "hash": "sha256-cJRngpwbnZ90ZUm9OniUgkIpwKpjBS+2b4ZeKne1rAQ="
   },
   "kdegraphics-thumbnailers": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdegraphics-thumbnailers-24.02.2.tar.xz",
-    "hash": "sha256-uWkSy0maO1FOF1X5ILeqJRsVQhL8PD+JS4SrQJ+68wo="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kdegraphics-thumbnailers-24.05.0.tar.xz",
+    "hash": "sha256-UyXO4TJb9WSwcGfWpmZYXRrHh0Eoj0X2KPXtQnCBYQw="
   },
   "kde-inotify-survey": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kde-inotify-survey-24.02.2.tar.xz",
-    "hash": "sha256-UG1tomYst8jhNduD/xH+TlaW3SWKnTohK11K0oiTCKw="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kde-inotify-survey-24.05.0.tar.xz",
+    "hash": "sha256-25+lq2Zkqy7g6v7uXJZn6RfSjh+sArzObSwlKUN9eb8="
   },
   "kdenetwork-filesharing": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdenetwork-filesharing-24.02.2.tar.xz",
-    "hash": "sha256-tRZnIIALHodp0heF6DreLmcw5y/6HMPZMN9kVyLAing="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kdenetwork-filesharing-24.05.0.tar.xz",
+    "hash": "sha256-BKfZHnEGsLngG3Qu2fy1yMX+fhR8sPw/a+wDU/nMp7s="
   },
   "kdenlive": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdenlive-24.02.2.tar.xz",
-    "hash": "sha256-yEtiZK7y6nlOAwGCf0bAHhK22VkhWJN+GE3dxMOUbuM="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kdenlive-24.05.0.tar.xz",
+    "hash": "sha256-2Eik0zEgs56B5sJ52gkdITuT17/JqlcnSiU6c0CWaK4="
   },
   "kdepim-addons": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdepim-addons-24.02.2.tar.xz",
-    "hash": "sha256-sdnub88kEAlOH+R9j4OQ6SCVNwuoJhEZP8PmH1qwST8="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kdepim-addons-24.05.0.tar.xz",
+    "hash": "sha256-A4ezYKpPHBRGFyjZXU8ltgiHS+PagS3/Ikz77r+OjvQ="
   },
   "kdepim-runtime": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdepim-runtime-24.02.2.tar.xz",
-    "hash": "sha256-7DAF62M58uU+iSaKXh1Mn3azM/CyrQyH54I9GEbtDcw="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kdepim-runtime-24.05.0.tar.xz",
+    "hash": "sha256-ygf3rO3w+vf7O4vxA6st7Mxz1/3yuheeHC95FYfGRRI="
   },
   "kdesdk-kio": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdesdk-kio-24.02.2.tar.xz",
-    "hash": "sha256-IjdMcwnu4O3gJCDLzmoXC2lnoi1NdfIKqeO7GRyq230="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kdesdk-kio-24.05.0.tar.xz",
+    "hash": "sha256-XF+QO7DAvUA53srQM5LYMF8L7729g361f//zB0jTXj0="
   },
   "kdesdk-thumbnailers": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdesdk-thumbnailers-24.02.2.tar.xz",
-    "hash": "sha256-uifW3KPs6UAUBuoDH38I6Fs1/snWu0hRLLYz3tXEBvI="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kdesdk-thumbnailers-24.05.0.tar.xz",
+    "hash": "sha256-vyDcFaXIpqCtrLVF7axVbMAmYoqVOoeAg5xstcstenY="
   },
   "kdevelop": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdevelop-24.02.2.tar.xz",
-    "hash": "sha256-M54jhw7jKHNvatPxcTxyqEr00VZSm/KUfxEz+tekirc="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kdevelop-24.05.0.tar.xz",
+    "hash": "sha256-rY8RwFccgtDWuwuBSREN2n5y9o/s9ilmgt+aqdkvmps="
   },
   "kdev-php": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdev-php-24.02.2.tar.xz",
-    "hash": "sha256-wDw2DGP/hoynhisDYsbGaTw2fAdpDMXlqJSrQ1BWKoo="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kdev-php-24.05.0.tar.xz",
+    "hash": "sha256-mWI1AYGdbWvl9NcryfUYkJqbGRCqcd46zQW1NBpMIbU="
   },
   "kdev-python": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdev-python-24.02.2.tar.xz",
-    "hash": "sha256-+Px+89s8x02OxzP+Tm1jifgYfIp/plhXcrWGox5KjWo="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kdev-python-24.05.0.tar.xz",
+    "hash": "sha256-GDg8MBo/j/rmZCEE9rQPJM5FsjI26iL7PxlM1OVYv5Q="
   },
   "kdf": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdf-24.02.2.tar.xz",
-    "hash": "sha256-K1ouYilOXTewDdoZeuXiJYBrz6jdGXXY8VEG2XM2Odc="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kdf-24.05.0.tar.xz",
+    "hash": "sha256-nihaoQZlzu3VNxosUGlou1GqTQMaRp0TkMIrdmffHKY="
   },
   "kdialog": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdialog-24.02.2.tar.xz",
-    "hash": "sha256-8d+N1LY/tO+/nbgDJquvfi99uDEo/kfShMbffYEucdk="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kdialog-24.05.0.tar.xz",
+    "hash": "sha256-i32SKv+7QVrwz9Q96GEuHa2Os+W40/QyhPG9UN7gskA="
   },
   "kdiamond": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kdiamond-24.02.2.tar.xz",
-    "hash": "sha256-DnX4x2wnaGIzr7vR+DrwNDAj1ocLeI6g88H+QxnVyJw="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kdiamond-24.05.0.tar.xz",
+    "hash": "sha256-X2oXJ8r/hEE3EfGW9n3Y5LfcGf+ILKjUcCSEYQrErl4="
   },
   "keditbookmarks": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/keditbookmarks-24.02.2.tar.xz",
-    "hash": "sha256-vHSvzQFkt6zf/fMj/bR7KDtbCWClZ8B6AQI4oMCMayY="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/keditbookmarks-24.05.0.tar.xz",
+    "hash": "sha256-q2iIrWj/O53U80luFVJ45yhvaGKaz9ZREth6mJ+nrXA="
   },
   "keysmith": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/keysmith-24.02.2.tar.xz",
-    "hash": "sha256-8WwhWSYQRNG/+T0bkOoPUI40xhukkmi1ysD7VyTbByw="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/keysmith-24.05.0.tar.xz",
+    "hash": "sha256-J/MjuyeVmTAayOceV/Ri/ca+wCb4dIv4Cn5VSBzW7aM="
   },
   "kfind": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kfind-24.02.2.tar.xz",
-    "hash": "sha256-rg8fsCnEtLhRIszXH0wdGGkp7xkFfdrztyyhsyUsmK0="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kfind-24.05.0.tar.xz",
+    "hash": "sha256-/aR31aSMf5QYCSL5ShjQAA3iJjUF07wtRlhwCL3KZyg="
   },
   "kfourinline": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kfourinline-24.02.2.tar.xz",
-    "hash": "sha256-R+fYzLd/df4yjW1URKIY+cPb4T4dHc6EIql2U4nMwy0="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kfourinline-24.05.0.tar.xz",
+    "hash": "sha256-k8VNGCuiEOVY9YuLXE4MzOUaD6nZIrXmhYYj6PYYUKw="
   },
   "kgeography": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kgeography-24.02.2.tar.xz",
-    "hash": "sha256-DyQkUzTnW7j3uGzYlLVMsAuMtCGSgnPCy934KXWOdgo="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kgeography-24.05.0.tar.xz",
+    "hash": "sha256-fiFOAm8BfQYPzGULSroONoGa1wOL1hJPrVPqYOapB2M="
   },
   "kget": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kget-24.02.2.tar.xz",
-    "hash": "sha256-4PkVdtAFGUdwAyEjufHEDSUKvMBWQEGkRZzvtzsDK2Q="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kget-24.05.0.tar.xz",
+    "hash": "sha256-zxCDlTIRSZkC3atOitq1nxijqLg4j9TBO9ARdfKtj8E="
   },
   "kgoldrunner": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kgoldrunner-24.02.2.tar.xz",
-    "hash": "sha256-0WcnGBJopqW9PuKy1TmDCePLOqwOi3AwB22mjlOzv3M="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kgoldrunner-24.05.0.tar.xz",
+    "hash": "sha256-V4bvEgZ/olNYL64+g7J98jIwOEhHboS+urBSoEqJp+c="
   },
   "kgpg": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kgpg-24.02.2.tar.xz",
-    "hash": "sha256-2XraIbCCSMjkTZGLR9pg8o+kpbksYVJzPzE36aLvBes="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kgpg-24.05.0.tar.xz",
+    "hash": "sha256-p/4339kBjAdpMgB0cxt7QAQ4l2okKMVgRQg0DLVElWQ="
   },
   "khangman": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/khangman-24.02.2.tar.xz",
-    "hash": "sha256-unFszlJqp8KI7K/CEV1BszbSaI4ogYzFI1OSWiz8SCw="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/khangman-24.05.0.tar.xz",
+    "hash": "sha256-OsZSt3c2tKiF8ZhFdfYNqvmyX4Ckh0EibCnvBCNQjOM="
   },
   "khealthcertificate": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/khealthcertificate-24.02.2.tar.xz",
-    "hash": "sha256-llBNAYqMwXmB/f2R0lElXpUbTiR4GTlohHLefXRhxy0="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/khealthcertificate-24.05.0.tar.xz",
+    "hash": "sha256-PklyOP7OdwUMF318RwE2LawqNYzCqiJkFQxkJL6pTBI="
   },
   "khelpcenter": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/khelpcenter-24.02.2.tar.xz",
-    "hash": "sha256-UghQIcT3Qr8oSQEDI7BD7RIaosyJ4H4sgV2JGoG95js="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/khelpcenter-24.05.0.tar.xz",
+    "hash": "sha256-xMUAvUYcWjJkFbE3qNoywJdCbSq3B8qc1QwnehGnexI="
   },
   "kidentitymanagement": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kidentitymanagement-24.02.2.tar.xz",
-    "hash": "sha256-nfCo7FkpgVkAdwZ+e+ed8YiUr060HylFHpPqduQIH0E="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kidentitymanagement-24.05.0.tar.xz",
+    "hash": "sha256-eNzsufk4zKzP8lcrlRvwMyHOaymgWqnZcSDxwN87AhI="
   },
   "kig": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kig-24.02.2.tar.xz",
-    "hash": "sha256-k85+krHu+LZpUFskjEShugmLEXQ4xzNL/86bWm14tOs="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kig-24.05.0.tar.xz",
+    "hash": "sha256-1Cx6DhSpN3s1ZkxMmqC3sfAZgMi/hzdTEICj/h3WD+g="
   },
   "kigo": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kigo-24.02.2.tar.xz",
-    "hash": "sha256-AMYnWg5IdTFMWnNfIPVChuInKP7U1k5k9U0KDFKwaBY="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kigo-24.05.0.tar.xz",
+    "hash": "sha256-5kcgUP6GLmOp2mYG2CXpkwca4OgsODL+xH9DCKxc60c="
   },
   "killbots": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/killbots-24.02.2.tar.xz",
-    "hash": "sha256-idjc/On0HquWg13tJIdkdE/FM1fYvU9Rc2tQGaK6xIE="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/killbots-24.05.0.tar.xz",
+    "hash": "sha256-4wtZ+/yOZfwcNi8OkVHgJ3m+V5uVw32nmg+opt5M40c="
   },
   "kimagemapeditor": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kimagemapeditor-24.02.2.tar.xz",
-    "hash": "sha256-RD7rYeNFiYE4L4ogHa9QKfnHlSXmB5njU/POoIVhMr8="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kimagemapeditor-24.05.0.tar.xz",
+    "hash": "sha256-3lqqZrCmEpGJy6i1KM46Op1iz41+I8uX2su39DfVv/I="
   },
   "kimap": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kimap-24.02.2.tar.xz",
-    "hash": "sha256-YX9P//jQEHirTd66ibXCxE8tw5b96W/uRv6XSbMjM2A="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kimap-24.05.0.tar.xz",
+    "hash": "sha256-Y/EUFloLIHugR4WVCWXim8y4FNGhsgJrrxkA3MFy/cs="
   },
   "kio-admin": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kio-admin-24.02.2.tar.xz",
-    "hash": "sha256-JAgogPCAj7mzyPWDlHFZAtvHMWeveuLtl/Lk4oTKCbc="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kio-admin-24.05.0.tar.xz",
+    "hash": "sha256-vRoOBqnd+nHKHOoyX8T5Wp2wONra+OtVN4/RpYYIK+I="
   },
   "kio-extras": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kio-extras-24.02.2.tar.xz",
-    "hash": "sha256-+nph9GHBYcNtX6RR0HDmllPyNAYgZI+BO0wry3mUQ8c="
-  },
-  "kio-extras-kf5": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kio-extras-kf5-24.02.2.tar.xz",
-    "hash": "sha256-qar1jzuALINBu6HOuVBU+RUFnqRH9Z/8e5M8ynGxKsk="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kio-extras-24.05.0.tar.xz",
+    "hash": "sha256-wrRjYTO3WAzrnDSkx33mW2Lk4NldfyPTtvDLLcdhVZ8="
   },
   "kio-gdrive": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kio-gdrive-24.02.2.tar.xz",
-    "hash": "sha256-Ejv0tSgW3QasBFXBsKzS9oTK1zUHX/btIkTvHjqSOSM="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kio-gdrive-24.05.0.tar.xz",
+    "hash": "sha256-kZfiL3St37iLHIglsSzzB5Ly6jAruWhMvNAMswUFkoQ="
   },
   "kio-zeroconf": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kio-zeroconf-24.02.2.tar.xz",
-    "hash": "sha256-pnhOiXHJ7aRe4nGSj9wL/ytu4O0TTdtkiNqvHohqFE8="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kio-zeroconf-24.05.0.tar.xz",
+    "hash": "sha256-pOeNCaJVsFE0KC6RO98dAL1b77AorGhYUCGqiChe1oE="
   },
   "kipi-plugins": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kipi-plugins-24.02.2.tar.xz",
-    "hash": "sha256-VQShO1Jx8IQYoXui2HX95LI3PKlT/lZLMJFI0eyw6G0="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kipi-plugins-24.05.0.tar.xz",
+    "hash": "sha256-gzDY2w7sSBExkrSmQ/TbPkFs8o2CO8ZBXmbLUqS93lA="
   },
   "kirigami-gallery": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kirigami-gallery-24.02.2.tar.xz",
-    "hash": "sha256-cLt1nGKg5NFpeBwzTM21ZPTN4Kv1EJEL3oITNc53it0="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kirigami-gallery-24.05.0.tar.xz",
+    "hash": "sha256-nX+YTNl/qBvE3QLKQ+wI5sfT//u/zkhx/GjAyKTnRy8="
   },
   "kiriki": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kiriki-24.02.2.tar.xz",
-    "hash": "sha256-BsMqgpi6ysmJHrkVURJC+A2r82aB3LEZNPdGKQUEdRc="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kiriki-24.05.0.tar.xz",
+    "hash": "sha256-KhD9YAh7/CZkuQkhLdlWLYVxOyG8TTWWrZCtObEzliU="
   },
   "kiten": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kiten-24.02.2.tar.xz",
-    "hash": "sha256-7d6RgHGcmk1DR/upIclTnaRoiiBNwSRqtrt1zuYM67w="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kiten-24.05.0.tar.xz",
+    "hash": "sha256-D7wwOqzi2JrUnhKj1QMdC+AW/882scfcgPsIOZvL4kQ="
   },
   "kitinerary": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kitinerary-24.02.2.tar.xz",
-    "hash": "sha256-cW5uYhdcorV3598YjJFDpS4plMdQBzR8DTisAQSeKvg="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kitinerary-24.05.0.tar.xz",
+    "hash": "sha256-9P2SFBfOnJgq8b3Br99xO2/w+A6rwngeWrVz9X7VJaM="
   },
   "kjournald": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kjournald-24.02.2.tar.xz",
-    "hash": "sha256-OTE9s1JLRha846is7JxUvIOg07woNxYKwHQw0E0Mims="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kjournald-24.05.0.tar.xz",
+    "hash": "sha256-KbXTUIS+aBWX3afW0wA202wLlzzNahaA/xOKtvNx8Ps="
   },
   "kjumpingcube": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kjumpingcube-24.02.2.tar.xz",
-    "hash": "sha256-Jw0mjtZIvdgOok2odrl5v6ScMpqJ0jFZJYm+ufjqNw4="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kjumpingcube-24.05.0.tar.xz",
+    "hash": "sha256-6ZrSWvI3vKH4Ga24UDY2ZfN1SKulGznfvvJWbgfN/YE="
   },
   "kldap": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kldap-24.02.2.tar.xz",
-    "hash": "sha256-lUb0yqIDQQCqtoyeiT/gMvk4IVFbvTGUMl3YQQ9OGFQ="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kldap-24.05.0.tar.xz",
+    "hash": "sha256-iim3l6ySAOzl7HU7Hb/sVNTaWo4PgtWCPG8+wI3qHq4="
   },
   "kleopatra": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kleopatra-24.02.2.tar.xz",
-    "hash": "sha256-B3Q4U7sbZt3xwKP5hh/PIecWvF5Z2EB4wC/rnzXGQ8U="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kleopatra-24.05.0.tar.xz",
+    "hash": "sha256-rO3sEjj1wg/sqS1QXRuoGDwvcs6xJ4jslZ46MzZFOEA="
   },
   "klettres": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/klettres-24.02.2.tar.xz",
-    "hash": "sha256-eH/tX6Hv/uVs6WmPKL7aa4eWn42sTzN3j9Kbf0RIuwc="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/klettres-24.05.0.tar.xz",
+    "hash": "sha256-1iNdb5Og2cht/deu+DPg49ndKStRVM9fKMu6m1BkHso="
   },
   "klickety": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/klickety-24.02.2.tar.xz",
-    "hash": "sha256-S4zFnyrghWPvF6mdOzrtL/zs8zWD50PUJovHO1F6tlQ="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/klickety-24.05.0.tar.xz",
+    "hash": "sha256-E3M16vBkdNYYUUjJwfn8Y81gma9jc4U5S1Dj7/yxNVw="
   },
   "klines": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/klines-24.02.2.tar.xz",
-    "hash": "sha256-ZQMF9WAqfckjh5qEz0796OdD2CYRu6b8QC4iyc7LCOY="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/klines-24.05.0.tar.xz",
+    "hash": "sha256-UAiw8+ThdjBck1vHXUkL8XTB0+5n4T60Ps5rzJEYcdI="
   },
   "kmag": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kmag-24.02.2.tar.xz",
-    "hash": "sha256-nDkcfm7gntmatD5enyt1WvWaoUShjojylTKFmfeC8CY="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kmag-24.05.0.tar.xz",
+    "hash": "sha256-quQfo4de42k99umLpR0jY98XUio0716Ak3bWFrpaVlE="
   },
   "kmahjongg": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kmahjongg-24.02.2.tar.xz",
-    "hash": "sha256-T3RMz/vQVyu2FgdoiNcZmhxxBur3DZAGJEEAnPG6UhI="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kmahjongg-24.05.0.tar.xz",
+    "hash": "sha256-CJB8EO4+BcIM+ywVVRhpQ+XBB3Qnav5YCIr6zuZodJQ="
   },
   "kmail": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kmail-24.02.2.tar.xz",
-    "hash": "sha256-8AVx6obaeDqueB8fHTmO3yn1nSi0F1dQNVtzyhlyGCY="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kmail-24.05.0.tar.xz",
+    "hash": "sha256-qYoEr70P6tvute2llgyQK4TJPujSYV2tkOBNh6sGK/Q="
   },
   "kmail-account-wizard": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kmail-account-wizard-24.02.2.tar.xz",
-    "hash": "sha256-va6vyIgl4UMX3NKQhZJcDW780fCYX0gSY1OSGWdH8fc="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kmail-account-wizard-24.05.0.tar.xz",
+    "hash": "sha256-RAIJUocA/mSP/74UPLZX0LyMYnV3au9qTjXV9FOFw60="
   },
   "kmailtransport": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kmailtransport-24.02.2.tar.xz",
-    "hash": "sha256-KK86kGlccotCWEt/rjSPlmxx+LaI+dN5L2RrVdZgxlw="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kmailtransport-24.05.0.tar.xz",
+    "hash": "sha256-jsZBkt+K9Tia5pAfdgrPljDEvj5T6XDUENhu0rH//UE="
   },
   "kmbox": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kmbox-24.02.2.tar.xz",
-    "hash": "sha256-b6z07FzQU83j4tNHmepydqZI4QdjXg/AohtB6uZcPo8="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kmbox-24.05.0.tar.xz",
+    "hash": "sha256-2d4UvxNatfvH8zkVorqyJTMWlojG0P0RPntR5tdEDpo="
   },
   "kmime": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kmime-24.02.2.tar.xz",
-    "hash": "sha256-Q03G9tI9Zog2t5TmNmCk2/PpOZ6E/OodGVd6SgnmSuI="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kmime-24.05.0.tar.xz",
+    "hash": "sha256-fARJdKwfOs3gGAR2ayTr4Xt0EyAeeOpP+fTw1347uLk="
   },
   "kmines": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kmines-24.02.2.tar.xz",
-    "hash": "sha256-jAR6f0ykQhknrER4Uyi4z7eyz21J0Te5wnrtUkF60Q8="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kmines-24.05.0.tar.xz",
+    "hash": "sha256-pDhqzoFk6B67KUpVhzAtaRCGwqs5srusRjICItpFlEE="
   },
   "kmix": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kmix-24.02.2.tar.xz",
-    "hash": "sha256-g4QRJujC/1YDgoLd78IA97rHDrYHpWqXEVX0L1q4VrA="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kmix-24.05.0.tar.xz",
+    "hash": "sha256-gpar79OJg9jOAUsT2Jx1K8Z2gXsurti65EmzibAzgpU="
   },
   "kmousetool": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kmousetool-24.02.2.tar.xz",
-    "hash": "sha256-Wja9ym8V1IPVZ8sW0Fu6CF8w2pNvX/3ONR95vj5DnEM="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kmousetool-24.05.0.tar.xz",
+    "hash": "sha256-+E9rHlbuJi8/do5XV6S3Yj6/P8ZkhqCpGlwYYX92n9w="
   },
   "kmouth": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kmouth-24.02.2.tar.xz",
-    "hash": "sha256-XcgN2soQftHjqmTjn14cBDiIoWaCzW/U5PSRyu4MxJI="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kmouth-24.05.0.tar.xz",
+    "hash": "sha256-IFgIHEbjQVeYk53NDKa5SYk6p15U38h7YVPHME6xXsw="
   },
   "kmplot": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kmplot-24.02.2.tar.xz",
-    "hash": "sha256-HzUY0azJytTeSWEFYS7l5r0+gYWYTWDValfnRptQAoI="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kmplot-24.05.0.tar.xz",
+    "hash": "sha256-NA9k/1BLJGhRpAmYhnV7uVllgfcauOpGDlOGFVhWl2A="
   },
   "knavalbattle": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/knavalbattle-24.02.2.tar.xz",
-    "hash": "sha256-uXiV2i2mnzCaB+o9LM8Iu7CF2cocpTjDVG74AtJPh6E="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/knavalbattle-24.05.0.tar.xz",
+    "hash": "sha256-G6rWWotIeuvgJG/TL6RcxNXVTMpx079dB2jtc5pSvRk="
   },
   "knetwalk": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/knetwalk-24.02.2.tar.xz",
-    "hash": "sha256-omYtJDKvpqMD2cu8Xqh4U2HVU6ZRvJcyaktTnKydyzE="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/knetwalk-24.05.0.tar.xz",
+    "hash": "sha256-EAz+GY24XllxC65I0DTp79QccDThGchmoWNcbf2Uphg="
   },
   "knights": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/knights-24.02.2.tar.xz",
-    "hash": "sha256-D+yDyGK0jYkP39vgTvM35ohV2NxSvouhuZ0wsW8Z4P4="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/knights-24.05.0.tar.xz",
+    "hash": "sha256-7ZBhn3njRM62EA/Z1wb4WL2rC4nZqoAg7JXJGA1gSvI="
   },
   "knotes": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/knotes-24.02.2.tar.xz",
-    "hash": "sha256-kKszYhuQD2kWxIZItIF85GhObcyOWxmVVUt+JXSInHM="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/knotes-24.05.0.tar.xz",
+    "hash": "sha256-QyQIQq6CA7WqZ6HRNcaAx95M+nQVmcTLjlt0ghk0W/c="
   },
   "koko": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/koko-24.02.2.tar.xz",
-    "hash": "sha256-c2SD1NLraPGvoK0YKr2JcwSVcJgjytn9cngE4fSFMVg="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/koko-24.05.0.tar.xz",
+    "hash": "sha256-gDebUdHD61vs3h0DJjwk/K6Y1NLoi4ttBXypz+sQqbk="
   },
   "kolf": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kolf-24.02.2.tar.xz",
-    "hash": "sha256-Cyy/w7UJwJMFwCGf8mZ6EM7uXozqIvUbwLqf/Tei61E="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kolf-24.05.0.tar.xz",
+    "hash": "sha256-mAPSHv5KyirHktvNEz110tM5BXNK0GTDv4zNqgwQj6A="
   },
   "kollision": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kollision-24.02.2.tar.xz",
-    "hash": "sha256-pb3AEFqTAlfJgdiWv3cy0d+vnd3isEVsi0/l9Ccd7cg="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kollision-24.05.0.tar.xz",
+    "hash": "sha256-ww1wGsoFF1+1u8UYftTtaGpO+QDNBg/EFF4Yov8CG2s="
   },
   "kolourpaint": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kolourpaint-24.02.2.tar.xz",
-    "hash": "sha256-ABn+QdloID2+XGwBZoWOxTkV4tZ+AH7xZonkDtGbnoQ="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kolourpaint-24.05.0.tar.xz",
+    "hash": "sha256-ZJ5f1UnFSEaV/1Chltxg+fYcPeNUbv8LUuqfQin5IV4="
   },
   "kompare": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kompare-24.02.2.tar.xz",
-    "hash": "sha256-tASJrlYEAfUuUaMJpxqxEdVMTvJLMAbmsu8V1XXyh0E="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kompare-24.05.0.tar.xz",
+    "hash": "sha256-9v5g5rOtnhDetTcYFISBzhqDu//zKh7b4emCF5mKZ3A="
   },
   "kongress": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kongress-24.02.2.tar.xz",
-    "hash": "sha256-t21I/7esniEZCt/1Yvn5ejczDw/6n45FmVD2yFqP+Kw="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kongress-24.05.0.tar.xz",
+    "hash": "sha256-PGiHXZojhiGP0hQoHFPi8XrCd9Rn7DvnAJWVTh6+iME="
   },
   "konqueror": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/konqueror-24.02.2.tar.xz",
-    "hash": "sha256-Bk8fBm391PdP8cnkdXXIukfeR91tX13RhWUA702bxjI="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/konqueror-24.05.0.tar.xz",
+    "hash": "sha256-UIlCx5+2WgIxV83Ca7/MdFHFBvpfjNBu/rHanYJiJC0="
   },
   "konquest": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/konquest-24.02.2.tar.xz",
-    "hash": "sha256-41BXstbTrQ08J0CZ3Nk3Qwq0KlsHoYUuF+4oANM67Cw="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/konquest-24.05.0.tar.xz",
+    "hash": "sha256-mH7IjXvMHLUs6VoTGqnvrZuVP7JzmL3NJTTGRaQkhLc="
   },
   "konsole": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/konsole-24.02.2.tar.xz",
-    "hash": "sha256-ZkZ+M2U2199cErytMaPvCiFQxANR2HZ3BHpA6uRA7i8="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/konsole-24.05.0.tar.xz",
+    "hash": "sha256-U+/SXB1XREjbV/RG9CMyjH8vCIifZ978HtXHg8nvR/Q="
   },
   "kontact": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kontact-24.02.2.tar.xz",
-    "hash": "sha256-vXEUyrfFucXNNuxEgofIX2HZQySjNbIbO7+AJSDWH7Y="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kontact-24.05.0.tar.xz",
+    "hash": "sha256-GEo3RlWD1nh4JU3J4Z+/2Mv0m0Ub2GE6GhGCT56/EKY="
   },
   "kontactinterface": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kontactinterface-24.02.2.tar.xz",
-    "hash": "sha256-cg4U708BtnCQvNfHQHYBa/GTdrC2woEK4eQ1Tk1la7E="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kontactinterface-24.05.0.tar.xz",
+    "hash": "sha256-PaCF7y25d/IUp179Qm1K8GXwumAqGkzVAeBquNUTs7A="
   },
   "kontrast": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kontrast-24.02.2.tar.xz",
-    "hash": "sha256-C2etCsl1TVS2ycSSoB2f2JMq3XGY7DIVY2mBCiWlutc="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kontrast-24.05.0.tar.xz",
+    "hash": "sha256-YYvQLhS8kkHjt7p7W6oGU7PMvZVFzYSYIEAtdvmJSNk="
   },
   "konversation": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/konversation-24.02.2.tar.xz",
-    "hash": "sha256-uBZ7BUZbDEt8ukJjarW0DrzNmPCIkjRR00sDn/sV4kk="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/konversation-24.05.0.tar.xz",
+    "hash": "sha256-845Wu1uZ09FYcOzzlBkDGGLmeBzRYmbcM2JUNBJLH5s="
   },
   "kopeninghours": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kopeninghours-24.02.2.tar.xz",
-    "hash": "sha256-yty1NgsYW6Zt4hOBpvlpCmhItL/mC/QMKvvW1QlWcIQ="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kopeninghours-24.05.0.tar.xz",
+    "hash": "sha256-ysxgl9jm3N/DPoDuQUimjJfeLsARbH9H74l4AfFxUfs="
   },
   "korganizer": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/korganizer-24.02.2.tar.xz",
-    "hash": "sha256-N0osNS9MZF9e/xXTsWWnpZZkdTe1lsHu5J3tITQXBBc="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/korganizer-24.05.0.tar.xz",
+    "hash": "sha256-4SpL40G6Mi1mboRtOBTvtlj7jDWai/ibSDaeuAOTCtc="
   },
   "kosmindoormap": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kosmindoormap-24.02.2.tar.xz",
-    "hash": "sha256-+TM+Woo8aWp+tMNH4lrqnaVQyVeoGfLA9cgkYcLnLhQ="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kosmindoormap-24.05.0.tar.xz",
+    "hash": "sha256-85lf2Jm3D3C8/yLZFZbUFDA0c86v4kqk6NBbBDbvxTY="
   },
   "kpat": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kpat-24.02.2.tar.xz",
-    "hash": "sha256-+5+beBUHIL/s1GT0RTHxAeOmzd/jcDLjkrco+CGkFVo="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kpat-24.05.0.tar.xz",
+    "hash": "sha256-tKtW3jq3xPpnc3OdPdm8yqlMpWM6bC8sP7VOZjSPdno="
   },
   "kpimtextedit": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kpimtextedit-24.02.2.tar.xz",
-    "hash": "sha256-Vzi9SEiOrwOHCkZGsQkdYjjXQh4saTyFPCBeGpy+ECA="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kpimtextedit-24.05.0.tar.xz",
+    "hash": "sha256-kJGtdDMt27mINyU8fVvmMZriXrCpmigmgv2+mRiCRJs="
   },
   "kpkpass": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kpkpass-24.02.2.tar.xz",
-    "hash": "sha256-V5dueLjQwPXipAHLm9RMmGNC9O2yWJeOa9om+eyjJa8="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kpkpass-24.05.0.tar.xz",
+    "hash": "sha256-s3DcESUH2/hwM9WgSRS+6unmU4IDdP0bSLR29GfYrSg="
   },
   "kpmcore": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kpmcore-24.02.2.tar.xz",
-    "hash": "sha256-KdOQmtXLv6HlvXcsl75IJUB65uXv61pt3uWwBcmWVL8="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kpmcore-24.05.0.tar.xz",
+    "hash": "sha256-CQYrDEGvApQ36MpOpPGrLRzGK/ZqzQMA7nBOSEI4Ej4="
   },
   "kpublictransport": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kpublictransport-24.02.2.tar.xz",
-    "hash": "sha256-fZOd/G7PrXX263sjS2Txq29S/A6Yi6XmZi6VxS4auyY="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kpublictransport-24.05.0.tar.xz",
+    "hash": "sha256-qaJa0zmKLckou2mt0ZR8g51zzo4AlXt7vWuYVHf0N7s="
   },
   "kqtquickcharts": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kqtquickcharts-24.02.2.tar.xz",
-    "hash": "sha256-L0mAg8QmnGk/+/wweS2hQ4PGMfm52Q+rRK7HaLdI1b8="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kqtquickcharts-24.05.0.tar.xz",
+    "hash": "sha256-Hkj2aE59uzISQJJzx1vquVBUtGaYZlovoetTksOgVM4="
   },
   "krdc": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/krdc-24.02.2.tar.xz",
-    "hash": "sha256-qk6HhkgNzLWEBTL+jJGIiBQ32MpZqYz/z/ZoXlV5r/k="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/krdc-24.05.0.tar.xz",
+    "hash": "sha256-TOTSVSDU3BN73qfZnNjm/m6itFc4nbX6ZZAs5sJw3nI="
   },
   "krecorder": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/krecorder-24.02.2.tar.xz",
-    "hash": "sha256-CYK209/BEP6UaOZ/0VfwNoOq5CQ7bqAddKGZQ8a8gtI="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/krecorder-24.05.0.tar.xz",
+    "hash": "sha256-OTUviqOAq671zpPPnDtO8+Nd/6ac64JAkeQti/cTjzI="
   },
   "kreversi": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kreversi-24.02.2.tar.xz",
-    "hash": "sha256-0cBXOF7xZ9NcBQ0ARNCsxA2l2f5McwA0OG94+er4vLQ="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kreversi-24.05.0.tar.xz",
+    "hash": "sha256-Gz3gNEO+K2KkKB/mtngcWUqp9C9yUismwP+/C2Tj30s="
   },
   "krfb": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/krfb-24.02.2.tar.xz",
-    "hash": "sha256-z5Lfx4Z+M2BHV6Wf+NKIaTu/X7sM8Lw3nD+XXQ5OmOQ="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/krfb-24.05.0.tar.xz",
+    "hash": "sha256-qo9ygdOj5Eq34gh7flZ+P+0SXkXTVQnAOor71O4N2pU="
   },
   "kross-interpreters": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kross-interpreters-24.02.2.tar.xz",
-    "hash": "sha256-9qWZL9xdSEw1jzrNMBiQAlOmgmPYm0wzvoU1SYFOhrs="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kross-interpreters-24.05.0.tar.xz",
+    "hash": "sha256-kYa0N+H83S7pzINYbHMqOTDVX/79OSqrQfjUPJ34kfk="
   },
   "kruler": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kruler-24.02.2.tar.xz",
-    "hash": "sha256-EkTdt+ynfPWpVQEdGRaYYBb/8SsJNn+6Bd6b6EGVRQQ="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kruler-24.05.0.tar.xz",
+    "hash": "sha256-UyP+7wC3eodUt+aKDemcUWBAg0/3+NYm4FG2oOFJCks="
   },
   "ksanecore": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ksanecore-24.02.2.tar.xz",
-    "hash": "sha256-GGNiZAlbtW7mQYW0GJ1+oU8zpp45K4GLuw3m/8G7gXA="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/ksanecore-24.05.0.tar.xz",
+    "hash": "sha256-yk+AubfXwmSD0+vXJ5p/aw4I0XyUGd3gYXgLO/vBFb0="
   },
   "kshisen": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kshisen-24.02.2.tar.xz",
-    "hash": "sha256-/BPyAKjRTfLOWX80E82Ar6NHSvArARE9+jB0hnjRHFQ="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kshisen-24.05.0.tar.xz",
+    "hash": "sha256-Bnks4NGuNmaSkUV2oerRh6bEUujPT8Ab6s0kAuSEoE4="
   },
   "ksirk": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ksirk-24.02.2.tar.xz",
-    "hash": "sha256-n78THAngDNSQJV93n2a3HzEtMxpaBrk9Jj6x2J53EcI="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/ksirk-24.05.0.tar.xz",
+    "hash": "sha256-iGPsBTZqd1Tzp5mtYZdWzBe7lW9P73/TPXPOYIRVfxw="
   },
   "ksmtp": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ksmtp-24.02.2.tar.xz",
-    "hash": "sha256-tSLg5bcoh3fM71oVUCdueC+k1N4NTf1w86zOS3d4NZg="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/ksmtp-24.05.0.tar.xz",
+    "hash": "sha256-Bqz7OXsq1bO3sxdav2WzLEnVbVwUyQ7CkOybAaVZ1S8="
   },
   "ksnakeduel": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ksnakeduel-24.02.2.tar.xz",
-    "hash": "sha256-QLUOa6+y1mK2tMXGzshFDylv+7FR/9rzcSAgLyxZ0wE="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/ksnakeduel-24.05.0.tar.xz",
+    "hash": "sha256-F6oni0hi6k0hnD3njsgn3sBYzK6yAm7iMXpQtm5NPNc="
   },
   "kspaceduel": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kspaceduel-24.02.2.tar.xz",
-    "hash": "sha256-gNE4hXZinXdyYsq5Tjb0UX1B811FJgO5H6CM1oEqU64="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kspaceduel-24.05.0.tar.xz",
+    "hash": "sha256-AbodAsJGZUmcKMePZJT5rdvQphw5QuNrdX558pAw2Js="
   },
   "ksquares": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ksquares-24.02.2.tar.xz",
-    "hash": "sha256-nkiDNK/O4vyWvobTmk3a1rao62o9oVRXuSB4AzP0MKo="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/ksquares-24.05.0.tar.xz",
+    "hash": "sha256-zNEFC9m8HwKz/lUPwBLvXra/FMJaELn3BSwnOMIjfjI="
   },
   "ksudoku": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ksudoku-24.02.2.tar.xz",
-    "hash": "sha256-ICmFLSFllJ80uRKQJwRhPF1sRxxARhtkKMra9SmMSBY="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/ksudoku-24.05.0.tar.xz",
+    "hash": "sha256-Ssd4rBLpX+tarMn94yP5QFjoulx7SWrb1i9RjBLExFM="
   },
   "ksystemlog": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ksystemlog-24.02.2.tar.xz",
-    "hash": "sha256-25Y7u7lMO3tfgTpTLwceyBoTvyt1ocfO1//yNB7rSjM="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/ksystemlog-24.05.0.tar.xz",
+    "hash": "sha256-tdvwuyGNw5J8TYhWJbviIn9P92qDQY0I2q0OQOTXcEo="
   },
   "kteatime": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kteatime-24.02.2.tar.xz",
-    "hash": "sha256-3L1mdrKqCyElAot9Y52nLNDi/BY9r6D3Hu+Nj/+lfZI="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kteatime-24.05.0.tar.xz",
+    "hash": "sha256-h5DVfxzO+iEBGhCICrLsDwqmZIi98USs2MGK1LdL20A="
   },
   "ktimer": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ktimer-24.02.2.tar.xz",
-    "hash": "sha256-SHKwC7OiqM1q9Gf2M0zP0Ely0AexRFmB8PsU162sCUI="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/ktimer-24.05.0.tar.xz",
+    "hash": "sha256-vsDaZ8NVdARMdOJ6mLpfpzCpLbhB35WPex6NrDgS6CA="
   },
   "ktnef": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ktnef-24.02.2.tar.xz",
-    "hash": "sha256-dMjcjurpj4/cZSlOPXdQKfGu9Kwm9AbIghk4F/bPnR4="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/ktnef-24.05.0.tar.xz",
+    "hash": "sha256-hthFFgwqWb7xkfCsNeEWMOkhI578bG/vmOpUD3TuB6o="
   },
   "ktorrent": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ktorrent-24.02.2.tar.xz",
-    "hash": "sha256-AYPGM+NQOG8xwudjsJSM2GYskQLIcX3S3mxPoAQs39k="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/ktorrent-24.05.0.tar.xz",
+    "hash": "sha256-U/foycDFku4s4Chs2jtXmhJPl5BXrjsKrNwT4m6Uoak="
   },
   "ktouch": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ktouch-24.02.2.tar.xz",
-    "hash": "sha256-U5EPl243QbL8++IzpVgvasyuUODiXxLV/bf+UxFNSOo="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/ktouch-24.05.0.tar.xz",
+    "hash": "sha256-dWDoCiH1ysTGgKoxT3wA0NjLbBwpLE23g5k1Ezid0WI="
   },
   "ktrip": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ktrip-24.02.2.tar.xz",
-    "hash": "sha256-CLaGGqmooL9GEWDoH+Udxp1kjZLldbzYLtyp3sS+sR4="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/ktrip-24.05.0.tar.xz",
+    "hash": "sha256-G0PVf+3CsBPJGgoh5EqJllrNYRrRGZfyQxQmTu9xmn0="
   },
   "ktuberling": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/ktuberling-24.02.2.tar.xz",
-    "hash": "sha256-6/cMKUOL5DEHM6nUwqgi0uWFvQGlkkyZ3CgSlWUASzU="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/ktuberling-24.05.0.tar.xz",
+    "hash": "sha256-IIDcX+cy9eLk0mDrg9oFcCrB2Uaqv74F2oUjoMqP/ME="
   },
   "kturtle": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kturtle-24.02.2.tar.xz",
-    "hash": "sha256-BPE208EdQqWdNW4YU5KOwob42BHlJMwk2ae3E7j05hs="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kturtle-24.05.0.tar.xz",
+    "hash": "sha256-ZIXknLSbrtk1/DxBK2fGgdVaHhVsplj7wK6hqCY3PnQ="
   },
   "kubrick": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kubrick-24.02.2.tar.xz",
-    "hash": "sha256-x4BOcm7XD1V1/S8QeFv7WbfcZ8xe4dImHrKKWxS/PrE="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kubrick-24.05.0.tar.xz",
+    "hash": "sha256-4sBSE0NSMXRr9UYoJ+ogfKy8IGZlNdd+G2ikvOXrP20="
   },
   "kwalletmanager": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kwalletmanager-24.02.2.tar.xz",
-    "hash": "sha256-C2M4X59JMq8AQX6x6yhUje3MBQaREwS/LjRHmsD5t3M="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kwalletmanager-24.05.0.tar.xz",
+    "hash": "sha256-qqx/43iCS13dcxtGoxQyrLtC880IC4yYMDA6UnYkZqI="
   },
   "kwave": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kwave-24.02.2.tar.xz",
-    "hash": "sha256-qi0Qdp26bNQ/qqme+binWIF3IifIaNfeUpM8zZHNkmw="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kwave-24.05.0.tar.xz",
+    "hash": "sha256-pntIYFZ9Yb4lFMeAZBdH6ohNT0Tduggim4TC3VeQ5DQ="
   },
   "kweather": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kweather-24.02.2.tar.xz",
-    "hash": "sha256-iXvKld4QqZ0yxt+xyZIioK38FIR29Owr6C7GKCjcamI="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kweather-24.05.0.tar.xz",
+    "hash": "sha256-+v863UAF0EwziEeum3obwuXG1fRbb1qW7IBtqRueS74="
   },
   "kwordquiz": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/kwordquiz-24.02.2.tar.xz",
-    "hash": "sha256-4yGwfUHHdHXCmZRA+MxLKRv0Xuu0O4iGqpRCReGuuuc="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/kwordquiz-24.05.0.tar.xz",
+    "hash": "sha256-akh5t53uOQoB9BoUzA5QQn2DojDZdzreSt+vmkdANY0="
   },
   "libgravatar": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libgravatar-24.02.2.tar.xz",
-    "hash": "sha256-t99V8Jsy3P5mjlSccay6d81iCXoYcTsxEr79b0o+UoU="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/libgravatar-24.05.0.tar.xz",
+    "hash": "sha256-U8RZknoAtFBKA2hKbwaw+AHGbzGw9yAs5k19kFl39Ps="
   },
   "libkcddb": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libkcddb-24.02.2.tar.xz",
-    "hash": "sha256-YIqiEBvev4rhwjz5nPyYLE5jSUWpGzv0SZD4bgGp1cE="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/libkcddb-24.05.0.tar.xz",
+    "hash": "sha256-KnuEQNrXYN0EvsxvunA0Q2SOxK3xz0PRwfKKSVUGd2s="
   },
   "libkcompactdisc": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libkcompactdisc-24.02.2.tar.xz",
-    "hash": "sha256-2jbvjdAukuQUMHu9NCpQLQ6StaqSrh4ktsXT8eGvC24="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/libkcompactdisc-24.05.0.tar.xz",
+    "hash": "sha256-wsYQ0/ggwk1Sq5iNR/pESEqczqzlu99BV1mBMj5hM2Y="
   },
   "libkdcraw": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libkdcraw-24.02.2.tar.xz",
-    "hash": "sha256-fGtMsK+RCFf9vtTb+6b8xa7iaqMZk+6rMhm3NDwxktY="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/libkdcraw-24.05.0.tar.xz",
+    "hash": "sha256-U3bdRq0ho0WnOckSlRDzzYvkazr5WOS3IuaoFkmneIk="
   },
   "libkdegames": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libkdegames-24.02.2.tar.xz",
-    "hash": "sha256-PGv3c2cORQm7xxYEvwoUkQ0HZDQyahV1bTxHsfWufhk="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/libkdegames-24.05.0.tar.xz",
+    "hash": "sha256-jLs7v7zE6cX9Fcth/1Qt4XwfWmaEB6lQ1HoxHqDdfuQ="
   },
   "libkdepim": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libkdepim-24.02.2.tar.xz",
-    "hash": "sha256-OwgxUW3mLSVIjpJ/x9mHSvsVke+99B3smQMJ9iJmdMA="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/libkdepim-24.05.0.tar.xz",
+    "hash": "sha256-Yv7fUMmSlvsHbJ9OoNkHIoo/kSyPknxFkVbLXIlQuoo="
   },
   "libkeduvocdocument": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libkeduvocdocument-24.02.2.tar.xz",
-    "hash": "sha256-yvv+gkMvpOIGkE5+4AikFYwrp1UTTeO0X6JKQ+s8XO4="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/libkeduvocdocument-24.05.0.tar.xz",
+    "hash": "sha256-+oVNfb8xSJX0LLH37hFKlF73Y8X4o/MtOAT49kf6t/I="
   },
   "libkexiv2": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libkexiv2-24.02.2.tar.xz",
-    "hash": "sha256-rmAib0iTlLI5FApCZqLbRwoLzBptd7A8ca4ePu/zCNw="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/libkexiv2-24.05.0.tar.xz",
+    "hash": "sha256-DO7WiuF8wiXJFddOe2fnfXkS1WYTwKhCz+AN0X0FTXQ="
   },
   "libkgapi": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libkgapi-24.02.2.tar.xz",
-    "hash": "sha256-xDyEBSWDgMs8ZrkehZptmhlJUl0r5zHXA+ofS37DZ8A="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/libkgapi-24.05.0.tar.xz",
+    "hash": "sha256-2Hi4UhqoMnb4gH+Xz6WzB5iKYJTOwFVhR/rKWukXOYE="
   },
   "libkipi": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libkipi-24.02.2.tar.xz",
-    "hash": "sha256-my4K50w3dmNhOUboLdTmM3T75SMYYyFm2hC19l1jAlw="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/libkipi-24.05.0.tar.xz",
+    "hash": "sha256-k1qhwNpc7EiLewh6Z93jL98UgKdJLEzE/Aj+wXslEcM="
   },
   "libkleo": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libkleo-24.02.2.tar.xz",
-    "hash": "sha256-L+OtUASsm0JhYTjvL8DSGyYoIZLQ14YY4SsGpfpz9Jk="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/libkleo-24.05.0.tar.xz",
+    "hash": "sha256-PQn6J80PagQQdk2xIH51e3IWueavObyhozDOE3jhZs8="
   },
   "libkmahjongg": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libkmahjongg-24.02.2.tar.xz",
-    "hash": "sha256-IiTZXCofO+Zw8FF/3tD14lxQ5JgnTN/gFz09GyXAU3w="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/libkmahjongg-24.05.0.tar.xz",
+    "hash": "sha256-ldNWTua+yzgfSYRMCkfB9ntMnXVTB68E/24J69zqfS0="
   },
   "libkomparediff2": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libkomparediff2-24.02.2.tar.xz",
-    "hash": "sha256-32BysV5/yG+oYpg4L7MyrNRi7MWnKuQF/vdNXR3SctE="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/libkomparediff2-24.05.0.tar.xz",
+    "hash": "sha256-IroodwLcRIs8n0V6tgxuTL9o+1Qc2DpnvSh6oFcyMA4="
   },
   "libksane": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libksane-24.02.2.tar.xz",
-    "hash": "sha256-L/x/3blT7w+cOOssK/QC3g+VIMNULTJH97XBnuGF2P8="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/libksane-24.05.0.tar.xz",
+    "hash": "sha256-5zxvGmWuQNrs2ZTCmq4Oh5uYMvAHg+oimlyJcGkXEcg="
   },
   "libksieve": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libksieve-24.02.2.tar.xz",
-    "hash": "sha256-nQQKSswYDcBAsrM/wOFL3baPfvwq17PVVNyQM+xDZfI="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/libksieve-24.05.0.tar.xz",
+    "hash": "sha256-VS4FpqEytxp4vLWoHM69gpudWc6k4J5D9IBdl9+Sy0M="
   },
   "libktorrent": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/libktorrent-24.02.2.tar.xz",
-    "hash": "sha256-ARbg//48qtlPryDnQMqyWBRSFYwuhCoEFMrMZaNOeGE="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/libktorrent-24.05.0.tar.xz",
+    "hash": "sha256-c2E+uc+P2xv/Dd85d2mIcTI0T36wVv9BJ8MH8axAj4E="
   },
   "lokalize": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/lokalize-24.02.2.tar.xz",
-    "hash": "sha256-4ZuoMUr2N7yVc/mkAKqpLxNtvffzaH8bkg4NynHpr3w="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/lokalize-24.05.0.tar.xz",
+    "hash": "sha256-Enb4o2klXbFvLQHJs3i9k8LWaA+j9Sn8WkSJrMqtJK0="
   },
   "lskat": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/lskat-24.02.2.tar.xz",
-    "hash": "sha256-U/lZYMyrYyV5NGX/09W/kOnnT4xoqp77manwFci2J10="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/lskat-24.05.0.tar.xz",
+    "hash": "sha256-kx+A+ePLPGUaB0w3oknEGTpk096GJbs90P6CyKNw/eg="
   },
   "mailcommon": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/mailcommon-24.02.2.tar.xz",
-    "hash": "sha256-0uZCGDg3a1PX/KmqBmMIOzuU8CCesvxWAa1hK+5CFgQ="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/mailcommon-24.05.0.tar.xz",
+    "hash": "sha256-4Td+R9b5xgJrQyG4BgOb/fnMSqGQzxwzWTCx0BoUPoM="
   },
   "mailimporter": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/mailimporter-24.02.2.tar.xz",
-    "hash": "sha256-YoC+/T5OZqjpgupixj4tGZ35ppjbPw3s5SaYp7lbEAY="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/mailimporter-24.05.0.tar.xz",
+    "hash": "sha256-KdZwH2g6JHhmtZSQ6yYFVEq+hdeZU9zPP/KDhjVtP0w="
   },
   "marble": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/marble-24.02.2.tar.xz",
-    "hash": "sha256-idduAigL9MkhVVo4Pdl0n5GlNvX4MSTtdytvN59mS+U="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/marble-24.05.0.tar.xz",
+    "hash": "sha256-4XoqCHzaQgPYWNDLrlTdTI0SOAFK+k5TL7gNvj8bqaY="
   },
   "markdownpart": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/markdownpart-24.02.2.tar.xz",
-    "hash": "sha256-QcVLhmJ3V42hxecYENrnUPU2N2QKFL9Rhf9tPK7T/vQ="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/markdownpart-24.05.0.tar.xz",
+    "hash": "sha256-P0F2889BsV/O0lHuchHqz0t4Y+iczOOnkyKRJKMWKqM="
   },
   "mbox-importer": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/mbox-importer-24.02.2.tar.xz",
-    "hash": "sha256-aJHBZE5pNTYVLdfVpM5fdicX/Ab6xWNtfnfJzJHg12c="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/mbox-importer-24.05.0.tar.xz",
+    "hash": "sha256-fxZ8kBnKmf8cWnTIFkszbz3KROKA9c2g7g7vxTagkUk="
   },
   "merkuro": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/merkuro-24.02.2.tar.xz",
-    "hash": "sha256-Gvy3GGOYog7LJqg+ADOFKn+CwQwdIaykO5KE8VLdBjs="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/merkuro-24.05.0.tar.xz",
+    "hash": "sha256-62MuWhger9fwcSUxsazK91XYHIDrm/j+3YxZ/UMFyuI="
   },
   "messagelib": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/messagelib-24.02.2.tar.xz",
-    "hash": "sha256-Ix2aemO2AYO9V60dNyWQ9FZUlniopKqx+Oaw2ET+7F0="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/messagelib-24.05.0.tar.xz",
+    "hash": "sha256-wOoDA9OfAW+sOaiomp7XT9j0kVeZl945MlNCvQwSzcE="
   },
   "mimetreeparser": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/mimetreeparser-24.02.2.tar.xz",
-    "hash": "sha256-G6iK0f9ESjLC6RlcHJF8HVFqi54DLkm36BAhs4QdPe0="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/mimetreeparser-24.05.0.tar.xz",
+    "hash": "sha256-CUAOSsnLWQkGxaCnGWub6N69EvZW8f+EVTe7RHwEdV4="
   },
   "minuet": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/minuet-24.02.2.tar.xz",
-    "hash": "sha256-RSpwnDV9Ro8kIRbuNfFiZqy3+mYKPWT3ThadoVjEFHU="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/minuet-24.05.0.tar.xz",
+    "hash": "sha256-QRR35LK6+/eBVrb5QEqGdTNKcWr0PHczIKzGZPV3Njo="
   },
   "neochat": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/neochat-24.02.2.tar.xz",
-    "hash": "sha256-ttzo+WvhK6sNdiaU9QxJzqGNYVXh5GVJ8L+XBG8EdB4="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/neochat-24.05.0.tar.xz",
+    "hash": "sha256-kA7O70X1eM2HytkrRzbYblwYHF+TMKb3eVb9KmQj0bE="
   },
   "okular": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/okular-24.02.2.tar.xz",
-    "hash": "sha256-Qx02tyvsOVS1P2Jf+FB0Dp3/AIewO8e3FpnKRq7vBN4="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/okular-24.05.0.tar.xz",
+    "hash": "sha256-bzIveN4qoKQHk1H+RlHAgL2Y0n7rf53MN3ZScbSjrIA="
   },
   "palapeli": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/palapeli-24.02.2.tar.xz",
-    "hash": "sha256-0sV6qCFP5+SzuuO60XEup+101nUV4QqjvuEJwB90fK0="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/palapeli-24.05.0.tar.xz",
+    "hash": "sha256-XlfWhWUntYONFmC92pBddhIoSdOTijHHG3J0j3jSeXw="
   },
   "parley": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/parley-24.02.2.tar.xz",
-    "hash": "sha256-uU48aURlDTvxGKv7xAK2u+VQGYfn+EHCdH6hEwkRGHo="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/parley-24.05.0.tar.xz",
+    "hash": "sha256-PKGy4dkjtq58NhV3pMXkgf8ZaA9NVStLHi8ZBbTFF2A="
   },
   "partitionmanager": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/partitionmanager-24.02.2.tar.xz",
-    "hash": "sha256-AstyAIyv3JnbV0LaoN9jS26gfc7z+kQKJD5WKKk49Qk="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/partitionmanager-24.05.0.tar.xz",
+    "hash": "sha256-aC8DAiE9lbYoBkImz8ztaqKZvIG37Uam5wXoEQMfumY="
   },
   "picmi": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/picmi-24.02.2.tar.xz",
-    "hash": "sha256-z25UFcpfH2VV0jHY8EFja34KdI1MFDqbbrvFc5E9IY0="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/picmi-24.05.0.tar.xz",
+    "hash": "sha256-9j57xfJy66hNrOcTCOhtlhT/bhCQyuThol1gGSYpJPc="
   },
   "pimcommon": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/pimcommon-24.02.2.tar.xz",
-    "hash": "sha256-RkDcJ2+aDmsMJeJYFdc7fMZYyNc91QTSlelqWDon13A="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/pimcommon-24.05.0.tar.xz",
+    "hash": "sha256-YuWnQdCFYysgY4KCoE4szSqsqIfDYOIkRLXcux+WHB8="
   },
   "pim-data-exporter": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/pim-data-exporter-24.02.2.tar.xz",
-    "hash": "sha256-DhLQWrX6E+idNjSbDXrtHH0yX/dLSAsCXtoHa5CmEH8="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/pim-data-exporter-24.05.0.tar.xz",
+    "hash": "sha256-5sWx1etc8CT7NpL6JPl4rE9MS9vg89D8I0/OjCRp8us="
   },
   "pim-sieve-editor": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/pim-sieve-editor-24.02.2.tar.xz",
-    "hash": "sha256-yDZmqQPZKsTDdxzlWV+LuiHJwYVcuD9z6urg2Hu2fHg="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/pim-sieve-editor-24.05.0.tar.xz",
+    "hash": "sha256-D8AMmlMamZjwMajmUXw7mnV3sTn0Ch7T9Mijb2i3tU8="
   },
   "plasmatube": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/plasmatube-24.02.2.tar.xz",
-    "hash": "sha256-r4qz1B0pArFnBcgrj0yidM8UVSDe7HR/i/tG5rTDOds="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/plasmatube-24.05.0.tar.xz",
+    "hash": "sha256-MSG73rDjj4j4bw4Hz0fHuIuCE73B9XSJo33SeSjBEcE="
   },
   "poxml": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/poxml-24.02.2.tar.xz",
-    "hash": "sha256-pWtION445HNcSuKDMWnL88lH8JPD6MDWISR/X5NqymU="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/poxml-24.05.0.tar.xz",
+    "hash": "sha256-JyCI4b7NhP8LCQSje/8ADYuFqvJP+m717wTy8OnjSAI="
   },
   "qmlkonsole": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/qmlkonsole-24.02.2.tar.xz",
-    "hash": "sha256-zoGK52uRhbhEilGF8zCddqhejaWs9O6Iw8nEC4E8kVE="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/qmlkonsole-24.05.0.tar.xz",
+    "hash": "sha256-TjFF/dst8SF5Oo9Sw1WQqWh1n2EaeY2PRKndoB0dQkI="
   },
   "rocs": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/rocs-24.02.2.tar.xz",
-    "hash": "sha256-RKFjEH3xK1J0P0axjz4ZD+YqmwSQLTxEHdIDJzbEgws="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/rocs-24.05.0.tar.xz",
+    "hash": "sha256-g0aIUZokMLnjZ8ONfm1cY2SgUFlE0OV01RMApyuTkUA="
   },
   "signon-kwallet-extension": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/signon-kwallet-extension-24.02.2.tar.xz",
-    "hash": "sha256-NzJ14jnYh9WO1FAsLsBBexyhR1fpe8aCfcBjMyKpduI="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/signon-kwallet-extension-24.05.0.tar.xz",
+    "hash": "sha256-si4GLHPeP4cHwI25OIQV4nxAwF5w9SWMS1/t0E7Yr8c="
   },
   "skanlite": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/skanlite-24.02.2.tar.xz",
-    "hash": "sha256-2avHcXkLtVWM195kU5d3QNaNnTCeTulj0qHCon/XY8A="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/skanlite-24.05.0.tar.xz",
+    "hash": "sha256-pu97eo60pg7fpfyzkrgn9JA4nqA2TtaTYPaccj1rP8w="
   },
   "skanpage": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/skanpage-24.02.2.tar.xz",
-    "hash": "sha256-pzYf6EbnjdrAKQ2Va08AM3S7s1SURtRahKYvP2pXMdo="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/skanpage-24.05.0.tar.xz",
+    "hash": "sha256-LHQeX0dvcBPoMvmWt5p07uyiW1bpLRUs7MXe2F1IO2E="
+  },
+  "skladnik": {
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/skladnik-24.05.0.tar.xz",
+    "hash": "sha256-wilw2+3JhVGV8H6H5VQIPNADTEFC03sgnN/0W5ZKev8="
   },
   "spectacle": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/spectacle-24.02.2.tar.xz",
-    "hash": "sha256-QRj3NV6wWE3rKojORuznthaIA5fwqyuBDL5MvCF0IVI="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/spectacle-24.05.0.tar.xz",
+    "hash": "sha256-3vKFHo2zzADqsIENmIAUsVuPI7R0uTKxzfPGFEMm1ao="
   },
   "step": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/step-24.02.2.tar.xz",
-    "hash": "sha256-KAp/Edl34wd4bnDDSiSdkHS7rdNpVlt1ZgbszPsMHsw="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/step-24.05.0.tar.xz",
+    "hash": "sha256-X0rorwWFTJzKQlaSXXeEpBU7koHsRCFB8pmmU8MgzMk="
   },
   "svgpart": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/svgpart-24.02.2.tar.xz",
-    "hash": "sha256-T4YPwUGYT++ySdgFB8g65nFxmCyFJUXzOV8/lyMQLig="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/svgpart-24.05.0.tar.xz",
+    "hash": "sha256-fQJDisOw2I5ZplPyMC0dvHolNc5ifUnrUKOjOFLbQtQ="
   },
   "sweeper": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/sweeper-24.02.2.tar.xz",
-    "hash": "sha256-E3VYgubBLoxXZVA1x+XzbQUsPAv8tAscBnvjuT99rd0="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/sweeper-24.05.0.tar.xz",
+    "hash": "sha256-aQHCD2D+86/dMrJWoGJVQZhCREfadgaXBht1wQQyVlY="
   },
   "telly-skout": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/telly-skout-24.02.2.tar.xz",
-    "hash": "sha256-Paq1Y+MXBylEky90HON3UIZ/5J8bFqu3DA7EoXPES6k="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/telly-skout-24.05.0.tar.xz",
+    "hash": "sha256-cKZ5kC2uPK90lA80JKDm0hnVDYsMbl3fnIz29/d+zh8="
   },
   "tokodon": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/tokodon-24.02.2.tar.xz",
-    "hash": "sha256-DKM7AnT+GHyReYg2N1Opth1NOYO2+F8r4rJEA/nGkzs="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/tokodon-24.05.0.tar.xz",
+    "hash": "sha256-V1zH08/m0otpOQtswgpPpUHTIM2M/ISvwZL+CU4dnuo="
   },
   "umbrello": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/umbrello-24.02.2.tar.xz",
-    "hash": "sha256-iS0Lv2KkpD3SLWH4IHqsASu+sg2DAbfnBRaw2VYXVCw="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/umbrello-24.05.0.tar.xz",
+    "hash": "sha256-5VStctZd8p3/sXLMaFEWejiUyyCo077wVO0niPwavro="
   },
   "yakuake": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/yakuake-24.02.2.tar.xz",
-    "hash": "sha256-5F7g0F8iVD/UVl5C6MsgtQIIYte7pvM+ZFAH/GDWRlk="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/yakuake-24.05.0.tar.xz",
+    "hash": "sha256-ETwtDuNUoSq2yjRp/mjAhiF2iNwu5oAzX//kx52a+6I="
   },
   "zanshin": {
-    "version": "24.02.2",
-    "url": "mirror://kde/stable/release-service/24.02.2/src/zanshin-24.02.2.tar.xz",
-    "hash": "sha256-S6kd+7DlivXsZPRpVjE1ZinwicIkG7ewxb3Bw7mqJ+E="
+    "version": "24.05.0",
+    "url": "mirror://kde/stable/release-service/24.05.0/src/zanshin-24.05.0.tar.xz",
+    "hash": "sha256-PSE+XCfIizH3x46EexclmfsyodhvFMmsCZE46nKyHho="
   }
 }
\ No newline at end of file
diff --git a/pkgs/kde/gear/kio-extras-kf5/default.nix b/pkgs/kde/misc/kio-extras-kf5/default.nix
index d92f7a61b8a27..886ae1a627771 100644
--- a/pkgs/kde/gear/kio-extras-kf5/default.nix
+++ b/pkgs/kde/misc/kio-extras-kf5/default.nix
@@ -1,6 +1,6 @@
 {
   stdenv,
-  sources,
+  fetchurl,
   kio-extras,
   cmake,
   libsForQt5,
@@ -14,11 +14,16 @@
   taglib,
   libappimage,
 }:
+# kio-extras-kf5 is kind of part of Gear, but also not released all the time,
+# so handle it separately.
 stdenv.mkDerivation rec {
   pname = "kio-extras-kf5";
-  inherit (sources.${pname}) version;
+  version = "24.02.2";
 
-  src = sources.${pname};
+  src = fetchurl {
+    url = "mirror://kde/stable/release-service/${version}/src/kio-extras-kf5-${version}.tar.xz";
+    hash = "sha256-qar1jzuALINBu6HOuVBU+RUFnqRH9Z/8e5M8ynGxKsk=";
+  };
 
   nativeBuildInputs = with libsForQt5; [
     cmake
diff --git a/pkgs/kde/misc/pulseaudio-qt/default.nix b/pkgs/kde/misc/pulseaudio-qt/default.nix
index 7f4ee4a39b410..d5a69da692ac7 100644
--- a/pkgs/kde/misc/pulseaudio-qt/default.nix
+++ b/pkgs/kde/misc/pulseaudio-qt/default.nix
@@ -7,11 +7,11 @@
 }:
 mkKdeDerivation rec {
   pname = "pulseaudio-qt";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchurl {
     url = "mirror://kde/stable/pulseaudio-qt/pulseaudio-qt-${version}.tar.xz";
-    hash = "sha256-2MpiTs8hMIVrhZz5NBF39v74xR8g93KNgH0JxxUO0GU=";
+    hash = "sha256-zY9RyHAAc9D9kNV4QIOs63PnK6mnBOYF4KZ5CUJqhSA=";
   };
 
   extraNativeBuildInputs = [pkg-config];
diff --git a/pkgs/misc/autotiling/default.nix b/pkgs/misc/autotiling/default.nix
index 13b834dcbda41..41131cbb916bd 100644
--- a/pkgs/misc/autotiling/default.nix
+++ b/pkgs/misc/autotiling/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonApplication rec {
   pname = "autotiling";
-  version = "1.9.2";
+  version = "1.9.3";
 
   src = fetchFromGitHub {
     owner = "nwg-piotr";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-u+Tvvge/rQvylbZDmCxvoMGjZm2gKsFZEAb9evR/Ckw=";
+    hash = "sha256-k+UiAGMB/fJiE+C737yGdyTpER1ciZrMkZezkcn/4yk=";
   };
 
   propagatedBuildInputs = [ i3ipc importlib-metadata ];
diff --git a/pkgs/misc/cups/default.nix b/pkgs/misc/cups/default.nix
index c8df29776db95..8fae49e38ff54 100644
--- a/pkgs/misc/cups/default.nix
+++ b/pkgs/misc/cups/default.nix
@@ -23,11 +23,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cups";
-  version = "2.4.7";
+  version = "2.4.8";
 
   src = fetchurl {
     url = "https://github.com/OpenPrinting/cups/releases/download/v${version}/cups-${version}-source.tar.gz";
-    sha256 = "sha256-3VQijdkDUmQozn43lhr67SMK0xB4gUHadc66oINiz2w=";
+    sha256 = "sha256-dcMmtLpzl178yaJQeMSwTNtO4zPKqtDQgj29UixkeaA=";
   };
 
   outputs = [ "out" "lib" "dev" "man" ];
diff --git a/pkgs/misc/ghostscript/default.nix b/pkgs/misc/ghostscript/default.nix
index 1420290055cb5..8410f77d2c077 100644
--- a/pkgs/misc/ghostscript/default.nix
+++ b/pkgs/misc/ghostscript/default.nix
@@ -43,11 +43,11 @@ let
     srcs = [
       (fetchurl {
         url = "mirror://sourceforge/gs-fonts/ghostscript-fonts-std-8.11.tar.gz";
-        sha256 = "00f4l10xd826kak51wsmaz69szzm2wp8a41jasr4jblz25bg7dhf";
+        hash = "sha256-DrbzVhGfLkmyVjIQhS4X9X+dzFdV81Cmmkag1kGgxAE=";
       })
       (fetchurl {
         url = "mirror://gnu/ghostscript/gnu-gs-fonts-other-6.0.tar.gz";
-        sha256 = "1cxaah3r52qq152bbkiyj2f7dx1rf38vsihlhjmrvzlr8v6cqil1";
+        hash = "sha256-gUbMzEaZ/p2rhBRGvdFwOfR2nJA+zrVECRiLkgdUqrM=";
       })
       # ... add other fonts here
     ];
@@ -61,11 +61,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "ghostscript${lib.optionalString x11Support "-with-X"}";
-  version = "10.02.1";
+  version = "10.03.1";
 
   src = fetchurl {
     url = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${lib.replaceStrings ["."] [""] version}/ghostscript-${version}.tar.xz";
-    hash = "sha512-7g91TBvYoYQorRTqo+rYD/i5YnWvUBLnqDhPHxBJDaBW7smuPMeRp6E6JOFuVN9bzN0QnH1ToUU0u9c2CjALEQ=";
+    hash = "sha256-FXIS7clrjMxAlHXc4uSYM/tEJ/FQxFUlje2WMsEGq+4=";
   };
 
   patches = [
diff --git a/pkgs/misc/jackaudio/default.nix b/pkgs/misc/jackaudio/default.nix
index 64f386e0378d3..53b900806ab3e 100644
--- a/pkgs/misc/jackaudio/default.nix
+++ b/pkgs/misc/jackaudio/default.nix
@@ -50,8 +50,6 @@ stdenv.mkDerivation (finalAttrs: {
     patchShebangs --build svnversion_regenerate.sh
   '';
 
-  dontAddWafCrossFlags = true;
-
   wafConfigureFlags = [
     "--classic"
     "--autostart=${if (optDbus != null) then "dbus" else "classic"}"
diff --git a/pkgs/misc/rich-cli/default.nix b/pkgs/misc/rich-cli/default.nix
index 9d03cfc66917c..b6cf7684c44d7 100644
--- a/pkgs/misc/rich-cli/default.nix
+++ b/pkgs/misc/rich-cli/default.nix
@@ -1,68 +1,53 @@
 { lib
 , fetchFromGitHub
+, fetchpatch
 , python3
 }:
 
-let
-  py = python3.override {
-    packageOverrides = final: prev: {
-      rich = prev.rich.overridePythonAttrs (old: rec {
-        version = "12.4.0";
-        src = fetchFromGitHub {
-          owner = "Textualize";
-          repo = "rich";
-          rev = "refs/tags/v12.4.0";
-          hash = "sha256-ryJTusUNpvNF2031ICJWK8ScxHIh+LrXYg7nd0ph4aQ=";
-        };
-        propagatedBuildInputs = with py.pkgs; [
-          commonmark
-          pygments
-        ];
-        doCheck = false;
-      });
-
-      textual = prev.textual.overridePythonAttrs (old: rec {
-        version = "0.1.18";
-        src = fetchFromGitHub {
-          owner = "Textualize";
-          repo = "textual";
-          rev = "refs/tags/v0.1.18";
-          hash = "sha256-XVmbt8r5HL8r64ISdJozmM+9HuyvqbpdejWICzFnfiw=";
-        };
-        doCheck = false;
-      });
-    };
-  };
-in
-
 python3.pkgs.buildPythonApplication rec {
   pname = "rich-cli";
   version = "1.8.0";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Textualize";
-    repo = pname;
+    repo = "rich-cli";
     rev = "refs/tags/v${version}";
     hash = "sha256-mV5b/J9wX9niiYtlmAUouaAm9mY2zTtDmex7FNWcezQ=";
   };
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace 'rich = "^12.4.0"' 'rich = "*"' \
-      --replace 'textual = "^0.1.18"' 'textual = "*"'
-  '';
+  patches = [
+    # Update dependencies, https://github.com/Textualize/rich-cli/pull/94
+    (fetchpatch {
+      name = "update-dependencies.patch";
+      url = "https://github.com/Textualize/rich-cli/pull/94/commits/1e9a11af7c1c78a5a44a207b1e0dce4c4b3c39f0.patch";
+      hash = "sha256-cU+s/LK2GDVWXLZob0n5J6sLjflCr8w10hRLgeWN5Vg=";
+    })
+    (fetchpatch {
+      name = "markdown.patch";
+      url = "https://github.com/Textualize/rich-cli/pull/94/commits/0a8e77d724ace88ce88ee9d68a46b1dc8464fe0b.patch";
+      hash = "sha256-KXvRG36Qj5kCj1RiAJsNkoJY7t41zUfJFgHeCtc0O4w=";
+    })
+  ];
+
+  pythonRelaxDeps = [
+    "textual"
+  ];
 
-  nativeBuildInputs = with py.pkgs; [
+  build-system = with python3.pkgs; [
     poetry-core
   ];
 
-  propagatedBuildInputs = with py.pkgs; [
-    rich
+  nativeBuildInputs = with python3.pkgs; [
+    pythonRelaxDepsHook
+  ];
+
+  dependencies = with python3.pkgs; [
     click
     requests
-    textual
+    rich
     rich-rst
+    textual
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/misc/seafile-shared/default.nix b/pkgs/misc/seafile-shared/default.nix
index 48e764b5f3e24..0f9457c9aaef4 100644
--- a/pkgs/misc/seafile-shared/default.nix
+++ b/pkgs/misc/seafile-shared/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "seafile-shared";
-  version = "9.0.5";
+  version = "9.0.6";
 
   src = fetchFromGitHub {
     owner = "haiwen";
     repo = "seafile";
     rev = "v${version}";
-    sha256 = "sha256-ENxmRnnQVwRm/3OXouM5Oj0fLVRSj0aOHJeVT627UdY=";
+    sha256 = "sha256-ig22Rw9VWPqOsJS1Wxy69OjdMRcxh2fOyqMHBEky/Uo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/os-specific/bsd/freebsd/lib/install-wrapper.sh b/pkgs/os-specific/bsd/freebsd/lib/install-wrapper.sh
index 91a7a2679f209..97a2aaab22c0e 100644
--- a/pkgs/os-specific/bsd/freebsd/lib/install-wrapper.sh
+++ b/pkgs/os-specific/bsd/freebsd/lib/install-wrapper.sh
@@ -14,7 +14,6 @@ while (( $# )); do
   case $1 in
     -C) ;;
     -o | -g) shift ;;
-    -s) ;;
     -m | -l)
       # handle next arg so not counted as path arg
       args+=("$1" "$2")
diff --git a/pkgs/os-specific/darwin/raycast/default.nix b/pkgs/os-specific/darwin/raycast/default.nix
index 302acad3100d5..bcb3b93c21aec 100644
--- a/pkgs/os-specific/darwin/raycast/default.nix
+++ b/pkgs/os-specific/darwin/raycast/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, stdenvNoCC
-, fetchurl
-, writeShellApplication
-, curl
-, jq
-, common-updater-scripts
-, undmg
+{
+  lib,
+  stdenvNoCC,
+  fetchurl,
+  writeShellApplication,
+  curl,
+  jq,
+  common-updater-scripts,
+  undmg,
 }:
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "raycast";
-  version = "1.74.1";
+  version = "1.75.1";
 
   src = fetchurl {
     name = "Raycast.dmg";
     url = "https://releases.raycast.com/releases/${finalAttrs.version}/download?build=universal";
-    hash = "sha256-vIhuXZ9FxpWLPoOciyl4Qe0G8vXY+to+CGxp+nRmyp8=";
+    hash = "sha256-lHGKWj4nn0GsviV83MKgCaQ6HW/CfeP8gg4VXlVXaXg=";
   };
 
   dontPatch = true;
@@ -38,7 +39,11 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   passthru.updateScript = lib.getExe (writeShellApplication {
     name = "raycast-update-script";
-    runtimeInputs = [ curl jq common-updater-scripts ];
+    runtimeInputs = [
+      curl
+      jq
+      common-updater-scripts
+    ];
     text = ''
       set -eo pipefail
       url=$(curl --silent "https://releases.raycast.com/releases/latest?build=universal")
@@ -47,12 +52,19 @@ stdenvNoCC.mkDerivation (finalAttrs: {
     '';
   });
 
-  meta = with lib; {
+  meta = {
     description = "Control your tools with a few keystrokes";
     homepage = "https://raycast.app/";
-    license = with licenses; [ unfree ];
-    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
-    maintainers = with maintainers; [ lovesegfault stepbrobd donteatoreo ];
-    platforms = [ "aarch64-darwin" "x86_64-darwin" ];
+    license = lib.licenses.unfree;
+    maintainers = with lib.maintainers; [
+      lovesegfault
+      stepbrobd
+      donteatoreo
+    ];
+    platforms = [
+      "aarch64-darwin"
+      "x86_64-darwin"
+    ];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
   };
 })
diff --git a/pkgs/os-specific/darwin/utm/default.nix b/pkgs/os-specific/darwin/utm/default.nix
index 4915b9b54d782..050a725b2cb8b 100644
--- a/pkgs/os-specific/darwin/utm/default.nix
+++ b/pkgs/os-specific/darwin/utm/default.nix
@@ -7,11 +7,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "utm";
-  version = "4.5.2";
+  version = "4.5.3";
 
   src = fetchurl {
     url = "https://github.com/utmapp/UTM/releases/download/v${version}/UTM.dmg";
-    hash = "sha256-pBRmtHXnw9BoFeaCCokk5hulChdEFl9dENbL8zzXMzs=";
+    hash = "sha256-7hpWTe6TvnNodFt1rSRGougeZuEjvSeuVzBWFfYo53Y=";
   };
 
   nativeBuildInputs = [ undmg makeWrapper ];
diff --git a/pkgs/os-specific/linux/anbox/default.nix b/pkgs/os-specific/linux/anbox/default.nix
index 3a5649d9f2882..1cb614fa220bb 100644
--- a/pkgs/os-specific/linux/anbox/default.nix
+++ b/pkgs/os-specific/linux/anbox/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation rec {
     cmake
     pkg-config
     makeWrapper
+    protobufc
   ];
 
   buildInputs = [
@@ -74,7 +75,7 @@ stdenv.mkDerivation rec {
     lxc
     mesa
     properties-cpp
-    protobuf protobufc
+    protobuf
     python3
     SDL2 SDL2_image
     systemd
diff --git a/pkgs/os-specific/linux/busybox/default.nix b/pkgs/os-specific/linux/busybox/default.nix
index 33fa7663f46dd..4a291cc03b8f6 100644
--- a/pkgs/os-specific/linux/busybox/default.nix
+++ b/pkgs/os-specific/linux/busybox/default.nix
@@ -121,6 +121,10 @@ stdenv.mkDerivation rec {
     # Bump from 4KB, much faster I/O
     CONFIG_FEATURE_COPYBUF_KB 64
 
+    # Doesn't build with current kernel headers.
+    # https://bugs.busybox.net/show_bug.cgi?id=15934
+    CONFIG_TC n
+
     # Set the path for the udhcpc script
     CONFIG_UDHCPC_DEFAULT_SCRIPT "${outDispatchPath}"
 
diff --git a/pkgs/os-specific/linux/ell/default.nix b/pkgs/os-specific/linux/ell/default.nix
index 9c16a341a478f..1a5e119ef4737 100644
--- a/pkgs/os-specific/linux/ell/default.nix
+++ b/pkgs/os-specific/linux/ell/default.nix
@@ -9,14 +9,14 @@
 
 stdenv.mkDerivation rec {
   pname = "ell";
-  version = "0.64";
+  version = "0.65";
 
   outputs = [ "out" "dev" ];
 
   src = fetchgit {
     url = "https://git.kernel.org/pub/scm/libs/ell/ell.git";
     rev = version;
-    hash = "sha256-LONfgFgPg8KCDwtw//WTOYQT9RpnIskdHAWcgafOhcg=";
+    hash = "sha256-q0C9KfWHxdmrG7xcbb8zpFL4ro+BJb7BL2tyKdFIhew=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/os-specific/linux/kernel-headers/default.nix b/pkgs/os-specific/linux/kernel-headers/default.nix
index fc2f8ddbd1434..bf3bf4950a259 100644
--- a/pkgs/os-specific/linux/kernel-headers/default.nix
+++ b/pkgs/os-specific/linux/kernel-headers/default.nix
@@ -111,12 +111,12 @@ let
 in {
   inherit makeLinuxHeaders;
 
-  linuxHeaders = let version = "6.7"; in
+  linuxHeaders = let version = "6.9"; in
     makeLinuxHeaders {
       inherit version;
       src = fetchurl {
         url = "mirror://kernel/linux/kernel/v${lib.versions.major version}.x/linux-${version}.tar.xz";
-        hash = "sha256-7zEUSiV20IDYwxaY6D7J9mv5fGd/oqrw1bu58zRbEGk=";
+        hash = "sha256-JPoB+5icej4oRT8Rd5kWhxN2bhGcU4HawwEV8Y8mgUk=";
       };
       patches = [
         ./no-relocs.patch # for building x86 kernel headers on non-ELF platforms
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix
index 84090cba867e1..c9bf296160629 100644
--- a/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/pkgs/os-specific/linux/kernel/common-config.nix
@@ -441,7 +441,8 @@ let
       # (stable) amdgpu support for bonaire and newer chipsets
       DRM_AMDGPU_CIK = yes;
       # Allow device firmware updates
-      DRM_DP_AUX_CHARDEV = yes;
+      DRM_DP_AUX_CHARDEV = whenOlder "6.10" yes;
+      DRM_DISPLAY_DP_AUX_CHARDEV = whenAtLeast "6.10" yes;
       # amdgpu display core (DC) support
       DRM_AMD_DC_DCN1_0 = whenOlder "5.6" yes;
       DRM_AMD_DC_DCN2_0 = whenBetween "5.3" "5.6" yes;
@@ -470,7 +471,8 @@ let
       MEDIA_CEC_RC = whenAtLeast "5.10" yes;
 
       # Enable CEC over DisplayPort
-      DRM_DP_CEC = yes;
+      DRM_DP_CEC = whenOlder "6.10" yes;
+      DRM_DISPLAY_DP_AUX_CEC = whenAtLeast "6.10" yes;
     } // optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux") {
       # Intel GVT-g graphics virtualization supports 64-bit only
       DRM_I915_GVT = yes;
@@ -927,8 +929,10 @@ let
       # i686 issues: https://github.com/NixOS/nixpkgs/pull/117961#issuecomment-812106375
       useZstd = stdenv.buildPlatform.is64bit && versionAtLeast version "5.9";
     in {
-      KERNEL_XZ            = mkIf (!useZstd) yes;
-      KERNEL_ZSTD          = mkIf useZstd yes;
+      # stdenv.hostPlatform.linux-kernel.target assumes uncompressed on RISC-V.
+      KERNEL_UNCOMPRESSED  = mkIf stdenv.hostPlatform.isRiscV yes;
+      KERNEL_XZ            = mkIf (!stdenv.hostPlatform.isRiscV && !useZstd) yes;
+      KERNEL_ZSTD          = mkIf (!stdenv.hostPlatform.isRiscV && useZstd) yes;
 
       HID_BATTERY_STRENGTH = yes;
       # enabled by default in x86_64 but not arm64, so we do that here
diff --git a/pkgs/os-specific/linux/kernel/hardened/patches.json b/pkgs/os-specific/linux/kernel/hardened/patches.json
index b59451611e4a3..62f1fcdda20c6 100644
--- a/pkgs/os-specific/linux/kernel/hardened/patches.json
+++ b/pkgs/os-specific/linux/kernel/hardened/patches.json
@@ -2,81 +2,81 @@
     "4.19": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-4.19.314-hardened1.patch",
-            "sha256": "18k8rvcfqjdrjv4a8lbfxdi5nipn0widarncxgmbaykc2x37q4vr",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.314-hardened1/linux-hardened-4.19.314-hardened1.patch"
+            "name": "linux-hardened-4.19.315-hardened1.patch",
+            "sha256": "1w17mwsv618pw5bkahmz6in0i5zjjxd3d14gggafqdd3dgfr1h8q",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.315-hardened1/linux-hardened-4.19.315-hardened1.patch"
         },
-        "sha256": "0nvrpg5aj2q4h2drmczprqaprcc2zhcrijfri77b830ms8rg4y2a",
-        "version": "4.19.314"
+        "sha256": "1j1j8awy0237jp2r211qpa305c10y7rlcbkxkzdvzbgyhwy4spkc",
+        "version": "4.19.315"
     },
     "5.10": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.10.217-hardened1.patch",
-            "sha256": "1isql7dsky91kp856gcwczzd4vwyfi0xxdgv7s0987v4p6ih3gbz",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.217-hardened1/linux-hardened-5.10.217-hardened1.patch"
+            "name": "linux-hardened-5.10.218-hardened1.patch",
+            "sha256": "1ah4pznha17ngg3w7l0j74h4910gjv8qj503adrap7plvapf82m4",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.218-hardened1/linux-hardened-5.10.218-hardened1.patch"
         },
-        "sha256": "0qhzqrjci45vcbzjch7vq75i6hpyap6yb7jw6g71phcnqgzw2ay5",
-        "version": "5.10.217"
+        "sha256": "1mmj5hwm5i16gc1y4nzr1cs882vi6vrihrincdcivv63x11v4dlw",
+        "version": "5.10.218"
     },
     "5.15": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.15.159-hardened1.patch",
-            "sha256": "1dscwbzjajb2wph0m0kijhagmclg5jz614mgah98nkj9b4sbgzli",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.15.159-hardened1/linux-hardened-5.15.159-hardened1.patch"
+            "name": "linux-hardened-5.15.160-hardened1.patch",
+            "sha256": "1r10ylx886rslsmrixlijjm4crhwzkl3wj6kpyn2344qik1gxpqr",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.15.160-hardened1/linux-hardened-5.15.160-hardened1.patch"
         },
-        "sha256": "1ia1nfci2wkx4nhnldfczpcq47mp7y7g657ikkh8i72y498gwy1l",
-        "version": "5.15.159"
+        "sha256": "018v19a7rhzc4szybzzn86jlnk42x7jm6xkadfd2d3xq6f7727pl",
+        "version": "5.15.160"
     },
     "5.4": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.4.276-hardened1.patch",
-            "sha256": "1hhy6jhq1h5v69319cjz5vidaqm4paiqvb62rairsdbabd2ycgvl",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.276-hardened1/linux-hardened-5.4.276-hardened1.patch"
+            "name": "linux-hardened-5.4.277-hardened1.patch",
+            "sha256": "1zjw5wl8lj69j402qm8dg3m4dxgq3ppx2jyz8jks976vyhh8fsg4",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.277-hardened1/linux-hardened-5.4.277-hardened1.patch"
         },
-        "sha256": "01vfx19n8rv9fgjjzvi78125md71zgn5jrinbarabzr18jyjwwg2",
-        "version": "5.4.276"
+        "sha256": "0l8zq3k07hdprfpvw69ykkf2pdg8wiv28xz733yxsjcfb0l5n7vy",
+        "version": "5.4.277"
     },
     "6.1": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-6.1.91-hardened1.patch",
-            "sha256": "0rsrsrzjwiwkhr0hhcf1h56g5a0ymwl4h20452s2h7jvh2l8gi6j",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.1.91-hardened1/linux-hardened-6.1.91-hardened1.patch"
+            "name": "linux-hardened-6.1.92-hardened1.patch",
+            "sha256": "0cw87ygmisi823y3f7xrck12b6zh3mq1qmb7lcmr3hg6w3xskmn3",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.1.92-hardened1/linux-hardened-6.1.92-hardened1.patch"
         },
-        "sha256": "1v2d5syxwwqlhvjzxk003qz9sr18r0n8dgg976vbi492r9iww2l8",
-        "version": "6.1.91"
+        "sha256": "1j9n8gk76nn4gw42iba5zgghr360gb9n1mslr5dyv76wpwkz86ch",
+        "version": "6.1.92"
     },
     "6.6": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-6.6.31-hardened1.patch",
-            "sha256": "1asn2q825ffinx59czidhs8fhj31mw5sin7bd11jg2z5n6xi3a08",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.6.31-hardened1/linux-hardened-6.6.31-hardened1.patch"
+            "name": "linux-hardened-6.6.32-hardened1.patch",
+            "sha256": "19362a6lxs3cnaw19jvda7n791y95lfgn9ki4wmaxnw2qbpi0bgg",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.6.32-hardened1/linux-hardened-6.6.32-hardened1.patch"
         },
-        "sha256": "080wwrc231fbf43hvvygddmdxdspyw23jc5vnd6fr5ccdybgzv6n",
-        "version": "6.6.31"
+        "sha256": "1qbc8dqmk2xs1cz968rysw5xvhq3lj8g0pxp48fr2qbzy3m29a5a",
+        "version": "6.6.32"
     },
     "6.8": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-6.8.10-hardened1.patch",
-            "sha256": "0671ylf01gsgbgxd1baswj0h6hwgxxkgrvd03qh81kp3pmr2bpb3",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.8.10-hardened1/linux-hardened-6.8.10-hardened1.patch"
+            "name": "linux-hardened-6.8.11-hardened1.patch",
+            "sha256": "08i03dmri9h6jxcjd9g6s7pv0spqi3f4fgch1ars68cgngikvbpq",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.8.11-hardened1/linux-hardened-6.8.11-hardened1.patch"
         },
-        "sha256": "0xjirg2w5fc2w2q6wr702akszq32m31lk4q5nbjq10zqhbcr5fxh",
-        "version": "6.8.10"
+        "sha256": "1di8kr596sf68sm61kp5rz6bn3sb0q5ag1qc5hm8f9dpyq4wv3dp",
+        "version": "6.8.11"
     },
     "6.9": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-6.9.1-hardened1.patch",
-            "sha256": "1zp0qwri43v4h234x1vqbwcbd50hryshi7i717xandzkpxvq72l2",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.9.1-hardened1/linux-hardened-6.9.1-hardened1.patch"
+            "name": "linux-hardened-6.9.2-hardened1.patch",
+            "sha256": "0ph1m0pnlqrhvddz2mjgcwvs0ddcpzigz8kgi9zi063qinlfbm3q",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.9.2-hardened1/linux-hardened-6.9.2-hardened1.patch"
         },
-        "sha256": "0jn0qp22vx7xf2mgaj7cwf8agqhahvrwlda4ak6rw67xk2x19d01",
-        "version": "6.9.1"
+        "sha256": "1yg5j284y1gz7zwxjz2abvlnas259m1y1vzd9lmcqqar5kgmnv6l",
+        "version": "6.9.2"
     }
 }
diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json
index bcf3560c20779..2d6bf9b33baec 100644
--- a/pkgs/os-specific/linux/kernel/kernels-org.json
+++ b/pkgs/os-specific/linux/kernel/kernels-org.json
@@ -1,38 +1,38 @@
 {
     "testing": {
-        "version": "6.9-rc6",
-        "hash": "sha256:075l5vhk8zmwln4jks7gr5n5k67s65qvs07l2rpbc7a75fdp6c14"
+        "version": "6.10-rc1",
+        "hash": "sha256:006frl76cwi9a4mw7x6vsyazgrjfiz1gn4q4hvpykqql5mar3a05"
     },
     "6.1": {
-        "version": "6.1.91",
-        "hash": "sha256:1v2d5syxwwqlhvjzxk003qz9sr18r0n8dgg976vbi492r9iww2l8"
+        "version": "6.1.92",
+        "hash": "sha256:1j9n8gk76nn4gw42iba5zgghr360gb9n1mslr5dyv76wpwkz86ch"
     },
     "5.15": {
-        "version": "5.15.159",
-        "hash": "sha256:1ia1nfci2wkx4nhnldfczpcq47mp7y7g657ikkh8i72y498gwy1l"
+        "version": "5.15.160",
+        "hash": "sha256:018v19a7rhzc4szybzzn86jlnk42x7jm6xkadfd2d3xq6f7727pl"
     },
     "5.10": {
-        "version": "5.10.217",
-        "hash": "sha256:0qhzqrjci45vcbzjch7vq75i6hpyap6yb7jw6g71phcnqgzw2ay5"
+        "version": "5.10.218",
+        "hash": "sha256:1mmj5hwm5i16gc1y4nzr1cs882vi6vrihrincdcivv63x11v4dlw"
     },
     "5.4": {
-        "version": "5.4.276",
-        "hash": "sha256:01vfx19n8rv9fgjjzvi78125md71zgn5jrinbarabzr18jyjwwg2"
+        "version": "5.4.277",
+        "hash": "sha256:0l8zq3k07hdprfpvw69ykkf2pdg8wiv28xz733yxsjcfb0l5n7vy"
     },
     "4.19": {
-        "version": "4.19.314",
-        "hash": "sha256:0nvrpg5aj2q4h2drmczprqaprcc2zhcrijfri77b830ms8rg4y2a"
+        "version": "4.19.315",
+        "hash": "sha256:1j1j8awy0237jp2r211qpa305c10y7rlcbkxkzdvzbgyhwy4spkc"
     },
     "6.6": {
-        "version": "6.6.31",
-        "hash": "sha256:080wwrc231fbf43hvvygddmdxdspyw23jc5vnd6fr5ccdybgzv6n"
+        "version": "6.6.32",
+        "hash": "sha256:1qbc8dqmk2xs1cz968rysw5xvhq3lj8g0pxp48fr2qbzy3m29a5a"
     },
     "6.8": {
-        "version": "6.8.10",
-        "hash": "sha256:0xjirg2w5fc2w2q6wr702akszq32m31lk4q5nbjq10zqhbcr5fxh"
+        "version": "6.8.11",
+        "hash": "sha256:1di8kr596sf68sm61kp5rz6bn3sb0q5ag1qc5hm8f9dpyq4wv3dp"
     },
     "6.9": {
-        "version": "6.9.1",
-        "hash": "sha256:0jn0qp22vx7xf2mgaj7cwf8agqhahvrwlda4ak6rw67xk2x19d01"
+        "version": "6.9.2",
+        "hash": "sha256:1yg5j284y1gz7zwxjz2abvlnas259m1y1vzd9lmcqqar5kgmnv6l"
     }
 }
diff --git a/pkgs/os-specific/linux/kernel/linux-libre.nix b/pkgs/os-specific/linux/kernel/linux-libre.nix
index 3344808ca2789..4bb2ebda3d028 100644
--- a/pkgs/os-specific/linux/kernel/linux-libre.nix
+++ b/pkgs/os-specific/linux/kernel/linux-libre.nix
@@ -1,8 +1,8 @@
 { stdenv, lib, fetchsvn, linux
 , scripts ? fetchsvn {
     url = "https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/";
-    rev = "19546";
-    sha256 = "1yyj7pbfs02fki1rdxfj9gcrxdrl26igisy4fji7czcc9xbw03qm";
+    rev = "19575";
+    sha256 = "1f826x8a6nmqcjcplg5x4rcqkr3p886abxhyqir8a102ymnh7wkw";
   }
 , ...
 }:
diff --git a/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix b/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
index e19b0699a33fe..d2cc98b8159dc 100644
--- a/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
+++ b/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
@@ -6,7 +6,7 @@
 , ... } @ args:
 
 let
-  version = "5.10.216-rt108"; # updated by ./update-rt.sh
+  version = "5.10.217-rt109"; # updated by ./update-rt.sh
   branch = lib.versions.majorMinor version;
   kversion = builtins.elemAt (lib.splitString "-" version) 0;
 in buildLinux (args // {
@@ -17,14 +17,14 @@ in buildLinux (args // {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz";
-    sha256 = "0lg1zfb9y4ps86q85mlnyalb3s90zix003z62jb9bw139f65h473";
+    sha256 = "0qhzqrjci45vcbzjch7vq75i6hpyap6yb7jw6g71phcnqgzw2ay5";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "0p0qmyz3g7fqlz4f638dlcp37az8lpq5yqw2fy5zqqs3qagy018j";
+      sha256 = "1cszl9414vbycswx2gjv12wdghhw5s6amd9mjmx619r2a1r0gnb7";
     };
   }; in [ rt-patch ] ++ kernelPatches;
 
diff --git a/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix b/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix
index ac0f7d6d9d88a..f7f21a71263bd 100644
--- a/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix
+++ b/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix
@@ -6,7 +6,7 @@
 , ... } @ args:
 
 let
-  version = "6.1.90-rt30"; # updated by ./update-rt.sh
+  version = "6.1.92-rt32"; # updated by ./update-rt.sh
   branch = lib.versions.majorMinor version;
   kversion = builtins.elemAt (lib.splitString "-" version) 0;
 in buildLinux (args // {
@@ -18,14 +18,14 @@ in buildLinux (args // {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v6.x/linux-${kversion}.tar.xz";
-    sha256 = "07cfg0chssvpc4mqls3aln6s4lqjp6k4x2n63wndmkjgfqpdg8w3";
+    sha256 = "1j9n8gk76nn4gw42iba5zgghr360gb9n1mslr5dyv76wpwkz86ch";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "0sgwxdy4bzjqr74nrmsyw1f2lcqpapxmkj5yywf7jkqa20jkdvgr";
+      sha256 = "00qa6l4jvkdny276jnwnra5dkagnp3qr43amf2mpqx3kdfw28g1q";
     };
   }; in [ rt-patch ] ++ kernelPatches;
 
diff --git a/pkgs/os-specific/linux/kernel/linux-rt-6.6.nix b/pkgs/os-specific/linux/kernel/linux-rt-6.6.nix
index 5a2e8959090f7..2f035b259b602 100644
--- a/pkgs/os-specific/linux/kernel/linux-rt-6.6.nix
+++ b/pkgs/os-specific/linux/kernel/linux-rt-6.6.nix
@@ -6,7 +6,7 @@
 , ... } @ args:
 
 let
-  version = "6.6.30-rt30"; # updated by ./update-rt.sh
+  version = "6.6.32-rt32"; # updated by ./update-rt.sh
   branch = lib.versions.majorMinor version;
   kversion = builtins.elemAt (lib.splitString "-" version) 0;
 in buildLinux (args // {
@@ -18,14 +18,14 @@ in buildLinux (args // {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v6.x/linux-${kversion}.tar.xz";
-    sha256 = "1ilwmgpgvddwkd9nx5999cb6z18scjyq7jklid26k1hg7f35nsmn";
+    sha256 = "1qbc8dqmk2xs1cz968rysw5xvhq3lj8g0pxp48fr2qbzy3m29a5a";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "05n6fyy5c0f18v4n1rfkcvqj8s0p5x6s16qq5mnmya86rhdr6gn7";
+      sha256 = "0hv2z6d2gw7hqfzw6dgrzxlirk4yifcxbmx71hxlvd9l2vgp72q5";
     };
   }; in [ rt-patch ] ++ kernelPatches;
 
diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix
index cab04ad0c7d80..0c176d3e12d93 100644
--- a/pkgs/os-specific/linux/kernel/manual-config.nix
+++ b/pkgs/os-specific/linux/kernel/manual-config.nix
@@ -301,10 +301,10 @@ let
         export HOME=${installkernel}
       '';
 
-      # Some image types need special install targets (e.g. uImage is installed with make uinstall)
+      # Some image types need special install targets (e.g. uImage is installed with make uinstall on arm)
       installTargets = [
         (kernelConf.installTarget or (
-          /**/ if kernelConf.target == "uImage" then "uinstall"
+          /**/ if kernelConf.target == "uImage" && stdenv.hostPlatform.linuxArch == "arm" then "uinstall"
           else if kernelConf.target == "zImage" || kernelConf.target == "Image.gz" then "zinstall"
           else "install"))
       ];
diff --git a/pkgs/os-specific/linux/kernel/zen-kernels.nix b/pkgs/os-specific/linux/kernel/zen-kernels.nix
index 0482cbbc09c59..89c776e611e5c 100644
--- a/pkgs/os-specific/linux/kernel/zen-kernels.nix
+++ b/pkgs/os-specific/linux/kernel/zen-kernels.nix
@@ -4,16 +4,16 @@ let
   # comments with variant added for update script
   # ./update-zen.py zen
   zenVariant = {
-    version = "6.9.1"; #zen
+    version = "6.9.2"; #zen
     suffix = "zen1"; #zen
-    sha256 = "1a6jqi474kf3353nx927wj5yqx6pcr3nz9qzrpb1vlrq9mwr7jls"; #zen
+    sha256 = "1fsmpryk7an6xqppvilcf3bmxs41mqpc3v4f4c81jgrikg21gxbb"; #zen
     isLqx = false;
   };
   # ./update-zen.py lqx
   lqxVariant = {
-    version = "6.8.10"; #lqx
+    version = "6.8.11"; #lqx
     suffix = "lqx1"; #lqx
-    sha256 = "1j1n3r497wfdpichp38wqcg7sps3nymchdx41i7gq5nlnfwk290q"; #lqx
+    sha256 = "1dj4znir4wp6jqs680dcxn8z6p02d518993rmrx54ch04jyy5brj"; #lqx
     isLqx = true;
   };
   zenKernelsFor = { version, suffix, sha256, isLqx }: buildLinux (args // {
diff --git a/pkgs/os-specific/linux/kexec-tools/default.nix b/pkgs/os-specific/linux/kexec-tools/default.nix
index 530fd767bb909..3861d5d0cd6f8 100644
--- a/pkgs/os-specific/linux/kexec-tools/default.nix
+++ b/pkgs/os-specific/linux/kexec-tools/default.nix
@@ -18,6 +18,11 @@ stdenv.mkDerivation rec {
       url = "https://raw.githubusercontent.com/void-linux/void-packages/6c1192cbf166698932030c2e3de71db1885a572d/srcpkgs/kexec-tools/patches/ppc64-elfv2.patch";
       sha256 = "19wzfwb0azm932v0vhywv4221818qmlmvdfwpvvpfyw4hjsc2s1l";
     })
+    # binutils-2.42 support
+    (fetchpatch {
+      url = "https://github.com/horms/kexec-tools/commit/328de8e00e298f00d7ba6b25dc3950147e9642e6.patch";
+      hash = "sha256-wVQI4oV+hBLq3kGIp2+F5J3f6s/TypDu3Xq583KYc3U=";
+    })
   ];
 
   hardeningDisable = [ "format" "pic" "relro" "pie" ];
diff --git a/pkgs/os-specific/linux/lttng-modules/default.nix b/pkgs/os-specific/linux/lttng-modules/default.nix
index 89b49068d40c1..cfb38f0983cea 100644
--- a/pkgs/os-specific/linux/lttng-modules/default.nix
+++ b/pkgs/os-specific/linux/lttng-modules/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lttng-modules-${kernel.version}";
-  version = "2.13.10";
+  version = "2.13.13";
 
   src = fetchFromGitHub {
     owner = "lttng";
     repo = "lttng-modules";
     rev = "v${version}";
-    hash = "sha256-R5qwB1ayw0KueMBSSxm0TwINt78N6w356kY7WGBX0zM=";
+    hash = "sha256-iA3B838EUU5rFWCL8BAubkTrTO1itDFp5d1653OPnS0=";
   };
 
   nativeBuildInputs = kernel.moduleBuildDependencies;
diff --git a/pkgs/os-specific/linux/multipath-tools/default.nix b/pkgs/os-specific/linux/multipath-tools/default.nix
index 5ec8197451cfb..ebb8cc03d37c0 100644
--- a/pkgs/os-specific/linux/multipath-tools/default.nix
+++ b/pkgs/os-specific/linux/multipath-tools/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , coreutils
 
 , perl
@@ -21,21 +22,30 @@
 
 stdenv.mkDerivation rec {
   pname = "multipath-tools";
-  version = "0.9.6";
+  version = "0.9.8";
 
   src = fetchFromGitHub {
     owner = "opensvc";
     repo = "multipath-tools";
     rev = "refs/tags/${version}";
-    sha256 = "sha256-X4sAMGn4oBMY3cQkVj1dMcrDF7FgMl8SbZeUnCCOY6Q=";
+    sha256 = "sha256-4cby19BjgnmWf7klK1sBgtZnyvo7q3L1uyVPlVoS+uk=";
   };
 
+  patches = [
+    # Backport build fix for musl libc 1.2.5
+    (fetchpatch {
+      url = "https://github.com/openSUSE/multipath-tools/commit/e5004de8296cd596aeeac0a61b901e98cf7a69d2.patch";
+      hash = "sha256-ZvNFVphB9f+S/XMxktR6P/YYSTLeJXEsj4XrAnw6GUI=";
+      excludes = ["tests/util.c"];
+    })
+  ];
+
   postPatch = ''
     substituteInPlace create-config.mk \
-      --replace /bin/echo ${coreutils}/bin/echo
+      --replace-fail /bin/echo ${coreutils}/bin/echo
 
-    substituteInPlace multipathd/multipathd.service \
-      --replace /sbin/multipathd "$out/bin/multipathd"
+    substituteInPlace multipathd/multipathd.service.in \
+      --replace-fail /sbin/multipathd "$out/bin/multipathd"
 
     sed -i -re '
       s,^( *#define +DEFAULT_MULTIPATHDIR\>).*,\1 "'"$out/lib/multipath"'",
@@ -76,7 +86,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
   preCheck = ''
     # skip test attempting to access /sys/dev/block
-    substituteInPlace tests/Makefile --replace ' devt ' ' '
+    substituteInPlace tests/Makefile --replace-fail ' devt ' ' '
   '';
   nativeCheckInputs = [ cmocka ];
 
diff --git a/pkgs/os-specific/linux/nvidia-x11/libxnvctrl-build-shared-3xx.patch b/pkgs/os-specific/linux/nvidia-x11/libxnvctrl-build-shared-3xx.patch
new file mode 100644
index 0000000000000..d2e074add7549
--- /dev/null
+++ b/pkgs/os-specific/linux/nvidia-x11/libxnvctrl-build-shared-3xx.patch
@@ -0,0 +1,24 @@
+--- a/src/libXNVCtrl/Makefile
++++ b/src/libXNVCtrl/Makefile
+@@ -33,6 +33,8 @@
+ 
+ LIBXNVCTRL = libXNVCtrl.a
+ 
++LIBXNVCTRL_SHARED = $(OUTPUTDIR)/libXNVCtrl.so
++
+ LIBXNVCTRL_PROGRAM_NAME = "libXNVCtrl"
+ 
+ LIBXNVCTRL_VERSION := $(NVIDIA_VERSION)
+@@ -62,6 +64,12 @@
+ $(LIBXNVCTRL) : $(OBJS)
+ 	$(AR) ru $@ $(OBJS)
+ 
++$(LIBXNVCTRL_SHARED): $(LIBXNVCTRL_OBJ)
++	$(RM) $@ $@.*
++	$(CC) -shared -Wl,-soname=$(@F).0 -o $@.0.0.0 $(LDFLAGS) $^ -lXext -lX11
++	ln -s $(@F).0.0.0 $@.0
++	ln -s $(@F).0 $@
++
+ # define the rule to build each object file
+ $(foreach src,$(SRC),$(eval $(call DEFINE_OBJECT_RULE,TARGET,$(src))))
+ 
diff --git a/pkgs/os-specific/linux/nvidia-x11/libxnvctrl-build-shared.patch b/pkgs/os-specific/linux/nvidia-x11/libxnvctrl-build-shared.patch
new file mode 100644
index 0000000000000..ad1dc1eae4002
--- /dev/null
+++ b/pkgs/os-specific/linux/nvidia-x11/libxnvctrl-build-shared.patch
@@ -0,0 +1,21 @@
+--- a/src/libXNVCtrl/xnvctrl.mk
++++ b/src/libXNVCtrl/xnvctrl.mk
+@@ -39,6 +39,8 @@
+ 
+ LIBXNVCTRL = $(OUTPUTDIR)/libXNVCtrl.a
+ 
++LIBXNVCTRL_SHARED = $(OUTPUTDIR)/libXNVCtrl.so
++
+ LIBXNVCTRL_SRC = $(XNVCTRL_DIR)/NVCtrl.c
+ 
+ LIBXNVCTRL_OBJ = $(call BUILD_OBJECT_LIST,$(LIBXNVCTRL_SRC))
+@@ -47,3 +49,9 @@
+ 
+ $(LIBXNVCTRL) : $(LIBXNVCTRL_OBJ)
+ 	$(call quiet_cmd,AR) ru $@ $(LIBXNVCTRL_OBJ)
++
++$(LIBXNVCTRL_SHARED): $(LIBXNVCTRL_OBJ)
++	$(RM) $@ $@.*
++	$(CC) -shared -Wl,-soname=$(@F).0 -o $@.0.0.0 $(LDFLAGS) $^ -lXext -lX11
++	ln -s $(@F).0.0.0 $@.0
++	ln -s $(@F).0 $@
diff --git a/pkgs/os-specific/linux/nvidia-x11/settings.nix b/pkgs/os-specific/linux/nvidia-x11/settings.nix
index 2d9dfd81829eb..e13f3a157b641 100644
--- a/pkgs/os-specific/linux/nvidia-x11/settings.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/settings.nix
@@ -43,6 +43,14 @@ let
 
     makeFlags = [
       "OUTPUTDIR=." # src/libXNVCtrl
+      "libXNVCtrl.a"
+      "libXNVCtrl.so"
+    ];
+
+    patches = [
+      # Patch the Makefile to also produce a shared library.
+      (if lib.versionOlder nvidia_x11.settingsVersion "400" then ./libxnvctrl-build-shared-3xx.patch
+      else ./libxnvctrl-build-shared.patch)
     ];
 
     installPhase = ''
@@ -52,6 +60,7 @@ let
       cp libXNVCtrl.a $out/lib
       cp NVCtrl.h     $out/include/NVCtrl
       cp NVCtrlLib.h  $out/include/NVCtrl
+      cp -P libXNVCtrl.so* $out/lib
     '';
   };
 
@@ -138,6 +147,6 @@ stdenv.mkDerivation {
     license = licenses.unfreeRedistributable;
     platforms = nvidia_x11.meta.platforms;
     mainProgram = "nvidia-settings";
-    maintainers = with maintainers; [ abbradar ];
+    maintainers = with maintainers; [ abbradar aidalgol ];
   };
 }
diff --git a/pkgs/os-specific/linux/pcm/default.nix b/pkgs/os-specific/linux/pcm/default.nix
index e464d113e2f73..5c111952727de 100644
--- a/pkgs/os-specific/linux/pcm/default.nix
+++ b/pkgs/os-specific/linux/pcm/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pcm";
-  version = "202403";
+  version = "202405";
 
   src = fetchFromGitHub {
     owner = "opcm";
     repo = "pcm";
     rev = version;
-    hash = "sha256-qefqtuxRaQEsWpXNAuGxuIT3LiH2b8xQb54B0RkzKGA=";
+    hash = "sha256-yEe1lWbvafc3N3+K9WMMlIXVVX+fVO8QsuKdyIqiKAg=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/os-specific/linux/rt-tests/default.nix b/pkgs/os-specific/linux/rt-tests/default.nix
index 8e3a9b0ceb02a..a9e3e57d48752 100644
--- a/pkgs/os-specific/linux/rt-tests/default.nix
+++ b/pkgs/os-specific/linux/rt-tests/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "rt-tests";
-  version = "2.6";
+  version = "2.7";
 
   src = fetchurl {
     url = "https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git/snapshot/${pname}-${version}.tar.gz";
-    sha256 = "sha256-apRJwRqcyzfmyGCCv5BDN92pKP3Nafa9SkxlZ+Bxrm0=";
+    sha256 = "sha256-1kfLmB1RPO8Hd7o8tROSyVBWchchc+AGPuOUlM2hR8g=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/os-specific/linux/sd-switch/default.nix b/pkgs/os-specific/linux/sd-switch/default.nix
index 7750862c34c2c..4f80ce5d6b2b8 100644
--- a/pkgs/os-specific/linux/sd-switch/default.nix
+++ b/pkgs/os-specific/linux/sd-switch/default.nix
@@ -1,6 +1,6 @@
-{ lib, fetchFromSourcehut, rustPlatform, pkg-config, dbus }:
+{ lib, fetchFromSourcehut, rustPlatform, nix-update-script }:
 
-let version = "0.3.0";
+let version = "0.4.0";
 in rustPlatform.buildRustPackage {
   pname = "sd-switch";
   inherit version;
@@ -9,18 +9,20 @@ in rustPlatform.buildRustPackage {
     owner = "~rycee";
     repo = "sd-switch";
     rev = version;
-    hash = "sha256-mWrLbCUnoJ3hVtpSU/7dw91U5TLyw5kNchX5nmP9asA=";
+    hash = "sha256-PPFYH34HAD/vC+9jpA1iPQRVNR6MX8ncSPC+7bl2oHY=";
   };
 
-  cargoHash = "sha256-VK+kPX1pGhowbWKkUs1PL0DXIhDXJOFVoIHTtWQcWEs=";
+  cargoHash = "sha256-zUoa7nPNFvnYekbEZwtnJKZ6qd47Sb4LZGEkaKVQ9ZQ=";
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ dbus ];
+  passthru = {
+    updateScript = nix-update-script { };
+  };
 
   meta = with lib; {
     description = "A systemd unit switcher for Home Manager";
     mainProgram = "sd-switch";
-    homepage = "https://gitlab.com/rycee/sd-switch";
+    homepage = "https://git.sr.ht/~rycee/sd-switch";
+    changelog = "https://git.sr.ht/~rycee/sd-switch/refs/${version}";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ rycee ];
     platforms = platforms.linux;
diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix
index a0f019c610dc9..61eea1c66015d 100644
--- a/pkgs/os-specific/linux/systemd/default.nix
+++ b/pkgs/os-specific/linux/systemd/default.nix
@@ -407,6 +407,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   outputs = [ "out" "dev" ] ++ (lib.optional (!buildLibsOnly) "man");
+  separateDebugInfo = true;
 
   hardeningDisable = [
     # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111523
@@ -500,6 +501,12 @@ stdenv.mkDerivation (finalAttrs: {
     (lib.mesonOption "default-hierarchy" "unified")
     (lib.mesonOption "kmod-path" "${kmod}/bin/kmod")
 
+    # Attempts to check /usr/sbin and that fails in macOS sandbox because
+    # permission is denied. If /usr/sbin is not a symlink, it defaults to true.
+    # We set it to false since stdenv moves sbin/* to bin and creates a symlink,
+    # that is, we do not have split bin.
+    (lib.mesonOption "split-bin" "false")
+
     # D-Bus
     (lib.mesonOption "dbuspolicydir" "${placeholder "out"}/share/dbus-1/system.d")
     (lib.mesonOption "dbussessionservicedir" "${placeholder "out"}/share/dbus-1/services")
@@ -814,6 +821,9 @@ stdenv.mkDerivation (finalAttrs: {
       substituteInPlace $i --replace /bin/false ${coreutils}/bin/false
     done
 
+    # For compatibility with dependents that use sbin instead of bin.
+    ln -s bin "$out/sbin"
+
     rm -rf $out/etc/rpm
   '' + lib.optionalString (!withKernelInstall) ''
     # "kernel-install" shouldn't be used on NixOS.
diff --git a/pkgs/os-specific/linux/util-linux/default.nix b/pkgs/os-specific/linux/util-linux/default.nix
index ef3614bce02ef..4b44a19def899 100644
--- a/pkgs/os-specific/linux/util-linux/default.nix
+++ b/pkgs/os-specific/linux/util-linux/default.nix
@@ -1,9 +1,7 @@
-{ lib, stdenv, fetchurl, fetchpatch, autoreconfHook, gtk-doc, pkg-config
-, zlib, shadow
+{ lib, stdenv, fetchurl, pkg-config, zlib, shadow
 , capabilitiesSupport ? stdenv.isLinux
 , libcap_ng
 , libxcrypt
-, sqlite
 , ncursesSupport ? true
 , ncurses
 , pamSupport ? true
@@ -19,20 +17,14 @@
 , memstreamHook
 , gitUpdater
 }:
-let
-  # Temporarily avoid applying the patches on systems where already we have binaries
-  # (in particular x86_64-linux and aarch64-linux) as the package is a huge rebuild there.
-  avoidRebuild = with stdenv.hostPlatform; isLinux && is64bit && !isStatic;
-in
+
 stdenv.mkDerivation rec {
   pname = "util-linux" + lib.optionalString (!nlsSupport && !ncursesSupport && !systemdSupport) "-minimal";
-  version = if avoidRebuild then "2.40.1" else "2.39.4";
+  version = "2.39.4";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/util-linux/v${lib.versions.majorMinor version}/util-linux-${version}.tar.xz";
-    hash = if avoidRebuild
-      then "sha256-WeZ2qlPMtEtsOfD/4BqPonSJHJG+8UdHUvrZJGHe8k8="
-      else "sha256-bE+HI9r9QcOdk+y/FlCfyIwzzVvTJ3iArlodl6AU/Q4=";
+    hash = "sha256-bE+HI9r9QcOdk+y/FlCfyIwzzVvTJ3iArlodl6AU/Q4=";
   };
 
   patches = [
@@ -48,7 +40,7 @@ stdenv.mkDerivation rec {
   separateDebugInfo = true;
 
   postPatch = ''
-    patchShebangs tests/run.sh tools/all_syscalls
+    patchShebangs tests/run.sh
 
     substituteInPlace sys-utils/eject.c \
       --replace "/bin/umount" "$bin/bin/umount"
@@ -67,7 +59,6 @@ stdenv.mkDerivation rec {
     "--enable-fs-paths-default=/run/wrappers/bin:/run/current-system/sw/bin:/sbin"
     "--disable-makeinstall-setuid" "--disable-makeinstall-chown"
     "--disable-su" # provided by shadow
-    "--with-tmpfilesdir=${placeholder "out"}/lib/tmpfiles.d"
     (lib.enableFeature writeSupport "write")
     (lib.enableFeature nlsSupport "nls")
     (lib.withFeature ncursesSupport "ncursesw")
@@ -89,7 +80,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config installShellFiles ]
     ++ lib.optionals translateManpages [ po4a ];
 
-  buildInputs = [ zlib libxcrypt sqlite ]
+  buildInputs = [ zlib libxcrypt ]
     ++ lib.optionals pamSupport [ pam ]
     ++ lib.optionals capabilitiesSupport [ libcap_ng ]
     ++ lib.optionals ncursesSupport [ ncurses ]
@@ -118,6 +109,9 @@ stdenv.mkDerivation rec {
     ln -svf "$swap/bin/"* $bin/bin/
     '' + ''
 
+    ln -svf "$bin/bin/hexdump" "$bin/bin/hd"
+    ln -svf "$man/share/man/man1/hexdump.1" "$man/share/man/man1/hd.1"
+
     installShellCompletion --bash bash-completion/*
   '';
 
diff --git a/pkgs/os-specific/windows/default.nix b/pkgs/os-specific/windows/default.nix
index 7d152a607b8e4..234abcde16117 100644
--- a/pkgs/os-specific/windows/default.nix
+++ b/pkgs/os-specific/windows/default.nix
@@ -34,10 +34,6 @@ lib.makeScope newScope (self: with self; {
     stdenv = crossThreadsStdenv;
   };
 
-  mcfgthreads_pre_gcc_13 = callPackage ./mcfgthreads/pre_gcc_13.nix {
-    stdenv = crossThreadsStdenv;
-  };
-
   mcfgthreads = callPackage ./mcfgthreads {
     stdenv = crossThreadsStdenv;
   };
diff --git a/pkgs/os-specific/windows/mcfgthreads/pre_gcc_13.nix b/pkgs/os-specific/windows/mcfgthreads/pre_gcc_13.nix
deleted file mode 100644
index 6be64814c93aa..0000000000000
--- a/pkgs/os-specific/windows/mcfgthreads/pre_gcc_13.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchFromGitHub, autoreconfHook }:
-
-stdenv.mkDerivation {
-  pname = "mcfgthreads";
-  version = "git"; # unstable-2021-03-12, not in any branch
-
-  src = fetchFromGitHub {
-    owner = "lhmouse";
-    repo = "mcfgthread";
-    rev = "c446cf4fcdc262fc899a188a4bb7136284c34222";
-    sha256 = "1ib90lrd4dz8irq4yvzwhxqa86i5vxl2q2z3z04sf1i8hw427p2f";
-  };
-
-  outputs = [ "out" "dev" ];
-
-  # Don't want prebuilt binaries sneaking in.
-  postUnpack = ''
-    rm -r "$sourceRoot/debug" "$sourceRoot/release"
-  '';
-
-  nativeBuildInputs = [
-    autoreconfHook
-  ];
-}
diff --git a/pkgs/pkgs-lib/formats.nix b/pkgs/pkgs-lib/formats.nix
index 7cc0bf4f4e504..8fc808b2646f4 100644
--- a/pkgs/pkgs-lib/formats.nix
+++ b/pkgs/pkgs-lib/formats.nix
@@ -65,6 +65,7 @@ rec {
       nativeBuildInputs = [ jq ];
       value = builtins.toJSON value;
       passAsFile = [ "value" ];
+      preferLocalBuild = true;
     } ''
       jq . "$valuePath"> $out
     '') {};
@@ -77,6 +78,7 @@ rec {
       nativeBuildInputs = [ remarshal ];
       value = builtins.toJSON value;
       passAsFile = [ "value" ];
+      preferLocalBuild = true;
     } ''
       json2yaml "$valuePath" "$out"
     '') {};
@@ -270,6 +272,7 @@ rec {
       nativeBuildInputs = [ remarshal ];
       value = builtins.toJSON value;
       passAsFile = [ "value" ];
+      preferLocalBuild = true;
     } ''
       json2toml "$valuePath" "$out"
     '') {};
@@ -467,6 +470,7 @@ rec {
           value = toConf value;
           passAsFile = [ "value" ];
           nativeBuildInputs = [ elixir ];
+          preferLocalBuild = true;
         } ''
         cp "$valuePath" "$out"
         mix format "$out"
@@ -501,6 +505,7 @@ rec {
                 print(f"{key} = {repr(value)}")
       '';
       passAsFile = [ "value" "pythonGen" ];
+      preferLocalBuild = true;
     } ''
       cat "$valuePath"
       python3 "$pythonGenPath" > $out
diff --git a/pkgs/pkgs-lib/formats/hocon/default.nix b/pkgs/pkgs-lib/formats/hocon/default.nix
index 0ae9c569ed2b1..d7ff1e85bda63 100644
--- a/pkgs/pkgs-lib/formats/hocon/default.nix
+++ b/pkgs/pkgs-lib/formats/hocon/default.nix
@@ -153,6 +153,7 @@ in
           inherit name;
 
           dontUnpack = true;
+          preferLocalBuild = true;
 
           json = builtins.toJSON finalValue;
           passAsFile = [ "json" ];
diff --git a/pkgs/pkgs-lib/formats/java-properties/default.nix b/pkgs/pkgs-lib/formats/java-properties/default.nix
index d3a4761f0f803..50eabb8cf3f31 100644
--- a/pkgs/pkgs-lib/formats/java-properties/default.nix
+++ b/pkgs/pkgs-lib/formats/java-properties/default.nix
@@ -46,7 +46,7 @@ in
       in attrsOf elemType;
 
     generate = name: value:
-      pkgs.runCommandLocal name
+      pkgs.runCommand name
         {
           # Requirements
           # ============
@@ -80,6 +80,7 @@ in
           #    libraries, but we can't rely on this in
           #    general.
 
+          preferLocalBuild = true;
           passAsFile = [ "value" ];
           value = builtins.toJSON value;
           nativeBuildInputs = [
diff --git a/pkgs/pkgs-lib/formats/libconfig/default.nix b/pkgs/pkgs-lib/formats/libconfig/default.nix
index 7433a72853533..5687ab8c00578 100644
--- a/pkgs/pkgs-lib/formats/libconfig/default.nix
+++ b/pkgs/pkgs-lib/formats/libconfig/default.nix
@@ -85,6 +85,7 @@ in
           inherit name;
 
           dontUnpack = true;
+          preferLocalBuild = true;
 
           json = builtins.toJSON value;
           passAsFile = [ "json" ];
diff --git a/pkgs/servers/adguardhome/bins.nix b/pkgs/servers/adguardhome/bins.nix
index e854a32266725..f683fd2583576 100644
--- a/pkgs/servers/adguardhome/bins.nix
+++ b/pkgs/servers/adguardhome/bins.nix
@@ -1,31 +1,31 @@
 { fetchurl, fetchzip }:
 {
 x86_64-darwin = fetchzip {
-  sha256 = "sha256-97o4rMNwikQZR3DPhhE+OPlY3gA9HqCQxBf+mZSfDMs=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.48/AdGuardHome_darwin_amd64.zip";
+  sha256 = "sha256-T5iD2Ojo+/125NeEhy911kitypLNcyJq9JPnPd/91HE=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.50/AdGuardHome_darwin_amd64.zip";
 };
 aarch64-darwin = fetchzip {
-  sha256 = "sha256-ZTGqn6xM9vRHmw2ask5P4vu+5BqkWfGS3ROzTN9VfXM=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.48/AdGuardHome_darwin_arm64.zip";
+  sha256 = "sha256-cge+z/oAiRcbZXijm6FDP7C5L7jLoi/QCr4unYoN+jQ=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.50/AdGuardHome_darwin_arm64.zip";
 };
 i686-linux = fetchurl {
-  sha256 = "sha256-EbRiiThZsmBD/grtm58Su78OeF/6buwMbx6eBsusgII=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.48/AdGuardHome_linux_386.tar.gz";
+  sha256 = "sha256-PHUUqWL3ILlQutWqUyd9jGi80lC/PQPInFQa66sx3CI=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.50/AdGuardHome_linux_386.tar.gz";
 };
 x86_64-linux = fetchurl {
-  sha256 = "sha256-FUnQJ3RRtsWz4DIO8Zi9Y6dO130qTdwj6RhJ6RNpljc=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.48/AdGuardHome_linux_amd64.tar.gz";
+  sha256 = "sha256-krxAIJSQrvZrXsAfFZOr/ons4mSKnaQ+fIdHULKcvyA=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.50/AdGuardHome_linux_amd64.tar.gz";
 };
 aarch64-linux = fetchurl {
-  sha256 = "sha256-OZDryRiwyM6XgoiOhCsM6AFOE9masnGu2m6sDRUAaeY=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.48/AdGuardHome_linux_arm64.tar.gz";
+  sha256 = "sha256-JDGOE+tdRo6De7+zQK8hKNu7YwJKphm2/PY8jfaE8QE=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.50/AdGuardHome_linux_arm64.tar.gz";
 };
 armv6l-linux = fetchurl {
-  sha256 = "sha256-aL/wKQ9lbPgaTGCjZAph5iggSTJB1+Rrxbpf6IVgjuU=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.48/AdGuardHome_linux_armv6.tar.gz";
+  sha256 = "sha256-yDtOpbfuiI0kt4XSLZvwf5Uvai2N0zpJhg6kKxyyM+8=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.50/AdGuardHome_linux_armv6.tar.gz";
 };
 armv7l-linux = fetchurl {
-  sha256 = "sha256-siWf7frIciYGVP7KgqS4Dr7o52y3QqGYvQlxtw2HnEo=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.48/AdGuardHome_linux_armv7.tar.gz";
+  sha256 = "sha256-UvuWyrinTozuc+SEc7twUhYbYUCUc6cG66sqmUS01nk=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.50/AdGuardHome_linux_armv7.tar.gz";
 };
 }
diff --git a/pkgs/servers/adguardhome/default.nix b/pkgs/servers/adguardhome/default.nix
index 88163d9935974..a226ee78733ad 100644
--- a/pkgs/servers/adguardhome/default.nix
+++ b/pkgs/servers/adguardhome/default.nix
@@ -7,7 +7,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "adguardhome";
-  version = "0.107.48";
+  version = "0.107.50";
   src = sources.${system} or (throw "Source for ${pname} is not available for ${system}");
 
   installPhase = ''
diff --git a/pkgs/servers/apcupsd/default.nix b/pkgs/servers/apcupsd/default.nix
index c5db5289c5a48..eeecfa2f0ec48 100644
--- a/pkgs/servers/apcupsd/default.nix
+++ b/pkgs/servers/apcupsd/default.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Daemon for controlling APC UPSes";
     homepage = "http://www.apcupsd.com/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = [ maintainers.bjornfor ];
   };
diff --git a/pkgs/servers/brickd/default.nix b/pkgs/servers/brickd/default.nix
index 590f6f315fe81..484d6cbaa5f2e 100644
--- a/pkgs/servers/brickd/default.nix
+++ b/pkgs/servers/brickd/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation {
     homepage = "https://www.tinkerforge.com/";
     description = "A daemon (or service on Windows) that acts as a bridge between the Bricks/Bricklets and the API bindings for the different programming languages";
     maintainers = [ lib.maintainers.qknight ];
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.all;
     mainProgram = "brickd";
   };
diff --git a/pkgs/servers/computing/slurm/default.nix b/pkgs/servers/computing/slurm/default.nix
index a3191a80f2ce4..4c247126144fc 100644
--- a/pkgs/servers/computing/slurm/default.nix
+++ b/pkgs/servers/computing/slurm/default.nix
@@ -14,7 +14,7 @@
 
 stdenv.mkDerivation rec {
   pname = "slurm";
-  version = "23.11.6.1";
+  version = "23.11.7.1";
 
   # N.B. We use github release tags instead of https://www.schedmd.com/downloads.php
   # because the latter does not keep older releases.
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     repo = "slurm";
     # The release tags use - instead of .
     rev = "${pname}-${builtins.replaceStrings ["."] ["-"] version}";
-    hash = "sha256-R1AKahldWDzEySX1o2+wDaEllJpESyU04kSqUEu5NKs=";
+    hash = "sha256-TR2dZXdM8SgBD8C/CHe8Zadh2xAzbtb4hgOfhCXkF0M=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/servers/dns/dnsdist/default.nix b/pkgs/servers/dns/dnsdist/default.nix
index 98a1bf7cc8c8c..e3afc6c8956d0 100644
--- a/pkgs/servers/dns/dnsdist/default.nix
+++ b/pkgs/servers/dns/dnsdist/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
     description = "DNS Loadbalancer";
     mainProgram = "dnsdist";
     homepage = "https://dnsdist.org";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ jojosch ];
   };
 }
diff --git a/pkgs/servers/dns/knot-resolver/default.nix b/pkgs/servers/dns/knot-resolver/default.nix
index 5af0a79c4dfde..8d614c7835f70 100644
--- a/pkgs/servers/dns/knot-resolver/default.nix
+++ b/pkgs/servers/dns/knot-resolver/default.nix
@@ -112,7 +112,8 @@ wrapped-full = runCommand unwrapped.name
       # For http module, prefill module, trust anchor bootstrap.
       # It brings lots of deps; some are useful elsewhere (e.g. cqueues).
       http
-      # psl isn't in nixpkgs yet, but policy.slice_randomize_psl() seems not important.
+      # used by policy.slice_randomize_psl()
+      psl
     ];
     preferLocalBuild = true;
     allowSubstitutes = false;
diff --git a/pkgs/servers/dns/pdns/default.nix b/pkgs/servers/dns/pdns/default.nix
index d4c664802aa33..dfa4a3e617328 100644
--- a/pkgs/servers/dns/pdns/default.nix
+++ b/pkgs/servers/dns/pdns/default.nix
@@ -97,7 +97,7 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://www.powerdns.com";
     platforms = platforms.unix;
     broken = stdenv.isDarwin;
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ mic92 disassembler nickcao ];
   };
 })
diff --git a/pkgs/servers/freeradius/default.nix b/pkgs/servers/freeradius/default.nix
index 7dfd0ceb8c473..36d16fda4fb4f 100644
--- a/pkgs/servers/freeradius/default.nix
+++ b/pkgs/servers/freeradius/default.nix
@@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://freeradius.org/";
     description = "A modular, high performance free RADIUS suite";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ sheenobu willibutz lheckemann ];
     platforms = with platforms; linux;
   };
diff --git a/pkgs/servers/ftp/vsftpd/default.nix b/pkgs/servers/ftp/vsftpd/default.nix
index 133fe17ec088c..da9b76526fa1f 100644
--- a/pkgs/servers/ftp/vsftpd/default.nix
+++ b/pkgs/servers/ftp/vsftpd/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A very secure FTP daemon";
     mainProgram = "vsftpd";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/servers/geospatial/geoserver/default.nix b/pkgs/servers/geospatial/geoserver/default.nix
index b171161d40895..3ccdd5edc4323 100644
--- a/pkgs/servers/geospatial/geoserver/default.nix
+++ b/pkgs/servers/geospatial/geoserver/default.nix
@@ -9,11 +9,11 @@
 }:
 stdenv.mkDerivation (finalAttrs: rec {
   pname = "geoserver";
-  version = "2.25.0";
+  version = "2.25.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/geoserver/GeoServer/${version}/geoserver-${version}-bin.zip";
-    sha256 = "sha256-maWDRRIo5Mqjb6K1NWFplmQwvJ9fLXGnelZcslwp4Oo=";
+    sha256 = "sha256-6F99zHTVRpC64rIPxdrH0ujgoNGQfT53RJ7Rg80ieeA=";
   };
 
   patches = [
@@ -71,7 +71,7 @@ stdenv.mkDerivation (finalAttrs: rec {
           '';
         });
       tests.geoserver = nixosTests.geoserver;
-      passthru.updateScript = ./update.sh;
+      updateScript = ./update.sh;
     };
 
   meta = with lib; {
diff --git a/pkgs/servers/gopher/gofish/default.nix b/pkgs/servers/gopher/gofish/default.nix
index d346c1372997b..04613fd6e170a 100644
--- a/pkgs/servers/gopher/gofish/default.nix
+++ b/pkgs/servers/gopher/gofish/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A lightweight Gopher server";
     homepage = "https://gofish.sourceforge.net/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = [ maintainers.AndersonTorres ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/servers/gpm/default.nix b/pkgs/servers/gpm/default.nix
index 1c083b8d21560..4ce3843181613 100644
--- a/pkgs/servers/gpm/default.nix
+++ b/pkgs/servers/gpm/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.nico.schottelius.org/software/gpm/";
     description = "A daemon that provides mouse support on the Linux console";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux ++ platforms.cygwin;
     maintainers = with maintainers; [ eelco ];
   };
diff --git a/pkgs/servers/headphones/default.nix b/pkgs/servers/headphones/default.nix
index 704268c24257e..fa33d16961fe2 100644
--- a/pkgs/servers/headphones/default.nix
+++ b/pkgs/servers/headphones/default.nix
@@ -2,14 +2,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "headphones";
-  version = "0.6.1";
+  version = "0.6.3";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "rembo10";
     repo = "headphones";
     rev = "v${version}";
-    sha256 = "1pj6xrcc6g336lb2knlc9l3qxgj3jaaymnbd7bmfjahgq5cp4d4v";
+    sha256 = "195v0ylhqd49bqq3dpig5nh0kivmwgmn0977fknix9j14jpvmd3b";
   };
 
   dontBuild = true;
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index 9824cc3333142..23f17c9ad7c18 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -2,7 +2,7 @@
 # Do not edit!
 
 {
-  version = "2024.5.4";
+  version = "2024.5.5";
   components = {
     "3_day_blinds" = ps: with ps; [
     ];
@@ -3802,7 +3802,8 @@
       zeroconf
     ];
     "rympro" = ps: with ps; [
-    ]; # missing inputs: pyrympro
+      pyrympro
+    ];
     "sabnzbd" = ps: with ps; [
       pysabnzbd
     ];
@@ -4895,7 +4896,8 @@
       pyweatherflowudp
     ];
     "weatherflow_cloud" = ps: with ps; [
-    ]; # missing inputs: weatherflow4py
+      weatherflow4py
+    ];
     "weatherkit" = ps: with ps; [
       apple-weatherkit
     ];
@@ -5777,6 +5779,7 @@
     "ruckus_unleashed"
     "ruuvi_gateway"
     "ruuvitag_ble"
+    "rympro"
     "sabnzbd"
     "samsungtv"
     "sanix"
@@ -5972,6 +5975,7 @@
     "waze_travel_time"
     "weather"
     "weatherflow"
+    "weatherflow_cloud"
     "weatherkit"
     "webhook"
     "webostv"
diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/android-tv-card/default.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/android-tv-card/default.nix
index 54186a99ab2da..bf98c9a9438ae 100644
--- a/pkgs/servers/home-assistant/custom-lovelace-modules/android-tv-card/default.nix
+++ b/pkgs/servers/home-assistant/custom-lovelace-modules/android-tv-card/default.nix
@@ -5,18 +5,18 @@
 
 buildNpmPackage rec {
   pname = "android-tv-card";
-  version = "3.7.3";
+  version = "3.7.4";
 
   src = fetchFromGitHub {
     owner = "Nerwyn";
     repo = "android-tv-card";
     rev = version;
-    hash = "sha256-uhdo4K5JqKogQGKr0dkFl579YeAQNbhOwHAFTLpqY6Y=";
+    hash = "sha256-5GdN6zCE24kGLM4ka8vHdpIEWTQAzve/1l3+5OV95i0=";
   };
 
   patches = [ ./dont-call-git.patch ];
 
-  npmDepsHash = "sha256-wrmj4lewxBnWVlpkb/AP3lfuGNcvYGf+HWBQw7bcr1Q=";
+  npmDepsHash = "sha256-fVnqGe/ao0Ilk/mWbHGscYQlIIk3K0mpm1wS4F8Lio4=";
 
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix
index bb2de0881bf6b..d122c85fc75ef 100644
--- a/pkgs/servers/home-assistant/default.nix
+++ b/pkgs/servers/home-assistant/default.nix
@@ -550,7 +550,7 @@ let
   extraBuildInputs = extraPackages python.pkgs;
 
   # Don't forget to run update-component-packages.py after updating
-  hassVersion = "2024.5.4";
+  hassVersion = "2024.5.5";
 
 in python.pkgs.buildPythonApplication rec {
   pname = "homeassistant";
@@ -568,13 +568,13 @@ in python.pkgs.buildPythonApplication rec {
     owner = "home-assistant";
     repo = "core";
     rev = "refs/tags/${version}";
-    hash = "sha256-YJluhc1MCRxeDtn8R9tF2QYA6qCiYpjOpRJaQeay3lk=";
+    hash = "sha256-WAwLir9+O82kNBAwy0hUdfVxgDb3C4sIRDcyzVxfcuM=";
   };
 
   # Secondary source is pypi sdist for translations
   sdist = fetchPypi {
     inherit pname version;
-    hash = "sha256-e2evRFP/l2HHcDgMUWQEM7xvvAfLRwdFtz+u2mwXepI=";
+    hash = "sha256-kcZM+IK96/q2GXeDSJzJTbzbz5mYcHevTDLpKspII6o=";
   };
 
   build-system = with python.pkgs; [
diff --git a/pkgs/servers/home-assistant/stubs.nix b/pkgs/servers/home-assistant/stubs.nix
index 6587cda515dc6..dd7cc66e01e86 100644
--- a/pkgs/servers/home-assistant/stubs.nix
+++ b/pkgs/servers/home-assistant/stubs.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "homeassistant-stubs";
-  version = "2024.5.4";
+  version = "2024.5.5";
   format = "pyproject";
 
   disabled = python.version != home-assistant.python.version;
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "KapJI";
     repo = "homeassistant-stubs";
     rev = "refs/tags/${version}";
-    hash = "sha256-wW3qRXdT3FmAj5bOBzBmrD97o/pONowi7F0Cbj6ndLg=";
+    hash = "sha256-lZuP6DL9nuc5md2vDVGucOE8MrQOg7QHx5vYPuvFw50=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/servers/http/angie/default.nix b/pkgs/servers/http/angie/default.nix
index 233298053b2e0..f57dc2e012bd9 100644
--- a/pkgs/servers/http/angie/default.nix
+++ b/pkgs/servers/http/angie/default.nix
@@ -3,21 +3,25 @@
 , lib
 , fetchurl
 , nixosTests
+, withAcme ? false
 , withQuic ? false
 , fetchpatch
 , ...
 }@args:
 
 callPackage ../nginx/generic.nix args rec {
-  version = "1.4.1";
+  version = "1.5.1";
   pname = if withQuic then "angieQuic" else "angie";
 
   src = fetchurl {
     url = "https://download.angie.software/files/angie-${version}.tar.gz";
-    hash = "sha256-g6PyuyulnltnZJWiZ01iYG1k6Lz5nO+gneb8M4q3WHo=";
+    hash = "sha256-pSBy+Gv3rSa0WqQOxLHM0V03/vLqvOYBGxrjY9qsBfQ=";
   };
 
-  configureFlags = lib.optional withQuic [
+  configureFlags = lib.optionals withAcme [
+    "--with-http_acme_module"
+    "--http-acme-client-path=/var/lib/nginx/acme"
+  ] ++ lib.optionals withQuic [
     "--with-http_v3_module"
   ];
 
diff --git a/pkgs/servers/http/apache-modules/mod_tile/default.nix b/pkgs/servers/http/apache-modules/mod_tile/default.nix
index f97ae6269011d..cd3937fe1fa62 100644
--- a/pkgs/servers/http/apache-modules/mod_tile/default.nix
+++ b/pkgs/servers/http/apache-modules/mod_tile/default.nix
@@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/openstreetmap/mod_tile";
     description = "Efficiently render and serve OpenStreetMap tiles using Apache and Mapnik";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ jglukasik ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/servers/http/dufs/default.nix b/pkgs/servers/http/dufs/default.nix
index 433a68d1a54a5..18296529570b6 100644
--- a/pkgs/servers/http/dufs/default.nix
+++ b/pkgs/servers/http/dufs/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "dufs";
-  version = "0.40.0";
+  version = "0.41.0";
 
   src = fetchFromGitHub {
     owner = "sigoden";
     repo = "dufs";
     rev = "v${version}";
-    hash = "sha256-BoFoF7V6bTQiJ+afGnivviU/s2ikOxAX06s+AwRxo8Q=";
+    hash = "sha256-Ab/f6n2n24mLsWS4WF6jOBt9m7dyeSP0ftYixKANsjY=";
   };
 
-  cargoHash = "sha256-B0K/lco7suYM0/02LaDbeqyt4zyiwoeBxhmUPsVTvkw=";
+  cargoHash = "sha256-CNHDZHyg4jrEl3hmdQ7ITCtg9iTmB2RwDAzqSirOCO4=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/servers/http/gatling/default.nix b/pkgs/servers/http/gatling/default.nix
index 1474232bd6243..5efd3b039c9f4 100644
--- a/pkgs/servers/http/gatling/default.nix
+++ b/pkgs/servers/http/gatling/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A high performance web server";
     homepage = "http://www.fefe.de/gatling/";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Only;
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/servers/http/hiawatha/default.nix b/pkgs/servers/http/hiawatha/default.nix
index d92d5d51a4f8e..55414800361c6 100644
--- a/pkgs/servers/http/hiawatha/default.nix
+++ b/pkgs/servers/http/hiawatha/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.hiawatha-webserver.org";
     description = "An advanced and secure webserver";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     platforms = platforms.unix;    # "Hiawatha runs perfectly on Linux, BSD and MacOS X"
     maintainers = [];
   };
diff --git a/pkgs/servers/http/lwan/default.nix b/pkgs/servers/http/lwan/default.nix
index bc155d353b9fe..14346530571ec 100644
--- a/pkgs/servers/http/lwan/default.nix
+++ b/pkgs/servers/http/lwan/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
       support.
     ";
     homepage = "https://lwan.ws/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ leenaars ];
   };
diff --git a/pkgs/servers/http/nginx/generic.nix b/pkgs/servers/http/nginx/generic.nix
index e998675b57664..bc97c4972be76 100644
--- a/pkgs/servers/http/nginx/generic.nix
+++ b/pkgs/servers/http/nginx/generic.nix
@@ -4,6 +4,8 @@ outer@{ lib, stdenv, fetchurl, fetchpatch, openssl, zlib, pcre, libxml2, libxslt
 , nixosTests
 , installShellFiles, substituteAll, removeReferencesTo, gd, geoip, perl
 , withDebug ? false
+, withGeoIP ? false
+, withImageFilter ? false
 , withKTLS ? true
 , withStream ? true
 , withMail ? false
@@ -64,9 +66,11 @@ stdenv.mkDerivation {
     removeReferencesTo
   ] ++ nativeBuildInputs;
 
-  buildInputs = [ openssl zlib pcre libxml2 libxslt gd geoip perl ]
+  buildInputs = [ openssl zlib pcre libxml2 libxslt perl ]
     ++ buildInputs
-    ++ mapModules "inputs";
+    ++ mapModules "inputs"
+    ++ lib.optional withGeoIP geoip
+    ++ lib.optional withImageFilter gd;
 
   configureFlags = [
     "--sbin-path=bin/nginx"
@@ -112,10 +116,9 @@ stdenv.mkDerivation {
     "--with-http_perl_module"
     "--with-perl=${perl}/bin/perl"
     "--with-perl_modules_path=lib/perl5"
-  ] ++ lib.optional withSlice "--with-http_slice_module"
-    ++ lib.optional (gd != null) "--with-http_image_filter_module"
-    ++ lib.optional (geoip != null) "--with-http_geoip_module"
-    ++ lib.optional (withStream && geoip != null) "--with-stream_geoip_module"
+  ] ++ lib.optional withImageFilter "--with-http_image_filter_module"
+    ++ lib.optional withSlice "--with-http_slice_module"
+    ++ lib.optionals withGeoIP ([ "--with-http_geoip_module" ] ++ lib.optional withStream "--with-stream_geoip_module")
     ++ lib.optional (with stdenv.hostPlatform; isLinux || isFreeBSD) "--with-file-aio"
     ++ configureFlags
     ++ map (mod: "--add-module=${mod.src}") modules;
@@ -130,6 +133,9 @@ stdenv.mkDerivation {
     "-Wno-error=deprecated-declarations"
     "-Wno-error=gnu-folding-constant"
     "-Wno-error=unused-but-set-variable"
+  ] ++ lib.optionals stdenv.hostPlatform.isMusl [
+    # fix sys/cdefs.h is deprecated
+    "-Wno-error=cpp"
   ]);
 
   configurePlatforms = [];
diff --git a/pkgs/servers/http/webfs/default.nix b/pkgs/servers/http/webfs/default.nix
index 812f5a0d00f5a..e8552b4b57c38 100644
--- a/pkgs/servers/http/webfs/default.nix
+++ b/pkgs/servers/http/webfs/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "HTTP server for purely static content";
     homepage    = "http://linux.bytesex.org/misc/webfs.html";
-    license     = licenses.gpl2;
+    license     = licenses.gpl2Plus;
     platforms   = platforms.all;
     maintainers = with maintainers; [ zimbatm ];
     mainProgram = "webfsd";
diff --git a/pkgs/servers/icecast/default.nix b/pkgs/servers/icecast/default.nix
index de375bb51841f..488c96a52123f 100644
--- a/pkgs/servers/icecast/default.nix
+++ b/pkgs/servers/icecast/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     '';
 
     homepage = "https://www.icecast.org";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ jcumming ];
     platforms = with lib.platforms; unix;
   };
diff --git a/pkgs/servers/icecream/default.nix b/pkgs/servers/icecream/default.nix
index e6691e29aa126..20c782e702382 100644
--- a/pkgs/servers/icecream/default.nix
+++ b/pkgs/servers/icecream/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Distributed compiler with a central scheduler to share build load";
     inherit (src.meta) homepage;
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ emantor ];
     platforms = with platforms; linux ++ darwin;
   };
diff --git a/pkgs/servers/identd/nullidentdmod/default.nix b/pkgs/servers/identd/nullidentdmod/default.nix
index c027e143b5031..7df6eac5fb0d6 100644
--- a/pkgs/servers/identd/nullidentdmod/default.nix
+++ b/pkgs/servers/identd/nullidentdmod/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Simple identd that just replies with a random string or customized userid";
     mainProgram = "nullidentdmod";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     homepage = "http://acidhub.click/NullidentdMod";
     maintainers = with maintainers; [ das_j ];
     platforms = platforms.linux; # Must be run by systemd
diff --git a/pkgs/servers/identd/oidentd/default.nix b/pkgs/servers/identd/oidentd/default.nix
index 510834ed282f7..4d3c03d90564e 100644
--- a/pkgs/servers/identd/oidentd/default.nix
+++ b/pkgs/servers/identd/oidentd/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     description = "Configurable Ident protocol server";
     mainProgram = "oidentd";
     homepage = "https://oidentd.janikrabe.com/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/servers/irc/charybdis/default.nix b/pkgs/servers/irc/charybdis/default.nix
index 37d5b299837d1..387914e8a6abd 100644
--- a/pkgs/servers/irc/charybdis/default.nix
+++ b/pkgs/servers/irc/charybdis/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "IRCv3 server designed to be highly scalable";
     homepage    = "https://github.com/charybdis-ircd/charybdis";
-    license     = licenses.gpl2;
+    license     = licenses.gpl2Plus;
     maintainers = with maintainers; [ lassulus ];
     platforms   = platforms.unix;
   };
diff --git a/pkgs/servers/irc/ngircd/default.nix b/pkgs/servers/irc/ngircd/default.nix
index caff85394f2ed..53afea069fea5 100644
--- a/pkgs/servers/irc/ngircd/default.nix
+++ b/pkgs/servers/irc/ngircd/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     description = "Next Generation IRC Daemon";
     mainProgram = "ngircd";
     homepage    = "https://ngircd.barton.de";
-    license     = lib.licenses.gpl2;
+    license     = lib.licenses.gpl2Plus;
     platforms   = lib.platforms.all;
   };
 }
diff --git a/pkgs/servers/jellyfin/default.nix b/pkgs/servers/jellyfin/default.nix
index ce59d31ce3031..b122231c1f285 100644
--- a/pkgs/servers/jellyfin/default.nix
+++ b/pkgs/servers/jellyfin/default.nix
@@ -1,30 +1,29 @@
-{ lib
-, fetchFromGitHub
-, nixosTests
-, stdenv
-, dotnetCorePackages
-, buildDotnetModule
-, ffmpeg
-, fontconfig
-, freetype
-, jellyfin-web
-, sqlite
+{
+  lib,
+  fetchFromGitHub,
+  nixosTests,
+  stdenv,
+  dotnetCorePackages,
+  buildDotnetModule,
+  ffmpeg,
+  fontconfig,
+  freetype,
+  jellyfin-web,
+  sqlite,
 }:
 
 buildDotnetModule rec {
   pname = "jellyfin";
-  version = "10.9.1"; # ensure that jellyfin-web has matching version
+  version = "10.9.3"; # ensure that jellyfin-web has matching version
 
   src = fetchFromGitHub {
     owner = "jellyfin";
     repo = "jellyfin";
     rev = "v${version}";
-    sha256 = "sha256-ZvXz4gnpYE9bMvOHbmLhqJLUomPmk1K9ysw+Wlsyhr4=";
+    sha256 = "sha256-gJMz2LfxC0JXqGYNKNz1zRbWZOH1UxbcoGtmdymZ/Oo=";
   };
 
-  propagatedBuildInputs = [
-    sqlite
-  ];
+  propagatedBuildInputs = [ sqlite ];
 
   projectFile = "Jellyfin.Server/Jellyfin.Server.csproj";
   executables = [ "jellyfin" ];
@@ -56,7 +55,12 @@ buildDotnetModule rec {
     homepage = "https://jellyfin.org/";
     # https://github.com/jellyfin/jellyfin/issues/610#issuecomment-537625510
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ nyanloutre minijackson purcell jojosch ];
+    maintainers = with maintainers; [
+      nyanloutre
+      minijackson
+      purcell
+      jojosch
+    ];
     mainProgram = "jellyfin";
     platforms = dotnet-runtime.meta.platforms;
   };
diff --git a/pkgs/servers/jellyfin/web.nix b/pkgs/servers/jellyfin/web.nix
index a2437af14ee41..f5d65ae059837 100644
--- a/pkgs/servers/jellyfin/web.nix
+++ b/pkgs/servers/jellyfin/web.nix
@@ -4,6 +4,7 @@
   overrideSDK,
   fetchFromGitHub,
   buildNpmPackage,
+  jellyfin,
   nix-update-script,
   pkg-config,
   xcbuild,
@@ -26,16 +27,18 @@ let
 in
 buildNpmPackage' rec {
   pname = "jellyfin-web";
-  version = "10.9.1";
+  version = "10.9.3";
 
-  src = fetchFromGitHub {
-    owner = "jellyfin";
-    repo = "jellyfin-web";
-    rev = "v${version}";
-    hash = "sha256-KkPZ8OvGN/0gdoSVh9q0qEilae3tccgHRQQvrTsvycA=";
-  };
+  src =
+    assert version == jellyfin.version;
+    fetchFromGitHub {
+      owner = "jellyfin";
+      repo = "jellyfin-web";
+      rev = "v${version}";
+      hash = "sha256-duq2tilUDEzj7o3Nq3Ku5qVJm4XDqVmqkQQIK/dlTpE=";
+    };
 
-  npmDepsHash = "sha256-LmbygyCYSp0gtjU2pNCV17WEyEoaIzPs7H9UoMFV+PU=";
+  npmDepsHash = "sha256-nKA/mR1ug1yq4+jJGhWGtAL9Zsx3KjDPqt5rkCE4LFU=";
 
   npmBuildScript = [ "build:production" ];
 
diff --git a/pkgs/servers/klipper/default.nix b/pkgs/servers/klipper/default.nix
index cb8e81a6853c7..10732156ada41 100644
--- a/pkgs/servers/klipper/default.nix
+++ b/pkgs/servers/klipper/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "klipper";
-  version = "0.12.0-unstable-2024-05-16";
+  version = "0.12.0-unstable-2024-05-25";
 
   src = fetchFromGitHub {
     owner = "KevinOConnor";
     repo = "klipper";
-    rev = "b7f7b8a346388cc32d80b6e6f60e5fdb4cbd3ce6";
-    sha256 = "sha256-TkhDLy7H1U2tjLJikkOgP+2apRJtZe9EIsNHzzljiB4=";
+    rev = "3078912f1d9e063906b9b40eda73d63065900212";
+    sha256 = "sha256-DvGxsUJ24yfbSR8gNA6vBBSw72VIOr1R6mGXzcpQZ7I=";
   };
 
   sourceRoot = "${src.name}/klippy";
diff --git a/pkgs/servers/kwakd/default.nix b/pkgs/servers/kwakd/default.nix
index fc0cdc43831d5..297e16cc52187 100644
--- a/pkgs/servers/kwakd/default.nix
+++ b/pkgs/servers/kwakd/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "A super small webserver that serves blank pages";
     mainProgram = "kwakd";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = [ maintainers.nicknovitski ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/servers/ldap/389/default.nix b/pkgs/servers/ldap/389/default.nix
index ce61f9676e188..c49f606c8fd7c 100644
--- a/pkgs/servers/ldap/389/default.nix
+++ b/pkgs/servers/ldap/389/default.nix
@@ -31,26 +31,35 @@
 , withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd, systemd
 , zlib
 , rsync
+, fetchpatch
 , withCockpit ? true
 , withAsan ? false
 }:
 
 stdenv.mkDerivation rec {
   pname = "389-ds-base";
-  version = "2.4.3";
+  version = "2.4.5";
 
   src = fetchFromGitHub {
     owner = "389ds";
     repo = pname;
     rev = "${pname}-${version}";
-    hash = "sha256-bUjL1fjzyrq9jjpB/xbRCAISiPBwrlXbbDqT0aLOVOc=";
+    hash = "sha256-12JCd2R00L0T5EPUNO/Aw2HRID+z2krNQ09RSX9Qkj8=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "fix-32bit.patch";
+      url = "https://github.com/389ds/389-ds-base/commit/1fe029c495cc9f069c989cfbb09d449a078c56e2.patch";
+      hash = "sha256-b0HSaDjuEUKERIXKg8np+lZDdZNmrCTAXybJzF+0hq0=";
+    })
+  ];
+
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     sourceRoot = "${src.name}/src";
     name = "${pname}-${version}";
-    hash = "sha256-FlrHaz1whwzDvm3MA+wEaQpq7h2X9ZDnQc3f73vLZ58=";
+    hash = "sha256-fE3bJROwti9Ru0jhCiWhXcuQdxXTqzN9yOd2nlhKABI=";
   };
 
   nativeBuildInputs = [
@@ -141,9 +150,5 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.ners ];
-    # https://hydra.nixos.org/build/249763145, doesn't build since glibc 2.39.
-    # Potential fix is documented in https://github.com/389ds/389-ds-base/issues/5332,
-    # but it doesn't apply here.
-    broken = true;
   };
 }
diff --git a/pkgs/servers/ldap/lldap/default.nix b/pkgs/servers/ldap/lldap/default.nix
index cf4cc82ed8751..5097bf20dc7ac 100644
--- a/pkgs/servers/ldap/lldap/default.nix
+++ b/pkgs/servers/ldap/lldap/default.nix
@@ -51,7 +51,7 @@ let
     ];
 
     buildPhase = ''
-      HOME=`pwd` RUSTFLAGS="-C linker=lld" ./app/build.sh
+      HOME=`pwd` ./app/build.sh
     '';
 
     installPhase = ''
diff --git a/pkgs/servers/limesurvey/default.nix b/pkgs/servers/limesurvey/default.nix
index 791106ca3b0ff..9f7db0b916b6d 100644
--- a/pkgs/servers/limesurvey/default.nix
+++ b/pkgs/servers/limesurvey/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Open source survey application";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     homepage = "https://www.limesurvey.org";
     maintainers = with maintainers; [offline];
     platforms = with platforms; unix;
diff --git a/pkgs/servers/mail/nullmailer/default.nix b/pkgs/servers/mail/nullmailer/default.nix
index 95263e435f025..f223f163fdcbf 100644
--- a/pkgs/servers/mail/nullmailer/default.nix
+++ b/pkgs/servers/mail/nullmailer/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
       A sendmail/qmail/etc replacement MTA for hosts which relay to a fixed set of smart relays.
       It is designed to be simple to configure, secure, and easily extendable.
     '';
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.all;
     maintainers = with lib.maintainers ; [ sargon ];
   };
diff --git a/pkgs/servers/mail/postgrey/default.nix b/pkgs/servers/mail/postgrey/default.nix
index 07b351bfb2161..65fbe41b91016 100644
--- a/pkgs/servers/mail/postgrey/default.nix
+++ b/pkgs/servers/mail/postgrey/default.nix
@@ -19,7 +19,7 @@ in runCommand name {
     description = "A postfix policy server to provide greylisting";
     homepage = "https://postgrey.schweikert.ch/";
     platforms = postfix.meta.platforms;
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
   };
 } ''
     mkdir -p $out/bin
diff --git a/pkgs/servers/mail/postsrsd/default.nix b/pkgs/servers/mail/postsrsd/default.nix
index c31fadc8ecbda..65e6b83a693ff 100644
--- a/pkgs/servers/mail/postsrsd/default.nix
+++ b/pkgs/servers/mail/postsrsd/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/roehling/postsrsd";
     description = "Postfix Sender Rewriting Scheme daemon";
     mainProgram = "postsrsd";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ abbradar ];
   };
diff --git a/pkgs/servers/mail/rspamd/default.nix b/pkgs/servers/mail/rspamd/default.nix
index 2675ab7cbdd16..dd34e5cc2a62b 100644
--- a/pkgs/servers/mail/rspamd/default.nix
+++ b/pkgs/servers/mail/rspamd/default.nix
@@ -2,6 +2,8 @@
 , lib
 , fetchFromGitHub
 , cmake
+, doctest
+, fmt
 , perl
 , glib
 , luajit
@@ -17,6 +19,8 @@
 , lapack
 , lua
 , libsodium
+, xxHash
+, zstd
 , withBlas ? true
 , withHyperscan ? stdenv.isx86_64
 , withLuaJIT ? stdenv.isx86_64
@@ -39,7 +43,7 @@ stdenv.mkDerivation rec {
   hardeningEnable = [ "pie" ];
 
   nativeBuildInputs = [ cmake pkg-config perl ];
-  buildInputs = [ glib openssl pcre sqlite ragel icu jemalloc libsodium ]
+  buildInputs = [ doctest fmt glib openssl pcre sqlite ragel icu jemalloc libsodium xxHash zstd ]
     ++ lib.optional withHyperscan hyperscan
     ++ lib.optionals withBlas [ blas lapack ]
     ++ lib.optional withLuaJIT luajit ++ lib.optional (!withLuaJIT) lua;
@@ -53,6 +57,10 @@ stdenv.mkDerivation rec {
     "-DLOGDIR=/var/log/rspamd"
     "-DLOCAL_CONFDIR=/etc/rspamd"
     "-DENABLE_JEMALLOC=ON"
+    "-DSYSTEM_DOCTEST=ON"
+    "-DSYSTEM_FMT=ON"
+    "-DSYSTEM_XXHASH=ON"
+    "-DSYSTEM_ZSTD=ON"
   ] ++ lib.optional withHyperscan "-DENABLE_HYPERSCAN=ON"
   ++ lib.optional (!withLuaJIT) "-DENABLE_LUAJIT=OFF";
 
diff --git a/pkgs/servers/mail/smtprelay/default.nix b/pkgs/servers/mail/smtprelay/default.nix
index 688c415caf26d..be8cfb4861f2a 100644
--- a/pkgs/servers/mail/smtprelay/default.nix
+++ b/pkgs/servers/mail/smtprelay/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "smtprelay";
-  version = "1.10.0";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "decke";
     repo = "smtprelay";
     rev = "refs/tags/v${version}";
-    hash = "sha256-zZ3rgbo8nvrpFMtUmhyXnTgoVd0FIh1kWzuM2hCh5gY=";
+    hash = "sha256-8N+JJp0/d59s8rU7t0YtrTepVXpxXc8PET1f+AgEpG0=";
   };
 
-  vendorHash = "sha256-assGzM8/APNVVm2vZapPK6sh3tWNTnw6PSFwvEqNDPk=";
+  vendorHash = "sha256-BX1Ll0EEo59p+Pe5oM6+6zT6fvnv1RsfX8YEh9RKkWU=";
 
   subPackages = [
     "."
diff --git a/pkgs/servers/mail/sympa/default.nix b/pkgs/servers/mail/sympa/default.nix
index 5d29f6fbb5362..f431278de4d17 100644
--- a/pkgs/servers/mail/sympa/default.nix
+++ b/pkgs/servers/mail/sympa/default.nix
@@ -111,7 +111,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Open source mailing list manager";
     homepage = "https://www.sympa.org";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ sorki mmilata ];
     platforms = platforms.all;
   };
diff --git a/pkgs/servers/matrix-synapse/sliding-sync/default.nix b/pkgs/servers/matrix-synapse/sliding-sync/default.nix
index b0fc3c27f9c21..eaaa3f2292d1a 100644
--- a/pkgs/servers/matrix-synapse/sliding-sync/default.nix
+++ b/pkgs/servers/matrix-synapse/sliding-sync/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "matrix-sliding-sync";
-  version = "0.99.17";
+  version = "0.99.18";
 
   src = fetchFromGitHub {
     owner = "matrix-org";
     repo = "sliding-sync";
     rev = "refs/tags/v${version}";
-    hash = "sha256-tzhz2Jlhvn2blO5jdWNS++V28kNXmmg+a2BU7g5zTx0=";
+    hash = "sha256-zqqCgmzea25H1wcvgIb4hIV3maReL9tmNxvo9JsSlZk=";
   };
 
   vendorHash = "sha256-THjvc0TepIBFOTte7t63Dmadf3HMuZ9m0YzQMI5e5Pw=";
diff --git a/pkgs/servers/minio/default.nix b/pkgs/servers/minio/default.nix
index 1d54e942eda8e..9109a09a866b8 100644
--- a/pkgs/servers/minio/default.nix
+++ b/pkgs/servers/minio/default.nix
@@ -21,16 +21,16 @@ let
 in
 buildGoModule rec {
   pname = "minio";
-  version = "2024-05-10T01-41-38Z";
+  version = "2024-05-27T19-17-46Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "minio";
     rev = "RELEASE.${version}";
-    hash = "sha256-qYNyAfWdmQPMIwHEzSlA4nf93aFkR1TvulOVNf46wAI=";
+    hash = "sha256-8ZoTRYsY8aXy0wxN38xFhi7EskBin5s9xOG0sXUC4gU=";
   };
 
-  vendorHash = "sha256-fyNOROkByuH5oEnYiQd0XhqqDKL4EnOEZedXCBI6BuY=";
+  vendorHash = "sha256-hiy1pzB+DOjbs/eUv6zXYIrGzSXfVp36jrcs+Bw8Mrs=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/monitoring/buildkite-agent-metrics/default.nix b/pkgs/servers/monitoring/buildkite-agent-metrics/default.nix
index 4139b9e6f81d3..b6fc47b40bc3d 100644
--- a/pkgs/servers/monitoring/buildkite-agent-metrics/default.nix
+++ b/pkgs/servers/monitoring/buildkite-agent-metrics/default.nix
@@ -4,7 +4,7 @@
 }:
 buildGoModule rec {
   pname = "buildkite-agent-metrics";
-  version = "5.9.4";
+  version = "5.9.5";
 
   outputs = [ "out" "lambda" ];
 
@@ -12,10 +12,10 @@ buildGoModule rec {
     owner = "buildkite";
     repo = "buildkite-agent-metrics";
     rev = "v${version}";
-    hash = "sha256-S9dkahAAoOwwEcWTzo+JkoZkQAQqPT5tfSZY9IWnWaU=";
+    hash = "sha256-oNUNSy8VzyOteNge/ZIoln+GGa/xWl6MNmU/Ke/nlBk=";
   };
 
-  vendorHash = "sha256-r+K/RbNmVYm1LKTZvvKR9zBM35xLkMN8SadOttoTWzo=";
+  vendorHash = "sha256-i2+nefRE4BD93rG842oZj0/coamYVRMPxEHio80bdWk=";
 
   postInstall = ''
     mkdir -p $lambda/bin
diff --git a/pkgs/servers/monitoring/consul-alerts/default.nix b/pkgs/servers/monitoring/consul-alerts/default.nix
index 23bf58c98e597..e65e291b3df83 100644
--- a/pkgs/servers/monitoring/consul-alerts/default.nix
+++ b/pkgs/servers/monitoring/consul-alerts/default.nix
@@ -22,7 +22,7 @@ buildGoPackage rec {
     homepage = "https://github.com/AcalephStorage/consul-alerts";
     # As per README
     platforms = platforms.linux ++ platforms.freebsd ++ platforms.darwin;
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ nh2 ];
   };
 }
diff --git a/pkgs/servers/monitoring/fusion-inventory/default.nix b/pkgs/servers/monitoring/fusion-inventory/default.nix
index c4e2cc53291b6..b4535c80877de 100644
--- a/pkgs/servers/monitoring/fusion-inventory/default.nix
+++ b/pkgs/servers/monitoring/fusion-inventory/default.nix
@@ -78,7 +78,7 @@ perlPackages.buildPerlPackage rec {
   meta = with lib; {
     homepage = "http://www.fusioninventory.org";
     description = "FusionInventory unified Agent for UNIX, Linux, Windows and MacOSX";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Only;
     maintainers = [ maintainers.phile314 ];
   };
 }
diff --git a/pkgs/servers/monitoring/grafana-image-renderer/default.nix b/pkgs/servers/monitoring/grafana-image-renderer/default.nix
index 659387d52e0ee..92d14466b00c5 100644
--- a/pkgs/servers/monitoring/grafana-image-renderer/default.nix
+++ b/pkgs/servers/monitoring/grafana-image-renderer/default.nix
@@ -7,18 +7,18 @@
 
 mkYarnPackage rec {
   pname = "grafana-image-renderer";
-  version = "3.10.2";
+  version = "3.10.5";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = "grafana-image-renderer";
     rev = "v${version}";
-    hash = "sha256-GL9uJV4/j3tcD9DMoBuO/59OsfG+njc2FH1Bt3VP7K8=";
+    hash = "sha256-Ah78mapwGTD5mTPN7oKk8iwXpp2RMQ8nm0QX3/jTjKU=";
   };
 
   offlineCache = fetchYarnDeps {
     yarnLock = src + "/yarn.lock";
-    hash = "sha256-xgaaIY5Jy8JTSJVGHwPOYgh+fASSPiyoUcmLN516jic=";
+    hash = "sha256-o8Bxc5KyoYMYJ6FwQ6PSi7A0LhU4VNuXh5xXbEXLb4Y=";
   };
 
   packageJSON = ./package.json;
diff --git a/pkgs/servers/monitoring/grafana-image-renderer/package.json b/pkgs/servers/monitoring/grafana-image-renderer/package.json
index 0d81a12c11094..e7435c2ebdaba 100644
--- a/pkgs/servers/monitoring/grafana-image-renderer/package.json
+++ b/pkgs/servers/monitoring/grafana-image-renderer/package.json
@@ -18,6 +18,7 @@
     "build": "tsc",
     "start": "node build/app.js server --config=dev.json",
     "create-gcom-plugin-json": "ts-node scripts/createGcomPluginJson.ts ./scripts/tmp",
+    "push-to-gcom": "sh ./scripts/push-to-gcom.sh",
     "test-update": "cross-env UPDATE_GOLDEN=true jest",
     "test": "sh ./scripts/run_tests.sh",
     "test-ci": "jest",
@@ -32,7 +33,6 @@
     "dompurify": "^2.4.0",
     "express": "^4.19.2",
     "express-prom-bundle": "^6.5.0",
-    "google-protobuf": "3.21.0",
     "jimp": "^0.22.10",
     "jsdom": "20.0.0",
     "lodash": "^4.17.21",
@@ -51,7 +51,7 @@
     "@grafana/eslint-config": "^6.0.0",
     "@types/dompurify": "2.3.4",
     "@types/express": "^4.17.14",
-    "@types/jest": "^29.5.7",
+    "@types/jest": "^29.5.12",
     "@types/jsdom": "20.0.0",
     "@types/multer": "1.4.7",
     "@types/node": "^18.7.18",
@@ -62,20 +62,13 @@
     "axios": "1.6.7",
     "cross-env": "7.0.3",
     "eslint": "8.23.1",
-    "eslint-config-prettier": "8.5.0",
-    "eslint-plugin-jsdoc": "^46.5.0",
-    "eslint-plugin-prettier": "4.2.1",
-    "eslint-plugin-react": "7.31.8",
-    "eslint-plugin-react-hooks": "4.6.0",
     "fast-png": "^6.2.0",
-    "husky": "8.0.1",
     "jest": "^29.7.0",
     "jsonwebtoken": "^9.0.2",
     "lint-staged": "13.0.3",
-    "pkg": "5.8.1",
+    "pkg": "^5.8.1",
     "prettier": "2.7.1",
-    "superagent": "^8.1.2",
-    "supertest": "^6.3.3",
+    "supertest": "^7.0.0",
     "ts-jest": "^29.1.1",
     "ts-node": "10.9.1",
     "tsc-watch": "5.0.3",
diff --git a/pkgs/servers/monitoring/grafana/default.nix b/pkgs/servers/monitoring/grafana/default.nix
index 6fdae7302d7d7..927a011ded284 100644
--- a/pkgs/servers/monitoring/grafana/default.nix
+++ b/pkgs/servers/monitoring/grafana/default.nix
@@ -3,6 +3,7 @@
 , yarn, nodejs, python3, cacert
 , jq, moreutils
 , nix-update-script, nixosTests, xcbuild
+, util-linux
 }:
 
 let
@@ -21,7 +22,7 @@ let
 in
 buildGoModule rec {
   pname = "grafana";
-  version = "10.4.2";
+  version = "11.0.0";
 
   subPackages = [ "pkg/cmd/grafana" "pkg/cmd/grafana-server" "pkg/cmd/grafana-cli" ];
 
@@ -29,7 +30,7 @@ buildGoModule rec {
     owner = "grafana";
     repo = "grafana";
     rev = "v${version}";
-    hash = "sha256-ahG9ABJJUUgrFqqNjkJRA1Gia8T4J90jIsCMFOhZ55w=";
+    hash = "sha256-cC1dpgb8IiyPIqlVvn8Qi1l7j6lLtQF+BOOO+DQCp4E=";
   };
 
   # borrowed from: https://github.com/NixOS/nixpkgs/blob/d70d9425f49f9aba3c49e2c389fe6d42bac8c5b0/pkgs/development/tools/analysis/snyk/default.nix#L20-L22
@@ -65,16 +66,16 @@ buildGoModule rec {
     dontFixup = true;
     outputHashMode = "recursive";
     outputHash = rec {
-      x86_64-linux = "sha256-3CZgs732c6Z64t2sfWjPAmMFKVTzoolv2TwrbjeRCBA=";
+      x86_64-linux = "sha256-+Udq8oQSIAHku55VKnrfgHHevzBels0QiOZwnwuts8k=";
       aarch64-linux = x86_64-linux;
-      aarch64-darwin = "sha256-NKEajOe9uDZw0MF5leiKBIRH1CHUELRho7gyCa96BO8=";
+      aarch64-darwin = "sha256-m3jtZNz0J2nZwFHXVp3ApgDfnGBOJvFeUpqOPQqv200=";
       x86_64-darwin = aarch64-darwin;
     }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   };
 
   disallowedRequisites = [ offlineCache ];
 
-  vendorHash = "sha256-XmIF/ZWVO1qjSmRPTFnHgxvnliXXicGgsV8gQcKJl9U=";
+  vendorHash = "sha256-kcdW6RQghyAOZUDmIo9G6YBC+YaLHdafvj+fCd+dcDE=";
 
   proxyVendor = true;
 
@@ -90,7 +91,6 @@ buildGoModule rec {
     wire gen -tags oss ./pkg/server
     wire gen -tags oss ./pkg/cmd/grafana-cli/runner
 
-    GOARCH= CGO_ENABLED=0 go generate ./pkg/plugins/plugindef
     GOARCH= CGO_ENABLED=0 go generate ./kinds/gen.go
     GOARCH= CGO_ENABLED=0 go generate ./public/app/plugins/gen.go
     # Setup node_modules
@@ -105,7 +105,7 @@ buildGoModule rec {
 
     yarn config set enableTelemetry 0
     yarn config set cacheFolder $offlineCache
-    yarn --immutable-cache
+    yarn install --immutable-cache
 
     # The build OOMs on memory constrained aarch64 without this
     export NODE_OPTIONS=--max_old_space_size=4096
@@ -113,7 +113,9 @@ buildGoModule rec {
 
   postBuild = ''
     # After having built all the Go code, run the JS builders now.
-    yarn run build
+
+    # Workaround for https://github.com/nrwl/nx/issues/22445
+    ${util-linux}/bin/script -c 'yarn run build' /dev/null
     yarn run plugins:build-bundled
   '';
 
@@ -154,5 +156,8 @@ buildGoModule rec {
     maintainers = with maintainers; [ offline fpletz willibutz globin ma27 Frostman ];
     platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ];
     mainProgram = "grafana-server";
+    # requires util-linux to work around https://github.com/nrwl/nx/issues/22445
+    # `script` doesn't seem to be part of util-linux on Darwin though.
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/servers/monitoring/grafana/plugins/grafana-oncall-app/default.nix b/pkgs/servers/monitoring/grafana/plugins/grafana-oncall-app/default.nix
new file mode 100644
index 0000000000000..6f475f49cfa7f
--- /dev/null
+++ b/pkgs/servers/monitoring/grafana/plugins/grafana-oncall-app/default.nix
@@ -0,0 +1,13 @@
+{ grafanaPlugin, lib }:
+
+grafanaPlugin {
+  pname = "grafana-oncall-app";
+  version = "1.5.1";
+  zipHash = "sha256-3mC4TJ9ACM9e3e6UKI5vaDwXuW6RjbsOQFJU5v0wjk8=";
+  meta = with lib; {
+    description = "Developer-friendly incident response for Grafana";
+    license = licenses.agpl3Only;
+    maintainers = lib.teams.fslabs.members;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/monitoring/grafana/plugins/plugins.nix b/pkgs/servers/monitoring/grafana/plugins/plugins.nix
index 8bbd738f7ab92..bd1e775243f77 100644
--- a/pkgs/servers/monitoring/grafana/plugins/plugins.nix
+++ b/pkgs/servers/monitoring/grafana/plugins/plugins.nix
@@ -8,6 +8,7 @@
   grafadruid-druid-datasource = callPackage ./grafadruid-druid-datasource { };
   grafana-clickhouse-datasource = callPackage ./grafana-clickhouse-datasource { };
   grafana-clock-panel = callPackage ./grafana-clock-panel { };
+  grafana-oncall-app = callPackage ./grafana-oncall-app { };
   grafana-piechart-panel = callPackage ./grafana-piechart-panel { };
   grafana-polystat-panel = callPackage ./grafana-polystat-panel { };
   grafana-worldmap-panel = callPackage ./grafana-worldmap-panel { };
diff --git a/pkgs/servers/monitoring/lcdproc/default.nix b/pkgs/servers/monitoring/lcdproc/default.nix
index 1ce82c13311c9..d70ba0ea19914 100644
--- a/pkgs/servers/monitoring/lcdproc/default.nix
+++ b/pkgs/servers/monitoring/lcdproc/default.nix
@@ -71,7 +71,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Client/server suite for controlling a wide variety of LCD devices";
     homepage = "https://lcdproc.org/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.unix;
     # never built on aarch64-darwin since first introduction in nixpkgs
diff --git a/pkgs/servers/monitoring/munin/default.nix b/pkgs/servers/monitoring/munin/default.nix
index 045fc8f89ac38..c1446b90c870d 100644
--- a/pkgs/servers/monitoring/munin/default.nix
+++ b/pkgs/servers/monitoring/munin/default.nix
@@ -142,7 +142,7 @@ stdenv.mkDerivation rec {
       to kill our performance?' problems.
     '';
     homepage = "https://munin-monitoring.org/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = [ maintainers.bjornfor ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/servers/monitoring/nagios/default.nix b/pkgs/servers/monitoring/nagios/default.nix
index 4f39239bfe08f..c8c4db1c401df 100644
--- a/pkgs/servers/monitoring/nagios/default.nix
+++ b/pkgs/servers/monitoring/nagios/default.nix
@@ -74,7 +74,7 @@ stdenv.mkDerivation (finalAttrs: {
     description = "A host, service and network monitoring program";
     homepage = "https://www.nagios.org/";
     changelog = "https://github.com/NagiosEnterprises/nagioscore/blob/nagios-${finalAttrs.version}/Changelog";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Only;
     platforms = lib.platforms.unix;
     mainProgram = "nagios";
     maintainers = with lib.maintainers; [ immae thoughtpolice relrod anthonyroussel ];
diff --git a/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix b/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix
index 9572c1d2c87e4..c3098a8a8e276 100644
--- a/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix
+++ b/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "check_ssl_cert";
-  version = "2.81.0";
+  version = "2.81.1";
 
   src = fetchFromGitHub {
     owner = "matteocorti";
     repo = "check_ssl_cert";
     rev = "refs/tags/v${version}";
-    hash = "sha256-6C6shxu9ze0ffx6Mg2K9TkqJl98Wz7loTcCptg92IY8=";
+    hash = "sha256-ZF1izxIgpoQrWWI+G5vuAJsbc/IwUlAZHhUIHKCY2DA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/servers/monitoring/plugins/esxi.nix b/pkgs/servers/monitoring/plugins/esxi.nix
index ccd77548c0c06..85192c0174d1a 100644
--- a/pkgs/servers/monitoring/plugins/esxi.nix
+++ b/pkgs/servers/monitoring/plugins/esxi.nix
@@ -31,7 +31,7 @@ in python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://www.claudiokuenzler.com/nagios-plugins/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ peterhoeg ];
   };
 }
diff --git a/pkgs/servers/monitoring/plugins/labs_consol_de.nix b/pkgs/servers/monitoring/plugins/labs_consol_de.nix
index c293a4daa2153..b30fd4b275772 100644
--- a/pkgs/servers/monitoring/plugins/labs_consol_de.nix
+++ b/pkgs/servers/monitoring/plugins/labs_consol_de.nix
@@ -44,7 +44,7 @@ let
 
     meta = with lib; {
       homepage    = "https://labs.consol.de/";
-      license     = licenses.gpl2;
+      license     = licenses.gpl2Only;
       maintainers = with maintainers; [ peterhoeg ];
       inherit description;
     };
diff --git a/pkgs/servers/monitoring/plugins/wmiplus/default.nix b/pkgs/servers/monitoring/plugins/wmiplus/default.nix
index 00474e12b9ac7..dfc3080b6181f 100644
--- a/pkgs/servers/monitoring/plugins/wmiplus/default.nix
+++ b/pkgs/servers/monitoring/plugins/wmiplus/default.nix
@@ -71,7 +71,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A sensu/nagios plugin using WMI to query Windows hosts";
     homepage = "http://edcint.co.nz/checkwmiplus";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ peterhoeg ];
   };
 }
diff --git a/pkgs/servers/monitoring/zabbix/agent.nix b/pkgs/servers/monitoring/zabbix/agent.nix
index 3f1d80ca4df91..091c499e0f0b4 100644
--- a/pkgs/servers/monitoring/zabbix/agent.nix
+++ b/pkgs/servers/monitoring/zabbix/agent.nix
@@ -36,7 +36,7 @@ import ./versions.nix ({ version, hash, ... }:
     meta = with lib; {
       description = "An enterprise-class open source distributed monitoring solution (client-side agent)";
       homepage = "https://www.zabbix.com/";
-      license = licenses.gpl2;
+      license = licenses.gpl2Plus;
       maintainers = with maintainers; [ mmahut psyanticy ];
       platforms = platforms.linux;
     };
diff --git a/pkgs/servers/monitoring/zabbix/proxy.nix b/pkgs/servers/monitoring/zabbix/proxy.nix
index b287ef56c76fb..7f4a52228d5a2 100644
--- a/pkgs/servers/monitoring/zabbix/proxy.nix
+++ b/pkgs/servers/monitoring/zabbix/proxy.nix
@@ -81,7 +81,7 @@ in
       meta = with lib; {
         description = "An enterprise-class open source distributed monitoring solution (client-server proxy)";
         homepage = "https://www.zabbix.com/";
-        license = licenses.gpl2;
+        license = licenses.gpl2Plus;
         maintainers = [ maintainers.mmahut ];
         platforms = platforms.linux;
       };
diff --git a/pkgs/servers/monitoring/zabbix/server.nix b/pkgs/servers/monitoring/zabbix/server.nix
index 5abf6a93d55d5..99942f600f9f9 100644
--- a/pkgs/servers/monitoring/zabbix/server.nix
+++ b/pkgs/servers/monitoring/zabbix/server.nix
@@ -90,7 +90,7 @@ in
       meta = with lib; {
         description = "An enterprise-class open source distributed monitoring solution";
         homepage = "https://www.zabbix.com/";
-        license = licenses.gpl2;
+        license = licenses.gpl2Plus;
         maintainers = with maintainers; [ mmahut psyanticy ];
         platforms = platforms.linux;
       };
diff --git a/pkgs/servers/monitoring/zabbix/web.nix b/pkgs/servers/monitoring/zabbix/web.nix
index 7267e3046dd7f..e9529ecb58c94 100644
--- a/pkgs/servers/monitoring/zabbix/web.nix
+++ b/pkgs/servers/monitoring/zabbix/web.nix
@@ -25,7 +25,7 @@ import ./versions.nix ({ version, hash, ... }:
     meta = with lib; {
       description = "An enterprise-class open source distributed monitoring solution (web frontend)";
       homepage = "https://www.zabbix.com/";
-      license = licenses.gpl2;
+      license = licenses.gpl2Plus;
       maintainers = [ maintainers.mmahut ];
       platforms = platforms.linux;
     };
diff --git a/pkgs/servers/nats-server/default.nix b/pkgs/servers/nats-server/default.nix
index 440d0e1d81af6..00a3b156528ec 100644
--- a/pkgs/servers/nats-server/default.nix
+++ b/pkgs/servers/nats-server/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "nats-server";
-  version = "2.10.14";
+  version = "2.10.16";
 
   src = fetchFromGitHub {
     owner = "nats-io";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-+DdhdW8CCMprjR2XcOntkTDh5CHtEFHYFz7Htdptw3s=";
+    hash = "sha256-OyDDAx1jmemFn9D4VJPWrLJJM1YB8tZBC7N3xrUYodA=";
   };
 
-  vendorHash = "sha256-4kBXVsKf1jD3zvaAy6Rb7zmIK1WPbi31GRvRghdEC/s=";
+  vendorHash = "sha256-g1BF0Xl3AwHKSJ3k/gfJN5L875SdoDGK0Lk2gUUq4y4=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/nextcloud/default.nix b/pkgs/servers/nextcloud/default.nix
index 0c5ee36951c09..3cb9023694e5a 100644
--- a/pkgs/servers/nextcloud/default.nix
+++ b/pkgs/servers/nextcloud/default.nix
@@ -49,14 +49,14 @@ in {
   };
 
   nextcloud28 = generic {
-    version = "28.0.5";
-    hash = "sha256-3KEQD5W4ZLreETR3cjxxrIlxkzUsMX45zShth2NXBus=";
+    version = "28.0.6";
+    hash = "sha256-3w0zhLRHy6HhKPIggPZ4BSH4aBab6r7o6g0VW/nGa48=";
     packages = nextcloud28Packages;
   };
 
   nextcloud29 = generic {
-    version = "29.0.0";
-    hash = "sha256-6bU/ZDK29mRIfThpZF+hIaZM8O1q7oOqVgkD2vhrUr0=";
+    version = "29.0.1";
+    hash = "sha256-dZVG2uz3nKeH7WcFUDaTxttVOqvx165N+neccwmyrak=";
     packages = nextcloud29Packages;
   };
 
diff --git a/pkgs/servers/nextcloud/notify_push.nix b/pkgs/servers/nextcloud/notify_push.nix
index 3d92584d2f937..e0f81b04b4d88 100644
--- a/pkgs/servers/nextcloud/notify_push.nix
+++ b/pkgs/servers/nextcloud/notify_push.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "notify_push";
-  version = "0.6.10";
+  version = "0.6.11";
 
   src = fetchFromGitHub {
     owner = "nextcloud";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Kk9l9jowerxh5nsKQ5TOaijSJbs0DgJKaRl9tlAttzI=";
+    hash = "sha256-241p+9gLyEe2Mkc0GQ/Z0BjbxV5OZfbDC6kqfq7ATaE=";
   };
 
-  cargoHash = "sha256-wtmYWQOYy8JmbSxgrXkFtDe6KmJJIMVpcELQj06II4k=";
+  cargoHash = "sha256-fGbRmrOEbs9nGZhcu1w7qOIwYMaTohaUFb7dilPuTHc=";
 
   passthru = rec {
     test_client = rustPlatform.buildRustPackage {
@@ -24,7 +24,7 @@ rustPlatform.buildRustPackage rec {
 
       buildAndTestSubdir = "test_client";
 
-      cargoHash = "sha256-sPUlke8KI6sX2HneeoZh8RMG7aydC43c37V179ipukU=";
+      cargoHash = "sha256-RJnNwSDwIA0M+BufBKT9a/pyHwpcpJFR//j0fE4U3gE=";
 
       meta = meta // {
         mainProgram = "test_client";
@@ -32,9 +32,9 @@ rustPlatform.buildRustPackage rec {
     };
     tests = {
       inherit (nixosTests.nextcloud)
-        with-postgresql-and-redis26
         with-postgresql-and-redis27
-        with-postgresql-and-redis28;
+        with-postgresql-and-redis28
+        with-postgresql-and-redis29;
       inherit test_client;
     };
   };
diff --git a/pkgs/servers/nextcloud/packages/27.json b/pkgs/servers/nextcloud/packages/27.json
index 44ae57d679844..d33fd4331e7d1 100644
--- a/pkgs/servers/nextcloud/packages/27.json
+++ b/pkgs/servers/nextcloud/packages/27.json
@@ -10,9 +10,9 @@
     ]
   },
   "calendar": {
-    "sha256": "04wka70zfz36ccad755vq7wnnjid69ws252jf6nyw614dwr5idvh",
-    "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.7.1/calendar-v4.7.1.tar.gz",
-    "version": "4.7.1",
+    "sha256": "0zm2a63f99q7n1qw2n3p4pk50j5v4q24vpgndk4nnvaz6c792rzg",
+    "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.7.4/calendar-v4.7.4.tar.gz",
+    "version": "4.7.4",
     "description": "The Calendar app is a user interface for Nextcloud's CalDAV server. Easily sync events from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Currently Contacts - more to come.\n* 🌐 **WebCal Support!** Want to see your favorite team’s matchdays in your calendar? No problem!\n* 🙋 **Attendees!** Invite people to your events\n* ⌚️ **Free/Busy!** See when your attendees are available to meet\n* ⏰ **Reminders!** Get alarms for events inside your browser and via email\n* 🔍 Search! Find your events at ease\n* ☑️ Tasks! See tasks with a due date directly in the calendar\n* 🙈 **We’re not reinventing the wheel!** Based on the great [c-dav library](https://github.com/nextcloud/cdav-library), [ical.js](https://github.com/mozilla-comm/ical.js) and [fullcalendar](https://github.com/fullcalendar/fullcalendar) libraries.",
     "homepage": "https://github.com/nextcloud/calendar/",
     "licenses": [
@@ -100,9 +100,9 @@
     ]
   },
   "gpoddersync": {
-    "sha256": "1lm8lqvs1mvb3i2a8b5j9g7b26f747jfp696b9ima0hgpw8ycbfs",
-    "url": "https://github.com/thrillfall/nextcloud-gpodder/releases/download/3.8.3/gpoddersync.tar.gz",
-    "version": "3.8.3",
+    "sha256": "1hk052864mb49crmsy2m9alv22rk7ns6m6q7l372j7py9gr8rf60",
+    "url": "https://github.com/thrillfall/nextcloud-gpodder/releases/download/3.9.0/gpoddersync.tar.gz",
+    "version": "3.9.0",
     "description": "Expose GPodder API to sync podcast consumer apps like AntennaPod",
     "homepage": "https://github.com/thrillfall/nextcloud-gpodder",
     "licenses": [
@@ -133,16 +133,16 @@
     "sha256": "1cb5csdn85y5fkwhbxxl9i1qy92iqx9v9ccavcp66xfpyk4dlf22",
     "url": "https://github.com/nextcloud-releases/integration_openai/releases/download/v1.1.5/integration_openai-v1.1.5.tar.gz",
     "version": "1.1.5",
-    "description": "⚠️ The smart pickers have been removed from this app\nas they are now included in the [Assistant app](https://apps.nextcloud.com/apps/assistant).\n\nThis app implements:\n\n* Text generation providers: Free prompt, Summarize, Headline and Reformulate (using any available large language model)\n* A Translation provider (using any available language model)\n* A SpeechToText provider (using Whisper)\n* An image generation provider\n\nInstead of connecting to the OpenAI API for these, you can also connect to a self-hosted [LocalAI](https://localai.io) instance\nor to any service that implements an API similar to the OpenAI one, for example: [Plusserver](https://www.plusserver.com/en/ai-platform/).\n\n## Ethical AI Rating\n### Rating for Text generation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n\n### Rating for Translation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n### Rating for Image generation using DALL·E via OpenAI API: 🔴\n\nNegative:\n* the software for training and inferencing of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be ran on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via OpenAI API: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* The trained model is freely available, and thus can run on-premise\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n### Rating for Text generation via LocalAI: 🟢\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n* the training data is freely available, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n\n### Rating for Image generation using Stable Diffusion via LocalAI : 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via LocalAI: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).",
+    "description": "⚠️ The smart pickers have been removed from this app\nas they are now included in the [Assistant app](https://apps.nextcloud.com/apps/assistant).\n\nThis app implements:\n\n* Text generation providers: Free prompt, Summarize, Headline and Reformulate (using any available large language model)\n* A Translation provider (using any available language model)\n* A SpeechToText provider (using Whisper)\n* An image generation provider\n\nInstead of connecting to the OpenAI API for these, you can also connect to a self-hosted [LocalAI](https://localai.io) instance\nor to any service that implements an API similar to the OpenAI one, for example: [Plusserver](https://www.plusserver.com/en/ai-platform/) or [MistralAI](https://mistral.ai).\n\n## Ethical AI Rating\n### Rating for Text generation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n\n### Rating for Translation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n### Rating for Image generation using DALL·E via OpenAI API: 🔴\n\nNegative:\n* the software for training and inferencing of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be ran on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via OpenAI API: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* The trained model is freely available, and thus can run on-premise\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n### Rating for Text generation via LocalAI: 🟢\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n* the training data is freely available, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n\n### Rating for Image generation using Stable Diffusion via LocalAI : 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via LocalAI: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).",
     "homepage": "https://github.com/nextcloud/integration_openai",
     "licenses": [
       "agpl"
     ]
   },
   "mail": {
-    "sha256": "1m48zdh7jjmgw7r9y9irp7z22wjippjswy7r60yvsdxbac765n14",
-    "url": "https://github.com/nextcloud-releases/mail/releases/download/v3.6.0/mail-v3.6.0.tar.gz",
-    "version": "3.6.0",
+    "sha256": "1w6bww8wc42biz1zjf4fxgf60ryh1cdsm8b6ji3fhsqjlmkvs4ly",
+    "url": "https://github.com/nextcloud-releases/mail/releases/download/v3.6.1/mail-v3.6.1.tar.gz",
+    "version": "3.6.1",
     "description": "**💌 A mail app for Nextcloud**\n\n- **🚀 Integration with other Nextcloud apps!** Currently Contacts, Calendar & Files – more to come.\n- **📥 Multiple mail accounts!** Personal and company account? No problem, and a nice unified inbox. Connect any IMAP account.\n- **🔒 Send & receive encrypted mails!** Using the great [Mailvelope](https://mailvelope.com) browser extension.\n- **🙈 We’re not reinventing the wheel!** Based on the great [Horde](https://horde.org) libraries.\n- **📬 Want to host your own mail server?** We do not have to reimplement this as you could set up [Mail-in-a-Box](https://mailinabox.email)!\n\n## Ethical AI Rating\n\n### Priority Inbox\n\nPositive:\n* The software for training and inferencing of this model is open source.\n* The model is created and trained on-premises based on the user's own data.\n* The training data is accessible to the user, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n### Thread Summaries (opt-in)\n\n**Rating:** 🟢/🟡/🟠/🔴\n\nThe rating depends on the installed text processing backend. See [the rating overview](https://docs.nextcloud.com/server/latest/admin_manual/ai/index.html) for details.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).",
     "homepage": "https://github.com/nextcloud/mail#readme",
     "licenses": [
@@ -160,9 +160,9 @@
     ]
   },
   "memories": {
-    "sha256": "02l9rq117x7x4nra1f50fkn7yr3cpbjnsq9nlr7rnsn9qsf5rrw9",
-    "url": "https://github.com/pulsejet/memories/releases/download/v7.2.0/memories.tar.gz",
-    "version": "7.2.0",
+    "sha256": "1wahnkc253bgm0bqciyhfh1iyl8girbj8mzdd29l0k1bks8fr4qc",
+    "url": "https://github.com/pulsejet/memories/releases/download/v7.3.1/memories.tar.gz",
+    "version": "7.3.1",
     "description": "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos.",
     "homepage": "https://memories.gallery",
     "licenses": [
@@ -200,9 +200,9 @@
     ]
   },
   "notify_push": {
-    "sha256": "0zsjr3zr8c686pkgsmhjg1ssnzvc9flkyy1x571wk7lx7lfrvrd1",
-    "url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.10/notify_push-v0.6.10.tar.gz",
-    "version": "0.6.10",
+    "sha256": "1w0nb74q5ishwsd9xhgjlp5ik159xjfp5i2cczi0fmwlb185n1ik",
+    "url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.11/notify_push-v0.6.11.tar.gz",
+    "version": "0.6.11",
     "description": "Push update support for desktop app.\n\nOnce the app is installed, the push binary needs to be setup. You can either use the setup wizard with `occ notify_push:setup` or see the [README](http://github.com/nextcloud/notify_push) for detailed setup instructions",
     "homepage": "",
     "licenses": [
@@ -230,9 +230,9 @@
     ]
   },
   "polls": {
-    "sha256": "1y6908yp327j6v9caawylah5zayh4m1d7658j3yh0r5siml9lq94",
-    "url": "https://github.com/nextcloud/polls/releases/download/v5.4.3/polls.tar.gz",
-    "version": "5.4.3",
+    "sha256": "1s3rlfdk3g3c45ch8kb66ydzxfx20vcaff1926m5h8m50cmapq6x",
+    "url": "https://github.com/nextcloud/polls/releases/download/v6.3.0/polls.tar.gz",
+    "version": "6.3.0",
     "description": "A polls app, similar to Doodle/Dudle with the possibility to restrict access (members, certain groups/users, hidden and public).",
     "homepage": "https://github.com/nextcloud/polls",
     "licenses": [
@@ -269,10 +269,20 @@
       "agpl"
     ]
   },
+  "richdocuments": {
+    "sha256": "161v7gb0zg3anr3322ar2m3f6y0zf5cqrwfdsb04p6pqvfpsy9wh",
+    "url": "https://github.com/nextcloud-releases/richdocuments/releases/download/v8.2.10/richdocuments-v8.2.10.tar.gz",
+    "version": "8.2.10",
+    "description": "This application can connect to a Collabora Online (or other) server (WOPI-like Client). Nextcloud is the WOPI Host. Please read the documentation to learn more about that.\n\nYou can also edit your documents off-line with the Collabora Office app from the **[Android](https://play.google.com/store/apps/details?id=com.collabora.libreoffice)** and **[iOS](https://apps.apple.com/us/app/collabora-office/id1440482071)** store.",
+    "homepage": "https://collaboraoffice.com/",
+    "licenses": [
+      "agpl"
+    ]
+  },
   "spreed": {
-    "sha256": "0699c9xfmzk48q0f48lxw16h9l2300w6vp1sn2vb8wr76fbhm9kf",
-    "url": "https://github.com/nextcloud-releases/spreed/releases/download/v17.1.8/spreed-v17.1.8.tar.gz",
-    "version": "17.1.8",
+    "sha256": "0knzz84ky8w1dvxrl61p63zrmalzg6b4b8syf5hx9ympr4ngpaza",
+    "url": "https://github.com/nextcloud-releases/spreed/releases/download/v17.1.9/spreed-v17.1.9.tar.gz",
+    "version": "17.1.9",
     "description": "Chat, video & audio-conferencing using WebRTC\n\n* 💬 **Chat** Nextcloud Talk comes with a simple text chat, allowing you to share or upload files from your Nextcloud Files app or local device and mention other participants.\n* 👥 **Private, group, public and password protected calls!** Invite someone, a whole group or send a public link to invite to a call.\n* 🌐 **Federated chats** Chat with other Nextcloud users on their servers\n* 💻 **Screen sharing!** Share your screen with the participants of your call.\n* 🚀 **Integration with other Nextcloud apps** like Files, Calendar, User status, Dashboard, Flow, Maps, Smart picker, Contacts, Deck, and many more.\n* 🌉 **Sync with other chat solutions** With [Matterbridge](https://github.com/42wim/matterbridge/) being integrated in Talk, you can easily sync a lot of other chat solutions to Nextcloud Talk and vice-versa.",
     "homepage": "https://github.com/nextcloud/spreed",
     "licenses": [
diff --git a/pkgs/servers/nextcloud/packages/28.json b/pkgs/servers/nextcloud/packages/28.json
index 0c83f7f04bd9c..ec4a34f3c10fb 100644
--- a/pkgs/servers/nextcloud/packages/28.json
+++ b/pkgs/servers/nextcloud/packages/28.json
@@ -1,8 +1,8 @@
 {
   "bookmarks": {
-    "sha256": "06pprhlaaqdha2nmfdcf76mhh48hdr5jlv88snxji8lpflv50wr5",
-    "url": "https://github.com/nextcloud/bookmarks/releases/download/v13.1.3/bookmarks-13.1.3.tar.gz",
-    "version": "13.1.3",
+    "sha256": "0i070c5a66yxs8h7w6r9wi0n1bf41q4vrhvwr4vybi1siwr3psv6",
+    "url": "https://github.com/nextcloud/bookmarks/releases/download/v14.0.2/bookmarks-14.0.2.tar.gz",
+    "version": "14.0.2",
     "description": "- 📂 Sort bookmarks into folders\n- 🏷 Add tags and personal notes\n- 🔍 Full-text search\n- 📲 Synchronize with all your browsers and devices\n- 👪 Share bookmarks with other users and publicly\n- ☠ Find broken links\n- ⚛ Generate RSS feeds of your collections\n- 📔 Read archived versions of your links in case they are depublished\n- 💬 Create new bookmarks directly from within Nextcloud Talk\n- 💼 Built-in Dashboard widgets for frequent and recent links\n\nRequirements:\n - PHP extensions:\n   - intl: *\n   - mbstring: *\n - when using MySQL, use at least v8.0",
     "homepage": "https://github.com/nextcloud/bookmarks",
     "licenses": [
@@ -10,9 +10,9 @@
     ]
   },
   "calendar": {
-    "sha256": "04wka70zfz36ccad755vq7wnnjid69ws252jf6nyw614dwr5idvh",
-    "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.7.1/calendar-v4.7.1.tar.gz",
-    "version": "4.7.1",
+    "sha256": "0zm2a63f99q7n1qw2n3p4pk50j5v4q24vpgndk4nnvaz6c792rzg",
+    "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.7.4/calendar-v4.7.4.tar.gz",
+    "version": "4.7.4",
     "description": "The Calendar app is a user interface for Nextcloud's CalDAV server. Easily sync events from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Currently Contacts - more to come.\n* 🌐 **WebCal Support!** Want to see your favorite team’s matchdays in your calendar? No problem!\n* 🙋 **Attendees!** Invite people to your events\n* ⌚️ **Free/Busy!** See when your attendees are available to meet\n* ⏰ **Reminders!** Get alarms for events inside your browser and via email\n* 🔍 Search! Find your events at ease\n* ☑️ Tasks! See tasks with a due date directly in the calendar\n* 🙈 **We’re not reinventing the wheel!** Based on the great [c-dav library](https://github.com/nextcloud/cdav-library), [ical.js](https://github.com/mozilla-comm/ical.js) and [fullcalendar](https://github.com/fullcalendar/fullcalendar) libraries.",
     "homepage": "https://github.com/nextcloud/calendar/",
     "licenses": [
@@ -80,9 +80,9 @@
     ]
   },
   "gpoddersync": {
-    "sha256": "1lm8lqvs1mvb3i2a8b5j9g7b26f747jfp696b9ima0hgpw8ycbfs",
-    "url": "https://github.com/thrillfall/nextcloud-gpodder/releases/download/3.8.3/gpoddersync.tar.gz",
-    "version": "3.8.3",
+    "sha256": "1hk052864mb49crmsy2m9alv22rk7ns6m6q7l372j7py9gr8rf60",
+    "url": "https://github.com/thrillfall/nextcloud-gpodder/releases/download/3.9.0/gpoddersync.tar.gz",
+    "version": "3.9.0",
     "description": "Expose GPodder API to sync podcast consumer apps like AntennaPod",
     "homepage": "https://github.com/thrillfall/nextcloud-gpodder",
     "licenses": [
@@ -110,19 +110,19 @@
     ]
   },
   "integration_openai": {
-    "sha256": "1x9w13xljh8h8n7hic4ffxsk7y63x9yghr1450ng2p68y6vjsg4g",
-    "url": "https://github.com/nextcloud-releases/integration_openai/releases/download/v2.0.0/integration_openai-v2.0.0.tar.gz",
-    "version": "2.0.0",
-    "description": "⚠️ The smart pickers have been removed from this app\nas they are now included in the [Assistant app](https://apps.nextcloud.com/apps/assistant).\n\nThis app implements:\n\n* Text generation providers: Free prompt, Summarize, Headline and Reformulate (using any available large language model)\n* A Translation provider (using any available language model)\n* A SpeechToText provider (using Whisper)\n* An image generation provider\n\nInstead of connecting to the OpenAI API for these, you can also connect to a self-hosted [LocalAI](https://localai.io) instance\nor to any service that implements an API similar to the OpenAI one, for example: [Plusserver](https://www.plusserver.com/en/ai-platform/).\n\n## Ethical AI Rating\n### Rating for Text generation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n\n### Rating for Translation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n### Rating for Image generation using DALL·E via OpenAI API: 🔴\n\nNegative:\n* the software for training and inferencing of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be ran on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via OpenAI API: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* The trained model is freely available, and thus can run on-premise\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n### Rating for Text generation via LocalAI: 🟢\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n* the training data is freely available, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n\n### Rating for Image generation using Stable Diffusion via LocalAI : 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via LocalAI: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).",
+    "sha256": "0q5fs57n644mad4qvr7pb46dljmdnl4c9wkh2kdhaqnmjsa7zs8j",
+    "url": "https://github.com/nextcloud-releases/integration_openai/releases/download/v2.0.1/integration_openai-v2.0.1.tar.gz",
+    "version": "2.0.1",
+    "description": "⚠️ The smart pickers have been removed from this app\nas they are now included in the [Assistant app](https://apps.nextcloud.com/apps/assistant).\n\nThis app implements:\n\n* Text generation providers: Free prompt, Summarize, Headline and Reformulate (using any available large language model)\n* A Translation provider (using any available language model)\n* A SpeechToText provider (using Whisper)\n* An image generation provider\n\nInstead of connecting to the OpenAI API for these, you can also connect to a self-hosted [LocalAI](https://localai.io) instance\nor to any service that implements an API similar to the OpenAI one, for example: [Plusserver](https://www.plusserver.com/en/ai-platform/) or [MistralAI](https://mistral.ai).\n\n## Ethical AI Rating\n### Rating for Text generation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n\n### Rating for Translation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n### Rating for Image generation using DALL·E via OpenAI API: 🔴\n\nNegative:\n* the software for training and inferencing of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be ran on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via OpenAI API: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* The trained model is freely available, and thus can run on-premise\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n### Rating for Text generation via LocalAI: 🟢\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n* the training data is freely available, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n\n### Rating for Image generation using Stable Diffusion via LocalAI : 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via LocalAI: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).",
     "homepage": "https://github.com/nextcloud/integration_openai",
     "licenses": [
       "agpl"
     ]
   },
   "mail": {
-    "sha256": "1m48zdh7jjmgw7r9y9irp7z22wjippjswy7r60yvsdxbac765n14",
-    "url": "https://github.com/nextcloud-releases/mail/releases/download/v3.6.0/mail-v3.6.0.tar.gz",
-    "version": "3.6.0",
+    "sha256": "1w6bww8wc42biz1zjf4fxgf60ryh1cdsm8b6ji3fhsqjlmkvs4ly",
+    "url": "https://github.com/nextcloud-releases/mail/releases/download/v3.6.1/mail-v3.6.1.tar.gz",
+    "version": "3.6.1",
     "description": "**💌 A mail app for Nextcloud**\n\n- **🚀 Integration with other Nextcloud apps!** Currently Contacts, Calendar & Files – more to come.\n- **📥 Multiple mail accounts!** Personal and company account? No problem, and a nice unified inbox. Connect any IMAP account.\n- **🔒 Send & receive encrypted mails!** Using the great [Mailvelope](https://mailvelope.com) browser extension.\n- **🙈 We’re not reinventing the wheel!** Based on the great [Horde](https://horde.org) libraries.\n- **📬 Want to host your own mail server?** We do not have to reimplement this as you could set up [Mail-in-a-Box](https://mailinabox.email)!\n\n## Ethical AI Rating\n\n### Priority Inbox\n\nPositive:\n* The software for training and inferencing of this model is open source.\n* The model is created and trained on-premises based on the user's own data.\n* The training data is accessible to the user, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n### Thread Summaries (opt-in)\n\n**Rating:** 🟢/🟡/🟠/🔴\n\nThe rating depends on the installed text processing backend. See [the rating overview](https://docs.nextcloud.com/server/latest/admin_manual/ai/index.html) for details.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).",
     "homepage": "https://github.com/nextcloud/mail#readme",
     "licenses": [
@@ -140,9 +140,9 @@
     ]
   },
   "memories": {
-    "sha256": "02l9rq117x7x4nra1f50fkn7yr3cpbjnsq9nlr7rnsn9qsf5rrw9",
-    "url": "https://github.com/pulsejet/memories/releases/download/v7.2.0/memories.tar.gz",
-    "version": "7.2.0",
+    "sha256": "1wahnkc253bgm0bqciyhfh1iyl8girbj8mzdd29l0k1bks8fr4qc",
+    "url": "https://github.com/pulsejet/memories/releases/download/v7.3.1/memories.tar.gz",
+    "version": "7.3.1",
     "description": "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos.",
     "homepage": "https://memories.gallery",
     "licenses": [
@@ -170,9 +170,9 @@
     ]
   },
   "notify_push": {
-    "sha256": "0zsjr3zr8c686pkgsmhjg1ssnzvc9flkyy1x571wk7lx7lfrvrd1",
-    "url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.10/notify_push-v0.6.10.tar.gz",
-    "version": "0.6.10",
+    "sha256": "1w0nb74q5ishwsd9xhgjlp5ik159xjfp5i2cczi0fmwlb185n1ik",
+    "url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.11/notify_push-v0.6.11.tar.gz",
+    "version": "0.6.11",
     "description": "Push update support for desktop app.\n\nOnce the app is installed, the push binary needs to be setup. You can either use the setup wizard with `occ notify_push:setup` or see the [README](http://github.com/nextcloud/notify_push) for detailed setup instructions",
     "homepage": "",
     "licenses": [
@@ -239,10 +239,20 @@
       "agpl"
     ]
   },
+  "richdocuments": {
+    "sha256": "1rpbzcxi6n656351rlx1gpg2nwz0z5i4107adls9fh1cdvj9vqs6",
+    "url": "https://github.com/nextcloud-releases/richdocuments/releases/download/v8.3.7/richdocuments-v8.3.7.tar.gz",
+    "version": "8.3.7",
+    "description": "This application can connect to a Collabora Online (or other) server (WOPI-like Client). Nextcloud is the WOPI Host. Please read the documentation to learn more about that.\n\nYou can also edit your documents off-line with the Collabora Office app from the **[Android](https://play.google.com/store/apps/details?id=com.collabora.libreoffice)** and **[iOS](https://apps.apple.com/us/app/collabora-office/id1440482071)** store.",
+    "homepage": "https://collaboraoffice.com/",
+    "licenses": [
+      "agpl"
+    ]
+  },
   "spreed": {
-    "sha256": "1d6y473xnlc2n3k9hqb2n2zk780pran77k4frbgfyikinbadd1ci",
-    "url": "https://github.com/nextcloud-releases/spreed/releases/download/v18.0.7/spreed-v18.0.7.tar.gz",
-    "version": "18.0.7",
+    "sha256": "0mz6cb2janafday60dw7ga42c67lpqzjpw0gli6jj90pzcc4by72",
+    "url": "https://github.com/nextcloud-releases/spreed/releases/download/v18.0.8/spreed-v18.0.8.tar.gz",
+    "version": "18.0.8",
     "description": "Chat, video & audio-conferencing using WebRTC\n\n* 💬 **Chat** Nextcloud Talk comes with a simple text chat, allowing you to share or upload files from your Nextcloud Files app or local device and mention other participants.\n* 👥 **Private, group, public and password protected calls!** Invite someone, a whole group or send a public link to invite to a call.\n* 🌐 **Federated chats** Chat with other Nextcloud users on their servers\n* 💻 **Screen sharing!** Share your screen with the participants of your call.\n* 🚀 **Integration with other Nextcloud apps** like Files, Calendar, User status, Dashboard, Flow, Maps, Smart picker, Contacts, Deck, and many more.\n* 🌉 **Sync with other chat solutions** With [Matterbridge](https://github.com/42wim/matterbridge/) being integrated in Talk, you can easily sync a lot of other chat solutions to Nextcloud Talk and vice-versa.",
     "homepage": "https://github.com/nextcloud/spreed",
     "licenses": [
@@ -250,9 +260,9 @@
     ]
   },
   "tasks": {
-    "sha256": "0a1wpb9f08iqxl9vjp0slxwzn0w67ilpk21dsi0nhpm28ns2mhyc",
-    "url": "https://github.com/nextcloud/tasks/releases/download/v0.15.0/tasks.tar.gz",
-    "version": "0.15.0",
+    "sha256": "1g2wqsm9kjm7dri75ghix2hb5vby3vy3ibcvmwfdwsab3a12xbrg",
+    "url": "https://github.com/nextcloud/tasks/releases/download/v0.16.0/tasks.tar.gz",
+    "version": "0.16.0",
     "description": "Once enabled, a new Tasks menu will appear in your Nextcloud apps menu. From there you can add and delete tasks, edit their title, description, start and due dates and mark them as important. Tasks can be shared between users. Tasks can be synchronized using CalDav (each task list is linked to an Nextcloud calendar, to sync it to your local client: Thunderbird, Evolution, KDE Kontact, iCal … - just add the calendar as a remote calendar in your client). You can download your tasks as ICS files using the download button for each calendar.",
     "homepage": "https://github.com/nextcloud/tasks/",
     "licenses": [
diff --git a/pkgs/servers/nextcloud/packages/29.json b/pkgs/servers/nextcloud/packages/29.json
index f7669624b3a16..03563eeea2b1c 100644
--- a/pkgs/servers/nextcloud/packages/29.json
+++ b/pkgs/servers/nextcloud/packages/29.json
@@ -1,8 +1,8 @@
 {
   "bookmarks": {
-    "sha256": "06pprhlaaqdha2nmfdcf76mhh48hdr5jlv88snxji8lpflv50wr5",
-    "url": "https://github.com/nextcloud/bookmarks/releases/download/v13.1.3/bookmarks-13.1.3.tar.gz",
-    "version": "13.1.3",
+    "sha256": "0i070c5a66yxs8h7w6r9wi0n1bf41q4vrhvwr4vybi1siwr3psv6",
+    "url": "https://github.com/nextcloud/bookmarks/releases/download/v14.0.2/bookmarks-14.0.2.tar.gz",
+    "version": "14.0.2",
     "description": "- 📂 Sort bookmarks into folders\n- 🏷 Add tags and personal notes\n- 🔍 Full-text search\n- 📲 Synchronize with all your browsers and devices\n- 👪 Share bookmarks with other users and publicly\n- ☠ Find broken links\n- ⚛ Generate RSS feeds of your collections\n- 📔 Read archived versions of your links in case they are depublished\n- 💬 Create new bookmarks directly from within Nextcloud Talk\n- 💼 Built-in Dashboard widgets for frequent and recent links\n\nRequirements:\n - PHP extensions:\n   - intl: *\n   - mbstring: *\n - when using MySQL, use at least v8.0",
     "homepage": "https://github.com/nextcloud/bookmarks",
     "licenses": [
@@ -10,9 +10,9 @@
     ]
   },
   "calendar": {
-    "sha256": "04wka70zfz36ccad755vq7wnnjid69ws252jf6nyw614dwr5idvh",
-    "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.7.1/calendar-v4.7.1.tar.gz",
-    "version": "4.7.1",
+    "sha256": "0zm2a63f99q7n1qw2n3p4pk50j5v4q24vpgndk4nnvaz6c792rzg",
+    "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.7.4/calendar-v4.7.4.tar.gz",
+    "version": "4.7.4",
     "description": "The Calendar app is a user interface for Nextcloud's CalDAV server. Easily sync events from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Currently Contacts - more to come.\n* 🌐 **WebCal Support!** Want to see your favorite team’s matchdays in your calendar? No problem!\n* 🙋 **Attendees!** Invite people to your events\n* ⌚️ **Free/Busy!** See when your attendees are available to meet\n* ⏰ **Reminders!** Get alarms for events inside your browser and via email\n* 🔍 Search! Find your events at ease\n* ☑️ Tasks! See tasks with a due date directly in the calendar\n* 🙈 **We’re not reinventing the wheel!** Based on the great [c-dav library](https://github.com/nextcloud/cdav-library), [ical.js](https://github.com/mozilla-comm/ical.js) and [fullcalendar](https://github.com/fullcalendar/fullcalendar) libraries.",
     "homepage": "https://github.com/nextcloud/calendar/",
     "licenses": [
@@ -80,9 +80,9 @@
     ]
   },
   "gpoddersync": {
-    "sha256": "1lm8lqvs1mvb3i2a8b5j9g7b26f747jfp696b9ima0hgpw8ycbfs",
-    "url": "https://github.com/thrillfall/nextcloud-gpodder/releases/download/3.8.3/gpoddersync.tar.gz",
-    "version": "3.8.3",
+    "sha256": "1hk052864mb49crmsy2m9alv22rk7ns6m6q7l372j7py9gr8rf60",
+    "url": "https://github.com/thrillfall/nextcloud-gpodder/releases/download/3.9.0/gpoddersync.tar.gz",
+    "version": "3.9.0",
     "description": "Expose GPodder API to sync podcast consumer apps like AntennaPod",
     "homepage": "https://github.com/thrillfall/nextcloud-gpodder",
     "licenses": [
@@ -90,9 +90,9 @@
     ]
   },
   "groupfolders": {
-    "sha256": "0cg81d75dg96zp09jy4yzg65v14wf99c2snnj304v4dia410c8a3",
-    "url": "https://github.com/nextcloud-releases/groupfolders/releases/download/v16.0.5/groupfolders-v16.0.5.tar.gz",
-    "version": "16.0.5",
+    "sha256": "1x765bd5qd88rpa786pvj74psc52zbivk73pxna6nmhn9v0pmpms",
+    "url": "https://github.com/nextcloud-releases/groupfolders/releases/download/v17.0.0/groupfolders-v17.0.0.tar.gz",
+    "version": "17.0.0",
     "description": "Admin configured folders shared with everyone in a group.\n\nFolders can be configured from *Group folders* in the admin settings.\n\nAfter a folder is created, the admin can give access to the folder to one or more groups, control their write/sharing permissions and assign a quota for the folder.\n\nNote: Encrypting the contents of group folders is currently not supported.",
     "homepage": "https://github.com/nextcloud/groupfolders",
     "licenses": [
@@ -110,19 +110,19 @@
     ]
   },
   "integration_openai": {
-    "sha256": "1x9w13xljh8h8n7hic4ffxsk7y63x9yghr1450ng2p68y6vjsg4g",
-    "url": "https://github.com/nextcloud-releases/integration_openai/releases/download/v2.0.0/integration_openai-v2.0.0.tar.gz",
-    "version": "2.0.0",
-    "description": "⚠️ The smart pickers have been removed from this app\nas they are now included in the [Assistant app](https://apps.nextcloud.com/apps/assistant).\n\nThis app implements:\n\n* Text generation providers: Free prompt, Summarize, Headline and Reformulate (using any available large language model)\n* A Translation provider (using any available language model)\n* A SpeechToText provider (using Whisper)\n* An image generation provider\n\nInstead of connecting to the OpenAI API for these, you can also connect to a self-hosted [LocalAI](https://localai.io) instance\nor to any service that implements an API similar to the OpenAI one, for example: [Plusserver](https://www.plusserver.com/en/ai-platform/).\n\n## Ethical AI Rating\n### Rating for Text generation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n\n### Rating for Translation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n### Rating for Image generation using DALL·E via OpenAI API: 🔴\n\nNegative:\n* the software for training and inferencing of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be ran on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via OpenAI API: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* The trained model is freely available, and thus can run on-premise\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n### Rating for Text generation via LocalAI: 🟢\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n* the training data is freely available, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n\n### Rating for Image generation using Stable Diffusion via LocalAI : 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via LocalAI: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).",
+    "sha256": "0q5fs57n644mad4qvr7pb46dljmdnl4c9wkh2kdhaqnmjsa7zs8j",
+    "url": "https://github.com/nextcloud-releases/integration_openai/releases/download/v2.0.1/integration_openai-v2.0.1.tar.gz",
+    "version": "2.0.1",
+    "description": "⚠️ The smart pickers have been removed from this app\nas they are now included in the [Assistant app](https://apps.nextcloud.com/apps/assistant).\n\nThis app implements:\n\n* Text generation providers: Free prompt, Summarize, Headline and Reformulate (using any available large language model)\n* A Translation provider (using any available language model)\n* A SpeechToText provider (using Whisper)\n* An image generation provider\n\nInstead of connecting to the OpenAI API for these, you can also connect to a self-hosted [LocalAI](https://localai.io) instance\nor to any service that implements an API similar to the OpenAI one, for example: [Plusserver](https://www.plusserver.com/en/ai-platform/) or [MistralAI](https://mistral.ai).\n\n## Ethical AI Rating\n### Rating for Text generation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n\n### Rating for Translation using ChatGPT via OpenAI API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n### Rating for Image generation using DALL·E via OpenAI API: 🔴\n\nNegative:\n* the software for training and inferencing of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be ran on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via OpenAI API: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* The trained model is freely available, and thus can run on-premise\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n### Rating for Text generation via LocalAI: 🟢\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n* the training data is freely available, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n\n### Rating for Image generation using Stable Diffusion via LocalAI : 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via LocalAI: 🟡\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).",
     "homepage": "https://github.com/nextcloud/integration_openai",
     "licenses": [
       "agpl"
     ]
   },
   "mail": {
-    "sha256": "1m48zdh7jjmgw7r9y9irp7z22wjippjswy7r60yvsdxbac765n14",
-    "url": "https://github.com/nextcloud-releases/mail/releases/download/v3.6.0/mail-v3.6.0.tar.gz",
-    "version": "3.6.0",
+    "sha256": "1w6bww8wc42biz1zjf4fxgf60ryh1cdsm8b6ji3fhsqjlmkvs4ly",
+    "url": "https://github.com/nextcloud-releases/mail/releases/download/v3.6.1/mail-v3.6.1.tar.gz",
+    "version": "3.6.1",
     "description": "**💌 A mail app for Nextcloud**\n\n- **🚀 Integration with other Nextcloud apps!** Currently Contacts, Calendar & Files – more to come.\n- **📥 Multiple mail accounts!** Personal and company account? No problem, and a nice unified inbox. Connect any IMAP account.\n- **🔒 Send & receive encrypted mails!** Using the great [Mailvelope](https://mailvelope.com) browser extension.\n- **🙈 We’re not reinventing the wheel!** Based on the great [Horde](https://horde.org) libraries.\n- **📬 Want to host your own mail server?** We do not have to reimplement this as you could set up [Mail-in-a-Box](https://mailinabox.email)!\n\n## Ethical AI Rating\n\n### Priority Inbox\n\nPositive:\n* The software for training and inferencing of this model is open source.\n* The model is created and trained on-premises based on the user's own data.\n* The training data is accessible to the user, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n### Thread Summaries (opt-in)\n\n**Rating:** 🟢/🟡/🟠/🔴\n\nThe rating depends on the installed text processing backend. See [the rating overview](https://docs.nextcloud.com/server/latest/admin_manual/ai/index.html) for details.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).",
     "homepage": "https://github.com/nextcloud/mail#readme",
     "licenses": [
@@ -130,8 +130,8 @@
     ]
   },
   "maps": {
-    "sha256": "18gln06hgljgnr90ki95nl7b8986ivf3cymr6hajilszlr77hk22",
-    "url": "https://github.com/nextcloud/maps/releases/download/v1.4.0-1-nightly/maps-1.4.0-1-nightly.tar.gz",
+    "sha256": "1gqms3rrdpjmpb1h5d72b4lwbvsl8p10zwnkhgnsmvfcf93h3r1c",
+    "url": "https://github.com/nextcloud/maps/releases/download/v1.4.0/maps-1.4.0.tar.gz",
     "version": "1.4.0",
     "description": "**The whole world fits inside your cloud!**\n\n- **🗺 Beautiful map:** Using [OpenStreetMap](https://www.openstreetmap.org) and [Leaflet](https://leafletjs.com), you can choose between standard map, satellite, topographical, dark mode or even watercolor! 🎨\n- **⭐ Favorites:** Save your favorite places, privately! Sync with [GNOME Maps](https://github.com/nextcloud/maps/issues/30) and mobile apps is planned.\n- **🧭 Routing:** Possible using either [OSRM](http://project-osrm.org), [GraphHopper](https://www.graphhopper.com) or [Mapbox](https://www.mapbox.com).\n- **🖼 Photos on the map:** No more boring slideshows, just show directly where you were!\n- **🙋 Contacts on the map:** See where your friends live and plan your next visit.\n- **📱 Devices:** Lost your phone? Check the map!\n- **〰 Tracks:** Load GPS tracks or past trips. Recording with [PhoneTrack](https://f-droid.org/en/packages/net.eneiluj.nextcloud.phonetrack/) or [OwnTracks](https://owntracks.org) is planned.",
     "homepage": "https://github.com/nextcloud/maps",
@@ -140,9 +140,9 @@
     ]
   },
   "memories": {
-    "sha256": "02l9rq117x7x4nra1f50fkn7yr3cpbjnsq9nlr7rnsn9qsf5rrw9",
-    "url": "https://github.com/pulsejet/memories/releases/download/v7.2.0/memories.tar.gz",
-    "version": "7.2.0",
+    "sha256": "1wahnkc253bgm0bqciyhfh1iyl8girbj8mzdd29l0k1bks8fr4qc",
+    "url": "https://github.com/pulsejet/memories/releases/download/v7.3.1/memories.tar.gz",
+    "version": "7.3.1",
     "description": "# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos.",
     "homepage": "https://memories.gallery",
     "licenses": [
@@ -170,9 +170,9 @@
     ]
   },
   "notify_push": {
-    "sha256": "0zsjr3zr8c686pkgsmhjg1ssnzvc9flkyy1x571wk7lx7lfrvrd1",
-    "url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.10/notify_push-v0.6.10.tar.gz",
-    "version": "0.6.10",
+    "sha256": "1w0nb74q5ishwsd9xhgjlp5ik159xjfp5i2cczi0fmwlb185n1ik",
+    "url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.11/notify_push-v0.6.11.tar.gz",
+    "version": "0.6.11",
     "description": "Push update support for desktop app.\n\nOnce the app is installed, the push binary needs to be setup. You can either use the setup wizard with `occ notify_push:setup` or see the [README](http://github.com/nextcloud/notify_push) for detailed setup instructions",
     "homepage": "",
     "licenses": [
@@ -239,10 +239,20 @@
       "agpl"
     ]
   },
+  "richdocuments": {
+    "sha256": "1gbgygb7ymsg7gjb29r3caglsrimcrk7yn4kka5f8swv9b1k0qx6",
+    "url": "https://github.com/nextcloud-releases/richdocuments/releases/download/v8.4.2/richdocuments-v8.4.2.tar.gz",
+    "version": "8.4.2",
+    "description": "This application can connect to a Collabora Online (or other) server (WOPI-like Client). Nextcloud is the WOPI Host. Please read the documentation to learn more about that.\n\nYou can also edit your documents off-line with the Collabora Office app from the **[Android](https://play.google.com/store/apps/details?id=com.collabora.libreoffice)** and **[iOS](https://apps.apple.com/us/app/collabora-office/id1440482071)** store.",
+    "homepage": "https://collaboraoffice.com/",
+    "licenses": [
+      "agpl"
+    ]
+  },
   "spreed": {
-    "sha256": "07zjf8ci2jysrv0bagcrdfz2afzafha7fs3045p5kzb9zr6yvpy5",
-    "url": "https://github.com/nextcloud-releases/spreed/releases/download/v19.0.0/spreed-v19.0.0.tar.gz",
-    "version": "19.0.0",
+    "sha256": "106y9mbnwga7pfhydrd8rjpcr89ir3fjrdn81xykyzqwrq29fxgs",
+    "url": "https://github.com/nextcloud-releases/spreed/releases/download/v19.0.1/spreed-v19.0.1.tar.gz",
+    "version": "19.0.1",
     "description": "Chat, video & audio-conferencing using WebRTC\n\n* 💬 **Chat** Nextcloud Talk comes with a simple text chat, allowing you to share or upload files from your Nextcloud Files app or local device and mention other participants.\n* 👥 **Private, group, public and password protected calls!** Invite someone, a whole group or send a public link to invite to a call.\n* 🌐 **Federated chats** Chat with other Nextcloud users on their servers\n* 💻 **Screen sharing!** Share your screen with the participants of your call.\n* 🚀 **Integration with other Nextcloud apps** like Files, Calendar, User status, Dashboard, Flow, Maps, Smart picker, Contacts, Deck, and many more.\n* 🌉 **Sync with other chat solutions** With [Matterbridge](https://github.com/42wim/matterbridge/) being integrated in Talk, you can easily sync a lot of other chat solutions to Nextcloud Talk and vice-versa.",
     "homepage": "https://github.com/nextcloud/spreed",
     "licenses": [
@@ -250,9 +260,9 @@
     ]
   },
   "tasks": {
-    "sha256": "0a1wpb9f08iqxl9vjp0slxwzn0w67ilpk21dsi0nhpm28ns2mhyc",
-    "url": "https://github.com/nextcloud/tasks/releases/download/v0.15.0/tasks.tar.gz",
-    "version": "0.15.0",
+    "sha256": "1g2wqsm9kjm7dri75ghix2hb5vby3vy3ibcvmwfdwsab3a12xbrg",
+    "url": "https://github.com/nextcloud/tasks/releases/download/v0.16.0/tasks.tar.gz",
+    "version": "0.16.0",
     "description": "Once enabled, a new Tasks menu will appear in your Nextcloud apps menu. From there you can add and delete tasks, edit their title, description, start and due dates and mark them as important. Tasks can be shared between users. Tasks can be synchronized using CalDav (each task list is linked to an Nextcloud calendar, to sync it to your local client: Thunderbird, Evolution, KDE Kontact, iCal … - just add the calendar as a remote calendar in your client). You can download your tasks as ICS files using the download button for each calendar.",
     "homepage": "https://github.com/nextcloud/tasks/",
     "licenses": [
diff --git a/pkgs/servers/nextcloud/packages/nextcloud-apps.json b/pkgs/servers/nextcloud/packages/nextcloud-apps.json
index b7a48a0baca77..3affc750f9822 100644
--- a/pkgs/servers/nextcloud/packages/nextcloud-apps.json
+++ b/pkgs/servers/nextcloud/packages/nextcloud-apps.json
@@ -26,6 +26,7 @@
 , "previewgenerator": "agpl3Plus"
 , "qownnotesapi": "agpl3Plus"
 , "registration": "agpl3Plus"
+, "richdocuments": "agpl3Only"
 , "spreed": "agpl3Plus"
 , "tasks": "agpl3Plus"
 , "twofactor_nextcloud_notification": "agpl3Only"
diff --git a/pkgs/servers/nfs-ganesha/default.nix b/pkgs/servers/nfs-ganesha/default.nix
index 54f0cdbd48579..c5d3d97d629fa 100644
--- a/pkgs/servers/nfs-ganesha/default.nix
+++ b/pkgs/servers/nfs-ganesha/default.nix
@@ -5,14 +5,14 @@
 
 stdenv.mkDerivation rec {
   pname = "nfs-ganesha";
-  version = "5.7";
+  version = "5.9";
   outputs = [ "out" "tools" ];
 
   src = fetchFromGitHub {
     owner = "nfs-ganesha";
     repo = "nfs-ganesha";
     rev = "V${version}";
-    sha256 = "sha256-4GYte9kPUR4kFHrUzHXtiMGbuRhZ+4iw1hmqi+geljc=";
+    sha256 = "sha256-YFQcqRZenJUdTnlYM7gPnIxU47dytSHk5ALdbpSf5Ms=";
   };
 
   preConfigure = "cd src";
diff --git a/pkgs/servers/nosql/redis/default.nix b/pkgs/servers/nosql/redis/default.nix
index afa63219e3572..1f6c401e3f658 100644
--- a/pkgs/servers/nosql/redis/default.nix
+++ b/pkgs/servers/nosql/redis/default.nix
@@ -12,11 +12,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "redis";
-  version = "7.2.4";
+  version = "7.2.5";
 
   src = fetchurl {
     url = "https://download.redis.io/releases/redis-${finalAttrs.version}.tar.gz";
-    hash = "sha256-jRBMJqFUsp/WfWVotPN1ISISrUHgwsqj1mSA5429O1k=";
+    hash = "sha256-WYEXlwb4OR8DvpHZUayvrtqRr3+sVr7/snAZYxA+Qj0=";
   };
 
   patches = [
diff --git a/pkgs/servers/osmocom/libosmo-sccp/default.nix b/pkgs/servers/osmocom/libosmo-sccp/default.nix
index d8a27e2704fee..bf814576c1640 100644
--- a/pkgs/servers/osmocom/libosmo-sccp/default.nix
+++ b/pkgs/servers/osmocom/libosmo-sccp/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libosmo-sccp";
-  version = "1.8.1";
+  version = "1.8.2";
 
   src = fetchFromGitHub {
     owner = "osmocom";
     repo = "libosmo-sccp";
     rev = version;
-    hash = "sha256-GrC++v7PCAnaEtMFt+el/ct2g+/9Axev04g/jMIGyOQ=";
+    hash = "sha256-MT3NM4sXCLUNKQ5wEbUmvf2KYJNdcSFqGYeQbg+eop8=";
   };
 
   configureFlags = [ "--with-systemdsystemunitdir=$out" ];
diff --git a/pkgs/servers/osmocom/libosmoabis/default.nix b/pkgs/servers/osmocom/libosmoabis/default.nix
index 3908534efe939..6de87da1dc8dd 100644
--- a/pkgs/servers/osmocom/libosmoabis/default.nix
+++ b/pkgs/servers/osmocom/libosmoabis/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libosmoabis";
-  version = "1.5.0";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     owner = "osmocom";
     repo = "libosmo-abis";
     rev = version;
-    hash = "sha256-AtBv3llE7TX1tBBE4BQ4gXFs2WNqgjNDkezRpoDoHbg=";
+    hash = "sha256-B3M6sqFPecMR4/uiJ93C5ZWlq9IVpQwXCu9GZ4twHJw=";
   };
 
   configureFlags = [ "enable_dahdi=false" ];
diff --git a/pkgs/servers/osmocom/osmo-ggsn/default.nix b/pkgs/servers/osmocom/osmo-ggsn/default.nix
index 7fd45d86b5bd5..ce902e29c256f 100644
--- a/pkgs/servers/osmocom/osmo-ggsn/default.nix
+++ b/pkgs/servers/osmocom/osmo-ggsn/default.nix
@@ -12,13 +12,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "osmo-ggsn";
-  version = "1.10.2";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "osmocom";
     repo = "osmo-ggsn";
     rev = version;
-    hash = "sha256-673qQgymMAKsdunwWhELo2etKqkdCvxR7B8VgmXkEEA=";
+    hash = "sha256-TQQOj8DgsMI/+9Fpcpz95fuk746EWumYtTdPtYCXKTw=";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/osmocom/osmo-sgsn/default.nix b/pkgs/servers/osmocom/osmo-sgsn/default.nix
index 9fda8abc5af1f..d74ca535e1401 100644
--- a/pkgs/servers/osmocom/osmo-sgsn/default.nix
+++ b/pkgs/servers/osmocom/osmo-sgsn/default.nix
@@ -16,14 +16,14 @@ let
 in
 
 stdenv.mkDerivation rec {
-  pname = "osmo-ggsn";
-  version = "1.11.0";
+  pname = "osmo-sgsn";
+  version = "1.11.1";
 
   src = fetchFromGitHub {
     owner = "osmocom";
     repo = "osmo-sgsn";
     rev = version;
-    hash = "sha256-jI82LS/WubFAkxBVF31qH4NWSmjC94dL73oOu3shfdU=";
+    hash = "sha256-obslARttKN+ut1ubIQ7zsL3/mnXK/AUoJeBnRJoPoZ0=";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/photofield/default.nix b/pkgs/servers/photofield/default.nix
index ffb647c03be53..3c9cf8245022a 100644
--- a/pkgs/servers/photofield/default.nix
+++ b/pkgs/servers/photofield/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchFromGitHub
+, fetchpatch
 , buildGoModule
 , buildNpmPackage
 , makeWrapper
@@ -10,7 +11,6 @@
 }:
 
 let
-  pname = "photofield-ui";
   version = "0.13.0";
 
   src = fetchFromGitHub {
@@ -35,11 +35,20 @@ let
   };
 in
 
-buildGoModule rec {
+buildGoModule {
   pname = "photofield";
   inherit version src;
 
-  vendorHash = "sha256-4JFP3vs/Z8iSKgcwfxpdnQpO9kTF68XQArFHYP8IoDQ=";
+  patches = [
+    # Needed for Go 1.22 build support
+    (fetchpatch {
+      name = "upgrade-pyroscope-go.patch";
+      url = "https://github.com/SmilyOrg/photofield/commit/681dcd48ab4113b0e99fe1a0d3638f0dfe985c05.patch";
+      hash = "sha256-JGb5KAI/SmR1kiiaPoSsAF7G4YWDFXj0K3Gjw0zA3Ro=";
+    })
+  ];
+
+  vendorHash = "sha256-BnImE4wK2MDO21N5tT9Q9w+NkDpdBCEqUwzuH/xb6fg=";
 
   preBuild = ''
     cp -r ${webui}/share/photofield-ui ui/dist
diff --git a/pkgs/servers/pleroma/default.nix b/pkgs/servers/pleroma/default.nix
index 4f695b4008932..15382071602f4 100644
--- a/pkgs/servers/pleroma/default.nix
+++ b/pkgs/servers/pleroma/default.nix
@@ -7,14 +7,14 @@
 
 beamPackages.mixRelease rec {
   pname = "pleroma";
-  version = "2.6.2";
+  version = "2.6.3";
 
   src = fetchFromGitLab {
     domain = "git.pleroma.social";
     owner = "pleroma";
     repo = "pleroma";
     rev = "v${version}";
-    sha256 = "sha256-KVB6e/B6DJbylpfR8QTZJ1GOJrAqF6shqoU/zIndi1U=";
+    sha256 = "sha256-ZiupcCu6ES/G9rsdNo5+JXOIPhb4CHT2YhKThWiLisw=";
   };
 
   patches = [
diff --git a/pkgs/servers/redpanda/default.nix b/pkgs/servers/redpanda/default.nix
index 10e8cd3ed7177..cc1496ccb90d2 100644
--- a/pkgs/servers/redpanda/default.nix
+++ b/pkgs/servers/redpanda/default.nix
@@ -7,12 +7,12 @@
 , stdenv
 }:
 let
-  version = "24.1.2";
+  version = "24.1.3";
   src = fetchFromGitHub {
     owner = "redpanda-data";
     repo = "redpanda";
     rev = "v${version}";
-    sha256 = "sha256-RkJymtTTIPTPzpoUyWmCKpfQBqGFoR7ZeEWCKKzkn54=";
+    sha256 = "sha256-LuaUm8FToGJ4//tDFvdHbTCHzhul4ympSznbp1wrLM8=";
   };
   server = callPackage ./server.nix { inherit src version; };
 in
diff --git a/pkgs/servers/samba/4.x.nix b/pkgs/servers/samba/4.x.nix
index a52099460e780..ee37db169bbb4 100644
--- a/pkgs/servers/samba/4.x.nix
+++ b/pkgs/servers/samba/4.x.nix
@@ -173,6 +173,8 @@ stdenv.mkDerivation (finalAttrs: {
     ++ optional (!enablePam) "--without-pam"
     ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
     "--bundled-libraries=!asn1_compile,!compile_et"
+    "--cross-compile"
+    "--cross-execute=${stdenv.hostPlatform.emulator buildPackages}"
   ] ++ optionals stdenv.buildPlatform.is32bit [
     # By default `waf configure` spawns as many as available CPUs. On
     # 32-bit systems with many CPUs (like `i686` chroot on `x86_64`
diff --git a/pkgs/servers/search/sphinxsearch/default.nix b/pkgs/servers/search/sphinxsearch/default.nix
index a44f96db7026a..6adf73203daab 100644
--- a/pkgs/servers/search/sphinxsearch/default.nix
+++ b/pkgs/servers/search/sphinxsearch/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "An open source full text search server";
     homepage    = "http://sphinxsearch.com";
-    license     = lib.licenses.gpl2;
+    license     = lib.licenses.gpl2Plus;
     platforms   = lib.platforms.all;
     maintainers = with lib.maintainers; [ ederoyd46 valodim ];
   };
diff --git a/pkgs/servers/sftpgo/default.nix b/pkgs/servers/sftpgo/default.nix
index 9e7f1b6b456cc..3922300410afa 100644
--- a/pkgs/servers/sftpgo/default.nix
+++ b/pkgs/servers/sftpgo/default.nix
@@ -59,7 +59,7 @@ buildGoModule rec {
       Google Cloud Storage, Azure Blob Storage, SFTP.
     '';
     license = licenses.agpl3Only;
-    maintainers = with maintainers; [ thenonameguy yayayayaka ];
+    maintainers = with maintainers; [ thenonameguy ];
     mainProgram = "sftpgo";
   };
 }
diff --git a/pkgs/servers/sickbeard/sickgear.nix b/pkgs/servers/sickbeard/sickgear.nix
index 1ad5c7c26effa..4f4e2a872da5a 100644
--- a/pkgs/servers/sickbeard/sickgear.nix
+++ b/pkgs/servers/sickbeard/sickgear.nix
@@ -4,13 +4,13 @@ let
   pythonEnv = python3.withPackages(ps: with ps; [ cheetah3 lxml ]);
 in stdenv.mkDerivation rec {
   pname = "sickgear";
-  version = "3.30.19";
+  version = "3.30.20";
 
   src = fetchFromGitHub {
     owner = "SickGear";
     repo = "SickGear";
     rev = "release_${version}";
-    hash = "sha256-OC/BJ0wG6as1dt2dO9gUFD+FG85Vt2ehCoTcmh6iT7w=";
+    hash = "sha256-GLfRBlStnHv6fWpwGjZVfXXubkTLxZ2Q4AL6OnfhEMQ=";
   };
 
   patches = [
diff --git a/pkgs/servers/silc-server/default.nix b/pkgs/servers/silc-server/default.nix
index 53a2f47cf2adb..dcb5eb4e99904 100644
--- a/pkgs/servers/silc-server/default.nix
+++ b/pkgs/servers/silc-server/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     homepage = "http://silcnet.org/";
     description = "Secure Internet Live Conferencing server";
     mainProgram = "silcd";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [viric];
     platforms = with lib.platforms; linux;
   };
diff --git a/pkgs/servers/spicedb/default.nix b/pkgs/servers/spicedb/default.nix
index e92978b56fd45..5b1f982216a34 100644
--- a/pkgs/servers/spicedb/default.nix
+++ b/pkgs/servers/spicedb/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "spicedb";
-  version = "1.32.0";
+  version = "1.33.0";
 
   src = fetchFromGitHub {
     owner = "authzed";
     repo = "spicedb";
     rev = "v${version}";
-    hash = "sha256-PIl5FmXWyp6mkSzTQe7hu4aWeQgGa1YrC5+t1eMQhPY=";
+    hash = "sha256-DjicS/rrSMcdUkRPOJ5jon2uYVKF+3DkHBvM93v/CmQ=";
   };
 
-  vendorHash = "sha256-LrNoIknYY9XIwdyUq7f5pG0IU0WZVSgTNMTFoZAIhp8=";
+  vendorHash = "sha256-pqHDSQQMvfas9yeyhs5cWokBPISQygz2aHf6W5Zc+co=";
 
   subPackages = [ "cmd/spicedb" ];
 
diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix
index 3ff31ba1d3abe..5db93980fa518 100644
--- a/pkgs/servers/sql/mariadb/default.nix
+++ b/pkgs/servers/sql/mariadb/default.nix
@@ -139,7 +139,7 @@ let
       meta = with lib; {
         description = "An enhanced, drop-in replacement for MySQL";
         homepage    = "https://mariadb.org/";
-        license     = licenses.gpl2;
+        license     = licenses.gpl2Plus;
         maintainers = with maintainers; [ thoughtpolice ] ++ teams.helsinki-systems.members;
         platforms   = platforms.all;
       };
diff --git a/pkgs/servers/sql/mssql/jdbc/default.nix b/pkgs/servers/sql/mssql/jdbc/default.nix
index c40de0cb219da..2cafd510c51dd 100644
--- a/pkgs/servers/sql/mssql/jdbc/default.nix
+++ b/pkgs/servers/sql/mssql/jdbc/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mssql-jdbc";
-  version = "12.6.1";
+  version = "12.6.2";
 
   src = fetchurl {
     url = "https://github.com/Microsoft/mssql-jdbc/releases/download/v${version}/mssql-jdbc-${version}.jre8.jar";
-    sha256 = "sha256-OtherTxRxxE57u20nl1sD7mpV6tcHD9qL/C1AJOm0Qw=";
+    sha256 = "sha256-PR6oWlbCLPtVUMspw+DrQ8VhjXu4Mgqlpx9kSKds7S0=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/servers/sql/mysql/8.0.x.nix b/pkgs/servers/sql/mysql/8.0.x.nix
index 521e748198a36..e64b10bae6aea 100644
--- a/pkgs/servers/sql/mysql/8.0.x.nix
+++ b/pkgs/servers/sql/mysql/8.0.x.nix
@@ -72,7 +72,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://www.mysql.com/";
     description = "The world's most popular open source database";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ orivej ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/servers/sql/mysql/jdbc/default.nix b/pkgs/servers/sql/mysql/jdbc/default.nix
index e50b7d579db2a..cdc1ad095919e 100644
--- a/pkgs/servers/sql/mysql/jdbc/default.nix
+++ b/pkgs/servers/sql/mysql/jdbc/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     changelog = "https://dev.mysql.com/doc/relnotes/connector-j/en/";
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
   };
 }
diff --git a/pkgs/servers/sql/percona-server/lts.nix b/pkgs/servers/sql/percona-server/lts.nix
index f8b13aa4180af..4531a2db7b7ad 100644
--- a/pkgs/servers/sql/percona-server/lts.nix
+++ b/pkgs/servers/sql/percona-server/lts.nix
@@ -89,7 +89,7 @@ stdenv.mkDerivation (finalAttrs: {
       A free, fully compatible, enhanced, open source drop-in replacement for
       MySQL® that provides superior performance, scalability and instrumentation.
     '';
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = teams.flyingcircus.members;
     platforms = platforms.unix;
   };
diff --git a/pkgs/servers/sql/postgresql/ext/pg_similarity.nix b/pkgs/servers/sql/postgresql/ext/pg_similarity.nix
index 227ea8357861c..92ab0be32e1ab 100644
--- a/pkgs/servers/sql/postgresql/ext/pg_similarity.nix
+++ b/pkgs/servers/sql/postgresql/ext/pg_similarity.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation {
        operators (= and <>) you can use ~~~ and ~!~ (any of these operators represents a similarity function).
     '';
     platforms = postgresql.meta.platforms;
-    license = lib.licenses.gpl2;
+    license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ danbst ];
   };
 }
diff --git a/pkgs/servers/sql/postgresql/ext/postgis.nix b/pkgs/servers/sql/postgresql/ext/postgis.nix
index 6569439e351eb..ee1669e5db185 100644
--- a/pkgs/servers/sql/postgresql/ext/postgis.nix
+++ b/pkgs/servers/sql/postgresql/ext/postgis.nix
@@ -80,7 +80,7 @@ stdenv.mkDerivation rec {
     description = "Geographic Objects for PostgreSQL";
     homepage = "https://postgis.net/";
     changelog = "https://git.osgeo.org/gitea/postgis/postgis/raw/tag/${version}/NEWS";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; teams.geospatial.members ++ [ marcweber wolfgangwalther ];
     inherit (postgresql.meta) platforms;
   };
diff --git a/pkgs/servers/swego/default.nix b/pkgs/servers/swego/default.nix
index eb4bcccbbf9dc..b8362d2d86757 100644
--- a/pkgs/servers/swego/default.nix
+++ b/pkgs/servers/swego/default.nix
@@ -1,28 +1,34 @@
-{ buildGoModule
-, fetchFromGitHub
-, lib
-, stdenv
+{
+  lib,
+  stdenv,
+  buildGoModule,
+  fetchFromGitHub,
 }:
 
 buildGoModule rec {
   pname = "swego";
-  version = "1.0";
+  version = "1.1";
 
   src = fetchFromGitHub {
     owner = "nodauf";
     repo = "Swego";
-    rev = "v${version}";
-    sha256 = "sha256-OlaNDXKaIim5n0niqYIpRliVo7lse76vNxPKF6B6yF0=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-O/wczHyaMev0CpAXoDxiN7TtHDsthG+jaH31SPMEB34=";
   };
 
-  vendorHash = "sha256-N4HDngQFNCzQ74W52R0khetN6+J7npvBC/bYZBAgLB4=";
+  vendorHash = "sha256-mJWJdwbZq042//hM3WWp2rnLC1GebckUnsIopbF858Q=";
 
   postInstall = ''
     mv $out/bin/src $out/bin/$pname
   '';
 
+  ldflags = [
+    "-w"
+    "-s"
+  ];
+
   meta = with lib; {
-    description = "Simple Webserver in Golang";
+    description = "Simple Webserver";
     longDescription = ''
       Swiss army knife Webserver in Golang. Similar to the Python
       SimpleHTTPServer but with many features.
diff --git a/pkgs/servers/tailscale/default.nix b/pkgs/servers/tailscale/default.nix
index 9e1a31873e46a..216add099af5c 100644
--- a/pkgs/servers/tailscale/default.nix
+++ b/pkgs/servers/tailscale/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , buildGoModule
 , fetchFromGitHub
+, fetchpatch
 , makeWrapper
 , getent
 , iproute2
@@ -24,6 +25,16 @@ buildGoModule {
     rev = "v${version}";
     hash = "sha256-ETBca3qKO2iS30teIF5sr/oyJdRSKFqLFVO3+mmm7bo=";
   };
+
+  patches = [
+    # Fix "tailscale ssh" when built with ts_include_cli tag
+    # https://github.com/tailscale/tailscale/pull/12109
+    (fetchpatch {
+      url = "https://github.com/tailscale/tailscale/commit/325ca13c4549c1af58273330744d160602218af9.patch";
+      hash = "sha256-SMwqZiGNVflhPShlHP+7Gmn0v4b6Gr4VZGIF/oJAY8M=";
+    })
+  ];
+
   vendorHash = "sha256-Hd77xy8stw0Y6sfk3/ItqRIbM/349M/4uf0iNy1xJGw=";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ makeWrapper ];
diff --git a/pkgs/servers/tautulli/default.nix b/pkgs/servers/tautulli/default.nix
index fb2a673536064..e495ea50ab11b 100644
--- a/pkgs/servers/tautulli/default.nix
+++ b/pkgs/servers/tautulli/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonApplication rec {
   pname = "Tautulli";
-  version = "2.13.4";
+  version = "2.14.2";
   format = "other";
 
   pythonPath = [ setuptools ];
@@ -11,8 +11,8 @@ buildPythonApplication rec {
   src = fetchFromGitHub {
     owner = "Tautulli";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-cOHirjYdfPPv7O9o3vnsKBffvqxoaRN32NaUOK0SmQ8=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-IMEjUUIdt4NwufXhQLZl8yxajKOfK8AvWBWxlahZ8Xs=";
   };
 
   installPhase = ''
diff --git a/pkgs/servers/teleport/13/Cargo.lock b/pkgs/servers/teleport/13/Cargo.lock
deleted file mode 100644
index 52daefdf5c3a2..0000000000000
--- a/pkgs/servers/teleport/13/Cargo.lock
+++ /dev/null
@@ -1,1956 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "adler"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-
-[[package]]
-name = "aho-corasick"
-version = "0.7.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "asn1-rs"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf6690c370453db30743b373a60ba498fc0d6d83b11f4abfd87a84a075db5dd4"
-dependencies = [
- "asn1-rs-derive",
- "asn1-rs-impl",
- "displaydoc",
- "nom",
- "num-traits",
- "rusticata-macros",
- "thiserror",
- "time",
-]
-
-[[package]]
-name = "asn1-rs-derive"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
- "synstructure",
-]
-
-[[package]]
-name = "asn1-rs-impl"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
-]
-
-[[package]]
-name = "atomic-polyfill"
-version = "0.1.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3ff7eb3f316534d83a8a2c3d1674ace8a5a71198eba31e2e2b597833f699b28"
-dependencies = [
- "critical-section",
-]
-
-[[package]]
-name = "atty"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-dependencies = [
- "hermit-abi 0.1.19",
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "autocfg"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-
-[[package]]
-name = "base64"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
-
-[[package]]
-name = "base64ct"
-version = "1.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b645a089122eccb6111b4f81cbc1a49f5900ac4666bb93ac027feaecf15607bf"
-
-[[package]]
-name = "bindgen"
-version = "0.66.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7"
-dependencies = [
- "bitflags 2.4.1",
- "cexpr",
- "clang-sys",
- "lazy_static",
- "lazycell",
- "peeking_take_while",
- "proc-macro2",
- "quote",
- "regex",
- "rustc-hash",
- "shlex",
- "syn 2.0.39",
-]
-
-[[package]]
-name = "bitflags"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-
-[[package]]
-name = "bitflags"
-version = "2.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
-
-[[package]]
-name = "block-buffer"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
-dependencies = [
- "block-padding",
- "byte-tools",
- "byteorder",
- "generic-array 0.12.4",
-]
-
-[[package]]
-name = "block-padding"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5"
-dependencies = [
- "byte-tools",
-]
-
-[[package]]
-name = "boring"
-version = "3.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ae1aba472e42d3cf45ac6d0a6c8fc3ddf743871209e1b40229aed9fbdf48ece"
-dependencies = [
- "bitflags 2.4.1",
- "boring-sys",
- "foreign-types",
- "libc",
- "once_cell",
-]
-
-[[package]]
-name = "boring-sys"
-version = "3.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ceced5be0047c7c48d77599535fd7f0a81c1b0f0a1e97e7eece24c45022bb481"
-dependencies = [
- "bindgen",
- "cmake",
- "fs_extra",
- "fslock",
-]
-
-[[package]]
-name = "bufstream"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40e38929add23cdf8a366df9b0e088953150724bcbe5fc330b0d8eb3b328eec8"
-
-[[package]]
-name = "bumpalo"
-version = "3.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba"
-
-[[package]]
-name = "byte-tools"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
-
-[[package]]
-name = "byteorder"
-version = "1.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
-
-[[package]]
-name = "cbindgen"
-version = "0.24.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a6358dedf60f4d9b8db43ad187391afe959746101346fe51bb978126bec61dfb"
-dependencies = [
- "clap",
- "heck",
- "indexmap",
- "log",
- "proc-macro2",
- "quote",
- "serde",
- "serde_json",
- "syn 1.0.107",
- "tempfile",
- "toml",
-]
-
-[[package]]
-name = "cc"
-version = "1.0.78"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d"
-
-[[package]]
-name = "cexpr"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
-dependencies = [
- "nom",
-]
-
-[[package]]
-name = "cfg-if"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-
-[[package]]
-name = "cipher"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e"
-dependencies = [
- "crypto-common",
- "inout",
-]
-
-[[package]]
-name = "clang-sys"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa2e27ae6ab525c3d369ded447057bca5438d86dc3a68f6faafb8269ba82ebf3"
-dependencies = [
- "glob",
- "libc",
- "libloading",
-]
-
-[[package]]
-name = "clap"
-version = "3.2.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5"
-dependencies = [
- "atty",
- "bitflags 1.3.2",
- "clap_lex",
- "indexmap",
- "strsim",
- "termcolor",
- "textwrap",
-]
-
-[[package]]
-name = "clap_lex"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
-dependencies = [
- "os_str_bytes",
-]
-
-[[package]]
-name = "cmake"
-version = "0.1.49"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db34956e100b30725f2eb215f90d4871051239535632f84fea3bc92722c66b7c"
-dependencies = [
- "cc",
-]
-
-[[package]]
-name = "const-oid"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3"
-
-[[package]]
-name = "const-oid"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cec318a675afcb6a1ea1d4340e2d377e56e47c266f28043ceccbf4412ddfdd3b"
-
-[[package]]
-name = "crc32fast"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "critical-section"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6548a0ad5d2549e111e1f6a11a6c2e2d00ce6a3dafe22948d67c2b443f775e52"
-
-[[package]]
-name = "crypto-bigint"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03c6a1d5fa1de37e071642dfa44ec552ca5b299adb128fab16138e24b548fd21"
-dependencies = [
- "generic-array 0.14.6",
- "subtle 2.4.1",
-]
-
-[[package]]
-name = "crypto-common"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
-dependencies = [
- "generic-array 0.14.6",
- "typenum",
-]
-
-[[package]]
-name = "crypto-mac"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5"
-dependencies = [
- "generic-array 0.12.4",
- "subtle 1.0.0",
-]
-
-[[package]]
-name = "data-encoding"
-version = "2.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb"
-
-[[package]]
-name = "delog"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cd67f90cc14e0a91cf693141453cccf2b74db9d59c40f6be18b79169fe77dfd"
-dependencies = [
- "log",
-]
-
-[[package]]
-name = "der"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c"
-dependencies = [
- "const-oid 0.7.1",
- "crypto-bigint",
- "pem-rfc7468 0.3.1",
-]
-
-[[package]]
-name = "der"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de"
-dependencies = [
- "const-oid 0.9.1",
- "pem-rfc7468 0.6.0",
- "zeroize",
-]
-
-[[package]]
-name = "der-parser"
-version = "8.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42d4bc9b0db0a0df9ae64634ac5bdefb7afcb534e182275ca0beadbe486701c1"
-dependencies = [
- "asn1-rs",
- "displaydoc",
- "nom",
- "num-bigint 0.4.3",
- "num-traits",
- "rusticata-macros",
-]
-
-[[package]]
-name = "derivative"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
-]
-
-[[package]]
-name = "digest"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
-dependencies = [
- "generic-array 0.12.4",
-]
-
-[[package]]
-name = "digest"
-version = "0.10.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
-dependencies = [
- "const-oid 0.9.1",
- "crypto-common",
-]
-
-[[package]]
-name = "displaydoc"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
-]
-
-[[package]]
-name = "env_logger"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
-dependencies = [
- "humantime",
- "is-terminal",
- "log",
- "regex",
- "termcolor",
-]
-
-[[package]]
-name = "errno"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50d6a0976c999d473fe89ad888d5a284e55366d9dc9038b1ba2aa15128c4afa0"
-dependencies = [
- "errno-dragonfly",
- "libc",
- "windows-sys 0.45.0",
-]
-
-[[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
-dependencies = [
- "cc",
- "libc",
-]
-
-[[package]]
-name = "fake-simd"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
-
-[[package]]
-name = "fastrand"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
-dependencies = [
- "instant",
-]
-
-[[package]]
-name = "fdeflate"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10"
-dependencies = [
- "simd-adler32",
-]
-
-[[package]]
-name = "flate2"
-version = "1.0.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841"
-dependencies = [
- "crc32fast",
- "miniz_oxide 0.6.2",
-]
-
-[[package]]
-name = "foreign-types"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
-dependencies = [
- "foreign-types-macros",
- "foreign-types-shared",
-]
-
-[[package]]
-name = "foreign-types-macros"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8469d0d40519bc608ec6863f1cc88f3f1deee15913f2f3b3e573d81ed38cccc"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
-]
-
-[[package]]
-name = "foreign-types-shared"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
-
-[[package]]
-name = "fs_extra"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
-
-[[package]]
-name = "fslock"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04412b8935272e3a9bae6f48c7bfff74c2911f60525404edfdd28e49884c3bfb"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "generic-array"
-version = "0.12.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd"
-dependencies = [
- "typenum",
-]
-
-[[package]]
-name = "generic-array"
-version = "0.14.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
-dependencies = [
- "typenum",
- "version_check",
-]
-
-[[package]]
-name = "gethostname"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.1.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi 0.9.0+wasi-snapshot-preview1",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.2.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
-]
-
-[[package]]
-name = "glob"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
-
-[[package]]
-name = "hash32"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67"
-dependencies = [
- "byteorder",
-]
-
-[[package]]
-name = "hashbrown"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-
-[[package]]
-name = "heapless"
-version = "0.7.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db04bc24a18b9ea980628ecf00e6c0264f3c1426dac36c00cb49b6fbad8b0743"
-dependencies = [
- "atomic-polyfill",
- "hash32",
- "rustc_version",
- "spin 0.9.4",
- "stable_deref_trait",
-]
-
-[[package]]
-name = "heck"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
-
-[[package]]
-name = "hermit-abi"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hmac"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695"
-dependencies = [
- "crypto-mac",
- "digest 0.8.1",
-]
-
-[[package]]
-name = "humantime"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
-
-[[package]]
-name = "indexmap"
-version = "1.9.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"
-dependencies = [
- "autocfg",
- "hashbrown",
-]
-
-[[package]]
-name = "inout"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
-dependencies = [
- "generic-array 0.14.6",
-]
-
-[[package]]
-name = "instant"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "io-lifetimes"
-version = "1.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46112a93252b123d31a119a8d1a1ac19deac4fac6e0e8b0df58f0d4e5870e63c"
-dependencies = [
- "libc",
- "windows-sys 0.42.0",
-]
-
-[[package]]
-name = "is-terminal"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28dfb6c8100ccc63462345b67d1bbc3679177c75ee4bf59bf29c8b1d110b8189"
-dependencies = [
- "hermit-abi 0.2.6",
- "io-lifetimes",
- "rustix 0.36.16",
- "windows-sys 0.42.0",
-]
-
-[[package]]
-name = "iso7816"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7e6ac743d509349b7865595ce90bbfcfbe59f42b8ec0db9e76ec361ace3f652"
-dependencies = [
- "delog",
- "heapless",
-]
-
-[[package]]
-name = "iso7816-tlv"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d47365efc3b4c252f8a3384445c0f7e8a4e0ae5c22bf3bedd2dd16f9bb45016a"
-dependencies = [
- "untrusted 0.9.0",
-]
-
-[[package]]
-name = "itoa"
-version = "1.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440"
-
-[[package]]
-name = "js-sys"
-version = "0.3.60"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47"
-dependencies = [
- "wasm-bindgen",
-]
-
-[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-dependencies = [
- "spin 0.5.2",
-]
-
-[[package]]
-name = "lazycell"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
-
-[[package]]
-name = "libc"
-version = "0.2.141"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5"
-
-[[package]]
-name = "libloading"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
-dependencies = [
- "cfg-if",
- "winapi",
-]
-
-[[package]]
-name = "libm"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb"
-
-[[package]]
-name = "linux-raw-sys"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
-
-[[package]]
-name = "linux-raw-sys"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd550e73688e6d578f0ac2119e32b797a327631a42f9433e59d02e139c8df60d"
-
-[[package]]
-name = "lock_api"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
-dependencies = [
- "autocfg",
- "scopeguard",
-]
-
-[[package]]
-name = "log"
-version = "0.4.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "md-5"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a18af3dcaf2b0219366cdb4e2af65a6101457b415c3d1a5c71dd9c2b7c77b9c8"
-dependencies = [
- "block-buffer",
- "digest 0.8.1",
- "opaque-debug",
-]
-
-[[package]]
-name = "md4"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4030c65cf2aab7ada769cae7d1e7159f8d034d6ded4f39afba037f094bfd9a1"
-dependencies = [
- "block-buffer",
- "digest 0.8.1",
- "fake-simd",
- "opaque-debug",
-]
-
-[[package]]
-name = "memchr"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
-
-[[package]]
-name = "minimal-lexical"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
-
-[[package]]
-name = "miniz_oxide"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa"
-dependencies = [
- "adler",
-]
-
-[[package]]
-name = "miniz_oxide"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
-dependencies = [
- "adler",
- "simd-adler32",
-]
-
-[[package]]
-name = "nom"
-version = "7.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36"
-dependencies = [
- "memchr",
- "minimal-lexical",
-]
-
-[[package]]
-name = "num-bigint"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-bigint"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-bigint-dig"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2399c9463abc5f909349d8aa9ba080e0b88b3ce2885389b60b993f39b1a56905"
-dependencies = [
- "byteorder",
- "lazy_static",
- "libm",
- "num-integer",
- "num-iter",
- "num-traits",
- "rand 0.8.5",
- "smallvec",
- "zeroize",
-]
-
-[[package]]
-name = "num-derive"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
-]
-
-[[package]]
-name = "num-integer"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
-dependencies = [
- "autocfg",
- "num-traits",
-]
-
-[[package]]
-name = "num-iter"
-version = "0.1.43"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-traits"
-version = "0.2.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
-dependencies = [
- "autocfg",
- "libm",
-]
-
-[[package]]
-name = "num_enum"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca565a7df06f3d4b485494f25ba05da1435950f4dc263440eda7a6fa9b8e36e4"
-dependencies = [
- "derivative",
- "num_enum_derive",
-]
-
-[[package]]
-name = "num_enum_derive"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffa5a33ddddfee04c0283a7653987d634e880347e96b5b2ed64de07efb59db9d"
-dependencies = [
- "proc-macro-crate",
- "proc-macro2",
- "quote",
- "syn 1.0.107",
-]
-
-[[package]]
-name = "oid-registry"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff"
-dependencies = [
- "asn1-rs",
-]
-
-[[package]]
-name = "once_cell"
-version = "1.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"
-
-[[package]]
-name = "opaque-debug"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
-
-[[package]]
-name = "os_str_bytes"
-version = "6.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee"
-
-[[package]]
-name = "peeking_take_while"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
-
-[[package]]
-name = "pem-rfc7468"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01de5d978f34aa4b2296576379fcc416034702fd94117c56ffd8a1a767cefb30"
-dependencies = [
- "base64ct",
-]
-
-[[package]]
-name = "pem-rfc7468"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24d159833a9105500e0398934e205e0773f0b27529557134ecfc51c27646adac"
-dependencies = [
- "base64ct",
-]
-
-[[package]]
-name = "pkcs1"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a78f66c04ccc83dd4486fd46c33896f4e17b24a7a3a6400dedc48ed0ddd72320"
-dependencies = [
- "der 0.5.1",
- "pkcs8 0.8.0",
- "zeroize",
-]
-
-[[package]]
-name = "pkcs1"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eff33bdbdfc54cc98a2eca766ebdec3e1b8fb7387523d5c9c9a2891da856f719"
-dependencies = [
- "der 0.6.1",
- "pkcs8 0.9.0",
- "spki 0.6.0",
- "zeroize",
-]
-
-[[package]]
-name = "pkcs8"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0"
-dependencies = [
- "der 0.5.1",
- "spki 0.5.4",
- "zeroize",
-]
-
-[[package]]
-name = "pkcs8"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba"
-dependencies = [
- "der 0.6.1",
- "spki 0.6.0",
-]
-
-[[package]]
-name = "png"
-version = "0.17.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aaeebc51f9e7d2c150d3f3bfeb667f2aa985db5ef1e3d212847bdedb488beeaa"
-dependencies = [
- "bitflags 1.3.2",
- "crc32fast",
- "fdeflate",
- "flate2",
- "miniz_oxide 0.7.1",
-]
-
-[[package]]
-name = "ppv-lite86"
-version = "0.2.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
-
-[[package]]
-name = "proc-macro-crate"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
-dependencies = [
- "toml",
-]
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.69"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.33"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "rand"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
-dependencies = [
- "getrandom 0.1.16",
- "libc",
- "rand_chacha 0.2.2",
- "rand_core 0.5.1",
- "rand_hc",
-]
-
-[[package]]
-name = "rand"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
-dependencies = [
- "libc",
- "rand_chacha 0.3.1",
- "rand_core 0.6.4",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
-dependencies = [
- "ppv-lite86",
- "rand_core 0.5.1",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
-dependencies = [
- "ppv-lite86",
- "rand_core 0.6.4",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-dependencies = [
- "getrandom 0.1.16",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
-dependencies = [
- "getrandom 0.2.8",
-]
-
-[[package]]
-name = "rand_hc"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-dependencies = [
- "rand_core 0.5.1",
-]
-
-[[package]]
-name = "rc4"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f1256e23efe6097f27aa82d6ca6889361c001586ae0f6917cbad072f05eb275"
-dependencies = [
- "cipher",
-]
-
-[[package]]
-name = "rdp-client"
-version = "0.1.0"
-dependencies = [
- "bitflags 2.4.1",
- "byteorder",
- "cbindgen",
- "env_logger",
- "iso7816",
- "iso7816-tlv",
- "libc",
- "log",
- "num-derive",
- "num-traits",
- "png",
- "rand 0.8.5",
- "rand_chacha 0.3.1",
- "rdp-rs",
- "rsa 0.8.2",
- "tempfile",
- "utf16string",
- "uuid",
-]
-
-[[package]]
-name = "rdp-rs"
-version = "0.1.0"
-source = "git+https://github.com/gravitational/rdp-rs?rev=0ddb504e10051aaa8f0de57580a973d2853a5b7d#0ddb504e10051aaa8f0de57580a973d2853a5b7d"
-dependencies = [
- "boring",
- "bufstream",
- "byteorder",
- "gethostname",
- "hmac",
- "indexmap",
- "md-5",
- "md4",
- "num-bigint 0.2.6",
- "num_enum",
- "oid-registry",
- "rand 0.7.3",
- "rc4",
- "ring",
- "rsa 0.6.1",
- "rustls",
- "x509-parser",
- "yasna",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
-dependencies = [
- "bitflags 1.3.2",
-]
-
-[[package]]
-name = "regex"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-syntax"
-version = "0.6.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
-
-[[package]]
-name = "ring"
-version = "0.16.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
-dependencies = [
- "cc",
- "libc",
- "once_cell",
- "spin 0.5.2",
- "untrusted 0.7.1",
- "web-sys",
- "winapi",
-]
-
-[[package]]
-name = "rsa"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cf22754c49613d2b3b119f0e5d46e34a2c628a937e3024b8762de4e7d8c710b"
-dependencies = [
- "byteorder",
- "digest 0.10.6",
- "num-bigint-dig",
- "num-integer",
- "num-iter",
- "num-traits",
- "pkcs1 0.3.3",
- "pkcs8 0.8.0",
- "rand_core 0.6.4",
- "smallvec",
- "subtle 2.4.1",
- "zeroize",
-]
-
-[[package]]
-name = "rsa"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55a77d189da1fee555ad95b7e50e7457d91c0e089ec68ca69ad2989413bbdab4"
-dependencies = [
- "byteorder",
- "digest 0.10.6",
- "num-bigint-dig",
- "num-integer",
- "num-iter",
- "num-traits",
- "pkcs1 0.4.1",
- "pkcs8 0.9.0",
- "rand_core 0.6.4",
- "signature",
- "subtle 2.4.1",
- "zeroize",
-]
-
-[[package]]
-name = "rustc-hash"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
-
-[[package]]
-name = "rustc_version"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
-dependencies = [
- "semver",
-]
-
-[[package]]
-name = "rusticata-macros"
-version = "4.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632"
-dependencies = [
- "nom",
-]
-
-[[package]]
-name = "rustix"
-version = "0.36.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6da3636faa25820d8648e0e31c5d519bbb01f72fdf57131f0f5f7da5fed36eab"
-dependencies = [
- "bitflags 1.3.2",
- "errno",
- "io-lifetimes",
- "libc",
- "linux-raw-sys 0.1.4",
- "windows-sys 0.45.0",
-]
-
-[[package]]
-name = "rustix"
-version = "0.37.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c348b5dc624ecee40108aa2922fed8bad89d7fcc2b9f8cb18f632898ac4a37f9"
-dependencies = [
- "bitflags 1.3.2",
- "errno",
- "io-lifetimes",
- "libc",
- "linux-raw-sys 0.3.0",
- "windows-sys 0.45.0",
-]
-
-[[package]]
-name = "rustls"
-version = "0.20.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "539a2bfe908f471bfa933876bd1eb6a19cf2176d375f82ef7f99530a40e48c2c"
-dependencies = [
- "log",
- "ring",
- "sct",
- "webpki",
-]
-
-[[package]]
-name = "ryu"
-version = "1.0.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"
-
-[[package]]
-name = "scopeguard"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-
-[[package]]
-name = "sct"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
-dependencies = [
- "ring",
- "untrusted 0.7.1",
-]
-
-[[package]]
-name = "semver"
-version = "1.0.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a"
-
-[[package]]
-name = "serde"
-version = "1.0.151"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97fed41fc1a24994d044e6db6935e69511a1153b52c15eb42493b26fa87feba0"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.151"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "255abe9a125a985c05190d687b320c12f9b1f0b99445e608c21ba0782c719ad8"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
-]
-
-[[package]]
-name = "serde_json"
-version = "1.0.91"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883"
-dependencies = [
- "itoa",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "shlex"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
-
-[[package]]
-name = "signature"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fe458c98333f9c8152221191a77e2a44e8325d0193484af2e9421a53019e57d"
-dependencies = [
- "digest 0.10.6",
- "rand_core 0.6.4",
-]
-
-[[package]]
-name = "simd-adler32"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f"
-
-[[package]]
-name = "smallvec"
-version = "1.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
-
-[[package]]
-name = "spin"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
-
-[[package]]
-name = "spin"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f6002a767bff9e83f8eeecf883ecb8011875a21ae8da43bffb817a57e78cc09"
-dependencies = [
- "lock_api",
-]
-
-[[package]]
-name = "spki"
-version = "0.5.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27"
-dependencies = [
- "base64ct",
- "der 0.5.1",
-]
-
-[[package]]
-name = "spki"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b"
-dependencies = [
- "base64ct",
- "der 0.6.1",
-]
-
-[[package]]
-name = "stable_deref_trait"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
-
-[[package]]
-name = "strsim"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
-
-[[package]]
-name = "subtle"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee"
-
-[[package]]
-name = "subtle"
-version = "2.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
-
-[[package]]
-name = "syn"
-version = "1.0.107"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "syn"
-version = "2.0.39"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "synstructure"
-version = "0.12.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
- "unicode-xid",
-]
-
-[[package]]
-name = "tempfile"
-version = "3.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998"
-dependencies = [
- "cfg-if",
- "fastrand",
- "redox_syscall",
- "rustix 0.37.4",
- "windows-sys 0.45.0",
-]
-
-[[package]]
-name = "termcolor"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
-name = "textwrap"
-version = "0.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
-
-[[package]]
-name = "thiserror"
-version = "1.0.38"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0"
-dependencies = [
- "thiserror-impl",
-]
-
-[[package]]
-name = "thiserror-impl"
-version = "1.0.38"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
-]
-
-[[package]]
-name = "time"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376"
-dependencies = [
- "itoa",
- "serde",
- "time-core",
- "time-macros",
-]
-
-[[package]]
-name = "time-core"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
-
-[[package]]
-name = "time-macros"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d967f99f534ca7e495c575c62638eebc2898a8c84c119b89e250477bc4ba16b2"
-dependencies = [
- "time-core",
-]
-
-[[package]]
-name = "toml"
-version = "0.5.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1333c76748e868a4d9d1017b5ab53171dfd095f70c712fdb4653a406547f598f"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "typenum"
-version = "1.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
-
-[[package]]
-name = "unicode-ident"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
-
-[[package]]
-name = "unicode-xid"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
-
-[[package]]
-name = "untrusted"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
-
-[[package]]
-name = "untrusted"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
-
-[[package]]
-name = "utf16string"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b62a1e85e12d5d712bf47a85f426b73d303e2d00a90de5f3004df3596e9d216"
-dependencies = [
- "byteorder",
-]
-
-[[package]]
-name = "uuid"
-version = "1.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b55a3fef2a1e3b3a00ce878640918820d3c51081576ac657d23af9fc7928fdb"
-dependencies = [
- "getrandom 0.2.8",
-]
-
-[[package]]
-name = "version_check"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-
-[[package]]
-name = "wasi"
-version = "0.9.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-
-[[package]]
-name = "wasi"
-version = "0.11.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-
-[[package]]
-name = "wasm-bindgen"
-version = "0.2.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268"
-dependencies = [
- "cfg-if",
- "wasm-bindgen-macro",
-]
-
-[[package]]
-name = "wasm-bindgen-backend"
-version = "0.2.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142"
-dependencies = [
- "bumpalo",
- "log",
- "once_cell",
- "proc-macro2",
- "quote",
- "syn 1.0.107",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-macro"
-version = "0.2.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810"
-dependencies = [
- "quote",
- "wasm-bindgen-macro-support",
-]
-
-[[package]]
-name = "wasm-bindgen-macro-support"
-version = "0.2.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
- "wasm-bindgen-backend",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-shared"
-version = "0.2.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f"
-
-[[package]]
-name = "web-sys"
-version = "0.3.60"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f"
-dependencies = [
- "js-sys",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "webpki"
-version = "0.22.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07ecc0cd7cac091bf682ec5efa18b1cff79d617b84181f38b3951dbe135f607f"
-dependencies = [
- "ring",
- "untrusted 0.7.1",
-]
-
-[[package]]
-name = "winapi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
-]
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
-name = "winapi-util"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-
-[[package]]
-name = "windows-sys"
-version = "0.42.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
-dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.45.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
-dependencies = [
- "windows-targets",
-]
-
-[[package]]
-name = "windows-targets"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
-dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
-]
-
-[[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
-
-[[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
-
-[[package]]
-name = "x509-parser"
-version = "0.14.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8"
-dependencies = [
- "asn1-rs",
- "base64",
- "data-encoding",
- "der-parser",
- "lazy_static",
- "nom",
- "oid-registry",
- "rusticata-macros",
- "thiserror",
- "time",
-]
-
-[[package]]
-name = "yasna"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0de7bff972b4f2a06c85f6d8454b09df153af7e3a4ec2aac81db1b105b684ddb"
-
-[[package]]
-name = "zeroize"
-version = "1.5.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f"
diff --git a/pkgs/servers/teleport/13/default.nix b/pkgs/servers/teleport/13/default.nix
deleted file mode 100644
index a35385374c585..0000000000000
--- a/pkgs/servers/teleport/13/default.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-args:
-import ../generic.nix (args // {
-  version = "13.4.14";
-  hash = "sha256-g11D5lekI3pUpKf5CLUuNjejs0gN/bEemHkCj3akha0=";
-  vendorHash = "sha256-kiDhlR/P81u/yNq72JuskES/UzMrTFzJT0H3xldGk8I=";
-  yarnHash = "sha256-E9T+7aXVoERdUnVEL4va2fcMnv1jsL9Js/R2LZo4hu4=";
-  cargoLock = {
-    lockFile = ./Cargo.lock;
-    outputHashes = {
-      "rdp-rs-0.1.0" = "sha256-4NbAsEmyUdmBcHuzx+SLQCGKICC4V4FX4GTK2SzyHC0=";
-    };
-  };
-  extPatches = [
-    # https://github.com/NixOS/nixpkgs/issues/120738
-    ../tsh.patch
-  ];
-})
diff --git a/pkgs/servers/teleport/14/Cargo.lock b/pkgs/servers/teleport/14/Cargo.lock
index d8ea54f8599fc..7148f803bba23 100644
--- a/pkgs/servers/teleport/14/Cargo.lock
+++ b/pkgs/servers/teleport/14/Cargo.lock
@@ -96,9 +96,9 @@ checksum = "b645a089122eccb6111b4f81cbc1a49f5900ac4666bb93ac027feaecf15607bf"
 
 [[package]]
 name = "bindgen"
-version = "0.66.1"
+version = "0.68.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7"
+checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078"
 dependencies = [
  "bitflags 2.4.0",
  "cexpr",
@@ -149,9 +149,9 @@ dependencies = [
 
 [[package]]
 name = "boring"
-version = "3.1.0"
+version = "4.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ae1aba472e42d3cf45ac6d0a6c8fc3ddf743871209e1b40229aed9fbdf48ece"
+checksum = "92667e5967bf826198f88dd3e43616973f8902769a6151616a65be1289a3c531"
 dependencies = [
  "bitflags 2.4.0",
  "boring-sys",
@@ -162,9 +162,9 @@ dependencies = [
 
 [[package]]
 name = "boring-sys"
-version = "3.1.0"
+version = "4.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ceced5be0047c7c48d77599535fd7f0a81c1b0f0a1e97e7eece24c45022bb481"
+checksum = "f04f5e0e2dc8315f68251391a4ac6da54793525c01d0206b10732b71139768cd"
 dependencies = [
  "bindgen",
  "cmake",
@@ -1233,7 +1233,7 @@ dependencies = [
 [[package]]
 name = "rdp-rs"
 version = "0.1.0"
-source = "git+https://github.com/gravitational/rdp-rs?rev=0ddb504e10051aaa8f0de57580a973d2853a5b7d#0ddb504e10051aaa8f0de57580a973d2853a5b7d"
+source = "git+https://github.com/gravitational/rdp-rs?rev=edfb5330a11d11eaf36d65e4300555368b4c6b02#edfb5330a11d11eaf36d65e4300555368b4c6b02"
 dependencies = [
  "boring",
  "bufstream",
@@ -1462,9 +1462,9 @@ dependencies = [
 
 [[package]]
 name = "shlex"
-version = "1.1.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
 
 [[package]]
 name = "signature"
diff --git a/pkgs/servers/teleport/14/default.nix b/pkgs/servers/teleport/14/default.nix
index 59cf021201ddb..456938012664d 100644
--- a/pkgs/servers/teleport/14/default.nix
+++ b/pkgs/servers/teleport/14/default.nix
@@ -1,13 +1,13 @@
 args:
 import ../generic.nix (args // {
-  version = "14.3.0";
-  hash = "sha256-yTbJeHCmPlelq7BrZQRY3XyNQiovV7NQ1tNh2NfYGbk=";
-  vendorHash = "sha256-lHsgSbY1nqQminU67QgV6FbHXNlv5tCMv2oVq48S33M=";
-  yarnHash = "sha256-m934P+KygGiCzr5fDsNTlmZ1T9JxA6P8zTimocQyVi0=";
+  version = "14.3.20";
+  hash = "sha256-oGN3t0xt7z3+U7wlhnJu4B8cSSMwONdiHZkv8UY7lkA=";
+  vendorHash = "sha256-RMTHWrbwKCGlxi9SP+8ccGk8YYqwhC8yWLPDf2Ha5bE=";
+  yarnHash = "sha256-c5ItZpq9Wp+kE9gw2WQdm5gTvBKA9I+nHAX/pT4Hqhs=";
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "rdp-rs-0.1.0" = "sha256-4NbAsEmyUdmBcHuzx+SLQCGKICC4V4FX4GTK2SzyHC0=";
+      "rdp-rs-0.1.0" = "sha256-U52FVuqo2DH/7f0cQ1qcb1GbFZ97yxExVFMX5cs0zw4=";
     };
   };
   extPatches = [
diff --git a/pkgs/servers/teleport/15/Cargo.lock b/pkgs/servers/teleport/15/Cargo.lock
index 2ca88c909399a..f3606ee85f562 100644
--- a/pkgs/servers/teleport/15/Cargo.lock
+++ b/pkgs/servers/teleport/15/Cargo.lock
@@ -1161,7 +1161,7 @@ dependencies = [
 [[package]]
 name = "ironrdp-async"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "bytes",
  "ironrdp-connector",
@@ -1172,7 +1172,7 @@ dependencies = [
 [[package]]
 name = "ironrdp-cliprdr"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "bitflags 2.4.2",
  "ironrdp-pdu",
@@ -1184,7 +1184,7 @@ dependencies = [
 [[package]]
 name = "ironrdp-connector"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "ironrdp-error",
  "ironrdp-pdu",
@@ -1197,9 +1197,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "ironrdp-displaycontrol"
+version = "0.1.0"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
+dependencies = [
+ "ironrdp-dvc",
+ "ironrdp-pdu",
+ "ironrdp-svc",
+ "tracing",
+]
+
+[[package]]
 name = "ironrdp-dvc"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "ironrdp-pdu",
  "ironrdp-svc",
@@ -1210,12 +1221,12 @@ dependencies = [
 [[package]]
 name = "ironrdp-error"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 
 [[package]]
 name = "ironrdp-graphics"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "bit_field",
  "bitflags 2.4.2",
@@ -1232,7 +1243,7 @@ dependencies = [
 [[package]]
 name = "ironrdp-pdu"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "bit_field",
  "bitflags 2.4.2",
@@ -1254,7 +1265,7 @@ dependencies = [
 [[package]]
 name = "ironrdp-rdpdr"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "bitflags 2.4.2",
  "ironrdp-error",
@@ -1266,7 +1277,7 @@ dependencies = [
 [[package]]
 name = "ironrdp-rdpsnd"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "ironrdp-pdu",
  "ironrdp-svc",
@@ -1275,9 +1286,10 @@ dependencies = [
 [[package]]
 name = "ironrdp-session"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "ironrdp-connector",
+ "ironrdp-displaycontrol",
  "ironrdp-dvc",
  "ironrdp-error",
  "ironrdp-graphics",
@@ -1289,7 +1301,7 @@ dependencies = [
 [[package]]
 name = "ironrdp-svc"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "bitflags 2.4.2",
  "ironrdp-pdu",
@@ -1298,7 +1310,7 @@ dependencies = [
 [[package]]
 name = "ironrdp-tls"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "tokio",
  "tokio-rustls",
@@ -1308,7 +1320,7 @@ dependencies = [
 [[package]]
 name = "ironrdp-tokio"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "bytes",
  "ironrdp-async",
@@ -1972,6 +1984,8 @@ dependencies = [
  "env_logger",
  "ironrdp-cliprdr",
  "ironrdp-connector",
+ "ironrdp-displaycontrol",
+ "ironrdp-dvc",
  "ironrdp-pdu",
  "ironrdp-rdpdr",
  "ironrdp-rdpsnd",
@@ -2172,9 +2186,9 @@ dependencies = [
 
 [[package]]
 name = "rustls"
-version = "0.21.9"
+version = "0.21.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9"
+checksum = "7fecbfb7b1444f477b345853b1fce097a2c6fb637b2bfb87e6bc5db0f043fae4"
 dependencies = [
  "log",
  "ring",
@@ -2976,9 +2990,9 @@ dependencies = [
 
 [[package]]
 name = "uuid"
-version = "1.6.1"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560"
+checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
 dependencies = [
  "getrandom",
  "serde",
diff --git a/pkgs/servers/teleport/15/default.nix b/pkgs/servers/teleport/15/default.nix
index a3d0bcefda34a..8c356547270a4 100644
--- a/pkgs/servers/teleport/15/default.nix
+++ b/pkgs/servers/teleport/15/default.nix
@@ -1,14 +1,14 @@
 { wasm-bindgen-cli, ... }@args:
 import ../generic.nix (args // {
-  version = "15.2.2";
-  hash = "sha256-LzJaskFaBtWkodeuT4mDNTs4+6FZj2OI+ZtjogU3KzQ=";
-  vendorHash = "sha256-D62Jk6LKdbprvkzAKoQVnEKdGQp5ITJYFf53q6154pU=";
-  yarnHash = "sha256-jpcjO1wT6m8J7LNQVeWo1j2G5P+sexrnNF1ipCZ8lCU=";
+  version = "15.3.7";
+  hash = "sha256-d+lfM1yt0xAWBqAqBCdEFcOHz32VT0EI4LybVbmjW0o=";
+  vendorHash = "sha256-pM6wy1tuMmUg8iNfeSmg8dW1cvP7G3fXa3vYuSEEdOc=";
+  yarnHash = "sha256-eWrR06FVkFxCrk+Z7BrY4dJjvEnUYzYrhSeD8ir3a08=";
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
       "boring-4.4.0" = "sha256-4wdl2kIA5oHQ0H6IddKQ+B5kRwrTeMbKe1+tAYZt2uw=";
-      "ironrdp-async-0.1.0" = "sha256-BKaVPr3O4D7DdwNJUjrU1zB7OwmJZnpJeyuMx+FqKjI=";
+      "ironrdp-async-0.1.0" = "sha256-NpBzPsvopu5Te6Ljln5rp1Wxc6O6mRB4lLh0JVnN+Xc=";
       "sspi-0.10.1" = "sha256-fkclC/plTh2d8zcmqthYmr5yXqbPTeFxI1VuaPX5vxk=";
     };
   };
diff --git a/pkgs/servers/teleport/default.nix b/pkgs/servers/teleport/default.nix
index b5fc9936e814b..79eafe5286831 100644
--- a/pkgs/servers/teleport/default.nix
+++ b/pkgs/servers/teleport/default.nix
@@ -1,7 +1,6 @@
 { callPackages, lib, ... }@args:
 let
   f = args: rec {
-    teleport_13 = import ./13 args;
     teleport_14 = import ./14 args;
     teleport_15 = import ./15 args;
     teleport = teleport_15;
diff --git a/pkgs/servers/teleport/generic.nix b/pkgs/servers/teleport/generic.nix
index e47845ea56c6f..84b57160d4fa0 100644
--- a/pkgs/servers/teleport/generic.nix
+++ b/pkgs/servers/teleport/generic.nix
@@ -76,10 +76,6 @@ let
 
     cargoDeps = rustPlatform.importCargoLock cargoLock;
 
-    RUSTFLAGS = builtins.concatStringsSep " " [
-      "-C linker=lld"
-    ];
-
     nativeBuildInputs = [ nodejs yarn fixup-yarn-lock ] ++
       lib.optional (lib.versionAtLeast version "15") [
         binaryen
diff --git a/pkgs/servers/traefik/default.nix b/pkgs/servers/traefik/default.nix
index 3e429e3595f73..ff27da98ad5cc 100644
--- a/pkgs/servers/traefik/default.nix
+++ b/pkgs/servers/traefik/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "traefik";
-  version = "3.0.0";
+  version = "3.0.1";
 
   # Archive with static assets for webui
   src = fetchzip {
     url = "https://github.com/traefik/traefik/releases/download/v${version}/traefik-v${version}.src.tar.gz";
-    hash = "sha256-OX9VJpO+SWIsocaSu+BhF3HT+zrhhgxb5NBvaRTadIY=";
+    hash = "sha256-FoKmoestbPu95E4dzBdG2rB0zEYocD/16yt9Je4M3GU=";
     stripRoot = false;
   };
 
-  vendorHash = "sha256-GRVSZB4GojXv2xAdx8Y5RSuhF/3paRhhq7HOWLRmmHE=";
+  vendorHash = "sha256-nEPcq4lUvs/hTobciIZAQKQ13MgKMLjYUkyYMd3EHms=";
 
   subPackages = [ "cmd/traefik" ];
 
diff --git a/pkgs/servers/ums/default.nix b/pkgs/servers/ums/default.nix
index e862884a457b6..bfed80373746e 100644
--- a/pkgs/servers/ums/default.nix
+++ b/pkgs/servers/ums/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = {
       description = "Universal Media Server: a DLNA-compliant UPnP Media Server";
-      license = lib.licenses.gpl2;
+      license = lib.licenses.gpl2Only;
       platforms = lib.platforms.linux;
       maintainers = with lib.maintainers; [ thall snicket2100 ];
       mainProgram = "ums";
diff --git a/pkgs/servers/uwsgi/default.nix b/pkgs/servers/uwsgi/default.nix
index 92b0131ff411e..d5ffb81196ff9 100644
--- a/pkgs/servers/uwsgi/default.nix
+++ b/pkgs/servers/uwsgi/default.nix
@@ -165,7 +165,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     description = "A fast, self-healing and developer/sysadmin-friendly application container server coded in pure C";
     homepage = "https://uwsgi-docs.readthedocs.org/en/latest/";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ abbradar schneefux globin ];
     platforms = lib.platforms.unix;
     mainProgram = "uwsgi";
diff --git a/pkgs/servers/web-apps/discourse/asserts_patch-package_from_path.patch b/pkgs/servers/web-apps/discourse/asserts_patch-package_from_path.patch
deleted file mode 100644
index 9f7d98b069f44..0000000000000
--- a/pkgs/servers/web-apps/discourse/asserts_patch-package_from_path.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/app/assets/javascripts/discourse/package.json b/app/assets/javascripts/discourse/package.json
-index 9e4533d2..e57f8a5f 100644
---- a/app/assets/javascripts/discourse/package.json
-+++ b/app/assets/javascripts/discourse/package.json
-@@ -14,7 +14,7 @@
-     "build": "ember build",
-     "start": "ember serve",
-     "test": "ember test",
--    "postinstall": "yarn --silent --cwd .. patch-package"
-+    "postinstall": "patch-package"
-   },
-   "dependencies": {
-     "@babel/core": "^7.21.4",
diff --git a/pkgs/servers/web-apps/discourse/assets_rake_command.patch b/pkgs/servers/web-apps/discourse/assets_rake_command.patch
index b37b6d1d79944..b3e2e97ff8545 100644
--- a/pkgs/servers/web-apps/discourse/assets_rake_command.patch
+++ b/pkgs/servers/web-apps/discourse/assets_rake_command.patch
@@ -1,13 +1,13 @@
 diff --git a/lib/tasks/assets.rake b/lib/tasks/assets.rake
-index 68b5db61ac..d460b5753e 100644
+index 9608297789..5487490915 100644
 --- a/lib/tasks/assets.rake
 +++ b/lib/tasks/assets.rake
-@@ -19,7 +19,7 @@ task 'assets:precompile:before' do
- 
-     if only_assets_precompile_remaining
-       # Using exec to free up Rails app memory during ember build
--      exec "#{compile_command} && EMBER_CLI_COMPILE_DONE=1 bin/rake assets:precompile"
-+      exec "#{compile_command} && EMBER_CLI_COMPILE_DONE=1 bundle exec rake assets:precompile"
+@@ -36,7 +36,7 @@ task "assets:precompile:build" do
+     if only_ember_precompile_build_remaining
+       exec "#{compile_command}"
+     elsif only_assets_precompile_remaining
+-      exec "#{compile_command} && SKIP_EMBER_CLI_COMPILE=1 bin/rake assets:precompile"
++      exec "#{compile_command} && SKIP_EMBER_CLI_COMPILE=1 bundle exec rake assets:precompile"
      else
-       system compile_command
-     end
+       system compile_command, exception: true
+       EmberCli.clear_cache!
diff --git a/pkgs/servers/web-apps/discourse/default.nix b/pkgs/servers/web-apps/discourse/default.nix
index 57c252054eb94..79d7d096f6688 100644
--- a/pkgs/servers/web-apps/discourse/default.nix
+++ b/pkgs/servers/web-apps/discourse/default.nix
@@ -46,13 +46,13 @@
 }@args:
 
 let
-  version = "3.1.0";
+  version = "3.2.2";
 
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse";
     rev = "v${version}";
-    sha256 = "sha256-Iv7VSnK8nZDpmIwIRPedSWlftABKuMOQ4MXDGpjuWrY=";
+    sha256 = "sha256-JUCFtB5BvBytO3flq9o6iI3HPmvLU358HEmE6wbBsSk=";
   };
 
   ruby = ruby_3_2;
@@ -65,6 +65,7 @@ let
     gnutar
     git
     brotli
+    nodejs_18
 
     # Misc required system utils
     which
@@ -200,9 +201,14 @@ let
     pname = "discourse-assets";
     inherit version src;
 
+    yarnDevOfflineCache = fetchYarnDeps {
+      yarnLock = src + "/yarn.lock";
+      hash = "sha256-0s8c2V8Wl3f5kL1OIn2ps6hL7CUQD5+LJm+9LYHc+W0=";
+    };
+
     yarnOfflineCache = fetchYarnDeps {
-      yarnLock = src + "/app/assets/javascripts/yarn.lock";
-      sha256 = "0sclrv3303dgg3r08dwhd1yvi3pvlnvnikn300vjsh6c71fnzhnj";
+      yarnLock = src + "/app/assets/javascripts/yarn-ember5.lock";
+      hash = "sha256-ZBXvNdHHV92kSAswe6KA+OqaY5smf7ZKTTOiY8g78D0=";
     };
 
     nativeBuildInputs = runtimeDeps ++ [
@@ -210,9 +216,7 @@ let
       redis
       nodePackages.uglify-js
       terser
-      nodePackages.patch-package
       yarn
-      nodejs_18
       jq
       moreutils
       fixup-yarn-lock
@@ -234,13 +238,14 @@ let
       # assets precompilation task.
       ./assets_rake_command.patch
 
-      # `app/assets/javascripts/discourse/package.json`'s postinstall
-      # hook tries to call `../node_modules/.bin/patch-package`, which
-      # hasn't been `patchShebangs`-ed yet. So instead we just use
-      # `patch-package` from `nativeBuildInputs`.
-      ./asserts_patch-package_from_path.patch
+      # Little does he know, so he decided there is no need to generate the
+      # theme-transpiler over and over again. Which at the same time allows the removal
+      # of javascript devDependencies from the runtime environment.
+      ./prebuild-theme-transpiler.patch
     ];
 
+    env.RAILS_ENV = "production";
+
     # We have to set up an environment that is close enough to
     # production ready or the assets:precompile task refuses to
     # run. This means that Redis and PostgreSQL has to be running and
@@ -249,26 +254,29 @@ let
       # Yarn wants a real home directory to write cache, config, etc to
       export HOME=$NIX_BUILD_TOP/fake_home
 
-      # Make yarn install packages from our offline cache, not the registry
-      yarn config --offline set yarn-offline-mirror $yarnOfflineCache
+      yarn_install() {
+        local offlineCache=$1 yarnLock=$2
 
-      # Fixup "resolved"-entries in yarn.lock to match our offline cache
-      fixup-yarn-lock app/assets/javascripts/yarn.lock
+        # Make yarn install packages from our offline cache, not the registry
+        yarn config --offline set yarn-offline-mirror $offlineCache
 
-      export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
+        # Fixup "resolved"-entries in yarn.lock to match our offline cache
+        fixup-yarn-lock $yarnLock
 
-      find app/assets/javascripts -name package.json -print0 \
-        | xargs -0 -I {} bash -c "jq 'del(.scripts.postinstall)' -r <{} | sponge {}"
-      yarn install --offline --cwd app/assets/javascripts/discourse
+        # Install while ignoring hook scripts
+        yarn --offline --ignore-scripts --cwd $(dirname $yarnLock) install
+      }
 
-      patchShebangs app/assets/javascripts/node_modules/
+      # Install devDependencies for generating the theme-transpiler executed as
+      # dependent task assets:precompile:theme_transpiler before db:migrate
+      yarn_install $yarnDevOfflineCache yarn.lock
 
-      # Run `patch-package` AFTER the corresponding shebang inside `.bin/patch-package`
-      # got patched. Otherwise this will fail with
-      #     /bin/sh: line 1: /build/source/app/assets/javascripts/node_modules/.bin/patch-package: cannot execute: required file not found
-      pushd app/assets/javascripts &>/dev/null
-        yarn run patch-package
-      popd &>/dev/null
+      # Install the runtime dependencies
+      yarn_install $yarnOfflineCache app/assets/javascripts/yarn-ember5.lock
+      # Patch before running postinstall hook script
+      patchShebangs --build app/assets/javascripts
+      yarn --offline --cwd app/assets/javascripts run postinstall
+      export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
 
       redis-server >/dev/null &
 
@@ -286,14 +294,8 @@ let
       psql 'discourse' -tAc "CREATE EXTENSION IF NOT EXISTS pg_trgm"
       psql 'discourse' -tAc "CREATE EXTENSION IF NOT EXISTS hstore"
 
-      # Create a temporary home dir to stop bundler from complaining
-      mkdir $NIX_BUILD_TOP/tmp_home
-      export HOME=$NIX_BUILD_TOP/tmp_home
-
       ${lib.concatMapStringsSep "\n" (p: "ln -sf ${p} plugins/${p.pluginName or ""}") plugins}
 
-      export RAILS_ENV=production
-
       bundle exec rake db:migrate >/dev/null
       chmod -R +w tmp
     '';
@@ -352,6 +354,11 @@ let
 
       # Make sure the notification email setting applies
       ./notification_email.patch
+
+      # Little does he know, so he decided there is no need to generate the
+      # theme-transpiler over and over again. Which at the same time allows the removal
+      # of javascript devDependencies from the runtime environment.
+      ./prebuild-theme-transpiler.patch
     ];
 
     postPatch = ''
@@ -402,6 +409,9 @@ let
 
     passthru = {
       inherit rubyEnv runtimeEnv runtimeDeps rake mkDiscoursePlugin assets;
+      inherit (pkgs)
+        discourseAllPlugins
+      ;
       enabledPlugins = plugins;
       plugins = callPackage ./plugins/all-plugins.nix { inherit mkDiscoursePlugin; };
       ruby = rubyEnv.wrappedRuby;
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix
index 68cd69dcc3a6e..ff7df0dfc70ea 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-assign";
-    rev = "0cbf10b8055370445bd36536e51986bf48bdc57e";
-    sha256 = "sha256-7rJ2zQo1nCHwtVuLJUmdj66Ky2bi4Cpo+22H3DbO1uo=";
+    rev = "b796ae3fcc89b48cf777de5ee3a4c21aada9271e";
+    sha256 = "sha256-PnSD2ZuUVjH8TifHuzbkpmpfGSN/q4VWyJtkOPND44o=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-docs";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix
index 266c43e4f8e28..06bb5b659d7e5 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-bbcode-color";
-    rev = "35aab2e9b92f8b01633d374ea999e7fd59d020d7";
-    sha256 = "sha256-DHckx921EeQysm1UPloCrt43BJetTnZKnTbJGk15NMs=";
+    rev = "3336efe231e6c02e1dbe11ada71296af258cff58";
+    sha256 = "sha256-C2PPF8kJm0agcYcRSUUBmmxZJliPatPM1vRtjufEd4M=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-bbcode-color";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock
index 183ead8d51d44..15aafaf94c9c8 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock
@@ -1,15 +1,25 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activesupport (7.0.8)
+    activesupport (7.1.3.3)
+      base64
+      bigdecimal
       concurrent-ruby (~> 1.0, >= 1.0.2)
+      connection_pool (>= 2.2.5)
+      drb
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
+      mutex_m
       tzinfo (~> 2.0)
-    concurrent-ruby (1.2.2)
-    i18n (1.14.1)
+    base64 (0.2.0)
+    bigdecimal (3.1.8)
+    concurrent-ruby (1.2.3)
+    connection_pool (2.4.1)
+    drb (2.2.1)
+    i18n (1.14.5)
       concurrent-ruby (~> 1.0)
-    minitest (5.20.0)
+    minitest (5.23.1)
+    mutex_m (0.2.0)
     rrule (0.4.4)
       activesupport (>= 2.3)
     tzinfo (2.0.6)
@@ -22,4 +32,4 @@ DEPENDENCIES
   rrule (= 0.4.4)
 
 BUNDLED WITH
-   2.4.13
+   2.5.9
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix
index 7a6bd7f692707..235f5f717755f 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix
@@ -6,8 +6,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-calendar";
-    rev = "afc2ee684de41601d6cecc46713d139760f176a6";
-    sha256 = "sha256-rTQWO+E/Jg4zjZDYDvBrDQsox5q4dHkdQjwnJxgv3dI=";
+    rev = "455eeed541a9b5cacf627349e543028427178a44";
+    sha256 = "sha256-RXjMpeqCvAvwNsHpc3Fyms4pRXXqvarU8hWo3o1VgXY=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-calendar";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix
index 2e9b15ee5b9ee..51922b163d4b5 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix
@@ -1,24 +1,64 @@
 {
   activesupport = {
-    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
+    dependencies = ["base64" "bigdecimal" "concurrent-ruby" "connection_pool" "drb" "i18n" "minitest" "mutex_m" "tzinfo"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "188kbwkn1lbhz40ala8ykp20jzqphgc68g3d8flin8cqa2xid0s5";
+      sha256 = "0z8kygxmz99krz9pwp947znkzf0jr64sml28df0vf1gzxlg7y57i";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.1.3.3";
+  };
+  base64 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01qml0yilb9basf7is2614skjp8384h2pycfx86cr8023arfj98g";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  bigdecimal = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gi7zqgmqwi5lizggs1jhc3zlwaqayy9rx2ah80sxy24bbnng558";
+      type = "gem";
+    };
+    version = "3.1.8";
   };
   concurrent-ruby = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0krcwb6mn0iklajwngwsg850nk8k9b35dhmc2qkbdqvmifdi2y9q";
+      sha256 = "1qh1b14jwbbj242klkyz5fc7npd4j0mvndz62gajhvl1l3wd7zc2";
       type = "gem";
     };
-    version = "1.2.2";
+    version = "1.2.3";
+  };
+  connection_pool = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1x32mcpm2cl5492kd6lbjbaf17qsssmpx9kdyr7z1wcif2cwyh0g";
+      type = "gem";
+    };
+    version = "2.4.1";
+  };
+  drb = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h5kbj9hvg5hb3c7l425zpds0vb42phvln2knab8nmazg2zp5m79";
+      type = "gem";
+    };
+    version = "2.2.1";
   };
   i18n = {
     dependencies = ["concurrent-ruby"];
@@ -26,20 +66,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qaamqsh5f3szhcakkak8ikxlzxqnv49n2p7504hcz2l0f4nj0wx";
+      sha256 = "1ffix518y7976qih9k1lgnc17i3v6yrlh0a3mckpxdb4wc2vrp16";
       type = "gem";
     };
-    version = "1.14.1";
+    version = "1.14.5";
   };
   minitest = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bkmfi9mb49m0fkdhl2g38i3xxa02d411gg0m8x0gvbwfmmg5ym3";
+      sha256 = "1gkslxvkhh44s21rbjvka3zsvfxxrf5pcl6f75rv2vyrzzbgis7i";
+      type = "gem";
+    };
+    version = "5.23.1";
+  };
+  mutex_m = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ma093ayps1m92q845hmpk0dmadicvifkbf05rpq9pifhin0rvxn";
       type = "gem";
     };
-    version = "5.20.0";
+    version = "0.2.0";
   };
   rrule = {
     dependencies = ["activesupport"];
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix
index 499d2e6447bd1..701b5479ce1d7 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-chat-integration";
-    rev = "70fea6b66b68868aa4c00b45a169436deaa142a8";
-    sha256 = "sha256-K9MmP1F0B6Na2dTqgnsjMbTQFkF+nNKkI8aF3zPAodc=";
+    rev = "2e17b03e9a435de0079ae1c2eed1b48a11ad16a9";
+    sha256 = "sha256-FOIQrpVFHak2PB8eNFv/oJwYiESJcHBqeC+MZMXnexo=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-chat-integration";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix
index f3fdd5459432e..ab7ee28a7f643 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-checklist";
-    rev = "d94e58c3060ee7ca0fe76339215ed9456d5f4ea4";
-    sha256 = "sha256-zTMkU8NRqxLQ3/ghYTmEhRqbCgdYsYaImHdGu7WwuFk=";
+    rev = "6fcf9fed5c3ae3baf9ddd1cca9cef4dc089996c1";
+    sha256 = "sha256-RIuoqZo7dW1DXbfbWhyyhCOGe4R5sLerzFW2TT0zO6U=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-checklist";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix
index 39320637ddcdc..bb21a6bdb4f63 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-data-explorer";
-    rev = "e4f8d3924a18b303c2bb7da9472cf0c060060e4e";
-    sha256 = "sha256-K+GPszO3je6NmnhIRSqSEhylUK5oEByaS0bLfAGjvB4=";
+    rev = "ebe71a7a138c856d88737eb11b5096a42d4fbaf3";
+    sha256 = "sha256-3CdA4liSrPhucOGevEbKuIYETlXpAn9qtsG0+Tr67EQ=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-data-explorer";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix
index 3dcd2b86a9692..ee3910b8e0ab0 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-docs";
-    rev = "a4b203274b88c5277d0b5b936de0bc0e0016726c";
-    sha256 = "sha256-R+VP/gsb2Oa6lPVMhRoGZzOBx5C7kRSxqwYpWE10GHw=";
+    rev = "94c7b7da216c66d773f800a714493f087affaac9";
+    sha256 = "sha256-4ZPv42fw5YdJ3+QUGOh5CJMWkXoUVs4bTVd9zuFekQM=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-docs";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock
index 3640cbc601dad..87fbcc8f726bf 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock
@@ -1,20 +1,22 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    addressable (2.8.5)
+    addressable (2.8.6)
       public_suffix (>= 2.0.2, < 6.0)
-    faraday (2.7.10)
-      faraday-net_http (>= 2.0, < 3.1)
-      ruby2_keywords (>= 0.0.4)
-    faraday-net_http (3.0.2)
+    faraday (2.9.0)
+      faraday-net_http (>= 2.0, < 3.2)
+    faraday-net_http (3.1.0)
+      net-http
+    net-http (0.4.1)
+      uri
     octokit (5.6.1)
       faraday (>= 1, < 3)
       sawyer (~> 0.9)
-    public_suffix (5.0.3)
-    ruby2_keywords (0.0.5)
+    public_suffix (5.0.5)
     sawyer (0.9.2)
       addressable (>= 2.3.5)
       faraday (>= 0.17.3, < 3)
+    uri (0.13.0)
 
 PLATFORMS
   ruby
@@ -24,4 +26,4 @@ DEPENDENCIES
   sawyer (= 0.9.2)
 
 BUNDLED WITH
-   2.4.13
+   2.5.9
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix
index 50a59136ecf50..c47454aad43c5 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix
@@ -6,8 +6,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-github";
-    rev = "8aa068d56ef010cecaabd50657e7753f4bbecc1f";
-    sha256 = "sha256-WzljuGvv6pki3ROkvhXZWQaq5D9JkCbWjdlkdRI8lHE=";
+    rev = "53e22ccbd32dd868435f66efa2d48e0389673dea";
+    sha256 = "sha256-QaKmnftCxkgGUP5U9wNYm483D+GdpcU8F96CLl8woo8=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-github";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix
index 87599999d894f..73552eb610eef 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix
@@ -5,31 +5,43 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05r1fwy487klqkya7vzia8hnklcxy4vr92m9dmni3prfwk6zpw33";
+      sha256 = "0irbdwkkjwzajq1ip6ba46q49sxnrl2cw7ddkdhsfhb6aprnm3vr";
       type = "gem";
     };
-    version = "2.8.5";
+    version = "2.8.6";
   };
   faraday = {
-    dependencies = ["faraday-net_http" "ruby2_keywords"];
+    dependencies = ["faraday-net_http"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "187clqhp9mv5mnqmjlfdp57svhsg1bggz84ak8v333j9skrnrgh9";
+      sha256 = "1qqb1rmk0f9m82iijjlqadh5yby1bhnr6svjk9vxdvh6f181988s";
       type = "gem";
     };
-    version = "2.7.10";
+    version = "2.9.0";
   };
   faraday-net_http = {
+    dependencies = ["net-http"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13byv3mp1gsjyv8k0ih4612y6vw5kqva6i03wcg4w2fqpsd950k8";
+      sha256 = "17w51yk4rrm9rpnbc3x509s619kba0jga3qrj4b17l30950vw9qn";
       type = "gem";
     };
-    version = "3.0.2";
+    version = "3.1.0";
+  };
+  net-http = {
+    dependencies = ["uri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10n2n9aq00ih8v881af88l1zyrqgs5cl3njdw8argjwbl5ggqvm9";
+      type = "gem";
+    };
+    version = "0.4.1";
   };
   octokit = {
     dependencies = ["faraday" "sawyer"];
@@ -47,30 +59,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0n9j7mczl15r3kwqrah09cxj8hxdfawiqxa60kga2bmxl9flfz9k";
+      sha256 = "14y4vzjwf5gp0mqgs880kis0k7n2biq8i6ci6q2n315kichl1hvj";
       type = "gem";
     };
-    version = "5.0.3";
+    version = "5.0.5";
   };
-  ruby2_keywords = {
+  sawyer = {
+    dependencies = ["addressable" "faraday"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vz322p8n39hz3b4a9gkmz9y7a5jaz41zrm2ywf31dvkqm03glgz";
+      sha256 = "1jks1qjbmqm8f9kvwa81vqj39avaj9wdnzc531xm29a55bb74fps";
       type = "gem";
     };
-    version = "0.0.5";
+    version = "0.9.2";
   };
-  sawyer = {
-    dependencies = ["addressable" "faraday"];
+  uri = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jks1qjbmqm8f9kvwa81vqj39avaj9wdnzc531xm29a55bb74fps";
+      sha256 = "094gk72ckazf495qc76gk09b5i318d5l9m7bicg2wxlrjcm3qm96";
       type = "gem";
     };
-    version = "0.9.2";
+    version = "0.13.0";
   };
 }
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix
index 3a07b4bfd3424..90fd6927ac946 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-math";
-    rev = "529ad1fe6da924da378a60bec48c35657bb01a68";
-    sha256 = "sha256-zhtAy0tTVMzQfPilTwfyyzxgCJD4xazOITBuliFR5Gg=";
+    rev = "2984713f68044544129b3575b9e2f9be31105293";
+    sha256 = "sha256-3jxSwjKGyKQy+ed6S2tQ27jseB9NygeiYvaldgV1XW4=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-math";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile
index 59c64586dc17b..d2a2d943c408e 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile
@@ -5,6 +5,6 @@ source "https://rubygems.org"
 # gem "rails"
 gem 'bcrypt', '3.1.13'
 gem 'unix-crypt', '1.3.0'
-gem 'ffi', '1.15.5', require: false
+gem 'ffi', '1.16.3', require: false
 gem 'ffi-compiler', '1.0.1', require: false
 gem 'argon2', '2.2.0'
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile.lock
index 75a9a363b6cce..a7bfa717ed9db 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile.lock
@@ -5,11 +5,11 @@ GEM
       ffi (~> 1.15)
       ffi-compiler (~> 1.0)
     bcrypt (3.1.13)
-    ffi (1.15.5)
+    ffi (1.16.3)
     ffi-compiler (1.0.1)
       ffi (>= 1.0.0)
       rake
-    rake (13.0.6)
+    rake (13.2.1)
     unix-crypt (1.3.0)
 
 PLATFORMS
@@ -18,9 +18,9 @@ PLATFORMS
 DEPENDENCIES
   argon2 (= 2.2.0)
   bcrypt (= 3.1.13)
-  ffi (= 1.15.5)
+  ffi (= 1.16.3)
   ffi-compiler (= 1.0.1)
   unix-crypt (= 1.3.0)
 
 BUNDLED WITH
-   2.4.13
+   2.5.9
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/default.nix
index ee8d03e66ca81..2189ba854eb7a 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/default.nix
@@ -6,8 +6,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "communiteq";
     repo = "discourse-migratepassword";
-    rev = "a95ae6bca4126172186fafcd2315f51a4504c23b";
-    sha256 = "sha256-lr2xHz+8q4XnHc/7KLX0Z2m0KMffLgGYk36zxGG9X5o=";
+    rev = "32d5fca6de3e8daf3869696ce835fefca1f00bfa";
+    sha256 = "sha256-kNYkA6zuiuUZlPgvIvaO49P8bD+nNysEsow33xG1PnI=";
   };
   meta = with lib; {
     homepage = "https://github.com/communiteq/discourse-migratepassword";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/gemset.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/gemset.nix
index 97aa9bfc70485..49174f05d0e91 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/gemset.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/gemset.nix
@@ -25,10 +25,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1862ydmclzy1a0cjbvm8dz7847d9rch495ib0zb64y84d3xd4bkg";
+      sha256 = "1yvii03hcgqj30maavddqamqy50h7y6xcn2wcyq72wn823zl4ckd";
       type = "gem";
     };
-    version = "1.15.5";
+    version = "1.16.3";
   };
   ffi-compiler = {
     dependencies = ["ffi" "rake"];
@@ -46,10 +46,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w";
+      sha256 = "17850wcwkgi30p7yqh60960ypn7yibacjjha0av78zaxwvd3ijs6";
       type = "gem";
     };
-    version = "13.0.6";
+    version = "13.2.1";
   };
   unix-crypt = {
     groups = ["default"];
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix
index a467f4d17b399..aab60ca9bc9fa 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix
@@ -6,8 +6,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-openid-connect";
-    rev = "b1df541ad29f6f6098a1008b83393b2d400986ed";
-    sha256 = "sha256-afRd/9M0nQGkS14Q8BJhcJwMCkOku3Fr0uHxcRl44vQ=";
+    rev = "f31a869611a2fad8efadd9b2504440215169a391";
+    sha256 = "sha256-cEgAjf7EPAVKsJOmm9lj9Jm0YNFjRswOJFFHU12Q5/Y=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-openid-connect";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock
index 88a3a3c8d6548..e7939eadbb0e7 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock
@@ -13,4 +13,4 @@ DEPENDENCIES
   webrick (= 1.7.0)
 
 BUNDLED WITH
-   2.4.13
+   2.5.9
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix
index 95bf4c5a679a3..d0fa5b690bb6e 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix
@@ -6,8 +6,8 @@
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-prometheus";
-    rev = "8a7a46a80cc65aa0839bc5e3c3b6f8ef6544089f";
-    sha256 = "sha256-TL+pbP26LvRMKdy8CAuBEK+LZfAs8HfggMeUDaBu9hc=";
+    rev = "831dba15659055361966e0c42e6b517b3d7b133b";
+    sha256 = "sha256-b7Du8rENY/gBbkqZSu6b9KHbvklYMkIRl8IGd1W4dHk=";
   };
 
   patches = [
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix
index 36e4ac19c4bd6..656acb2a9b1ea 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-reactions";
-    rev = "643f807a3a2195f08211064301f0350d9f51604f";
-    sha256 = "sha256-4FdiYUNysSuOJ664G3YvlUHx/J7MLUS3kVBdXT47oEw=";
+    rev = "354695cf5fce2bf516c9be451fe4bb56e487b95a";
+    sha256 = "sha256-pTK7gcDgWAlRPrUnJikMOEd0N/DBrHE0hOP23t//MiE=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-reactions";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix
index 32709666189e3..150cf2216c20a 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-saved-searches";
-    rev = "7c9bdcd68951e7cef16cafe3c4bfb583bb994d2a";
-    sha256 = "sha256-6RIN12ACDCeRcxmsC3FgeIPdvovI4arn7w/Dqil1yCI=";
+    rev = "063e35ec5a905aac3332be6821b15eec6909f022";
+    sha256 = "sha256-33aBhw00/tIF0Y0isYISctn3Bd+KntrRngj6sxW30EY=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-saved-searches";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix
index ed47f9e15e924..c44d5420941f5 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-solved";
-    rev = "b5d487d6a5bfe2571d936eec5911d02a5f3fcc32";
-    sha256 = "sha256-Tt7B9PcsV8E7B+m8GnJw+MBz9rGYtojKt6NjBFMQvOM=";
+    rev = "a18ce6d712fafed286bcc99543dd173110c6dfb8";
+    sha256 = "sha256-MUkQ/6ChMGqSNFZO2t8amecrYZbK1OyVq5lhPeB99ow=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-solved";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix
index 23ce34dcd694e..56240177a73e5 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-spoiler-alert";
-    rev = "65989714af08eda44196cca3a0afe85c9e9443f9";
-    sha256 = "sha256-R/vqNEDst50+Y7anckIvhy4viBOqBemIZMh4sPt7kRM=";
+    rev = "42b77ec048b9b386a8b25a22bfec6472817da465";
+    sha256 = "sha256-BQeID+y9RvmcnuNsodOMXseVvre5QYxv+E/ul8bucUI=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-spoiler-alert";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix
index a311dbcfbfcf9..3ddbc37cf7e9d 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-voting";
-    rev = "6449fc15658d972e20086a3f1fae3dbac9cd9eeb";
-    sha256 = "sha256-f04LpVeodCVEB/t5Ic2dketp542Nrc0rZWbQ6hrC22g=";
+    rev = "ba41633e0abe0535fd358a0809e0b4e0c79be128";
+    sha256 = "sha256-Ni+g9mWftvYsknIoSFBRoq7IMIWPbj4mgGM+k8fjOuI=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-voting";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix
index 979398f7394b7..2a5b3ff7f5ec8 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-yearly-review";
-    rev = "3246c6b378f9e69e664c575efc63c2ad83bcac2f";
-    sha256 = "sha256-usHHyfYP4YAQ94f7gvNSH7VBRRkdZMmsSi9QQM8tPfY=";
+    rev = "59b98bab5ee370da4774f60ea7b5122dddcbd83a";
+    sha256 = "sha256-OIptI6T5n021AsWO/eYK3ntL0JJG7+f4OmZwdxGcfFg=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-yearly-review";
diff --git a/pkgs/servers/web-apps/discourse/prebuild-theme-transpiler.patch b/pkgs/servers/web-apps/discourse/prebuild-theme-transpiler.patch
new file mode 100644
index 0000000000000..bed44baee5709
--- /dev/null
+++ b/pkgs/servers/web-apps/discourse/prebuild-theme-transpiler.patch
@@ -0,0 +1,21 @@
+diff --git a/lib/discourse_js_processor.rb b/lib/discourse_js_processor.rb
+index 26d142fa4d..6040aba6f4 100644
+--- a/lib/discourse_js_processor.rb
++++ b/lib/discourse_js_processor.rb
+@@ -68,7 +68,7 @@ class DiscourseJsProcessor
+     TRANSPILER_PATH =
+       (
+         if Rails.env.production?
+-          "tmp/theme-transpiler.js"
++          "app/assets/javascripts/theme-transpiler.js"
+         else
+           "tmp/theme-transpiler/#{Process.pid}.js"
+         end
+@@ -87,6 +87,6 @@ class DiscourseJsProcessor
+         "node",
+         "app/assets/javascripts/theme-transpiler/build.js",
+         TRANSPILER_PATH,
+-      )
++      ) if !Rails.env.production? or !File.file?(TRANSPILER_PATH)
+       TRANSPILER_PATH
+     end
diff --git a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
index 647aefea8adac..f73aeecb6baab 100644
--- a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
+++ b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
@@ -6,28 +6,14 @@ source "https://rubygems.org"
 
 gem "bootsnap", require: false, platform: :mri
 
-def rails_master?
-  ENV["RAILS_MASTER"] == "1"
-end
-
-if rails_master?
-  gem "arel", git: "https://github.com/rails/arel.git"
-  gem "rails", git: "https://github.com/rails/rails.git"
-else
-  # NOTE: Until rubygems gives us optional dependencies we are stuck with this needing to be explicit
-  # this allows us to include the bits of rails we use without pieces we do not.
-  #
-  # To issue a rails update bump the version number here
-  rails_version = "7.0.5.1"
-  gem "actionmailer", rails_version
-  gem "actionpack", rails_version
-  gem "actionview", rails_version
-  gem "activemodel", rails_version
-  gem "activerecord", rails_version
-  gem "activesupport", rails_version
-  gem "railties", rails_version
-  gem "sprockets-rails"
-end
+gem "actionmailer", "< 7.1"
+gem "actionpack", "< 7.1"
+gem "actionview", "< 7.1"
+gem "activemodel", "< 7.1"
+gem "activerecord", "< 7.1"
+gem "activesupport", "< 7.1"
+gem "railties", "< 7.1"
+gem "sprockets-rails"
 
 gem "json"
 
@@ -141,10 +127,11 @@ group :test do
   gem "fakeweb", require: false
   gem "minitest", require: false
   gem "simplecov", require: false
-  gem "selenium-webdriver", require: false
+  gem "selenium-webdriver", "~> 4.14", require: false
+  gem "selenium-devtools", require: false
   gem "test-prof"
-  gem "webdrivers", require: false
   gem "rails-dom-testing", require: false
+  gem "minio_runner", require: false
 end
 
 group :test, :development do
@@ -158,7 +145,7 @@ group :test, :development do
 
   gem "rspec-rails"
 
-  gem "shoulda-matchers", require: false, github: "thoughtbot/shoulda-matchers"
+  gem "shoulda-matchers", require: false
   gem "rspec-html-matchers"
   gem "byebug", require: ENV["RM_INFO"].nil?, platform: :mri
   gem "rubocop-discourse", require: false
@@ -209,7 +196,9 @@ gem "rack-mini-profiler", require: ["enable_rails_patches"]
 
 gem "unicorn", require: false, platform: :ruby
 gem "puma", require: false
+
 gem "rbtrace", require: false, platform: :mri
+
 gem "gc_tracer", require: false, platform: :mri
 
 # required for feed importing and embedding
@@ -228,9 +217,8 @@ gem "logstash-event", require: false
 gem "logstash-logger", require: false
 gem "logster"
 
-# These are forks of sassc and sassc-rails with dart-sass support
-gem "dartsass-ruby"
-gem "dartsass-sprockets"
+# A fork of sassc with dart-sass support
+gem "sassc-embedded"
 
 gem "rotp", require: false
 
@@ -259,6 +247,11 @@ if ENV["IMPORT"] == "1"
   gem "parallel", require: false
 end
 
+group :generic_import, optional: true do
+  gem "sqlite3"
+  gem "redcarpet"
+end
+
 gem "web-push"
 gem "colored2", require: false
 gem "maxminddb"
diff --git a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
index 0b93bf23d097b..31af98840b1ca 100644
--- a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
@@ -7,63 +7,56 @@ GIT
       concurrent-ruby (~> 1.0)
       rack (> 1, < 3)
 
-GIT
-  remote: https://github.com/thoughtbot/shoulda-matchers.git
-  revision: 783a90554053002017510285bc736099b2749c22
-  specs:
-    shoulda-matchers (5.3.0)
-      activesupport (>= 5.2.0)
-
 GEM
   remote: https://rubygems.org/
   specs:
-    actionmailer (7.0.5.1)
-      actionpack (= 7.0.5.1)
-      actionview (= 7.0.5.1)
-      activejob (= 7.0.5.1)
-      activesupport (= 7.0.5.1)
+    actionmailer (7.0.8)
+      actionpack (= 7.0.8)
+      actionview (= 7.0.8)
+      activejob (= 7.0.8)
+      activesupport (= 7.0.8)
       mail (~> 2.5, >= 2.5.4)
       net-imap
       net-pop
       net-smtp
       rails-dom-testing (~> 2.0)
-    actionpack (7.0.5.1)
-      actionview (= 7.0.5.1)
-      activesupport (= 7.0.5.1)
+    actionpack (7.0.8)
+      actionview (= 7.0.8)
+      activesupport (= 7.0.8)
       rack (~> 2.0, >= 2.2.4)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actionview (7.0.5.1)
-      activesupport (= 7.0.5.1)
+    actionview (7.0.8)
+      activesupport (= 7.0.8)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.1, >= 1.2.0)
-    actionview_precompiler (0.2.3)
+    actionview_precompiler (0.3.0)
       actionview (>= 6.0.a)
     active_model_serializers (0.8.4)
       activemodel (>= 3.0)
-    activejob (7.0.5.1)
-      activesupport (= 7.0.5.1)
+    activejob (7.0.8)
+      activesupport (= 7.0.8)
       globalid (>= 0.3.6)
-    activemodel (7.0.5.1)
-      activesupport (= 7.0.5.1)
-    activerecord (7.0.5.1)
-      activemodel (= 7.0.5.1)
-      activesupport (= 7.0.5.1)
-    activesupport (7.0.5.1)
+    activemodel (7.0.8)
+      activesupport (= 7.0.8)
+    activerecord (7.0.8)
+      activemodel (= 7.0.8)
+      activesupport (= 7.0.8)
+    activesupport (7.0.8)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
       tzinfo (~> 2.0)
-    addressable (2.8.4)
+    addressable (2.8.6)
       public_suffix (>= 2.0.2, < 6.0)
     annotate (3.2.0)
       activerecord (>= 3.2, < 8.0)
       rake (>= 10.4, < 14.0)
     ast (2.4.2)
-    aws-eventstream (1.2.0)
+    aws-eventstream (1.3.0)
     aws-partitions (1.583.0)
     aws-sdk-core (3.130.2)
       aws-eventstream (~> 1, >= 1.0.2)
@@ -82,55 +75,50 @@ GEM
       aws-sigv4 (~> 1.1)
     aws-sigv4 (1.5.0)
       aws-eventstream (~> 1, >= 1.0.2)
+    base64 (0.2.0)
     better_errors (2.10.1)
       erubi (>= 1.0.0)
       rack (>= 0.9.0)
       rouge (>= 1.0.0)
+    bigdecimal (3.1.6)
     binding_of_caller (1.0.0)
       debug_inspector (>= 0.0.1)
-    bootsnap (1.16.0)
+    bootsnap (1.17.1)
       msgpack (~> 1.2)
     builder (3.2.4)
-    bullet (7.0.7)
+    bullet (7.1.6)
       activesupport (>= 3.0.0)
       uniform_notifier (~> 1.11)
     byebug (11.1.3)
-    capybara (3.39.2)
+    capybara (3.40.0)
       addressable
       matrix
       mini_mime (>= 0.1.3)
-      nokogiri (~> 1.8)
+      nokogiri (~> 1.11)
       rack (>= 1.6.0)
       rack-test (>= 0.6.3)
       regexp_parser (>= 1.5, < 3.0)
       xpath (~> 3.2)
-    cbor (0.5.9.6)
+    cbor (0.5.9.8)
     certified (1.0.0)
-    cgi (0.3.6)
+    cgi (0.4.1)
     chunky_png (1.4.0)
     coderay (1.1.3)
-    colored2 (3.1.2)
-    concurrent-ruby (1.2.2)
+    colored2 (4.0.0)
+    concurrent-ruby (1.2.3)
     connection_pool (2.4.1)
     cose (1.3.0)
       cbor (~> 0.5.9)
       openssl-signature_algorithm (~> 1.0)
     cppjieba_rb (0.4.2)
-    crack (0.4.5)
+    crack (0.4.6)
+      bigdecimal
       rexml
     crass (1.0.6)
-    css_parser (1.14.0)
+    css_parser (1.16.0)
       addressable
-    dartsass-ruby (3.0.1)
-      sass-embedded (~> 1.54)
-    dartsass-sprockets (3.0.0)
-      dartsass-ruby (~> 3.0)
-      railties (>= 4.0.0)
-      sprockets (> 3.0)
-      sprockets-rails
-      tilt
-    date (3.3.3)
-    debug_inspector (1.1.0)
+    date (3.3.4)
+    debug_inspector (1.2.0)
     diff-lcs (1.5.0)
     diffy (3.4.2)
     digest (3.1.1)
@@ -144,34 +132,35 @@ GEM
     docile (1.4.0)
     email_reply_trimmer (0.1.13)
     erubi (1.12.0)
-    excon (0.100.0)
-    execjs (2.8.1)
+    excon (0.109.0)
+    execjs (2.9.1)
     exifr (1.4.0)
-    fabrication (2.30.0)
+    fabrication (2.31.0)
     faker (2.23.0)
       i18n (>= 1.8.11, < 2)
     fakeweb (1.3.0)
-    faraday (2.7.10)
-      faraday-net_http (>= 2.0, < 3.1)
-      ruby2_keywords (>= 0.0.4)
-    faraday-net_http (3.0.2)
+    faraday (2.9.0)
+      faraday-net_http (>= 2.0, < 3.2)
+    faraday-net_http (3.1.0)
+      net-http
     faraday-retry (2.2.0)
       faraday (~> 2.0)
     fast_blank (1.0.1)
     fast_xs (0.8.0)
-    fastimage (2.2.7)
-    ffi (1.15.5)
+    fastimage (2.3.0)
+    ffi (1.16.3)
     fspath (3.1.2)
     gc_tracer (1.5.1)
-    globalid (1.1.0)
-      activesupport (>= 5.0)
-    google-protobuf (3.23.4)
+    globalid (1.2.1)
+      activesupport (>= 6.1)
+    google-protobuf (3.25.2)
+    google-protobuf (3.25.2-arm64-darwin)
+    google-protobuf (3.25.2-x86_64-darwin)
     guess_html_encoding (0.0.11)
     hana (1.3.7)
-    hashdiff (1.0.1)
+    hashdiff (1.1.0)
     hashie (5.0.0)
-    highline (2.1.0)
-    hkdf (1.0.0)
+    highline (3.0.1)
     htmlentities (4.3.4)
     http_accept_language (2.1.1)
     i18n (1.14.1)
@@ -182,13 +171,13 @@ GEM
       image_size (>= 1.5, < 4)
       in_threads (~> 1.3)
       progress (~> 3.0, >= 3.0.1)
-    image_size (3.3.0)
+    image_size (3.4.0)
     in_threads (1.6.0)
     jmespath (1.6.2)
-    json (2.6.3)
-    json-schema (3.0.0)
+    json (2.7.1)
+    json-schema (4.1.1)
       addressable (>= 2.8)
-    json_schemer (1.0.3)
+    json_schemer (2.1.1)
       hana (~> 1.3)
       regexp_parser (~> 2.0)
       simpleidn (~> 0.2)
@@ -196,11 +185,13 @@ GEM
     kgio (2.11.4)
     language_server-protocol (3.17.0.3)
     libv8-node (18.16.0.0)
+    libv8-node (18.16.0.0-arm64-darwin)
+    libv8-node (18.16.0.0-x86_64-darwin)
     listen (3.8.0)
       rb-fsevent (~> 0.10, >= 0.10.3)
       rb-inotify (~> 0.9, >= 0.9.10)
     literate_randomizer (0.4.0)
-    lograge (0.13.0)
+    lograge (0.14.0)
       actionpack (>= 4)
       activesupport (>= 4)
       railties (>= 4)
@@ -208,8 +199,8 @@ GEM
     logstash-event (1.2.02)
     logstash-logger (0.26.1)
       logstash-event (~> 1.2)
-    logster (2.12.2)
-    loofah (2.21.3)
+    logster (2.16.0)
+    loofah (2.22.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.12.0)
     lru_redux (1.1.0)
@@ -222,40 +213,45 @@ GEM
     matrix (0.4.2)
     maxminddb (0.1.22)
     memory_profiler (1.0.1)
-    message_bus (4.3.7)
+    message_bus (4.3.8)
       rack (>= 1.1.3)
     method_source (1.0.0)
-    mini_mime (1.1.2)
-    mini_portile2 (2.8.4)
+    mini_mime (1.1.5)
+    mini_portile2 (2.8.6)
     mini_racer (0.8.0)
       libv8-node (~> 18.16.0.0)
     mini_scheduler (0.16.0)
       sidekiq (>= 4.2.3, < 7.0)
-    mini_sql (1.4.0)
+    mini_sql (1.5.0)
     mini_suffix (0.3.3)
       ffi (~> 1.9)
-    minitest (5.19.0)
+    minio_runner (0.1.2)
+    minitest (5.21.2)
     mocha (2.1.0)
       ruby2_keywords (>= 0.0.5)
     msgpack (1.7.2)
     multi_json (1.15.0)
     multi_xml (0.6.0)
     mustache (1.1.1)
-    net-http (0.3.2)
+    net-http (0.4.1)
       uri
-    net-imap (0.3.7)
+    net-imap (0.4.9.1)
       date
       net-protocol
     net-pop (0.1.2)
       net-protocol
-    net-protocol (0.2.1)
+    net-protocol (0.2.2)
       timeout
-    net-smtp (0.3.3)
+    net-smtp (0.4.0.1)
       net-protocol
-    nio4r (2.5.9)
-    nokogiri (1.15.3)
+    nio4r (2.7.0)
+    nokogiri (1.16.0)
       mini_portile2 (~> 2.8.2)
       racc (~> 1.4)
+    nokogiri (1.16.0-arm64-darwin)
+      racc (~> 1.4)
+    nokogiri (1.16.0-x86_64-darwin)
+      racc (~> 1.4)
     oauth (1.1.0)
       oauth-tty (~> 1.0, >= 1.0.1)
       snaky_hash (~> 2.0)
@@ -268,7 +264,8 @@ GEM
       multi_json (~> 1.3)
       multi_xml (~> 0.5)
       rack (>= 1.2, < 4)
-    oj (3.15.1)
+    oj (3.16.3)
+      bigdecimal (>= 3.0)
     omniauth (1.9.2)
       hashie (>= 3.4.6)
       rack (>= 1.6.2, < 3)
@@ -291,17 +288,17 @@ GEM
     omniauth-twitter (1.4.0)
       omniauth-oauth (~> 1.1)
       rack
-    openssl (3.1.0)
+    openssl (3.2.0)
     openssl-signature_algorithm (1.3.0)
       openssl (> 2.0)
     optimist (3.1.0)
-    parallel (1.23.0)
-    parallel_tests (4.2.1)
+    parallel (1.24.0)
+    parallel_tests (4.4.0)
       parallel
-    parser (3.2.2.3)
+    parser (3.3.0.5)
       ast (~> 2.4.1)
       racc
-    pg (1.4.6)
+    pg (1.5.4)
     prettier_print (1.2.1)
     progress (3.6.0)
     pry (0.14.2)
@@ -312,18 +309,19 @@ GEM
       pry (>= 0.13, < 0.15)
     pry-rails (0.3.9)
       pry (>= 0.10.4)
-    public_suffix (5.0.3)
-    puma (6.3.0)
+    public_suffix (5.0.4)
+    puma (6.4.2)
       nio4r (~> 2.0)
-    racc (1.7.1)
+    racc (1.7.3)
     rack (2.2.8)
-    rack-mini-profiler (3.1.0)
+    rack-mini-profiler (3.3.0)
       rack (>= 1.2.0)
-    rack-protection (3.0.6)
-      rack
+    rack-protection (3.2.0)
+      base64 (>= 0.1.0)
+      rack (~> 2.2, >= 2.2.4)
     rack-test (2.1.0)
       rack (>= 1.3)
-    rails-dom-testing (2.1.1)
+    rails-dom-testing (2.2.0)
       activesupport (>= 5.0.0)
       minitest
       nokogiri (>= 1.6)
@@ -337,34 +335,35 @@ GEM
     rails_multisite (5.0.0)
       activerecord (>= 6.0)
       railties (>= 6.0)
-    railties (7.0.5.1)
-      actionpack (= 7.0.5.1)
-      activesupport (= 7.0.5.1)
+    railties (7.0.8)
+      actionpack (= 7.0.8)
+      activesupport (= 7.0.8)
       method_source
       rake (>= 12.2)
       thor (~> 1.0)
       zeitwerk (~> 2.5)
     rainbow (3.1.1)
     raindrops (0.20.1)
-    rake (13.0.6)
+    rake (13.1.0)
     rb-fsevent (0.11.2)
     rb-inotify (0.10.1)
       ffi (~> 1.0)
-    rbtrace (0.4.14)
+    rbtrace (0.5.1)
       ffi (>= 1.0.6)
       msgpack (>= 0.4.3)
       optimist (>= 3.0.0)
     rchardet (1.8.0)
+    redcarpet (3.6.0)
     redis (4.8.1)
     redis-namespace (1.11.0)
       redis (>= 4)
-    regexp_parser (2.8.1)
+    regexp_parser (2.9.0)
     request_store (1.5.1)
       rack (>= 1.4)
     rexml (3.2.6)
     rinku (2.0.6)
-    rotp (6.2.2)
-    rouge (4.1.3)
+    rotp (6.3.0)
+    rouge (4.2.0)
     rqrcode (2.2.0)
       chunky_png (~> 1.0)
       rqrcode_core (~> 1.0)
@@ -384,7 +383,7 @@ GEM
     rspec-mocks (3.12.6)
       diff-lcs (>= 1.2.0, < 2.0)
       rspec-support (~> 3.12.0)
-    rspec-rails (6.0.3)
+    rspec-rails (6.1.1)
       actionpack (>= 6.1)
       activesupport (>= 6.1)
       railties (>= 6.1)
@@ -393,57 +392,68 @@ GEM
       rspec-mocks (~> 3.12)
       rspec-support (~> 3.12)
     rspec-support (3.12.1)
-    rss (0.2.9)
+    rss (0.3.0)
       rexml
-    rswag-specs (2.10.1)
-      activesupport (>= 3.1, < 7.1)
-      json-schema (>= 2.2, < 4.0)
-      railties (>= 3.1, < 7.1)
+    rswag-specs (2.13.0)
+      activesupport (>= 3.1, < 7.2)
+      json-schema (>= 2.2, < 5.0)
+      railties (>= 3.1, < 7.2)
       rspec-core (>= 2.14)
     rtlcss (0.2.1)
       mini_racer (>= 0.6.3)
-    rubocop (1.55.1)
+    rubocop (1.60.2)
       json (~> 2.3)
       language_server-protocol (>= 3.17.0)
       parallel (~> 1.10)
-      parser (>= 3.2.2.3)
+      parser (>= 3.3.0.2)
       rainbow (>= 2.2.2, < 4.0)
       regexp_parser (>= 1.8, < 3.0)
       rexml (>= 3.2.5, < 4.0)
-      rubocop-ast (>= 1.28.1, < 2.0)
+      rubocop-ast (>= 1.30.0, < 2.0)
       ruby-progressbar (~> 1.7)
       unicode-display_width (>= 2.4.0, < 3.0)
-    rubocop-ast (1.29.0)
+    rubocop-ast (1.30.0)
       parser (>= 3.2.1.0)
-    rubocop-capybara (2.18.0)
+    rubocop-capybara (2.20.0)
       rubocop (~> 1.41)
-    rubocop-discourse (3.3.0)
-      rubocop (>= 1.1.0)
-      rubocop-rspec (>= 2.0.0)
-    rubocop-factory_bot (2.23.1)
-      rubocop (~> 1.33)
-    rubocop-rspec (2.23.0)
-      rubocop (~> 1.33)
+    rubocop-discourse (3.6.0)
+      rubocop (>= 1.59.0)
+      rubocop-rspec (>= 2.25.0)
+    rubocop-factory_bot (2.25.1)
+      rubocop (~> 1.41)
+    rubocop-rspec (2.26.1)
+      rubocop (~> 1.40)
       rubocop-capybara (~> 2.17)
       rubocop-factory_bot (~> 2.22)
-    ruby-prof (1.6.3)
+    ruby-prof (1.7.0)
     ruby-progressbar (1.13.0)
     ruby-readability (0.7.0)
       guess_html_encoding (>= 0.0.4)
       nokogiri (>= 1.6.0)
     ruby2_keywords (0.0.5)
     rubyzip (2.3.2)
-    sanitize (6.0.2)
+    sanitize (6.1.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.12.0)
-    sass-embedded (1.64.1)
-      google-protobuf (~> 3.23)
+    sass-embedded (1.70.0)
+      google-protobuf (~> 3.25)
       rake (>= 13.0.0)
-    selenium-webdriver (4.10.0)
+    sass-embedded (1.70.0-arm64-darwin)
+      google-protobuf (~> 3.25)
+    sass-embedded (1.70.0-x86_64-darwin)
+      google-protobuf (~> 3.25)
+    sassc-embedded (1.70.0)
+      sass-embedded (~> 1.70)
+    selenium-devtools (0.121.0)
+      selenium-webdriver (~> 4.2)
+    selenium-webdriver (4.17.0)
+      base64 (~> 0.2)
       rexml (~> 3.2, >= 3.2.5)
       rubyzip (>= 1.2.2, < 3.0)
       websocket (~> 1.0)
-    sidekiq (6.5.9)
+    shoulda-matchers (6.1.0)
+      activesupport (>= 5.2.0)
+    sidekiq (6.5.12)
       connection_pool (>= 2.2.5, < 3)
       rack (~> 2.0)
       redis (>= 4.5.0, < 5)
@@ -462,62 +472,63 @@ GEM
       actionpack (>= 5.2)
       activesupport (>= 5.2)
       sprockets (>= 3.0.0)
-    sshkey (2.0.0)
-    stackprof (0.2.25)
-    syntax_tree (6.1.1)
+    sqlite3 (1.7.1)
+      mini_portile2 (~> 2.8.0)
+    sqlite3 (1.7.1-arm64-darwin)
+    sqlite3 (1.7.1-x86_64-darwin)
+    sshkey (3.0.0)
+    stackprof (0.2.26)
+    syntax_tree (6.2.0)
       prettier_print (>= 1.2.0)
     syntax_tree-disable_ternary (1.0.0)
-    test-prof (1.2.2)
-    thor (1.2.2)
-    tilt (2.2.0)
-    timeout (0.4.0)
+    test-prof (1.3.1)
+    thor (1.3.0)
+    timeout (0.4.1)
     tzinfo (2.0.6)
       concurrent-ruby (~> 1.0)
-    tzinfo-data (1.2023.3)
+    tzinfo-data (1.2023.4)
       tzinfo (>= 1.0.0)
     uglifier (4.2.0)
       execjs (>= 0.3.0, < 3)
     unf (0.1.4)
       unf_ext
-    unf_ext (0.0.8.2)
-    unicode-display_width (2.4.2)
+    unf_ext (0.0.9.1)
+    unicode-display_width (2.5.0)
     unicorn (6.1.0)
       kgio (~> 2.6)
       raindrops (~> 0.7)
     uniform_notifier (1.16.0)
-    uri (0.12.2)
+    uri (0.13.0)
     version_gem (1.1.3)
-    web-push (3.0.0)
-      hkdf (~> 1.0)
+    web-push (3.0.1)
       jwt (~> 2.0)
       openssl (~> 3.0)
-    webdrivers (5.3.1)
-      nokogiri (~> 1.6)
-      rubyzip (>= 1.3.0)
-      selenium-webdriver (~> 4.0, < 4.11)
-    webmock (3.18.1)
+    webmock (3.19.1)
       addressable (>= 2.8.0)
       crack (>= 0.3.2)
       hashdiff (>= 0.4.0, < 2.0.0)
-    websocket (1.2.9)
+    websocket (1.2.10)
     xpath (3.2.0)
       nokogiri (~> 1.8)
     yaml-lint (0.1.2)
     yard (0.9.34)
-    zeitwerk (2.6.10)
+    zeitwerk (2.6.12)
 
 PLATFORMS
+  arm64-darwin-21
+  arm64-darwin-22
   ruby
+  x86_64-darwin-22
 
 DEPENDENCIES
-  actionmailer (= 7.0.5.1)
-  actionpack (= 7.0.5.1)
-  actionview (= 7.0.5.1)
+  actionmailer (< 7.1)
+  actionpack (< 7.1)
+  actionview (< 7.1)
   actionview_precompiler
   active_model_serializers (~> 0.8.3)
-  activemodel (= 7.0.5.1)
-  activerecord (= 7.0.5.1)
-  activesupport (= 7.0.5.1)
+  activemodel (< 7.1)
+  activerecord (< 7.1)
+  activesupport (< 7.1)
   addressable
   annotate
   aws-sdk-s3
@@ -535,8 +546,6 @@ DEPENDENCIES
   cose
   cppjieba_rb
   css_parser
-  dartsass-ruby
-  dartsass-sprockets
   diffy
   digest
   discourse-fonts
@@ -577,6 +586,7 @@ DEPENDENCIES
   mini_scheduler
   mini_sql
   mini_suffix
+  minio_runner
   minitest
   mocha
   multi_json
@@ -604,11 +614,12 @@ DEPENDENCIES
   rails-dom-testing
   rails_failover
   rails_multisite
-  railties (= 7.0.5.1)
+  railties (< 7.1)
   rake
   rb-fsevent
   rbtrace
   rchardet
+  redcarpet
   redis
   redis-namespace
   rinku
@@ -625,12 +636,15 @@ DEPENDENCIES
   ruby-readability
   rubyzip
   sanitize
-  selenium-webdriver
-  shoulda-matchers!
+  sassc-embedded
+  selenium-devtools
+  selenium-webdriver (~> 4.14)
+  shoulda-matchers
   sidekiq
   simplecov
   sprockets!
   sprockets-rails
+  sqlite3
   sshkey
   stackprof
   syntax_tree
@@ -642,10 +656,9 @@ DEPENDENCIES
   unf
   unicorn
   web-push
-  webdrivers
   webmock
   yaml-lint
   yard
 
 BUNDLED WITH
-   2.4.13
+   2.5.9
diff --git a/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix b/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
index fc7b71f0c0306..79cba6f33bee3 100644
--- a/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
+++ b/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pz26qpdx1xncpy5h8k4afw0npnh6wn580yvwv2cf857zrzvr1pm";
+      sha256 = "0w6gvj7ybniq89834hqww9rj2xypz9l91f8niwaws2yq1qklymr2";
       type = "gem";
     };
-    version = "7.0.5.1";
+    version = "7.0.8";
   };
   actionpack = {
     dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
@@ -16,10 +16,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "003y7cdxwzdqx8hgw02kf1b5mp8qr8syx07f35sk3ghhqxp39ksy";
+      sha256 = "1l319p0gipfgq8bp8dvbv97qqb72rad9zcqn5snhgv20cmpqr69b";
       type = "gem";
     };
-    version = "7.0.5.1";
+    version = "7.0.8";
   };
   actionview = {
     dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -27,10 +27,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11ihpqcvz3f38ka85zdjkdcvgdbcan81dbr0y9bi784jn1v5ggwa";
+      sha256 = "0xnpdwj1d8m6c2d90jp9cs50ggiz0jj02ls2h9lg68k4k8mnjbd2";
       type = "gem";
     };
-    version = "7.0.5.1";
+    version = "7.0.8";
   };
   actionview_precompiler = {
     dependencies = ["actionview"];
@@ -38,10 +38,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07dx8vkwig8han4zccs0chahcf9ibd4abzx9n56qah8zak5cyrhd";
+      sha256 = "07jyr2h87ha6k2y965rs4ywq142ddkfkhbmp0r44xg4wnffr8jbl";
       type = "gem";
     };
-    version = "0.2.3";
+    version = "0.3.0";
   };
   active_model_serializers = {
     dependencies = ["activemodel"];
@@ -60,10 +60,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11wkxf16zdb9gsnc94x4hyj89wjks06gnk4fbl7gp5vkbl744n83";
+      sha256 = "1cn1ic7ml75jm0c10s7cm5mvcgfnafj0kjvvjavpjcxgz6lxcqyb";
       type = "gem";
     };
-    version = "7.0.5.1";
+    version = "7.0.8";
   };
   activemodel = {
     dependencies = ["activesupport"];
@@ -71,10 +71,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12f89hxs4s26ggsg4bnz9qxlcsclcgx9gdsl8dni5jc0gk47h14y";
+      sha256 = "004w8zaz2g3y6lnrsvlcmljll0m3ndqpgwf0wfscgq6iysibiglm";
       type = "gem";
     };
-    version = "7.0.5.1";
+    version = "7.0.8";
   };
   activerecord = {
     dependencies = ["activemodel" "activesupport"];
@@ -82,10 +82,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1sfdq2slmsc0ygncl36dq1lmjww1y3b42izrnn62cyisiag28796";
+      sha256 = "04wavps80q3pvhvfbmi4gs102y1p6mxbg8xylzvib35b6m92adpj";
       type = "gem";
     };
-    version = "7.0.5.1";
+    version = "7.0.8";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
@@ -93,10 +93,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0m1sa6djlm9cz6mz3lcbqqahvm6qj75dmq3phpn2ysyxnlz2hr0c";
+      sha256 = "188kbwkn1lbhz40ala8ykp20jzqphgc68g3d8flin8cqa2xid0s5";
       type = "gem";
     };
-    version = "7.0.5.1";
+    version = "7.0.8";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -104,10 +104,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15s8van7r2ad3dq6i03l3z4hqnvxcq75a3h72kxvf9an53sqma20";
+      sha256 = "0irbdwkkjwzajq1ip6ba46q49sxnrl2cw7ddkdhsfhb6aprnm3vr";
       type = "gem";
     };
-    version = "2.8.4";
+    version = "2.8.6";
   };
   annotate = {
     dependencies = ["activerecord" "rake"];
@@ -135,10 +135,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pyis1nvnbjxk12a43xvgj2gv0mvp4cnkc1gzw0v1018r61399gz";
+      sha256 = "0gvdg4yx4p9av2glmp7vsxhs0n8fj1ga9kq2xdb8f95j7b04qhzi";
       type = "gem";
     };
-    version = "1.2.0";
+    version = "1.3.0";
   };
   aws-partitions = {
     groups = ["default"];
@@ -205,6 +205,16 @@
     };
     version = "1.5.0";
   };
+  base64 = {
+    groups = ["default" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01qml0yilb9basf7is2614skjp8384h2pycfx86cr8023arfj98g";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
   better_errors = {
     dependencies = ["erubi" "rack" "rouge"];
     groups = ["development"];
@@ -220,6 +230,16 @@
     };
     version = "2.10.1";
   };
+  bigdecimal = {
+    groups = ["default" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00db5v09k1z3539g1zrk7vkjrln9967k08adh6qx33ng97a2gg5w";
+      type = "gem";
+    };
+    version = "3.1.6";
+  };
   binding_of_caller = {
     dependencies = ["debug_inspector"];
     groups = ["development"];
@@ -241,10 +261,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vcg52gwl64xhhal6kwk1pc01y1klzdlnv1awyk89kb91z010x7q";
+      sha256 = "028qif22isxa5sg5gf1322d0qjhir5rr0jpkaiwcic4lspacdcnv";
       type = "gem";
     };
-    version = "1.16.0";
+    version = "1.17.1";
   };
   builder = {
     groups = ["default" "development" "test"];
@@ -262,10 +282,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hyz68j0z0j24vcrs43swmlykhzypayv34kzrsbxda5lbi83gynm";
+      sha256 = "1zs6dwspb0m9ygl7lwdmilhdn9ka85a0qfiip49m9rfpfj46lps0";
       type = "gem";
     };
-    version = "7.0.7";
+    version = "7.1.6";
   };
   byebug = {
     groups = ["development" "test"];
@@ -287,20 +307,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "114qm5f5vhwaaw9rj1h2lcamh46zl13v1m18jiw68zl961gwmw6n";
+      sha256 = "1vxfah83j6zpw3v5hic0j70h519nvmix2hbszmjwm8cfawhagns2";
       type = "gem";
     };
-    version = "3.39.2";
+    version = "3.40.0";
   };
   cbor = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0511idr8xps9625nh3kxr68sdy6l3xy2kcz7r57g47fxb1v18jj3";
+      sha256 = "1dsf9gjc2cj79vrnz2vgq573biqjw7ad4b0idm05xg6rb3y9gq4y";
       type = "gem";
     };
-    version = "0.5.9.6";
+    version = "0.5.9.8";
   };
   certified = {
     groups = ["development" "test"];
@@ -317,10 +337,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18zc1z8va9j1gcv131p605wmkvn1p5958mmvvy7v45ki8c0w7qn5";
+      sha256 = "0c5494n3n6l51n1w1vc118zckbqdzk7r6b656hswg72w0bif2ja3";
       type = "gem";
     };
-    version = "0.3.6";
+    version = "0.4.1";
   };
   chunky_png = {
     groups = ["default"];
@@ -351,20 +371,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jlbqa9q4mvrm73aw9mxh23ygzbjiqwisl32d8szfb5fxvbjng5i";
+      sha256 = "1zj06gjqwykgzxmbkp2hmg3wv5kv8zz5d77acxipzcgicdjgvfan";
       type = "gem";
     };
-    version = "3.1.2";
+    version = "4.0.0";
   };
   concurrent-ruby = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0krcwb6mn0iklajwngwsg850nk8k9b35dhmc2qkbdqvmifdi2y9q";
+      sha256 = "1qh1b14jwbbj242klkyz5fc7npd4j0mvndz62gajhvl1l3wd7zc2";
       type = "gem";
     };
-    version = "1.2.2";
+    version = "1.2.3";
   };
   connection_pool = {
     groups = ["default"];
@@ -398,15 +418,15 @@
     version = "0.4.2";
   };
   crack = {
-    dependencies = ["rexml"];
+    dependencies = ["bigdecimal" "rexml"];
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cr1kfpw3vkhysvkk3wg7c54m75kd68mbm9rs5azdjdq57xid13r";
+      sha256 = "0r48q8csd1ld0yrzsp45wkfnpmkhk09gsldq8rlikarnmc51s9gf";
       type = "gem";
     };
-    version = "0.4.5";
+    version = "0.4.6";
   };
   crass = {
     groups = ["default" "development" "test"];
@@ -424,52 +444,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04q1vin8slr3k8mp76qz0wqgap6f9kdsbryvgfq9fljhrm463kpj";
+      sha256 = "18mii41bbl106rn940ah8v3xclj4yrxxa0bwlwp546244n9b83zp";
       type = "gem";
     };
-    version = "1.14.0";
-  };
-  dartsass-ruby = {
-    dependencies = ["sass-embedded"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0z3gdsnyvdjgn9gwia72irqgxq04i8hv9pv60yqkd4h5nk9rx4p6";
-      type = "gem";
-    };
-    version = "3.0.1";
-  };
-  dartsass-sprockets = {
-    dependencies = ["dartsass-ruby" "railties" "sprockets" "sprockets-rails" "tilt"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1842k5i96iiz264wzzqar2m3whs2caf0d8yhbsr6qdbi4j5pzmcx";
-      type = "gem";
-    };
-    version = "3.0.0";
+    version = "1.16.0";
   };
   date = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03skfikihpx37rc27vr3hwrb057gxnmdzxhmzd4bf4jpkl0r55w1";
+      sha256 = "149jknsq999gnhy865n33fkk22s0r447k76x9pmcnnwldfv2q7wp";
       type = "gem";
     };
-    version = "3.3.3";
+    version = "3.3.4";
   };
   debug_inspector = {
     groups = ["default" "development"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01l678ng12rby6660pmwagmyg8nccvjfgs3487xna7ay378a59ga";
+      sha256 = "18k8x9viqlkh7dbmjzh8crbjy8w480arpa766cw1dnn3xcpa1pwv";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.2.0";
   };
   diff-lcs = {
     groups = ["default" "development" "test"];
@@ -572,20 +570,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08r6qgbpkxxsihjmlspk3l1sr69q5hx35p1l4wp7rmkbzys89867";
+      sha256 = "1kmmwgjzlrnc3nnrdnw1z67c95nbw0hv54a73yj8jw6pcvl9585x";
       type = "gem";
     };
-    version = "0.100.0";
+    version = "0.109.0";
   };
   execjs = {
     groups = ["assets" "default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "121h6af4i6wr3wxvv84y53jcyw2sk71j5wsncm6wq6yqrwcrk4vd";
+      sha256 = "1yywajqlpjhrj1m43s3lfg3i4lkb6pxwccmwps7qw37ndmphdzg8";
       type = "gem";
     };
-    version = "2.8.1";
+    version = "2.9.1";
   };
   exifr = {
     groups = ["default"];
@@ -602,10 +600,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bxssmjp49whzq2zv7w751gr4nkdaiwcxd1vda0byigwyrnj6f5q";
+      sha256 = "1al5iv3as21l5clci0b5cg27z136pan7gkj7plp4l0w83c6z2y9c";
       type = "gem";
     };
-    version = "2.30.0";
+    version = "2.31.0";
   };
   faker = {
     dependencies = ["i18n"];
@@ -629,25 +627,26 @@
     version = "1.3.0";
   };
   faraday = {
-    dependencies = ["faraday-net_http" "ruby2_keywords"];
+    dependencies = ["faraday-net_http"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "187clqhp9mv5mnqmjlfdp57svhsg1bggz84ak8v333j9skrnrgh9";
+      sha256 = "1qqb1rmk0f9m82iijjlqadh5yby1bhnr6svjk9vxdvh6f181988s";
       type = "gem";
     };
-    version = "2.7.10";
+    version = "2.9.0";
   };
   faraday-net_http = {
+    dependencies = ["net-http"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13byv3mp1gsjyv8k0ih4612y6vw5kqva6i03wcg4w2fqpsd950k8";
+      sha256 = "17w51yk4rrm9rpnbc3x509s619kba0jga3qrj4b17l30950vw9qn";
       type = "gem";
     };
-    version = "3.0.2";
+    version = "3.1.0";
   };
   faraday-retry = {
     dependencies = ["faraday"];
@@ -697,10 +696,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pd7pamzhdz2w0fbcvsfn2nyslznvphnwj16zw35g2b28zd2xyzx";
+      sha256 = "104kn1lj55hifcpiw1x7x9slskvqmfanylcz3nj8acjgmri0av72";
       type = "gem";
     };
-    version = "2.2.7";
+    version = "2.3.0";
   };
   ffi = {
     groups = ["default" "development" "test"];
@@ -711,10 +710,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1862ydmclzy1a0cjbvm8dz7847d9rch495ib0zb64y84d3xd4bkg";
+      sha256 = "1yvii03hcgqj30maavddqamqy50h7y6xcn2wcyq72wn823zl4ckd";
       type = "gem";
     };
-    version = "1.15.5";
+    version = "1.16.3";
   };
   fspath = {
     groups = ["default"];
@@ -746,20 +745,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kqm5ndzaybpnpxqiqkc41k4ksyxl41ln8qqr6kb130cdxsf2dxk";
+      sha256 = "1sbw6b66r7cwdx3jhs46s4lr991969hvigkjpbdl7y3i31qpdgvh";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.2.1";
   };
   google-protobuf = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dq5lgkxhagqr8zjrwr10zi8rldbg2vhis2m5q86v5q9415ylfgj";
+      sha256 = "02sh4rp14wmpfv9r7xrap6xgcakg0lk6zjvq1gsi5y38swhn2blw";
       type = "gem";
     };
-    version = "3.23.4";
+    version = "3.25.2";
   };
   guess_html_encoding = {
     groups = ["default"];
@@ -786,10 +785,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nynpl0xbj0nphqx1qlmyggq58ms1phf5i03hk64wcc0a17x1m1c";
+      sha256 = "1jf9dxgjz6z7fvymyz2acyvn9iyvwkn6d9sk7y4fxwbmfc75yimm";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.1.0";
   };
   hashie = {
     groups = ["default"];
@@ -806,20 +805,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1f8cr014j7mdqpdb9q17fp5vb5b8n1pswqaif91s3ylg5x3pygfn";
+      sha256 = "02ghhvigqbq4252gsi4w8a9klkdkybmbz29ghfp1y6sqzlcb466a";
       type = "gem";
     };
-    version = "2.1.0";
-  };
-  hkdf = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "03g3yvfnlcjv2qw3b3yahg0x7zhwcd1bwxyj6gbn5jrc7k4kfrqg";
-      type = "gem";
-    };
-    version = "1.0.0";
+    version = "3.0.1";
   };
   htmlentities = {
     groups = ["default"];
@@ -868,10 +857,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19fspid6610sm4x0mql7iny7k0d7f21xgxqmsca0irvlvazwm4vn";
+      sha256 = "16h2gxxk212mlvphf03x1z1ddb9k3vm0lgsxbvi4fjg77x8q19f6";
       type = "gem";
     };
-    version = "3.3.0";
+    version = "3.4.0";
   };
   in_threads = {
     groups = ["default"];
@@ -898,10 +887,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nalhin1gda4v8ybk6lq8f407cgfrj6qzn234yra4ipkmlbfmal6";
+      sha256 = "0r9jmjhg2ly3l736flk7r2al47b5c8cayh0gqkq0yhjqzc9a6zhq";
       type = "gem";
     };
-    version = "2.6.3";
+    version = "2.7.1";
   };
   json-schema = {
     dependencies = ["addressable"];
@@ -909,10 +898,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gdvm83yaa5n8hwapwzxwfcmbypiq2i0zfx4mzz67wg55p2cnli4";
+      sha256 = "0j9dz9sf7swwmfahlngph8n9ibm0cx7mdy9zpv3w44578nbkka49";
       type = "gem";
     };
-    version = "3.0.0";
+    version = "4.1.1";
   };
   json_schemer = {
     dependencies = ["hana" "regexp_parser" "simpleidn"];
@@ -920,10 +909,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mbf7v8bzmxyk413y16drnww68bgyzknlqmaqvj785iakja7in7x";
+      sha256 = "02gnz7wajg7f5n67vlswfi8yjvwahypy36z6hrg0qfx3cc3589qg";
       type = "gem";
     };
-    version = "1.0.3";
+    version = "2.1.1";
   };
   jwt = {
     groups = ["default"];
@@ -998,10 +987,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01kdw5dbzimb89rq4zf44zf8990czb5qxvib0hzja1l4hrha8cki";
+      sha256 = "1qcsvh9k4c0cp6agqm9a8m4x2gg7vifryqr7yxkg2x9ph9silds2";
       type = "gem";
     };
-    version = "0.13.0";
+    version = "0.14.0";
   };
   logstash-event = {
     groups = ["default"];
@@ -1029,10 +1018,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18yqcf756rzxdq5pw2qrximfryv15ib7rv2g622wjig7zhvk8wx4";
+      sha256 = "036hw6iiy64d1q3cmqi026zspr8lyzh1qw00ds6l8l2jgg8m6fsc";
       type = "gem";
     };
-    version = "2.12.2";
+    version = "2.16.0";
   };
   loofah = {
     dependencies = ["crass" "nokogiri"];
@@ -1040,10 +1029,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p744kjpb5zk2ihklbykzii77alycjc04vpnm2ch2f3cp65imlj3";
+      sha256 = "1zkjqf37v2d7s11176cb35cl83wls5gm3adnfkn2zcc61h3nxmqh";
       type = "gem";
     };
-    version = "2.21.3";
+    version = "2.22.0";
   };
   lru_redux = {
     groups = ["default"];
@@ -1122,10 +1111,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ppqgch8xxccpmccdx37lb00112ayqjb80zz5m3w3298vdzb1kn4";
+      sha256 = "15xqp7pnicjh2868fsc6fmxw8cw32bpiaqpc5bz8cwdib09ns3qk";
       type = "gem";
     };
-    version = "4.3.7";
+    version = "4.3.8";
   };
   method_source = {
     groups = ["default" "development" "test"];
@@ -1138,24 +1127,24 @@
     version = "1.0.0";
   };
   mini_mime = {
-    groups = ["default"];
+    groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lbim375gw2dk6383qirz13hgdmxlan0vc5da2l072j3qw6fqjm5";
+      sha256 = "1vycif7pjzkr29mfk4dlqv3disc5dn0va04lkwajlpr1wkibg0c6";
       type = "gem";
     };
-    version = "1.1.2";
+    version = "1.1.5";
   };
   mini_portile2 = {
-    groups = ["default" "development" "test"];
+    groups = ["default" "development" "generic_import" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02mj8mpd6ck5gpcnsimx5brzggw5h5mmmpq2djdypfq16wcw82qq";
+      sha256 = "149r94xi6b3jbp6bv72f8383b95ndn0p5sxnq11gs1j9jadv0ajf";
       type = "gem";
     };
-    version = "2.8.4";
+    version = "2.8.6";
   };
   mini_racer = {
     dependencies = ["libv8-node"];
@@ -1184,10 +1173,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dgwyyya821sfj4f92sljsxmmnak2yrzsbckvy82001zgq1n3b41";
+      sha256 = "0yrxjmwhfnvcwbj9vscyq0z67sq09zl8qhmzgakq2ywy4yvcpwgg";
       type = "gem";
     };
-    version = "1.4.0";
+    version = "1.5.0";
   };
   mini_suffix = {
     dependencies = ["ffi"];
@@ -1200,15 +1189,25 @@
     };
     version = "0.3.3";
   };
+  minio_runner = {
+    groups = ["test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1c0bld2bpnfrld7g0pli3pp3b1z3a21cgahhw70i5cjr33sx88pi";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
   minitest = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jnpsbb2dbcs95p4is4431l2pw1l5pn7dfg3vkgb4ga464j0c5l6";
+      sha256 = "1hmszq7p4zp2ha3qjv1axam602rgnqhlz5zfzil7yk4nvfwcv1bn";
       type = "gem";
     };
-    version = "5.19.0";
+    version = "5.21.2";
   };
   mocha = {
     dependencies = ["ruby2_keywords"];
@@ -1271,10 +1270,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0y55ib1v2b8prqfi9ij7hca60b1j94s2bzr6vskwi3i5735472wq";
+      sha256 = "10n2n9aq00ih8v881af88l1zyrqgs5cl3njdw8argjwbl5ggqvm9";
       type = "gem";
     };
-    version = "0.3.2";
+    version = "0.4.1";
   };
   net-imap = {
     dependencies = ["date" "net-protocol"];
@@ -1282,10 +1281,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lf7wqg7czhaj51qsnmn28j7jmcxhkh3m28rl1cjrqsgjxhwj7r3";
+      sha256 = "0z9f6kfxz9qanar534gs3mk6snyvw8rnx3f6ykjn2jiziv0rv1ig";
       type = "gem";
     };
-    version = "0.3.7";
+    version = "0.4.9.1";
   };
   net-pop = {
     dependencies = ["net-protocol"];
@@ -1304,10 +1303,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dxckrlw4q1lcn3qg4mimmjazmg9bma5gllv72f8js3p36fb3b91";
+      sha256 = "1a32l4x73hz200cm587bc29q8q9az278syw3x6fkc9d1lv5y0wxa";
       type = "gem";
     };
-    version = "0.2.1";
+    version = "0.2.2";
   };
   net-smtp = {
     dependencies = ["net-protocol"];
@@ -1315,20 +1314,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1c6md06hm5bf6rv53sk54dl2vg038pg8kglwv3rayx0vk2mdql9x";
+      sha256 = "0csspzqrg7s2v2wdp6vqqs1rra6w5ilpgnps5h52ig6rp7x2i389";
       type = "gem";
     };
-    version = "0.3.3";
+    version = "0.4.0.1";
   };
   nio4r = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w9978zwjf1qhy3amkivab0f9syz6a7k0xgydjidaf7xc831d78f";
+      sha256 = "0xkjz56qc7hl7zy7i7bhiyw5pl85wwjsa4p70rj6s958xj2sd1lm";
       type = "gem";
     };
-    version = "2.5.9";
+    version = "2.7.0";
   };
   nokogiri = {
     dependencies = ["mini_portile2" "racc"];
@@ -1336,10 +1335,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jw8a20a9k05fpz3q24im19b97idss3179z76yn5scc5b8lk2rl7";
+      sha256 = "1l8b0i24h4irivyhwy9xmkjbggw86cxkzkiqdqg0jpcp9qc8h4rl";
       type = "gem";
     };
-    version = "1.15.3";
+    version = "1.16.0";
   };
   oauth = {
     dependencies = ["oauth-tty" "snaky_hash" "version_gem"];
@@ -1375,14 +1374,15 @@
     version = "1.4.11";
   };
   oj = {
+    dependencies = ["bigdecimal"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vzcrsv6w5k90l75gy83dlfkv2z9pvnr82mz1nhnijmcg3rgqaz8";
+      sha256 = "0g5nx99lrwmk6ynfaacqkyijnhvi4mckm77bmvpa0jmfg068l26h";
       type = "gem";
     };
-    version = "3.15.1";
+    version = "3.16.3";
   };
   omniauth = {
     dependencies = ["hashie" "rack"];
@@ -1466,10 +1466,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0c649921vg2l939z5cc3jwd8p1v49099pdhxfk7sb9qqx5wi5873";
+      sha256 = "054d6ybgjdzxw567m7rbnd46yp6gkdbc5ihr536vxd3p15vbhjrw";
       type = "gem";
     };
-    version = "3.1.0";
+    version = "3.2.0";
   };
   openssl-signature_algorithm = {
     dependencies = ["openssl"];
@@ -1501,10 +1501,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jcc512l38c0c163ni3jgskvq1vc3mr8ly5pvjijzwvfml9lf597";
+      sha256 = "15wkxrg1sj3n1h2g8jcrn7gcapwcgxr659ypjf75z1ipkgxqxwsv";
       type = "gem";
     };
-    version = "1.23.0";
+    version = "1.24.0";
   };
   parallel_tests = {
     dependencies = ["parallel"];
@@ -1512,10 +1512,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04y02j0kyhfww41dnnjawn2gpp24smq0x21dvaa5z6pnq0fvmahv";
+      sha256 = "0mahfvfq56d476wb6p1zg3f2gph4zggb4dcly0h5rbvvkaysfvfw";
       type = "gem";
     };
-    version = "4.2.1";
+    version = "4.4.0";
   };
   parser = {
     dependencies = ["ast" "racc"];
@@ -1523,20 +1523,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1swigds85jddb5gshll1g8lkmbcgbcp9bi1d4nigwvxki8smys0h";
+      sha256 = "11r6kp8wam0nkfvnwyc1fmvky102r1vcfr84vi2p1a2wa0z32j3p";
       type = "gem";
     };
-    version = "3.2.2.3";
+    version = "3.3.0.5";
   };
   pg = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07m6lxljabw9kyww5k5lgsxsznsm1v5l14r1la09gqka9b5kv3yr";
+      sha256 = "0pfj771p5a29yyyw58qacks464sl86d5m3jxjl5rlqqw2m3v5xq4";
       type = "gem";
     };
-    version = "1.4.6";
+    version = "1.5.4";
   };
   prettier_print = {
     groups = ["default" "development" "test"];
@@ -1596,10 +1596,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0n9j7mczl15r3kwqrah09cxj8hxdfawiqxa60kga2bmxl9flfz9k";
+      sha256 = "1bni4qjrsh2q49pnmmd6if4iv3ak36bd2cckrs6npl111n769k9m";
       type = "gem";
     };
-    version = "5.0.3";
+    version = "5.0.4";
   };
   puma = {
     dependencies = ["nio4r"];
@@ -1607,20 +1607,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1v7fmv0n4bhdcwh60dgza44iqai5pg34f5pzm4vh4i5fwx7mpqxh";
+      sha256 = "0i2vaww6qcazj0ywva1plmjnj6rk23b01szswc5jhcq7s2cikd1y";
       type = "gem";
     };
-    version = "6.3.0";
+    version = "6.4.2";
   };
   racc = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11v3l46mwnlzlc371wr3x6yylpgafgwdf0q7hc7c1lzx6r414r5g";
+      sha256 = "01b9662zd2x9bp4rdjfid07h09zxj7kvn7f5fghbqhzc625ap1dp";
       type = "gem";
     };
-    version = "1.7.1";
+    version = "1.7.3";
   };
   rack = {
     groups = ["default" "development" "test"];
@@ -1642,21 +1642,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13dhpp1iljhqp9c8akmp6gjhx47qf83w12ns4bif26ldkignpam1";
+      sha256 = "1cbz4ih4ji2ika935x03in060kh236lyxfwk0c09p2l1wim59xcv";
       type = "gem";
     };
-    version = "3.1.0";
+    version = "3.3.0";
   };
   rack-protection = {
-    dependencies = ["rack"];
+    dependencies = ["base64" "rack"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kpm67az1wxlg76h620in2r7agfyhv177ps268j5ggsanzddzih8";
+      sha256 = "1zzvivmdb4dkscc58i3gmcyrnypynsjwp6xgc4ylarlhqmzvlx1w";
       type = "gem";
     };
-    version = "3.0.6";
+    version = "3.2.0";
   };
   rack-test = {
     dependencies = ["rack"];
@@ -1675,10 +1675,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17g05y7q7934z0ib4aph8h71c2qwjmlakkm7nb2ab45q0aqkfgjd";
+      sha256 = "0fx9dx1ag0s1lr6lfr34lbx5i1bvn3bhyf3w3mx6h7yz90p725g5";
       type = "gem";
     };
-    version = "2.1.1";
+    version = "2.2.0";
   };
   rails-html-sanitizer = {
     dependencies = ["loofah" "nokogiri"];
@@ -1719,10 +1719,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1z4lqqbd4i5izsg97mx5yf3gj7y5d07wgvad0jzjghjg12pf142i";
+      sha256 = "0sfc16zrcn4jgf5xczb08n6prhmqqgg9f0b4mn73zlzg6cwmqchj";
       type = "gem";
     };
-    version = "7.0.5.1";
+    version = "7.0.8";
   };
   rainbow = {
     groups = ["default" "development" "test"];
@@ -1755,10 +1755,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w";
+      sha256 = "1ilr853hawi09626axx0mps4rkkmxcs54mapz9jnqvpnlwd3wsmy";
       type = "gem";
     };
-    version = "13.0.6";
+    version = "13.1.0";
   };
   rb-fsevent = {
     groups = ["development" "test"];
@@ -1791,10 +1791,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s8prj0klfgpmpfcpdzbf149qrrsdxgnb6w6kkqc9gyars4vyaqn";
+      sha256 = "1p65p6f917al0f07sn5ca9yj92f7mk52xgnp0ahqpyrb8r6sdjz8";
       type = "gem";
     };
-    version = "0.4.14";
+    version = "0.5.1";
   };
   rchardet = {
     groups = ["default"];
@@ -1806,6 +1806,16 @@
     };
     version = "1.8.0";
   };
+  redcarpet = {
+    groups = ["generic_import"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sg9sbf9pm91l7lac7fs4silabyn0vflxwaa2x3lrzsm0ff8ilca";
+      type = "gem";
+    };
+    version = "3.6.0";
+  };
   redis = {
     groups = ["default"];
     platforms = [];
@@ -1832,10 +1842,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "136br91alxdwh1s85z912dwz23qlhm212vy6i3wkinz3z8mkxxl3";
+      sha256 = "1ndxm0xnv27p4gv6xynk6q41irckj76q1jsqpysd9h6f86hhp841";
       type = "gem";
     };
-    version = "2.8.1";
+    version = "2.9.0";
   };
   request_store = {
     dependencies = ["rack"];
@@ -1873,10 +1883,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10mmzc85y7andsich586ndykw678qn1ns2wpjxrg0sc0gr4w3pig";
+      sha256 = "0m48hv6wpmmm6cjr6q92q78h1i610riml19k5h1dil2yws3h1m3m";
       type = "gem";
     };
-    version = "6.2.2";
+    version = "6.3.0";
   };
   rouge = {
     groups = ["default" "development"];
@@ -1887,10 +1897,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19drl3x8fw65v3mpy7fk3cf3dfrywz5alv98n2rm4pp04vdn71lw";
+      sha256 = "1fkfa0iq3r9b0zzrxpxha17avmyzci3kidzmfbf6fd1279mndpb0";
       type = "gem";
     };
-    version = "4.1.3";
+    version = "4.2.0";
   };
   rqrcode = {
     dependencies = ["chunky_png" "rqrcode_core"];
@@ -1974,10 +1984,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "086qdyz7c4s5dslm6j06mq7j4jmj958whc3yinhabnqqmz7i463d";
+      sha256 = "1clmx6qzdbpm1g8ycg38gjbqsbr8ccqi6hqyx88g8yckz1hrx55x";
       type = "gem";
     };
-    version = "6.0.3";
+    version = "6.1.1";
   };
   rspec-support = {
     groups = ["default" "development" "test"];
@@ -1995,10 +2005,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1b1zx07kr64kkpm4lssd4r1a1qyr829ppmfl85i4adcvx9mqfid0";
+      sha256 = "1wv27axi39hhr0nmaffdl5bdjqiafcvp9xhfgnsgfczsblja50sn";
       type = "gem";
     };
-    version = "0.2.9";
+    version = "0.3.0";
   };
   rswag-specs = {
     dependencies = ["activesupport" "json-schema" "railties" "rspec-core"];
@@ -2006,10 +2016,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0p0blh8p6zj8vsiw585wiy6zpyn8p3ksn0z92ijfzaw7afvcvl8j";
+      sha256 = "1iyqd95l8r8m6jna451xb20lsp0jiajk1gbw845qlyqf6d69xyx2";
       type = "gem";
     };
-    version = "2.10.1";
+    version = "2.13.0";
   };
   rtlcss = {
     dependencies = ["mini_racer"];
@@ -2028,10 +2038,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s9p5qaqq68h5s3ys8xlk9swccma7arjif1w58987n6gicrsprrm";
+      sha256 = "0v67rgbhzanbf02fy5xasaxgmhxghlqb2cxjvbplinm2zfzs0380";
       type = "gem";
     };
-    version = "1.55.1";
+    version = "1.60.2";
   };
   rubocop-ast = {
     dependencies = ["parser"];
@@ -2039,10 +2049,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "188bs225kkhrb17dsf3likdahs2p1i1sqn0pr3pvlx50g6r2mnni";
+      sha256 = "1cs9cc5p9q70valk4na3lki4xs88b52486p2v46yx3q1n5969bgs";
       type = "gem";
     };
-    version = "1.29.0";
+    version = "1.30.0";
   };
   rubocop-capybara = {
     dependencies = ["rubocop"];
@@ -2050,10 +2060,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01fn05a87g009ch1sh00abdmgjab87i995msap26vxq1a5smdck6";
+      sha256 = "0f5r9di123hc4x2h453a143986plfzz9935bwc7267wj8awl8s1a";
       type = "gem";
     };
-    version = "2.18.0";
+    version = "2.20.0";
   };
   rubocop-discourse = {
     dependencies = ["rubocop" "rubocop-rspec"];
@@ -2061,10 +2071,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1sycsgagz7iq4j4aflzkzjlclvsck9yacjlj1pzzmfpjbbka34x8";
+      sha256 = "0f133ky0rl3zn2kb0dnzb4fvnx3w731a47f0sb91n5pisdz3ncyq";
       type = "gem";
     };
-    version = "3.3.0";
+    version = "3.6.0";
   };
   rubocop-factory_bot = {
     dependencies = ["rubocop"];
@@ -2072,10 +2082,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kqchl8f67k2g56sq2h1sm2wb6br5gi47s877hlz94g5086f77n1";
+      sha256 = "0d012phc7z5h1j1d2aisnbkmqlb95sld5jriia5qg2gpgbg1nxb2";
       type = "gem";
     };
-    version = "2.23.1";
+    version = "2.25.1";
   };
   rubocop-rspec = {
     dependencies = ["rubocop" "rubocop-capybara" "rubocop-factory_bot"];
@@ -2083,10 +2093,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0l364y00bw1zcs3grdxcxpn48vfrjds2khsiaxjqq3r9grvbprfy";
+      sha256 = "0n24wy34shczlr5fnim7vcbrgvs0hffzw89n06fxziim9iws406s";
       type = "gem";
     };
-    version = "2.23.0";
+    version = "2.26.1";
   };
   ruby-prof = {
     groups = ["development"];
@@ -2097,10 +2107,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13fsfw43zx9pcix1fzxb95g09yadqjvc8971k74krrjz81vbyh51";
+      sha256 = "0hnalxnvli6248g34n0bj8p3v35vpabak34qjg778bbaavbqg5h5";
       type = "gem";
     };
-    version = "1.6.3";
+    version = "1.7.0";
   };
   ruby-progressbar = {
     groups = ["default" "development" "test"];
@@ -2149,10 +2159,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kymrjdpbmn4yaml3aaqyj1dzj8gqmm9h030dc2rj5mvja7fpi28";
+      sha256 = "0wsw05y0h1ln3x2kvcw26fs9ivryb4xbjrb4hsk2pishkhydkz4j";
       type = "gem";
     };
-    version = "6.0.2";
+    version = "6.1.0";
   };
   sass-embedded = {
     dependencies = ["google-protobuf" "rake"];
@@ -2160,34 +2170,54 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15k44qn8vk8ap8khkmpsiw40pywm9pkx4a5yhm8vfi2rgqci9k90";
+      sha256 = "1pmsiivj7azcmbxadkkvnmkhj1w6r1knbg0gwcg1g1pafpnpf7p7";
+      type = "gem";
+    };
+    version = "1.70.0";
+  };
+  sassc-embedded = {
+    dependencies = ["sass-embedded"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ym7kh6zyygnxpjdsqbflwl0gjnyr25qn1dxygajaj4ww464ibya";
+      type = "gem";
+    };
+    version = "1.70.0";
+  };
+  selenium-devtools = {
+    dependencies = ["selenium-webdriver"];
+    groups = ["test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1l2qf5w0bk01s50gzx8clzw4zchff9a01kk2s8fnpz65g7rgh4g9";
       type = "gem";
     };
-    version = "1.64.1";
+    version = "0.121.0";
   };
   selenium-webdriver = {
-    dependencies = ["rexml" "rubyzip" "websocket"];
+    dependencies = ["base64" "rexml" "rubyzip" "websocket"];
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hwxxvx6j95ln82pjmrgyzg6qmf511dkcp5q79n6m5m8z4way8m3";
+      sha256 = "0g3l3invk95w1f72mpp0r4hc3vsc3070c1xd1wg76kfg2r182xnq";
       type = "gem";
     };
-    version = "4.10.0";
+    version = "4.17.0";
   };
   shoulda-matchers = {
     dependencies = ["activesupport"];
     groups = ["development" "test"];
     platforms = [];
     source = {
-      fetchSubmodules = false;
-      rev = "783a90554053002017510285bc736099b2749c22";
-      sha256 = "10rw7ksi462fxamap6kimdy7hpdgx8477r6zs1kgrbakx24dm3wx";
-      type = "git";
-      url = "https://github.com/thoughtbot/shoulda-matchers.git";
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p83ca48h812h5gksw2q0x5289jsc4c417f8s6w9d4a12jzw86zi";
+      type = "gem";
     };
-    version = "5.3.0";
+    version = "6.1.0";
   };
   sidekiq = {
     dependencies = ["connection_pool" "rack" "redis"];
@@ -2195,10 +2225,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0iv7vgqyrpymiwvc3ca24sl4lda8m627p657p0v4xzdpzincrnbr";
+      sha256 = "0zqr9is8y7mg5dfs1q8w5jl9spwvqkhbi9r6np8208n40hi3pydl";
       type = "gem";
     };
-    version = "6.5.9";
+    version = "6.5.12";
   };
   simplecov = {
     dependencies = ["docile" "simplecov-html" "simplecov_json_formatter"];
@@ -2277,15 +2307,26 @@
     };
     version = "3.4.2";
   };
+  sqlite3 = {
+    dependencies = ["mini_portile2"];
+    groups = ["generic_import"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vkgmg63fa0m0fbyxdv7sn5mq3jpiz6r88yix2g3vdc6w0h94gcr";
+      type = "gem";
+    };
+    version = "1.7.1";
+  };
   sshkey = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03bkn55qsng484iqwz2lmm6rkimj01vsvhwk661s3lnmpkl65lbp";
+      sha256 = "1k8i5pzjhcnyf0bhcyn5iixpfp4pz0556rcxwpglh6p0sr8s6nv5";
       type = "gem";
     };
-    version = "2.0.0";
+    version = "3.0.0";
   };
   stackprof = {
     groups = ["default"];
@@ -2296,10 +2337,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bhdgfb0pmw9mav1kw9fn0ka012sa0i3h5ppvqssw5xq48nhxnr8";
+      sha256 = "1gdqqwnampxmc54nf6zfy9apkmkpdavzipvfssmjlhnrrjy8qh7f";
       type = "gem";
     };
-    version = "0.2.25";
+    version = "0.2.26";
   };
   syntax_tree = {
     dependencies = ["prettier_print"];
@@ -2307,10 +2348,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "162m5xhbiq315bncp49ziddws537dv09pqsgrzsrmhhsymhgy0zb";
+      sha256 = "0g9l9acknjr2yz8ynfxbcrwx2ws3wh96pfzdb31g66k08v1022m5";
       type = "gem";
     };
-    version = "6.1.1";
+    version = "6.2.0";
   };
   syntax_tree-disable_ternary = {
     groups = ["development" "test"];
@@ -2327,40 +2368,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08j5456rdpgxvv8bs44x81jrxzpxb79wxfxdq4fqwxyircxzi2jj";
+      sha256 = "08vm33d51zdan4zj4cccw3lx06p6flc1h40kgdfm9rp4x83csdda";
       type = "gem";
     };
-    version = "1.2.2";
+    version = "1.3.1";
   };
   thor = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k7j2wn14h1pl4smibasw0bp66kg626drxb59z7rzflch99cd4rg";
-      type = "gem";
-    };
-    version = "1.2.2";
-  };
-  tilt = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0bmjgbv8158klwp2r3klxjwaj93nh1sbl4xvj9wsha0ic478avz7";
+      sha256 = "1hx77jxkrwi66yvs10wfxqa8s25ds25ywgrrf66acm9nbfg7zp0s";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "1.3.0";
   };
   timeout = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1d9cvm0f4zdpwa795v3zv4973y5zk59j7s1x3yn90jjrhcz1yvfd";
+      sha256 = "16mvvsmx90023wrhf8dxc1lpqh0m8alk65shb7xcya6a9gflw7vg";
       type = "gem";
     };
-    version = "0.4.0";
+    version = "0.4.1";
   };
   tzinfo = {
     dependencies = ["concurrent-ruby"];
@@ -2379,10 +2410,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0m2d0gpsgqnv29j5h2d6g57g0rayvd460b8s2vjr8sn46bqf89m5";
+      sha256 = "1v3k61zcbxfmf150d4vky6cbdmyrn3yljsl9na1y3i52v7zsbdnx";
       type = "gem";
     };
-    version = "1.2023.3";
+    version = "1.2023.4";
   };
   uglifier = {
     dependencies = ["execjs"];
@@ -2411,20 +2442,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yj2nz2l101vr1x9w2k83a0fag1xgnmjwp8w8rw4ik2rwcz65fch";
+      sha256 = "1sf6bxvf6x8gihv6j63iakixmdddgls58cpxpg32chckb2l18qcj";
       type = "gem";
     };
-    version = "0.0.8.2";
+    version = "0.0.9.1";
   };
   unicode-display_width = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gi82k102q7bkmfi7ggn9ciypn897ylln1jk9q67kjhr39fj043a";
+      sha256 = "1d0azx233nags5jx3fqyr23qa2rhgzbhv8pxp46dgbg1mpf82xky";
       type = "gem";
     };
-    version = "2.4.2";
+    version = "2.5.0";
   };
   unicorn = {
     dependencies = ["kgio" "raindrops"];
@@ -2458,10 +2489,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fa49cdssxllj1j37a56kq27wsibx5lmqxkqdk1rz3452y0bsydy";
+      sha256 = "094gk72ckazf495qc76gk09b5i318d5l9m7bicg2wxlrjcm3qm96";
       type = "gem";
     };
-    version = "0.12.2";
+    version = "0.13.0";
   };
   version_gem = {
     groups = ["default"];
@@ -2474,26 +2505,15 @@
     version = "1.1.3";
   };
   web-push = {
-    dependencies = ["hkdf" "jwt" "openssl"];
+    dependencies = ["jwt" "openssl"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jsximg9v44rpclhjxp03fxk68jx675pghwxc66wj7rn9h9fc54i";
+      sha256 = "13diqh61rl658gwq0c2ds41z59i0x4plj5k4v98qkgd3pgrd4kav";
       type = "gem";
     };
-    version = "3.0.0";
-  };
-  webdrivers = {
-    dependencies = ["nokogiri" "rubyzip" "selenium-webdriver"];
-    groups = ["test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "19aaxhawzv7315rh285gd1fg6m6wbrn3w3kilyibci1wphgm7mfp";
-      type = "gem";
-    };
-    version = "5.3.1";
+    version = "3.0.1";
   };
   webmock = {
     dependencies = ["addressable" "crack" "hashdiff"];
@@ -2501,20 +2521,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1myj44wvbbqvv18ragv3ihl0h61acgnfwrnj3lccdgp49bgmbjal";
+      sha256 = "0vfispr7wd2p1fs9ckn1qnby1yyp4i1dl7qz8n482iw977iyxrza";
       type = "gem";
     };
-    version = "3.18.1";
+    version = "3.19.1";
   };
   websocket = {
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dib6p55sl606qb4vpwrvj5wh881kk4aqn2zpfapf8ckx7g14jw8";
+      sha256 = "1a4zc8d0d91c3xqwapda3j3zgpfwdbj76hkb69xn6qvfkfks9h9c";
       type = "gem";
     };
-    version = "1.2.9";
+    version = "1.2.10";
   };
   xpath = {
     dependencies = ["nokogiri"];
@@ -2552,9 +2572,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06vf6y5ai20ry3b1h9cl7vsdj6i5valq172zdxpnfhj5zvlp104j";
+      sha256 = "1gir0if4nryl1jhwi28669gjwhxb7gzrm1fcc8xzsch3bnbi47jn";
       type = "gem";
     };
-    version = "2.6.10";
+    version = "2.6.12";
   };
 }
diff --git a/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch b/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch
index 88ebc1337487b..d85e4bf98676c 100644
--- a/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch
+++ b/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch
@@ -1,13 +1,13 @@
 diff --git a/config/unicorn.conf.rb b/config/unicorn.conf.rb
-index e69979adfe..68cb04a036 100644
+index 9fd348b074..40eb73b96e 100644
 --- a/config/unicorn.conf.rb
 +++ b/config/unicorn.conf.rb
-@@ -27,18 +27,10 @@ pid (ENV["UNICORN_PID_PATH"] || "#{discourse_path}/tmp/pids/unicorn.pid")
- 
+@@ -27,17 +27,9 @@ pid(ENV["UNICORN_PID_PATH"] || "#{discourse_path}/tmp/pids/unicorn.pid")
+
  if ENV["RAILS_ENV"] != "production"
    logger Logger.new(STDOUT)
 -  # we want a longer timeout in dev cause first request can be really slow
--  timeout (ENV["UNICORN_TIMEOUT"] && ENV["UNICORN_TIMEOUT"].to_i || 60)
+-  timeout(ENV["UNICORN_TIMEOUT"] && ENV["UNICORN_TIMEOUT"].to_i || 60)
 -else
 -  # By default, the Unicorn logger will write to stderr.
 -  # Additionally, some applications/frameworks log to stderr or stdout,
@@ -17,9 +17,8 @@ index e69979adfe..68cb04a036 100644
 -  # nuke workers after 30 seconds instead of 60 seconds (the default)
 -  timeout 30
  end
- 
-+timeout (ENV["UNICORN_TIMEOUT"] && ENV["UNICORN_TIMEOUT"].to_i || 60)
+
++timeout(ENV["UNICORN_TIMEOUT"] && ENV["UNICORN_TIMEOUT"].to_i || 60)
 +
  # important for Ruby 2.0
  preload_app true
- 
diff --git a/pkgs/servers/web-apps/discourse/update.py b/pkgs/servers/web-apps/discourse/update.py
index 9b300d1d4959f..5d17b9798b600 100755
--- a/pkgs/servers/web-apps/discourse/update.py
+++ b/pkgs/servers/web-apps/discourse/update.py
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#! nix-shell -i python3 -p bundix bundler nix-update nix-universal-prefetch python3 python3Packages.requests python3Packages.click python3Packages.click-log prefetch-yarn-deps
+#! nix-shell -i python3 -p bundix bundler nix-update nix-universal-prefetch "python3.withPackages (ps: with ps; [ requests click click-log packaging ])" prefetch-yarn-deps
 from __future__ import annotations
 
 import click
@@ -15,8 +15,7 @@ import json
 import requests
 import textwrap
 from functools import total_ordering
-from distutils.version import LooseVersion
-from itertools import zip_longest
+from packaging.version import Version
 from pathlib import Path
 from typing import Union, Iterable
 
@@ -47,33 +46,16 @@ class DiscourseVersion:
         else:
             self.tag = 'v' + version
             self.version = version
-        self.split_version = LooseVersion(self.version).version
+
+        self._version = Version(self.version)
 
     def __eq__(self, other: DiscourseVersion):
         """Versions are equal when their individual parts are."""
-        return self.split_version == other.split_version
+        return self._version == other._version
 
     def __gt__(self, other: DiscourseVersion):
-        """Check if this version is greater than the other.
-
-        Goes through the parts of the version numbers from most to
-        least significant, only continuing on to the next if the
-        numbers are equal and no decision can be made. If one version
-        ends in 'betaX' and the other doesn't, all else being equal,
-        the one without 'betaX' is considered greater, since it's the
-        release version.
-
-        """
-        for (this_ver, other_ver) in zip_longest(self.split_version, other.split_version):
-            if this_ver == other_ver:
-                continue
-            if type(this_ver) is int and type(other_ver) is int:
-                return this_ver > other_ver
-            elif 'beta' in [this_ver, other_ver]:
-                # release version (None) is greater than beta
-                return this_ver is None
-        else:
-            return False
+        """Check if this version is greater than the other."""
+        return self._version > other._version
 
 
 class DiscourseRepo:
@@ -104,11 +86,12 @@ class DiscourseRepo:
 
         return self._latest_commit_sha
 
-    def get_yarn_lock_hash(self, rev: str):
-        yarnLockText = self.get_file('app/assets/javascripts/yarn.lock', rev)
+    def get_yarn_lock_hash(self, rev: str, path: str):
+        yarnLockText = self.get_file(path, rev)
         with tempfile.NamedTemporaryFile(mode='w') as lockFile:
             lockFile.write(yarnLockText)
-            return subprocess.check_output(['prefetch-yarn-deps', lockFile.name]).decode('utf-8').strip()
+            hash = subprocess.check_output(['prefetch-yarn-deps', lockFile.name]).decode().strip()
+            return subprocess.check_output(["nix", "hash", "to-sri", "--type", "sha256", hash]).decode().strip()
 
     def get_file(self, filepath, rev):
         """Return file contents at a given rev.
@@ -242,6 +225,8 @@ def update(rev):
         with open(rubyenv_dir / fn, 'w') as f:
             f.write(repo.get_file(fn, version.tag))
 
+    # work around https://github.com/nix-community/bundix/issues/8
+    os.environ["BUNDLE_FORCE_RUBY_PLATFORM"] = "true"
     subprocess.check_output(['bundle', 'lock'], cwd=rubyenv_dir)
     _remove_platforms(rubyenv_dir)
     subprocess.check_output(['bundix'], cwd=rubyenv_dir)
@@ -249,11 +234,17 @@ def update(rev):
     _call_nix_update('discourse', version.version)
 
     old_yarn_hash = _nix_eval('discourse.assets.yarnOfflineCache.outputHash')
-    new_yarn_hash = repo.get_yarn_lock_hash(version.tag)
-    click.echo(f"Updating yarn lock hash, {old_yarn_hash} -> {new_yarn_hash}")
+    new_yarn_hash = repo.get_yarn_lock_hash(version.tag, "app/assets/javascripts/yarn-ember5.lock")
+    click.echo(f"Updating yarn lock hash: {old_yarn_hash} -> {new_yarn_hash}")
+
+    old_yarn_dev_hash = _nix_eval('discourse.assets.yarnDevOfflineCache.outputHash')
+    new_yarn_dev_hash = repo.get_yarn_lock_hash(version.tag, "yarn.lock")
+    click.echo(f"Updating yarn dev lock hash: {old_yarn_dev_hash} -> {new_yarn_dev_hash}")
+
     with open(Path(__file__).parent / "default.nix", 'r+') as f:
         content = f.read()
         content = content.replace(old_yarn_hash, new_yarn_hash)
+        content = content.replace(old_yarn_dev_hash, new_yarn_dev_hash)
         f.seek(0)
         f.write(content)
         f.truncate()
@@ -320,7 +311,7 @@ def update_plugins():
             compatibility_spec = repo.get_file('.discourse-compatibility', repo.latest_commit_sha)
             versions = [(DiscourseVersion(discourse_version), plugin_rev.strip(' '))
                         for [discourse_version, plugin_rev]
-                        in [line.split(':')
+                        in [line.lstrip("< ").split(':')
                             for line
                             in compatibility_spec.splitlines() if line != '']]
             discourse_version = DiscourseVersion(_get_current_package_version('discourse'))
diff --git a/pkgs/servers/web-apps/dokuwiki/default.nix b/pkgs/servers/web-apps/dokuwiki/default.nix
index 00cbbfd0ad24d..658fed9de3696 100644
--- a/pkgs/servers/web-apps/dokuwiki/default.nix
+++ b/pkgs/servers/web-apps/dokuwiki/default.nix
@@ -83,7 +83,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Simple to use and highly versatile Open Source wiki software that doesn't require a database";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     homepage = "https://www.dokuwiki.org";
     platforms = platforms.all;
     maintainers = with maintainers; [ _1000101 ];
diff --git a/pkgs/servers/web-apps/engelsystem/default.nix b/pkgs/servers/web-apps/engelsystem/default.nix
index 4f6563db90b71..264c3243d2165 100644
--- a/pkgs/servers/web-apps/engelsystem/default.nix
+++ b/pkgs/servers/web-apps/engelsystem/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
     description =
       "Coordinate your volunteers in teams, assign them to work shifts or let them decide for themselves when and where they want to help with what";
     homepage = "https://engelsystem.de";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     mainProgram = "migrate";
     maintainers = with maintainers; [ ];
     platforms = platforms.all;
diff --git a/pkgs/servers/web-apps/freshrss/default.nix b/pkgs/servers/web-apps/freshrss/default.nix
index 9cf085f8c2b04..f12f9a891bdf9 100644
--- a/pkgs/servers/web-apps/freshrss/default.nix
+++ b/pkgs/servers/web-apps/freshrss/default.nix
@@ -7,13 +7,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "FreshRSS";
-  version = "1.23.1";
+  version = "1.24.0";
 
   src = fetchFromGitHub {
     owner = "FreshRSS";
     repo = "FreshRSS";
     rev = version;
-    hash = "sha256-uidTsL8TREZ/qcqO/J+6hguP6Dr6J+995WNWCJCduBw=";
+    hash = "sha256-QMSSSSyInkWJP9im6RhyVItSgY30Nt2p1pRDdPPoaYI=";
   };
 
   passthru.tests = {
diff --git a/pkgs/servers/web-apps/hedgedoc/default.nix b/pkgs/servers/web-apps/hedgedoc/default.nix
index 1992c14270e75..7e1c7644fb014 100644
--- a/pkgs/servers/web-apps/hedgedoc/default.nix
+++ b/pkgs/servers/web-apps/hedgedoc/default.nix
@@ -55,6 +55,10 @@ in stdenv.mkDerivation {
     python3 # needed for sqlite node-gyp
   ];
 
+  buildInputs = [
+    nodejs
+  ];
+
   dontConfigure = true;
 
   buildPhase = ''
@@ -75,7 +79,8 @@ in stdenv.mkDerivation {
     yarn --immutable-cache
     yarn run build
 
-    rm bin/heroku
+    # Delete scripts that are not useful for NixOS
+    rm bin/{heroku,setup}
     patchShebangs bin/*
 
     runHook postBuild
@@ -85,11 +90,10 @@ in stdenv.mkDerivation {
     runHook preInstall
 
     mkdir -p $out/share/hedgedoc
-    cp -r bin $out
-    cp -r {app.js,lib,locales,node_modules,package.json,public} $out/share/hedgedoc
+    cp -r {app.js,bin,lib,locales,node_modules,package.json,public} $out/share/hedgedoc
 
-    for bin in $out/bin/*; do
-      wrapProgram $bin \
+    for bin in $out/share/hedgedoc/bin/*; do
+      makeWrapper $bin $out/bin/$(basename $bin) \
         --set NODE_ENV production \
         --set NODE_PATH "$out/share/hedgedoc/lib/node_modules"
     done
diff --git a/pkgs/servers/web-apps/lemmy/server.nix b/pkgs/servers/web-apps/lemmy/server.nix
index 4f605b0b2dbd3..d4d44c473f5c2 100644
--- a/pkgs/servers/web-apps/lemmy/server.nix
+++ b/pkgs/servers/web-apps/lemmy/server.nix
@@ -6,6 +6,7 @@
 , postgresql
 , libiconv
 , Security
+, SystemConfiguration
 , protobuf
 , rustfmt
 , nixosTests
@@ -33,7 +34,7 @@ rustPlatform.buildRustPackage rec {
   cargoHash = pinData.serverCargoHash;
 
   buildInputs = [ postgresql ]
-    ++ lib.optionals stdenv.isDarwin [ libiconv Security ];
+    ++ lib.optionals stdenv.isDarwin [ libiconv Security SystemConfiguration ];
 
   # Using OPENSSL_NO_VENDOR is not an option on darwin
   # As of version 0.10.35 rust-openssl looks for openssl on darwin
diff --git a/pkgs/servers/web-apps/wordpress/generic.nix b/pkgs/servers/web-apps/wordpress/generic.nix
index d2d97dab35d9f..637aed1d19e39 100644
--- a/pkgs/servers/web-apps/wordpress/generic.nix
+++ b/pkgs/servers/web-apps/wordpress/generic.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wordpress.org";
     description = "WordPress is open source software you can use to create a beautiful website, blog, or app";
-    license = [ licenses.gpl2 ];
+    license = [ licenses.gpl2Plus ];
     maintainers = [ maintainers.basvandijk ];
     platforms = platforms.all;
   };
diff --git a/pkgs/servers/web-apps/wordpress/packages/thirdparty.nix b/pkgs/servers/web-apps/wordpress/packages/thirdparty.nix
index 24836f3ac42c1..764408470064e 100644
--- a/pkgs/servers/web-apps/wordpress/packages/thirdparty.nix
+++ b/pkgs/servers/web-apps/wordpress/packages/thirdparty.nix
@@ -10,16 +10,35 @@
     };
     meta.license = lib.licenses.agpl3Only;
   };
-  themes.geist = stdenv.mkDerivation rec {
-    pname = "geist";
-    version = "2.0.3";
-    src = fetchzip {
-      inherit version;
-      name = pname;
-      url = "https://github.com/christophery/geist/archive/refs/tags/${version}.zip";
-      hash = "sha256-c85oRhqu5E5IJlpgqKJRQITur1W7x40obOvHZbPevzU=";
+  themes = {
+    geist = stdenv.mkDerivation rec {
+      pname = "geist";
+      version = "2.0.3";
+      src = fetchzip {
+        inherit version;
+        name = pname;
+        url = "https://github.com/christophery/geist/archive/refs/tags/${version}.zip";
+        hash = "sha256-c85oRhqu5E5IJlpgqKJRQITur1W7x40obOvHZbPevzU=";
+      };
+      meta.license = lib.licenses.gpl2Only;
+    };
+    proton = stdenv.mkDerivation rec {
+      pname = "proton";
+      version = "1.0.1";
+      src = fetchzip {
+        inherit version;
+        name = pname;
+        url = "https://github.com/christophery/proton/archive/refs/tags/${version}.zip";
+        hash = "sha256-JgKyLJ3dRqh1uwlsNuffCOM7LPBigGkLVFqftjFAiP4=";
+      };
+      installPhase = ''
+        runHook preInstall
+        mkdir -p $out
+        cp -r ./* $out/
+        runHook postInstall
+      '';
+      meta.license = lib.licenses.mit;
     };
-    meta.license = lib.licenses.gpl2Only;
   };
 }
 
diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix
index a6d7d7e6a7f0c..cd7e116c17d59 100644
--- a/pkgs/servers/x11/xorg/overrides.nix
+++ b/pkgs/servers/x11/xorg/overrides.nix
@@ -3,7 +3,7 @@
   automake, autoconf, libiconv, libtool, intltool, gettext, python3, perl,
   freetype, tradcpp, fontconfig, meson, ninja, ed, fontforge,
   libGL, spice-protocol, zlib, libGLU, dbus, libunwind, libdrm, netbsd,
-  ncompress,
+  ncompress, updateAutotoolsGnuConfigScriptsHook,
   mesa, udev, bootstrap_cmds, bison, flex, clangStdenv, autoreconfHook,
   mcpp, libepoxy, openssl, pkg-config, llvm, libxslt, libxcrypt, hwdata,
   ApplicationServices, Carbon, Cocoa, Xplugin,
@@ -906,6 +906,7 @@ self: super:
 
   lndir = super.lndir.overrideAttrs (attrs: {
     buildInputs = [];
+    nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
     preConfigure = ''
       export XPROTO_CFLAGS=" "
       export XPROTO_LIBS=" "
diff --git a/pkgs/servers/xmpp/ejabberd/default.nix b/pkgs/servers/xmpp/ejabberd/default.nix
index 821465ec3a521..37830973fbe9b 100644
--- a/pkgs/servers/xmpp/ejabberd/default.nix
+++ b/pkgs/servers/xmpp/ejabberd/default.nix
@@ -119,7 +119,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Open-source XMPP application server written in Erlang";
     mainProgram = "ejabberdctl";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     homepage = "https://www.ejabberd.im";
     platforms = platforms.linux;
     maintainers = with maintainers; [ sander abbradar ];
diff --git a/pkgs/shells/bash/5.nix b/pkgs/shells/bash/5.nix
index de0426fbcdcd3..25798533113c8 100644
--- a/pkgs/shells/bash/5.nix
+++ b/pkgs/shells/bash/5.nix
@@ -2,6 +2,7 @@
 , stdenv
 , buildPackages
 , fetchurl
+, updateAutotoolsGnuConfigScriptsHook
 , bison
 , util-linux
 
@@ -88,12 +89,16 @@ stdenv.mkDerivation rec {
     "bash_cv_termcap_lib=libncurses"
   ] ++ lib.optionals (stdenv.hostPlatform.libc == "musl") [
     "--disable-nls"
+  ] ++ lib.optionals stdenv.hostPlatform.isFreeBSD [
+    # /dev/fd is optional on FreeBSD. we need it to work when built on a system
+    # with it and transferred to a system without it! This includes linux cross.
+    "bash_cv_dev_fd=absent"
   ];
 
   strictDeps = true;
   # Note: Bison is needed because the patches above modify parse.y.
   depsBuildBuild = [ buildPackages.stdenv.cc ];
-  nativeBuildInputs = [ bison ]
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook bison ]
     ++ lib.optional withDocs texinfo
     ++ lib.optional stdenv.hostPlatform.isDarwin stdenv.cc.bintools;
 
diff --git a/pkgs/shells/bash/bash-completion/default.nix b/pkgs/shells/bash/bash-completion/default.nix
index 80f5ffeff9519..3bdef89e722e0 100644
--- a/pkgs/shells/bash/bash-completion/default.nix
+++ b/pkgs/shells/bash/bash-completion/default.nix
@@ -1,5 +1,4 @@
 { lib, stdenv, fetchurl
-, fetchpatch
 , autoreconfHook
 , perl
 , ps
@@ -9,15 +8,15 @@
 
 stdenv.mkDerivation rec {
   pname = "bash-completion";
-  version = "2.13.0";
+  version = "2.14.0";
 
   # Using fetchurl because fetchGithub or fetchzip will have trouble on
   # e.g. APFS filesystems (macOS) because of non UTF-8 characters in some of the
   # test fixtures that are part of the repository.
   # See discussion in https://github.com/NixOS/nixpkgs/issues/107768
   src = fetchurl {
-    url = "https://github.com/scop/${pname}/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-xfmaOeQPDRVMA/8VQ46H7OH1rGZjNqRFmJni/0vt89E=";
+    url = "https://github.com/scop/bash-completion/releases/download/${version}/bash-completion-${version}.tar.xz";
+    sha256 = "sha256-XHSU+WgoCDLWrbWqGfdFpW8aed8xHlkzjF76b3KF4Wg=";
   };
 
   strictDeps = true;
diff --git a/pkgs/shells/carapace/default.nix b/pkgs/shells/carapace/default.nix
index 8a6d72634f954..9f9c963c73c15 100644
--- a/pkgs/shells/carapace/default.nix
+++ b/pkgs/shells/carapace/default.nix
@@ -31,7 +31,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Multi-shell multi-command argument completer";
-    homepage = "https://rsteube.github.io/carapace-bin/";
+    homepage = "https://carapace.sh/";
     maintainers = with maintainers; [ mimame ];
     license = licenses.mit;
     mainProgram = "carapace";
diff --git a/pkgs/shells/dash/default.nix b/pkgs/shells/dash/default.nix
index 6bdbd1798e3de..00857a5cd9582 100644
--- a/pkgs/shells/dash/default.nix
+++ b/pkgs/shells/dash/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "http://gondor.apana.org.au/~herbert/dash/";
     description = "A POSIX-compliant implementation of /bin/sh that aims to be as small as possible";
     platforms = platforms.unix;
-    license = with licenses; [ bsd3 gpl2 ];
+    license = with licenses; [ bsd3 gpl2Plus ];
     mainProgram = "dash";
   };
 })
diff --git a/pkgs/shells/fish/default.nix b/pkgs/shells/fish/default.nix
index 0013c205f31f2..921e0fc6d7fe6 100644
--- a/pkgs/shells/fish/default.nix
+++ b/pkgs/shells/fish/default.nix
@@ -299,7 +299,7 @@ let
       description = "Smart and user-friendly command line shell";
       homepage = "https://fishshell.com/";
       changelog = "https://github.com/fish-shell/fish-shell/releases/tag/${version}";
-      license = licenses.gpl2;
+      license = licenses.gpl2Only;
       platforms = platforms.unix;
       maintainers = with maintainers; [ adamcstephens cole-h winter ];
       mainProgram = "fish";
diff --git a/pkgs/shells/jush/default.nix b/pkgs/shells/jush/default.nix
deleted file mode 100644
index 42e8e13cceae6..0000000000000
--- a/pkgs/shells/jush/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, editline }:
-
-stdenv.mkDerivation rec {
-  pname = "jush";
-  version = "0.1";
-
-  src = fetchFromGitHub {
-    owner = "troglobit";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "1azvghrh31gawd798a254ml4id642qvbva64zzg30pjszh1087n8";
-  };
-
-  strictDeps = true;
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
-
-  buildInputs = [ editline ];
-
-  passthru.shellPath = "/bin/jush";
-
-  meta = with lib; {
-    description = "just a useless shell";
-    mainProgram = "jush";
-    homepage = "https://github.com/troglobit/jush";
-    license = licenses.isc;
-    platforms = platforms.all;
-    maintainers = with maintainers; [ dtzWill ];
-  };
-}
diff --git a/pkgs/shells/liquidprompt/default.nix b/pkgs/shells/liquidprompt/default.nix
index acb34377d28de..35e097a4ca89d 100644
--- a/pkgs/shells/liquidprompt/default.nix
+++ b/pkgs/shells/liquidprompt/default.nix
@@ -1,31 +1,50 @@
-{ lib, stdenv, fetchFromGitHub }:
+{ lib, stdenv, fetchFromGitHub, gitUpdater }:
 
 stdenv.mkDerivation rec {
   pname = "liquidprompt";
-  version = "2.1.2";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
-    owner = "nojhan";
+    owner = "liquidprompt";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-7mnrXLqnCdOuS2aRs4tVLfO8SRFrqZHNM40gWE/CVFI=";
+    hash = "sha256-ra+uJg9E2Cr1k0Ni1+xG9yKFF9iMInJFB5oAFnc52lc=";
   };
 
   strictDeps = true;
+
+  postPatch = ''
+    patchShebangs tools/*.sh
+  '';
+
   installPhase = ''
+    runHook preInstall
+
     install -D -m 0444 liquidprompt $out/bin/liquidprompt
-    install -D -m 0444 liquidpromptrc-dist $out/share/doc/liquidprompt/liquidpromptrc-dist
-    install -D -m 0444 liquid.theme $out/share/doc/liquidprompt/liquid.theme
 
     install -D -m 0444 liquidprompt.plugin.zsh \
       $out/share/zsh/plugins/liquidprompt/liquidprompt.plugin.zsh
     install -D -m 0444 liquidprompt \
       $out/share/zsh/plugins/liquidprompt/liquidprompt
+
+    # generate default config file
+    mkdir -p $out/share/doc/liquidprompt
+    tools/config-from-doc.sh --verbose > $out/share/doc/liquidprompt/liquidpromptrc-dist
+
+    mkdir -p $out/share/liquidprompt
+    cp -a themes $out/share/liquidprompt/
+
+    mkdir -p $out/share/liquidprompt/contrib
+    cp -a contrib/presets $out/share/liquidprompt/contrib/
+
+    runHook postInstall
   '';
 
+  passthru.updateScript = gitUpdater { };
+
   meta = with lib; {
     description = "A full-featured & carefully designed adaptive prompt for Bash & Zsh";
-    homepage = "https://github.com/nojhan/liquidprompt";
+    homepage = "https://github.com/liquidprompt/liquidprompt";
     license = licenses.agpl3Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ gerschtli ];
diff --git a/pkgs/shells/murex/default.nix b/pkgs/shells/murex/default.nix
index 4e44b6bd7ecf3..b6a802b8c8c5a 100644
--- a/pkgs/shells/murex/default.nix
+++ b/pkgs/shells/murex/default.nix
@@ -22,7 +22,7 @@ buildGoModule rec {
     description = "Bash-like shell and scripting environment with advanced features designed for safety and productivity";
     mainProgram = "murex";
     homepage = "https://murex.rocks";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ dit7ya kashw2 ];
   };
 }
diff --git a/pkgs/shells/zsh/grml-zsh-config/default.nix b/pkgs/shells/zsh/grml-zsh-config/default.nix
index cff5a814bd131..ed7e81fd88d60 100644
--- a/pkgs/shells/zsh/grml-zsh-config/default.nix
+++ b/pkgs/shells/zsh/grml-zsh-config/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "grml's zsh setup";
     homepage = "https://grml.org/zsh/";
-    license = licenses.gpl2;
+    license = with licenses; [ gpl2Plus gpl2Only ];
     platforms = platforms.unix;
     maintainers = with maintainers; [ msteen rvolosatovs ];
   };
diff --git a/pkgs/shells/zsh/zsh-abbr/default.nix b/pkgs/shells/zsh/zsh-abbr/default.nix
index 20e9dcdb64729..7d85f23019176 100644
--- a/pkgs/shells/zsh/zsh-abbr/default.nix
+++ b/pkgs/shells/zsh/zsh-abbr/default.nix
@@ -5,13 +5,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "zsh-abbr";
-  version = "5.7.1";
+  version = "5.8.0";
 
   src = fetchFromGitHub {
     owner = "olets";
     repo = "zsh-abbr";
     rev = "v${version}";
-    hash = "sha256-2Uwo1gV732ZsSmJ6XU895Uqb5QOAQ2J1z85vufBv7nI=";
+    hash = "sha256-bsacP1f1daSYfgMvXduWQ64JJXnrFiLYURENKSMA9LM=";
   };
 
   strictDeps = true;
diff --git a/pkgs/tools/admin/aliyun-cli/default.nix b/pkgs/tools/admin/aliyun-cli/default.nix
index 0d77ed2929ef3..2bf466f8cadbb 100644
--- a/pkgs/tools/admin/aliyun-cli/default.nix
+++ b/pkgs/tools/admin/aliyun-cli/default.nix
@@ -2,14 +2,14 @@
 
 buildGoModule rec {
   pname = "aliyun-cli";
-  version = "3.0.206";
+  version = "3.0.207";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "aliyun";
     repo = pname;
     fetchSubmodules = true;
-    sha256 = "sha256-xMDTZZCaTH2aru9bx1bmO5xqwH1dsUuBUZ1df7Re8+4=";
+    sha256 = "sha256-tRNi1V91H+V1uVGs9SsLBjA51eGn0IH3ohjmH8dHYKY=";
   };
 
   vendorHash = "sha256-MnOqh3qAYAN2Lxt/RWWn4GgpdBFDojMbnzIsHx2pPSk=";
diff --git a/pkgs/tools/admin/awscli/default.nix b/pkgs/tools/admin/awscli/default.nix
index 1c6cce5c8bc84..568282fa86ab6 100644
--- a/pkgs/tools/admin/awscli/default.nix
+++ b/pkgs/tools/admin/awscli/default.nix
@@ -20,7 +20,7 @@ let
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-GPcXkl2H0XNaeqt2/qD5+KvW23dRB0X+zLWo9hLigQM=";
+      hash = "sha256-96hFvXs3Fcvad+PBEpS9RFMJkcD1qHqfQ+8gtVfEbnc=";
     };
 
     nativeBuildInputs = [
diff --git a/pkgs/tools/admin/awslogs/default.nix b/pkgs/tools/admin/awslogs/default.nix
index 153da049ac168..87285da594929 100644
--- a/pkgs/tools/admin/awslogs/default.nix
+++ b/pkgs/tools/admin/awslogs/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "awslogs";
-  version = "0.14.0";
-  format = "setuptools";
+  version = "0.15.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "jorgebastida";
     repo = pname;
     rev = version;
-    sha256 = "sha256-DrW8s0omQqLp1gaoR6k/YR11afRjUbGYrFtfYhby2b8=";
+    sha256 = "sha256-o6xZqwlqAy01P+TZ0rB5rpEddWNUBzzHp7/cycpcwes=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -24,19 +24,14 @@ python3.pkgs.buildPythonApplication rec {
     jmespath
   ];
 
-  nativeCheckInputs = with python3.pkgs; [
-    pytestCheckHook
-  ];
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "jmespath>=0.7.1,<1.0.0" "jmespath>=0.7.1" \
-      --replace '>=3.5.*' '>=3.5'
+      --replace "boto3>=1.34.75" "boto3>=1.34.58" \
   '';
 
-  disabledTests = [
-    "test_main_get_query"
-    "test_main_get_with_color"
+  nativeCheckInputs = with python3.pkgs; [
+    pytestCheckHook
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/tools/admin/azure-cli/commit-update-hunks.sh b/pkgs/tools/admin/azure-cli/commit-update-hunks.sh
new file mode 100755
index 0000000000000..7a9d913e260e7
--- /dev/null
+++ b/pkgs/tools/admin/azure-cli/commit-update-hunks.sh
@@ -0,0 +1,19 @@
+#!/usr/bin/env bash
+
+# Just a tiny imperfect helper script to commit generated updates.
+#
+# First, ensure that that `git add -p extensions-generated.nix` only
+# returns a series of clean update hunks, where each hunk updates a
+# single package version. All additions/removals must be committed
+# by hand.
+# The script will then commit the remaining hunks with fitting commit messages.
+
+while true; do
+  echo -e "y\nq" | git add -p extensions-generated.nix || break
+  pname=$(git diff --no-ext-diff --cached | grep "pname =" | cut -d'"' -f2 | head -n1) || break
+  versions=$(git diff --no-ext-diff --cached | grep "version =" | cut -d'"' -f2) || break
+  oldver=$(echo "$versions" | head -n1) || break
+  newver=$(echo "$versions" | tail -n1) || break
+  commitmsg="azure-cli-extensions.${pname}: ${oldver} -> ${newver}"
+  git commit -m "$commitmsg"
+done
diff --git a/pkgs/tools/admin/azure-cli/extensions-generated.nix b/pkgs/tools/admin/azure-cli/extensions-generated.nix
index 8e872e7bba258..a6b09821283f8 100644
--- a/pkgs/tools/admin/azure-cli/extensions-generated.nix
+++ b/pkgs/tools/admin/azure-cli/extensions-generated.nix
@@ -57,9 +57,9 @@
   };
   aks-preview = mkAzExtension rec {
     pname = "aks-preview";
-    version = "1.0.0b5";
+    version = "3.0.0b9";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/aks_preview-${version}-py2.py3-none-any.whl";
-    sha256 = "75378ea07dea6fdadb115e41e8394003fd63282560648fa92d8f055f1e2536eb";
+    sha256 = "3d5e43cd1b92ef9abe959fd2aea3e3c66dbebe2cd22df6fdb8abcf7b6682bbd9";
     description = "Provides a preview for upcoming AKS features";
   };
   akshybrid = mkAzExtension rec {
@@ -85,9 +85,9 @@
   };
   amg = mkAzExtension rec {
     pname = "amg";
-    version = "1.2.9";
+    version = "1.3.2";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/amg-${version}-py3-none-any.whl";
-    sha256 = "dbea8dd0e85dd2f30f30cb66f0dd7f9d0314a7ff9765a4d074622b75aeccad2f";
+    sha256 = "cf31e9336e8b8bf63b7a1362ea05871f65493cfd49fd4a2cb73c1cb63c81f91a";
     description = "Microsoft Azure Command-Line Tools Azure Managed Grafana Extension";
   };
   amlfs = mkAzExtension rec {
@@ -106,11 +106,18 @@
   };
   appservice-kube = mkAzExtension rec {
     pname = "appservice-kube";
-    version = "0.1.9";
+    version = "0.1.10";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/appservice_kube-${version}-py2.py3-none-any.whl";
-    sha256 = "9107762296c67ef4035256a9790b075040f263804116a3f9a6866227ff6019ed";
+    sha256 = "7fd72d27e4b0eceda3b2b4f301c7a0c3068fea8b96d70f9fcaad142240de7d0d";
     description = "Microsoft Azure Command-Line Tools App Service on Kubernetes Extension";
   };
+  astronomer = mkAzExtension rec {
+    pname = "astronomer";
+    version = "1.0.0";
+    url = "https://azcliprod.blob.core.windows.net/cli-extensions/astronomer-${version}-py3-none-any.whl";
+    sha256 = "b4ca41b5d9cb77aed2b462ded4a392ae3ce896ce8d9cb94a08671d0cb68176cd";
+    description = "Microsoft Azure Command-Line Tools Astronomer Extension";
+  };
   authV2 = mkAzExtension rec {
     pname = "authV2";
     version = "0.1.3";
@@ -127,9 +134,9 @@
   };
   automation = mkAzExtension rec {
     pname = "automation";
-    version = "0.2.2";
+    version = "1.0.0b1";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/automation-${version}-py3-none-any.whl";
-    sha256 = "1337a8bf90739df646231533801cce9050bad641c627382468c86af5f2f99d89";
+    sha256 = "d31fe0433fa30a6e009f7b9bee6c417a686ed87502dd987b9ac8ad113383915b";
     description = "Microsoft Azure Command-Line Tools AutomationClient Extension";
   };
   azure-firewall = mkAzExtension rec {
@@ -174,13 +181,6 @@
     sha256 = "f71250d1c26690cc0e175cd5c9bcd59e76c7b701bb3a47c8273e4cf8bcca878e";
     description = "Microsoft Azure Command-Line Tools BillingBenefits Extension";
   };
-  blockchain = mkAzExtension rec {
-    pname = "blockchain";
-    version = "0.1.1";
-    url = "https://azcliprod.blob.core.windows.net/cli-extensions/blockchain-${version}-py3-none-any.whl";
-    sha256 = "95a4788ab10052f6c1b4122db6ab140705db528e5cb3db3358580d703a2a7204";
-    description = "Microsoft Azure Command-Line Tools BlockchainManagementClient Extension";
-  };
   blueprint = mkAzExtension rec {
     pname = "blueprint";
     version = "0.3.2";
@@ -202,6 +202,13 @@
     sha256 = "9ea6162d37fc3390be4dce64cb05c5c588070104f3e92a701ab475473565a8a9";
     description = "Translate ARM template to executable Azure CLI scripts";
   };
+  compute-diagnostic-rp = mkAzExtension rec {
+    pname = "compute-diagnostic-rp";
+    version = "1.0.0b1";
+    url = "https://azcliprod.blob.core.windows.net/cli-extensions/compute_diagnostic_rp-${version}-py3-none-any.whl";
+    sha256 = "810e93ce00c7d03df6da9a0faf57b966fb6da582311f9cae74b2b7e1e3c41423";
+    description = "Microsoft Azure Command-Line Tools ComputeDiagnosticRp Extension";
+  };
   confidentialledger = mkAzExtension rec {
     pname = "confidentialledger";
     version = "1.0.0";
@@ -211,9 +218,9 @@
   };
   confluent = mkAzExtension rec {
     pname = "confluent";
-    version = "0.4.0";
+    version = "0.6.0";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/confluent-${version}-py3-none-any.whl";
-    sha256 = "7b812940a77094bc916c745a61b7732966de4e7943a7541c0a402c0d912bc6af";
+    sha256 = "7987d22e0e9cada28087a900bfa534865531941f2bbfe967eb46c90b2e0a12be";
     description = "Microsoft Azure Command-Line Tools ConfluentManagementClient Extension";
   };
   connectedmachine = mkAzExtension rec {
@@ -225,9 +232,9 @@
   };
   connectedvmware = mkAzExtension rec {
     pname = "connectedvmware";
-    version = "0.2.4";
+    version = "1.0.1";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/connectedvmware-${version}-py2.py3-none-any.whl";
-    sha256 = "8a96c790317dfee523d548c28a51191746ff3b45ede4fee56e804d195de437f6";
+    sha256 = "92bcb19c2d19f7e5cf3e8527894324937380b831de19845cf4d382092c5dff39";
     description = "Microsoft Azure Command-Line Tools Connectedvmware Extension";
   };
   connection-monitor-preview = mkAzExtension rec {
@@ -239,9 +246,9 @@
   };
   cosmosdb-preview = mkAzExtension rec {
     pname = "cosmosdb-preview";
-    version = "0.26.0";
+    version = "1.0.0";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/cosmosdb_preview-${version}-py2.py3-none-any.whl";
-    sha256 = "c761a022fa8e849534d51bb51c6b6a7c01b541a5f018532f7fe312f74f689b06";
+    sha256 = "3a5910873138adf747ba8baed7be180981a74569c86c927ea6f1ae39d3de53bf";
     description = "Microsoft Azure Command-Line Tools Cosmosdb-preview Extension";
   };
   costmanagement = mkAzExtension rec {
@@ -302,16 +309,16 @@
   };
   datamigration = mkAzExtension rec {
     pname = "datamigration";
-    version = "0.6.1";
+    version = "1.0.0b1";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/datamigration-${version}-py3-none-any.whl";
-    sha256 = "4a07a5272762f8f53f9fe61b295a800e63c0ea2900a29a526df2eabbe732bca7";
+    sha256 = "9d1ac8c7046e23387696561747be2e8f62e879a4a305f8b20ccd19460a29db0d";
     description = "Microsoft Azure Command-Line Tools DataMigrationManagementClient Extension";
   };
   dataprotection = mkAzExtension rec {
     pname = "dataprotection";
-    version = "0.11.2";
+    version = "1.1.0";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/dataprotection-${version}-py3-none-any.whl";
-    sha256 = "ce31a7bb0c939d6eb6d71971f89441abaee172a3ba5b74dae0ebe88e4a8f5300";
+    sha256 = "bb3774425d586d03b4e26ffa0021c0024b79227963ec003430e9cd6beaa2cac7";
     description = "Microsoft Azure Command-Line Tools DataProtectionClient Extension";
   };
   datashare = mkAzExtension rec {
@@ -330,10 +337,10 @@
   };
   desktopvirtualization = mkAzExtension rec {
     pname = "desktopvirtualization";
-    version = "0.2.0";
+    version = "1.0.0";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/desktopvirtualization-${version}-py3-none-any.whl";
-    sha256 = "6de28d6be58dd65ad8f25a9fa084676c54684f00f9938f5db7d0392282783e04";
-    description = "Microsoft Azure Command-Line Tools DesktopVirtualizationAPIClient Extension";
+    sha256 = "3a1e7a8f0e579fa21fed770859b21c23bec8b8489d834a61411695a9a90c7cd4";
+    description = "Microsoft Azure Command-Line Tools Desktopvirtualization Extension";
   };
   dev-spaces = mkAzExtension rec {
     pname = "dev-spaces";
@@ -344,9 +351,9 @@
   };
   devcenter = mkAzExtension rec {
     pname = "devcenter";
-    version = "5.0.0";
+    version = "5.0.1";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/devcenter-${version}-py3-none-any.whl";
-    sha256 = "873ce4ec274710a361ba2a6bf93d8820949d955bf4386881d9a37ed87bb0d054";
+    sha256 = "f90caa530ef9a11d0e4706b94a860edca419205d4a528dab72859dd6d7870b9c";
     description = "Microsoft Azure Command-Line Tools DevCenter Extension";
   };
   diskpool = mkAzExtension rec {
@@ -391,6 +398,13 @@
     sha256 = "186a06d0f8603f7e0faeed5296ecc73bf1096e0d681acea42d5ebccc1670357b";
     description = "Microsoft Azure Command-Line Tools EdgeOrderManagementClient Extension";
   };
+  edgezones = mkAzExtension rec {
+    pname = "edgezones";
+    version = "1.0.0b1";
+    url = "https://azcliprod.blob.core.windows.net/cli-extensions/edgezones-${version}-py3-none-any.whl";
+    sha256 = "98f1b962dcbb078cfb8cd12d40a58d01bcc37db441570f84e293ba0ba52c6c08";
+    description = "Microsoft Azure Command-Line Tools Edgezones Extension";
+  };
   elastic = mkAzExtension rec {
     pname = "elastic";
     version = "1.0.0b2";
@@ -419,11 +433,18 @@
     sha256 = "b83f723baae0ea04557a87f358fa2131baf15d45cd3aba7a9ab42d14ec80df38";
     description = "Manage customer ExpressRoute circuits using an ExpressRoute cross-connection";
   };
+  firmwareanalysis = mkAzExtension rec {
+    pname = "firmwareanalysis";
+    version = "1.0.0";
+    url = "https://azcliprod.blob.core.windows.net/cli-extensions/firmwareanalysis-${version}-py3-none-any.whl";
+    sha256 = "1c3df1441de76edb08bed05ac279dd2b02bd6fab68a0b9a495dfd7ecce3e92cb";
+    description = "Microsoft Azure Command-Line Tools Firmwareanalysis Extension";
+  };
   fleet = mkAzExtension rec {
     pname = "fleet";
-    version = "1.0.3";
+    version = "1.1.2";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/fleet-${version}-py3-none-any.whl";
-    sha256 = "cd93b819d0a8c1ab50f4aec00b31623fd01040362c4cd633a89ba03fc894eb73";
+    sha256 = "d0d2cf188da6a2f72ebc335d1ff82827c84a4965e23188e3408c85b90e2131dc";
     description = "Microsoft Azure Command-Line Tools Fleet Extension";
   };
   fluid-relay = mkAzExtension rec {
@@ -454,6 +475,13 @@
     sha256 = "84abeed03b4bbfa7b8c0be08d9366ff3040e2160df4f5a539f0e1c9e0a1c359c";
     description = "Microsoft Azure Command-Line Tools fzf Extension";
   };
+  gallery-service-artifact = mkAzExtension rec {
+    pname = "gallery-service-artifact";
+    version = "1.0.0b1";
+    url = "https://azcliprod.blob.core.windows.net/cli-extensions/gallery_service_artifact-${version}-py3-none-any.whl";
+    sha256 = "3f30e3e8e7e678fd9ab91b2261fb918a303cd382626509d3f00e86f1967750c6";
+    description = "Microsoft Azure Command-Line Tools GalleryServiceArtifact Extension";
+  };
   graphservices = mkAzExtension rec {
     pname = "graphservices";
     version = "1.0.0b1";
@@ -484,9 +512,9 @@
   };
   hdinsightonaks = mkAzExtension rec {
     pname = "hdinsightonaks";
-    version = "1.0.0b1";
+    version = "1.0.0b2";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/hdinsightonaks-${version}-py3-none-any.whl";
-    sha256 = "566c30d67d6b524ac25f77342121e0e7a6ed4ab0af561fcc6e94b0629a03f40c";
+    sha256 = "c323291952f9ec6014af5f760b26860bd8029aa04cc226fd5996f20726641c59";
     description = "Microsoft Azure Command-Line Tools Hdinsightonaks Extension";
   };
   healthbot = mkAzExtension rec {
@@ -554,9 +582,9 @@
   };
   k8s-extension = mkAzExtension rec {
     pname = "k8s-extension";
-    version = "1.6.0";
+    version = "1.6.1";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/k8s_extension-${version}-py3-none-any.whl";
-    sha256 = "27a9996a9ace11856f37719ae697f0ac98d368dde6eb8648d111aafc136599a7";
+    sha256 = "41861d65b9d86e0b622986a4984ce7a611f87b92da578db8c0527ec74334f32c";
     description = "Microsoft Azure Command-Line Tools K8s-extension Extension";
   };
   kusto = mkAzExtension rec {
@@ -596,9 +624,9 @@
   };
   maintenance = mkAzExtension rec {
     pname = "maintenance";
-    version = "1.5.0";
+    version = "1.6.0";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/maintenance-${version}-py3-none-any.whl";
-    sha256 = "4f1336fed4fa2cbea640627676a6cab4399c1b29ae23cb21fe73c9bea0d80a7f";
+    sha256 = "3ab6a2dac48ba71b28bc8ee05d254daa72b62f84dda953749fa621a80ca39ae5";
     description = "Microsoft Azure Command-Line Tools MaintenanceManagementClient Extension";
   };
   managedccfs = mkAzExtension rec {
@@ -610,9 +638,9 @@
   };
   managednetworkfabric = mkAzExtension rec {
     pname = "managednetworkfabric";
-    version = "4.2.0";
+    version = "6.0.0";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/managednetworkfabric-${version}-py3-none-any.whl";
-    sha256 = "f80f528a099862fa8e792f770943a832dbb958b503cc5cc8cb6f58766056d857";
+    sha256 = "340483c69484865bb4e2cadc97aa5f6b258ee894920f4df0dd74ac412a8b2d59";
     description = "Support for managednetworkfabric commands based on 2023-06-15 API version";
   };
   managementpartner = mkAzExtension rec {
@@ -622,6 +650,13 @@
     sha256 = "22ddf4b1cdc77e99262cb6089c4d96040065828a1d38a2709fdb945d3c851839";
     description = "Support for Management Partner preview";
   };
+  mdp = mkAzExtension rec {
+    pname = "mdp";
+    version = "1.0.0b1";
+    url = "https://azcliprod.blob.core.windows.net/cli-extensions/mdp-${version}-py3-none-any.whl";
+    sha256 = "7875607d84eaf835afe73b9eee9280a5169c5b0b1dd1b66a6eff593fe292a4de";
+    description = "Microsoft Azure Command-Line Tools Mdp Extension";
+  };
   mixed-reality = mkAzExtension rec {
     pname = "mixed-reality";
     version = "0.0.5";
@@ -631,9 +666,9 @@
   };
   mobile-network = mkAzExtension rec {
     pname = "mobile-network";
-    version = "0.2.1";
+    version = "1.0.0";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/mobile_network-${version}-py3-none-any.whl";
-    sha256 = "66bd39f687c2ac030ab6bd44b8746ec8d64c4804b44592c0bb1ffda837dce22b";
+    sha256 = "2d9572a4ed706df8f626c62036ad22f46a15b113273f8ff9b06313a380a27f56";
     description = "Microsoft Azure Command-Line Tools MobileNetwork Extension";
   };
   monitor-control-service = mkAzExtension rec {
@@ -673,9 +708,9 @@
   };
   nginx = mkAzExtension rec {
     pname = "nginx";
-    version = "0.1.1";
+    version = "2.0.0b2";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/nginx-${version}-py2.py3-none-any.whl";
-    sha256 = "3234129a26043a68e80ee1ae31c36e7ef8b2691a096cd6fc557e3a46fea8170e";
+    sha256 = "7f26070f348d7af3132974f4393fb993eba5293ae18494af6a868e85aa34103c";
     description = "Microsoft Azure Command-Line Tools Nginx Extension";
   };
   notification-hub = mkAzExtension rec {
@@ -806,9 +841,9 @@
   };
   scheduled-query = mkAzExtension rec {
     pname = "scheduled-query";
-    version = "0.5.3";
+    version = "1.0.0b1";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/scheduled_query-${version}-py2.py3-none-any.whl";
-    sha256 = "b141ce4ff7678484561e9f3c842d8249112a465b7a0da07a6da49856920f8534";
+    sha256 = "fd5e69d0438b8089dbe197d5ba4c41776aed906941cac374755a4c9044c4af04";
     description = "Microsoft Azure Command-Line Tools Scheduled_query Extension";
   };
   scvmm = mkAzExtension rec {
@@ -820,9 +855,9 @@
   };
   self-help = mkAzExtension rec {
     pname = "self-help";
-    version = "0.2.0";
+    version = "0.3.0";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/self_help-${version}-py3-none-any.whl";
-    sha256 = "a57d629f75443666af570188716eaf2b9182da41f6d2f958f6d53d79b830b23e";
+    sha256 = "0545610ee482069ad89c3fcc342e3d94f72b4d5eb139312c778501c843e8216d";
     description = "Microsoft Azure Command-Line Tools SelfHelp Extension";
   };
   sentinel = mkAzExtension rec {
@@ -841,9 +876,9 @@
   };
   spring = mkAzExtension rec {
     pname = "spring";
-    version = "1.19.3";
+    version = "1.21.0";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/spring-${version}-py3-none-any.whl";
-    sha256 = "80cbd41e563231e500670402b01e95150adce18b7c128320c3d2393284e0d5d5";
+    sha256 = "a513aff7c4034e4b7016b948ae6fcfabcc0c754c1631d619233ea7bf61508ab1";
     description = "Microsoft Azure Command-Line Tools spring Extension";
   };
   spring-cloud = mkAzExtension rec {
@@ -862,10 +897,17 @@
   };
   stack-hci-vm = mkAzExtension rec {
     pname = "stack-hci-vm";
-    version = "0.1.11";
-    url = "https://hybridaksstorage.z13.web.core.windows.net/SelfServiceVM/CLI/stack_hci_vm-${version}.1-py3-none-any.whl";
-    sha256 = "cc99134288545178d08b18abd5b7c9e3d099d2add8b52ab9308f6c5fd97ae60c";
-    description = "Microsoft Azure Command-Line Tools AzureStackHCIClient Extension ";
+    version = "1.1.2";
+    url = "https://hybridaksstorage.z13.web.core.windows.net/SelfServiceVM/CLI/stack_hci_vm-${version}-py3-none-any.whl";
+    sha256 = "eac2401a6aebfcacd2f9d7dd468c00024b2b83ecfe72e33c77697b04a2af0d20";
+    description = "Microsoft Azure Command-Line Tools Stack-HCi-VM Extension";
+  };
+  standbypool = mkAzExtension rec {
+    pname = "standbypool";
+    version = "1.0.0b1";
+    url = "https://azcliprod.blob.core.windows.net/cli-extensions/standbypool-${version}-py3-none-any.whl";
+    sha256 = "44c03e320c8b49f52390e3c11d61b25a67afeffc18d62baa522c373142de0e15";
+    description = "Microsoft Azure Command-Line Tools Standbypool Extension";
   };
   staticwebapp = mkAzExtension rec {
     pname = "staticwebapp";
@@ -911,9 +953,9 @@
   };
   support = mkAzExtension rec {
     pname = "support";
-    version = "1.0.3";
+    version = "1.0.4";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/support-${version}-py2.py3-none-any.whl";
-    sha256 = "9f5b4ebc6a90b48d2a3c18ce7b74d89240275dcf23aa836b8509882b1ee28c56";
+    sha256 = "ac554e2b6362a9a6ff8e03000730df31dd72781aba8bbdcf05ceb44ce1b680a0";
     description = "Microsoft Azure Command-Line Tools Support Extension";
   };
   timeseriesinsights = mkAzExtension rec {
@@ -930,6 +972,13 @@
     sha256 = "98bda4d9a9233efb0ae1c5fae1a6c2a42942e8a71b0ebf19d3a7193548b13ff2";
     description = "Microsoft Azure Command-Line Tools TrafficCollector Extension";
   };
+  trustedsigning = mkAzExtension rec {
+    pname = "trustedsigning";
+    version = "1.0.0b2";
+    url = "https://azcliprod.blob.core.windows.net/cli-extensions/trustedsigning-${version}-py3-none-any.whl";
+    sha256 = "c3ae869c1371493180b9ed71db0bdc3842bad54c8832beb6007118d26bed71e8";
+    description = "Microsoft Azure Command-Line Tools Trustedsigning Extension";
+  };
   virtual-network-manager = mkAzExtension rec {
     pname = "virtual-network-manager";
     version = "1.0.1";
@@ -946,16 +995,16 @@
   };
   virtual-wan = mkAzExtension rec {
     pname = "virtual-wan";
-    version = "0.3.0";
+    version = "1.0.0";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/virtual_wan-${version}-py2.py3-none-any.whl";
-    sha256 = "e5f4e9d4398cf0fcd656c0107386adbc8493e69e3158af6c5145ed23aaf77165";
+    sha256 = "0ef7b4bf9ffd0aa1ad5c50e15a343276636bcfe0296e52d2ee5f0b75ce70633d";
     description = "Manage virtual WAN, hubs, VPN gateways and VPN sites";
   };
   vm-repair = mkAzExtension rec {
     pname = "vm-repair";
-    version = "1.0.0b1";
+    version = "1.0.5";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/vm_repair-${version}-py2.py3-none-any.whl";
-    sha256 = "7e6b9fb9952a56811d65de87b87b0403a6161edfa82284a43fa58f176e397b8b";
+    sha256 = "f2f7bc5698f89e0f6254464dc18d04d477dab4aab93296a46649018723855b26";
     description = "Auto repair commands to fix VMs";
   };
   vmware = mkAzExtension rec {
@@ -974,9 +1023,9 @@
   };
   workloads = mkAzExtension rec {
     pname = "workloads";
-    version = "0.1.0a1";
+    version = "1.1.0b1";
     url = "https://azcliprod.blob.core.windows.net/cli-extensions/workloads-${version}-py3-none-any.whl";
-    sha256 = "0e5ba95c3799d043fc2ba869ce0c5b2eea200357a8b0cbd2b2733bb91d4cc7a8";
+    sha256 = "262c41b08b831d689802634bb1a0fea0add38c3611f27b2036576d45232a1ff5";
     description = "Microsoft Azure Command-Line Tools Workloads Extension";
   };
 }
diff --git a/pkgs/tools/admin/azure-cli/extensions-manual.nix b/pkgs/tools/admin/azure-cli/extensions-manual.nix
index e69888b216b9f..1ae9845f2d452 100644
--- a/pkgs/tools/admin/azure-cli/extensions-manual.nix
+++ b/pkgs/tools/admin/azure-cli/extensions-manual.nix
@@ -13,4 +13,7 @@
       distro
     ];
   };
+
+  # Removed extensions
+  blockchain = throw "The 'blockchain' extension for azure-cli was deprecated upstream"; # Added 2024-04-26
 }
diff --git a/pkgs/tools/admin/drawterm/default.nix b/pkgs/tools/admin/drawterm/default.nix
index dacf5155b321e..74a951f74acfa 100644
--- a/pkgs/tools/admin/drawterm/default.nix
+++ b/pkgs/tools/admin/drawterm/default.nix
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation {
   pname = "drawterm";
-  version = "0-unstable-2024-04-23";
+  version = "0-unstable-2024-05-23";
 
   src = fetchFrom9Front {
     owner = "plan9front";
     repo = "drawterm";
-    rev = "c0951f2a3182d8b70ffe579bfd9da24c2b86e232";
-    hash = "sha256-7y2Mte6R4yeayxdFSFGb9Q5M/GQwqyFb+AW/BFsQeZc=";
+    rev = "8391a9e364622cb7d85e128b427fb96c75e18265";
+    hash = "sha256-YHko0lCCn7SydnKbepZpt4Ua6NdvuPD3Y3ZQ1Ysb0+g=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/tools/admin/granted/default.nix b/pkgs/tools/admin/granted/default.nix
index c5ee12003a455..a6925d94fb401 100644
--- a/pkgs/tools/admin/granted/default.nix
+++ b/pkgs/tools/admin/granted/default.nix
@@ -12,13 +12,13 @@
 
 buildGoModule rec {
   pname = "granted";
-  version = "0.26.2";
+  version = "0.27.0";
 
   src = fetchFromGitHub {
     owner = "common-fate";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-+vJN91adsZNihyQNLFFKt94l37lynpGvFIGPvd/9/CM=";
+    sha256 = "sha256-ke54OnO9yjL0RF1dJLTIwaCFp9GvB9Tlr06AN6u8/v4=";
   };
 
   vendorHash = "sha256-QoT7zfNbKDZyxGhDX1Lleu3mpTVXGKleX/b86l8nXXs=";
diff --git a/pkgs/tools/admin/meshcentral/default.nix b/pkgs/tools/admin/meshcentral/default.nix
index 2ac167b15cf9d..1e1563bcc915e 100644
--- a/pkgs/tools/admin/meshcentral/default.nix
+++ b/pkgs/tools/admin/meshcentral/default.nix
@@ -7,11 +7,11 @@
 }:
 
 yarn2nix-moretea.mkYarnPackage {
-  version = "1.1.22";
+  version = "1.1.24";
 
   src = fetchzip {
-    url = "https://registry.npmjs.org/meshcentral/-/meshcentral-1.1.22.tgz";
-    sha256 = "14hxynja1xybzcv9wabhn2ps7ngnigb4hs2lc2zz162wd1phv6j1";
+    url = "https://registry.npmjs.org/meshcentral/-/meshcentral-1.1.24.tgz";
+    sha256 = "1x5ibbmdrd6yv3xv3qlcd2b1mj9wpdsfgcmrcjl3js34zrygmixc";
   };
 
   patches = [ ./fix-js-include-paths.patch ];
@@ -21,7 +21,7 @@ yarn2nix-moretea.mkYarnPackage {
 
   offlineCache = fetchYarnDeps {
     yarnLock = ./yarn.lock;
-    hash = "sha256-smx37i/0MFmZYGqjE3NgySDiZfKP/4SHtFSYko/6mAU=";
+    hash = "sha256-L4rBVq/JhkcSQs/GrQJ+gcAV0vyi+9yS6B3p3O14IfE=";
   };
 
   # Tarball has CRLF line endings. This makes patching difficult, so let's convert them.
diff --git a/pkgs/tools/admin/meshcentral/package.json b/pkgs/tools/admin/meshcentral/package.json
index bab47ede89f69..f44046869c62c 100644
--- a/pkgs/tools/admin/meshcentral/package.json
+++ b/pkgs/tools/admin/meshcentral/package.json
@@ -1,6 +1,6 @@
 {
   "name": "meshcentral",
-  "version": "1.1.22",
+  "version": "1.1.24",
   "keywords": [
     "Remote Device Management",
     "Remote Device Monitoring",
@@ -42,7 +42,7 @@
     "cbor": "5.2.0",
     "compression": "1.7.4",
     "cookie-session": "2.0.0",
-    "express": "4.18.2",
+    "express": "4.19.2",
     "express-handlebars": "5.3.5",
     "express-ws": "4.0.0",
     "ipcheck": "0.1.0",
@@ -55,7 +55,7 @@
     "yauzl": "2.10.0"
   },
   "engines": {
-    "node": ">=11.0.0"
+    "node": ">=16.0.0"
   },
   "repository": {
     "type": "git",
@@ -70,13 +70,14 @@
     "passport-azure-oauth2": "*",
     "jwt-simple": "*",
     "openid-client": "*",
+    "connect-flash": "*",
     "passport-saml": "*",
     "archiver": "7.0.0",
     "body-parser": "1.20.2",
     "cbor": "5.2.0",
     "compression": "1.7.4",
     "cookie-session": "2.0.0",
-    "express": "4.18.2",
+    "express": "4.19.2",
     "express-handlebars": "5.3.5",
     "express-ws": "4.0.0",
     "ipcheck": "0.1.0",
diff --git a/pkgs/tools/admin/meshcentral/yarn.lock b/pkgs/tools/admin/meshcentral/yarn.lock
index e11b557ea22e0..8dab35726610f 100644
--- a/pkgs/tools/admin/meshcentral/yarn.lock
+++ b/pkgs/tools/admin/meshcentral/yarn.lock
@@ -10,15 +10,6 @@
     "@jridgewell/gen-mapping" "^0.3.5"
     "@jridgewell/trace-mapping" "^0.3.24"
 
-"@aws-crypto/crc32@3.0.0":
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-3.0.0.tgz#07300eca214409c33e3ff769cd5697b57fdd38fa"
-  integrity sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==
-  dependencies:
-    "@aws-crypto/util" "^3.0.0"
-    "@aws-sdk/types" "^3.222.0"
-    tslib "^1.11.1"
-
 "@aws-crypto/ie11-detection@^3.0.0":
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz#640ae66b4ec3395cee6a8e94ebcd9f80c24cd688"
@@ -65,433 +56,434 @@
     "@aws-sdk/util-utf8-browser" "^3.0.0"
     tslib "^1.11.1"
 
-"@aws-sdk/client-cognito-identity@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.540.0.tgz#ccea36dd4650bdbd0fd2bcf02c3b1fb33ba154eb"
-  integrity sha512-03vUaIKjvdcOmjDi8Fv9JgY+VQrt9QBpRkI8A1lrdPNgWqTEZXZi/zBsFRsxTe6hgsrZtxVnxLu6krSRILuqtw==
+"@aws-sdk/client-cognito-identity@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.583.0.tgz#f25360e29b46af8086f2b8f6bc6e51bcb5ac1c54"
+  integrity sha512-FrkVjrDRsXofw1F/iJqR/DOKPbIakIB+Dr04l25Em4PTWBj29NcQyYW49qcCHF0CPkqQpin8ASXDWzGv7A0yxg==
   dependencies:
     "@aws-crypto/sha256-browser" "3.0.0"
     "@aws-crypto/sha256-js" "3.0.0"
-    "@aws-sdk/client-sts" "3.540.0"
-    "@aws-sdk/core" "3.535.0"
-    "@aws-sdk/credential-provider-node" "3.540.0"
-    "@aws-sdk/middleware-host-header" "3.535.0"
-    "@aws-sdk/middleware-logger" "3.535.0"
-    "@aws-sdk/middleware-recursion-detection" "3.535.0"
-    "@aws-sdk/middleware-user-agent" "3.540.0"
-    "@aws-sdk/region-config-resolver" "3.535.0"
-    "@aws-sdk/types" "3.535.0"
-    "@aws-sdk/util-endpoints" "3.540.0"
-    "@aws-sdk/util-user-agent-browser" "3.535.0"
-    "@aws-sdk/util-user-agent-node" "3.535.0"
-    "@smithy/config-resolver" "^2.2.0"
-    "@smithy/core" "^1.4.0"
-    "@smithy/fetch-http-handler" "^2.5.0"
-    "@smithy/hash-node" "^2.2.0"
-    "@smithy/invalid-dependency" "^2.2.0"
-    "@smithy/middleware-content-length" "^2.2.0"
-    "@smithy/middleware-endpoint" "^2.5.0"
-    "@smithy/middleware-retry" "^2.2.0"
-    "@smithy/middleware-serde" "^2.3.0"
-    "@smithy/middleware-stack" "^2.2.0"
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/node-http-handler" "^2.5.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/url-parser" "^2.2.0"
-    "@smithy/util-base64" "^2.3.0"
-    "@smithy/util-body-length-browser" "^2.2.0"
-    "@smithy/util-body-length-node" "^2.3.0"
-    "@smithy/util-defaults-mode-browser" "^2.2.0"
-    "@smithy/util-defaults-mode-node" "^2.3.0"
-    "@smithy/util-endpoints" "^1.2.0"
-    "@smithy/util-middleware" "^2.2.0"
-    "@smithy/util-retry" "^2.2.0"
-    "@smithy/util-utf8" "^2.3.0"
+    "@aws-sdk/client-sso-oidc" "3.583.0"
+    "@aws-sdk/client-sts" "3.583.0"
+    "@aws-sdk/core" "3.582.0"
+    "@aws-sdk/credential-provider-node" "3.583.0"
+    "@aws-sdk/middleware-host-header" "3.577.0"
+    "@aws-sdk/middleware-logger" "3.577.0"
+    "@aws-sdk/middleware-recursion-detection" "3.577.0"
+    "@aws-sdk/middleware-user-agent" "3.583.0"
+    "@aws-sdk/region-config-resolver" "3.577.0"
+    "@aws-sdk/types" "3.577.0"
+    "@aws-sdk/util-endpoints" "3.583.0"
+    "@aws-sdk/util-user-agent-browser" "3.577.0"
+    "@aws-sdk/util-user-agent-node" "3.577.0"
+    "@smithy/config-resolver" "^3.0.0"
+    "@smithy/core" "^2.0.1"
+    "@smithy/fetch-http-handler" "^3.0.1"
+    "@smithy/hash-node" "^3.0.0"
+    "@smithy/invalid-dependency" "^3.0.0"
+    "@smithy/middleware-content-length" "^3.0.0"
+    "@smithy/middleware-endpoint" "^3.0.0"
+    "@smithy/middleware-retry" "^3.0.1"
+    "@smithy/middleware-serde" "^3.0.0"
+    "@smithy/middleware-stack" "^3.0.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/node-http-handler" "^3.0.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
+    "@smithy/url-parser" "^3.0.0"
+    "@smithy/util-base64" "^3.0.0"
+    "@smithy/util-body-length-browser" "^3.0.0"
+    "@smithy/util-body-length-node" "^3.0.0"
+    "@smithy/util-defaults-mode-browser" "^3.0.1"
+    "@smithy/util-defaults-mode-node" "^3.0.1"
+    "@smithy/util-endpoints" "^2.0.0"
+    "@smithy/util-middleware" "^3.0.0"
+    "@smithy/util-retry" "^3.0.0"
+    "@smithy/util-utf8" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/client-sso-oidc@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.540.0.tgz#e4c52889d33ca969add269011b790f2d634fb6d2"
-  integrity sha512-LZYK0lBRQK8D8M3Sqc96XiXkAV2v70zhTtF6weyzEpgwxZMfSuFJjs0jFyhaeZBZbZv7BBghIdhJ5TPavNxGMQ==
+"@aws-sdk/client-sso-oidc@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.583.0.tgz#71a00305f3d5d13041e6c2fff53cec62f621eb1f"
+  integrity sha512-LO3wmrFXPi2kNE46lD1XATfRrvdNxXd4DlTFouoWmr7lvqoUkcbmtkV2r/XChZA2z0HiDauphC1e8b8laJVeSg==
   dependencies:
     "@aws-crypto/sha256-browser" "3.0.0"
     "@aws-crypto/sha256-js" "3.0.0"
-    "@aws-sdk/client-sts" "3.540.0"
-    "@aws-sdk/core" "3.535.0"
-    "@aws-sdk/middleware-host-header" "3.535.0"
-    "@aws-sdk/middleware-logger" "3.535.0"
-    "@aws-sdk/middleware-recursion-detection" "3.535.0"
-    "@aws-sdk/middleware-user-agent" "3.540.0"
-    "@aws-sdk/region-config-resolver" "3.535.0"
-    "@aws-sdk/types" "3.535.0"
-    "@aws-sdk/util-endpoints" "3.540.0"
-    "@aws-sdk/util-user-agent-browser" "3.535.0"
-    "@aws-sdk/util-user-agent-node" "3.535.0"
-    "@smithy/config-resolver" "^2.2.0"
-    "@smithy/core" "^1.4.0"
-    "@smithy/fetch-http-handler" "^2.5.0"
-    "@smithy/hash-node" "^2.2.0"
-    "@smithy/invalid-dependency" "^2.2.0"
-    "@smithy/middleware-content-length" "^2.2.0"
-    "@smithy/middleware-endpoint" "^2.5.0"
-    "@smithy/middleware-retry" "^2.2.0"
-    "@smithy/middleware-serde" "^2.3.0"
-    "@smithy/middleware-stack" "^2.2.0"
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/node-http-handler" "^2.5.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/url-parser" "^2.2.0"
-    "@smithy/util-base64" "^2.3.0"
-    "@smithy/util-body-length-browser" "^2.2.0"
-    "@smithy/util-body-length-node" "^2.3.0"
-    "@smithy/util-defaults-mode-browser" "^2.2.0"
-    "@smithy/util-defaults-mode-node" "^2.3.0"
-    "@smithy/util-endpoints" "^1.2.0"
-    "@smithy/util-middleware" "^2.2.0"
-    "@smithy/util-retry" "^2.2.0"
-    "@smithy/util-utf8" "^2.3.0"
+    "@aws-sdk/client-sts" "3.583.0"
+    "@aws-sdk/core" "3.582.0"
+    "@aws-sdk/credential-provider-node" "3.583.0"
+    "@aws-sdk/middleware-host-header" "3.577.0"
+    "@aws-sdk/middleware-logger" "3.577.0"
+    "@aws-sdk/middleware-recursion-detection" "3.577.0"
+    "@aws-sdk/middleware-user-agent" "3.583.0"
+    "@aws-sdk/region-config-resolver" "3.577.0"
+    "@aws-sdk/types" "3.577.0"
+    "@aws-sdk/util-endpoints" "3.583.0"
+    "@aws-sdk/util-user-agent-browser" "3.577.0"
+    "@aws-sdk/util-user-agent-node" "3.577.0"
+    "@smithy/config-resolver" "^3.0.0"
+    "@smithy/core" "^2.0.1"
+    "@smithy/fetch-http-handler" "^3.0.1"
+    "@smithy/hash-node" "^3.0.0"
+    "@smithy/invalid-dependency" "^3.0.0"
+    "@smithy/middleware-content-length" "^3.0.0"
+    "@smithy/middleware-endpoint" "^3.0.0"
+    "@smithy/middleware-retry" "^3.0.1"
+    "@smithy/middleware-serde" "^3.0.0"
+    "@smithy/middleware-stack" "^3.0.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/node-http-handler" "^3.0.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
+    "@smithy/url-parser" "^3.0.0"
+    "@smithy/util-base64" "^3.0.0"
+    "@smithy/util-body-length-browser" "^3.0.0"
+    "@smithy/util-body-length-node" "^3.0.0"
+    "@smithy/util-defaults-mode-browser" "^3.0.1"
+    "@smithy/util-defaults-mode-node" "^3.0.1"
+    "@smithy/util-endpoints" "^2.0.0"
+    "@smithy/util-middleware" "^3.0.0"
+    "@smithy/util-retry" "^3.0.0"
+    "@smithy/util-utf8" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/client-sso@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.540.0.tgz#732a7f325de3905a719c20ce05e555b445f82b4a"
-  integrity sha512-rrQZMuw4sxIo3eyAUUzPQRA336mPRnrAeSlSdVHBKZD8Fjvoy0lYry2vNhkPLpFZLso1J66KRyuIv4LzRR3v1Q==
+"@aws-sdk/client-sso@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.583.0.tgz#fa18cadd19abe80e0c0378b6cbe6225ed0296595"
+  integrity sha512-FNJ2MmiBtZZwgkj4+GLVrzqwmD6D8FBptrFZk7PnGkSf7v1Q8txYNI6gY938RRhYJ4lBW4cNbhPvWoDxAl90Hw==
   dependencies:
     "@aws-crypto/sha256-browser" "3.0.0"
     "@aws-crypto/sha256-js" "3.0.0"
-    "@aws-sdk/core" "3.535.0"
-    "@aws-sdk/middleware-host-header" "3.535.0"
-    "@aws-sdk/middleware-logger" "3.535.0"
-    "@aws-sdk/middleware-recursion-detection" "3.535.0"
-    "@aws-sdk/middleware-user-agent" "3.540.0"
-    "@aws-sdk/region-config-resolver" "3.535.0"
-    "@aws-sdk/types" "3.535.0"
-    "@aws-sdk/util-endpoints" "3.540.0"
-    "@aws-sdk/util-user-agent-browser" "3.535.0"
-    "@aws-sdk/util-user-agent-node" "3.535.0"
-    "@smithy/config-resolver" "^2.2.0"
-    "@smithy/core" "^1.4.0"
-    "@smithy/fetch-http-handler" "^2.5.0"
-    "@smithy/hash-node" "^2.2.0"
-    "@smithy/invalid-dependency" "^2.2.0"
-    "@smithy/middleware-content-length" "^2.2.0"
-    "@smithy/middleware-endpoint" "^2.5.0"
-    "@smithy/middleware-retry" "^2.2.0"
-    "@smithy/middleware-serde" "^2.3.0"
-    "@smithy/middleware-stack" "^2.2.0"
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/node-http-handler" "^2.5.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/url-parser" "^2.2.0"
-    "@smithy/util-base64" "^2.3.0"
-    "@smithy/util-body-length-browser" "^2.2.0"
-    "@smithy/util-body-length-node" "^2.3.0"
-    "@smithy/util-defaults-mode-browser" "^2.2.0"
-    "@smithy/util-defaults-mode-node" "^2.3.0"
-    "@smithy/util-endpoints" "^1.2.0"
-    "@smithy/util-middleware" "^2.2.0"
-    "@smithy/util-retry" "^2.2.0"
-    "@smithy/util-utf8" "^2.3.0"
+    "@aws-sdk/core" "3.582.0"
+    "@aws-sdk/middleware-host-header" "3.577.0"
+    "@aws-sdk/middleware-logger" "3.577.0"
+    "@aws-sdk/middleware-recursion-detection" "3.577.0"
+    "@aws-sdk/middleware-user-agent" "3.583.0"
+    "@aws-sdk/region-config-resolver" "3.577.0"
+    "@aws-sdk/types" "3.577.0"
+    "@aws-sdk/util-endpoints" "3.583.0"
+    "@aws-sdk/util-user-agent-browser" "3.577.0"
+    "@aws-sdk/util-user-agent-node" "3.577.0"
+    "@smithy/config-resolver" "^3.0.0"
+    "@smithy/core" "^2.0.1"
+    "@smithy/fetch-http-handler" "^3.0.1"
+    "@smithy/hash-node" "^3.0.0"
+    "@smithy/invalid-dependency" "^3.0.0"
+    "@smithy/middleware-content-length" "^3.0.0"
+    "@smithy/middleware-endpoint" "^3.0.0"
+    "@smithy/middleware-retry" "^3.0.1"
+    "@smithy/middleware-serde" "^3.0.0"
+    "@smithy/middleware-stack" "^3.0.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/node-http-handler" "^3.0.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
+    "@smithy/url-parser" "^3.0.0"
+    "@smithy/util-base64" "^3.0.0"
+    "@smithy/util-body-length-browser" "^3.0.0"
+    "@smithy/util-body-length-node" "^3.0.0"
+    "@smithy/util-defaults-mode-browser" "^3.0.1"
+    "@smithy/util-defaults-mode-node" "^3.0.1"
+    "@smithy/util-endpoints" "^2.0.0"
+    "@smithy/util-middleware" "^3.0.0"
+    "@smithy/util-retry" "^3.0.0"
+    "@smithy/util-utf8" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/client-sts@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.540.0.tgz#16ce14db1c5387be3ad9be6dd4f8ed33b63193c8"
-  integrity sha512-ITHUQxvpqfQX6obfpIi3KYGzZYfe/I5Ixjfxoi5lB7ISCtmxqObKB1fzD93wonkMJytJ7LUO8panZl/ojiJ1uw==
+"@aws-sdk/client-sts@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.583.0.tgz#d8109ab588689a616d987f6b1d4faacafe49f598"
+  integrity sha512-xDMxiemPDWr9dY2Q4AyixkRnk/hvS6fs6OWxuVCz1WO47YhaAfOsEGAgQMgDLLaOfj/oLU5D14uTNBEPGh4rBA==
   dependencies:
     "@aws-crypto/sha256-browser" "3.0.0"
     "@aws-crypto/sha256-js" "3.0.0"
-    "@aws-sdk/core" "3.535.0"
-    "@aws-sdk/middleware-host-header" "3.535.0"
-    "@aws-sdk/middleware-logger" "3.535.0"
-    "@aws-sdk/middleware-recursion-detection" "3.535.0"
-    "@aws-sdk/middleware-user-agent" "3.540.0"
-    "@aws-sdk/region-config-resolver" "3.535.0"
-    "@aws-sdk/types" "3.535.0"
-    "@aws-sdk/util-endpoints" "3.540.0"
-    "@aws-sdk/util-user-agent-browser" "3.535.0"
-    "@aws-sdk/util-user-agent-node" "3.535.0"
-    "@smithy/config-resolver" "^2.2.0"
-    "@smithy/core" "^1.4.0"
-    "@smithy/fetch-http-handler" "^2.5.0"
-    "@smithy/hash-node" "^2.2.0"
-    "@smithy/invalid-dependency" "^2.2.0"
-    "@smithy/middleware-content-length" "^2.2.0"
-    "@smithy/middleware-endpoint" "^2.5.0"
-    "@smithy/middleware-retry" "^2.2.0"
-    "@smithy/middleware-serde" "^2.3.0"
-    "@smithy/middleware-stack" "^2.2.0"
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/node-http-handler" "^2.5.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/url-parser" "^2.2.0"
-    "@smithy/util-base64" "^2.3.0"
-    "@smithy/util-body-length-browser" "^2.2.0"
-    "@smithy/util-body-length-node" "^2.3.0"
-    "@smithy/util-defaults-mode-browser" "^2.2.0"
-    "@smithy/util-defaults-mode-node" "^2.3.0"
-    "@smithy/util-endpoints" "^1.2.0"
-    "@smithy/util-middleware" "^2.2.0"
-    "@smithy/util-retry" "^2.2.0"
-    "@smithy/util-utf8" "^2.3.0"
+    "@aws-sdk/client-sso-oidc" "3.583.0"
+    "@aws-sdk/core" "3.582.0"
+    "@aws-sdk/credential-provider-node" "3.583.0"
+    "@aws-sdk/middleware-host-header" "3.577.0"
+    "@aws-sdk/middleware-logger" "3.577.0"
+    "@aws-sdk/middleware-recursion-detection" "3.577.0"
+    "@aws-sdk/middleware-user-agent" "3.583.0"
+    "@aws-sdk/region-config-resolver" "3.577.0"
+    "@aws-sdk/types" "3.577.0"
+    "@aws-sdk/util-endpoints" "3.583.0"
+    "@aws-sdk/util-user-agent-browser" "3.577.0"
+    "@aws-sdk/util-user-agent-node" "3.577.0"
+    "@smithy/config-resolver" "^3.0.0"
+    "@smithy/core" "^2.0.1"
+    "@smithy/fetch-http-handler" "^3.0.1"
+    "@smithy/hash-node" "^3.0.0"
+    "@smithy/invalid-dependency" "^3.0.0"
+    "@smithy/middleware-content-length" "^3.0.0"
+    "@smithy/middleware-endpoint" "^3.0.0"
+    "@smithy/middleware-retry" "^3.0.1"
+    "@smithy/middleware-serde" "^3.0.0"
+    "@smithy/middleware-stack" "^3.0.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/node-http-handler" "^3.0.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
+    "@smithy/url-parser" "^3.0.0"
+    "@smithy/util-base64" "^3.0.0"
+    "@smithy/util-body-length-browser" "^3.0.0"
+    "@smithy/util-body-length-node" "^3.0.0"
+    "@smithy/util-defaults-mode-browser" "^3.0.1"
+    "@smithy/util-defaults-mode-node" "^3.0.1"
+    "@smithy/util-endpoints" "^2.0.0"
+    "@smithy/util-middleware" "^3.0.0"
+    "@smithy/util-retry" "^3.0.0"
+    "@smithy/util-utf8" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/core@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.535.0.tgz#f3a726c297cea9634d19a1db4e958c918c506c8b"
-  integrity sha512-+Yusa9HziuaEDta1UaLEtMAtmgvxdxhPn7jgfRY6PplqAqgsfa5FR83sxy5qr2q7xjQTwHtV4MjQVuOjG9JsLw==
+"@aws-sdk/core@3.582.0":
+  version "3.582.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.582.0.tgz#9ebb295290cba3d68738401fe4e3d51dfb0d1bfc"
+  integrity sha512-ofmD96IQc9g1dbyqlCyxu5fCG7kIl9p1NoN5+vGBUyLdbmPCV3Pdg99nRHYEJuv2MgGx5AUFGDPMHcqbJpnZIw==
   dependencies:
-    "@smithy/core" "^1.4.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/signature-v4" "^2.2.0"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
+    "@smithy/core" "^2.0.1"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/signature-v4" "^3.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
     fast-xml-parser "4.2.5"
     tslib "^2.6.2"
 
-"@aws-sdk/credential-provider-cognito-identity@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.540.0.tgz#9b6a309d3809a6a056b6b6c9e7ac580cda19db31"
-  integrity sha512-XOTAIuVgticX+43GMpRbi5OHmJAhHfoHYsVGu0eRLhri1yFqUHXJgHUd51QQtlA8cFQN7JnFFM6sF5EDCPF49g==
+"@aws-sdk/credential-provider-cognito-identity@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.583.0.tgz#45468c8f3f73080cfdfd6708ab07e18c5cfdfb79"
+  integrity sha512-Z6VdDZApTxeI/n8qXBz3IkAdC0tL/mw+cz6EprqpkZG8bejHw78fVjeaVOBBkuskUikjwN4puv0SEJzoEMIqpA==
   dependencies:
-    "@aws-sdk/client-cognito-identity" "3.540.0"
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/client-cognito-identity" "3.583.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/credential-provider-env@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.535.0.tgz#26248e263a8107953d5496cb3760d4e7c877abcf"
-  integrity sha512-XppwO8c0GCGSAvdzyJOhbtktSEaShg14VJKg8mpMa1XcgqzmcqqHQjtDWbx5rZheY1VdpXZhpEzJkB6LpQejpA==
+"@aws-sdk/credential-provider-env@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.577.0.tgz#d587ea01a2288840e8483a236516c0f26cb4ba36"
+  integrity sha512-Jxu255j0gToMGEiqufP8ZtKI8HW90lOLjwJ3LrdlD/NLsAY0tOQf1fWc53u28hWmmNGMxmCrL2p66IOgMDhDUw==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/credential-provider-http@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.535.0.tgz#0a42f6b1a61d927bbce9f4afd25112f486bd05da"
-  integrity sha512-kdj1wCmOMZ29jSlUskRqN04S6fJ4dvt0Nq9Z32SA6wO7UG8ht6Ot9h/au/eTWJM3E1somZ7D771oK7dQt9b8yw==
-  dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/fetch-http-handler" "^2.5.0"
-    "@smithy/node-http-handler" "^2.5.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-stream" "^2.2.0"
+"@aws-sdk/credential-provider-http@3.582.0":
+  version "3.582.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.582.0.tgz#6ea9377461c4ce38d487ea0ae5888155f7c495a6"
+  integrity sha512-kGOUKw5ryPkDIYB69PjK3SicVLTbWB06ouFN2W1EvqUJpkQGPAUGzYcomKtt3mJaCTf/1kfoaHwARAl6KKSP8Q==
+  dependencies:
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/fetch-http-handler" "^3.0.1"
+    "@smithy/node-http-handler" "^3.0.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-stream" "^3.0.1"
     tslib "^2.6.2"
 
-"@aws-sdk/credential-provider-ini@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.540.0.tgz#8e17b23bf242152775db1473f7d2952beb6a5ef9"
-  integrity sha512-igN/RbsnulIBwqXbwsWmR3srqmtbPF1dm+JteGvUY31FW65fTVvWvSr945Y/cf1UbhPmIQXntlsqESqpkhTHwg==
-  dependencies:
-    "@aws-sdk/client-sts" "3.540.0"
-    "@aws-sdk/credential-provider-env" "3.535.0"
-    "@aws-sdk/credential-provider-process" "3.535.0"
-    "@aws-sdk/credential-provider-sso" "3.540.0"
-    "@aws-sdk/credential-provider-web-identity" "3.540.0"
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/credential-provider-imds" "^2.3.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/shared-ini-file-loader" "^2.4.0"
-    "@smithy/types" "^2.12.0"
+"@aws-sdk/credential-provider-ini@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.583.0.tgz#948ebd3ca257d7d9362d3294259e0be9526cd662"
+  integrity sha512-8I0oWNg/yps6ctjhEeL/qJ9BIa/+xXP7RPDQqFKZ2zBkWbmLLOoMWXRvl8uKUBD6qCe+DGmcu9skfVXeXSesEQ==
+  dependencies:
+    "@aws-sdk/credential-provider-env" "3.577.0"
+    "@aws-sdk/credential-provider-process" "3.577.0"
+    "@aws-sdk/credential-provider-sso" "3.583.0"
+    "@aws-sdk/credential-provider-web-identity" "3.577.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/credential-provider-imds" "^3.0.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/shared-ini-file-loader" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/credential-provider-node@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.540.0.tgz#e6fd3404de68e7f9580f01aa542b16e9abc58e5c"
-  integrity sha512-HKQZJbLHlrHX9A0B1poiYNXIIQfy8whTjuosTCYKPDBhhUyVAQfxy/KG726j0v43IhaNPLgTGZCJve4hAsazSw==
-  dependencies:
-    "@aws-sdk/credential-provider-env" "3.535.0"
-    "@aws-sdk/credential-provider-http" "3.535.0"
-    "@aws-sdk/credential-provider-ini" "3.540.0"
-    "@aws-sdk/credential-provider-process" "3.535.0"
-    "@aws-sdk/credential-provider-sso" "3.540.0"
-    "@aws-sdk/credential-provider-web-identity" "3.540.0"
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/credential-provider-imds" "^2.3.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/shared-ini-file-loader" "^2.4.0"
-    "@smithy/types" "^2.12.0"
+"@aws-sdk/credential-provider-node@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.583.0.tgz#8ce316409d91cddca0c85851ca50726ee666cff5"
+  integrity sha512-yBNypBXny7zJH85SzxDj8s1mbLXv9c/Vbq0qR3R3POj2idZ6ywB/qlIRC1XwBuv49Wvg8kA1wKXk3K3jrpcVIw==
+  dependencies:
+    "@aws-sdk/credential-provider-env" "3.577.0"
+    "@aws-sdk/credential-provider-http" "3.582.0"
+    "@aws-sdk/credential-provider-ini" "3.583.0"
+    "@aws-sdk/credential-provider-process" "3.577.0"
+    "@aws-sdk/credential-provider-sso" "3.583.0"
+    "@aws-sdk/credential-provider-web-identity" "3.577.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/credential-provider-imds" "^3.0.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/shared-ini-file-loader" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/credential-provider-process@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.535.0.tgz#ea1e8a38a32e36bbdc3f75eb03352e6eafa0c659"
-  integrity sha512-9O1OaprGCnlb/kYl8RwmH7Mlg8JREZctB8r9sa1KhSsWFq/SWO0AuJTyowxD7zL5PkeS4eTvzFFHWCa3OO5epA==
+"@aws-sdk/credential-provider-process@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.577.0.tgz#ba35b4f012563762bbd86a71989d366272ee0f07"
+  integrity sha512-Gin6BWtOiXxIgITrJ3Nwc+Y2P1uVT6huYR4EcbA/DJUPWyO0n9y5UFLewPvVbLkRn15JeEqErBLUrHclkiOKtw==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/shared-ini-file-loader" "^2.4.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/shared-ini-file-loader" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/credential-provider-sso@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.540.0.tgz#1fc5c53a0df8227249c73a3cb7660b1accb79186"
-  integrity sha512-tKkFqK227LF5ajc5EL6asXS32p3nkofpP8G7NRpU7zOEOQCg01KUc4JRX+ItI0T007CiN1J19yNoFqHLT/SqHg==
-  dependencies:
-    "@aws-sdk/client-sso" "3.540.0"
-    "@aws-sdk/token-providers" "3.540.0"
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/shared-ini-file-loader" "^2.4.0"
-    "@smithy/types" "^2.12.0"
+"@aws-sdk/credential-provider-sso@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.583.0.tgz#468bb6ca9bd7b89370d5ec7865a8e29e98772abc"
+  integrity sha512-G/1EvL9tBezSiU+06tG4K/kOvFfPjnheT4JSXqjPM7+vjKzgp2jxp1J9MMd69zs4jVWon932zMeGgjrCplzMEg==
+  dependencies:
+    "@aws-sdk/client-sso" "3.583.0"
+    "@aws-sdk/token-providers" "3.577.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/shared-ini-file-loader" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/credential-provider-web-identity@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.540.0.tgz#775a2090e9f4f89efe2ebdf1e2c109a47561c0e9"
-  integrity sha512-OpDm9w3A168B44hSjpnvECP4rvnFzD86rN4VYdGADuCvEa5uEcdA/JuT5WclFPDqdWEmFBqS1pxBIJBf0g2Q9Q==
+"@aws-sdk/credential-provider-web-identity@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.577.0.tgz#294fb71fa832d9f55ea1c56678357efa3cd7ca55"
+  integrity sha512-ZGHGNRaCtJJmszb9UTnC7izNCtRUttdPlLdMkh41KPS32vfdrBDHs1JrpbZijItRj1xKuOXsiYSXLAaHGcLh8Q==
   dependencies:
-    "@aws-sdk/client-sts" "3.540.0"
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
 "@aws-sdk/credential-providers@^3.186.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.540.0.tgz#649725589d210bc1237e2d3d8893302ef3a79ecf"
-  integrity sha512-tAmvqdZngCrER5/AAwTmDSjO05LGIshKL+lwcJr2OUV5jtQVzfbFrorf+b5dnI+3i8+zGcEAV9omra4XGrO9Kg==
-  dependencies:
-    "@aws-sdk/client-cognito-identity" "3.540.0"
-    "@aws-sdk/client-sso" "3.540.0"
-    "@aws-sdk/client-sts" "3.540.0"
-    "@aws-sdk/credential-provider-cognito-identity" "3.540.0"
-    "@aws-sdk/credential-provider-env" "3.535.0"
-    "@aws-sdk/credential-provider-http" "3.535.0"
-    "@aws-sdk/credential-provider-ini" "3.540.0"
-    "@aws-sdk/credential-provider-node" "3.540.0"
-    "@aws-sdk/credential-provider-process" "3.535.0"
-    "@aws-sdk/credential-provider-sso" "3.540.0"
-    "@aws-sdk/credential-provider-web-identity" "3.540.0"
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/credential-provider-imds" "^2.3.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/types" "^2.12.0"
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.583.0.tgz#138f4894cd2f00730b618434bfc86caec253636c"
+  integrity sha512-aD/lw6LJW51f+LgdR54UxyGvXqWZs4HCT310Qf794qFItDWXqhHK4EgS1x41BgAvXPUx0+HSO8OI4eb+AklckA==
+  dependencies:
+    "@aws-sdk/client-cognito-identity" "3.583.0"
+    "@aws-sdk/client-sso" "3.583.0"
+    "@aws-sdk/client-sts" "3.583.0"
+    "@aws-sdk/credential-provider-cognito-identity" "3.583.0"
+    "@aws-sdk/credential-provider-env" "3.577.0"
+    "@aws-sdk/credential-provider-http" "3.582.0"
+    "@aws-sdk/credential-provider-ini" "3.583.0"
+    "@aws-sdk/credential-provider-node" "3.583.0"
+    "@aws-sdk/credential-provider-process" "3.577.0"
+    "@aws-sdk/credential-provider-sso" "3.583.0"
+    "@aws-sdk/credential-provider-web-identity" "3.577.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/credential-provider-imds" "^3.0.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/middleware-host-header@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.535.0.tgz#d5264f813592f5e77df25e5a14bbb0e6441812db"
-  integrity sha512-0h6TWjBWtDaYwHMQJI9ulafeS4lLaw1vIxRjbpH0svFRt6Eve+Sy8NlVhECfTU2hNz/fLubvrUxsXoThaLBIew==
+"@aws-sdk/middleware-host-header@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.577.0.tgz#a3fc626d409ec850296740478c64ef5806d8b878"
+  integrity sha512-9ca5MJz455CODIVXs0/sWmJm7t3QO4EUa1zf8pE8grLpzf0J94bz/skDWm37Pli13T3WaAQBHCTiH2gUVfCsWg==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/middleware-logger@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.535.0.tgz#1a8ffd6c368edd6cb32e1edf7b1dced95c1820ee"
-  integrity sha512-huNHpONOrEDrdRTvSQr1cJiRMNf0S52NDXtaPzdxiubTkP+vni2MohmZANMOai/qT0olmEVX01LhZ0ZAOgmg6A==
+"@aws-sdk/middleware-logger@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.577.0.tgz#6da3b13ae284fb3930961f0fc8e20b1f6cf8be30"
+  integrity sha512-aPFGpGjTZcJYk+24bg7jT4XdIp42mFXSuPt49lw5KygefLyJM/sB0bKKqPYYivW0rcuZ9brQ58eZUNthrzYAvg==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/middleware-recursion-detection@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.535.0.tgz#6aa1e1bd1e84730d58a73021b745e20d4341a92d"
-  integrity sha512-am2qgGs+gwqmR4wHLWpzlZ8PWhm4ktj5bYSgDrsOfjhdBlWNxvPoID9/pDAz5RWL48+oH7I6SQzMqxXsFDikrw==
+"@aws-sdk/middleware-recursion-detection@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.577.0.tgz#fff76abc6d4521636f9e654ce5bf2c4c79249417"
+  integrity sha512-pn3ZVEd2iobKJlR3H+bDilHjgRnNrQ6HMmK9ZzZw89Ckn3Dcbv48xOv4RJvu0aU8SDLl/SNCxppKjeLDTPGBNA==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/middleware-user-agent@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.540.0.tgz#4981c64c1eeb6b5c453bce02d060b8c71d44994d"
-  integrity sha512-8Rd6wPeXDnOYzWj1XCmOKcx/Q87L0K1/EHqOBocGjLVbN3gmRxBvpmR1pRTjf7IsWfnnzN5btqtcAkfDPYQUMQ==
+"@aws-sdk/middleware-user-agent@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.583.0.tgz#5554b0de431cb3700368f01eb7425210fd3ee9a9"
+  integrity sha512-xVNXXXDWvBVI/AeVtSdA9SVumqxiZaESk/JpUn9GMkmtTKfter0Cweap+1iQ9j8bRAO0vNhmIkbcvdB1S4WVUw==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@aws-sdk/util-endpoints" "3.540.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@aws-sdk/util-endpoints" "3.583.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/region-config-resolver@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.535.0.tgz#20a30fb5fbbe27ab70f2ed16327bae7e367b5cec"
-  integrity sha512-IXOznDiaItBjsQy4Fil0kzX/J3HxIOknEphqHbOfUf+LpA5ugcsxuQQONrbEQusCBnfJyymrldBvBhFmtlU9Wg==
+"@aws-sdk/region-config-resolver@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.577.0.tgz#1fab6dc6c4ec3ad9a0352c1ce1a757464219fb00"
+  integrity sha512-4ChCFACNwzqx/xjg3zgFcW8Ali6R9C95cFECKWT/7CUM1D0MGvkclSH2cLarmHCmJgU6onKkJroFtWp0kHhgyg==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-config-provider" "^2.3.0"
-    "@smithy/util-middleware" "^2.2.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-config-provider" "^3.0.0"
+    "@smithy/util-middleware" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/token-providers@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.540.0.tgz#06fb874a62d3c496875768ac648bc6cca4c75a79"
-  integrity sha512-9BvtiVEZe5Ev88Wa4ZIUbtT6BVcPwhxmVInQ6c12MYNb0WNL54BN6wLy/eknAfF05gpX2/NDU2pUDOyMPdm/+g==
+"@aws-sdk/token-providers@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.577.0.tgz#8f9e96ff42994dfd0b5b3692b583644ccda04893"
+  integrity sha512-0CkIZpcC3DNQJQ1hDjm2bdSy/Xjs7Ny5YvSsacasGOkNfk+FdkiQy6N67bZX3Zbc9KIx+Nz4bu3iDeNSNplnnQ==
   dependencies:
-    "@aws-sdk/client-sso-oidc" "3.540.0"
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/shared-ini-file-loader" "^2.4.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/shared-ini-file-loader" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/types@3.535.0", "@aws-sdk/types@^3.222.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.535.0.tgz#5e6479f31299dd9df170e63f4d10fe739008cf04"
-  integrity sha512-aY4MYfduNj+sRR37U7XxYR8wemfbKP6lx00ze2M2uubn7mZotuVrWYAafbMSXrdEMSToE5JDhr28vArSOoLcSg==
+"@aws-sdk/types@3.577.0", "@aws-sdk/types@^3.222.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.577.0.tgz#7700784d368ce386745f8c340d9d68cea4716f90"
+  integrity sha512-FT2JZES3wBKN/alfmhlo+3ZOq/XJ0C7QOZcDNrpKjB0kqYoKjhVKZ/Hx6ArR0czkKfHzBBEs6y40ebIHx2nSmA==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/util-endpoints@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.540.0.tgz#a7fea1d2a5e64623353aaa6ee32dbb86ab9cd3f8"
-  integrity sha512-1kMyQFAWx6f8alaI6UT65/5YW/7pDWAKAdNwL6vuJLea03KrZRX3PMoONOSJpAS5m3Ot7HlWZvf3wZDNTLELZw==
+"@aws-sdk/util-endpoints@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.583.0.tgz#1554d3b4124be21a72a519603e9727d973845504"
+  integrity sha512-ZC9mb2jq6BFXPYsUsD2tmYcnlmd+9PGNwnFNn8jk4abna5Jjk2wDknN81ybktmBR5ttN9W8ugmktuKtvAMIDCQ==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-endpoints" "^1.2.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-endpoints" "^2.0.0"
     tslib "^2.6.2"
 
 "@aws-sdk/util-locate-window@^3.0.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.535.0.tgz#0200a336fddd47dd6567ce15d01f62be50a315d7"
-  integrity sha512-PHJ3SL6d2jpcgbqdgiPxkXpu7Drc2PYViwxSIqvvMKhDwzSB1W3mMvtpzwKM4IE7zLFodZo0GKjJ9AsoXndXhA==
+  version "3.568.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.568.0.tgz#2acc4b2236af0d7494f7e517401ba6b3c4af11ff"
+  integrity sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig==
   dependencies:
     tslib "^2.6.2"
 
-"@aws-sdk/util-user-agent-browser@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.535.0.tgz#d67d72e8b933051620f18ddb1c2be225f79f588f"
-  integrity sha512-RWMcF/xV5n+nhaA/Ff5P3yNP3Kur/I+VNZngog4TEs92oB/nwOdAg/2JL8bVAhUbMrjTjpwm7PItziYFQoqyig==
+"@aws-sdk/util-user-agent-browser@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.577.0.tgz#d4d2cdb3a2b3d1c8b35f239ee9f7b2c87bee66ea"
+  integrity sha512-zEAzHgR6HWpZOH7xFgeJLc6/CzMcx4nxeQolZxVZoB5pPaJd3CjyRhZN0xXeZB0XIRCWmb4yJBgyiugXLNMkLA==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/types" "^3.0.0"
     bowser "^2.11.0"
     tslib "^2.6.2"
 
-"@aws-sdk/util-user-agent-node@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.535.0.tgz#f5c26fb6f3f561d3cf35f96f303b1775afad0a5b"
-  integrity sha512-dRek0zUuIT25wOWJlsRm97nTkUlh1NDcLsQZIN2Y8KxhwoXXWtJs5vaDPT+qAg+OpcNj80i1zLR/CirqlFg/TQ==
+"@aws-sdk/util-user-agent-node@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.577.0.tgz#0215ea10ead622a61b575a7181a4c51ae8e71449"
+  integrity sha512-XqvtFjbSMtycZTWVwDe8DRWovuoMbA54nhUoZwVU6rW9OSD6NZWGR512BUGHFaWzW0Wg8++Dj10FrKTG2XtqfA==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
 "@aws-sdk/util-utf8-browser@^3.0.0":
@@ -502,12 +494,12 @@
     tslib "^2.3.1"
 
 "@babel/cli@^7.16.0":
-  version "7.24.1"
-  resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.24.1.tgz#2e11e071e32fe82850b4fe514f56b9c9e1c44911"
-  integrity sha512-HbmrtxyFUr34LwAlV9jS+sSIjUp4FpdtIMGwgufY3AsxrIfsh/HxlMTywsONAZsU0RMYbZtbZFpUCrSGs7o0EA==
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.24.6.tgz#fac1fb099dff635efa1110882063c44a211cf18c"
+  integrity sha512-Sm/YhG/0REw9SKByFHDf4hkk7PYsjcsOyZgHGz1nvab4tUTQ9N4XVv+ykK0Y+VCJ3OshA/7EDyxnwCd8NEP/mQ==
   dependencies:
     "@jridgewell/trace-mapping" "^0.3.25"
-    commander "^4.0.1"
+    commander "^6.2.0"
     convert-source-map "^2.0.0"
     fs-readdir-recursive "^1.1.0"
     glob "^7.2.0"
@@ -517,198 +509,197 @@
     "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3"
     chokidar "^3.4.0"
 
-"@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.1", "@babel/code-frame@^7.24.2":
-  version "7.24.2"
-  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.2.tgz#718b4b19841809a58b29b68cde80bc5e1aa6d9ae"
-  integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==
+"@babel/code-frame@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.6.tgz#ab88da19344445c3d8889af2216606d3329f3ef2"
+  integrity sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==
   dependencies:
-    "@babel/highlight" "^7.24.2"
+    "@babel/highlight" "^7.24.6"
     picocolors "^1.0.0"
 
-"@babel/compat-data@^7.23.5":
-  version "7.24.1"
-  resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.1.tgz#31c1f66435f2a9c329bb5716a6d6186c516c3742"
-  integrity sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==
+"@babel/compat-data@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.6.tgz#b3600217688cabb26e25f8e467019e66d71b7ae2"
+  integrity sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==
 
 "@babel/core@^7.16.5":
-  version "7.24.3"
-  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.3.tgz#568864247ea10fbd4eff04dda1e05f9e2ea985c3"
-  integrity sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.6.tgz#8650e0e4b03589ebe886c4e4a60398db0a7ec787"
+  integrity sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==
   dependencies:
     "@ampproject/remapping" "^2.2.0"
-    "@babel/code-frame" "^7.24.2"
-    "@babel/generator" "^7.24.1"
-    "@babel/helper-compilation-targets" "^7.23.6"
-    "@babel/helper-module-transforms" "^7.23.3"
-    "@babel/helpers" "^7.24.1"
-    "@babel/parser" "^7.24.1"
-    "@babel/template" "^7.24.0"
-    "@babel/traverse" "^7.24.1"
-    "@babel/types" "^7.24.0"
+    "@babel/code-frame" "^7.24.6"
+    "@babel/generator" "^7.24.6"
+    "@babel/helper-compilation-targets" "^7.24.6"
+    "@babel/helper-module-transforms" "^7.24.6"
+    "@babel/helpers" "^7.24.6"
+    "@babel/parser" "^7.24.6"
+    "@babel/template" "^7.24.6"
+    "@babel/traverse" "^7.24.6"
+    "@babel/types" "^7.24.6"
     convert-source-map "^2.0.0"
     debug "^4.1.0"
     gensync "^1.0.0-beta.2"
     json5 "^2.2.3"
     semver "^6.3.1"
 
-"@babel/generator@^7.24.1", "@babel/generator@^7.4.0":
-  version "7.24.1"
-  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.1.tgz#e67e06f68568a4ebf194d1c6014235344f0476d0"
-  integrity sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==
+"@babel/generator@^7.24.6", "@babel/generator@^7.4.0":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.6.tgz#dfac82a228582a9d30c959fe50ad28951d4737a7"
+  integrity sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==
   dependencies:
-    "@babel/types" "^7.24.0"
+    "@babel/types" "^7.24.6"
     "@jridgewell/gen-mapping" "^0.3.5"
     "@jridgewell/trace-mapping" "^0.3.25"
     jsesc "^2.5.1"
 
-"@babel/helper-annotate-as-pure@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882"
-  integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==
+"@babel/helper-annotate-as-pure@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.6.tgz#517af93abc77924f9b2514c407bbef527fb8938d"
+  integrity sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg==
   dependencies:
-    "@babel/types" "^7.22.5"
+    "@babel/types" "^7.24.6"
 
-"@babel/helper-compilation-targets@^7.23.6":
-  version "7.23.6"
-  resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991"
-  integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==
+"@babel/helper-compilation-targets@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz#4a51d681f7680043d38e212715e2a7b1ad29cb51"
+  integrity sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==
   dependencies:
-    "@babel/compat-data" "^7.23.5"
-    "@babel/helper-validator-option" "^7.23.5"
+    "@babel/compat-data" "^7.24.6"
+    "@babel/helper-validator-option" "^7.24.6"
     browserslist "^4.22.2"
     lru-cache "^5.1.1"
     semver "^6.3.1"
 
-"@babel/helper-environment-visitor@^7.22.20":
-  version "7.22.20"
-  resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167"
-  integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==
-
-"@babel/helper-function-name@^7.23.0":
-  version "7.23.0"
-  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759"
-  integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==
-  dependencies:
-    "@babel/template" "^7.22.15"
-    "@babel/types" "^7.23.0"
-
-"@babel/helper-hoist-variables@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb"
-  integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==
-  dependencies:
-    "@babel/types" "^7.22.5"
-
-"@babel/helper-module-imports@^7.22.15":
-  version "7.24.3"
-  resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz#6ac476e6d168c7c23ff3ba3cf4f7841d46ac8128"
-  integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==
-  dependencies:
-    "@babel/types" "^7.24.0"
-
-"@babel/helper-module-transforms@^7.23.3":
-  version "7.23.3"
-  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1"
-  integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==
-  dependencies:
-    "@babel/helper-environment-visitor" "^7.22.20"
-    "@babel/helper-module-imports" "^7.22.15"
-    "@babel/helper-simple-access" "^7.22.5"
-    "@babel/helper-split-export-declaration" "^7.22.6"
-    "@babel/helper-validator-identifier" "^7.22.20"
-
-"@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.0":
-  version "7.24.0"
-  resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz#945681931a52f15ce879fd5b86ce2dae6d3d7f2a"
-  integrity sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==
-
-"@babel/helper-simple-access@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de"
-  integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==
-  dependencies:
-    "@babel/types" "^7.22.5"
-
-"@babel/helper-split-export-declaration@^7.22.6":
-  version "7.22.6"
-  resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c"
-  integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==
-  dependencies:
-    "@babel/types" "^7.22.5"
-
-"@babel/helper-string-parser@^7.23.4":
-  version "7.24.1"
-  resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz#f99c36d3593db9540705d0739a1f10b5e20c696e"
-  integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==
-
-"@babel/helper-validator-identifier@^7.22.20":
-  version "7.22.20"
-  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
-  integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
-
-"@babel/helper-validator-option@^7.23.5":
-  version "7.23.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307"
-  integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==
-
-"@babel/helpers@^7.24.1":
-  version "7.24.1"
-  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.1.tgz#183e44714b9eba36c3038e442516587b1e0a1a94"
-  integrity sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==
-  dependencies:
-    "@babel/template" "^7.24.0"
-    "@babel/traverse" "^7.24.1"
-    "@babel/types" "^7.24.0"
-
-"@babel/highlight@^7.24.2":
-  version "7.24.2"
-  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.2.tgz#3f539503efc83d3c59080a10e6634306e0370d26"
-  integrity sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==
-  dependencies:
-    "@babel/helper-validator-identifier" "^7.22.20"
+"@babel/helper-environment-visitor@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.6.tgz#ac7ad5517821641550f6698dd5468f8cef78620d"
+  integrity sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==
+
+"@babel/helper-function-name@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.24.6.tgz#cebdd063386fdb95d511d84b117e51fc68fec0c8"
+  integrity sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==
+  dependencies:
+    "@babel/template" "^7.24.6"
+    "@babel/types" "^7.24.6"
+
+"@babel/helper-hoist-variables@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.6.tgz#8a7ece8c26756826b6ffcdd0e3cf65de275af7f9"
+  integrity sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==
+  dependencies:
+    "@babel/types" "^7.24.6"
+
+"@babel/helper-module-imports@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.6.tgz#65e54ffceed6a268dc4ce11f0433b82cfff57852"
+  integrity sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==
+  dependencies:
+    "@babel/types" "^7.24.6"
+
+"@babel/helper-module-transforms@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz#22346ed9df44ce84dee850d7433c5b73fab1fe4e"
+  integrity sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==
+  dependencies:
+    "@babel/helper-environment-visitor" "^7.24.6"
+    "@babel/helper-module-imports" "^7.24.6"
+    "@babel/helper-simple-access" "^7.24.6"
+    "@babel/helper-split-export-declaration" "^7.24.6"
+    "@babel/helper-validator-identifier" "^7.24.6"
+
+"@babel/helper-plugin-utils@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.6.tgz#fa02a32410a15a6e8f8185bcbf608f10528d2a24"
+  integrity sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==
+
+"@babel/helper-simple-access@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz#1d6e04d468bba4fc963b4906f6dac6286cfedff1"
+  integrity sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==
+  dependencies:
+    "@babel/types" "^7.24.6"
+
+"@babel/helper-split-export-declaration@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.6.tgz#e830068f7ba8861c53b7421c284da30ae656d7a3"
+  integrity sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==
+  dependencies:
+    "@babel/types" "^7.24.6"
+
+"@babel/helper-string-parser@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.6.tgz#28583c28b15f2a3339cfafafeaad42f9a0e828df"
+  integrity sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==
+
+"@babel/helper-validator-identifier@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz#08bb6612b11bdec78f3feed3db196da682454a5e"
+  integrity sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==
+
+"@babel/helper-validator-option@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.6.tgz#59d8e81c40b7d9109ab7e74457393442177f460a"
+  integrity sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==
+
+"@babel/helpers@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.6.tgz#cd124245299e494bd4e00edda0e4ea3545c2c176"
+  integrity sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==
+  dependencies:
+    "@babel/template" "^7.24.6"
+    "@babel/types" "^7.24.6"
+
+"@babel/highlight@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.6.tgz#6d610c1ebd2c6e061cade0153bf69b0590b7b3df"
+  integrity sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==
+  dependencies:
+    "@babel/helper-validator-identifier" "^7.24.6"
     chalk "^2.4.2"
     js-tokens "^4.0.0"
     picocolors "^1.0.0"
 
 "@babel/node@^7.16.5":
-  version "7.23.9"
-  resolved "https://registry.yarnpkg.com/@babel/node/-/node-7.23.9.tgz#fc40dc371439f1a45535ebf515232f4f046ef7a9"
-  integrity sha512-/d4ju/POwlGIJlZ+NqWH1qu61wt6ZlTZZZutrK2MOSdaH1JCh726nLw/GSvAjG+LTY6CO9SsB8uWcttnFKm6yg==
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/node/-/node-7.24.6.tgz#cefca562b9c569583431f1f07a0965101614b223"
+  integrity sha512-63bD/Kbh1Vl6HapTZLSsyaGlQhhpF1/GpyS1oJotroJKoamOgKKEEKk3iHZAkicjcr+n4V4zdB0V+8siv6AZ5Q==
   dependencies:
-    "@babel/register" "^7.23.7"
-    commander "^4.0.1"
+    "@babel/register" "^7.24.6"
+    commander "^6.2.0"
     core-js "^3.30.2"
     node-environment-flags "^1.0.5"
     regenerator-runtime "^0.14.0"
     v8flags "^3.1.1"
 
-"@babel/parser@^7.24.0", "@babel/parser@^7.24.1", "@babel/parser@^7.4.3":
-  version "7.24.1"
-  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.1.tgz#1e416d3627393fab1cb5b0f2f1796a100ae9133a"
-  integrity sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==
+"@babel/parser@^7.24.6", "@babel/parser@^7.4.3":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.6.tgz#5e030f440c3c6c78d195528c3b688b101a365328"
+  integrity sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==
 
-"@babel/plugin-syntax-jsx@^7.23.3":
-  version "7.24.1"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz#3f6ca04b8c841811dbc3c5c5f837934e0d626c10"
-  integrity sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==
+"@babel/plugin-syntax-jsx@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.6.tgz#bcca2964150437f88f65e3679e3d68762287b9c8"
+  integrity sha512-lWfvAIFNWMlCsU0DRUun2GpFwZdGTukLaHJqRh1JRb80NdAP5Sb1HDHB5X9P9OtgZHQl089UzQkpYlBq2VTPRw==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.24.0"
+    "@babel/helper-plugin-utils" "^7.24.6"
 
 "@babel/plugin-transform-react-jsx@^7.16.5":
-  version "7.23.4"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz#393f99185110cea87184ea47bcb4a7b0c2e39312"
-  integrity sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.6.tgz#4ca3660ca663d20095455571615d6263986cdfe4"
+  integrity sha512-pCtPHhpRZHfwdA5G1Gpk5mIzMA99hv0R8S/Ket50Rw+S+8hkt3wBWqdqHaPw0CuUYxdshUgsPiLQ5fAs4ASMhw==
   dependencies:
-    "@babel/helper-annotate-as-pure" "^7.22.5"
-    "@babel/helper-module-imports" "^7.22.15"
-    "@babel/helper-plugin-utils" "^7.22.5"
-    "@babel/plugin-syntax-jsx" "^7.23.3"
-    "@babel/types" "^7.23.4"
+    "@babel/helper-annotate-as-pure" "^7.24.6"
+    "@babel/helper-module-imports" "^7.24.6"
+    "@babel/helper-plugin-utils" "^7.24.6"
+    "@babel/plugin-syntax-jsx" "^7.24.6"
+    "@babel/types" "^7.24.6"
 
-"@babel/register@^7.23.7":
-  version "7.23.7"
-  resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.23.7.tgz#485a5e7951939d21304cae4af1719fdb887bc038"
-  integrity sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==
+"@babel/register@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.24.6.tgz#59e21dcc79e1d04eed5377633b0f88029a6bef9e"
+  integrity sha512-WSuFCc2wCqMeXkz/i3yfAAsxwWflEgbVkZzivgAmXl/MxrXeoYFZOOPllbC8R8WTF7u61wSRQtDVZ1879cdu6w==
   dependencies:
     clone-deep "^4.0.1"
     find-cache-dir "^2.0.0"
@@ -716,38 +707,38 @@
     pirates "^4.0.6"
     source-map-support "^0.5.16"
 
-"@babel/template@^7.22.15", "@babel/template@^7.24.0", "@babel/template@^7.4.0":
-  version "7.24.0"
-  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50"
-  integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==
-  dependencies:
-    "@babel/code-frame" "^7.23.5"
-    "@babel/parser" "^7.24.0"
-    "@babel/types" "^7.24.0"
-
-"@babel/traverse@^7.24.1", "@babel/traverse@^7.4.3":
-  version "7.24.1"
-  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.1.tgz#d65c36ac9dd17282175d1e4a3c49d5b7988f530c"
-  integrity sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==
-  dependencies:
-    "@babel/code-frame" "^7.24.1"
-    "@babel/generator" "^7.24.1"
-    "@babel/helper-environment-visitor" "^7.22.20"
-    "@babel/helper-function-name" "^7.23.0"
-    "@babel/helper-hoist-variables" "^7.22.5"
-    "@babel/helper-split-export-declaration" "^7.22.6"
-    "@babel/parser" "^7.24.1"
-    "@babel/types" "^7.24.0"
+"@babel/template@^7.24.6", "@babel/template@^7.4.0":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.6.tgz#048c347b2787a6072b24c723664c8d02b67a44f9"
+  integrity sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==
+  dependencies:
+    "@babel/code-frame" "^7.24.6"
+    "@babel/parser" "^7.24.6"
+    "@babel/types" "^7.24.6"
+
+"@babel/traverse@^7.24.6", "@babel/traverse@^7.4.3":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.6.tgz#0941ec50cdeaeacad0911eb67ae227a4f8424edc"
+  integrity sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==
+  dependencies:
+    "@babel/code-frame" "^7.24.6"
+    "@babel/generator" "^7.24.6"
+    "@babel/helper-environment-visitor" "^7.24.6"
+    "@babel/helper-function-name" "^7.24.6"
+    "@babel/helper-hoist-variables" "^7.24.6"
+    "@babel/helper-split-export-declaration" "^7.24.6"
+    "@babel/parser" "^7.24.6"
+    "@babel/types" "^7.24.6"
     debug "^4.3.1"
     globals "^11.1.0"
 
-"@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.4", "@babel/types@^7.24.0", "@babel/types@^7.4.0":
-  version "7.24.0"
-  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.0.tgz#3b951f435a92e7333eba05b7566fd297960ea1bf"
-  integrity sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==
+"@babel/types@^7.24.6", "@babel/types@^7.4.0":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.6.tgz#ba4e1f59870c10dc2fa95a274ac4feec23b21912"
+  integrity sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==
   dependencies:
-    "@babel/helper-string-parser" "^7.23.4"
-    "@babel/helper-validator-identifier" "^7.22.20"
+    "@babel/helper-string-parser" "^7.24.6"
+    "@babel/helper-validator-identifier" "^7.24.6"
     to-fast-properties "^2.0.0"
 
 "@colors/colors@1.6.0", "@colors/colors@^1.6.0":
@@ -781,16 +772,16 @@
     kuler "^2.0.0"
 
 "@discordjs/builders@^1.3.0":
-  version "1.7.0"
-  resolved "https://registry.yarnpkg.com/@discordjs/builders/-/builders-1.7.0.tgz#e2478c7e55b0f4c40837edb8f102bce977323a37"
-  integrity sha512-GDtbKMkg433cOZur8Dv6c25EHxduNIBsxeHrsRoIM8+AwmEZ8r0tEpckx/sHwTLwQPOF3e2JWloZh9ofCaMfAw==
+  version "1.8.1"
+  resolved "https://registry.yarnpkg.com/@discordjs/builders/-/builders-1.8.1.tgz#5bca6e50a012492ecc03480ced53cbc7a1aac054"
+  integrity sha512-GkF+HM01FHy+NSoTaUPR8z44otfQgJ1AIsRxclYGUZDyUbdZEFyD/5QVv2Y1Flx6M+B0bQLzg2M9CJv5lGTqpA==
   dependencies:
-    "@discordjs/formatters" "^0.3.3"
-    "@discordjs/util" "^1.0.2"
-    "@sapphire/shapeshift" "^3.9.3"
-    discord-api-types "0.37.61"
+    "@discordjs/formatters" "^0.4.0"
+    "@discordjs/util" "^1.1.0"
+    "@sapphire/shapeshift" "^3.9.7"
+    discord-api-types "0.37.83"
     fast-deep-equal "^3.1.3"
-    ts-mixer "^6.0.3"
+    ts-mixer "^6.0.4"
     tslib "^2.6.2"
 
 "@discordjs/collection@^1.2.0", "@discordjs/collection@^1.5.1":
@@ -798,12 +789,12 @@
   resolved "https://registry.yarnpkg.com/@discordjs/collection/-/collection-1.5.3.tgz#5a1250159ebfff9efa4f963cfa7e97f1b291be18"
   integrity sha512-SVb428OMd3WO1paV3rm6tSjM4wC+Kecaa1EUGX7vc6/fddvw/6lg90z4QtCqm21zvVe92vMMDt9+DkIvjXImQQ==
 
-"@discordjs/formatters@^0.3.3":
-  version "0.3.3"
-  resolved "https://registry.yarnpkg.com/@discordjs/formatters/-/formatters-0.3.3.tgz#b16fdd79bb819680ab7e519193004e9dc124a749"
-  integrity sha512-wTcI1Q5cps1eSGhl6+6AzzZkBBlVrBdc9IUhJbijRgVjCNIIIZPgqnUj3ntFODsHrdbGU8BEG9XmDQmgEEYn3w==
+"@discordjs/formatters@^0.4.0":
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/@discordjs/formatters/-/formatters-0.4.0.tgz#066a2c2163b26ac066e6f621f17445be9690c6a9"
+  integrity sha512-fJ06TLC1NiruF35470q3Nr1bi95BdvKFAF+T5bNfZJ4bNdqZ3VZ+Ttg6SThqTxm6qumSG3choxLBHMC69WXNXQ==
   dependencies:
-    discord-api-types "0.37.61"
+    discord-api-types "0.37.83"
 
 "@discordjs/rest@^1.3.0":
   version "1.7.1"
@@ -829,10 +820,10 @@
   resolved "https://registry.yarnpkg.com/@discordjs/util/-/util-0.3.1.tgz#4e8737e1dcff7e9f5eccc3116fb44755b65b1e97"
   integrity sha512-HxXKYKg7vohx2/OupUN/4Sd02Ev3PBJ5q0gtjdcvXb0ErCva8jNHWfe/v5sU3UKjIB/uxOhc+TDOnhqffj9pRA==
 
-"@discordjs/util@^1.0.2":
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/@discordjs/util/-/util-1.0.2.tgz#dc1896d764452b1bd9707eb9aa99ccfbb30bd1c0"
-  integrity sha512-IRNbimrmfb75GMNEjyznqM1tkI7HrZOf14njX7tCAAUetyZM1Pr8hX/EK2lxBCOgWDRmigbp24fD1hdMfQK5lw==
+"@discordjs/util@^1.1.0":
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/@discordjs/util/-/util-1.1.0.tgz#dcffd2b61aab8eadd66bea67811bc34fc769bb2a"
+  integrity sha512-IndcI5hzlNZ7GS96RV3Xw1R2kaDuXEp7tRIy/KlhidpN/BQ1qh1NZt3377dMLTa44xDUNKT7hnXkA/oUAzD/lg==
 
 "@fastify/busboy@^2.0.0":
   version "2.1.1"
@@ -981,10 +972,10 @@
   resolved "https://registry.yarnpkg.com/@sapphire/async-queue/-/async-queue-1.5.2.tgz#2982dce16e5b8b1ea792604d20c23c0585877b97"
   integrity sha512-7X7FFAA4DngXUl95+hYbUF19bp1LGiffjJtu7ygrZrbdCSsdDDBaSjB7Akw0ZbOu6k0xpXyljnJ6/RZUvLfRdg==
 
-"@sapphire/shapeshift@^3.9.3":
-  version "3.9.6"
-  resolved "https://registry.yarnpkg.com/@sapphire/shapeshift/-/shapeshift-3.9.6.tgz#bd9629c08641f5b94ae094e23f092187a3ed9a7d"
-  integrity sha512-4+Na/fxu2SEepZRb9z0dbsVh59QtwPuBg/UVaDib3av7ZY14b14+z09z6QVn0P6Dv6eOU2NDTsjIi0mbtgP56g==
+"@sapphire/shapeshift@^3.9.7":
+  version "3.9.7"
+  resolved "https://registry.yarnpkg.com/@sapphire/shapeshift/-/shapeshift-3.9.7.tgz#43e23243cac8a0c046bf1e73baf3dbf407d33a0c"
+  integrity sha512-4It2mxPSr4OGn4HSQWGmhFMsNFGfFVhWeRPCRwbH972Ek2pzfGRZtb0pJ4Ze6oIzcyh2jw7nUDa6qGlWofgd9g==
   dependencies:
     fast-deep-equal "^3.1.3"
     lodash "^4.17.21"
@@ -994,13 +985,13 @@
   resolved "https://registry.yarnpkg.com/@sapphire/snowflake/-/snowflake-3.5.3.tgz#0c102aa2ec5b34f806e9bc8625fc6a5e1d0a0c6a"
   integrity sha512-jjmJywLAFoWeBi1W7994zZyiNWPIiqRRNAmSERxyg93xRGzNYvGjlZ0gR6x0F4gPRi2+0O6S71kOZYyr3cxaIQ==
 
-"@sendgrid/client@^8.1.1":
-  version "8.1.1"
-  resolved "https://registry.yarnpkg.com/@sendgrid/client/-/client-8.1.1.tgz#5c15b59973da3e108257883e408c4afd74844248"
-  integrity sha512-pg0gYhAdyQil3Aga7/xHVcZFpvDAjAQMNBgMy5njTSkjACoWHmpSi1nWBZM7nIH/ptcRNMpnBbm9B5EvQ8fX2w==
+"@sendgrid/client@^8.1.3":
+  version "8.1.3"
+  resolved "https://registry.yarnpkg.com/@sendgrid/client/-/client-8.1.3.tgz#51fd4a318627c4b615ff98e35609e98486a3bd6f"
+  integrity sha512-mRwTticRZIdUTsnyzvlK6dMu3jni9ci9J+dW/6fMMFpGRAJdCJlivFVYQvqk8kRS3RnFzS7sf6BSmhLl1ldDhA==
   dependencies:
     "@sendgrid/helpers" "^8.0.0"
-    axios "^1.6.4"
+    axios "^1.6.8"
 
 "@sendgrid/helpers@^8.0.0":
   version "8.0.0"
@@ -1010,11 +1001,11 @@
     deepmerge "^4.2.2"
 
 "@sendgrid/mail@*":
-  version "8.1.1"
-  resolved "https://registry.yarnpkg.com/@sendgrid/mail/-/mail-8.1.1.tgz#506bc02c3a884d5c979278d6966f118afce37f93"
-  integrity sha512-tNtmgWLtBA7ZxKtPuEGOaIdEZP1vZSXsj5zg9iuoDBPVj/fNz+7LWzndvTcKumHk5eaDrS0UPXJqBm61m3+H1A==
+  version "8.1.3"
+  resolved "https://registry.yarnpkg.com/@sendgrid/mail/-/mail-8.1.3.tgz#d371cbddcd2e8ca9469a68d1ed0c6b3a5c365e5e"
+  integrity sha512-Wg5iKSUOER83/cfY6rbPa+o3ChnYzWwv1OcsR8gCV8SKi+sUPIMroildimlnb72DBkQxcbylxng1W7f0RIX7MQ==
   dependencies:
-    "@sendgrid/client" "^8.1.1"
+    "@sendgrid/client" "^8.1.3"
     "@sendgrid/helpers" "^8.0.0"
 
 "@sideway/address@^4.1.5":
@@ -1034,382 +1025,371 @@
   resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df"
   integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==
 
-"@smithy/abort-controller@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-2.2.0.tgz#18983401a5e2154b5c94057730024a7d14cbcd35"
-  integrity sha512-wRlta7GuLWpTqtFfGo+nZyOO1vEvewdNR1R4rTxpC8XU6vG/NDyrFBhwLZsqg1NUoR1noVaXJPC/7ZK47QCySw==
+"@smithy/abort-controller@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-3.0.0.tgz#5815f5d4618e14bf8d031bb98a99adabbb831168"
+  integrity sha512-p6GlFGBt9K4MYLu72YuJ523NVR4A8oHlC5M2JO6OmQqN8kAc/uh1JqLE+FizTokrSJGg0CSvC+BrsmGzKtsZKA==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/config-resolver@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-2.2.0.tgz#54f40478bb61709b396960a3535866dba5422757"
-  integrity sha512-fsiMgd8toyUba6n1WRmr+qACzXltpdDkPTAaDqc8QqPBUzO+/JKwL6bUBseHVi8tu9l+3JOK+tSf7cay+4B3LA==
+"@smithy/config-resolver@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-3.0.0.tgz#d37b31e3202c5ce54d9bd2406dcde7c7b5073cbd"
+  integrity sha512-2GzOfADwYLQugYkKQhIyZyQlM05K+tMKvRnc6eFfZcpJGRfKoMUMYdPlBKmqHwQFXQKBrGV6cxL9oymWgDzvFw==
   dependencies:
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-config-provider" "^2.3.0"
-    "@smithy/util-middleware" "^2.2.0"
-    tslib "^2.6.2"
-
-"@smithy/core@^1.4.0":
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/@smithy/core/-/core-1.4.0.tgz#5f9f86b681b9cbf23904041dad6f0531efe8375e"
-  integrity sha512-uu9ZDI95Uij4qk+L6kyFjdk11zqBkcJ3Lv0sc6jZrqHvLyr0+oeekD3CnqMafBn/5PRI6uv6ulW3kNLRBUHeVw==
-  dependencies:
-    "@smithy/middleware-endpoint" "^2.5.0"
-    "@smithy/middleware-retry" "^2.2.0"
-    "@smithy/middleware-serde" "^2.3.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-middleware" "^2.2.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-config-provider" "^3.0.0"
+    "@smithy/util-middleware" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/credential-provider-imds@^2.3.0":
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-2.3.0.tgz#326ce401b82e53f3c7ee4862a066136959a06166"
-  integrity sha512-BWB9mIukO1wjEOo1Ojgl6LrG4avcaC7T/ZP6ptmAaW4xluhSIPZhY+/PI5YKzlk+jsm+4sQZB45Bt1OfMeQa3w==
-  dependencies:
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/url-parser" "^2.2.0"
+"@smithy/core@^2.0.1":
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/@smithy/core/-/core-2.0.1.tgz#8a7ac8faa0227912ce260bc3f976a5e254323920"
+  integrity sha512-rcMkjvwxH/bER+oZUPR0yTA0ELD6m3A+d92+CFkdF6HJFCBB1bXo7P5pm21L66XwTN01B6bUhSCQ7cymWRD8zg==
+  dependencies:
+    "@smithy/middleware-endpoint" "^3.0.0"
+    "@smithy/middleware-retry" "^3.0.1"
+    "@smithy/middleware-serde" "^3.0.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-middleware" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/eventstream-codec@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-2.2.0.tgz#63d74fa817188995eb55e792a38060b0ede98dc4"
-  integrity sha512-8janZoJw85nJmQZc4L8TuePp2pk1nxLgkxIR0TUjKJ5Dkj5oelB9WtiSSGXCQvNsJl0VSTvK/2ueMXxvpa9GVw==
+"@smithy/credential-provider-imds@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-3.0.0.tgz#a290eb0224ef045742e5c806685cf63d44a084f3"
+  integrity sha512-lfmBiFQcA3FsDAPxNfY0L7CawcWtbyWsBOHo34nF095728JLkBX4Y9q/VPPE2r7fqMVK+drmDigqE2/SSQeVRA==
   dependencies:
-    "@aws-crypto/crc32" "3.0.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-hex-encoding" "^2.2.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/url-parser" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/fetch-http-handler@^2.5.0":
-  version "2.5.0"
-  resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-2.5.0.tgz#0b8e1562807fdf91fe7dd5cde620d7a03ddc10ac"
-  integrity sha512-BOWEBeppWhLn/no/JxUL/ghTfANTjT7kg3Ww2rPqTUY9R4yHPXxJ9JhMe3Z03LN3aPwiwlpDIUcVw1xDyHqEhw==
+"@smithy/fetch-http-handler@^3.0.1":
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-3.0.1.tgz#dacfdf6e70d639fac4a0f57c42ce13f0ed14ff22"
+  integrity sha512-uaH74i5BDj+rBwoQaXioKpI0SHBJFtOVwzrCpxZxphOW0ki5jhj7dXvDMYM2IJem8TpdFvS2iC08sjOblfFGFg==
   dependencies:
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/querystring-builder" "^2.2.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-base64" "^2.3.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/querystring-builder" "^3.0.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-base64" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/hash-node@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-2.2.0.tgz#df29e1e64811be905cb3577703b0e2d0b07fc5cc"
-  integrity sha512-zLWaC/5aWpMrHKpoDF6nqpNtBhlAYKF/7+9yMN7GpdR8CzohnWfGtMznPybnwSS8saaXBMxIGwJqR4HmRp6b3g==
+"@smithy/hash-node@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-3.0.0.tgz#f44b5fff193e241c1cdcc957b296b60f186f0e59"
+  integrity sha512-84qXstNemP3XS5jcof0el6+bDfjzuvhJPQTEfro3lgtbCtKgzPm3MgiS6ehXVPjeQ5+JS0HqmTz8f/RYfzHVxw==
   dependencies:
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-buffer-from" "^2.2.0"
-    "@smithy/util-utf8" "^2.3.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-buffer-from" "^3.0.0"
+    "@smithy/util-utf8" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/invalid-dependency@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-2.2.0.tgz#ee3d8980022cb5edb514ac187d159b3e773640f0"
-  integrity sha512-nEDASdbKFKPXN2O6lOlTgrEEOO9NHIeO+HVvZnkqc8h5U9g3BIhWsvzFo+UcUbliMHvKNPD/zVxDrkP1Sbgp8Q==
+"@smithy/invalid-dependency@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-3.0.0.tgz#21cb6b5203ee15321bfcc751f21f7a19536d4ae8"
+  integrity sha512-F6wBBaEFgJzj0s4KUlliIGPmqXemwP6EavgvDqYwCH40O5Xr2iMHvS8todmGVZtuJCorBkXsYLyTu4PuizVq5g==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/is-array-buffer@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz#f84f0d9f9a36601a9ca9381688bd1b726fd39111"
-  integrity sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==
+"@smithy/is-array-buffer@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-3.0.0.tgz#9a95c2d46b8768946a9eec7f935feaddcffa5e7a"
+  integrity sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==
   dependencies:
     tslib "^2.6.2"
 
-"@smithy/middleware-content-length@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-2.2.0.tgz#a82e97bd83d8deab69e07fea4512563bedb9461a"
-  integrity sha512-5bl2LG1Ah/7E5cMSC+q+h3IpVHMeOkG0yLRyQT1p2aMJkSrZG7RlXHPuAgb7EyaFeidKEnnd/fNaLLaKlHGzDQ==
+"@smithy/middleware-content-length@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-3.0.0.tgz#084b3d22248967885d496eb0b105d9090e8ababd"
+  integrity sha512-3C4s4d/iGobgCtk2tnWW6+zSTOBg1PRAm2vtWZLdriwTroFbbWNSr3lcyzHdrQHnEXYCC5K52EbpfodaIUY8sg==
   dependencies:
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/types" "^2.12.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/middleware-endpoint@^2.5.0":
-  version "2.5.0"
-  resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-2.5.0.tgz#9f1459e9b4cbf00fadfd99e98f88d4b1a2aeb987"
-  integrity sha512-OBhI9ZEAG8Xen0xsFJwwNOt44WE2CWkfYIxTognC8x42Lfsdf0VN/wCMqpdkySMDio/vts10BiovAxQp0T0faA==
-  dependencies:
-    "@smithy/middleware-serde" "^2.3.0"
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/shared-ini-file-loader" "^2.4.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/url-parser" "^2.2.0"
-    "@smithy/util-middleware" "^2.2.0"
+"@smithy/middleware-endpoint@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-3.0.0.tgz#54c9e1bd8f35b7d004c803eaf3702e61e32b8295"
+  integrity sha512-aXOAWztw/5qAfp0NcA2OWpv6ZI/E+Dh9mByif7i91D/0iyYNUcKvskmXiowKESFkuZ7PIMd3VOR4fTibZDs2OQ==
+  dependencies:
+    "@smithy/middleware-serde" "^3.0.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/shared-ini-file-loader" "^3.0.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/url-parser" "^3.0.0"
+    "@smithy/util-middleware" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/middleware-retry@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-2.2.0.tgz#ff48ac01ad57394eeea15a0146a86079cf6364b7"
-  integrity sha512-PsjDOLpbevgn37yJbawmfVoanru40qVA8UEf2+YA1lvOefmhuhL6ZbKtGsLAWDRnE1OlAmedsbA/htH6iSZjNA==
-  dependencies:
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/service-error-classification" "^2.1.5"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-middleware" "^2.2.0"
-    "@smithy/util-retry" "^2.2.0"
+"@smithy/middleware-retry@^3.0.1":
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-3.0.1.tgz#167b75e9b79395f11a799f22030eaaf7d40da410"
+  integrity sha512-hBhSEuL841FhJBK/19WpaGk5YWSzFk/P2UaVjANGKRv3eYNO8Y1lANWgqnuPWjOyCEWMPr58vELFDWpxvRKANw==
+  dependencies:
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/service-error-classification" "^3.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-middleware" "^3.0.0"
+    "@smithy/util-retry" "^3.0.0"
     tslib "^2.6.2"
-    uuid "^8.3.2"
+    uuid "^9.0.1"
 
-"@smithy/middleware-serde@^2.3.0":
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-2.3.0.tgz#a7615ba646a88b6f695f2d55de13d8158181dd13"
-  integrity sha512-sIADe7ojwqTyvEQBe1nc/GXB9wdHhi9UwyX0lTyttmUWDJLP655ZYE1WngnNyXREme8I27KCaUhyhZWRXL0q7Q==
+"@smithy/middleware-serde@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-3.0.0.tgz#786da6a6bc0e5e51d669dac834c19965245dd302"
+  integrity sha512-I1vKG1foI+oPgG9r7IMY1S+xBnmAn1ISqployvqkwHoSb8VPsngHDTOgYGYBonuOKndaWRUGJZrKYYLB+Ane6w==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/middleware-stack@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-2.2.0.tgz#3fb49eae6313f16f6f30fdaf28e11a7321f34d9f"
-  integrity sha512-Qntc3jrtwwrsAC+X8wms8zhrTr0sFXnyEGhZd9sLtsJ/6gGQKFzNB+wWbOcpJd7BR8ThNCoKt76BuQahfMvpeA==
+"@smithy/middleware-stack@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-3.0.0.tgz#00f112bae7af5fc3bd37d4fab95ebce0f17a7774"
+  integrity sha512-+H0jmyfAyHRFXm6wunskuNAqtj7yfmwFB6Fp37enytp2q047/Od9xetEaUbluyImOlGnGpaVGaVfjwawSr+i6Q==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/node-config-provider@^2.3.0":
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-2.3.0.tgz#9fac0c94a14c5b5b8b8fa37f20c310a844ab9922"
-  integrity sha512-0elK5/03a1JPWMDPaS726Iw6LpQg80gFut1tNpPfxFuChEEklo2yL823V94SpTZTxmKlXFtFgsP55uh3dErnIg==
+"@smithy/node-config-provider@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-3.0.0.tgz#4cd5dcf6132c75d6a582fcd6243482dac703865a"
+  integrity sha512-buqfaSdDh0zo62EPLf8rGDvcpKwGpO5ho4bXS2cdFhlOta7tBkWJt+O5uiaAeICfIOfPclNOndshDNSanX2X9g==
   dependencies:
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/shared-ini-file-loader" "^2.4.0"
-    "@smithy/types" "^2.12.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/shared-ini-file-loader" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/node-http-handler@^2.5.0":
-  version "2.5.0"
-  resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-2.5.0.tgz#7b5e0565dd23d340380489bd5fe4316d2bed32de"
-  integrity sha512-mVGyPBzkkGQsPoxQUbxlEfRjrj6FPyA3u3u2VXGr9hT8wilsoQdZdvKpMBFMB8Crfhv5dNkKHIW0Yyuc7eABqA==
+"@smithy/node-http-handler@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-3.0.0.tgz#e771ea95d03e259f04b7b37e8aece8a4fffc8cdc"
+  integrity sha512-3trD4r7NOMygwLbUJo4eodyQuypAWr7uvPnebNJ9a70dQhVn+US8j/lCnvoJS6BXfZeF7PkkkI0DemVJw+n+eQ==
   dependencies:
-    "@smithy/abort-controller" "^2.2.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/querystring-builder" "^2.2.0"
-    "@smithy/types" "^2.12.0"
+    "@smithy/abort-controller" "^3.0.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/querystring-builder" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/property-provider@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-2.2.0.tgz#37e3525a3fa3e11749f86a4f89f0fd7765a6edb0"
-  integrity sha512-+xiil2lFhtTRzXkx8F053AV46QnIw6e7MV8od5Mi68E1ICOjCeCHw2XfLnDEUHnT9WGUIkwcqavXjfwuJbGlpg==
+"@smithy/property-provider@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-3.0.0.tgz#ef7a26557c855cc1471b9aa0e05529183e99b978"
+  integrity sha512-LmbPgHBswdXCrkWWuUwBm9w72S2iLWyC/5jet9/Y9cGHtzqxi+GVjfCfahkvNV4KXEwgnH8EMpcrD9RUYe0eLQ==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/protocol-http@^3.3.0":
-  version "3.3.0"
-  resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-3.3.0.tgz#a37df7b4bb4960cdda560ce49acfd64c455e4090"
-  integrity sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==
+"@smithy/protocol-http@^4.0.0":
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-4.0.0.tgz#04df3b5674b540323f678e7c4113e8abd8b26432"
+  integrity sha512-qOQZOEI2XLWRWBO9AgIYuHuqjZ2csyr8/IlgFDHDNuIgLAMRx2Bl8ck5U5D6Vh9DPdoaVpuzwWMa0xcdL4O/AQ==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/querystring-builder@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-2.2.0.tgz#22937e19fcd0aaa1a3e614ef8cb6f8e86756a4ef"
-  integrity sha512-L1kSeviUWL+emq3CUVSgdogoM/D9QMFaqxL/dd0X7PCNWmPXqt+ExtrBjqT0V7HLN03Vs9SuiLrG3zy3JGnE5A==
+"@smithy/querystring-builder@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-3.0.0.tgz#48a9aa7b700e8409368c21bc0adf7564e001daea"
+  integrity sha512-bW8Fi0NzyfkE0TmQphDXr1AmBDbK01cA4C1Z7ggwMAU5RDz5AAv/KmoRwzQAS0kxXNf/D2ALTEgwK0U2c4LtRg==
   dependencies:
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-uri-escape" "^2.2.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-uri-escape" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/querystring-parser@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-2.2.0.tgz#24a5633f4b3806ff2888d4c2f4169e105fdffd79"
-  integrity sha512-BvHCDrKfbG5Yhbpj4vsbuPV2GgcpHiAkLeIlcA1LtfpMz3jrqizP1+OguSNSj1MwBHEiN+jwNisXLGdajGDQJA==
+"@smithy/querystring-parser@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-3.0.0.tgz#fa1ed0cee408cd4d622070fa874bc50ac1a379b7"
+  integrity sha512-UzHwthk0UEccV4dHzPySnBy34AWw3V9lIqUTxmozQ+wPDAO9csCWMfOLe7V9A2agNYy7xE+Pb0S6K/J23JSzfQ==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/service-error-classification@^2.1.5":
-  version "2.1.5"
-  resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-2.1.5.tgz#0568a977cc0db36299d8703a5d8609c1f600c005"
-  integrity sha512-uBDTIBBEdAQryvHdc5W8sS5YX7RQzF683XrHePVdFmAgKiMofU15FLSM0/HU03hKTnazdNRFa0YHS7+ArwoUSQ==
+"@smithy/service-error-classification@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-3.0.0.tgz#06a45cb91b15b8b0d5f3b1df2b3743d2ca42f5c4"
+  integrity sha512-3BsBtOUt2Gsnc3X23ew+r2M71WwtpHfEDGhHYHSDg6q1t8FrWh15jT25DLajFV1H+PpxAJ6gqe9yYeRUsmSdFA==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
 
-"@smithy/shared-ini-file-loader@^2.4.0":
-  version "2.4.0"
-  resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.4.0.tgz#1636d6eb9bff41e36ac9c60364a37fd2ffcb9947"
-  integrity sha512-WyujUJL8e1B6Z4PBfAqC/aGY1+C7T0w20Gih3yrvJSk97gpiVfB+y7c46T4Nunk+ZngLq0rOIdeVeIklk0R3OA==
+"@smithy/shared-ini-file-loader@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.0.0.tgz#8739b7cd24f55fb4e276a74f00f0c2bb4e3f25d8"
+  integrity sha512-REVw6XauXk8xE4zo5aGL7Rz4ywA8qNMUn8RtWeTRQsgAlmlvbJ7CEPBcaXU2NDC3AYBgYAXrGyWD8XrN8UGDog==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/signature-v4@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-2.2.0.tgz#8fe6a574188b71fba6056111b88d50c84babb060"
-  integrity sha512-+B5TNzj/fRZzVW3z8UUJOkNx15+4E0CLuvJmJUA1JUIZFp3rdJ/M2H5r2SqltaVPXL0oIxv/6YK92T9TsFGbFg==
-  dependencies:
-    "@smithy/eventstream-codec" "^2.2.0"
-    "@smithy/is-array-buffer" "^2.2.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-hex-encoding" "^2.2.0"
-    "@smithy/util-middleware" "^2.2.0"
-    "@smithy/util-uri-escape" "^2.2.0"
-    "@smithy/util-utf8" "^2.3.0"
+"@smithy/signature-v4@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-3.0.0.tgz#f536d0abebfeeca8e9aab846a4042658ca07d3b7"
+  integrity sha512-kXFOkNX+BQHe2qnLxpMEaCRGap9J6tUGLzc3A9jdn+nD4JdMwCKTJ+zFwQ20GkY+mAXGatyTw3HcoUlR39HwmA==
+  dependencies:
+    "@smithy/is-array-buffer" "^3.0.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-hex-encoding" "^3.0.0"
+    "@smithy/util-middleware" "^3.0.0"
+    "@smithy/util-uri-escape" "^3.0.0"
+    "@smithy/util-utf8" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/smithy-client@^2.5.0":
-  version "2.5.0"
-  resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-2.5.0.tgz#8de4fff221d232dda34a8e706d6a4f2911dffe2e"
-  integrity sha512-DDXWHWdimtS3y/Kw1Jo46KQ0ZYsDKcldFynQERUGBPDpkW1lXOTHy491ALHjwfiBQvzsVKVxl5+ocXNIgJuX4g==
-  dependencies:
-    "@smithy/middleware-endpoint" "^2.5.0"
-    "@smithy/middleware-stack" "^2.2.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-stream" "^2.2.0"
+"@smithy/smithy-client@^3.0.1":
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-3.0.1.tgz#c440473f6fb5dfbe86eaf015565fc56f66533bb4"
+  integrity sha512-KAiFY4Y4jdHxR+4zerH/VBhaFKM8pbaVmJZ/CWJRwtM/CmwzTfXfvYwf6GoUwiHepdv+lwiOXCuOl6UBDUEINw==
+  dependencies:
+    "@smithy/middleware-endpoint" "^3.0.0"
+    "@smithy/middleware-stack" "^3.0.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-stream" "^3.0.1"
     tslib "^2.6.2"
 
-"@smithy/types@^2.12.0":
-  version "2.12.0"
-  resolved "https://registry.yarnpkg.com/@smithy/types/-/types-2.12.0.tgz#c44845f8ba07e5e8c88eda5aed7e6a0c462da041"
-  integrity sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==
+"@smithy/types@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/types/-/types-3.0.0.tgz#00231052945159c64ffd8b91e8909d8d3006cb7e"
+  integrity sha512-VvWuQk2RKFuOr98gFhjca7fkBS+xLLURT8bUjk5XQoV0ZLm7WPwWPPY3/AwzTLuUBDeoKDCthfe1AsTUWaSEhw==
   dependencies:
     tslib "^2.6.2"
 
-"@smithy/url-parser@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-2.2.0.tgz#6fcda6116391a4f61fef5580eb540e128359b3c0"
-  integrity sha512-hoA4zm61q1mNTpksiSWp2nEl1dt3j726HdRhiNgVJQMj7mLp7dprtF57mOB6JvEk/x9d2bsuL5hlqZbBuHQylQ==
+"@smithy/url-parser@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-3.0.0.tgz#5fdc77cd22051c1aac6531be0315bfcba0fa705d"
+  integrity sha512-2XLazFgUu+YOGHtWihB3FSLAfCUajVfNBXGGYjOaVKjLAuAxx3pSBY3hBgLzIgB17haf59gOG3imKqTy8mcrjw==
   dependencies:
-    "@smithy/querystring-parser" "^2.2.0"
-    "@smithy/types" "^2.12.0"
+    "@smithy/querystring-parser" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/util-base64@^2.3.0":
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-2.3.0.tgz#312dbb4d73fb94249c7261aee52de4195c2dd8e2"
-  integrity sha512-s3+eVwNeJuXUwuMbusncZNViuhv2LjVJ1nMwTqSA0XAC7gjKhqqxRdJPhR8+YrkoZ9IiIbFk/yK6ACe/xlF+hw==
+"@smithy/util-base64@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-3.0.0.tgz#f7a9a82adf34e27a72d0719395713edf0e493017"
+  integrity sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==
   dependencies:
-    "@smithy/util-buffer-from" "^2.2.0"
-    "@smithy/util-utf8" "^2.3.0"
+    "@smithy/util-buffer-from" "^3.0.0"
+    "@smithy/util-utf8" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/util-body-length-browser@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-2.2.0.tgz#25620645c6b62b42594ef4a93b66e6ab70e27d2c"
-  integrity sha512-dtpw9uQP7W+n3vOtx0CfBD5EWd7EPdIdsQnWTDoFf77e3VUf05uA7R7TGipIo8e4WL2kuPdnsr3hMQn9ziYj5w==
+"@smithy/util-body-length-browser@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-3.0.0.tgz#86ec2f6256310b4845a2f064e2f571c1ca164ded"
+  integrity sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==
   dependencies:
     tslib "^2.6.2"
 
-"@smithy/util-body-length-node@^2.3.0":
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-2.3.0.tgz#d065a9b5e305ff899536777bbfe075cdc980136f"
-  integrity sha512-ITWT1Wqjubf2CJthb0BuT9+bpzBfXeMokH/AAa5EJQgbv9aPMVfnM76iFIZVFf50hYXGbtiV71BHAthNWd6+dw==
+"@smithy/util-body-length-node@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-3.0.0.tgz#99a291bae40d8932166907fe981d6a1f54298a6d"
+  integrity sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==
   dependencies:
     tslib "^2.6.2"
 
-"@smithy/util-buffer-from@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz#6fc88585165ec73f8681d426d96de5d402021e4b"
-  integrity sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==
+"@smithy/util-buffer-from@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-3.0.0.tgz#559fc1c86138a89b2edaefc1e6677780c24594e3"
+  integrity sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==
   dependencies:
-    "@smithy/is-array-buffer" "^2.2.0"
+    "@smithy/is-array-buffer" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/util-config-provider@^2.3.0":
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-2.3.0.tgz#bc79f99562d12a1f8423100ca662a6fb07cde943"
-  integrity sha512-HZkzrRcuFN1k70RLqlNK4FnPXKOpkik1+4JaBoHNJn+RnJGYqaa3c5/+XtLOXhlKzlRgNvyaLieHTW2VwGN0VQ==
+"@smithy/util-config-provider@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-3.0.0.tgz#62c6b73b22a430e84888a8f8da4b6029dd5b8efe"
+  integrity sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==
   dependencies:
     tslib "^2.6.2"
 
-"@smithy/util-defaults-mode-browser@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.2.0.tgz#963a9d3c3351272764dd1c5dc07c26f2c8abcb02"
-  integrity sha512-2okTdZaCBvOJszAPU/KSvlimMe35zLOKbQpHhamFJmR7t95HSe0K3C92jQPjKY3PmDBD+7iMkOnuW05F5OlF4g==
+"@smithy/util-defaults-mode-browser@^3.0.1":
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.1.tgz#0ba33ec90f6dd311599bed3a3dd604f3adba9acd"
+  integrity sha512-nW5kEzdJn1Bn5TF+gOPHh2rcPli8JU9vSSXLbfg7uPnfR1TMRQqs9zlYRhIb87NeSxIbpdXOI94tvXSy+fvDYg==
   dependencies:
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
     bowser "^2.11.0"
     tslib "^2.6.2"
 
-"@smithy/util-defaults-mode-node@^2.3.0":
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.3.0.tgz#5005058ca0a299f0948b47c288f7c3d4f36cb26e"
-  integrity sha512-hfKXnNLmsW9cmLb/JXKIvtuO6Cf4SuqN5PN1C2Ru/TBIws+m1wSgb+A53vo0r66xzB6E82inKG2J7qtwdi+Kkw==
-  dependencies:
-    "@smithy/config-resolver" "^2.2.0"
-    "@smithy/credential-provider-imds" "^2.3.0"
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
+"@smithy/util-defaults-mode-node@^3.0.1":
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.1.tgz#71242a6978240a6f559445d4cc26f2cce91c90e1"
+  integrity sha512-TFk+Qb+elLc/MOhtSp+50fstyfZ6avQbgH2d96xUBpeScu+Al9elxv+UFAjaTHe0HQe5n+wem8ZLpXvU8lwV6Q==
+  dependencies:
+    "@smithy/config-resolver" "^3.0.0"
+    "@smithy/credential-provider-imds" "^3.0.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/util-endpoints@^1.2.0":
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-1.2.0.tgz#b8b805f47e8044c158372f69b88337703117665d"
-  integrity sha512-BuDHv8zRjsE5zXd3PxFXFknzBG3owCpjq8G3FcsXW3CykYXuEqM3nTSsmLzw5q+T12ZYuDlVUZKBdpNbhVtlrQ==
+"@smithy/util-endpoints@^2.0.0":
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-2.0.0.tgz#5a16a723c1220f536a9b1b3e01787e69e77b6f12"
+  integrity sha512-+exaXzEY3DNt2qtA2OtRNSDlVrE4p32j1JSsQkzA5AdP0YtJNjkYbYhJxkFmPYcjI1abuwopOZCwUmv682QkiQ==
   dependencies:
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/types" "^2.12.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/util-hex-encoding@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-2.2.0.tgz#87edb7c88c2f422cfca4bb21f1394ae9602c5085"
-  integrity sha512-7iKXR+/4TpLK194pVjKiasIyqMtTYJsgKgM242Y9uzt5dhHnUDvMNb+3xIhRJ9QhvqGii/5cRUt4fJn3dtXNHQ==
+"@smithy/util-hex-encoding@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-3.0.0.tgz#32938b33d5bf2a15796cd3f178a55b4155c535e6"
+  integrity sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==
   dependencies:
     tslib "^2.6.2"
 
-"@smithy/util-middleware@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-2.2.0.tgz#80cfad40f6cca9ffe42a5899b5cb6abd53a50006"
-  integrity sha512-L1qpleXf9QD6LwLCJ5jddGkgWyuSvWBkJwWAZ6kFkdifdso+sk3L3O1HdmPvCdnCK3IS4qWyPxev01QMnfHSBw==
+"@smithy/util-middleware@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-3.0.0.tgz#64d775628b99a495ca83ce982f5c83aa45f1e894"
+  integrity sha512-q5ITdOnV2pXHSVDnKWrwgSNTDBAMHLptFE07ua/5Ty5WJ11bvr0vk2a7agu7qRhrCFRQlno5u3CneU5EELK+DQ==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/util-retry@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-2.2.0.tgz#e8e019537ab47ba6b2e87e723ec51ee223422d85"
-  integrity sha512-q9+pAFPTfftHXRytmZ7GzLFFrEGavqapFc06XxzZFcSIGERXMerXxCitjOG1prVDR9QdjqotF40SWvbqcCpf8g==
+"@smithy/util-retry@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-3.0.0.tgz#8a0c47496aab74e1dfde4905d462ad636a8824bb"
+  integrity sha512-nK99bvJiziGv/UOKJlDvFF45F00WgPLKVIGUfAK+mDhzVN2hb/S33uW2Tlhg5PVBoqY7tDVqL0zmu4OxAHgo9g==
   dependencies:
-    "@smithy/service-error-classification" "^2.1.5"
-    "@smithy/types" "^2.12.0"
+    "@smithy/service-error-classification" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/util-stream@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-2.2.0.tgz#b1279e417992a0f74afa78d7501658f174ed7370"
-  integrity sha512-17faEXbYWIRst1aU9SvPZyMdWmqIrduZjVOqCPMIsWFNxs5yQQgFrJL6b2SdiCzyW9mJoDjFtgi53xx7EH+BXA==
-  dependencies:
-    "@smithy/fetch-http-handler" "^2.5.0"
-    "@smithy/node-http-handler" "^2.5.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-base64" "^2.3.0"
-    "@smithy/util-buffer-from" "^2.2.0"
-    "@smithy/util-hex-encoding" "^2.2.0"
-    "@smithy/util-utf8" "^2.3.0"
+"@smithy/util-stream@^3.0.1":
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-3.0.1.tgz#3cf527bcd3fec82c231c38d47dd75f3364747edb"
+  integrity sha512-7F7VNNhAsfMRA8I986YdOY5fE0/T1/ZjFF6OLsqkvQVNP3vZ/szYDfGCyphb7ioA09r32K/0qbSFfNFU68aSzA==
+  dependencies:
+    "@smithy/fetch-http-handler" "^3.0.1"
+    "@smithy/node-http-handler" "^3.0.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-base64" "^3.0.0"
+    "@smithy/util-buffer-from" "^3.0.0"
+    "@smithy/util-hex-encoding" "^3.0.0"
+    "@smithy/util-utf8" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/util-uri-escape@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-2.2.0.tgz#56f5764051a33b67bc93fdd2a869f971b0635406"
-  integrity sha512-jtmJMyt1xMD/d8OtbVJ2gFZOSKc+ueYJZPW20ULW1GOp/q/YIM0wNh+u8ZFao9UaIGz4WoPW8hC64qlWLIfoDA==
+"@smithy/util-uri-escape@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-3.0.0.tgz#e43358a78bf45d50bb736770077f0f09195b6f54"
+  integrity sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==
   dependencies:
     tslib "^2.6.2"
 
-"@smithy/util-utf8@^2.3.0":
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-2.3.0.tgz#dd96d7640363259924a214313c3cf16e7dd329c5"
-  integrity sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==
+"@smithy/util-utf8@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-3.0.0.tgz#1a6a823d47cbec1fd6933e5fc87df975286d9d6a"
+  integrity sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==
   dependencies:
-    "@smithy/util-buffer-from" "^2.2.0"
+    "@smithy/util-buffer-from" "^3.0.0"
     tslib "^2.6.2"
 
 "@tokenizer/token@^0.3.0":
@@ -1440,9 +1420,9 @@
     "@types/node" "*"
 
 "@types/node@*":
-  version "20.11.30"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.30.tgz#9c33467fc23167a347e73834f788f4b9f399d66f"
-  integrity sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==
+  version "20.12.12"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.12.tgz#7cbecdf902085cec634fdb362172dfe12b8f2050"
+  integrity sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==
   dependencies:
     undici-types "~5.26.4"
 
@@ -2046,9 +2026,9 @@ agent-base@6, agent-base@^6.0.2:
     debug "4"
 
 agent-base@^7.0.2:
-  version "7.1.0"
-  resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434"
-  integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==
+  version "7.1.1"
+  resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.1.tgz#bdbded7dfb096b751a2a087eeeb9664725b2e317"
+  integrity sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==
   dependencies:
     debug "^4.3.4"
 
@@ -2525,9 +2505,9 @@ aws-sign@~0.3.0:
   integrity sha512-pEMJAknifcXqXqYVXzGPIu8mJvxtJxIdpVpAs8HNS+paT+9srRUDMQn+3hULS7WbLmttcmvgMvnDcFujqXJyPw==
 
 aws4@^1.12.0, aws4@^1.8.0:
-  version "1.12.0"
-  resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3"
-  integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==
+  version "1.13.0"
+  resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.13.0.tgz#d9b802e9bb9c248d7be5f7f5ef178dc3684e9dcc"
+  integrity sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==
 
 axios@0.26.1, axios@^0.26.1:
   version "0.26.1"
@@ -2551,10 +2531,10 @@ axios@^0.27.2:
     follow-redirects "^1.14.9"
     form-data "^4.0.0"
 
-axios@^1.6.4:
-  version "1.6.8"
-  resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.8.tgz#66d294951f5d988a00e87a0ffb955316a619ea66"
-  integrity sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==
+axios@^1.6.8:
+  version "1.7.2"
+  resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.2.tgz#b625db8a7051fbea61c35a3cbb3a1daa7b9c7621"
+  integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==
   dependencies:
     follow-redirects "^1.15.6"
     form-data "^4.0.0"
@@ -3192,24 +3172,6 @@ bn.js@^4.0.0:
   resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
   integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
 
-body-parser@1.20.1:
-  version "1.20.1"
-  resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668"
-  integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==
-  dependencies:
-    bytes "3.1.2"
-    content-type "~1.0.4"
-    debug "2.6.9"
-    depd "2.0.0"
-    destroy "1.2.0"
-    http-errors "2.0.0"
-    iconv-lite "0.4.24"
-    on-finished "2.4.1"
-    qs "6.11.0"
-    raw-body "2.5.1"
-    type-is "~1.6.18"
-    unpipe "1.0.0"
-
 body-parser@1.20.2:
   version "1.20.2"
   resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd"
@@ -3280,12 +3242,12 @@ braces@^2.3.1:
     split-string "^3.0.2"
     to-regex "^3.0.1"
 
-braces@^3.0.2, braces@~3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
-  integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+braces@^3.0.3, braces@~3.0.2:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
+  integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
   dependencies:
-    fill-range "^7.0.1"
+    fill-range "^7.1.1"
 
 brotli@^1.3.3:
   version "1.3.3"
@@ -3492,9 +3454,9 @@ camelcase@^5.0.0:
   integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
 
 caniuse-lite@^1.0.30001587:
-  version "1.0.30001600"
-  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz#93a3ee17a35aa6a9f0c6ef1b2ab49507d1ab9079"
-  integrity sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==
+  version "1.0.30001621"
+  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001621.tgz#4adcb443c8b9c8303e04498318f987616b8fea2e"
+  integrity sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA==
 
 caseless@~0.12.0:
   version "0.12.0"
@@ -3886,10 +3848,10 @@ commander@^2.11.0, commander@^2.19.0:
   resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
   integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
 
-commander@^4.0.1:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
-  integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
+commander@^6.2.0:
+  version "6.2.1"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
+  integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
 
 common-sequence@^1.0.2:
   version "1.0.2"
@@ -3961,6 +3923,11 @@ config-master@^2.0.4:
     feature-detect-es6 "^1.3.1"
     walk-back "^2.0.1"
 
+connect-flash@*:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/connect-flash/-/connect-flash-0.1.1.tgz#d8630f26d95a7f851f9956b1e8cc6732f3b6aa30"
+  integrity sha512-2rcfELQt/ZMP+SM/pG8PyhJRaLKp+6Hk2IUBNkEit09X+vwn3QsAL3ZbYtxUn7NVPzbMTSLRDhqe0B/eh30RYA==
+
 console-control-strings@^1.0.0, console-control-strings@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
@@ -4008,10 +3975,10 @@ cookie-signature@1.0.6:
   resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
   integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
 
-cookie@0.5.0:
-  version "0.5.0"
-  resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b"
-  integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==
+cookie@0.6.0:
+  version "0.6.0"
+  resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051"
+  integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==
 
 cookies@0.8.0:
   version "0.8.0"
@@ -4032,9 +3999,9 @@ core-js@^2.0.1, core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0:
   integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
 
 core-js@^3.30.2:
-  version "3.36.1"
-  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.36.1.tgz#c97a7160ebd00b2de19e62f4bbd3406ab720e578"
-  integrity sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==
+  version "3.37.1"
+  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.37.1.tgz#d21751ddb756518ac5a00e4d66499df981a62db9"
+  integrity sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==
 
 core-util-is@1.0.2:
   version "1.0.2"
@@ -4058,12 +4025,12 @@ cp-file@^6.2.0:
     safe-buffer "^5.0.1"
 
 cpu-features@~0.0.9:
-  version "0.0.9"
-  resolved "https://registry.yarnpkg.com/cpu-features/-/cpu-features-0.0.9.tgz#5226b92f0f1c63122b0a3eb84cb8335a4de499fc"
-  integrity sha512-AKjgn2rP2yJyfbepsmLfiYcmtNn/2eUvocUyM/09yB0YDiz39HteK/5/T4Onf0pmdYDMgkBoGvRLvEguzyL7wQ==
+  version "0.0.10"
+  resolved "https://registry.yarnpkg.com/cpu-features/-/cpu-features-0.0.10.tgz#9aae536db2710c7254d7ed67cb3cbc7d29ad79c5"
+  integrity sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA==
   dependencies:
     buildcheck "~0.0.6"
-    nan "^2.17.0"
+    nan "^2.19.0"
 
 crc-32@^1.2.0:
   version "1.2.2"
@@ -4207,9 +4174,9 @@ dateformat@~4.6.2:
   integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==
 
 dayjs@^1.11.9:
-  version "1.11.10"
-  resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0"
-  integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==
+  version "1.11.11"
+  resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.11.tgz#dfe0e9d54c5f8b68ccf8ca5f72ac603e7e5ed59e"
+  integrity sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==
 
 ddata@~0.1.25:
   version "0.1.28"
@@ -4292,7 +4259,7 @@ define-data-property@^1.0.1, define-data-property@^1.1.4:
     es-errors "^1.3.0"
     gopd "^1.0.1"
 
-define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1:
+define-properties@^1.2.0, define-properties@^1.2.1:
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c"
   integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==
@@ -4389,15 +4356,15 @@ dir_cache@^1.0.1:
     minify-js "0.0.2"
     utils-igor "^1.0.4"
 
-discord-api-types@0.37.61:
-  version "0.37.61"
-  resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.61.tgz#9dd8e58c624237e6f1b23be2d29579af268b8c5b"
-  integrity sha512-o/dXNFfhBpYHpQFdT6FWzeO7pKc838QeeZ9d91CfVAtpr5XLK4B/zYxQbYgPdoMiTDvJfzcsLW5naXgmHGDNXw==
+discord-api-types@0.37.83:
+  version "0.37.83"
+  resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.83.tgz#a22a799729ceded8176ea747157837ddf4708b1f"
+  integrity sha512-urGGYeWtWNYMKnYlZnOnDHm8fVRffQs3U0SpE8RHeiuLKb/u92APS8HoQnPTFbnXmY1vVnXjXO4dOxcAn3J+DA==
 
 discord-api-types@^0.37.12, discord-api-types@^0.37.41:
-  version "0.37.76"
-  resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.76.tgz#699c088dee348bc865f599ef2229b433638c37a0"
-  integrity sha512-GQI02JvBVl9+WQiMmyc/OFuJ4bBBf2VWb6NjPBnzrrdF2D/2S07mA1ZCd5+IhHRjU8wQ83c/hmjj9nn1+r/K9g==
+  version "0.37.85"
+  resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.85.tgz#302f7ee8e4880b41eff84ce1dc1c210247434b81"
+  integrity sha512-T75aB9JEw9X0rlMChEMHbr9JlXMqdmdKiZVjBeKs91cJo28IuAIldj+VZoC+I+Q9gCaRjHlwRkcksy2XZY6c3A==
 
 discord.js@14.6.0:
   version "14.6.0"
@@ -4507,9 +4474,9 @@ ee-first@1.1.1:
   integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
 
 electron-to-chromium@^1.4.668:
-  version "1.4.715"
-  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.715.tgz#bb16bcf2a3537962fccfa746b5c98c5f7404ff46"
-  integrity sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg==
+  version "1.4.783"
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.783.tgz#933887165b8b6025a81663d2d97cf4b85cde27b2"
+  integrity sha512-bT0jEz/Xz1fahQpbZ1D7LgmPYZ3iHVY39NcWWro1+hA2IvjiPeaXtfSqrQ+nXjApMvQRE2ASt1itSLRrebHMRQ==
 
 emoji-regex@^7.0.1:
   version "7.0.3"
@@ -4578,9 +4545,9 @@ error-ex@^1.2.0, error-ex@^1.3.1:
     is-arrayish "^0.2.1"
 
 es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2:
-  version "1.23.2"
-  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.2.tgz#693312f3940f967b8dd3eebacb590b01712622e0"
-  integrity sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==
+  version "1.23.3"
+  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0"
+  integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==
   dependencies:
     array-buffer-byte-length "^1.0.1"
     arraybuffer.prototype.slice "^1.0.3"
@@ -4621,11 +4588,11 @@ es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23
     safe-regex-test "^1.0.3"
     string.prototype.trim "^1.2.9"
     string.prototype.trimend "^1.0.8"
-    string.prototype.trimstart "^1.0.7"
+    string.prototype.trimstart "^1.0.8"
     typed-array-buffer "^1.0.2"
     typed-array-byte-length "^1.0.1"
     typed-array-byte-offset "^1.0.2"
-    typed-array-length "^1.0.5"
+    typed-array-length "^1.0.6"
     unbox-primitive "^1.0.2"
     which-typed-array "^1.1.15"
 
@@ -4671,7 +4638,7 @@ es-to-primitive@^1.2.1:
     is-date-object "^1.0.1"
     is-symbol "^1.0.2"
 
-es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@^0.10.62, es5-ext@^0.10.64, es5-ext@~0.10.14:
+es5-ext@^0.10.35, es5-ext@^0.10.62, es5-ext@^0.10.63, es5-ext@^0.10.64, es5-ext@~0.10.14:
   version "0.10.64"
   resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.64.tgz#12e4ffb48f1ba2ea777f1fcdd1918ef73ea21714"
   integrity sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==
@@ -4703,7 +4670,7 @@ es6-symbol@^3.1.1, es6-symbol@^3.1.3:
     d "^1.0.2"
     ext "^1.7.0"
 
-escalade@^3.1.1:
+escalade@^3.1.2:
   version "3.1.2"
   resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27"
   integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==
@@ -4834,17 +4801,17 @@ express-ws@4.0.0:
   dependencies:
     ws "^5.2.0"
 
-express@4.18.2:
-  version "4.18.2"
-  resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59"
-  integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==
+express@4.19.2:
+  version "4.19.2"
+  resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465"
+  integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==
   dependencies:
     accepts "~1.3.8"
     array-flatten "1.1.1"
-    body-parser "1.20.1"
+    body-parser "1.20.2"
     content-disposition "0.5.4"
     content-type "~1.0.4"
-    cookie "0.5.0"
+    cookie "0.6.0"
     cookie-signature "1.0.6"
     debug "2.6.9"
     depd "2.0.0"
@@ -4952,9 +4919,9 @@ fast-xml-parser@4.2.5:
     strnum "^1.0.5"
 
 fast-xml-parser@^4.2.4:
-  version "4.3.6"
-  resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.3.6.tgz#190f9d99097f0c8f2d3a0e681a10404afca052ff"
-  integrity sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==
+  version "4.4.0"
+  resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz#341cc98de71e9ba9e651a67f41f1752d1441a501"
+  integrity sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==
   dependencies:
     strnum "^1.0.5"
 
@@ -5064,10 +5031,10 @@ fill-range@^4.0.0:
     repeat-string "^1.6.1"
     to-regex-range "^2.1.0"
 
-fill-range@^7.0.1:
-  version "7.0.1"
-  resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
-  integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+fill-range@^7.1.1:
+  version "7.1.1"
+  resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
+  integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
   dependencies:
     to-regex-range "^5.0.1"
 
@@ -5365,14 +5332,15 @@ gauge@^4.0.3:
     wide-align "^1.1.5"
 
 gaxios@^6.0.0, gaxios@^6.0.3, gaxios@^6.1.1:
-  version "6.3.0"
-  resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-6.3.0.tgz#5cd858de47c6560caaf0f99bb5d89c5bdfbe9034"
-  integrity sha512-p+ggrQw3fBwH2F5N/PAI4k/G/y1art5OxKpb2J2chwNNHM4hHuAOtivjPuirMF4KNKwTTUal/lPfL2+7h2mEcg==
+  version "6.6.0"
+  resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-6.6.0.tgz#af8242fff0bbb82a682840d5feaa91b6a1c58be4"
+  integrity sha512-bpOZVQV5gthH/jVCSuYuokRo2bTKOcuBiVWpjmTn6C5Agl5zclGfTljuGsQZxwwDBkli+YhZhP4TdlqTnhOezQ==
   dependencies:
     extend "^3.0.2"
     https-proxy-agent "^7.0.1"
     is-stream "^2.0.0"
     node-fetch "^2.6.9"
+    uuid "^9.0.1"
 
 gcp-metadata@^6.1.0:
   version "6.1.0"
@@ -5464,15 +5432,15 @@ glob-parent@~5.1.2:
     is-glob "^4.0.1"
 
 glob@^10.0.0:
-  version "10.3.10"
-  resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b"
-  integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==
+  version "10.4.1"
+  resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.1.tgz#0cfb01ab6a6b438177bfe6a58e2576f6efe909c2"
+  integrity sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==
   dependencies:
     foreground-child "^3.1.0"
-    jackspeak "^2.3.5"
-    minimatch "^9.0.1"
-    minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
-    path-scurry "^1.10.1"
+    jackspeak "^3.1.2"
+    minimatch "^9.0.4"
+    minipass "^7.1.2"
+    path-scurry "^1.11.1"
 
 glob@^4:
   version "4.5.3"
@@ -5539,16 +5507,17 @@ globals@^9.18.0:
   integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==
 
 globalthis@^1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf"
-  integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236"
+  integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==
   dependencies:
-    define-properties "^1.1.3"
+    define-properties "^1.2.1"
+    gopd "^1.0.1"
 
 google-auth-library@^9.0.0, google-auth-library@^9.7.0:
-  version "9.7.0"
-  resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-9.7.0.tgz#dd99a08e2e3f70778de8be4ed8556460e237550a"
-  integrity sha512-I/AvzBiUXDzLOy4iIZ2W+Zq33W4lcukQv1nl7C8WUA6SQwyQwUwu3waNmWNAvzds//FG8SZ+DnKnW/2k6mQS8A==
+  version "9.10.0"
+  resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-9.10.0.tgz#c9fb940923f7ff2569d61982ee1748578c0bbfd4"
+  integrity sha512-ol+oSa5NbcGdDqA+gZ3G3mev59OHBZksBTxY/tYwjtcp1H/scAFwJfSQU9/1RALoyZ7FslNbke8j4i3ipwlyuQ==
   dependencies:
     base64-js "^1.3.0"
     ecdsa-sig-formatter "^1.0.11"
@@ -5563,9 +5532,9 @@ google-protobuf@3.19.4:
   integrity sha512-OIPNCxsG2lkIvf+P5FNfJ/Km95CsXOBecS9ZcAU6m2Rq3svc0Apl9nB3GMDNKfQ9asNv4KjyAqGwPQFrVle3Yg==
 
 googleapis-common@^7.0.0:
-  version "7.1.0"
-  resolved "https://registry.yarnpkg.com/googleapis-common/-/googleapis-common-7.1.0.tgz#e97e468a7ef2f230df8255c0f66701cf7e28947c"
-  integrity sha512-p3KHiWDBBWJEXk6SYauBEvxw5+UmRy7k2scxGtsNv9eHsTbpopJ3/7If4OrNnzJ9XMLg3IlyQXpVp8YPQsStiw==
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/googleapis-common/-/googleapis-common-7.2.0.tgz#5c19102c9af1e5d27560be5e69ee2ccf68755d42"
+  integrity sha512-/fhDZEJZvOV3X5jmD+fKxMqma5q2Q9nZNSF3kn1F18tpxmA86BcTxAGBQdM0N89Z3bEaIs+HVznSmFJEAmMTjA==
   dependencies:
     extend "^3.0.2"
     gaxios "^6.0.3"
@@ -6632,19 +6601,19 @@ istanbul-reports@^2.2.4:
   dependencies:
     html-escaper "^2.0.0"
 
-jackspeak@^2.3.5:
-  version "2.3.6"
-  resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8"
-  integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==
+jackspeak@^3.1.2:
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.1.2.tgz#eada67ea949c6b71de50f1b09c92a961897b90ab"
+  integrity sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==
   dependencies:
     "@isaacs/cliui" "^8.0.2"
   optionalDependencies:
     "@pkgjs/parseargs" "^0.11.0"
 
 joi@^17.9.2:
-  version "17.12.2"
-  resolved "https://registry.yarnpkg.com/joi/-/joi-17.12.2.tgz#283a664dabb80c7e52943c557aab82faea09f521"
-  integrity sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==
+  version "17.13.1"
+  resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.1.tgz#9c7b53dc3b44dd9ae200255cc3b398874918a6ca"
+  integrity sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg==
   dependencies:
     "@hapi/hoek" "^9.3.0"
     "@hapi/topo" "^5.1.0"
@@ -7204,10 +7173,10 @@ lower-case@^1.1.1:
   resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"
   integrity sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==
 
-lru-cache@^10.0.1, "lru-cache@^9.1.1 || ^10.0.0":
-  version "10.2.0"
-  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3"
-  integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==
+lru-cache@^10.0.1, lru-cache@^10.2.0:
+  version "10.2.2"
+  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.2.tgz#48206bc114c1252940c41b25b41af5b545aca878"
+  integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==
 
 lru-cache@^4.0.1:
   version "4.1.5"
@@ -7414,11 +7383,11 @@ micromatch@^3.1.10:
     to-regex "^3.0.2"
 
 micromatch@^4.0.2, micromatch@^4.0.4:
-  version "4.0.5"
-  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
-  integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
+  version "4.0.7"
+  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5"
+  integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==
   dependencies:
-    braces "^3.0.2"
+    braces "^3.0.3"
     picomatch "^2.3.1"
 
 mime-db@1.52.0, "mime-db@>= 1.43.0 < 2":
@@ -7496,10 +7465,10 @@ minimatch@^5.1.0:
   dependencies:
     brace-expansion "^2.0.1"
 
-minimatch@^9.0.1:
-  version "9.0.3"
-  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825"
-  integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==
+minimatch@^9.0.4:
+  version "9.0.4"
+  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51"
+  integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==
   dependencies:
     brace-expansion "^2.0.1"
 
@@ -7571,10 +7540,10 @@ minipass@^5.0.0:
   resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d"
   integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==
 
-"minipass@^5.0.0 || ^6.0.2 || ^7.0.0":
-  version "7.0.4"
-  resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c"
-  integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==
+"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2:
+  version "7.1.2"
+  resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707"
+  integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==
 
 minizlib@^2.0.0, minizlib@^2.1.1:
   version "2.1.2"
@@ -7735,7 +7704,7 @@ named-placeholders@^1.1.3:
   dependencies:
     lru-cache "^7.14.1"
 
-nan@^2.12.1, nan@^2.13.2, nan@^2.17.0, nan@^2.18.0:
+nan@^2.12.1, nan@^2.13.2, nan@^2.18.0, nan@^2.19.0:
   version "2.19.0"
   resolved "https://registry.yarnpkg.com/nan/-/nan-2.19.0.tgz#bb58122ad55a6c5bc973303908d5b16cfdd5a8c0"
   integrity sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==
@@ -7825,9 +7794,9 @@ node-forge@1.3.1, node-forge@^1.3.0:
   integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==
 
 node-gyp-build@^4.3.0:
-  version "4.8.0"
-  resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.0.tgz#3fee9c1731df4581a3f9ead74664369ff00d26dd"
-  integrity sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==
+  version "4.8.1"
+  resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.1.tgz#976d3ad905e71b76086f4f0b0d3637fe79b6cda5"
+  integrity sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==
 
 node-gyp@8.x:
   version "8.4.1"
@@ -7983,9 +7952,9 @@ number-is-nan@^1.0.0:
   integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==
 
 nwsapi@^2.2.4:
-  version "2.2.7"
-  resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30"
-  integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==
+  version "2.2.10"
+  resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.10.tgz#0b77a68e21a0b483db70b11fad055906e867cda8"
+  integrity sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==
 
 nyc@^14.1.1:
   version "14.1.1"
@@ -8520,12 +8489,12 @@ path-root@^0.1.1:
   dependencies:
     path-root-regex "^0.1.0"
 
-path-scurry@^1.10.1:
-  version "1.10.1"
-  resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698"
-  integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==
+path-scurry@^1.11.1:
+  version "1.11.1"
+  resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2"
+  integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==
   dependencies:
-    lru-cache "^9.1.1 || ^10.0.0"
+    lru-cache "^10.2.0"
     minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
 
 path-to-regexp@0.1.7:
@@ -8574,25 +8543,25 @@ pg-cloudflare@^1.1.1:
   resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz#e6d5833015b170e23ae819e8c5d7eaedb472ca98"
   integrity sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==
 
-pg-connection-string@^2.4.0, pg-connection-string@^2.5.0, pg-connection-string@^2.6.2:
-  version "2.6.2"
-  resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.2.tgz#713d82053de4e2bd166fab70cd4f26ad36aab475"
-  integrity sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==
+pg-connection-string@^2.4.0, pg-connection-string@^2.5.0, pg-connection-string@^2.6.4:
+  version "2.6.4"
+  resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.4.tgz#f543862adfa49fa4e14bc8a8892d2a84d754246d"
+  integrity sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==
 
 pg-int8@1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c"
   integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==
 
-pg-pool@^3.4.1, pg-pool@^3.6.1:
-  version "3.6.1"
-  resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.1.tgz#5a902eda79a8d7e3c928b77abf776b3cb7d351f7"
-  integrity sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==
+pg-pool@^3.4.1, pg-pool@^3.6.2:
+  version "3.6.2"
+  resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.2.tgz#3a592370b8ae3f02a7c8130d245bc02fa2c5f3f2"
+  integrity sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==
 
-pg-protocol@^1.5.0, pg-protocol@^1.6.0:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.0.tgz#4c91613c0315349363af2084608db843502f8833"
-  integrity sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==
+pg-protocol@^1.5.0, pg-protocol@^1.6.1:
+  version "1.6.1"
+  resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.1.tgz#21333e6d83b01faaebfe7a33a7ad6bfd9ed38cb3"
+  integrity sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==
 
 pg-types@^2.1.0:
   version "2.2.0"
@@ -8619,15 +8588,13 @@ pg@8.7.1:
     pgpass "1.x"
 
 pg@^8.4.0:
-  version "8.11.3"
-  resolved "https://registry.yarnpkg.com/pg/-/pg-8.11.3.tgz#d7db6e3fe268fcedd65b8e4599cda0b8b4bf76cb"
-  integrity sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==
+  version "8.11.5"
+  resolved "https://registry.yarnpkg.com/pg/-/pg-8.11.5.tgz#e722b0a5f1ed92931c31758ebec3ddf878dd4128"
+  integrity sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw==
   dependencies:
-    buffer-writer "2.0.0"
-    packet-reader "1.0.0"
-    pg-connection-string "^2.6.2"
-    pg-pool "^3.6.1"
-    pg-protocol "^1.6.0"
+    pg-connection-string "^2.6.4"
+    pg-pool "^3.6.2"
+    pg-protocol "^1.6.1"
     pg-types "^2.1.0"
     pgpass "1.x"
   optionalDependencies:
@@ -8650,10 +8617,10 @@ pgtools@0.3.2:
     pg-connection-string "^2.4.0"
     yargs "^5.0.0"
 
-picocolors@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
-  integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
+picocolors@^1.0.0, picocolors@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1"
+  integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==
 
 picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
   version "2.3.1"
@@ -8878,9 +8845,9 @@ qs@6.11.0:
     side-channel "^1.0.4"
 
 qs@^6.6.0, qs@^6.7.0, qs@^6.9.4:
-  version "6.12.0"
-  resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.0.tgz#edd40c3b823995946a8a0b1f208669c7a200db77"
-  integrity sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==
+  version "6.12.1"
+  resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.1.tgz#39422111ca7cbdb70425541cba20c7d7b216599a"
+  integrity sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==
   dependencies:
     side-channel "^1.0.6"
 
@@ -8942,16 +8909,6 @@ range-parser@~1.2.1:
   resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
   integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
 
-raw-body@2.5.1:
-  version "2.5.1"
-  resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857"
-  integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==
-  dependencies:
-    bytes "3.1.2"
-    http-errors "2.0.0"
-    iconv-lite "0.4.24"
-    unpipe "1.0.0"
-
 raw-body@2.5.2:
   version "2.5.2"
   resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a"
@@ -9521,11 +9478,9 @@ semver@^6.0.0, semver@^6.3.1:
   integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
 
 semver@^7.3.5, semver@^7.5.4:
-  version "7.6.0"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d"
-  integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==
-  dependencies:
-    lru-cache "^6.0.0"
+  version "7.6.2"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13"
+  integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==
 
 send@0.18.0:
   version "0.18.0"
@@ -9731,9 +9686,9 @@ socks-proxy-agent@^6.0.0:
     socks "^2.6.2"
 
 socks@^2.6.2, socks@^2.7.1:
-  version "2.8.1"
-  resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.1.tgz#22c7d9dd7882649043cba0eafb49ae144e3457af"
-  integrity sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==
+  version "2.8.3"
+  resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.3.tgz#1ebd0f09c52ba95a09750afe3f3f9f724a800cb5"
+  integrity sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==
   dependencies:
     ip-address "^9.0.5"
     smart-buffer "^4.2.0"
@@ -9836,9 +9791,9 @@ spdx-expression-parse@^3.0.0:
     spdx-license-ids "^3.0.0"
 
 spdx-license-ids@^3.0.0:
-  version "3.0.17"
-  resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz#887da8aa73218e51a1d917502d79863161a93f9c"
-  integrity sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==
+  version "3.0.18"
+  resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz#22aa922dcf2f2885a6494a261f2d8b75345d0326"
+  integrity sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==
 
 split-string@^3.0.1, split-string@^3.0.2:
   version "3.1.0"
@@ -10051,7 +10006,7 @@ string.prototype.trimend@^1.0.8:
     define-properties "^1.2.1"
     es-object-atoms "^1.0.0"
 
-string.prototype.trimstart@^1.0.7:
+string.prototype.trimstart@^1.0.8:
   version "1.0.8"
   resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde"
   integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==
@@ -10395,9 +10350,9 @@ token-types@^5.0.1:
     ieee754 "^1.2.1"
 
 tough-cookie@^4.1.2:
-  version "4.1.3"
-  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf"
-  integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==
+  version "4.1.4"
+  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36"
+  integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==
   dependencies:
     psl "^1.1.33"
     punycode "^2.1.1"
@@ -10446,7 +10401,7 @@ ts-custom-error@^3.2.0:
   resolved "https://registry.yarnpkg.com/ts-custom-error/-/ts-custom-error-3.3.1.tgz#8bd3c8fc6b8dc8e1cb329267c45200f1e17a65d1"
   integrity sha512-5OX1tzOjxWEgsr/YEUWSuPrQ00deKLh6D7OTWcvNHm12/7QPyRh8SYpyWvA4IZv8H/+GQWQEh/kwo95Q9OVW1A==
 
-ts-mixer@^6.0.3:
+ts-mixer@^6.0.4:
   version "6.0.4"
   resolved "https://registry.yarnpkg.com/ts-mixer/-/ts-mixer-6.0.4.tgz#1da39ceabc09d947a82140d9f09db0f84919ca28"
   integrity sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==
@@ -10552,7 +10507,7 @@ typed-array-byte-offset@^1.0.2:
     has-proto "^1.0.3"
     is-typed-array "^1.1.13"
 
-typed-array-length@^1.0.5:
+typed-array-length@^1.0.6:
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3"
   integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==
@@ -10652,9 +10607,9 @@ undici-types@~5.26.4:
   integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
 
 undici@^5.11.0, undici@^5.22.0:
-  version "5.28.3"
-  resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.3.tgz#a731e0eff2c3fcfd41c1169a869062be222d1e5b"
-  integrity sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==
+  version "5.28.4"
+  resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.4.tgz#6b280408edb6a1a604a9b20340f45b422e373068"
+  integrity sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==
   dependencies:
     "@fastify/busboy" "^2.0.0"
 
@@ -10706,12 +10661,12 @@ unset-value@^1.0.0:
     isobject "^3.0.0"
 
 update-browserslist-db@^1.0.13:
-  version "1.0.13"
-  resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4"
-  integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==
+  version "1.0.16"
+  resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz#f6d489ed90fb2f07d67784eb3f53d7891f736356"
+  integrity sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==
   dependencies:
-    escalade "^3.1.1"
-    picocolors "^1.0.0"
+    escalade "^3.1.2"
+    picocolors "^1.0.1"
 
 upper-case@^1.1.1:
   version "1.1.3"
@@ -10827,7 +10782,7 @@ uuid@^8.3.2:
   resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
   integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
 
-uuid@^9.0.0:
+uuid@^9.0.0, uuid@^9.0.1:
   version "9.0.1"
   resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30"
   integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==
@@ -10942,13 +10897,13 @@ webidl-conversions@^7.0.0:
   integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==
 
 websocket@^1.0.34:
-  version "1.0.34"
-  resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111"
-  integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==
+  version "1.0.35"
+  resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.35.tgz#374197207d7d4cc4c36cbf8a1bb886ee52a07885"
+  integrity sha512-/REy6amwPZl44DDzvRCkaI1q1bIiQB0mEFQLUrhz3z2EK91cp3n72rAjUlrTP0zV22HJIUOVHQGPxhFRjxjt+Q==
   dependencies:
     bufferutil "^4.0.1"
     debug "^2.2.0"
-    es5-ext "^0.10.50"
+    es5-ext "^0.10.63"
     typedarray-to-buffer "^3.1.5"
     utf-8-validate "^5.0.2"
     yaeti "^0.0.6"
@@ -11199,9 +11154,9 @@ ws@^7.0.0:
   integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==
 
 ws@^8.13.0, ws@^8.4.0, ws@^8.9.0:
-  version "8.16.0"
-  resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4"
-  integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==
+  version "8.17.0"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.0.tgz#d145d18eca2ed25aaf791a183903f7be5e295fea"
+  integrity sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==
 
 xml-crypto@^2.1.3:
   version "2.1.5"
diff --git a/pkgs/tools/admin/pulumi-bin/data.nix b/pkgs/tools/admin/pulumi-bin/data.nix
index 8f96441cadd7c..c9b9ee95b3e7a 100644
--- a/pkgs/tools/admin/pulumi-bin/data.nix
+++ b/pkgs/tools/admin/pulumi-bin/data.nix
@@ -1,56 +1,56 @@
 # DO NOT EDIT! This file is generated automatically by update.sh
 { }:
 {
-  version = "3.116.1";
+  version = "3.117.0";
   pulumiPkgs = {
     x86_64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.116.1-linux-x64.tar.gz";
-        sha256 = "1wywsjwllsa9y3v2bri7f4fmh1mr6mmamm0gkicq6p17m6g6xs27";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.117.0-linux-x64.tar.gz";
+        sha256 = "168ssybbdqprkpm33l98pghbr5a45xfcmwg6lj83i7l31nwxc5qi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.15.0-linux-amd64.tar.gz";
-        sha256 = "0mjlsq61s7avya96i7ga0i28pdbg64wb59wvdpivv2g3lb6xd6vb";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.16.0-linux-amd64.tar.gz";
+        sha256 = "1q3z180xx7raybq7w4l5mmns5b2zgjk4g4a6p03ra12xjc7jy7gi";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.1.0-linux-amd64.tar.gz";
         sha256 = "18k4gn3b94h9hgj46xn5cv3002wy738ry6wrz57p4hnmklifzikj";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.55.1-linux-amd64.tar.gz";
-        sha256 = "1l8zz6ljvs6qg1r8kbcjrmz2h0nwrhggp1vm3wgxklm3dbsam9h9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.55.2-linux-amd64.tar.gz";
+        sha256 = "1v0jwklzf02d69p8vlpa35y8f2fkkkjwgrxqf5drs30bqwwswicq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.7.5-linux-amd64.tar.gz";
-        sha256 = "0hcz97l8hz4zvy9yf4h0bz2prqqgcsmd9zp79iyfm0l8xryjl9br";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.8.1-linux-amd64.tar.gz";
+        sha256 = "1z4nj0nhrnjxzz04lh9bqysdixfgl2ljjamr4ks75s80ql4bhzrx";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.3.2-linux-amd64.tar.gz";
         sha256 = "17dyf0zy78qcf3cz5kw1k6pliwiny1184aksq3d45ny4ag15q5zr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.36.0-linux-amd64.tar.gz";
-        sha256 = "0ab3jvmax93r0za0mwyprywpclhh1v1x6nlzk08djj39nb772aps";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.37.1-linux-amd64.tar.gz";
+        sha256 = "0zzl1hnkvqkchjxbziw5w1g0ymdqvsyggn392dmyxzl1qc4i072j";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.49.1-linux-amd64.tar.gz";
-        sha256 = "0bjjj7w1c16kpnzpy70d1ijkj6hiym1qp751hdigl5jg7r0kbqhh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.78.0-linux-amd64.tar.gz";
+        sha256 = "1dyynbhvfj3bdb9n7sifp1xs6yjgz85gdswbiw5djn5yfwpz5zbn";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.0.0-linux-amd64.tar.gz";
-        sha256 = "1d6i9p3lw2hzn2q7ja3cqh00vx7ihm5lhs6pg9468hag8wvk230g";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.50.0-linux-amd64.tar.gz";
+        sha256 = "0hjvv2q10l648s05anzdf7vjc562gk0lch1r3mpdgign1hrhgspc";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.77.1-linux-amd64.tar.gz";
-        sha256 = "0p2wvmblq34grvb5bnvwni0xj6d2v57cl086n3kifvnmc4qsmymh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.1.1-linux-amd64.tar.gz";
+        sha256 = "05vyz81a5z96k35hh8ky9bl6c505jfb6rxsc82qlfh8kx110p66l";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.29.0-linux-amd64.tar.gz";
         sha256 = "1pcril9c8ck99hg0k997vqiawk3iqwcsvg8x81b232pz8vzsxd5q";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.2-linux-amd64.tar.gz";
-        sha256 = "13gbn5jslqcm43ppp4015f7gcqpcvv7bqxydg41zq4xchiqrbwh9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.3-linux-amd64.tar.gz";
+        sha256 = "1g6rzqsgak4801b2zzhq3ss6gkvkc8y7swpbm92sdbns71hxvw6w";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.28.0-linux-amd64.tar.gz";
@@ -61,28 +61,28 @@
         sha256 = "0sdmjaka9d399hgabib1p6kwlydcsgibj0jkz87mi7blj4jgrmsm";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.3-linux-amd64.tar.gz";
-        sha256 = "1bdmyrfgszqb9rmacq3bj0qqybi4ck336cgdhg8bk4dbjx0x4sah";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.4-linux-amd64.tar.gz";
+        sha256 = "1sbscig80kf3k2w5j5934ld78w2760s97dn9cqnwf040wq3x2bqk";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.1-linux-amd64.tar.gz";
         sha256 = "0hnardid0kbzy65dmn7vz8ddy5hq78nf2871zz6srf2hfyiv7qa4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.7.0-linux-amd64.tar.gz";
-        sha256 = "0dzhzf9xcb261mcnw91g6hk4hbwhhzddiwjh5c1vh63agw9564gy";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.8.0-linux-amd64.tar.gz";
+        sha256 = "17zngh68ssilazg5caiz2amzcgd1kp906k5viwp2ig70wp6gwkyy";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.23.0-linux-amd64.tar.gz";
-        sha256 = "0nq60scg19r6n56r1ki6zk8dgzd28dwf032f4r4fqbv604s9kp44";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.24.0-linux-amd64.tar.gz";
+        sha256 = "0bfmgcm1r2w6lva13s2nmxc5i6c16rp0qysyampmhphcl7hyxbvy";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.0-linux-amd64.tar.gz";
-        sha256 = "00qdx09p6lh91ib99g54jk8sfy48f71j98gkqsjaipf2x7bl9g8j";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.1-linux-amd64.tar.gz";
+        sha256 = "1ilpp4xkdpp3mq4i0sicxbndn15gbrhjsvxp8aanc20dgpcr5hy5";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.11.0-linux-amd64.tar.gz";
-        sha256 = "0955zm2xiprc7skdy2yxr0mkp4kijm3fdpfq6r1qzhqr1lxvdns1";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v7.0.0-linux-amd64.tar.gz";
+        sha256 = "0nfk9mk8dgrw6a03a1k3sy936jkwvnbbi2i396hd7vgyvsb56vmk";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.32.0-linux-amd64.tar.gz";
@@ -93,8 +93,8 @@
         sha256 = "1hjg23ah9v20kfi08cln76akvldn93s24rcsx7dilsz2hiw4qr9x";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.11.0-linux-amd64.tar.gz";
-        sha256 = "1cjl499sjlskf0bs56vfwh9pramp653l732bzy7vbjci4rm5x3qv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.12.0-linux-amd64.tar.gz";
+        sha256 = "08s5ii5aj5za542gdp1jhzq8pnvqpnzblci4kygdr056wzrcz2zi";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.19.1-linux-amd64.tar.gz";
@@ -109,28 +109,28 @@
         sha256 = "0yv68ccyzi7hv2xaa8sybg4mf5qc7wa25kjziy2fdfsjyl8fn6ps";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.15.2-linux-amd64.tar.gz";
-        sha256 = "1cw4ajl3h9xxysgyf9n1n8n9cdzwc7kpb263hs7k8i0yk1vfvcsx";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v4.0.0-linux-amd64.tar.gz";
+        sha256 = "195m7xxdzlwzglaz72iajdx13yr3j78x38z3ajbw7c89wvpp8p6l";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.11.1-linux-amd64.tar.gz";
         sha256 = "01qqxxap2cmvgc0msajxdsr7ddpw9ly1ms70fzb4vk98dr9q7lpr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.1-linux-amd64.tar.gz";
-        sha256 = "0rag94fgv2jgpbgb1caj3i23zzvyjyvyc63asvi5889pf2yxyi4h";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.2-linux-amd64.tar.gz";
+        sha256 = "05k0kq11z4m5vjj41sqq5vi7qpiwmqrw3plw96f750bv5bzgpf09";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.53.0-linux-amd64.tar.gz";
-        sha256 = "00b675jp3jggg2scx37khrl35wyma0ncn3cqmn631b90rbnk2dc5";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.54.0-linux-amd64.tar.gz";
+        sha256 = "0s8gkjzlfcmn1bvgzmvj3dkcq72gwcngcn24jvbxdc9mf6s3mjmg";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.77.0-linux-amd64.tar.gz";
-        sha256 = "0avgx6b6s1jffn4dr2bvsicsi6j48hxfg1k7nsyklbcdwvv6b96j";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.79.0-linux-amd64.tar.gz";
+        sha256 = "0n7cj6bj4hrjrijn0pniy9fzq39cb019m1k5rqqbfpkpv1211zf1";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.21.0-linux-amd64.tar.gz";
-        sha256 = "092pr29pf29wms697cdp93lp9772bg07sj2290a9ypf26yhr5dq7";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.22.0-linux-amd64.tar.gz";
+        sha256 = "187k2w0s3wjn242qayi8yvvrbf9wpdzwd4f4g70a80d1bq32gz98";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.16.0-linux-amd64.tar.gz";
@@ -163,52 +163,52 @@
     ];
     x86_64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.116.1-darwin-x64.tar.gz";
-        sha256 = "1vzbca3m040lv0mkxrxcwxyzv47xvpzjzf5f5dpf7jg6p9875imk";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.117.0-darwin-x64.tar.gz";
+        sha256 = "1i594gyrivw3axhp1mpwyqqwzmiggalcg0hwnydpmn54gbaq5arl";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.15.0-darwin-amd64.tar.gz";
-        sha256 = "14zs1mslzy9h33pilqdnqcjpfz2v36hcfd14yrf1cs5mldhhrxhq";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.16.0-darwin-amd64.tar.gz";
+        sha256 = "1sigdy8l7iy04ns0qsd3qh9v47p64a0zjyx5ifafrlh2dxsa8gwp";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.1.0-darwin-amd64.tar.gz";
         sha256 = "1lvdbyrcx4mpwm3y6dgxa3m9c5g5s3hhfx67qr2vrq1jwkfbc3ss";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.55.1-darwin-amd64.tar.gz";
-        sha256 = "090m3609dzv396r6b7yriip66zxabj5ad2mx0ghc0bgj2gxq6ysj";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.55.2-darwin-amd64.tar.gz";
+        sha256 = "03v9wcnnnfl83gsrn5q1w6jm9j85gpgbjp2hh2dmwpd39nhkkx6q";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.7.5-darwin-amd64.tar.gz";
-        sha256 = "1ga4wi18kiiv6hd9vc1h8kixk5d1qihy5lw4031rb44g1kx8xm0c";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.8.1-darwin-amd64.tar.gz";
+        sha256 = "1vr5x1rkqx6k297z3jm990v4zpmb88pbblnpdzynrj6h7s0bczgv";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.3.2-darwin-amd64.tar.gz";
         sha256 = "06wrd619fi924r1wm66pj93q2j8kb9y7bmjf9sxankq2ma28slgk";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.36.0-darwin-amd64.tar.gz";
-        sha256 = "1akqb2da35fjv1qw35z1zcqxs1a3ida6a9avkkm46ng7c29s23pa";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.37.1-darwin-amd64.tar.gz";
+        sha256 = "0vbsbk404js0q1pba4zw4jqyiv97pdjwmk1s7la2y10srqqfa9ng";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.49.1-darwin-amd64.tar.gz";
-        sha256 = "1fqginvky4afnyjw6w3mk6arqjxzdiri7g2ccz8wsvpsidq44d86";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.78.0-darwin-amd64.tar.gz";
+        sha256 = "0mkzrydbnsbg2rv5z04dwhv3fcscqjvmycgdkkcgma82s9ijklph";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.0.0-darwin-amd64.tar.gz";
-        sha256 = "1gzb7srxdzz1vhrzzzfxahkzr26b3smd62l70dwn605cich3vwyw";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.50.0-darwin-amd64.tar.gz";
+        sha256 = "07w66bxr6z2zfrmw2cmsxyk1lw36ar2gi2dvwiiapk633ivrs938";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.77.1-darwin-amd64.tar.gz";
-        sha256 = "0wabgypwphidaij94wrij0fvmmhrdp2z5rhjmkn2kffx0iz340hd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.1.1-darwin-amd64.tar.gz";
+        sha256 = "0blhx82diydpwbfr7grj2zxk29pvg0b2w2rawlv60mhc3dw6ixar";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.29.0-darwin-amd64.tar.gz";
         sha256 = "0ih4qli4yj109w662l0jp8mpx69p1rchb5pccdc2sing6mx6ql9i";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.2-darwin-amd64.tar.gz";
-        sha256 = "0ldyy3c6qapha189jpb0lrmwq8brz9hip3lkl16xihmwgxpakqv3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.3-darwin-amd64.tar.gz";
+        sha256 = "1gcv6ri58a4k8g7dzh0xvpmv1x6ndlihkmd5n2gza303i9c8466n";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.28.0-darwin-amd64.tar.gz";
@@ -219,28 +219,28 @@
         sha256 = "1z1ai3i41g2nay21z9sq47f7ilnhcjbdzshxx3n8iy9mn3yrsyaw";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.3-darwin-amd64.tar.gz";
-        sha256 = "00x85ppnc8z44npvp8h0n86839vilwyvr33dcx2zbq26d5g8dln4";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.4-darwin-amd64.tar.gz";
+        sha256 = "1viwf0afhmisxvz0dkmf79b3ncbba4xz9hp9h0h2866l05h9v5d0";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.1-darwin-amd64.tar.gz";
         sha256 = "1m5lh59h7nck1flzxs9m4n0ag0klk3jmnpf7hc509vffxs89xnjq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.7.0-darwin-amd64.tar.gz";
-        sha256 = "1a582mqhbr03ab1jlfb0fp9r087caihlkw6np5il77jraz97cqsh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.8.0-darwin-amd64.tar.gz";
+        sha256 = "009w2zsmy4nkc5w8k0ldm5fl2yjl8h52574w1as27kz0800nibav";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.23.0-darwin-amd64.tar.gz";
-        sha256 = "0cqxvr3z3lwfpmifjbcl1898qs2wqjk8lr375cjppsck16pcizzp";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.24.0-darwin-amd64.tar.gz";
+        sha256 = "0yaynnssckdy6zb88fgrilymkyciflz4ih8dp3kj3h2frzkwicp0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.0-darwin-amd64.tar.gz";
-        sha256 = "0qp2mva4rqrahpb5bx02grxly9zq8s676hin2r161y0wy7afdgih";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.1-darwin-amd64.tar.gz";
+        sha256 = "08plbmrzdd4vbds4qihdq3c0w9fxjaa64lmlaplla4z0qvi5cjc2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.11.0-darwin-amd64.tar.gz";
-        sha256 = "0yxmj0amdvfgn8mnz7p9z843g503sr8flg4kykl3lvh1r0nwj85v";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v7.0.0-darwin-amd64.tar.gz";
+        sha256 = "1na9h7x1a4h21v68g4dgvj4jbq4kdziyh2irz8x45bzsa8l8cb16";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.32.0-darwin-amd64.tar.gz";
@@ -251,8 +251,8 @@
         sha256 = "17d2j4wf08q818mhb1qlji1hb3b8900hx0yrpk43xnqwvfjsyyyh";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.11.0-darwin-amd64.tar.gz";
-        sha256 = "0s1yv5cahsp94px0k00jhmh8g6yhjb231bfim3y9bqh13i7z6rir";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.12.0-darwin-amd64.tar.gz";
+        sha256 = "0jyg244kfkc8d60p6n1df3lyvxfdmc0y0j72dkpwn7fmnm5bnd1f";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.19.1-darwin-amd64.tar.gz";
@@ -267,28 +267,28 @@
         sha256 = "04cmmgi5rxj9lbs5s3d4gzrngiw52gyvsb7pi8w7v6cpb9p8q3gx";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.15.2-darwin-amd64.tar.gz";
-        sha256 = "0h71g1mmmz70bx5zs4jryngm2nghi5fjbp4ldwjhx4ymbf7ksm2w";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v4.0.0-darwin-amd64.tar.gz";
+        sha256 = "0f3xrcnn65yqpfrqkywa6blsxb501xjw2j3apb3351ii5dmmi31q";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.11.1-darwin-amd64.tar.gz";
         sha256 = "1m255nwx3qzl3pcsm2mqwrpzg6rwb1yl5js7l0ra5hz066pw0wai";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.1-darwin-amd64.tar.gz";
-        sha256 = "08xhlygac5516lyyrb8x5xx5fp3a918nk1afj6m7d1c6sswcw84s";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.2-darwin-amd64.tar.gz";
+        sha256 = "0y4g3agranvahayblmy9m6i05f4x290r9lhc1pzhjsnz1xdh7nf4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.53.0-darwin-amd64.tar.gz";
-        sha256 = "0nxfrkpmmcaw4y3kzmp0i9v848z1mjr9p1l5kj85hrdkdqq5m2c8";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.54.0-darwin-amd64.tar.gz";
+        sha256 = "0h0j5p1l3cj412zj274hhzv00pnn462adk8anvkippiwwzphkn5x";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.77.0-darwin-amd64.tar.gz";
-        sha256 = "1lr1r615jpld7k5szyd5ks48rkr2p0kn8jh3lnjbvs8v08prd8vz";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.79.0-darwin-amd64.tar.gz";
+        sha256 = "0fhmza4ynmb5bcwd0m80p4acv2l5f2imca9zg02mmv6drd4wznpm";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.21.0-darwin-amd64.tar.gz";
-        sha256 = "0rp6iiby987q5mhpnk5a381zr6vipb9hnxmlk7kdwvflcc8va369";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.22.0-darwin-amd64.tar.gz";
+        sha256 = "11dyy9sh83x3rpwz1bq5zfqhqgcrxg85r2q1jfx5ddna3a7ww8hj";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.16.0-darwin-amd64.tar.gz";
@@ -321,52 +321,52 @@
     ];
     aarch64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.116.1-linux-arm64.tar.gz";
-        sha256 = "08lqdilywnpxgnag4qbcr4f454q3812cd177lfffv8zm44xzvgmx";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.117.0-linux-arm64.tar.gz";
+        sha256 = "0vwdfx6xm63psy00z8a9sc3h6cz0xj4zg49np6g0wnkky4abvw5i";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.15.0-linux-arm64.tar.gz";
-        sha256 = "096zak0andzcywk5rz9dxbr593ixzzhqfqlffh11gp6q7j9xdy87";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.16.0-linux-arm64.tar.gz";
+        sha256 = "0nzaxghc1dxp5vb7l40markfi5lyai02hmwalzypq4gq1gy302r0";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.1.0-linux-arm64.tar.gz";
         sha256 = "0nr87qclkvn1281prikixvbq3mhkkiklci45vwshzqp7fr7pf3ph";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.55.1-linux-arm64.tar.gz";
-        sha256 = "1cz6wd28bv4xlz6jfq6pxa9a5bxrb9amxb149ksrg5ysp55c7jrp";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.55.2-linux-arm64.tar.gz";
+        sha256 = "08kw7ff66rv5g3hm7cv4h0l8vj70m9pz0dfqm5ywnb6dmn1sava2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.7.5-linux-arm64.tar.gz";
-        sha256 = "08x6jsqw1r4h679v46bvnqcvbcwcq0icn5a319s8j6n80qspmaqp";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.8.1-linux-arm64.tar.gz";
+        sha256 = "0ia91rca8cz3dhkmfyjzacpyncyp5jxks6cxsf58zbkgwn1bqxkw";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.3.2-linux-arm64.tar.gz";
         sha256 = "16zbb652as85casz0yayg4vzrrya0r35l8z3vac31d2054bpp367";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.36.0-linux-arm64.tar.gz";
-        sha256 = "0ic37v6nc6pi0ngk7j0rp9s1mk94f6igli0ak5dnyygbcpfs1d16";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.37.1-linux-arm64.tar.gz";
+        sha256 = "1sby4zgmibq5j98lk05vpnfb20qm6skkhpmc0i1qgirc7765v9ym";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.49.1-linux-arm64.tar.gz";
-        sha256 = "1slsqr77i458f40i87cb49d05xnbgc01w419js5x7wfvzdcf04j7";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.78.0-linux-arm64.tar.gz";
+        sha256 = "1nn93mbrjyj0gcl2dns5q6dpdqmkzhwnnlg1q6lxcc2a2jkgrsyn";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.0.0-linux-arm64.tar.gz";
-        sha256 = "0s4pxkj1fni8c0r8v8kqzl7agcy93m71l8kpmb3630q4syddzmqb";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.50.0-linux-arm64.tar.gz";
+        sha256 = "15p89w0qpkqqfy5bhgmf5ymq3jvd0kj0y9rvzbcp79ryng7r9cwl";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.77.1-linux-arm64.tar.gz";
-        sha256 = "17lf18j0r7mq4rwmscrblp4b7xbq9zca55x9vn26rmmhgcsvzpd0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.1.1-linux-arm64.tar.gz";
+        sha256 = "1chrfqdiwx6lvylrih6zx7m1zkrmcb7lz0x1cb9hc0l5fy93rc63";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.29.0-linux-arm64.tar.gz";
         sha256 = "1p9xvwivl0dzvmgnlcbsak9s7qc3ys8i185690wiragj9f818nlf";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.2-linux-arm64.tar.gz";
-        sha256 = "03dx7sabps5dy79fwgp0msjbigaijxxjabdk2sprig6z25mvk91s";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.3-linux-arm64.tar.gz";
+        sha256 = "0rmn667z8s4pndck24h82qp5fyshixvji736x6barlpiamy4lkhj";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.28.0-linux-arm64.tar.gz";
@@ -377,28 +377,28 @@
         sha256 = "0zmdsy9x62a9zf1yc3g0c11dagp3653dsbqgp79cjq89n7y79289";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.3-linux-arm64.tar.gz";
-        sha256 = "1bs2mcfg99an9bvv77vzh0m32dbs7x79dncgqk1dyvzq2z3d44p4";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.4-linux-arm64.tar.gz";
+        sha256 = "117a8xaj6n9hgr7r8brmwf3kmdlgd2xzmssai8nn5r9hq7r8z79f";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.1-linux-arm64.tar.gz";
         sha256 = "111pia2f5xwkwaqs6p90ri29l5b3ivmahsa1bji4fwyyjyp22h4r";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.7.0-linux-arm64.tar.gz";
-        sha256 = "082v5hbfcdrjxd8b9w6g0zh0q6k6b5vlx1m7sjwqilalp58s5g2s";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.8.0-linux-arm64.tar.gz";
+        sha256 = "09cdx6hh2lvipnj4fsff66vq8i3fvggs253ik2a8lpajg4xdhswi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.23.0-linux-arm64.tar.gz";
-        sha256 = "1krz5wazaav5hyrgssyqpgj69m3rx122pwjqh4s95i6c9mr2g0pr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.24.0-linux-arm64.tar.gz";
+        sha256 = "15lbnj8jdjb6g442mv87wxw9ahy33574czm5q8wz3fwj4hf6ia7i";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.0-linux-arm64.tar.gz";
-        sha256 = "1495j84c92840h6w2rapag5698r6bm2mbcrwxgdnmnvc87r5kjms";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.1-linux-arm64.tar.gz";
+        sha256 = "0b2cc2ybw76h283ir4nl51cf5zbl2bxrcr5iilskqf58b8yfrra0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.11.0-linux-arm64.tar.gz";
-        sha256 = "09clraq9b81sv1p7m531kv7jlypvxcan4dw62gkq6ncwm9cdx1ll";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v7.0.0-linux-arm64.tar.gz";
+        sha256 = "1di7ch1bgmqlpajzmc85pb7hmsyw6kcw6wawx0l0r8a539q89i96";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.32.0-linux-arm64.tar.gz";
@@ -409,8 +409,8 @@
         sha256 = "11winxlgf2p325xppp9xa0p2mhncj72xpcyxgz13wizk33saj649";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.11.0-linux-arm64.tar.gz";
-        sha256 = "021i7w1ysxplwrjd7mzsr0mmnrw4h5rnrwi33sirv0ryx7rsk94z";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.12.0-linux-arm64.tar.gz";
+        sha256 = "1k2qlakyvdqz0fadbabdjf9yg3jm4357z46cvqxahyyminvkxa60";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.19.1-linux-arm64.tar.gz";
@@ -425,28 +425,28 @@
         sha256 = "11sd0kfkbczybkfh3n9fr0j8lnjfqcwfvxmvwfgm8d2jz9c7rhsm";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.15.2-linux-arm64.tar.gz";
-        sha256 = "0a0v0yj14fslncisvhfn8mlk009h7adkcszv6dlbzha46p4fl32a";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v4.0.0-linux-arm64.tar.gz";
+        sha256 = "0gg3f461j6ca31cnnlsn9nlnb63mhhr6rwkypa5wnvf38xsfbmf6";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.11.1-linux-arm64.tar.gz";
         sha256 = "0kix5wkdhr1svbqicvfs91g43jwzp80zi07wq564pkphr907r99g";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.1-linux-arm64.tar.gz";
-        sha256 = "03yg6fxxrimkhi13qsm328n5x6fqhl78bznh50fslhj9vlhpv1jr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.2-linux-arm64.tar.gz";
+        sha256 = "0s7sqcrf9nvlyfjcj2inbifdn5xlffcmsby1giiwjcjfvjk5wl8j";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.53.0-linux-arm64.tar.gz";
-        sha256 = "132b33wymaxcp6i4mpp7cal23crkm4xj1llnwa17p2gd61qdqyid";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.54.0-linux-arm64.tar.gz";
+        sha256 = "0mckknab8cx2jcwf3n09mfnc1yvzgxfddx8d6vmbirlclclhwcl8";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.77.0-linux-arm64.tar.gz";
-        sha256 = "1vv27n5nvdkrqci6wi5a5j1zczx263wslhb2h3jhfx5drl0v99ix";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.79.0-linux-arm64.tar.gz";
+        sha256 = "1bd3w8lbfcxvr2bl9cqm4kysq1fklsni69w3w42ss7lvayw8rzna";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.21.0-linux-arm64.tar.gz";
-        sha256 = "05a7bpw8wg5939jnsrz8wdsyrbhs2sbpsbq7z5h92pq9s9ymsmxw";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.22.0-linux-arm64.tar.gz";
+        sha256 = "1zx40hd62hksmks4rw1iwj8q8assvwxmdmf32dg2fbwv1a7m5icw";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.16.0-linux-arm64.tar.gz";
@@ -479,52 +479,52 @@
     ];
     aarch64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.116.1-darwin-arm64.tar.gz";
-        sha256 = "0hfvvcpd6hjqsrbbjlplczn2z7si87nizxfjpwrcz98jnvdqjgld";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.117.0-darwin-arm64.tar.gz";
+        sha256 = "0slxzic4yrpl6pxqmhb75iis3rircjl5pbjrd4dcm4q03haisjj7";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.15.0-darwin-arm64.tar.gz";
-        sha256 = "0mfjvzgphhi9dqa6kgfd8avvr80xvfbiikc4kj04fl85rc39h2hr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.16.0-darwin-arm64.tar.gz";
+        sha256 = "19mcmznkyg6rs85d170xly2n8h7cclq88h8c1dv1jak1hnx6yl4j";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.1.0-darwin-arm64.tar.gz";
         sha256 = "0zsch3dj2bcajxjivz1xjbiby6v6lb2axqq9y3nx8q6l6wnn1hsa";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.55.1-darwin-arm64.tar.gz";
-        sha256 = "1g8dysychpf4867zp22gwaj5z2cchybds86c3say95pzbrlv5njm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.55.2-darwin-arm64.tar.gz";
+        sha256 = "1fnnq29rfg8z5z127b2kqz34r9c4vwcw4jgsgvhw3d6yds083i0n";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.7.5-darwin-arm64.tar.gz";
-        sha256 = "0wh34s4dynb4vjfr8rm5rnxs6w06sgq1r7a6sp16p93c5ib7lj3y";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.8.1-darwin-arm64.tar.gz";
+        sha256 = "0669w7ywzd7mhh2l725zfxg8xavsanwzxfv99n3y2w5za33aaz1f";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.3.2-darwin-arm64.tar.gz";
         sha256 = "16sv847ymz60s8p5p7am2lclrinlhh9f5bch3721ap86acxyh2i4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.36.0-darwin-arm64.tar.gz";
-        sha256 = "1fkry5pnlw1qxvbc89xib0656yc1ca35gsbif1b1hh5dgj3wfs9a";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.37.1-darwin-arm64.tar.gz";
+        sha256 = "0s3d9jpwwrkxcbpn5jb18g6kpcxx6ky4jv4h3k0jlqa1ddkm9sap";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.49.1-darwin-arm64.tar.gz";
-        sha256 = "1h2kp7vss1i5xjbzcriz1q41f7qmz41zx6zw0p64d3in9gjzyd3s";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.78.0-darwin-arm64.tar.gz";
+        sha256 = "1rjdrzi37g2pwslk7npyv15pmdmllwfhq576ilk987z3z7z3plhs";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.0.0-darwin-arm64.tar.gz";
-        sha256 = "1pjcbk8lsqpdw12mp07czf8gzam7dhak3zb4zcd0z9xp3fj0qvgd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.50.0-darwin-arm64.tar.gz";
+        sha256 = "01na2dmm4jrpn0k7s1ikvqjfczp3v5kg53lp7cbidhk90v2ar8aa";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.77.1-darwin-arm64.tar.gz";
-        sha256 = "1fap3aapqhzf831yrcb727rmmy8k18bcvr63qwvmbcwvr6gj4ffk";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.1.1-darwin-arm64.tar.gz";
+        sha256 = "1m53gzviimjcr3dl0pydafa6dl1r0q6ih1gwhm7lvgpll300wl1q";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.29.0-darwin-arm64.tar.gz";
         sha256 = "0p7v06n1zqv4czbrc7i41lmhjn0ypazji1gngrx5x3r1dc3c4bpk";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.2-darwin-arm64.tar.gz";
-        sha256 = "1zjggbm0cas99vzh98yld7af93bamzb7492612a1bdk1x30w46jn";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.3-darwin-arm64.tar.gz";
+        sha256 = "1wfiq9rzdzp8pa88g7dbgz644dih8f9f0apw6vfngjjsd2kj3k1c";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.28.0-darwin-arm64.tar.gz";
@@ -535,28 +535,28 @@
         sha256 = "04bsf97vbp0r9zp7x3xpfcx2h8f3pckilqnc353kr2bf566vam25";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.3-darwin-arm64.tar.gz";
-        sha256 = "0kk3pg793ikq5qn0z1yqg6viddcs35lzyzyly95jhh2v2154arbm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.4-darwin-arm64.tar.gz";
+        sha256 = "128wvq4qvyrgv2q07bpvf96c5vm0fm77x4dcycf0j89hq3rj09zy";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.1-darwin-arm64.tar.gz";
         sha256 = "12bzicm43l7yvh02v5fx3z8v46l9i7a9f677735xi5rjbmd2an4c";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.7.0-darwin-arm64.tar.gz";
-        sha256 = "1w25hs64ay3csmaz6ydpi1srn2qsbg8r3kbxqjfghpi0ryx9prgv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.8.0-darwin-arm64.tar.gz";
+        sha256 = "1054c8cici744kyf817q8fk89ljcijxi7g5vi9080w4j6hxmabvn";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.23.0-darwin-arm64.tar.gz";
-        sha256 = "14yx04q0pps9pycfh9n3bkr73x1ir3q2p683bvwgrjsb046djb23";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.24.0-darwin-arm64.tar.gz";
+        sha256 = "0749qxzi2pg0y0f25xw2fkyh9cx6q9lzllqfzfahi97wckr5wl25";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.0-darwin-arm64.tar.gz";
-        sha256 = "0whmhq9vks8yni96b7d4kavr2mlbhxvlbjmwvdp0nvwpaa36wkk0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.1-darwin-arm64.tar.gz";
+        sha256 = "0wafcf9vw32yrpj9qmffhbxn08602br6n06mjyvcjm25mg8iwb4p";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.11.0-darwin-arm64.tar.gz";
-        sha256 = "1bml2wwa72yb35rwp5bsh91rd1pci27za9901vsbwpcq78wza7si";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v7.0.0-darwin-arm64.tar.gz";
+        sha256 = "18ch0d32ggy7bx2gmyhz3lnimwy5431n6fwmmbzy66792pcxn9k2";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.32.0-darwin-arm64.tar.gz";
@@ -567,8 +567,8 @@
         sha256 = "1cjq3n11hlsj4v0yi2xyapqk4ibf16qg9n9apwwgqcaz1l1sq8z2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.11.0-darwin-arm64.tar.gz";
-        sha256 = "177fycz1nabhf8c4clnd5qjl1iirg2fwrq47cw11w8r4hyfz3qbw";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.12.0-darwin-arm64.tar.gz";
+        sha256 = "1zkf12nagsaxz8k8163fqd4yd6dhizlj6hqakllx7i9np6410wyx";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.19.1-darwin-arm64.tar.gz";
@@ -583,28 +583,28 @@
         sha256 = "0lpwg6rwf5fa2ydf3j243k07jp6briayy953n4m2hyqhsgs6q62q";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.15.2-darwin-arm64.tar.gz";
-        sha256 = "05qzgzp2dcm3p3s6jz14pjxhgiid9wj000glyrfl07g9cf6xa95a";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v4.0.0-darwin-arm64.tar.gz";
+        sha256 = "1ljqziijcdni2vgh55qb5sglb2vwzlkzvpbhxcjj6x3ap4ywiiyf";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.11.1-darwin-arm64.tar.gz";
         sha256 = "16m2bd2ymaaaw4ac80kg349vwgc8f1b0nqkkkmc24k3hxv9rxlh9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.1-darwin-arm64.tar.gz";
-        sha256 = "1bxsmf1zmv21si7viwarmy4xfnghpldnayi62v73a0fbgz3c8vn3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.2-darwin-arm64.tar.gz";
+        sha256 = "0m266lqic8x0j6nx7yyfan1d8n2zqpiil41qvqkax3za81aymykv";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.53.0-darwin-arm64.tar.gz";
-        sha256 = "1m60a7g0516rczcjs0x5ff0iq9ngdyg61h60q1wf5qs7idldkg59";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.54.0-darwin-arm64.tar.gz";
+        sha256 = "0299a0hhcm7zg7p45d6njb1cfjy1l8xqiinfs63chj427gk225i7";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.77.0-darwin-arm64.tar.gz";
-        sha256 = "00mdkyns6dhn5pkvb6jr33ikk54msrg0xzabvlwz38ali29d6pz0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.79.0-darwin-arm64.tar.gz";
+        sha256 = "08x8yzjfl8j3rwlwzxfqmjlxxn177kdhmrz9g8a7igp8yggyq5hs";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.21.0-darwin-arm64.tar.gz";
-        sha256 = "1c7nx7c9byc9rqvfhfhz472y4q6p0f6dqx60chlw50x4l39pkvxa";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.22.0-darwin-arm64.tar.gz";
+        sha256 = "1qr3wzi62pa9cix086gs4k5za316hivxvnp4xiihrsc8lg31yrnj";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.16.0-darwin-arm64.tar.gz";
diff --git a/pkgs/tools/admin/qovery-cli/default.nix b/pkgs/tools/admin/qovery-cli/default.nix
index d51b0e716c97d..6db291f236d5c 100644
--- a/pkgs/tools/admin/qovery-cli/default.nix
+++ b/pkgs/tools/admin/qovery-cli/default.nix
@@ -9,16 +9,16 @@
 
 buildGoModule rec {
   pname = "qovery-cli";
-  version = "0.92.8";
+  version = "0.93.1";
 
   src = fetchFromGitHub {
     owner = "Qovery";
     repo = "qovery-cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-8QDuYb6NzoX9c+gROR5ECqAp/pfwFtPPNMaNiWGPtD4=";
+    hash = "sha256-wJivWE0B2u3xNhD9mAbHFCxl3aKv6YfWxJ/8UOV4E70=";
   };
 
-  vendorHash = "sha256-6gjYnDv4L2AO47uWcp/MySX9i3IDMIWQUvgglxPCvGo=";
+  vendorHash = "sha256-wGgzVtQc4e0thiM9fJb7BxJl348wCDZvPCx0+Qlw0mQ=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/admin/salt/default.nix b/pkgs/tools/admin/salt/default.nix
index e38016de93ac9..de836d4e82271 100644
--- a/pkgs/tools/admin/salt/default.nix
+++ b/pkgs/tools/admin/salt/default.nix
@@ -10,12 +10,12 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "salt";
-  version = "3007.0";
+  version = "3007.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Qb+E5x/GVb+KS1LrRA0GIa6WEJaghtIOEy4VEuLt3/g=";
+    hash = "sha256-uTOsTLPksRGLRtraVcnMa9xvD5S0ySh3rsRLJcaijJo=";
   };
 
   patches = [
diff --git a/pkgs/tools/admin/trivy/default.nix b/pkgs/tools/admin/trivy/default.nix
index 05dd64d737b3b..a3b2398db12ac 100644
--- a/pkgs/tools/admin/trivy/default.nix
+++ b/pkgs/tools/admin/trivy/default.nix
@@ -11,19 +11,19 @@
 
 buildGoModule rec {
   pname = "trivy";
-  version = "0.51.2";
+  version = "0.51.4";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = "trivy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GvX6oR0E+ynYm+7tfnzQUIScdKFWBQ81FNrMdPRuDcY=";
+    hash = "sha256-f7qWD63dvKGnwGmeENPjtqvpRgq06MkLCQ0MVgsLJRw=";
   };
 
   # Hash mismatch on across Linux and Darwin
   proxyVendor = true;
 
-  vendorHash = "sha256-MRdN45629s09Sfr63p6tDDBlEd7MYlDFnJoqcC+ixMU=";
+  vendorHash = "sha256-U1HkIBHoZVrisTbVRqqP/B9idZ9G3KsCGLSVBbBV7lE=";
 
   subPackages = [ "cmd/trivy" ];
 
diff --git a/pkgs/tools/archivers/gnutar/default.nix b/pkgs/tools/archivers/gnutar/default.nix
index 34615d7e8bede..98f0b54e73fc9 100644
--- a/pkgs/tools/archivers/gnutar/default.nix
+++ b/pkgs/tools/archivers/gnutar/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, autoreconfHook, acl, libintl }:
+{ lib, stdenv, fetchurl, autoreconfHook, updateAutotoolsGnuConfigScriptsHook, acl, libintl }:
 
 # Note: this package is used for bootstrapping fetchurl, and thus
 # cannot use fetchpatch! All mutable patches (generated by GitHub or
@@ -30,7 +30,8 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "info" ];
 
-  nativeBuildInputs = lib.optional stdenv.isDarwin autoreconfHook;
+  nativeBuildInputs = lib.optional stdenv.isDarwin autoreconfHook
+    ++ lib.optional (!stdenv.isDarwin) updateAutotoolsGnuConfigScriptsHook;
   # Add libintl on Darwin specifically as it fails to link (or skip)
   # NLS on it's own:
   #  "_libintl_textdomain", referenced from:
diff --git a/pkgs/tools/archivers/sharutils/default.nix b/pkgs/tools/archivers/sharutils/default.nix
index 5c84e596531c3..2a656a9dd3273 100644
--- a/pkgs/tools/archivers/sharutils/default.nix
+++ b/pkgs/tools/archivers/sharutils/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, gettext, coreutils }:
+{ lib, stdenv, fetchurl, fetchpatch, gettext, coreutils, updateAutotoolsGnuConfigScriptsHook }:
 
 stdenv.mkDerivation rec {
   pname = "sharutils";
@@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
 
   # GNU Gettext is needed on non-GNU platforms.
   buildInputs = [ coreutils gettext ];
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
 
   # These tests try to hit /etc/passwd to find out your username if pass in a submitter
   # name on the command line. Since we block access to /etc/passwd on the Darwin sandbox
diff --git a/pkgs/tools/archivers/zip/default.nix b/pkgs/tools/archivers/zip/default.nix
index 8a81691d64488..a192b38785049 100644
--- a/pkgs/tools/archivers/zip/default.nix
+++ b/pkgs/tools/archivers/zip/default.nix
@@ -36,6 +36,8 @@ stdenv.mkDerivation rec {
     # Buffer overflow on Unicode characters in path names
     # https://bugzilla.redhat.com/show_bug.cgi?id=2165653
     ./buffer-overflow-on-utf8-rh-bug-2165653.patch
+    # Fixes forward declaration errors with timezone.c
+    ./fix-time.h-not-included.patch
   ] ++ lib.optionals (enableNLS && !stdenv.isCygwin) [ ./natspec-gentoo.patch.bz2 ];
 
   buildInputs = lib.optional enableNLS libnatspec
diff --git a/pkgs/tools/archivers/zip/fix-time.h-not-included.patch b/pkgs/tools/archivers/zip/fix-time.h-not-included.patch
new file mode 100644
index 0000000000000..9db8d66e9a10f
--- /dev/null
+++ b/pkgs/tools/archivers/zip/fix-time.h-not-included.patch
@@ -0,0 +1,10 @@
+--- zip30/timezone.c	2024-05-21 05:14:55.959957517 +0000
++++ zip30/timezone.c	2024-05-21 05:15:14.852006815 +0000
+@@ -41,6 +41,7 @@
+ #include "timezone.h"
+ #include <ctype.h>
+ #include <errno.h>
++#include <time.h>
+
+ #ifdef IZTZ_DEFINESTDGLOBALS
+ long timezone = 0;
diff --git a/pkgs/tools/compression/bzip2/default.nix b/pkgs/tools/compression/bzip2/default.nix
index bfab2dbb94670..0268b60afc52c 100644
--- a/pkgs/tools/compression/bzip2/default.nix
+++ b/pkgs/tools/compression/bzip2/default.nix
@@ -25,7 +25,7 @@ in {
 
   patches = [
     (fetchurl {
-      url = "https://ftp.suse.com/pub/people/sbrabec/bzip2/for_downstream/bzip2-1.0.6.2-autoconfiscated.patch";
+      url = "ftp://ftp.suse.com/pub/people/sbrabec/bzip2/for_downstream/bzip2-1.0.6.2-autoconfiscated.patch";
       sha256 = "sha256-QMufl6ffJVVVVZespvkCbFpB6++R1lnq1687jEsUjr0=";
     })
   ];
diff --git a/pkgs/tools/compression/gzip/default.nix b/pkgs/tools/compression/gzip/default.nix
index baff7f0303874..05539050861f3 100644
--- a/pkgs/tools/compression/gzip/default.nix
+++ b/pkgs/tools/compression/gzip/default.nix
@@ -1,7 +1,9 @@
 { lib, stdenv
 , fetchurl
 , makeWrapper
+, updateAutotoolsGnuConfigScriptsHook
 , xz
+, runtimeShellPackage
 }:
 
 # Note: this package is used for bootstrapping fetchurl, and thus
@@ -22,7 +24,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  nativeBuildInputs = [ xz.bin makeWrapper ];
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook makeWrapper ];
+  buildInputs = [ runtimeShellPackage ];
 
   makeFlags = [
     "SHELL=/bin/sh"
diff --git a/pkgs/tools/compression/upx/default.nix b/pkgs/tools/compression/upx/default.nix
index 3a2c6394f90a9..f20e39a4bca5e 100644
--- a/pkgs/tools/compression/upx/default.nix
+++ b/pkgs/tools/compression/upx/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "upx";
-  version = "4.2.3";
+  version = "4.2.4";
   src = fetchFromGitHub {
     owner = "upx";
     repo = "upx";
     rev = "v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-3+aOadTqQ1apnrXt2I27j8P6iJF96W90YjxVTPmRhs0=";
+    hash = "sha256-r36BD5f/sQSz3GjvreOptc7atIaaBZKpU+7qm+BKLss=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/compression/xz/default.nix b/pkgs/tools/compression/xz/default.nix
index 4431a178ac02f..2a7ca487bcfd8 100644
--- a/pkgs/tools/compression/xz/default.nix
+++ b/pkgs/tools/compression/xz/default.nix
@@ -29,6 +29,12 @@ stdenv.mkDerivation (finalAttrs: {
   enableParallelBuilding = true;
   doCheck = true;
 
+  # this could be accomplished by updateAutotoolsGnuConfigScriptsHook, but that causes infinite recursion
+  # necessary for FreeBSD code path in configure
+  postPatch = ''
+    substituteInPlace ./build-aux/config.guess --replace-fail /usr/bin/uname uname
+  '';
+
   preCheck = ''
     # Tests have a /bin/sh dependency...
     patchShebangs tests
diff --git a/pkgs/tools/filesystems/btrfs-progs/default.nix b/pkgs/tools/filesystems/btrfs-progs/default.nix
index 6e2bdaea8f9e2..beaff7922e558 100644
--- a/pkgs/tools/filesystems/btrfs-progs/default.nix
+++ b/pkgs/tools/filesystems/btrfs-progs/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl
+{ lib, stdenv, fetchurl, fetchpatch
 , buildPackages
 , pkg-config
 , zstd
@@ -17,6 +17,14 @@ stdenv.mkDerivation rec {
     hash = "sha256-DkCgaKJsKWnLAqlbqf74iNemNW4/RX/5KtJHfQhzVng=";
   };
 
+  patches = [
+    # backport fix build with e2fsprogs 1.47.1
+    (fetchpatch {
+      url = "https://github.com/kdave/btrfs-progs/commit/bcb887a4de2c56426a7a7de8d440b6ad75579f10.patch";
+      hash = "sha256-Ir5EiiU0E8GBnGex0Q/WTNexW9XTWFNceiLQvXygIoo=";
+    })
+  ];
+
   nativeBuildInputs = [
     pkg-config
   ] ++ [
diff --git a/pkgs/tools/filesystems/e2fsprogs/default.nix b/pkgs/tools/filesystems/e2fsprogs/default.nix
index a5ca282955f33..1ed100a3fe6b1 100644
--- a/pkgs/tools/filesystems/e2fsprogs/default.nix
+++ b/pkgs/tools/filesystems/e2fsprogs/default.nix
@@ -1,16 +1,16 @@
 { lib, stdenv, buildPackages, fetchurl, fetchpatch, pkg-config, libuuid, gettext, texinfo
-, withFuse ? stdenv.isLinux, fuse
+, withFuse ? stdenv.isLinux, fuse3
 , shared ? !stdenv.hostPlatform.isStatic
 , e2fsprogs, runCommand
 }:
 
 stdenv.mkDerivation rec {
   pname = "e2fsprogs";
-  version = "1.47.0";
+  version = "1.47.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
-    hash = "sha256-Zmev3lbu8MavJmhJdEAOTSKI6knpRBv15iKRldUaNXg=";
+    hash = "sha256-mvzSAfOUKdLbJJKusT26XnXWzFBoK3MtyjVkO9XwkuM=";
   };
 
   # fuse2fs adds 14mb of dependencies
@@ -20,15 +20,9 @@ stdenv.mkDerivation rec {
   depsBuildBuild = [ buildPackages.stdenv.cc ];
   nativeBuildInputs = [ pkg-config texinfo ];
   buildInputs = [ libuuid gettext ]
-    ++ lib.optionals withFuse [ fuse ];
+    ++ lib.optionals withFuse [ fuse3 ];
 
   patches = [
-    (fetchpatch { # avoid using missing __GNUC_PREREQ(X,Y)
-      url = "https://raw.githubusercontent.com/void-linux/void-packages/9583597eb3e6e6b33f61dbc615d511ce030bc443/srcpkgs/e2fsprogs/patches/fix-glibcism.patch";
-      sha256 = "1gfcsr0i3q8q2f0lqza8na0iy4l4p3cbii51ds6zmj0y4hz2dwhb";
-      excludes = [ "lib/ext2fs/hashmap.h" ];
-      extraPrefix = "";
-    })
     # Avoid trouble with older systems like NixOS 23.05.
     # TODO: most likely drop this at some point, e.g. when 23.05 loses support.
     (fetchurl {
@@ -36,6 +30,16 @@ stdenv.mkDerivation rec {
       url = "https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/plain/debian/patches/disable-metadata_csum_seed-and-orphan_file-by-default?h=debian/master&id=3fb3d18baba90e5d48d94f4c0b79b2d271b0c913";
       hash = "sha256-YD11K4s2bqv0rvzrxtaiodzLp3ztULlOlPUf1XcpxRY=";
     })
+    (fetchurl {
+      name = "SIZEOF_SIZE_T.patch";
+      url = "https://lore.kernel.org/linux-ext4/20240527074121.2767083-1-hi@alyssa.is/raw";
+      hash = "sha256-QdsvcvBi0mC/4YErqG0UKl94MH0OZpFVTGszNqBe/qw=";
+    })
+    (fetchurl {
+      name = "unused-parameters.patch";
+      url = "https://lore.kernel.org/linux-ext4/20240527091542.4121237-2-hi@alyssa.is/raw";
+      hash = "sha256-pMoqm2eo5zYaTdU+Ppa4+posCVFb2A9S4uo5oApaaqc=";
+    })
   ];
 
   configureFlags =
diff --git a/pkgs/tools/filesystems/exfatprogs/default.nix b/pkgs/tools/filesystems/exfatprogs/default.nix
index dafdd2c830a9d..9b5ca5eca7b5a 100644
--- a/pkgs/tools/filesystems/exfatprogs/default.nix
+++ b/pkgs/tools/filesystems/exfatprogs/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "exfatprogs";
-  version = "1.2.2";
+  version = "1.2.3";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-2j+N/H+Vdy3Q6Ie2gBGkNKtLjt19RDvm9HZMS5l3L5Y=";
+    sha256 = "sha256-v/SN2RAX+RjNReYkbXYy5Lm/NgIeDeLnAVx5cWo01tM=";
   };
 
   nativeBuildInputs = [ pkg-config autoreconfHook file ];
diff --git a/pkgs/tools/filesystems/gcsfuse/default.nix b/pkgs/tools/filesystems/gcsfuse/default.nix
index 49fa05e23feef..8ad145254281c 100644
--- a/pkgs/tools/filesystems/gcsfuse/default.nix
+++ b/pkgs/tools/filesystems/gcsfuse/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "gcsfuse";
-  version = "2.0.1";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "googlecloudplatform";
     repo = "gcsfuse";
     rev = "v${version}";
-    hash = "sha256-8O8JIN2KmTw5bMmcxu9ZeNiS48XkMUUpAX3+6Km13Y8=";
+    hash = "sha256-1SKTwHvSCkkYhPY2yVTIRVsddW/Gt8Vke6W+a4VO6fc=";
   };
 
-  vendorHash = "sha256-nw2b0lDUJ9B+LloySns4cUzXeJ8uv4oYkZY0Jjg4hxc=";
+  vendorHash = "sha256-7IEF11gqou3Dk+CdU1HKPV7MyksldMmciQ74I9MEtuo=";
 
   subPackages = [ "." "tools/mount_gcsfuse" ];
 
diff --git a/pkgs/tools/filesystems/xfsprogs/default.nix b/pkgs/tools/filesystems/xfsprogs/default.nix
index 327d1e74f7c5b..c8895c077904e 100644
--- a/pkgs/tools/filesystems/xfsprogs/default.nix
+++ b/pkgs/tools/filesystems/xfsprogs/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xfsprogs";
-  version = "6.6.0";
+  version = "6.8.0";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/fs/xfs/xfsprogs/${pname}-${version}.tar.xz";
-    hash = "sha256-UMovRnbfj6tMtMPvPdUS1VUeaETUCmWjHVuOA1k9It8=";
+    hash = "sha256-eLard27r5atS4IhKcPobNjPmSigrHs+ukfXdHZ7F8H0=";
   };
 
   outputs = [ "bin" "dev" "out" "doc" ];
diff --git a/pkgs/tools/graphics/gfxreconstruct/default.nix b/pkgs/tools/graphics/gfxreconstruct/default.nix
index 6dbc039b5df29..5e5cbfbabc59f 100644
--- a/pkgs/tools/graphics/gfxreconstruct/default.nix
+++ b/pkgs/tools/graphics/gfxreconstruct/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gfxreconstruct";
-  version = "1.0.3";
+  version = "1.0.4";
 
   src = fetchFromGitHub {
     owner = "LunarG";
     repo = "gfxreconstruct";
     rev = "v${version}";
-    hash = "sha256-4qNAMPswsYtzHmTKr+waDLoWa9xex5hvX1Og/KibiBg=";
+    hash = "sha256-MuCdJoBFxKwDCOCltlU3oBS9elFS6F251dHjHcIb4Jg=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/tools/graphics/gifski/default.nix b/pkgs/tools/graphics/gifski/default.nix
index ba2427281528b..b95fc26e67158 100644
--- a/pkgs/tools/graphics/gifski/default.nix
+++ b/pkgs/tools/graphics/gifski/default.nix
@@ -44,11 +44,6 @@ rustPlatform.buildRustPackage rec {
   #
   checkType = "debug";
 
-  # Cargo.lock is outdated
-  postPatch = ''
-    cargo metadata --offline
-  '';
-
   meta = with lib; {
     description = "GIF encoder based on libimagequant (pngquant)";
     homepage = "https://gif.ski/";
diff --git a/pkgs/tools/graphics/mangohud/default.nix b/pkgs/tools/graphics/mangohud/default.nix
index fc0fc9930d786..bb14ef0f37025 100644
--- a/pkgs/tools/graphics/mangohud/default.nix
+++ b/pkgs/tools/graphics/mangohud/default.nix
@@ -4,7 +4,6 @@
 , fetchFromGitHub
 , fetchurl
 , substituteAll
-, fetchpatch
 , coreutils
 , curl
 , glxinfo
@@ -34,6 +33,7 @@
 , gamescopeSupport ? true # build mangoapp and mangohudctl
 , lowerBitnessSupport ? stdenv.hostPlatform.isx86_64 # Support 32 bit on 64bit
 , nix-update-script
+, libxkbcommon
 }:
 
 let
@@ -94,14 +94,14 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "mangohud";
-  version = "0.7.1";
+  version = "0.7.2";
 
   src = fetchFromGitHub {
     owner = "flightlessmango";
     repo = "MangoHud";
     rev = "refs/tags/v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-Gnq+1j+PFbeipAfXGnTq7wZdVQeG9R9vLAKZnZj7Bvs=";
+    hash = "sha256-cj/F/DWUDm2AHTJvHgkKa+KdIrfxPWLzI570Dp4VFhs=";
   };
 
   outputs = [ "out" "doc" "man" ];
@@ -140,13 +140,6 @@ stdenv.mkDerivation (finalAttrs: {
       libdbus = dbus.lib;
       inherit hwdata;
     })
-
-    # Add dep_vulkan to mangoapp and test_amdgpu to fix build failure
-    # TODO: Remove in next release
-    (fetchpatch {
-      url = "https://github.com/flightlessmango/MangoHud/commit/cba217ffaf93aea6acb4e59e3e46bf912f740ccf.patch";
-      hash = "sha256-1My4/EuSMpe3AFhhFOJr8rz/wnywp+BW+F4dSgxToe0=";
-    })
   ];
 
   postPatch = ''
@@ -202,6 +195,7 @@ stdenv.mkDerivation (finalAttrs: {
     glew
     glfw
     xorg.libXrandr
+    libxkbcommon
   ];
 
   doCheck = true;
diff --git a/pkgs/tools/graphics/mangohud/hardcode-dependencies.patch b/pkgs/tools/graphics/mangohud/hardcode-dependencies.patch
index 1c0f3a497fe6f..4b7954a3ee5e7 100644
--- a/pkgs/tools/graphics/mangohud/hardcode-dependencies.patch
+++ b/pkgs/tools/graphics/mangohud/hardcode-dependencies.patch
@@ -12,17 +12,18 @@ index 7379af1..4eef3fe 100644
          return false;
      }
 diff --git a/src/logging.cpp b/src/logging.cpp
-index ca33ee3..90d3638 100644
+index 7d4cb98..256128c 100644
 --- a/src/logging.cpp
 +++ b/src/logging.cpp
-@@ -26,7 +26,11 @@ string exec(string command) {
+@@ -27,8 +27,12 @@ string exec(string command) {
  #endif
      std::array<char, 128> buffer;
      std::string result;
 +
 +    char* originalPath = getenv("PATH");
 +    setenv("PATH", "@path@", 1);
-     std::unique_ptr<FILE, decltype(&pclose)> pipe(popen(command.c_str(), "r"), pclose);
+     auto deleter = [](FILE* ptr){ pclose(ptr); };
+     std::unique_ptr<FILE, decltype(deleter)> pipe(popen(command.c_str(), "r"), deleter);
 +    setenv("PATH", originalPath, 1);
      if (!pipe) {
        return "popen failed!";
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix
index 286539174a95a..f28b636c47ebf 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix
@@ -1,44 +1,35 @@
 { lib, stdenv
 , fetchFromGitHub
-, glib
-, gettext
 , xorg
 , pkg-config
 , wrapGAppsHook3
-, gtk3
 , go
 }:
 
 stdenv.mkDerivation rec {
   pname = "ibus-bamboo";
-  version = "0.8.2-rc18";
+  version = "0.8.4-rc3";
 
   src = fetchFromGitHub {
     owner = "BambooEngine";
     repo = pname;
     rev = "v" + lib.toUpper version;
-    sha256 = "sha256-5FSGPUJtUdYyeqJenvKaMIJcvon91I//62fnTCXcdig=";
+    sha256 = "sha256-P09gXuxbD4RJcXvgnRyFgSxt6NEXfpXJDPzl50ZtAxM=";
   };
 
   nativeBuildInputs = [
-    gettext
     pkg-config
     wrapGAppsHook3
     go
   ];
 
   buildInputs = [
-    glib
-    gtk3
-    xorg.libX11
-    xorg.xorgproto
     xorg.libXtst
-    xorg.libXi
   ];
 
   preConfigure = ''
     export GOCACHE="$TMPDIR/go-cache"
-    sed -i "s,/usr,$out," bamboo.xml
+    sed -i "s,/usr,$out," data/bamboo.xml
   '';
 
   makeFlags = [
@@ -52,6 +43,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/BambooEngine/ibus-bamboo";
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ superbo ];
+    maintainers = with maintainers; [ astronaut0212 ];
   };
 }
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix
index 8bfb1552775ee..b34da61a574cb 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix
@@ -13,13 +13,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "ibus-typing-booster";
-  version = "2.25.7";
+  version = "2.25.8";
 
   src = fetchFromGitHub {
     owner = "mike-fabian";
     repo = "ibus-typing-booster";
     rev = version;
-    hash = "sha256-CZqtjiBTvnTvTf1AUd0IWINSQo4iOaJkBFT2YFsqTvI=";
+    hash = "sha256-0fjtLsIoMiI7zhaxU8RcoG4k48e02sJZvpjEBDfB/I0=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config wrapGAppsHook3 gobject-introspection ];
diff --git a/pkgs/tools/inputmethods/keymapper/default.nix b/pkgs/tools/inputmethods/keymapper/default.nix
index 874a651b66a7c..c751aa4d7445a 100644
--- a/pkgs/tools/inputmethods/keymapper/default.nix
+++ b/pkgs/tools/inputmethods/keymapper/default.nix
@@ -10,18 +10,18 @@
 , wayland
 , libxkbcommon
 , gtk3
-, libappindicator
+, libayatana-appindicator
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "keymapper";
-  version = "4.3.0";
+  version = "4.3.1";
 
   src = fetchFromGitHub {
     owner = "houmain";
     repo = "keymapper";
     rev = finalAttrs.version;
-    hash = "sha256-QfISsRm0j/VoTmpDQes5XQooXHcmjqRD/WS/nvPDl00=";
+    hash = "sha256-SjYPkcXBEHjK7zgwL6U4ltjvhKuGMZWbp55LtndU400=";
   };
 
   # all the following must be in nativeBuildInputs
@@ -35,7 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
     libusb1
     libxkbcommon
     gtk3
-    libappindicator
+    libayatana-appindicator
   ];
 
   meta = {
diff --git a/pkgs/tools/misc/bartib/default.nix b/pkgs/tools/misc/bartib/default.nix
index 0719f8a168bba..f958c5396f1d7 100644
--- a/pkgs/tools/misc/bartib/default.nix
+++ b/pkgs/tools/misc/bartib/default.nix
@@ -12,9 +12,6 @@ rustPlatform.buildRustPackage rec {
   };
 
   cargoSha256 = "sha256-s/oGv7/0LgNpdGu6dnvvbxDgFDvcvcHL01dSPxhMVWE=";
-  preConfigure = ''
-    cargo metadata --offline
-  '';
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/misc/calamares-nixos-extensions/default.nix b/pkgs/tools/misc/calamares-nixos-extensions/default.nix
index 2b8965544ab3d..481ed56f3de5a 100644
--- a/pkgs/tools/misc/calamares-nixos-extensions/default.nix
+++ b/pkgs/tools/misc/calamares-nixos-extensions/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "calamares-nixos-extensions";
-  version = "0.3.15";
+  version = "0.3.16";
 
   src = fetchFromGitHub {
     owner = "NixOS";
     repo = "calamares-nixos-extensions";
     rev = version;
-    hash = "sha256-PZQjrteLWcInXIavuANHfzfl9gOXATWtIlDUp45j5Ao=";
+    hash = "sha256-ajQWmZVY60Q2cGJcLqMT2ypIi7bMMiyHMgdlp3g9874=";
   };
 
   installPhase = ''
diff --git a/pkgs/tools/misc/coreboot-utils/default.nix b/pkgs/tools/misc/coreboot-utils/default.nix
index e13b97e0c3a0b..0410a23221eaa 100644
--- a/pkgs/tools/misc/coreboot-utils/default.nix
+++ b/pkgs/tools/misc/coreboot-utils/default.nix
@@ -1,23 +1,23 @@
 { lib, stdenv, fetchgit, pkg-config, zlib, pciutils, openssl, coreutils, acpica-tools, makeWrapper, gnugrep, gnused, file, buildEnv }:
 
 let
-  version = "24.02";
+  version = "24.05";
 
   commonMeta = with lib; {
     description = "Various coreboot-related tools";
     homepage = "https://www.coreboot.org";
     license = with licenses; [ gpl2Only gpl2Plus ];
-    maintainers = with maintainers; [ felixsinger ];
+    maintainers = with maintainers; [ felixsinger jmbaur ];
     platforms = platforms.linux;
   };
 
-  generic = { pname, path ? "util/${pname}", ... }@args: stdenv.mkDerivation (rec {
+  generic = { pname, path ? "util/${pname}", ... }@args: stdenv.mkDerivation ({
     inherit pname version;
 
     src = fetchgit {
       url = "https://review.coreboot.org/coreboot";
-      rev = "4845b69db29107ce8d9cd2969b4aad5c7daa6399";
-      sha256 = "sha256-whALKP9MetyMJSmXVf0WYd9dP8AGa+ADAB8cmIqt4HU=";
+      rev = version;
+      hash = "sha256-Fq3tZje6QoMskxqWd61OstgI9Sj25yijf8S3LiTJuYc=";
     };
 
     enableParallelBuilding = true;
diff --git a/pkgs/tools/misc/coreutils/default.nix b/pkgs/tools/misc/coreutils/default.nix
index 2e2f2f1601247..cf0142eeb9b2b 100644
--- a/pkgs/tools/misc/coreutils/default.nix
+++ b/pkgs/tools/misc/coreutils/default.nix
@@ -39,7 +39,13 @@ stdenv.mkDerivation rec {
     hash = "sha256-zTKO3qyS9qZl3p8yPJO3Eq8YWLwuDYjz9xAEaUcKG4o=";
   };
 
-  patches = lib.optionals stdenv.hostPlatform.isMusl [
+  patches = [
+    # https://lists.gnu.org/archive/html/bug-coreutils/2024-05/msg00037.html
+    # This is not precisely the patch provided - this is a diff of the Makefile.in
+    # after the patch was applied and autoreconf was run, since adding autoreconf
+    # here causes infinite recursion.
+    ./fix-mix-flags-deps-libintl.patch
+  ] ++ lib.optionals stdenv.hostPlatform.isMusl [
     # https://lists.gnu.org/archive/html/bug-coreutils/2024-03/msg00089.html
     ./fix-test-failure-musl.patch
   ];
@@ -99,13 +105,12 @@ stdenv.mkDerivation rec {
   separateDebugInfo = true;
 
   nativeBuildInputs = [
-    # autoreconfHook is due to patch, normally only needed for cygwin
-    autoreconfHook
     perl
     xz.bin
   ]
   ++ optionals stdenv.hostPlatform.isCygwin [
     # due to patch
+    autoreconfHook
     texinfo
   ];
 
diff --git a/pkgs/tools/misc/coreutils/fix-mix-flags-deps-libintl.patch b/pkgs/tools/misc/coreutils/fix-mix-flags-deps-libintl.patch
new file mode 100644
index 0000000000000..f6002b55faf69
--- /dev/null
+++ b/pkgs/tools/misc/coreutils/fix-mix-flags-deps-libintl.patch
@@ -0,0 +1,49 @@
+--- a/Makefile.in	2024-05-21 17:03:50.488979000 -0700
++++ b/Makefile.in	2024-05-21 17:18:56.243091000 -0700
+@@ -692,8 +692,6 @@
+ @USE_PCLMUL_CRC32_TRUE@am__append_211 = $(cksum_pclmul_ldadd)
+ @USE_AVX2_WC_LINECOUNT_TRUE@am__append_212 = src/libwc_avx2.a
+ @USE_AVX2_WC_LINECOUNT_TRUE@am__append_213 = $(wc_avx2_ldadd)
+-@SINGLE_BINARY_FALSE@src_coreutils_DEPENDENCIES =  \
+-@SINGLE_BINARY_FALSE@	$(am__DEPENDENCIES_2)
+ # Command arch
+ # Command hostname
+ # Command chroot
+@@ -2825,6 +2823,12 @@
+ nodist_src_coreutils_OBJECTS =
+ src_coreutils_OBJECTS = $(am_src_coreutils_OBJECTS) \
+ 	$(nodist_src_coreutils_OBJECTS)
++@SINGLE_BINARY_FALSE@src_coreutils_DEPENDENCIES =  \
++@SINGLE_BINARY_FALSE@	$(am__DEPENDENCIES_2)
++@SINGLE_BINARY_TRUE@src_coreutils_DEPENDENCIES =  \
++@SINGLE_BINARY_TRUE@	$(am__DEPENDENCIES_1) \
++@SINGLE_BINARY_TRUE@	$(am__DEPENDENCIES_2) \
++@SINGLE_BINARY_TRUE@	$(am__DEPENDENCIES_1)
+ src_coreutils_LINK = $(CCLD) $(src_coreutils_CFLAGS) $(CFLAGS) \
+ 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+ am__objects_221 = src/copy.$(OBJEXT) src/cp-hash.$(OBJEXT) \
+@@ -7492,7 +7496,12 @@
+ src_libstdbuf_so_CFLAGS = -fPIC $(AM_CFLAGS)
+ # Single binary dependencies
+ @SINGLE_BINARY_TRUE@src_coreutils_CFLAGS = -DSINGLE_BINARY $(AM_CFLAGS)
+-@SINGLE_BINARY_TRUE@src_coreutils_DEPENDENCIES = $(LDADD) $(single_binary_deps)
++
++# Creates symlinks or shebangs to the installed programs when building
++# coreutils single binary.
++@SINGLE_BINARY_TRUE@EXTRA_src_coreutils_DEPENDENCIES =  \
++@SINGLE_BINARY_TRUE@	$(single_binary_deps) \
++@SINGLE_BINARY_TRUE@	src/coreutils_$(single_binary_install_type)
+ @SINGLE_BINARY_TRUE@src_libsinglebin_dir_a_DEPENDENCIES = src/libsinglebin_ls.a
+ @SINGLE_BINARY_TRUE@src_libsinglebin_vdir_a_DEPENDENCIES = src/libsinglebin_ls.a
+ @SINGLE_BINARY_TRUE@src_libsinglebin_arch_a_DEPENDENCIES = src/libsinglebin_uname.a
+@@ -7880,10 +7889,6 @@
+ @SINGLE_BINARY_TRUE@src_libsinglebin_yes_a_DEPENDENCIES = $(src_yes_DEPENDENCIES)
+ @SINGLE_BINARY_TRUE@src_libsinglebin_yes_a_CFLAGS = "-Dmain=single_binary_main_yes (int, char **);  int single_binary_main_yes"  -Dusage=_usage_yes $(src_coreutils_CFLAGS)
+ 
+-# Creates symlinks or shebangs to the installed programs when building
+-# coreutils single binary.
+-@SINGLE_BINARY_TRUE@EXTRA_src_coreutils_DEPENDENCIES = src/coreutils_$(single_binary_install_type)
+-
+ # false exits nonzero even with --help or --version.
+ # test doesn't support --help or --version.
+ # Tell automake to exempt then from that installcheck test.
diff --git a/pkgs/tools/misc/esphome/default.nix b/pkgs/tools/misc/esphome/default.nix
index 2593ef5b7bb80..7dc67ba2ef70f 100644
--- a/pkgs/tools/misc/esphome/default.nix
+++ b/pkgs/tools/misc/esphome/default.nix
@@ -19,14 +19,14 @@ let
 in
 python.pkgs.buildPythonApplication rec {
   pname = "esphome";
-  version = "2024.4.2";
+  version = "2024.5.4";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-q4SVsfd5PJjeqt6UJJG6vuyxTA/bqDDl6e5dxhWIfYM=";
+    hash = "sha256-UxNMHRQLrViK9ssFc0vHA/zqNw5yH8E6n+OAnq6vJdQ=";
   };
 
   nativeBuildInputs = with python.pkgs; [
diff --git a/pkgs/tools/misc/ethtool/default.nix b/pkgs/tools/misc/ethtool/default.nix
index 72590420e1a1f..13b1b48158848 100644
--- a/pkgs/tools/misc/ethtool/default.nix
+++ b/pkgs/tools/misc/ethtool/default.nix
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ethtool";
-  version = "6.7";
+  version = "6.9";
 
   src = fetchurl {
     url = "mirror://kernel/software/network/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-w65SawHOTY32x5SrFw3kpBBNER6o2Ns/H9fCX8uQVhk=";
+    sha256 = "sha256-pxsDVAEGYcXPF4vGBu1Q/LkYBc8Yl60OsoGDh6X9DNk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/faketty/default.nix b/pkgs/tools/misc/faketty/default.nix
index 228cdf7f2f2fd..76baf0edd1167 100644
--- a/pkgs/tools/misc/faketty/default.nix
+++ b/pkgs/tools/misc/faketty/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "faketty";
-  version = "1.0.16";
+  version = "1.0.17";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-BlQnVjYPFUfEurFUE2MHOL2ad56Nu/atzRuFu4OoCSI=";
+    hash = "sha256-JUvQg8WLk5+O+3fbbQSUW6Mtp9TrYlrt+uwMAzm082Q=";
   };
 
-  cargoHash = "sha256-q9jx03XYA977481B9xuUfaaMBDbSVx4xREj4Q1Ti/Yw=";
+  cargoHash = "sha256-Y+jcq2twIGDbHTA6aBGnyN9Old993Y/2j/fKnXhZGYU=";
 
   postPatch = ''
     patchShebangs tests/test.sh
diff --git a/pkgs/tools/misc/file/default.nix b/pkgs/tools/misc/file/default.nix
index 8cff5ccd70afb..4aab839a8a560 100644
--- a/pkgs/tools/misc/file/default.nix
+++ b/pkgs/tools/misc/file/default.nix
@@ -1,4 +1,5 @@
 { lib, stdenv, fetchurl, file, zlib, libgnurx
+, updateAutotoolsGnuConfigScriptsHook
 , testers
 }:
 
@@ -30,7 +31,8 @@ stdenv.mkDerivation (finalAttrs: {
   strictDeps = true;
   enableParallelBuilding = true;
 
-  nativeBuildInputs = lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) file;
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ]
+    ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) file;
   buildInputs = [ zlib ]
     ++ lib.optional stdenv.hostPlatform.isWindows libgnurx;
 
diff --git a/pkgs/tools/misc/findutils/default.nix b/pkgs/tools/misc/findutils/default.nix
index b37eaeaea1be1..cfa4105cda0d4 100644
--- a/pkgs/tools/misc/findutils/default.nix
+++ b/pkgs/tools/misc/findutils/default.nix
@@ -1,4 +1,5 @@
 { lib, stdenv, fetchurl
+, updateAutotoolsGnuConfigScriptsHook
 , coreutils
 }:
 
@@ -22,11 +23,13 @@ stdenv.mkDerivation rec {
 
   patches = [ ./no-install-statedir.patch ];
 
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
   buildInputs = [ coreutils ]; # bin/updatedb script needs to call sort
 
   # Since glibc-2.25 the i686 tests hang reliably right after test-sleep.
   doCheck
     =  !stdenv.hostPlatform.isDarwin
+    && !stdenv.hostPlatform.isFreeBSD
     && !(stdenv.hostPlatform.libc == "glibc" && stdenv.hostPlatform.isi686)
     && (stdenv.hostPlatform.libc != "musl")
     && stdenv.hostPlatform == stdenv.buildPlatform;
diff --git a/pkgs/tools/misc/fluent-bit/default.nix b/pkgs/tools/misc/fluent-bit/default.nix
index 86ae31ba214d0..0fcb6692243b7 100644
--- a/pkgs/tools/misc/fluent-bit/default.nix
+++ b/pkgs/tools/misc/fluent-bit/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "fluent-bit";
-  version = "3.0.3";
+  version = "3.0.6";
 
   src = fetchFromGitHub {
     owner = "fluent";
     repo = "fluent-bit";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-nlBzD9u7DsCbJq9FxsbsP8F/tPklZ43NV8T2eiwWE24=";
+    hash = "sha256-o48qnyYAiV2gt81hC8/ja+/JWNFlMb47QsBt6BD7VjA=";
   };
 
   nativeBuildInputs = [ cmake flex bison ];
diff --git a/pkgs/tools/misc/foma/default.nix b/pkgs/tools/misc/foma/default.nix
index 5d82f699e7d8c..aecc13f88e250 100644
--- a/pkgs/tools/misc/foma/default.nix
+++ b/pkgs/tools/misc/foma/default.nix
@@ -1,34 +1,31 @@
-{ lib, stdenv, fetchFromGitHub, zlib, flex, bison, readline, darwin }:
+{ lib, stdenv, fetchFromGitHub, bison, cmake, flex, pkg-config, readline, zlib }:
 
 stdenv.mkDerivation rec {
   pname = "foma";
-  version = "0.10.0alpha";
+  version = "0.10.0alpha-unstable-03-13-2024";
 
   src = fetchFromGitHub {
     owner = "mhulden";
     repo = "foma";
-    rev = "82f9acdef234eae8b7619ccc3a386cc0d7df62bc";
-    sha256 = "1vf01l18j8cksnavbabcckp9gg692w6v5lg81xrzv6f5v14zp4nr";
+    rev = "e0d8122bda4bbd56f18510bdfe840617f9736ae7";
+    hash = "sha256-UbwuHTilKWo4sVD3igcSlTqH78N6JQFvRD35QwfoX10=";
   };
 
   sourceRoot = "${src.name}/foma";
 
-  nativeBuildInputs = [ flex bison ]
-    ++ lib.optional stdenv.isDarwin darwin.cctools;
-  buildInputs = [ zlib readline ];
+  outputs = [ "out" "dev" ];
 
-  makeFlags = [
-    "CC:=$(CC)"
-    "RANLIB:=$(RANLIB)"
-    "prefix=$(out)"
-  ] ++ lib.optionals (!stdenv.isDarwin) [
-    "AR:=$(AR)" # libtool is used for darwin
-  ];
+  nativeBuildInputs = [ bison cmake flex pkg-config ];
+  buildInputs = [ readline zlib ];
 
-  patchPhase = ''
-    substituteInPlace Makefile \
-      --replace '-ltermcap' ' '
-  '';
+  cmakeFlags = [
+    # the cmake package does not handle absolute CMAKE_INSTALL_XXXDIR
+    # correctly (setting it to an absolute path causes include files to go to
+    # $out/$out/include, because the absolute path is interpreted with root at
+    # $out).
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+  ];
 
   meta = with lib; {
     description = "A multi-purpose finite-state toolkit designed for applications ranging from natural language processing to research in automata theory";
diff --git a/pkgs/tools/misc/gh-dash/default.nix b/pkgs/tools/misc/gh-dash/default.nix
index 82201e0bd53dd..a5435c2991fb6 100644
--- a/pkgs/tools/misc/gh-dash/default.nix
+++ b/pkgs/tools/misc/gh-dash/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "gh-dash";
-  version = "3.14.0";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "dlvhdr";
     repo = "gh-dash";
     rev = "v${version}";
-    hash = "sha256-6YPUGOQ2KBfu+3XAgub9Cpz0QBrU2kV+gq13tUtzY+w=";
+    hash = "sha256-mF7n4nrsKyp46U4jar+ioUKwpaETiDt4Ol/5DZrjvCs=";
   };
 
   vendorHash = "sha256-jCf9FWAhZK5hTzyy8N4r5dfUYTgESmsn8iKxCccgWiM=";
diff --git a/pkgs/tools/misc/gh-eco/default.nix b/pkgs/tools/misc/gh-eco/default.nix
deleted file mode 100644
index 329ef60c1b4e1..0000000000000
--- a/pkgs/tools/misc/gh-eco/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib
-, fetchFromGitHub
-, buildGoModule
-}:
-
-buildGoModule rec {
-  pname = "gh-eco";
-  version = "0.1.3";
-
-  src = fetchFromGitHub {
-    owner = "coloradocolby";
-    repo = "gh-eco";
-    rev = "v${version}";
-    sha256 = "sha256-TE1AymNlxjUtkBnBO/VBjYaqLuRyxL75s6sMidKUXTE=";
-  };
-
-  vendorHash = "sha256-K85fYV1uP/qSw8GPoG1u6UQo94vQOUo4cd9Ro+UApQ0=";
-
-  ldflags = [
-    "-s"
-    "-w"
-    "-X main.Version=${version}"
-  ];
-
-  meta = with lib; {
-    homepage = "https://github.com/coloradocolby/gh-eco";
-    description = "gh extension to explore the ecosystem";
-    license = licenses.mit;
-    maintainers = with maintainers; [ helium ];
-    mainProgram = "gh-eco";
-  };
-}
-
diff --git a/pkgs/tools/misc/goreleaser/default.nix b/pkgs/tools/misc/goreleaser/default.nix
index 1fff3856bfb64..d84dc3c89ab7d 100644
--- a/pkgs/tools/misc/goreleaser/default.nix
+++ b/pkgs/tools/misc/goreleaser/default.nix
@@ -9,16 +9,16 @@
 }:
 buildGoModule rec {
   pname = "goreleaser";
-  version = "1.26.1";
+  version = "1.26.2";
 
   src = fetchFromGitHub {
     owner = "goreleaser";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-ZUHXH8WBjYW5qE7iQPP8URMUNxn2eLl4UbhAxDbn3qI=";
+    hash = "sha256-/vRN3JcfAK0p9y4kusQooziozG7Wn40b4XjsXe+fE7E=";
   };
 
-  vendorHash = "sha256-EPrYZz6I9M+zih4gGQTtJ5LAjsQgDqvNMk7hU3PwkKQ=";
+  vendorHash = "sha256-1tJksVsGEWVd2wjic4k8ow+/Is9GaCnBMg0UAJzwpkA=";
 
   ldflags =
     [ "-s" "-w" "-X main.version=${version}" "-X main.builtBy=nixpkgs" ];
diff --git a/pkgs/tools/misc/hunt/default.nix b/pkgs/tools/misc/hunt/default.nix
index 6163e8cf3b0da..69b9de8f7e3da 100644
--- a/pkgs/tools/misc/hunt/default.nix
+++ b/pkgs/tools/misc/hunt/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "hunt";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "LyonSyonII";
     repo = "hunt-rs";
     rev = "v${version}";
-    sha256 = "sha256-cpqietS/yTI5ONkH4jjIUOVATutd2vj9xmxRbBwmzeI=";
+    sha256 = "sha256-NKXZECtepuFg6qTuXF9Gnat/vnrygt3UOZb0YUKPqi8=";
   };
 
-  cargoHash = "sha256-LWZaU+zHbfiogWXW9XGA3iP95u3qqh2LX9LL2lsQPLg=";
+  cargoHash = "sha256-ExwcFJVqQF/RTUyv1FvOCnlB+9Z7uhi/5UUjW7WcXTk=";
 
   meta = with lib; {
     description = "Simplified Find command made with Rust";
diff --git a/pkgs/tools/misc/ili2c/default.nix b/pkgs/tools/misc/ili2c/default.nix
index d4ac130463770..040824d9d464c 100644
--- a/pkgs/tools/misc/ili2c/default.nix
+++ b/pkgs/tools/misc/ili2c/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation (finalAttrs: {
     ];
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; teams.geospatial.members ++ [ das-g ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     mainProgram = "ili2c";
   };
 })
diff --git a/pkgs/tools/misc/kalker/default.nix b/pkgs/tools/misc/kalker/default.nix
index ef152524da7ad..604fab1878f58 100644
--- a/pkgs/tools/misc/kalker/default.nix
+++ b/pkgs/tools/misc/kalker/default.nix
@@ -23,11 +23,6 @@ rustPlatform.buildRustPackage rec {
 
   outputs = [ "out" "lib" ];
 
-  # Cargo.lock is outdated
-  preConfigure = ''
-    cargo metadata --offline
-  '';
-
   postInstall = ''
     moveToOutput "lib" "$lib"
   '';
diff --git a/pkgs/tools/misc/lazydocker/default.nix b/pkgs/tools/misc/lazydocker/default.nix
index 59a6ad16ce9d5..9c6f4481c9e08 100644
--- a/pkgs/tools/misc/lazydocker/default.nix
+++ b/pkgs/tools/misc/lazydocker/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "lazydocker";
-  version = "0.23.1";
+  version = "0.23.3";
 
   src = fetchFromGitHub {
     owner = "jesseduffield";
     repo = "lazydocker";
     rev = "v${version}";
-    sha256 = "sha256-nW3eaSisXLqoWZ+5YLLCfC1k4lTXWd5ZqY2xTM/I0PY=";
+    sha256 = "sha256-1nw0X8sZBtBsxlEUDVYMAinjMEMlIlzjJ4s+WApeE6o=";
   };
 
   vendorHash = null;
diff --git a/pkgs/tools/misc/license-generator/default.nix b/pkgs/tools/misc/license-generator/default.nix
index 2aa2235e7c3cc..01aa8e554fb0b 100644
--- a/pkgs/tools/misc/license-generator/default.nix
+++ b/pkgs/tools/misc/license-generator/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "license-generator";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-ijA/AqLeQ9/XLeCriWNUA6R3iKyq+QPDH5twSvqFmEA=";
+    hash = "sha256-OIut6eE8cm7eBeHwuCUqSMDH48ZiJpF4vFaQ6wVLnfg=";
   };
 
-  cargoHash = "sha256-FfkCV4anPHElGGIOYDSzHam5ohVGpOgtu/nM0aw9HzU=";
+  cargoHash = "sha256-tv3Qx4JP2Lbl+k686mX7acabh7nyP1E9w7cQUnjh+pE=";
 
   meta = with lib; {
     description = "Command-line tool for generating license files";
diff --git a/pkgs/tools/misc/mrtg/default.nix b/pkgs/tools/misc/mrtg/default.nix
index 343a3d5c2a253..58882f3be00a1 100644
--- a/pkgs/tools/misc/mrtg/default.nix
+++ b/pkgs/tools/misc/mrtg/default.nix
@@ -1,5 +1,11 @@
 { lib, stdenv, fetchurl, perl, gd, rrdtool }:
 
+let
+  perlWithPkgs = perl.withPackages (pp: with pp;[
+    Socket6
+    IOSocketINET6
+  ]);
+in
 stdenv.mkDerivation rec {
   pname = "mrtg";
   version = "2.17.10";
@@ -10,7 +16,9 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    perl
+    # add support for ipv6 snmp:
+    # https://github.com/oetiker/mrtg/blob/433ebfa5fc043971b46a5cd975fb642c76e3e49d/src/bin/mrtg#L331-L341
+    perlWithPkgs
     gd
     rrdtool
   ];
diff --git a/pkgs/tools/misc/nvimpager/default.nix b/pkgs/tools/misc/nvimpager/default.nix
index fb10d0ad89c96..80900bf30ae8e 100644
--- a/pkgs/tools/misc/nvimpager/default.nix
+++ b/pkgs/tools/misc/nvimpager/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nvimpager";
-  version = "0.12.0";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "lucc";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-RmpPWS9gnBnR+Atw6uzBmeDSgoTOFSdKzHoJ84O+gyA=";
+    sha256 = "sha256-Au9rRZMZfU4qHi/ng6JO8FnMpySKDbKzr75SBPY3QiA=";
   };
 
   buildInputs = [
@@ -25,18 +25,15 @@ stdenv.mkDerivation rec {
   buildFlags = [ "nvimpager.configured" "nvimpager.1" ];
   preBuild = ''
     patchShebangs nvimpager
-    substituteInPlace nvimpager --replace ':-nvim' ':-${neovim}/bin/nvim'
+    substituteInPlace nvimpager --replace-fail ':-nvim' ':-${lib.getExe neovim}'
     '';
 
   doCheck = true;
   nativeCheckInputs = [ lua51Packages.busted util-linux neovim ];
-  # filter out one test that fails in the sandbox of nix
-  checkPhase = let
-    exclude-tags = if stdenv.isDarwin then "nix,mac" else "nix";
-  in ''
-    runHook preCheck
-    make test BUSTED='busted --output TAP --exclude-tags=${exclude-tags}'
-    runHook postCheck
+  # filter out one test that fails in the sandbox of nix or with neovim v0.10
+  # or on macOS
+  preCheck = ''
+    checkFlagsArray+=('BUSTED=busted --output TAP --exclude-tags=${"nix,v10" + lib.optionalString stdenv.isDarwin ",mac"}')
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/misc/plantuml-server/default.nix b/pkgs/tools/misc/plantuml-server/default.nix
index 7335944ff4237..a06dc2d3c7b6e 100644
--- a/pkgs/tools/misc/plantuml-server/default.nix
+++ b/pkgs/tools/misc/plantuml-server/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchurl, nixosTests }:
 
 let
-  version = "1.2024.4";
+  version = "1.2024.5";
 in
 stdenv.mkDerivation rec {
   pname = "plantuml-server";
   inherit version;
   src = fetchurl {
     url = "https://github.com/plantuml/plantuml-server/releases/download/v${version}/plantuml-v${version}.war";
-    sha256 = "sha256-7m0MOP6AN7V7mlrVfwxGy1AfCQx2ufp5GU2WQoSTIBc=";
+    sha256 = "sha256-WbgjPPEm51DXzpSt2j8It8PWKRKrIK8HXoWY+N/1mlg=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/tools/misc/plantuml/default.nix b/pkgs/tools/misc/plantuml/default.nix
index 8f4d82f2ea49e..83476bd995735 100644
--- a/pkgs/tools/misc/plantuml/default.nix
+++ b/pkgs/tools/misc/plantuml/default.nix
@@ -8,11 +8,11 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "plantuml";
-  version = "1.2024.4";
+  version = "1.2024.5";
 
   src = fetchurl {
     url = "https://github.com/plantuml/plantuml/releases/download/v${finalAttrs.version}/plantuml-pdf-${finalAttrs.version}.jar";
-    hash = "sha256-8Xs7fyYr4CvXNO+g2g+7LLObUUVKxmt/27/wHdCwSIE=";
+    hash = "sha256-YayIedHIIpecVF7BZSvBTp66Eb7He+l+1RCir5KuL28=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/pouf/default.nix b/pkgs/tools/misc/pouf/default.nix
index e114af2c2c1eb..ac37b64a7a885 100644
--- a/pkgs/tools/misc/pouf/default.nix
+++ b/pkgs/tools/misc/pouf/default.nix
@@ -16,11 +16,6 @@ rustPlatform.buildRustPackage rec {
 
   cargoHash = "sha256-rVJAaeg27SdM8cTx12rKLIGEYtXUhLHXUYpT78oVNlo=";
 
-  # Cargo.lock is outdated.
-  preConfigure = ''
-    cargo update --offline
-  '';
-
   postInstall = "make PREFIX=$out copy-data";
 
   meta = with lib; {
diff --git a/pkgs/tools/misc/svtplay-dl/default.nix b/pkgs/tools/misc/svtplay-dl/default.nix
index 5abdb5bba60d7..6b540fac7ffd8 100644
--- a/pkgs/tools/misc/svtplay-dl/default.nix
+++ b/pkgs/tools/misc/svtplay-dl/default.nix
@@ -15,7 +15,7 @@ let
     python pytest nose3 cryptography pyyaml requests mock requests-mock
     python-dateutil setuptools;
 
-  version = "4.73";
+  version = "4.79";
 
 in
 
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     owner = "spaam";
     repo = "svtplay-dl";
     rev = version;
-    hash = "sha256-e8ewsx2mx62JTUnpMoSRL44EGDllQuk/k9gRztOkWMc=";
+    hash = "sha256-m5lIiWOROzNUONAVRoD6vdE7+1TeI6L0tNw+afYtNZA=";
   };
 
   pythonPaths = [ cryptography pyyaml requests ];
diff --git a/pkgs/tools/misc/tmux-mem-cpu-load/default.nix b/pkgs/tools/misc/tmux-mem-cpu-load/default.nix
index 1e197ef162eab..012a18911d406 100644
--- a/pkgs/tools/misc/tmux-mem-cpu-load/default.nix
+++ b/pkgs/tools/misc/tmux-mem-cpu-load/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tmux-mem-cpu-load";
-  version = "3.8.0";
+  version = "3.8.1";
 
   src = fetchFromGitHub {
     owner = "thewtex";
     repo = "tmux-mem-cpu-load";
     rev = "v${version}";
-    sha256 = "sha256-dRHV2XF3NFzd4HT9SbRnEn8U40QTnAUJDsM51NA9fEk=";
+    sha256 = "sha256-8QUcEbgk3DSsWt9TRHHtDhQ7a1hkK8RZEX+0d3h/c0w=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/misc/trash-cli/default.nix b/pkgs/tools/misc/trash-cli/default.nix
index 7f89f7a12cdee..e807bff429d99 100644
--- a/pkgs/tools/misc/trash-cli/default.nix
+++ b/pkgs/tools/misc/trash-cli/default.nix
@@ -1,14 +1,14 @@
-{ lib, fetchFromGitHub, installShellFiles, python3Packages }:
+{ lib, fetchFromGitHub, installShellFiles, nix-update-script, python3Packages }:
 
 python3Packages.buildPythonApplication rec {
   pname = "trash-cli";
-  version = "0.24.4.17";
+  version = "0.24.5.26";
 
   src = fetchFromGitHub {
     owner = "andreafrancia";
     repo = "trash-cli";
     rev = version;
-    hash = "sha256-pXDqn+QuhTE12zXq6A4GSGSCtYJ6hBahv2p9aYQXxaI=";
+    hash = "sha256-ltuMnxtG4jTTSZd6ZHWl8wI0oQMMFqW0HAPetZMfGtc=";
   };
 
   propagatedBuildInputs = with python3Packages; [ psutil six ];
@@ -56,6 +56,8 @@ python3Packages.buildPythonApplication rec {
     done
   '';
 
+  passthru.updateScript = nix-update-script { };
+
   meta = with lib; {
     homepage = "https://github.com/andreafrancia/trash-cli";
     description = "Command line interface to the freedesktop.org trashcan";
diff --git a/pkgs/tools/misc/ttyplot/default.nix b/pkgs/tools/misc/ttyplot/default.nix
index 64b9b7cddfab7..b68e2ba0bc69e 100644
--- a/pkgs/tools/misc/ttyplot/default.nix
+++ b/pkgs/tools/misc/ttyplot/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ttyplot";
-  version = "1.6.4";
+  version = "1.6.5";
 
   src = fetchFromGitHub {
     owner = "tenox7";
     repo = "ttyplot";
     rev = version;
-    hash = "sha256-yxAFqi3TgiKiZYgR891ahkwUqZLk/JDsjujOYmBjUtk=";
+    hash = "sha256-DLFEnEo+EQuq4ziqo9qfyHGD1Zosk9Kb/80QjnI2aXk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/you-get/default.nix b/pkgs/tools/misc/you-get/default.nix
index 225c37e4ba464..65ebf26450a02 100644
--- a/pkgs/tools/misc/you-get/default.nix
+++ b/pkgs/tools/misc/you-get/default.nix
@@ -8,7 +8,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "you-get";
-  version = "0.4.1650";
+  version = "0.4.1700";
   format = "setuptools";
 
   # Tests aren't packaged, but they all hit the real network so
@@ -17,7 +17,7 @@ python3.pkgs.buildPythonApplication rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-s8lEz3pjzEaMzMiBbc5/wAjC5rW6Uq7+XOIIGBijrUc=";
+    sha256 = "sha256-XNIUkgEqRGrBtSxvfkSUSqxltZ6ZdkWoTc9kz4BD6Zw=";
   };
 
   patches = [
diff --git a/pkgs/tools/misc/yt-dlp/default.nix b/pkgs/tools/misc/yt-dlp/default.nix
index 87326c4531319..d4e1f6df6dc4f 100644
--- a/pkgs/tools/misc/yt-dlp/default.nix
+++ b/pkgs/tools/misc/yt-dlp/default.nix
@@ -25,13 +25,13 @@ buildPythonPackage rec {
   # The websites yt-dlp deals with are a very moving target. That means that
   # downloads break constantly. Because of that, updates should always be backported
   # to the latest stable release.
-  version = "2024.4.9";
+  version = "2024.5.27";
   pyproject = true;
 
   src = fetchPypi {
     inherit version;
     pname = "yt_dlp";
-    hash = "sha256-fukFcrTTE7WCuZyJ5OzPd5tX/1TtwzGHPGs/unf6qLA=";
+    hash = "sha256-NWbA3iQNDNPRwihc5lX3LKON/GGNY01GgYsA2J1SiL4=";
   };
 
   build-system = [
diff --git a/pkgs/tools/networking/cfspeedtest/default.nix b/pkgs/tools/networking/cfspeedtest/default.nix
index cb18d9ae1ed34..dd6f3b145710b 100644
--- a/pkgs/tools/networking/cfspeedtest/default.nix
+++ b/pkgs/tools/networking/cfspeedtest/default.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cfspeedtest";
-  version = "1.2.3";
+  version = "1.2.4";
 
   src = fetchFromGitHub {
     owner = "code-inflation";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-xg5jSA3J6QzqiItNV+poVxxXmKKPE7TsEYMGdKv4k+k=";
+    hash = "sha256-55g3dskYlAJNnoLwjTL0XvpDIk2l53EQ+CZ1MzhuxNI=";
   };
 
-  cargoHash = "sha256-ZXETP60R2121xTFqsvIFziUtKhL+ODGCpG98Mlt/zlg=";
+  cargoHash = "sha256-lTYiL5kCm9NClN4YjIlHz6aQlEwrESE25lOdJGkLMDA=";
 
   meta = with lib; {
     description = "Unofficial CLI for speed.cloudflare.com";
diff --git a/pkgs/tools/networking/croc/default.nix b/pkgs/tools/networking/croc/default.nix
index 6772ccb750f14..36d92d275b7d9 100644
--- a/pkgs/tools/networking/croc/default.nix
+++ b/pkgs/tools/networking/croc/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "croc";
-  version = "9.6.16";
+  version = "10.0.5";
 
   src = fetchFromGitHub {
     owner = "schollz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-rAOWiu0f9f1v1oD5HI/kl1knoHkU2LgS3D2qsdd98y4=";
+    hash = "sha256-JrlNvfOxoOhvsjaRacGLZAc4r9HG69UdjFjb3GnSnW0=";
   };
 
   vendorHash = "sha256-SxdN1IyQd/DLI8ZXyCWsW3JLi4dlGSvpr+ub/Oqkw70=";
@@ -20,6 +20,7 @@ buildGoModule rec {
       local-relay = callPackage ./test-local-relay.nix { };
     };
   };
+
   meta = with lib; {
     description = "Easily and securely send things from one computer to another";
     longDescription = ''
diff --git a/pkgs/tools/networking/croc/test-local-relay.nix b/pkgs/tools/networking/croc/test-local-relay.nix
index a3aa0f3c966df..90d335885e7fc 100644
--- a/pkgs/tools/networking/croc/test-local-relay.nix
+++ b/pkgs/tools/networking/croc/test-local-relay.nix
@@ -6,15 +6,20 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ croc ];
 
   buildCommand = ''
-    HOME=$(mktemp -d)
+    HOME="$(mktemp -d)"
     # start a local relay
     croc relay --ports 11111,11112 &
+
+    export CROC_SECRET="sN3nx4hGLeihmn8G"
+
     # start sender in background
     MSG="See you later, alligator!"
     croc --relay localhost:11111 send --code correct-horse-battery-staple --text "$MSG" &
+
     # wait for things to settle
     sleep 1
     MSG2=$(croc --relay localhost:11111 --yes correct-horse-battery-staple)
+
     # compare
     [ "$MSG" = "$MSG2" ] && touch $out
   '';
diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix
index 0bd65a307b0b7..cee5be45a3ba2 100644
--- a/pkgs/tools/networking/curl/default.nix
+++ b/pkgs/tools/networking/curl/default.nix
@@ -49,14 +49,14 @@ assert !((lib.count (x: x) [ gnutlsSupport opensslSupport wolfsslSupport rustlsS
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "curl";
-  version = "8.7.1";
+  version = "8.8.0";
 
   src = fetchurl {
     urls = [
       "https://curl.haxx.se/download/curl-${finalAttrs.version}.tar.xz"
       "https://github.com/curl/curl/releases/download/curl-${builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version}/curl-${finalAttrs.version}.tar.xz"
     ];
-    hash = "sha256-b+oqrGpGEPvQQAr7C83b5yWKZMY/H2jlhV68DGWXEM0=";
+    hash = "sha256-D1i7lfwzDIpG7rPfVwGw2Qydm/zEK9HNCHkdElUdRAA=";
   };
 
   patches = lib.optionals (lib.versionOlder finalAttrs.version "8.7.2") [
@@ -65,7 +65,10 @@ stdenv.mkDerivation (finalAttrs: {
     ./8.7.1-compression-fix.patch
   ];
 
+  # this could be accomplished by updateAutotoolsGnuConfigScriptsHook, but that causes infinite recursion
+  # necessary for FreeBSD code path in configure
   postPatch = ''
+    substituteInPlace ./config.guess --replace-fail /usr/bin/uname uname
     patchShebangs scripts
   '';
 
diff --git a/pkgs/tools/networking/dae/default.nix b/pkgs/tools/networking/dae/default.nix
index 0c95db7e3af1d..4597ac4768638 100644
--- a/pkgs/tools/networking/dae/default.nix
+++ b/pkgs/tools/networking/dae/default.nix
@@ -5,17 +5,17 @@
 }:
 buildGoModule rec {
   pname = "dae";
-  version = "0.4.0";
+  version = "0.6.0rc2";
 
   src = fetchFromGitHub {
     owner = "daeuniverse";
     repo = "dae";
     rev = "v${version}";
-    hash = "sha256-hvAuWCacaWxXwxx5ktj57hnWt8fcnwD6rUuRj1+ZtFA=";
+    hash = "sha256-u+1DkcdXXm/wmKG7yu8nv3OOeG/l5KC+9UcIrYOmsUA=";
     fetchSubmodules = true;
   };
 
-  vendorHash = "sha256-4U6zIxK8K+MGxRboTtsKntDMp8/cQWPqXQ3l03AEtBs=";
+  vendorHash = "sha256-jJbXa3xnQXhEhrhmdi+JqdinLuRrFY5Tb9lsnCancFE=";
 
   proxyVendor = true;
 
diff --git a/pkgs/tools/networking/edgedb/0001-dynamically-patchelf-binaries.patch b/pkgs/tools/networking/edgedb/0001-dynamically-patchelf-binaries.patch
index ec2dccfc359a9..5b7b720fc7e77 100644
--- a/pkgs/tools/networking/edgedb/0001-dynamically-patchelf-binaries.patch
+++ b/pkgs/tools/networking/edgedb/0001-dynamically-patchelf-binaries.patch
@@ -1,8 +1,8 @@
 diff --git a/src/portable/install.rs b/src/portable/install.rs
-index dc0d932..5394fc1 100644
+index 15944e4..f873349 100644
 --- a/src/portable/install.rs
 +++ b/src/portable/install.rs
-@@ -133,8 +133,16 @@ fn unpack_package(cache_file: &Path, target_dir: &Path)
+@@ -134,8 +134,16 @@ fn unpack_package(cache_file: &Path, target_dir: &Path) -> anyhow::Result<()> {
      for entry in arch.entries()? {
          let mut entry = entry?;
          let path = entry.path()?;
@@ -11,7 +11,7 @@ index dc0d932..5394fc1 100644
 +            path_iter.next(); // discards first folder
 +            path_iter.as_path().starts_with("bin")
 +        };
-         if let Some(path) = build_path(&target_dir, &*path)? {
+         if let Some(path) = build_path(&target_dir, &path)? {
 -            entry.unpack(path)?;
 +            entry.unpack(&path)?;
 +            if is_inside_bin {
@@ -20,7 +20,7 @@ index dc0d932..5394fc1 100644
          }
      }
      bar.finish_and_clear();
-@@ -203,3 +211,11 @@ pub fn package(pkg_info: &PackageInfo) -> anyhow::Result<InstallInfo> {
+@@ -222,3 +230,11 @@ pub fn package(pkg_info: &PackageInfo) -> anyhow::Result<InstallInfo> {
  
      Ok(info)
  }
diff --git a/pkgs/tools/networking/edgedb/Cargo.lock b/pkgs/tools/networking/edgedb/Cargo.lock
index 42213f27d667b..bf0ae748327a4 100644
--- a/pkgs/tools/networking/edgedb/Cargo.lock
+++ b/pkgs/tools/networking/edgedb/Cargo.lock
@@ -4,9 +4,9 @@ version = 3
 
 [[package]]
 name = "addr2line"
-version = "0.19.0"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
 dependencies = [
  "gimli",
 ]
@@ -25,9 +25,9 @@ checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
 
 [[package]]
 name = "aes"
-version = "0.8.2"
+version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241"
+checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0"
 dependencies = [
  "cfg-if",
  "cipher",
@@ -35,32 +35,15 @@ dependencies = [
 ]
 
 [[package]]
-name = "ahash"
-version = "0.7.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
-dependencies = [
- "getrandom",
- "once_cell",
- "version_check",
-]
-
-[[package]]
 name = "aho-corasick"
-version = "1.0.2"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
-name = "android-tzdata"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
-
-[[package]]
 name = "ansi-escapes"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -68,9 +51,9 @@ checksum = "7e3c0daaaae24df5995734b689627f8fa02101bc5bbc768be3055b66a010d7af"
 
 [[package]]
 name = "anstream"
-version = "0.6.4"
+version = "0.6.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44"
+checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5"
 dependencies = [
  "anstyle",
  "anstyle-parse",
@@ -82,49 +65,49 @@ dependencies = [
 
 [[package]]
 name = "anstyle"
-version = "1.0.0"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.2.2"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140"
+checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
 dependencies = [
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle-query"
-version = "1.0.0"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
 dependencies = [
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "anstyle-wincon"
-version = "3.0.1"
+version = "3.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
 dependencies = [
  "anstyle",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "anyhow"
-version = "1.0.71"
+version = "1.0.82"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8"
+checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519"
 
 [[package]]
 name = "append-only-vec"
-version = "0.1.2"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5608767d94038891df4c7bb82f6b1beb55fe3d204735985e20de329bc35d5fee"
+checksum = "f3cb8f874ecf419dd8165d0279746de966cb8966636d028845e3bd65d519812a"
 
 [[package]]
 name = "arc-swap"
@@ -134,26 +117,26 @@ checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
 
 [[package]]
 name = "arrayref"
-version = "0.3.6"
+version = "0.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
+checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545"
 
 [[package]]
 name = "arrayvec"
-version = "0.7.2"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
+checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
 
 [[package]]
 name = "assert_cmd"
-version = "2.0.11"
+version = "2.0.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86d6b683edf8d1119fe420a94f8a7e389239666aa72e65495d91c00462510151"
+checksum = "00ad3f3a942eee60335ab4342358c161ee296829e0d16ff42fc1d6cb07815467"
 dependencies = [
  "anstyle",
  "bstr",
  "doc-comment",
- "predicates 3.0.3",
+ "predicates 3.1.0",
  "predicates-core",
  "predicates-tree",
  "wait-timeout",
@@ -161,62 +144,94 @@ dependencies = [
 
 [[package]]
 name = "async-channel"
-version = "1.8.0"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
+dependencies = [
+ "concurrent-queue",
+ "event-listener 2.5.3",
+ "futures-core",
+]
+
+[[package]]
+name = "async-channel"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833"
+checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
 dependencies = [
  "concurrent-queue",
- "event-listener",
+ "event-listener 5.0.0",
+ "event-listener-strategy 0.5.0",
  "futures-core",
+ "pin-project-lite",
 ]
 
 [[package]]
 name = "async-executor"
-version = "1.5.0"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17adb73da160dfb475c183343c8cccd80721ea5a605d3eb57125f0a7b7a92d0b"
+checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c"
 dependencies = [
- "async-lock",
+ "async-lock 3.3.0",
  "async-task",
  "concurrent-queue",
- "fastrand",
- "futures-lite",
+ "fastrand 2.0.1",
+ "futures-lite 2.2.0",
  "slab",
 ]
 
 [[package]]
 name = "async-global-executor"
-version = "2.3.1"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776"
+checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c"
 dependencies = [
- "async-channel",
+ "async-channel 2.2.0",
  "async-executor",
- "async-io",
- "async-lock",
+ "async-io 2.3.1",
+ "async-lock 3.3.0",
  "blocking",
- "futures-lite",
+ "futures-lite 2.2.0",
  "once_cell",
 ]
 
 [[package]]
 name = "async-io"
-version = "1.12.0"
+version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c374dda1ed3e7d8f0d9ba58715f924862c63eae6849c92d3a18e7fbde9e2794"
+checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
 dependencies = [
- "async-lock",
+ "async-lock 2.8.0",
  "autocfg",
+ "cfg-if",
  "concurrent-queue",
- "futures-lite",
- "libc",
+ "futures-lite 1.13.0",
  "log",
  "parking",
- "polling",
+ "polling 2.8.0",
+ "rustix 0.37.27",
  "slab",
- "socket2",
+ "socket2 0.4.10",
  "waker-fn",
- "windows-sys 0.42.0",
+]
+
+[[package]]
+name = "async-io"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f97ab0c5b00a7cdbe5a371b9a782ee7be1316095885c8a4ea1daf490eb0ef65"
+dependencies = [
+ "async-lock 3.3.0",
+ "cfg-if",
+ "concurrent-queue",
+ "futures-io",
+ "futures-lite 2.2.0",
+ "parking",
+ "polling 3.4.0",
+ "rustix 0.38.31",
+ "slab",
+ "tracing",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -230,11 +245,22 @@ dependencies = [
 
 [[package]]
 name = "async-lock"
-version = "2.7.0"
+version = "2.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7"
+checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
 dependencies = [
- "event-listener",
+ "event-listener 2.5.3",
+]
+
+[[package]]
+name = "async-lock"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
+dependencies = [
+ "event-listener 4.0.3",
+ "event-listener-strategy 0.4.0",
+ "pin-project-lite",
 ]
 
 [[package]]
@@ -243,15 +269,15 @@ version = "1.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d"
 dependencies = [
- "async-channel",
+ "async-channel 1.9.0",
  "async-global-executor",
- "async-io",
- "async-lock",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
  "crossbeam-utils",
  "futures-channel",
  "futures-core",
  "futures-io",
- "futures-lite",
+ "futures-lite 1.13.0",
  "gloo-timers",
  "kv-log-macro",
  "log",
@@ -265,26 +291,26 @@ dependencies = [
 
 [[package]]
 name = "async-task"
-version = "4.3.0"
+version = "4.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524"
+checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799"
 
 [[package]]
 name = "async-trait"
-version = "0.1.66"
+version = "0.1.77"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b84f9ebcc6c1f5b8cb160f6990096a5c127f423fcb6e1ccc46c370cbdfb75dfc"
+checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "atomic-waker"
-version = "1.1.0"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "debc29dde2e69f9e47506b525f639ed42300fc014a3e007832592448fa8e4599"
+checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
 
 [[package]]
 name = "atty"
@@ -305,9 +331,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "backtrace"
-version = "0.3.67"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
 dependencies = [
  "addr2line",
  "cc",
@@ -332,27 +358,21 @@ checksum = "23ce669cd6c8588f79e15cf450314f9638f967fc5770ff1c7c1deb0925ea7cfa"
 
 [[package]]
 name = "base64"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
-
-[[package]]
-name = "base64"
-version = "0.21.2"
+version = "0.21.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
 [[package]]
 name = "base64ct"
-version = "1.0.1"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a32fd6af2b5827bce66c29053ba0e7c42b9dcab01835835058558c10851a46b"
+checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
 
 [[package]]
 name = "basic-toml"
-version = "0.1.2"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c0de75129aa8d0cceaf750b89013f0e08804d6ec61416da787b35ad0d7cddf1"
+checksum = "2db21524cad41c5591204d22d75e1970a2d1f71060214ca931dc7d5afe2c14e5"
 dependencies = [
  "serde",
 ]
@@ -363,7 +383,7 @@ version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a6773ddc0eafc0e509fb60e48dff7f450f8e674a0686ae8605e8d9901bd5eefa"
 dependencies = [
- "num-bigint 0.4.3",
+ "num-bigint 0.4.4",
  "num-integer",
  "num-traits",
  "serde",
@@ -377,9 +397,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.0"
+version = "2.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 
 [[package]]
 name = "bitvec"
@@ -395,27 +415,26 @@ dependencies = [
 
 [[package]]
 name = "blake2b_simd"
-version = "1.0.1"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c2f0dc9a68c6317d884f97cc36cf5a3d20ba14ce404227df55e1af708ab04bc"
+checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780"
 dependencies = [
  "arrayref",
  "arrayvec",
- "constant_time_eq 0.2.4",
+ "constant_time_eq 0.3.0",
 ]
 
 [[package]]
 name = "blake3"
-version = "1.4.0"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "729b71f35bd3fa1a4c86b85d32c8b9069ea7fe14f7a53cfabb65f62d4265b888"
+checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87"
 dependencies = [
  "arrayref",
  "arrayvec",
  "cc",
  "cfg-if",
- "constant_time_eq 0.2.4",
- "digest",
+ "constant_time_eq 0.3.0",
 ]
 
 [[package]]
@@ -429,47 +448,48 @@ dependencies = [
 
 [[package]]
 name = "blocking"
-version = "1.3.0"
+version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c67b173a56acffd6d2326fb7ab938ba0b00a71480e14902b2591c87bc5741e8"
+checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
 dependencies = [
- "async-channel",
- "async-lock",
+ "async-channel 2.2.0",
+ "async-lock 3.3.0",
  "async-task",
- "atomic-waker",
- "fastrand",
- "futures-lite",
+ "fastrand 2.0.1",
+ "futures-io",
+ "futures-lite 2.2.0",
+ "piper",
+ "tracing",
 ]
 
 [[package]]
 name = "bstr"
-version = "1.3.0"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ffdb39cb703212f3c11973452c2861b972f757b021158f3516ba10f2fa8b2c1"
+checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc"
 dependencies = [
  "memchr",
- "once_cell",
  "regex-automata",
  "serde",
 ]
 
 [[package]]
 name = "bumpalo"
-version = "3.13.0"
+version = "3.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
+checksum = "d32a994c2b3ca201d9b263612a374263f05e7adde37c4707f693dcd375076d1f"
 
 [[package]]
 name = "byteorder"
-version = "1.4.3"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
-version = "1.4.0"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
 
 [[package]]
 name = "bzip2"
@@ -494,11 +514,12 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.79"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
 dependencies = [
  "jobserver",
+ "libc",
 ]
 
 [[package]]
@@ -508,12 +529,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
+[[package]]
 name = "chrono"
-version = "0.4.26"
+version = "0.4.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
+checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b"
 dependencies = [
- "android-tzdata",
  "num-traits",
 ]
 
@@ -541,9 +567,9 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.4.6"
+version = "4.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d04704f56c2cde07f43e8e2c154b43f216dc5c92fc98ada720177362f953b956"
+checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -551,14 +577,14 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.4.6"
+version = "4.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e231faeaca65ebd1ea3c737966bf858971cd38c3849107aa3ea7de90a804e45"
+checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99"
 dependencies = [
  "anstream",
  "anstyle",
- "clap_lex 0.5.1",
- "strsim",
+ "clap_lex 0.7.0",
+ "strsim 0.11.0",
  "terminal_size 0.3.0",
 ]
 
@@ -573,23 +599,23 @@ dependencies = [
 
 [[package]]
 name = "clap_complete"
-version = "4.4.3"
+version = "4.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3ae8ba90b9d8b007efe66e55e48fb936272f5ca00349b5b0e89877520d35ea7"
+checksum = "299353be8209bd133b049bf1c63582d184a8b39fd9c04f15fe65f50f88bdfe6c"
 dependencies = [
- "clap 4.4.6",
+ "clap 4.5.0",
 ]
 
 [[package]]
 name = "clap_derive"
-version = "4.4.2"
+version = "4.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873"
+checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.18",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -613,9 +639,9 @@ dependencies = [
 
 [[package]]
 name = "clap_lex"
-version = "0.5.1"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
 
 [[package]]
 name = "clicolors-control"
@@ -689,25 +715,35 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "55b672471b4e9f9e95499ea597ff64941a309b2cdbffcc46f2cc5e2d971fd335"
 
 [[package]]
+name = "command-fds"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7bb11bd1378bf3731b182997b40cefe00aba6a6cc74042c8318c1b271d3badf7"
+dependencies = [
+ "nix 0.27.1",
+ "thiserror",
+]
+
+[[package]]
 name = "concurrent-queue"
-version = "2.1.0"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c278839b831783b70278b14df4d45e1beb1aad306c07bb796637de9a0e323e8e"
+checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
 dependencies = [
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "console"
-version = "0.15.5"
+version = "0.15.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3d79fbe8970a77e3e34151cc13d3b3e248aa0faaecb9f6091fa07ebefe5ad60"
+checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
 dependencies = [
  "encode_unicode 0.3.6",
  "lazy_static",
  "libc",
  "unicode-width",
- "windows-sys 0.42.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -718,9 +754,9 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
 
 [[package]]
 name = "constant_time_eq"
-version = "0.2.4"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3ad85c1f65dc7b37604eb0e89748faf0b9653065f2a8ef69f96a687ec1e9279"
+checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2"
 
 [[package]]
 name = "coolor"
@@ -733,9 +769,9 @@ dependencies = [
 
 [[package]]
 name = "core-foundation"
-version = "0.9.3"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -743,15 +779,15 @@ dependencies = [
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.8.3"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.5"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
  "libc",
 ]
@@ -764,20 +800,19 @@ checksum = "338089f42c427b86394a5ee60ff321da23a5c89c9d89514c829687b26359fcff"
 
 [[package]]
 name = "crc32fast"
-version = "1.3.2"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
 dependencies = [
  "cfg-if",
 ]
 
 [[package]]
 name = "crossbeam"
-version = "0.8.2"
+version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c"
+checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8"
 dependencies = [
- "cfg-if",
  "crossbeam-channel",
  "crossbeam-deque",
  "crossbeam-epoch",
@@ -787,56 +822,46 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.8"
+version = "0.5.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
+checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b"
 dependencies = [
- "cfg-if",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-deque"
-version = "0.8.3"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
 dependencies = [
- "cfg-if",
  "crossbeam-epoch",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.14"
+version = "0.9.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
 dependencies = [
- "autocfg",
- "cfg-if",
  "crossbeam-utils",
- "memoffset 0.8.0",
- "scopeguard",
 ]
 
 [[package]]
 name = "crossbeam-queue"
-version = "0.3.8"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add"
+checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35"
 dependencies = [
- "cfg-if",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.16"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
-dependencies = [
- "cfg-if",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
 name = "crossterm"
@@ -856,9 +881,9 @@ dependencies = [
 
 [[package]]
 name = "crossterm_winapi"
-version = "0.9.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ae1b35a484aa10e07fe0638d02301c5ad24de82d310ccbd2f3693da5f09bf1c"
+checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
 dependencies = [
  "winapi",
 ]
@@ -874,23 +899,22 @@ dependencies = [
 ]
 
 [[package]]
-name = "ctor"
-version = "0.1.26"
+name = "ctrlc"
+version = "3.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096"
+checksum = "b467862cc8610ca6fc9a1532d7777cee0804e678ab45410897b9396495994a0b"
 dependencies = [
- "quote",
- "syn 1.0.109",
+ "nix 0.27.1",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
-name = "ctrlc"
-version = "3.4.0"
+name = "deranged"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a011bbe2c35ce9c1f143b7af6f94f29a167beb4cd1d29e6740ce836f723120e"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
 dependencies = [
- "nix",
- "windows-sys 0.48.0",
+ "powerfmt",
 ]
 
 [[package]]
@@ -907,9 +931,9 @@ checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
 
 [[package]]
 name = "digest"
-version = "0.10.6"
+version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
 dependencies = [
  "block-buffer",
  "crypto-common",
@@ -980,9 +1004,9 @@ dependencies = [
 
 [[package]]
 name = "dissimilar"
-version = "1.0.6"
+version = "1.0.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "210ec60ae7d710bed8683e333e9d2855a8a56a3e9892b38bad3bb0d4d29b0d5e"
+checksum = "86e3bdc80eee6e16b2b6b0f87fbc98c04bee3455e35174c0de1a125d0688c632"
 
 [[package]]
 name = "doc-comment"
@@ -998,7 +1022,7 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
 
 [[package]]
 name = "edgedb-cli"
-version = "4.1.1"
+version = "5.1.0"
 dependencies = [
  "ansi-escapes",
  "anyhow",
@@ -1007,15 +1031,15 @@ dependencies = [
  "async-listen",
  "backtrace",
  "base32",
- "base64 0.13.1",
+ "base64",
  "bigdecimal",
  "bitvec",
  "blake2b_simd",
  "blake3",
  "bytes",
  "chrono",
- "clap 4.4.6",
- "clap_complete 4.4.3",
+ "clap 4.5.0",
+ "clap_complete 4.5.0",
  "clicolors-control",
  "codespan-reporting",
  "color-print",
@@ -1033,14 +1057,15 @@ dependencies = [
  "edgedb-protocol",
  "edgedb-tokio",
  "edgeql-parser",
- "env_logger 0.10.0",
- "fd-lock 3.0.12",
+ "env_logger 0.10.2",
+ "fd-lock 3.0.13",
  "fn-error-context",
  "fs-err",
+ "fs_extra",
  "futures-util",
  "gethostname",
  "hex",
- "humantime 2.1.0",
+ "humantime",
  "humantime-serde",
  "immutable-chunkmap",
  "indexmap 2.0.0-pre",
@@ -1051,14 +1076,14 @@ dependencies = [
  "log",
  "minimad",
  "native-tls",
- "nix",
+ "nix 0.26.4",
  "notify",
- "num-bigint 0.4.3",
+ "num-bigint 0.4.4",
  "once_cell",
  "open",
  "openssl",
  "os-release",
- "pem 1.1.1",
+ "pem",
  "predicates 2.1.5",
  "pretty_assertions",
  "prettytable-rs",
@@ -1079,11 +1104,12 @@ dependencies = [
  "serde_str",
  "sha1",
  "sha2",
+ "shared-client-tests",
  "shell-escape",
  "shutdown_hooks",
  "signal-hook",
- "snafu",
- "strsim",
+ "snafu 0.7.5",
+ "strsim 0.10.0",
  "tar",
  "tempfile",
  "term",
@@ -1091,6 +1117,7 @@ dependencies = [
  "termimad",
  "terminal_size 0.2.6",
  "test-case",
+ "test-utils",
  "textwrap",
  "thiserror",
  "tokio",
@@ -1103,24 +1130,23 @@ dependencies = [
  "uuid",
  "wait-timeout",
  "warp",
- "webpki",
  "which",
  "whoami",
  "winapi",
- "winreg",
+ "winreg 0.10.1",
  "wslapi",
  "zip",
- "zstd 0.12.3+zstd.1.5.2",
+ "zstd 0.12.4",
 ]
 
 [[package]]
 name = "edgedb-cli-derive"
 version = "0.4.0"
 dependencies = [
- "clap 4.4.6",
+ "clap 4.5.0",
  "clap_generate",
  "heck",
- "indexmap 1.9.3",
+ "indexmap 2.0.0-pre",
  "proc-macro-error",
  "proc-macro2",
  "quote",
@@ -1132,18 +1158,18 @@ dependencies = [
 [[package]]
 name = "edgedb-derive"
 version = "0.5.1"
-source = "git+https://github.com/edgedb/edgedb-rust/#a1094916fe28d090156c006722ca660cc29e06ad"
+source = "git+https://github.com/edgedb/edgedb-rust/#783438e6322acc6a4960e61ad2f46b0c8c9517cd"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.18",
+ "syn 2.0.48",
  "trybuild",
 ]
 
 [[package]]
 name = "edgedb-errors"
 version = "0.4.1"
-source = "git+https://github.com/edgedb/edgedb-rust/#a1094916fe28d090156c006722ca660cc29e06ad"
+source = "git+https://github.com/edgedb/edgedb-rust/#783438e6322acc6a4960e61ad2f46b0c8c9517cd"
 dependencies = [
  "bytes",
 ]
@@ -1151,29 +1177,29 @@ dependencies = [
 [[package]]
 name = "edgedb-protocol"
 version = "0.6.0"
-source = "git+https://github.com/edgedb/edgedb-rust/#a1094916fe28d090156c006722ca660cc29e06ad"
+source = "git+https://github.com/edgedb/edgedb-rust/#783438e6322acc6a4960e61ad2f46b0c8c9517cd"
 dependencies = [
  "bigdecimal",
- "bitflags 2.4.0",
+ "bitflags 2.4.2",
  "bytes",
  "chrono",
  "edgedb-errors",
- "num-bigint 0.4.3",
+ "num-bigint 0.4.4",
  "num-traits",
- "snafu",
+ "snafu 0.8.2",
  "uuid",
 ]
 
 [[package]]
 name = "edgedb-tokio"
 version = "0.5.0"
-source = "git+https://github.com/edgedb/edgedb-rust/#a1094916fe28d090156c006722ca660cc29e06ad"
+source = "git+https://github.com/edgedb/edgedb-rust/#783438e6322acc6a4960e61ad2f46b0c8c9517cd"
 dependencies = [
  "anyhow",
  "arc-swap",
  "async-trait",
  "base16ct",
- "base64 0.21.2",
+ "base64",
  "bytes",
  "crc16",
  "dirs 5.0.1",
@@ -1185,7 +1211,8 @@ dependencies = [
  "rand",
  "rustls",
  "rustls-native-certs",
- "rustls-pemfile",
+ "rustls-pemfile 2.1.0",
+ "rustls-webpki",
  "scram",
  "serde",
  "serde_json",
@@ -1196,14 +1223,13 @@ dependencies = [
  "tokio",
  "tokio-stream",
  "url",
- "webpki",
  "webpki-roots",
 ]
 
 [[package]]
 name = "edgeql-parser"
 version = "0.1.0"
-source = "git+https://github.com/edgedb/edgedb#6f6b4cd1174daff8a1c1a7065659bb7837599b3e"
+source = "git+https://github.com/edgedb/edgedb#b53f17c1b16577a1f08fd5afa5be1333e9cf719a"
 dependencies = [
  "append-only-vec",
  "base32",
@@ -1215,16 +1241,16 @@ dependencies = [
  "phf",
  "serde_json",
  "sha2",
- "snafu",
+ "snafu 0.7.5",
  "thiserror",
  "unicode-width",
 ]
 
 [[package]]
 name = "either"
-version = "1.8.1"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 
 [[package]]
 name = "encode_unicode"
@@ -1240,9 +1266,9 @@ checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0"
 
 [[package]]
 name = "encoding_rs"
-version = "0.8.32"
+version = "0.8.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394"
+checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
 dependencies = [
  "cfg-if",
 ]
@@ -1254,25 +1280,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d"
 
 [[package]]
-name = "env_logger"
-version = "0.5.13"
+name = "env_filter"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15b0a4d2e39f8420210be8b27eeda28029729e2fd4291019455016c348240c38"
+checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea"
 dependencies = [
- "atty",
- "humantime 1.3.0",
  "log",
  "regex",
- "termcolor",
 ]
 
 [[package]]
 name = "env_logger"
-version = "0.10.0"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580"
 dependencies = [
- "humantime 2.1.0",
+ "humantime",
  "is-terminal",
  "log",
  "regex",
@@ -1280,24 +1303,32 @@ dependencies = [
 ]
 
 [[package]]
-name = "errno"
-version = "0.3.1"
+name = "env_logger"
+version = "0.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
+checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9"
 dependencies = [
- "errno-dragonfly",
- "libc",
- "windows-sys 0.48.0",
+ "anstream",
+ "anstyle",
+ "env_filter",
+ "humantime",
+ "log",
 ]
 
 [[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
 dependencies = [
- "cc",
  "libc",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -1307,6 +1338,48 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
 
 [[package]]
+name = "event-listener"
+version = "4.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener"
+version = "5.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b72557800024fabbaa2449dd4bf24e37b93702d457a4d4f2b0dd1f0f039f20c1"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
+dependencies = [
+ "event-listener 4.0.3",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291"
+dependencies = [
+ "event-listener 5.0.0",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "fastrand"
 version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1316,6 +1389,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "fastrand"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+
+[[package]]
 name = "fd-lock"
 version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1327,32 +1406,32 @@ dependencies = [
 
 [[package]]
 name = "fd-lock"
-version = "3.0.12"
+version = "3.0.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39ae6b3d9530211fb3b12a95374b8b0823be812f53d09e18c5675c0146b09642"
+checksum = "ef033ed5e9bad94e55838ca0ca906db0e043f517adda0c8b79c7a8c66c93c1b5"
 dependencies = [
  "cfg-if",
- "rustix 0.37.7",
+ "rustix 0.38.31",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "filetime"
-version = "0.2.20"
+version = "0.2.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a3de6e8d11b22ff9edc6d916f890800597d60f8b2da1caf2955c274638d6412"
+checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.2.16",
- "windows-sys 0.45.0",
+ "redox_syscall",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "flate2"
-version = "1.0.25"
+version = "1.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
  "crc32fast",
  "miniz_oxide",
@@ -1375,7 +1454,7 @@ checksum = "2cd66269887534af4b0c3e3337404591daa8dc8b9b2b3db71f9523beb4bafb41"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.18",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1401,18 +1480,27 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
 
 [[package]]
 name = "form_urlencoded"
-version = "1.1.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
 dependencies = [
  "percent-encoding",
 ]
 
 [[package]]
 name = "fs-err"
-version = "2.9.0"
+version = "2.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0845fa252299212f0389d64ba26f34fa32cfe41588355f21ed507c59a0f64541"
+checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "fs_extra"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
 
 [[package]]
 name = "fsevent-sys"
@@ -1431,9 +1519,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
 
 [[package]]
 name = "futures-channel"
-version = "0.3.26"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e5317663a9089767a1ec00a487df42e0ca174b61b4483213ac24448e4664df5"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -1441,23 +1529,23 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.26"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec90ff4d0fe1f57d600049061dc6bb68ed03c7d2fbd697274c41805dcb3f8608"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
 
 [[package]]
 name = "futures-io"
-version = "0.3.26"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfb8371b6fb2aeb2d280374607aeabfc99d95c72edfe51692e42d3d7f0d08531"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
 name = "futures-lite"
-version = "1.12.0"
+version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48"
+checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
 dependencies = [
- "fastrand",
+ "fastrand 1.9.0",
  "futures-core",
  "futures-io",
  "memchr",
@@ -1467,33 +1555,46 @@ dependencies = [
 ]
 
 [[package]]
+name = "futures-lite"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba"
+dependencies = [
+ "fastrand 2.0.1",
+ "futures-core",
+ "futures-io",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "futures-macro"
-version = "0.3.26"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95a73af87da33b5acf53acfebdc339fe592ecf5357ac7c0a7734ab9d8c876a70"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.26"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f310820bb3e8cfd46c80db4d7fb8353e15dfff853a127158425f31e0be6c8364"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
 
 [[package]]
 name = "futures-task"
-version = "0.3.26"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcf79a1bf610b10f42aea489289c5a2c478a786509693b80cd39c44ccd936366"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
 name = "futures-util"
-version = "0.3.26"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c1d6de3acfef38d2be4b1f543f553131788603495be83da675e180c8d6b7bd1"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
 dependencies = [
  "futures-core",
  "futures-macro",
@@ -1506,9 +1607,9 @@ dependencies = [
 
 [[package]]
 name = "generic-array"
-version = "0.14.6"
+version = "0.14.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
 dependencies = [
  "typenum",
  "version_check",
@@ -1521,14 +1622,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818"
 dependencies = [
  "libc",
- "windows-targets 0.48.0",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
 name = "getrandom"
-version = "0.2.8"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
  "libc",
@@ -1537,9 +1638,9 @@ dependencies = [
 
 [[package]]
 name = "gimli"
-version = "0.27.2"
+version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
 name = "glob"
@@ -1561,9 +1662,9 @@ dependencies = [
 
 [[package]]
 name = "h2"
-version = "0.3.19"
+version = "0.3.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d357c7ae988e7d2182f7d7871d0b963962420b0678b0997ce7de72001aeab782"
+checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
 dependencies = [
  "bytes",
  "fnv",
@@ -1571,7 +1672,7 @@ dependencies = [
  "futures-sink",
  "futures-util",
  "http",
- "indexmap 1.9.3",
+ "indexmap 2.2.3",
  "slab",
  "tokio",
  "tokio-util",
@@ -1583,9 +1684,6 @@ name = "hashbrown"
 version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-dependencies = [
- "ahash",
-]
 
 [[package]]
 name = "hashbrown"
@@ -1594,13 +1692,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
 
 [[package]]
+name = "hashbrown"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+
+[[package]]
 name = "headers"
-version = "0.3.8"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584"
+checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270"
 dependencies = [
- "base64 0.13.1",
- "bitflags 1.3.2",
+ "base64",
  "bytes",
  "headers-core",
  "http",
@@ -1635,18 +1738,9 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.3.1"
+version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
+checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd"
 
 [[package]]
 name = "hex"
@@ -1667,10 +1761,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "home"
+version = "0.5.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "http"
-version = "0.2.9"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
+checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
 dependencies = [
  "bytes",
  "fnv",
@@ -1679,9 +1782,9 @@ dependencies = [
 
 [[package]]
 name = "http-body"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
 dependencies = [
  "bytes",
  "http",
@@ -1696,18 +1799,9 @@ checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
 
 [[package]]
 name = "httpdate"
-version = "1.0.2"
+version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
-
-[[package]]
-name = "humantime"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
-dependencies = [
- "quick-error",
-]
+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
 
 [[package]]
 name = "humantime"
@@ -1721,15 +1815,15 @@ version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "57a3db5ea5923d99402c94e9feb261dc5ee9b4efa158b0315f788cf549cc200c"
 dependencies = [
- "humantime 2.1.0",
+ "humantime",
  "serde",
 ]
 
 [[package]]
 name = "hyper"
-version = "0.14.24"
+version = "0.14.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e011372fa0b68db8350aa7a248930ecc7839bf46d8485577d69f117a75f164c"
+checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -1742,7 +1836,7 @@ dependencies = [
  "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2",
+ "socket2 0.5.5",
  "tokio",
  "tower-service",
  "tracing",
@@ -1764,9 +1858,9 @@ dependencies = [
 
 [[package]]
 name = "idna"
-version = "0.3.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
 dependencies = [
  "unicode-bidi",
  "unicode-normalization",
@@ -1803,10 +1897,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "indexmap"
+version = "2.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177"
+dependencies = [
+ "equivalent",
+ "hashbrown 0.14.3",
+]
+
+[[package]]
 name = "indicatif"
-version = "0.17.5"
+version = "0.17.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ff8cc23a7393a397ed1d7f56e6365cba772aba9f9912ab968b03043c395d057"
+checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3"
 dependencies = [
  "console",
  "instant",
@@ -1855,30 +1959,30 @@ dependencies = [
 
 [[package]]
 name = "io-lifetimes"
-version = "1.0.6"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cfa919a82ea574332e2de6e74b4c36e74d41982b335080fa59d4ef31be20fdf3"
+checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
 dependencies = [
+ "hermit-abi 0.3.6",
  "libc",
- "windows-sys 0.45.0",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "ipnet"
-version = "2.7.1"
+version = "2.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146"
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
 
 [[package]]
 name = "is-terminal"
-version = "0.4.7"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f"
+checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
 dependencies = [
- "hermit-abi 0.3.1",
- "io-lifetimes",
- "rustix 0.37.7",
- "windows-sys 0.48.0",
+ "hermit-abi 0.3.6",
+ "libc",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -1892,33 +1996,33 @@ dependencies = [
 
 [[package]]
 name = "itoa"
-version = "1.0.6"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
 name = "jobserver"
-version = "0.1.26"
+version = "0.1.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
+checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "js-sys"
-version = "0.3.61"
+version = "0.3.68"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
+checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee"
 dependencies = [
  "wasm-bindgen",
 ]
 
 [[package]]
 name = "kqueue"
-version = "1.0.7"
+version = "1.0.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c8fc60ba15bf51257aa9807a48a61013db043fcf3a78cb0d916e8e396dcad98"
+checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c"
 dependencies = [
  "kqueue-sys",
  "libc",
@@ -1926,9 +2030,9 @@ dependencies = [
 
 [[package]]
 name = "kqueue-sys"
-version = "1.0.3"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8367585489f01bc55dd27404dcf56b95e6da061a256a666ab23be9ba96a2e587"
+checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b"
 dependencies = [
  "bitflags 1.3.2",
  "libc",
@@ -1951,9 +2055,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libc"
-version = "0.2.146"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libflate"
@@ -1976,6 +2080,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "libredox"
+version = "0.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+dependencies = [
+ "bitflags 2.4.2",
+ "libc",
+ "redox_syscall",
+]
+
+[[package]]
 name = "linux-raw-sys"
 version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1983,15 +2098,15 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.10"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
 
 [[package]]
 name = "lock_api"
-version = "0.4.9"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -1999,18 +2114,18 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.19"
+version = "0.4.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
 dependencies = [
  "value-bag",
 ]
 
 [[package]]
 name = "memchr"
-version = "2.5.0"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "memoffset"
@@ -2022,19 +2137,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "memoffset"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
 name = "mime"
-version = "0.3.16"
+version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
 
 [[package]]
 name = "mime_guess"
@@ -2048,9 +2154,9 @@ dependencies = [
 
 [[package]]
 name = "minidl"
-version = "0.1.5"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87d3d8666e5ed22230c0096edcccf7097905b1e2975869e1b9fe5df40d26d801"
+checksum = "fc0a023a2715164b8a15b7f91a4baa3decc92158a539b96bf0bdb61f18c69366"
 
 [[package]]
 name = "minimad"
@@ -2069,23 +2175,23 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.6.2"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
 dependencies = [
  "adler",
 ]
 
 [[package]]
 name = "mio"
-version = "0.8.6"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9"
+checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
 dependencies = [
  "libc",
  "log",
  "wasi",
- "windows-sys 0.45.0",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -2117,16 +2223,38 @@ dependencies = [
 
 [[package]]
 name = "nix"
-version = "0.26.2"
+version = "0.26.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a"
+checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
 dependencies = [
  "bitflags 1.3.2",
  "cfg-if",
  "libc",
- "memoffset 0.7.1",
+ "memoffset",
  "pin-utils",
- "static_assertions",
+]
+
+[[package]]
+name = "nix"
+version = "0.27.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
+dependencies = [
+ "bitflags 2.4.2",
+ "cfg-if",
+ "libc",
+]
+
+[[package]]
+name = "nix"
+version = "0.28.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
+dependencies = [
+ "bitflags 2.4.2",
+ "cfg-if",
+ "cfg_aliases",
+ "libc",
 ]
 
 [[package]]
@@ -2177,9 +2305,9 @@ dependencies = [
 
 [[package]]
 name = "num-bigint"
-version = "0.4.3"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
+checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
 dependencies = [
  "autocfg",
  "num-integer",
@@ -2187,31 +2315,36 @@ dependencies = [
 ]
 
 [[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
 name = "num-integer"
-version = "0.1.45"
+version = "0.1.46"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
 dependencies = [
- "autocfg",
  "num-traits",
 ]
 
 [[package]]
 name = "num-traits"
-version = "0.2.15"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
 name = "num_cpus"
-version = "1.15.0"
+version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
- "hermit-abi 0.2.6",
+ "hermit-abi 0.3.6",
  "libc",
 ]
 
@@ -2223,18 +2356,18 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
 
 [[package]]
 name = "object"
-version = "0.30.3"
+version = "0.32.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "once_cell"
-version = "1.18.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "open"
@@ -2248,11 +2381,11 @@ dependencies = [
 
 [[package]]
 name = "openssl"
-version = "0.10.54"
+version = "0.10.63"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69b3f656a17a6cbc115b5c7a40c616947d213ba182135b014d6051b73ab6f019"
+checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "cfg-if",
  "foreign-types",
  "libc",
@@ -2263,13 +2396,13 @@ dependencies = [
 
 [[package]]
 name = "openssl-macros"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c"
+checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2280,18 +2413,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-src"
-version = "111.25.1+1.1.1t"
+version = "300.2.3+3.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ef9a9cc6ea7d9d5e7c4a913dc4b48d0e359eddf01af1dfec96ba7064b4aba10"
+checksum = "5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843"
 dependencies = [
  "cc",
 ]
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.88"
+version = "0.9.99"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2ce0f250f34a308dcfdbb351f511359857d4ed2134ba715a4eadd46e1ffd617"
+checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae"
 dependencies = [
  "cc",
  "libc",
@@ -2317,18 +2450,9 @@ dependencies = [
 
 [[package]]
 name = "os_str_bytes"
-version = "6.4.1"
+version = "6.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee"
-
-[[package]]
-name = "output_vt100"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "628223faebab4e3e40667ee0b2336d34a5b960ff60ea743ddfdbcf7770bcfb66"
-dependencies = [
- "winapi",
-]
+checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1"
 
 [[package]]
 name = "packed_struct"
@@ -2353,9 +2477,9 @@ dependencies = [
 
 [[package]]
 name = "parking"
-version = "2.0.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72"
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
 
 [[package]]
 name = "parking_lot"
@@ -2369,15 +2493,15 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.7"
+version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.2.16",
+ "redox_syscall",
  "smallvec",
- "windows-sys 0.45.0",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
@@ -2411,29 +2535,19 @@ dependencies = [
 
 [[package]]
 name = "pem"
-version = "0.8.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd56cbd21fea48d0c440b41cd69c589faacade08c992d9a54e471b79d0fd13eb"
-dependencies = [
- "base64 0.13.1",
- "once_cell",
- "regex",
-]
-
-[[package]]
-name = "pem"
-version = "1.1.1"
+version = "3.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8"
+checksum = "1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310"
 dependencies = [
- "base64 0.13.1",
+ "base64",
+ "serde",
 ]
 
 [[package]]
 name = "percent-encoding"
-version = "2.2.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "phf"
@@ -2465,7 +2579,7 @@ dependencies = [
  "phf_shared",
  "proc-macro2",
  "quote",
- "syn 2.0.18",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2479,29 +2593,29 @@ dependencies = [
 
 [[package]]
 name = "pin-project"
-version = "1.0.12"
+version = "1.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc"
+checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.0.12"
+version = "1.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55"
+checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.9"
+version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
 
 [[package]]
 name = "pin-utils"
@@ -2510,16 +2624,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
+name = "piper"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4"
+dependencies = [
+ "atomic-waker",
+ "fastrand 2.0.1",
+ "futures-io",
+]
+
+[[package]]
 name = "pkg-config"
-version = "0.3.26"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
 [[package]]
 name = "polling"
-version = "2.6.0"
+version = "2.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e1f879b2998099c2d69ab9605d145d5b661195627eccc680002c4918a7fb6fa"
+checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
 dependencies = [
  "autocfg",
  "bitflags 1.3.2",
@@ -2528,14 +2653,34 @@ dependencies = [
  "libc",
  "log",
  "pin-project-lite",
- "windows-sys 0.45.0",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "polling"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30054e72317ab98eddd8561db0f6524df3367636884b7b21b703e4b280a84a14"
+dependencies = [
+ "cfg-if",
+ "concurrent-queue",
+ "pin-project-lite",
+ "rustix 0.38.31",
+ "tracing",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "portable-atomic"
-version = "1.3.3"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "767eb9f07d4a5ebcb39bbf2d452058a93c011373abf6832e24194a1c3f004794"
+checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
+
+[[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
 
 [[package]]
 name = "ppv-lite86"
@@ -2559,13 +2704,12 @@ dependencies = [
 
 [[package]]
 name = "predicates"
-version = "3.0.3"
+version = "3.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09963355b9f467184c04017ced4a2ba2d75cbcb4e7462690d388233253d4b1a9"
+checksum = "68b87bfd4605926cdfefc1c3b5f8fe560e3feca9d5552cf68c466d3d8236c7e8"
 dependencies = [
  "anstyle",
  "difflib",
- "itertools",
  "predicates-core",
 ]
 
@@ -2577,9 +2721,9 @@ checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174"
 
 [[package]]
 name = "predicates-tree"
-version = "1.0.7"
+version = "1.0.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54ff541861505aabf6ea722d2131ee980b8276e10a1297b94e896dd8b621850d"
+checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf"
 dependencies = [
  "predicates-core",
  "termtree",
@@ -2587,13 +2731,11 @@ dependencies = [
 
 [[package]]
 name = "pretty_assertions"
-version = "1.3.0"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a25e9bcb20aa780fd0bb16b72403a9064d6b3f22f026946029acb941a50af755"
+checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66"
 dependencies = [
- "ctor",
  "diff",
- "output_vt100",
  "yansi",
 ]
 
@@ -2650,16 +2792,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "quick-error"
-version = "1.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
-
-[[package]]
 name = "quote"
-version = "1.0.28"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
@@ -2712,63 +2848,60 @@ dependencies = [
 
 [[package]]
 name = "redox_syscall"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
-dependencies = [
- "bitflags 1.3.2",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.3.5"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
 dependencies = [
  "bitflags 1.3.2",
 ]
 
 [[package]]
 name = "redox_users"
-version = "0.4.3"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
 dependencies = [
  "getrandom",
- "redox_syscall 0.2.16",
+ "libredox",
  "thiserror",
 ]
 
 [[package]]
 name = "regex"
-version = "1.8.4"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
+ "regex-automata",
  "regex-syntax",
 ]
 
 [[package]]
 name = "regex-automata"
-version = "0.1.10"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.2"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "reqwest"
-version = "0.11.18"
+version = "0.11.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55"
+checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251"
 dependencies = [
- "base64 0.21.2",
+ "base64",
  "bytes",
  "encoding_rs",
  "futures-core",
@@ -2786,9 +2919,12 @@ dependencies = [
  "once_cell",
  "percent-encoding",
  "pin-project-lite",
+ "rustls-pemfile 1.0.4",
  "serde",
  "serde_json",
  "serde_urlencoded",
+ "sync_wrapper",
+ "system-configuration",
  "tokio",
  "tokio-native-tls",
  "tower-service",
@@ -2796,7 +2932,7 @@ dependencies = [
  "wasm-bindgen",
  "wasm-bindgen-futures",
  "web-sys",
- "winreg",
+ "winreg 0.50.0",
 ]
 
 [[package]]
@@ -2805,7 +2941,7 @@ version = "0.5.0"
 source = "git+https://github.com/tailhook/rexpect?branch=default_terminal_size#7643379e581e8019b49070782e5b6df34d762178"
 dependencies = [
  "comma",
- "nix",
+ "nix 0.26.4",
  "regex",
  "tempfile",
  "thiserror",
@@ -2813,17 +2949,16 @@ dependencies = [
 
 [[package]]
 name = "ring"
-version = "0.16.20"
+version = "0.17.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
+checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
 dependencies = [
  "cc",
+ "getrandom",
  "libc",
- "once_cell",
  "spin",
- "untrusted 0.7.1",
- "web-sys",
- "winapi",
+ "untrusted 0.9.0",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -2846,75 +2981,105 @@ dependencies = [
 
 [[package]]
 name = "rustc-demangle"
-version = "0.1.21"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342"
+checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
 
 [[package]]
 name = "rustix"
-version = "0.37.7"
+version = "0.37.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2aae838e49b3d63e9274e1c01833cc8139d3fec468c3b84688c628f44b1ae11d"
+checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
 dependencies = [
  "bitflags 1.3.2",
  "errno",
  "io-lifetimes",
  "libc",
  "linux-raw-sys 0.3.8",
- "windows-sys 0.45.0",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "rustix"
-version = "0.38.3"
+version = "0.38.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac5ffa1efe7548069688cd7028f32591853cd7b5b756d41bcffd2353e4fc75b4"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.2",
  "errno",
  "libc",
- "linux-raw-sys 0.4.10",
- "windows-sys 0.48.0",
+ "linux-raw-sys 0.4.13",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "rustls"
-version = "0.20.8"
+version = "0.22.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f"
+checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41"
 dependencies = [
  "log",
  "ring",
- "sct",
- "webpki",
+ "rustls-pki-types",
+ "rustls-webpki",
+ "subtle",
+ "zeroize",
 ]
 
 [[package]]
 name = "rustls-native-certs"
-version = "0.6.2"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50"
+checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792"
 dependencies = [
  "openssl-probe",
- "rustls-pemfile",
+ "rustls-pemfile 2.1.0",
+ "rustls-pki-types",
  "schannel",
  "security-framework",
 ]
 
 [[package]]
 name = "rustls-pemfile"
-version = "1.0.2"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
+dependencies = [
+ "base64",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c333bb734fcdedcea57de1602543590f545f127dc8b533324318fd492c5c70b"
+dependencies = [
+ "base64",
+ "rustls-pki-types",
+]
+
+[[package]]
+name = "rustls-pki-types"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b"
+checksum = "048a63e5b3ac996d78d402940b5fa47973d2d080c6c6fffa1d0f19c4445310b7"
+
+[[package]]
+name = "rustls-webpki"
+version = "0.102.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610"
 dependencies = [
- "base64 0.21.2",
+ "ring",
+ "rustls-pki-types",
+ "untrusted 0.9.0",
 ]
 
 [[package]]
 name = "rustversion"
-version = "1.0.12"
+version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
 name = "rustyline"
@@ -2928,7 +3093,7 @@ dependencies = [
  "libc",
  "log",
  "memchr",
- "nix",
+ "nix 0.26.4",
  "radix_trie",
  "scopeguard",
  "smallvec",
@@ -2940,9 +3105,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.13"
+version = "1.0.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
+checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
 
 [[package]]
 name = "same-file"
@@ -2955,11 +3120,11 @@ dependencies = [
 
 [[package]]
 name = "schannel"
-version = "0.1.21"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3"
+checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
 dependencies = [
- "windows-sys 0.42.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -2970,36 +3135,25 @@ checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
 
 [[package]]
 name = "scopeguard"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "scram"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7679a5e6b97bac99b2c208894ba0d34b17d9657f0b728c1cd3bf1c5f7f6ebe88"
-dependencies = [
- "base64 0.13.1",
- "rand",
- "ring",
-]
-
-[[package]]
-name = "sct"
 version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
+source = "git+https://github.com/elprans/scram#b1f594638f1022ed7e6550a63ad94bb95256a097"
 dependencies = [
+ "base64",
+ "rand",
  "ring",
- "untrusted 0.7.1",
 ]
 
 [[package]]
 name = "security-framework"
-version = "2.8.2"
+version = "2.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254"
+checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
 dependencies = [
  "bitflags 1.3.2",
  "core-foundation",
@@ -3010,9 +3164,9 @@ dependencies = [
 
 [[package]]
 name = "security-framework-sys"
-version = "2.8.0"
+version = "2.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4"
+checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -3020,40 +3174,40 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.17"
+version = "1.0.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed"
+checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "serde"
-version = "1.0.164"
+version = "1.0.198"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d"
+checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.164"
+version = "1.0.198"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68"
+checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.18",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.96"
+version = "1.0.116"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1"
+checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813"
 dependencies = [
- "indexmap 1.9.3",
+ "indexmap 2.2.3",
  "itoa",
  "ryu",
  "serde",
@@ -3070,10 +3224,11 @@ dependencies = [
 
 [[package]]
 name = "serde_path_to_error"
-version = "0.1.11"
+version = "0.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7f05c1d5476066defcdfacce1f52fc3cae3af1d3089727100c02ae92e5abbe0"
+checksum = "ebd154a240de39fdebcf5775d2675c204d7c13cf39a4c697be6493c8e734337c"
 dependencies = [
+ "itoa",
  "serde",
 ]
 
@@ -3099,9 +3254,9 @@ dependencies = [
 
 [[package]]
 name = "sha1"
-version = "0.10.5"
+version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -3110,9 +3265,9 @@ dependencies = [
 
 [[package]]
 name = "sha2"
-version = "0.10.6"
+version = "0.10.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -3120,6 +3275,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "shared-client-tests"
+version = "0.1.0"
+dependencies = [
+ "assert_cmd",
+ "edgedb-protocol",
+ "hex",
+ "indexmap 2.0.0-pre",
+ "predicates 2.1.5",
+ "serde_json",
+ "sha1",
+ "tempfile",
+]
+
+[[package]]
 name = "shell-escape"
 version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3133,9 +3302,9 @@ checksum = "6057adedbec913419c92996f395ba69931acbd50b7d56955394cd3f7bedbfa45"
 
 [[package]]
 name = "signal-hook"
-version = "0.3.15"
+version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9"
+checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
 dependencies = [
  "libc",
  "signal-hook-registry",
@@ -3163,47 +3332,56 @@ dependencies = [
 
 [[package]]
 name = "siphasher"
-version = "0.3.10"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
 
 [[package]]
 name = "slab"
-version = "0.4.8"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
 name = "smallvec"
-version = "1.10.0"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[package]]
 name = "smawk"
-version = "0.3.1"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f67ad224767faa3c7d8b6d91985b78e70a1324408abcb1cfcc2be4c06bc06043"
+checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c"
 
 [[package]]
 name = "snafu"
-version = "0.7.4"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb0656e7e3ffb70f6c39b3c2a86332bb74aa3c679da781642590f3c1118c5045"
+checksum = "e4de37ad025c587a29e8f3f5605c00f70b98715ef90b9061a815b9e59e9042d6"
 dependencies = [
  "backtrace",
  "doc-comment",
- "snafu-derive",
+ "snafu-derive 0.7.5",
+]
+
+[[package]]
+name = "snafu"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75976f4748ab44f6e5332102be424e7c2dc18daeaf7e725f2040c3ebb133512e"
+dependencies = [
+ "snafu-derive 0.8.2",
 ]
 
 [[package]]
 name = "snafu-derive"
-version = "0.7.4"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "475b3bbe5245c26f2d8a6f62d67c1f30eb9fffeccee721c45d162c3ebbdf81b2"
+checksum = "990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf"
 dependencies = [
  "heck",
  "proc-macro2",
@@ -3212,26 +3390,42 @@ dependencies = [
 ]
 
 [[package]]
+name = "snafu-derive"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4b19911debfb8c2fb1107bc6cb2d61868aaf53a988449213959bb1b5b1ed95f"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
 name = "socket2"
-version = "0.4.9"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
+checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
 dependencies = [
  "libc",
  "winapi",
 ]
 
 [[package]]
-name = "spin"
-version = "0.5.2"
+name = "socket2"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+dependencies = [
+ "libc",
+ "windows-sys 0.48.0",
+]
 
 [[package]]
-name = "static_assertions"
-version = "1.1.0"
+name = "spin"
+version = "0.9.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
 
 [[package]]
 name = "strsim"
@@ -3240,10 +3434,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
+name = "strsim"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
+
+[[package]]
 name = "subtle"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
 
 [[package]]
 name = "syn"
@@ -3258,9 +3458,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.18"
+version = "2.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -3268,6 +3468,33 @@ dependencies = [
 ]
 
 [[package]]
+name = "sync_wrapper"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
+
+[[package]]
+name = "system-configuration"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "system-configuration-sys",
+]
+
+[[package]]
+name = "system-configuration-sys"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
 name = "tap"
 version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3275,9 +3502,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
 
 [[package]]
 name = "tar"
-version = "0.4.38"
+version = "0.4.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b55807c0344e1e6c04d7c965f5289c39a8d94ae23ed5c0b57aabac549f871c6"
+checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb"
 dependencies = [
  "filetime",
  "libc",
@@ -3286,15 +3513,14 @@ dependencies = [
 
 [[package]]
 name = "tempfile"
-version = "3.5.0"
+version = "3.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998"
+checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67"
 dependencies = [
  "cfg-if",
- "fastrand",
- "redox_syscall 0.3.5",
- "rustix 0.37.7",
- "windows-sys 0.45.0",
+ "fastrand 2.0.1",
+ "rustix 0.38.31",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -3310,9 +3536,9 @@ dependencies = [
 
 [[package]]
 name = "termcolor"
-version = "1.2.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
 dependencies = [
  "winapi-util",
 ]
@@ -3337,7 +3563,7 @@ version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237"
 dependencies = [
- "rustix 0.37.7",
+ "rustix 0.37.27",
  "windows-sys 0.48.0",
 ]
 
@@ -3347,15 +3573,15 @@ version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
 dependencies = [
- "rustix 0.38.3",
+ "rustix 0.38.31",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "termtree"
-version = "0.4.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95059e91184749cb66be6dc994f67f182b6d897cb3df74a5bf66b5e709295fd8"
+checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
 
 [[package]]
 name = "test-case"
@@ -3381,16 +3607,30 @@ dependencies = [
 
 [[package]]
 name = "test-cert-gen"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "345f92b7cac59507cdaba298c5493f7c40e2063d31f6fc621105183344d5d50a"
+version = "0.10.0-pre"
+source = "git+https://github.com/elprans/rust-tls-api.git?branch=rustls-22#b73652c53e1cbdc676f4f1cd3645cab00be514e5"
 dependencies = [
  "once_cell",
- "pem 0.8.3",
+ "pem",
  "tempfile",
 ]
 
 [[package]]
+name = "test-utils"
+version = "0.1.0"
+source = "git+https://github.com/edgedb/test-utils.git#fdb2b93975a92dd3569c9cc0c18e4b64e2a39a0f"
+dependencies = [
+ "anyhow",
+ "command-fds",
+ "fs_extra",
+ "nix 0.28.0",
+ "once_cell",
+ "serde",
+ "serde_json",
+ "shutdown_hooks",
+]
+
+[[package]]
 name = "textwrap"
 version = "0.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3404,39 +3644,42 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.40"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
+checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.40"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
+checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.18",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "time"
-version = "0.3.20"
+version = "0.3.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
 dependencies = [
+ "deranged",
+ "num-conv",
+ "powerfmt",
  "serde",
  "time-core",
 ]
 
 [[package]]
 name = "time-core"
-version = "0.1.0"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "tinyvec"
@@ -3455,25 +3698,20 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tls-api"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "66d1b3dfb0a60da3e8a130c9f2432063d9979928a05c2b2cdcfc9fd05e4f53a3"
+version = "0.10.0-pre"
+source = "git+https://github.com/elprans/rust-tls-api.git?branch=rustls-22#b73652c53e1cbdc676f4f1cd3645cab00be514e5"
 dependencies = [
  "anyhow",
- "log",
- "pem 0.8.3",
+ "pem",
  "tempfile",
  "thiserror",
  "tokio",
- "void",
- "webpki",
 ]
 
 [[package]]
 name = "tls-api-not-tls"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "529dda0254aa61462ebe3937ecf877b6b1d7e745d25b74c18ba98593aefd7086"
+version = "0.10.0-pre"
+source = "git+https://github.com/elprans/rust-tls-api.git?branch=rustls-22#b73652c53e1cbdc676f4f1cd3645cab00be514e5"
 dependencies = [
  "anyhow",
  "thiserror",
@@ -3484,64 +3722,62 @@ dependencies = [
 
 [[package]]
 name = "tls-api-rustls"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afcd7905a7d9603bc4c1bcf4710141d463cde70f027ab7900bc1d0012712444d"
+version = "0.10.0-pre"
+source = "git+https://github.com/elprans/rust-tls-api.git?branch=rustls-22#b73652c53e1cbdc676f4f1cd3645cab00be514e5"
 dependencies = [
  "anyhow",
  "rustls",
+ "rustls-webpki",
  "thiserror",
  "tls-api",
  "tls-api-test",
  "tokio",
- "webpki",
  "webpki-roots",
 ]
 
 [[package]]
 name = "tls-api-test"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9df107843d725428d76bb159040fbae6d1524dcf25d5b24c56daa6b37ce9dbb5"
+version = "0.10.0-pre"
+source = "git+https://github.com/elprans/rust-tls-api.git?branch=rustls-22#b73652c53e1cbdc676f4f1cd3645cab00be514e5"
 dependencies = [
  "anyhow",
- "env_logger 0.5.13",
+ "env_logger 0.11.3",
  "log",
- "pem 0.8.3",
+ "pem",
+ "rustls-webpki",
  "test-cert-gen",
  "tls-api",
  "tokio",
  "untrusted 0.6.2",
- "webpki",
 ]
 
 [[package]]
 name = "tokio"
-version = "1.28.2"
+version = "1.36.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
 dependencies = [
- "autocfg",
+ "backtrace",
  "bytes",
  "libc",
  "mio",
  "num_cpus",
  "pin-project-lite",
  "signal-hook-registry",
- "socket2",
+ "socket2 0.5.5",
  "tokio-macros",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "tokio-macros"
-version = "2.1.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.18",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -3556,13 +3792,13 @@ dependencies = [
 
 [[package]]
 name = "tokio-rustls"
-version = "0.23.4"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59"
+checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
 dependencies = [
  "rustls",
+ "rustls-pki-types",
  "tokio",
- "webpki",
 ]
 
 [[package]]
@@ -3578,9 +3814,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-util"
-version = "0.7.7"
+version = "0.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5427d89453009325de0d8f342c9490009f76e999cb7672d77e46267448f7e6b2"
+checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
 dependencies = [
  "bytes",
  "futures-core",
@@ -3607,11 +3843,10 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
 
 [[package]]
 name = "tracing"
-version = "0.1.37"
+version = "0.1.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
 dependencies = [
- "cfg-if",
  "log",
  "pin-project-lite",
  "tracing-core",
@@ -3619,24 +3854,24 @@ dependencies = [
 
 [[package]]
 name = "tracing-core"
-version = "0.1.30"
+version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
 dependencies = [
  "once_cell",
 ]
 
 [[package]]
 name = "try-lock"
-version = "0.2.4"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
 
 [[package]]
 name = "trybuild"
-version = "1.0.79"
+version = "1.0.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db3115bddce1b5f52dd4b5e0ec8298a66ce733e4cc6759247dc2d1c11508ec38"
+checksum = "9a9d3ba662913483d6722303f619e75ea10b7855b0f8e0d72799cf8621bb488f"
 dependencies = [
  "basic-toml",
  "glob",
@@ -3649,40 +3884,36 @@ dependencies = [
 
 [[package]]
 name = "typenum"
-version = "1.16.0"
+version = "1.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
 
 [[package]]
 name = "unicase"
-version = "2.6.0"
+version = "2.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
+checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
 dependencies = [
  "version_check",
 ]
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.11"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "524b68aca1d05e03fdf03fcdce2c6c94b6daf6d16861ddaa7e4f2b6638a9052c"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.8"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-linebreak"
-version = "0.1.4"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5faade31a542b8b35855fff6e8def199853b2da8da256da52f52f1316ee3137"
-dependencies = [
- "hashbrown 0.12.3",
- "regex",
-]
+checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
 
 [[package]]
 name = "unicode-normalization"
@@ -3695,15 +3926,15 @@ dependencies = [
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.10.1"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
 
 [[package]]
 name = "unicode-width"
-version = "0.1.10"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
 name = "untrusted"
@@ -3713,15 +3944,15 @@ checksum = "55cd1f4b4e96b46aeb8d4855db4a7a9bd96eeeb5c6a1ab54593328761642ce2f"
 
 [[package]]
 name = "untrusted"
-version = "0.7.1"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
 
 [[package]]
 name = "url"
-version = "2.3.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
 dependencies = [
  "form_urlencoded",
  "idna",
@@ -3731,9 +3962,9 @@ dependencies = [
 
 [[package]]
 name = "urlencoding"
-version = "2.1.2"
+version = "2.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8db7427f936968176eaa7cdf81b7f98b980b18495ec28f1b5791ac3bfe3eea9"
+checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
 
 [[package]]
 name = "utf8parse"
@@ -3743,18 +3974,20 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
 name = "uuid"
-version = "1.3.4"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fa2982af2eec27de306107c027578ff7f423d65f7250e40ce0fea8f45248b81"
+checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
 dependencies = [
+ "getrandom",
+ "rand",
  "serde",
 ]
 
 [[package]]
 name = "value-bag"
-version = "1.4.0"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4d330786735ea358f3bc09eea4caa098569c1c93f342d9aca0514915022fe7e"
+checksum = "126e423afe2dd9ac52142e7e9d5ce4135d7e13776c529d27fd6bc49f19e3280b"
 
 [[package]]
 name = "vcpkg"
@@ -3769,12 +4002,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[package]]
-name = "void"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
-
-[[package]]
 name = "wait-timeout"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3785,36 +4012,33 @@ dependencies = [
 
 [[package]]
 name = "waker-fn"
-version = "1.1.0"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
+checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
 
 [[package]]
 name = "walkdir"
-version = "2.3.2"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
+checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
 dependencies = [
  "same-file",
- "winapi",
  "winapi-util",
 ]
 
 [[package]]
 name = "want"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0"
+checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
 dependencies = [
- "log",
  "try-lock",
 ]
 
 [[package]]
 name = "warp"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba431ef570df1287f7f8b07e376491ad54f84d26ac473489427231e1718e1f69"
+version = "0.3.6"
+source = "git+https://github.com/seanmonstar/warp.git?rev=7b07043cee0ca24e912155db4e8f6d9ab7c049ed#7b07043cee0ca24e912155db4e8f6d9ab7c049ed"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -3827,14 +4051,13 @@ dependencies = [
  "mime_guess",
  "percent-encoding",
  "pin-project",
- "rustls-pemfile",
+ "rustls-pemfile 2.1.0",
  "scoped-tls",
  "serde",
  "serde_json",
  "serde_urlencoded",
  "tokio",
  "tokio-rustls",
- "tokio-stream",
  "tokio-util",
  "tower-service",
  "tracing",
@@ -3848,9 +4071,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.84"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
+checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -3858,24 +4081,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.84"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
+checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.48",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.34"
+version = "0.4.41"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454"
+checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -3885,9 +4108,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.84"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
+checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -3895,22 +4118,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.84"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
+checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.48",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.84"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
+checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838"
 
 [[package]]
 name = "wchar"
@@ -3936,49 +4159,40 @@ dependencies = [
 
 [[package]]
 name = "web-sys"
-version = "0.3.61"
+version = "0.3.68"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
+checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
 ]
 
 [[package]]
-name = "webpki"
-version = "0.22.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd"
-dependencies = [
- "ring",
- "untrusted 0.7.1",
-]
-
-[[package]]
 name = "webpki-roots"
-version = "0.22.6"
+version = "0.26.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87"
+checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009"
 dependencies = [
- "webpki",
+ "rustls-pki-types",
 ]
 
 [[package]]
 name = "which"
-version = "4.4.0"
+version = "4.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269"
+checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7"
 dependencies = [
  "either",
- "libc",
+ "home",
  "once_cell",
+ "rustix 0.38.31",
 ]
 
 [[package]]
 name = "whoami"
-version = "1.4.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c70234412ca409cc04e864e89523cb0fc37f5e1344ebed5a3ebf4192b6b9f68"
+checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50"
 dependencies = [
  "wasm-bindgen",
  "web-sys",
@@ -4002,9 +4216,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.5"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
 dependencies = [
  "winapi",
 ]
@@ -4021,13 +4235,13 @@ version = "0.42.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
 dependencies = [
- "windows_aarch64_gnullvm 0.42.1",
- "windows_aarch64_msvc 0.42.1",
- "windows_i686_gnu 0.42.1",
- "windows_i686_msvc 0.42.1",
- "windows_x86_64_gnu 0.42.1",
- "windows_x86_64_gnullvm 0.42.1",
- "windows_x86_64_msvc 0.42.1",
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
 ]
 
 [[package]]
@@ -4036,7 +4250,7 @@ version = "0.45.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
 dependencies = [
- "windows-targets 0.42.1",
+ "windows-targets 0.42.2",
 ]
 
 [[package]]
@@ -4045,122 +4259,188 @@ version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
- "windows-targets 0.48.0",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
 name = "windows-targets"
-version = "0.42.1"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7"
+checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
 dependencies = [
- "windows_aarch64_gnullvm 0.42.1",
- "windows_aarch64_msvc 0.42.1",
- "windows_i686_gnu 0.42.1",
- "windows_i686_msvc 0.42.1",
- "windows_x86_64_gnu 0.42.1",
- "windows_x86_64_gnullvm 0.42.1",
- "windows_x86_64_msvc 0.42.1",
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
 ]
 
 [[package]]
 name = "windows-targets"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
- "windows_aarch64_gnullvm 0.48.0",
- "windows_aarch64_msvc 0.48.0",
- "windows_i686_gnu 0.48.0",
- "windows_i686_msvc 0.48.0",
- "windows_x86_64_gnu 0.48.0",
- "windows_x86_64_gnullvm 0.48.0",
- "windows_x86_64_msvc 0.48.0",
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.0",
+ "windows_aarch64_msvc 0.52.0",
+ "windows_i686_gnu 0.52.0",
+ "windows_i686_msvc 0.52.0",
+ "windows_x86_64_gnu 0.52.0",
+ "windows_x86_64_gnullvm 0.52.0",
+ "windows_x86_64_msvc 0.52.0",
 ]
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.42.1"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608"
+checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.48.0"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.42.1"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7"
+checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.48.0"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.42.1"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640"
+checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.42.1"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605"
+checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.42.1"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45"
+checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.42.1"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463"
+checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.42.1"
+version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd"
+checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
 
 [[package]]
 name = "winreg"
@@ -4172,6 +4452,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "winreg"
+version = "0.50.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "wslapi"
 version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4193,11 +4483,13 @@ dependencies = [
 
 [[package]]
 name = "xattr"
-version = "0.2.3"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc"
+checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
 dependencies = [
  "libc",
+ "linux-raw-sys 0.4.13",
+ "rustix 0.38.31",
 ]
 
 [[package]]
@@ -4207,6 +4499,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
 
 [[package]]
+name = "zeroize"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
+
+[[package]]
 name = "zip"
 version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4237,11 +4535,11 @@ dependencies = [
 
 [[package]]
 name = "zstd"
-version = "0.12.3+zstd.1.5.2"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76eea132fb024e0e13fd9c2f5d5d595d8a967aa72382ac2f9d39fcc95afd0806"
+checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c"
 dependencies = [
- "zstd-safe 6.0.5+zstd.1.5.4",
+ "zstd-safe 6.0.6",
 ]
 
 [[package]]
@@ -4256,9 +4554,9 @@ dependencies = [
 
 [[package]]
 name = "zstd-safe"
-version = "6.0.5+zstd.1.5.4"
+version = "6.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d56d9e60b4b1758206c238a10165fbcae3ca37b01744e394c463463f6529d23b"
+checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581"
 dependencies = [
  "libc",
  "zstd-sys",
@@ -4266,11 +4564,10 @@ dependencies = [
 
 [[package]]
 name = "zstd-sys"
-version = "2.0.8+zstd.1.5.5"
+version = "2.0.9+zstd.1.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c"
+checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656"
 dependencies = [
  "cc",
- "libc",
  "pkg-config",
 ]
diff --git a/pkgs/tools/networking/edgedb/default.nix b/pkgs/tools/networking/edgedb/default.nix
index bcc62b79d194d..e94ed46364ad5 100644
--- a/pkgs/tools/networking/edgedb/default.nix
+++ b/pkgs/tools/networking/edgedb/default.nix
@@ -1,51 +1,64 @@
-{ stdenv
-, lib
-, patchelf
-, fetchFromGitHub
-, rustPlatform
-, makeBinaryWrapper
-, pkg-config
-, curl
-, Security
-, CoreServices
-, libiconv
-, xz
-, perl
-, substituteAll
-# for passthru.tests:
-, edgedb
-, testers
+{
+  stdenv,
+  lib,
+  patchelf,
+  fetchFromGitHub,
+  rustPlatform,
+  makeBinaryWrapper,
+  pkg-config,
+  curl,
+  Security,
+  CoreServices,
+  libiconv,
+  xz,
+  perl,
+  substituteAll,
+  # for passthru.tests:
+  edgedb,
+  testers,
 }:
-
 rustPlatform.buildRustPackage rec {
   pname = "edgedb";
-  version = "4.1.1";
+  version = "5.1.0";
 
   src = fetchFromGitHub {
     owner = "edgedb";
     repo = "edgedb-cli";
     rev = "v${version}";
-    hash = "sha256-PHtjm3xlGwkDskH3A9/QQrmzt2Xi+sqnQAQV6WG7a6M=";
+    hash = "sha256-znxAtfSeepLQqkPsEzQBp3INZym5BLap6m29C/9z+h8=";
     fetchSubmodules = true;
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "edgedb-derive-0.5.1" = "sha256-1tbWg3bLab3xlVQxb4G+kpXriO+zQpnrwAESy5Tqsu4=";
-      "edgeql-parser-0.1.0" = "sha256-c5xBuW47xXgy8VLR/P7DvVhLBd0rvI6P9w82IPPsTwo=";
+      "edgedb-derive-0.5.1" = "sha256-ATldvarkp/W5bz55qoMtfTMcueWklyKnrJUHvLKlWh0=";
+      "edgeql-parser-0.1.0" = "sha256-KPi2M2UEN+p3V/fcmKtb3K9XTLC4vJ5H+yG8ZfD7RBs=";
       "indexmap-2.0.0-pre" = "sha256-QMOmoUHE1F/sp+NeDpgRGqqacWLHWG02YgZc5vAdXZY=";
       "rexpect-0.5.0" = "sha256-vstAL/fJWWx7WbmRxNItKpzvgGF3SvJDs5isq9ym/OA=";
       "rustyline-8.0.0" = "sha256-CrICwQbHPzS4QdVIEHxt2euX+g+0pFYe84NfMp1daEc=";
       "serde_str-1.0.0" = "sha256-CMBh5lxdQb2085y0jc/DrV6B8iiXvVO2aoZH/lFFjak=";
+      "scram-0.7.0" = "sha256-QTPxyXBpMXCDkRRJEMYly1GKp90khrwwuMI1eHc2H+Y=";
+      "test-cert-gen-0.10.0-pre" = "sha256-Hyk4/iw6/SgEI70vPCNNbE9+nQ0pOAM158hncyUbvp8=";
+      "test-utils-0.1.0" = "sha256-FoF/U89Q9E2Dlmpoh+cfDcScmhcsSNut+rE7BECJSJI=";
+      "warp-0.3.6" = "sha256-knDt2aw/PJ0iabhKg+okwwnEzCY+vQVhE7HKCTM6QbE=";
     };
   };
 
-  nativeBuildInputs = [ makeBinaryWrapper pkg-config perl ];
+  nativeBuildInputs = [
+    makeBinaryWrapper
+    pkg-config
+    perl
+  ];
 
-  buildInputs = [
-    curl
-  ] ++ lib.optionals stdenv.isDarwin [ CoreServices Security libiconv xz ];
+  buildInputs =
+    [ curl ]
+    ++ lib.optionals stdenv.isDarwin [
+      CoreServices
+      Security
+      libiconv
+      xz
+    ];
 
   checkFeatures = [ ];
 
@@ -67,8 +80,15 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "EdgeDB cli";
     homepage = "https://www.edgedb.com/docs/cli/index";
-    license = with licenses; [ asl20 /* or */ mit ];
-    maintainers = with maintainers; [ ahirner kirillrdy ];
+    license = with licenses; [
+      asl20
+      # or
+      mit
+    ];
+    maintainers = with maintainers; [
+      ahirner
+      kirillrdy
+    ];
     mainProgram = "edgedb";
   };
 }
diff --git a/pkgs/tools/networking/eternal-terminal/default.nix b/pkgs/tools/networking/eternal-terminal/default.nix
index 27778006b1e18..7a48cbe775291 100644
--- a/pkgs/tools/networking/eternal-terminal/default.nix
+++ b/pkgs/tools/networking/eternal-terminal/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "eternal-terminal";
-  version = "6.2.8";
+  version = "6.2.9";
 
   src = fetchFromGitHub {
     owner = "MisterTea";
     repo = "EternalTerminal";
     rev = "refs/tags/et-v${version}";
-    hash = "sha256-7LhCP7zARpigsDJmA7y/ZIgN06l8aCszXryzPoa4aL0=";
+    hash = "sha256-vukh3a6SxHaVCT4hmoVt4hEGB8Sqylu53Nz8fgBWkTM";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/networking/flannel/default.nix b/pkgs/tools/networking/flannel/default.nix
index b4f632722b0b6..a2654b90d3e15 100644
--- a/pkgs/tools/networking/flannel/default.nix
+++ b/pkgs/tools/networking/flannel/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "flannel";
-  version = "0.25.1";
+  version = "0.25.2";
   rev = "v${version}";
 
-  vendorHash = "sha256-hitYX6Y2ElDhjwgoX5feSNwpTUA6PXqpH70ZnIW9RaM=";
+  vendorHash = "sha256-Oo5vguQJOV0rh9gjFO9WdDWZFep3tdUg0ItMo8x4Lkk=";
 
   src = fetchFromGitHub {
     inherit rev;
     owner = "flannel-io";
     repo = "flannel";
-    sha256 = "sha256-Aa+LPn5fRrv7vzCqqbHzNaVn5nU6/mi09t6y/5nx0+s=";
+    sha256 = "sha256-OyYZMSQGsJaYvGwMC2JpJDosYSjIP7c4/CgwcmYEr5Q=";
   };
 
   ldflags = [ "-X github.com/flannel-io/flannel/pkg/version.Version=${rev}" ];
diff --git a/pkgs/tools/networking/lychee/default.nix b/pkgs/tools/networking/lychee/default.nix
index 610869897b7b8..0763ee3021096 100644
--- a/pkgs/tools/networking/lychee/default.nix
+++ b/pkgs/tools/networking/lychee/default.nix
@@ -1,4 +1,5 @@
-{ lib
+{ callPackage
+, lib
 , stdenv
 , rustPlatform
 , fetchFromGitHub
@@ -6,6 +7,7 @@
 , openssl
 , Security
 , SystemConfiguration
+, testers
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -41,6 +43,15 @@ rustPlatform.buildRustPackage rec {
     "--skip=src/lib.rs"
   ];
 
+  passthru.tests = {
+    # NOTE: These assume that testers.lycheeLinkCheck uses this exact derivation.
+    #       Which is true most of the time, but not necessarily after overriding.
+    ok = callPackage ./tests/ok.nix { };
+    fail = callPackage ./tests/fail.nix { };
+    fail-emptyDirectory = callPackage ./tests/fail-emptyDirectory.nix { };
+    network = testers.runNixOSTest ./tests/network.nix;
+  };
+
   meta = with lib; {
     description = "A fast, async, stream-based link checker written in Rust";
     homepage = "https://github.com/lycheeverse/lychee";
diff --git a/pkgs/tools/networking/lychee/tests/fail-emptyDirectory.nix b/pkgs/tools/networking/lychee/tests/fail-emptyDirectory.nix
new file mode 100644
index 0000000000000..9db4b23b1bc96
--- /dev/null
+++ b/pkgs/tools/networking/lychee/tests/fail-emptyDirectory.nix
@@ -0,0 +1,28 @@
+{ runCommand, testers, emptyDirectory }:
+let
+  sitePkg = runCommand "site" { } ''
+    dist=$out/dist
+    mkdir -p $dist
+    echo "<html><body><a href=\"https://example.com/foo\">foo</a></body></html>" > $dist/index.html
+    echo "<html><body></body></html>" > $dist/foo.html
+  '';
+  check = testers.lycheeLinkCheck {
+    site = sitePkg + "/dist";
+    remap = {
+      # Normally would recommend to append a subpath that hints why it's forbidden; see example in docs.
+      # However, we also want to test that a package is converted to a string *before*
+      # it's tested whether it's a store path. Mistake made during development caused:
+      # cannot check URI: InvalidUrlRemap("The remapping pattern must produce a valid URL, but it is not: /nix/store/4d0ix...empty-directory/foo
+      "https://example.com" = emptyDirectory;
+    };
+  };
+
+  failure = testers.testBuildFailure check;
+in
+  runCommand "link-check-fail" { inherit failure; } ''
+    # The details of the message might change, but we have to make sure the
+    # correct error is reported, so that we know it's not something else that
+    # went wrong.
+    grep 'empty-directory/foo.*Cannot find file' $failure/testBuildFailure.log >/dev/null
+    touch $out
+  ''
diff --git a/pkgs/tools/networking/lychee/tests/fail.nix b/pkgs/tools/networking/lychee/tests/fail.nix
new file mode 100644
index 0000000000000..5a83814d3c443
--- /dev/null
+++ b/pkgs/tools/networking/lychee/tests/fail.nix
@@ -0,0 +1,21 @@
+{ runCommand, testers }:
+let
+  sitePkg = runCommand "site" { } ''
+    dist=$out/dist
+    mkdir -p $dist
+    echo "<html><body><a href=\"https://example.com/foo.html#foos-missing-anchor\">foo</a></body></html>" > $dist/index.html
+    echo "<html><body><a href=\".\">index</a></body></html>" > $dist/foo.html
+  '';
+
+  linkCheck = testers.lycheeLinkCheck rec {
+    site = sitePkg + "/dist";
+    remap = { "https://exampl[e]\\.com" = site; };
+  };
+
+  failure = testers.testBuildFailure linkCheck;
+
+in
+  runCommand "link-check-fail" { inherit failure; } ''
+    grep -F foos-missing-anchor $failure/testBuildFailure.log >/dev/null
+    touch $out
+  ''
diff --git a/pkgs/tools/networking/lychee/tests/network.nix b/pkgs/tools/networking/lychee/tests/network.nix
new file mode 100644
index 0000000000000..8d7f908a58053
--- /dev/null
+++ b/pkgs/tools/networking/lychee/tests/network.nix
@@ -0,0 +1,66 @@
+{ config, hostPkgs, lib, ... }:
+let
+  sitePkg = hostPkgs.runCommand "site" { } ''
+    dist=$out/dist
+    mkdir -p $dist
+    echo "<html><body><a href=\"http://example/foo.html\">foo</a></body></html>" > $dist/index.html
+    echo "<html><body><a href=\".\">index</a></body></html>" > $dist/foo.html
+  '';
+  check = config.node.pkgs.testers.lycheeLinkCheck {
+    site = sitePkg;
+  };
+in
+{
+  name = "testers-lychee-link-check-run";
+  nodes.client = { ... }: { };
+  nodes.example = {
+    networking.firewall.allowedTCPPorts = [ 80 ];
+    services.nginx = {
+      enable = true;
+      virtualHosts."example" = {
+        locations."/" = {
+          root = "/var/www/example";
+          index = "index.html";
+        };
+      };
+    };
+
+  };
+  testScript = ''
+    start_all()
+
+    # SETUP
+
+    example.succeed("""
+        mkdir -p /var/www/example
+        echo '<h1>hi</h1>' > /var/www/example/index.html
+    """)
+    client.wait_until_succeeds("""
+        curl --fail -v http://example
+    """)
+
+    # FAILURE CASE
+
+    client.succeed("""
+        exec 1>&2
+        r=0
+        ${lib.getExe check.online} || {
+          r=$?
+        }
+        if [[ $r -ne 2 ]]; then
+            echo "lycheeLinkCheck unexpected exit code $r"
+            exit 1
+        fi
+    """)
+
+    # SUCCESS CASE
+
+    example.succeed("""
+        echo '<h1>foo</h1>' > /var/www/example/foo.html
+    """)
+
+    client.succeed("""
+        ${lib.getExe check.online}
+    """)
+  '';
+}
diff --git a/pkgs/tools/networking/lychee/tests/ok.nix b/pkgs/tools/networking/lychee/tests/ok.nix
new file mode 100644
index 0000000000000..6a6c0b9c87b49
--- /dev/null
+++ b/pkgs/tools/networking/lychee/tests/ok.nix
@@ -0,0 +1,12 @@
+{ runCommand, testers }:
+let
+  sitePkg = runCommand "site" { } ''
+    dist=$out/dist
+    mkdir -p $dist
+    echo "<html><body><a href=\"https://example.com/foo.html\">foo</a><a href=\"https://nixos.org/this-is-ignored.html\">bar</a></body></html>" > $dist/index.html
+    echo "<html><body><a href=\".\">index</a></body></html>" > $dist/foo.html
+  '';
+in testers.lycheeLinkCheck rec {
+  site = sitePkg + "/dist";
+  remap = { "https://example.com" = site; };
+}
diff --git a/pkgs/tools/networking/minio-client/default.nix b/pkgs/tools/networking/minio-client/default.nix
index 34325cab9edb3..95f98b587a905 100644
--- a/pkgs/tools/networking/minio-client/default.nix
+++ b/pkgs/tools/networking/minio-client/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "minio-client";
-  version = "2024-05-09T17-04-24Z";
+  version = "2024-05-24T09-08-49Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "mc";
     rev = "RELEASE.${version}";
-    sha256 = "sha256-S7bi7BTbsbXUFoDpm0IhOvjnumcKbewV0celUxAx57g=";
+    sha256 = "sha256-t6nTF1wkWHiJPgtxhCdt4NwezjeUhmzg5Lwde14wV0Y=";
   };
 
-  vendorHash = "sha256-vqPSzzNIvy+9J9bPE4hxWvRPuPKpB8ahuu6ENnFmfJ0=";
+  vendorHash = "sha256-nM7q5Vg8VpsUo4/jt4sHK3UAMGxdDUq6TEBxurB9c/A=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/tools/networking/miniupnpc/default.nix b/pkgs/tools/networking/miniupnpc/default.nix
index f1a639b720609..c29a2fb150c23 100644
--- a/pkgs/tools/networking/miniupnpc/default.nix
+++ b/pkgs/tools/networking/miniupnpc/default.nix
@@ -1,18 +1,22 @@
 { lib
 , stdenv
-, fetchurl
+, fetchFromGitHub
 , cmake
 }:
 
 stdenv.mkDerivation rec {
   pname = "miniupnpc";
-  version = "2.2.6";
+  version = "2.2.7";
 
-  src = fetchurl {
-    url = "https://miniupnp.tuxfamily.org/files/${pname}-${version}.tar.gz";
-    sha256 = "sha256-N/zZGVNQjD5i1pZLuP+8XUfz4TSB+lTmIU/MaHBMZvE=";
+  src = fetchFromGitHub {
+    owner = "miniupnp";
+    repo = "miniupnp";
+    rev = "miniupnpc_${lib.replaceStrings ["."] ["_"] version}";
+    hash = "sha256-cIijY1NcdF169tibfB13845UT9ZoJ/CZ+XLES9ctWTY=";
   };
 
+  sourceRoot = "${src.name}/miniupnpc";
+
   nativeBuildInputs = [ cmake ];
 
   doCheck = !stdenv.isFreeBSD;
diff --git a/pkgs/tools/networking/modemmanager/default.nix b/pkgs/tools/networking/modemmanager/default.nix
index d432b590c5c3f..a91854865b1b2 100644
--- a/pkgs/tools/networking/modemmanager/default.nix
+++ b/pkgs/tools/networking/modemmanager/default.nix
@@ -4,7 +4,6 @@
 , fetchpatch
 , glib
 , libgudev
-, polkit
 , ppp
 , gettext
 , pkg-config
@@ -12,14 +11,19 @@
 , python3
 , libmbim
 , libqmi
-, systemd
 , bash-completion
 , meson
 , ninja
 , vala
-, gobject-introspection
 , dbus
 , bash
+, gobject-introspection
+, buildPackages
+, withIntrospection ? lib.meta.availableOn stdenv.hostPlatform gobject-introspection && stdenv.hostPlatform.emulatorAvailable buildPackages
+, polkit
+, withPolkit ? lib.meta.availableOn stdenv.hostPlatform polkit
+, systemd
+, withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd
 }:
 
 stdenv.mkDerivation rec {
@@ -51,25 +55,29 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     meson
     ninja
-    vala
-    gobject-introspection
     gettext
+    glib
     pkg-config
     libxslt
     python3
+  ] ++ lib.optionals withIntrospection [
+    gobject-introspection
+    vala
   ];
 
   buildInputs = [
     glib
     libgudev
-    polkit
     ppp
     libmbim
     libqmi
-    systemd
     bash-completion
     dbus
     bash # shebangs in share/ModemManager/fcc-unlock.available.d/
+  ] ++ lib.optionals withPolkit [
+    polkit
+  ] ++ lib.optionals withSystemd [
+    systemd
   ];
 
   nativeInstallCheckInputs = [
@@ -81,9 +89,15 @@ stdenv.mkDerivation rec {
   mesonFlags = [
     "-Dudevdir=${placeholder "out"}/lib/udev"
     "-Ddbus_policy_dir=${placeholder "out"}/share/dbus-1/system.d"
+    "-Dsystemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
     "--sysconfdir=/etc"
     "--localstatedir=/var"
-    "-Dvapi=true"
+    (lib.mesonBool "introspection" withIntrospection)
+    (lib.mesonBool "qrtr" withIntrospection)
+    (lib.mesonBool "vapi" withIntrospection)
+    (lib.mesonBool "systemd_suspend_resume" withSystemd)
+    (lib.mesonBool "systemd_journal" withSystemd)
+    (lib.mesonOption "polkit" (if withPolkit then "strict" else "no"))
   ];
 
   postPatch = ''
@@ -96,7 +110,7 @@ stdenv.mkDerivation rec {
   # load libraries from the install path, which doesn't usually exist
   # when `meson test' is run.  So to work around that, we run it as an
   # install check instead, when those paths will have been created.
-  doInstallCheck = true;
+  doInstallCheck = withIntrospection;
   installCheckPhase = ''
     runHook preInstallCheck
     export G_TEST_DBUS_DAEMON="${dbus}/bin/dbus-daemon"
diff --git a/pkgs/tools/networking/oneshot/default.nix b/pkgs/tools/networking/oneshot/default.nix
index 541d5270dcd11..f350cdf241c84 100644
--- a/pkgs/tools/networking/oneshot/default.nix
+++ b/pkgs/tools/networking/oneshot/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "oneshot";
-  version = "2.0.2";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "forestnode-io";
     repo = "oneshot";
     rev = "v${version}";
-    hash = "sha256-aIbKXBJNcBbYJRzETT0mkaqTRo+/8o6z882G21V74rg=";
+    hash = "sha256-zGeXc/dzll5fYURufljVBbTyVhrI9pkqLufOB8ZdV0E=";
   };
 
   vendorHash = "sha256-TktSQMIHYXF9eyY6jyfE31WLXEq7VZU3qnVIMGjMMcA=";
diff --git a/pkgs/tools/networking/sish/default.nix b/pkgs/tools/networking/sish/default.nix
index e85e6c80f4d8e..be17d6fe885be 100644
--- a/pkgs/tools/networking/sish/default.nix
+++ b/pkgs/tools/networking/sish/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "sish";
-  version = "2.15.0";
+  version = "2.16.0";
 
   src = fetchFromGitHub {
     owner = "antoniomika";
     repo = "sish";
     rev = "refs/tags/v${version}";
-    hash = "sha256-70FKq36q/wNMEmaFOXY9gt24gXXbdpQJB1F7wQwYigE=";
+    hash = "sha256-YGeUiuLT67UI5whDAKcDFvYGnCIBkX4oCtKq47Qnw1k=";
   };
 
   vendorHash = "sha256-hlwJE31osz9MgZ0vCx4L6vo4PuGh0NgiPJgDq65fZ4U=";
diff --git a/pkgs/tools/networking/xray/default.nix b/pkgs/tools/networking/xray/default.nix
index 56803c3dc312b..5c87d770313ef 100644
--- a/pkgs/tools/networking/xray/default.nix
+++ b/pkgs/tools/networking/xray/default.nix
@@ -11,16 +11,16 @@
 
 buildGoModule rec {
   pname = "xray";
-  version = "1.8.11";
+  version = "1.8.13";
 
   src = fetchFromGitHub {
     owner = "XTLS";
     repo = "Xray-core";
     rev = "v${version}";
-    hash = "sha256-uOE+Gp42WsqSA5/kQRjk+BKq9igmZCrq/9v1BJMXwFc=";
+    hash = "sha256-+npmj8Cz3/XTabAXL+J02EmyvPwtwz9TKazd9z9emwI=";
   };
 
-  vendorHash = "sha256-7E/H8ctv9BU59wPmywNeDhx1R4mqrjpM9E+Hz+AaPlk=";
+  vendorHash = "sha256-55mNCD3p6Xy6S1w8WzJwxKttjEkEjJZcGTLQdWl1bQQ=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/tools/networking/zerotierone/default.nix b/pkgs/tools/networking/zerotierone/default.nix
index f9415055a537d..fa2c86d6f83a9 100644
--- a/pkgs/tools/networking/zerotierone/default.nix
+++ b/pkgs/tools/networking/zerotierone/default.nix
@@ -65,6 +65,19 @@ in stdenv.mkDerivation {
 
   enableParallelBuilding = true;
 
+  # Ensure Rust compiles for the right target
+  env.CARGO_BUILD_TARGET = stdenv.hostPlatform.rust.rustcTarget;
+
+  # Cargo won't compile to target/release but to target/<RUST_TARGET>/release when a target is
+  # explicitly defined. The build-system however expects target/release. Hence we just symlink from
+  # the latter to the former.
+  preBuild = ''
+    mkdir -p rustybits/target/release
+    ln -rs \
+      ./rustybits/target/${stdenv.hostPlatform.rust.rustcTarget}/release/libzeroidc.a \
+      ./rustybits/target/release/
+  '';
+
   buildFlags = [ "all" "selftest" ];
 
   doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
diff --git a/pkgs/tools/package-management/emplace/default.nix b/pkgs/tools/package-management/emplace/default.nix
index 6dd2445d6cef6..2bf3d67443edd 100644
--- a/pkgs/tools/package-management/emplace/default.nix
+++ b/pkgs/tools/package-management/emplace/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "emplace";
-  version = "1.5.3";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "tversteeg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-KwA0GlZatY1DvtqSR4rwq/nODSa9n+S0gPVqS6agSzM=";
+    sha256 = "sha256-FZ+lvf5HRSruUdmkm/Hqz0aRa95SjfIa43WQczRCGNg=";
   };
 
-  cargoHash = "sha256-eQ+T6YiYYeWaUezXB59+Ki05PXtJd7ISwnRw/x/YTZA=";
+  cargoHash = "sha256-0bKLN0l3ldHJizqWuSoBUxQ8I114BQz6ZTtsro3eYEI=";
 
   meta = with lib; {
     description = "Mirror installed software on multiple machines";
diff --git a/pkgs/tools/package-management/lix/common.nix b/pkgs/tools/package-management/lix/common.nix
index a544707b4f355..fe77830d56f1f 100644
--- a/pkgs/tools/package-management/lix/common.nix
+++ b/pkgs/tools/package-management/lix/common.nix
@@ -182,8 +182,11 @@ let
         ''}
       '';
 
+    mesonBuildType = "release";
     mesonFlags =
       [
+        # LTO optimization
+        (lib.mesonBool "b_lto" (!stdenv.isDarwin))
         (lib.mesonEnable "gc" true)
         (lib.mesonBool "enable-tests" true)
         (lib.mesonBool "enable-docs" enableDocumentation)
diff --git a/pkgs/tools/package-management/nix/common.nix b/pkgs/tools/package-management/nix/common.nix
index b04c59369f185..9005cd594dbe5 100644
--- a/pkgs/tools/package-management/nix/common.nix
+++ b/pkgs/tools/package-management/nix/common.nix
@@ -6,6 +6,7 @@
 , src ? fetchFromGitHub { owner = "NixOS"; repo = "nix"; rev = version; inherit hash; }
 , patches ? [ ]
 , maintainers ? with lib.maintainers; [ eelco lovesegfault artturin ma27 ]
+, self_attribute_name
 }@args:
 assert (hash == null) -> (src != null);
 let
@@ -249,7 +250,7 @@ self = stdenv.mkDerivation {
     perl-bindings = perl.pkgs.toPerlModule (callPackage ./nix-perl.nix { nix = self; inherit Security; });
 
     tests = {
-      nixi686 = pkgsi686Linux.nixVersions.${"nix_${lib.versions.major version}_${lib.versions.minor version}"};
+      nixi686 = pkgsi686Linux.nixVersions.${self_attribute_name};
     };
   };
 
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 5d3698a97e81f..1eeecab4e7ec7 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -138,6 +138,7 @@ in lib.makeExtensible (self: ({
     patches = [
       patch-monitorfdhup
     ];
+    self_attribute_name = "nix_2_3";
     maintainers = with lib.maintainers; [ flokli raitobezarius ];
   }).override { boehmgc = boehmgc-nix_2_3; }).overrideAttrs {
     # https://github.com/NixOS/nix/issues/10222
@@ -148,37 +149,43 @@ in lib.makeExtensible (self: ({
   nix_2_18 = common {
     version = "2.18.2";
     hash = "sha256-8gNJlBlv2bnffRg0CejiBXc6U/S6YeCLAdHrYvTPyoY=";
+    self_attribute_name = "nix_2_18";
   };
 
   nix_2_19 = common {
     version = "2.19.4";
     hash = "sha256-qXjyVmDm1SFWk1az3GWIsJ0fVG0nWet2FdldFOnUydI=";
+    self_attribute_name = "nix_2_19";
   };
 
   nix_2_20 = common {
     version = "2.20.6";
     hash = "sha256-BSl8Jijq1A4n1ToQy0t0jDJCXhJK+w1prL8QMHS5t54=";
+    self_attribute_name = "nix_2_20";
   };
 
   nix_2_21 = common {
     version = "2.21.2";
     hash = "sha256-ObaVDDPtnOeIE0t7m4OVk5G+OS6d9qYh+ktK67Fe/zE=";
+    self_attribute_name = "nix_2_21";
   };
 
   nix_2_22 = common {
     version = "2.22.1";
     hash = "sha256-5Q1WkpTWH7fkVfYhHDc5r0A+Vc+K5xB1UhzrLzBCrB8=";
+    self_attribute_name = "nix_2_22";
   };
 
   git = common rec {
     version = "2.23.0";
-    suffix = "pre20240520_${lib.substring 0 8 src.rev}";
+    suffix = "pre20240526_${lib.substring 0 8 src.rev}";
     src = fetchFromGitHub {
       owner = "NixOS";
       repo = "nix";
-      rev = "b7709d14a5b3a76d1c5b35b48ea3ed2de6c3dc28";
-      hash = "sha256-v+M9oeOcfgFXVoXqdpaskTHNA0T3Pr/8IOJtCggh+To=";
+      rev = "7de033d63fbcf97aad164e131ae3a85e5dcebce7";
+      hash = "sha256-LtsyUsVpr9sM0n1L7MeTw8/6wGtGeXFvKAbPR5lqN8Q=";
     };
+    self_attribute_name = "git";
   };
 
   latest = self.nix_2_22;
diff --git a/pkgs/tools/package-management/pdm/default.nix b/pkgs/tools/package-management/pdm/default.nix
index f7e39900a98de..3eaddce9e7089 100644
--- a/pkgs/tools/package-management/pdm/default.nix
+++ b/pkgs/tools/package-management/pdm/default.nix
@@ -11,14 +11,14 @@
 with python3.pkgs;
 buildPythonApplication rec {
   pname = "pdm";
-  version = "2.15.2";
+  version = "2.15.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-wI6HB4wpwA562WgdxqI0GdxWF9y+bMIFAk70tOfihHU=";
+    hash = "sha256-wifYH2vxCWJqVkOnu1McX1t3eoUMTqyNCLRywRRr7uU=";
   };
 
   nativeBuildInputs = [
@@ -50,7 +50,6 @@ buildPythonApplication rec {
     unearth
     virtualenv
   ] ++ httpx.optional-dependencies.socks
-  ++ pbs-installer.optional-dependencies.install
   ++ lib.optionals (pythonOlder "3.11") [
     tomli
   ]
@@ -81,11 +80,12 @@ buildPythonApplication rec {
   '';
 
   nativeCheckInputs = [
+    first
     pytestCheckHook
     pytest-mock
     pytest-xdist
     pytest-httpserver
-  ] ++ lib.optional stdenv.isLinux first;
+  ];
 
   pytestFlagsArray = [
     "-m 'not network'"
diff --git a/pkgs/tools/package-management/protontricks/default.nix b/pkgs/tools/package-management/protontricks/default.nix
index c3c43163c6710..a3ba1f112fb85 100644
--- a/pkgs/tools/package-management/protontricks/default.nix
+++ b/pkgs/tools/package-management/protontricks/default.nix
@@ -12,6 +12,7 @@
 , yad
 , pytestCheckHook
 , nix-update-script
+, extraCompatPaths ? ""
 }:
 
 buildPythonApplication rec {
@@ -51,7 +52,7 @@ buildPythonApplication rec {
     ]}"
     # Steam Runtime does not work outside of steam-run, so don't use it
     "--set STEAM_RUNTIME 0"
-  ];
+  ] ++ lib.optional (extraCompatPaths != "") "--set STEAM_EXTRA_COMPAT_TOOLS_PATHS ${extraCompatPaths}";
 
   nativeCheckInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/tools/security/cnquery/default.nix b/pkgs/tools/security/cnquery/default.nix
index ad09b62e713ac..241692b6b2cca 100644
--- a/pkgs/tools/security/cnquery/default.nix
+++ b/pkgs/tools/security/cnquery/default.nix
@@ -6,18 +6,18 @@
 
 buildGoModule rec {
   pname = "cnquery";
-  version = "11.4.3";
+  version = "11.5.0";
 
   src = fetchFromGitHub {
     owner = "mondoohq";
     repo = "cnquery";
     rev = "refs/tags/v${version}";
-    hash = "sha256-j2cBoeUpxZV8NlC0D3e6bF533LVN0eIRqE7PSIWBGEw=";
+    hash = "sha256-Fp+NYMAOIiw8g4awfSYMvbjThwfGt87q3Nv7O36IkAk=";
   };
 
   subPackages = [ "apps/cnquery" ];
 
-  vendorHash = "sha256-kovSP+ru32vxve8tmeTRS1fsWTpyBTWhLp5iexKo0Fk=";
+  vendorHash = "sha256-MtOqop0FIuNbhG+gL5fRcMZZn5QC6tXzWHxX+NI0CYg=";
 
   ldflags = [
     "-w"
diff --git a/pkgs/tools/security/cnspec/default.nix b/pkgs/tools/security/cnspec/default.nix
index d534a4977a14b..f3dbbdd38298b 100644
--- a/pkgs/tools/security/cnspec/default.nix
+++ b/pkgs/tools/security/cnspec/default.nix
@@ -6,18 +6,18 @@
 
 buildGoModule rec {
   pname = "cnspec";
-  version = "11.5.0";
+  version = "11.6.0";
 
   src = fetchFromGitHub {
     owner = "mondoohq";
     repo = "cnspec";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MQrWZ3nFE/gEU7/AoSIr91LMteo/+68MDwiJBxiosvM=";
+    hash = "sha256-aNYeze2XnrUHaHG+WdRech30Lx5amD5Sk8iQCbD4YTE=";
   };
 
   proxyVendor = true;
 
-  vendorHash = "sha256-1ytyebfUyeAQcx1HPxn6X0p4t5VlB4uflZJF1f+HhPU=";
+  vendorHash = "sha256-9pretwgZy6kkjcy0vK6DiR+ih6diCewrTXu4Y92OgDU=";
 
   subPackages = [ "apps/cnspec" ];
 
diff --git a/pkgs/tools/security/faraday-agent-dispatcher/default.nix b/pkgs/tools/security/faraday-agent-dispatcher/default.nix
index 8c390f2b6f7aa..2a44e8186ed1b 100644
--- a/pkgs/tools/security/faraday-agent-dispatcher/default.nix
+++ b/pkgs/tools/security/faraday-agent-dispatcher/default.nix
@@ -5,31 +5,34 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "faraday-agent-dispatcher";
-  version = "3.3.0";
+  version = "3.4.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "infobyte";
     repo = "faraday_agent_dispatcher";
     rev = "refs/tags/${version}";
-    hash = "sha256-rpi8S6pmei8MaACnfmOKFK+nNpljoMglu2uk75zvs9I=";
+    hash = "sha256-b62WO1+5EWzsTCzeZPX9T+ho8Sig46lH/9dPmGGhPWA=";
   };
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace '"pytest-runner",' ""
+      --replace-fail '"pytest-runner",' ""
   '';
 
   pythonRelaxDeps = [
     "python-socketio"
   ];
 
+  build-system = with python3.pkgs; [
+    setuptools-scm
+  ];
+
   nativeBuildInputs = with python3.pkgs; [
     pythonRelaxDepsHook
-    setuptools-scm
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  dependencies = with python3.pkgs; [
     aiohttp
     click
     faraday-agent-parameters-types
@@ -71,10 +74,10 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool to send result from tools to the Faraday Platform";
-    mainProgram = "faraday-dispatcher";
     homepage = "https://github.com/infobyte/faraday_agent_dispatcher";
     changelog = "https://github.com/infobyte/faraday_agent_dispatcher/releases/tag/${version}";
-    license = with licenses; [ gpl3Only ];
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "faraday-dispatcher";
   };
 }
diff --git a/pkgs/tools/security/ghidra/build.nix b/pkgs/tools/security/ghidra/build.nix
index c0a8dca4cd0e8..ba23647c9c2db 100644
--- a/pkgs/tools/security/ghidra/build.nix
+++ b/pkgs/tools/security/ghidra/build.nix
@@ -4,10 +4,12 @@
 , callPackage
 , gradle_7
 , perl
-, makeWrapper
+, makeBinaryWrapper
 , openjdk17
 , unzip
 , makeDesktopItem
+, copyDesktopItems
+, desktopToDarwinBundle
 , icoutils
 , xcbuild
 , protobuf
@@ -53,15 +55,6 @@ let
     ./0003-Remove-build-datestamp.patch
   ];
 
-  desktopItem = makeDesktopItem {
-    name = "ghidra";
-    exec = "ghidra";
-    icon = "ghidra";
-    desktopName = "Ghidra";
-    genericName = "Ghidra Software Reverse Engineering Suite";
-    categories = [ "Development" ];
-  };
-
   postPatch = ''
     # Set name of release (eg. PUBLIC, DEV, etc.)
     sed -i -e 's/application\.release\.name=.*/application.release.name=${releaseName}/' Ghidra/application.properties
@@ -145,9 +138,28 @@ HERE
 in stdenv.mkDerivation (finalAttrs: {
   inherit pname version src patches postPatch;
 
+  desktopItems = [
+    (makeDesktopItem {
+      name = "ghidra";
+      exec = "ghidra";
+      icon = "ghidra";
+      desktopName = "Ghidra";
+      genericName = "Ghidra Software Reverse Engineering Suite";
+      categories = [ "Development" ];
+      terminal = false;
+    })
+  ];
+
   nativeBuildInputs = [
-    gradle unzip makeWrapper icoutils protobuf
-  ] ++ lib.optional stdenv.isDarwin xcbuild;
+    gradle
+    unzip
+    makeBinaryWrapper
+    copyDesktopItems
+    protobuf
+  ] ++ lib.optionals stdenv.isDarwin [
+    xcbuild
+    desktopToDarwinBundle
+  ];
 
   dontStrip = true;
 
@@ -169,6 +181,7 @@ in stdenv.mkDerivation (finalAttrs: {
 
   installPhase = ''
     runHook preInstall
+
     mkdir -p "${pkg_path}" "$out/share/applications"
 
     ZIP=build/dist/$(ls build/dist)
@@ -178,15 +191,13 @@ in stdenv.mkDerivation (finalAttrs: {
     mv "${pkg_path}"/*/* "${pkg_path}"
     rmdir "''${f[@]}"
 
-    ln -s ${desktopItem}/share/applications/* $out/share/applications
-
-    icotool -x "Ghidra/RuntimeScripts/Windows/support/ghidra.ico"
-    rm ghidra_4_40x40x32.png
-    for f in ghidra_*.png; do
-      res=$(basename "$f" ".png" | cut -d"_" -f3 | cut -d"x" -f1-2)
-      mkdir -pv "$out/share/icons/hicolor/$res/apps"
-      mv "$f" "$out/share/icons/hicolor/$res/apps/ghidra.png"
+    for f in Ghidra/Framework/Gui/src/main/resources/images/GhidraIcon*.png; do
+      res=$(basename "$f" ".png" | cut -d"_" -f3 | cut -c11-)
+      install -Dm444 "$f" "$out/share/icons/hicolor/''${res}x''${res}/apps/ghidra.png"
     done;
+    # improved macOS icon support
+    install -Dm444 Ghidra/Framework/Gui/src/main/resources/images/GhidraIcon64.png $out/share/icons/hicolor/32x32@2/apps/ghidra.png
+
     runHook postInstall
   '';
 
@@ -206,7 +217,8 @@ in stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A software reverse engineering (SRE) suite of tools developed by NSA's Research Directorate in support of the Cybersecurity mission";
+    changelog = "https://htmlpreview.github.io/?https://github.com/NationalSecurityAgency/ghidra/blob/Ghidra_${finalAttrs.version}_build/Ghidra/Configurations/Public_Release/src/global/docs/ChangeHistory.html";
+    description = "Software reverse engineering (SRE) suite of tools";
     mainProgram = "ghidra";
     homepage = "https://ghidra-sre.org/";
     platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
diff --git a/pkgs/tools/security/ghidra/with-extensions.nix b/pkgs/tools/security/ghidra/with-extensions.nix
index 8ce4a04c2d460..38165ed94f711 100644
--- a/pkgs/tools/security/ghidra/with-extensions.nix
+++ b/pkgs/tools/security/ghidra/with-extensions.nix
@@ -1,7 +1,9 @@
 { lib
+, stdenv
 , callPackage
 , symlinkJoin
 , makeBinaryWrapper
+, desktopToDarwinBundle
 , ghidra
 }:
 
@@ -19,10 +21,14 @@ let
   withExtensions = f: (symlinkJoin {
     name = "${ghidra.pname}-with-extensions-${lib.getVersion ghidra}";
     paths = (f allExtensions);
-    nativeBuildInputs = [ makeBinaryWrapper ];
+    nativeBuildInputs = [ makeBinaryWrapper ]
+      ++ lib.optional stdenv.hostPlatform.isDarwin desktopToDarwinBundle;
     postBuild = ''
       makeWrapper '${ghidra}/bin/ghidra' "$out/bin/ghidra" \
         --set NIX_GHIDRAHOME "$out/lib/ghidra/Ghidra"
+      ln -s ${ghidra}/share $out/share
+    '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
+      convertDesktopFiles $prefix
     '';
     inherit (ghidra) meta;
   });
diff --git a/pkgs/tools/security/govulncheck/default.nix b/pkgs/tools/security/govulncheck/default.nix
index 166e6dd53963f..1151ee52bd5b0 100644
--- a/pkgs/tools/security/govulncheck/default.nix
+++ b/pkgs/tools/security/govulncheck/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "govulncheck";
-  version = "1.1.0";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "golang";
     repo = "vuln";
     rev = "refs/tags/v${version}";
-    hash = "sha256-sS58HyrwyRv3zYi8OgiDYnKSbyu2i3KVoSX/0wQbqGw=";
+    hash = "sha256-aDt4TCbs5yBeJu/Fr95uI3BvPBaclnQMuJYPUXT7S+I=";
   };
 
   patches = [
@@ -23,7 +23,7 @@ buildGoModule rec {
     })
   ];
 
-  vendorHash = "sha256-ZHf//khvBGG+gRBKoKZo4NKoIJCQsbQfe2uT7cAHDcM=";
+  vendorHash = "sha256-YsZ9CchThybwgUjBg6hDQZ0bEEO18lidbGf9CIfzICc=";
 
   subPackages = [
     "cmd/govulncheck"
diff --git a/pkgs/tools/security/himitsu/default.nix b/pkgs/tools/security/himitsu/default.nix
index d6bbb8fd69218..3985a5c80a445 100644
--- a/pkgs/tools/security/himitsu/default.nix
+++ b/pkgs/tools/security/himitsu/default.nix
@@ -7,14 +7,14 @@
 
 stdenv.mkDerivation rec {
   pname = "himitsu";
-  version = "0.6";
+  version = "0.7";
 
   src = fetchFromSourcehut {
     name = pname + "-src";
     owner = "~sircmpwn";
     repo = pname;
     rev = version;
-    hash = "sha256-3x6Lc1rWBtYWVocBuMV5CtoZQjL0Ce+6J2xFjaYaeG4=";
+    hash = "sha256-jDxQajc8Kyfihm8q3wCpA+WsbAkQEZerLckLQXNhTa8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/security/httpx/default.nix b/pkgs/tools/security/httpx/default.nix
index a0a6c0e9e9e21..7b791fda2ebc4 100644
--- a/pkgs/tools/security/httpx/default.nix
+++ b/pkgs/tools/security/httpx/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "httpx";
-  version = "1.6.1";
+  version = "1.6.2";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "httpx";
     rev = "refs/tags/v${version}";
-    hash = "sha256-LW5zJqJqUD5v50OZuPqMYefrcIsjEIr7a4rogveiLA0=";
+    hash = "sha256-xNKfqPPTsnEzDapBZpfmTPWc6dirOqxUDYOOdIVUzOY=";
   };
 
-  vendorHash = "sha256-A82eMV9MegJt3wAkK0YbyMQqt7zlX01DmZ2z3YIGrQ8=";
+  vendorHash = "sha256-jD5LQ9HZbWpoXgnyA7RacaDdyBPMbK02PhKQT+1il4Q=";
 
   subPackages = [ "cmd/httpx" ];
 
diff --git a/pkgs/tools/security/jwt-cli/default.nix b/pkgs/tools/security/jwt-cli/default.nix
index 6d970dca9519a..1e4143495bfa6 100644
--- a/pkgs/tools/security/jwt-cli/default.nix
+++ b/pkgs/tools/security/jwt-cli/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "jwt-cli";
-  version = "6.0.0";
+  version = "6.1.0";
 
   src = fetchFromGitHub {
     owner = "mike-engel";
     repo = pname;
     rev = version;
-    sha256 = "sha256-EzXpiJGTAlTDHJwl7FwIsDHMqStj2PLD1PHmv0flBKc=";
+    sha256 = "sha256-iEZlT0Kyx+z/KYDw/YI3rb4eIi98Q48hEoK+6eRpJbM=";
   };
 
-  cargoHash = "sha256-l1W+eYuKnMPN2wPhYPXo5ixUz2bX+FZnDazk+FbxquU=";
+  cargoHash = "sha256-DXyjdwVJUQpOz/Pctl35D00oSgrfehUg8wYyLdttiew=";
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
diff --git a/pkgs/tools/security/jwt-hack/default.nix b/pkgs/tools/security/jwt-hack/default.nix
index 4922f67fe576a..2b73d69249aa2 100644
--- a/pkgs/tools/security/jwt-hack/default.nix
+++ b/pkgs/tools/security/jwt-hack/default.nix
@@ -1,24 +1,31 @@
-{ lib
-, buildGoModule
-, fetchFromGitHub
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
 }:
 
 buildGoModule rec {
   pname = "jwt-hack";
-  version = "1.1.2";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "hahwul";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-K0ZtEi0zAKRlIGvorrXmtmkcMvyLIXWPnVMQANZbClk=";
+    repo = "jwt-hack";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-IHR+ItI4ToINLpkVc7yrgpNTS17nD02G6x3pNMEfIW4=";
   };
 
-  vendorHash = "sha256-VYh3oRy8bmtXf6AnLNi/M2kA6t+crW3AXBiGovpdt8U=";
+  vendorHash = "sha256-YEH+epSvyy1j0s8AIJ5+BdF47H7KqgBRC4t81noOkjo=";
+
+  ldflags = [
+    "-w"
+    "-s"
+  ];
 
   meta = with lib; {
     description = "Tool for attacking JWT";
     homepage = "https://github.com/hahwul/jwt-hack";
+    changelog = "https://github.com/hahwul/jwt-hack/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
     mainProgram = "jwt-hack";
diff --git a/pkgs/tools/security/kubescape/default.nix b/pkgs/tools/security/kubescape/default.nix
index bfc482613d547..d0f8415cbedbc 100644
--- a/pkgs/tools/security/kubescape/default.nix
+++ b/pkgs/tools/security/kubescape/default.nix
@@ -11,17 +11,17 @@
 
 buildGoModule rec {
   pname = "kubescape";
-  version = "3.0.10";
+  version = "3.0.11";
 
   src = fetchFromGitHub {
     owner = "kubescape";
     repo = "kubescape";
     rev = "refs/tags/v${version}";
-    hash = "sha256-r6w2Cfyjxqf/1DMBGgmE8Oh/WnvBOa7mAEGXnPjk1Pg=";
+    hash = "sha256-hxHVQ8Ssvwq5lk+b7v1kLrYeGSfJEj/FudSd0V3tUnQ=";
     fetchSubmodules = true;
   };
 
-  vendorHash = "sha256-WPa6IKPjdBtoHYKA2yYtaI1LCbkyv374fcThxbSEKxo=";
+  vendorHash = "sha256-iwcwhBX/Kl55G8SrI1mmkP5bj8BrLAGBdk3UnK1Xfag=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/tools/security/kubestroyer/default.nix b/pkgs/tools/security/kubestroyer/default.nix
index 8e0922e4dfb07..a3f03e605c42a 100644
--- a/pkgs/tools/security/kubestroyer/default.nix
+++ b/pkgs/tools/security/kubestroyer/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "kubestroyer";
-  version = "0.2";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "Rolix44";
     repo = "Kubestroyer";
     rev = "refs/tags/v${version}";
-    hash = "sha256-M/abb2IT0mXwj8lAitr18VtIgC4NvapPywBwcUWr9i8=";
+    hash = "sha256-A4kx0Xx3p9rP8OKRLPe9AfX+rqGggtvPb7Hsg+lLkSI=";
   };
 
-  vendorHash = "sha256-x0lIi4QUuYn0kv0HV4h8k61kRu10LCyELudisqUdTAg=";
+  vendorHash = "sha256-V6qEvMsX7tdhooW116+0ayT6RYkdjDbz6QwWb8rC4ig=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/security/metasploit/Gemfile b/pkgs/tools/security/metasploit/Gemfile
index ae2b6975af12b..e583a22e6a06a 100644
--- a/pkgs/tools/security/metasploit/Gemfile
+++ b/pkgs/tools/security/metasploit/Gemfile
@@ -1,4 +1,4 @@
 # frozen_string_literal: true
 source "https://rubygems.org"
 
-gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.4.9"
+gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.4.10"
diff --git a/pkgs/tools/security/metasploit/Gemfile.lock b/pkgs/tools/security/metasploit/Gemfile.lock
index bfb9433561018..4ea9806710a45 100644
--- a/pkgs/tools/security/metasploit/Gemfile.lock
+++ b/pkgs/tools/security/metasploit/Gemfile.lock
@@ -1,9 +1,9 @@
 GIT
   remote: https://github.com/rapid7/metasploit-framework
-  revision: eac2a919309b9ec735cae13ceead0f4aa0e412e8
-  ref: refs/tags/6.4.9
+  revision: 19234871c7edcc534f2bd34505ec08a1f33319b0
+  ref: refs/tags/6.4.10
   specs:
-    metasploit-framework (6.4.9)
+    metasploit-framework (6.4.10)
       actionpack (~> 7.0.0)
       activerecord (~> 7.0.0)
       activesupport (~> 7.0.0)
@@ -105,26 +105,26 @@ GIT
 GEM
   remote: https://rubygems.org/
   specs:
-    Ascii85 (1.1.0)
-    actionpack (7.0.8.1)
-      actionview (= 7.0.8.1)
-      activesupport (= 7.0.8.1)
+    Ascii85 (1.1.1)
+    actionpack (7.0.8.3)
+      actionview (= 7.0.8.3)
+      activesupport (= 7.0.8.3)
       rack (~> 2.0, >= 2.2.4)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actionview (7.0.8.1)
-      activesupport (= 7.0.8.1)
+    actionview (7.0.8.3)
+      activesupport (= 7.0.8.3)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.1, >= 1.2.0)
-    activemodel (7.0.8.1)
-      activesupport (= 7.0.8.1)
-    activerecord (7.0.8.1)
-      activemodel (= 7.0.8.1)
-      activesupport (= 7.0.8.1)
-    activesupport (7.0.8.1)
+    activemodel (7.0.8.3)
+      activesupport (= 7.0.8.3)
+    activerecord (7.0.8.3)
+      activemodel (= 7.0.8.3)
+      activesupport (= 7.0.8.3)
+    activesupport (7.0.8.3)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
@@ -135,37 +135,37 @@ GEM
     arel-helpers (2.14.0)
       activerecord (>= 3.1.0, < 8)
     aws-eventstream (1.3.0)
-    aws-partitions (1.916.0)
-    aws-sdk-core (3.192.1)
+    aws-partitions (1.933.0)
+    aws-sdk-core (3.196.1)
       aws-eventstream (~> 1, >= 1.3.0)
       aws-partitions (~> 1, >= 1.651.0)
       aws-sigv4 (~> 1.8)
       jmespath (~> 1, >= 1.6.1)
-    aws-sdk-ec2 (1.450.0)
-      aws-sdk-core (~> 3, >= 3.191.0)
+    aws-sdk-ec2 (1.457.1)
+      aws-sdk-core (~> 3, >= 3.193.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-ec2instanceconnect (1.38.0)
-      aws-sdk-core (~> 3, >= 3.191.0)
+    aws-sdk-ec2instanceconnect (1.40.0)
+      aws-sdk-core (~> 3, >= 3.193.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-iam (1.96.0)
-      aws-sdk-core (~> 3, >= 3.191.0)
+    aws-sdk-iam (1.98.0)
+      aws-sdk-core (~> 3, >= 3.193.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-kms (1.79.0)
-      aws-sdk-core (~> 3, >= 3.191.0)
+    aws-sdk-kms (1.82.0)
+      aws-sdk-core (~> 3, >= 3.193.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.147.0)
-      aws-sdk-core (~> 3, >= 3.192.0)
+    aws-sdk-s3 (1.151.0)
+      aws-sdk-core (~> 3, >= 3.194.0)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.8)
-    aws-sdk-ssm (1.166.0)
-      aws-sdk-core (~> 3, >= 3.191.0)
+    aws-sdk-ssm (1.169.0)
+      aws-sdk-core (~> 3, >= 3.193.0)
       aws-sigv4 (~> 1.1)
     aws-sigv4 (1.8.0)
       aws-eventstream (~> 1, >= 1.0.2)
     base64 (0.2.0)
     bcrypt (3.1.20)
-    bcrypt_pbkdf (1.1.0)
-    bigdecimal (3.1.7)
+    bcrypt_pbkdf (1.1.1)
+    bigdecimal (3.1.8)
     bindata (2.4.15)
     bootsnap (1.18.3)
       msgpack (~> 1.2)
@@ -219,7 +219,7 @@ GEM
       domain_name (~> 0.5)
     http_parser.rb (0.8.0)
     httpclient (2.8.3)
-    i18n (1.14.4)
+    i18n (1.14.5)
       concurrent-ruby (~> 1.0)
     io-console (0.7.2)
     irb (1.7.4)
@@ -269,14 +269,14 @@ GEM
     metasploit_payloads-mettle (1.0.26)
     method_source (1.1.0)
     mini_portile2 (2.8.6)
-    minitest (5.22.3)
+    minitest (5.23.1)
     mqtt (0.6.0)
     msgpack (1.6.1)
     multi_json (1.15.0)
     mustermann (3.0.0)
       ruby2_keywords (~> 0.0.1)
     nessus_rest (0.1.6)
-    net-imap (0.4.10)
+    net-imap (0.4.11)
       date
       net-protocol
     net-ldap (0.19.0)
@@ -287,7 +287,7 @@ GEM
     net-ssh (7.2.3)
     network_interface (0.0.4)
     nexpose (7.3.0)
-    nio4r (2.7.1)
+    nio4r (2.7.3)
     nokogiri (1.14.5)
       mini_portile2 (~> 2.8.0)
       racc (~> 1.4)
@@ -302,7 +302,7 @@ GEM
     packetfu (2.0.0)
       pcaprub (~> 0.13.1)
     patch_finder (1.0.2)
-    pcaprub (0.13.1)
+    pcaprub (0.13.2)
     pdf-reader (2.12.0)
       Ascii85 (~> 1.0)
       afm (~> 0.2.1)
@@ -313,7 +313,7 @@ GEM
     public_suffix (5.0.5)
     puma (6.4.2)
       nio4r (~> 2.0)
-    racc (1.7.3)
+    racc (1.8.0)
     rack (2.2.9)
     rack-protection (3.2.0)
       base64 (>= 0.1.0)
@@ -327,9 +327,9 @@ GEM
     rails-html-sanitizer (1.6.0)
       loofah (~> 2.21)
       nokogiri (~> 1.14)
-    railties (7.0.8.1)
-      actionpack (= 7.0.8.1)
-      activesupport (= 7.0.8.1)
+    railties (7.0.8.3)
+      actionpack (= 7.0.8.3)
+      activesupport (= 7.0.8.3)
       method_source
       rake (>= 12.2)
       thor (~> 1.0)
@@ -341,7 +341,7 @@ GEM
     recog (3.1.5)
       nokogiri
     redcarpet (3.6.0)
-    reline (0.5.2)
+    reline (0.5.7)
       io-console (~> 0.5)
     rex-arch (0.1.15)
       rex-text
@@ -351,7 +351,7 @@ GEM
       rex-core
       rex-struct2
       rex-text
-    rex-core (0.1.31)
+    rex-core (0.1.32)
     rex-encoder (0.1.7)
       metasm
       rex-arch
@@ -374,7 +374,7 @@ GEM
       rex-random_identifier
       rex-text
       ruby-rc4
-    rex-random_identifier (0.1.11)
+    rex-random_identifier (0.1.12)
       rex-text
     rex-registry (0.1.5)
     rex-rop_builder (0.1.5)
@@ -388,16 +388,17 @@ GEM
       rex-socket
       rex-text
     rex-struct2 (0.1.4)
-    rex-text (0.2.57)
+    rex-text (0.2.58)
     rex-zip (0.1.5)
       rex-text
-    rexml (3.2.6)
+    rexml (3.2.8)
+      strscan (>= 3.0.9)
     rkelly-remix (0.0.7)
     ruby-macho (4.0.1)
     ruby-mysql (4.1.0)
     ruby-rc4 (0.1.5)
     ruby2_keywords (0.0.5)
-    ruby_smb (3.3.5)
+    ruby_smb (3.3.8)
       bindata (= 2.4.15)
       openssl-ccm
       openssl-cmac
@@ -408,8 +409,7 @@ GEM
     sawyer (0.9.2)
       addressable (>= 2.3.5)
       faraday (>= 0.17.3, < 3)
-    simpleidn (0.2.1)
-      unf (~> 0.1.4)
+    simpleidn (0.2.3)
     sinatra (3.2.0)
       mustermann (~> 3.0)
       rack (~> 2.2, >= 2.2.4)
@@ -419,6 +419,7 @@ GEM
       mini_portile2 (~> 2.8.0)
     sshkey (3.0.0)
     strptime (0.2.5)
+    strscan (3.1.0)
     swagger-blocks (3.0.0)
     thin (1.8.2)
       daemons (~> 1.0, >= 1.0.9)
@@ -433,9 +434,6 @@ GEM
       concurrent-ruby (~> 1.0)
     tzinfo-data (1.2024.1)
       tzinfo (>= 1.0.0)
-    unf (0.1.4)
-      unf_ext
-    unf_ext (0.0.9.1)
     unix-crypt (1.3.1)
     warden (1.2.9)
       rack (>= 2.0.9)
@@ -459,7 +457,7 @@ GEM
       activesupport (>= 4.2, < 8.0)
     xmlrpc (0.3.3)
       webrick
-    zeitwerk (2.6.13)
+    zeitwerk (2.6.14)
 
 PLATFORMS
   ruby
@@ -468,4 +466,4 @@ DEPENDENCIES
   metasploit-framework!
 
 BUNDLED WITH
-   2.5.9
+   2.4.13
diff --git a/pkgs/tools/security/metasploit/default.nix b/pkgs/tools/security/metasploit/default.nix
index 7779f954b6195..76be725c63625 100644
--- a/pkgs/tools/security/metasploit/default.nix
+++ b/pkgs/tools/security/metasploit/default.nix
@@ -15,13 +15,13 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "metasploit-framework";
-  version = "6.4.9";
+  version = "6.4.10";
 
   src = fetchFromGitHub {
     owner = "rapid7";
     repo = "metasploit-framework";
     rev = "refs/tags/${version}";
-    hash = "sha256-0f7kpzeOY6EbFb7LRZc/J5lFYcf21HC6H6q0+qtTcao=";
+    hash = "sha256-RocCo0InffP2Dn0kZB4vEgct95dJbdDSxBND8UyuUGU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/security/metasploit/gemset.nix b/pkgs/tools/security/metasploit/gemset.nix
index 901b70c29cc2c..a60daf4c5e823 100644
--- a/pkgs/tools/security/metasploit/gemset.nix
+++ b/pkgs/tools/security/metasploit/gemset.nix
@@ -4,50 +4,50 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jh83rqd6glys1b2wsihzsln8yk6zdwgiyn9xncyiav9rcwjpkax";
+      sha256 = "11c5pm65m46wlqd25glmwpkji1jn1v2n918jmklxp4w9rr43dzi6";
       type = "gem";
     };
-    version = "7.0.8.1";
+    version = "7.0.8.3";
   };
   actionview = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ygpg75f3ffdcbxvf7s14xw3hcjin1nnx1nk3mg9mj2xc1nb60aa";
+      sha256 = "0p0w1rl3f5k7m39j9gnyw5wqz6ym18bhcacisqq4zng2k6jf4893";
       type = "gem";
     };
-    version = "7.0.8.1";
+    version = "7.0.8.3";
   };
   activemodel = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0grdpvglh0cj96qhlxjj9bcfqkh13c1pfpcwc9ld3aw0yzvsw5a1";
+      sha256 = "0y8w73rdd7x1m1gwswjhpqfbjr95hh7hcnkjqk1wz8x9gjk9njb6";
       type = "gem";
     };
-    version = "7.0.8.1";
+    version = "7.0.8.3";
   };
   activerecord = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rlky1cr5kcdl0jad3nk5jpim6vjzbgkfhxnk7y492b3j2nznpcf";
+      sha256 = "03pqj57md528dgwwplr234hq628allla71i1pxys2inbpp7s7vn8";
       type = "gem";
     };
-    version = "7.0.8.1";
+    version = "7.0.8.3";
   };
   activesupport = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ff3x7q400flzhml131ix8zfwmh13h70rs6yzbzf513g781gbbxh";
+      sha256 = "1ybapgiiysxgcjyzifn34ksbwjdjzslbvbcd7v83wiry1qmiyg93";
       type = "gem";
     };
-    version = "7.0.8.1";
+    version = "7.0.8.3";
   };
   addressable = {
     groups = ["default"];
@@ -84,10 +84,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ds4v9xgsyvijnlflak4dzf1qwmda9yd5bv8jwsb56nngd399rlw";
+      sha256 = "1c62cx96r0v265mywnlik43qx0wf6bjbzl54qa47x6dzjg861mvk";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.1.1";
   };
   aws-eventstream = {
     groups = ["default"];
@@ -104,80 +104,80 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gilrh9fb1576xm2ah0l6d33qkiabz55zpq004qqia9xavl43ylz";
+      sha256 = "1axv3iicp4as5dxhmwrxf3rc7389ba94gk11yilw3vwv4hch87yx";
       type = "gem";
     };
-    version = "1.916.0";
+    version = "1.933.0";
   };
   aws-sdk-core = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hp8rxk9wl3kmb7xabcz5hbcv7kzsvsx0wyib2fsg9d42kz149n0";
+      sha256 = "0f44kp3g9g8v60f7xw769r734b7w6n774jj2njn42444ip3zwsz3";
       type = "gem";
     };
-    version = "3.192.1";
+    version = "3.196.1";
   };
   aws-sdk-ec2 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "101jjqf912jwca119v86i4inlkf2gldmmhgdm2rdk5hqrwl4yrf4";
+      sha256 = "114xd77sb1wzxv1ys2dg7adzyfbfzy3k2x885slgbdwh6q9nby0f";
       type = "gem";
     };
-    version = "1.450.0";
+    version = "1.457.1";
   };
   aws-sdk-ec2instanceconnect = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mhqk2s8klp8djibrhgmh9lz9nr4rh1yy7y6c86if55r07i1912c";
+      sha256 = "1sjjyp90hhgbxmiw9sdscyfgjpy86m10dbr1dmxw3dmq244p3ilq";
       type = "gem";
     };
-    version = "1.38.0";
+    version = "1.40.0";
   };
   aws-sdk-iam = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zcvkal9ahwr84pz1cb3y9ylx3f74m4kgs4n160dfzf51b8m917l";
+      sha256 = "0a2kir61jwjpwwk5nld3daxkbc38ivszrxyjs9v320cq6hk6g80v";
       type = "gem";
     };
-    version = "1.96.0";
+    version = "1.98.0";
   };
   aws-sdk-kms = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cb0006xf5isq5drdwkvd6xz20886x3rzcj5qyly7g8gql5lc8aw";
+      sha256 = "0j6wlmn9h8l571ll7pamqxk5b3mg5ms65b85w0r1qjs3v1i5xfcd";
       type = "gem";
     };
-    version = "1.79.0";
+    version = "1.82.0";
   };
   aws-sdk-s3 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ibw2v56k8v2sw92cyliprq1xxfyavnd60yl6ach3f4qbp156xrn";
+      sha256 = "023h9xx65dd91z1sk9znhfwp4wr48imnnhdhvczv64m17r7ych4y";
       type = "gem";
     };
-    version = "1.147.0";
+    version = "1.151.0";
   };
   aws-sdk-ssm = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0drad0zka0kjayiy971vcl5dfp6j37wgga4xncya8w8xsrknh9s8";
+      sha256 = "1liyqnj8hjyrix96kbbqflr4bh3hg07jjcx5x6bsiiqsixblq4md";
       type = "gem";
     };
-    version = "1.166.0";
+    version = "1.169.0";
   };
   aws-sigv4 = {
     groups = ["default"];
@@ -214,20 +214,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ndamfaivnkhc6hy0yqyk2gkwr6f3bz6216lh74hsiiyk3axz445";
+      sha256 = "04rb3rp9bdxn1y3qiflfpj7ccwb8ghrfbydh5vfz1l9px3fpg41g";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.1.1";
   };
   bigdecimal = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0cq1c29zbkcxgdihqisirhcw76xc768z2zpd5vbccpq0l1lv76g7";
+      sha256 = "1gi7zqgmqwi5lizggs1jhc3zlwaqayy9rx2ah80sxy24bbnng558";
       type = "gem";
     };
-    version = "3.1.7";
+    version = "3.1.8";
   };
   bindata = {
     groups = ["default"];
@@ -554,10 +554,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lbm33fpb3w06wd2231sg58dwlwgjsvym93m548ajvl6s3mfvpn7";
+      sha256 = "1ffix518y7976qih9k1lgnc17i3v6yrlh0a3mckpxdb4wc2vrp16";
       type = "gem";
     };
-    version = "1.14.4";
+    version = "1.14.5";
   };
   io-console = {
     groups = ["default"];
@@ -674,12 +674,12 @@
     platforms = [];
     source = {
       fetchSubmodules = false;
-      rev = "eac2a919309b9ec735cae13ceead0f4aa0e412e8";
-      sha256 = "1akiafmzmd5a3yx71m7nqxhlb6977yblbjxy2lds2qwf6yky9zni";
+      rev = "19234871c7edcc534f2bd34505ec08a1f33319b0";
+      sha256 = "0rahmr6g2hqkqk9d0va9jzvjs1qj5wg6893x1vvg6z978aih51s6";
       type = "git";
       url = "https://github.com/rapid7/metasploit-framework";
     };
-    version = "6.4.9";
+    version = "6.4.10";
   };
   metasploit-model = {
     groups = ["default"];
@@ -746,10 +746,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07lq26b86giy3ha3fhrywk9r1ajhc2pm2mzj657jnpnbj1i6g17a";
+      sha256 = "1gkslxvkhh44s21rbjvka3zsvfxxrf5pcl6f75rv2vyrzzbgis7i";
       type = "gem";
     };
-    version = "5.22.3";
+    version = "5.23.1";
   };
   mqtt = {
     groups = ["default"];
@@ -806,10 +806,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zn7j2w0hc622ig0rslk4iy6yp3937dy9ibhyr1mwwx39n7paxaj";
+      sha256 = "1y0pzapcasfjayk4nydy04hnx11xmsv8jl8myizxhbpkdmrl10dc";
       type = "gem";
     };
-    version = "0.4.10";
+    version = "0.4.11";
   };
   net-ldap = {
     groups = ["default"];
@@ -876,10 +876,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15iwbiij52x6jhdbl0rkcldnhfndmsy0sbnsygkr9vhskfqrp72m";
+      sha256 = "017nbw87dpr4wyk81cgj8kxkxqgsgblrkxnmmadc77cg9gflrfal";
       type = "gem";
     };
-    version = "2.7.1";
+    version = "2.7.3";
   };
   nokogiri = {
     dependencies = ["mini_portile2" "racc"];
@@ -967,10 +967,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0886fcc5bi0kc0rbma5fj3wa3hbg2nl7ivnbi2j995yzg36zq7xy";
+      sha256 = "0bwhm5b7f0ncazffxzlyql83khcgydx2ncav9k241gab4knkhb7l";
       type = "gem";
     };
-    version = "0.13.1";
+    version = "0.13.2";
   };
   pdf-reader = {
     groups = ["default"];
@@ -1017,10 +1017,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01b9662zd2x9bp4rdjfid07h09zxj7kvn7f5fghbqhzc625ap1dp";
+      sha256 = "021s7maw0c4d9a6s07vbmllrzqsj2sgmrwimlh8ffkvwqdjrld09";
       type = "gem";
     };
-    version = "1.7.3";
+    version = "1.8.0";
   };
   rack = {
     groups = ["default"];
@@ -1077,10 +1077,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08ga56kz6a37dnlmi7y45r19fcc7jzb62mrc3ifavbzggmhy7r62";
+      sha256 = "0sxki005rl1315mp78csayvfdx5zxjvwv8xmcfyjksgq27cimk5r";
       type = "gem";
     };
-    version = "7.0.8.1";
+    version = "7.0.8.3";
   };
   rake = {
     groups = ["default"];
@@ -1137,10 +1137,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xwf7i2kvgaxbpdqqkncv9dpfhlj55shig4sdzgy7kgbfj09mm03";
+      sha256 = "06rlp3wjcbwbgw3xlawclzzmj6ryn6ap65nh54x5yzgx0c3jlqqz";
       type = "gem";
     };
-    version = "0.5.2";
+    version = "0.5.7";
   };
   rex-arch = {
     groups = ["default"];
@@ -1167,10 +1167,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s5fz1fipk2x9grd8rj7n09wfmq78kdhw9fvrmgr9z52zi640xzs";
+      sha256 = "0468gxcwhzp5y7lahkf0cg4vyy01wb2fk6w1rx4fgh1l9330a64b";
       type = "gem";
     };
-    version = "0.1.31";
+    version = "0.1.32";
   };
   rex-encoder = {
     groups = ["default"];
@@ -1247,10 +1247,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qxc05f0xvradyp50vz8s1h9lzgh9c31nz8yq7r22bph03v71f0c";
+      sha256 = "02709z33zcbq2i3ca66b94n3aqbd8r6ib1dgb2fby1vk5nrg18p9";
       type = "gem";
     };
-    version = "0.1.11";
+    version = "0.1.12";
   };
   rex-registry = {
     groups = ["default"];
@@ -1307,10 +1307,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08wrqy8sgncsn6kcplw7bl6c2bmyj9fza7x77wrlwh1gza7pcjk4";
+      sha256 = "04icj61kn5bnd939km6y49ylv8sbkqb96jld91nbrijahawcf5yz";
       type = "gem";
     };
-    version = "0.2.57";
+    version = "0.2.58";
   };
   rex-zip = {
     groups = ["default"];
@@ -1327,10 +1327,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0";
+      sha256 = "0d8ivcirrrxpkpjc1c835wknc9s2fl54xpw08s177yfrh5ish209";
       type = "gem";
     };
-    version = "3.2.6";
+    version = "3.2.8";
   };
   rkelly-remix = {
     groups = ["default"];
@@ -1387,10 +1387,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fwk5hqaph37apa5zf1mg2n2wd5lkz3sgwl0f4ndhkv1vfxbb2ys";
+      sha256 = "1hw3hj2q0xkqr90snzrpiqfa7lsc5k4w6bgdj624vxkh7q0nnfw7";
       type = "gem";
     };
-    version = "3.3.5";
+    version = "3.3.8";
   };
   rubyntlm = {
     groups = ["default"];
@@ -1427,10 +1427,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06f7w6ph3bzzqk212yylfp4jfx275shgp9zg3xszbpv1ny2skp9m";
+      sha256 = "0a9c1mdy12y81ck7mcn9f9i2s2wwzjh1nr92ps354q517zq9dkh8";
       type = "gem";
     };
-    version = "0.2.1";
+    version = "0.2.3";
   };
   sinatra = {
     groups = ["default"];
@@ -1472,6 +1472,16 @@
     };
     version = "0.2.5";
   };
+  strscan = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mamrl7pxacbc79ny5hzmakc9grbjysm3yy6119ppgsg44fsif01";
+      type = "gem";
+    };
+    version = "3.1.0";
+  };
   swagger-blocks = {
     groups = ["default"];
     platforms = [];
@@ -1552,26 +1562,6 @@
     };
     version = "1.2024.1";
   };
-  unf = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
-      type = "gem";
-    };
-    version = "0.1.4";
-  };
-  unf_ext = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1sf6bxvf6x8gihv6j63iakixmdddgls58cpxpg32chckb2l18qcj";
-      type = "gem";
-    };
-    version = "0.0.9.1";
-  };
   unix-crypt = {
     groups = ["default"];
     platforms = [];
@@ -1677,9 +1667,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1m67qmsak3x8ixs8rb971azl3l7wapri65pmbf5z886h46q63f1d";
+      sha256 = "0ayraiqfhhjzpyr4yxp035002lq78ip1zhr0ix87rn3rqpnsrn3h";
       type = "gem";
     };
-    version = "2.6.13";
+    version = "2.6.14";
   };
 }
diff --git a/pkgs/tools/security/nitrokey-app2/default.nix b/pkgs/tools/security/nitrokey-app2/default.nix
index 8e97ce02af4c9..5477a603d4afd 100644
--- a/pkgs/tools/security/nitrokey-app2/default.nix
+++ b/pkgs/tools/security/nitrokey-app2/default.nix
@@ -1,49 +1,27 @@
 { lib
 , stdenv
 , python3
-, fetchPypi
 , fetchFromGitHub
 , wrapQtAppsHook
 , qtbase
 , qtwayland
 }:
 
-let
-  python = python3.override {
-    packageOverrides = self: super: {
-      pynitrokey = super.pynitrokey.overridePythonAttrs (old: rec {
-        version = "0.4.45";
-        src = fetchPypi {
-          inherit (old) pname;
-          inherit version;
-          hash = "sha256-iY4ThrmXP7pEjTYYU4lePVAbuJGTdHX3iKswXzuf7W8=";
-        };
-      });
-    };
-  };
-in python.pkgs.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "nitrokey-app2";
-  version = "2.2.2";
+  version = "2.3.0";
   pyproject = true;
 
-  disabled = python.pythonOlder "3.9";
+  disabled = python3.pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "Nitrokey";
     repo = "nitrokey-app2";
     rev = "v${version}";
-    hash = "sha256-MiyfmsrKZRoe7YMEjR1LHPesfJh6+dcSydoEAgrALJ8=";
+    hash = "sha256-BSq3ezNt6btQUO1hMVw9bN3VCyUOUhfRFJcHDGkIm6Q=";
   };
 
-  # https://github.com/Nitrokey/nitrokey-app2/issues/152
-  #
-  # pythonRelaxDepsHook does not work here, because it runs in postBuild and
-  # only modifies the dependencies in the built distribution.
-  postPatch = ''
-    substituteInPlace pyproject.toml --replace 'pynitrokey = "' 'pynitrokey = ">='
-  '';
-
-  nativeBuildInputs = with python.pkgs; [
+  nativeBuildInputs = with python3.pkgs; [
     poetry-core
     wrapQtAppsHook
   ];
@@ -52,7 +30,7 @@ in python.pkgs.buildPythonApplication rec {
     qtwayland
   ];
 
-  propagatedBuildInputs = with python.pkgs; [
+  propagatedBuildInputs = with python3.pkgs; [
     pynitrokey
     pyudev
     pyside6
diff --git a/pkgs/tools/security/nuclei/default.nix b/pkgs/tools/security/nuclei/default.nix
index 259680693dac5..20dd582b4fac2 100644
--- a/pkgs/tools/security/nuclei/default.nix
+++ b/pkgs/tools/security/nuclei/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "nuclei";
-  version = "3.2.7";
+  version = "3.2.8";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "nuclei";
     rev = "refs/tags/v${version}";
-    hash = "sha256-sXrDmtuKfFeYAJnxIZGQiYiAjx40YQLfnMQ8YUCkZ7s=";
+    hash = "sha256-U/L9V/1aGMjh30s/XDgV522RdLhS1yyUkHwkFDWjA4U=";
   };
 
-  vendorHash = "sha256-PXa8Fd7LE6uebpep1/HV2EuJdzj8cxeiZ4DYALIoh2A=";
+  vendorHash = "sha256-DGNjDKjFZ0EJPOJxC7nTCCts8pisomfe4eru2WAHHow=";
 
   subPackages = [ "cmd/nuclei/" ];
 
diff --git a/pkgs/tools/security/oauth2c/default.nix b/pkgs/tools/security/oauth2c/default.nix
index 292ac255b3a04..1289eb05f2154 100644
--- a/pkgs/tools/security/oauth2c/default.nix
+++ b/pkgs/tools/security/oauth2c/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "oauth2c";
-  version = "1.13.0";
+  version = "1.14.0";
 
   src = fetchFromGitHub {
     owner = "cloudentity";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-NNVHEV8qnPv+xXFzPsh1V+fSOQZxpADCRPIUsak5M5M=";
+    hash = "sha256-sxaInCsW3MKOYV3TscJYGwzSncg5TUW9YVheuxoO1h4=";
   };
 
-  vendorHash = "sha256-x6cb19rKJXm+EIxJeykhpFmUYOPb/VljzCOVjorP5MQ=";
+  vendorHash = "sha256-PdLh/J0HUvr1JjW/ew5PQe9TJNykI4tJhlRoVjRT/hg=";
 
   doCheck = false; # tests want to talk to oauth2c.us.authz.cloudentity.io
 
diff --git a/pkgs/tools/security/rng-tools/default.nix b/pkgs/tools/security/rng-tools/default.nix
index a5470f05613b4..ec7fd33b295bc 100644
--- a/pkgs/tools/security/rng-tools/default.nix
+++ b/pkgs/tools/security/rng-tools/default.nix
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rng-tools";
-  version = "6.16";
+  version = "6.17";
 
   src = fetchFromGitHub {
     owner = "nhorman";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-9pXQhG2nbu6bq4BnBgEOyyUBNkQTI5RhWmJIoLtFU+c=";
+    hash = "sha256-wqJvLvxmNG2nb5P525w25Y8byUUJi24QIHNJomCKeG8=";
   };
 
   nativeBuildInputs = [ autoreconfHook libtool pkg-config ];
diff --git a/pkgs/tools/security/ruler/default.nix b/pkgs/tools/security/ruler/default.nix
index 6389c0eac0418..fe63a73072807 100644
--- a/pkgs/tools/security/ruler/default.nix
+++ b/pkgs/tools/security/ruler/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildGoModule
-, fetchFromGitHub
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
 }:
 
 buildGoModule rec {
@@ -9,17 +10,24 @@ buildGoModule rec {
 
   src = fetchFromGitHub {
     owner = "sensepost";
-    repo = pname;
-    rev = version;
+    repo = "ruler";
+    rev = "refs/tags/${version}";
     hash = "sha256-cEYpK1LB9b65xr6MCMax1vUtSWefjJdXNs4sPgx65d0=";
   };
 
   vendorHash = "sha256-ITd3cvZmRBWK3922dDRvNHNH8KzHoVfIQI6S318ibxA=";
 
+  ldflags = [
+    "-w"
+    "-s"
+  ];
+
   meta = with lib; {
     description = "Tool to abuse Exchange services";
     homepage = "https://github.com/sensepost/ruler";
+    changelog = "https://github.com/sensepost/ruler/releases/tag/${version}";
     license = with licenses; [ cc-by-nc-40 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "ruler";
   };
 }
diff --git a/pkgs/tools/security/secp256k1/default.nix b/pkgs/tools/security/secp256k1/default.nix
index 5494f8f26c24e..335d9c5c18a54 100644
--- a/pkgs/tools/security/secp256k1/default.nix
+++ b/pkgs/tools/security/secp256k1/default.nix
@@ -7,13 +7,13 @@
 stdenv.mkDerivation rec {
   pname = "secp256k1";
 
-  version = "0.4.1";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "bitcoin-core";
     repo = "secp256k1";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-atq34GnWkSkWTWxZP4PCSF3hIjGFhQ534E+WUtLRkiM=";
+    sha256 = "sha256-XcxBzOJngrm1szs48bBS6pcH2yaLfLKPUtyQ51eItaw=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/security/semgrep/common.nix b/pkgs/tools/security/semgrep/common.nix
index 1ae95ed6572ac..d51853953bf42 100644
--- a/pkgs/tools/security/semgrep/common.nix
+++ b/pkgs/tools/security/semgrep/common.nix
@@ -1,9 +1,9 @@
 { lib }:
 
 rec {
-  version = "1.73.0";
+  version = "1.74.0";
 
-  srcHash = "sha256-INgc1rTN5K5mcV3u4Jktn7cqu87Z5sLnn70CxuZlbPA=";
+  srcHash = "sha256-PH0fTT6n6o3Jtuq+cyyRb048Tuv3VGNduCZCEKTXMrE=";
 
   # submodule dependencies
   # these are fetched so we:
@@ -25,19 +25,19 @@ rec {
   core = {
     x86_64-linux = {
       platform = "any";
-      hash = "sha256-NSleztCh9+VEsezypbIS74Ll+KP/Nb/zqAWum7tdoMc=";
+      hash = "sha256-ZA5KlbSLkC0IJGqyK0XhuDKRx53987vf53vSM0zwD9k=";
     };
     aarch64-linux = {
       platform = "musllinux_1_0_aarch64.manylinux2014_aarch64";
-      hash = "sha256-tySsh+CLciJRXpr4oJa/h6Zh0Fw8c+EDdSNNRwOfKpg=";
+      hash = "sha256-aHq87uzk9TtnlMDfAS6492ocXRJSHdBinng0hu2xLas=";
     };
     x86_64-darwin = {
       platform = "macosx_10_14_x86_64";
-      hash = "sha256-jO8H0wSjW34ynx+WN0oP8mpuAsfMva7H86gg72WrsBY=";
+      hash = "sha256-OorDXQ0oYHV8aPu9o1dQAd22u78/EjpUWA2yPYG0S9E=";
     };
     aarch64-darwin = {
       platform = "macosx_11_0_arm64";
-      hash = "sha256-EizxrTI7b4qSp8nLwXCnvJqKwZje7+WXyw5z+Yk6bvQ=";
+      hash = "sha256-g8sFLh2V9NDIvAZOaDhMpFxKqbS/S1eKep4v1vlOOo8=";
     };
   };
 
diff --git a/pkgs/tools/security/sherlock/default.nix b/pkgs/tools/security/sherlock/default.nix
index 2a475e13d3d5f..17cb861024dca 100644
--- a/pkgs/tools/security/sherlock/default.nix
+++ b/pkgs/tools/security/sherlock/default.nix
@@ -7,14 +7,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "sherlock";
-  version = "0-unstable-2024-05-15";
+  version = "0-unstable-2024-05-22";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "sherlock-project";
     repo = "sherlock";
-    rev = "0ecb496ae91bc36476e3e6800aa3928c5dcd82f8";
-    hash = "sha256-CikQaQsiwKz0yEk3rA6hi570LIobEaxxgQ5I/B6OxWk=";
+    rev = "ab5fcbb90f592ea97239ceab5e8ca3a8d3f7f08b";
+    hash = "sha256-F793Co7CdpNrMFM7SHy/hrmzPKo5hiSHF3BqGtjmJbc=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/security/smbmap/default.nix b/pkgs/tools/security/smbmap/default.nix
index 772df0a66ef91..5075c6ac38386 100644
--- a/pkgs/tools/security/smbmap/default.nix
+++ b/pkgs/tools/security/smbmap/default.nix
@@ -1,21 +1,24 @@
-{ lib
-, fetchFromGitHub
-, python3
+{
+  lib,
+  fetchFromGitHub,
+  python3,
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "smbmap";
-  version = "1.10.2";
-  format = "setuptools";
+  version = "1.10.3";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "ShawnDEvans";
     repo = "smbmap";
     rev = "refs/tags/v${version}";
-    hash = "sha256-6+kO2Wfz3gGABS4fGxoebCubzvFAaJIGnMPA+k1mckc=";
+    hash = "sha256-ZzNiNAGf0FYfo3Zow4crWFQQb4+GhUeHpwJfuM5P9Ds=";
   };
 
-  propagatedBuildInputs = with python3.pkgs; [
+  build-system = with python3.pkgs; [ setuptools ];
+
+  dependencies = with python3.pkgs; [
     impacket
     pyasn1
     pycrypto
@@ -26,16 +29,14 @@ python3.pkgs.buildPythonApplication rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "smbmap"
-  ];
+  pythonImportsCheck = [ "smbmap" ];
 
   meta = with lib; {
     description = "SMB enumeration tool";
-    mainProgram = "smbmap";
     homepage = "https://github.com/ShawnDEvans/smbmap";
     changelog = "https://github.com/ShawnDEvans/smbmap/releases/tag/v${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "smbmap";
   };
 }
diff --git a/pkgs/tools/security/ssh-audit/default.nix b/pkgs/tools/security/ssh-audit/default.nix
index 0551a7b10b222..ec12b6f4bde54 100644
--- a/pkgs/tools/security/ssh-audit/default.nix
+++ b/pkgs/tools/security/ssh-audit/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchFromGitHub
+, installShellFiles
 , nixosTests
 , python3Packages
 }:
@@ -8,6 +9,7 @@ python3Packages.buildPythonApplication rec {
   pname = "ssh-audit";
   version = "3.2.0";
   format = "setuptools";
+  outputs = [ "out" "man" ];
 
   src = fetchFromGitHub {
     owner = "jtesta";
@@ -16,6 +18,11 @@ python3Packages.buildPythonApplication rec {
     sha256 = "sha256-g5h0A1BJqzOZaSVUxyi7IsCcrbto4+7+HpiVjFZy50Y=";
   };
 
+  nativeBuildInputs = [ installShellFiles ];
+  postInstall = ''
+    installManPage $src/ssh-audit.1
+  '';
+
   nativeCheckInputs = with python3Packages; [
     pytestCheckHook
   ];
diff --git a/pkgs/tools/security/trufflehog/default.nix b/pkgs/tools/security/trufflehog/default.nix
index d0e9cb39a2321..f351436f65278 100644
--- a/pkgs/tools/security/trufflehog/default.nix
+++ b/pkgs/tools/security/trufflehog/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "trufflehog";
-  version = "3.76.3";
+  version = "3.77.0";
 
   src = fetchFromGitHub {
     owner = "trufflesecurity";
     repo = "trufflehog";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Esw9O0OO6a4BwN/HA8WTDUX4xcwN6Jdu1io4DYko54A=";
+    hash = "sha256-X/JqYBgh2wqJ992VBPsx8p5NNOQQV4alJbCoqMbmWkY=";
   };
 
-  vendorHash = "sha256-vHHLHXfeRl9aEBqFidGCkBLs/ifwOysbUSYbQaTKcPU=";
+  vendorHash = "sha256-S37sIRxLnzGYQ56F8/GNWn7n0Ypb9it3wWx1X0am+Ac=";
 
   proxyVendor = true;
 
diff --git a/pkgs/tools/security/uncover/default.nix b/pkgs/tools/security/uncover/default.nix
index f0ee8aa23757f..7bb56ce21451e 100644
--- a/pkgs/tools/security/uncover/default.nix
+++ b/pkgs/tools/security/uncover/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "uncover";
-  version = "1.0.7";
+  version = "1.0.8";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-CJA+rDLubghaQT+yb0zQY3y8hF0/5ISH9YFvIQHwH2Y=";
+    hash = "sha256-iBZwR4hEd1pmmq4WzY/kfwHmpFj/MG+xGitbIQI8K5I=";
   };
 
-  vendorHash = "sha256-A7XPsl27Q5CaQXQUEvNB05B2M3mFGz/yZ4sOnOHxhw8=";
+  vendorHash = "sha256-cf9Itdz1hR74TVoFOsOdUcrvEuT57RZn2tgrEXU4c8E=";
 
   meta = with lib; {
     description = "API wrapper to search for exposed hosts";
diff --git a/pkgs/tools/security/vault-medusa/default.nix b/pkgs/tools/security/vault-medusa/default.nix
index cd7cf537de587..a0984534f1c80 100644
--- a/pkgs/tools/security/vault-medusa/default.nix
+++ b/pkgs/tools/security/vault-medusa/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "vault-medusa";
-  version = "0.7.0";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "jonasvinther";
     repo = "medusa";
     rev = "v${version}";
-    sha256 = "sha256-8lbaXcu+o+grbFPJxZ6p/LezxDFCUvOQyX49zX4V/v0=";
+    sha256 = "sha256-4fYtWRWonZC9HSNGMqZZPH3xHi6wPk3vSF+htu34g6A=";
   };
 
-  vendorHash = "sha256-/8wusZt0BQ//HCokjiSpsgsGb19FggrGrEuhCrwm9L0=";
+  vendorHash = "sha256-GdQiPeU5SWZlqWkyk8gU9yVTUQxJlurhY3l1xZXKeJY=";
 
   meta = with lib; {
     description = "A cli tool for importing and exporting Hashicorp Vault secrets";
diff --git a/pkgs/tools/security/wapiti/default.nix b/pkgs/tools/security/wapiti/default.nix
index 13a7e55cc3ec6..1ddfbb703b967 100644
--- a/pkgs/tools/security/wapiti/default.nix
+++ b/pkgs/tools/security/wapiti/default.nix
@@ -1,57 +1,59 @@
-{ lib
-, fetchFromGitHub
-, python3
+{
+  lib,
+  fetchFromGitHub,
+  python3,
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "wapiti";
   version = "3.1.8";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "wapiti-scanner";
-    repo = pname;
+    repo = "wapiti";
     rev = "refs/tags/${version}";
     hash = "sha256-2ssbczUa4pTA5Fai+sK1hES8skJMIHxa/R2hNIiEVLs=";
   };
 
   postPatch = ''
-    # Ignore pinned versions
-    sed -i -e "s/==[0-9.]*//;s/>=[0-9.]*//" pyproject.toml
-
     # Remove code coverage checking
     substituteInPlace pyproject.toml \
       --replace "--cov --cov-report=xml" ""
   '';
 
-  nativeBuildInputs = with python3.pkgs; [
-    setuptools
-    wheel
-  ];
+  pythonRelaxDeps = true;
+
+  build-system = with python3.pkgs; [ setuptools ];
 
-  propagatedBuildInputs = with python3.pkgs; [
-    aiocache
-    aiohttp
-    aiosqlite
-    arsenic
-    beautifulsoup4
-    browser-cookie3
-    dnspython
-    h11
-    httpcore
-    httpx
-    httpx-ntlm
-    loguru
-    mako
-    markupsafe
-    mitmproxy
-    pyasn1
-    six
-    sqlalchemy
-    tld
-    yaswfp
-  ] ++ httpx.optional-dependencies.brotli
-  ++ httpx.optional-dependencies.socks;
+  nativeBuildInputs = with python3.pkgs; [ pythonRelaxDepsHook ];
+
+  dependencies =
+    with python3.pkgs;
+    [
+      aiocache
+      aiohttp
+      aiosqlite
+      arsenic
+      beautifulsoup4
+      browser-cookie3
+      dnspython
+      h11
+      httpcore
+      httpx
+      httpx-ntlm
+      loguru
+      mako
+      markupsafe
+      mitmproxy
+      pyasn1
+      six
+      sqlalchemy
+      tld
+      yaswfp
+    ]
+    ++ httpx.optional-dependencies.brotli
+    ++ httpx.optional-dependencies.socks;
 
   __darwinAllowLocalNetworking = true;
 
@@ -138,9 +140,7 @@ python3.pkgs.buildPythonApplication rec {
     "tests/attack/test_mod_ssl.py"
   ];
 
-  pythonImportsCheck = [
-    "wapitiCore"
-  ];
+  pythonImportsCheck = [ "wapitiCore" ];
 
   meta = with lib; {
     description = "Web application vulnerability scanner";
@@ -154,7 +154,7 @@ python3.pkgs.buildPythonApplication rec {
     '';
     homepage = "https://wapiti-scanner.github.io/";
     changelog = "https://github.com/wapiti-scanner/wapiti/blob/${version}/doc/ChangeLog_Wapiti";
-    license = with licenses; [ gpl2Only ];
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/tools/security/yaralyzer/default.nix b/pkgs/tools/security/yaralyzer/default.nix
index ddfc828741e53..47b5576e7bec8 100644
--- a/pkgs/tools/security/yaralyzer/default.nix
+++ b/pkgs/tools/security/yaralyzer/default.nix
@@ -3,31 +3,16 @@
 , fetchFromGitHub
 }:
 
-let
-  python = python3.override {
-    packageOverrides = self: super: {
-      yara-python = super.yara-python.overridePythonAttrs (oldAttrs: rec {
-        version = "4.2.3";
-        src = fetchFromGitHub {
-          owner = "VirusTotal";
-          repo = "yara-python";
-          rev = "v${version}";
-          hash = "sha256-spUQuezQMqaG1hboM0/Gs7siCM6x0b40O+sV7qGGBng=";
-        };
-      });
-    };
-  };
-in
-python.pkgs.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "yaralyzer";
-  version = "0.9.3";
+  version = "0.9.4";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "michelcrypt4d4mus";
     repo = "yaralyzer";
     rev = "refs/tags/v${version}";
-    hash = "sha256-KGQNonzAZp8c0a3Rjb1WfsEkx5srgRzZfGR3gfNEdzY=";
+    hash = "sha256-rDb09XJOGWNARR0hhQQ91KXWepsLyR2a6/o3jagh6nA=";
   };
 
   pythonRelaxDeps = [
@@ -35,12 +20,12 @@ python.pkgs.buildPythonApplication rec {
     "rich"
   ];
 
-  nativeBuildInputs = with python.pkgs; [
+  build-system = with python3.pkgs; [
     poetry-core
     pythonRelaxDepsHook
   ];
 
-  propagatedBuildInputs = with python.pkgs; [
+  dependencies = with python3.pkgs; [
     chardet
     python-dotenv
     rich
@@ -52,12 +37,12 @@ python.pkgs.buildPythonApplication rec {
     "yaralyzer"
   ];
 
-  meta = with lib; {
+  meta = {
     description = "Tool to visually inspect and force decode YARA and regex matches";
     homepage = "https://github.com/michelcrypt4d4mus/yaralyzer";
-    changelog = "https://github.com/michelcrypt4d4mus/yaralyzer/blob/${version}/CHANGELOG.md";
-    license = licenses.gpl3Only;
-    maintainers = with maintainers; [ fab ];
+    changelog = "https://github.com/michelcrypt4d4mus/yaralyzer/blob/v${version}/CHANGELOG.md";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ fab ];
     mainProgram = "yaralyze";
   };
 }
diff --git a/pkgs/tools/system/java-service-wrapper/default.nix b/pkgs/tools/system/java-service-wrapper/default.nix
index 9578941ef9a12..2b33564b683ff 100644
--- a/pkgs/tools/system/java-service-wrapper/default.nix
+++ b/pkgs/tools/system/java-service-wrapper/default.nix
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   pname = "java-service-wrapper";
-  version = "3.5.56";
+  version = "3.5.57";
 
   src = fetchurl {
     url = "https://wrapper.tanukisoftware.com/download/${version}/wrapper_${version}_src.tar.gz";
-    hash = "sha256-zZfJP/uf78D/6G51Km1bNRRIv5i8x69Xw+imho4/ZpQ=";
+    hash = "sha256-86YusgyLUveMrXepAtnABgdZCGlQDQjVFnG9GqFnCIg=";
   };
 
   strictDeps = true;
diff --git a/pkgs/tools/system/jsvc/default.nix b/pkgs/tools/system/jsvc/default.nix
index f8f67b0f45f95..9ace8902992e9 100644
--- a/pkgs/tools/system/jsvc/default.nix
+++ b/pkgs/tools/system/jsvc/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "jsvc";
-  version = "1.3.4";
+  version = "1.4.0";
 
   src = fetchurl {
     url = "https://downloads.apache.org//commons/daemon/source/commons-daemon-${version}-src.tar.gz";
-    sha256 = "sha256-30hJ0F5YFmEOZ4IYg/T8HhFySgu4t4uEsh7dUDns674=";
+    sha256 = "sha256-AFnx6AqmOfAsfh/4ALV9xiA2pbP0sX1h5dPj/9JCj+4=";
   };
 
   buildInputs = [ commonsDaemon ];
diff --git a/pkgs/tools/text/ansifilter/default.nix b/pkgs/tools/text/ansifilter/default.nix
index e2fd695d41ecc..686b8c9f4171e 100644
--- a/pkgs/tools/text/ansifilter/default.nix
+++ b/pkgs/tools/text/ansifilter/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
       Tool to remove ANSI or convert them to another format
       (HTML, TeX, LaTeX, RTF, Pango or BBCode)
     '';
-    homepage = "http://www.andre-simon.de/doku/ansifilter/en/ansifilter.php";
+    homepage = "http://www.andre-simon.de/doku/ansifilter/en/ansifilter.html";
     license = licenses.gpl3;
     maintainers = [ maintainers.Adjective-Object ];
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/pkgs/tools/text/crowdin-cli/default.nix b/pkgs/tools/text/crowdin-cli/default.nix
index 763c2e3b0fbea..b7b161427f02d 100644
--- a/pkgs/tools/text/crowdin-cli/default.nix
+++ b/pkgs/tools/text/crowdin-cli/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "crowdin-cli";
-  version = "3.19.4";
+  version = "4.0.0";
 
   src = fetchurl {
     url = "https://github.com/crowdin/${pname}/releases/download/${version}/${pname}.zip";
-    hash = "sha256-SD4D9wW+Tdr3mD91SJKm5K3gktH0ywQBRh0d1TMeLDs=";
+    hash = "sha256-7KyQUnl2O/raQLcP5VsMCX3084Mn6HFfxjJmksAkWBc=";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper unzip ];
diff --git a/pkgs/tools/text/difftastic/Cargo.lock b/pkgs/tools/text/difftastic/Cargo.lock
deleted file mode 100644
index 425b396c8b401..0000000000000
--- a/pkgs/tools/text/difftastic/Cargo.lock
+++ /dev/null
@@ -1,1254 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "ahash"
-version = "0.8.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f"
-dependencies = [
- "cfg-if",
- "once_cell",
- "version_check",
- "zerocopy",
-]
-
-[[package]]
-name = "aho-corasick"
-version = "1.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "allocator-api2"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
-
-[[package]]
-name = "assert_cmd"
-version = "2.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5c2ca00549910ec251e3bd15f87aeeb206c9456b9a77b43ff6c97c54042a472"
-dependencies = [
- "bstr 0.2.17",
- "doc-comment",
- "predicates",
- "predicates-core",
- "predicates-tree",
- "wait-timeout",
-]
-
-[[package]]
-name = "atty"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-dependencies = [
- "hermit-abi 0.1.19",
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "autocfg"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-
-[[package]]
-name = "bitflags"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-
-[[package]]
-name = "bitflags"
-version = "2.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
-
-[[package]]
-name = "bstr"
-version = "0.2.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223"
-dependencies = [
- "lazy_static",
- "memchr",
- "regex-automata 0.1.10",
-]
-
-[[package]]
-name = "bstr"
-version = "1.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05"
-dependencies = [
- "memchr",
- "serde",
-]
-
-[[package]]
-name = "bumpalo"
-version = "3.14.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
-
-[[package]]
-name = "bytecount"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72feb31ffc86498dacdbd0fcebb56138e7177a8cc5cea4516031d15ae85a742e"
-
-[[package]]
-name = "cc"
-version = "1.0.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "cfg-if"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-
-[[package]]
-name = "clap"
-version = "3.2.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123"
-dependencies = [
- "atty",
- "bitflags 1.3.2",
- "clap_lex",
- "indexmap",
- "once_cell",
- "strsim",
- "termcolor",
- "terminal_size",
- "textwrap",
-]
-
-[[package]]
-name = "clap_lex"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
-dependencies = [
- "os_str_bytes",
-]
-
-[[package]]
-name = "const_format"
-version = "0.2.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0936ffe6d0c8d6a51b3b0a73b2acbe925d786f346cf45bfddc8341d79fb7dc8a"
-dependencies = [
- "const_format_proc_macros",
-]
-
-[[package]]
-name = "const_format_proc_macros"
-version = "0.2.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef196d5d972878a48da7decb7686eded338b4858fbabeed513d63a7c98b2b82d"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-xid",
-]
-
-[[package]]
-name = "crossbeam-channel"
-version = "0.5.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
-dependencies = [
- "cfg-if",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-deque"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e"
-dependencies = [
- "cfg-if",
- "crossbeam-epoch",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-epoch"
-version = "0.9.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1145cf131a2c6ba0615079ab6a638f7e1973ac9c2634fcbeaaad6114246efe8c"
-dependencies = [
- "autocfg",
- "cfg-if",
- "crossbeam-utils",
- "lazy_static",
- "memoffset",
- "scopeguard",
-]
-
-[[package]]
-name = "crossbeam-utils"
-version = "0.8.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38"
-dependencies = [
- "cfg-if",
- "lazy_static",
-]
-
-[[package]]
-name = "crossterm"
-version = "0.27.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df"
-dependencies = [
- "bitflags 2.4.2",
- "crossterm_winapi",
- "libc",
- "mio",
- "parking_lot",
- "signal-hook",
- "signal-hook-mio",
- "winapi",
-]
-
-[[package]]
-name = "crossterm_winapi"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "ctor"
-version = "0.1.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f877be4f7c9f246b183111634f75baa039715e3f46ce860677d3b19a69fb229c"
-dependencies = [
- "quote",
- "syn 1.0.95",
-]
-
-[[package]]
-name = "diff"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499"
-
-[[package]]
-name = "difflib"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
-
-[[package]]
-name = "difftastic"
-version = "0.56.1"
-dependencies = [
- "assert_cmd",
- "bumpalo",
- "cc",
- "clap",
- "const_format",
- "crossterm",
- "glob",
- "hashbrown 0.14.3",
- "humansize",
- "ignore",
- "itertools 0.11.0",
- "lazy_static",
- "libc",
- "libmimalloc-sys",
- "line-numbers",
- "log",
- "mimalloc",
- "owo-colors",
- "predicates",
- "pretty_assertions",
- "pretty_env_logger",
- "radix-heap",
- "rayon",
- "regex",
- "rustc-hash",
- "serde",
- "serde_json",
- "strsim",
- "strum",
- "tree-sitter",
- "tree_magic_mini",
- "typed-arena",
- "unicode-width",
- "version_check",
- "wu-diff",
-]
-
-[[package]]
-name = "doc-comment"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
-
-[[package]]
-name = "either"
-version = "1.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
-
-[[package]]
-name = "env_logger"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
-dependencies = [
- "humantime",
- "is-terminal",
- "log",
- "regex",
- "termcolor",
-]
-
-[[package]]
-name = "errno"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860"
-dependencies = [
- "libc",
- "windows-sys",
-]
-
-[[package]]
-name = "fixedbitset"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "279fb028e20b3c4c320317955b77c5e0c9701f05a1d309905d6fc702cdc5053e"
-
-[[package]]
-name = "float-cmp"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4"
-dependencies = [
- "num-traits",
-]
-
-[[package]]
-name = "fnv"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-
-[[package]]
-name = "glob"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
-
-[[package]]
-name = "globset"
-version = "0.4.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d"
-dependencies = [
- "aho-corasick",
- "bstr 1.6.0",
- "fnv",
- "log",
- "regex",
-]
-
-[[package]]
-name = "hashbrown"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
-
-[[package]]
-name = "hashbrown"
-version = "0.14.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
-dependencies = [
- "ahash",
- "allocator-api2",
-]
-
-[[package]]
-name = "heck"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
-
-[[package]]
-name = "hermit-abi"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
-
-[[package]]
-name = "humansize"
-version = "2.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6cb51c9a029ddc91b07a787f1d86b53ccfa49b0e86688c946ebe8d3555685dd7"
-dependencies = [
- "libm",
-]
-
-[[package]]
-name = "humantime"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
-
-[[package]]
-name = "ignore"
-version = "0.4.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d"
-dependencies = [
- "crossbeam-utils",
- "globset",
- "lazy_static",
- "log",
- "memchr",
- "regex",
- "same-file",
- "thread_local",
- "walkdir",
- "winapi-util",
-]
-
-[[package]]
-name = "indexmap"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5"
-dependencies = [
- "autocfg",
- "hashbrown 0.11.2",
-]
-
-[[package]]
-name = "io-lifetimes"
-version = "1.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
-dependencies = [
- "hermit-abi 0.3.3",
- "libc",
- "windows-sys",
-]
-
-[[package]]
-name = "is-terminal"
-version = "0.4.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f"
-dependencies = [
- "hermit-abi 0.3.3",
- "io-lifetimes",
- "rustix",
- "windows-sys",
-]
-
-[[package]]
-name = "itertools"
-version = "0.10.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3"
-dependencies = [
- "either",
-]
-
-[[package]]
-name = "itertools"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
-dependencies = [
- "either",
-]
-
-[[package]]
-name = "itoa"
-version = "1.0.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
-
-[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-
-[[package]]
-name = "libc"
-version = "0.2.149"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
-
-[[package]]
-name = "libm"
-version = "0.2.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
-
-[[package]]
-name = "libmimalloc-sys"
-version = "0.1.24"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7705fc40f6ed493f73584abbb324e74f96b358ff60dfe5659a0f8fc12c590a69"
-dependencies = [
- "cc",
-]
-
-[[package]]
-name = "line-numbers"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b25f5068853805faa3c19f44d0c401446e4eb3f47cc808fa331eec30f0ba35c"
-
-[[package]]
-name = "linux-raw-sys"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
-
-[[package]]
-name = "lock_api"
-version = "0.4.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
-dependencies = [
- "autocfg",
- "scopeguard",
-]
-
-[[package]]
-name = "log"
-version = "0.4.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "memchr"
-version = "2.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
-
-[[package]]
-name = "memoffset"
-version = "0.6.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "mimalloc"
-version = "0.1.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0dfa131390c2f6bdb3242f65ff271fcdaca5ff7b6c08f28398be7f2280e3926"
-dependencies = [
- "libmimalloc-sys",
-]
-
-[[package]]
-name = "minimal-lexical"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
-
-[[package]]
-name = "mio"
-version = "0.8.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
-dependencies = [
- "libc",
- "log",
- "wasi",
- "windows-sys",
-]
-
-[[package]]
-name = "nom"
-version = "7.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36"
-dependencies = [
- "memchr",
- "minimal-lexical",
-]
-
-[[package]]
-name = "normalize-line-endings"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
-
-[[package]]
-name = "num-traits"
-version = "0.2.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "num_cpus"
-version = "1.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
-dependencies = [
- "hermit-abi 0.1.19",
- "libc",
-]
-
-[[package]]
-name = "once_cell"
-version = "1.19.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
-
-[[package]]
-name = "os_str_bytes"
-version = "6.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "029d8d0b2f198229de29dca79676f2738ff952edf3fde542eb8bf94d8c21b435"
-
-[[package]]
-name = "output_vt100"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "628223faebab4e3e40667ee0b2336d34a5b960ff60ea743ddfdbcf7770bcfb66"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "owo-colors"
-version = "3.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f"
-
-[[package]]
-name = "parking_lot"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
-dependencies = [
- "lock_api",
- "parking_lot_core",
-]
-
-[[package]]
-name = "parking_lot_core"
-version = "0.9.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
-dependencies = [
- "cfg-if",
- "libc",
- "redox_syscall",
- "smallvec",
- "windows-targets",
-]
-
-[[package]]
-name = "petgraph"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51b305cc4569dd4e8765bab46261f67ef5d4d11a4b6e745100ee5dad8948b46c"
-dependencies = [
- "fixedbitset",
- "indexmap",
-]
-
-[[package]]
-name = "predicates"
-version = "2.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5aab5be6e4732b473071984b3164dbbfb7a3674d30ea5ff44410b6bcd960c3c"
-dependencies = [
- "difflib",
- "float-cmp",
- "itertools 0.10.3",
- "normalize-line-endings",
- "predicates-core",
- "regex",
-]
-
-[[package]]
-name = "predicates-core"
-version = "1.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da1c2388b1513e1b605fcec39a95e0a9e8ef088f71443ef37099fa9ae6673fcb"
-
-[[package]]
-name = "predicates-tree"
-version = "1.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d86de6de25020a36c6d3643a86d9a6a9f552107c0559c60ea03551b5e16c032"
-dependencies = [
- "predicates-core",
- "termtree",
-]
-
-[[package]]
-name = "pretty_assertions"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a25e9bcb20aa780fd0bb16b72403a9064d6b3f22f026946029acb941a50af755"
-dependencies = [
- "ctor",
- "diff",
- "output_vt100",
- "yansi",
-]
-
-[[package]]
-name = "pretty_env_logger"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "865724d4dbe39d9f3dd3b52b88d859d66bcb2d6a0acfd5ea68a65fb66d4bdc1c"
-dependencies = [
- "env_logger",
- "log",
-]
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.78"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.35"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "radix-heap"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59ffec9df464013295b499298811e6a3de31bf8128092135826517db12dee601"
-
-[[package]]
-name = "rayon"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
-dependencies = [
- "either",
- "rayon-core",
-]
-
-[[package]]
-name = "rayon-core"
-version = "1.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
-dependencies = [
- "crossbeam-channel",
- "crossbeam-deque",
- "crossbeam-utils",
- "num_cpus",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
-dependencies = [
- "bitflags 1.3.2",
-]
-
-[[package]]
-name = "regex"
-version = "1.9.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ebee201405406dbf528b8b672104ae6d6d63e6d118cb10e4d51abbc7b58044ff"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-automata 0.3.9",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-automata"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
-
-[[package]]
-name = "regex-automata"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59b23e92ee4318893fa3fe3e6fb365258efbfe6ac6ab30f090cdcbb7aa37efa9"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-syntax"
-version = "0.7.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
-
-[[package]]
-name = "rustc-hash"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
-
-[[package]]
-name = "rustix"
-version = "0.37.27"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
-dependencies = [
- "bitflags 1.3.2",
- "errno",
- "io-lifetimes",
- "libc",
- "linux-raw-sys",
- "windows-sys",
-]
-
-[[package]]
-name = "rustversion"
-version = "1.0.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06"
-
-[[package]]
-name = "ryu"
-version = "1.0.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
-
-[[package]]
-name = "same-file"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
-name = "scopeguard"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-
-[[package]]
-name = "serde"
-version = "1.0.176"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76dc28c9523c5d70816e393136b86d48909cfb27cecaa902d338c19ed47164dc"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.176"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4e7b8c5dc823e3b90651ff1d3808419cd14e5ad76de04feaf37da114e7a306f"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.49",
-]
-
-[[package]]
-name = "serde_json"
-version = "1.0.104"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c"
-dependencies = [
- "itoa",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "signal-hook"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
-dependencies = [
- "libc",
- "signal-hook-registry",
-]
-
-[[package]]
-name = "signal-hook-mio"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af"
-dependencies = [
- "libc",
- "mio",
- "signal-hook",
-]
-
-[[package]]
-name = "signal-hook-registry"
-version = "1.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "smallvec"
-version = "1.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
-
-[[package]]
-name = "strsim"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
-
-[[package]]
-name = "strum"
-version = "0.25.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
-dependencies = [
- "strum_macros",
-]
-
-[[package]]
-name = "strum_macros"
-version = "0.25.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6069ca09d878a33f883cc06aaa9718ede171841d3832450354410b718b097232"
-dependencies = [
- "heck",
- "proc-macro2",
- "quote",
- "rustversion",
- "syn 2.0.49",
-]
-
-[[package]]
-name = "syn"
-version = "1.0.95"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbaf6116ab8924f39d52792136fb74fd60a80194cf1b1c6ffa6453eef1c3f942"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "syn"
-version = "2.0.49"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "915aea9e586f80826ee59f8453c1101f9d1c4b3964cd2460185ee8e299ada496"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "termcolor"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
-name = "terminal_size"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237"
-dependencies = [
- "rustix",
- "windows-sys",
-]
-
-[[package]]
-name = "termtree"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "507e9898683b6c43a9aa55b64259b721b52ba226e0f3779137e50ad114a4c90b"
-
-[[package]]
-name = "textwrap"
-version = "0.16.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9"
-dependencies = [
- "terminal_size",
-]
-
-[[package]]
-name = "thread_local"
-version = "1.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
-dependencies = [
- "cfg-if",
- "once_cell",
-]
-
-[[package]]
-name = "tree-sitter"
-version = "0.20.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e747b1f9b7b931ed39a548c1fae149101497de3c1fc8d9e18c62c1a66c683d3d"
-dependencies = [
- "cc",
- "regex",
-]
-
-[[package]]
-name = "tree_magic_mini"
-version = "3.0.2"
-source = "git+https://github.com/Wilfred/tree_magic?branch=fix-panic-for-empty-strings#13dd6dda15c7062bd8f7dd5bc9bb5b16ce9ee613"
-dependencies = [
- "bytecount",
- "fnv",
- "lazy_static",
- "nom",
- "once_cell",
- "petgraph",
-]
-
-[[package]]
-name = "typed-arena"
-version = "2.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a"
-
-[[package]]
-name = "unicode-ident"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee"
-
-[[package]]
-name = "unicode-width"
-version = "0.1.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
-
-[[package]]
-name = "unicode-xid"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04"
-
-[[package]]
-name = "version_check"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-
-[[package]]
-name = "wait-timeout"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "walkdir"
-version = "2.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
-dependencies = [
- "same-file",
- "winapi-util",
-]
-
-[[package]]
-name = "wasi"
-version = "0.11.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-
-[[package]]
-name = "winapi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
-]
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
-name = "winapi-util"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-
-[[package]]
-name = "windows-sys"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
-dependencies = [
- "windows-targets",
-]
-
-[[package]]
-name = "windows-targets"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
-dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
-]
-
-[[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
-
-[[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
-
-[[package]]
-name = "wu-diff"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e3e6735fcde06432870db8dc9d7e3ab1b93727c14eaef329969426299f28893"
-
-[[package]]
-name = "yansi"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
-
-[[package]]
-name = "zerocopy"
-version = "0.7.32"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
-dependencies = [
- "zerocopy-derive",
-]
-
-[[package]]
-name = "zerocopy-derive"
-version = "0.7.32"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.49",
-]
diff --git a/pkgs/tools/text/difftastic/default.nix b/pkgs/tools/text/difftastic/default.nix
index 01f62462fdd8e..c93bfe6442b61 100644
--- a/pkgs/tools/text/difftastic/default.nix
+++ b/pkgs/tools/text/difftastic/default.nix
@@ -1,48 +1,28 @@
 { lib
-, fetchpatch
 , rustPlatform
 , fetchFromGitHub
 , testers
 , difftastic
-, stdenv
 }:
 
-let
-  mimallocPatch = fetchpatch {
-    name = "fix-build-on-older-macos-releases.patch";
-    url = "https://github.com/microsoft/mimalloc/commit/40e0507a5959ee218f308d33aec212c3ebeef3bb.patch";
-    sha256 = "sha256-DK0LqsVXXiEVQSQCxZ5jyZMg0UJJx9a/WxzCroYSHZc=";
-  };
-in
-
 rustPlatform.buildRustPackage rec {
   pname = "difftastic";
-  version = "0.56.1";
+  version = "0.58.0";
 
   src = fetchFromGitHub {
     owner = "wilfred";
     repo = pname;
     rev = version;
-    hash = "sha256-XQzsLowHtgXIKfUWx1Sj1D0F8scb7fNp33Cwfh5XvJI=";
+    hash = "sha256-PTc8/NhWsLcKJj+9ebV/YaWEmyOWKJCYUjmVbr4z2SY=";
   };
 
-  cargoLock = {
-    lockFile = ./Cargo.lock;
-    outputHashes = {
-      "tree_magic_mini-3.0.2" = "sha256-iIX/DeDbquObDPOx/pctVFN4R8GSkD9bPNkNgOLdUJs=";
-    };
-  };
+  cargoSha256 = "sha256-wtWJ32bBoCmx+eGkrOk8o0OQFMhGYZEBEDI1oHn3Zuw=";
 
   # skip flaky tests
   checkFlags = [
     "--skip=options::tests::test_detect_display_width"
   ];
 
-  postPatch = ''
-    patch -d $cargoDepsCopy/libmimalloc-sys-0.1.24/c_src/mimalloc \
-      -p1 < ${mimallocPatch}
-  '';
-
   passthru.tests.version = testers.testVersion { package = difftastic; };
 
   meta = with lib; {
@@ -50,7 +30,7 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/Wilfred/difftastic";
     changelog = "https://github.com/Wilfred/difftastic/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
-    maintainers = with maintainers; [ ethancedwards8 figsoda ];
+    maintainers = with maintainers; [ ethancedwards8 figsoda matthiasbeyer ];
     mainProgram = "difft";
   };
 }
diff --git a/pkgs/tools/text/diffutils/default.nix b/pkgs/tools/text/diffutils/default.nix
index 8c4a160d4b1e5..6c1bc8bf01f13 100644
--- a/pkgs/tools/text/diffutils/default.nix
+++ b/pkgs/tools/text/diffutils/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, xz, coreutils ? null }:
+{ lib, stdenv, fetchurl, updateAutotoolsGnuConfigScriptsHook, xz, coreutils ? null }:
 
 # Note: this package is used for bootstrapping fetchurl, and thus
 # cannot use fetchpatch! All mutable patches (generated by GitHub or
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "info" ];
 
-  nativeBuildInputs = [ (lib.getBin xz) ];
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook (lib.getBin xz) ];
   /* If no explicit coreutils is given, use the one from stdenv. */
   buildInputs = [ coreutils ];
 
diff --git a/pkgs/tools/text/gawk/default.nix b/pkgs/tools/text/gawk/default.nix
index d85880e82e155..8857fa29d1c63 100644
--- a/pkgs/tools/text/gawk/default.nix
+++ b/pkgs/tools/text/gawk/default.nix
@@ -1,4 +1,5 @@
 { lib, stdenv, fetchurl
+, runtimeShellPackage
 # TODO: links -lsigsegv but loses the reference for some reason
 , withSigsegv ? (false && stdenv.hostPlatform.system != "x86_64-cygwin"), libsigsegv
 , interactive ? false, readline
@@ -39,7 +40,9 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook ]
     ++ lib.optional (doCheck && stdenv.isLinux) glibcLocales;
 
-  buildInputs = lib.optional withSigsegv libsigsegv
+  buildInputs = [
+    runtimeShellPackage
+  ] ++ lib.optional withSigsegv libsigsegv
     ++ lib.optional interactive readline
     ++ lib.optional stdenv.isDarwin locale;
 
diff --git a/pkgs/tools/text/gnugrep/default.nix b/pkgs/tools/text/gnugrep/default.nix
index 5df81274c6a5d..7298fe881bea1 100644
--- a/pkgs/tools/text/gnugrep/default.nix
+++ b/pkgs/tools/text/gnugrep/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, glibcLocales, fetchurl, pcre2, libiconv, perl }:
+{ lib, stdenv, updateAutotoolsGnuConfigScriptsHook, glibcLocales, fetchurl, pcre2, libiconv, perl, runtimeShellPackage }:
 
 # Note: this package is used for bootstrapping fetchurl, and thus
 # cannot use fetchpatch! All mutable patches (generated by GitHub or
@@ -26,7 +26,8 @@ stdenv.mkDerivation {
   nativeCheckInputs = [ perl glibcLocales ];
   outputs = [ "out" "info" ]; # the man pages are rather small
 
-  buildInputs = [ pcre2 libiconv ];
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
+  buildInputs = [ pcre2 libiconv runtimeShellPackage ];
 
   # cygwin: FAIL: multibyte-white-space
   # freebsd: FAIL mb-non-UTF8-performance
diff --git a/pkgs/tools/text/gnused/default.nix b/pkgs/tools/text/gnused/default.nix
index f493e4f358d65..bc736f418725b 100644
--- a/pkgs/tools/text/gnused/default.nix
+++ b/pkgs/tools/text/gnused/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, perl }:
+{ lib, stdenv, fetchurl, updateAutotoolsGnuConfigScriptsHook, perl }:
 
 stdenv.mkDerivation rec {
   pname = "gnused";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "info" ];
 
-  nativeBuildInputs = [ perl ];
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook perl ];
   preConfigure = "patchShebangs ./build-aux/help2man";
 
   # Prevents attempts of running 'help2man' on cross-built binaries.
diff --git a/pkgs/tools/text/kdiff3/default.nix b/pkgs/tools/text/kdiff3/default.nix
index c22814372314b..456b2c568d820 100644
--- a/pkgs/tools/text/kdiff3/default.nix
+++ b/pkgs/tools/text/kdiff3/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "kdiff3";
-  version = "1.11.0";
+  version = "1.11.1";
 
   src = fetchurl {
     url = "mirror://kde/stable/kdiff3/kdiff3-${finalAttrs.version}.tar.xz";
-    hash = "sha256-O/N5VMoZo2Xze1WLV0yPvTZnGcCH17gheI0++tDESFE=";
+    hash = "sha256-MPFKWrbg1VEWgpF42CdlTDDoQhwE/pcA085npTCEYpg=";
   };
 
   nativeBuildInputs = [ extra-cmake-modules kdoctools wrapQtAppsHook ];
diff --git a/pkgs/tools/text/markdownlint-cli/default.nix b/pkgs/tools/text/markdownlint-cli/default.nix
index 736c59d2c5cf0..12b19d3a71655 100644
--- a/pkgs/tools/text/markdownlint-cli/default.nix
+++ b/pkgs/tools/text/markdownlint-cli/default.nix
@@ -5,16 +5,16 @@
 
 buildNpmPackage rec {
   pname = "markdownlint-cli";
-  version = "0.40.0";
+  version = "0.41.0";
 
   src = fetchFromGitHub {
     owner = "igorshubovych";
     repo = "markdownlint-cli";
     rev = "v${version}";
-    hash = "sha256-h9h1qJ6xKQRRNSr3PsMeuMMyzfJbq49BluKvhJK86v4=";
+    hash = "sha256-qRbfOxMCm5pUAi0KHookOOnKaTShBUkTkrqZX4QGezk=";
   };
 
-  npmDepsHash = "sha256-Ez83Q/zXF61L0hoEb+i4h8oyelrHfgHueAW2mqhCjMQ=";
+  npmDepsHash = "sha256-UwyjaEKYA81J0DR2yFqYVp4e7l3Jol/R8hgaijNpBaU=";
 
   dontNpmBuild = true;
 
diff --git a/pkgs/tools/text/mdbook-admonish/default.nix b/pkgs/tools/text/mdbook-admonish/default.nix
index 442620f87265b..b4407c5dbbc6c 100644
--- a/pkgs/tools/text/mdbook-admonish/default.nix
+++ b/pkgs/tools/text/mdbook-admonish/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook-admonish";
-  version = "1.16.0";
+  version = "1.17.0";
 
   src = fetchFromGitHub {
     owner = "tommilligan";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-/P9cHxeo2HZ11ErdAULlZt1VwmVqs4hoC8inXQiGLj4=";
+    hash = "sha256-Pks33QDAPocUjZTWRS69g9ZkubMqzQezYtJb0UNnd3Q=";
   };
 
-  cargoHash = "sha256-d/jbokKsnuaJfKHQhtXVoD/JoNdhlZpnwRkgOw15p+Y=";
+  cargoHash = "sha256-HXUPdur45CkrzQrCi8YRlyKjk++GRFCcJwzfoX2ix+M=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
diff --git a/pkgs/tools/text/mdbook-i18n-helpers/default.nix b/pkgs/tools/text/mdbook-i18n-helpers/default.nix
index e38da146b1fa6..96026213f4a86 100644
--- a/pkgs/tools/text/mdbook-i18n-helpers/default.nix
+++ b/pkgs/tools/text/mdbook-i18n-helpers/default.nix
@@ -5,17 +5,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook-i18n-helpers";
-  version = "0.3.2";
+  version = "0.3.3";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "mdbook-i18n-helpers";
     # TODO fix once upstream uses semver for tags again
     rev = "refs/tags/mdbook-i18n-helpers-${version}";
-    hash = "sha256-+lXIqq8T6jUkvxzvUnvRDmJg6BnT6rNK67kTm3krR0E=";
+    hash = "sha256-5DfQCkNilRB309BXQ/DWrSMX+A64uiZ2CZxPZ0krtys=";
   };
 
-  cargoHash = "sha256-xQwag3mlcLKI2ERhp+Sug8FZ6LMxnG4P1JaZNtrzdk8=";
+  cargoHash = "sha256-BrbEW5PD7n9KDaBUjdF60nto6mcfdQ0OUDKcnRH23DA=";
 
   meta = with lib; {
     description = "Helpers for a mdbook i18n workflow based on Gettext";
diff --git a/pkgs/tools/text/mdbook-katex/default.nix b/pkgs/tools/text/mdbook-katex/default.nix
index f914dedaf6aa6..9dbde52266ed3 100644
--- a/pkgs/tools/text/mdbook-katex/default.nix
+++ b/pkgs/tools/text/mdbook-katex/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook-katex";
-  version = "0.8.1";
+  version = "0.9.0";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-mVgI2lvT4w5+Tpq3Sx7j86LHFnuwI4bAAAqrUkiF1B4=";
+    hash = "sha256-OTMPf/ZlUtqKz8Lb0uFOhad33N6SaCIZ86I2ajZ19fU=";
   };
 
-  cargoHash = "sha256-ps31HGsAqWJBTP7HNLjfTz610ihDlvfAvlRHqZR01No=";
+  cargoHash = "sha256-U8uDcNkEyz7zAqCTthY5SVGshsJRKRaoBLOpBpQ9sho=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
diff --git a/pkgs/tools/text/percollate/default.nix b/pkgs/tools/text/percollate/default.nix
index 2a7f8eaec3546..0e0581167286b 100644
--- a/pkgs/tools/text/percollate/default.nix
+++ b/pkgs/tools/text/percollate/default.nix
@@ -2,21 +2,21 @@
 
 buildNpmPackage rec {
   pname = "percollate";
-  version = "4.2.0";
+  version = "4.2.1";
 
   src = fetchFromGitHub {
     owner = "danburzo";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-AmvdigxLZA3lgT48Z9EVEWOC92kWNA2ve37RMJTR0UA=";
+    hash = "sha256-vGBGw9dUOSvSqM4WN53bb2LRduLjR6fW99C0ScdMVXk=";
   };
 
-  npmDepsHash = "sha256-21Q47puHZ8/jXIlLFrro87hOYahBjov8Pbg/Z2wgt+g=";
+  npmDepsHash = "sha256-Qne4XjUmJS5e6x380CFY3Kd7/5coXHMxniMfqYIHQcQ=";
 
   dontNpmBuild = true;
 
   # Dev dependencies include an unnecessary Java dependency (epubchecker)
-  # https://github.com/danburzo/percollate/blob/v4.2.0/package.json#L40
+  # https://github.com/danburzo/percollate/blob/v4.2.1/package.json#L40
   npmInstallFlags = [ "--omit=dev" ];
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/text/sad/default.nix b/pkgs/tools/text/sad/default.nix
index d0c6e430e7263..a3fba1a8d088a 100644
--- a/pkgs/tools/text/sad/default.nix
+++ b/pkgs/tools/text/sad/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sad";
-  version = "0.4.28";
+  version = "0.4.29";
 
   src = fetchFromGitHub {
     owner = "ms-jpq";
     repo = "sad";
     rev = "refs/tags/v${version}";
-    hash = "sha256-9zsNYUYUQ3RmJQN7uf+YQjywr7rRAIx5zz6EYkbN8/o=";
+    hash = "sha256-TLVUvz/phAy+ljIsdv4GVSFHTAZ5ywQs32WHsu9g9Fc=";
   };
 
-  cargoHash = "sha256-OSVG1sFSLKkVsgI0I2mYTszcPGlfOL1Md/aCpMf6Eow=";
+  cargoHash = "sha256-4XmTxeKbdC4HRownFlEc4GrSVimKkQg/yNI0us7gzQI=";
 
   nativeBuildInputs = [ python3 ];
 
diff --git a/pkgs/tools/text/teip/default.nix b/pkgs/tools/text/teip/default.nix
index caa665fc3c93c..df36a0a2129ca 100644
--- a/pkgs/tools/text/teip/default.nix
+++ b/pkgs/tools/text/teip/default.nix
@@ -23,11 +23,6 @@ rustPlatform.buildRustPackage rec {
 
   nativeCheckInputs = [ perl ];
 
-  # Cargo.lock is outdated
-  preConfigure = ''
-    cargo update --offline
-  '';
-
   # tests are locale sensitive
   preCheck = ''
     export LANG=${if stdenv.isDarwin then "en_US.UTF-8" else "C.UTF-8"}
diff --git a/pkgs/tools/typesetting/tex/tetex/default.nix b/pkgs/tools/typesetting/tex/tetex/default.nix
index d153864172187..4c3fba31945a9 100644
--- a/pkgs/tools/typesetting/tex/tetex/default.nix
+++ b/pkgs/tools/typesetting/tex/tetex/default.nix
@@ -31,6 +31,11 @@ stdenv.mkDerivation rec {
 
   setupHook = ./setup-hook.sh;
 
+  env = {
+    CFLAGS = "-std=gnu89";
+    CXXFLAGS = "-std=c++03";
+  };
+
   configureFlags =
     [ "--disable-multiplatform" "--without-x11" "--without-xdvik"
       "--without-oxdvik" "--without-texinfo" "--without-texi2html"
diff --git a/pkgs/tools/typesetting/tex/texpresso/default.nix b/pkgs/tools/typesetting/tex/texpresso/default.nix
index 52e8be777c09e..f64dc3aae07e0 100644
--- a/pkgs/tools/typesetting/tex/texpresso/default.nix
+++ b/pkgs/tools/typesetting/tex/texpresso/default.nix
@@ -17,7 +17,7 @@
 
 stdenv.mkDerivation rec {
   pname = "texpresso";
-  version = "0-unstable-2024-05-09";
+  version = "0-unstable-2024-05-23";
 
   nativeBuildInputs = [
     makeWrapper
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "let-def";
     repo = "texpresso";
-    rev = "8b6cfcd10c03596bc3645ac8425a48b105d8650d";
+    rev = "01cafac1ec6d33d5e169a0202f23a6f565cc55b8";
     hash = "sha256-uLGanGEUGzxIYFbU3U8LLV3bpn/IN9XltvWCmwSlD7E=";
   };
 
diff --git a/pkgs/tools/typesetting/tex/texpresso/tectonic.nix b/pkgs/tools/typesetting/tex/texpresso/tectonic.nix
index 838a51324a099..603c4d5ad3f4c 100644
--- a/pkgs/tools/typesetting/tex/texpresso/tectonic.nix
+++ b/pkgs/tools/typesetting/tex/texpresso/tectonic.nix
@@ -6,8 +6,8 @@ tectonic-unwrapped.override (old: {
       src = fetchFromGitHub {
         owner = "let-def";
         repo = "tectonic";
-        rev = "b38cb3b2529bba947d520ac29fbb7873409bd270";
-        hash = "sha256-ap7fEPHsASAphIQkjcvk1CC7egTdxaUh7IpSS5os4W8=";
+        rev = "bc522fabfdd17099deac2e12662b2a0810ceb104";
+        hash = "sha256-0esXnUML6C9DYrpmBBB+ACypLvnLsYE9fuNiiCFfYzw=";
         fetchSubmodules = true;
       };
       cargoHash = "sha256-62sxvPIiY3len1wsl7QelK3u4ekftIjcTqoIGZMYb5A=";
diff --git a/pkgs/tools/video/bento4/default.nix b/pkgs/tools/video/bento4/default.nix
index 54e5a22cc67d5..12764ad92778e 100644
--- a/pkgs/tools/video/bento4/default.nix
+++ b/pkgs/tools/video/bento4/default.nix
@@ -18,7 +18,11 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ];
+  cmakeFlags = [
+    "-DBUILD_SHARED_LIBS=ON"
+  ] ++ lib.optionals stdenv.isDarwin [
+    "-DCMAKE_OSX_ARCHITECTURES="
+  ];
 
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/tools/wayland/shotman/default.nix b/pkgs/tools/wayland/shotman/default.nix
index 08de35f14d3f2..cd5bec87526e6 100644
--- a/pkgs/tools/wayland/shotman/default.nix
+++ b/pkgs/tools/wayland/shotman/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "shotman";
-  version = "0.4.5";
+  version = "0.4.6";
 
   src = fetchFromSourcehut {
     owner = "~whynothugo";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-SctWNhYCFTAOOnDEcsFZH61+QQAcmup11GVVXA1U5Dw=";
+    hash = "sha256-OmYCeB2szWmFJQ+MXWmVI7IzeXgbix9ZK4/4kgR5S6A=";
   };
 
-  cargoHash = "sha256-q5scdgfB5NgtjAgnIy/+c+y/mymF0b9ZZSz2LmM0pfw=";
+  cargoHash = "sha256-Kq2uq171B+4WzEJauH19/nzkm2irM4ggoFfxlARfyEg=";
 
   nativeBuildInputs = [ pkg-config makeWrapper ];
 
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 66114c9995fc3..4f54816185f0c 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -334,14 +334,21 @@ mapAliases ({
   enchant1 = throw "enchant1 has been removed from nixpkgs, as it was unmaintained"; # Added 2023-01-18
   enyo-doom = enyo-launcher; # Added 2022-09-09
   epoxy = libepoxy; # Added 2021-11-11
-  inherit (beam.interpreters) erlangR26 erlangR25 erlangR24; # added 2023-03-21
-  erlang_21 = throw "erlangR21 has been removed in favor of newer versions."; # added 2023-03-21
-  erlangR21 = erlang_21;
-  erlang_22 = throw "erlangR22 has been removed in favor of newer versions."; # added 2023-03-21
-  erlangR22 = erlang_22;
-  erlang_23 = throw "erlangR23 has been removed in favor of newer versions."; # added 2023-09-11
-  erlangR23 = erlang_23;
+
   erlang_27-rc3 = throw "erlang_27-rc3 has been removed in favor of erlang_27"; # added 2024-05-20
+  erlangR24 = throw "erlangR24 has been removed in favor of erlang_24"; # added 2024-05-24
+  erlangR24_odbc = throw "erlangR24_odbc has been removed in favor of erlang_24_odbc"; # added 2024-05-24
+  erlangR24_javac = throw "erlangR24_javac has been removed in favor of erlang_24_javac"; # added 2024-05-24
+  erlangR24_odbc_javac = throw "erlangR24_odbc_javac has been removed in favor of erlang_24_odbc_javac"; # added 2024-05-24
+  erlangR25 = throw "erlangR25 has been removed in favor of erlang_25"; # added 2024-05-24
+  erlangR25_odbc = throw "erlangR25_odbc has been removed in favor of erlang_25_odbc"; # added 2024-05-24
+  erlangR25_javac = throw "erlangR25_javac has been removed in favor of erlang_25_javac"; # added 2024-05-24
+  erlangR25_odbc_javac = throw "erlangR25_odbc_javac has been removed in favor of erlang_25_odbc_javac"; # added 2024-05-24
+  erlangR26 = throw "erlangR26 has been removed in favor of erlang_26"; # added 2024-05-24
+  erlangR26_odbc = throw "erlangR26_odbc has been removed in favor of erlang_26_odbc"; # added 2024-05-24
+  erlangR26_javac = throw "erlangR26_javac has been removed in favor of erlang_26_javac"; # added 2024-05-24
+  erlangR26_odbc_javac = throw "erlangR26_odbc_javac has been removed in favor of erlang_26_odbc_javac"; # added 2024-05-24
+
   etcd_3_3 = throw "etcd_3_3 has been removed because upstream no longer maintains it"; # Added 2023-09-29
   etcher = throw "'etcher' has been removed because it depended on an insecure version of Electron"; # Added 2024-03-14
   eterm = throw "eterm was removed because it is still insecure: https://github.com/mej/Eterm/issues/7"; # Added 2023-09-10
@@ -583,6 +590,8 @@ mapAliases ({
   julia_18 = throw "'julia_18' has been removed from nixpkgs as it has reached end of life"; # Added 2024-01-11
   julia_18-bin = throw "'julia_18-bin' has been removed from nixpkgs as it has reached end of life"; # Added 2024-01-11
 
+  jush = throw "jush has been removed from nixpkgs because it is unmaintained"; # Added 2024-05-28
+
   ### K ###
 
   k3s_1_24 = throw "'k3s_1_24' has been removed from nixpkgs as it has reached end of life"; # Added 2024-03-14
@@ -834,6 +843,7 @@ mapAliases ({
   mozart = throw "'mozart' has been renamed to/replaced by 'mozart2-binary'"; # Converted to throw 2023-09-10
   mpc_cli = mpc-cli; # moved from top-level 2022-01-24
   mpd_clientlib = libmpdclient; # Added 2021-02-11
+  mpdevil = plattenalbum; # Added 2024-05-22
   mpg321 = throw "'mpg321' has been removed due to it being unmaintained by upstream. Consider using mpg123 instead."; # Added 2024-05-10
   mumble_git = throw "'mumble_git' has been renamed to/replaced by 'pkgs.mumble'"; # Converted to throw 2023-09-10
   murmur_git = throw "'murmur_git' has been renamed to/replaced by 'pkgs.murmur'"; # Converted to throw 2023-09-10
@@ -1255,6 +1265,7 @@ mapAliases ({
   telegram-cli = throw "telegram-cli was removed because it was broken and abandoned upstream"; # Added 2023-07-28
   teleport_11 = throw "teleport 11 has been removed as it is EOL. Please upgrade to Teleport 12 or later"; # Added 2023-11-27
   teleport_12 = throw "teleport 12 has been removed as it is EOL. Please upgrade to Teleport 13 or later"; # Added 2024-02-04
+  teleport_13 = throw "teleport 13 has been removed as it is EOL. Please upgrade to Teleport 14 or later"; # Added 2024-05-26
   teleprompter = throw "teleprompter has been removed. reason: upstream dead and does not work with recent electron versions"; # Added 2024-03-14
   tensile = throw "'tensile' has been replaced with 'rocmPackages.tensile'"; # Added 2023-10-08
   tepl = libgedit-tepl; # Added 2024-04-29
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 06d389c8c3f67..fc073da2b3c00 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1067,8 +1067,6 @@ with pkgs;
 
   mod = callPackage ../development/tools/mod { };
 
-  mods = callPackage ../tools/misc/mods { };
-
   mongosh = callPackage ../development/tools/mongosh { };
 
   mya = callPackage ../applications/misc/mya { };
@@ -1499,8 +1497,6 @@ with pkgs;
 
   abduco = callPackage ../tools/misc/abduco { };
 
-  ablog = callPackage ../applications/misc/ablog { };
-
   acct = callPackage ../tools/system/acct { };
 
   accuraterip-checksum = callPackage ../tools/audio/accuraterip-checksum { };
@@ -1825,8 +1821,6 @@ with pkgs;
 
   gh-dash = callPackage ../tools/misc/gh-dash { };
 
-  gh-eco = callPackage ../tools/misc/gh-eco { };
-
   gh-markdown-preview = callPackage ../tools/misc/gh-markdown-preview { };
 
   ghostie = callPackage ../tools/misc/ghostie { };
@@ -2638,8 +2632,6 @@ with pkgs;
     inherit (darwin.apple_sdk_11_0.frameworks) AudioUnit Carbon Cocoa;
   };
 
-  duckstation = qt6Packages.callPackage ../applications/emulators/duckstation { };
-
   dynamips = callPackage ../applications/emulators/dynamips { };
 
   emu2 = callPackage ../applications/emulators/emu2 { };
@@ -2901,8 +2893,6 @@ with pkgs;
     inherit (qt5) wrapQtAppsHook;
   };
 
-  felix-fm = callPackage ../applications/file-managers/felix-fm { };
-
   krusader = libsForQt5.callPackage ../applications/file-managers/krusader { };
 
   lesscpy = callPackage ../development/compilers/lesscpy { };
@@ -3488,8 +3478,6 @@ with pkgs;
 
   bazarr = callPackage ../servers/bazarr { };
 
-  bcachefs-tools = callPackage ../tools/filesystems/bcachefs-tools { };
-
   bisq-desktop = callPackage ../applications/blockchains/bisq-desktop {
     openjdk11 = openjdk11.override { enableJavaFX = true; };
   };
@@ -3930,8 +3918,6 @@ with pkgs;
 
   mobilecoin-wallet = callPackage ../applications/misc/mobilecoin-wallet { };
 
-  mpdevil = callPackage ../applications/audio/mpdevil { };
-
   pacparser = callPackage ../tools/networking/pacparser { };
 
   pairdrop = callPackage ../applications/misc/pairdrop { };
@@ -5121,7 +5107,7 @@ with pkgs;
   eschalot = callPackage ../tools/security/eschalot { };
 
   espanso = callPackage ../applications/office/espanso {
-    inherit (darwin.apple_sdk.frameworks) AppKit Cocoa Foundation IOKit Kernel AVFoundation Carbon QTKit AVKit WebKit;
+    inherit (darwin.apple_sdk_11_0.frameworks) AppKit Cocoa Foundation IOKit Kernel AVFoundation Carbon QTKit AVKit WebKit System;
   };
   espanso-wayland = espanso.override {
     x11Support = false;
@@ -6132,8 +6118,6 @@ with pkgs;
 
   rex = callPackage ../tools/system/rex { };
 
-  river = callPackage ../applications/window-managers/river { };
-
   rivercarro = callPackage ../applications/misc/rivercarro { };
 
   river-luatile = callPackage ../applications/misc/river-luatile{ };
@@ -6198,8 +6182,6 @@ with pkgs;
 
   socklog = callPackage ../tools/system/socklog { };
 
-  soju = callPackage ../applications/networking/soju { };
-
   spacevim = callPackage ../applications/editors/spacevim { };
 
   srvc = callPackage ../applications/version-management/srvc { };
@@ -8566,6 +8548,10 @@ with pkgs;
 
   gparted = callPackage ../tools/misc/gparted { };
 
+  gpt4all-cuda = gpt4all.override {
+    cudaSupport = true;
+  };
+
   gpt2tc = callPackage ../tools/text/gpt2tc { };
 
   gptcommit = callPackage ../development/tools/gptcommit {
@@ -11005,8 +10991,6 @@ with pkgs;
 
   mkgmap-splitter = callPackage ../applications/misc/mkgmap/splitter { };
 
-  mpack = callPackage ../tools/networking/mpack { };
-
   mtm = callPackage ../tools/misc/mtm { };
 
   op-geth = callPackage ../applications/blockchains/optimism/geth.nix {
@@ -13474,7 +13458,7 @@ with pkgs;
 
   inherit (callPackages ../servers/teleport {
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Security AppKit;
-  }) teleport_13 teleport_14 teleport_15 teleport;
+  }) teleport_14 teleport_15 teleport;
 
   telepresence = callPackage ../tools/networking/telepresence {
     pythonPackages = python3Packages;
@@ -15049,8 +15033,6 @@ with pkgs;
 
   ion = callPackage ../shells/ion { };
 
-  jush = callPackage ../shells/jush { };
-
   ksh = callPackage ../shells/ksh { };
 
   liquidprompt = callPackage ../shells/liquidprompt { };
@@ -15105,6 +15087,8 @@ with pkgs;
   temurin-bin = temurin-bin-21;
   temurin-jre-bin = temurin-jre-bin-21;
 
+  semeru-bin-21 = javaPackages.compiler.semeru-bin.jdk-21;
+  semeru-jre-bin-21 = javaPackages.compiler.semeru-bin.jre-21;
   semeru-bin-17 = javaPackages.compiler.semeru-bin.jdk-17;
   semeru-jre-bin-17 = javaPackages.compiler.semeru-bin.jre-17;
   semeru-bin-16 = javaPackages.compiler.semeru-bin.jdk-16;
@@ -15114,8 +15098,8 @@ with pkgs;
   semeru-bin-8 = javaPackages.compiler.semeru-bin.jdk-8;
   semeru-jre-bin-8 = javaPackages.compiler.semeru-bin.jre-8;
 
-  semeru-bin = semeru-bin-17;
-  semeru-jre-bin = semeru-jre-bin-17;
+  semeru-bin = semeru-bin-21;
+  semeru-jre-bin = semeru-jre-bin-21;
 
   adoptopenjdk-bin-17-packages-linux = import ../development/compilers/adoptopenjdk-bin/jdk17-linux.nix { inherit stdenv lib; };
   adoptopenjdk-bin-17-packages-darwin = import ../development/compilers/adoptopenjdk-bin/jdk17-darwin.nix { inherit lib; };
@@ -16022,10 +16006,6 @@ with pkgs;
 
   gocover-cobertura = callPackage ../development/tools/gocover-cobertura { };
 
-  gobang = callPackage ../development/tools/database/gobang {
-    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security SystemConfiguration;
-  };
-
   goblob = callPackage ../tools/security/goblob { };
 
   gogetdoc = callPackage ../development/tools/gogetdoc { };
@@ -16108,8 +16088,6 @@ with pkgs;
   jdk17 = openjdk17;
   jdk17_headless = openjdk17_headless;
 
-  openjdk16-bootstrap = javaPackages.compiler.openjdk16-bootstrap;
-
   openjdk19 = javaPackages.compiler.openjdk19;
   openjdk19_headless = javaPackages.compiler.openjdk19.headless;
   jdk19 = openjdk19;
@@ -16548,8 +16526,6 @@ with pkgs;
 
   qbe = callPackage ../development/compilers/qbe { };
 
-  rasm = callPackage ../development/compilers/rasm { };
-
   replibyte = callPackage ../development/tools/database/replibyte {
     inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
   };
@@ -17005,7 +16981,7 @@ with pkgs;
       # want the C++ library to be explicitly chosen by the caller, and null by
       # default.
       libcxx ? null
-    , extraPackages ? lib.optional (cc.isGNU or false && stdenv.targetPlatform.isMinGW) ((threadsCrossFor cc.version).package)
+    , extraPackages ? lib.optional (cc.isGNU or false && stdenv.targetPlatform.isMinGW) threadsCross.package
     , nixSupport ? {}
     , ...
     } @ extraArgs:
@@ -17080,7 +17056,7 @@ with pkgs;
 
   # BQN interpreters and compilers
 
-  mbqn = callPackage ../development/interpreters/bqn/mlochbaum-bqn { };
+  mbqn = bqn;
 
   cbqn = cbqn-bootstrap.phase2;
   cbqn-replxx = cbqn-bootstrap.phase2-replxx;
@@ -17105,43 +17081,46 @@ with pkgs;
 
     phase0 = callPackage ../development/interpreters/bqn/cbqn {
       inherit (cbqn-bootstrap) mbqn-source stdenv;
-      genBytecode = false;
-      bqn-path = null;
+      generateBytecode = false;
+      # Not really used, but since null can be dangerous...
+      bqn-interpreter = "${lib.getExe' buildPackages.mbqn "bqn"}";
     };
 
     phase0-replxx = callPackage ../development/interpreters/bqn/cbqn {
       inherit (cbqn-bootstrap) mbqn-source stdenv;
-      genBytecode = false;
-      bqn-path = null;
       enableReplxx = true;
+      generateBytecode = false;
+      # Not really used, but since null can be dangerous...
+      bqn-interpreter = "${lib.getExe' buildPackages.mbqn "bqn"}";
     };
 
     phase1 = callPackage ../development/interpreters/bqn/cbqn {
       inherit (cbqn-bootstrap) mbqn-source stdenv;
-      genBytecode = true;
-      bqn-path = "${buildPackages.cbqn-bootstrap.phase0}/bin/cbqn";
+      generateBytecode = true;
+      bqn-interpreter = "${lib.getExe' buildPackages.cbqn-bootstrap.phase0 "cbqn"}";
     };
 
     phase2 = callPackage ../development/interpreters/bqn/cbqn {
       inherit (cbqn-bootstrap) mbqn-source stdenv;
-      genBytecode = true;
-      bqn-path = "${buildPackages.cbqn-bootstrap.phase1}/bin/cbqn";
+      generateBytecode = true;
+      bqn-interpreter = "${lib.getExe' buildPackages.cbqn-bootstrap.phase0 "cbqn"}";
     };
 
     phase2-replxx = callPackage ../development/interpreters/bqn/cbqn {
       inherit (cbqn-bootstrap) mbqn-source stdenv;
-      genBytecode = true;
-      bqn-path = "${buildPackages.cbqn-bootstrap.phase1}/bin/cbqn";
+      generateBytecode = true;
       enableReplxx = true;
+      bqn-interpreter = "${lib.getExe' buildPackages.cbqn-bootstrap.phase0 "cbqn"}";
     };
   };
 
-  dbqn = callPackage ../development/interpreters/bqn/dzaima-bqn {
+  dbqn = callPackage ../by-name/db/dbqn/package.nix {
     buildNativeImage = false;
-    stdenv = stdenvNoCC;
     jdk = jre;
+    stdenv = stdenvNoCC;
   };
-  dbqn-native = callPackage ../development/interpreters/bqn/dzaima-bqn {
+
+  dbqn-native = dbqn.override {
     buildNativeImage = true;
     jdk = graalvm-ce;
   };
@@ -19162,8 +19141,6 @@ with pkgs;
 
   nex = callPackage ../development/tools/parsing/nex { };
 
-  ninja = callPackage ../development/tools/build-managers/ninja { };
-
   nimbo = with python3Packages; callPackage ../applications/misc/nimbo { };
 
   gn = callPackage ../development/tools/build-managers/gn { };
@@ -21044,16 +21021,12 @@ with pkgs;
 
   libcCross = assert stdenv.targetPlatform != stdenv.buildPlatform; libcCrossChooser stdenv.targetPlatform.libc;
 
-  threadsCross = threadsCrossFor null;
-  threadsCrossFor = cc_version:
+  threadsCross =
     lib.optionalAttrs (stdenv.targetPlatform.isMinGW && !(stdenv.targetPlatform.useLLVM or false)) {
       # other possible values: win32 or posix
       model = "mcf";
       # For win32 or posix set this to null
-      package =
-        if cc_version == null || lib.versionAtLeast cc_version "13"
-        then targetPackages.windows.mcfgthreads or windows.mcfgthreads
-        else targetPackages.windows.mcfgthreads_pre_gcc_13 or windows.mcfgthreads_pre_gcc_13;
+      package = targetPackages.windows.mcfgthreads or windows.mcfgthreads;
     };
 
   wasilibc = callPackage ../development/libraries/wasilibc {
@@ -23649,6 +23622,8 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks)
       AVFoundation Cocoa VideoDecodeAcceleration CoreMedia MediaToolbox Accelerate;
     ffmpeg = ffmpeg_4;
+    # OpenCV3 won't build with anything newer than CUDA 11 due to API changes.
+    cudaPackages = cudaPackages_11;
   };
 
   opencv4 = callPackage ../development/libraries/opencv/4.x.nix {
@@ -23884,10 +23859,11 @@ with pkgs;
 
   prospector = callPackage ../development/tools/prospector { };
 
-  protobuf = protobuf_24;
+  protobuf = protobuf_25;
 
   inherit
     ({
+      protobuf_27 = callPackage ../development/libraries/protobuf/27.nix { };
       protobuf_26 = callPackage ../development/libraries/protobuf/26.nix { };
       protobuf_25 = callPackage ../development/libraries/protobuf/25.nix { };
       protobuf_24 = callPackage ../development/libraries/protobuf/24.nix { };
@@ -23901,6 +23877,7 @@ with pkgs;
         abseil-cpp = abseil-cpp_202103;
       };
     })
+    protobuf_27
     protobuf_26
     protobuf_25
     protobuf_24
@@ -25857,7 +25834,7 @@ with pkgs;
   leafnode1 = callPackage ../servers/news/leafnode/1.nix { };
 
   lemmy-server = callPackage ../servers/web-apps/lemmy/server.nix {
-    inherit (darwin.apple_sdk.frameworks) Security;
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
   };
 
   lemmy-ui = callPackage ../servers/web-apps/lemmy/ui.nix {
@@ -26606,23 +26583,6 @@ with pkgs;
 
   thttpd = callPackage ../servers/http/thttpd { };
 
-  stalwart-mail_0_6 = (stalwart-mail.override { rocksdb_8_11 = rocksdb_8_3; }).overrideAttrs (old: rec {
-    pname = "stalwart-mail_0_6";
-    version = "0.6.0";
-    src = fetchFromGitHub {
-      owner = "stalwartlabs";
-      repo = "mail-server";
-      rev = "v${version}";
-      hash = "sha256-OHwUWSUW6ovLQTxnuUrolQGhxbhp4YqKSH+ZTpe2WXc=";
-      fetchSubmodules = true;
-    };
-    cargoDeps = old.cargoDeps.overrideAttrs (_: {
-      inherit src;
-      name = "${pname}-${version}-vendor.tar.gz";
-      outputHash = "sha256-mW3OXQj6DcIMO1YlTG3G+a1ORRcuvp5/h7BU+b4QbnE=";
-    });
-  });
-
   static-web-server = callPackage ../servers/static-web-server { };
 
   stone = callPackage ../servers/stone { };
@@ -30754,7 +30714,10 @@ with pkgs;
 
   fondo = callPackage ../applications/graphics/fondo { };
 
-  font-manager = callPackage ../applications/misc/font-manager { };
+  font-manager = callPackage ../by-name/fo/font-manager/package.nix {
+    libsoup = libsoup_3;
+    webkitgtk = webkitgtk_4_1;
+  };
 
   fontfinder = callPackage ../applications/misc/fontfinder { };
 
@@ -31696,8 +31659,6 @@ with pkgs;
 
   protonup-qt = python3Packages.callPackage ../applications/misc/protonup-qt { };
 
-  pmbootstrap = python3Packages.callPackage ../tools/misc/pmbootstrap { };
-
   pokeget-rs = callPackage ../tools/misc/pokeget-rs { };
 
   popura = callPackage ../tools/networking/popura { };
@@ -31775,8 +31736,6 @@ with pkgs;
 
   waycorner = callPackage ../applications/misc/waycorner { };
 
-  waylock = callPackage ../applications/misc/waylock { };
-
   wayshot = callPackage ../tools/misc/wayshot { };
 
   waylevel = callPackage ../tools/misc/waylevel { };
@@ -31971,8 +31930,6 @@ with pkgs;
 
   img2pdf = with python3Packages; toPythonApplication img2pdf;
 
-  imgbrd-grabber = qt5.callPackage ../applications/graphics/imgbrd-grabber { };
-
   imgcat = callPackage ../applications/graphics/imgcat { };
 
   img-cat = callPackage ../applications/graphics/img-cat { };
@@ -33276,8 +33233,6 @@ with pkgs;
     protobuf = protobuf_21;
   };
 
-  smplayer = libsForQt5.callPackage ../applications/video/smplayer { };
-
   smtube = libsForQt5.callPackage ../applications/video/smtube { };
 
   softmaker-office = callPackage ../applications/office/softmaker/softmaker_office.nix { };
@@ -34548,13 +34503,7 @@ with pkgs;
 
   psst = callPackage ../applications/audio/psst { };
 
-  squeezelite = darwin.apple_sdk_11_0.callPackage ../applications/audio/squeezelite {
-    inherit (darwin.apple_sdk_11_0.frameworks) CoreVideo VideoDecodeAcceleration CoreAudio AudioToolbox AudioUnit Carbon;
-  };
-
-  squeezelite-pulse = darwin.apple_sdk_11_0.callPackage ../applications/audio/squeezelite {
-    inherit (darwin.apple_sdk_11_0.frameworks) CoreVideo VideoDecodeAcceleration CoreAudio AudioToolbox AudioUnit Carbon;
-
+  squeezelite-pulse = callPackage ../by-name/sq/squeezelite/package.nix {
     audioBackend = "pulse";
   };
 
@@ -35454,6 +35403,8 @@ with pkgs;
 
   webcord = callPackage ../by-name/we/webcord/package.nix { electron = electron_30; };
 
+  webcord-vencord = callPackage ../by-name/we/webcord-vencord/package.nix { electron = electron_29; };
+
   webex = callPackage ../applications/networking/instant-messengers/webex { };
 
   webmacs = libsForQt5.callPackage ../applications/networking/browsers/webmacs {
@@ -37719,8 +37670,6 @@ with pkgs;
 
   pantheon = recurseIntoAttrs (callPackage ../desktops/pantheon { });
 
-  pantheon-tweaks = callPackage ../desktops/pantheon/third-party/pantheon-tweaks { };
-
   wingpanel-indicator-ayatana = callPackage ../desktops/pantheon/third-party/wingpanel-indicator-ayatana { };
 
   rox-filer = callPackage ../desktops/rox/rox-filer {
@@ -39850,7 +39799,6 @@ with pkgs;
     };
     mysql = mysql;
     pcre = pcre-cpp;
-    jre = openjdk19; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   });
 
   r128gain = callPackage ../applications/audio/r128gain { };
diff --git a/pkgs/top-level/beam-packages.nix b/pkgs/top-level/beam-packages.nix
index dec1a5d734ce8..2eba6dc4ea7d2 100644
--- a/pkgs/top-level/beam-packages.nix
+++ b/pkgs/top-level/beam-packages.nix
@@ -12,18 +12,6 @@
 let
   self = beam;
 
-  # Aliases added 2023-03-21
-  versionLoop = f: lib.lists.foldr (version: acc: (f version) // acc) { } [ "26" "25" "24" ];
-
-  interpretersAliases = versionLoop (version: {
-    "erlangR${version}" = self.interpreters."erlang_${version}";
-    "erlangR${version}_odbc" = self.interpreters."erlang_${version}_odbc";
-    "erlangR${version}_javac" = self.interpreters."erlang_${version}_javac";
-    "erlangR${version}_odbc_javac" = self.interpreters."erlang_${version}_odbc_javac";
-  });
-
-  packagesAliases = versionLoop (version: { "erlangR${version}" = self.packages."erlang_${version}"; });
-
 in
 
 {
@@ -95,7 +83,7 @@ in
     # `beam.packages.erlang_24.elixir`.
     inherit (self.packages.erlang)
       elixir elixir_1_16 elixir_1_15 elixir_1_14 elixir_1_13 elixir_1_12 elixir_1_11 elixir_1_10 elixir-ls lfe lfe_2_1;
-  } // interpretersAliases;
+  };
 
   # Helper function to generate package set with a specific Erlang version.
   packagesWith = erlang:
@@ -109,7 +97,7 @@ in
     erlang_26 = self.packagesWith self.interpreters.erlang_26;
     erlang_25 = self.packagesWith self.interpreters.erlang_25;
     erlang_24 = self.packagesWith self.interpreters.erlang_24;
-  } // packagesAliases;
+  };
 
   __attrsFailEvaluation = true;
 }
diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix
index 24eadff372f18..0a248521a4375 100644
--- a/pkgs/top-level/linux-kernels.nix
+++ b/pkgs/top-level/linux-kernels.nix
@@ -213,7 +213,6 @@ in {
         kernelPatches = [
           kernelPatches.bridge_stp_helper
           kernelPatches.request_key_helper
-          kernelPatches.rust_1_77-6_9
         ];
       };
       latest = packageAliases.linux_latest.kernel;
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index 74aa545f2b85c..9185234ad38c6 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -119,6 +119,8 @@ let
 
     bwd = callPackage ../development/ocaml-modules/bwd { };
 
+    bytestring = callPackage ../development/ocaml-modules/bytestring { };
+
     bz2 = callPackage ../development/ocaml-modules/bz2 { };
 
     ### C ###
@@ -231,6 +233,8 @@ let
 
     color = callPackage ../development/ocaml-modules/color { };
 
+    colors = callPackage ../development/ocaml-modules/colors { };
+
     conduit = callPackage ../development/ocaml-modules/conduit { };
 
     conduit-async = callPackage ../development/ocaml-modules/conduit/async.nix { };
@@ -241,6 +245,8 @@ let
 
     conduit-mirage = callPackage ../development/ocaml-modules/conduit/mirage.nix { };
 
+    config = callPackage ../development/ocaml-modules/config { };
+
     config-file = callPackage ../development/ocaml-modules/config-file { };
 
     containers = callPackage ../development/ocaml-modules/containers { };
@@ -600,6 +606,8 @@ let
     github-jsoo = callPackage ../development/ocaml-modules/github/jsoo.nix {  };
     github-unix = callPackage ../development/ocaml-modules/github/unix.nix {  };
 
+    gluon = callPackage ../development/ocaml-modules/gluon { };
+
     gluten = callPackage ../development/ocaml-modules/gluten { };
     gluten-eio = callPackage ../development/ocaml-modules/gluten/eio.nix { };
     gluten-lwt = callPackage ../development/ocaml-modules/gluten/lwt.nix { };
@@ -950,6 +958,8 @@ let
 
     letsencrypt-mirage = callPackage ../development/ocaml-modules/letsencrypt/mirage.nix { };
 
+    libc = callPackage ../development/ocaml-modules/libc { };
+
     lilv = callPackage ../development/ocaml-modules/lilv {
       inherit (pkgs) lilv;
     };
@@ -1634,6 +1644,8 @@ let
 
     ringo = callPackage ../development/ocaml-modules/ringo { };
 
+    rio = callPackage ../development/ocaml-modules/rio { };
+
     riot = callPackage ../development/ocaml-modules/riot { };
 
     rock = callPackage ../development/ocaml-modules/rock { };
@@ -1712,6 +1724,8 @@ let
 
     spelll = callPackage ../development/ocaml-modules/spelll { };
 
+    spices = callPackage ../development/ocaml-modules/spices { };
+
     srt = callPackage ../development/ocaml-modules/srt {
       inherit (pkgs) srt;
     };
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 1650193caccdf..fcf4837d44292 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -10397,10 +10397,10 @@ with self; {
 
   FinanceQuote = buildPerlPackage rec {
     pname = "Finance-Quote";
-    version = "1.61";
+    version = "1.62";
     src = fetchurl {
       url = "mirror://cpan/authors/id/B/BP/BPSCHUCK/Finance-Quote-${version}.tar.gz";
-      hash = "sha256-Qw7p3yLcqjLrYwpNf7V6KFQvn+UHsmawo39nVLTzWgg=";
+      hash = "sha256-DTEzsL89d5WCxWaFDVd/K76OGsvRFJeDHNQ9jzFgZII=";
     };
     buildInputs = [ DateManip DateRange DateSimple DateTime DateTimeFormatISO8601 StringUtil TestKwalitee TestPerlCritic TestPod TestPodCoverage ];
     propagatedBuildInputs = [ DateManip DateTimeFormatStrptime Encode HTMLTableExtract HTMLTokeParserSimple HTMLTree HTMLTreeBuilderXPath HTTPCookies HTTPCookieJar JSON IOCompress IOString LWPProtocolHttps Readonly StringUtil SpreadsheetXLSX TextTemplate TryTiny WebScraper XMLLibXML libwwwperl ];
diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix
index c53789ca10fc1..e008dbc233204 100644
--- a/pkgs/top-level/php-packages.nix
+++ b/pkgs/top-level/php-packages.nix
@@ -57,7 +57,7 @@ in {
     php = php.unwrapped;
   };
 
-  inherit (builders.v1) buildComposerProject composerHooks mkComposerRepository;
+  inherit (builders.v1) buildComposerProject buildComposerWithPlugin composerHooks mkComposerRepository;
 
   # Wrap mkDerivation to prepend pname with "php-" to make names consistent
   # with how buildPecl does it and make the file easier to overview.
@@ -191,6 +191,10 @@ in {
 
     composer = callPackage ../development/php-packages/composer { };
 
+    composer-local-repo-plugin = callPackage ../development/php-packages/composer-local-repo-plugin { };
+
+    cyclonedx-php-composer = callPackage ../development/php-packages/cyclonedx-php-composer { };
+
     deployer = callPackage ../development/php-packages/deployer { };
 
     grumphp = callPackage ../development/php-packages/grumphp { };
diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix
index 49eec3d93d70f..737e82255bfe0 100644
--- a/pkgs/top-level/python-aliases.nix
+++ b/pkgs/top-level/python-aliases.nix
@@ -131,6 +131,7 @@ mapAliases ({
   django-hijack-admin = throw "django-hijack-admin has been removed, since it is no longer compatible to django-hijack"; # added 2023-06-21
   django_modelcluster = django-modelcluster; # added 2022-04-02
   django_nose = django-nose; # added 2023-07-25
+  django-nose = throw "django-nose has been removed since it has not been maintained and there are no dependent packages"; # added 2024-05-21
   django_reversion = django-reversion; # added 2022-06-18
   django_polymorphic = django-polymorphic; # added 2022-05-24
   django_redis = django-redis; # added 2021-10-11
@@ -140,6 +141,7 @@ mapAliases ({
   django_treebeard = django-treebeard; # added 2023-07-25
   dns = dnspython; # added 2017-12-10
   docker_pycreds = docker-pycreds; # added 2024-01-03
+  docker-py = throw "docker-py was renamed to docker in version 2.0.0 back in 2016"; # added 2024-05-29
   doctest-ignore-unicode = throw "doctest-ignore-unicode has been removed since it has been unmaintained for 11 years"; # added 2024-05-20
   dogpile_cache = dogpile-cache; # added 2021-10-28
   dogpile-core = throw "dogpile-core is no longer maintained, use dogpile-cache instead"; # added 2021-11-20
@@ -307,6 +309,7 @@ mapAliases ({
   nose-cov = throw "nose-cov has been removed, it was archived and unmaintained since 2012"; # added 2024-05-21
   nose-cover3 = throw "nose-cover3 has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-02-16
   nose-cprof = throw "nose-cprof has been removed since it has not been maintained for 7 years and there are no dependent packages"; # added 2024-05-21
+  nose-exclude = throw "nose-exclude has been removed since it has not been maintained since 2016"; # added 2024-05-21
   nose-randomly = throw "nose-randomly has been removed, it was archived and unmaintained since 2019"; # added 2024-05-22
   nose_progressive = throw "nose_progressive has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; #added 2023-02-21
   nose_warnings_filters = nose-warnings-filters; # added 2024-01-07
@@ -388,6 +391,7 @@ mapAliases ({
   pyramid_multiauth = pyramid-multiauth; # added 2023-08-24
   pyreadability = readability-lxml; # added 2022-05-24
   pyres = throw "pyres has been removed, since it is abandoned and broken"; # added 2023-06-20
+  pygeos = throw "pygeos has been removed, since it was merged with shapely 2.0"; # added 2024-05-26
   pyRFC3339 = pyrfc3339; # added 2024-01-07
   pyroute2-core = throw "pyroute2 migrated back to a single package scheme in version 0.7.1"; # added 2022-07-16
   pyroute2-ethtool = throw "pyroute2 migrated back to a single package scheme in version 0.7.1"; # added 2022-07-16
@@ -485,6 +489,7 @@ mapAliases ({
   sapi-python-client = kbcstorage; # added 2022-04-20
   scikitimage = scikit-image; # added 2023-05-14
   scikitlearn = scikit-learn; # added 2021-07-21
+  scikits-samplerate = throw "scikits-samplerate has been removed, it was unsed and unmaintained since 2015"; # added 2024-05-23
   selectors34 = throw "selectors34 has been removed: functionality provided by Python itself; archived by upstream."; # added 2021-06-10
   sequoia = throw "python3Packages.sequoia was replaced by pysequoia - built from a dedicated repository, with a new API."; # added 2023-06-24
   setuptools_dso = setuptools-dso; # added 2024-03-03
@@ -569,6 +574,7 @@ mapAliases ({
   zc_buildout_nix = throw "zc_buildout_nix was pinned to a version no longer compatible with other modules";
   zc-buildout221 = zc-buildout; # added 2021-07-21
   zc_lockfile = zc-lockfile; # added 2024-01-06
+  zipstream = throw "zipstream has been removed, because it has been unmaintained for 6 years and there are no dependent packages"; # added 2024-05-26
   zipstream-new = throw "zipstream-new has been removed, because it  was packaged as a dependency for octoprint, which has switched to zipstream-ng since."; # added 2024-01-05
   zope_broken = throw "zope_broken has been removed because it is obsolete and not needed in zodb>=3.10"; # added 2023-07-26
   zope_component = zope-component; # added 2023-07-28
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 150965f1d2052..e9531beff69ed 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -2358,6 +2358,8 @@ self: super: with self; {
 
   collidoscope = callPackage ../development/python-modules/collidoscope { };
 
+  color-operations = callPackage ../development/python-modules/color-operations { };
+
   colorama = callPackage ../development/python-modules/colorama { };
 
   colorcet = callPackage ../development/python-modules/colorcet { };
@@ -3276,8 +3278,6 @@ self: super: with self; {
 
   django-ninja = callPackage ../development/python-modules/django-ninja { };
 
-  django-nose = callPackage ../development/python-modules/django-nose { };
-
   django-oauth-toolkit = callPackage ../development/python-modules/django-oauth-toolkit { };
 
   django-otp = callPackage ../development/python-modules/django-otp { };
@@ -3318,6 +3318,8 @@ self: super: with self; {
 
   django-ranged-response = callPackage ../development/python-modules/django-ranged-response { };
 
+  django-ratelimit = callPackage ../development/python-modules/django-ratelimit { };
+
   django-raster = callPackage ../development/python-modules/django-raster { };
 
   django-redis = callPackage ../development/python-modules/django-redis { };
@@ -3466,8 +3468,6 @@ self: super: with self; {
 
   docker-pycreds = callPackage ../development/python-modules/docker-pycreds { };
 
-  docker-py = callPackage ../development/python-modules/docker-py { };
-
   dockerspawner = callPackage ../development/python-modules/dockerspawner { };
 
   docloud = callPackage ../development/python-modules/docloud { };
@@ -4709,6 +4709,8 @@ self: super: with self; {
 
   geocoder = callPackage ../development/python-modules/geocoder { };
 
+  geodatasets = callPackage ../development/python-modules/geodatasets { };
+
   geographiclib = callPackage ../development/python-modules/geographiclib { };
 
   geoip2 = callPackage ../development/python-modules/geoip2 { };
@@ -4874,6 +4876,8 @@ self: super: with self; {
 
   goodwe = callPackage ../development/python-modules/goodwe { };
 
+  gophish = callPackage ../development/python-modules/gophish { };
+
   google = callPackage ../development/python-modules/google { };
 
   google-ai-generativelanguage = callPackage ../development/python-modules/google-ai-generativelanguage { };
@@ -6497,6 +6501,8 @@ self: super: with self; {
 
   latex2mathml = callPackage ../development/python-modules/latex2mathml { };
 
+  latex2pydata = callPackage ../development/python-modules/latex2pydata { };
+
   latexcodec = callPackage ../development/python-modules/latexcodec { };
 
   latexify-py = callPackage ../development/python-modules/latexify-py { };
@@ -6688,6 +6694,8 @@ self: super: with self; {
 
   libpyfoscam = callPackage ../development/python-modules/libpyfoscam { };
 
+  libpysal = callPackage ../development/python-modules/libpysal { };
+
   libpyvivotek = callPackage ../development/python-modules/libpyvivotek { };
 
   libpwquality = lib.pipe pkgs.libpwquality [
@@ -7168,6 +7176,8 @@ self: super: with self; {
 
   mapbox-earcut = callPackage ../development/python-modules/mapbox-earcut { };
 
+  mapclassify = callPackage ../development/python-modules/mapclassify { };
+
   mariadb = callPackage ../development/python-modules/mariadb { };
 
   marimo = callPackage ../development/python-modules/marimo { };
@@ -7667,6 +7677,8 @@ self: super: with self; {
 
   more-properties = callPackage ../development/python-modules/more-properties { };
 
+  morecantile = callPackage ../development/python-modules/morecantile { };
+
   moreorless = callPackage ../development/python-modules/moreorless { };
 
   moretools = callPackage ../development/python-modules/moretools { };
@@ -8859,8 +8871,6 @@ self: super: with self; {
 
   nose3 = callPackage ../development/python-modules/nose3 { };
 
-  nose-exclude = callPackage ../development/python-modules/nose-exclude { };
-
   nose-timer = callPackage ../development/python-modules/nose-timer { };
 
   nose-pattern-exclude = callPackage ../development/python-modules/nose-pattern-exclude { };
@@ -8961,6 +8971,8 @@ self: super: with self; {
 
   nxt-python = callPackage ../development/python-modules/nxt-python { };
 
+  plugp100 = callPackage ../development/python-modules/plugp100 {};
+
   python-ndn = callPackage ../development/python-modules/python-ndn { };
 
   python-nvd3 = callPackage ../development/python-modules/python-nvd3 { };
@@ -9994,6 +10006,8 @@ self: super: with self; {
 
   pynx584 = callPackage ../development/python-modules/pynx584 { };
 
+  pyogrio = callPackage ../development/python-modules/pyogrio { };
+
   pyorthanc = callPackage ../development/python-modules/pyorthanc { };
 
   pyoutbreaksnearme = callPackage ../development/python-modules/pyoutbreaksnearme { };
@@ -10018,6 +10032,8 @@ self: super: with self; {
 
   pyrogram = callPackage ../development/python-modules/pyrogram { };
 
+  pyrympro = callPackage ../development/python-modules/pyrympro { };
+
   pysabnzbd = callPackage ../development/python-modules/pysabnzbd { };
 
   pysbd = callPackage ../development/python-modules/pysbd { };
@@ -10042,6 +10058,8 @@ self: super: with self; {
 
   pysolcast = callPackage ../development/python-modules/pysolcast { };
 
+  pystac = callPackage ../development/python-modules/pystac { };
+
   pysubs2 = callPackage ../development/python-modules/pysubs2 { };
 
   pysuez = callPackage ../development/python-modules/pysuez { };
@@ -11044,8 +11062,6 @@ self: super: with self; {
 
   pygeoip = callPackage ../development/python-modules/pygeoip { };
 
-  pygeos = callPackage ../development/python-modules/pygeos { };
-
   pygetwindow = callPackage ../development/python-modules/pygetwindow { };
 
   pygit2 = callPackage ../development/python-modules/pygit2 { };
@@ -12655,6 +12671,8 @@ self: super: with self; {
 
   pytube = callPackage ../development/python-modules/pytube { };
 
+  pytubefix = callPackage ../development/python-modules/pytubefix { };
+
   pytun = callPackage ../development/python-modules/pytun { };
 
   pyturbojpeg = callPackage ../development/python-modules/pyturbojpeg { };
@@ -12780,7 +12798,7 @@ self: super: with self; {
   pywizlight = callPackage ../development/python-modules/pywizlight { };
 
   pywlroots = callPackage ../development/python-modules/pywlroots {
-    wlroots = pkgs.wlroots_0_16;
+    wlroots = pkgs.wlroots_0_17;
   };
 
   pyws66i = callPackage ../development/python-modules/pyws66i { };
@@ -12906,7 +12924,7 @@ self: super: with self; {
   qtconsole = callPackage ../development/python-modules/qtconsole { };
 
   qtile = callPackage ../development/python-modules/qtile {
-    wlroots = pkgs.wlroots_0_16;
+    wlroots = pkgs.wlroots_0_17;
   };
   qtile-extras = callPackage ../development/python-modules/qtile-extras { };
 
@@ -13026,6 +13044,8 @@ self: super: with self; {
 
   ray = callPackage ../development/python-modules/ray { };
 
+  raylib-python-cffi = callPackage ../development/python-modules/raylib-python-cffi {};
+
   razdel = callPackage ../development/python-modules/razdel { };
 
   rbtools = callPackage ../development/python-modules/rbtools { };
@@ -13277,6 +13297,10 @@ self: super: with self; {
 
   ring-doorbell = callPackage ../development/python-modules/ring-doorbell { };
 
+  rio-tiler = callPackage ../development/python-modules/rio-tiler { };
+
+  rioxarray = callPackage ../development/python-modules/rioxarray { };
+
   ripe-atlas-cousteau = callPackage ../development/python-modules/ripe-atlas-cousteau { };
 
   ripe-atlas-sagan = callPackage ../development/python-modules/ripe-atlas-sagan { };
@@ -13617,10 +13641,6 @@ self: super: with self; {
 
   scikits-odes = callPackage ../development/python-modules/scikits-odes { };
 
-  scikits-samplerate = callPackage ../development/python-modules/scikits-samplerate {
-    inherit (pkgs) libsamplerate;
-  };
-
   scikit-tda = callPackage ../development/python-modules/scikit-tda { };
 
   scipy = callPackage ../development/python-modules/scipy { };
@@ -14305,6 +14325,8 @@ self: super: with self; {
 
   sphinxcontrib-devhelp = callPackage ../development/python-modules/sphinxcontrib-devhelp { };
 
+  sphinxcontrib-ditaa = callPackage ../development/python-modules/sphinxcontrib-ditaa { };
+
   sphinxcontrib-excel-table = callPackage ../development/python-modules/sphinxcontrib-excel-table { };
 
   sphinxcontrib-fulltoc = callPackage ../development/python-modules/sphinxcontrib-fulltoc { };
@@ -16564,6 +16586,10 @@ self: super: with self; {
 
   utils = callPackage ../development/python-modules/utils { };
 
+  uv = toPythonModule (pkgs.uv.override {
+    python3Packages = self;
+  });
+
   uvcclient = callPackage ../development/python-modules/uvcclient { };
 
   uvicorn = callPackage ../development/python-modules/uvicorn { };
@@ -16678,6 +16704,8 @@ self: super: with self; {
 
   virtualenvwrapper = callPackage ../development/python-modules/virtualenvwrapper { };
 
+  visions = callPackage ../development/python-modules/visions { };
+
   visitor = callPackage ../development/python-modules/visitor { };
 
   vispy = callPackage ../development/python-modules/vispy { };
@@ -16694,6 +16722,8 @@ self: super: with self; {
 
   vncdo = callPackage ../development/python-modules/vncdo { };
 
+  vnoise = callPackage ../development/python-modules/vnoise { };
+
   vobject = callPackage ../development/python-modules/vobject { };
 
   volatile = callPackage ../development/python-modules/volatile { };
@@ -16828,6 +16858,8 @@ self: super: with self; {
 
   weasyprint = callPackage ../development/python-modules/weasyprint { };
 
+  weatherflow4py = callPackage ../development/python-modules/weatherflow4py { };
+
   weaviate-client = callPackage ../development/python-modules/weaviate-client { };
 
   web3 = callPackage ../development/python-modules/web3 { };
@@ -17205,6 +17237,8 @@ self: super: with self; {
 
   yacs = callPackage ../development/python-modules/yacs { };
 
+  ydata-profiling = callPackage ../development/python-modules/ydata-profiling { };
+
   ydiff = callPackage ../development/python-modules/ydiff { };
 
   yeelight = callPackage ../development/python-modules/yeelight { };
@@ -17345,8 +17379,6 @@ self: super: with self; {
 
   zipp = callPackage ../development/python-modules/zipp { };
 
-  zipstream = callPackage ../development/python-modules/zipstream { };
-
   zipstream-ng = callPackage ../development/python-modules/zipstream-ng { };
 
   zlib-ng = callPackage ../development/python-modules/zlib-ng {
diff --git a/pkgs/top-level/ruby-packages.nix b/pkgs/top-level/ruby-packages.nix
index 0528d45bef84e..18819de3029c5 100644
--- a/pkgs/top-level/ruby-packages.nix
+++ b/pkgs/top-level/ruby-packages.nix
@@ -3127,10 +3127,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0";
+      sha256 = "sha256-CQioY4HZ+XOCRoDfTgp1QidmJy8DscDknbfnnCPbETU=";
       type = "gem";
     };
-    version = "3.2.6";
+    version = "3.2.8";
   };
   rmagick = {
     dependencies = ["observer" "pkg-config"];